From 643578655638adaeed4bc85fd0670e6a4c1da24e Mon Sep 17 00:00:00 2001 From: kempersc Date: Wed, 4 Feb 2026 00:24:46 +0100 Subject: [PATCH] edit slots --- .opencode/LINKML_EDITING_RULES.md | 61 + ...ATED-slot-naming-convention-rico-style.md} | 17 +- .../multilingual-support-requirements.md | 177 + .../verified-ontology-mapping-requirements.md | 323 + data/ontology/ontology.zip | Bin 0 -> 2362112 bytes .../linkml/01_custodian_name_modular.yaml | 1108 +- .../schemas/20251121/linkml/manifest.json | 308 +- .../linkml/modules/classes/APIEndpoint.yaml | 6 +- .../linkml/modules/classes/APIRequest.yaml | 9 +- .../linkml/modules/classes/APIVersion.yaml | 8 +- .../linkml/modules/classes/AVEquipment.yaml | 6 +- .../modules/classes/AcademicArchive.yaml | 34 +- .../classes/AcademicArchiveRecordSetType.yaml | 16 +- .../AcademicArchiveRecordSetTypes.yaml | 44 +- .../modules/classes/AcademicInstitution.yaml | 4 +- .../modules/classes/AcademicProgram.yaml | 4 +- .../linkml/modules/classes/Access.yaml | 18 +- .../modules/classes/AccessApplication.yaml | 11 +- .../linkml/modules/classes/AccessControl.yaml | 4 +- .../modules/classes/AccessInterface.yaml | 11 +- .../linkml/modules/classes/AccessLevel.yaml | 4 +- .../linkml/modules/classes/AccessPolicy.yaml | 76 +- .../modules/classes/AccessTriggerEvent.yaml | 6 +- .../modules/classes/AccessibilityFeature.yaml | 6 +- .../modules/classes/AccessionEvent.yaml | 14 +- .../modules/classes/AccessionNumber.yaml | 7 +- .../modules/classes/AccountIdentifier.yaml | 4 +- .../linkml/modules/classes/AccountStatus.yaml | 4 +- .../linkml/modules/classes/Accreditation.yaml | 4 +- .../modules/classes/AccreditationBody.yaml | 4 +- .../modules/classes/AccreditationEvent.yaml | 4 +- .../linkml/modules/classes/Accumulation.yaml | 6 +- .../linkml/modules/classes/AccuracyLevel.yaml | 8 +- .../linkml/modules/classes/Acquisition.yaml | 15 +- .../modules/classes/AcquisitionBudget.yaml | 21 - .../modules/classes/AcquisitionEvent.yaml | 15 +- .../modules/classes/AcquisitionMethod.yaml | 6 +- .../linkml/modules/classes/Activity.yaml | 59 +- .../linkml/modules/classes/ActivityType.yaml | 33 +- .../linkml/modules/classes/ActivityTypes.yaml | 4 +- .../linkml/modules/classes/Actor.yaml | 6 +- .../linkml/modules/classes/Address.yaml | 60 +- .../modules/classes/AddressComponent.yaml | 16 +- .../linkml/modules/classes/AddressType.yaml | 40 +- .../linkml/modules/classes/AddressTypes.yaml | 4 +- .../modules/classes/Administration.yaml | 10 +- .../modules/classes/AdministrativeLevel.yaml | 8 +- .../modules/classes/AdministrativeOffice.yaml | 55 +- .../modules/classes/AdministrativeUnit.yaml | 4 +- .../linkml/modules/classes/AdmissionFee.yaml | 4 +- .../linkml/modules/classes/AdmissionInfo.yaml | 4 +- .../classes/AdvertisingRadioArchive.yaml | 26 +- .../AdvertisingRadioArchiveRecordSetType.yaml | 12 +- ...AdvertisingRadioArchiveRecordSetTypes.yaml | 36 +- .../20251121/linkml/modules/classes/Age.yaml | 10 +- .../linkml/modules/classes/Agenda.yaml | 6 +- .../linkml/modules/classes/Agent.yaml | 22 +- .../linkml/modules/classes/AgentType.yaml | 12 +- .../linkml/modules/classes/AgentTypes.yaml | 4 +- .../linkml/modules/classes/Agreement.yaml | 11 +- .../linkml/modules/classes/AirChanges.yaml | 10 +- .../linkml/modules/classes/Alignment.yaml | 14 +- .../modules/classes/AllocationAgency.yaml | 20 +- .../modules/classes/AllocationEvent.yaml | 5 +- .../linkml/modules/classes/Alpha2Code.yaml | 4 +- .../linkml/modules/classes/Alpha3Code.yaml | 4 +- .../modules/classes/AlternativeName.yaml | 34 - .../linkml/modules/classes/Altitude.yaml | 6 +- .../modules/classes/AmendmentEvent.yaml | 11 +- .../linkml/modules/classes/Animal.yaml | 9 +- .../modules/classes/AnimalSoundArchive.yaml | 26 +- .../AnimalSoundArchiveRecordSetType.yaml | 12 +- .../AnimalSoundArchiveRecordSetTypes.yaml | 36 +- .../modules/classes/AnnexCreationEvent.yaml | 6 +- .../linkml/modules/classes/Annotation.yaml | 20 +- .../classes/AnnotationMotivationType.yaml | 18 +- .../classes/AnnotationMotivationTypes.yaml | 67 +- .../modules/classes/AnnotationType.yaml | 12 +- .../modules/classes/AnnotationTypes.yaml | 8 +- .../20251121/linkml/modules/classes/Any.yaml | 2 +- .../linkml/modules/classes/Appellation.yaml | 23 +- .../modules/classes/AppellationType.yaml | 4 +- .../linkml/modules/classes/Applicant.yaml | 13 +- .../modules/classes/ApplicantRequirement.yaml | 16 +- .../linkml/modules/classes/ApplicantType.yaml | 10 +- .../linkml/modules/classes/Appointment.yaml | 9 +- .../modules/classes/AppraisalPolicy.yaml | 3 +- .../modules/classes/AppreciationEvent.yaml | 19 +- .../modules/classes/ApprovalTimeType.yaml | 10 +- .../modules/classes/ApprovalTimeTypes.yaml | 4 +- .../linkml/modules/classes/Approver.yaml | 16 +- .../modules/classes/ApproximationStatus.yaml | 24 +- .../linkml/modules/classes/Archdiocese.yaml | 4 +- .../linkml/modules/classes/Architect.yaml | 10 +- .../modules/classes/ArchitecturalArchive.yaml | 26 +- .../ArchitecturalArchiveRecordSetType.yaml | 10 +- .../ArchitecturalArchiveRecordSetTypes.yaml | 42 +- .../modules/classes/ArchitecturalStyle.yaml | 6 +- .../modules/classes/ArchivalLibrary.yaml | 24 +- .../classes/ArchivalLibraryRecordSetType.yaml | 10 +- .../modules/classes/ArchivalReference.yaml | 12 +- .../modules/classes/ArchivalStatus.yaml | 8 +- .../modules/classes/ArchiveAssociation.yaml | 22 +- .../linkml/modules/classes/ArchiveBranch.yaml | 4 +- .../linkml/modules/classes/ArchiveInfo.yaml | 4 +- .../modules/classes/ArchiveNetwork.yaml | 19 +- .../ArchiveOfInternationalOrganization.yaml | 21 +- ...nternationalOrganizationRecordSetType.yaml | 13 +- ...ternationalOrganizationRecordSetTypes.yaml | 42 +- .../classes/ArchiveOrganizationType.yaml | 50 +- .../linkml/modules/classes/ArchiveScope.yaml | 4 +- .../classes/ArchivesForBuildingRecords.yaml | 21 +- ...chivesForBuildingRecordsRecordSetType.yaml | 12 +- ...hivesForBuildingRecordsRecordSetTypes.yaml | 36 +- .../modules/classes/ArchivesRegionales.yaml | 21 +- .../ArchivesRegionalesRecordSetType.yaml | 13 +- .../ArchivesRegionalesRecordSetTypes.yaml | 30 +- .../linkml/modules/classes/ArchivingPlan.yaml | 17 +- .../20251121/linkml/modules/classes/Area.yaml | 19 +- .../linkml/modules/classes/Arrangement.yaml | 10 +- .../modules/classes/ArrangementLevel.yaml | 10 +- .../classes/ArrangementLevelTypes.yaml | 3 +- .../modules/classes/ArrangementType.yaml | 4 +- .../modules/classes/ArrangementTypes.yaml | 4 +- .../linkml/modules/classes/ArtArchive.yaml | 21 +- .../classes/ArtArchiveRecordSetType.yaml | 13 +- .../classes/ArtArchiveRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/ArtDealer.yaml | 9 +- .../modules/classes/ArtSaleService.yaml | 8 +- .../linkml/modules/classes/Article.yaml | 4 +- .../classes/ArticlesOfAssociation.yaml | 109 +- .../linkml/modules/classes/Artist.yaml | 4 +- .../linkml/modules/classes/Artwork.yaml | 4 +- .../linkml/modules/classes/AspectRatio.yaml | 8 +- .../linkml/modules/classes/Asserter.yaml | 46 +- .../linkml/modules/classes/Assertor.yaml | 2 +- .../modules/classes/AssessmentCategory.yaml | 7 +- .../classes/AssessmentCategoryType.yaml | 4 +- .../classes/AssessmentCategoryTypes.yaml | 4 +- .../linkml/modules/classes/Asset.yaml | 6 +- .../modules/classes/AssociationArchive.yaml | 7 +- .../linkml/modules/classes/AuctionHouse.yaml | 8 +- .../modules/classes/AuctionSaleCatalog.yaml | 8 +- .../modules/classes/AudioEventSegment.yaml | 31 +- .../modules/classes/AudiovisualArchive.yaml | 22 +- .../AudiovisualArchiveRecordSetType.yaml | 13 +- .../AudiovisualArchiveRecordSetTypes.yaml | 36 +- .../linkml/modules/classes/Audit.yaml | 8 +- .../linkml/modules/classes/AuditOpinion.yaml | 6 +- .../linkml/modules/classes/AuditStatus.yaml | 9 +- .../modules/classes/AuditStatusType.yaml | 4 +- .../modules/classes/AuditStatusTypes.yaml | 4 +- .../linkml/modules/classes/Auditor.yaml | 4 +- .../modules/classes/Authentication.yaml | 4 +- .../linkml/modules/classes/Author.yaml | 38 +- .../linkml/modules/classes/AuthorityData.yaml | 8 +- .../linkml/modules/classes/AuthorityFile.yaml | 13 +- .../modules/classes/AutoGeneration.yaml | 10 +- .../classes/AuxiliaryDigitalPlatform.yaml | 140 +- .../modules/classes/AuxiliaryPlace.yaml | 129 +- .../modules/classes/AuxiliaryPlatform.yaml | 2 +- .../modules/classes/AvailabilityStatus.yaml | 13 +- .../modules/classes/BOLDIdentifier.yaml | 12 +- .../linkml/modules/classes/BackupStatus.yaml | 35 +- .../linkml/modules/classes/BackupType.yaml | 34 +- .../linkml/modules/classes/BackupTypes.yaml | 4 +- .../linkml/modules/classes/BankArchive.yaml | 23 +- .../classes/BankArchiveRecordSetType.yaml | 12 +- .../classes/BankArchiveRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/BaseName.yaml | 2 +- .../linkml/modules/classes/BayNumber.yaml | 15 +- .../linkml/modules/classes/Bildstelle.yaml | 13 +- .../linkml/modules/classes/BindingType.yaml | 34 +- .../linkml/modules/classes/BindingTypes.yaml | 4 +- .../modules/classes/BioCustodianSubtype.yaml | 21 +- .../modules/classes/BioCustodianSubtypes.yaml | 13 +- .../modules/classes/BioCustodianType.yaml | 43 +- .../classes/BioTypeClassification.yaml | 21 +- .../classes/BioTypeClassifications.yaml | 13 +- .../modules/classes/BiologicalObject.yaml | 128 +- .../linkml/modules/classes/BirthDate.yaml | 28 +- .../linkml/modules/classes/BirthPlace.yaml | 51 +- .../linkml/modules/classes/Bookplate.yaml | 20 +- .../linkml/modules/classes/Boundary.yaml | 4 +- .../linkml/modules/classes/BoundingBox.yaml | 9 +- .../linkml/modules/classes/BoxNumber.yaml | 16 +- .../linkml/modules/classes/Branch.yaml | 4 +- .../linkml/modules/classes/BranchOffice.yaml | 59 +- .../linkml/modules/classes/BranchType.yaml | 34 +- .../linkml/modules/classes/BranchTypes.yaml | 44 +- .../linkml/modules/classes/Budget.yaml | 121 +- .../linkml/modules/classes/BudgetStatus.yaml | 13 +- .../linkml/modules/classes/BudgetType.yaml | 36 +- .../linkml/modules/classes/BudgetTypes.yaml | 4 +- .../modules/classes/BusinessCriticality.yaml | 10 +- .../linkml/modules/classes/BusinessModel.yaml | 10 +- .../linkml/modules/classes/CITESAppendix.yaml | 14 +- .../20251121/linkml/modules/classes/CMS.yaml | 23 +- .../linkml/modules/classes/CMSType.yaml | 13 +- .../linkml/modules/classes/CMSTypes.yaml | 49 +- .../modules/classes/CacheValidation.yaml | 21 +- .../modules/classes/CalendarSystem.yaml | 9 +- .../modules/classes/CallForApplication.yaml | 187 +- .../linkml/modules/classes/Cancellation.yaml | 19 +- .../linkml/modules/classes/CanonicalForm.yaml | 9 +- .../modules/classes/CantonalArchive.yaml | 21 +- .../classes/CantonalArchiveRecordSetType.yaml | 13 +- .../CantonalArchiveRecordSetTypes.yaml | 36 +- .../linkml/modules/classes/Capacity.yaml | 50 +- .../linkml/modules/classes/CapacityType.yaml | 6 +- .../linkml/modules/classes/CapacityTypes.yaml | 4 +- .../linkml/modules/classes/Caption.yaml | 17 +- .../linkml/modules/classes/CareerEntry.yaml | 4 +- .../linkml/modules/classes/Carrier.yaml | 15 +- .../linkml/modules/classes/CarrierType.yaml | 16 +- .../linkml/modules/classes/CarrierTypes.yaml | 62 +- .../modules/classes/CastCollection.yaml | 17 +- .../linkml/modules/classes/CatalogSystem.yaml | 11 +- .../modules/classes/CatalogSystemType.yaml | 6 +- .../modules/classes/CatalogSystemTypes.yaml | 14 +- .../modules/classes/CatalogingStandard.yaml | 30 +- .../linkml/modules/classes/Category.yaml | 14 +- .../modules/classes/CategoryStatus.yaml | 10 +- .../linkml/modules/classes/CateringPlace.yaml | 89 +- .../linkml/modules/classes/CateringType.yaml | 6 +- .../linkml/modules/classes/CateringTypes.yaml | 6 +- .../modules/classes/CathedralArchive.yaml | 21 +- .../CathedralArchiveRecordSetType.yaml | 13 +- .../CathedralArchiveRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/CauseOfDeath.yaml | 19 +- .../linkml/modules/classes/CeaseEvent.yaml | 6 +- .../linkml/modules/classes/CeasingEvent.yaml | 12 +- .../modules/classes/CertaintyLevel.yaml | 23 +- .../modules/classes/CertificationEntry.yaml | 8 +- .../ChAnnotatorAnnotationMetadata.yaml | 8 +- .../ChAnnotatorAnnotationProvenance.yaml | 4 +- .../modules/classes/ChAnnotatorBlock.yaml | 10 +- .../classes/ChAnnotatorEntityClaim.yaml | 14 +- .../ChAnnotatorEntityClassification.yaml | 6 +- .../classes/ChAnnotatorIntegrationNote.yaml | 4 +- .../modules/classes/ChAnnotatorModel.yaml | 4 +- .../classes/ChAnnotatorProvenance.yaml | 4 +- .../linkml/modules/classes/ChurchArchive.yaml | 17 +- .../classes/ChurchArchiveRecordSetType.yaml | 14 +- .../classes/ChurchArchiveRecordSetTypes.yaml | 50 +- .../modules/classes/ChurchArchiveSweden.yaml | 21 +- .../ChurchArchiveSwedenRecordSetType.yaml | 13 +- .../ChurchArchiveSwedenRecordSetTypes.yaml | 36 +- .../linkml/modules/classes/Cinematheque.yaml | 13 +- .../20251121/linkml/modules/classes/City.yaml | 3 +- .../linkml/modules/classes/Claim.yaml | 2 +- .../linkml/modules/classes/ClaimType.yaml | 8 +- .../linkml/modules/classes/ClaimTypes.yaml | 4 +- .../modules/classes/Classification.yaml | 4 +- .../modules/classes/ClassificationStatus.yaml | 17 +- .../classes/ClassificationStatusType.yaml | 6 +- .../classes/ClassificationStatusTypes.yaml | 4 +- .../modules/classes/ClassificationType.yaml | 4 +- .../linkml/modules/classes/Classroom.yaml | 17 +- .../modules/classes/ClimateArchive.yaml | 21 +- .../classes/ClimateArchiveRecordSetType.yaml | 13 +- .../classes/ClimateArchiveRecordSetTypes.yaml | 36 +- .../modules/classes/ClimateControl.yaml | 13 +- .../modules/classes/ClimateControlPolicy.yaml | 11 +- .../modules/classes/ClimateControlType.yaml | 11 +- .../modules/classes/ClimateControlTypes.yaml | 4 +- .../linkml/modules/classes/Clipping.yaml | 4 +- .../linkml/modules/classes/CoFunding.yaml | 18 +- .../20251121/linkml/modules/classes/Code.yaml | 6 +- .../modules/classes/CollectingArchives.yaml | 22 +- .../CollectingArchivesRecordSetType.yaml | 13 +- .../CollectingArchivesRecordSetTypes.yaml | 36 +- .../linkml/modules/classes/Collection.yaml | 92 +- .../modules/classes/CollectionContent.yaml | 10 +- .../classes/CollectionContentType.yaml | 4 +- .../classes/CollectionContentTypes.yaml | 4 +- .../classes/CollectionDiscoveryScore.yaml | 12 +- .../modules/classes/CollectionEvent.yaml | 70 +- .../classes/CollectionManagementSystem.yaml | 88 +- .../modules/classes/CollectionScope.yaml | 10 +- .../modules/classes/CollectionType.yaml | 73 +- .../modules/classes/ColonialStatus.yaml | 18 +- .../modules/classes/ComarcalArchive.yaml | 21 +- .../classes/ComarcalArchiveRecordSetType.yaml | 13 +- .../ComarcalArchiveRecordSetTypes.yaml | 36 +- .../linkml/modules/classes/Comment.yaml | 14 +- .../linkml/modules/classes/CommentReply.yaml | 19 +- .../classes/CommercialCustodianTypes.yaml | 14 +- .../classes/CommercialOrganizationType.yaml | 66 +- .../modules/classes/CommissionRate.yaml | 7 +- .../modules/classes/CommunityArchive.yaml | 21 +- .../CommunityArchiveRecordSetType.yaml | 13 +- .../CommunityArchiveRecordSetTypes.yaml | 42 +- .../classes/CompanyArchiveRecordSetType.yaml | 14 +- .../classes/CompanyArchiveRecordSetTypes.yaml | 50 +- .../modules/classes/CompanyArchives.yaml | 26 +- .../classes/CompanyArchivesRecordSetType.yaml | 6 +- .../modules/classes/ComplianceStatus.yaml | 16 +- .../linkml/modules/classes/Component.yaml | 13 +- .../linkml/modules/classes/ComponentType.yaml | 12 +- .../modules/classes/ComponentTypes.yaml | 40 +- .../classes/ComprehensiveOverview.yaml | 4 +- .../modules/classes/ComputerTerminal.yaml | 4 +- .../linkml/modules/classes/Concatenation.yaml | 6 +- .../linkml/modules/classes/Condition.yaml | 12 +- .../modules/classes/ConditionPolicy.yaml | 9 +- .../modules/classes/ConditionState.yaml | 13 +- .../linkml/modules/classes/ConditionType.yaml | 10 +- .../modules/classes/ConditionTypes.yaml | 4 +- .../modules/classes/ConditionofAccess.yaml | 6 +- .../linkml/modules/classes/Confidence.yaml | 4 +- .../modules/classes/ConfidenceLevel.yaml | 6 +- .../modules/classes/ConfidenceMeasure.yaml | 22 +- .../modules/classes/ConfidenceMethod.yaml | 22 +- .../modules/classes/ConfidenceScore.yaml | 12 +- .../modules/classes/ConfidenceThreshold.yaml | 7 +- .../modules/classes/ConfidenceValue.yaml | 4 +- .../linkml/modules/classes/Conflict.yaml | 22 +- .../modules/classes/ConflictStatus.yaml | 21 +- .../linkml/modules/classes/ConflictType.yaml | 2 +- .../linkml/modules/classes/ConflictTypes.yaml | 4 +- .../linkml/modules/classes/Connection.yaml | 6 +- .../modules/classes/ConnectionDegree.yaml | 10 +- .../modules/classes/ConnectionDegreeType.yaml | 8 +- .../classes/ConnectionDegreeTypes.yaml | 4 +- .../modules/classes/ConnectionNetwork.yaml | 27 +- .../classes/ConnectionSourceMetadata.yaml | 34 +- .../modules/classes/ConservationLab.yaml | 83 +- .../modules/classes/ConservationPlan.yaml | 6 +- .../modules/classes/ConservationRecord.yaml | 106 +- .../modules/classes/ConservationReview.yaml | 9 +- .../linkml/modules/classes/Conservatoria.yaml | 3 +- .../modules/classes/ContactDetails.yaml | 9 +- .../linkml/modules/classes/Container.yaml | 37 +- .../linkml/modules/classes/Content.yaml | 15 +- .../linkml/modules/classes/ContentType.yaml | 16 +- .../linkml/modules/classes/ContentTypes.yaml | 52 +- .../modules/classes/ContributingAgency.yaml | 67 +- .../modules/classes/ConversionRate.yaml | 15 +- .../modules/classes/ConversionRateType.yaml | 14 +- .../modules/classes/ConversionRateTypes.yaml | 16 +- .../modules/classes/CoordinateProvenance.yaml | 11 +- .../linkml/modules/classes/Coordinates.yaml | 4 +- .../linkml/modules/classes/Country.yaml | 16 +- .../modules/classes/CountyRecordOffice.yaml | 16 +- .../linkml/modules/classes/CourtRecords.yaml | 30 +- .../linkml/modules/classes/CreationEvent.yaml | 13 +- .../modules/classes/CulturalInstitution.yaml | 31 +- .../modules/classes/CurationActivity.yaml | 65 +- .../linkml/modules/classes/Currency.yaml | 34 +- .../modules/classes/CurrentArchive.yaml | 43 +- .../classes/CurrentArchiveRecordSetType.yaml | 8 +- .../classes/CurrentArchiveRecordSetTypes.yaml | 30 +- .../modules/classes/CurrentPosition.yaml | 4 +- .../linkml/modules/classes/Custodian.yaml | 125 +- .../classes/CustodianAdministration.yaml | 88 +- .../modules/classes/CustodianArchive.yaml | 102 +- .../CustodianArchiveRecordSetType.yaml | 8 +- .../CustodianArchiveRecordSetTypes.yaml | 30 +- .../modules/classes/CustodianCollection.yaml | 108 +- .../classes/CustodianLegalNameClaim.yaml | 14 +- .../modules/classes/CustodianLegalStatus.yaml | 117 +- .../linkml/modules/classes/CustodianName.yaml | 54 +- .../classes/CustodianNameConsensus.yaml | 30 +- .../modules/classes/CustodianObservation.yaml | 58 +- .../modules/classes/CustodianPlace.yaml | 220 +- .../modules/classes/CustodianSourceFile.yaml | 33 +- .../classes/CustodianTimelineEvent.yaml | 58 +- .../linkml/modules/classes/CustodianType.yaml | 44 +- .../20251121/linkml/modules/classes/DOI.yaml | 6 +- .../linkml/modules/classes/DarkArchive.yaml | 44 +- .../classes/DarkArchiveRecordSetType.yaml | 8 +- .../classes/DarkArchiveRecordSetTypes.yaml | 36 +- .../linkml/modules/classes/DataFormat.yaml | 15 +- .../modules/classes/DataFormatTypes.yaml | 3 +- .../modules/classes/DataLicensePolicy.yaml | 20 +- .../modules/classes/DataQualityFlag.yaml | 4 +- .../modules/classes/DataSensitivityLevel.yaml | 14 +- .../modules/classes/DataServiceEndpoint.yaml | 26 +- .../classes/DataServiceEndpointType.yaml | 28 +- .../classes/DataServiceEndpointTypes.yaml | 27 +- .../linkml/modules/classes/DataSource.yaml | 18 +- .../linkml/modules/classes/DataTierLevel.yaml | 14 +- .../modules/classes/DataTierSummary.yaml | 4 +- .../linkml/modules/classes/Dataset.yaml | 26 +- .../linkml/modules/classes/DatePrecision.yaml | 14 +- .../classes/DeacidificationFacility.yaml | 4 +- .../modules/classes/DeceasedStatus.yaml | 17 +- .../linkml/modules/classes/Deliverable.yaml | 21 +- .../linkml/modules/classes/Department.yaml | 68 +- .../modules/classes/DepartmentalArchives.yaml | 57 +- .../DepartmentalArchivesRecordSetType.yaml | 12 +- .../DepartmentalArchivesRecordSetTypes.yaml | 36 +- .../modules/classes/DeploymentEvent.yaml | 23 +- .../modules/classes/DepositArchive.yaml | 43 +- .../classes/DepositArchiveRecordSetType.yaml | 8 +- .../classes/DepositArchiveRecordSetTypes.yaml | 30 +- .../classes/DepositingOrganization.yaml | 4 +- .../linkml/modules/classes/Description.yaml | 33 +- .../modules/classes/DetectedEntity.yaml | 31 +- .../linkml/modules/classes/DetectedFace.yaml | 8 +- .../modules/classes/DetectedLandmark.yaml | 8 +- .../linkml/modules/classes/DetectedLogo.yaml | 8 +- .../modules/classes/DetectedObject.yaml | 8 +- .../modules/classes/DetectionLevelType.yaml | 10 +- .../modules/classes/DetectionLevelTypes.yaml | 18 +- .../modules/classes/DetectionThreshold.yaml | 10 +- .../linkml/modules/classes/DeviceType.yaml | 14 +- .../linkml/modules/classes/DeviceTypes.yaml | 4 +- .../modules/classes/DiarizationSegment.yaml | 24 - .../modules/classes/DiarizationStatus.yaml | 18 +- .../modules/classes/DigitalArchive.yaml | 49 +- .../classes/DigitalArchiveRecordSetType.yaml | 8 +- .../classes/DigitalArchiveRecordSetTypes.yaml | 42 +- .../modules/classes/DigitalConfidence.yaml | 10 +- .../modules/classes/DigitalInstantiation.yaml | 20 +- .../modules/classes/DigitalPlatform.yaml | 103 +- .../modules/classes/DigitalPlatformScore.yaml | 4 +- .../modules/classes/DigitalPlatformType.yaml | 35 +- .../modules/classes/DigitalPlatformTypes.yaml | 90 +- .../DigitalPlatformUserIdentifier.yaml | 13 +- .../modules/classes/DigitalPlatformV2.yaml | 118 +- .../DigitalPlatformV2DataQualityNotes.yaml | 4 +- .../classes/DigitalPlatformV2DataSource.yaml | 4 +- .../classes/DigitalPlatformV2KeyContact.yaml | 4 +- .../DigitalPlatformV2OrganizationProfile.yaml | 11 +- .../DigitalPlatformV2OrganizationStatus.yaml | 4 +- .../DigitalPlatformV2PrimaryPlatform.yaml | 4 +- .../classes/DigitalPlatformV2Provenance.yaml | 5 +- .../DigitalPlatformV2ServiceDetails.yaml | 4 +- ...gitalPlatformV2TransformationMetadata.yaml | 4 +- .../modules/classes/DigitalPresence.yaml | 16 +- .../modules/classes/DigitalPresenceType.yaml | 14 +- .../modules/classes/DigitalPresenceTypes.yaml | 8 +- .../modules/classes/DigitalProficiency.yaml | 10 +- .../modules/classes/DigitizationBudget.yaml | 19 - .../linkml/modules/classes/DimArchives.yaml | 43 +- .../classes/DimArchivesRecordSetType.yaml | 8 +- .../classes/DimArchivesRecordSetTypes.yaml | 30 +- .../modules/classes/DiocesanArchive.yaml | 44 +- .../classes/DiocesanArchiveRecordSetType.yaml | 8 +- .../DiocesanArchiveRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/Diocese.yaml | 20 +- .../modules/classes/DismissalEvent.yaml | 13 +- .../modules/classes/DisplayLocation.yaml | 11 +- .../modules/classes/DispositionService.yaml | 12 +- .../classes/DispositionServiceType.yaml | 6 +- .../classes/DispositionServiceTypes.yaml | 4 +- .../modules/classes/DissolutionEvent.yaml | 6 +- .../classes/DistrictArchiveGermany.yaml | 21 +- .../DistrictArchiveGermanyRecordSetType.yaml | 13 +- .../DistrictArchiveGermanyRecordSetTypes.yaml | 36 +- .../modules/classes/DistritalArchive.yaml | 29 +- .../DistritalArchiveRecordSetType.yaml | 13 +- .../DistritalArchiveRecordSetTypes.yaml | 30 +- .../linkml/modules/classes/Division.yaml | 20 +- .../modules/classes/DocumentFormat.yaml | 6 +- .../linkml/modules/classes/DocumentType.yaml | 7 +- .../linkml/modules/classes/DocumentTypes.yaml | 4 +- .../linkml/modules/classes/Documentation.yaml | 23 +- .../modules/classes/DocumentationCentre.yaml | 19 +- .../modules/classes/DocumentationSource.yaml | 6 +- .../linkml/modules/classes/Domain.yaml | 7 +- .../linkml/modules/classes/DomainType.yaml | 10 +- .../linkml/modules/classes/DomainTypes.yaml | 4 +- .../modules/classes/DonationScheme.yaml | 63 +- .../linkml/modules/classes/Drawer.yaml | 10 +- .../linkml/modules/classes/DrawerNumber.yaml | 3 +- .../linkml/modules/classes/DualClassLink.yaml | 2 +- .../modules/classes/DuplicateEntry.yaml | 4 +- .../linkml/modules/classes/EADDownload.yaml | 19 +- .../linkml/modules/classes/EADIdentifier.yaml | 37 - .../linkml/modules/classes/EBook.yaml | 7 +- .../20251121/linkml/modules/classes/ETag.yaml | 18 +- .../classes/EcclesiasticalProvince.yaml | 10 +- .../modules/classes/EconomicArchive.yaml | 29 +- .../classes/EconomicArchiveRecordSetType.yaml | 13 +- .../EconomicArchiveRecordSetTypes.yaml | 36 +- .../linkml/modules/classes/Edition.yaml | 14 +- .../linkml/modules/classes/Editor.yaml | 12 +- .../linkml/modules/classes/Education.yaml | 15 +- .../modules/classes/EducationCenter.yaml | 92 +- .../classes/EducationFacilityType.yaml | 10 +- .../modules/classes/EducationLevel.yaml | 10 +- .../classes/EducationProviderSubtype.yaml | 10 +- .../classes/EducationProviderType.yaml | 24 +- .../linkml/modules/classes/EmailAddress.yaml | 10 +- .../linkml/modules/classes/Embargo.yaml | 9 +- .../linkml/modules/classes/Employer.yaml | 16 +- .../modules/classes/EncompassingBody.yaml | 77 +- .../classes/EncompassingBodyTypes.yaml | 115 +- .../linkml/modules/classes/Endpoint.yaml | 6 +- .../modules/classes/EngagementMetric.yaml | 14 +- .../modules/classes/EnrichmentMetadata.yaml | 12 +- .../modules/classes/EnrichmentMethod.yaml | 8 +- .../modules/classes/EnrichmentProvenance.yaml | 5 +- .../classes/EnrichmentProvenanceEntry.yaml | 4 +- .../linkml/modules/classes/Entity.yaml | 4 +- .../modules/classes/EntityReconstruction.yaml | 10 +- .../linkml/modules/classes/EntityType.yaml | 10 +- .../classes/EnvironmentalCondition.yaml | 8 +- .../modules/classes/EnvironmentalControl.yaml | 8 +- .../classes/EnvironmentalRequirement.yaml | 8 +- .../modules/classes/EnvironmentalZone.yaml | 84 +- .../classes/EnvironmentalZoneType.yaml | 76 +- .../classes/EnvironmentalZoneTypes.yaml | 45 +- .../linkml/modules/classes/Equipment.yaml | 13 +- .../linkml/modules/classes/EquipmentType.yaml | 10 +- .../modules/classes/EquipmentTypes.yaml | 4 +- .../linkml/modules/classes/Essay.yaml | 6 +- .../modules/classes/EstablishmentEvent.yaml | 9 +- .../modules/classes/EstimationMethod.yaml | 16 +- .../linkml/modules/classes/Event.yaml | 52 +- .../linkml/modules/classes/EventType.yaml | 16 +- .../linkml/modules/classes/EventTypes.yaml | 10 +- .../linkml/modules/classes/Evidence.yaml | 16 +- .../modules/classes/ExaSearchMetadata.yaml | 16 +- .../modules/classes/ExaminationMethod.yaml | 6 +- .../classes/ExaminationMethodType.yaml | 4 +- .../linkml/modules/classes/Example.yaml | 24 +- .../modules/classes/ExhibitedObject.yaml | 146 +- .../linkml/modules/classes/Exhibition.yaml | 86 +- .../modules/classes/ExhibitionCatalog.yaml | 105 +- .../modules/classes/ExhibitionLocation.yaml | 20 +- .../modules/classes/ExhibitionSpace.yaml | 86 +- .../linkml/modules/classes/Expense.yaml | 6 +- .../linkml/modules/classes/ExpenseType.yaml | 6 +- .../linkml/modules/classes/ExpenseTypes.yaml | 4 +- .../linkml/modules/classes/Expenses.yaml | 22 +- .../linkml/modules/classes/Experience.yaml | 18 +- .../linkml/modules/classes/ExpertiseArea.yaml | 16 +- .../linkml/modules/classes/Extension.yaml | 19 +- .../modules/classes/ExternalFunding.yaml | 19 +- .../modules/classes/ExternalResource.yaml | 6 +- .../linkml/modules/classes/ExternalWork.yaml | 6 +- .../modules/classes/ExtractionMetadata.yaml | 45 +- .../modules/classes/ExtractionMethod.yaml | 5 +- .../modules/classes/ExtractionSourceInfo.yaml | 12 +- .../linkml/modules/classes/Facility.yaml | 7 +- .../linkml/modules/classes/FacilityType.yaml | 10 +- .../linkml/modules/classes/FacilityTypes.yaml | 4 +- .../linkml/modules/classes/Feature.yaml | 12 +- .../modules/classes/FeatureCustodianType.yaml | 38 +- .../linkml/modules/classes/FeaturePlace.yaml | 54 +- .../linkml/modules/classes/FeatureType.yaml | 6 +- .../linkml/modules/classes/FeatureTypes.yaml | 4 +- .../linkml/modules/classes/FeaturedItem.yaml | 8 +- .../modules/classes/FeaturedObject.yaml | 6 +- .../20251121/linkml/modules/classes/Fee.yaml | 10 +- .../modules/classes/FellowsProgram.yaml | 4 +- .../linkml/modules/classes/FieldNumber.yaml | 7 +- .../linkml/modules/classes/FieldOfStudy.yaml | 6 +- .../linkml/modules/classes/FileAPI.yaml | 17 +- .../linkml/modules/classes/FileLocation.yaml | 6 +- .../linkml/modules/classes/FilePath.yaml | 8 +- .../linkml/modules/classes/FilmArchive.yaml | 27 +- .../classes/FilmArchiveRecordSetType.yaml | 14 +- .../classes/FilmArchiveRecordSetTypes.yaml | 50 +- .../modules/classes/FinancialStatement.yaml | 105 +- .../classes/FinancialStatementType.yaml | 4 +- .../linkml/modules/classes/FindingAid.yaml | 308 +- .../modules/classes/FindingAidType.yaml | 50 +- .../modules/classes/FindingAidTypes.yaml | 52 +- .../classes/FireSuppressionSystem.yaml | 8 +- .../modules/classes/FireSuppressionType.yaml | 6 +- .../modules/classes/FireSuppressionTypes.yaml | 4 +- .../linkml/modules/classes/Fixity.yaml | 6 +- .../modules/classes/FixityVerification.yaml | 6 +- .../linkml/modules/classes/Foremalarkiv.yaml | 19 +- .../modules/classes/ForkliftAccess.yaml | 4 +- .../linkml/modules/classes/Format.yaml | 10 +- .../linkml/modules/classes/FormerName.yaml | 7 +- .../modules/classes/FoundationArchive.yaml | 29 +- .../FoundationArchiveRecordSetType.yaml | 12 +- .../FoundationArchiveRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/FoundingEvent.yaml | 17 +- .../linkml/modules/classes/FreeArchive.yaml | 28 +- .../classes/FreeArchiveRecordSetType.yaml | 13 +- .../classes/FreeArchiveRecordSetTypes.yaml | 30 +- .../classes/FrenchPrivateArchives.yaml | 29 +- .../FrenchPrivateArchivesRecordSetType.yaml | 13 +- .../FrenchPrivateArchivesRecordSetTypes.yaml | 30 +- .../linkml/modules/classes/Frequency.yaml | 4 +- .../linkml/modules/classes/FumeHood.yaml | 4 +- .../modules/classes/FunctionCategory.yaml | 6 +- .../linkml/modules/classes/FunctionType.yaml | 22 +- .../linkml/modules/classes/FunctionTypes.yaml | 4 +- .../linkml/modules/classes/Funding.yaml | 10 +- .../linkml/modules/classes/FundingAgenda.yaml | 186 +- .../linkml/modules/classes/FundingCall.yaml | 3 +- .../linkml/modules/classes/FundingFocus.yaml | 6 +- .../modules/classes/FundingProgram.yaml | 8 +- .../linkml/modules/classes/FundingRate.yaml | 7 +- .../modules/classes/FundingRequirement.yaml | 66 +- .../linkml/modules/classes/FundingScheme.yaml | 6 +- .../linkml/modules/classes/FundingSource.yaml | 8 +- .../linkml/modules/classes/Fylkesarkiv.yaml | 4 +- .../modules/classes/GBIFIdentifier.yaml | 7 +- .../linkml/modules/classes/GHCIdentifier.yaml | 7 +- .../20251121/linkml/modules/classes/GLAM.yaml | 17 +- .../classes/GLAMORCUBESFIXPHDNTCode.yaml | 6 +- .../modules/classes/GLEIFIdentifier.yaml | 3 +- .../linkml/modules/classes/Gallery.yaml | 12 +- .../linkml/modules/classes/GalleryType.yaml | 57 +- .../linkml/modules/classes/GalleryTypes.yaml | 4 +- .../modules/classes/GenBankAccession.yaml | 3 +- .../linkml/modules/classes/Gender.yaml | 6 +- .../classes/GenealogiewerkbalkEnrichment.yaml | 9 +- .../modules/classes/GenerationEvent.yaml | 15 +- .../linkml/modules/classes/GeoFeature.yaml | 12 +- .../modules/classes/GeoFeatureType.yaml | 6 +- .../modules/classes/GeoFeatureTypes.yaml | 4 +- .../modules/classes/GeoNamesIdentifier.yaml | 7 +- .../modules/classes/GeoSpatialPlace.yaml | 48 +- .../modules/classes/GeographicExtent.yaml | 10 +- .../modules/classes/GeographicScope.yaml | 6 +- .../linkml/modules/classes/Geometry.yaml | 17 +- .../linkml/modules/classes/GeometryType.yaml | 6 +- .../linkml/modules/classes/GeometryTypes.yaml | 5 +- .../modules/classes/GeospatialIdentifier.yaml | 3 +- .../modules/classes/GeospatialLocation.yaml | 4 +- .../linkml/modules/classes/GhcidBlock.yaml | 6 +- .../modules/classes/GhcidHistoryEntry.yaml | 4 +- .../linkml/modules/classes/GiftShop.yaml | 115 +- .../linkml/modules/classes/GivenName.yaml | 10 +- .../modules/classes/GoogleMapsEnrichment.yaml | 17 +- .../GoogleMapsPlaywrightEnrichment.yaml | 10 +- .../linkml/modules/classes/GooglePhoto.yaml | 4 +- .../linkml/modules/classes/GoogleReview.yaml | 16 +- .../modules/classes/GovernanceAuthority.yaml | 10 +- .../modules/classes/GovernanceRole.yaml | 10 +- .../modules/classes/GovernanceStructure.yaml | 10 +- .../linkml/modules/classes/GoverningBody.yaml | 8 +- .../modules/classes/GovernmentArchive.yaml | 29 +- .../GovernmentArchiveRecordSetType.yaml | 13 +- .../GovernmentArchiveRecordSetTypes.yaml | 42 +- .../modules/classes/GovernmentHierarchy.yaml | 7 +- .../linkml/modules/classes/GrantRange.yaml | 14 +- .../linkml/modules/classes/Group.yaml | 2 +- .../linkml/modules/classes/GrowthRate.yaml | 4 +- .../linkml/modules/classes/HALCAdm1Code.yaml | 3 +- .../linkml/modules/classes/HALCAdm2Name.yaml | 6 +- .../20251121/linkml/modules/classes/HCID.yaml | 4 +- .../linkml/modules/classes/HCPresetURI.yaml | 4 +- .../linkml/modules/classes/HTMLFile.yaml | 8 +- .../linkml/modules/classes/HTTPMethod.yaml | 7 +- .../modules/classes/HTTPMethodType.yaml | 10 +- .../modules/classes/HTTPMethodTypes.yaml | 4 +- .../linkml/modules/classes/HTTPStatus.yaml | 8 +- .../modules/classes/HTTPStatusCode.yaml | 6 +- .../linkml/modules/classes/Habitat.yaml | 10 +- .../modules/classes/HandsOnFacility.yaml | 4 +- .../linkml/modules/classes/Hazard.yaml | 4 +- .../linkml/modules/classes/Heading.yaml | 4 +- .../linkml/modules/classes/HeadingLevel.yaml | 4 +- .../linkml/modules/classes/Heritage.yaml | 6 +- .../classes/HeritageCustodianPlace.yaml | 2 +- .../classes/HeritageExperienceEntry.yaml | 29 +- .../linkml/modules/classes/HeritageForm.yaml | 6 +- .../modules/classes/HeritageObject.yaml | 41 +- .../modules/classes/HeritagePractice.yaml | 6 +- .../classes/HeritageRelevanceAssessment.yaml | 28 +- .../classes/HeritageRelevanceScore.yaml | 6 +- .../linkml/modules/classes/HeritageScore.yaml | 6 +- .../modules/classes/HeritageSector.yaml | 6 +- .../modules/classes/HeritageSocietyType.yaml | 53 +- .../modules/classes/HeritageStatus.yaml | 10 +- .../linkml/modules/classes/HeritageType.yaml | 10 +- .../modules/classes/HeritageTypeCode.yaml | 6 +- .../modules/classes/HeritageTypeCount.yaml | 16 +- .../modules/classes/HistoricBuilding.yaml | 66 +- .../modules/classes/HistoricalArchive.yaml | 29 +- .../HistoricalArchiveRecordSetType.yaml | 13 +- .../HistoricalArchiveRecordSetTypes.yaml | 36 +- .../modules/classes/HistoricalRegion.yaml | 25 +- .../modules/classes/HolySacredSiteType.yaml | 53 +- .../linkml/modules/classes/HolySiteType.yaml | 21 +- .../modules/classes/HospitalArchive.yaml | 27 +- .../classes/HospitalArchiveRecordSetType.yaml | 14 +- .../HospitalArchiveRecordSetTypes.yaml | 50 +- .../linkml/modules/classes/HouseArchive.yaml | 29 +- .../classes/HouseArchiveRecordSetType.yaml | 13 +- .../classes/HouseArchiveRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/HouseNumber.yaml | 6 +- .../linkml/modules/classes/Humidity.yaml | 8 +- .../modules/classes/HumidityTolerance.yaml | 8 +- .../linkml/modules/classes/Hypernym.yaml | 14 +- .../linkml/modules/classes/Hyponym.yaml | 4 +- .../linkml/modules/classes/Hypothesis.yaml | 9 +- .../linkml/modules/classes/ICHDomain.yaml | 4 +- .../modules/classes/ICHSafeguarding.yaml | 8 +- .../modules/classes/ICHSafeguardingType.yaml | 4 +- .../20251121/linkml/modules/classes/ID.yaml | 4 +- .../20251121/linkml/modules/classes/IIIF.yaml | 4 +- .../modules/classes/IIPImageServer.yaml | 18 +- .../modules/classes/ISO639-3Identifier.yaml | 8 +- .../modules/classes/IconographicArchives.yaml | 28 +- .../IconographicArchivesRecordSetType.yaml | 13 +- .../IconographicArchivesRecordSetTypes.yaml | 36 +- .../linkml/modules/classes/Iconography.yaml | 6 +- .../modules/classes/IdentificationEvent.yaml | 11 +- .../linkml/modules/classes/Identifier.yaml | 51 +- .../modules/classes/IdentifierFormat.yaml | 13 +- .../classes/IdentifierLookupScore.yaml | 4 +- .../modules/classes/IdentifierScheme.yaml | 4 +- .../modules/classes/IdentifierType.yaml | 16 +- .../modules/classes/IdentifierTypes.yaml | 66 +- .../modules/classes/IdentifierValue.yaml | 4 +- .../linkml/modules/classes/Illustration.yaml | 6 +- .../linkml/modules/classes/Image.yaml | 14 +- .../modules/classes/ImagingEquipment.yaml | 22 - .../modules/classes/ImpactMeasurement.yaml | 6 +- .../linkml/modules/classes/Index.yaml | 19 +- .../linkml/modules/classes/IndexNumber.yaml | 3 +- .../linkml/modules/classes/IndexType.yaml | 12 +- .../linkml/modules/classes/IndexTypes.yaml | 18 +- .../modules/classes/InformationCarrier.yaml | 172 +- .../linkml/modules/classes/Institution.yaml | 21 +- .../modules/classes/InstitutionalArchive.yaml | 29 +- .../InstitutionalArchiveRecordSetType.yaml | 13 +- .../InstitutionalArchiveRecordSetTypes.yaml | 36 +- .../classes/InstitutionalFunction.yaml | 10 +- .../classes/InstitutionalRepository.yaml | 22 +- .../classes/IntangibleHeritageEvent.yaml | 71 +- .../classes/IntangibleHeritageForm.yaml | 100 +- .../classes/IntangibleHeritageGroupType.yaml | 36 +- .../IntangibleHeritagePerformance.yaml | 70 +- .../modules/classes/InternetOfThings.yaml | 109 +- .../modules/classes/InvalidWebClaim.yaml | 19 +- .../linkml/modules/classes/Investment.yaml | 11 +- .../modules/classes/InvestmentArea.yaml | 10 +- .../linkml/modules/classes/IoTDevice.yaml | 8 +- .../linkml/modules/classes/IsilCodeEntry.yaml | 4 +- .../20251121/linkml/modules/classes/Item.yaml | 24 +- .../linkml/modules/classes/JointArchives.yaml | 29 +- .../classes/JointArchivesRecordSetType.yaml | 13 +- .../classes/JointArchivesRecordSetTypes.yaml | 30 +- .../linkml/modules/classes/Jurisdiction.yaml | 39 +- .../linkml/modules/classes/KeyArchive.yaml | 8 +- .../linkml/modules/classes/KeyDate.yaml | 4 +- .../linkml/modules/classes/KeyPeriod.yaml | 6 +- .../linkml/modules/classes/Kustodie.yaml | 4 +- .../linkml/modules/classes/LEIIdentifier.yaml | 22 - .../linkml/modules/classes/LGBTArchive.yaml | 29 +- .../classes/LGBTArchiveRecordSetType.yaml | 13 +- .../classes/LGBTArchiveRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/LLMResponse.yaml | 124 +- .../linkml/modules/classes/Label.yaml | 26 +- .../linkml/modules/classes/LabelType.yaml | 16 +- .../linkml/modules/classes/LabelTypes.yaml | 8 +- .../linkml/modules/classes/Landsarkiv.yaml | 4 +- .../linkml/modules/classes/Language.yaml | 12 +- .../linkml/modules/classes/LanguageCode.yaml | 16 +- .../modules/classes/LanguageProficiency.yaml | 35 +- .../linkml/modules/classes/Laptop.yaml | 26 +- .../linkml/modules/classes/LastName.yaml | 12 +- .../modules/classes/LayoutMetadata.yaml | 4 +- .../modules/classes/LegalEntityType.yaml | 16 +- .../linkml/modules/classes/LegalForm.yaml | 19 +- .../linkml/modules/classes/LegalName.yaml | 15 +- .../LegalResponsibilityCollection.yaml | 35 +- .../linkml/modules/classes/Liability.yaml | 4 +- .../linkml/modules/classes/LibraryType.yaml | 67 +- .../linkml/modules/classes/LightArchives.yaml | 31 +- .../classes/LightArchivesRecordSetType.yaml | 13 +- .../classes/LightArchivesRecordSetTypes.yaml | 30 +- .../modules/classes/LikelihoodScore.yaml | 4 +- .../modules/classes/LinkedDataEndpoint.yaml | 4 +- .../modules/classes/LinkedInProfile.yaml | 127 +- .../modules/classes/LiteraryArchive.yaml | 29 +- .../classes/LiteraryArchiveRecordSetType.yaml | 13 +- .../LiteraryArchiveRecordSetTypes.yaml | 42 +- .../modules/classes/LlmVerification.yaml | 8 +- .../linkml/modules/classes/LoadingDock.yaml | 4 +- .../20251121/linkml/modules/classes/Loan.yaml | 198 +- .../modules/classes/LocalCollection.yaml | 4 +- .../classes/LocalGovernmentArchive.yaml | 29 +- .../LocalGovernmentArchiveRecordSetType.yaml | 13 +- .../LocalGovernmentArchiveRecordSetTypes.yaml | 42 +- .../LocalHeritageInstitutionSweden.yaml | 19 +- .../modules/classes/LocalHistoryArchive.yaml | 29 +- .../LocalHistoryArchiveRecordSetType.yaml | 13 +- .../LocalHistoryArchiveRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/Locality.yaml | 17 +- .../linkml/modules/classes/Location.yaml | 20 +- .../modules/classes/LocationLibrary.yaml | 19 +- .../modules/classes/LocationResolution.yaml | 12 +- .../linkml/modules/classes/Locker.yaml | 4 +- .../linkml/modules/classes/LogoClaim.yaml | 18 +- .../modules/classes/LogoEnrichment.yaml | 6 +- .../classes/LogoEnrichmentSummary.yaml | 4 +- .../linkml/modules/classes/METSAPI.yaml | 17 +- .../modules/classes/MailingListArchive.yaml | 32 +- .../MailingListArchiveRecordSetType.yaml | 13 +- .../MailingListArchiveRecordSetTypes.yaml | 36 +- .../linkml/modules/classes/MainPart.yaml | 11 +- .../linkml/modules/classes/Manager.yaml | 16 +- .../linkml/modules/classes/Mandate.yaml | 8 +- .../linkml/modules/classes/Manufacturer.yaml | 25 +- .../linkml/modules/classes/MappingType.yaml | 37 +- .../linkml/modules/classes/MappingTypes.yaml | 36 +- .../modules/classes/MatchingSource.yaml | 4 +- .../linkml/modules/classes/Material.yaml | 40 +- .../linkml/modules/classes/MaterialType.yaml | 35 +- .../linkml/modules/classes/MaterialTypes.yaml | 4 +- .../modules/classes/MaximumHumidity.yaml | 8 +- .../modules/classes/MaximumQuantity.yaml | 3 +- .../linkml/modules/classes/MeanValue.yaml | 4 +- .../linkml/modules/classes/MeasureUnit.yaml | 18 +- .../linkml/modules/classes/Measurement.yaml | 10 +- .../modules/classes/MeasurementType.yaml | 9 +- .../modules/classes/MeasurementTypes.yaml | 6 +- .../modules/classes/MeasurementUnit.yaml | 10 +- .../modules/classes/MediaAppearanceEntry.yaml | 4 +- .../linkml/modules/classes/MediaArchive.yaml | 28 +- .../classes/MediaArchiveRecordSetType.yaml | 13 +- .../classes/MediaArchiveRecordSetTypes.yaml | 36 +- .../linkml/modules/classes/MediaObject.yaml | 10 +- .../linkml/modules/classes/MediaSegment.yaml | 5 +- .../linkml/modules/classes/Medienzentrum.yaml | 4 +- .../linkml/modules/classes/Member.yaml | 8 +- .../linkml/modules/classes/Membership.yaml | 6 +- .../linkml/modules/classes/Memento.yaml | 6 +- .../modules/classes/MerchandiseSale.yaml | 6 +- .../linkml/modules/classes/MergeNote.yaml | 4 +- .../modules/classes/MetadataStandard.yaml | 7 +- .../modules/classes/MetadataStandardType.yaml | 10 +- .../classes/MetadataStandardTypes.yaml | 4 +- .../linkml/modules/classes/Method.yaml | 4 +- .../linkml/modules/classes/Methodology.yaml | 37 +- .../modules/classes/MichelinStarRating.yaml | 4 +- .../modules/classes/MicrofilmReader.yaml | 4 +- .../modules/classes/MilitaryArchive.yaml | 27 +- .../classes/MilitaryArchiveRecordSetType.yaml | 14 +- .../MilitaryArchiveRecordSetTypes.yaml | 50 +- .../modules/classes/MinimumHumidity.yaml | 8 +- .../modules/classes/MissionStatement.yaml | 68 +- .../modules/classes/MixedCustodianType.yaml | 54 +- .../linkml/modules/classes/Model.yaml | 20 +- .../modules/classes/MonasteryArchive.yaml | 29 +- .../MonasteryArchiveRecordSetType.yaml | 13 +- .../MonasteryArchiveRecordSetTypes.yaml | 42 +- .../modules/classes/MowInscription.yaml | 4 +- .../modules/classes/MultilingualAliases.yaml | 4 +- .../classes/MultilingualDescriptions.yaml | 4 +- .../modules/classes/MultilingualLabels.yaml | 4 +- .../modules/classes/MunicipalArchive.yaml | 27 +- .../MunicipalArchiveRecordSetType.yaml | 14 +- .../MunicipalArchiveRecordSetTypes.yaml | 48 +- .../modules/classes/MunicipalityInfo.yaml | 6 +- .../linkml/modules/classes/MuseumArchive.yaml | 28 +- .../classes/MuseumArchiveRecordSetType.yaml | 12 +- .../classes/MuseumArchiveRecordSetTypes.yaml | 42 +- .../classes/MuseumRegisterEnrichment.yaml | 13 +- .../classes/MuseumRegisterProvenance.yaml | 4 +- .../linkml/modules/classes/MuseumType.yaml | 73 +- .../linkml/modules/classes/MusicArchive.yaml | 29 +- .../classes/MusicArchiveRecordSetType.yaml | 13 +- .../classes/MusicArchiveRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/MusicSegment.yaml | 24 - .../linkml/modules/classes/Nachlass.yaml | 19 +- .../20251121/linkml/modules/classes/Name.yaml | 20 +- .../linkml/modules/classes/NameType.yaml | 12 +- .../linkml/modules/classes/NameTypes.yaml | 18 +- .../modules/classes/NanIsilEnrichment.yaml | 8 +- .../modules/classes/NationalArchives.yaml | 29 +- .../NationalArchivesRecordSetType.yaml | 10 +- .../NationalArchivesRecordSetTypes.yaml | 48 +- .../modules/classes/NationalTreasure.yaml | 19 +- .../classes/NationalTreasureOfFrance.yaml | 17 +- .../linkml/modules/classes/NetAsset.yaml | 2 +- .../modules/classes/NetworkAnalysis.yaml | 25 +- .../classes/NewspaperClippingsArchive.yaml | 29 +- ...ewspaperClippingsArchiveRecordSetType.yaml | 13 +- ...wspaperClippingsArchiveRecordSetTypes.yaml | 36 +- .../modules/classes/NobilityArchive.yaml | 29 +- .../classes/NobilityArchiveRecordSetType.yaml | 13 +- .../NobilityArchiveRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/NonProfitType.yaml | 29 +- .../modules/classes/NormalizedLocation.yaml | 7 +- .../modules/classes/NotableExample.yaml | 10 +- .../modules/classes/NotarialArchive.yaml | 29 +- .../classes/NotarialArchiveRecordSetType.yaml | 12 +- .../NotarialArchiveRecordSetTypes.yaml | 36 +- .../20251121/linkml/modules/classes/Note.yaml | 32 +- .../linkml/modules/classes/Notes.yaml | 32 +- .../modules/classes/OAIPMHEndpoint.yaml | 20 +- .../linkml/modules/classes/Observation.yaml | 11 +- .../classes/OfficialInstitutionType.yaml | 38 +- .../modules/classes/OnlineNewsArchive.yaml | 32 +- .../OnlineNewsArchiveRecordSetType.yaml | 13 +- .../OnlineNewsArchiveRecordSetTypes.yaml | 36 +- .../linkml/modules/classes/OpeningHour.yaml | 2 +- .../linkml/modules/classes/OpeningHours.yaml | 5 +- .../modules/classes/OpeningHoursMap.yaml | 4 +- .../linkml/modules/classes/OpeningPeriod.yaml | 5 +- .../modules/classes/OperationalArchive.yaml | 4 +- .../modules/classes/OperationalUnit.yaml | 4 +- .../linkml/modules/classes/Organization.yaml | 19 +- .../modules/classes/OrganizationBranch.yaml | 88 +- .../modules/classes/OrganizationUnit.yaml | 2 +- .../modules/classes/OrganizationalChange.yaml | 4 +- .../classes/OrganizationalChangeEvent.yaml | 53 +- .../classes/OrganizationalStructure.yaml | 59 +- .../classes/OrganizationalSubdivision.yaml | 19 +- .../classes/OrganizationalUnitType.yaml | 32 +- .../classes/OrganizationalUnitTypes.yaml | 6 +- .../linkml/modules/classes/Organizer.yaml | 11 +- .../linkml/modules/classes/OrganizerRole.yaml | 8 +- .../linkml/modules/classes/OriginalEntry.yaml | 15 +- .../classes/OriginalEntryCoordinates.yaml | 4 +- .../classes/OriginalEntryIdentifier.yaml | 4 +- .../classes/OriginalEntryIdentifiersDict.yaml | 4 +- .../classes/OriginalEntryLocation.yaml | 5 +- .../classes/OriginalEntryWikidata.yaml | 4 +- .../modules/classes/OutdoorSeating.yaml | 4 +- .../linkml/modules/classes/OutdoorSite.yaml | 79 +- .../linkml/modules/classes/Output.yaml | 6 +- .../linkml/modules/classes/OutputData.yaml | 17 +- .../linkml/modules/classes/Overview.yaml | 39 +- .../linkml/modules/classes/Owner.yaml | 14 +- .../linkml/modules/classes/PageSection.yaml | 2 +- .../classes/ParentOrganizationUnit.yaml | 19 +- .../linkml/modules/classes/ParishArchive.yaml | 32 +- .../classes/ParishArchiveRecordSetType.yaml | 13 +- .../classes/ParishArchiveRecordSetTypes.yaml | 42 +- .../classes/ParliamentaryArchives.yaml | 32 +- .../ParliamentaryArchivesRecordSetType.yaml | 13 +- .../ParliamentaryArchivesRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/Participant.yaml | 4 +- .../linkml/modules/classes/PartyArchive.yaml | 32 +- .../classes/PartyArchiveRecordSetType.yaml | 13 +- .../classes/PartyArchiveRecordSetTypes.yaml | 36 +- .../classes/PatternClassification.yaml | 4 +- .../linkml/modules/classes/PaymentMethod.yaml | 8 +- .../linkml/modules/classes/Percentage.yaml | 4 +- .../classes/PerformingArtsArchive.yaml | 32 +- .../PerformingArtsArchiveRecordSetType.yaml | 13 +- .../PerformingArtsArchiveRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/Permission.yaml | 15 +- .../modules/classes/PermissionType.yaml | 2 +- .../modules/classes/PermissionTypes.yaml | 4 +- .../linkml/modules/classes/Person.yaml | 26 +- .../modules/classes/PersonConnection.yaml | 59 +- .../linkml/modules/classes/PersonName.yaml | 4 +- .../modules/classes/PersonObservation.yaml | 101 +- .../modules/classes/PersonOrOrganization.yaml | 22 +- .../linkml/modules/classes/PersonProfile.yaml | 8 +- .../modules/classes/PersonWebClaim.yaml | 40 +- .../classes/PersonalCollectionType.yaml | 48 +- .../linkml/modules/classes/PersonalData.yaml | 7 +- .../modules/classes/PersonalLibrary.yaml | 22 +- .../modules/classes/Personenstandsarchiv.yaml | 4 +- .../linkml/modules/classes/PhotoArchive.yaml | 32 +- .../classes/PhotoArchiveRecordSetType.yaml | 12 +- .../classes/PhotoArchiveRecordSetTypes.yaml | 42 +- .../modules/classes/PhotoAttribution.yaml | 4 +- .../linkml/modules/classes/PhotoMetadata.yaml | 5 +- .../linkml/modules/classes/Photography.yaml | 37 +- .../linkml/modules/classes/Place.yaml | 6 +- .../linkml/modules/classes/PlaceFeature.yaml | 4 +- .../linkml/modules/classes/PlaceType.yaml | 4 +- .../modules/classes/PlanarCoordinates.yaml | 2 +- .../linkml/modules/classes/Platform.yaml | 6 +- .../classes/PlatformSourceReference.yaml | 4 +- .../linkml/modules/classes/PlatformType.yaml | 4 +- .../linkml/modules/classes/Policy.yaml | 20 +- .../modules/classes/PoliticalArchive.yaml | 32 +- .../PoliticalArchiveRecordSetType.yaml | 13 +- .../PoliticalArchiveRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/Portal.yaml | 6 +- .../modules/classes/PostcustodialArchive.yaml | 29 +- .../PostcustodialArchiveRecordSetType.yaml | 13 +- .../PostcustodialArchiveRecordSetTypes.yaml | 30 +- .../linkml/modules/classes/Precision.yaml | 4 +- .../linkml/modules/classes/PressArchive.yaml | 28 +- .../classes/PressArchiveRecordSetType.yaml | 13 +- .../classes/PressArchiveRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/Price.yaml | 10 +- .../linkml/modules/classes/PriceRange.yaml | 8 +- .../linkml/modules/classes/Primary.yaml | 4 +- .../PrimaryDigitalPresenceAssertion.yaml | 71 +- .../linkml/modules/classes/PrintRoom.yaml | 19 +- .../modules/classes/ProcessorAgent.yaml | 4 +- .../modules/classes/ProductCategories.yaml | 3 +- .../modules/classes/ProductCategory.yaml | 4 +- .../linkml/modules/classes/ProfileData.yaml | 11 +- .../linkml/modules/classes/Profit.yaml | 4 +- .../linkml/modules/classes/Program.yaml | 9 +- .../linkml/modules/classes/ProgramType.yaml | 12 +- .../linkml/modules/classes/ProgramTypes.yaml | 4 +- .../linkml/modules/classes/Project.yaml | 86 +- .../linkml/modules/classes/Provenance.yaml | 49 +- .../modules/classes/ProvenanceBlock.yaml | 22 +- .../modules/classes/ProvenanceEvent.yaml | 103 +- .../modules/classes/ProvenancePath.yaml | 5 +- .../modules/classes/ProvenanceSources.yaml | 6 +- .../linkml/modules/classes/ProvinceInfo.yaml | 6 +- .../modules/classes/ProvincialArchive.yaml | 28 +- .../ProvincialArchiveRecordSetType.yaml | 13 +- .../ProvincialArchiveRecordSetTypes.yaml | 42 +- .../classes/ProvincialHistoricalArchive.yaml | 21 +- ...vincialHistoricalArchiveRecordSetType.yaml | 13 +- ...incialHistoricalArchiveRecordSetTypes.yaml | 30 +- .../linkml/modules/classes/PublicArchive.yaml | 29 +- .../classes/PublicArchiveRecordSetType.yaml | 13 +- .../classes/PublicArchiveRecordSetTypes.yaml | 42 +- .../classes/PublicArchivesInFrance.yaml | 29 +- .../PublicArchivesInFranceRecordSetType.yaml | 13 +- .../PublicArchivesInFranceRecordSetTypes.yaml | 30 +- .../linkml/modules/classes/Publication.yaml | 10 +- .../modules/classes/PublicationEntry.yaml | 4 +- .../modules/classes/PublicationEvent.yaml | 19 +- .../modules/classes/PublicationSeries.yaml | 4 +- .../linkml/modules/classes/Publisher.yaml | 34 +- .../linkml/modules/classes/Qualifier.yaml | 4 +- .../linkml/modules/classes/Quantity.yaml | 44 +- .../linkml/modules/classes/RadioArchive.yaml | 32 +- .../classes/RadioArchiveRecordSetType.yaml | 13 +- .../classes/RadioArchiveRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/Rationale.yaml | 7 +- .../linkml/modules/classes/RawSource.yaml | 4 +- .../linkml/modules/classes/ReadingRoom.yaml | 90 +- .../modules/classes/ReadingRoomAnnex.yaml | 76 +- .../linkml/modules/classes/Reason.yaml | 6 +- .../modules/classes/ReasoningContent.yaml | 12 +- .../modules/classes/ReconstructedEntity.yaml | 13 +- .../classes/ReconstructionActivity.yaml | 35 +- .../modules/classes/ReconstructionAgent.yaml | 31 +- .../modules/classes/RecordCycleStatus.yaml | 6 +- .../linkml/modules/classes/RecordSetType.yaml | 6 +- .../modules/classes/RecordSetTypes.yaml | 6 +- .../linkml/modules/classes/RecordStatus.yaml | 6 +- .../linkml/modules/classes/Reference.yaml | 9 +- .../linkml/modules/classes/ReferenceLink.yaml | 4 +- .../modules/classes/RegionalArchive.yaml | 30 +- .../classes/RegionalArchiveRecordSetType.yaml | 15 +- .../RegionalArchiveRecordSetTypes.yaml | 50 +- .../classes/RegionalArchivesInIceland.yaml | 32 +- ...egionalArchivesInIcelandRecordSetType.yaml | 13 +- ...gionalArchivesInIcelandRecordSetTypes.yaml | 30 +- .../classes/RegionalEconomicArchive.yaml | 32 +- .../RegionalEconomicArchiveRecordSetType.yaml | 13 +- ...RegionalEconomicArchiveRecordSetTypes.yaml | 30 +- .../classes/RegionalHistoricCenter.yaml | 20 +- .../classes/RegionalStateArchives.yaml | 32 +- .../RegionalStateArchivesRecordSetType.yaml | 13 +- .../RegionalStateArchivesRecordSetTypes.yaml | 30 +- .../classes/RegistrationAuthority.yaml | 27 +- .../modules/classes/RegistrationInfo.yaml | 68 +- .../modules/classes/RegistrationNumber.yaml | 4 +- .../classes/RejectedGoogleMapsData.yaml | 4 +- .../linkml/modules/classes/RelatedPlace.yaml | 4 +- .../linkml/modules/classes/RelatedType.yaml | 10 +- .../modules/classes/RelatedYoutubeVideo.yaml | 4 +- .../modules/classes/ReligiousArchive.yaml | 31 +- .../ReligiousArchiveRecordSetType.yaml | 13 +- .../ReligiousArchiveRecordSetTypes.yaml | 36 +- .../modules/classes/RequirementStatus.yaml | 39 +- .../modules/classes/RequirementType.yaml | 34 +- .../modules/classes/RequirementTypes.yaml | 4 +- .../linkml/modules/classes/Research.yaml | 4 +- .../modules/classes/ResearchCenter.yaml | 82 +- .../modules/classes/ResearchLibrary.yaml | 4 +- .../classes/ResearchOrganizationType.yaml | 52 +- .../modules/classes/ResearchSource.yaml | 5 +- .../modules/classes/ResearchSourceData.yaml | 8 +- .../linkml/modules/classes/Resolution.yaml | 24 +- .../linkml/modules/classes/ResourceType.yaml | 4 +- .../modules/classes/ResponseFormat.yaml | 7 +- .../modules/classes/ResponseFormatType.yaml | 10 +- .../modules/classes/ResponseFormatTypes.yaml | 9 +- .../modules/classes/Responsibility.yaml | 7 +- .../modules/classes/ResponsibilityType.yaml | 10 +- .../modules/classes/ResponsibilityTypes.yaml | 4 +- .../linkml/modules/classes/Restriction.yaml | 9 +- .../modules/classes/RetrievalAgent.yaml | 16 +- .../modules/classes/RetrievalEvent.yaml | 17 +- .../modules/classes/RetrievalMethod.yaml | 16 +- .../linkml/modules/classes/ReturnEvent.yaml | 15 +- .../linkml/modules/classes/Revenue.yaml | 2 +- .../modules/classes/ReviewBreakdown.yaml | 4 +- .../linkml/modules/classes/ReviewTopics.yaml | 4 +- .../modules/classes/ReviewsSummary.yaml | 4 +- .../linkml/modules/classes/Roadmap.yaml | 21 +- .../linkml/modules/classes/RoomUnit.yaml | 5 +- .../linkml/modules/classes/SceneSegment.yaml | 4 +- .../linkml/modules/classes/Schema.yaml | 6 +- .../linkml/modules/classes/SchoolArchive.yaml | 32 +- .../classes/SchoolArchiveRecordSetType.yaml | 13 +- .../classes/SchoolArchiveRecordSetTypes.yaml | 42 +- .../modules/classes/ScientificArchive.yaml | 32 +- .../ScientificArchiveRecordSetType.yaml | 13 +- .../ScientificArchiveRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/Scope.yaml | 6 +- .../linkml/modules/classes/ScopeType.yaml | 29 +- .../linkml/modules/classes/ScopeTypes.yaml | 67 +- .../linkml/modules/classes/SearchAPI.yaml | 22 +- .../linkml/modules/classes/SearchScore.yaml | 4 +- .../linkml/modules/classes/SectionLink.yaml | 4 +- .../classes/SectorOfArchivesInSweden.yaml | 32 +- ...SectorOfArchivesInSwedenRecordSetType.yaml | 12 +- ...ectorOfArchivesInSwedenRecordSetTypes.yaml | 30 +- .../modules/classes/SecurityArchives.yaml | 32 +- .../SecurityArchivesRecordSetType.yaml | 13 +- .../SecurityArchivesRecordSetTypes.yaml | 36 +- .../linkml/modules/classes/SecurityLevel.yaml | 4 +- .../modules/classes/SecuritySystem.yaml | 4 +- .../linkml/modules/classes/Segment.yaml | 6 +- .../modules/classes/SensitivityLevel.yaml | 6 +- .../linkml/modules/classes/Series.yaml | 17 - .../linkml/modules/classes/Service.yaml | 9 +- .../linkml/modules/classes/ServiceArea.yaml | 56 +- .../linkml/modules/classes/ServiceType.yaml | 10 +- .../linkml/modules/classes/ServiceTypes.yaml | 4 +- .../linkml/modules/classes/Setpoint.yaml | 22 +- .../linkml/modules/classes/Settlement.yaml | 22 +- .../linkml/modules/classes/ShortCode.yaml | 4 +- .../linkml/modules/classes/Significance.yaml | 15 +- .../modules/classes/SignificanceType.yaml | 12 +- .../modules/classes/SignificanceTypes.yaml | 6 +- .../modules/classes/SilenceSegment.yaml | 4 +- .../20251121/linkml/modules/classes/Size.yaml | 15 +- .../linkml/modules/classes/SnapshotPath.yaml | 6 +- .../modules/classes/SocialMediaContent.yaml | 58 +- .../classes/SocialMediaPlatformType.yaml | 33 +- .../classes/SocialMediaPlatformTypes.yaml | 46 +- .../modules/classes/SocialMediaPost.yaml | 59 +- .../modules/classes/SocialMediaPostType.yaml | 37 +- .../modules/classes/SocialMediaPostTypes.yaml | 85 +- .../modules/classes/SocialMediaProfile.yaml | 70 +- .../modules/classes/SocialNetworkMember.yaml | 16 +- .../linkml/modules/classes/SoundArchive.yaml | 29 +- .../classes/SoundArchiveRecordSetType.yaml | 10 +- .../classes/SoundArchiveRecordSetTypes.yaml | 42 +- .../modules/classes/SoundEventType.yaml | 4 +- .../linkml/modules/classes/Source.yaml | 18 +- .../modules/classes/SourceCommentCount.yaml | 12 +- .../modules/classes/SourceCoordinates.yaml | 4 +- .../modules/classes/SourceDocument.yaml | 26 +- .../modules/classes/SourceProvenance.yaml | 4 +- .../linkml/modules/classes/SourceRecord.yaml | 8 +- .../modules/classes/SourceReference.yaml | 4 +- .../modules/classes/SourceStaffEntry.yaml | 5 +- .../linkml/modules/classes/SourceWork.yaml | 2 +- .../linkml/modules/classes/Speaker.yaml | 18 +- .../modules/classes/SpecialCollection.yaml | 37 +- .../SpecialCollectionRecordSetType.yaml | 15 +- .../modules/classes/SpecializedArchive.yaml | 29 +- .../SpecializedArchiveRecordSetType.yaml | 10 +- .../SpecializedArchiveRecordSetTypes.yaml | 30 +- .../classes/SpecializedArchivesCzechia.yaml | 29 +- ...ecializedArchivesCzechiaRecordSetType.yaml | 10 +- ...cializedArchivesCzechiaRecordSetTypes.yaml | 30 +- .../linkml/modules/classes/Species.yaml | 4 +- ...yAnnotation.yaml => SpecificityScore.yaml} | 25 +- .../linkml/modules/classes/SpeechSegment.yaml | 27 - .../linkml/modules/classes/Staff.yaml | 8 +- .../linkml/modules/classes/StaffRole.yaml | 68 +- .../linkml/modules/classes/StaffRoles.yaml | 78 +- .../linkml/modules/classes/Standard.yaml | 45 +- .../classes/StandardsOrganization.yaml | 20 +- .../linkml/modules/classes/StateArchives.yaml | 29 +- .../classes/StateArchivesRecordSetType.yaml | 10 +- .../classes/StateArchivesRecordSetTypes.yaml | 48 +- .../modules/classes/StateArchivesSection.yaml | 29 +- .../StateArchivesSectionRecordSetType.yaml | 10 +- .../StateArchivesSectionRecordSetTypes.yaml | 30 +- .../modules/classes/StateDistrictArchive.yaml | 29 +- .../StateDistrictArchiveRecordSetType.yaml | 10 +- .../StateDistrictArchiveRecordSetTypes.yaml | 30 +- .../classes/StateRegionalArchiveCzechia.yaml | 29 +- ...teRegionalArchiveCzechiaRecordSetType.yaml | 10 +- ...eRegionalArchiveCzechiaRecordSetTypes.yaml | 30 +- .../linkml/modules/classes/StatementType.yaml | 37 +- .../modules/classes/StatementTypes.yaml | 28 +- .../linkml/modules/classes/Status.yaml | 12 +- .../linkml/modules/classes/Storage.yaml | 85 +- .../modules/classes/StorageCondition.yaml | 141 +- .../classes/StorageConditionPolicy.yaml | 69 +- .../modules/classes/StorageFacility.yaml | 27 - .../modules/classes/StorageLocation.yaml | 40 +- .../linkml/modules/classes/StorageSystem.yaml | 4 +- .../linkml/modules/classes/StorageType.yaml | 99 +- .../linkml/modules/classes/StorageUnit.yaml | 66 +- .../modules/classes/StrategicObjective.yaml | 4 +- .../linkml/modules/classes/SubGuideType.yaml | 37 +- .../linkml/modules/classes/SubGuideTypes.yaml | 28 +- .../linkml/modules/classes/Subregion.yaml | 17 +- .../classes/SubsidiaryOrganization.yaml | 35 +- .../linkml/modules/classes/Summary.yaml | 4 +- .../modules/classes/SupervisedHandling.yaml | 4 +- .../linkml/modules/classes/Supplier.yaml | 40 +- .../linkml/modules/classes/SupplierType.yaml | 16 +- .../linkml/modules/classes/SupplierTypes.yaml | 4 +- .../20251121/linkml/modules/classes/Tag.yaml | 52 +- .../modules/classes/TargetHumidity.yaml | 8 +- .../classes/TasteScentHeritageType.yaml | 60 +- .../modules/classes/TasteScentSubType.yaml | 10 +- .../modules/classes/TasteScentSubTypes.yaml | 4 +- .../modules/classes/TaxDeductibility.yaml | 34 +- .../modules/classes/TaxDeductibilityType.yaml | 10 +- .../classes/TaxDeductibilityTypes.yaml | 4 +- .../linkml/modules/classes/TaxScheme.yaml | 51 +- .../linkml/modules/classes/TaxSchemeType.yaml | 6 +- .../modules/classes/TaxSchemeTypes.yaml | 4 +- .../linkml/modules/classes/Taxon.yaml | 16 +- .../linkml/modules/classes/TaxonName.yaml | 6 +- .../modules/classes/TaxonomicAuthority.yaml | 53 +- .../modules/classes/TechnicalFeature.yaml | 7 +- .../modules/classes/TechnicalFeatureType.yaml | 10 +- .../classes/TechnicalFeatureTypes.yaml | 4 +- .../linkml/modules/classes/Technique.yaml | 29 +- .../linkml/modules/classes/TechniqueType.yaml | 12 +- .../modules/classes/TechniqueTypes.yaml | 4 +- .../classes/TechnologicalInfrastructure.yaml | 36 +- .../TechnologicalInfrastructureType.yaml | 12 +- .../TechnologicalInfrastructureTypes.yaml | 10 +- .../modules/classes/TelevisionArchive.yaml | 29 +- .../TelevisionArchiveRecordSetType.yaml | 10 +- .../TelevisionArchiveRecordSetTypes.yaml | 42 +- .../modules/classes/TemperatureDeviation.yaml | 24 +- .../classes/TemplateSpecificityScore.yaml | 8 +- .../classes/TemplateSpecificityType.yaml | 6 +- .../classes/TemplateSpecificityTypes.yaml | 4 +- .../modules/classes/TemporaryLocation.yaml | 65 +- .../classes/TentativeWorldHeritageSite.yaml | 37 +- .../20251121/linkml/modules/classes/Text.yaml | 14 +- .../linkml/modules/classes/TextDirection.yaml | 8 +- .../linkml/modules/classes/TextRegion.yaml | 4 +- .../linkml/modules/classes/TextSegment.yaml | 4 +- .../linkml/modules/classes/TextType.yaml | 39 +- .../linkml/modules/classes/TextTypes.yaml | 60 +- .../linkml/modules/classes/ThematicRoute.yaml | 101 +- .../linkml/modules/classes/ThinkingMode.yaml | 16 +- .../linkml/modules/classes/Threat.yaml | 5 +- .../linkml/modules/classes/ThreatType.yaml | 10 +- .../linkml/modules/classes/ThreatTypes.yaml | 4 +- .../linkml/modules/classes/Thumbnail.yaml | 10 +- .../linkml/modules/classes/TimeEntry.yaml | 5 +- .../linkml/modules/classes/TimeEntryType.yaml | 4 +- .../linkml/modules/classes/TimeInterval.yaml | 4 +- .../linkml/modules/classes/TimeSlot.yaml | 4 +- .../linkml/modules/classes/TimeSpan.yaml | 26 +- .../linkml/modules/classes/TimeSpanType.yaml | 6 +- .../linkml/modules/classes/TimeSpanTypes.yaml | 4 +- .../linkml/modules/classes/TimespanBlock.yaml | 12 +- .../linkml/modules/classes/Timestamp.yaml | 24 +- .../linkml/modules/classes/Title.yaml | 4 +- .../linkml/modules/classes/TitleType.yaml | 10 +- .../linkml/modules/classes/TitleTypes.yaml | 4 +- .../linkml/modules/classes/Token.yaml | 58 +- .../linkml/modules/classes/TokenType.yaml | 18 +- .../linkml/modules/classes/TokenTypes.yaml | 16 +- .../linkml/modules/classes/Topic.yaml | 31 +- .../linkml/modules/classes/TopicType.yaml | 25 +- .../linkml/modules/classes/TopicTypes.yaml | 4 +- .../modules/classes/TrackIdentifier.yaml | 8 +- .../linkml/modules/classes/TradeRegister.yaml | 50 +- .../modules/classes/TradeUnionArchive.yaml | 34 +- .../TradeUnionArchiveRecordSetType.yaml | 14 +- .../TradeUnionArchiveRecordSetTypes.yaml | 49 +- .../classes/TraditionalProductType.yaml | 10 +- .../classes/TraditionalProductTypes.yaml | 4 +- .../modules/classes/TranscriptFormat.yaml | 4 +- .../linkml/modules/classes/TransferEvent.yaml | 28 +- .../modules/classes/TransferPolicy.yaml | 28 +- .../modules/classes/TransitionType.yaml | 39 +- .../modules/classes/TransitionTypes.yaml | 44 +- .../modules/classes/TransmissionMethod.yaml | 6 +- .../linkml/modules/classes/Treatment.yaml | 2 +- .../linkml/modules/classes/TreatmentType.yaml | 40 +- .../modules/classes/TreatmentTypes.yaml | 6 +- .../20251121/linkml/modules/classes/Type.yaml | 4 +- .../linkml/modules/classes/TypeStatus.yaml | 6 +- .../linkml/modules/classes/UNESCODomain.yaml | 7 +- .../modules/classes/UNESCODomainType.yaml | 10 +- .../modules/classes/UNESCODomainTypes.yaml | 4 +- .../modules/classes/UNESCOListStatus.yaml | 4 +- .../20251121/linkml/modules/classes/URL.yaml | 22 +- .../linkml/modules/classes/URLType.yaml | 10 +- .../linkml/modules/classes/URLTypes.yaml | 4 +- .../modules/classes/UnescoIchElement.yaml | 6 +- .../modules/classes/UnescoIchEnrichment.yaml | 5 +- .../20251121/linkml/modules/classes/Unit.yaml | 6 +- .../modules/classes/UnitIdentifier.yaml | 6 +- .../linkml/modules/classes/University.yaml | 4 +- .../modules/classes/UniversityArchive.yaml | 32 +- .../UniversityArchiveRecordSetType.yaml | 10 +- .../UniversityArchiveRecordSetTypes.yaml | 42 +- .../modules/classes/UnspecifiedType.yaml | 42 +- .../modules/classes/UpdateFrequency.yaml | 14 +- .../linkml/modules/classes/UseCase.yaml | 17 +- .../linkml/modules/classes/UserCommunity.yaml | 7 +- .../modules/classes/UserCommunityType.yaml | 10 +- .../modules/classes/UserCommunityTypes.yaml | 4 +- .../modules/classes/ValidationMetadata.yaml | 4 +- .../modules/classes/ValidationStatus.yaml | 6 +- .../linkml/modules/classes/Value.yaml | 4 +- .../linkml/modules/classes/VariantType.yaml | 12 +- .../linkml/modules/classes/VariantTypes.yaml | 10 +- .../linkml/modules/classes/Ventilation.yaml | 5 +- .../linkml/modules/classes/Venue.yaml | 7 +- .../linkml/modules/classes/VenueType.yaml | 10 +- .../linkml/modules/classes/VenueTypes.yaml | 4 +- .../linkml/modules/classes/Vereinsarchiv.yaml | 39 +- .../classes/VereinsarchivRecordSetType.yaml | 18 +- .../modules/classes/VerificationStatus.yaml | 4 +- .../linkml/modules/classes/Verifier.yaml | 2 +- .../linkml/modules/classes/Verlagsarchiv.yaml | 32 +- .../classes/VerlagsarchivRecordSetType.yaml | 15 +- .../linkml/modules/classes/Version.yaml | 12 +- .../linkml/modules/classes/VersionNumber.yaml | 6 +- .../modules/classes/Verwaltungsarchiv.yaml | 34 +- .../VerwaltungsarchivRecordSetType.yaml | 15 +- .../modules/classes/ViabilityStatus.yaml | 8 +- .../linkml/modules/classes/Video.yaml | 19 +- .../modules/classes/VideoAnnotation.yaml | 68 +- .../modules/classes/VideoAnnotationTypes.yaml | 134 +- .../modules/classes/VideoAudioAnnotation.yaml | 127 +- .../classes/VideoCategoryIdentifier.yaml | 6 +- .../linkml/modules/classes/VideoChapter.yaml | 50 +- .../modules/classes/VideoChapterList.yaml | 35 +- .../linkml/modules/classes/VideoFrame.yaml | 16 +- .../linkml/modules/classes/VideoFrames.yaml | 7 +- .../modules/classes/VideoIdentifier.yaml | 6 +- .../linkml/modules/classes/VideoPost.yaml | 125 +- .../linkml/modules/classes/VideoSubtitle.yaml | 72 +- .../modules/classes/VideoTextContent.yaml | 62 +- .../modules/classes/VideoTimeSegment.yaml | 34 +- .../modules/classes/VideoTranscript.yaml | 38 +- .../modules/classes/VisitingScholar.yaml | 6 +- .../20251121/linkml/modules/classes/WKT.yaml | 10 +- .../linkml/modules/classes/Warehouse.yaml | 66 +- .../linkml/modules/classes/WarehouseType.yaml | 42 +- .../modules/classes/WarehouseTypes.yaml | 6 +- .../linkml/modules/classes/WebArchive.yaml | 34 +- .../modules/classes/WebArchiveFailure.yaml | 4 +- .../classes/WebArchiveRecordSetType.yaml | 10 +- .../classes/WebArchiveRecordSetTypes.yaml | 36 +- .../linkml/modules/classes/WebClaim.yaml | 72 +- .../modules/classes/WebClaimsBlock.yaml | 16 +- .../linkml/modules/classes/WebCollection.yaml | 4 +- .../linkml/modules/classes/WebEnrichment.yaml | 13 +- .../linkml/modules/classes/WebLink.yaml | 41 +- .../modules/classes/WebObservation.yaml | 50 +- .../linkml/modules/classes/WebPage.yaml | 4 +- .../linkml/modules/classes/WebPlatform.yaml | 6 +- .../linkml/modules/classes/WebPortal.yaml | 154 +- .../linkml/modules/classes/WebPortalType.yaml | 43 +- .../modules/classes/WebPortalTypes.yaml | 84 +- .../linkml/modules/classes/WebSource.yaml | 6 +- .../modules/classes/WhatsAppProfile.yaml | 4 +- .../20251121/linkml/modules/classes/Wifi.yaml | 4 +- .../linkml/modules/classes/WikiDataEntry.yaml | 36 +- .../modules/classes/WikiDataIdentifier.yaml | 4 +- .../modules/classes/WikidataAlignment.yaml | 24 +- .../modules/classes/WikidataApiMetadata.yaml | 4 +- .../modules/classes/WikidataArchitecture.yaml | 5 +- .../modules/classes/WikidataClaims.yaml | 4 +- .../classes/WikidataClassification.yaml | 5 +- .../classes/WikidataCollectionInfo.yaml | 4 +- .../modules/classes/WikidataContact.yaml | 4 +- .../modules/classes/WikidataCoordinates.yaml | 4 +- .../modules/classes/WikidataEnrichment.yaml | 27 +- .../modules/classes/WikidataEntity.yaml | 4 +- .../modules/classes/WikidataIdentifiers.yaml | 4 +- .../modules/classes/WikidataLocation.yaml | 6 +- .../linkml/modules/classes/WikidataMedia.yaml | 4 +- .../modules/classes/WikidataOrganization.yaml | 5 +- .../modules/classes/WikidataRecognition.yaml | 5 +- .../classes/WikidataResolvedEntities.yaml | 4 +- .../modules/classes/WikidataSitelinks.yaml | 4 +- .../modules/classes/WikidataSocialMedia.yaml | 4 +- .../modules/classes/WikidataTemporal.yaml | 7 +- .../modules/classes/WikidataTimeValue.yaml | 4 +- .../linkml/modules/classes/WikidataWeb.yaml | 4 +- .../modules/classes/WomensArchives.yaml | 29 +- .../classes/WomensArchivesRecordSetType.yaml | 10 +- .../classes/WomensArchivesRecordSetTypes.yaml | 42 +- .../linkml/modules/classes/WordCount.yaml | 4 +- .../modules/classes/WorkExperience.yaml | 41 +- .../linkml/modules/classes/WorkRevision.yaml | 4 +- .../modules/classes/WorldCatIdentifier.yaml | 6 +- .../modules/classes/WorldHeritageSite.yaml | 37 +- .../linkml/modules/classes/WritingSystem.yaml | 4 +- .../linkml/modules/classes/XPath.yaml | 4 +- .../linkml/modules/classes/XPathScore.yaml | 4 +- .../modules/classes/YoutubeChannel.yaml | 7 +- .../modules/classes/YoutubeComment.yaml | 4 +- .../modules/classes/YoutubeEnrichment.yaml | 33 +- .../modules/classes/YoutubeProvenance.yaml | 6 +- .../modules/classes/YoutubeSocialLink.yaml | 4 +- .../modules/classes/YoutubeSourceRecord.yaml | 6 +- .../modules/classes/YoutubeTranscript.yaml | 4 +- .../linkml/modules/classes/YoutubeVideo.yaml | 14 +- .../deprecated/FindingAidMetadata.yaml | 170 +- .../enums/AttestationConfidenceEnum.yaml | 175 + .../enums/OAIDeletedRecordPolicyEnum.yaml | 2 +- .../20251121/linkml/modules/metadata.yaml | 3 +- .../modules/slots/20260202_matang/accept.yaml | 106 + .../modules/slots/20260202_matang/affect.yaml | 75 + .../slots/20260202_matang/aggregate_from.yaml | 88 + .../slots/20260202_matang/allocate.yaml | 76 + .../modules/slots/20260202_matang/allow.yaml | 93 + .../slots/20260202_matang/analyze.yaml | 112 + .../slots/20260202_matang/apply_to.yaml | 112 + .../modules/slots/20260202_matang/assert.yaml | 121 + .../20260202_matang/begin_of_the_begin.yaml | 128 + .../20260202_matang/begin_of_the_end.yaml | 126 + .../slots/20260202_matang/categorized_as.yaml | 182 + .../slots/20260202_matang/ceased_through.yaml | 146 + .../20260202_matang/changed_through.yaml | 63 + .../slots/20260202_matang/collect.yaml | 160 + .../slots/20260202_matang/fulfilled_by.yaml | 123 + .../slots/20260202_matang/has_score.yaml | 141 + .../slots/20260202_matang/has_url.yaml | 125 + .../slots/20260202_matang/identified_by.yaml | 156 + .../slots/20260202_matang/replied_to.yaml | 87 +- .../slots/20260202_matang/retrieved_from.yaml | 138 + .../slots/ANNOTATION_TO_SLOT_MIGRATION.md | 138 - .../modules/slots/accepts_or_accepted.yaml | 44 - .../slots/aggregates_or_aggregated_from.yaml | 48 - .../modules/slots/allows_or_allowed.yaml | 34 - .../modules/slots/analyzes_or_analyzed.yaml | 63 - .../linkml/modules/slots/api_ver.yaml | 0 .../modules/slots/applies_or_applied_to.yaml | 36 - .../linkml/modules/slots/archive_path.yaml | 2 +- .../modules/slots/asserts_or_asserted.yaml | 46 - .../modules/slots/basionym_authority.yaml | 0 .../modules/slots/begin_of_the_begin.yaml | 80 - .../modules/slots/begin_of_the_end.yaml | 68 - .../slots/can_or_could_be_fulfilled_by.yaml | 37 - .../slots/can_or_could_be_retrieved_from.yaml | 34 - .../slots/catalogues_or_catalogued.yaml | 2 +- .../slots/ceases_or_ceased_through.yaml | 28 - .../changes_or_changed_ownership_from.yaml | 2 +- .../changes_or_changed_ownership_to.yaml | 2 +- .../slots/changes_or_changed_through.yaml | 18 - .../slots/classifies_or_classified.yaml | 2 +- .../modules/slots/collects_or_collected.yaml | 45 - .../slots/complies_or_complied_with.yaml | 6 +- .../slots/connection_heritage_relevant.yaml | 2 +- .../slots/connection_heritage_type.yaml | 2 +- .../modules/slots/conservation_lab.yaml | 2 +- .../modules/slots/contains_or_contained.yaml | 2 +- .../contains_or_contained_collection.yaml | 4 +- .../contains_or_contained_contains_unit.yaml | 4 +- ...ntains_or_contained_covers_settlement.yaml | 6 +- .../modules/slots/contains_storage.yaml | 4 +- .../slots/contributes_or_contributed.yaml | 4 +- .../linkml/modules/slots/contributes_to.yaml | 4 +- .../slots/conversion_source_population.yaml | 2 +- .../slots/conversion_target_action.yaml | 2 +- .../modules/slots/conversion_type_label.yaml | 2 +- .../linkml/modules/slots/cost_usd.yaml | 2 +- .../linkml/modules/slots/country.yaml | 4 +- .../linkml/modules/slots/country_name.yaml | 2 +- .../slots/cover_or_covered_subregion.yaml | 6 +- .../linkml/modules/slots/covers_country.yaml | 4 +- .../modules/slots/created_by_project.yaml | 4 +- .../linkml/modules/slots/creation_place.yaml | 4 +- .../modules/slots/creation_timespan.yaml | 4 +- .../linkml/modules/slots/creator.yaml | 2 +- .../linkml/modules/slots/css_selector.yaml | 2 +- .../linkml/modules/slots/curated_holding.yaml | 4 +- .../linkml/modules/slots/current_keeper.yaml | 2 +- .../modules/slots/current_location.yaml | 4 +- .../linkml/modules/slots/custodian.yaml | 6 +- .../modules/slots/custodian_type_broader.yaml | 4 +- .../slots/custodian_type_narrower.yaml | 4 +- .../modules/slots/custodian_type_related.yaml | 4 +- .../modules/slots/custody_received_by.yaml | 2 +- .../20251121/linkml/modules/slots/date.yaml | 2 +- .../modules/slots/defines_or_defined.yaml | 4 +- .../slots/derives_or_derived_from.yaml | 2 +- .../modules/slots/describes_or_described.yaml | 4 +- .../slots/documents_or_documented.yaml | 2 +- .../modules/slots/draws_or_drew_opinion.yaml | 4 +- .../slots/emphasizes_or_emphasized.yaml | 2 +- .../slots/encompasses_or_encompassed.yaml | 4 +- .../modules/slots/end_of_the_begin.yaml | 5 +- .../linkml/modules/slots/end_of_the_end.yaml | 5 +- .../linkml/modules/slots/end_seconds.yaml | 0 .../linkml/modules/slots/end_time.yaml | 0 .../modules/slots/estimates_or_estimated.yaml | 4 +- .../modules/slots/excludes_or_excluded.yaml | 2 +- .../modules/slots/exhibits_or_exhibited.yaml | 4 +- .../modules/slots/expires_on_expired_at.yaml | 6 +- .../modules/slots/exposes_or_exposed.yaml | 4 +- .../linkml/modules/slots/field_number.yaml | 0 .../modules/slots/filters_or_filtered.yaml | 2 +- .../modules/slots/final_of_the_final.yaml | 4 +- .../linkml/modules/slots/foo_bar.yaml | 0 .../modules/slots/generates_or_generated.yaml | 4 +- .../modules/slots/grants_or_granted.yaml | 4 +- .../grants_or_granted_access_through.yaml | 2 +- .../modules/slots/habitat_description.yaml | 0 .../linkml/modules/slots/has_api_version.yaml | 0 .../slots/has_architectural_style.yaml | 0 .../modules/slots/has_archive_path.yaml | 0 .../modules/slots/has_heritage_type.yaml | 0 .../slots/has_or_had_accreditation.yaml | 0 .../slots/has_or_had_accumulation.yaml | 4 +- .../modules/slots/has_or_had_activity.yaml | 6 +- .../slots/has_or_had_administration.yaml | 4 +- .../modules/slots/has_or_had_affiliation.yaml | 6 +- .../linkml/modules/slots/has_or_had_age.yaml | 2 +- .../modules/slots/has_or_had_alignment.yaml | 6 +- .../modules/slots/has_or_had_altitude.yaml | 4 +- .../modules/slots/has_or_had_annotation.yaml | 4 +- .../modules/slots/has_or_had_archive.yaml | 4 +- .../linkml/modules/slots/has_or_had_area.yaml | 4 +- .../modules/slots/has_or_had_arrangement.yaml | 4 +- .../slots/has_or_had_arrangement_level.yaml | 4 +- .../modules/slots/has_or_had_asset.yaml | 4 +- .../modules/slots/has_or_had_author.yaml | 6 +- .../modules/slots/has_or_had_authority.yaml | 2 +- .../slots/has_or_had_auxiliary_entities.yaml | 4 +- .../linkml/modules/slots/has_or_had_base.yaml | 2 +- .../modules/slots/has_or_had_boundary.yaml | 4 +- .../modules/slots/has_or_had_branch.yaml | 4 +- .../modules/slots/has_or_had_budget.yaml | 4 +- .../slots/has_or_had_canonical_form.yaml | 8 +- .../modules/slots/has_or_had_capacity.yaml | 8 +- .../modules/slots/has_or_had_caption.yaml | 8 +- .../modules/slots/has_or_had_carrier.yaml | 6 +- .../modules/slots/has_or_had_category.yaml | 42 - .../modules/slots/has_or_had_chapter.yaml | 4 +- .../linkml/modules/slots/has_or_had_code.yaml | 2 +- .../modules/slots/has_or_had_collection.yaml | 6 +- .../modules/slots/has_or_had_comment.yaml | 4 +- .../modules/slots/has_or_had_component.yaml | 2 +- .../modules/slots/has_or_had_condition.yaml | 4 +- .../modules/slots/has_or_had_confidence.yaml | 4 +- .../slots/has_or_had_contact_details.yaml | 2 +- .../modules/slots/has_or_had_coordinates.yaml | 2 - .../modules/slots/has_or_had_currency.yaml | 4 +- .../modules/slots/has_or_had_custodian.yaml | 4 +- .../slots/has_or_had_custodian_name.yaml | 0 .../has_or_had_custodian_observation.yaml | 0 .../slots/has_or_had_data_quality_notes.yaml | 4 +- .../modules/slots/has_or_had_degree.yaml | 2 +- .../modules/slots/has_or_had_detected.yaml | 2 +- .../modules/slots/has_or_had_device.yaml | 4 +- .../slots/has_or_had_digital_platform.yaml | 6 +- .../slots/has_or_had_digital_presence.yaml | 2 +- .../modules/slots/has_or_had_direction.yaml | 2 +- .../modules/slots/has_or_had_document.yaml | 4 +- .../modules/slots/has_or_had_domain.yaml | 4 +- .../modules/slots/has_or_had_drawer.yaml | 6 +- .../modules/slots/has_or_had_edition.yaml | 4 +- .../modules/slots/has_or_had_email.yaml | 6 +- .../modules/slots/has_or_had_endpoint.yaml | 4 +- .../slots/has_or_had_engagement_metric.yaml | 2 +- .../modules/slots/has_or_had_equipment.yaml | 4 +- .../slots/has_or_had_equipment_type.yaml | 4 +- .../modules/slots/has_or_had_example.yaml | 6 +- .../modules/slots/has_or_had_exhibition.yaml | 4 +- .../modules/slots/has_or_had_expense.yaml | 4 +- .../slots/has_or_had_expertise_in.yaml | 6 +- .../modules/slots/has_or_had_facility.yaml | 4 +- .../modules/slots/has_or_had_feature.yaml | 4 +- .../linkml/modules/slots/has_or_had_fee.yaml | 4 +- .../slots/has_or_had_file_location.yaml | 4 +- .../modules/slots/has_or_had_fixity.yaml | 2 +- .../linkml/modules/slots/has_or_had_flag.yaml | 4 +- .../modules/slots/has_or_had_focus.yaml | 2 +- .../modules/slots/has_or_had_format.yaml | 2 +- .../modules/slots/has_or_had_frequency.yaml | 6 +- .../modules/slots/has_or_had_function.yaml | 8 +- .../modules/slots/has_or_had_funded.yaml | 2 +- .../modules/slots/has_or_had_geofeature.yaml | 4 +- .../has_or_had_geographic_subdivision.yaml | 2 +- .../slots/has_or_had_geometric_extent.yaml | 2 +- .../modules/slots/has_or_had_geometry.yaml | 2 +- .../modules/slots/has_or_had_habitat.yaml | 2 +- .../linkml/modules/slots/has_or_had_head.yaml | 4 +- .../modules/slots/has_or_had_hypernym.yaml | 2 +- .../modules/slots/has_or_had_hyponym.yaml | 4 +- .../modules/slots/has_or_had_identifier.yaml | 15 - .../modules/slots/has_or_had_image.yaml | 4 +- .../slots/has_or_had_index_number.yaml | 2 +- .../modules/slots/has_or_had_interface.yaml | 2 +- .../modules/slots/has_or_had_investment.yaml | 4 +- .../modules/slots/has_or_had_key_contact.yaml | 4 +- .../modules/slots/has_or_had_language.yaml | 8 +- .../modules/slots/has_or_had_liability.yaml | 4 +- .../modules/slots/has_or_had_main_part.yaml | 8 +- .../modules/slots/has_or_had_mandate.yaml | 6 +- .../linkml/modules/slots/has_or_had_mean.yaml | 4 +- .../modules/slots/has_or_had_measurement.yaml | 2 +- .../slots/has_or_had_measurement_type.yaml | 2 +- .../slots/has_or_had_measurement_unit.yaml | 4 +- .../modules/slots/has_or_had_member.yaml | 4 +- .../modules/slots/has_or_had_method.yaml | 4 +- .../modules/slots/has_or_had_methodology.yaml | 4 +- .../linkml/modules/slots/has_or_had_mode.yaml | 2 +- .../linkml/modules/slots/has_or_had_name.yaml | 2 +- .../modules/slots/has_or_had_notation.yaml | 2 +- .../linkml/modules/slots/has_or_had_note.yaml | 4 +- .../slots/has_or_had_opening_hour.yaml | 4 +- .../has_or_had_organization_profile.yaml | 4 +- .../slots/has_or_had_organization_status.yaml | 4 +- .../modules/slots/has_or_had_organizer.yaml | 2 +- .../modules/slots/has_or_had_origin.yaml | 2 +- .../modules/slots/has_or_had_output.yaml | 6 +- .../modules/slots/has_or_had_parent.yaml | 2 +- .../slots/has_or_had_participated_in.yaml | 2 +- .../modules/slots/has_or_had_percentage.yaml | 6 +- .../modules/slots/has_or_had_period.yaml | 2 +- .../modules/slots/has_or_had_place.yaml | 4 +- .../modules/slots/has_or_had_policy.yaml | 4 +- .../modules/slots/has_or_had_price.yaml | 2 +- .../slots/has_or_had_primary_platform.yaml | 4 +- .../modules/slots/has_or_had_profile.yaml | 2 +- .../modules/slots/has_or_had_provenance.yaml | 6 +- .../slots/has_or_had_provenance_path.yaml | 4 +- .../modules/slots/has_or_had_publisher.yaml | 6 +- .../modules/slots/has_or_had_qualifier.yaml | 4 +- .../modules/slots/has_or_had_quantity.yaml | 4 +- .../modules/slots/has_or_had_range.yaml | 6 +- .../modules/slots/has_or_had_rating.yaml | 2 +- .../modules/slots/has_or_had_rationale.yaml | 4 +- .../modules/slots/has_or_had_reason.yaml | 4 +- .../modules/slots/has_or_had_reply.yaml | 81 - .../modules/slots/has_or_had_requirement.yaml | 8 +- .../modules/slots/has_or_had_resolution.yaml | 6 +- .../slots/has_or_had_responsibility.yaml | 4 +- .../modules/slots/has_or_had_restriction.yaml | 4 +- .../modules/slots/has_or_had_revenue.yaml | 6 +- .../modules/slots/has_or_had_roadmap.yaml | 6 +- .../linkml/modules/slots/has_or_had_role.yaml | 2 +- .../modules/slots/has_or_had_schema.yaml | 2 +- .../modules/slots/has_or_had_scheme.yaml | 4 +- .../modules/slots/has_or_had_scope.yaml | 4 +- .../modules/slots/has_or_had_section.yaml | 4 +- .../slots/has_or_had_sensitivity_level.yaml | 2 +- .../modules/slots/has_or_had_service.yaml | 4 +- .../slots/has_or_had_service_area.yaml | 6 +- .../slots/has_or_had_service_details.yaml | 4 +- .../modules/slots/has_or_had_setpoint.yaml | 8 +- .../slots/has_or_had_significance.yaml | 2 +- .../linkml/modules/slots/has_or_had_size.yaml | 6 +- .../has_or_had_social_media_profile.yaml | 6 +- .../modules/slots/has_or_had_source.yaml | 2 +- .../modules/slots/has_or_had_staff.yaml | 4 +- .../slots/has_or_had_staff_member.yaml | 4 +- .../modules/slots/has_or_had_standard.yaml | 2 +- .../modules/slots/has_or_had_status.yaml | 2 +- .../modules/slots/has_or_had_style.yaml | 4 +- .../modules/slots/has_or_had_subject.yaml | 2 +- .../modules/slots/has_or_had_summary.yaml | 4 +- .../modules/slots/has_or_had_supplier.yaml | 2 +- .../modules/slots/has_or_had_symbolism.yaml | 4 +- ...s_or_had_technological_infrastructure.yaml | 2 +- .../linkml/modules/slots/has_or_had_text.yaml | 4 +- .../modules/slots/has_or_had_threshold.yaml | 8 +- .../modules/slots/has_or_had_thumbnail.yaml | 2 +- .../linkml/modules/slots/has_or_had_tier.yaml | 2 +- .../slots/has_or_had_time_interval.yaml | 6 +- .../modules/slots/has_or_had_title.yaml | 2 +- .../modules/slots/has_or_had_token.yaml | 8 +- .../modules/slots/has_or_had_tolerance.yaml | 4 +- .../has_or_had_transformation_metadata.yaml | 4 +- .../modules/slots/has_or_had_treatment.yaml | 4 +- .../modules/slots/has_or_had_treshold.yaml | 2 +- .../linkml/modules/slots/has_or_had_type.yaml | 2 +- .../linkml/modules/slots/has_or_had_unit.yaml | 2 +- .../linkml/modules/slots/has_or_had_url.yaml | 57 - .../modules/slots/has_or_had_use_case.yaml | 4 +- .../slots/has_or_had_user_category.yaml | 2 +- .../modules/slots/has_or_had_venue.yaml | 4 +- .../slots/has_or_had_writing_system.yaml | 4 +- .../slots/hold_or_held_record_set_type.yaml | 2 +- .../slots/identifies_or_identified.yaml | 4 +- .../slots/identifies_or_identified_as.yaml | 2 +- .../slots/implements_or_implemented.yaml | 4 +- .../modules/slots/imposes_or_imposed.yaml | 2 +- .../modules/slots/includes_or_included.yaml | 2 +- .../modules/slots/indicates_or_indicated.yaml | 2 +- .../slots/industry_benchmark_high.yaml | 2 +- .../modules/slots/industry_benchmark_low.yaml | 2 +- .../modules/slots/initial_of_the_initial.yaml | 4 +- .../modules/slots/installed_at_place.yaml | 4 +- .../linkml/modules/slots/instance_of.yaml | 4 +- .../slots/intangible_heritage_subtype.yaml | 3 +- .../slots/integrates_or_integrated.yaml | 2 +- .../modules/slots/involves_or_involved.yaml | 4 +- .../modules/slots/is_auxiliary_of_place.yaml | 4 +- .../slots/is_auxiliary_of_platform.yaml | 4 +- .../linkml/modules/slots/is_branch_of.yaml | 2 +- .../linkml/modules/slots/is_deceased.yaml | 6 +- .../modules/slots/is_legal_status_of.yaml | 4 +- .../slots/is_or_was_access_restricted.yaml | 2 +- .../slots/is_or_was_accessioned_through.yaml | 2 +- .../modules/slots/is_or_was_acquired_by.yaml | 6 +- .../slots/is_or_was_acquired_through.yaml | 4 +- .../slots/is_or_was_affiliated_with.yaml | 2 +- .../slots/is_or_was_aggregated_by.yaml | 7 +- .../slots/is_or_was_allocated_through.yaml | 2 +- .../modules/slots/is_or_was_allocated_to.yaml | 2 +- .../slots/is_or_was_alternative_form_of.yaml | 2 +- .../slots/is_or_was_amended_through.yaml | 4 +- .../slots/is_or_was_appended_with.yaml | 2 +- .../slots/is_or_was_applicable_in.yaml | 4 +- .../modules/slots/is_or_was_appreciated.yaml | 12 +- .../modules/slots/is_or_was_approved_on.yaml | 4 +- .../modules/slots/is_or_was_approximate.yaml | 6 +- .../modules/slots/is_or_was_archived_as.yaml | 4 +- .../modules/slots/is_or_was_asserted_by.yaml | 4 +- .../modules/slots/is_or_was_asserted_on.yaml | 2 +- .../modules/slots/is_or_was_assessed_on.yaml | 4 +- .../modules/slots/is_or_was_based_on.yaml | 4 +- .../modules/slots/is_or_was_born_on.yaml | 4 +- .../modules/slots/is_or_was_branch_of.yaml | 6 +- .../modules/slots/is_or_was_cancelled_by.yaml | 6 +- .../modules/slots/is_or_was_cataloged_in.yaml | 4 +- .../slots/is_or_was_categorized_as.yaml | 2 +- .../modules/slots/is_or_was_caused_by.yaml | 2 +- .../modules/slots/is_or_was_ceased_by.yaml | 2 +- .../slots/is_or_was_checked_through.yaml | 2 +- .../slots/is_or_was_collection_of.yaml | 4 +- .../slots/is_or_was_compatible_with.yaml | 4 +- .../modules/slots/is_or_was_conducted_by.yaml | 4 +- .../modules/slots/is_or_was_created_by.yaml | 2 +- .../slots/is_or_was_created_through.yaml | 4 +- .../slots/is_or_was_curated_through.yaml | 4 +- .../slots/is_or_was_decommissioned_at.yaml | 4 +- .../modules/slots/is_or_was_deployed_at.yaml | 2 +- .../modules/slots/is_or_was_deposited_by.yaml | 4 +- .../modules/slots/is_or_was_derived_from.yaml | 2 +- .../modules/slots/is_or_was_designed_by.yaml | 2 +- .../modules/slots/is_or_was_diarized.yaml | 2 +- .../modules/slots/is_or_was_dismissed.yaml | 6 +- .../modules/slots/is_or_was_displayed_at.yaml | 6 +- .../modules/slots/is_or_was_dissolved_by.yaml | 6 +- .../slots/is_or_was_documented_by.yaml | 4 +- .../slots/is_or_was_documented_in.yaml | 4 +- .../modules/slots/is_or_was_edited_by.yaml | 4 +- .../modules/slots/is_or_was_effective_at.yaml | 2 +- .../modules/slots/is_or_was_employed_by.yaml | 4 +- .../slots/is_or_was_encompassed_by.yaml | 4 +- .../slots/is_or_was_equivalent_to.yaml | 4 +- .../slots/is_or_was_established_by.yaml | 4 +- .../modules/slots/is_or_was_exhibited_at.yaml | 6 +- .../modules/slots/is_or_was_expired_at.yaml | 2 +- .../modules/slots/is_or_was_exposed_via.yaml | 4 +- .../modules/slots/is_or_was_extended.yaml | 6 +- .../slots/is_or_was_extracted_using.yaml | 6 +- .../slots/is_or_was_founded_through.yaml | 6 +- .../modules/slots/is_or_was_generated_by.yaml | 2 +- .../modules/slots/is_or_was_governed_by.yaml | 4 +- .../slots/is_or_was_identified_through.yaml | 6 +- .../slots/is_or_was_implemented_by.yaml | 4 +- .../modules/slots/is_or_was_included_in.yaml | 2 +- .../modules/slots/is_or_was_indexed.yaml | 2 +- .../modules/slots/is_or_was_instance_of.yaml | 4 +- .../slots/is_or_was_instantiated_as.yaml | 4 +- .../slots/is_or_was_instantiated_by.yaml | 2 +- .../modules/slots/is_or_was_involved_in.yaml | 8 +- .../slots/is_or_was_last_updated_at.yaml | 4 +- .../modules/slots/is_or_was_located_in.yaml | 5 +- .../slots/is_or_was_located_within.yaml | 6 +- .../modules/slots/is_or_was_managed_by.yaml | 2 +- .../modules/slots/is_or_was_member_of.yaml | 4 +- .../modules/slots/is_or_was_observed_by.yaml | 4 +- .../modules/slots/is_or_was_opened_on.yaml | 4 +- .../modules/slots/is_or_was_operated_by.yaml | 4 +- .../modules/slots/is_or_was_part_of.yaml | 2 +- .../slots/is_or_was_part_of_total.yaml | 6 +- .../modules/slots/is_or_was_platform_of.yaml | 4 +- .../modules/slots/is_or_was_published.yaml | 8 +- .../modules/slots/is_or_was_published_at.yaml | 6 +- .../modules/slots/is_or_was_published_by.yaml | 4 +- .../modules/slots/is_or_was_recombined.yaml | 0 .../modules/slots/is_or_was_related_to.yaml | 4 +- .../slots/is_or_was_represented_by.yaml | 4 +- .../slots/is_or_was_responsible_for.yaml | 2 +- .../modules/slots/is_or_was_retrieved_at.yaml | 4 +- .../modules/slots/is_or_was_retrieved_by.yaml | 6 +- .../slots/is_or_was_retrieved_through.yaml | 6 +- .../modules/slots/is_or_was_returned.yaml | 8 +- .../modules/slots/is_or_was_revision_of.yaml | 2 +- .../modules/slots/is_or_was_signed_at.yaml | 6 +- .../modules/slots/is_or_was_signed_on.yaml | 2 +- .../slots/is_or_was_sub_collection_of.yaml | 4 +- .../slots/is_or_was_suborganization_of.yaml | 4 +- .../slots/is_or_was_superseded_by.yaml | 2 +- .../modules/slots/is_or_was_targeted_at.yaml | 2 +- .../slots/is_or_was_tax_deductible.yaml | 2 +- .../is_or_was_temporarily_located_at.yaml | 6 +- .../slots/is_or_was_threatened_by.yaml | 4 +- .../modules/slots/is_or_was_transferred.yaml | 8 +- .../slots/is_or_was_transferred_to.yaml | 2 +- .../modules/slots/is_or_was_triggered_by.yaml | 4 +- .../modules/slots/is_or_was_used_by.yaml | 2 +- .../modules/slots/is_or_was_used_in.yaml | 4 +- .../modules/slots/is_or_was_verified_by.yaml | 2 +- .../modules/slots/is_or_was_visible_in.yaml | 2 +- .../slots/is_or_was_webarchived_at.yaml | 8 +- .../20251121/linkml/modules/slots/isbn.yaml | 2 +- .../linkml/modules/slots/issued_call.yaml | 2 +- .../modules/slots/issuing_organisation.yaml | 2 +- .../20251121/linkml/modules/slots/item.yaml | 4 +- .../linkml/modules/slots/item_returned.yaml | 4 +- .../linkml/modules/slots/jurisdiction.yaml | 5 +- .../modules/slots/jurisdiction_type.yaml | 3 +- .../linkml/modules/slots/lacks_or_lacked.yaml | 2 +- .../modules/slots/landmark_segment.yaml | 4 +- .../modules/slots/legal_entity_type.yaml | 4 +- .../linkml/modules/slots/legal_form.yaml | 4 +- .../modules/slots/legal_jurisdiction.yaml | 4 +- .../linkml/modules/slots/legal_name.yaml | 4 +- .../linkml/modules/slots/legal_status.yaml | 4 +- .../modules/slots/legal_system_type.yaml | 3 +- .../20251121/linkml/modules/slots/lender.yaml | 2 +- .../linkml/modules/slots/library_subtype.yaml | 3 +- .../modules/slots/lifecycle_phase_type.yaml | 2 +- .../linkml/modules/slots/link_type.yaml | 3 +- .../modules/slots/linked_data_access.yaml | 2 +- .../linkml/modules/slots/llm_response.yaml | 4 +- .../linkml/modules/slots/loan_history.yaml | 4 +- .../linkml/modules/slots/loan_id.yaml | 2 +- .../linkml/modules/slots/loan_status.yaml | 3 +- .../linkml/modules/slots/loan_timespan.yaml | 4 +- .../linkml/modules/slots/locality.yaml | 2 +- .../linkml/modules/slots/located_at.yaml | 6 +- .../linkml/modules/slots/logo_segment.yaml | 4 +- .../linkml/modules/slots/long_name.yaml | 2 +- .../linkml/modules/slots/maintained_by.yaml | 6 +- .../linkml/modules/slots/major_city.yaml | 2 +- .../modules/slots/manages_collection.yaml | 4 +- .../modules/slots/manages_or_managed.yaml | 4 +- .../linkml/modules/slots/managing_unit.yaml | 4 +- .../slots/max_annual_light_exposure.yaml | 3 +- .../linkml/modules/slots/max_light_lux.yaml | 3 +- .../modules/slots/maximal_of_maximal.yaml | 6 +- .../modules/slots/measures_or_measured.yaml | 4 +- .../linkml/modules/slots/member_of.yaml | 4 +- .../modules/slots/minimal_of_minimal.yaml | 6 +- .../modules/slots/mission_statement.yaml | 6 +- .../modules/slots/motivation_type_id.yaml | 2 +- .../linkml/modules/slots/museum_subtype.yaml | 3 +- .../slots/museum_type_classification.yaml | 3 +- .../linkml/modules/slots/music_type.yaml | 3 +- .../linkml/modules/slots/name_type.yaml | 3 +- .../modules/slots/name_validity_period.yaml | 4 +- .../modules/slots/narrower_concept.yaml | 2 +- .../linkml/modules/slots/narrower_type.yaml | 2 +- .../modules/slots/nomenclatural_code.yaml | 0 .../modules/slots/nonprofit_subtype.yaml | 3 +- .../modules/slots/notable_examples.yaml | 6 +- .../20251121/linkml/modules/slots/note.yaml | 2 +- .../linkml/modules/slots/numeric_value.yaml | 2 +- .../linkml/modules/slots/object_id.yaml | 2 +- .../linkml/modules/slots/object_ref.yaml | 4 +- .../linkml/modules/slots/object_segment.yaml | 4 +- .../linkml/modules/slots/object_type.yaml | 3 +- .../linkml/modules/slots/objects_added.yaml | 4 +- .../modules/slots/objects_affected.yaml | 4 +- .../linkml/modules/slots/objects_removed.yaml | 4 +- .../linkml/modules/slots/observation.yaml | 4 +- .../linkml/modules/slots/observation_id.yaml | 2 +- .../modules/slots/observation_period.yaml | 4 +- .../linkml/modules/slots/observation_ref.yaml | 2 +- .../linkml/modules/slots/observed_entity.yaml | 2 +- .../linkml/modules/slots/observed_in.yaml | 2 +- .../linkml/modules/slots/observer_type.yaml | 3 +- .../modules/slots/occurs_or_occurred_at.yaml | 6 +- .../linkml/modules/slots/offered_by.yaml | 2 +- .../modules/slots/offers_donation_scheme.yaml | 2 +- .../modules/slots/offers_or_offered.yaml | 2 +- .../slots/offers_or_offered_access.yaml | 2 +- .../slots/official_institution_subtype.yaml | 3 +- .../linkml/modules/slots/online_shop.yaml | 4 +- .../linkml/modules/slots/operated_by.yaml | 4 +- .../modules/slots/operates_or_operated.yaml | 4 +- .../slots/organizational_structure.yaml | 4 +- .../linkml/modules/slots/organized_by.yaml | 2 +- .../linkml/modules/slots/organizing_body.yaml | 2 +- .../linkml/modules/slots/origin_period.yaml | 4 +- .../slots/originates_or_originated_from.yaml | 2 +- .../linkml/modules/slots/outbound_to.yaml | 4 +- .../linkml/modules/slots/outdoor_site_id.yaml | 2 +- .../modules/slots/outdoor_site_type.yaml | 3 +- .../linkml/modules/slots/overall_status.yaml | 3 +- .../modules/slots/parent_corporation.yaml | 2 +- .../modules/slots/parent_department.yaml | 4 +- .../linkml/modules/slots/parent_society.yaml | 4 +- .../linkml/modules/slots/parent_unit.yaml | 4 +- .../modules/slots/part_of_collection.yaml | 2 +- .../slots/part_of_custodian_collection.yaml | 4 +- .../linkml/modules/slots/part_of_event.yaml | 4 +- .../modules/slots/part_of_facility.yaml | 4 +- .../linkml/modules/slots/part_of_storage.yaml | 4 +- .../linkml/modules/slots/part_of_zone.yaml | 4 +- .../participates_or_participated_in.yaml | 4 +- .../slots/participating_custodian.yaml | 2 +- .../linkml/modules/slots/performance_id.yaml | 2 +- .../modules/slots/performance_location.yaml | 4 +- .../linkml/modules/slots/performance_of.yaml | 4 +- .../linkml/modules/slots/performed_by.yaml | 4 +- .../linkml/modules/slots/person_claim_id.yaml | 2 +- .../modules/slots/person_claim_type.yaml | 3 +- .../linkml/modules/slots/person_id.yaml | 2 +- .../modules/slots/physical_location.yaml | 4 +- .../linkml/modules/slots/pipeline_stage.yaml | 3 +- .../modules/slots/place_custodian_ref.yaml | 2 +- .../modules/slots/place_designation.yaml | 4 +- .../modules/slots/place_of_publication.yaml | 4 +- .../modules/slots/place_specificity.yaml | 3 +- .../linkml/modules/slots/platform_id.yaml | 2 +- .../linkml/modules/slots/platform_of.yaml | 4 +- .../linkml/modules/slots/policy_id.yaml | 2 +- .../linkml/modules/slots/portal_id.yaml | 2 +- .../linkml/modules/slots/portal_type.yaml | 4 +- .../linkml/modules/slots/portal_type_id.yaml | 2 +- .../slots/poses_or_posed_condition.yaml | 8 +- .../linkml/modules/slots/post_type_id.yaml | 2 +- .../modules/slots/posted_by_profile.yaml | 4 +- .../linkml/modules/slots/powers_platform.yaml | 4 +- .../modules/slots/preceding_activity.yaml | 4 +- .../modules/slots/preservation_method.yaml | 3 +- .../modules/slots/preserves_or_preserved.yaml | 2 +- .../modules/slots/previous_observation.yaml | 2 +- .../20251121/linkml/modules/slots/price.yaml | 2 +- .../linkml/modules/slots/price_currency.yaml | 2 +- .../slots/primary_audio_event_type.yaml | 3 +- .../modules/slots/primary_heritage_type.yaml | 3 +- .../modules/slots/primary_register.yaml | 4 +- .../linkml/modules/slots/primary_system.yaml | 4 +- .../modules/slots/processing_status.yaml | 3 +- .../modules/slots/proficiency_level.yaml | 3 +- .../linkml/modules/slots/profile_data.yaml | 2 +- .../linkml/modules/slots/profile_url.yaml | 0 .../linkml/modules/slots/protocol_name.yaml | 0 .../modules/slots/protocol_version.yaml | 0 .../linkml/modules/slots/provider.yaml | 0 .../modules/slots/provides_or_provided.yaml | 2 +- .../provides_or_provided_provenance_to.yaml | 2 +- .../slots/provides_or_provided_to.yaml | 4 +- .../modules/slots/publishes_or_published.yaml | 2 +- .../linkml/modules/slots/rate_value.yaml | 2 +- .../modules/slots/reading_room_type.yaml | 3 +- .../modules/slots/receives_or_received.yaml | 2 +- .../modules/slots/record_equivalent.yaml | 2 +- .../linkml/modules/slots/record_format.yaml | 3 +- .../linkml/modules/slots/record_id.yaml | 2 +- .../linkml/modules/slots/record_timespan.yaml | 4 +- .../linkml/modules/slots/record_type.yaml | 2 +- .../modules/slots/refers_or_referred_to.yaml | 2 +- .../slots/refers_to_access_policy.yaml | 4 +- .../modules/slots/refers_to_custodian.yaml | 4 +- .../modules/slots/refers_to_legal_status.yaml | 4 +- .../modules/slots/refers_to_person.yaml | 4 +- .../modules/slots/refers_to_storage.yaml | 4 +- .../20251121/linkml/modules/slots/region.yaml | 2 +- .../linkml/modules/slots/region_type.yaml | 4 +- .../linkml/modules/slots/register_type.yaml | 3 +- .../slots/registers_or_registered.yaml | 6 +- .../modules/slots/registration_authority.yaml | 4 +- .../modules/slots/regulated_by_scheme.yaml | 2 +- .../modules/slots/regulates_or_regulated.yaml | 6 +- .../linkml/modules/slots/related_agenda.yaml | 2 +- .../linkml/modules/slots/related_call.yaml | 2 +- .../linkml/modules/slots/related_concept.yaml | 2 +- .../linkml/modules/slots/related_loan.yaml | 2 +- .../linkml/modules/slots/related_types.yaml | 6 +- .../linkml/modules/slots/relationship.yaml | 3 +- .../slots/represents_or_represented.yaml | 4 +- .../linkml/modules/slots/requirement_id.yaml | 2 +- .../modules/slots/requirement_type.yaml | 3 +- .../modules/slots/requires_or_required.yaml | 2 +- .../slots/research_center_subtype.yaml | 3 +- .../modules/slots/research_center_type.yaml | 3 +- .../modules/slots/responsible_actor.yaml | 4 +- .../modules/slots/responsible_agent.yaml | 4 +- .../slots/responsible_legal_entity.yaml | 4 +- .../linkml/modules/slots/retrieval_agent.yaml | 2 +- .../linkml/modules/slots/revision_date.yaml | 2 +- .../linkml/modules/slots/role_id.yaml | 2 +- .../linkml/modules/slots/route_id.yaml | 2 +- .../linkml/modules/slots/safeguarded_by.yaml | 4 +- .../modules/slots/sampling_protocol.yaml | 0 .../modules/slots/scene_types_detected.yaml | 3 +- .../linkml/modules/slots/scheme_id.yaml | 2 +- .../linkml/modules/slots/scheme_type.yaml | 3 +- .../linkml/modules/slots/scrape_method.yaml | 3 +- .../linkml/modules/slots/served_by.yaml | 4 +- .../modules/slots/serves_finding_aid.yaml | 4 +- .../modules/slots/serves_or_served.yaml | 4 +- .../linkml/modules/slots/service_area.yaml | 6 +- .../linkml/modules/slots/service_area_id.yaml | 2 +- .../modules/slots/service_area_type.yaml | 3 +- .../linkml/modules/slots/settlement.yaml | 4 +- .../linkml/modules/slots/shop_type.yaml | 3 +- .../linkml/modules/slots/short_name.yaml | 2 +- .../slots/social_media_platform_type_id.yaml | 2 +- .../slots/social_media_profile_id.yaml | 2 +- .../20251121/linkml/modules/slots/source.yaml | 2 +- .../linkml/modules/slots/source_type.yaml | 3 +- .../linkml/modules/slots/source_uri.yaml | 2 +- .../modules/slots/specialized_place.yaml | 4 +- .../modules/slots/specifies_or_specified.yaml | 2 +- .../linkml/modules/slots/staff_role.yaml | 4 +- .../modules/slots/standards_applied.yaml | 3 +- .../modules/slots/standards_compliance.yaml | 3 +- .../modules/slots/start_of_the_start.yaml | 4 +- .../slots/starts_or_started_at_location.yaml | 6 +- .../modules/slots/statement_currency.yaml | 2 +- .../modules/slots/statement_description.yaml | 2 +- .../linkml/modules/slots/statement_name.yaml | 2 +- .../linkml/modules/slots/statement_type.yaml | 2 +- .../modules/slots/states_or_stated.yaml | 4 +- .../modules/slots/stores_or_stored.yaml | 2 +- .../slots/supersedes_or_superseded.yaml | 2 +- .../slots/takes_or_took_comission.yaml | 6 +- .../modules/slots/takes_or_took_place_at.yaml | 2 +- .../linkml/modules/slots/temporal_extent.yaml | 4 +- .../linkml/modules/slots/uses_or_used.yaml | 2 +- .../modules/slots/uses_or_used_technique.yaml | 2 +- .../modules/slots/warrants_or_warranted.yaml | 6 +- .../modules/slots/was_acquired_through.yaml | 2 +- .../linkml/modules/slots/was_fetched_at.yaml | 2 +- .../schemas/20251121/linkml/schema.json | 139114 --------------- schemas/20251121/linkml/manifest.json | 308 +- .../linkml/modules/classes/APIEndpoint.yaml | 8 +- .../linkml/modules/classes/APIRequest.yaml | 12 +- .../linkml/modules/classes/APIVersion.yaml | 8 +- .../linkml/modules/classes/AVEquipment.yaml | 8 +- .../modules/classes/AcademicArchive.yaml | 34 +- .../classes/AcademicArchiveRecordSetType.yaml | 20 +- .../AcademicArchiveRecordSetTypes.yaml | 28 +- .../modules/classes/AcademicInstitution.yaml | 4 +- .../modules/classes/AcademicProgram.yaml | 4 +- .../linkml/modules/classes/Access.yaml | 52 +- .../modules/classes/AccessApplication.yaml | 14 +- .../linkml/modules/classes/AccessControl.yaml | 4 +- .../modules/classes/AccessInterface.yaml | 14 +- .../linkml/modules/classes/AccessLevel.yaml | 4 +- .../linkml/modules/classes/AccessPolicy.yaml | 122 +- .../modules/classes/AccessTriggerEvent.yaml | 4 +- .../modules/classes/AccessibilityFeature.yaml | 8 +- .../modules/classes/AccessionEvent.yaml | 12 +- .../modules/classes/AccessionNumber.yaml | 8 +- .../modules/classes/AccountIdentifier.yaml | 4 +- .../linkml/modules/classes/AccountStatus.yaml | 4 +- .../linkml/modules/classes/Accreditation.yaml | 4 +- .../modules/classes/AccreditationBody.yaml | 4 +- .../linkml/modules/classes/Accumulation.yaml | 4 +- .../linkml/modules/classes/AccuracyLevel.yaml | 12 +- .../linkml/modules/classes/Acquisition.yaml | 4 +- .../modules/classes/AcquisitionEvent.yaml | 14 +- .../modules/classes/AcquisitionMethod.yaml | 8 +- .../linkml/modules/classes/Activity.yaml | 58 +- .../linkml/modules/classes/ActivityType.yaml | 32 +- .../linkml/modules/classes/Actor.yaml | 8 +- .../linkml/modules/classes/Address.yaml | 126 +- .../modules/classes/AddressComponent.yaml | 26 +- .../linkml/modules/classes/AddressType.yaml | 90 +- .../linkml/modules/classes/AddressTypes.yaml | 36 +- .../modules/classes/Administration.yaml | 12 +- .../modules/classes/AdministrativeLevel.yaml | 16 +- .../modules/classes/AdministrativeOffice.yaml | 120 +- .../modules/classes/AdministrativeUnit.yaml | 4 +- .../classes/AdvertisingRadioArchive.yaml | 12 +- .../AdvertisingRadioArchiveRecordSetType.yaml | 16 +- ...AdvertisingRadioArchiveRecordSetTypes.yaml | 16 +- .../20251121/linkml/modules/classes/Age.yaml | 16 +- .../linkml/modules/classes/Agenda.yaml | 8 +- .../linkml/modules/classes/Agent.yaml | 26 +- .../linkml/modules/classes/AgentType.yaml | 16 +- .../linkml/modules/classes/Agreement.yaml | 16 +- .../linkml/modules/classes/AirChanges.yaml | 12 +- .../linkml/modules/classes/Alignment.yaml | 18 +- .../modules/classes/AllocationAgency.yaml | 6 +- .../linkml/modules/classes/Alpha2Code.yaml | 8 +- .../linkml/modules/classes/Alpha3Code.yaml | 8 +- .../linkml/modules/classes/Altitude.yaml | 8 +- .../modules/classes/AmendmentEvent.yaml | 8 +- .../linkml/modules/classes/Animal.yaml | 14 +- .../modules/classes/AnimalSoundArchive.yaml | 12 +- .../AnimalSoundArchiveRecordSetType.yaml | 16 +- .../AnimalSoundArchiveRecordSetTypes.yaml | 16 +- .../modules/classes/AnnexCreationEvent.yaml | 4 +- .../linkml/modules/classes/Annotation.yaml | 30 +- .../classes/AnnotationMotivationType.yaml | 4 +- .../classes/AnnotationMotivationTypes.yaml | 22 +- .../modules/classes/AnnotationType.yaml | 16 +- .../linkml/modules/classes/Appellation.yaml | 10 +- .../modules/classes/AppellationType.yaml | 4 +- .../linkml/modules/classes/Applicant.yaml | 12 +- .../modules/classes/ApplicantRequirement.yaml | 10 +- .../linkml/modules/classes/ApplicantType.yaml | 8 +- .../linkml/modules/classes/Appointment.yaml | 20 +- .../modules/classes/AppreciationEvent.yaml | 24 +- .../modules/classes/ApprovalTimeType.yaml | 12 +- .../linkml/modules/classes/Approver.yaml | 16 +- .../modules/classes/ApproximationStatus.yaml | 48 +- .../linkml/modules/classes/Archdiocese.yaml | 4 +- .../linkml/modules/classes/Architect.yaml | 14 +- .../modules/classes/ArchitecturalArchive.yaml | 16 +- .../ArchitecturalArchiveRecordSetType.yaml | 10 +- .../ArchitecturalArchiveRecordSetTypes.yaml | 22 +- .../modules/classes/ArchitecturalStyle.yaml | 8 +- .../modules/classes/ArchivalLibrary.yaml | 14 +- .../classes/ArchivalLibraryRecordSetType.yaml | 10 +- .../modules/classes/ArchivalReference.yaml | 14 +- .../modules/classes/ArchivalStatus.yaml | 14 +- .../modules/classes/ArchiveAssociation.yaml | 18 +- .../linkml/modules/classes/ArchiveBranch.yaml | 4 +- .../modules/classes/ArchiveNetwork.yaml | 20 +- .../ArchiveOfInternationalOrganization.yaml | 6 +- ...nternationalOrganizationRecordSetType.yaml | 14 +- ...ternationalOrganizationRecordSetTypes.yaml | 22 +- .../classes/ArchiveOrganizationType.yaml | 56 +- .../linkml/modules/classes/ArchiveScope.yaml | 4 +- .../classes/ArchivesForBuildingRecords.yaml | 6 +- ...chivesForBuildingRecordsRecordSetType.yaml | 14 +- ...hivesForBuildingRecordsRecordSetTypes.yaml | 16 +- .../modules/classes/ArchivesRegionales.yaml | 6 +- .../ArchivesRegionalesRecordSetType.yaml | 14 +- .../ArchivesRegionalesRecordSetTypes.yaml | 10 +- .../linkml/modules/classes/ArchivingPlan.yaml | 16 +- .../20251121/linkml/modules/classes/Area.yaml | 50 +- .../linkml/modules/classes/Arrangement.yaml | 16 +- .../modules/classes/ArrangementLevel.yaml | 20 +- .../modules/classes/ArrangementType.yaml | 4 +- .../linkml/modules/classes/ArtArchive.yaml | 6 +- .../classes/ArtArchiveRecordSetType.yaml | 14 +- .../classes/ArtArchiveRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/ArtDealer.yaml | 28 +- .../modules/classes/ArtSaleService.yaml | 8 +- .../linkml/modules/classes/Article.yaml | 4 +- .../classes/ArticlesOfAssociation.yaml | 132 +- .../linkml/modules/classes/Artist.yaml | 4 +- .../linkml/modules/classes/Artwork.yaml | 4 +- .../linkml/modules/classes/AspectRatio.yaml | 8 +- .../linkml/modules/classes/Asserter.yaml | 72 +- .../modules/classes/AssessmentCategory.yaml | 6 +- .../classes/AssessmentCategoryType.yaml | 4 +- .../linkml/modules/classes/Asset.yaml | 8 +- .../linkml/modules/classes/AuctionHouse.yaml | 8 +- .../modules/classes/AuctionSaleCatalog.yaml | 6 +- .../modules/classes/AudioEventSegment.yaml | 32 +- .../modules/classes/AudiovisualArchive.yaml | 6 +- .../AudiovisualArchiveRecordSetType.yaml | 14 +- .../AudiovisualArchiveRecordSetTypes.yaml | 16 +- .../linkml/modules/classes/Audit.yaml | 4 +- .../linkml/modules/classes/AuditOpinion.yaml | 8 +- .../linkml/modules/classes/AuditStatus.yaml | 10 +- .../modules/classes/AuditStatusType.yaml | 4 +- .../linkml/modules/classes/Auditor.yaml | 4 +- .../linkml/modules/classes/Author.yaml | 54 +- .../linkml/modules/classes/AuthorityData.yaml | 12 +- .../linkml/modules/classes/AuthorityFile.yaml | 14 +- .../modules/classes/AutoGeneration.yaml | 16 +- .../classes/AuxiliaryDigitalPlatform.yaml | 162 +- .../modules/classes/AuxiliaryPlace.yaml | 156 +- .../modules/classes/AvailabilityStatus.yaml | 16 +- .../modules/classes/BOLDIdentifier.yaml | 8 +- .../linkml/modules/classes/BackupStatus.yaml | 60 +- .../linkml/modules/classes/BackupType.yaml | 60 +- .../linkml/modules/classes/BackupTypes.yaml | 48 +- .../linkml/modules/classes/BankArchive.yaml | 6 +- .../classes/BankArchiveRecordSetType.yaml | 14 +- .../classes/BankArchiveRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/BayNumber.yaml | 8 +- .../linkml/modules/classes/Bildstelle.yaml | 10 +- .../linkml/modules/classes/BindingType.yaml | 60 +- .../linkml/modules/classes/BindingTypes.yaml | 32 +- .../modules/classes/BioCustodianSubtype.yaml | 26 +- .../modules/classes/BioCustodianSubtypes.yaml | 64 +- .../modules/classes/BioCustodianType.yaml | 26 +- .../classes/BioTypeClassification.yaml | 24 +- .../classes/BioTypeClassifications.yaml | 46 +- .../modules/classes/BiologicalObject.yaml | 218 +- .../linkml/modules/classes/BirthDate.yaml | 80 +- .../linkml/modules/classes/BirthPlace.yaml | 18 +- .../linkml/modules/classes/Bookplate.yaml | 24 +- .../linkml/modules/classes/Boundary.yaml | 4 +- .../linkml/modules/classes/BoundingBox.yaml | 14 +- .../linkml/modules/classes/BoxNumber.yaml | 8 +- .../linkml/modules/classes/Branch.yaml | 4 +- .../linkml/modules/classes/BranchOffice.yaml | 76 +- .../linkml/modules/classes/BranchType.yaml | 60 +- .../linkml/modules/classes/BranchTypes.yaml | 44 +- .../linkml/modules/classes/Budget.yaml | 186 +- .../linkml/modules/classes/BudgetStatus.yaml | 12 +- .../linkml/modules/classes/BudgetType.yaml | 60 +- .../linkml/modules/classes/BudgetTypes.yaml | 40 +- .../modules/classes/BusinessCriticality.yaml | 34 +- .../linkml/modules/classes/BusinessModel.yaml | 32 +- .../linkml/modules/classes/CITESAppendix.yaml | 30 +- .../20251121/linkml/modules/classes/CMS.yaml | 20 +- .../linkml/modules/classes/CMSType.yaml | 24 +- .../linkml/modules/classes/CMSTypes.yaml | 24 +- .../modules/classes/CacheValidation.yaml | 22 +- .../modules/classes/CalendarSystem.yaml | 6 +- .../modules/classes/CallForApplication.yaml | 58 +- .../linkml/modules/classes/Cancellation.yaml | 18 +- .../linkml/modules/classes/CanonicalForm.yaml | 18 +- .../modules/classes/CantonalArchive.yaml | 6 +- .../classes/CantonalArchiveRecordSetType.yaml | 14 +- .../CantonalArchiveRecordSetTypes.yaml | 16 +- .../linkml/modules/classes/Capacity.yaml | 88 +- .../linkml/modules/classes/CapacityType.yaml | 12 +- .../linkml/modules/classes/Caption.yaml | 10 +- .../linkml/modules/classes/Carrier.yaml | 28 +- .../linkml/modules/classes/CarrierType.yaml | 18 +- .../linkml/modules/classes/CarrierTypes.yaml | 108 +- .../modules/classes/CastCollection.yaml | 10 +- .../linkml/modules/classes/CatalogSystem.yaml | 52 +- .../modules/classes/CatalogSystemType.yaml | 12 +- .../modules/classes/CatalogSystemTypes.yaml | 26 +- .../modules/classes/CatalogingStandard.yaml | 48 +- .../linkml/modules/classes/Category.yaml | 6 +- .../modules/classes/CategoryStatus.yaml | 30 +- .../linkml/modules/classes/CateringPlace.yaml | 166 +- .../linkml/modules/classes/CateringType.yaml | 12 +- .../linkml/modules/classes/CateringTypes.yaml | 16 +- .../modules/classes/CathedralArchive.yaml | 6 +- .../CathedralArchiveRecordSetType.yaml | 14 +- .../CathedralArchiveRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/CauseOfDeath.yaml | 20 +- .../linkml/modules/classes/CeaseEvent.yaml | 8 +- .../linkml/modules/classes/CeasingEvent.yaml | 12 +- .../modules/classes/CertaintyLevel.yaml | 20 +- .../ChAnnotatorAnnotationMetadata.yaml | 14 +- .../classes/ChAnnotatorEntityClaim.yaml | 6 +- .../linkml/modules/classes/ChurchArchive.yaml | 8 +- .../classes/ChurchArchiveRecordSetType.yaml | 14 +- .../classes/ChurchArchiveRecordSetTypes.yaml | 34 +- .../modules/classes/ChurchArchiveSweden.yaml | 6 +- .../ChurchArchiveSwedenRecordSetType.yaml | 14 +- .../ChurchArchiveSwedenRecordSetTypes.yaml | 16 +- .../linkml/modules/classes/Cinematheque.yaml | 10 +- .../20251121/linkml/modules/classes/City.yaml | 8 +- .../linkml/modules/classes/ClaimType.yaml | 20 +- .../modules/classes/Classification.yaml | 4 +- .../modules/classes/ClassificationStatus.yaml | 40 +- .../classes/ClassificationStatusType.yaml | 8 +- .../modules/classes/ClassificationType.yaml | 4 +- .../linkml/modules/classes/Classroom.yaml | 28 +- .../modules/classes/ClimateArchive.yaml | 6 +- .../classes/ClimateArchiveRecordSetType.yaml | 14 +- .../classes/ClimateArchiveRecordSetTypes.yaml | 16 +- .../modules/classes/ClimateControl.yaml | 54 +- .../modules/classes/ClimateControlPolicy.yaml | 44 +- .../modules/classes/ClimateControlType.yaml | 24 +- .../modules/classes/ClimateControlTypes.yaml | 24 +- .../linkml/modules/classes/Clipping.yaml | 4 +- .../linkml/modules/classes/CoFunding.yaml | 46 +- .../20251121/linkml/modules/classes/Code.yaml | 8 +- .../modules/classes/CollectingArchives.yaml | 12 +- .../CollectingArchivesRecordSetType.yaml | 14 +- .../CollectingArchivesRecordSetTypes.yaml | 16 +- .../linkml/modules/classes/Collection.yaml | 124 +- .../modules/classes/CollectionContent.yaml | 18 +- .../classes/CollectionContentType.yaml | 2 +- .../classes/CollectionContentTypes.yaml | 28 +- .../classes/CollectionDiscoveryScore.yaml | 10 +- .../modules/classes/CollectionEvent.yaml | 46 +- .../classes/CollectionManagementSystem.yaml | 168 +- .../modules/classes/CollectionScope.yaml | 4 +- .../modules/classes/CollectionType.yaml | 82 +- .../modules/classes/ColonialStatus.yaml | 20 +- .../modules/classes/ComarcalArchive.yaml | 6 +- .../classes/ComarcalArchiveRecordSetType.yaml | 14 +- .../ComarcalArchiveRecordSetTypes.yaml | 16 +- .../linkml/modules/classes/Comment.yaml | 28 +- .../linkml/modules/classes/CommentReply.yaml | 24 +- .../classes/CommercialCustodianTypes.yaml | 14 +- .../classes/CommercialOrganizationType.yaml | 72 +- .../modules/classes/CommissionRate.yaml | 14 +- .../modules/classes/CommunityArchive.yaml | 6 +- .../CommunityArchiveRecordSetType.yaml | 14 +- .../CommunityArchiveRecordSetTypes.yaml | 22 +- .../classes/CompanyArchiveRecordSetType.yaml | 14 +- .../classes/CompanyArchiveRecordSetTypes.yaml | 34 +- .../modules/classes/CompanyArchives.yaml | 16 +- .../classes/CompanyArchivesRecordSetType.yaml | 4 +- .../modules/classes/ComplianceStatus.yaml | 34 +- .../linkml/modules/classes/Component.yaml | 30 +- .../linkml/modules/classes/ComponentType.yaml | 12 +- .../classes/ComprehensiveOverview.yaml | 4 +- .../modules/classes/ComputerTerminal.yaml | 4 +- .../linkml/modules/classes/Concatenation.yaml | 8 +- .../linkml/modules/classes/Condition.yaml | 14 +- .../modules/classes/ConditionPolicy.yaml | 10 +- .../modules/classes/ConditionState.yaml | 26 +- .../linkml/modules/classes/ConditionType.yaml | 12 +- .../modules/classes/ConditionofAccess.yaml | 8 +- .../linkml/modules/classes/Confidence.yaml | 4 +- .../modules/classes/ConfidenceLevel.yaml | 10 +- .../modules/classes/ConfidenceMeasure.yaml | 20 +- .../modules/classes/ConfidenceMethod.yaml | 30 +- .../modules/classes/ConfidenceScore.yaml | 38 +- .../modules/classes/ConfidenceThreshold.yaml | 10 +- .../modules/classes/ConfidenceValue.yaml | 4 +- .../linkml/modules/classes/Conflict.yaml | 50 +- .../modules/classes/ConflictStatus.yaml | 6 +- .../linkml/modules/classes/Connection.yaml | 8 +- .../modules/classes/ConnectionDegree.yaml | 22 +- .../modules/classes/ConnectionDegreeType.yaml | 12 +- .../modules/classes/ConnectionNetwork.yaml | 10 +- .../classes/ConnectionSourceMetadata.yaml | 18 +- .../modules/classes/ConservationLab.yaml | 110 +- .../modules/classes/ConservationPlan.yaml | 8 +- .../modules/classes/ConservationRecord.yaml | 118 +- .../modules/classes/ConservationReview.yaml | 8 +- .../modules/classes/ContactDetails.yaml | 6 +- .../linkml/modules/classes/Container.yaml | 16 +- .../linkml/modules/classes/Content.yaml | 42 +- .../linkml/modules/classes/ContentType.yaml | 18 +- .../linkml/modules/classes/ContentTypes.yaml | 88 +- .../modules/classes/ContributingAgency.yaml | 48 +- .../modules/classes/ConversionRate.yaml | 14 +- .../modules/classes/CoordinateProvenance.yaml | 4 +- .../linkml/modules/classes/Country.yaml | 36 +- .../modules/classes/CountyRecordOffice.yaml | 10 +- .../linkml/modules/classes/CourtRecords.yaml | 24 +- .../linkml/modules/classes/CreationEvent.yaml | 16 +- .../modules/classes/CulturalInstitution.yaml | 24 +- .../modules/classes/CurationActivity.yaml | 96 +- .../linkml/modules/classes/Currency.yaml | 34 +- .../modules/classes/CurrentArchive.yaml | 32 +- .../classes/CurrentArchiveRecordSetType.yaml | 6 +- .../classes/CurrentArchiveRecordSetTypes.yaml | 10 +- .../linkml/modules/classes/Custodian.yaml | 60 +- .../classes/CustodianAdministration.yaml | 240 +- .../modules/classes/CustodianArchive.yaml | 150 +- .../CustodianArchiveRecordSetType.yaml | 6 +- .../CustodianArchiveRecordSetTypes.yaml | 10 +- .../modules/classes/CustodianCollection.yaml | 78 +- .../classes/CustodianLegalNameClaim.yaml | 6 +- .../modules/classes/CustodianLegalStatus.yaml | 90 +- .../linkml/modules/classes/CustodianName.yaml | 38 +- .../classes/CustodianNameConsensus.yaml | 6 +- .../modules/classes/CustodianObservation.yaml | 30 +- .../modules/classes/CustodianPlace.yaml | 26 +- .../modules/classes/CustodianSourceFile.yaml | 6 +- .../classes/CustodianTimelineEvent.yaml | 174 +- .../linkml/modules/classes/CustodianType.yaml | 36 +- .../20251121/linkml/modules/classes/DOI.yaml | 2 +- .../linkml/modules/classes/DarkArchive.yaml | 42 +- .../classes/DarkArchiveRecordSetType.yaml | 6 +- .../classes/DarkArchiveRecordSetTypes.yaml | 16 +- .../linkml/modules/classes/DataFormat.yaml | 24 +- .../modules/classes/DataLicensePolicy.yaml | 10 +- .../modules/classes/DataQualityFlag.yaml | 4 +- .../modules/classes/DataSensitivityLevel.yaml | 36 +- .../modules/classes/DataServiceEndpoint.yaml | 12 +- .../classes/DataServiceEndpointType.yaml | 28 +- .../classes/DataServiceEndpointTypes.yaml | 54 +- .../linkml/modules/classes/DataSource.yaml | 36 +- .../linkml/modules/classes/DataTierLevel.yaml | 36 +- .../linkml/modules/classes/Dataset.yaml | 28 +- .../linkml/modules/classes/DatePrecision.yaml | 36 +- .../classes/DeacidificationFacility.yaml | 4 +- .../modules/classes/DeceasedStatus.yaml | 16 +- .../linkml/modules/classes/Deliverable.yaml | 36 +- .../linkml/modules/classes/Department.yaml | 110 +- .../modules/classes/DepartmentalArchives.yaml | 58 +- .../DepartmentalArchivesRecordSetType.yaml | 16 +- .../DepartmentalArchivesRecordSetTypes.yaml | 16 +- .../modules/classes/DeploymentEvent.yaml | 24 +- .../modules/classes/DepositArchive.yaml | 54 +- .../classes/DepositArchiveRecordSetType.yaml | 6 +- .../classes/DepositArchiveRecordSetTypes.yaml | 10 +- .../classes/DepositingOrganization.yaml | 4 +- .../linkml/modules/classes/Description.yaml | 38 +- .../modules/classes/DetectedEntity.yaml | 106 +- .../linkml/modules/classes/DetectedFace.yaml | 8 +- .../modules/classes/DetectedLandmark.yaml | 8 +- .../linkml/modules/classes/DetectedLogo.yaml | 8 +- .../modules/classes/DetectedObject.yaml | 8 +- .../modules/classes/DetectionLevelType.yaml | 22 +- .../modules/classes/DetectionLevelTypes.yaml | 54 +- .../modules/classes/DetectionThreshold.yaml | 30 +- .../linkml/modules/classes/DeviceType.yaml | 12 +- .../linkml/modules/classes/DeviceTypes.yaml | 20 +- .../modules/classes/DiarizationStatus.yaml | 20 +- .../modules/classes/DigitalArchive.yaml | 50 +- .../classes/DigitalArchiveRecordSetType.yaml | 6 +- .../classes/DigitalArchiveRecordSetTypes.yaml | 22 +- .../modules/classes/DigitalConfidence.yaml | 18 +- .../modules/classes/DigitalInstantiation.yaml | 18 +- .../modules/classes/DigitalPlatform.yaml | 102 +- .../modules/classes/DigitalPlatformScore.yaml | 6 +- .../modules/classes/DigitalPlatformType.yaml | 20 +- .../modules/classes/DigitalPlatformTypes.yaml | 244 +- .../DigitalPlatformUserIdentifier.yaml | 6 +- .../modules/classes/DigitalPlatformV2.yaml | 84 +- .../DigitalPlatformV2OrganizationProfile.yaml | 6 +- .../DigitalPlatformV2OrganizationStatus.yaml | 2 +- .../modules/classes/DigitalPresence.yaml | 16 +- .../modules/classes/DigitalPresenceType.yaml | 12 +- .../modules/classes/DigitalProficiency.yaml | 26 +- .../linkml/modules/classes/DimArchives.yaml | 50 +- .../classes/DimArchivesRecordSetType.yaml | 6 +- .../classes/DimArchivesRecordSetTypes.yaml | 10 +- .../modules/classes/DiocesanArchive.yaml | 64 +- .../classes/DiocesanArchiveRecordSetType.yaml | 6 +- .../DiocesanArchiveRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/Diocese.yaml | 40 +- .../modules/classes/DismissalEvent.yaml | 12 +- .../modules/classes/DisplayLocation.yaml | 6 +- .../modules/classes/DispositionService.yaml | 16 +- .../classes/DispositionServiceType.yaml | 8 +- .../classes/DistrictArchiveGermany.yaml | 6 +- .../DistrictArchiveGermanyRecordSetType.yaml | 14 +- .../DistrictArchiveGermanyRecordSetTypes.yaml | 16 +- .../modules/classes/DistritalArchive.yaml | 18 +- .../DistritalArchiveRecordSetType.yaml | 14 +- .../DistritalArchiveRecordSetTypes.yaml | 10 +- .../linkml/modules/classes/Division.yaml | 10 +- .../modules/classes/DocumentFormat.yaml | 8 +- .../linkml/modules/classes/DocumentType.yaml | 8 +- .../linkml/modules/classes/Documentation.yaml | 26 +- .../modules/classes/DocumentationCentre.yaml | 16 +- .../modules/classes/DocumentationSource.yaml | 8 +- .../linkml/modules/classes/Domain.yaml | 6 +- .../linkml/modules/classes/DomainType.yaml | 12 +- .../modules/classes/DonationScheme.yaml | 134 +- .../linkml/modules/classes/Drawer.yaml | 6 +- .../linkml/modules/classes/EADDownload.yaml | 4 +- .../linkml/modules/classes/EBook.yaml | 6 +- .../20251121/linkml/modules/classes/ETag.yaml | 20 +- .../classes/EcclesiasticalProvince.yaml | 8 +- .../modules/classes/EconomicArchive.yaml | 18 +- .../classes/EconomicArchiveRecordSetType.yaml | 14 +- .../EconomicArchiveRecordSetTypes.yaml | 16 +- .../linkml/modules/classes/Edition.yaml | 18 +- .../linkml/modules/classes/Editor.yaml | 16 +- .../linkml/modules/classes/Education.yaml | 14 +- .../modules/classes/EducationCenter.yaml | 162 +- .../classes/EducationFacilityType.yaml | 8 +- .../modules/classes/EducationLevel.yaml | 8 +- .../classes/EducationProviderSubtype.yaml | 8 +- .../classes/EducationProviderType.yaml | 20 +- .../linkml/modules/classes/EmailAddress.yaml | 6 +- .../linkml/modules/classes/Embargo.yaml | 6 +- .../linkml/modules/classes/Employer.yaml | 22 +- .../modules/classes/EncompassingBody.yaml | 48 +- .../classes/EncompassingBodyTypes.yaml | 204 +- .../linkml/modules/classes/Endpoint.yaml | 6 +- .../modules/classes/EngagementMetric.yaml | 18 +- .../modules/classes/EnrichmentMetadata.yaml | 8 +- .../modules/classes/EnrichmentMethod.yaml | 8 +- .../linkml/modules/classes/Entity.yaml | 10 +- .../modules/classes/EntityReconstruction.yaml | 4 +- .../linkml/modules/classes/EntityType.yaml | 8 +- .../classes/EnvironmentalCondition.yaml | 12 +- .../modules/classes/EnvironmentalControl.yaml | 8 +- .../classes/EnvironmentalRequirement.yaml | 8 +- .../modules/classes/EnvironmentalZone.yaml | 80 +- .../classes/EnvironmentalZoneType.yaml | 150 +- .../classes/EnvironmentalZoneTypes.yaml | 122 +- .../linkml/modules/classes/Equipment.yaml | 14 +- .../linkml/modules/classes/EquipmentType.yaml | 8 +- .../linkml/modules/classes/Essay.yaml | 8 +- .../modules/classes/EstablishmentEvent.yaml | 4 +- .../modules/classes/EstimationMethod.yaml | 20 +- .../linkml/modules/classes/Event.yaml | 72 +- .../linkml/modules/classes/EventType.yaml | 18 +- .../linkml/modules/classes/EventTypes.yaml | 6 +- .../linkml/modules/classes/Evidence.yaml | 18 +- .../modules/classes/ExaSearchMetadata.yaml | 36 +- .../modules/classes/ExaminationMethod.yaml | 8 +- .../classes/ExaminationMethodType.yaml | 4 +- .../linkml/modules/classes/Example.yaml | 24 +- .../modules/classes/ExhibitedObject.yaml | 182 +- .../linkml/modules/classes/Exhibition.yaml | 162 +- .../modules/classes/ExhibitionCatalog.yaml | 216 +- .../modules/classes/ExhibitionLocation.yaml | 20 +- .../modules/classes/ExhibitionSpace.yaml | 140 +- .../linkml/modules/classes/Expense.yaml | 8 +- .../linkml/modules/classes/ExpenseType.yaml | 8 +- .../linkml/modules/classes/Expenses.yaml | 52 +- .../linkml/modules/classes/Experience.yaml | 20 +- .../linkml/modules/classes/ExpertiseArea.yaml | 18 +- .../linkml/modules/classes/Extension.yaml | 22 +- .../modules/classes/ExternalFunding.yaml | 22 +- .../modules/classes/ExternalResource.yaml | 8 +- .../linkml/modules/classes/ExternalWork.yaml | 2 +- .../modules/classes/ExtractionMetadata.yaml | 48 +- .../modules/classes/ExtractionMethod.yaml | 18 +- .../modules/classes/ExtractionSourceInfo.yaml | 18 +- .../linkml/modules/classes/Facility.yaml | 6 +- .../linkml/modules/classes/FacilityType.yaml | 12 +- .../linkml/modules/classes/Feature.yaml | 14 +- .../modules/classes/FeatureCustodianType.yaml | 30 +- .../linkml/modules/classes/FeaturePlace.yaml | 82 +- .../linkml/modules/classes/FeatureType.yaml | 8 +- .../linkml/modules/classes/FeaturedItem.yaml | 12 +- .../modules/classes/FeaturedObject.yaml | 8 +- .../20251121/linkml/modules/classes/Fee.yaml | 14 +- .../modules/classes/FellowsProgram.yaml | 4 +- .../linkml/modules/classes/FieldOfStudy.yaml | 8 +- .../linkml/modules/classes/FileAPI.yaml | 10 +- .../linkml/modules/classes/FileLocation.yaml | 8 +- .../linkml/modules/classes/FilePath.yaml | 10 +- .../linkml/modules/classes/FilmArchive.yaml | 18 +- .../classes/FilmArchiveRecordSetType.yaml | 14 +- .../classes/FilmArchiveRecordSetTypes.yaml | 34 +- .../modules/classes/FinancialStatement.yaml | 102 +- .../classes/FinancialStatementType.yaml | 4 +- .../linkml/modules/classes/FindingAid.yaml | 164 +- .../modules/classes/FindingAidType.yaml | 40 +- .../modules/classes/FindingAidTypes.yaml | 120 +- .../classes/FireSuppressionSystem.yaml | 6 +- .../modules/classes/FireSuppressionType.yaml | 8 +- .../linkml/modules/classes/Fixity.yaml | 8 +- .../modules/classes/FixityVerification.yaml | 8 +- .../linkml/modules/classes/Foremalarkiv.yaml | 16 +- .../modules/classes/ForkliftAccess.yaml | 4 +- .../linkml/modules/classes/Format.yaml | 12 +- .../modules/classes/FoundationArchive.yaml | 18 +- .../FoundationArchiveRecordSetType.yaml | 14 +- .../FoundationArchiveRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/FoundingEvent.yaml | 14 +- .../linkml/modules/classes/FreeArchive.yaml | 18 +- .../classes/FreeArchiveRecordSetType.yaml | 14 +- .../classes/FreeArchiveRecordSetTypes.yaml | 10 +- .../classes/FrenchPrivateArchives.yaml | 18 +- .../FrenchPrivateArchivesRecordSetType.yaml | 14 +- .../FrenchPrivateArchivesRecordSetTypes.yaml | 10 +- .../linkml/modules/classes/Frequency.yaml | 4 +- .../linkml/modules/classes/FumeHood.yaml | 4 +- .../modules/classes/FunctionCategory.yaml | 8 +- .../linkml/modules/classes/FunctionType.yaml | 50 +- .../linkml/modules/classes/Funding.yaml | 14 +- .../linkml/modules/classes/FundingAgenda.yaml | 170 +- .../linkml/modules/classes/FundingFocus.yaml | 8 +- .../modules/classes/FundingProgram.yaml | 12 +- .../linkml/modules/classes/FundingRate.yaml | 4 +- .../modules/classes/FundingRequirement.yaml | 68 +- .../linkml/modules/classes/FundingScheme.yaml | 8 +- .../linkml/modules/classes/FundingSource.yaml | 12 +- .../20251121/linkml/modules/classes/GLAM.yaml | 10 +- .../classes/GLAMORCUBESFIXPHDNTCode.yaml | 8 +- .../linkml/modules/classes/Gallery.yaml | 14 +- .../linkml/modules/classes/GalleryType.yaml | 98 +- .../linkml/modules/classes/Gender.yaml | 8 +- .../modules/classes/GenerationEvent.yaml | 46 +- .../linkml/modules/classes/GeoFeature.yaml | 12 +- .../modules/classes/GeoFeatureType.yaml | 8 +- .../modules/classes/GeoSpatialPlace.yaml | 90 +- .../modules/classes/GeographicExtent.yaml | 8 +- .../modules/classes/GeographicScope.yaml | 8 +- .../linkml/modules/classes/Geometry.yaml | 20 +- .../linkml/modules/classes/GeometryType.yaml | 8 +- .../modules/classes/GeospatialLocation.yaml | 4 +- .../linkml/modules/classes/GiftShop.yaml | 150 +- .../linkml/modules/classes/GivenName.yaml | 8 +- .../modules/classes/GoogleMapsEnrichment.yaml | 2 +- .../linkml/modules/classes/GoogleReview.yaml | 36 +- .../modules/classes/GovernanceAuthority.yaml | 12 +- .../modules/classes/GovernanceRole.yaml | 12 +- .../modules/classes/GovernanceStructure.yaml | 12 +- .../linkml/modules/classes/GoverningBody.yaml | 8 +- .../modules/classes/GovernmentArchive.yaml | 18 +- .../GovernmentArchiveRecordSetType.yaml | 14 +- .../GovernmentArchiveRecordSetTypes.yaml | 22 +- .../modules/classes/GovernmentHierarchy.yaml | 16 +- .../linkml/modules/classes/GrantRange.yaml | 14 +- .../linkml/modules/classes/GrowthRate.yaml | 4 +- .../linkml/modules/classes/HALCAdm2Name.yaml | 8 +- .../20251121/linkml/modules/classes/HCID.yaml | 4 +- .../linkml/modules/classes/HCPresetURI.yaml | 4 +- .../linkml/modules/classes/HTMLFile.yaml | 12 +- .../linkml/modules/classes/HTTPMethod.yaml | 6 +- .../modules/classes/HTTPMethodType.yaml | 12 +- .../linkml/modules/classes/HTTPStatus.yaml | 12 +- .../modules/classes/HTTPStatusCode.yaml | 8 +- .../linkml/modules/classes/Habitat.yaml | 8 +- .../modules/classes/HandsOnFacility.yaml | 4 +- .../linkml/modules/classes/Hazard.yaml | 6 +- .../linkml/modules/classes/Heading.yaml | 4 +- .../linkml/modules/classes/HeadingLevel.yaml | 4 +- .../linkml/modules/classes/Heritage.yaml | 10 +- .../linkml/modules/classes/HeritageForm.yaml | 8 +- .../modules/classes/HeritageObject.yaml | 14 +- .../modules/classes/HeritagePractice.yaml | 8 +- .../classes/HeritageRelevanceAssessment.yaml | 36 +- .../classes/HeritageRelevanceScore.yaml | 10 +- .../linkml/modules/classes/HeritageScore.yaml | 10 +- .../modules/classes/HeritageSector.yaml | 8 +- .../modules/classes/HeritageSocietyType.yaml | 28 +- .../modules/classes/HeritageStatus.yaml | 12 +- .../linkml/modules/classes/HeritageType.yaml | 12 +- .../modules/classes/HeritageTypeCode.yaml | 8 +- .../modules/classes/HeritageTypeCount.yaml | 16 +- .../modules/classes/HistoricBuilding.yaml | 178 +- .../modules/classes/HistoricalArchive.yaml | 18 +- .../HistoricalArchiveRecordSetType.yaml | 14 +- .../HistoricalArchiveRecordSetTypes.yaml | 16 +- .../modules/classes/HistoricalRegion.yaml | 26 +- .../modules/classes/HolySacredSiteType.yaml | 48 +- .../linkml/modules/classes/HolySiteType.yaml | 22 +- .../modules/classes/HospitalArchive.yaml | 18 +- .../classes/HospitalArchiveRecordSetType.yaml | 14 +- .../HospitalArchiveRecordSetTypes.yaml | 34 +- .../linkml/modules/classes/HouseArchive.yaml | 18 +- .../classes/HouseArchiveRecordSetType.yaml | 14 +- .../classes/HouseArchiveRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/HouseNumber.yaml | 8 +- .../linkml/modules/classes/Humidity.yaml | 6 +- .../modules/classes/HumidityTolerance.yaml | 12 +- .../linkml/modules/classes/Hypernym.yaml | 20 +- .../linkml/modules/classes/Hyponym.yaml | 4 +- .../linkml/modules/classes/Hypothesis.yaml | 14 +- .../linkml/modules/classes/ICHDomain.yaml | 4 +- .../modules/classes/ICHSafeguarding.yaml | 12 +- .../modules/classes/ICHSafeguardingType.yaml | 4 +- .../20251121/linkml/modules/classes/ID.yaml | 4 +- .../20251121/linkml/modules/classes/IIIF.yaml | 4 +- .../modules/classes/IIPImageServer.yaml | 4 +- .../modules/classes/ISO639-3Identifier.yaml | 6 +- .../modules/classes/IconographicArchives.yaml | 18 +- .../IconographicArchivesRecordSetType.yaml | 14 +- .../IconographicArchivesRecordSetTypes.yaml | 16 +- .../linkml/modules/classes/Iconography.yaml | 8 +- .../modules/classes/IdentificationEvent.yaml | 20 +- .../linkml/modules/classes/Identifier.yaml | 68 +- .../modules/classes/IdentifierFormat.yaml | 8 +- .../classes/IdentifierLookupScore.yaml | 4 +- .../modules/classes/IdentifierScheme.yaml | 4 +- .../modules/classes/IdentifierType.yaml | 18 +- .../modules/classes/IdentifierTypes.yaml | 112 +- .../modules/classes/IdentifierValue.yaml | 4 +- .../linkml/modules/classes/Illustration.yaml | 8 +- .../linkml/modules/classes/Image.yaml | 24 +- .../modules/classes/ImpactMeasurement.yaml | 8 +- .../linkml/modules/classes/Index.yaml | 26 +- .../linkml/modules/classes/IndexType.yaml | 16 +- .../linkml/modules/classes/IndexTypes.yaml | 28 +- .../modules/classes/InformationCarrier.yaml | 390 +- .../linkml/modules/classes/Institution.yaml | 16 +- .../modules/classes/InstitutionalArchive.yaml | 18 +- .../InstitutionalArchiveRecordSetType.yaml | 14 +- .../InstitutionalArchiveRecordSetTypes.yaml | 16 +- .../classes/InstitutionalFunction.yaml | 12 +- .../classes/InstitutionalRepository.yaml | 16 +- .../classes/IntangibleHeritageEvent.yaml | 112 +- .../classes/IntangibleHeritageForm.yaml | 98 +- .../classes/IntangibleHeritageGroupType.yaml | 18 +- .../IntangibleHeritagePerformance.yaml | 14 +- .../modules/classes/InternetOfThings.yaml | 222 +- .../modules/classes/InvalidWebClaim.yaml | 12 +- .../linkml/modules/classes/Investment.yaml | 12 +- .../modules/classes/InvestmentArea.yaml | 12 +- .../linkml/modules/classes/IoTDevice.yaml | 8 +- .../20251121/linkml/modules/classes/Item.yaml | 30 +- .../linkml/modules/classes/JointArchives.yaml | 18 +- .../classes/JointArchivesRecordSetType.yaml | 14 +- .../classes/JointArchivesRecordSetTypes.yaml | 10 +- .../linkml/modules/classes/Jurisdiction.yaml | 24 +- .../linkml/modules/classes/KeyArchive.yaml | 8 +- .../linkml/modules/classes/KeyDate.yaml | 4 +- .../linkml/modules/classes/KeyPeriod.yaml | 4 +- .../linkml/modules/classes/LGBTArchive.yaml | 18 +- .../classes/LGBTArchiveRecordSetType.yaml | 14 +- .../classes/LGBTArchiveRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/LLMResponse.yaml | 22 +- .../linkml/modules/classes/Label.yaml | 30 +- .../linkml/modules/classes/LabelType.yaml | 18 +- .../linkml/modules/classes/LabelTypes.yaml | 2 +- .../linkml/modules/classes/Language.yaml | 42 +- .../linkml/modules/classes/LanguageCode.yaml | 4 +- .../modules/classes/LanguageProficiency.yaml | 4 +- .../linkml/modules/classes/Laptop.yaml | 28 +- .../linkml/modules/classes/LastName.yaml | 16 +- .../modules/classes/LegalEntityType.yaml | 4 +- .../linkml/modules/classes/LegalForm.yaml | 4 +- .../linkml/modules/classes/LegalName.yaml | 6 +- .../LegalResponsibilityCollection.yaml | 38 +- .../linkml/modules/classes/Liability.yaml | 4 +- .../linkml/modules/classes/LibraryType.yaml | 78 +- .../linkml/modules/classes/LightArchives.yaml | 22 +- .../classes/LightArchivesRecordSetType.yaml | 14 +- .../classes/LightArchivesRecordSetTypes.yaml | 10 +- .../modules/classes/LikelihoodScore.yaml | 4 +- .../modules/classes/LinkedDataEndpoint.yaml | 4 +- .../modules/classes/LinkedInProfile.yaml | 92 +- .../modules/classes/LiteraryArchive.yaml | 18 +- .../classes/LiteraryArchiveRecordSetType.yaml | 14 +- .../LiteraryArchiveRecordSetTypes.yaml | 22 +- .../modules/classes/LlmVerification.yaml | 6 +- .../linkml/modules/classes/LoadingDock.yaml | 4 +- .../20251121/linkml/modules/classes/Loan.yaml | 50 +- .../modules/classes/LocalCollection.yaml | 4 +- .../classes/LocalGovernmentArchive.yaml | 18 +- .../LocalGovernmentArchiveRecordSetType.yaml | 14 +- .../LocalGovernmentArchiveRecordSetTypes.yaml | 22 +- .../LocalHeritageInstitutionSweden.yaml | 16 +- .../modules/classes/LocalHistoryArchive.yaml | 18 +- .../LocalHistoryArchiveRecordSetType.yaml | 14 +- .../LocalHistoryArchiveRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/Locality.yaml | 28 +- .../linkml/modules/classes/Location.yaml | 4 +- .../modules/classes/LocationLibrary.yaml | 16 +- .../modules/classes/LocationResolution.yaml | 6 +- .../linkml/modules/classes/Locker.yaml | 4 +- .../linkml/modules/classes/LogoClaim.yaml | 6 +- .../linkml/modules/classes/METSAPI.yaml | 4 +- .../modules/classes/MailingListArchive.yaml | 18 +- .../MailingListArchiveRecordSetType.yaml | 14 +- .../MailingListArchiveRecordSetTypes.yaml | 16 +- .../linkml/modules/classes/MainPart.yaml | 10 +- .../linkml/modules/classes/Manager.yaml | 18 +- .../linkml/modules/classes/Mandate.yaml | 12 +- .../linkml/modules/classes/Manufacturer.yaml | 42 +- .../linkml/modules/classes/MappingType.yaml | 50 +- .../linkml/modules/classes/MappingTypes.yaml | 92 +- .../linkml/modules/classes/Material.yaml | 66 +- .../linkml/modules/classes/MaterialType.yaml | 60 +- .../linkml/modules/classes/MaterialTypes.yaml | 2 +- .../modules/classes/MaximumHumidity.yaml | 12 +- .../linkml/modules/classes/MeanValue.yaml | 4 +- .../linkml/modules/classes/MeasureUnit.yaml | 50 +- .../linkml/modules/classes/Measurement.yaml | 54 +- .../modules/classes/MeasurementType.yaml | 18 +- .../modules/classes/MeasurementTypes.yaml | 24 +- .../modules/classes/MeasurementUnit.yaml | 12 +- .../linkml/modules/classes/MediaArchive.yaml | 18 +- .../classes/MediaArchiveRecordSetType.yaml | 14 +- .../classes/MediaArchiveRecordSetTypes.yaml | 16 +- .../linkml/modules/classes/MediaObject.yaml | 12 +- .../linkml/modules/classes/Member.yaml | 8 +- .../linkml/modules/classes/Membership.yaml | 4 +- .../linkml/modules/classes/Memento.yaml | 4 +- .../modules/classes/MerchandiseSale.yaml | 8 +- .../modules/classes/MetadataStandard.yaml | 6 +- .../modules/classes/MetadataStandardType.yaml | 12 +- .../linkml/modules/classes/Method.yaml | 4 +- .../linkml/modules/classes/Methodology.yaml | 50 +- .../modules/classes/MichelinStarRating.yaml | 4 +- .../modules/classes/MicrofilmReader.yaml | 4 +- .../modules/classes/MilitaryArchive.yaml | 18 +- .../classes/MilitaryArchiveRecordSetType.yaml | 14 +- .../MilitaryArchiveRecordSetTypes.yaml | 34 +- .../modules/classes/MinimumHumidity.yaml | 12 +- .../modules/classes/MissionStatement.yaml | 92 +- .../modules/classes/MixedCustodianType.yaml | 52 +- .../linkml/modules/classes/Model.yaml | 22 +- .../modules/classes/MonasteryArchive.yaml | 18 +- .../MonasteryArchiveRecordSetType.yaml | 14 +- .../MonasteryArchiveRecordSetTypes.yaml | 22 +- .../modules/classes/MunicipalArchive.yaml | 18 +- .../MunicipalArchiveRecordSetType.yaml | 14 +- .../MunicipalArchiveRecordSetTypes.yaml | 34 +- .../linkml/modules/classes/MuseumArchive.yaml | 18 +- .../classes/MuseumArchiveRecordSetType.yaml | 14 +- .../classes/MuseumArchiveRecordSetTypes.yaml | 22 +- .../classes/MuseumRegisterEnrichment.yaml | 8 +- .../linkml/modules/classes/MuseumType.yaml | 78 +- .../linkml/modules/classes/MusicArchive.yaml | 18 +- .../classes/MusicArchiveRecordSetType.yaml | 14 +- .../classes/MusicArchiveRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/Nachlass.yaml | 16 +- .../20251121/linkml/modules/classes/Name.yaml | 54 +- .../linkml/modules/classes/NameType.yaml | 20 +- .../linkml/modules/classes/NameTypes.yaml | 36 +- .../modules/classes/NationalArchives.yaml | 20 +- .../NationalArchivesRecordSetType.yaml | 10 +- .../NationalArchivesRecordSetTypes.yaml | 28 +- .../modules/classes/NationalTreasure.yaml | 10 +- .../classes/NationalTreasureOfFrance.yaml | 10 +- .../modules/classes/NetworkAnalysis.yaml | 28 +- .../classes/NewspaperClippingsArchive.yaml | 18 +- ...ewspaperClippingsArchiveRecordSetType.yaml | 14 +- ...wspaperClippingsArchiveRecordSetTypes.yaml | 16 +- .../modules/classes/NobilityArchive.yaml | 18 +- .../classes/NobilityArchiveRecordSetType.yaml | 14 +- .../NobilityArchiveRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/NonProfitType.yaml | 18 +- .../modules/classes/NotarialArchive.yaml | 18 +- .../classes/NotarialArchiveRecordSetType.yaml | 14 +- .../NotarialArchiveRecordSetTypes.yaml | 16 +- .../20251121/linkml/modules/classes/Note.yaml | 20 +- .../linkml/modules/classes/Notes.yaml | 4 +- .../modules/classes/OAIPMHEndpoint.yaml | 6 +- .../linkml/modules/classes/Observation.yaml | 8 +- .../classes/OfficialInstitutionType.yaml | 34 +- .../modules/classes/OnlineNewsArchive.yaml | 18 +- .../OnlineNewsArchiveRecordSetType.yaml | 14 +- .../OnlineNewsArchiveRecordSetTypes.yaml | 16 +- .../linkml/modules/classes/OpeningHours.yaml | 2 +- .../modules/classes/OperationalArchive.yaml | 4 +- .../modules/classes/OperationalUnit.yaml | 4 +- .../linkml/modules/classes/Organization.yaml | 10 +- .../modules/classes/OrganizationBranch.yaml | 90 +- .../classes/OrganizationalChangeEvent.yaml | 94 +- .../classes/OrganizationalStructure.yaml | 72 +- .../classes/OrganizationalSubdivision.yaml | 10 +- .../classes/OrganizationalUnitType.yaml | 36 +- .../classes/OrganizationalUnitTypes.yaml | 22 +- .../linkml/modules/classes/Organizer.yaml | 24 +- .../linkml/modules/classes/OrganizerRole.yaml | 2 +- .../linkml/modules/classes/OriginalEntry.yaml | 2 +- .../modules/classes/OutdoorSeating.yaml | 4 +- .../linkml/modules/classes/OutdoorSite.yaml | 134 +- .../linkml/modules/classes/Output.yaml | 8 +- .../linkml/modules/classes/OutputData.yaml | 22 +- .../linkml/modules/classes/Overview.yaml | 50 +- .../linkml/modules/classes/Owner.yaml | 24 +- .../classes/ParentOrganizationUnit.yaml | 10 +- .../linkml/modules/classes/ParishArchive.yaml | 18 +- .../classes/ParishArchiveRecordSetType.yaml | 14 +- .../classes/ParishArchiveRecordSetTypes.yaml | 22 +- .../classes/ParliamentaryArchives.yaml | 18 +- .../ParliamentaryArchivesRecordSetType.yaml | 14 +- .../ParliamentaryArchivesRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/Participant.yaml | 4 +- .../linkml/modules/classes/PartyArchive.yaml | 18 +- .../classes/PartyArchiveRecordSetType.yaml | 14 +- .../classes/PartyArchiveRecordSetTypes.yaml | 16 +- .../linkml/modules/classes/PaymentMethod.yaml | 2 +- .../linkml/modules/classes/Percentage.yaml | 2 +- .../classes/PerformingArtsArchive.yaml | 18 +- .../PerformingArtsArchiveRecordSetType.yaml | 14 +- .../PerformingArtsArchiveRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/Permission.yaml | 24 +- .../linkml/modules/classes/Person.yaml | 4 +- .../modules/classes/PersonConnection.yaml | 24 +- .../linkml/modules/classes/PersonName.yaml | 4 +- .../modules/classes/PersonObservation.yaml | 44 +- .../modules/classes/PersonOrOrganization.yaml | 10 +- .../modules/classes/PersonWebClaim.yaml | 36 +- .../classes/PersonalCollectionType.yaml | 50 +- .../linkml/modules/classes/PersonalData.yaml | 10 +- .../modules/classes/PersonalLibrary.yaml | 16 +- .../linkml/modules/classes/PhotoArchive.yaml | 18 +- .../classes/PhotoArchiveRecordSetType.yaml | 14 +- .../classes/PhotoArchiveRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/Photography.yaml | 66 +- .../linkml/modules/classes/PlaceType.yaml | 4 +- .../linkml/modules/classes/Platform.yaml | 8 +- .../linkml/modules/classes/PlatformType.yaml | 4 +- .../linkml/modules/classes/Policy.yaml | 12 +- .../modules/classes/PoliticalArchive.yaml | 18 +- .../PoliticalArchiveRecordSetType.yaml | 14 +- .../PoliticalArchiveRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/Portal.yaml | 8 +- .../modules/classes/PostcustodialArchive.yaml | 18 +- .../PostcustodialArchiveRecordSetType.yaml | 14 +- .../PostcustodialArchiveRecordSetTypes.yaml | 10 +- .../linkml/modules/classes/Precision.yaml | 4 +- .../linkml/modules/classes/PressArchive.yaml | 18 +- .../classes/PressArchiveRecordSetType.yaml | 14 +- .../classes/PressArchiveRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/Price.yaml | 42 +- .../linkml/modules/classes/PriceRange.yaml | 42 +- .../linkml/modules/classes/Primary.yaml | 4 +- .../PrimaryDigitalPresenceAssertion.yaml | 96 +- .../linkml/modules/classes/PrintRoom.yaml | 16 +- .../modules/classes/ProcessorAgent.yaml | 4 +- .../modules/classes/ProductCategory.yaml | 4 +- .../linkml/modules/classes/ProfileData.yaml | 6 +- .../linkml/modules/classes/Profit.yaml | 4 +- .../linkml/modules/classes/Program.yaml | 6 +- .../linkml/modules/classes/ProgramType.yaml | 16 +- .../linkml/modules/classes/Project.yaml | 112 +- .../linkml/modules/classes/Provenance.yaml | 62 +- .../modules/classes/ProvenanceBlock.yaml | 20 +- .../modules/classes/ProvenanceEvent.yaml | 206 +- .../modules/classes/ProvenancePath.yaml | 4 +- .../modules/classes/ProvincialArchive.yaml | 18 +- .../ProvincialArchiveRecordSetType.yaml | 14 +- .../ProvincialArchiveRecordSetTypes.yaml | 22 +- .../classes/ProvincialHistoricalArchive.yaml | 6 +- ...vincialHistoricalArchiveRecordSetType.yaml | 14 +- ...incialHistoricalArchiveRecordSetTypes.yaml | 10 +- .../linkml/modules/classes/PublicArchive.yaml | 18 +- .../classes/PublicArchiveRecordSetType.yaml | 14 +- .../classes/PublicArchiveRecordSetTypes.yaml | 22 +- .../classes/PublicArchivesInFrance.yaml | 18 +- .../PublicArchivesInFranceRecordSetType.yaml | 14 +- .../PublicArchivesInFranceRecordSetTypes.yaml | 10 +- .../linkml/modules/classes/Publication.yaml | 8 +- .../modules/classes/PublicationEvent.yaml | 16 +- .../modules/classes/PublicationSeries.yaml | 4 +- .../linkml/modules/classes/Publisher.yaml | 68 +- .../linkml/modules/classes/Qualifier.yaml | 4 +- .../linkml/modules/classes/Quantity.yaml | 100 +- .../linkml/modules/classes/RadioArchive.yaml | 18 +- .../classes/RadioArchiveRecordSetType.yaml | 14 +- .../classes/RadioArchiveRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/Rationale.yaml | 8 +- .../linkml/modules/classes/ReadingRoom.yaml | 80 +- .../modules/classes/ReadingRoomAnnex.yaml | 74 +- .../linkml/modules/classes/Reason.yaml | 8 +- .../modules/classes/ReasoningContent.yaml | 24 +- .../modules/classes/ReconstructedEntity.yaml | 14 +- .../classes/ReconstructionActivity.yaml | 16 +- .../modules/classes/ReconstructionAgent.yaml | 16 +- .../modules/classes/RecordCycleStatus.yaml | 8 +- .../linkml/modules/classes/RecordSetType.yaml | 8 +- .../linkml/modules/classes/RecordStatus.yaml | 8 +- .../linkml/modules/classes/Reference.yaml | 6 +- .../modules/classes/RegionalArchive.yaml | 18 +- .../classes/RegionalArchiveRecordSetType.yaml | 14 +- .../RegionalArchiveRecordSetTypes.yaml | 42 +- .../classes/RegionalArchivesInIceland.yaml | 18 +- ...egionalArchivesInIcelandRecordSetType.yaml | 14 +- ...gionalArchivesInIcelandRecordSetTypes.yaml | 10 +- .../classes/RegionalEconomicArchive.yaml | 18 +- .../RegionalEconomicArchiveRecordSetType.yaml | 14 +- ...RegionalEconomicArchiveRecordSetTypes.yaml | 10 +- .../classes/RegionalHistoricCenter.yaml | 10 +- .../classes/RegionalStateArchives.yaml | 18 +- .../RegionalStateArchivesRecordSetType.yaml | 14 +- .../RegionalStateArchivesRecordSetTypes.yaml | 10 +- .../classes/RegistrationAuthority.yaml | 14 +- .../modules/classes/RegistrationInfo.yaml | 10 +- .../modules/classes/RegistrationNumber.yaml | 4 +- .../modules/classes/ReligiousArchive.yaml | 18 +- .../ReligiousArchiveRecordSetType.yaml | 14 +- .../ReligiousArchiveRecordSetTypes.yaml | 16 +- .../modules/classes/RequirementStatus.yaml | 74 +- .../modules/classes/RequirementType.yaml | 62 +- .../linkml/modules/classes/Research.yaml | 4 +- .../modules/classes/ResearchCenter.yaml | 80 +- .../modules/classes/ResearchLibrary.yaml | 4 +- .../classes/ResearchOrganizationType.yaml | 40 +- .../linkml/modules/classes/Resolution.yaml | 36 +- .../linkml/modules/classes/ResourceType.yaml | 4 +- .../modules/classes/ResponseFormat.yaml | 6 +- .../modules/classes/ResponseFormatType.yaml | 12 +- .../modules/classes/Responsibility.yaml | 6 +- .../modules/classes/ResponsibilityType.yaml | 12 +- .../modules/classes/RetrievalAgent.yaml | 18 +- .../modules/classes/RetrievalEvent.yaml | 16 +- .../modules/classes/RetrievalMethod.yaml | 18 +- .../linkml/modules/classes/ReturnEvent.yaml | 38 +- .../linkml/modules/classes/Roadmap.yaml | 22 +- .../linkml/modules/classes/RoomUnit.yaml | 6 +- .../linkml/modules/classes/SceneSegment.yaml | 4 +- .../linkml/modules/classes/Schema.yaml | 8 +- .../linkml/modules/classes/SchoolArchive.yaml | 18 +- .../classes/SchoolArchiveRecordSetType.yaml | 14 +- .../classes/SchoolArchiveRecordSetTypes.yaml | 22 +- .../modules/classes/ScientificArchive.yaml | 18 +- .../ScientificArchiveRecordSetType.yaml | 14 +- .../ScientificArchiveRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/Scope.yaml | 4 +- .../linkml/modules/classes/ScopeType.yaml | 32 +- .../linkml/modules/classes/ScopeTypes.yaml | 24 +- .../linkml/modules/classes/SearchAPI.yaml | 8 +- .../linkml/modules/classes/SearchScore.yaml | 4 +- .../linkml/modules/classes/SectionLink.yaml | 4 +- .../classes/SectorOfArchivesInSweden.yaml | 18 +- ...SectorOfArchivesInSwedenRecordSetType.yaml | 14 +- ...ectorOfArchivesInSwedenRecordSetTypes.yaml | 10 +- .../modules/classes/SecurityArchives.yaml | 18 +- .../SecurityArchivesRecordSetType.yaml | 14 +- .../SecurityArchivesRecordSetTypes.yaml | 16 +- .../linkml/modules/classes/SecurityLevel.yaml | 6 +- .../modules/classes/SecuritySystem.yaml | 4 +- .../linkml/modules/classes/Segment.yaml | 8 +- .../modules/classes/SensitivityLevel.yaml | 8 +- .../linkml/modules/classes/Service.yaml | 6 +- .../linkml/modules/classes/ServiceArea.yaml | 40 +- .../linkml/modules/classes/ServiceType.yaml | 12 +- .../linkml/modules/classes/Setpoint.yaml | 2 +- .../linkml/modules/classes/Settlement.yaml | 10 +- .../linkml/modules/classes/ShortCode.yaml | 4 +- .../linkml/modules/classes/Significance.yaml | 40 +- .../modules/classes/SignificanceType.yaml | 12 +- .../modules/classes/SignificanceTypes.yaml | 28 +- .../modules/classes/SilenceSegment.yaml | 4 +- .../20251121/linkml/modules/classes/Size.yaml | 12 +- .../linkml/modules/classes/SnapshotPath.yaml | 8 +- .../modules/classes/SocialMediaContent.yaml | 50 +- .../classes/SocialMediaPlatformType.yaml | 4 +- .../classes/SocialMediaPlatformTypes.yaml | 52 +- .../modules/classes/SocialMediaPost.yaml | 50 +- .../modules/classes/SocialMediaPostType.yaml | 6 +- .../modules/classes/SocialMediaPostTypes.yaml | 24 +- .../modules/classes/SocialMediaProfile.yaml | 42 +- .../modules/classes/SocialNetworkMember.yaml | 24 +- .../linkml/modules/classes/SoundArchive.yaml | 20 +- .../classes/SoundArchiveRecordSetType.yaml | 10 +- .../classes/SoundArchiveRecordSetTypes.yaml | 22 +- .../modules/classes/SoundEventType.yaml | 4 +- .../linkml/modules/classes/Source.yaml | 38 +- .../modules/classes/SourceCommentCount.yaml | 16 +- .../modules/classes/SourceDocument.yaml | 4 +- .../modules/classes/SourceStaffEntry.yaml | 4 +- .../linkml/modules/classes/Speaker.yaml | 20 +- .../modules/classes/SpecialCollection.yaml | 20 +- .../SpecialCollectionRecordSetType.yaml | 14 +- .../modules/classes/SpecializedArchive.yaml | 20 +- .../SpecializedArchiveRecordSetType.yaml | 10 +- .../SpecializedArchiveRecordSetTypes.yaml | 10 +- .../classes/SpecializedArchivesCzechia.yaml | 20 +- ...ecializedArchivesCzechiaRecordSetType.yaml | 10 +- ...cializedArchivesCzechiaRecordSetTypes.yaml | 10 +- .../linkml/modules/classes/Species.yaml | 4 +- .../linkml/modules/classes/Staff.yaml | 12 +- .../linkml/modules/classes/StaffRole.yaml | 42 +- .../linkml/modules/classes/StaffRoles.yaml | 132 +- .../linkml/modules/classes/Standard.yaml | 6 +- .../classes/StandardsOrganization.yaml | 10 +- .../linkml/modules/classes/StateArchives.yaml | 20 +- .../classes/StateArchivesRecordSetType.yaml | 10 +- .../classes/StateArchivesRecordSetTypes.yaml | 28 +- .../modules/classes/StateArchivesSection.yaml | 20 +- .../StateArchivesSectionRecordSetType.yaml | 10 +- .../StateArchivesSectionRecordSetTypes.yaml | 10 +- .../modules/classes/StateDistrictArchive.yaml | 20 +- .../StateDistrictArchiveRecordSetType.yaml | 10 +- .../StateDistrictArchiveRecordSetTypes.yaml | 10 +- .../classes/StateRegionalArchiveCzechia.yaml | 20 +- ...teRegionalArchiveCzechiaRecordSetType.yaml | 10 +- ...eRegionalArchiveCzechiaRecordSetTypes.yaml | 10 +- .../linkml/modules/classes/StatementType.yaml | 52 +- .../modules/classes/StatementTypes.yaml | 24 +- .../linkml/modules/classes/Status.yaml | 24 +- .../linkml/modules/classes/Storage.yaml | 134 +- .../modules/classes/StorageCondition.yaml | 226 +- .../classes/StorageConditionPolicy.yaml | 80 +- .../modules/classes/StorageLocation.yaml | 74 +- .../linkml/modules/classes/StorageSystem.yaml | 4 +- .../linkml/modules/classes/StorageType.yaml | 264 +- .../linkml/modules/classes/StorageUnit.yaml | 66 +- .../modules/classes/StrategicObjective.yaml | 4 +- .../linkml/modules/classes/SubGuideType.yaml | 50 +- .../linkml/modules/classes/SubGuideTypes.yaml | 64 +- .../linkml/modules/classes/Subregion.yaml | 10 +- .../classes/SubsidiaryOrganization.yaml | 16 +- .../linkml/modules/classes/Summary.yaml | 4 +- .../modules/classes/SupervisedHandling.yaml | 4 +- .../linkml/modules/classes/Supplier.yaml | 48 +- .../linkml/modules/classes/SupplierType.yaml | 12 +- .../20251121/linkml/modules/classes/Tag.yaml | 22 +- .../modules/classes/TargetHumidity.yaml | 12 +- .../classes/TasteScentHeritageType.yaml | 40 +- .../modules/classes/TasteScentSubType.yaml | 18 +- .../modules/classes/TaxDeductibility.yaml | 96 +- .../modules/classes/TaxDeductibilityType.yaml | 12 +- .../classes/TaxDeductibilityTypes.yaml | 24 +- .../linkml/modules/classes/TaxScheme.yaml | 90 +- .../linkml/modules/classes/TaxSchemeType.yaml | 12 +- .../linkml/modules/classes/Taxon.yaml | 16 +- .../linkml/modules/classes/TaxonName.yaml | 8 +- .../modules/classes/TaxonomicAuthority.yaml | 56 +- .../modules/classes/TechnicalFeature.yaml | 6 +- .../modules/classes/TechnicalFeatureType.yaml | 12 +- .../linkml/modules/classes/Technique.yaml | 80 +- .../linkml/modules/classes/TechniqueType.yaml | 18 +- .../modules/classes/TechniqueTypes.yaml | 4 +- .../classes/TechnologicalInfrastructure.yaml | 82 +- .../TechnologicalInfrastructureType.yaml | 18 +- .../modules/classes/TelevisionArchive.yaml | 20 +- .../TelevisionArchiveRecordSetType.yaml | 10 +- .../TelevisionArchiveRecordSetTypes.yaml | 22 +- .../modules/classes/TemperatureDeviation.yaml | 64 +- .../classes/TemplateSpecificityScore.yaml | 22 +- .../classes/TemplateSpecificityType.yaml | 14 +- .../modules/classes/TemporaryLocation.yaml | 76 +- .../classes/TentativeWorldHeritageSite.yaml | 22 +- .../20251121/linkml/modules/classes/Text.yaml | 18 +- .../linkml/modules/classes/TextDirection.yaml | 30 +- .../linkml/modules/classes/TextRegion.yaml | 4 +- .../linkml/modules/classes/TextSegment.yaml | 4 +- .../linkml/modules/classes/TextType.yaml | 50 +- .../linkml/modules/classes/TextTypes.yaml | 176 +- .../linkml/modules/classes/ThematicRoute.yaml | 4 +- .../linkml/modules/classes/ThinkingMode.yaml | 24 +- .../linkml/modules/classes/Threat.yaml | 6 +- .../linkml/modules/classes/ThreatType.yaml | 12 +- .../linkml/modules/classes/Thumbnail.yaml | 34 +- .../linkml/modules/classes/TimeSpan.yaml | 10 +- .../linkml/modules/classes/TimeSpanType.yaml | 8 +- .../linkml/modules/classes/Timestamp.yaml | 40 +- .../linkml/modules/classes/Title.yaml | 14 +- .../linkml/modules/classes/TitleType.yaml | 12 +- .../linkml/modules/classes/Token.yaml | 40 +- .../linkml/modules/classes/TokenType.yaml | 18 +- .../linkml/modules/classes/TokenTypes.yaml | 42 +- .../linkml/modules/classes/Topic.yaml | 44 +- .../linkml/modules/classes/TopicType.yaml | 36 +- .../modules/classes/TrackIdentifier.yaml | 4 +- .../linkml/modules/classes/TradeRegister.yaml | 34 +- .../modules/classes/TradeUnionArchive.yaml | 24 +- .../TradeUnionArchiveRecordSetType.yaml | 14 +- .../TradeUnionArchiveRecordSetTypes.yaml | 34 +- .../classes/TraditionalProductType.yaml | 12 +- .../modules/classes/TranscriptFormat.yaml | 4 +- .../linkml/modules/classes/TransferEvent.yaml | 24 +- .../modules/classes/TransferPolicy.yaml | 10 +- .../modules/classes/TransitionType.yaml | 64 +- .../modules/classes/TransitionTypes.yaml | 120 +- .../modules/classes/TransmissionMethod.yaml | 8 +- .../linkml/modules/classes/TreatmentType.yaml | 60 +- .../modules/classes/TreatmentTypes.yaml | 18 +- .../20251121/linkml/modules/classes/Type.yaml | 4 +- .../linkml/modules/classes/TypeStatus.yaml | 8 +- .../linkml/modules/classes/UNESCODomain.yaml | 6 +- .../modules/classes/UNESCODomainType.yaml | 12 +- .../modules/classes/UNESCOListStatus.yaml | 6 +- .../20251121/linkml/modules/classes/URL.yaml | 36 +- .../linkml/modules/classes/URLType.yaml | 8 +- .../20251121/linkml/modules/classes/Unit.yaml | 12 +- .../modules/classes/UnitIdentifier.yaml | 6 +- .../linkml/modules/classes/University.yaml | 4 +- .../modules/classes/UniversityArchive.yaml | 26 +- .../UniversityArchiveRecordSetType.yaml | 10 +- .../UniversityArchiveRecordSetTypes.yaml | 22 +- .../modules/classes/UnspecifiedType.yaml | 46 +- .../modules/classes/UpdateFrequency.yaml | 30 +- .../linkml/modules/classes/UseCase.yaml | 22 +- .../linkml/modules/classes/UserCommunity.yaml | 6 +- .../modules/classes/UserCommunityType.yaml | 12 +- .../modules/classes/ValidationStatus.yaml | 12 +- .../linkml/modules/classes/Value.yaml | 4 +- .../linkml/modules/classes/VariantType.yaml | 14 +- .../linkml/modules/classes/VariantTypes.yaml | 24 +- .../linkml/modules/classes/Venue.yaml | 6 +- .../linkml/modules/classes/VenueType.yaml | 12 +- .../linkml/modules/classes/Vereinsarchiv.yaml | 20 +- .../classes/VereinsarchivRecordSetType.yaml | 20 +- .../linkml/modules/classes/Verlagsarchiv.yaml | 20 +- .../classes/VerlagsarchivRecordSetType.yaml | 14 +- .../linkml/modules/classes/Version.yaml | 6 +- .../linkml/modules/classes/VersionNumber.yaml | 6 +- .../modules/classes/Verwaltungsarchiv.yaml | 20 +- .../VerwaltungsarchivRecordSetType.yaml | 14 +- .../modules/classes/ViabilityStatus.yaml | 12 +- .../linkml/modules/classes/Video.yaml | 36 +- .../modules/classes/VideoAnnotation.yaml | 72 +- .../modules/classes/VideoAnnotationTypes.yaml | 134 +- .../modules/classes/VideoAudioAnnotation.yaml | 68 +- .../classes/VideoCategoryIdentifier.yaml | 6 +- .../linkml/modules/classes/VideoChapter.yaml | 66 +- .../modules/classes/VideoChapterList.yaml | 68 +- .../linkml/modules/classes/VideoFrame.yaml | 24 +- .../linkml/modules/classes/VideoFrames.yaml | 14 +- .../modules/classes/VideoIdentifier.yaml | 6 +- .../linkml/modules/classes/VideoPost.yaml | 210 +- .../linkml/modules/classes/VideoSubtitle.yaml | 78 +- .../modules/classes/VideoTextContent.yaml | 54 +- .../modules/classes/VideoTimeSegment.yaml | 30 +- .../modules/classes/VideoTranscript.yaml | 22 +- .../modules/classes/VisitingScholar.yaml | 2 +- .../20251121/linkml/modules/classes/WKT.yaml | 8 +- .../linkml/modules/classes/Warehouse.yaml | 128 +- .../linkml/modules/classes/WarehouseType.yaml | 58 +- .../modules/classes/WarehouseTypes.yaml | 20 +- .../linkml/modules/classes/WebArchive.yaml | 24 +- .../classes/WebArchiveRecordSetType.yaml | 10 +- .../classes/WebArchiveRecordSetTypes.yaml | 16 +- .../linkml/modules/classes/WebClaim.yaml | 142 +- .../modules/classes/WebClaimsBlock.yaml | 8 +- .../linkml/modules/classes/WebLink.yaml | 30 +- .../modules/classes/WebObservation.yaml | 58 +- .../linkml/modules/classes/WebPage.yaml | 4 +- .../linkml/modules/classes/WebPlatform.yaml | 8 +- .../linkml/modules/classes/WebPortal.yaml | 138 +- .../linkml/modules/classes/WebPortalType.yaml | 28 +- .../modules/classes/WebPortalTypes.yaml | 96 +- .../modules/classes/WhatsAppProfile.yaml | 4 +- .../20251121/linkml/modules/classes/Wifi.yaml | 4 +- .../linkml/modules/classes/WikiDataEntry.yaml | 34 +- .../modules/classes/WikidataAlignment.yaml | 24 +- .../modules/classes/WomensArchives.yaml | 20 +- .../classes/WomensArchivesRecordSetType.yaml | 10 +- .../classes/WomensArchivesRecordSetTypes.yaml | 22 +- .../linkml/modules/classes/WordCount.yaml | 8 +- .../modules/classes/WorkExperience.yaml | 56 +- .../linkml/modules/classes/WorkRevision.yaml | 4 +- .../modules/classes/WorldCatIdentifier.yaml | 8 +- .../modules/classes/WorldHeritageSite.yaml | 22 +- .../linkml/modules/classes/WritingSystem.yaml | 8 +- .../linkml/modules/classes/XPath.yaml | 2 +- .../linkml/modules/classes/XPathScore.yaml | 8 +- .../modules/classes/YoutubeChannel.yaml | 4 +- .../linkml/modules/classes/YoutubeVideo.yaml | 12 +- .../modules/slots/20260202_matang/accept.yaml | 176 +- .../20260202_matang/access_restricted.yaml | 121 + .../20260202_matang/accessioned_through.yaml | 109 + .../slots/20260202_matang/accumulated_at.yaml | 111 + .../slots/20260202_matang/accuracy.yaml | 109 + .../slots/20260202_matang/acquired_by.yaml | 109 + .../20260202_matang/acquired_through.yaml | 113 + .../slots/20260202_matang/active_since.yaml | 112 + .../20260202_matang/administered_by.yaml | 201 + .../modules/slots/20260202_matang/affect.yaml | 158 +- .../slots/20260202_matang/affected_by.yaml | 99 + .../20260202_matang/affiliated_with.yaml | 106 + .../slots/20260202_matang/aggregate_from.yaml | 153 +- .../slots/20260202_matang/aggregated_by.yaml | 100 + .../slots/20260202_matang/aligned_at.yaml | 116 + .../slots/20260202_matang/allocate.yaml | 143 +- .../20260202_matang/allocated_budget.yaml | 102 + .../slots/20260202_matang/allocated_by.yaml | 98 + .../20260202_matang/allocated_through.yaml | 97 + .../slots/20260202_matang/allocated_to.yaml | 107 + .../modules/slots/20260202_matang/allow.yaml | 167 +- .../20260202_matang/alternative_form_of.yaml | 102 + .../20260202_matang/amended_through.yaml | 99 + .../slots/20260202_matang/analyze.yaml | 196 +- .../slots/20260202_matang/appended_with.yaml | 98 + .../slots/20260202_matang/applicable_in.yaml | 102 + .../slots/20260202_matang/apply_to.yaml | 134 + .../slots/20260202_matang/appreciated.yaml | 98 + .../slots/20260202_matang/approved_by.yaml | 101 + .../slots/20260202_matang/approved_on.yaml | 94 + .../slots/20260202_matang/archived_as.yaml | 106 + .../slots/20260202_matang/archived_at.yaml | 97 + .../slots/20260202_matang/archived_in.yaml | 105 + .../modules/slots/20260202_matang/assert.yaml | 144 + .../slots/20260202_matang/asserted_by.yaml | 93 + .../slots/20260202_matang/asserted_on.yaml | 90 + .../slots/20260202_matang/assessed_on.yaml | 90 + .../20260202_matang/associated_with.yaml | 99 + .../slots/20260202_matang/available.yaml | 99 + .../slots/20260202_matang/based_on.yaml | 143 + .../20260202_matang/begin_of_the_begin.yaml | 150 + .../20260202_matang/begin_of_the_end.yaml | 150 + .../slots/20260202_matang/born_on.yaml | 94 + .../slots/20260202_matang/branch_of.yaml | 98 + .../slots/20260202_matang/cancelled_by.yaml | 102 + .../slots/20260202_matang/cataloged_in.yaml | 94 + .../slots/20260202_matang/catalogue.yaml | 154 + .../slots/20260202_matang/categorized_as.yaml | 209 + .../slots/20260202_matang/caused_by.yaml | 101 + .../slots/20260202_matang/ceased_by.yaml | 92 + .../slots/20260202_matang/ceased_through.yaml | 170 + .../change_ownership_from.yaml | 131 + .../20260202_matang/change_ownership_to.yaml | 131 + .../20260202_matang/changed_through.yaml | 144 + .../20260202_matang/checked_through.yaml | 90 + .../slots/20260202_matang/classified_as.yaml | 103 + .../slots/20260202_matang/classify.yaml | 163 + .../slots/20260202_matang/collect.yaml | 186 + .../slots/20260202_matang/collection_of.yaml | 133 + .../slots/20260202_matang/commented_on.yaml | 100 + .../20260202_matang/compatible_with.yaml | 102 + .../slots/20260202_matang/comply_with.yaml | 121 + .../slots/20260202_matang/conducted_by.yaml | 96 + .../slots/20260202_matang/contain.yaml | 162 + .../20260202_matang/contain_collection.yaml | 101 + .../20260202_matang/contain_storage_unit.yaml | 101 + .../slots/20260202_matang/cover_place.yaml | 113 + .../slots/20260202_matang/created_by.yaml | 131 + .../20260202_matang/created_through.yaml | 95 + .../20260202_matang/curated_through.yaml | 107 + .../slots/20260202_matang/current.yaml | 90 + .../20260202_matang/decommissioned_at.yaml | 93 + .../modules/slots/20260202_matang/define.yaml | 100 + .../20260202_matang/degree_of_certainty.yaml | 110 + .../slots/20260202_matang/department_of.yaml | 102 + .../slots/20260202_matang/deployed_at.yaml | 42 + .../20260202_matang/deployed_through.yaml | 119 + .../slots/20260202_matang/deposited_by.yaml | 108 + .../slots/20260202_matang/derive_from.yaml | 223 + .../slots/20260202_matang/describe.yaml | 111 + .../slots/20260202_matang/designed_by.yaml | 103 + .../slots/20260202_matang/diarized.yaml | 101 + .../slots/20260202_matang/dismissed.yaml | 101 + .../slots/20260202_matang/displayed_at.yaml | 96 + .../slots/20260202_matang/dissolved_by.yaml | 95 + .../slots/20260202_matang/document.yaml | 124 + .../slots/20260202_matang/documented_by.yaml | 105 + .../slots/20260202_matang/documented_in.yaml | 103 + .../modules/slots/20260202_matang/due_on.yaml | 99 + .../slots/20260202_matang/edited_by.yaml | 101 + .../slots/20260202_matang/effective_at.yaml | 103 + .../slots/20260202_matang/emphasize.yaml | 169 + .../slots/20260202_matang/employed_by.yaml | 103 + .../slots/20260202_matang/encompassed_by.yaml | 108 + .../20260202_matang/end_of_the_begin.yaml | 138 + .../slots/20260202_matang/end_of_the_end.yaml | 156 + .../slots/20260202_matang/equivalent_to.yaml | 68 + .../slots/20260202_matang/established_by.yaml | 95 + .../slots/20260202_matang/exclude.yaml | 101 + .../slots/20260202_matang/exhibit.yaml | 107 + .../slots/20260202_matang/exhibited_at.yaml | 99 + .../slots/20260202_matang/expired_at.yaml | 96 + .../20260202_matang/exposed_through.yaml | 104 + .../slots/20260202_matang/extended.yaml | 88 + .../20260202_matang/extracted_through.yaml | 98 + .../20260202_matang/founded_through.yaml | 105 + .../slots/20260202_matang/fulfilled_by.yaml | 145 + .../slots/20260202_matang/generated_by.yaml | 104 + .../slots/20260202_matang/governed_by.yaml | 106 + .../20260202_matang/has_abbreviation.yaml | 99 + .../20260202_matang/has_access_frequency.yaml | 104 + .../has_access_management.yaml | 108 + .../20260202_matang/has_access_policy.yaml | 140 + .../has_accessibility_feature.yaml | 197 + .../20260202_matang/has_accreditation.yaml | 102 + .../slots/20260202_matang/has_activity.yaml | 93 + .../slots/20260202_matang/has_address.yaml | 94 + .../20260202_matang/has_administration.yaml | 89 + .../has_administration_description.yaml | 116 + .../has_administration_name.yaml | 110 + .../has_administrative_context.yaml | 88 + .../has_administrative_function.yaml | 88 + .../20260202_matang/has_admission_fee.yaml | 90 + .../has_affected_territory.yaml | 89 + .../20260202_matang/has_affiliation.yaml | 85 + .../slots/20260202_matang/has_age.yaml | 131 + .../slots/20260202_matang/has_agent.yaml | 101 + .../slots/20260202_matang/has_alignment.yaml | 88 + .../has_alternative_observed_name.yaml | 93 + .../slots/20260202_matang/has_altitude.yaml | 88 + .../has_amendment_history.yaml | 2 + .../has_animal_species_count.yaml | 21 + .../has_annex_description.yaml | 2 + .../has_annex_name.yaml | 2 + .../has_annex_reason.yaml | 2 + .../slots/20260202_matang/has_annotation.yaml | 29 + .../has_appellation_language.yaml | 2 + .../has_appellation_type.yaml | 2 + .../has_appellation_value.yaml | 2 + .../has_applicable_country.yaml | 2 + .../has_application_deadline.yaml | 2 + .../has_application_opening_date.yaml | 2 + .../has_appraisal_note.yaml | 2 + .../has_approval_date.yaml | 2 + .../has_archdiocese_name.yaml | 2 + .../slots/20260202_matang/has_architect.yaml | 21 + .../has_archival_reference.yaml | 2 + .../slots/20260202_matang/has_archive.yaml | 29 + .../has_archive_description.yaml | 2 + .../has_archive_memento_uri.yaml | 2 + .../has_archive_name.yaml | 2 + .../has_archive_search_score.yaml | 2 + .../20260202_matang/has_arrangement.yaml | 21 + .../has_arrangement_level.yaml | 31 + .../has_arrangement_note.yaml | 2 + .../has_articles_archival_stage.yaml | 2 + .../has_articles_document_format.yaml | 2 + .../has_articles_document_url.yaml | 2 + .../has_articles_of_association.yaml | 2 + .../20260202_matang/has_artwork_count.yaml | 37 + .../slots/20260202_matang/has_assessment.yaml | 21 + .../slots/20260202_matang/has_asset.yaml | 179 + .../slots/20260202_matang/has_audio.yaml | 21 + .../slots/20260202_matang/has_author.yaml | 40 + .../20260202_matang/has_author_name.yaml | 30 + .../slots/20260202_matang/has_authority.yaml | 48 + .../has_auxiliary_entities.yaml | 55 + .../has_auxiliary_platform.yaml | 21 + .../slots/20260202_matang/has_base.yaml | 36 + .../20260202_matang/has_beneficiary.yaml | 41 + .../slots/20260202_matang/has_benefit.yaml | 22 + .../slots/20260202_matang/has_boundary.yaml | 29 + .../slots/20260202_matang/has_branch.yaml | 25 + .../slots/20260202_matang/has_budget.yaml | 26 + .../20260202_matang/has_canonical_form.yaml | 21 + .../slots/20260202_matang/has_capacity.yaml | 25 + .../slots/20260202_matang/has_caption.yaml | 24 + .../slots/20260202_matang/has_carrier.yaml | 22 + .../slots/20260202_matang/has_chapter.yaml | 120 + .../slots/20260202_matang/has_citation.yaml | 21 + .../slots/20260202_matang/has_city_code.yaml | 21 + .../slots/20260202_matang/has_code.yaml | 136 + .../slots/20260202_matang/has_cofunding.yaml | 21 + .../slots/20260202_matang/has_collection.yaml | 127 + .../20260202_matang/has_collection_url.yaml | 30 + .../slots/20260202_matang/has_component.yaml | 21 + .../slots/20260202_matang/has_condition.yaml | 44 + .../slots/20260202_matang/has_confidence.yaml | 21 + .../has_confidence_measure.yaml | 21 + .../20260202_matang/has_contact_details.yaml | 25 + .../has_contact_information.yaml | 21 + .../20260202_matang/has_contact_point.yaml | 26 + .../slots/20260202_matang/has_content.yaml | 161 + .../20260202_matang/has_contributor.yaml | 34 + .../20260202_matang/has_conversion_rate.yaml | 21 + .../20260202_matang/has_coordinates.yaml | 25 + .../slots/20260202_matang/has_creator.yaml | 21 + .../slots/20260202_matang/has_currency.yaml | 25 + .../slots/20260202_matang/has_custodian.yaml | 21 + .../20260202_matang/has_custodian_name.yaml | 31 + .../has_custodian_observation.yaml | 31 + .../has_data_quality_notes.yaml | 21 + .../slots/20260202_matang/has_date.yaml | 21 + .../slots/20260202_matang/has_degree.yaml | 23 + .../20260202_matang/has_description.yaml | 49 + .../slots/20260202_matang/has_detected.yaml | 56 + .../slots/20260202_matang/has_device.yaml | 103 + .../has_digital_platform.yaml} | 18 +- .../20260202_matang/has_digital_presence.yaml | 24 + .../slots/20260202_matang/has_direction.yaml | 35 + .../slots/20260202_matang/has_document.yaml | 21 + .../20260202_matang/has_documentation.yaml | 27 + .../slots/20260202_matang/has_domain.yaml | 38 + .../slots/20260202_matang/has_drawer.yaml | 33 + .../slots/20260202_matang/has_edition.yaml | 24 + .../20260202_matang/has_email_address.yaml | 155 + .../20260202_matang/has_embargo_end_date.yaml | 21 + .../20260202_matang/has_embargo_reason.yaml | 32 + .../slots/20260202_matang/has_encoding.yaml | 21 + .../20260202_matang/has_endowment_draw.yaml | 34 + .../slots/20260202_matang/has_endpoint.yaml | 26 + .../has_engagement_metric.yaml | 34 + .../has_environmental_control.yaml} | 2 + .../slots/20260202_matang/has_equipment.yaml | 22 + .../20260202_matang/has_equipment_type.yaml | 29 + .../slots/20260202_matang/has_example.yaml | 118 + .../slots/20260202_matang/has_exhibition.yaml | 21 + .../20260202_matang/has_exhibition_type.yaml | 21 + .../slots/20260202_matang/has_expense.yaml | 24 + .../20260202_matang/has_expertise_in.yaml | 21 + .../20260202_matang/has_extent_text.yaml | 21 + .../slots/20260202_matang/has_facility.yaml | 27 + .../slots/20260202_matang/has_feature.yaml | 25 + .../slots/20260202_matang/has_fee.yaml | 26 + .../slots/20260202_matang/has_field.yaml | 21 + .../20260202_matang/has_file_location.yaml | 21 + .../slots/20260202_matang/has_file_path.yaml | 21 + .../slots/20260202_matang/has_fixity.yaml | 30 + .../slots/20260202_matang/has_flag.yaml | 29 + .../slots/20260202_matang/has_focus.yaml | 30 + .../slots/20260202_matang/has_fond.yaml | 21 + .../slots/20260202_matang/has_format.yaml | 215 + .../slots/20260202_matang/has_frequency.yaml | 22 + .../slots/20260202_matang/has_function.yaml | 22 + .../slots/20260202_matang/has_funded.yaml | 21 + .../slots/20260202_matang/has_generate.yaml | 21 + .../slots/20260202_matang/has_geofeature.yaml | 31 + .../has_geographic_extent.yaml | 24 + .../has_geographic_subdivision.yaml | 27 + .../20260202_matang/has_geometric_extent.yaml | 21 + .../slots/20260202_matang/has_geometry.yaml | 44 + .../slots/20260202_matang/has_habitat.yaml | 23 + .../has_hands_on_facility.yaml | 2 + .../slots/20260202_matang/has_head.yaml | 21 + .../has_height.yaml} | 21 +- .../slots/20260202_matang/has_homepage.yaml | 21 + .../20260202_matang/has_http_status.yaml | 22 + .../slots/20260202_matang/has_hypernym.yaml | 47 + .../slots/20260202_matang/has_hyponym.yaml | 44 + .../slots/20260202_matang/has_image.yaml | 25 + .../has_imaging_equipment.yaml | 2 + .../20260202_matang/has_index_number.yaml | 21 + .../slots/20260202_matang/has_index_type.yaml | 21 + .../20260202_matang/has_inscription.yaml | 21 + .../slots/20260202_matang/has_interface.yaml | 31 + .../20260202_matang/has_inventory_url.yaml | 21 + .../slots/20260202_matang/has_investment.yaml | 21 + .../20260202_matang/has_involved_actor.yaml | 21 + .../slots/20260202_matang/has_iso_639_1.yaml | 30 + .../slots/20260202_matang/has_iso_639_3.yaml | 30 + .../slots/20260202_matang/has_iso_code.yaml | 22 + .../20260202_matang/has_key_contact.yaml | 21 + .../slots/20260202_matang/has_label.yaml | 51 + .../slots/20260202_matang/has_language.yaml | 41 + .../slots/20260202_matang/has_level.yaml | 38 + .../slots/20260202_matang/has_liability.yaml | 42 + .../has_link.yaml | 2 + .../has_loading_dock.yaml | 2 + .../has_local_collection.yaml | 2 + .../slots/20260202_matang/has_location.yaml | 40 + .../slots/20260202_matang/has_main_part.yaml | 37 + .../slots/20260202_matang/has_mandate.yaml | 21 + .../has_material_type.yaml} | 28 +- .../slots/20260202_matang/has_mean.yaml | 21 + .../20260202_matang/has_measurement.yaml | 24 + .../20260202_matang/has_measurement_type.yaml | 21 + .../20260202_matang/has_measurement_unit.yaml | 45 + .../slots/20260202_matang/has_media_type.yaml | 21 + .../slots/20260202_matang/has_medium.yaml | 21 + .../slots/20260202_matang/has_member.yaml | 27 + .../slots/20260202_matang/has_metadata.yaml | 105 + .../slots/20260202_matang/has_method.yaml | 118 + .../20260202_matang/has_methodology.yaml | 123 + .../has_michelin_star.yaml | 2 + .../slots/20260202_matang/has_mode.yaml | 21 + .../slots/20260202_matang/has_model.yaml | 25 + .../slots/20260202_matang/has_name.yaml | 63 + .../has_narrower_instance.yaml | 2 + .../20260202_matang/has_navigation_link.yaml | 21 + .../slots/20260202_matang/has_net_asset.yaml | 21 + .../slots/20260202_matang/has_notation.yaml | 25 + .../slots/20260202_matang/has_note.yaml | 138 + .../20260202_matang/has_numeric_value.yaml | 39 + .../slots/20260202_matang/has_objective.yaml | 25 + .../has_observation.yaml | 2 + .../20260202_matang/has_opening_hour.yaml | 21 + .../has_operational_archive.yaml | 2 + .../has_operational_unit.yaml | 2 + .../has_organization_profile.yaml | 21 + .../has_organization_status.yaml | 21 + .../slots/20260202_matang/has_organizer.yaml | 25 + .../slots/20260202_matang/has_origin.yaml | 24 + .../slots/20260202_matang/has_output.yaml | 184 + .../slots/20260202_matang/has_overview.yaml | 21 + .../slots/20260202_matang/has_owner.yaml | 30 + .../slots/20260202_matang/has_parent.yaml | 21 + .../20260202_matang/has_participated_in.yaml | 30 + .../slots/20260202_matang/has_percentage.yaml | 32 + .../slots/20260202_matang/has_period.yaml | 30 + .../has_person_name.yaml | 2 + .../has_person_observation.yaml | 2 + .../slots/20260202_matang/has_place.yaml | 27 + .../slots/20260202_matang/has_policy.yaml | 18 + .../slots/20260202_matang/has_post_type.yaml | 21 + .../slots/20260202_matang/has_price.yaml | 25 + .../20260202_matang/has_primary_platform.yaml | 21 + .../slots/20260202_matang/has_profile.yaml | 48 + .../slots/20260202_matang/has_provenance.yaml | 45 + .../20260202_matang/has_provenance_path.yaml | 27 + .../20260202_matang/has_publication_date.yaml | 21 + .../slots/20260202_matang/has_publisher.yaml | 26 + .../slots/20260202_matang/has_qualifier.yaml | 29 + .../slots/20260202_matang/has_quantity.yaml | 48 + .../slots/20260202_matang/has_range.yaml | 21 + .../slots/20260202_matang/has_rank.yaml | 21 + .../slots/20260202_matang/has_rate.yaml | 21 + .../slots/20260202_matang/has_rating.yaml | 21 + .../slots/20260202_matang/has_rationale.yaml | 37 + .../slots/20260202_matang/has_reason.yaml | 21 + .../slots/20260202_matang/has_reference.yaml | 25 + .../slots/20260202_matang/has_reply.yaml | 25 + .../20260202_matang/has_requirement.yaml | 21 + .../slots/20260202_matang/has_resolution.yaml | 21 + .../20260202_matang/has_responsibility.yaml | 21 + .../20260202_matang/has_restriction.yaml | 21 + .../slots/20260202_matang/has_revenue.yaml | 23 + .../slots/20260202_matang/has_risk.yaml | 21 + .../slots/20260202_matang/has_roadmap.yaml | 21 + .../slots/20260202_matang/has_role.yaml | 177 + .../has_schedule.yaml} | 20 +- .../slots/20260202_matang/has_schema.yaml | 21 + .../slots/20260202_matang/has_scheme.yaml | 24 + .../slots/20260202_matang/has_scope.yaml | 136 + .../slots/20260202_matang/has_score.yaml | 162 + .../20260202_matang/has_secondary_label.yaml | 21 + .../has_secondary_platform.yaml | 21 + .../slots/20260202_matang/has_section.yaml | 22 + .../slots/20260202_matang/has_segment.yaml | 22 + .../has_sensitivity_level.yaml | 21 + .../20260202_matang/has_sequence_index.yaml | 21 + .../slots/20260202_matang/has_series.yaml | 21 + .../slots/20260202_matang/has_service.yaml | 27 + .../20260202_matang/has_service_area.yaml | 56 + .../20260202_matang/has_service_details.yaml | 30 + .../slots/20260202_matang/has_setpoint.yaml | 42 + .../20260202_matang/has_significance.yaml | 24 + .../slots/20260202_matang/has_size.yaml | 24 + .../has_social_media_profile.yaml | 37 + .../slots/20260202_matang/has_source.yaml | 40 + .../20260202_matang/has_specification.yaml | 47 + .../slots/20260202_matang/has_staff.yaml | 29 + .../20260202_matang/has_staff_member.yaml | 26 + .../slots/20260202_matang/has_standard.yaml | 27 + .../slots/20260202_matang/has_status.yaml | 44 + .../has_structure.yaml} | 10 +- .../slots/20260202_matang/has_style.yaml | 37 + .../20260202_matang/has_sub_collection.yaml | 21 + .../slots/20260202_matang/has_subject.yaml | 60 + .../slots/20260202_matang/has_subtype.yaml | 21 + .../slots/20260202_matang/has_summary.yaml | 26 + .../slots/20260202_matang/has_supplier.yaml | 25 + .../slots/20260202_matang/has_symbol.yaml | 48 + .../has_technological_infrastructure.yaml | 148 + .../slots/20260202_matang/has_text.yaml | 39 + .../slots/20260202_matang/has_threshold.yaml | 22 + .../slots/20260202_matang/has_thumbnail.yaml | 41 + .../slots/20260202_matang/has_tier.yaml | 21 + .../20260202_matang/has_time_interval.yaml | 149 + .../slots/20260202_matang/has_timestamp.yaml | 46 + .../slots/20260202_matang/has_title.yaml | 40 + .../slots/20260202_matang/has_token.yaml | 174 + .../slots/20260202_matang/has_tolerance.yaml | 21 + .../slots/20260202_matang/has_tool.yaml | 21 + .../slots/20260202_matang/has_topic.yaml | 21 + .../has_transformation_metadata.yaml | 21 + .../slots/20260202_matang/has_treatment.yaml | 43 + .../slots/20260202_matang/has_treshold.yaml | 67 + .../slots/20260202_matang/has_type.yaml | 167 + .../slots/20260202_matang/has_type_code.yaml | 36 + .../slots/20260202_matang/has_unit.yaml | 50 + .../slots/20260202_matang/has_uri.yaml | 38 + .../slots/20260202_matang/has_url.yaml | 158 + .../slots/20260202_matang/has_use_case.yaml | 22 + .../20260202_matang/has_user_category.yaml | 22 + .../slots/20260202_matang/has_value.yaml | 50 + .../20260202_matang/has_variant_name.yaml | 21 + .../slots/20260202_matang/has_venue.yaml | 21 + .../20260202_matang/has_verbatim_value.yaml | 21 + .../slots/20260202_matang/has_version.yaml | 39 + .../slots/20260202_matang/has_video.yaml | 21 + .../slots/20260202_matang/has_web_claim.yaml | 22 + .../slots/20260202_matang/has_web_page.yaml | 143 + .../slots/20260202_matang/has_width.yaml | 97 + .../headed_by.yaml} | 22 +- .../heritage_holding.yaml | 2 + .../higher_classification.yaml | 2 + .../historic_building_description.yaml | 2 + .../historic_building_id.yaml | 2 + .../hold_authority.yaml} | 2 + .../slots/20260202_matang/identified_by.yaml | 192 + .../20260202_matang/identified_through.yaml | 21 + .../slots/20260202_matang/implemented_by.yaml | 22 + .../slots/20260202_matang/in_area.yaml | 130 + .../slots/20260202_matang/in_script.yaml | 144 + .../slots/20260202_matang/include.yaml | 146 + .../slots/20260202_matang/included_in.yaml | 25 + .../slots/20260202_matang/indexed.yaml | 21 + .../slots/20260202_matang/instance_of.yaml | 24 + .../20260202_matang/instantiated_as.yaml | 21 + .../20260202_matang/instantiated_by.yaml | 23 + .../slots/20260202_matang/involved_in.yaml | 22 + .../slots/20260202_matang/is_location_of.yaml | 114 + .../20260202_matang/last_updated_at.yaml | 25 + .../slots/20260202_matang/listed_in.yaml | 205 + .../slots/20260202_matang/located_at.yaml | 24 + .../slots/20260202_matang/located_in.yaml | 63 + .../slots/20260202_matang/located_within.yaml | 58 + .../slots/20260202_matang/managed_by.yaml | 27 + .../slots/20260202_matang/member_of.yaml | 58 + .../20260202_matang/new/approximate.yaml | 36 + .../new}/archive_path.yaml | 0 .../new/basionym_authority.yaml | 14 + .../new}/connection_heritage_relevant.yaml | 0 .../new}/connection_heritage_type.yaml | 0 .../new}/connection_id.yaml | 0 .../new}/connection_linkedin_url.yaml | 0 .../new}/connection_location.yaml | 0 .../new}/connection_name.yaml | 0 .../new}/connection_organization.yaml | 0 .../new}/connections_by_heritage_type.yaml | 0 .../new}/connections_extracted.yaml | 0 .../new}/connections_text.yaml | 0 .../new}/connectivity_type.yaml | 0 .../new}/conservation_breeding.yaml | 0 .../new}/conservation_history.yaml | 0 .../new}/conservation_lab.yaml | 0 .../new}/conservation_note.yaml | 0 .../new}/conservation_specialization.yaml | 0 .../new}/conservation_status.yaml | 0 .../new}/conservator.yaml | 0 .../new}/conservator_affiliation.yaml | 0 .../new}/constituent_type.yaml | 0 .../new}/construction_date.yaml | 0 .../new}/construction_date_precision.yaml | 0 .../new}/consumes_or_consumed.yaml | 0 .../{ => 20260202_matang/new}/contact.yaml | 0 .../new}/contact_point.yaml | 0 .../new}/contains_storage.yaml | 0 .../{ => 20260202_matang/new}/content.yaml | 0 .../new}/content_block.yaml | 0 .../new}/content_category.yaml | 0 .../new}/content_changed.yaml | 0 .../new}/content_hash.yaml | 0 .../{ => 20260202_matang/new}/content_id.yaml | 0 .../new}/content_origin.yaml | 0 .../new}/content_title.yaml | 0 .../new}/content_type.yaml | 0 .../new}/content_url.yaml | 0 .../new}/contents_description.yaml | 0 .../new}/contributes_or_contributed.yaml | 0 .../new}/contributes_to.yaml | 0 .../new}/contribution_start_date.yaml | 0 .../new}/contributor.yaml | 0 .../new}/contributor_code.yaml | 0 .../new}/conversion_source_population.yaml | 0 .../new}/conversion_target_action.yaml | 0 .../new}/conversion_type_label.yaml | 0 .../new}/coordinate_reference_system.yaml | 0 .../new}/coordinates.yaml | 0 .../{ => 20260202_matang/new}/copy_note.yaml | 0 .../new}/copy_number.yaml | 0 .../new}/corporate_integration.yaml | 0 .../slots/{ => 20260202_matang/new}/cost.yaml | 0 .../new}/cost_currency.yaml | 0 .../{ => 20260202_matang/new}/cost_usd.yaml | 0 .../{ => 20260202_matang/new}/country.yaml | 0 .../new}/country_code.yaml | 0 .../new}/country_name.yaml | 0 .../new}/courier_detail.yaml | 0 .../new}/courier_required.yaml | 0 .../new}/court_types_covered.yaml | 0 .../new}/cover_image_url.yaml | 0 .../new}/cover_material.yaml | 0 .../new}/cover_or_covered_subregion.yaml | 0 .../new}/coverage_area.yaml | 0 .../new}/covers_country.yaml | 0 .../new}/covers_full_video.yaml | 0 .../new}/crawler_version.yaml | 0 .../{ => 20260202_matang/new}/created.yaml | 0 .../new}/created_by_project.yaml | 0 .../new}/created_date.yaml | 0 .../new}/creating_agency.yaml | 0 .../new}/creating_function.yaml | 0 .../new}/creating_organization.yaml | 0 .../new}/creation_place.yaml | 0 .../new}/creation_timespan.yaml | 0 .../{ => 20260202_matang/new}/creator.yaml | 0 .../new}/creator_role.yaml | 0 .../new}/credentials_required.yaml | 0 .../new}/css_selector.yaml | 0 .../new}/cuisine_type.yaml | 0 .../new}/cultural_context.yaml | 0 .../new}/cultural_focus_area.yaml | 0 .../new}/cultural_protocol_url.yaml | 0 .../{ => 20260202_matang/new}/curated_by.yaml | 0 .../new}/curated_holding.yaml | 0 .../{ => 20260202_matang/new}/currency.yaml | 0 .../new}/currency_code.yaml | 0 .../new}/currency_symbol.yaml | 0 .../new}/current_exhibition.yaml | 0 .../new}/current_item_count.yaml | 0 .../new}/current_keeper.yaml | 0 .../new}/current_location.yaml | 0 .../new}/current_use.yaml | 0 .../new}/current_utilization_percent.yaml | 0 .../new}/custodial_history.yaml | 0 .../{ => 20260202_matang/new}/custodian.yaml | 0 .../new}/custodian_only.yaml | 0 .../new}/custodian_type.yaml | 0 .../new}/custodian_type_broader.yaml | 0 .../new}/custodian_type_narrower.yaml | 0 .../new}/custodian_type_related.yaml | 0 .../new}/custody_history.yaml | 0 .../new}/custody_received_by.yaml | 0 .../new}/data_repository.yaml | 0 .../slots/{ => 20260202_matang/new}/date.yaml | 0 .../new}/description_type.yaml | 0 .../new}/draws_or_drew_opinion.yaml | 0 .../new}/dutch_context.yaml | 0 .../new}/encompasses_or_encompassed.yaml | 0 .../20260202_matang/new/end_seconds.yaml | 26 + .../slots/20260202_matang/new/end_time.yaml | 10 + .../new}/estimates_or_estimated.yaml | 0 .../new}/example_location.yaml | 0 .../new}/example_name.yaml | 0 .../new}/example_note.yaml | 0 .../new}/example_wikidata_id.yaml | 0 .../new}/expires_on_expired_at.yaml | 0 .../new}/exposes_or_exposed.yaml | 0 .../20260202_matang/new/field_number.yaml | 12 + .../new}/filters_or_filtered.yaml | 0 .../new}/final_of_the_final.yaml | 0 .../slots/20260202_matang/new/foo_bar.yaml | 19 + .../new}/generates_or_generated.yaml | 0 .../new}/grants_or_granted.yaml | 0 .../grants_or_granted_access_through.yaml | 0 .../new/habitat_description.yaml | 12 + .../new}/has_accumulation_end_date.yaml | 2 + .../new}/has_accumulation_start_date.yaml | 2 + .../new/has_admin_staff_count.yaml | 87 + .../20260202_matang/new/has_api_version.yaml | 33 + .../new/has_architectural_style.yaml | 32 + .../20260202_matang/new/has_archive_path.yaml | 25 + .../new}/has_audio_quality_score.yaml | 0 .../new/has_heritage_type.yaml | 30 + .../{ => 20260202_matang/new}/has_locker.yaml | 0 .../new}/has_microfilm_reader.yaml | 0 .../new}/has_supervised_handling.yaml | 0 .../{ => 20260202_matang/new}/has_wifi.yaml | 0 .../new}/historic_garden_designation.yaml | 0 .../new}/hold_or_held_record_set_type.yaml | 0 .../new}/identifies_or_identified.yaml | 0 .../new}/identifies_or_identified_as.yaml | 0 .../new}/implements_or_implemented.yaml | 0 .../new}/imposes_or_imposed.yaml | 0 .../new}/inbound_from.yaml | 0 .../new}/includes_bounding_box.yaml | 0 .../new}/includes_handwriting.yaml | 0 .../new}/includes_music_description.yaml | 0 .../new}/includes_object_tracking.yaml | 0 .../new}/includes_segmentation_mask.yaml | 0 .../new}/includes_sound_description.yaml | 0 .../new}/includes_speaker.yaml | 0 .../new}/includes_speaker_identification.yaml | 0 .../new}/includes_timestamp.yaml | 0 .../new}/indicates_or_indicated.yaml | 0 .../new}/industry_benchmark_high.yaml | 0 .../new}/industry_benchmark_low.yaml | 0 .../new}/inference_provenance.yaml | 0 .../new}/info_session_date.yaml | 0 .../{ => 20260202_matang/new}/initial.yaml | 0 .../new}/initial_of_the_initial.yaml | 0 .../new}/innovation_budget.yaml | 0 .../new}/inscription.yaml | 0 .../new}/installation_date.yaml | 0 .../new}/installed_at_place.yaml | 0 .../new}/instance_of.yaml | 0 .../new}/institution_function.yaml | 0 .../new}/institution_linkedin_url.yaml | 0 .../new}/institution_name.yaml | 0 .../new}/insurance_currency.yaml | 0 .../new}/insurance_provider.yaml | 0 .../new}/insurance_value.yaml | 0 .../new}/intangible_heritage_subtype.yaml | 0 .../new}/integrates_or_integrated.yaml | 0 .../new}/interlibrary_loan.yaml | 0 .../new}/internal_funding.yaml | 0 .../new}/international.yaml | 0 .../new}/inventory_number.yaml | 0 .../new}/inventory_web_address.yaml | 0 .../new}/involves_or_involved.yaml | 0 .../new}/is_accessible.yaml | 0 .../new}/is_accredited.yaml | 0 .../{ => 20260202_matang/new}/is_active.yaml | 0 .../new}/is_annex_of_reading_room.yaml | 0 .../new}/is_approximate.yaml | 0 .../new}/is_auxiliary_of_place.yaml | 0 .../new}/is_auxiliary_of_platform.yaml | 0 .../new}/is_background.yaml | 0 .../new}/is_branch_of.yaml | 0 .../new}/is_branch_of_authority.yaml | 0 .../new}/is_closed_caption.yaml | 0 .../new}/is_current_version.yaml | 0 .../new}/is_deceased.yaml | 0 .../new}/is_embeddable.yaml | 0 .../new}/is_estimate.yaml | 0 .../new}/is_heritage_relevant.yaml | 0 .../new}/is_historical_boundary.yaml | 0 .../new}/is_inferred.yaml | 0 .../{ => 20260202_matang/new}/is_leased.yaml | 0 .../new}/is_legal_status_of.yaml | 0 .../new}/is_licensed_content.yaml | 0 .../new}/is_made_for_kid.yaml | 0 .../new}/is_mandatory.yaml | 0 .../new}/is_official_assessment.yaml | 0 .../new}/is_official_content.yaml | 0 .../new}/is_open_to_public.yaml | 0 .../new}/is_overlapping.yaml | 0 .../new}/is_part_of_complex.yaml | 0 .../new}/is_permanent.yaml | 0 .../new}/is_permitted.yaml | 0 .../new}/is_primary_digital_presence.yaml | 0 .../new}/is_public_facing.yaml | 0 .../new}/is_rebuilding.yaml | 0 .../new}/is_recognized.yaml | 0 .../new}/is_recurring.yaml | 0 .../{ => 20260202_matang/new}/is_sdh.yaml | 0 .../new}/is_sub_guide.yaml | 0 .../new}/is_temporary.yaml | 0 .../new}/is_type_specimen.yaml | 0 .../new}/is_verified.yaml | 0 .../slots/{ => 20260202_matang/new}/isbn.yaml | 0 .../{ => 20260202_matang/new}/isbn_13.yaml | 0 .../slots/{ => 20260202_matang/new}/isil.yaml | 0 .../new}/iso_3166_2_code.yaml | 0 .../new}/iso_standard.yaml | 0 .../new}/iso_standard_reference.yaml | 0 .../slots/{ => 20260202_matang/new}/issn.yaml | 0 .../new}/issued_call.yaml | 0 .../new}/issuing_organisation.yaml | 0 .../slots/{ => 20260202_matang/new}/item.yaml | 0 .../new}/item_returned.yaml | 0 .../new}/iucn_status.yaml | 0 .../new}/jurisdiction.yaml | 0 .../new}/jurisdiction_id.yaml | 0 .../new}/jurisdiction_level.yaml | 0 .../new}/jurisdiction_type.yaml | 0 .../new}/justification.yaml | 0 .../new}/key_distinction.yaml | 0 .../new}/keyframe_extraction.yaml | 0 .../{ => 20260202_matang/new}/keyword.yaml | 0 .../new}/kien_registration_date.yaml | 0 .../{ => 20260202_matang/new}/kien_url.yaml | 0 .../new}/knowledge_transmission.yaml | 0 .../{ => 20260202_matang/new}/label_de.yaml | 0 .../{ => 20260202_matang/new}/label_es.yaml | 0 .../{ => 20260202_matang/new}/label_fr.yaml | 0 .../{ => 20260202_matang/new}/label_it.yaml | 0 .../{ => 20260202_matang/new}/label_nl.yaml | 0 .../{ => 20260202_matang/new}/label_pt.yaml | 0 .../new}/lacks_or_lacked.yaml | 0 .../new}/landmark_confidence.yaml | 0 .../new}/landmark_geonames_id.yaml | 0 .../new}/landmark_label.yaml | 0 .../new}/landmark_segment.yaml | 0 .../new}/landmark_wikidata_id.yaml | 0 .../{ => 20260202_matang/new}/language.yaml | 0 .../new}/language_code.yaml | 0 .../new}/language_name.yaml | 0 .../new}/language_raw.yaml | 0 .../new}/languages_detected.yaml | 0 .../new}/languages_raw.yaml | 0 .../new}/last_modified.yaml | 0 .../{ => 20260202_matang/new}/latency_ms.yaml | 0 .../{ => 20260202_matang/new}/latitude.yaml | 0 .../new}/launch_date.yaml | 0 .../new}/lease_expiry.yaml | 0 .../new}/legacy_planning.yaml | 0 .../new}/legal_basis.yaml | 0 .../new}/legal_entity_type.yaml | 0 .../{ => 20260202_matang/new}/legal_form.yaml | 0 .../new}/legal_jurisdiction.yaml | 0 .../{ => 20260202_matang/new}/legal_name.yaml | 0 .../{ => 20260202_matang/new}/legal_note.yaml | 0 .../new}/legal_provenance_note.yaml | 0 .../new}/legal_responsibility_basis.yaml | 0 .../new}/legal_responsibility_end_date.yaml | 0 .../new}/legal_responsibility_start_date.yaml | 0 .../new}/legal_status.yaml | 0 .../new}/legal_system_type.yaml | 0 .../{ => 20260202_matang/new}/lender.yaml | 0 .../new}/lender_contact.yaml | 0 .../new}/lending_policy.yaml | 0 .../new}/level_value.yaml | 0 .../new}/library_catalog_url.yaml | 0 .../new}/library_search_score.yaml | 0 .../new}/library_subtype.yaml | 0 .../{ => 20260202_matang/new}/license.yaml | 0 .../{ => 20260202_matang/new}/life_stage.yaml | 0 .../new}/lifecycle_phase_type.yaml | 0 .../new}/light_max_lux.yaml | 0 .../{ => 20260202_matang/new}/like_count.yaml | 0 .../new}/likelihood_confidence.yaml | 0 .../new}/likelihood_factor.yaml | 0 .../new}/likelihood_level.yaml | 0 .../new}/likelihood_score.yaml | 0 .../new}/likely_whatsapp_proficient.yaml | 0 .../new}/link_context.yaml | 0 .../{ => 20260202_matang/new}/link_count.yaml | 0 .../new}/link_rationale.yaml | 0 .../{ => 20260202_matang/new}/link_text.yaml | 0 .../{ => 20260202_matang/new}/link_type.yaml | 0 .../{ => 20260202_matang/new}/link_url.yaml | 0 .../new}/linked_class_name.yaml | 0 .../new}/linked_data.yaml | 0 .../new}/linked_data_access.yaml | 0 .../new}/linked_data_export.yaml | 0 .../new}/linked_to_collection.yaml | 0 .../new}/linkedin_profile_path.yaml | 0 .../new}/linkedin_profile_url.yaml | 0 .../new}/linkedin_url.yaml | 0 .../{ => 20260202_matang/new}/list_item.yaml | 0 .../new}/literal_name.yaml | 0 .../new}/live_broadcast_content.yaml | 0 .../new}/living_collection.yaml | 0 .../new}/llm_response.yaml | 0 .../new}/loan_agreement_url.yaml | 0 .../new}/loan_end_date.yaml | 0 .../new}/loan_history.yaml | 0 .../{ => 20260202_matang/new}/loan_id.yaml | 0 .../{ => 20260202_matang/new}/loan_note.yaml | 0 .../new}/loan_number.yaml | 0 .../new}/loan_purpose.yaml | 0 .../new}/loan_start_date.yaml | 0 .../new}/loan_status.yaml | 0 .../new}/loan_timespan.yaml | 0 .../{ => 20260202_matang/new}/loan_type.yaml | 0 .../{ => 20260202_matang/new}/locality.yaml | 0 .../{ => 20260202_matang/new}/located_at.yaml | 0 .../{ => 20260202_matang/new}/location.yaml | 0 .../new}/location_browse_score.yaml | 0 .../new}/location_name.yaml | 0 .../new}/logo_confidence.yaml | 0 .../{ => 20260202_matang/new}/logo_label.yaml | 0 .../new}/logo_organization.yaml | 0 .../new}/logo_segment.yaml | 0 .../{ => 20260202_matang/new}/long_name.yaml | 0 .../{ => 20260202_matang/new}/longitude.yaml | 0 .../{ => 20260202_matang/new}/lot_number.yaml | 0 .../new}/maintained_by.yaml | 0 .../new}/maintenance_schedule.yaml | 0 .../{ => 20260202_matang/new}/major_city.yaml | 0 .../new}/major_research_project.yaml | 0 .../{ => 20260202_matang/new}/managed_by.yaml | 0 .../new}/manages_collection.yaml | 0 .../new}/manages_or_managed.yaml | 0 .../new}/managing_unit.yaml | 0 .../{ => 20260202_matang/new}/mandate.yaml | 0 .../{ => 20260202_matang/new}/marginalia.yaml | 0 .../{ => 20260202_matang/new}/martyred.yaml | 0 .../new}/material_composition.yaml | 0 .../new}/material_specialization.yaml | 0 .../new}/materials_used.yaml | 0 .../new}/max_annual_light_exposure.yaml | 0 .../new}/max_group_size.yaml | 0 .../new}/max_light_lux.yaml | 0 .../new}/max_likelihood_score.yaml | 0 .../new}/maximal_of_maximal.yaml | 0 .../new}/maximum_amount.yaml | 0 .../new}/measurement_data.yaml | 0 .../new}/measurement_date.yaml | 0 .../new}/measurement_method.yaml | 0 .../new}/measures_or_measured.yaml | 0 .../{ => 20260202_matang/new}/medium.yaml | 0 .../{ => 20260202_matang/new}/member_of.yaml | 0 .../new}/member_organization_name.yaml | 0 .../new}/member_organization_url.yaml | 0 .../new}/membership_criteria.yaml | 0 .../new}/membership_id.yaml | 0 .../new}/membership_required.yaml | 0 .../new}/membership_role.yaml | 0 .../new}/membership_size.yaml | 0 .../new}/membership_type.yaml | 0 .../new}/metadata_standard.yaml | 0 .../{ => 20260202_matang/new}/method.yaml | 0 .../new}/methodology_type.yaml | 0 .../new}/metrics_observed_at.yaml | 0 .../new}/metrics_observed_date.yaml | 0 .../new}/michelin_star.yaml | 0 .../new}/minimal_of_minimal.yaml | 0 .../new}/minimum_amount.yaml | 0 .../new}/minimum_donation.yaml | 0 .../new}/minimum_partner.yaml | 0 .../new}/mission_statement.yaml | 0 .../new}/mixed_governance_structure.yaml | 0 .../{ => 20260202_matang/new}/model.yaml | 0 .../new}/model_architecture.yaml | 0 .../new}/model_provider.yaml | 0 .../{ => 20260202_matang/new}/model_task.yaml | 0 .../new}/model_version.yaml | 0 .../new}/modern_place_name.yaml | 0 .../{ => 20260202_matang/new}/modified.yaml | 0 .../new}/monitoring_platform.yaml | 0 .../new}/monitoring_platform_url.yaml | 0 .../new}/monument_number.yaml | 0 .../new}/motivation_type_description.yaml | 0 .../new}/motivation_type_id.yaml | 0 .../new}/motivation_type_name.yaml | 0 .../new}/multilingual_label.yaml | 0 .../new}/museum_search_score.yaml | 0 .../new}/museum_subtype.yaml | 0 .../new}/museum_type_classification.yaml | 0 .../new}/music_confidence.yaml | 0 .../new}/music_detected.yaml | 0 .../new}/music_end_seconds.yaml | 0 .../new}/music_genre.yaml | 0 .../new}/music_genres_detected.yaml | 0 .../new}/music_segment_confidence.yaml | 0 .../new}/music_start_seconds.yaml | 0 .../{ => 20260202_matang/new}/music_type.yaml | 0 .../new}/mutual_connections_text.yaml | 0 .../slots/{ => 20260202_matang/new}/name.yaml | 0 .../new}/name_authority.yaml | 0 .../new}/name_language.yaml | 0 .../{ => 20260202_matang/new}/name_local.yaml | 0 .../new}/name_specification.yaml | 0 .../{ => 20260202_matang/new}/name_type.yaml | 0 .../new}/name_validity_period.yaml | 0 .../new}/narrower_concept.yaml | 0 .../new}/narrower_type.yaml | 0 .../new}/nazi_era_flag.yaml | 0 .../new}/nesting_level.yaml | 0 .../new}/network_analysis.yaml | 0 .../slots/{ => 20260202_matang/new}/nl.yaml | 0 .../new}/no_fabrication.yaml | 0 .../new}/noise_floor_db.yaml | 0 .../new/nomenclatural_code.yaml | 18 + .../new}/nonprofit_subtype.yaml | 0 .../new}/notable_examples.yaml | 0 .../new}/notarial_deed_number.yaml | 0 .../new}/notary_name.yaml | 0 .../new}/notary_office.yaml | 0 .../slots/{ => 20260202_matang/new}/note.yaml | 0 .../new}/note_content.yaml | 0 .../{ => 20260202_matang/new}/note_date.yaml | 0 .../{ => 20260202_matang/new}/note_type.yaml | 0 .../new}/numeric_value.yaml | 0 .../new}/oai_pmh_endpoint.yaml | 0 .../new}/object_alternate_name.yaml | 0 .../new}/object_classes_detected.yaml | 0 .../new}/object_collection_id.yaml | 0 .../new}/object_confidence.yaml | 0 .../new}/object_description.yaml | 0 .../{ => 20260202_matang/new}/object_id.yaml | 0 .../new}/object_label.yaml | 0 .../new}/object_name.yaml | 0 .../{ => 20260202_matang/new}/object_ref.yaml | 0 .../new}/object_segment.yaml | 0 .../new}/object_type.yaml | 0 .../new}/object_wikidata_id.yaml | 0 .../{ => 20260202_matang/new}/objective.yaml | 0 .../new}/objects_added.yaml | 0 .../new}/objects_affected.yaml | 0 .../new}/objects_count.yaml | 0 .../new}/objects_removed.yaml | 0 .../new}/observation.yaml | 0 .../new}/observation_context.yaml | 0 .../new}/observation_date.yaml | 0 .../new}/observation_id.yaml | 0 .../new}/observation_note.yaml | 0 .../new}/observation_period.yaml | 0 .../new}/observation_ref.yaml | 0 .../new}/observation_source.yaml | 0 .../new}/observed_entity.yaml | 0 .../new}/observed_in.yaml | 0 .../new}/observed_name.yaml | 0 .../new}/observer_affiliation.yaml | 0 .../new}/observer_name.yaml | 0 .../new}/observer_type.yaml | 0 .../{ => 20260202_matang/new}/occupation.yaml | 0 .../new}/occurs_or_occurred_at.yaml | 0 .../new}/oclc_number.yaml | 0 .../{ => 20260202_matang/new}/offered_by.yaml | 0 .../new}/offers_donation_scheme.yaml | 0 .../new}/offers_or_offered.yaml | 0 .../new}/offers_or_offered_access.yaml | 0 .../new}/official_institution_subtype.yaml | 0 .../new}/online_shop.yaml | 0 .../new}/open_source.yaml | 0 .../new}/opening_hour.yaml | 0 .../new}/operated_by.yaml | 0 .../new}/operates_or_operated.yaml | 0 .../new}/operating_budget.yaml | 0 .../new}/operating_hour.yaml | 0 .../new}/operational_status.yaml | 0 .../{ => 20260202_matang/new}/operator.yaml | 0 .../new}/organization_legal_form.yaml | 0 .../new}/organization_name.yaml | 0 .../new}/organization_type.yaml | 0 .../new}/organizational_change_score.yaml | 0 .../new}/organizational_level.yaml | 0 .../new}/organizational_mission.yaml | 0 .../new}/organizational_principle.yaml | 0 .../new}/organizational_principle_uri.yaml | 0 .../new}/organizational_structure.yaml | 0 .../new}/organized_by.yaml | 0 .../new}/organizing_body.yaml | 0 .../new}/origin_location.yaml | 0 .../new}/origin_period.yaml | 0 .../new}/original_end_date.yaml | 0 .../new}/originates_or_originated_from.yaml | 0 .../{ => 20260202_matang/new}/osm_id.yaml | 0 .../new}/outbound_condition_report_url.yaml | 0 .../new}/outbound_to.yaml | 0 .../new}/outdoor_seating_capacity.yaml | 0 .../new}/outdoor_site_description.yaml | 0 .../new}/outdoor_site_id.yaml | 0 .../new}/outdoor_site_name.yaml | 0 .../new}/outdoor_site_type.yaml | 0 .../new}/overall_confidence.yaml | 0 .../new}/overall_status.yaml | 0 .../new}/oversight_jurisdiction.yaml | 0 .../new}/ownership_stamp.yaml | 0 .../slots/{ => 20260202_matang/new}/page.yaml | 0 .../{ => 20260202_matang/new}/page_count.yaml | 0 .../new}/page_section.yaml | 0 .../{ => 20260202_matang/new}/page_title.yaml | 0 .../new}/paragraph_count.yaml | 0 .../new}/parallel_title.yaml | 0 .../new}/parent_corporation.yaml | 0 .../new}/parent_department.yaml | 0 .../new}/parent_programme.yaml | 0 .../new}/parent_society.yaml | 0 .../new}/parent_unit.yaml | 0 .../new}/part_of_collection.yaml | 0 .../new}/part_of_custodian_collection.yaml | 0 .../new}/part_of_event.yaml | 0 .../new}/part_of_facility.yaml | 0 .../new}/part_of_storage.yaml | 0 .../new}/part_of_zone.yaml | 0 .../{ => 20260202_matang/new}/part_type.yaml | 0 .../new}/participant_count.yaml | 0 .../new}/participating_custodian.yaml | 0 .../new}/participating_institution.yaml | 0 .../new}/particulate_max.yaml | 0 .../new}/partner_institution.yaml | 0 .../new}/partnership_model.yaml | 0 .../new}/partnership_required.yaml | 0 .../{ => 20260202_matang/new}/patronym.yaml | 0 .../new}/payment_frequency.yaml | 0 .../{ => 20260202_matang/new}/pdf_url.yaml | 0 .../new}/performance_datetime.yaml | 0 .../new}/performance_description.yaml | 0 .../new}/performance_duration.yaml | 0 .../new}/performance_id.yaml | 0 .../new}/performance_location.yaml | 0 .../new}/performance_name.yaml | 0 .../new}/performance_note.yaml | 0 .../new}/performance_of.yaml | 0 .../new}/performance_repertoire.yaml | 0 .../new}/performance_venue.yaml | 0 .../new}/performed_by.yaml | 0 .../{ => 20260202_matang/new}/performer.yaml | 0 .../{ => 20260202_matang/new}/period.yaml | 0 .../new}/period_covered.yaml | 0 .../new}/period_description.yaml | 0 .../{ => 20260202_matang/new}/period_end.yaml | 0 .../new}/period_name.yaml | 0 .../new}/period_start.yaml | 0 .../new}/permanent_location.yaml | 0 .../new}/permission_required.yaml | 0 .../new}/person_claim_id.yaml | 0 .../new}/person_claim_type.yaml | 0 .../new}/person_claim_value.yaml | 0 .../new}/person_html_file.yaml | 0 .../{ => 20260202_matang/new}/person_id.yaml | 0 .../new}/person_name.yaml | 0 .../new}/person_research_score.yaml | 0 .../new}/personal_collection_subtype.yaml | 0 .../new}/personnel_budget.yaml | 0 .../new}/pest_management_required.yaml | 0 .../{ => 20260202_matang/new}/photograph.yaml | 0 .../new}/physical_location.yaml | 0 .../new}/pipeline_stage.yaml | 0 .../new}/place_custodian_ref.yaml | 0 .../new}/place_description.yaml | 0 .../new}/place_designation.yaml | 0 .../new}/place_language.yaml | 0 .../{ => 20260202_matang/new}/place_name.yaml | 0 .../{ => 20260202_matang/new}/place_note.yaml | 0 .../new}/place_of_publication.yaml | 0 .../new}/place_source_text.yaml | 0 .../new}/place_specificity.yaml | 0 .../new}/planned_closure_date.yaml | 0 .../new}/planned_end.yaml | 0 .../new}/planned_start.yaml | 0 .../new}/plant_species_count.yaml | 0 .../new}/platform_description.yaml | 0 .../new}/platform_id.yaml | 0 .../new}/platform_name.yaml | 0 .../new}/platform_of.yaml | 0 .../new}/platform_purpose.yaml | 0 .../new}/platform_type.yaml | 0 .../new}/platform_type_category.yaml | 0 .../new}/platform_type_description.yaml | 0 .../new}/platform_type_id.yaml | 0 .../new}/platform_type_name.yaml | 0 .../new}/platform_url.yaml | 0 .../new}/policy_authority.yaml | 0 .../new}/policy_description.yaml | 0 .../{ => 20260202_matang/new}/policy_id.yaml | 0 .../new}/policy_name.yaml | 0 .../new}/policy_review_date.yaml | 0 .../new}/policy_text.yaml | 0 .../new}/portal_description.yaml | 0 .../{ => 20260202_matang/new}/portal_id.yaml | 0 .../new}/portal_language.yaml | 0 .../new}/portal_name.yaml | 0 .../new}/portal_status.yaml | 0 .../new}/portal_type.yaml | 0 .../new}/portal_type_category.yaml | 0 .../new}/portal_type_description.yaml | 0 .../new}/portal_type_id.yaml | 0 .../new}/portal_type_name.yaml | 0 .../new}/portal_typical_domain.yaml | 0 .../{ => 20260202_matang/new}/portal_url.yaml | 0 .../new}/poses_or_posed_condition.yaml | 0 .../{ => 20260202_matang/new}/post_count.yaml | 0 .../{ => 20260202_matang/new}/post_id.yaml | 0 .../new}/post_type_activity_streams_type.yaml | 0 .../new}/post_type_category.yaml | 0 .../new}/post_type_description.yaml | 0 .../new}/post_type_ephemeral.yaml | 0 .../new}/post_type_heritage_use_case.yaml | 0 .../new}/post_type_id.yaml | 0 .../new}/post_type_max_duration.yaml | 0 .../new}/post_type_media_format.yaml | 0 .../new}/post_type_name.yaml | 0 .../new}/post_type_schema_org_type.yaml | 0 .../new}/post_type_supported_platform.yaml | 0 .../{ => 20260202_matang/new}/post_url.yaml | 0 .../new}/postal_code.yaml | 0 .../new}/posted_by_profile.yaml | 0 .../new}/power_source.yaml | 0 .../new}/powers_platform.yaml | 0 .../new}/practitioner_community.yaml | 0 .../new}/preceding_activity.yaml | 0 .../new}/preferred_label.yaml | 0 .../new}/preferred_name.yaml | 0 .../new}/preparation_date.yaml | 0 .../new}/prepared_by.yaml | 0 .../new}/preservation_approach.yaml | 0 .../new}/preservation_budget.yaml | 0 .../new}/preservation_event_type.yaml | 0 .../new}/preservation_level.yaml | 0 .../new}/preservation_method.yaml | 0 .../new}/preservation_note.yaml | 0 .../new}/preservation_purpose.yaml | 0 .../new}/preservation_requirement.yaml | 0 .../new}/preservation_standard.yaml | 0 .../new}/preservative_detail.yaml | 0 .../new}/preserves_or_preserved.yaml | 0 .../new}/previous_observation.yaml | 0 .../{ => 20260202_matang/new}/price.yaml | 0 .../new}/price_currency.yaml | 0 .../{ => 20260202_matang/new}/price_text.yaml | 0 .../{ => 20260202_matang/new}/primary.yaml | 0 .../new}/primary_audio_event_type.yaml | 0 .../new}/primary_heritage_type.yaml | 0 .../new}/primary_register.yaml | 0 .../new}/primary_speaker.yaml | 0 .../new}/primary_system.yaml | 0 .../new}/printer_publisher.yaml | 0 .../{ => 20260202_matang/new}/priority.yaml | 0 .../new}/privacy_note.yaml | 0 .../new}/processing_completed_date.yaml | 0 .../new}/processing_duration_seconds.yaml | 0 .../new}/processing_priority.yaml | 0 .../new}/processing_started_date.yaml | 0 .../new}/processing_status.yaml | 0 .../new}/production_method.yaml | 0 .../new}/proficiency_level.yaml | 0 .../new}/profile_data.yaml | 0 .../new}/profile_description.yaml | 0 .../new}/profile_image_url.yaml | 0 .../new}/profile_linkedin_url.yaml | 0 .../new}/profile_location.yaml | 0 .../new}/profile_name.yaml | 0 .../20260202_matang/new/profile_url.yaml | 46 + .../20260202_matang/new/protocol_name.yaml | 13 + .../20260202_matang/new/protocol_version.yaml | 13 + .../slots/20260202_matang/new/provider.yaml | 30 + .../new}/provides_or_provided.yaml | 0 .../provides_or_provided_provenance_to.yaml | 0 .../new}/provides_or_provided_to.yaml | 0 .../new}/publishes_or_published.yaml | 0 .../{ => 20260202_matang/new}/rate_value.yaml | 0 .../{ => 20260202_matang/new}/rationale.yaml | 0 .../new}/raw_subtitle_content.yaml | 0 .../new}/reading_room_type.yaml | 0 .../new}/reason_description.yaml | 0 .../new}/reasoning_content.yaml | 0 .../new}/receives_or_received.yaml | 0 .../new}/recognized_person_name.yaml | 0 .../new}/recommendation.yaml | 0 .../new}/reconstruction_method.yaml | 0 .../new}/record_count.yaml | 0 .../new}/record_date.yaml | 0 .../new}/record_equivalent.yaml | 0 .../new}/record_format.yaml | 0 .../new}/record_holder.yaml | 0 .../new}/record_holder_note.yaml | 0 .../{ => 20260202_matang/new}/record_id.yaml | 0 .../new}/record_note.yaml | 0 .../new}/record_set_type.yaml | 0 .../new}/record_timespan.yaml | 0 .../new}/record_type.yaml | 0 .../new}/recording_available.yaml | 0 .../new}/recording_url.yaml | 0 .../new}/recurrence_pattern.yaml | 0 .../new}/refers_or_referred_to.yaml | 0 .../new}/refers_to_access_policy.yaml | 0 .../new}/refers_to_custodian.yaml | 0 .../new}/refers_to_legal_status.yaml | 0 .../new}/refers_to_person.yaml | 0 .../new}/refers_to_storage.yaml | 0 .../{ => 20260202_matang/new}/region.yaml | 0 .../new}/region_code.yaml | 0 .../new}/region_confidence.yaml | 0 .../new}/region_language.yaml | 0 .../new}/region_text.yaml | 0 .../new}/region_type.yaml | 0 .../new}/register_abbreviation.yaml | 0 .../new}/register_id.yaml | 0 .../new}/register_name.yaml | 0 .../new}/register_name_local.yaml | 0 .../new}/register_type.yaml | 0 .../new}/registered_office_clause.yaml | 0 .../new}/registers_or_registered.yaml | 0 .../new}/registration_authority.yaml | 0 .../new}/registration_date.yaml | 0 .../new}/registration_required.yaml | 0 .../new}/regulated_by_scheme.yaml | 0 .../new}/regulates_or_regulated.yaml | 0 .../new}/regulatory_authority.yaml | 0 .../new}/regulatory_body.yaml | 0 .../{ => 20260202_matang/new}/related.yaml | 0 .../new}/related_agenda.yaml | 0 .../new}/related_call.yaml | 0 .../new}/related_concept.yaml | 0 .../new}/related_loan.yaml | 0 .../new}/related_project.yaml | 0 .../new}/related_type_name.yaml | 0 .../new}/related_type_note.yaml | 0 .../new}/related_type_relationship.yaml | 0 .../new}/related_type_wikidata.yaml | 0 .../new}/related_types.yaml | 0 .../new}/relationship.yaml | 0 .../{ => 20260202_matang/new}/religion.yaml | 0 .../new}/religious_function.yaml | 0 .../new}/religious_tradition.yaml | 0 .../new}/remediation_note.yaml | 0 .../new}/remediation_required.yaml | 0 .../{ => 20260202_matang/new}/repertoire.yaml | 0 .../new}/replaces_primary_location.yaml | 0 .../new}/report_document.yaml | 0 .../{ => 20260202_matang/new}/report_url.yaml | 0 .../new}/reported_date.yaml | 0 .../new}/reporting_period_end.yaml | 0 .../new}/reporting_period_start.yaml | 0 .../new}/repository_software.yaml | 0 .../new}/repository_url.yaml | 0 .../new}/represents_or_represented.yaml | 0 .../new}/request_date.yaml | 0 .../{ => 20260202_matang/new}/request_id.yaml | 0 .../new}/requirement_id.yaml | 0 .../new}/requirement_text.yaml | 0 .../new}/requirement_type.yaml | 0 .../new}/requirement_unit.yaml | 0 .../new}/requirement_value.yaml | 0 .../new}/requires_appointment.yaml | 0 .../requires_articles_at_registration.yaml | 0 .../new}/requires_dark_storage.yaml | 0 .../new}/requires_declaration.yaml | 0 .../new}/requires_dust_free.yaml | 0 .../new}/requires_esd_protection.yaml | 0 .../new}/requires_or_required.yaml | 0 .../new}/requires_qualification.yaml | 0 .../new}/requires_registration.yaml | 0 .../new}/requires_research.yaml | 0 .../new}/requires_separate_registration.yaml | 0 .../new}/requires_uv_filter.yaml | 0 .../new}/research_center_subtype.yaml | 0 .../new}/research_center_type.yaml | 0 .../new}/research_department.yaml | 0 .../new}/research_focus.yaml | 0 .../new}/research_focus_area.yaml | 0 .../new}/research_infrastructure.yaml | 0 .../new}/research_program.yaml | 0 .../new}/research_project.yaml | 0 .../new}/research_value.yaml | 0 .../new}/reservation_required.yaml | 0 .../new}/resource_description.yaml | 0 .../new}/response_format.yaml | 0 .../new}/responsible_actor.yaml | 0 .../new}/responsible_agent.yaml | 0 .../new}/responsible_department.yaml | 0 .../new}/responsible_legal_entity.yaml | 0 .../new}/restriction_category.yaml | 0 .../new}/restriction_description.yaml | 0 .../new}/restriction_reason.yaml | 0 .../new}/restriction_type.yaml | 0 .../new}/results_expected_date.yaml | 0 .../new}/retention_period_year.yaml | 0 .../new}/retention_schedule.yaml | 0 .../new}/retention_tracking.yaml | 0 .../new}/retrieval_agent.yaml | 0 .../new}/retrieval_method.yaml | 0 .../new}/retrieval_timestamp.yaml | 0 .../new}/retrieved_by.yaml | 0 .../new}/retrieved_on.yaml | 0 .../new}/return_condition_report_url.yaml | 0 .../new}/revenue_category.yaml | 0 .../new}/review_date.yaml | 0 .../new}/review_status.yaml | 0 .../new}/revision_date.yaml | 0 .../new}/revision_number.yaml | 0 .../new}/rights_statement.yaml | 0 .../new}/rights_statement_url.yaml | 0 .../new}/role_category.yaml | 0 .../new}/role_end_date.yaml | 0 .../{ => 20260202_matang/new}/role_id.yaml | 0 .../{ => 20260202_matang/new}/role_name.yaml | 0 .../new}/role_name_local.yaml | 0 .../new}/role_start_date.yaml | 0 .../{ => 20260202_matang/new}/role_title.yaml | 0 .../new}/route_description.yaml | 0 .../{ => 20260202_matang/new}/route_id.yaml | 0 .../new}/route_keyword.yaml | 0 .../new}/route_relevance_to_heritage.yaml | 0 .../new}/route_title.yaml | 0 .../{ => 20260202_matang/new}/row_number.yaml | 0 .../new}/safeguarded_by.yaml | 0 .../new}/safeguarding_measure.yaml | 0 .../new}/safety_certification.yaml | 0 .../new}/sales_activity.yaml | 0 .../new/sampling_protocol.yaml | 13 + .../new}/scene_count.yaml | 0 .../new}/scene_types_detected.yaml | 0 .../new}/scheme_description.yaml | 0 .../{ => 20260202_matang/new}/scheme_id.yaml | 0 .../new}/scheme_name.yaml | 0 .../new}/scheme_type.yaml | 0 .../{ => 20260202_matang/new}/scheme_url.yaml | 0 .../{ => 20260202_matang/new}/scope.yaml | 0 .../new}/scope_description.yaml | 0 .../new}/scope_exclude.yaml | 0 .../new}/scope_include.yaml | 0 .../new}/scrape_method.yaml | 0 .../new}/scraped_timestamp.yaml | 0 .../new}/script_type.yaml | 0 .../new}/seasonal_hour.yaml | 0 .../new}/seating_capacity.yaml | 0 .../{ => 20260202_matang/new}/secondary.yaml | 0 .../{ => 20260202_matang/new}/section_id.yaml | 0 .../new}/secularization_status.yaml | 0 .../new}/security_level.yaml | 0 .../new}/segment_confidence.yaml | 0 .../new}/segment_end_seconds.yaml | 0 .../new}/segment_index.yaml | 0 .../new}/segment_language.yaml | 0 .../new}/segment_start_seconds.yaml | 0 .../new}/segment_text.yaml | 0 .../new}/sensory_heritage_domain.yaml | 0 .../new}/sentence_count.yaml | 0 .../{ => 20260202_matang/new}/served_by.yaml | 0 .../new}/serves_finding_aid.yaml | 0 .../new}/serves_function_of.yaml | 0 .../new}/serves_or_served.yaml | 0 .../new}/serves_staff.yaml | 0 .../new}/serves_visitors_only.yaml | 0 .../new}/service_area.yaml | 0 .../new}/service_area_description.yaml | 0 .../new}/service_area_id.yaml | 0 .../new}/service_area_name.yaml | 0 .../new}/service_area_type.yaml | 0 .../new}/service_offering.yaml | 0 .../new}/service_portfolio.yaml | 0 .../new}/services_offered.yaml | 0 .../new}/setpoint_max.yaml | 0 .../new}/setpoint_min.yaml | 0 .../new}/setpoint_tolerance.yaml | 0 .../new}/setpoint_type.yaml | 0 .../new}/setpoint_unit.yaml | 0 .../new}/setpoint_value.yaml | 0 .../{ => 20260202_matang/new}/settlement.yaml | 0 .../new}/settlement_name.yaml | 0 .../slots/{ => 20260202_matang/new}/sex.yaml | 0 .../new}/shares_catalog_with_main.yaml | 0 .../{ => 20260202_matang/new}/shelf_mark.yaml | 0 .../new}/shelf_number.yaml | 0 .../new}/shipping_method.yaml | 0 .../{ => 20260202_matang/new}/shop_type.yaml | 0 .../{ => 20260202_matang/new}/short_name.yaml | 0 .../new}/silence_total_seconds.yaml | 0 .../new}/site_portfolio.yaml | 0 .../{ => 20260202_matang/new}/skill.yaml | 0 .../{ => 20260202_matang/new}/slot_fixes.yaml | 0 .../slots/{ => 20260202_matang/new}/slug.yaml | 0 .../{ => 20260202_matang/new}/snr_db.yaml | 0 .../new}/social_media_example_profile.yaml | 0 .../new}/social_media_feature.yaml | 0 .../new}/social_media_heritage_use_case.yaml | 0 .../new}/social_media_platform_category.yaml | 0 .../social_media_platform_description.yaml | 0 .../new}/social_media_platform_name.yaml | 0 .../new}/social_media_platform_type_id.yaml | 0 .../new}/social_media_profile_id.yaml | 0 .../new}/social_media_url_pattern.yaml | 0 .../new}/social_media_wikidata_id.yaml | 0 .../new}/society_focus.yaml | 0 .../new}/sound_events_detected.yaml | 0 .../{ => 20260202_matang/new}/source.yaml | 0 .../new}/source_creator.yaml | 0 .../new}/source_dataset.yaml | 0 .../new}/source_date.yaml | 0 .../new}/source_file.yaml | 0 .../new}/source_language_auto_detected.yaml | 0 .../new}/source_metadata.yaml | 0 .../new}/source_organization.yaml | 0 .../new}/source_section.yaml | 0 .../new}/source_type.yaml | 0 .../{ => 20260202_matang/new}/source_uri.yaml | 0 .../{ => 20260202_matang/new}/source_url.yaml | 0 .../new}/source_video.yaml | 0 .../new}/source_video_url.yaml | 0 .../new}/space_description.yaml | 0 .../{ => 20260202_matang/new}/space_name.yaml | 0 .../new}/sparql_endpoint.yaml | 0 .../new}/spatial_resolution.yaml | 0 .../new}/speaker_count.yaml | 0 .../{ => 20260202_matang/new}/speaker_id.yaml | 0 .../new}/speaker_label.yaml | 0 .../new}/special_collection.yaml | 0 .../new}/special_requirement.yaml | 0 .../new}/specialized_place.yaml | 0 .../new}/specification_url.yaml | 0 .../new}/specificity_agent.yaml | 0 .../new}/specificity_rationale.yaml | 0 .../new}/specificity_score.yaml | 0 .../new}/specificity_timestamp.yaml | 0 .../new}/specifies_or_specified.yaml | 0 .../new}/specimen_count.yaml | 0 .../new}/specimen_type.yaml | 0 .../new}/spectrum_procedure.yaml | 0 .../new}/speech_detected.yaml | 0 .../new}/speech_language.yaml | 0 .../new}/speech_language_confidence.yaml | 0 .../new}/speech_text.yaml | 0 .../new}/square_meters.yaml | 0 .../new}/staff_count.yaml | 0 .../{ => 20260202_matang/new}/staff_id.yaml | 0 .../new}/staff_impact.yaml | 0 .../{ => 20260202_matang/new}/staff_role.yaml | 0 .../new}/standardized_name.yaml | 0 .../new}/standards_applied.yaml | 0 .../new}/standards_compliance.yaml | 0 .../{ => 20260202_matang/new}/start.yaml | 0 .../new}/start_of_the_start.yaml | 0 .../new}/start_seconds.yaml | 0 .../{ => 20260202_matang/new}/start_time.yaml | 0 .../new}/started_at_time.yaml | 0 .../new}/starts_or_started_at_location.yaml | 0 .../new}/statement_currency.yaml | 0 .../new}/statement_description.yaml | 0 .../new}/statement_name.yaml | 0 .../new}/statement_type.yaml | 0 .../new}/states_or_stated.yaml | 0 .../new}/stores_or_stored.yaml | 0 .../new}/supersedes_or_superseded.yaml | 0 .../new}/takes_or_took_comission.yaml | 0 .../new}/takes_or_took_place_at.yaml | 0 .../new}/temporal_extent.yaml | 0 .../transmits_or_transmitted_through.yaml | 0 .../new}/uses_or_used.yaml | 0 .../new}/uses_or_used_technique.yaml | 0 .../new}/warrants_or_warranted.yaml | 0 .../new}/was_acquired_through.yaml | 0 .../new}/was_fetched_at.yaml | 0 .../slots/20260202_matang/observed_by.yaml | 24 + .../slots/20260202_matang/opened_on.yaml | 21 + .../slots/20260202_matang/operated_by.yaml | 29 + .../slots/20260202_matang/originate.yaml | 112 + .../slots/20260202_matang/owned_by.yaml | 142 + .../slots/20260202_matang/part_of.yaml | 27 + .../part_of_archive_series.yaml | 38 + .../slots/20260202_matang/part_of_total.yaml | 45 + .../slots/20260202_matang/participate_in.yaml | 100 + .../20260202_matang/participated_in.yaml | 32 + .../slots/20260202_matang/platform_of.yaml | 69 + .../slots/20260202_matang/position.yaml | 21 + .../program_activity.yaml | 2 + .../programme_period.yaml | 2 + .../programme_year.yaml | 2 + .../programming_language.yaml | 2 + .../programs_offered.yaml | 2 + .../prompt_token.yaml | 2 + .../{archive => 20260202_matang}/pronoun.yaml | 2 + .../protocol.yaml | 2 + .../slots/20260202_matang/protocol_name.yaml | 44 + .../20260202_matang/protocol_version.yaml | 44 + .../provenance.yaml | 2 + .../provides_access_to.yaml | 2 + .../public_access.yaml | 2 + .../public_education.yaml | 2 + .../publication_output.yaml | 2 + .../publication_place.yaml | 2 + .../publication_series_name.yaml | 2 + .../slots/20260202_matang/published.yaml | 47 + .../slots/20260202_matang/published_at.yaml | 67 + .../slots/20260202_matang/published_by.yaml | 52 + .../publishes_to.yaml | 2 + .../{archive => 20260202_matang}/purpose.yaml | 2 + .../purpose_clause.yaml | 2 + .../quantity_date.yaml | 2 + .../quantity_type.yaml | 2 + .../quantity_unit.yaml | 2 + .../quantity_value.yaml | 2 + .../slots/20260202_matang/recombined.yaml | 21 + .../slots/20260202_matang/related_to.yaml | 52 + .../slots/20260202_matang/replied_to.yaml | 143 + .../slots/20260202_matang/represented_by.yaml | 23 + .../slots/20260202_matang/required.yaml | 36 + .../20260202_matang/responsible_for.yaml | 149 + .../slots/20260202_matang/retrieved_at.yaml | 106 + .../slots/20260202_matang/retrieved_by.yaml | 113 + .../slots/20260202_matang/retrieved_from.yaml | 163 + .../20260202_matang/retrieved_through.yaml | 115 + .../slots/20260202_matang/returned.yaml | 21 + .../slots/20260202_matang/revision_of.yaml | 25 + .../slots/20260202_matang/signed_at.yaml | 23 + .../slots/20260202_matang/signed_on.yaml | 21 + .../slots/20260202_matang/stored_at.yaml | 44 + .../20260202_matang/sub_collection_of.yaml | 24 + .../20260202_matang/suborganization_of.yaml | 24 + .../slots/20260202_matang/succeeded_by.yaml | 132 + .../slots/20260202_matang/superseded_by.yaml | 25 + .../slots/20260202_matang/symbolize.yaml | 116 + .../slots/20260202_matang/symbolized_by.yaml | 125 + .../slots/20260202_matang/targeted_at.yaml | 22 + .../slots/20260202_matang/tax_deductible.yaml | 22 + .../temperature_target.yaml | 2 + .../temporarily_located_at.yaml | 103 + .../slots/20260202_matang/threatened_by.yaml | 22 + .../track_id.yaml | 2 + .../slots/20260202_matang/transferred.yaml | 21 + .../slots/20260202_matang/transferred_to.yaml | 21 + .../slots/20260202_matang/triggered_by.yaml | 22 + .../slots/20260202_matang/used_by.yaml | 23 + .../slots/20260202_matang/used_in.yaml | 22 + .../slots/20260202_matang/verified_by.yaml | 21 + .../slots/20260202_matang/visible_in.yaml | 22 + .../was_derived_from.yaml | 2 + .../was_generated_by.yaml | 2 + .../was_last_updated_at.yaml | 2 + .../slots/20260202_matang/webarchived_at.yaml | 21 + .../modules/slots/applies_or_applied_to.yaml | 36 - .../slots/archive/administrative_context.yaml | 23 - .../modules/slots/archive/archive_path.yaml | 18 + .../modules/slots/archive/based_on_claim.yaml | 60 - .../slots/archive/basionym_authority.yaml | 14 + .../archive/connection_heritage_relevant.yaml | 18 + .../archive/connection_heritage_type.yaml | 18 + .../modules/slots/archive/connection_id.yaml | 41 + .../archive/connection_linkedin_url.yaml | 31 + .../slots/archive/connection_location.yaml | 31 + .../slots/archive/connection_name.yaml | 33 + .../archive/connection_organization.yaml | 31 + .../archive/connections_by_heritage_type.yaml | 32 + .../slots/archive/connections_extracted.yaml | 32 + .../slots/archive/connections_text.yaml | 26 + .../slots/archive/connectivity_type.yaml | 45 + .../slots/archive/conservation_breeding.yaml | 28 + .../slots/archive/conservation_history.yaml | 29 + .../slots/archive/conservation_lab.yaml | 35 + .../slots/archive/conservation_note.yaml | 29 + .../archive/conservation_specialization.yaml | 51 + .../slots/archive/conservation_status.yaml | 35 + .../modules/slots/archive/conservator.yaml | 29 + .../archive/conservator_affiliation.yaml | 23 +- .../slots/archive/constituent_type.yaml | 54 + .../slots/archive/construction_date.yaml | 42 + .../archive/construction_date_precision.yaml | 34 + .../slots/archive/consumes_or_consumed.yaml | 30 +- .../linkml/modules/slots/archive/contact.yaml | 39 + .../modules/slots/archive/contact_point.yaml | 36 + .../contains_or_contained_collection.yaml | 0 .../contains_or_contained_contains_unit.yaml | 0 ...ntains_or_contained_covers_settlement.yaml | 0 .../slots/archive/contains_storage.yaml | 32 + .../linkml/modules/slots/archive/content.yaml | 28 +- .../modules/slots/archive/content_block.yaml | 27 + .../slots/archive/content_category.yaml | 40 + .../slots/archive/content_changed.yaml | 26 + .../modules/slots/archive/content_hash.yaml | 56 + .../modules/slots/archive/content_id.yaml | 40 + .../modules/slots/archive/content_origin.yaml | 30 + .../modules/slots/archive/content_title.yaml | 30 + .../modules/slots/archive/content_type.yaml | 26 + .../modules/slots/archive/content_url.yaml | 37 + .../slots/archive/contents_description.yaml | 28 + .../archive/contributes_or_contributed.yaml | 29 + .../modules/slots/archive/contributes_to.yaml | 37 + .../archive/contribution_start_date.yaml | 35 + .../modules/slots/archive/contributor.yaml | 29 + .../slots/archive/contributor_code.yaml | 65 + .../archive/conversion_source_population.yaml | 40 + .../archive/conversion_target_action.yaml | 40 + .../slots/archive/conversion_type_label.yaml | 37 + .../archive/coordinate_reference_system.yaml | 43 + .../modules/slots/archive/coordinates.yaml | 29 + .../modules/slots/archive/copy_note.yaml | 29 + .../modules/slots/archive/copy_number.yaml | 28 + .../slots/archive/corporate_integration.yaml | 59 + .../linkml/modules/slots/archive/cost.yaml | 28 + .../modules/slots/archive/cost_currency.yaml | 28 + .../modules/slots/archive/cost_usd.yaml | 32 + .../linkml/modules/slots/archive/country.yaml | 34 + .../modules/slots/archive/country_code.yaml | 29 + .../modules/slots/archive/country_name.yaml | 44 + .../modules/slots/archive/courier_detail.yaml | 28 + .../slots/archive/courier_required.yaml | 30 + .../slots/archive/court_types_covered.yaml | 31 + .../slots/archive/cover_image_url.yaml | 34 + .../modules/slots/archive/cover_material.yaml | 28 + .../archive/cover_or_covered_subregion.yaml | 46 + .../modules/slots/archive/coverage_area.yaml | 34 + .../modules/slots/archive/covers_country.yaml | 34 + .../slots/archive/covers_full_video.yaml | 33 + .../slots/archive/crawler_version.yaml | 26 + .../linkml/modules/slots/archive/created.yaml | 31 + .../slots/archive/created_by_project.yaml | 27 + .../modules/slots/archive/created_date.yaml | 34 + .../slots/archive/creating_agency.yaml | 45 + .../slots/archive/creating_function.yaml | 55 + .../slots/archive/creating_organization.yaml | 30 + .../creation_place.yaml} | 22 +- .../slots/archive/creation_timespan.yaml | 40 + .../linkml/modules/slots/archive/creator.yaml | 18 + .../modules/slots/archive/creator_role.yaml | 31 + .../slots/archive/credentials_required.yaml | 41 + .../modules/slots/archive/css_selector.yaml | 27 + .../modules/slots/archive/cuisine_type.yaml | 31 + .../slots/archive/cultural_context.yaml | 57 + .../slots/archive/cultural_focus_area.yaml | 31 + .../slots/archive/cultural_protocol_url.yaml | 31 + .../modules/slots/archive/curated_by.yaml | 31 + .../slots/archive/curated_holding.yaml | 36 + .../modules/slots/archive/currency.yaml | 30 + .../modules/slots/archive/currency_code.yaml | 29 + .../slots/archive/currency_symbol.yaml | 29 + .../slots/archive/current_exhibition.yaml | 29 + .../slots/archive/current_item_count.yaml | 28 + .../modules/slots/archive/current_keeper.yaml | 26 + .../slots/archive/current_location.yaml | 31 + .../modules/slots/archive/current_use.yaml | 41 + .../archive/current_utilization_percent.yaml | 33 + .../slots/archive/custodial_history.yaml | 38 + .../custodian.yaml} | 24 +- .../modules/slots/archive/custodian_only.yaml | 26 + .../modules/slots/archive/custodian_type.yaml | 29 + .../slots/archive/custodian_type_broader.yaml | 36 + .../archive/custodian_type_narrower.yaml | 37 + .../slots/archive/custodian_type_related.yaml | 37 + .../slots/archive/custody_history.yaml | 27 + .../slots/archive/custody_received_by.yaml | 35 + .../slots/archive/data_repository.yaml | 38 + .../linkml/modules/slots/archive/date.yaml | 32 + .../modules/slots/archive/description.yaml | 6 - .../slots/archive/description_type.yaml | 66 + .../slots/archive/draws_or_drew_opinion.yaml | 29 + .../modules/slots/archive/dutch_context.yaml | 33 + .../archive/encompasses_or_encompassed.yaml | 50 + .../modules/slots/archive/end_seconds.yaml | 18 +- .../modules/slots/archive/end_time.yaml | 18 +- .../slots/archive/estimates_or_estimated.yaml | 49 + .../slots/archive/example_location.yaml | 25 + .../modules/slots/archive/example_name.yaml | 26 + .../{full_name.yaml => example_note.yaml} | 20 +- .../slots/archive/example_wikidata_id.yaml | 26 + .../expires_on_expired_at.yaml} | 22 +- .../slots/archive/exposes_or_exposed.yaml | 29 + .../linkml/modules/slots/archive/extent.yaml | 41 - .../modules/slots/archive/field_number.yaml | 12 + .../slots/archive/filters_or_filtered.yaml | 59 + .../slots/archive/final_of_the_final.yaml | 34 + .../linkml/modules/slots/archive/foo_bar.yaml | 19 + .../generates_or_generated.yaml} | 20 +- .../slots/archive/governance_clause.yaml | 29 - .../archive/governance_representative.yaml | 19 - .../slots/archive/governance_role.yaml | 40 - .../modules/slots/archive/governing_body.yaml | 33 - .../grants_or_granted.yaml} | 18 +- .../grants_or_granted_access_through.yaml | 28 + .../linkml/modules/slots/archive/habitat.yaml | 16 - .../slots/archive/habitat_description.yaml | 12 + .../modules/slots/archive/halc_adm1_code.yaml | 31 - .../modules/slots/archive/halc_adm2_name.yaml | 26 - .../slots/archive/handwriting_confidence.yaml | 32 - .../slots/archive/has_accuracy_in_meters.yaml | 31 - .../archive/has_acquisition_history.yaml | 62 - .../slots/archive/has_administration.yaml | 18 - .../has_administration_description.yaml | 44 - .../archive/has_administration_name.yaml | 52 - .../modules/slots/archive/has_altitude.yaml | 31 - .../slots/archive/has_api_version.yaml | 33 + .../archive/has_architectural_style.yaml | 32 + .../slots/archive/has_archive_path.yaml | 25 + .../slots/archive/has_arrangement.yaml | 45 - .../slots/archive/has_arrangement_level.yaml | 28 - .../archive/has_audio_quality_score.yaml | 59 + .../slots/archive/has_heritage_type.yaml | 30 + .../modules/slots/archive/has_locker.yaml | 35 + .../slots/archive/has_microfilm_reader.yaml | 32 + .../archive/has_or_had_access_policy.yaml | 72 - .../archive/has_or_had_accreditation.yaml | 29 +- .../has_or_had_accumulation.yaml | 0 .../{ => archive}/has_or_had_activity.yaml | 0 .../slots/archive/has_or_had_affiliation.yaml | 50 +- .../{ => archive}/has_or_had_annotation.yaml | 0 .../{ => archive}/has_or_had_archive.yaml | 0 .../{ => archive}/has_or_had_arrangement.yaml | 0 .../has_or_had_arrangement_level.yaml | 0 .../has_or_had_artwork_count.yaml | 0 .../{ => archive}/has_or_had_assessment.yaml | 0 .../{ => archive}/has_or_had_author.yaml | 0 .../{ => archive}/has_or_had_author_name.yaml | 0 .../{ => archive}/has_or_had_authority.yaml | 0 .../has_or_had_auxiliary_entities.yaml | 0 .../has_or_had_auxiliary_platform.yaml | 0 .../slots/{ => archive}/has_or_had_base.yaml | 0 .../{ => archive}/has_or_had_beneficiary.yaml | 0 .../{ => archive}/has_or_had_benefit.yaml | 0 .../{ => archive}/has_or_had_boundary.yaml | 0 .../{ => archive}/has_or_had_branch.yaml | 0 .../{ => archive}/has_or_had_budget.yaml | 0 .../has_or_had_canonical_form.yaml | 0 .../{ => archive}/has_or_had_capacity.yaml | 0 .../{ => archive}/has_or_had_caption.yaml | 0 .../{ => archive}/has_or_had_carrier.yaml | 0 .../{ => archive}/has_or_had_citation.yaml | 0 .../{ => archive}/has_or_had_city_code.yaml | 0 .../has_or_had_collection_url.yaml | 0 .../{ => archive}/has_or_had_component.yaml | 0 .../{ => archive}/has_or_had_condition.yaml | 0 .../{ => archive}/has_or_had_confidence.yaml | 0 .../has_or_had_contact_details.yaml | 0 .../has_or_had_contact_information.yaml | 0 .../has_or_had_contact_point.yaml | 0 .../{ => archive}/has_or_had_contributor.yaml | 0 .../{ => archive}/has_or_had_coordinates.yaml | 0 .../{ => archive}/has_or_had_currency.yaml | 0 .../{ => archive}/has_or_had_custodian.yaml | 0 .../archive/has_or_had_custodian_name.yaml | 28 + .../has_or_had_custodian_observation.yaml | 28 + .../has_or_had_data_quality_notes.yaml | 0 .../{ => archive}/has_or_had_degree.yaml | 0 .../{ => archive}/has_or_had_description.yaml | 0 .../{ => archive}/has_or_had_detected.yaml | 0 .../{ => archive}/has_or_had_direction.yaml | 0 .../{ => archive}/has_or_had_document.yaml | 0 .../has_or_had_documentation.yaml | 0 .../{ => archive}/has_or_had_domain.yaml | 0 .../{ => archive}/has_or_had_drawer.yaml | 0 .../{ => archive}/has_or_had_edition.yaml | 0 .../has_or_had_embargo_end_date.yaml | 0 .../has_or_had_embargo_reason.yaml | 0 .../has_or_had_endowment_draw.yaml | 0 .../{ => archive}/has_or_had_endpoint.yaml | 0 .../has_or_had_engagement_metric.yaml | 0 .../{ => archive}/has_or_had_equipment.yaml | 0 .../has_or_had_equipment_type.yaml | 0 .../{ => archive}/has_or_had_exhibition.yaml | 0 .../has_or_had_exhibition_type.yaml | 0 .../{ => archive}/has_or_had_expense.yaml | 0 .../has_or_had_expertise_in.yaml | 0 .../{ => archive}/has_or_had_extent_text.yaml | 0 .../{ => archive}/has_or_had_facility.yaml | 0 .../{ => archive}/has_or_had_feature.yaml | 0 .../slots/{ => archive}/has_or_had_fee.yaml | 0 .../slots/{ => archive}/has_or_had_field.yaml | 0 .../has_or_had_file_location.yaml | 0 .../{ => archive}/has_or_had_file_path.yaml | 0 .../{ => archive}/has_or_had_fixity.yaml | 0 .../slots/{ => archive}/has_or_had_flag.yaml | 0 .../slots/{ => archive}/has_or_had_focus.yaml | 0 .../slots/{ => archive}/has_or_had_fond.yaml | 0 .../{ => archive}/has_or_had_frequency.yaml | 0 .../{ => archive}/has_or_had_function.yaml | 0 .../{ => archive}/has_or_had_funded.yaml | 0 .../{ => archive}/has_or_had_geofeature.yaml | 0 .../has_or_had_geographic_extent.yaml | 0 .../has_or_had_geographic_subdivision.yaml | 0 .../has_or_had_geometric_extent.yaml | 0 .../{ => archive}/has_or_had_geometry.yaml | 0 .../{ => archive}/has_or_had_homepage.yaml | 0 .../slots/{ => archive}/has_or_had_image.yaml | 0 .../has_or_had_index_number.yaml | 0 .../{ => archive}/has_or_had_interface.yaml | 0 .../has_or_had_inventory_url.yaml | 0 .../{ => archive}/has_or_had_investment.yaml | 0 .../{ => archive}/has_or_had_iso_639_1.yaml | 0 .../{ => archive}/has_or_had_iso_639_3.yaml | 0 .../{ => archive}/has_or_had_key_contact.yaml | 0 .../{ => archive}/has_or_had_liability.yaml | 0 .../{ => archive}/has_or_had_location.yaml | 0 .../{ => archive}/has_or_had_main_part.yaml | 0 .../{ => archive}/has_or_had_mandate.yaml | 0 .../slots/{ => archive}/has_or_had_mean.yaml | 0 .../{ => archive}/has_or_had_measurement.yaml | 0 .../has_or_had_measurement_type.yaml | 0 .../has_or_had_measurement_unit.yaml | 0 .../{ => archive}/has_or_had_member.yaml | 0 .../slots/{ => archive}/has_or_had_mode.yaml | 0 .../slots/{ => archive}/has_or_had_model.yaml | 0 .../slots/{ => archive}/has_or_had_name.yaml | 0 .../has_or_had_navigation_link.yaml | 0 .../{ => archive}/has_or_had_notation.yaml | 0 .../{ => archive}/has_or_had_objective.yaml | 0 .../has_or_had_opening_hour.yaml | 0 .../has_or_had_organization_profile.yaml | 0 .../has_or_had_organization_status.yaml | 0 .../{ => archive}/has_or_had_organizer.yaml | 0 .../{ => archive}/has_or_had_parent.yaml | 0 .../has_or_had_participated_in.yaml | 0 .../{ => archive}/has_or_had_percentage.yaml | 0 .../{ => archive}/has_or_had_period.yaml | 0 .../slots/{ => archive}/has_or_had_place.yaml | 0 .../{ => archive}/has_or_had_policy.yaml | 0 .../slots/{ => archive}/has_or_had_price.yaml | 0 .../has_or_had_primary_platform.yaml | 0 .../{ => archive}/has_or_had_profile.yaml | 0 .../{ => archive}/has_or_had_provenance.yaml | 0 .../has_or_had_provenance_path.yaml | 0 .../has_or_had_publication_date.yaml | 0 .../{ => archive}/has_or_had_publisher.yaml | 0 .../{ => archive}/has_or_had_qualifier.yaml | 0 .../{ => archive}/has_or_had_quantity.yaml | 0 .../slots/{ => archive}/has_or_had_range.yaml | 0 .../slots/{ => archive}/has_or_had_rank.yaml | 0 .../slots/{ => archive}/has_or_had_rate.yaml | 0 .../{ => archive}/has_or_had_rating.yaml | 0 .../{ => archive}/has_or_had_rationale.yaml | 0 .../{ => archive}/has_or_had_reason.yaml | 0 .../{ => archive}/has_or_had_reference.yaml | 0 .../{ => archive}/has_or_had_requirement.yaml | 0 .../{ => archive}/has_or_had_resolution.yaml | 0 .../has_or_had_responsibility.yaml | 0 .../{ => archive}/has_or_had_restriction.yaml | 0 .../{ => archive}/has_or_had_revenue.yaml | 0 .../{ => archive}/has_or_had_roadmap.yaml | 0 .../{ => archive}/has_or_had_schedule.yaml | 0 .../{ => archive}/has_or_had_schema.yaml | 0 .../{ => archive}/has_or_had_scheme.yaml | 0 .../has_or_had_secondary_platform.yaml | 0 .../{ => archive}/has_or_had_section.yaml | 0 .../{ => archive}/has_or_had_segment.yaml | 0 .../has_or_had_sensitivity_level.yaml | 0 .../has_or_had_sequence_index.yaml | 0 .../{ => archive}/has_or_had_series.yaml | 0 .../{ => archive}/has_or_had_service.yaml | 0 .../has_or_had_service_area.yaml | 0 .../has_or_had_service_details.yaml | 0 .../{ => archive}/has_or_had_setpoint.yaml | 0 .../has_or_had_significance.yaml | 0 .../slots/{ => archive}/has_or_had_size.yaml | 0 .../has_or_had_social_media_profile.yaml | 0 .../{ => archive}/has_or_had_source.yaml | 0 .../has_or_had_specification.yaml | 0 .../slots/{ => archive}/has_or_had_staff.yaml | 0 .../has_or_had_staff_member.yaml | 0 .../{ => archive}/has_or_had_standard.yaml | 0 .../{ => archive}/has_or_had_status.yaml | 0 .../slots/{ => archive}/has_or_had_style.yaml | 0 .../{ => archive}/has_or_had_subject.yaml | 0 .../{ => archive}/has_or_had_subtype.yaml | 0 .../{ => archive}/has_or_had_summary.yaml | 0 .../{ => archive}/has_or_had_supplier.yaml | 0 .../slots/{ => archive}/has_or_had_text.yaml | 0 .../{ => archive}/has_or_had_threshold.yaml | 0 .../{ => archive}/has_or_had_thumbnail.yaml | 0 .../slots/{ => archive}/has_or_had_tier.yaml | 0 .../{ => archive}/has_or_had_timestamp.yaml | 0 .../slots/{ => archive}/has_or_had_title.yaml | 0 .../{ => archive}/has_or_had_tolerance.yaml | 0 .../slots/{ => archive}/has_or_had_tool.yaml | 0 .../has_or_had_transformation_metadata.yaml | 0 .../{ => archive}/has_or_had_treatment.yaml | 0 .../{ => archive}/has_or_had_treshold.yaml | 0 .../{ => archive}/has_or_had_type_code.yaml | 0 .../slots/{ => archive}/has_or_had_unit.yaml | 0 .../{ => archive}/has_or_had_use_case.yaml | 0 .../has_or_had_user_category.yaml | 0 .../slots/{ => archive}/has_or_had_value.yaml | 0 .../slots/{ => archive}/has_or_had_venue.yaml | 0 .../{ => archive}/has_or_had_version.yaml | 0 .../slots/archive/has_or_had_web_claim.yaml | 33 +- .../slots/archive/has_or_had_web_page.yaml | 92 - .../archive/has_supervised_handling.yaml | 35 + .../modules/slots/archive/has_wifi.yaml | 32 + .../archive/historic_garden_designation.yaml | 35 + .../archive/hold_or_held_record_set_type.yaml | 59 + .../archive/identifies_or_identified.yaml | 29 + .../archive/identifies_or_identified_as.yaml | 28 + .../archive/implements_or_implemented.yaml | 30 + .../slots/archive/imposes_or_imposed.yaml | 32 + .../modules/slots/archive/inbound_from.yaml | 27 + .../slots/archive/includes_bounding_box.yaml | 41 + .../slots/archive/includes_handwriting.yaml | 38 + .../archive/includes_music_description.yaml | 26 + .../archive/includes_object_tracking.yaml | 40 + .../archive/includes_segmentation_mask.yaml | 41 + .../archive/includes_sound_description.yaml | 42 + .../slots/archive/includes_speaker.yaml | 36 + .../includes_speaker_identification.yaml | 42 + .../slots/archive/includes_timestamp.yaml | 37 + .../slots/archive/indicates_or_indicated.yaml | 47 + .../archive/industry_benchmark_high.yaml | 38 + .../slots/archive/industry_benchmark_low.yaml | 38 + .../slots/archive/inference_provenance.yaml | 29 + .../slots/archive/info_session_date.yaml | 27 + .../linkml/modules/slots/archive/initial.yaml | 88 + .../slots/archive/initial_of_the_initial.yaml | 34 + .../slots/archive/innovation_budget.yaml | 68 + .../modules/slots/archive/inscription.yaml | 29 + .../slots/archive/installation_date.yaml | 31 + .../slots/archive/installed_at_place.yaml | 35 + .../modules/slots/archive/instance_of.yaml | 32 + .../slots/archive/institution_function.yaml | 31 + .../archive/institution_linkedin_url.yaml | 28 + .../slots/archive/institution_name.yaml | 28 + .../slots/archive/insurance_currency.yaml | 28 + .../slots/archive/insurance_provider.yaml | 28 + .../slots/archive/insurance_value.yaml | 30 + .../archive/intangible_heritage_subtype.yaml | 37 + .../archive/integrates_or_integrated.yaml | 28 + .../slots/archive/interlibrary_loan.yaml | 35 + .../slots/archive/internal_funding.yaml | 41 + .../modules/slots/archive/international.yaml | 27 + .../slots/archive/inventory_number.yaml | 28 + .../slots/archive/inventory_web_address.yaml | 38 + .../involves_or_involved.yaml} | 20 +- .../modules/slots/archive/is_accessible.yaml | 29 + .../modules/slots/archive/is_accredited.yaml | 37 + .../modules/slots/archive/is_active.yaml | 39 + .../archive/is_annex_of_reading_room.yaml | 34 + .../modules/slots/archive/is_approximate.yaml | 25 +- .../slots/archive/is_auxiliary_of_place.yaml | 27 + .../archive/is_auxiliary_of_platform.yaml | 27 + .../modules/slots/archive/is_background.yaml | 33 + .../modules/slots/archive/is_branch_of.yaml | 26 + .../slots/archive/is_branch_of_authority.yaml | 29 + .../slots/archive/is_closed_caption.yaml | 38 + .../slots/archive/is_current_version.yaml | 42 + .../modules/slots/archive/is_deceased.yaml | 51 + .../modules/slots/archive/is_embeddable.yaml | 31 + .../modules/slots/archive/is_estimate.yaml | 29 + .../slots/archive/is_heritage_relevant.yaml | 30 + .../slots/archive/is_historical_boundary.yaml | 52 + .../modules/slots/archive/is_inferred.yaml | 29 + .../modules/slots/archive/is_leased.yaml | 47 + .../slots/archive/is_legal_status_of.yaml | 39 + .../slots/archive/is_licensed_content.yaml | 31 + .../slots/archive/is_made_for_kid.yaml | 31 + .../modules/slots/archive/is_mandatory.yaml | 33 + .../slots/archive/is_official_assessment.yaml | 38 + .../slots/archive/is_official_content.yaml | 36 + .../slots/archive/is_open_to_public.yaml | 41 + .../is_or_was_about_digital_presence.yaml | 0 .../is_or_was_access_restricted.yaml | 0 .../is_or_was_accessioned_through.yaml | 0 .../{ => archive}/is_or_was_acquired_by.yaml | 0 .../is_or_was_acquired_through.yaml | 0 .../{ => archive}/is_or_was_active_since.yaml | 0 .../is_or_was_affected_by_event.yaml | 0 .../is_or_was_affiliated_with.yaml | 0 .../is_or_was_aggregated_by.yaml | 0 .../is_or_was_allocated_budget.yaml | 0 .../{ => archive}/is_or_was_allocated_by.yaml | 0 .../is_or_was_allocated_through.yaml | 0 .../{ => archive}/is_or_was_allocated_to.yaml | 0 .../is_or_was_also_allocation_agency.yaml | 0 .../is_or_was_alternative_form_of.yaml | 0 .../is_or_was_amended_through.yaml | 0 .../is_or_was_appended_with.yaml | 0 .../is_or_was_applicable_in.yaml | 0 .../{ => archive}/is_or_was_appreciated.yaml | 0 .../{ => archive}/is_or_was_approved_by.yaml | 0 .../{ => archive}/is_or_was_approved_on.yaml | 0 .../{ => archive}/is_or_was_approximate.yaml | 0 .../is_or_was_archive_department_of.yaml | 0 .../{ => archive}/is_or_was_archived_as.yaml | 0 .../{ => archive}/is_or_was_archived_at.yaml | 0 .../{ => archive}/is_or_was_archived_in.yaml | 0 .../{ => archive}/is_or_was_asserted_by.yaml | 0 .../{ => archive}/is_or_was_asserted_on.yaml | 0 .../{ => archive}/is_or_was_assessed_on.yaml | 0 .../is_or_was_associated_with.yaml | 0 .../{ => archive}/is_or_was_available.yaml | 0 .../{ => archive}/is_or_was_based_on.yaml | 0 .../{ => archive}/is_or_was_born_on.yaml | 0 .../{ => archive}/is_or_was_branch_of.yaml | 0 .../{ => archive}/is_or_was_cancelled_by.yaml | 0 .../{ => archive}/is_or_was_cataloged_in.yaml | 0 .../is_or_was_categorized_as.yaml | 0 .../{ => archive}/is_or_was_caused_by.yaml | 0 .../{ => archive}/is_or_was_ceased_by.yaml | 0 .../is_or_was_checked_through.yaml | 0 .../is_or_was_classified_as.yaml | 0 .../is_or_was_collection_of.yaml | 0 .../is_or_was_compatible_with.yaml | 0 .../{ => archive}/is_or_was_conducted_by.yaml | 0 .../is_or_was_created_through.yaml | 0 .../is_or_was_curated_through.yaml | 0 .../{ => archive}/is_or_was_current.yaml | 0 .../is_or_was_decommissioned_at.yaml | 0 .../{ => archive}/is_or_was_derived_from.yaml | 0 .../{ => archive}/is_or_was_designed_by.yaml | 0 .../{ => archive}/is_or_was_diarized.yaml | 0 .../{ => archive}/is_or_was_dismissed.yaml | 0 .../is_or_was_documented_by.yaml | 0 .../is_or_was_documented_in.yaml | 0 .../slots/{ => archive}/is_or_was_due_on.yaml | 0 .../{ => archive}/is_or_was_edited_by.yaml | 0 .../{ => archive}/is_or_was_effective_at.yaml | 0 .../{ => archive}/is_or_was_employed_by.yaml | 0 .../is_or_was_encompassed_by.yaml | 0 .../is_or_was_equivalent_to.yaml | 0 .../is_or_was_established_by.yaml | 0 .../{ => archive}/is_or_was_exhibited_at.yaml | 0 .../{ => archive}/is_or_was_expired_at.yaml | 0 .../{ => archive}/is_or_was_exposed_via.yaml | 0 .../{ => archive}/is_or_was_extended.yaml | 0 .../is_or_was_extracted_using.yaml | 0 .../is_or_was_founded_through.yaml | 0 .../{ => archive}/is_or_was_generated_by.yaml | 0 .../{ => archive}/is_or_was_governed_by.yaml | 0 .../is_or_was_identified_through.yaml | 0 .../is_or_was_implemented_by.yaml | 0 .../{ => archive}/is_or_was_included_in.yaml | 0 .../{ => archive}/is_or_was_indexed.yaml | 0 .../{ => archive}/is_or_was_instance_of.yaml | 0 .../is_or_was_instantiated_as.yaml | 0 .../is_or_was_instantiated_by.yaml | 0 .../{ => archive}/is_or_was_involved_in.yaml | 0 .../is_or_was_last_updated_at.yaml | 0 .../{ => archive}/is_or_was_located_in.yaml | 0 .../is_or_was_located_within.yaml | 0 .../{ => archive}/is_or_was_managed_by.yaml | 0 .../{ => archive}/is_or_was_member_of.yaml | 0 .../{ => archive}/is_or_was_observed_by.yaml | 0 .../{ => archive}/is_or_was_opened_on.yaml | 0 .../{ => archive}/is_or_was_operated_by.yaml | 0 .../{ => archive}/is_or_was_part_of.yaml | 0 .../is_or_was_part_of_archive_series.yaml | 0 .../is_or_was_part_of_total.yaml | 0 .../{ => archive}/is_or_was_platform_of.yaml | 0 .../{ => archive}/is_or_was_position.yaml | 0 .../{ => archive}/is_or_was_published.yaml | 0 .../{ => archive}/is_or_was_published_at.yaml | 0 .../{ => archive}/is_or_was_published_by.yaml | 0 .../slots/archive/is_or_was_recombined.yaml | 14 + .../{ => archive}/is_or_was_related_to.yaml | 0 .../is_or_was_represented_by.yaml | 0 .../{ => archive}/is_or_was_required.yaml | 0 .../{ => archive}/is_or_was_returned.yaml | 0 .../{ => archive}/is_or_was_revision_of.yaml | 0 .../{ => archive}/is_or_was_signed_at.yaml | 0 .../{ => archive}/is_or_was_signed_on.yaml | 0 .../{ => archive}/is_or_was_stored_at.yaml | 0 .../is_or_was_sub_collection_of.yaml | 0 .../is_or_was_suborganization_of.yaml | 0 .../is_or_was_superseded_by.yaml | 0 .../{ => archive}/is_or_was_targeted_at.yaml | 0 .../is_or_was_tax_deductible.yaml | 0 .../is_or_was_temporarily_located_at.yaml | 0 .../is_or_was_threatened_by.yaml | 0 .../{ => archive}/is_or_was_transferred.yaml | 0 .../is_or_was_transferred_to.yaml | 0 .../{ => archive}/is_or_was_triggered_by.yaml | 0 .../{ => archive}/is_or_was_used_by.yaml | 0 .../{ => archive}/is_or_was_used_in.yaml | 0 .../{ => archive}/is_or_was_verified_by.yaml | 0 .../{ => archive}/is_or_was_visible_in.yaml | 0 .../is_or_was_webarchived_at.yaml | 0 .../modules/slots/archive/is_overlapping.yaml | 31 + .../slots/archive/is_part_of_complex.yaml | 31 + .../modules/slots/archive/is_permanent.yaml | 34 + .../modules/slots/archive/is_permitted.yaml | 29 + .../archive/is_primary_digital_presence.yaml | 27 + .../slots/archive/is_public_facing.yaml | 36 + .../modules/slots/archive/is_rebuilding.yaml | 26 + .../modules/slots/archive/is_recognized.yaml | 26 + .../modules/slots/archive/is_recurring.yaml | 31 + .../linkml/modules/slots/archive/is_sdh.yaml | 40 + .../modules/slots/archive/is_sub_guide.yaml | 26 + .../modules/slots/archive/is_temporary.yaml | 31 + .../slots/archive/is_type_specimen.yaml | 30 + .../modules/slots/archive/is_verified.yaml | 36 + .../linkml/modules/slots/archive/isbn.yaml | 30 + .../linkml/modules/slots/archive/isbn_13.yaml | 28 + .../linkml/modules/slots/archive/isil.yaml | 26 + .../slots/archive/iso_3166_2_code.yaml | 27 + .../modules/slots/archive/iso_standard.yaml | 64 + .../slots/archive/iso_standard_reference.yaml | 29 + .../linkml/modules/slots/archive/issn.yaml | 28 + .../modules/slots/archive/issued_call.yaml | 30 + .../slots/archive/issuing_organisation.yaml | 26 + .../linkml/modules/slots/archive/item.yaml | 31 + .../modules/slots/archive/item_returned.yaml | 32 + .../modules/slots/archive/iucn_status.yaml | 35 + .../modules/slots/archive/jurisdiction.yaml | 58 + .../slots/archive/jurisdiction_id.yaml | 43 + .../slots/archive/jurisdiction_level.yaml | 30 + .../slots/archive/jurisdiction_type.yaml | 53 + .../modules/slots/archive/justification.yaml | 30 + .../slots/archive/key_distinction.yaml | 33 + .../slots/archive/keyframe_extraction.yaml | 43 + .../linkml/modules/slots/archive/keyword.yaml | 32 + .../slots/archive/kien_registration_date.yaml | 30 + .../modules/slots/archive/kien_url.yaml | 30 + .../slots/archive/knowledge_transmission.yaml | 61 + .../modules/slots/archive/label_de.yaml | 27 + .../modules/slots/archive/label_es.yaml | 27 + .../modules/slots/archive/label_fr.yaml | 27 + .../modules/slots/archive/label_it.yaml | 27 + .../modules/slots/archive/label_nl.yaml | 27 + .../modules/slots/archive/label_pt.yaml | 27 + .../lacks_or_lacked.yaml} | 14 +- .../landmark_confidence.yaml} | 30 +- .../slots/archive/landmark_geonames_id.yaml | 26 + .../modules/slots/archive/landmark_label.yaml | 28 + .../slots/archive/landmark_segment.yaml | 27 + .../slots/archive/landmark_wikidata_id.yaml | 28 + .../modules/slots/archive/language.yaml | 37 + .../modules/slots/archive/language_code.yaml | 42 + .../modules/slots/archive/language_name.yaml | 32 + .../modules/slots/archive/language_raw.yaml | 37 + .../slots/archive/languages_detected.yaml | 41 + .../modules/slots/archive/languages_raw.yaml | 33 + .../modules/slots/archive/last_modified.yaml | 26 + .../modules/slots/archive/latency_ms.yaml | 31 + .../modules/slots/archive/latitude.yaml | 49 + .../modules/slots/archive/launch_date.yaml | 28 + .../modules/slots/archive/lease_expiry.yaml | 34 + .../slots/archive/legacy_planning.yaml | 15 + .../modules/slots/archive/legal_basis.yaml | 31 + .../slots/archive/legal_entity_type.yaml | 52 + .../modules/slots/archive/legal_form.yaml | 57 + .../slots/archive/legal_jurisdiction.yaml | 50 + .../modules/slots/archive/legal_name.yaml | 33 + .../modules/slots/archive/legal_note.yaml | 27 + .../slots/archive/legal_provenance_note.yaml | 28 + .../archive/legal_responsibility_basis.yaml | 69 + .../legal_responsibility_end_date.yaml | 34 + .../legal_responsibility_start_date.yaml | 34 + .../modules/slots/archive/legal_status.yaml | 57 + .../slots/archive/legal_system_type.yaml | 47 + .../linkml/modules/slots/archive/lender.yaml | 33 + .../modules/slots/archive/lender_contact.yaml | 28 + .../modules/slots/archive/lending_policy.yaml | 40 + .../modules/slots/archive/level_value.yaml | 34 + .../slots/archive/library_catalog_url.yaml | 29 + .../slots/archive/library_search_score.yaml | 31 + .../slots/archive/library_subtype.yaml | 37 + .../linkml/modules/slots/archive/license.yaml | 46 + .../modules/slots/archive/life_stage.yaml | 37 + .../slots/archive/lifecycle_phase_type.yaml | 26 + .../modules/slots/archive/light_max_lux.yaml | 37 + .../modules/slots/archive/like_count.yaml | 36 + .../slots/archive/likelihood_confidence.yaml | 31 + .../slots/archive/likelihood_factor.yaml | 29 + .../slots/archive/likelihood_level.yaml | 28 + .../likelihood_score.yaml} | 19 +- .../archive/likely_whatsapp_proficient.yaml | 26 + .../modules/slots/archive/link_context.yaml | 26 + .../modules/slots/archive/link_count.yaml | 29 + .../modules/slots/archive/link_rationale.yaml | 33 + .../modules/slots/archive/link_text.yaml | 26 + .../modules/slots/archive/link_type.yaml | 28 + .../modules/slots/archive/link_url.yaml | 26 + .../slots/archive/linked_class_name.yaml | 35 + .../modules/slots/archive/linked_data.yaml | 45 + .../slots/archive/linked_data_access.yaml | 27 + .../slots/archive/linked_data_export.yaml | 42 + .../slots/archive/linked_to_collection.yaml | 42 + .../slots/archive/linkedin_profile_path.yaml | 34 + .../slots/archive/linkedin_profile_url.yaml | 57 + .../modules/slots/archive/linkedin_url.yaml | 35 + .../modules/slots/archive/list_item.yaml | 27 + .../modules/slots/archive/literal_name.yaml | 31 + .../slots/archive/live_broadcast_content.yaml | 40 + .../slots/archive/living_collection.yaml | 86 + .../modules/slots/archive/llm_response.yaml | 60 + .../slots/archive/loan_agreement_url.yaml | 28 + .../modules/slots/archive/loan_end_date.yaml | 30 + .../modules/slots/archive/loan_history.yaml | 55 + .../linkml/modules/slots/archive/loan_id.yaml | 30 + .../modules/slots/archive/loan_note.yaml | 29 + .../modules/slots/archive/loan_number.yaml | 30 + .../modules/slots/archive/loan_purpose.yaml | 28 + .../slots/archive/loan_start_date.yaml | 28 + .../modules/slots/archive/loan_status.yaml | 41 + .../modules/slots/archive/loan_timespan.yaml | 31 + .../modules/slots/archive/loan_type.yaml | 33 + .../modules/slots/archive/locality.yaml | 43 + .../modules/slots/archive/located_at.yaml | 33 + .../modules/slots/archive/location.yaml | 26 + .../slots/archive/location_browse_score.yaml | 31 + .../modules/slots/archive/location_name.yaml | 66 + .../slots/archive/logo_confidence.yaml | 31 + .../modules/slots/archive/logo_label.yaml | 28 + .../slots/archive/logo_organization.yaml | 26 + .../modules/slots/archive/logo_segment.yaml | 27 + .../modules/slots/archive/long_name.yaml | 85 + .../modules/slots/archive/longitude.yaml | 49 + .../modules/slots/archive/lot_number.yaml | 28 + .../modules/slots/archive/maintained_by.yaml | 44 + .../slots/archive/maintenance_schedule.yaml | 37 + .../modules/slots/archive/major_city.yaml | 18 + .../slots/archive/major_research_project.yaml | 29 + .../modules/slots/archive/managed_by.yaml | 43 + .../slots/archive/manages_collection.yaml | 27 + .../manages_or_managed.yaml} | 16 +- .../modules/slots/archive/managing_unit.yaml | 44 + .../linkml/modules/slots/archive/mandate.yaml | 42 + .../modules/slots/archive/marginalia.yaml | 28 + .../modules/slots/archive/martyred.yaml | 89 + .../slots/archive/material_composition.yaml | 40 + .../archive/material_specialization.yaml | 31 + .../modules/slots/archive/materials_used.yaml | 31 + .../archive/max_annual_light_exposure.yaml | 86 + .../modules/slots/archive/max_group_size.yaml | 31 + .../modules/slots/archive/max_light_lux.yaml | 65 + .../slots/archive/max_likelihood_score.yaml | 29 + .../slots/archive/maximal_of_maximal.yaml | 44 + .../modules/slots/archive/maximum_amount.yaml | 30 + .../slots/archive/measurement_data.yaml | 41 + .../slots/archive/measurement_date.yaml | 29 + .../slots/archive/measurement_method.yaml | 29 + .../slots/archive/measures_or_measured.yaml | 30 + .../linkml/modules/slots/archive/medium.yaml | 30 + .../modules/slots/archive/member_of.yaml | 29 + .../archive/member_organization_name.yaml | 29 + .../archive/member_organization_url.yaml | 29 + .../slots/archive/membership_criteria.yaml | 36 + .../modules/slots/archive/membership_id.yaml | 29 + .../slots/archive/membership_required.yaml | 33 + .../slots/archive/membership_role.yaml | 29 + .../slots/archive/membership_size.yaml | 26 + .../slots/archive/membership_type.yaml | 29 + .../slots/archive/metadata_standard.yaml | 50 + .../linkml/modules/slots/archive/method.yaml | 28 + .../methodology_type.yaml} | 14 +- .../slots/archive/metrics_observed_at.yaml | 36 + .../slots/archive/metrics_observed_date.yaml | 36 + .../modules/slots/archive/michelin_star.yaml | 31 + .../slots/archive/minimal_of_minimal.yaml | 44 + .../modules/slots/archive/minimum_amount.yaml | 30 + .../slots/archive/minimum_donation.yaml | 30 + .../slots/archive/minimum_partner.yaml | 26 + .../slots/archive/mission_statement.yaml | 75 + .../archive/mixed_governance_structure.yaml | 57 + .../linkml/modules/slots/archive/model.yaml | 42 + .../slots/archive/model_architecture.yaml | 44 + .../modules/slots/archive/model_provider.yaml | 31 + .../modules/slots/archive/model_task.yaml | 44 + .../modules/slots/archive/model_version.yaml | 34 + .../slots/archive/modern_place_name.yaml | 29 + .../modules/slots/archive/modified.yaml | 31 + .../slots/archive/monitoring_platform.yaml | 34 + .../archive/monitoring_platform_url.yaml | 28 + .../slots/archive/monument_number.yaml | 31 + .../archive/motivation_type_description.yaml | 31 + .../slots/archive/motivation_type_id.yaml | 31 + .../slots/archive/motivation_type_name.yaml | 35 + .../slots/archive/multilingual_label.yaml | 30 + .../slots/archive/museum_search_score.yaml | 31 + .../modules/slots/archive/museum_subtype.yaml | 40 + .../archive/museum_type_classification.yaml | 45 + .../slots/archive/music_confidence.yaml | 37 + .../modules/slots/archive/music_detected.yaml | 33 + .../slots/archive/music_end_seconds.yaml | 26 + .../modules/slots/archive/music_genre.yaml | 26 + .../slots/archive/music_genres_detected.yaml | 44 + .../archive/music_segment_confidence.yaml | 31 + .../slots/archive/music_start_seconds.yaml | 26 + .../modules/slots/archive/music_type.yaml | 28 + .../archive/mutual_connections_text.yaml | 33 + .../linkml/modules/slots/archive/name.yaml | 26 + .../modules/slots/archive/name_authority.yaml | 24 + .../modules/slots/archive/name_language.yaml | 31 + .../modules/slots/archive/name_local.yaml | 39 + .../slots/archive/name_specification.yaml | 28 + .../modules/slots/archive/name_type.yaml | 40 + .../slots/archive/name_validity_period.yaml | 41 + .../slots/archive/narrower_concept.yaml | 37 + .../modules/slots/archive/narrower_type.yaml | 32 + .../modules/slots/archive/nazi_era_flag.yaml | 33 + .../modules/slots/archive/nesting_level.yaml | 40 + .../slots/archive/network_analysis.yaml | 31 + .../slots/archive/{en.yaml => nl.yaml} | 17 +- .../modules/slots/archive/no_fabrication.yaml | 26 + .../modules/slots/archive/noise_floor_db.yaml | 39 + .../slots/archive/nomenclatural_code.yaml | 18 + .../slots/archive/nonprofit_subtype.yaml | 37 + .../slots/archive/notable_examples.yaml | 39 + .../slots/archive/notarial_deed_number.yaml | 31 + .../modules/slots/archive/notary_name.yaml | 29 + .../modules/slots/archive/notary_office.yaml | 28 + .../linkml/modules/slots/archive/note.yaml | 31 + .../modules/slots/archive/note_content.yaml | 48 + .../modules/slots/archive/note_date.yaml | 47 + .../modules/slots/archive/note_type.yaml | 60 + .../modules/slots/archive/numeric_value.yaml | 52 + .../slots/archive/oai_pmh_endpoint.yaml | 43 + .../slots/archive/object_alternate_name.yaml | 29 + .../archive/object_classes_detected.yaml | 38 + .../slots/archive/object_collection_id.yaml | 26 + .../slots/archive/object_confidence.yaml | 31 + .../object_description.yaml} | 19 +- .../modules/slots/archive/object_id.yaml | 30 + .../modules/slots/archive/object_label.yaml | 28 + .../modules/slots/archive/object_name.yaml | 30 + .../modules/slots/archive/object_ref.yaml | 38 + .../modules/slots/archive/object_segment.yaml | 27 + .../modules/slots/archive/object_type.yaml | 37 + .../slots/archive/object_wikidata_id.yaml | 26 + .../modules/slots/archive/objective.yaml | 38 + .../modules/slots/archive/objects_added.yaml | 36 + .../slots/archive/objects_affected.yaml | 28 + .../modules/slots/archive/objects_count.yaml | 31 + .../slots/archive/objects_removed.yaml | 36 + .../modules/slots/archive/observation.yaml | 38 + .../slots/archive/observation_context.yaml | 24 + .../slots/archive/observation_date.yaml | 36 + .../modules/slots/archive/observation_id.yaml | 28 + .../slots/archive/observation_note.yaml | 30 + .../slots/archive/observation_period.yaml | 37 + .../slots/archive/observation_ref.yaml | 36 + .../slots/archive/observation_source.yaml | 67 + .../observed_entity.yaml} | 15 +- .../modules/slots/archive/observed_in.yaml | 30 + .../modules/slots/archive/observed_name.yaml | 27 + .../slots/archive/observer_affiliation.yaml | 38 + .../modules/slots/archive/observer_name.yaml | 29 + .../modules/slots/archive/observer_type.yaml | 44 + .../modules/slots/archive/occupation.yaml | 215 + .../slots/archive/occurs_or_occurred_at.yaml | 41 + .../modules/slots/archive/oclc_number.yaml | 29 + .../modules/slots/archive/offered_by.yaml | 30 + .../slots/archive/offers_donation_scheme.yaml | 41 + .../slots/archive/offers_or_offered.yaml | 76 + .../archive/offers_or_offered_access.yaml | 94 + .../archive/official_institution_subtype.yaml | 37 + .../modules/slots/archive/online_shop.yaml | 39 + .../modules/slots/archive/open_source.yaml | 44 + .../modules/slots/archive/opening_hour.yaml | 38 + .../modules/slots/archive/operated_by.yaml | 42 + .../slots/archive/operates_or_operated.yaml | 29 + .../slots/archive/operating_budget.yaml | 44 + .../modules/slots/archive/operating_hour.yaml | 38 + .../slots/archive/operational_status.yaml | 44 + .../modules/slots/archive/operator.yaml | 32 + .../archive/organization_legal_form.yaml | 31 + .../slots/archive/organization_name.yaml | 28 + .../slots/archive/organization_type.yaml | 31 + .../archive/organizational_change_score.yaml | 31 + .../slots/archive/organizational_level.yaml | 35 + .../slots/archive/organizational_mission.yaml | 26 + .../archive/organizational_principle.yaml | 29 + .../archive/organizational_principle_uri.yaml | 29 + .../archive/organizational_structure.yaml | 41 + .../modules/slots/archive/organized_by.yaml | 34 + .../slots/archive/organizing_body.yaml | 26 + .../slots/archive/origin_location.yaml | 28 + .../modules/slots/archive/origin_period.yaml | 29 + .../slots/archive/original_end_date.yaml | 28 + .../originates_or_originated_from.yaml | 34 + .../linkml/modules/slots/archive/osm_id.yaml | 40 + .../outbound_condition_report_url.yaml | 28 + .../modules/slots/archive/outbound_to.yaml | 18 + .../archive/outdoor_seating_capacity.yaml | 29 + .../archive/outdoor_site_description.yaml | 43 + .../slots/archive/outdoor_site_id.yaml | 35 + .../slots/archive/outdoor_site_name.yaml | 39 + .../slots/archive/outdoor_site_type.yaml | 55 + .../slots/archive/overall_confidence.yaml | 55 + .../modules/slots/archive/overall_status.yaml | 38 + .../slots/archive/oversight_jurisdiction.yaml | 27 + .../slots/archive/ownership_stamp.yaml | 29 + .../linkml/modules/slots/archive/page.yaml | 28 + .../modules/slots/archive/page_count.yaml | 31 + .../modules/slots/archive/page_section.yaml | 31 + .../modules/slots/archive/page_title.yaml | 28 + .../slots/archive/paragraph_count.yaml | 36 + .../modules/slots/archive/parallel_title.yaml | 30 + .../slots/archive/parent_corporation.yaml | 27 + .../slots/archive/parent_department.yaml | 27 + .../slots/archive/parent_programme.yaml | 26 + .../modules/slots/archive/parent_society.yaml | 34 + .../modules/slots/archive/parent_unit.yaml | 45 + .../slots/archive/part_of_collection.yaml | 28 + .../archive/part_of_custodian_collection.yaml | 42 + .../modules/slots/archive/part_of_event.yaml | 32 + .../slots/archive/part_of_facility.yaml | 32 + .../slots/archive/part_of_storage.yaml | 32 + .../modules/slots/archive/part_of_zone.yaml | 32 + .../modules/slots/archive/part_type.yaml | 27 + .../slots/archive/participant_count.yaml | 35 + .../archive/participating_custodian.yaml | 27 + .../archive/participating_institution.yaml | 28 + .../slots/archive/particulate_max.yaml | 31 + .../slots/archive/partner_institution.yaml | 32 + .../slots/archive/partnership_model.yaml | 61 + .../slots/archive/partnership_required.yaml | 26 + .../modules/slots/archive/patronym.yaml | 27 + .../slots/archive/payment_frequency.yaml | 30 + .../linkml/modules/slots/archive/pdf_url.yaml | 28 + .../slots/archive/performance_datetime.yaml | 28 + .../archive/performance_description.yaml | 28 + .../slots/archive/performance_duration.yaml | 28 + .../modules/slots/archive/performance_id.yaml | 30 + .../slots/archive/performance_location.yaml | 29 + .../slots/archive/performance_name.yaml | 28 + .../slots/archive/performance_note.yaml | 28 + .../modules/slots/archive/performance_of.yaml | 32 + .../slots/archive/performance_repertoire.yaml | 68 + .../slots/archive/performance_venue.yaml | 28 + .../modules/slots/archive/performed_by.yaml | 33 + .../modules/slots/archive/performer.yaml | 32 + .../linkml/modules/slots/archive/period.yaml | 26 + .../modules/slots/archive/period_covered.yaml | 32 + .../slots/archive/period_description.yaml | 26 + .../archive/{end.yaml => period_end.yaml} | 13 +- .../modules/slots/archive/period_name.yaml | 26 + .../modules/slots/archive/period_start.yaml | 26 + .../slots/archive/permanent_location.yaml | 30 + .../slots/archive/permission_required.yaml | 26 + .../slots/archive/person_claim_id.yaml | 25 + .../slots/archive/person_claim_type.yaml | 44 + .../slots/archive/person_claim_value.yaml | 27 + .../slots/archive/person_html_file.yaml | 32 + .../modules/slots/archive/person_id.yaml | 39 + .../modules/slots/archive/person_name.yaml | 27 + .../slots/archive/person_research_score.yaml | 31 + .../archive/personal_collection_subtype.yaml | 15 + .../slots/archive/personnel_budget.yaml | 42 + .../archive/pest_management_required.yaml | 39 + .../modules/slots/archive/photograph.yaml | 29 + .../slots/archive/physical_location.yaml | 45 + .../modules/slots/archive/pipeline_stage.yaml | 40 + .../slots/archive/place_custodian_ref.yaml | 36 + .../slots/archive/place_description.yaml | 30 + .../slots/archive/place_designation.yaml | 49 + .../modules/slots/archive/place_language.yaml | 32 + .../modules/slots/archive/place_name.yaml | 34 + .../{extent_item.yaml => place_note.yaml} | 60 +- .../slots/archive/place_of_publication.yaml | 29 + .../slots/archive/place_source_text.yaml | 29 + .../slots/archive/place_specificity.yaml | 44 + .../slots/archive/planned_closure_date.yaml | 31 + .../modules/slots/archive/planned_end.yaml | 36 + .../modules/slots/archive/planned_start.yaml | 34 + .../slots/archive/plant_species_count.yaml | 32 + .../slots/archive/platform_description.yaml | 30 + .../modules/slots/archive/platform_id.yaml | 31 + .../modules/slots/archive/platform_name.yaml | 38 + .../modules/slots/archive/platform_of.yaml | 40 + .../slots/archive/platform_purpose.yaml | 34 + .../modules/slots/archive/platform_type.yaml | 25 + .../slots/archive/platform_type_category.yaml | 27 + .../archive/platform_type_description.yaml | 29 + .../slots/archive/platform_type_id.yaml | 27 + .../slots/archive/platform_type_name.yaml | 29 + .../modules/slots/archive/platform_url.yaml | 32 + .../slots/archive/policy_authority.yaml | 61 + .../slots/archive/policy_description.yaml | 28 + .../modules/slots/archive/policy_id.yaml | 38 + .../modules/slots/archive/policy_name.yaml | 37 + .../slots/archive/policy_review_date.yaml | 31 + .../modules/slots/archive/policy_text.yaml | 52 + .../slots/archive/portal_description.yaml | 28 + .../modules/slots/archive/portal_id.yaml | 31 + .../slots/archive/portal_language.yaml | 31 + .../modules/slots/archive/portal_name.yaml | 28 + .../modules/slots/archive/portal_status.yaml | 40 + .../modules/slots/archive/portal_type.yaml | 31 + .../slots/archive/portal_type_category.yaml | 33 + .../archive/portal_type_description.yaml | 26 + .../modules/slots/archive/portal_type_id.yaml | 26 + .../slots/archive/portal_type_name.yaml | 30 + .../slots/archive/portal_typical_domain.yaml | 28 + .../modules/slots/archive/portal_url.yaml | 29 + .../archive/poses_or_posed_condition.yaml | 44 + .../modules/slots/archive/post_count.yaml | 42 + .../linkml/modules/slots/archive/post_id.yaml | 40 + .../post_type_activity_streams_type.yaml | 27 + .../slots/archive/post_type_category.yaml | 33 + .../slots/archive/post_type_description.yaml | 28 + .../slots/archive/post_type_ephemeral.yaml | 27 + .../archive/post_type_heritage_use_case.yaml | 51 + .../modules/slots/archive/post_type_id.yaml | 24 + .../slots/archive/post_type_max_duration.yaml | 27 + .../post_type_media_format.yaml} | 21 +- .../modules/slots/archive/post_type_name.yaml | 31 + .../archive/post_type_schema_org_type.yaml | 27 + .../archive/post_type_supported_platform.yaml | 28 + .../modules/slots/archive/post_url.yaml | 40 + .../modules/slots/archive/postal_code.yaml | 53 + .../slots/archive/posted_by_profile.yaml | 35 + .../modules/slots/archive/power_source.yaml | 41 + .../slots/archive/powers_platform.yaml | 27 + .../slots/archive/practitioner_community.yaml | 60 + .../slots/archive/preceding_activity.yaml | 35 + .../slots/archive/preferred_label.yaml | 27 + .../modules/slots/archive/preferred_name.yaml | 46 + .../slots/archive/preparation_date.yaml | 30 + .../modules/slots/archive/prepared_by.yaml | 28 + .../slots/archive/preservation_approach.yaml | 15 + .../slots/archive/preservation_budget.yaml | 44 + .../archive/preservation_event_type.yaml | 49 + .../slots/archive/preservation_level.yaml | 54 + .../slots/archive/preservation_method.yaml | 63 + .../slots/archive/preservation_note.yaml | 27 + .../slots/archive/preservation_purpose.yaml | 32 + .../archive/preservation_requirement.yaml | 36 + .../slots/archive/preservation_standard.yaml | 43 + .../slots/archive/preservative_detail.yaml | 28 + .../slots/archive/preserves_or_preserved.yaml | 78 + .../slots/archive/previous_observation.yaml | 26 + .../linkml/modules/slots/archive/price.yaml | 29 + .../modules/slots/archive/price_currency.yaml | 35 + .../modules/slots/archive/price_text.yaml | 28 + .../linkml/modules/slots/archive/primary.yaml | 27 + .../archive/primary_audio_event_type.yaml | 44 + .../slots/archive/primary_heritage_type.yaml | 32 + .../slots/archive/primary_register.yaml | 35 + .../slots/archive/primary_speaker.yaml | 38 + .../modules/slots/archive/primary_system.yaml | 48 + .../slots/archive/printer_publisher.yaml | 29 + .../modules/slots/archive/priority.yaml | 34 + .../modules/slots/archive/privacy_note.yaml | 27 + .../archive/processing_completed_date.yaml | 39 + .../archive/processing_duration_seconds.yaml | 31 + .../slots/archive/processing_priority.yaml | 50 + .../archive/processing_started_date.yaml | 36 + .../slots/archive/processing_status.yaml | 28 + .../slots/archive/production_method.yaml | 26 + .../slots/archive/proficiency_level.yaml | 35 + .../modules/slots/archive/profile_data.yaml | 32 + .../slots/archive/profile_description.yaml | 28 + .../slots/archive/profile_image_url.yaml | 32 + .../slots/archive/profile_linkedin_url.yaml | 30 + .../slots/archive/profile_location.yaml | 30 + .../modules/slots/archive/profile_name.yaml | 29 + .../modules/slots/archive/profile_url.yaml | 46 + .../modules/slots/archive/protocol_name.yaml | 45 +- .../slots/archive/protocol_version.yaml | 45 +- .../modules/slots/archive/provider.yaml | 30 + .../slots/archive/provides_or_provided.yaml | 31 + .../provides_or_provided_provenance_to.yaml | 51 + .../archive/provides_or_provided_to.yaml | 29 + .../slots/archive/publishes_or_published.yaml | 29 + .../modules/slots/archive/rate_value.yaml | 56 + .../modules/slots/archive/rationale.yaml | 30 + .../slots/archive/raw_subtitle_content.yaml | 42 + .../slots/archive/reading_room_type.yaml | 53 + .../slots/archive/reason_description.yaml | 33 + .../slots/archive/reasoning_content.yaml | 50 + .../slots/archive/receives_or_received.yaml | 28 + .../slots/archive/recognized_person_name.yaml | 29 + .../modules/slots/archive/recommendation.yaml | 29 + .../slots/archive/reconstruction_method.yaml | 32 + .../modules/slots/archive/record_count.yaml | 30 + .../modules/slots/archive/record_date.yaml | 28 + .../slots/archive/record_equivalent.yaml | 39 + .../modules/slots/archive/record_format.yaml | 43 + .../modules/slots/archive/record_holder.yaml | 27 + .../slots/archive/record_holder_note.yaml | 27 + .../modules/slots/archive/record_id.yaml | 30 + .../modules/slots/archive/record_note.yaml | 27 + .../slots/archive/record_set_type.yaml | 49 + .../slots/archive/record_timespan.yaml | 31 + .../modules/slots/archive/record_type.yaml | 46 + .../slots/archive/recording_available.yaml | 28 + .../modules/slots/archive/recording_url.yaml | 29 + .../slots/archive/recurrence_pattern.yaml | 34 + .../slots/archive/refers_or_referred_to.yaml | 74 + .../archive/refers_to_access_policy.yaml | 31 + .../slots/archive/refers_to_custodian.yaml | 34 + .../slots/archive/refers_to_legal_status.yaml | 40 + .../slots/archive/refers_to_person.yaml | 38 + .../slots/archive/refers_to_storage.yaml | 35 + .../linkml/modules/slots/archive/region.yaml | 46 + .../modules/slots/archive/region_code.yaml | 29 + .../slots/archive/region_confidence.yaml | 31 + .../slots/archive/region_language.yaml | 26 + .../modules/slots/archive/region_text.yaml | 26 + .../modules/slots/archive/region_type.yaml | 27 + .../slots/archive/register_abbreviation.yaml | 27 + .../modules/slots/archive/register_id.yaml | 42 + .../modules/slots/archive/register_name.yaml | 41 + .../slots/archive/register_name_local.yaml | 27 + .../modules/slots/archive/register_type.yaml | 49 + .../archive/registered_office_clause.yaml | 31 + .../archive/registers_or_registered.yaml | 22 + .../slots/archive/registration_authority.yaml | 57 + .../slots/archive/registration_date.yaml | 30 + .../slots/archive/registration_required.yaml | 28 + .../slots/archive/regulated_by_scheme.yaml | 44 + .../slots/archive/regulates_or_regulated.yaml | 80 + .../slots/archive/regulatory_authority.yaml | 68 + .../slots/archive/regulatory_body.yaml | 58 + .../linkml/modules/slots/archive/related.yaml | 27 + .../related_agenda.yaml} | 23 +- .../related_call.yaml} | 19 +- .../slots/archive/related_concept.yaml | 34 + .../modules/slots/archive/related_loan.yaml | 28 + .../slots/archive/related_project.yaml | 26 + .../slots/archive/related_type_name.yaml | 26 + .../slots/archive/related_type_note.yaml | 25 + .../archive/related_type_relationship.yaml | 27 + .../slots/archive/related_type_wikidata.yaml | 26 + .../modules/slots/archive/related_types.yaml | 36 + .../modules/slots/archive/relationship.yaml | 28 + .../modules/slots/archive/religion.yaml | 217 + .../slots/archive/religious_function.yaml | 61 + .../slots/archive/religious_tradition.yaml | 63 + .../slots/archive/remediation_note.yaml | 28 + .../slots/archive/remediation_required.yaml | 33 + .../modules/slots/archive/repertoire.yaml | 29 + .../archive/replaces_primary_location.yaml | 36 + .../slots/archive/report_document.yaml | 28 + .../modules/slots/archive/report_url.yaml | 28 + .../modules/slots/archive/reported_date.yaml | 26 + .../slots/archive/reporting_period_end.yaml | 28 + .../slots/archive/reporting_period_start.yaml | 28 + .../slots/archive/repository_software.yaml | 48 + .../modules/slots/archive/repository_url.yaml | 32 + .../archive/represents_or_represented.yaml | 16 + .../modules/slots/archive/request_date.yaml | 28 + .../modules/slots/archive/request_id.yaml | 35 + .../modules/slots/archive/requirement_id.yaml | 31 + .../slots/archive/requirement_text.yaml | 30 + .../slots/archive/requirement_type.yaml | 35 + .../slots/archive/requirement_unit.yaml | 30 + .../slots/archive/requirement_value.yaml | 39 + .../slots/archive/requires_appointment.yaml | 37 + .../requires_articles_at_registration.yaml | 26 + .../slots/archive/requires_dark_storage.yaml | 97 + .../slots/archive/requires_declaration.yaml | 29 + .../slots/archive/requires_dust_free.yaml | 79 + .../archive/requires_esd_protection.yaml | 114 + .../slots/archive/requires_or_required.yaml | 57 + .../slots/archive/requires_qualification.yaml | 26 + .../slots/archive/requires_registration.yaml | 35 + .../slots/archive/requires_research.yaml | 30 + .../requires_separate_registration.yaml | 33 + .../slots/archive/requires_uv_filter.yaml | 47 + .../archive/research_center_subtype.yaml | 37 + .../slots/archive/research_center_type.yaml | 46 + .../slots/archive/research_department.yaml | 31 + .../modules/slots/archive/research_focus.yaml | 41 + .../slots/archive/research_focus_area.yaml | 32 + .../archive/research_infrastructure.yaml | 39 + .../slots/archive/research_program.yaml | 106 + .../slots/archive/research_project.yaml | 38 + .../modules/slots/archive/research_value.yaml | 33 + .../slots/archive/reservation_required.yaml | 32 + .../slots/archive/resource_description.yaml | 29 + .../slots/archive/response_format.yaml | 39 + .../slots/archive/responsible_actor.yaml | 38 + .../slots/archive/responsible_agent.yaml | 31 + .../slots/archive/responsible_department.yaml | 33 + .../archive/responsible_legal_entity.yaml | 36 + .../slots/archive/restriction_category.yaml | 31 + .../archive/restriction_description.yaml | 26 + .../slots/archive/restriction_reason.yaml | 30 + .../slots/archive/restriction_type.yaml | 26 + .../slots/archive/results_expected_date.yaml | 26 + .../slots/archive/retention_period_year.yaml | 47 + .../slots/archive/retention_schedule.yaml | 47 + .../slots/archive/retention_tracking.yaml | 30 + .../slots/archive/retrieval_agent.yaml | 38 + .../slots/archive/retrieval_method.yaml | 26 + .../slots/archive/retrieval_timestamp.yaml | 34 + .../modules/slots/archive/retrieved_by.yaml | 26 + .../modules/slots/archive/retrieved_on.yaml | 57 + .../archive/return_condition_report_url.yaml | 28 + .../slots/archive/revenue_category.yaml | 29 + .../modules/slots/archive/review_date.yaml | 28 + .../modules/slots/archive/review_status.yaml | 57 + .../modules/slots/archive/revision_date.yaml | 27 + .../slots/archive/revision_number.yaml | 31 + .../slots/archive/rights_statement.yaml | 28 + .../slots/archive/rights_statement_url.yaml | 28 + .../modules/slots/archive/role_category.yaml | 33 + .../modules/slots/archive/role_end_date.yaml | 61 + .../linkml/modules/slots/archive/role_id.yaml | 26 + .../modules/slots/archive/role_name.yaml | 30 + .../slots/archive/role_name_local.yaml | 32 + .../slots/archive/role_start_date.yaml | 54 + .../modules/slots/archive/role_title.yaml | 48 + .../slots/archive/route_description.yaml | 30 + .../modules/slots/archive/route_id.yaml | 31 + .../modules/slots/archive/route_keyword.yaml | 31 + .../archive/route_relevance_to_heritage.yaml | 40 + .../modules/slots/archive/route_title.yaml | 30 + .../modules/slots/archive/row_number.yaml | 31 + .../modules/slots/archive/safeguarded_by.yaml | 39 + .../slots/archive/safeguarding_measure.yaml | 34 + .../slots/archive/safety_certification.yaml | 38 + .../modules/slots/archive/sales_activity.yaml | 45 + .../slots/archive/sampling_protocol.yaml | 13 + .../modules/slots/archive/scene_count.yaml | 31 + .../slots/archive/scene_types_detected.yaml | 48 + .../slots/archive/scheme_description.yaml | 28 + .../modules/slots/archive/scheme_id.yaml | 31 + .../modules/slots/archive/scheme_name.yaml | 28 + .../modules/slots/archive/scheme_type.yaml | 35 + .../modules/slots/archive/scheme_url.yaml | 31 + .../linkml/modules/slots/archive/scope.yaml | 26 + .../slots/archive/scope_description.yaml | 43 + .../modules/slots/archive/scope_exclude.yaml | 29 + .../modules/slots/archive/scope_include.yaml | 27 + .../scrape_method.yaml} | 30 +- .../slots/archive/scraped_timestamp.yaml | 31 + .../modules/slots/archive/script_type.yaml | 33 + .../modules/slots/archive/seasonal_hour.yaml | 35 + .../slots/archive/seating_capacity.yaml | 32 + .../modules/slots/archive/secondary.yaml | 27 + .../modules/slots/archive/section_id.yaml | 26 + .../slots/archive/secularization_status.yaml | 70 + .../modules/slots/archive/security_level.yaml | 44 + .../slots/archive/segment_confidence.yaml | 31 + .../slots/archive/segment_end_seconds.yaml | 26 + .../modules/slots/archive/segment_index.yaml | 40 + .../slots/archive/segment_language.yaml | 26 + .../slots/archive/segment_start_seconds.yaml | 26 + .../modules/slots/archive/segment_text.yaml | 42 + .../archive/sensory_heritage_domain.yaml | 59 + .../modules/slots/archive/sentence_count.yaml | 36 + .../modules/slots/archive/served_by.yaml | 27 + .../slots/archive/serves_finding_aid.yaml | 34 + .../slots/archive/serves_function_of.yaml | 44 + .../serves_or_served.yaml} | 28 +- .../modules/slots/archive/serves_staff.yaml | 29 + .../slots/archive/serves_visitors_only.yaml | 33 + .../modules/slots/archive/service_area.yaml | 40 + .../archive/service_area_description.yaml | 39 + .../slots/archive/service_area_id.yaml | 27 + .../slots/archive/service_area_name.yaml | 40 + .../slots/archive/service_area_type.yaml | 48 + .../slots/archive/service_offering.yaml | 35 + .../slots/archive/service_portfolio.yaml | 62 + .../slots/archive/services_offered.yaml | 35 + .../modules/slots/archive/setpoint_max.yaml | 29 + .../modules/slots/archive/setpoint_min.yaml | 29 + .../slots/archive/setpoint_tolerance.yaml | 29 + .../modules/slots/archive/setpoint_type.yaml | 29 + .../modules/slots/archive/setpoint_unit.yaml | 29 + .../modules/slots/archive/setpoint_value.yaml | 29 + .../modules/slots/archive/settlement.yaml | 35 + .../slots/archive/settlement_name.yaml | 27 + .../linkml/modules/slots/archive/sex.yaml | 31 + .../archive/shares_catalog_with_main.yaml | 33 + .../modules/slots/archive/shelf_mark.yaml | 29 + .../modules/slots/archive/shelf_number.yaml | 31 + .../slots/archive/shipping_method.yaml | 28 + .../modules/slots/archive/shop_type.yaml | 48 + .../modules/slots/archive/short_name.yaml | 88 + .../silence_total_seconds.yaml} | 31 +- .../modules/slots/archive/site_portfolio.yaml | 53 + .../linkml/modules/slots/archive/skill.yaml | 31 + .../modules/slots/archive/slot_fixes.yaml | 3062 + .../linkml/modules/slots/archive/slug.yaml | 30 + .../linkml/modules/slots/archive/snr_db.yaml | 39 + .../archive/social_media_example_profile.yaml | 29 + .../slots/archive/social_media_feature.yaml | 29 + .../social_media_heritage_use_case.yaml | 29 + .../social_media_platform_category.yaml | 33 + .../social_media_platform_description.yaml | 28 + .../archive/social_media_platform_name.yaml | 28 + .../social_media_platform_type_id.yaml | 24 + .../archive/social_media_profile_id.yaml | 30 + .../archive/social_media_url_pattern.yaml | 28 + .../archive/social_media_wikidata_id.yaml | 27 + .../modules/slots/archive/society_focus.yaml | 33 + .../slots/archive/sound_events_detected.yaml | 31 + .../{endorsement_source.yaml => source.yaml} | 18 +- .../modules/slots/archive/source_creator.yaml | 28 + .../modules/slots/archive/source_dataset.yaml | 44 + .../modules/slots/archive/source_date.yaml | 30 + .../modules/slots/archive/source_file.yaml | 34 + .../source_language_auto_detected.yaml | 36 + .../slots/archive/source_metadata.yaml | 31 + .../slots/archive/source_organization.yaml | 32 + .../modules/slots/archive/source_section.yaml | 30 + .../modules/slots/archive/source_type.yaml | 32 + .../modules/slots/archive/source_uri.yaml | 28 + .../modules/slots/archive/source_url.yaml | 64 + .../modules/slots/archive/source_video.yaml | 34 + .../slots/archive/source_video_url.yaml | 33 + .../slots/archive/space_description.yaml | 30 + .../modules/slots/archive/space_name.yaml | 30 + .../slots/archive/sparql_endpoint.yaml | 43 + .../slots/archive/spatial_resolution.yaml | 48 + .../modules/slots/archive/speaker_count.yaml | 38 + .../modules/slots/archive/speaker_id.yaml | 38 + .../speaker_label.yaml} | 35 +- .../slots/archive/special_collection.yaml | 45 + .../slots/archive/special_requirement.yaml | 29 + .../slots/archive/specialized_place.yaml | 29 + .../slots/archive/specification_url.yaml | 39 + .../slots/archive/specificity_agent.yaml | 35 + .../slots/archive/specificity_rationale.yaml | 33 + .../slots/archive/specificity_score.yaml | 56 + .../slots/archive/specificity_timestamp.yaml | 33 + .../slots/archive/specifies_or_specified.yaml | 57 + .../modules/slots/archive/specimen_count.yaml | 30 + .../modules/slots/archive/specimen_type.yaml | 104 + .../slots/archive/spectrum_procedure.yaml | 34 + .../slots/archive/speech_detected.yaml | 36 + .../slots/archive/speech_language.yaml | 36 + .../archive/speech_language_confidence.yaml | 52 + .../modules/slots/archive/speech_text.yaml | 31 + .../modules/slots/archive/square_meters.yaml | 34 + .../modules/slots/archive/staff_count.yaml | 34 + .../modules/slots/archive/staff_id.yaml | 36 + .../modules/slots/archive/staff_impact.yaml | 24 + .../modules/slots/archive/staff_role.yaml | 62 + .../slots/archive/standardized_name.yaml | 27 + .../slots/archive/standards_applied.yaml | 39 + .../slots/archive/standards_compliance.yaml | 34 + .../linkml/modules/slots/archive/start.yaml | 26 + .../slots/archive/start_of_the_start.yaml | 58 + .../modules/slots/archive/start_seconds.yaml | 40 + .../modules/slots/archive/start_time.yaml | 45 + .../slots/archive/started_at_time.yaml | 26 + ...aml => starts_or_started_at_location.yaml} | 40 +- .../slots/archive/statement_currency.yaml | 18 + .../slots/archive/statement_description.yaml | 18 + .../modules/slots/archive/statement_name.yaml | 18 + .../modules/slots/archive/statement_type.yaml | 18 + .../slots/archive/states_or_stated.yaml | 16 + .../slots/archive/stores_or_stored.yaml | 49 + .../archive/supersedes_or_superseded.yaml | 40 + .../archive/takes_or_took_comission.yaml | 45 + .../slots/archive/takes_or_took_place_at.yaml | 41 + .../slots/archive/temporal_extent.yaml | 54 + .../transmits_or_transmitted_through.yaml | 15 + .../modules/slots/archive/uses_or_used.yaml | 53 + .../slots/archive/uses_or_used_technique.yaml | 73 + .../slots/archive/warrants_or_warranted.yaml | 35 + .../slots/archive/was_acquired_through.yaml | 18 + .../modules/slots/archive/was_fetched_at.yaml | 18 + .../modules/slots/asserts_or_asserted.yaml | 46 - .../modules/slots/begin_of_the_begin.yaml | 79 - .../modules/slots/begin_of_the_end.yaml | 67 - .../slots/can_or_could_be_fulfilled_by.yaml | 37 - .../slots/can_or_could_be_retrieved_from.yaml | 34 - .../slots/catalogues_or_catalogued.yaml | 33 - .../slots/ceases_or_ceased_through.yaml | 28 - .../changes_or_changed_ownership_from.yaml | 47 - .../changes_or_changed_ownership_to.yaml | 47 - .../slots/changes_or_changed_through.yaml | 21 - .../slots/classifies_or_classified.yaml | 33 - .../modules/slots/collects_or_collected.yaml | 45 - .../slots/complies_or_complied_with.yaml | 50 - .../modules/slots/contains_or_contained.yaml | 39 - .../modules/slots/degree_of_certainty.yaml | 34 - .../slots/derives_or_derived_from.yaml | 86 - .../slots/documents_or_documented.yaml | 32 - .../slots/emphasizes_or_emphasized.yaml | 49 - .../modules/slots/end_of_the_begin.yaml | 71 - .../linkml/modules/slots/end_of_the_end.yaml | 79 - .../has_or_had_accessibility_feature.yaml | 53 - .../modules/slots/has_or_had_affiliation.yaml | 23 - .../linkml/modules/slots/has_or_had_age.yaml | 48 - .../modules/slots/has_or_had_alignment.yaml | 58 - .../linkml/modules/slots/has_or_had_area.yaml | 49 - .../modules/slots/has_or_had_asset.yaml | 57 - .../modules/slots/has_or_had_category.yaml | 42 - .../linkml/modules/slots/has_or_had_code.yaml | 59 - .../modules/slots/has_or_had_collection.yaml | 70 - .../modules/slots/has_or_had_content.yaml | 18 - .../slots/has_or_had_digital_presence.yaml | 68 - .../modules/slots/has_or_had_format.yaml | 87 - .../modules/slots/has_or_had_habitat.yaml | 28 - .../modules/slots/has_or_had_hypernym.yaml | 50 - .../modules/slots/has_or_had_identifier.yaml | 15 - .../modules/slots/has_or_had_label.yaml | 19 - .../modules/slots/has_or_had_language.yaml | 34 - .../modules/slots/has_or_had_level.yaml | 34 - .../modules/slots/has_or_had_method.yaml | 52 - .../modules/slots/has_or_had_methodology.yaml | 35 - .../linkml/modules/slots/has_or_had_note.yaml | 42 - .../modules/slots/has_or_had_output.yaml | 74 - .../modules/slots/has_or_had_owner.yaml | 51 - .../linkml/modules/slots/has_or_had_role.yaml | 89 - .../modules/slots/has_or_had_scope.yaml | 15 - .../modules/slots/has_or_had_score.yaml | 51 - .../modules/slots/has_or_had_symbol.yaml | 38 - ...s_or_had_technological_infrastructure.yaml | 56 - .../slots/has_or_had_time_interval.yaml | 50 - .../modules/slots/has_or_had_token.yaml | 46 - .../linkml/modules/slots/has_or_had_type.yaml | 20 - .../linkml/modules/slots/has_or_had_url.yaml | 57 - .../modules/slots/has_or_had_web_claim.yaml | 21 - .../slots/has_or_had_writing_system.yaml | 45 - .../modules/slots/includes_or_included.yaml | 38 - .../modules/slots/is_or_was_created_by.yaml | 76 - .../modules/slots/is_or_was_deployed_at.yaml | 45 - .../modules/slots/is_or_was_displayed_at.yaml | 30 - .../modules/slots/is_or_was_dissolved_by.yaml | 33 - .../modules/slots/is_or_was_listed_in.yaml | 31 - .../slots/is_or_was_responsible_for.yaml | 39 - .../modules/slots/is_or_was_retrieved_at.yaml | 23 - .../modules/slots/is_or_was_succeeded_by.yaml | 52 - .../participates_or_participated_in.yaml | 30 - scripts/add_slot_aliases.py | 134 + scripts/migrate_slots.py | 171 + 6045 files changed, 98104 insertions(+), 180400 deletions(-) create mode 100644 .opencode/LINKML_EDITING_RULES.md rename .opencode/rules/{slot-naming-convention-rico-style.md => DEPRECATED-slot-naming-convention-rico-style.md} (96%) create mode 100644 .opencode/rules/multilingual-support-requirements.md create mode 100644 .opencode/rules/verified-ontology-mapping-requirements.md create mode 100644 data/ontology/ontology.zip delete mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/AcquisitionBudget.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/AlternativeName.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/DiarizationSegment.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/DigitizationBudget.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/EADIdentifier.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/ImagingEquipment.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/LEIIdentifier.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/MusicSegment.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/Series.yaml rename frontend/public/schemas/20251121/linkml/modules/classes/{SpecificityAnnotation.yaml => SpecificityScore.yaml} (68%) delete mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/SpeechSegment.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/classes/StorageFacility.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/enums/AttestationConfidenceEnum.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/accept.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/affect.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/aggregate_from.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/allocate.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/allow.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/analyze.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/apply_to.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/assert.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/begin_of_the_begin.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/begin_of_the_end.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/categorized_as.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/ceased_through.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/changed_through.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/collect.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/fulfilled_by.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/has_score.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/has_url.yaml create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/identified_by.yaml rename schemas/20251121/linkml/modules/slots/has_or_had_reply.yaml => frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/replied_to.yaml (55%) create mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_from.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/ANNOTATION_TO_SLOT_MIGRATION.md delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/accepts_or_accepted.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/aggregates_or_aggregated_from.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/allows_or_allowed.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/analyzes_or_analyzed.yaml rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/api_ver.yaml (100%) delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/applies_or_applied_to.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/asserts_or_asserted.yaml rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/basionym_authority.yaml (100%) delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/begin_of_the_begin.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/begin_of_the_end.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/can_or_could_be_fulfilled_by.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/can_or_could_be_retrieved_from.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/ceases_or_ceased_through.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/changes_or_changed_through.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/collects_or_collected.yaml rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/end_seconds.yaml (100%) rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/end_time.yaml (100%) rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/field_number.yaml (100%) rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/foo_bar.yaml (100%) rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/habitat_description.yaml (100%) rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/has_api_version.yaml (100%) rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/has_architectural_style.yaml (100%) rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/has_archive_path.yaml (100%) rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/has_heritage_type.yaml (100%) rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/has_or_had_accreditation.yaml (100%) delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_category.yaml rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/has_or_had_custodian_name.yaml (100%) rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/has_or_had_custodian_observation.yaml (100%) delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_identifier.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_reply.yaml delete mode 100644 frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_url.yaml rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/is_or_was_recombined.yaml (100%) rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/nomenclatural_code.yaml (100%) rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/profile_url.yaml (100%) rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/protocol_name.yaml (100%) rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/protocol_version.yaml (100%) rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/provider.yaml (100%) rename {schemas => frontend/public/schemas}/20251121/linkml/modules/slots/sampling_protocol.yaml (100%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/access_restricted.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/accessioned_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/accumulated_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/accuracy.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/acquired_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/acquired_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/active_since.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/administered_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/affected_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/affiliated_with.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/aggregated_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/aligned_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/allocated_budget.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/allocated_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/allocated_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/allocated_to.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/alternative_form_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/amended_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/appended_with.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/applicable_in.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/apply_to.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/appreciated.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/approved_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/approved_on.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/archived_as.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/archived_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/archived_in.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/assert.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/asserted_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/asserted_on.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/assessed_on.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/associated_with.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/available.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/based_on.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/begin_of_the_begin.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/begin_of_the_end.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/born_on.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/branch_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/cancelled_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/cataloged_in.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/catalogue.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/categorized_as.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/caused_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/ceased_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/ceased_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/change_ownership_from.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/change_ownership_to.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/changed_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/checked_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/classified_as.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/classify.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/collect.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/collection_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/commented_on.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/compatible_with.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/comply_with.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/conducted_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/contain.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/contain_collection.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/contain_storage_unit.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/cover_place.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/created_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/created_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/curated_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/current.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/decommissioned_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/define.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/degree_of_certainty.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/department_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/deployed_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/deployed_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/deposited_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/derive_from.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/describe.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/designed_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/diarized.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/dismissed.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/displayed_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/dissolved_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/document.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/documented_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/documented_in.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/due_on.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/edited_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/effective_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/emphasize.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/employed_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/encompassed_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/end_of_the_begin.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/end_of_the_end.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/equivalent_to.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/established_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/exclude.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/exhibit.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/exhibited_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/expired_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/exposed_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/extended.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/extracted_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/founded_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/fulfilled_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/generated_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/governed_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_abbreviation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_access_frequency.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_access_management.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_access_policy.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_accessibility_feature.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_accreditation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_activity.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_address.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_administration.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_administration_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_administration_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_administrative_context.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_administrative_function.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_admission_fee.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_affected_territory.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_affiliation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_age.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_agent.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_alignment.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_alternative_observed_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_altitude.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_amendment_history.yaml (95%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_animal_species_count.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_annex_description.yaml (95%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_annex_name.yaml (95%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_annex_reason.yaml (95%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_annotation.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_appellation_language.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_appellation_type.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_appellation_value.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_applicable_country.yaml (95%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_application_deadline.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_application_opening_date.yaml (93%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_appraisal_note.yaml (95%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_approval_date.yaml (95%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_archdiocese_name.yaml (94%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_architect.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_archival_reference.yaml (94%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_archive.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_archive_description.yaml (95%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_archive_memento_uri.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_archive_name.yaml (96%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_archive_search_score.yaml (94%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_arrangement.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_arrangement_level.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_arrangement_note.yaml (95%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_articles_archival_stage.yaml (96%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_articles_document_format.yaml (93%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_articles_document_url.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_articles_of_association.yaml (97%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_artwork_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_assessment.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_asset.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_audio.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_author.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_author_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_authority.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_auxiliary_entities.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_auxiliary_platform.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_base.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_beneficiary.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_benefit.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_boundary.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_branch.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_budget.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_canonical_form.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_capacity.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_caption.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_carrier.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_chapter.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_citation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_city_code.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_code.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_cofunding.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_collection.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_collection_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_component.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_condition.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_confidence.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_confidence_measure.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_contact_details.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_contact_information.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_contact_point.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_content.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_contributor.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_conversion_rate.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_coordinates.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_creator.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_currency.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_custodian.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_custodian_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_custodian_observation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_data_quality_notes.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_degree.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_detected.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_device.yaml rename schemas/20251121/linkml/modules/slots/{has_or_had_digital_platform.yaml => 20260202_matang/has_digital_platform.yaml} (61%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_digital_presence.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_direction.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_document.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_documentation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_domain.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_drawer.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_edition.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_email_address.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_embargo_end_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_embargo_reason.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_encoding.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_endowment_draw.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_endpoint.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_engagement_metric.yaml rename schemas/20251121/linkml/modules/slots/{archive/environmental_control.yaml => 20260202_matang/has_environmental_control.yaml} (94%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_equipment.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_equipment_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_example.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_exhibition.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_exhibition_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_expense.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_expertise_in.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_extent_text.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_facility.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_feature.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_fee.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_field.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_file_location.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_file_path.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_fixity.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_flag.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_focus.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_fond.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_format.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_frequency.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_function.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_funded.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_generate.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_geofeature.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_geographic_extent.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_geographic_subdivision.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_geometric_extent.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_geometry.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_habitat.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_hands_on_facility.yaml (94%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_head.yaml rename schemas/20251121/linkml/modules/slots/{has_or_had_height.yaml => 20260202_matang/has_height.yaml} (55%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_homepage.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_http_status.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_hypernym.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_hyponym.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_image.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_imaging_equipment.yaml (95%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_index_number.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_index_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_inscription.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_interface.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_inventory_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_investment.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_involved_actor.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_iso_639_1.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_iso_639_3.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_iso_code.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_key_contact.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_label.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_language.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_level.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_liability.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_link.yaml (96%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_loading_dock.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_local_collection.yaml (95%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_location.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_main_part.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_mandate.yaml rename schemas/20251121/linkml/modules/slots/{has_or_had_metadata.yaml => 20260202_matang/has_material_type.yaml} (56%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_mean.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_measurement.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_measurement_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_measurement_unit.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_media_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_medium.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_member.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_metadata.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_method.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_methodology.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_michelin_star.yaml (94%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_mode.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_model.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_name.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_narrower_instance.yaml (96%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_navigation_link.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_net_asset.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_notation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_numeric_value.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_objective.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_observation.yaml (97%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_opening_hour.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_operational_archive.yaml (95%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_operational_unit.yaml (96%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_organization_profile.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_organization_status.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_organizer.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_origin.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_output.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_overview.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_owner.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_parent.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_participated_in.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_percentage.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_period.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_person_name.yaml (99%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/has_person_observation.yaml (98%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_place.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_policy.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_post_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_price.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_primary_platform.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_profile.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_provenance.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_provenance_path.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_publication_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_publisher.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_qualifier.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_quantity.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_range.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_rank.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_rate.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_rating.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_rationale.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_reason.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_reference.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_reply.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_requirement.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_resolution.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_responsibility.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_restriction.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_revenue.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_risk.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_roadmap.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_role.yaml rename schemas/20251121/linkml/modules/slots/{has_or_had_origin.yaml => 20260202_matang/has_schedule.yaml} (57%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_schema.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_scheme.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_scope.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_score.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_secondary_label.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_secondary_platform.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_section.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_segment.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_sensitivity_level.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_sequence_index.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_series.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_service.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_service_area.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_service_details.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_setpoint.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_significance.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_size.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_social_media_profile.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_source.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_specification.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_staff.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_staff_member.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_standard.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_status.yaml rename schemas/20251121/linkml/modules/slots/{archive/governance_structure.yaml => 20260202_matang/has_structure.yaml} (88%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_style.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_sub_collection.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_subject.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_subtype.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_summary.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_supplier.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_symbol.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_technological_infrastructure.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_text.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_threshold.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_thumbnail.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_tier.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_time_interval.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_timestamp.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_title.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_token.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_tolerance.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_tool.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_topic.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_transformation_metadata.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_treatment.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_treshold.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_type_code.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_unit.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_uri.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_use_case.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_user_category.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_value.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_variant_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_venue.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_verbatim_value.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_version.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_video.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_web_claim.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_web_page.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/has_width.yaml rename schemas/20251121/linkml/modules/slots/{has_or_had_head.yaml => 20260202_matang/headed_by.yaml} (78%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/heritage_holding.yaml (97%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/higher_classification.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/historic_building_description.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/historic_building_id.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive/governance_authority.yaml => 20260202_matang/hold_authority.yaml} (94%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/identified_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/identified_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/implemented_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/in_area.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/in_script.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/include.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/included_in.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/indexed.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/instance_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/instantiated_as.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/instantiated_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/involved_in.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/is_location_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/last_updated_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/listed_in.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/located_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/located_in.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/located_within.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/managed_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/member_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/approximate.yaml rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/archive_path.yaml (100%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/basionym_authority.yaml rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/connection_heritage_relevant.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/connection_heritage_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/connection_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/connection_linkedin_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/connection_location.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/connection_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/connection_organization.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/connections_by_heritage_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/connections_extracted.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/connections_text.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/connectivity_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/conservation_breeding.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/conservation_history.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/conservation_lab.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/conservation_note.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/conservation_specialization.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/conservation_status.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/conservator.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/conservator_affiliation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/constituent_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/construction_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/construction_date_precision.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/consumes_or_consumed.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/contact.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/contact_point.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/contains_storage.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/content.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/content_block.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/content_category.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/content_changed.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/content_hash.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/content_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/content_origin.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/content_title.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/content_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/content_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/contents_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/contributes_or_contributed.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/contributes_to.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/contribution_start_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/contributor.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/contributor_code.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/conversion_source_population.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/conversion_target_action.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/conversion_type_label.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/coordinate_reference_system.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/coordinates.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/copy_note.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/copy_number.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/corporate_integration.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/cost.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/cost_currency.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/cost_usd.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/country.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/country_code.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/country_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/courier_detail.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/courier_required.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/court_types_covered.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/cover_image_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/cover_material.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/cover_or_covered_subregion.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/coverage_area.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/covers_country.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/covers_full_video.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/crawler_version.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/created.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/created_by_project.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/created_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/creating_agency.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/creating_function.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/creating_organization.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/creation_place.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/creation_timespan.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/creator.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/creator_role.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/credentials_required.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/css_selector.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/cuisine_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/cultural_context.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/cultural_focus_area.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/cultural_protocol_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/curated_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/curated_holding.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/currency.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/currency_code.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/currency_symbol.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/current_exhibition.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/current_item_count.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/current_keeper.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/current_location.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/current_use.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/current_utilization_percent.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/custodial_history.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/custodian.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/custodian_only.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/custodian_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/custodian_type_broader.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/custodian_type_narrower.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/custodian_type_related.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/custody_history.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/custody_received_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/data_repository.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/description_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/draws_or_drew_opinion.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/dutch_context.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/encompasses_or_encompassed.yaml (100%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/end_seconds.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/end_time.yaml rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/estimates_or_estimated.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/example_location.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/example_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/example_note.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/example_wikidata_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/expires_on_expired_at.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/exposes_or_exposed.yaml (100%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/field_number.yaml rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/filters_or_filtered.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/final_of_the_final.yaml (100%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/foo_bar.yaml rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/generates_or_generated.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/grants_or_granted.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/grants_or_granted_access_through.yaml (100%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/habitat_description.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang/new}/has_accumulation_end_date.yaml (95%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang/new}/has_accumulation_start_date.yaml (95%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/has_admin_staff_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/has_api_version.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/has_architectural_style.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/has_archive_path.yaml rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/has_audio_quality_score.yaml (100%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/has_heritage_type.yaml rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/has_locker.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/has_microfilm_reader.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/has_supervised_handling.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/has_wifi.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/historic_garden_designation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/hold_or_held_record_set_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/identifies_or_identified.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/identifies_or_identified_as.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/implements_or_implemented.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/imposes_or_imposed.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/inbound_from.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/includes_bounding_box.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/includes_handwriting.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/includes_music_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/includes_object_tracking.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/includes_segmentation_mask.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/includes_sound_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/includes_speaker.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/includes_speaker_identification.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/includes_timestamp.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/indicates_or_indicated.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/industry_benchmark_high.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/industry_benchmark_low.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/inference_provenance.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/info_session_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/initial.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/initial_of_the_initial.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/innovation_budget.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/inscription.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/installation_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/installed_at_place.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/instance_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/institution_function.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/institution_linkedin_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/institution_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/insurance_currency.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/insurance_provider.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/insurance_value.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/intangible_heritage_subtype.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/integrates_or_integrated.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/interlibrary_loan.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/internal_funding.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/international.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/inventory_number.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/inventory_web_address.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/involves_or_involved.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_accessible.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_accredited.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_active.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_annex_of_reading_room.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_approximate.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_auxiliary_of_place.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_auxiliary_of_platform.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_background.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_branch_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_branch_of_authority.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_closed_caption.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_current_version.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_deceased.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_embeddable.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_estimate.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_heritage_relevant.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_historical_boundary.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_inferred.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_leased.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_legal_status_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_licensed_content.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_made_for_kid.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_mandatory.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_official_assessment.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_official_content.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_open_to_public.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_overlapping.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_part_of_complex.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_permanent.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_permitted.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_primary_digital_presence.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_public_facing.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_rebuilding.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_recognized.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_recurring.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_sdh.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_sub_guide.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_temporary.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_type_specimen.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/is_verified.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/isbn.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/isbn_13.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/isil.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/iso_3166_2_code.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/iso_standard.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/iso_standard_reference.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/issn.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/issued_call.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/issuing_organisation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/item.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/item_returned.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/iucn_status.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/jurisdiction.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/jurisdiction_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/jurisdiction_level.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/jurisdiction_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/justification.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/key_distinction.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/keyframe_extraction.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/keyword.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/kien_registration_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/kien_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/knowledge_transmission.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/label_de.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/label_es.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/label_fr.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/label_it.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/label_nl.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/label_pt.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/lacks_or_lacked.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/landmark_confidence.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/landmark_geonames_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/landmark_label.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/landmark_segment.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/landmark_wikidata_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/language.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/language_code.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/language_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/language_raw.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/languages_detected.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/languages_raw.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/last_modified.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/latency_ms.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/latitude.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/launch_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/lease_expiry.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/legacy_planning.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/legal_basis.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/legal_entity_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/legal_form.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/legal_jurisdiction.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/legal_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/legal_note.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/legal_provenance_note.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/legal_responsibility_basis.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/legal_responsibility_end_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/legal_responsibility_start_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/legal_status.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/legal_system_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/lender.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/lender_contact.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/lending_policy.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/level_value.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/library_catalog_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/library_search_score.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/library_subtype.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/license.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/life_stage.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/lifecycle_phase_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/light_max_lux.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/like_count.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/likelihood_confidence.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/likelihood_factor.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/likelihood_level.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/likelihood_score.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/likely_whatsapp_proficient.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/link_context.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/link_count.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/link_rationale.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/link_text.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/link_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/link_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/linked_class_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/linked_data.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/linked_data_access.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/linked_data_export.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/linked_to_collection.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/linkedin_profile_path.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/linkedin_profile_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/linkedin_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/list_item.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/literal_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/live_broadcast_content.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/living_collection.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/llm_response.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/loan_agreement_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/loan_end_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/loan_history.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/loan_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/loan_note.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/loan_number.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/loan_purpose.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/loan_start_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/loan_status.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/loan_timespan.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/loan_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/locality.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/located_at.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/location.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/location_browse_score.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/location_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/logo_confidence.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/logo_label.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/logo_organization.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/logo_segment.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/long_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/longitude.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/lot_number.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/maintained_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/maintenance_schedule.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/major_city.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/major_research_project.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/managed_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/manages_collection.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/manages_or_managed.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/managing_unit.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/mandate.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/marginalia.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/martyred.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/material_composition.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/material_specialization.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/materials_used.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/max_annual_light_exposure.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/max_group_size.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/max_light_lux.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/max_likelihood_score.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/maximal_of_maximal.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/maximum_amount.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/measurement_data.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/measurement_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/measurement_method.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/measures_or_measured.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/medium.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/member_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/member_organization_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/member_organization_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/membership_criteria.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/membership_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/membership_required.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/membership_role.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/membership_size.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/membership_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/metadata_standard.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/method.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/methodology_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/metrics_observed_at.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/metrics_observed_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/michelin_star.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/minimal_of_minimal.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/minimum_amount.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/minimum_donation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/minimum_partner.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/mission_statement.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/mixed_governance_structure.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/model.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/model_architecture.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/model_provider.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/model_task.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/model_version.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/modern_place_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/modified.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/monitoring_platform.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/monitoring_platform_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/monument_number.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/motivation_type_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/motivation_type_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/motivation_type_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/multilingual_label.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/museum_search_score.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/museum_subtype.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/museum_type_classification.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/music_confidence.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/music_detected.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/music_end_seconds.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/music_genre.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/music_genres_detected.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/music_segment_confidence.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/music_start_seconds.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/music_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/mutual_connections_text.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/name_authority.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/name_language.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/name_local.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/name_specification.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/name_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/name_validity_period.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/narrower_concept.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/narrower_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/nazi_era_flag.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/nesting_level.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/network_analysis.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/nl.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/no_fabrication.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/noise_floor_db.yaml (100%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/nomenclatural_code.yaml rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/nonprofit_subtype.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/notable_examples.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/notarial_deed_number.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/notary_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/notary_office.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/note.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/note_content.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/note_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/note_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/numeric_value.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/oai_pmh_endpoint.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/object_alternate_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/object_classes_detected.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/object_collection_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/object_confidence.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/object_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/object_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/object_label.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/object_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/object_ref.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/object_segment.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/object_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/object_wikidata_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/objective.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/objects_added.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/objects_affected.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/objects_count.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/objects_removed.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/observation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/observation_context.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/observation_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/observation_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/observation_note.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/observation_period.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/observation_ref.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/observation_source.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/observed_entity.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/observed_in.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/observed_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/observer_affiliation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/observer_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/observer_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/occupation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/occurs_or_occurred_at.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/oclc_number.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/offered_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/offers_donation_scheme.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/offers_or_offered.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/offers_or_offered_access.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/official_institution_subtype.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/online_shop.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/open_source.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/opening_hour.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/operated_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/operates_or_operated.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/operating_budget.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/operating_hour.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/operational_status.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/operator.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/organization_legal_form.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/organization_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/organization_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/organizational_change_score.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/organizational_level.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/organizational_mission.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/organizational_principle.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/organizational_principle_uri.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/organizational_structure.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/organized_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/organizing_body.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/origin_location.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/origin_period.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/original_end_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/originates_or_originated_from.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/osm_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/outbound_condition_report_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/outbound_to.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/outdoor_seating_capacity.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/outdoor_site_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/outdoor_site_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/outdoor_site_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/outdoor_site_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/overall_confidence.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/overall_status.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/oversight_jurisdiction.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/ownership_stamp.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/page.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/page_count.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/page_section.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/page_title.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/paragraph_count.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/parallel_title.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/parent_corporation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/parent_department.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/parent_programme.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/parent_society.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/parent_unit.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/part_of_collection.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/part_of_custodian_collection.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/part_of_event.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/part_of_facility.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/part_of_storage.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/part_of_zone.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/part_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/participant_count.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/participating_custodian.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/participating_institution.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/particulate_max.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/partner_institution.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/partnership_model.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/partnership_required.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/patronym.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/payment_frequency.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/pdf_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/performance_datetime.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/performance_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/performance_duration.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/performance_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/performance_location.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/performance_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/performance_note.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/performance_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/performance_repertoire.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/performance_venue.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/performed_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/performer.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/period.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/period_covered.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/period_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/period_end.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/period_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/period_start.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/permanent_location.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/permission_required.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/person_claim_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/person_claim_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/person_claim_value.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/person_html_file.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/person_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/person_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/person_research_score.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/personal_collection_subtype.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/personnel_budget.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/pest_management_required.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/photograph.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/physical_location.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/pipeline_stage.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/place_custodian_ref.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/place_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/place_designation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/place_language.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/place_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/place_note.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/place_of_publication.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/place_source_text.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/place_specificity.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/planned_closure_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/planned_end.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/planned_start.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/plant_species_count.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/platform_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/platform_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/platform_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/platform_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/platform_purpose.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/platform_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/platform_type_category.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/platform_type_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/platform_type_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/platform_type_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/platform_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/policy_authority.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/policy_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/policy_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/policy_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/policy_review_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/policy_text.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/portal_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/portal_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/portal_language.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/portal_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/portal_status.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/portal_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/portal_type_category.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/portal_type_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/portal_type_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/portal_type_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/portal_typical_domain.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/portal_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/poses_or_posed_condition.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/post_count.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/post_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/post_type_activity_streams_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/post_type_category.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/post_type_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/post_type_ephemeral.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/post_type_heritage_use_case.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/post_type_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/post_type_max_duration.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/post_type_media_format.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/post_type_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/post_type_schema_org_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/post_type_supported_platform.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/post_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/postal_code.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/posted_by_profile.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/power_source.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/powers_platform.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/practitioner_community.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/preceding_activity.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/preferred_label.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/preferred_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/preparation_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/prepared_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/preservation_approach.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/preservation_budget.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/preservation_event_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/preservation_level.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/preservation_method.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/preservation_note.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/preservation_purpose.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/preservation_requirement.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/preservation_standard.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/preservative_detail.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/preserves_or_preserved.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/previous_observation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/price.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/price_currency.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/price_text.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/primary.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/primary_audio_event_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/primary_heritage_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/primary_register.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/primary_speaker.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/primary_system.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/printer_publisher.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/priority.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/privacy_note.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/processing_completed_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/processing_duration_seconds.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/processing_priority.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/processing_started_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/processing_status.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/production_method.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/proficiency_level.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/profile_data.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/profile_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/profile_image_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/profile_linkedin_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/profile_location.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/profile_name.yaml (100%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/profile_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/protocol_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/protocol_version.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/provider.yaml rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/provides_or_provided.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/provides_or_provided_provenance_to.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/provides_or_provided_to.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/publishes_or_published.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/rate_value.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/rationale.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/raw_subtitle_content.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/reading_room_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/reason_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/reasoning_content.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/receives_or_received.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/recognized_person_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/recommendation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/reconstruction_method.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/record_count.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/record_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/record_equivalent.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/record_format.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/record_holder.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/record_holder_note.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/record_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/record_note.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/record_set_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/record_timespan.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/record_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/recording_available.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/recording_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/recurrence_pattern.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/refers_or_referred_to.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/refers_to_access_policy.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/refers_to_custodian.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/refers_to_legal_status.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/refers_to_person.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/refers_to_storage.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/region.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/region_code.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/region_confidence.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/region_language.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/region_text.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/region_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/register_abbreviation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/register_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/register_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/register_name_local.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/register_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/registered_office_clause.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/registers_or_registered.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/registration_authority.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/registration_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/registration_required.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/regulated_by_scheme.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/regulates_or_regulated.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/regulatory_authority.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/regulatory_body.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/related.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/related_agenda.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/related_call.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/related_concept.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/related_loan.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/related_project.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/related_type_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/related_type_note.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/related_type_relationship.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/related_type_wikidata.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/related_types.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/relationship.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/religion.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/religious_function.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/religious_tradition.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/remediation_note.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/remediation_required.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/repertoire.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/replaces_primary_location.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/report_document.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/report_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/reported_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/reporting_period_end.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/reporting_period_start.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/repository_software.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/repository_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/represents_or_represented.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/request_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/request_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requirement_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requirement_text.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requirement_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requirement_unit.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requirement_value.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requires_appointment.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requires_articles_at_registration.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requires_dark_storage.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requires_declaration.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requires_dust_free.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requires_esd_protection.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requires_or_required.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requires_qualification.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requires_registration.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requires_research.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requires_separate_registration.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/requires_uv_filter.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/research_center_subtype.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/research_center_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/research_department.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/research_focus.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/research_focus_area.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/research_infrastructure.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/research_program.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/research_project.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/research_value.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/reservation_required.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/resource_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/response_format.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/responsible_actor.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/responsible_agent.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/responsible_department.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/responsible_legal_entity.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/restriction_category.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/restriction_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/restriction_reason.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/restriction_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/results_expected_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/retention_period_year.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/retention_schedule.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/retention_tracking.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/retrieval_agent.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/retrieval_method.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/retrieval_timestamp.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/retrieved_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/retrieved_on.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/return_condition_report_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/revenue_category.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/review_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/review_status.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/revision_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/revision_number.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/rights_statement.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/rights_statement_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/role_category.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/role_end_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/role_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/role_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/role_name_local.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/role_start_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/role_title.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/route_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/route_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/route_keyword.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/route_relevance_to_heritage.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/route_title.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/row_number.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/safeguarded_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/safeguarding_measure.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/safety_certification.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/sales_activity.yaml (100%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/new/sampling_protocol.yaml rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/scene_count.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/scene_types_detected.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/scheme_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/scheme_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/scheme_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/scheme_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/scheme_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/scope.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/scope_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/scope_exclude.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/scope_include.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/scrape_method.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/scraped_timestamp.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/script_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/seasonal_hour.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/seating_capacity.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/secondary.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/section_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/secularization_status.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/security_level.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/segment_confidence.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/segment_end_seconds.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/segment_index.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/segment_language.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/segment_start_seconds.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/segment_text.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/sensory_heritage_domain.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/sentence_count.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/served_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/serves_finding_aid.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/serves_function_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/serves_or_served.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/serves_staff.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/serves_visitors_only.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/service_area.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/service_area_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/service_area_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/service_area_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/service_area_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/service_offering.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/service_portfolio.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/services_offered.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/setpoint_max.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/setpoint_min.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/setpoint_tolerance.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/setpoint_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/setpoint_unit.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/setpoint_value.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/settlement.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/settlement_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/sex.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/shares_catalog_with_main.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/shelf_mark.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/shelf_number.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/shipping_method.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/shop_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/short_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/silence_total_seconds.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/site_portfolio.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/skill.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/slot_fixes.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/slug.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/snr_db.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/social_media_example_profile.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/social_media_feature.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/social_media_heritage_use_case.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/social_media_platform_category.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/social_media_platform_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/social_media_platform_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/social_media_platform_type_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/social_media_profile_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/social_media_url_pattern.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/social_media_wikidata_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/society_focus.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/sound_events_detected.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/source.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/source_creator.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/source_dataset.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/source_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/source_file.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/source_language_auto_detected.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/source_metadata.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/source_organization.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/source_section.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/source_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/source_uri.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/source_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/source_video.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/source_video_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/space_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/space_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/sparql_endpoint.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/spatial_resolution.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/speaker_count.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/speaker_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/speaker_label.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/special_collection.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/special_requirement.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/specialized_place.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/specification_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/specificity_agent.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/specificity_rationale.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/specificity_score.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/specificity_timestamp.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/specifies_or_specified.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/specimen_count.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/specimen_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/spectrum_procedure.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/speech_detected.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/speech_language.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/speech_language_confidence.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/speech_text.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/square_meters.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/staff_count.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/staff_id.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/staff_impact.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/staff_role.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/standardized_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/standards_applied.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/standards_compliance.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/start.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/start_of_the_start.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/start_seconds.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/start_time.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/started_at_time.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/starts_or_started_at_location.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/statement_currency.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/statement_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/statement_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/statement_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/states_or_stated.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/stores_or_stored.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/supersedes_or_superseded.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/takes_or_took_comission.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/takes_or_took_place_at.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/temporal_extent.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/transmits_or_transmitted_through.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/uses_or_used.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/uses_or_used_technique.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/warrants_or_warranted.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/was_acquired_through.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => 20260202_matang/new}/was_fetched_at.yaml (100%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/observed_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/opened_on.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/operated_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/originate.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/owned_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/part_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/part_of_archive_series.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/part_of_total.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/participate_in.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/participated_in.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/platform_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/position.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/program_activity.yaml (97%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/programme_period.yaml (98%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/programme_year.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/programming_language.yaml (95%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/programs_offered.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/prompt_token.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/pronoun.yaml (99%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/protocol.yaml (96%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/protocol_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/protocol_version.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/provenance.yaml (95%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/provides_access_to.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/public_access.yaml (97%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/public_education.yaml (98%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/publication_output.yaml (95%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/publication_place.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/publication_series_name.yaml (94%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/published.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/published_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/published_by.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/publishes_to.yaml (95%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/purpose.yaml (96%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/purpose_clause.yaml (95%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/quantity_date.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/quantity_type.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/quantity_unit.yaml (94%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/quantity_value.yaml (94%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/recombined.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/related_to.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/replied_to.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/represented_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/required.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/responsible_for.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_from.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/returned.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/revision_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/signed_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/signed_on.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/stored_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/sub_collection_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/suborganization_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/succeeded_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/superseded_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/symbolize.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/symbolized_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/targeted_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/tax_deductible.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/temperature_target.yaml (94%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/temporarily_located_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/threatened_by.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/track_id.yaml (95%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/transferred.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/transferred_to.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/triggered_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/used_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/used_in.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/verified_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/visible_in.yaml rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/was_derived_from.yaml (96%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/was_generated_by.yaml (95%) rename schemas/20251121/linkml/modules/slots/{archive => 20260202_matang}/was_last_updated_at.yaml (95%) create mode 100644 schemas/20251121/linkml/modules/slots/20260202_matang/webarchived_at.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/applies_or_applied_to.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/administrative_context.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/archive_path.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/based_on_claim.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/basionym_authority.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/connection_heritage_relevant.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/connection_heritage_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/connection_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/connection_linkedin_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/connection_location.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/connection_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/connection_organization.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/connections_by_heritage_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/connections_extracted.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/connections_text.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/connectivity_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/conservation_breeding.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/conservation_history.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/conservation_lab.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/conservation_note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/conservation_specialization.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/conservation_status.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/conservator.yaml rename frontend/public/schemas/20251121/linkml/modules/slots/affects_or_affected.yaml => schemas/20251121/linkml/modules/slots/archive/conservator_affiliation.yaml (60%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/constituent_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/construction_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/construction_date_precision.yaml rename frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_score.yaml => schemas/20251121/linkml/modules/slots/archive/consumes_or_consumed.yaml (53%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/contact.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/contact_point.yaml rename schemas/20251121/linkml/modules/slots/{ => archive}/contains_or_contained_collection.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/contains_or_contained_contains_unit.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/contains_or_contained_covers_settlement.yaml (100%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/contains_storage.yaml rename frontend/public/schemas/20251121/linkml/modules/slots/specificity_annotation.yaml => schemas/20251121/linkml/modules/slots/archive/content.yaml (54%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/content_block.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/content_category.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/content_changed.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/content_hash.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/content_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/content_origin.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/content_title.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/content_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/content_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/contents_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/contributes_or_contributed.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/contributes_to.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/contribution_start_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/contributor.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/contributor_code.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/conversion_source_population.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/conversion_target_action.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/conversion_type_label.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/coordinate_reference_system.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/coordinates.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/copy_note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/copy_number.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/corporate_integration.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/cost.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/cost_currency.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/cost_usd.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/country.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/country_code.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/country_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/courier_detail.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/courier_required.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/court_types_covered.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/cover_image_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/cover_material.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/cover_or_covered_subregion.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/coverage_area.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/covers_country.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/covers_full_video.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/crawler_version.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/created.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/created_by_project.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/created_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/creating_agency.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/creating_function.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/creating_organization.yaml rename schemas/20251121/linkml/modules/slots/{has_or_had_altitude.yaml => archive/creation_place.yaml} (65%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/creation_timespan.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/creator.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/creator_role.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/credentials_required.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/css_selector.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/cuisine_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/cultural_context.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/cultural_focus_area.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/cultural_protocol_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/curated_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/curated_holding.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/currency.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/currency_code.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/currency_symbol.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/current_exhibition.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/current_item_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/current_keeper.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/current_location.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/current_use.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/current_utilization_percent.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/custodial_history.yaml rename schemas/20251121/linkml/modules/slots/{has_or_had_example.yaml => archive/custodian.yaml} (58%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/custodian_only.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/custodian_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/custodian_type_broader.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/custodian_type_narrower.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/custodian_type_related.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/custody_history.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/custody_received_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/data_repository.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/date.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/description_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/draws_or_drew_opinion.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/dutch_context.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/encompasses_or_encompassed.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/estimates_or_estimated.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/example_location.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/example_name.yaml rename schemas/20251121/linkml/modules/slots/archive/{full_name.yaml => example_note.yaml} (68%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/example_wikidata_id.yaml rename schemas/20251121/linkml/modules/slots/{is_or_was_retrieved_through.yaml => archive/expires_on_expired_at.yaml} (59%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/exposes_or_exposed.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/extent.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/field_number.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/filters_or_filtered.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/final_of_the_final.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/foo_bar.yaml rename schemas/20251121/linkml/modules/slots/{has_or_had_device.yaml => archive/generates_or_generated.yaml} (63%) delete mode 100644 schemas/20251121/linkml/modules/slots/archive/governance_clause.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/governance_representative.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/governance_role.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/governing_body.yaml rename schemas/20251121/linkml/modules/slots/{defines_or_defined.yaml => archive/grants_or_granted.yaml} (65%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/grants_or_granted_access_through.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/habitat.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/habitat_description.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/halc_adm1_code.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/halc_adm2_name.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/handwriting_confidence.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/has_accuracy_in_meters.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/has_acquisition_history.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/has_administration.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/has_administration_description.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/has_administration_name.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/has_altitude.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/has_api_version.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/has_architectural_style.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/has_archive_path.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/has_arrangement.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/has_arrangement_level.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/has_audio_quality_score.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/has_heritage_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/has_locker.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/has_microfilm_reader.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/archive/has_or_had_access_policy.yaml rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_accumulation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_activity.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_annotation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_archive.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_arrangement.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_arrangement_level.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_artwork_count.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_assessment.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_author.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_author_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_authority.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_auxiliary_entities.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_auxiliary_platform.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_base.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_beneficiary.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_benefit.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_boundary.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_branch.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_budget.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_canonical_form.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_capacity.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_caption.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_carrier.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_citation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_city_code.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_collection_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_component.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_condition.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_confidence.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_contact_details.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_contact_information.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_contact_point.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_contributor.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_coordinates.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_currency.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_custodian.yaml (100%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/has_or_had_custodian_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/has_or_had_custodian_observation.yaml rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_data_quality_notes.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_degree.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_description.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_detected.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_direction.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_document.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_documentation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_domain.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_drawer.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_edition.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_embargo_end_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_embargo_reason.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_endowment_draw.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_endpoint.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_engagement_metric.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_equipment.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_equipment_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_exhibition.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_exhibition_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_expense.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_expertise_in.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_extent_text.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_facility.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_feature.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_fee.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_field.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_file_location.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_file_path.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_fixity.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_flag.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_focus.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_fond.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_frequency.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_function.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_funded.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_geofeature.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_geographic_extent.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_geographic_subdivision.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_geometric_extent.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_geometry.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_homepage.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_image.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_index_number.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_interface.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_inventory_url.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_investment.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_iso_639_1.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_iso_639_3.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_key_contact.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_liability.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_location.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_main_part.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_mandate.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_mean.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_measurement.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_measurement_type.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_measurement_unit.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_member.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_mode.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_model.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_name.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_navigation_link.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_notation.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_objective.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_opening_hour.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_organization_profile.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_organization_status.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_organizer.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_parent.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_participated_in.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_percentage.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_period.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_place.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_policy.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_price.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_primary_platform.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_profile.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_provenance.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_provenance_path.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_publication_date.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_publisher.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_qualifier.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_quantity.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_range.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_rank.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_rate.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_rating.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_rationale.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_reason.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_reference.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_requirement.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_resolution.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_responsibility.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_restriction.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_revenue.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_roadmap.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_schedule.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_schema.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_scheme.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_secondary_platform.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_section.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_segment.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_sensitivity_level.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_sequence_index.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_series.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_service.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_service_area.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_service_details.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_setpoint.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_significance.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_size.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_social_media_profile.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_source.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_specification.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_staff.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_staff_member.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_standard.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_status.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_style.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_subject.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_subtype.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_summary.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_supplier.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_text.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_threshold.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_thumbnail.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_tier.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_timestamp.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_title.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_tolerance.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_tool.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_transformation_metadata.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_treatment.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_treshold.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_type_code.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_unit.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_use_case.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_user_category.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_value.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_venue.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/has_or_had_version.yaml (100%) delete mode 100644 schemas/20251121/linkml/modules/slots/archive/has_or_had_web_page.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/has_supervised_handling.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/has_wifi.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/historic_garden_designation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/hold_or_held_record_set_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/identifies_or_identified.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/identifies_or_identified_as.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/implements_or_implemented.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/imposes_or_imposed.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/inbound_from.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/includes_bounding_box.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/includes_handwriting.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/includes_music_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/includes_object_tracking.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/includes_segmentation_mask.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/includes_sound_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/includes_speaker.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/includes_speaker_identification.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/includes_timestamp.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/indicates_or_indicated.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/industry_benchmark_high.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/industry_benchmark_low.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/inference_provenance.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/info_session_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/initial.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/initial_of_the_initial.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/innovation_budget.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/inscription.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/installation_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/installed_at_place.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/instance_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/institution_function.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/institution_linkedin_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/institution_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/insurance_currency.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/insurance_provider.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/insurance_value.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/intangible_heritage_subtype.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/integrates_or_integrated.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/interlibrary_loan.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/internal_funding.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/international.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/inventory_number.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/inventory_web_address.yaml rename schemas/20251121/linkml/modules/slots/{exhibits_or_exhibited.yaml => archive/involves_or_involved.yaml} (62%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_accessible.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_accredited.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_active.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_annex_of_reading_room.yaml rename frontend/public/schemas/20251121/linkml/modules/slots/allocates_or_allocated.yaml => schemas/20251121/linkml/modules/slots/archive/is_approximate.yaml (65%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_auxiliary_of_place.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_auxiliary_of_platform.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_background.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_branch_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_branch_of_authority.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_closed_caption.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_current_version.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_deceased.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_embeddable.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_estimate.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_heritage_relevant.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_historical_boundary.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_inferred.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_leased.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_legal_status_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_licensed_content.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_made_for_kid.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_mandatory.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_official_assessment.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_official_content.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_open_to_public.yaml rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_about_digital_presence.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_access_restricted.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_accessioned_through.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_acquired_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_acquired_through.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_active_since.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_affected_by_event.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_affiliated_with.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_aggregated_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_allocated_budget.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_allocated_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_allocated_through.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_allocated_to.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_also_allocation_agency.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_alternative_form_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_amended_through.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_appended_with.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_applicable_in.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_appreciated.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_approved_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_approved_on.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_approximate.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_archive_department_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_archived_as.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_archived_at.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_archived_in.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_asserted_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_asserted_on.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_assessed_on.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_associated_with.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_available.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_based_on.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_born_on.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_branch_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_cancelled_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_cataloged_in.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_categorized_as.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_caused_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_ceased_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_checked_through.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_classified_as.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_collection_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_compatible_with.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_conducted_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_created_through.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_curated_through.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_current.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_decommissioned_at.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_derived_from.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_designed_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_diarized.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_dismissed.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_documented_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_documented_in.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_due_on.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_edited_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_effective_at.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_employed_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_encompassed_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_equivalent_to.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_established_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_exhibited_at.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_expired_at.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_exposed_via.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_extended.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_extracted_using.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_founded_through.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_generated_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_governed_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_identified_through.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_implemented_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_included_in.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_indexed.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_instance_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_instantiated_as.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_instantiated_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_involved_in.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_last_updated_at.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_located_in.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_located_within.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_managed_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_member_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_observed_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_opened_on.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_operated_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_part_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_part_of_archive_series.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_part_of_total.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_platform_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_position.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_published.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_published_at.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_published_by.yaml (100%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_or_was_recombined.yaml rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_related_to.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_represented_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_required.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_returned.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_revision_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_signed_at.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_signed_on.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_stored_at.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_sub_collection_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_suborganization_of.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_superseded_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_targeted_at.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_tax_deductible.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_temporarily_located_at.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_threatened_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_transferred.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_transferred_to.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_triggered_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_used_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_used_in.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_verified_by.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_visible_in.yaml (100%) rename schemas/20251121/linkml/modules/slots/{ => archive}/is_or_was_webarchived_at.yaml (100%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_overlapping.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_part_of_complex.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_permanent.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_permitted.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_primary_digital_presence.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_public_facing.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_rebuilding.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_recognized.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_recurring.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_sdh.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_sub_guide.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_temporary.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_type_specimen.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/is_verified.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/isbn.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/isbn_13.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/isil.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/iso_3166_2_code.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/iso_standard.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/iso_standard_reference.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/issn.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/issued_call.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/issuing_organisation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/item.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/item_returned.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/iucn_status.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/jurisdiction.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/jurisdiction_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/jurisdiction_level.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/jurisdiction_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/justification.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/key_distinction.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/keyframe_extraction.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/keyword.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/kien_registration_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/kien_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/knowledge_transmission.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/label_de.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/label_es.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/label_fr.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/label_it.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/label_nl.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/label_pt.yaml rename schemas/20251121/linkml/modules/slots/{excludes_or_excluded.yaml => archive/lacks_or_lacked.yaml} (63%) rename schemas/20251121/linkml/modules/slots/{is_or_was_location_of.yaml => archive/landmark_confidence.yaml} (53%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/landmark_geonames_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/landmark_label.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/landmark_segment.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/landmark_wikidata_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/language.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/language_code.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/language_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/language_raw.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/languages_detected.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/languages_raw.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/last_modified.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/latency_ms.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/latitude.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/launch_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/lease_expiry.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/legacy_planning.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/legal_basis.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/legal_entity_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/legal_form.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/legal_jurisdiction.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/legal_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/legal_note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/legal_provenance_note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/legal_responsibility_basis.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/legal_responsibility_end_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/legal_responsibility_start_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/legal_status.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/legal_system_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/lender.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/lender_contact.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/lending_policy.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/level_value.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/library_catalog_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/library_search_score.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/library_subtype.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/license.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/life_stage.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/lifecycle_phase_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/light_max_lux.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/like_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/likelihood_confidence.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/likelihood_factor.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/likelihood_level.yaml rename schemas/20251121/linkml/modules/slots/{has_or_had_http_status.yaml => archive/likelihood_score.yaml} (54%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/likely_whatsapp_proficient.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/link_context.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/link_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/link_rationale.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/link_text.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/link_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/link_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/linked_class_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/linked_data.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/linked_data_access.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/linked_data_export.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/linked_to_collection.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/linkedin_profile_path.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/linkedin_profile_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/linkedin_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/list_item.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/literal_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/live_broadcast_content.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/living_collection.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/llm_response.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/loan_agreement_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/loan_end_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/loan_history.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/loan_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/loan_note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/loan_number.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/loan_purpose.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/loan_start_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/loan_status.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/loan_timespan.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/loan_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/locality.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/located_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/location.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/location_browse_score.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/location_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/logo_confidence.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/logo_label.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/logo_organization.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/logo_segment.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/long_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/longitude.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/lot_number.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/maintained_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/maintenance_schedule.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/major_city.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/major_research_project.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/managed_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/manages_collection.yaml rename schemas/20251121/linkml/modules/slots/{is_or_was_deposited_by.yaml => archive/manages_or_managed.yaml} (65%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/managing_unit.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/mandate.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/marginalia.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/martyred.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/material_composition.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/material_specialization.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/materials_used.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/max_annual_light_exposure.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/max_group_size.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/max_light_lux.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/max_likelihood_score.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/maximal_of_maximal.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/maximum_amount.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/measurement_data.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/measurement_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/measurement_method.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/measures_or_measured.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/medium.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/member_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/member_organization_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/member_organization_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/membership_criteria.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/membership_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/membership_required.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/membership_role.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/membership_size.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/membership_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/metadata_standard.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/method.yaml rename schemas/20251121/linkml/modules/slots/{has_or_had_agent.yaml => archive/methodology_type.yaml} (69%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/metrics_observed_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/metrics_observed_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/michelin_star.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/minimal_of_minimal.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/minimum_amount.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/minimum_donation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/minimum_partner.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/mission_statement.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/mixed_governance_structure.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/model.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/model_architecture.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/model_provider.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/model_task.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/model_version.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/modern_place_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/modified.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/monitoring_platform.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/monitoring_platform_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/monument_number.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/motivation_type_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/motivation_type_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/motivation_type_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/multilingual_label.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/museum_search_score.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/museum_subtype.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/museum_type_classification.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/music_confidence.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/music_detected.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/music_end_seconds.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/music_genre.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/music_genres_detected.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/music_segment_confidence.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/music_start_seconds.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/music_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/mutual_connections_text.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/name_authority.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/name_language.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/name_local.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/name_specification.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/name_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/name_validity_period.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/narrower_concept.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/narrower_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/nazi_era_flag.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/nesting_level.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/network_analysis.yaml rename schemas/20251121/linkml/modules/slots/archive/{en.yaml => nl.yaml} (73%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/no_fabrication.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/noise_floor_db.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/nomenclatural_code.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/nonprofit_subtype.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/notable_examples.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/notarial_deed_number.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/notary_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/notary_office.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/note_content.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/note_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/note_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/numeric_value.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/oai_pmh_endpoint.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/object_alternate_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/object_classes_detected.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/object_collection_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/object_confidence.yaml rename schemas/20251121/linkml/modules/slots/{describes_or_described.yaml => archive/object_description.yaml} (63%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/object_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/object_label.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/object_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/object_ref.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/object_segment.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/object_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/object_wikidata_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/objective.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/objects_added.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/objects_affected.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/objects_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/objects_removed.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/observation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/observation_context.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/observation_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/observation_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/observation_note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/observation_period.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/observation_ref.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/observation_source.yaml rename schemas/20251121/linkml/modules/slots/{has_or_had_chapter.yaml => archive/observed_entity.yaml} (69%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/observed_in.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/observed_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/observer_affiliation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/observer_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/observer_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/occupation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/occurs_or_occurred_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/oclc_number.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/offered_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/offers_donation_scheme.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/offers_or_offered.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/offers_or_offered_access.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/official_institution_subtype.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/online_shop.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/open_source.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/opening_hour.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/operated_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/operates_or_operated.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/operating_budget.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/operating_hour.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/operational_status.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/operator.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/organization_legal_form.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/organization_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/organization_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/organizational_change_score.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/organizational_level.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/organizational_mission.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/organizational_principle.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/organizational_principle_uri.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/organizational_structure.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/organized_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/organizing_body.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/origin_location.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/origin_period.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/original_end_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/originates_or_originated_from.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/osm_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/outbound_condition_report_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/outbound_to.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/outdoor_seating_capacity.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/outdoor_site_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/outdoor_site_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/outdoor_site_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/outdoor_site_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/overall_confidence.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/overall_status.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/oversight_jurisdiction.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/ownership_stamp.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/page.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/page_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/page_section.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/page_title.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/paragraph_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/parallel_title.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/parent_corporation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/parent_department.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/parent_programme.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/parent_society.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/parent_unit.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/part_of_collection.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/part_of_custodian_collection.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/part_of_event.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/part_of_facility.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/part_of_storage.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/part_of_zone.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/part_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/participant_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/participating_custodian.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/participating_institution.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/particulate_max.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/partner_institution.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/partnership_model.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/partnership_required.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/patronym.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/payment_frequency.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/pdf_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/performance_datetime.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/performance_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/performance_duration.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/performance_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/performance_location.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/performance_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/performance_note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/performance_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/performance_repertoire.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/performance_venue.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/performed_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/performer.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/period.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/period_covered.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/period_description.yaml rename schemas/20251121/linkml/modules/slots/archive/{end.yaml => period_end.yaml} (75%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/period_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/period_start.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/permanent_location.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/permission_required.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/person_claim_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/person_claim_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/person_claim_value.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/person_html_file.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/person_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/person_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/person_research_score.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/personal_collection_subtype.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/personnel_budget.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/pest_management_required.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/photograph.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/physical_location.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/pipeline_stage.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/place_custodian_ref.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/place_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/place_designation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/place_language.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/place_name.yaml rename schemas/20251121/linkml/modules/slots/archive/{extent_item.yaml => place_note.yaml} (50%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/place_of_publication.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/place_source_text.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/place_specificity.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/planned_closure_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/planned_end.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/planned_start.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/plant_species_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/platform_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/platform_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/platform_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/platform_of.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/platform_purpose.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/platform_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/platform_type_category.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/platform_type_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/platform_type_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/platform_type_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/platform_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/policy_authority.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/policy_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/policy_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/policy_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/policy_review_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/policy_text.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/portal_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/portal_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/portal_language.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/portal_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/portal_status.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/portal_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/portal_type_category.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/portal_type_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/portal_type_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/portal_type_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/portal_typical_domain.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/portal_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/poses_or_posed_condition.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/post_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/post_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/post_type_activity_streams_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/post_type_category.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/post_type_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/post_type_ephemeral.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/post_type_heritage_use_case.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/post_type_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/post_type_max_duration.yaml rename schemas/20251121/linkml/modules/slots/{has_or_had_symbolism.yaml => archive/post_type_media_format.yaml} (61%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/post_type_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/post_type_schema_org_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/post_type_supported_platform.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/post_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/postal_code.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/posted_by_profile.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/power_source.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/powers_platform.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/practitioner_community.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/preceding_activity.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/preferred_label.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/preferred_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/preparation_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/prepared_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/preservation_approach.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/preservation_budget.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/preservation_event_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/preservation_level.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/preservation_method.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/preservation_note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/preservation_purpose.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/preservation_requirement.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/preservation_standard.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/preservative_detail.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/preserves_or_preserved.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/previous_observation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/price.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/price_currency.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/price_text.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/primary.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/primary_audio_event_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/primary_heritage_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/primary_register.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/primary_speaker.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/primary_system.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/printer_publisher.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/priority.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/privacy_note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/processing_completed_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/processing_duration_seconds.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/processing_priority.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/processing_started_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/processing_status.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/production_method.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/proficiency_level.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/profile_data.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/profile_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/profile_image_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/profile_linkedin_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/profile_location.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/profile_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/profile_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/provider.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/provides_or_provided.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/provides_or_provided_provenance_to.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/provides_or_provided_to.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/publishes_or_published.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/rate_value.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/rationale.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/raw_subtitle_content.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/reading_room_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/reason_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/reasoning_content.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/receives_or_received.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/recognized_person_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/recommendation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/reconstruction_method.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/record_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/record_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/record_equivalent.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/record_format.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/record_holder.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/record_holder_note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/record_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/record_note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/record_set_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/record_timespan.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/record_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/recording_available.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/recording_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/recurrence_pattern.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/refers_or_referred_to.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/refers_to_access_policy.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/refers_to_custodian.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/refers_to_legal_status.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/refers_to_person.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/refers_to_storage.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/region.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/region_code.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/region_confidence.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/region_language.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/region_text.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/region_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/register_abbreviation.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/register_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/register_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/register_name_local.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/register_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/registered_office_clause.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/registers_or_registered.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/registration_authority.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/registration_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/registration_required.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/regulated_by_scheme.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/regulates_or_regulated.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/regulatory_authority.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/regulatory_body.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/related.yaml rename schemas/20251121/linkml/modules/slots/{has_or_had_administration.yaml => archive/related_agenda.yaml} (61%) rename schemas/20251121/linkml/modules/slots/{has_or_had_hyponym.yaml => archive/related_call.yaml} (65%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/related_concept.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/related_loan.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/related_project.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/related_type_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/related_type_note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/related_type_relationship.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/related_type_wikidata.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/related_types.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/relationship.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/religion.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/religious_function.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/religious_tradition.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/remediation_note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/remediation_required.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/repertoire.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/replaces_primary_location.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/report_document.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/report_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/reported_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/reporting_period_end.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/reporting_period_start.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/repository_software.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/repository_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/represents_or_represented.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/request_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/request_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requirement_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requirement_text.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requirement_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requirement_unit.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requirement_value.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requires_appointment.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requires_articles_at_registration.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requires_dark_storage.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requires_declaration.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requires_dust_free.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requires_esd_protection.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requires_or_required.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requires_qualification.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requires_registration.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requires_research.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requires_separate_registration.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/requires_uv_filter.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/research_center_subtype.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/research_center_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/research_department.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/research_focus.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/research_focus_area.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/research_infrastructure.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/research_program.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/research_project.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/research_value.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/reservation_required.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/resource_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/response_format.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/responsible_actor.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/responsible_agent.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/responsible_department.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/responsible_legal_entity.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/restriction_category.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/restriction_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/restriction_reason.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/restriction_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/results_expected_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/retention_period_year.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/retention_schedule.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/retention_tracking.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/retrieval_agent.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/retrieval_method.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/retrieval_timestamp.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/retrieved_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/retrieved_on.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/return_condition_report_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/revenue_category.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/review_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/review_status.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/revision_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/revision_number.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/rights_statement.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/rights_statement_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/role_category.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/role_end_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/role_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/role_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/role_name_local.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/role_start_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/role_title.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/route_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/route_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/route_keyword.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/route_relevance_to_heritage.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/route_title.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/row_number.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/safeguarded_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/safeguarding_measure.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/safety_certification.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/sales_activity.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/sampling_protocol.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/scene_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/scene_types_detected.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/scheme_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/scheme_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/scheme_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/scheme_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/scheme_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/scope.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/scope_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/scope_exclude.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/scope_include.yaml rename schemas/20251121/linkml/modules/slots/{is_or_was_retrieved_by.yaml => archive/scrape_method.yaml} (57%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/scraped_timestamp.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/script_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/seasonal_hour.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/seating_capacity.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/secondary.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/section_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/secularization_status.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/security_level.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/segment_confidence.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/segment_end_seconds.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/segment_index.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/segment_language.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/segment_start_seconds.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/segment_text.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/sensory_heritage_domain.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/sentence_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/served_by.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/serves_finding_aid.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/serves_function_of.yaml rename schemas/20251121/linkml/modules/slots/{has_or_had_comment.yaml => archive/serves_or_served.yaml} (57%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/serves_staff.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/serves_visitors_only.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/service_area.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/service_area_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/service_area_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/service_area_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/service_area_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/service_offering.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/service_portfolio.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/services_offered.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/setpoint_max.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/setpoint_min.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/setpoint_tolerance.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/setpoint_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/setpoint_unit.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/setpoint_value.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/settlement.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/settlement_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/sex.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/shares_catalog_with_main.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/shelf_mark.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/shelf_number.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/shipping_method.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/shop_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/short_name.yaml rename schemas/20251121/linkml/modules/slots/{has_or_had_width.yaml => archive/silence_total_seconds.yaml} (54%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/site_portfolio.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/skill.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/slot_fixes.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/slug.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/snr_db.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/social_media_example_profile.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/social_media_feature.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/social_media_heritage_use_case.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/social_media_platform_category.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/social_media_platform_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/social_media_platform_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/social_media_platform_type_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/social_media_profile_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/social_media_url_pattern.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/social_media_wikidata_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/society_focus.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/sound_events_detected.yaml rename schemas/20251121/linkml/modules/slots/archive/{endorsement_source.yaml => source.yaml} (64%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/source_creator.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/source_dataset.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/source_date.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/source_file.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/source_language_auto_detected.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/source_metadata.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/source_organization.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/source_section.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/source_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/source_uri.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/source_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/source_video.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/source_video_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/space_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/space_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/sparql_endpoint.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/spatial_resolution.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/speaker_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/speaker_id.yaml rename schemas/20251121/linkml/modules/slots/{has_or_had_email.yaml => archive/speaker_label.yaml} (50%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/special_collection.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/special_requirement.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/specialized_place.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/specification_url.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/specificity_agent.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/specificity_rationale.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/specificity_score.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/specificity_timestamp.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/specifies_or_specified.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/specimen_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/specimen_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/spectrum_procedure.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/speech_detected.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/speech_language.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/speech_language_confidence.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/speech_text.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/square_meters.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/staff_count.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/staff_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/staff_impact.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/staff_role.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/standardized_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/standards_applied.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/standards_compliance.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/start.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/start_of_the_start.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/start_seconds.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/start_time.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/started_at_time.yaml rename schemas/20251121/linkml/modules/slots/archive/{ends_or_ended_at_location.yaml => starts_or_started_at_location.yaml} (55%) create mode 100644 schemas/20251121/linkml/modules/slots/archive/statement_currency.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/statement_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/statement_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/statement_type.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/states_or_stated.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/stores_or_stored.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/supersedes_or_superseded.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/takes_or_took_comission.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/takes_or_took_place_at.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/temporal_extent.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/transmits_or_transmitted_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/uses_or_used.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/uses_or_used_technique.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/warrants_or_warranted.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/was_acquired_through.yaml create mode 100644 schemas/20251121/linkml/modules/slots/archive/was_fetched_at.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/asserts_or_asserted.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/begin_of_the_begin.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/begin_of_the_end.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/can_or_could_be_fulfilled_by.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/can_or_could_be_retrieved_from.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/catalogues_or_catalogued.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/ceases_or_ceased_through.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/changes_or_changed_ownership_from.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/changes_or_changed_ownership_to.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/changes_or_changed_through.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/classifies_or_classified.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/collects_or_collected.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/complies_or_complied_with.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/contains_or_contained.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/degree_of_certainty.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/derives_or_derived_from.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/documents_or_documented.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/emphasizes_or_emphasized.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/end_of_the_begin.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/end_of_the_end.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_accessibility_feature.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_affiliation.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_age.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_alignment.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_area.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_asset.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_category.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_code.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_collection.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_content.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_digital_presence.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_format.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_habitat.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_hypernym.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_identifier.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_label.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_language.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_level.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_method.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_methodology.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_note.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_output.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_owner.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_role.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_scope.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_score.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_symbol.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_technological_infrastructure.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_time_interval.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_token.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_type.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_url.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_web_claim.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_writing_system.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/includes_or_included.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/is_or_was_created_by.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/is_or_was_deployed_at.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/is_or_was_displayed_at.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/is_or_was_dissolved_by.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/is_or_was_listed_in.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/is_or_was_responsible_for.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/is_or_was_retrieved_at.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/is_or_was_succeeded_by.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/participates_or_participated_in.yaml create mode 100644 scripts/add_slot_aliases.py create mode 100644 scripts/migrate_slots.py diff --git a/.opencode/LINKML_EDITING_RULES.md b/.opencode/LINKML_EDITING_RULES.md new file mode 100644 index 0000000000..e030c717ff --- /dev/null +++ b/.opencode/LINKML_EDITING_RULES.md @@ -0,0 +1,61 @@ +# LinkML Slot File Editing Rules + +## Rule 1: Preserve Original Descriptions +**NEVER alter the original English `description` field of LinkML slot files.** + +When editing slot files: +- Keep the original `description` text exactly as provided +- Translations in `alt_descriptions` must accurately reflect the original English description +- Do not paraphrase, expand, or "improve" the original description +- If the description seems unclear, ask the user before making changes + +## Rule 2: Translation Accuracy +All `alt_descriptions` translations must be faithful translations of the original English `description`, not creative interpretations or expansions. + +## Rule 3: Description Field Purity +**The `description` field must contain ONLY the semantic definition of the slot.** + +Comments, migration notes, usage examples, and other metadata MUST be placed in the appropriate YAML keys: + +| Content Type | Correct Location | WRONG Location | +|--------------|------------------|----------------| +| Semantic definition | `description` | - | +| Migration notes | `comments` | `description` | +| Usage notes | `comments` | `description` | +| Examples | `examples` | `description` | +| Ontology alignment info | `comments` (or header) | `description` | +| Rule compliance notes | `comments` | `description` | +| Temporal semantics notes | `comments` | `description` | + +### ❌ WRONG: Embedding comments in description + +```yaml +slots: + my_slot: + description: | + To possess or be associated with structured data. + + MIGRATED from `old_slot_name` per Rule 53. + + **USAGE**: Used for X, Y, Z. +``` + +### ✅ CORRECT: Separate description from comments + +```yaml +slots: + my_slot: + description: | + To possess or be associated with structured data. + comments: + - MIGRATED from old_slot_name per slot_fixes.yaml (Rule 53). + - | + **USAGE**: Used for X, Y, Z. +``` + +### Why This Matters + +1. **Machine readability**: Tools parsing `description` expect only semantic content +2. **Translation accuracy**: Only the semantic definition should be translated to `alt_descriptions` +3. **Clean documentation**: Separation of concerns makes files easier to maintain +4. **Consistency**: All metadata follows the same pattern across all slot files diff --git a/.opencode/rules/slot-naming-convention-rico-style.md b/.opencode/rules/DEPRECATED-slot-naming-convention-rico-style.md similarity index 96% rename from .opencode/rules/slot-naming-convention-rico-style.md rename to .opencode/rules/DEPRECATED-slot-naming-convention-rico-style.md index f198767042..a689946cea 100644 --- a/.opencode/rules/slot-naming-convention-rico-style.md +++ b/.opencode/rules/DEPRECATED-slot-naming-convention-rico-style.md @@ -1,6 +1,19 @@ -# Rule 39: Slot Naming Convention (RiC-O Style) +# ⚠️ DEPRECATED - Rule 39: Slot Naming Convention (RiC-O Style) -🚨 **CRITICAL**: LinkML slots representing relational predicates MUST follow RiC-O-style naming conventions to express temporal semantics accurately. +> **DEPRECATION NOTICE (2026-02-03)**: This rule has been deprecated. A new naming convention +> has been adopted. The `has_or_had_*` and `is_or_was_*` patterns are NO LONGER required. +> Slots should use simple, descriptive verb-based names (e.g., `exhibit`, `catalogue`, `contain`). +> See the current slot files in `schemas/20251121/linkml/modules/slots/20260202_matang/` for examples. + +--- + +## HISTORICAL REFERENCE ONLY - DO NOT FOLLOW + +The content below is preserved for historical reference only. + +--- + +🚨 ~~**CRITICAL**: LinkML slots representing relational predicates MUST follow RiC-O-style naming conventions to express temporal semantics accurately.~~ **DEPRECATED** --- diff --git a/.opencode/rules/multilingual-support-requirements.md b/.opencode/rules/multilingual-support-requirements.md new file mode 100644 index 0000000000..35aee580ff --- /dev/null +++ b/.opencode/rules/multilingual-support-requirements.md @@ -0,0 +1,177 @@ +# Rule: Multilingual Support Requirements + +## Overview + +All LinkML slot files MUST include multilingual support with translations in the following languages: + +| Code | Language | Required | +|------|----------|----------| +| `nl` | Dutch | ✅ Yes | +| `de` | German | ✅ Yes | +| `fr` | French | ✅ Yes | +| `ar` | Arabic | ✅ Yes | +| `id` | Indonesian | ✅ Yes | +| `zh` | Chinese (Simplified) | ✅ Yes | +| `es` | Spanish | ✅ Yes | + +--- + +## Required Multilingual Fields + +### 1. `alt_descriptions` + +Provide faithful translations of the English `description` field: + +```yaml +slots: + my_slot: + description: >- + To possess a specific structural arrangement or encoding standard. + alt_descriptions: + nl: >- + Het bezitten van een specifieke structurele rangschikking of coderingsstandaard. + de: >- + Das Besitzen einer spezifischen strukturellen Anordnung oder eines Kodierungsstandards. + fr: >- + Posséder un arrangement structurel spécifique ou une norme de codage. + ar: >- + امتلاك ترتيب هيكلي محدد أو معيار ترميز. + id: >- + Memiliki susunan struktural tertentu atau standar pengkodean. + zh: >- + 拥有特定的结构安排或编码标准。 + es: >- + Poseer una disposición estructural específica o un estándar de codificación. +``` + +### 2. `structured_aliases` + +Provide translated slot names/labels for each language: + +```yaml +slots: + has_format: + structured_aliases: + - literal_form: heeft formaat + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Format + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a un format + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: لديه تنسيق + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki format + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 具有格式 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene formato + predicate: EXACT_SYNONYM + in_language: es +``` + +--- + +## Translation Guidelines + +### DO: +- Translate the semantic meaning faithfully +- Preserve technical precision +- Use natural phrasing for each language +- Keep translations concise (similar length to English) + +### DON'T: +- Paraphrase or expand beyond the original meaning +- Add information not present in the English description +- Use machine translation without review +- Skip any of the required languages + +--- + +## Complete Example + +```yaml +id: https://nde.nl/ontology/hc/slot/catalogue +name: catalogue +title: catalogue + +slots: + catalogue: + slot_uri: crm:P70_documents + description: >- + To systematically record, classify, and organize items within a structured + inventory or database for the purposes of documentation and retrieval. + alt_descriptions: + nl: >- + Het systematisch vastleggen, classificeren en ordenen van items binnen een + gestructureerde inventaris of database voor documentatie en terugvinding. + de: >- + Das systematische Erfassen, Klassifizieren und Ordnen von Objekten in einem + strukturierten Inventar oder einer Datenbank für Dokumentation und Abruf. + fr: >- + Enregistrer, classer et organiser systématiquement des éléments dans un + inventaire structuré ou une base de données à des fins de documentation et de récupération. + ar: >- + تسجيل وتصنيف وتنظيم العناصر بشكل منهجي ضمن جرد منظم أو قاعدة بيانات لأغراض التوثيق والاسترجاع. + id: >- + Mencatat, mengklasifikasikan, dan mengatur item secara sistematis dalam + inventaris terstruktur atau database untuk tujuan dokumentasi dan pengambilan. + zh: >- + 在结构化清单或数据库中系统地记录、分类和组织项目,以便于文档编制和检索。 + es: >- + Registrar, clasificar y organizar sistemáticamente elementos dentro de un + inventario estructurado o base de datos con fines de documentación y recuperación. + structured_aliases: + - literal_form: catalogiseren + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: katalogisieren + predicate: EXACT_SYNONYM + in_language: de + - literal_form: cataloguer + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: فهرسة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mengkatalogkan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 编目 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: catalogar + predicate: EXACT_SYNONYM + in_language: es +``` + +--- + +## Validation Checklist + +Before completing a slot file, verify: + +- [ ] `alt_descriptions` provided for all 7 languages (nl, de, fr, ar, id, zh, es) +- [ ] `structured_aliases` provided for all 7 languages +- [ ] Translations are faithful to the English original +- [ ] No language is skipped or left empty +- [ ] Arabic and Chinese characters render correctly + +--- + +## See Also + +- Rule 1: Preserve Original Descriptions (LINKML_EDITING_RULES.md) +- Rule 2: Translation Accuracy (LINKML_EDITING_RULES.md) +- Rule 3: Description Field Purity (LINKML_EDITING_RULES.md) + +--- + +**Version**: 1.0.0 +**Created**: 2026-02-03 +**Author**: OpenCODE diff --git a/.opencode/rules/verified-ontology-mapping-requirements.md b/.opencode/rules/verified-ontology-mapping-requirements.md new file mode 100644 index 0000000000..635f73209b --- /dev/null +++ b/.opencode/rules/verified-ontology-mapping-requirements.md @@ -0,0 +1,323 @@ +# Rule: Verified Ontology Mapping Requirements + +## Overview + +All LinkML slot files MUST include ontology mappings that are **verified against the actual ontology files** in `data/ontology/`. Never use hallucinated or assumed ontology terms. + +--- + +## 1. Source Ontology Files + +The following ontology files are available for verification: + +| Prefix | Namespace | File | Key Properties | +|--------|-----------|------|----------------| +| `crm:` | `http://www.cidoc-crm.org/cidoc-crm/` | `CIDOC_CRM_v7.1.3.rdf` | P1, P2, P22, P23, P70, P82, etc. | +| `rico:` | `https://www.ica.org/standards/RiC/ontology#` | `RiC-O_1-1.rdf` | hasOrHadHolder, isOrWasPartOf, etc. | +| `prov:` | `http://www.w3.org/ns/prov#` | `prov.ttl` | wasInfluencedBy, wasDerivedFrom, used, etc. | +| `schema:` | `http://schema.org/` | `schemaorg.owl` | url, name, description, etc. | +| `dcterms:` | `http://purl.org/dc/terms/` | `dcterms.rdf` | format, rights, source, etc. | +| `skos:` | `http://www.w3.org/2004/02/skos/core#` | `skos.rdf` | prefLabel, notation, inScheme, etc. | +| `foaf:` | `http://xmlns.com/foaf/0.1/` | `foaf.ttl` | page, homepage, name, etc. | +| `dcat:` | `http://www.w3.org/ns/dcat#` | `dcat3.ttl` | mediaType, downloadURL, etc. | +| `time:` | `http://www.w3.org/2006/time#` | `time.ttl` | hasBeginning, hasEnd, etc. | +| `org:` | `http://www.w3.org/ns/org#` | `org.rdf` | siteOf, hasSite, subOrganizationOf, etc. | +| `sosa:` | `http://www.w3.org/ns/sosa/` | `sosa.ttl` | madeBySensor, observes, etc. | + +--- + +## 2. Required Header Documentation + +Every slot file MUST include a header comment block with an ontology alignment table: + +```yaml +# ============================================================================== +# LinkML Slot Definition: {slot_name} +# ============================================================================== +# {Brief description - one line} +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **PROV-O** | `prov:used` | prov.ttl:1046-1057 | exact | Entity used by activity | +# | **PROV-O** | `prov:wasInfluencedBy`| prov.ttl:1099-1121 | broad | Parent property (subPropertyOf) | +# +# HIERARCHY: prov:used rdfs:subPropertyOf prov:wasInfluencedBy (line 1046) +# +# CREATED: YYYY-MM-DD +# UPDATED: YYYY-MM-DD - Description of changes +# ============================================================================== +``` + +--- + +## 3. Mapping Types + +Use the correct mapping type based on semantic relationship: + +| Mapping Type | Usage | Example | +|--------------|-------|---------| +| `slot_uri` | Primary RDF predicate for this slot | `slot_uri: prov:used` | +| `exact_mappings` | Semantically equivalent properties | `- schema:dateRetrieved` | +| `close_mappings` | Very similar but slightly different semantics | `- prov:wasGeneratedBy` | +| `broad_mappings` | Parent/broader properties (slot is subPropertyOf these) | `- prov:wasInfluencedBy` | +| `narrow_mappings` | Child/narrower properties (these are subPropertyOf slot) | `- prov:qualifiedUsage` | +| `related_mappings` | Conceptually related but different scope | `- dcterms:source` | + +--- + +## 4. Hierarchy Discovery Process + +### Step 1: Search for subPropertyOf relationships + +```bash +# Find if our property is subPropertyOf something (-> broad_mapping) +grep -n "OUR_PROPERTY.*subPropertyOf\|subPropertyOf.*OUR_PROPERTY" data/ontology/*.ttl + +# Find properties that are subPropertyOf our property (-> narrow_mappings) +grep -n "subPropertyOf.*OUR_PROPERTY" data/ontology/*.rdf +``` + +### Step 2: Document the hierarchy + +When you find a hierarchy, document it in: +1. The header comment block (HIERARCHY line) +2. The appropriate mapping field (`broad_mappings` or `narrow_mappings`) +3. Inline comments with file/line references + +--- + +## 5. Key Ontology Hierarchies Reference + +### PROV-O (`prov.ttl`) + +``` +prov:wasInfluencedBy (parent of many) +├── prov:wasDerivedFrom +│ ├── prov:hadPrimarySource +│ ├── prov:wasQuotedFrom +│ └── prov:wasRevisionOf +├── prov:wasGeneratedBy +├── prov:used +├── prov:wasAssociatedWith +├── prov:wasAttributedTo +└── prov:wasInformedBy + +prov:influenced (inverse direction) +├── prov:generated +└── prov:invalidated +``` + +### CIDOC-CRM (`CIDOC_CRM_v7.1.3.rdf`) + +``` +crm:P1_is_identified_by +├── crm:P48_has_preferred_identifier +└── crm:P168_place_is_defined_by + +crm:P82_at_some_time_within +├── crm:P82a_begin_of_the_begin +└── crm:P82b_end_of_the_end + +crm:P81_ongoing_throughout +├── crm:P81a_end_of_the_begin +└── crm:P81b_begin_of_the_end + +crm:P67_refers_to +└── crm:P70_documents +``` + +### RiC-O (`RiC-O_1-1.rdf`) + +``` +rico:isOrWasUnderAuthorityOf +├── rico:hasOrHadManager +│ └── rico:hasOrHadHolder +└── (other authority relationships) + +rico:hasOrHadPart +└── rico:containsOrContained + └── rico:containsTransitive + +rico:isSuccessorOf +├── rico:hasAncestor +├── rico:resultedFromTheMergerOf +└── rico:resultedFromTheSplitOf +``` + +### Dublin Core Terms (`dcterms.rdf`) + +``` +dcterms:rights +└── dcterms:accessRights +``` + +### DCAT (`dcat3.ttl`) + +``` +dcterms:format +├── dcat:mediaType +├── dcat:compressFormat +└── dcat:packageFormat +``` + +### FOAF (`foaf.ttl`) + +``` +foaf:page +├── foaf:homepage +├── foaf:weblog +├── foaf:interest +├── foaf:workplaceHomepage +└── foaf:schoolHomepage +``` + +### Schema.org (`schemaorg.owl`) + +``` +schema:workFeatured +├── schema:workPerformed +└── schema:workPresented +``` + +--- + +## 6. Verification Commands + +### Check if a property exists + +```bash +grep -n "PROPERTY_NAME" data/ontology/FILE.ttl +``` + +### Find all subPropertyOf for a property + +```bash +grep -B5 -A5 "subPropertyOf" data/ontology/FILE.ttl | grep -A5 -B5 "PROPERTY_NAME" +``` + +### Validate YAML after editing + +```bash +python3 -c "import yaml; yaml.safe_load(open('FILENAME.yaml')); print('✅ valid')" +``` + +--- + +## 7. Complete Slot File Example + +```yaml +# ============================================================================== +# LinkML Slot Definition: retrieved_through +# ============================================================================== +# To denote the specific method, protocol, or mechanism by which a resource +# or data was accessed, fetched, or collected. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |------------|--------------------------|--------------------|---------|------------------------------------| +# | **PROV-O** | `prov:used` | prov.ttl:1046-1057 | exact | Entity used by activity | +# | **PROV-O** | `prov:wasInfluencedBy` | prov.ttl:1099-1121 | broad | Parent property (subPropertyOf) | +# | **PROV-O** | `prov:qualifiedUsage` | prov.ttl:788-798 | narrow | Qualified usage with details | +# +# HIERARCHY: prov:used rdfs:subPropertyOf prov:wasInfluencedBy (line 1046) +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added broad/narrow mappings, header documentation +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/retrieved_through +name: retrieved_through +title: Retrieved Through + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + +imports: +- linkml:types + +default_prefix: hc + +slots: + retrieved_through: + slot_uri: prov:used + description: | + To denote the specific method, protocol, or mechanism by which a resource or data was accessed, fetched, or collected. + range: string + exact_mappings: + - prov:used # prov.ttl:1046-1057 + broad_mappings: + - prov:wasInfluencedBy # prov.ttl:1099-1121 - parent (used subPropertyOf wasInfluencedBy) + narrow_mappings: + - prov:qualifiedUsage # prov.ttl:788-798 - qualified form with details + comments: + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | PROV-O | prov:used | 1046-1057 | exact | Entity used by activity | + | PROV-O | prov:wasInfluencedBy | 1099-1121 | broad | Parent property | + | PROV-O | prov:qualifiedUsage | 788-798 | narrow | Qualified usage | +``` + +--- + +## 8. Anti-Patterns + +### ❌ WRONG: Hallucinated ontology terms + +```yaml +exact_mappings: + - prov:retrievedWith # ❌ Does not exist in PROV-O! + - rico:wasObtainedBy # ❌ Not a real RiC-O property! +``` + +### ❌ WRONG: No verification references + +```yaml +exact_mappings: + - prov:used # No file/line reference - how do we know this is correct? +``` + +### ✅ CORRECT: Verified with references + +```yaml +exact_mappings: + - prov:used # prov.ttl:1046-1057 - "Entity used by activity" +broad_mappings: + - prov:wasInfluencedBy # prov.ttl:1099-1121 - parent property (verified subPropertyOf) +``` + +--- + +## 9. Validation Checklist + +Before completing a slot file, verify: + +- [ ] Header comment block includes ontology alignment table +- [ ] All mappings verified against actual ontology files in `data/ontology/` +- [ ] File/line references provided for each mapping +- [ ] `rdfs:subPropertyOf` relationships checked for broad/narrow mappings +- [ ] HIERARCHY line documents any property hierarchies +- [ ] No hallucinated or assumed ontology terms +- [ ] YAML validates correctly + +--- + +## See Also + +- Rule 1: Ontology Files Are Your Primary Reference (`no-hallucinated-ontology-references.md`) +- Rule: Verified Ontology Terms (`verified-ontology-terms.md`) +- Ontology files: `data/ontology/` + +--- + +**Version**: 1.0.0 +**Created**: 2026-02-03 +**Author**: OpenCODE diff --git a/data/ontology/ontology.zip b/data/ontology/ontology.zip new file mode 100644 index 0000000000000000000000000000000000000000..0b3233f2e2a51182ccec7bedfa5eb8449659d034 GIT binary patch literal 2362112 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

j8_ybc94__vI&xj9HqXlzJJYz^_vx{3CgKE z?B9sa59xRz--`V_EJo)n3_?}LoXT(&>=zF@^q~C$$np`a) z*=jA~pGXkaHEN#t1OM94KXJz?>9AKCO(UJ}V5m{sdCy9-4*x}GI1yOn-YqnaCaz`+IqCI#x*Erm-|U zHe<}8YKZPRi)-|A{pEL!mzlCo-RA+;knt`+`L^Mch477zVxdHL(0JvH%*L21(Rng7?bE12 z3CltJ@ct;$9p7gV{s7<~p*&9B@uDc6EupB|vYjYwD&PEr(JCp0 zCb5Oe%8$3t{my7*_e~>t&9$=zPb4b^0#p@42>+hRKt4P{GEv_9ed>*s*A&A3DDk(= zV)ycU)B6*H=^NYQ#>TTP(C<9>{d3`SGULM)ekOVT;OHZ&)oVyAHjc@k?iF? zT{KK>E36-KUn~k9E}x&fzh=wGck+Z?ET+r|87n*qnVp};tdAZ;OZc(t+la5;guogP zL1exT-{f$oArnZjYZoU(-bza}Qg+4RhCuFXtthy2w>Mjq)I}t~i*G}gu~j{ldh^NS z)8!|=jFsq>fOCXUNgfw-|NbGPjIgP}8#G&`Gc*yPm<5s1o&=*=PRCILZ?ly3*CPa7Jl=*V5FOudVc>F z|MJ3)7DJ^41%edCdsZ9~qLaB47oa05u14<+V`pxO{> zXuCu9qb)IobsjI(F`}luHjQi;KTRXQmYfZ_Es<3Wc6n|L>0T*x)(`H!A(`Sn8Zq|A zN#NvyEI*)d2AvJ?DzQnJw@}Q9N`atHVH)cjWNAV_6T{`{G}RGnDSV{77==w;jnh9E zEURfqtIiHv+?D439>u{=5?VueR~cl^r``JaL_@`D^R{

-aco-T1(wr=^?r?dZ<< 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

hl?p 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 |wD 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

I&@OXWoRF}liYO@X$)|grM(Tp+E&?x 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


wigZ+UiLf6^t)Y`oRxN?Re<7x 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 z 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

&2NHYIL_GybDb^UaA2rtF+%~_p7S3 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

k+O-PLfLC|~CbdMW(Uh2K0pi8I|lzm+b} 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≪%XQs-7qoFKNTIahaIl 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%0AWX5CWX$ak1@BVNMvAgO=~)lm6SP?CPJH(4(xBg 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 Hn96 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�O*j9`z)$WOBw#ZGCjD~wo2 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 VMjr|<#lg}V{(TJ->t4tJ;J;e-7ry`i literal 0 HcmV?d00001 diff --git a/frontend/public/schemas/20251121/linkml/01_custodian_name_modular.yaml b/frontend/public/schemas/20251121/linkml/01_custodian_name_modular.yaml index 58c10d04da..b2329bcd44 100644 --- a/frontend/public/schemas/20251121/linkml/01_custodian_name_modular.yaml +++ b/frontend/public/schemas/20251121/linkml/01_custodian_name_modular.yaml @@ -28,12 +28,12 @@ license: https://creativecommons.org/licenses/by-sa/4.0/ prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ + ore: http://www.openarchives.org/ore/terms/ default_prefix: hc imports: - linkml:types - - modules/classes/Any - modules/metadata - modules/slots/has_or_had_description - modules/slots/has_or_had_label @@ -104,14 +104,12 @@ imports: # valid_from and valid_to ARCHIVED (2026-01-14) - migrated to temporal_extent (Rule 53) # was_revision_of ARCHIVED (2026-01-15) - migrated to is_or_was_revision_of (Rule 53) - modules/slots/is_or_was_revision_of - # Hub architecture slots - modules/slots/refers_to_custodian - modules/slots/observation_source - modules/slots/reconstruction_method - modules/slots/legal_entity_type - modules/slots/name_language - # PersonObservation slots (10 files - NEW in v0.6.0) - modules/slots/person_name - modules/slots/staff_role @@ -123,10 +121,8 @@ imports: - modules/slots/has_or_had_email - modules/slots/has_or_had_staff_member # observation_source already imported above - # CustodianCollection + OrganizationalStructure collection management slots (2 files - NEW in v0.7.0) - modules/slots/managing_unit - # Enums (11 files - CustodianPrimaryTypeEnum ARCHIVED per Rule 9: Enum-to-Class Promotion) # See: schemas/20251121/linkml/archive/enums/CustodianPrimaryTypeEnum.yaml.archived_20260105 - modules/enums/AgentTypeEnum @@ -148,373 +144,62 @@ imports: - modules/enums/CallForApplicationStatusEnum - modules/enums/FundingRequirementTypeEnum - modules/enums/DonationSchemeTypeEnum - # Web portal types - promoted to class hierarchy (WebPortalType.yaml, WebPortalTypes.yaml) # WebPortalTypeEnum was archived per enum-to-class single source of truth principle - # Social media - promoted to class hierarchy (SocialMediaPlatformType.yaml, SocialMediaPlatformTypes.yaml) # SocialMediaPlatformTypeEnum was archived per enum-to-class single source of truth principle - modules/enums/DigitalPresenceTypeEnum - # Intangible heritage enums (for IntangibleHeritageForm) - modules/enums/UNESCOICHDomainEnum - modules/enums/UNESCOListStatusEnum - modules/enums/ICHViabilityStatusEnum - # Classes (44 files - ALL 19 specialized CustodianTypes COMPLETE + CallForApplication + WebObservation) - - modules/classes/ReconstructedEntity - - modules/classes/ReconstructionAgent - - modules/classes/Appellation - - modules/classes/ConfidenceMeasure - - modules/classes/Custodian - - modules/classes/CustodianName - - modules/classes/CustodianType - - modules/classes/ArchiveOrganizationType - - modules/classes/MuseumType - - modules/classes/LibraryType - - modules/classes/GalleryType - - modules/classes/ResearchOrganizationType - - modules/classes/OfficialInstitutionType - - modules/classes/BioCustodianType - - modules/classes/EducationProviderType - - modules/classes/HeritageSocietyType - - modules/classes/FeatureCustodianType - - modules/classes/IntangibleHeritageGroupType - - modules/classes/IntangibleHeritageForm - - modules/classes/PersonalCollectionType - - modules/classes/HolySacredSiteType - - modules/classes/DigitalPlatformType - - modules/classes/NonProfitType - - modules/classes/TasteScentHeritageType - - modules/classes/CommercialOrganizationType - - modules/classes/MixedCustodianType - - modules/classes/UnspecifiedType - - modules/classes/CustodianObservation - - modules/classes/CustodianLegalStatus - - modules/classes/CustodianPlace - - modules/classes/AuxiliaryPlace - - modules/classes/OrganizationBranch - - modules/classes/AuxiliaryDigitalPlatform - - modules/classes/CustodianCollection - - modules/classes/LegalResponsibilityCollection - - modules/classes/OrganizationalStructure - - modules/classes/OrganizationalChangeEvent - - modules/classes/PersonObservation - - modules/classes/Person - - modules/classes/Event - # Staff role class hierarchy (replaces StaffRoleTypeEnum - Single Source of Truth) # See: rules/ENUM_TO_CLASS_PRINCIPLE.md - - modules/classes/StaffRole - - modules/classes/StaffRoles - - - modules/classes/Identifier - - modules/classes/LanguageCode - - modules/classes/ReconstructionActivity - - modules/classes/SourceDocument - - modules/classes/TimeSpan - - modules/classes/LegalEntityType - - modules/classes/LegalForm - - modules/classes/LegalName - - modules/classes/RegistrationInfo - - modules/classes/RegistrationAuthority - - modules/classes/Country - - modules/classes/Subregion - - modules/classes/Settlement - - modules/classes/EncompassingBody - - modules/classes/FeaturePlace - - modules/classes/DigitalPlatform - - modules/classes/CollectionManagementSystem - # Data service endpoint classes (NEW v0.9.10 - API endpoint modeling) - - modules/classes/DataServiceEndpoint - - modules/classes/OAIPMHEndpoint - - modules/classes/SearchAPI - - modules/classes/METSAPI - - modules/classes/FileAPI - - modules/classes/IIPImageServer - - modules/classes/EADDownload - # Registration and Jurisdiction classes (NEW - GLEIF alignment) - - modules/classes/Jurisdiction - - modules/classes/TradeRegister - # Standards ecosystem classes (NEW v0.9.1 - identifier standards support) - - modules/classes/StandardsOrganization - - modules/classes/Standard - - modules/classes/AllocationAgency - - modules/classes/ContributingAgency - # Container class for tree_root (instance validation) - - modules/classes/Container - # Funding and provenance classes (NEW v0.9.2 - heritage funding calls) - - modules/classes/CallForApplication - - modules/classes/WebObservation - # Strategic funding agendas (NEW v0.9.3 - research agenda modeling) - - modules/classes/FundingAgenda - # Funding requirements with provenance (NEW v0.9.4 - structured requirements) - - modules/classes/FundingRequirement - # Donation and giving schemes (NEW v0.9.11 - heritage institution funding) - - modules/classes/DonationScheme - # Tax schemes and deductibility (NEW v0.9.11 - donation support) - - modules/classes/TaxScheme - - modules/classes/TaxDeductibility - # Web portals for heritage metadata aggregation (NEW v0.9.5) - - modules/classes/WebPortal - # Social media and IoT digital presence (NEW v0.9.6) - - modules/classes/SocialMediaProfile - - modules/classes/PrimaryDigitalPresenceAssertion - - modules/classes/InternetOfThings - # Video content modeling (NEW v0.9.10 - social media video + transcripts + annotations) - - modules/classes/VideoPost - - modules/classes/VideoTimeSegment - - modules/classes/VideoTextContent - - modules/classes/VideoTranscript - - modules/classes/VideoSubtitle - - modules/classes/VideoAnnotation - - modules/classes/VideoAnnotationTypes - # Web portal and social media type hierarchies (NEW v0.9.9 - promoted from enums) - - modules/classes/WebPortalType - - modules/classes/WebPortalTypes - - modules/classes/SocialMediaPlatformType - - modules/classes/SocialMediaPlatformTypes - # Collection type base class (NEW v0.9.9 - for rico:RecordSetType hierarchy) - - modules/classes/CollectionType - # Archive subtype classes (NEW v0.9.9 - 95 specialized archive types + companion RecordSetTypes) # Each file contains both the CustodianType (archive organization) and CollectionType (rico:RecordSetType) # Following dual-class pattern for custodian vs collection semantics - - modules/classes/AcademicArchive - - modules/classes/AdvertisingRadioArchive - - modules/classes/AnimalSoundArchive - - modules/classes/ArchitecturalArchive - - modules/classes/ArchiveAssociation - - modules/classes/ArchiveNetwork - - modules/classes/ArchiveOfInternationalOrganization - - modules/classes/ArchivesForBuildingRecords - - modules/classes/ArchivesRegionales - - modules/classes/ArtArchive - - modules/classes/AssociationArchive - - modules/classes/AudiovisualArchive - - modules/classes/BankArchive - - modules/classes/CantonalArchive - - modules/classes/CathedralArchive - - modules/classes/ChurchArchive - - modules/classes/ChurchArchiveSweden - - modules/classes/ClimateArchive - - modules/classes/CollectingArchives - - modules/classes/ComarcalArchive - - modules/classes/CommunityArchive - - modules/classes/CompanyArchives - - modules/classes/CurrentArchive - - modules/classes/CustodianArchive - - modules/classes/DarkArchive - - modules/classes/DepartmentalArchives - - modules/classes/DepositArchive - - modules/classes/DigitalArchive - - modules/classes/DimArchives - - modules/classes/DiocesanArchive - - modules/classes/DistrictArchiveGermany - - modules/classes/DistritalArchive - - modules/classes/EconomicArchive - - modules/classes/FilmArchive - - modules/classes/FoundationArchive - - modules/classes/FreeArchive - - modules/classes/FrenchPrivateArchives - - modules/classes/GovernmentArchive - - modules/classes/HistoricalArchive - - modules/classes/HospitalArchive - - modules/classes/HouseArchive - - modules/classes/IconographicArchives - - modules/classes/InstitutionalArchive - - modules/classes/JointArchives - - modules/classes/LGBTArchive - - modules/classes/LightArchives - - modules/classes/LiteraryArchive - - modules/classes/LocalGovernmentArchive - - modules/classes/LocalHistoryArchive - - modules/classes/MailingListArchive - - modules/classes/MediaArchive - - modules/classes/MilitaryArchive - - modules/classes/MonasteryArchive - - modules/classes/MunicipalArchive - - modules/classes/MuseumArchive - - modules/classes/MusicArchive - - modules/classes/NationalArchives - - modules/classes/NewspaperClippingsArchive - - modules/classes/NobilityArchive - - modules/classes/NotarialArchive - - modules/classes/OnlineNewsArchive - - modules/classes/ParishArchive - - modules/classes/ParliamentaryArchives - - modules/classes/PartyArchive - - modules/classes/PerformingArtsArchive - - modules/classes/PhotoArchive - - modules/classes/PoliticalArchive - - modules/classes/PostcustodialArchive - - modules/classes/PressArchive - - modules/classes/ProvincialArchive - - modules/classes/ProvincialHistoricalArchive - - modules/classes/PublicArchive - - modules/classes/PublicArchivesInFrance - - modules/classes/RadioArchive - - modules/classes/RegionalArchive - - modules/classes/RegionalArchivesInIceland - - modules/classes/RegionalEconomicArchive - - modules/classes/RegionalStateArchives - - modules/classes/ReligiousArchive - - modules/classes/SchoolArchive - - modules/classes/ScientificArchive - - modules/classes/SectorOfArchivesInSweden - - modules/classes/SecurityArchives - - modules/classes/SoundArchive - - modules/classes/SpecializedArchive - - modules/classes/SpecializedArchivesCzechia - - modules/classes/StateArchives - - modules/classes/StateArchivesSection - - modules/classes/StateDistrictArchive - - modules/classes/StateRegionalArchiveCzechia - - modules/classes/TelevisionArchive - - modules/classes/TradeUnionArchive - - modules/classes/UniversityArchive - - modules/classes/WebArchive - - modules/classes/WomensArchives - # Archive RecordSetTypes - concrete subclasses of rico:RecordSetType (v0.9.12) # These define the types of record sets held by each archive type # Updated: all 92 archive types now have RecordSetTypes files - - modules/classes/AcademicArchiveRecordSetTypes - - modules/classes/AdvertisingRadioArchiveRecordSetTypes - - modules/classes/AnimalSoundArchiveRecordSetTypes - - modules/classes/ArchitecturalArchiveRecordSetTypes - - modules/classes/ArchiveOfInternationalOrganizationRecordSetTypes - - modules/classes/ArchivesForBuildingRecordsRecordSetTypes - - modules/classes/ArchivesRegionalesRecordSetTypes - - modules/classes/ArtArchiveRecordSetTypes - - modules/classes/AudiovisualArchiveRecordSetTypes - - modules/classes/BankArchiveRecordSetTypes - - modules/classes/CantonalArchiveRecordSetTypes - - modules/classes/CathedralArchiveRecordSetTypes - - modules/classes/ChurchArchiveRecordSetTypes - - modules/classes/ChurchArchiveSwedenRecordSetTypes - - modules/classes/ClimateArchiveRecordSetTypes - - modules/classes/CollectingArchivesRecordSetTypes - - modules/classes/ComarcalArchiveRecordSetTypes - - modules/classes/CommunityArchiveRecordSetTypes - - modules/classes/CompanyArchiveRecordSetTypes - - modules/classes/CurrentArchiveRecordSetTypes - - modules/classes/CustodianArchiveRecordSetTypes - - modules/classes/DarkArchiveRecordSetTypes - - modules/classes/DepartmentalArchivesRecordSetTypes - - modules/classes/DepositArchiveRecordSetTypes - - modules/classes/DigitalArchiveRecordSetTypes - - modules/classes/DimArchivesRecordSetTypes - - modules/classes/DiocesanArchiveRecordSetTypes - - modules/classes/DistrictArchiveGermanyRecordSetTypes - - modules/classes/DistritalArchiveRecordSetTypes - - modules/classes/EconomicArchiveRecordSetTypes - - modules/classes/FilmArchiveRecordSetTypes - - modules/classes/FoundationArchiveRecordSetTypes - - modules/classes/FreeArchiveRecordSetTypes - - modules/classes/FrenchPrivateArchivesRecordSetTypes - - modules/classes/GovernmentArchiveRecordSetTypes - - modules/classes/HistoricalArchiveRecordSetTypes - - modules/classes/HospitalArchiveRecordSetTypes - - modules/classes/HouseArchiveRecordSetTypes - - modules/classes/IconographicArchivesRecordSetTypes - - modules/classes/InstitutionalArchiveRecordSetTypes - - modules/classes/JointArchivesRecordSetTypes - - modules/classes/LGBTArchiveRecordSetTypes - - modules/classes/LightArchivesRecordSetTypes - - modules/classes/LiteraryArchiveRecordSetTypes - - modules/classes/LocalGovernmentArchiveRecordSetTypes - - modules/classes/LocalHistoryArchiveRecordSetTypes - - modules/classes/MailingListArchiveRecordSetTypes - - modules/classes/MediaArchiveRecordSetTypes - - modules/classes/MilitaryArchiveRecordSetTypes - - modules/classes/MonasteryArchiveRecordSetTypes - - modules/classes/MunicipalArchiveRecordSetTypes - - modules/classes/MuseumArchiveRecordSetTypes - - modules/classes/MusicArchiveRecordSetTypes - - modules/classes/NationalArchivesRecordSetTypes - - modules/classes/NewspaperClippingsArchiveRecordSetTypes - - modules/classes/NobilityArchiveRecordSetTypes - - modules/classes/NotarialArchiveRecordSetTypes - - modules/classes/OnlineNewsArchiveRecordSetTypes - - modules/classes/ParishArchiveRecordSetTypes - - modules/classes/ParliamentaryArchivesRecordSetTypes - - modules/classes/PartyArchiveRecordSetTypes - - modules/classes/PerformingArtsArchiveRecordSetTypes - - modules/classes/PhotoArchiveRecordSetTypes - - modules/classes/PoliticalArchiveRecordSetTypes - - modules/classes/PostcustodialArchiveRecordSetTypes - - modules/classes/PressArchiveRecordSetTypes - - modules/classes/ProvincialArchiveRecordSetTypes - - modules/classes/ProvincialHistoricalArchiveRecordSetTypes - - modules/classes/PublicArchiveRecordSetTypes - - modules/classes/PublicArchivesInFranceRecordSetTypes - - modules/classes/RadioArchiveRecordSetTypes - - modules/classes/RegionalArchiveRecordSetTypes - - modules/classes/RegionalArchivesInIcelandRecordSetTypes - - modules/classes/RegionalEconomicArchiveRecordSetTypes - - modules/classes/RegionalStateArchivesRecordSetTypes - - modules/classes/ReligiousArchiveRecordSetTypes - - modules/classes/SchoolArchiveRecordSetTypes - - modules/classes/ScientificArchiveRecordSetTypes - - modules/classes/SectorOfArchivesInSwedenRecordSetTypes - - modules/classes/SecurityArchivesRecordSetTypes - - modules/classes/SoundArchiveRecordSetTypes - - modules/classes/SpecializedArchiveRecordSetTypes - - modules/classes/SpecializedArchivesCzechiaRecordSetTypes - - modules/classes/StateArchivesRecordSetTypes - - modules/classes/StateArchivesSectionRecordSetTypes - - modules/classes/StateDistrictArchiveRecordSetTypes - - modules/classes/StateRegionalArchiveCzechiaRecordSetTypes - - modules/classes/TelevisionArchiveRecordSetTypes - - modules/classes/TradeUnionArchiveRecordSetTypes - - modules/classes/UniversityArchiveRecordSetTypes - - modules/classes/WebArchiveRecordSetTypes - - modules/classes/WomensArchivesRecordSetTypes - # New slots for registration info - modules/slots/country # website ARCHIVED (2025-01-15) - migrated to has_or_had_official_website (Rule 53) - modules/slots/jurisdiction - modules/slots/primary_register - modules/slots/legal_jurisdiction - # New slots for identifier standards (NEW v0.9.1) - modules/slots/is_or_was_allocated_by # also_identifies_name ARCHIVED (2026-01-15) - migrated (Rule 53) - # Web portal relationship slots (NEW v0.9.5) - modules/slots/operated_by # NEW: Aggregation-related slots - modules/slots/aggregates_or_aggregated_from - modules/slots/is_or_was_aggregated_by - # Bidirectional/inverse property slots (NEW v0.9.7) - modules/slots/is_or_was_collection_of - modules/slots/has_or_had_member - modules/slots/is_or_was_member_of - # Additional bidirectional slots (v0.9.8 - comprehensive navigation) - modules/slots/encompasses_or_encompassed - modules/slots/platform_of - modules/slots/allocates_or_allocated - modules/slots/is_legal_status_of - modules/slots/offers_donation_scheme - # Rico:isOrWasHolderOf relationship slot (links custodians to record set types) - modules/slots/hold_or_held_record_set_type - modules/slots/record_note @@ -559,7 +244,6 @@ imports: - modules/slots/has_or_had_segment - modules/slots/is_or_was_equivalent_to - modules/slots/is_or_was_related_to - - modules/slots/has_or_had_branch - modules/slots/has_or_had_provenance_path - modules/slots/is_or_was_acquired_through @@ -571,6 +255,16 @@ imports: - modules/slots/has_or_had_summary - modules/slots/has_or_had_language - modules/slots/has_or_had_identifier + - modules/slots/field_number + - modules/slots/sampling_protocol + - modules/slots/habitat_description + - modules/slots/has_or_had_accreditation + - modules/slots/protocol_version + - modules/slots/has_or_had_custodian_observation + - modules/slots/has_or_had_custodian_name + - modules/slots/has_archive_path + - modules/slots/has_or_had_section + - modules/slots/protocol_name - modules/slots/states_or_stated - modules/slots/has_or_had_currency - modules/slots/transmits_or_transmitted_through @@ -589,6 +283,9 @@ imports: - modules/slots/stores_or_stored - modules/slots/starts_or_started_at_location - modules/slots/start_time + - modules/slots/end_time + - modules/slots/start_seconds + - modules/slots/end_seconds - modules/slots/start_seconds - modules/slots/start_of_the_start - modules/slots/standards_compliance @@ -606,7 +303,6 @@ imports: - modules/slots/specificity_timestamp - modules/slots/specificity_score - modules/slots/specificity_rationale - - modules/slots/specificity_annotation - modules/slots/specificity_agent - modules/slots/specification_url - modules/slots/specialized_place @@ -1024,7 +720,8 @@ imports: - modules/slots/object_alternate_name - modules/slots/oai_pmh_endpoint - modules/slots/numeric_value - - modules/slots/note_type + - modules/slots/note + - modules/slots/provider - modules/slots/note_date - modules/slots/note_content - modules/slots/notary_office @@ -1368,6 +1065,9 @@ imports: - modules/slots/has_or_had_service - modules/slots/has_or_had_series - modules/slots/has_or_had_score + - modules/slots/has_heritage_type + - modules/slots/date + - modules/slots/has_architectural_style - modules/slots/has_or_had_role - modules/slots/has_or_had_revenue - modules/slots/has_or_had_restriction @@ -1577,6 +1277,776 @@ imports: - modules/slots/allows_or_allowed - modules/slots/affects_or_affected - modules/slots/accepts_or_accepted + - modules/classes/ReconstructedEntity + - modules/classes/ProcessorAgent + - modules/classes/Percentage + - modules/classes/BioCustodianType + - modules/classes/CustodianType + - modules/classes/Activity + - modules/classes/AccessionEvent + - modules/classes/AccessLevel + - modules/classes/AccessPolicy + - modules/classes/AccessTriggerEvent + - modules/classes/Accumulation + - modules/classes/ChAnnotatorAnnotationProvenance + - modules/classes/AccountIdentifier + - modules/classes/Label + - modules/classes/Description + - modules/classes/CollectionContent + - modules/classes/CollectionType + - modules/classes/CommissionRate + - modules/classes/FindingAidType + - modules/classes/Domain + - modules/classes/DocumentType + - modules/classes/FinancialStatementType + - modules/classes/NameType + - modules/classes/Name + - modules/classes/LabelType + - modules/classes/Language + - modules/classes/LanguageProficiency + - modules/classes/AuxiliaryPlace + - modules/classes/Country + - modules/classes/Settlement + - modules/classes/Custodian + - modules/classes/CustodianArchive + - modules/classes/ReconstructionActivity + + - modules/classes/Custodian + - modules/classes/ReconstructionAgent + - modules/classes/ConfidenceValue + - modules/classes/Output + - modules/classes/Custodian + - modules/classes/Custodian + - modules/classes/Custodian + - modules/classes/Custodian + - modules/classes/DOI + - modules/classes/DarkArchive + - modules/classes/DarkArchiveRecordSetType + - modules/classes/DarkArchiveRecordSetTypes + - modules/classes/DataFormat + - modules/classes/DataFormatTypes + - modules/classes/DataLicensePolicy + - modules/classes/DataQualityFlag + - modules/classes/DataSensitivityLevel + - modules/classes/DataServiceEndpoint + - modules/classes/DataServiceEndpointType + - modules/classes/DataServiceEndpointTypes + - modules/classes/DataSource + - modules/classes/DataTierLevel + - modules/classes/DataTierSummary + - modules/classes/Dataset + - modules/classes/DatePrecision + - modules/classes/DeacidificationFacility + - modules/classes/DeceasedStatus + - modules/classes/Deliverable + - modules/classes/Department + - modules/classes/DepartmentalArchives + - modules/classes/DepartmentalArchivesRecordSetType + - modules/classes/DepartmentalArchivesRecordSetTypes + - modules/classes/DeploymentEvent + - modules/classes/DepositArchive + - modules/classes/DepositArchiveRecordSetType + - modules/classes/DepositArchiveRecordSetTypes + - modules/classes/DepositingOrganization + - modules/classes/DetectedEntity + - modules/classes/DetectedFace + - modules/classes/DetectedLandmark + - modules/classes/DetectedLogo + - modules/classes/DetectedObject + - modules/classes/DetectionLevelType + - modules/classes/DetectionLevelTypes + - modules/classes/DetectionThreshold + - modules/classes/DeviceType + - modules/classes/DeviceTypes + - modules/classes/DiarizationStatus + - modules/classes/DigitalArchive + - modules/classes/DigitalArchiveRecordSetType + - modules/classes/DigitalArchiveRecordSetTypes + - modules/classes/DigitalConfidence + - modules/classes/DigitalInstantiation + - modules/classes/Status + - modules/classes/Provenance + - modules/classes/RetrievalMethod + - modules/classes/Token + - modules/classes/CauseOfDeath + - modules/classes/CeaseEvent + + - modules/classes/ThinkingMode + - modules/classes/ReasoningContent + - modules/classes/ExhibitedObject + - modules/classes/HeritageObject + - modules/classes/CreationEvent + - modules/classes/CustodianPlace + - modules/classes/ExhibitionLocation + - modules/classes/IdentifierType + - modules/classes/IdentifierScheme + - modules/classes/IdentifierValue + - modules/classes/CanonicalForm + - modules/classes/Publisher + - modules/classes/Qualifier + - modules/classes/Quantity + - modules/classes/RadioArchive + - modules/classes/RadioArchiveRecordSetType + - modules/classes/RadioArchiveRecordSetTypes + - modules/classes/Rationale + - modules/classes/Segment + - modules/classes/GeographicExtent + - modules/classes/DigitalInstantiation + - modules/classes/Status + - modules/classes/Provenance + - modules/classes/RetrievalMethod + - modules/classes/Token + - modules/classes/CeaseEvent + - modules/classes/ThinkingMode + - modules/classes/ReasoningContent + - modules/classes/ExhibitedObject + - modules/classes/HeritageObject + - modules/classes/CreationEvent + - modules/classes/CustodianPlace + - modules/classes/ExhibitionLocation + - modules/classes/IdentifierType + - modules/classes/IdentifierScheme + - modules/classes/IdentifierValue + - modules/classes/CanonicalForm + - modules/classes/RawSource + - modules/classes/ReadingRoom + - modules/classes/ReadingRoomAnnex + - modules/classes/Reason + - modules/classes/ReasoningContent + - modules/classes/ExhibitedObject + - modules/classes/HeritageObject + - modules/classes/CreationEvent + - modules/classes/CustodianPlace + - modules/classes/ExhibitionLocation + - modules/classes/IdentifierType + - modules/classes/IdentifierScheme + - modules/classes/IdentifierValue + - modules/classes/CanonicalForm + # - modules/classes/ReconstructionActivity + - modules/classes/Custodian + - modules/classes/ReconstructionAgent + - modules/classes/ConfidenceValue + - modules/classes/Output + # - modules/classes/ReconstructionAgent + - modules/classes/ConfidenceValue + - modules/classes/Output + - modules/classes/RecordCycleStatus + - modules/classes/RecordSetType + - modules/classes/RecordSetTypes + - modules/classes/RecordStatus + - modules/classes/Reference + - modules/classes/ReferenceLink + - modules/classes/RegionalArchive + - modules/classes/RegionalArchiveRecordSetType + - modules/classes/RegionalArchiveRecordSetTypes + - modules/classes/RegionalArchivesInIceland + - modules/classes/RegionalArchivesInIcelandRecordSetType + - modules/classes/RegionalArchivesInIcelandRecordSetTypes + - modules/classes/RegionalEconomicArchive + - modules/classes/RegionalEconomicArchiveRecordSetType + - modules/classes/RegionalEconomicArchiveRecordSetTypes + - modules/classes/RegionalHistoricCenter + - modules/classes/RegionalStateArchives + - modules/classes/RegionalStateArchivesRecordSetType + - modules/classes/RegionalStateArchivesRecordSetTypes + - modules/classes/RegistrationAuthority + - modules/classes/RegistrationInfo + - modules/classes/RegistrationNumber + - modules/classes/RejectedGoogleMapsData + - modules/classes/RelatedPlace + - modules/classes/RelatedType + - modules/classes/RelatedYoutubeVideo + - modules/classes/ReligiousArchive + - modules/classes/ReligiousArchiveRecordSetType + - modules/classes/ReligiousArchiveRecordSetTypes + - modules/classes/RequirementStatus + - modules/classes/RequirementType + - modules/classes/RequirementTypes + - modules/classes/Research + - modules/classes/ResearchCenter + - modules/classes/ResearchLibrary + - modules/classes/ResearchOrganizationType + - modules/classes/ResearchSource + - modules/classes/ResearchSourceData + - modules/classes/Resolution + - modules/classes/ResourceType + - modules/classes/ResponseFormat + - modules/classes/ResponseFormatType + - modules/classes/ResponseFormatTypes + - modules/classes/Responsibility + - modules/classes/ResponsibilityType + - modules/classes/ResponsibilityTypes + - modules/classes/Restriction + - modules/classes/RetrievalAgent + - modules/classes/Agent + - modules/classes/Appointment + - modules/classes/RetrievalEvent + - modules/classes/RetrievalMethod + - modules/classes/Token + - modules/classes/CeaseEvent + - modules/classes/ThinkingMode + - modules/classes/ReasoningContent + - modules/classes/ExhibitedObject + - modules/classes/HeritageObject + - modules/classes/CreationEvent + - modules/classes/CustodianPlace + - modules/classes/ExhibitionLocation + - modules/classes/IdentifierType + - modules/classes/IdentifierScheme + - modules/classes/IdentifierValue + - modules/classes/CanonicalForm + - modules/classes/IdentifierType + - modules/classes/IdentifierScheme + - modules/classes/IdentifierValue + - modules/classes/CanonicalForm + - modules/classes/Revenue + - modules/classes/NetAsset + - modules/classes/WikidataAlignment + - modules/classes/Frequency + - modules/classes/Entity + - modules/classes/HouseNumber + - modules/classes/ComponentType + - modules/classes/FunctionType + - modules/classes/FunctionCategory + - modules/classes/Staff + - modules/classes/Species + - modules/classes/Rationale + - modules/classes/Segment + - modules/classes/GeographicExtent + - modules/classes/DigitalInstantiation + - modules/classes/Status + - modules/classes/Provenance + - modules/classes/RetrievalMethod + - modules/classes/Token + - modules/classes/CeaseEvent + - modules/classes/ThinkingMode + - modules/classes/ReasoningContent + - modules/classes/ExhibitedObject + - modules/classes/HeritageObject + - modules/classes/CreationEvent + - modules/classes/CustodianPlace + - modules/classes/ExhibitionLocation + - modules/classes/IdentifierType + - modules/classes/IdentifierScheme + - modules/classes/IdentifierValue + - modules/classes/CanonicalForm + - modules/classes/ReviewBreakdown + - modules/classes/ReviewTopics + - modules/classes/ReviewsSummary + - modules/classes/Roadmap + - modules/classes/RoomUnit + - modules/classes/SceneSegment + - modules/classes/Schema + - modules/classes/SchoolArchive + - modules/classes/SchoolArchiveRecordSetType + - modules/classes/SchoolArchiveRecordSetTypes + - modules/classes/ScientificArchive + - modules/classes/ScientificArchiveRecordSetType + - modules/classes/ScientificArchiveRecordSetTypes + - modules/classes/Scope + - modules/classes/ScopeType + - modules/classes/ScopeTypes + - modules/classes/SearchAPI + - modules/classes/SearchScore + - modules/classes/SectionLink + - modules/classes/SectorOfArchivesInSweden + - modules/classes/SectorOfArchivesInSwedenRecordSetType + - modules/classes/SectorOfArchivesInSwedenRecordSetTypes + - modules/classes/SecurityArchives + - modules/classes/SecurityArchivesRecordSetType + - modules/classes/SecurityArchivesRecordSetTypes + - modules/classes/SecurityLevel + - modules/classes/SecuritySystem + - modules/classes/Segment + - modules/classes/GeographicExtent + - modules/classes/DigitalInstantiation + - modules/classes/Status + - modules/classes/Provenance + - modules/classes/RetrievalMethod + - modules/classes/Token + - modules/classes/CeaseEvent + - modules/classes/ThinkingMode + - modules/classes/ReasoningContent + - modules/classes/ExhibitedObject + - modules/classes/HeritageObject + - modules/classes/CreationEvent + - modules/classes/CustodianPlace + - modules/classes/ExhibitionLocation + - modules/classes/IdentifierType + - modules/classes/IdentifierScheme + - modules/classes/IdentifierValue + - modules/classes/CanonicalForm + - modules/classes/SensitivityLevel + - modules/classes/Service + - modules/classes/ServiceArea + - modules/classes/ServiceType + - modules/classes/ServiceTypes + - modules/classes/Setpoint + - modules/classes/Settlement + - modules/classes/Custodian + - modules/classes/ReconstructionActivity + - modules/classes/Custodian + - modules/classes/ReconstructionAgent + - modules/classes/ConfidenceValue + - modules/classes/Output + - modules/classes/ShortCode + - modules/classes/Significance + - modules/classes/SignificanceType + - modules/classes/SignificanceTypes + - modules/classes/SilenceSegment + - modules/classes/ExhibitionLocation + - modules/classes/IdentifierType + - modules/classes/IdentifierScheme + - modules/classes/IdentifierValue + - modules/classes/CanonicalForm + - modules/classes/SnapshotPath + - modules/classes/SocialMediaContent + - modules/classes/SocialMediaPlatformType + - modules/classes/SocialMediaPlatformTypes + - modules/classes/SocialMediaPost + - modules/classes/SocialMediaPostType + - modules/classes/SocialMediaPostTypes + - modules/classes/SocialMediaProfile + - modules/classes/SocialNetworkMember + - modules/classes/SoundArchive + - modules/classes/SoundArchiveRecordSetType + - modules/classes/SoundArchiveRecordSetTypes + - modules/classes/SoundEventType + - modules/classes/Source + - modules/classes/SourceCommentCount + - modules/classes/SourceCoordinates + - modules/classes/SourceDocument + - modules/classes/SourceProvenance + - modules/classes/SourceRecord + - modules/classes/SourceReference + - modules/classes/SourceStaffEntry + - modules/classes/SourceWork + - modules/classes/Speaker + - modules/classes/LibraryType + - modules/classes/OrganizationalStructure + - modules/classes/Claim + - modules/classes/Experience + - modules/classes/SpecialCollection + - modules/classes/SpecialCollectionRecordSetType + - modules/classes/SpecializedArchive + - modules/classes/SpecializedArchiveRecordSetType + - modules/classes/SpecializedArchiveRecordSetTypes + - modules/classes/SpecializedArchivesCzechia + - modules/classes/SpecializedArchivesCzechiaRecordSetType + - modules/classes/SpecializedArchivesCzechiaRecordSetTypes + - modules/classes/Species + - modules/classes/Rationale + - modules/classes/Segment + - modules/classes/GeographicExtent + - modules/classes/DigitalInstantiation + - modules/classes/Status + - modules/classes/Provenance + - modules/classes/RetrievalMethod + - modules/classes/Token + - modules/classes/CeaseEvent + - modules/classes/ThinkingMode + - modules/classes/ReasoningContent + - modules/classes/ExhibitedObject + - modules/classes/HeritageObject + - modules/classes/CreationEvent + - modules/classes/CustodianPlace + - modules/classes/ExhibitionLocation + - modules/classes/IdentifierType + - modules/classes/IdentifierScheme + - modules/classes/IdentifierValue + - modules/classes/CanonicalForm + - modules/classes/SpecificityScore + - modules/classes/Staff + - modules/classes/Species + - modules/classes/Rationale + - modules/classes/Segment + - modules/classes/GeographicExtent + - modules/classes/DigitalInstantiation + - modules/classes/Status + - modules/classes/Provenance + - modules/classes/RetrievalMethod + - modules/classes/Token + - modules/classes/CeaseEvent + - modules/classes/ThinkingMode + - modules/classes/ReasoningContent + - modules/classes/ExhibitedObject + - modules/classes/HeritageObject + - modules/classes/CreationEvent + - modules/classes/CustodianPlace + - modules/classes/ExhibitionLocation + - modules/classes/IdentifierType + - modules/classes/IdentifierScheme + - modules/classes/IdentifierValue + - modules/classes/CanonicalForm + - modules/classes/Staff + - modules/classes/Staff + - modules/classes/Standard + - modules/classes/StandardsOrganization + - modules/classes/StateArchives + - modules/classes/StateArchivesRecordSetType + - modules/classes/StateArchivesRecordSetTypes + - modules/classes/StateArchivesSection + - modules/classes/StateArchivesSectionRecordSetType + - modules/classes/StateArchivesSectionRecordSetTypes + - modules/classes/StateDistrictArchive + - modules/classes/StateDistrictArchiveRecordSetType + - modules/classes/StateDistrictArchiveRecordSetTypes + - modules/classes/StateRegionalArchiveCzechia + - modules/classes/StateRegionalArchiveCzechiaRecordSetType + - modules/classes/StateRegionalArchiveCzechiaRecordSetTypes + - modules/classes/StatementType + - modules/classes/StatementTypes + - modules/classes/Status + - modules/classes/Provenance + - modules/classes/RetrievalMethod + - modules/classes/Token + - modules/classes/CeaseEvent + - modules/classes/ThinkingMode + - modules/classes/ReasoningContent + - modules/classes/ExhibitedObject + - modules/classes/HeritageObject + - modules/classes/CreationEvent + - modules/classes/CustodianPlace + - modules/classes/ExhibitionLocation + - modules/classes/IdentifierType + - modules/classes/IdentifierScheme + - modules/classes/IdentifierValue + - modules/classes/CanonicalForm + - modules/classes/Storage + - modules/classes/StorageLocation + - modules/classes/Storage + - modules/classes/Storage + - modules/classes/Storage + - modules/classes/Storage + - modules/classes/Storage + - modules/classes/StrategicObjective + - modules/classes/SubGuideType + - modules/classes/SubGuideTypes + - modules/classes/Subregion + - modules/classes/SubsidiaryOrganization + - modules/classes/Summary + - modules/classes/SupervisedHandling + - modules/classes/Supplier + - modules/classes/SupplierType + - modules/classes/SupplierTypes + - modules/classes/Tag + - modules/classes/TargetHumidity + - modules/classes/TasteScentHeritageType + - modules/classes/TasteScentSubType + - modules/classes/TasteScentSubTypes + - modules/classes/TaxDeductibility + - modules/classes/TaxDeductibilityType + - modules/classes/TaxDeductibilityTypes + - modules/classes/TaxScheme + - modules/classes/TaxSchemeType + - modules/classes/TaxSchemeTypes + - modules/classes/Taxon + - modules/classes/TaxonName + - modules/classes/TaxonomicAuthority + - modules/classes/TechnicalFeature + - modules/classes/TechnicalFeatureType + - modules/classes/TechnicalFeatureTypes + - modules/classes/Technique + - modules/classes/TechniqueType + - modules/classes/TechniqueTypes + - modules/classes/TechnologicalInfrastructure + - modules/classes/TechnologicalInfrastructureType + - modules/classes/TechnologicalInfrastructureTypes + - modules/classes/TelevisionArchive + - modules/classes/TelevisionArchiveRecordSetType + - modules/classes/TelevisionArchiveRecordSetTypes + - modules/classes/TemperatureDeviation + - modules/classes/TemplateSpecificityScore + - modules/classes/TemplateSpecificityType + - modules/classes/TemplateSpecificityTypes + - modules/classes/TemporaryLocation + - modules/classes/TentativeWorldHeritageSite + - modules/classes/Text + - modules/classes/TextDirection + - modules/classes/TextRegion + - modules/classes/TextSegment + - modules/classes/TextType + - modules/classes/TextTypes + - modules/classes/ThematicRoute + - modules/classes/ThinkingMode + - modules/classes/ReasoningContent + - modules/classes/ExhibitedObject + - modules/classes/HeritageObject + - modules/classes/CreationEvent + - modules/classes/CustodianPlace + - modules/classes/ExhibitionLocation + - modules/classes/IdentifierType + - modules/classes/IdentifierScheme + - modules/classes/IdentifierValue + - modules/classes/CanonicalForm + - modules/classes/Threat + - modules/classes/ThreatType + - modules/classes/ThreatTypes + - modules/classes/Thumbnail + - modules/classes/TimeEntry + - modules/classes/TimeEntryType + - modules/classes/TimeInterval + - modules/classes/TimeSlot + - modules/classes/TimeSpan + - modules/classes/WikiDataIdentifier + - modules/classes/TimeSpan + - modules/classes/WikiDataIdentifiers + - modules/classes/TimespanBlock + - modules/classes/Timestamp + - modules/classes/Title + - modules/classes/TitleType + - modules/classes/TitleTypes + - modules/classes/Token + - modules/classes/CeaseEvent + - modules/classes/ThinkingMode + - modules/classes/ReasoningContent + - modules/classes/ExhibitedObject + - modules/classes/HeritageObject + - modules/classes/CreationEvent + - modules/classes/CustodianPlace + - modules/classes/ExhibitionLocation + - modules/classes/IdentifierType + - modules/classes/IdentifierScheme + - modules/classes/IdentifierValue + - modules/classes/CanonicalForm + - modules/classes/Token + - modules/classes/Token + - modules/classes/Topic + - modules/classes/TopicType + - modules/classes/TopicTypes + - modules/classes/TrackIdentifier + - modules/classes/TradeRegister + - modules/classes/TradeUnionArchive + - modules/classes/TradeUnionArchiveRecordSetType + - modules/classes/TradeUnionArchiveRecordSetTypes + - modules/classes/TraditionalProductType + - modules/classes/TraditionalProductTypes + - modules/classes/TranscriptFormat + - modules/classes/TransferEvent + - modules/classes/TransferPolicy + - modules/classes/TransitionType + - modules/classes/TransitionTypes + - modules/classes/TransmissionMethod + - modules/classes/Treatment + - modules/classes/TreatmentType + - modules/classes/TreatmentTypes + - modules/classes/Type + - modules/classes/TypeStatus + - modules/classes/UNESCODomain + - modules/classes/UNESCODomainType + - modules/classes/UNESCODomainTypes + - modules/classes/UNESCOListStatus + - modules/classes/URL + - modules/classes/URLType + - modules/classes/URLTypes + - modules/classes/UnescoIchElement + - modules/classes/UnescoIchEnrichment + - modules/classes/Unit + - modules/classes/UnitIdentifier + - modules/classes/University + - modules/classes/UniversityArchive + - modules/classes/UniversityArchiveRecordSetType + - modules/classes/UniversityArchiveRecordSetTypes + - modules/classes/UnspecifiedType + - modules/classes/UpdateFrequency + - modules/classes/UseCase + - modules/classes/UserCommunity + - modules/classes/UserCommunityType + - modules/classes/UserCommunityTypes + - modules/classes/ValidationMetadata + - modules/classes/ValidationStatus + - modules/classes/Value + - modules/classes/VariantType + - modules/classes/VariantTypes + - modules/classes/Ventilation + - modules/classes/Venue + - modules/classes/VenueType + - modules/classes/VenueTypes + - modules/classes/Vereinsarchiv + - modules/classes/VereinsarchivRecordSetType + - modules/classes/VerificationStatus + - modules/classes/Verifier + - modules/classes/Verlagsarchiv + - modules/classes/VerlagsarchivRecordSetType + - modules/classes/Version + - modules/classes/VersionNumber + - modules/classes/Verwaltungsarchiv + - modules/classes/VerwaltungsarchivRecordSetType + - modules/classes/ViabilityStatus + - modules/classes/Video + - modules/classes/VideoAnnotation + - modules/classes/VideoAnnotationTypes + - modules/classes/VideoAudioAnnotation + - modules/classes/VideoCategoryIdentifier + - modules/classes/VideoChapter + - modules/classes/VideoChapterList + - modules/classes/VideoFrame + - modules/classes/VideoFrames + - modules/classes/VideoIdentifier + - modules/classes/Capacity + - modules/classes/CalendarSystem + - modules/classes/GLEIFIdentifier + - modules/classes/Location + - modules/classes/FoundingEvent + - modules/classes/Example + - modules/classes/AirChanges + - modules/classes/GovernmentHierarchy + - modules/classes/Confidence + - modules/classes/AudioEventSegment + - modules/classes/AspectRatio + - modules/classes/Caption + - modules/classes/DismissalEvent + - modules/classes/Author + - modules/classes/AppreciationEvent + - modules/classes/CommentReply + - modules/classes/ConfidenceThreshold + - modules/classes/ConfidenceScore + - modules/classes/Alignment + - modules/classes/MeanValue + - modules/classes/Area + - modules/classes/Group + - modules/classes/ClaimType + - modules/classes/FilePath + - modules/classes/ExtractionMethod + - modules/classes/HTTPStatusCode + - modules/classes/GeographicScope + - modules/classes/Project + - modules/classes/DigitalPlatform + - modules/classes/MetadataStandard + - modules/classes/Employer + - modules/classes/AllocationEvent + - modules/classes/AdministrativeLevel + - modules/classes/Budget + - modules/classes/FundingCall + - modules/classes/FundingSource + - modules/classes/AuxiliaryDigitalPlatform + - modules/classes/FixityVerification + - modules/classes/Heritage + - modules/classes/Currency + - modules/classes/Approver + - modules/classes/BudgetStatus + - modules/classes/EngagementMetric + - modules/classes/PublicationEvent + - modules/classes/APIEndpoint + - modules/classes/HALCAdm2Name + - modules/classes/HALCAdm1Code + - modules/classes/CustodianObservation + - modules/classes/Methodology + - modules/classes/MeasureUnit + - modules/classes/AcquisitionEvent + - modules/classes/AccessInterface + - modules/classes/GenerationEvent + - modules/classes/Manager + - modules/classes/DissolutionEvent + - modules/classes/PersonObservation + - modules/classes/HeritageSector + - modules/classes/VideoSubtitle + - modules/classes/VideoTextContent + - modules/classes/VideoTimeSegment + - modules/classes/VideoTranscript + - modules/classes/VisitingScholar + - modules/classes/WKT + - modules/classes/Warehouse + - modules/classes/WarehouseType + - modules/classes/WarehouseTypes + - modules/classes/WebArchive + - modules/classes/DigitalPlatformType + - modules/classes/WebArchive + - modules/classes/WebArchive + - modules/classes/WebArchive + - modules/classes/WebClaim + - modules/classes/WebClaimsBlock + - modules/classes/WebCollection + - modules/classes/WebEnrichment + - modules/classes/WebLink + - modules/classes/WebObservation + - modules/classes/WebPage + - modules/classes/WebPlatform + - modules/classes/WebPortal + - modules/classes/WebPortalType + - modules/classes/WebPortalTypes + - modules/classes/WebSource + - modules/classes/WhatsAppProfile + - modules/classes/Wifi + - modules/classes/WikiDataEntry + - modules/classes/WikiDataIdentifier + - modules/classes/WikidataAlignment + - modules/classes/Frequency + - modules/classes/Entity + - modules/classes/HouseNumber + - modules/classes/ComponentType + - modules/classes/FunctionType + - modules/classes/FunctionCategory + - modules/classes/Staff + - modules/classes/Species + - modules/classes/Rationale + - modules/classes/Segment + - modules/classes/GeographicExtent + - modules/classes/DigitalInstantiation + - modules/classes/Status + - modules/classes/Provenance + - modules/classes/RetrievalMethod + - modules/classes/Token + - modules/classes/CeaseEvent + - modules/classes/ThinkingMode + - modules/classes/ReasoningContent + - modules/classes/ExhibitedObject + - modules/classes/HeritageObject + - modules/classes/CreationEvent + - modules/classes/CustodianPlace + - modules/classes/ExhibitionLocation + - modules/classes/IdentifierType + - modules/classes/IdentifierScheme + - modules/classes/IdentifierValue + - modules/classes/CanonicalForm + - modules/classes/WikidataApiMetadata + - modules/classes/WikidataArchitecture + - modules/classes/WikidataClaims + - modules/classes/WikidataClassification + - modules/classes/WikidataCollectionInfo + - modules/classes/WikidataContact + - modules/classes/WikidataCoordinates + - modules/classes/WikidataEnrichment + - modules/classes/WikidataEntity + - modules/classes/WikidataIdentifiers + - modules/classes/WikidataLocation + - modules/classes/WikidataMedia + - modules/classes/WikidataOrganization + - modules/classes/WikidataRecognition + - modules/classes/WikidataResolvedEntities + - modules/classes/WikidataSitelinks + - modules/classes/WikidataSocialMedia + - modules/classes/WikidataTemporal + - modules/classes/WikidataTimeValue + - modules/classes/WikidataWeb + - modules/classes/WomensArchives + - modules/classes/WomensArchivesRecordSetType + - modules/classes/WomensArchivesRecordSetTypes + - modules/classes/CallForApplication + - modules/classes/FundingRate + - modules/classes/FundingRequirement + - modules/classes/CoFunding + - modules/classes/WordCount + - modules/classes/WorkExperience + - modules/classes/WorkRevision + - modules/classes/WorldCatIdentifier + - modules/classes/WorldHeritageSite + - modules/classes/WritingSystem + - modules/classes/XPath + - modules/classes/XPathScore + - modules/classes/YoutubeChannel + - modules/classes/YoutubeComment + - modules/classes/YoutubeEnrichment + - modules/classes/YoutubeProvenance + - modules/classes/YoutubeSocialLink + - modules/classes/YoutubeSourceRecord + - modules/classes/YoutubeTranscript + - modules/classes/YoutubeVideo + - modules/classes/HeritageSocietyType + - modules/classes/Identifier + - modules/classes/Policy + - modules/classes/TimeSpan + - modules/classes/WikiDataIdentifier comments: - "HYPER-MODULAR STRUCTURE: Direct imports of all component files" - "Each class, slot, and enum has its own file" diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index c8306a6577..3812b073ba 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,12 +1,12 @@ { - "generated": "2026-02-02T14:57:17.598Z", + "generated": "2026-02-02T20:36:34.139Z", "schemaRoot": "/schemas/20251121/linkml", - "totalFiles": 2906, + "totalFiles": 2916, "categoryCounts": { "main": 4, - "class": 1389, - "enum": 156, - "slot": 1353, + "class": 1378, + "enum": 157, + "slot": 1373, "module": 4 }, "categories": [ @@ -155,11 +155,6 @@ "path": "modules/classes/Acquisition.yaml", "category": "class" }, - { - "name": "AcquisitionBudget", - "path": "modules/classes/AcquisitionBudget.yaml", - "category": "class" - }, { "name": "AcquisitionEvent", "path": "modules/classes/AcquisitionEvent.yaml", @@ -315,11 +310,6 @@ "path": "modules/classes/Alpha3Code.yaml", "category": "class" }, - { - "name": "AlternativeName", - "path": "modules/classes/AlternativeName.yaml", - "category": "class" - }, { "name": "Altitude", "path": "modules/classes/Altitude.yaml", @@ -2045,11 +2035,6 @@ "path": "modules/classes/DeviceTypes.yaml", "category": "class" }, - { - "name": "DiarizationSegment", - "path": "modules/classes/DiarizationSegment.yaml", - "category": "class" - }, { "name": "DiarizationStatus", "path": "modules/classes/DiarizationStatus.yaml", @@ -2175,11 +2160,6 @@ "path": "modules/classes/DigitalProficiency.yaml", "category": "class" }, - { - "name": "DigitizationBudget", - "path": "modules/classes/DigitizationBudget.yaml", - "category": "class" - }, { "name": "DimArchives", "path": "modules/classes/DimArchives.yaml", @@ -2360,11 +2340,6 @@ "path": "modules/classes/EADDownload.yaml", "category": "class" }, - { - "name": "EADIdentifier", - "path": "modules/classes/EADIdentifier.yaml", - "category": "class" - }, { "name": "EBook", "path": "modules/classes/EBook.yaml", @@ -3550,11 +3525,6 @@ "path": "modules/classes/Image.yaml", "category": "class" }, - { - "name": "ImagingEquipment", - "path": "modules/classes/ImagingEquipment.yaml", - "category": "class" - }, { "name": "ImpactMeasurement", "path": "modules/classes/ImpactMeasurement.yaml", @@ -3785,11 +3755,6 @@ "path": "modules/classes/LegalResponsibilityCollection.yaml", "category": "class" }, - { - "name": "LEIIdentifier", - "path": "modules/classes/LEIIdentifier.yaml", - "category": "class" - }, { "name": "LGBTArchive", "path": "modules/classes/LGBTArchive.yaml", @@ -4300,11 +4265,6 @@ "path": "modules/classes/MusicArchiveRecordSetTypes.yaml", "category": "class" }, - { - "name": "MusicSegment", - "path": "modules/classes/MusicSegment.yaml", - "category": "class" - }, { "name": "Nachlass", "path": "modules/classes/Nachlass.yaml", @@ -5555,11 +5515,6 @@ "path": "modules/classes/SensitivityLevel.yaml", "category": "class" }, - { - "name": "Series", - "path": "modules/classes/Series.yaml", - "category": "class" - }, { "name": "Service", "path": "modules/classes/Service.yaml", @@ -5781,13 +5736,8 @@ "category": "class" }, { - "name": "SpecificityAnnotation", - "path": "modules/classes/SpecificityAnnotation.yaml", - "category": "class" - }, - { - "name": "SpeechSegment", - "path": "modules/classes/SpeechSegment.yaml", + "name": "SpecificityScore", + "path": "modules/classes/SpecificityScore.yaml", "category": "class" }, { @@ -5905,11 +5855,6 @@ "path": "modules/classes/StorageConditionPolicy.yaml", "category": "class" }, - { - "name": "StorageFacility", - "path": "modules/classes/StorageFacility.yaml", - "category": "class" - }, { "name": "StorageLocation", "path": "modules/classes/StorageLocation.yaml", @@ -7026,6 +6971,11 @@ "path": "modules/enums/AsserterTypeEnum.yaml", "category": "enum" }, + { + "name": "AttestationConfidenceEnum", + "path": "modules/enums/AttestationConfidenceEnum.yaml", + "category": "enum" + }, { "name": "AudioEventTypeEnum", "path": "modules/enums/AudioEventTypeEnum.yaml", @@ -7778,63 +7728,63 @@ "displayName": "Slots", "files": [ { - "name": "accepts_or_accepted", - "path": "modules/slots/accepts_or_accepted.yaml", + "name": "accept", + "path": "modules/slots/20260202_matang/accept.yaml", "category": "slot" }, { - "name": "affects_or_affected", - "path": "modules/slots/affects_or_affected.yaml", + "name": "affect", + "path": "modules/slots/20260202_matang/affect.yaml", "category": "slot" }, { - "name": "aggregates_or_aggregated_from", - "path": "modules/slots/aggregates_or_aggregated_from.yaml", + "name": "aggregate_from", + "path": "modules/slots/20260202_matang/aggregate_from.yaml", "category": "slot" }, { - "name": "allocates_or_allocated", - "path": "modules/slots/allocates_or_allocated.yaml", + "name": "allocate", + "path": "modules/slots/20260202_matang/allocate.yaml", "category": "slot" }, { - "name": "allows_or_allowed", - "path": "modules/slots/allows_or_allowed.yaml", + "name": "allow", + "path": "modules/slots/20260202_matang/allow.yaml", "category": "slot" }, { - "name": "analyzes_or_analyzed", - "path": "modules/slots/analyzes_or_analyzed.yaml", + "name": "analyze", + "path": "modules/slots/20260202_matang/analyze.yaml", "category": "slot" }, { - "name": "applies_or_applied_to", - "path": "modules/slots/applies_or_applied_to.yaml", + "name": "api_ver", + "path": "modules/slots/api_ver.yaml", "category": "slot" }, { - "name": "asserts_or_asserted", - "path": "modules/slots/asserts_or_asserted.yaml", + "name": "apply_to", + "path": "modules/slots/20260202_matang/apply_to.yaml", + "category": "slot" + }, + { + "name": "assert", + "path": "modules/slots/20260202_matang/assert.yaml", + "category": "slot" + }, + { + "name": "basionym_authority", + "path": "modules/slots/basionym_authority.yaml", "category": "slot" }, { "name": "begin_of_the_begin", - "path": "modules/slots/begin_of_the_begin.yaml", + "path": "modules/slots/20260202_matang/begin_of_the_begin.yaml", "category": "slot" }, { "name": "begin_of_the_end", - "path": "modules/slots/begin_of_the_end.yaml", - "category": "slot" - }, - { - "name": "can_or_could_be_fulfilled_by", - "path": "modules/slots/can_or_could_be_fulfilled_by.yaml", - "category": "slot" - }, - { - "name": "can_or_could_be_retrieved_from", - "path": "modules/slots/can_or_could_be_retrieved_from.yaml", + "path": "modules/slots/20260202_matang/begin_of_the_end.yaml", "category": "slot" }, { @@ -7843,8 +7793,18 @@ "category": "slot" }, { - "name": "ceases_or_ceased_through", - "path": "modules/slots/ceases_or_ceased_through.yaml", + "name": "categorized_as", + "path": "modules/slots/20260202_matang/categorized_as.yaml", + "category": "slot" + }, + { + "name": "ceased_through", + "path": "modules/slots/20260202_matang/ceased_through.yaml", + "category": "slot" + }, + { + "name": "changed_through", + "path": "modules/slots/20260202_matang/changed_through.yaml", "category": "slot" }, { @@ -7857,19 +7817,14 @@ "path": "modules/slots/changes_or_changed_ownership_to.yaml", "category": "slot" }, - { - "name": "changes_or_changed_through", - "path": "modules/slots/changes_or_changed_through.yaml", - "category": "slot" - }, { "name": "classifies_or_classified", "path": "modules/slots/classifies_or_classified.yaml", "category": "slot" }, { - "name": "collects_or_collected", - "path": "modules/slots/collects_or_collected.yaml", + "name": "collect", + "path": "modules/slots/20260202_matang/collect.yaml", "category": "slot" }, { @@ -8477,6 +8432,16 @@ "path": "modules/slots/end_of_the_end.yaml", "category": "slot" }, + { + "name": "end_seconds", + "path": "modules/slots/end_seconds.yaml", + "category": "slot" + }, + { + "name": "end_time", + "path": "modules/slots/end_time.yaml", + "category": "slot" + }, { "name": "estimates_or_estimated", "path": "modules/slots/estimates_or_estimated.yaml", @@ -8522,6 +8487,11 @@ "path": "modules/slots/exposes_or_exposed.yaml", "category": "slot" }, + { + "name": "field_number", + "path": "modules/slots/field_number.yaml", + "category": "slot" + }, { "name": "filters_or_filtered", "path": "modules/slots/filters_or_filtered.yaml", @@ -8532,6 +8502,16 @@ "path": "modules/slots/final_of_the_final.yaml", "category": "slot" }, + { + "name": "foo_bar", + "path": "modules/slots/foo_bar.yaml", + "category": "slot" + }, + { + "name": "fulfilled_by", + "path": "modules/slots/20260202_matang/fulfilled_by.yaml", + "category": "slot" + }, { "name": "generates_or_generated", "path": "modules/slots/generates_or_generated.yaml", @@ -8547,11 +8527,36 @@ "path": "modules/slots/grants_or_granted_access_through.yaml", "category": "slot" }, + { + "name": "habitat_description", + "path": "modules/slots/habitat_description.yaml", + "category": "slot" + }, + { + "name": "has_api_version", + "path": "modules/slots/has_api_version.yaml", + "category": "slot" + }, + { + "name": "has_architectural_style", + "path": "modules/slots/has_architectural_style.yaml", + "category": "slot" + }, + { + "name": "has_archive_path", + "path": "modules/slots/has_archive_path.yaml", + "category": "slot" + }, { "name": "has_audio_quality_score", "path": "modules/slots/has_audio_quality_score.yaml", "category": "slot" }, + { + "name": "has_heritage_type", + "path": "modules/slots/has_heritage_type.yaml", + "category": "slot" + }, { "name": "has_locker", "path": "modules/slots/has_locker.yaml", @@ -8567,6 +8572,11 @@ "path": "modules/slots/has_or_had_accessibility_feature.yaml", "category": "slot" }, + { + "name": "has_or_had_accreditation", + "path": "modules/slots/has_or_had_accreditation.yaml", + "category": "slot" + }, { "name": "has_or_had_accumulation", "path": "modules/slots/has_or_had_accumulation.yaml", @@ -8722,11 +8732,6 @@ "path": "modules/slots/has_or_had_carrier.yaml", "category": "slot" }, - { - "name": "has_or_had_category", - "path": "modules/slots/has_or_had_category.yaml", - "category": "slot" - }, { "name": "has_or_had_chapter", "path": "modules/slots/has_or_had_chapter.yaml", @@ -8817,6 +8822,16 @@ "path": "modules/slots/has_or_had_custodian.yaml", "category": "slot" }, + { + "name": "has_or_had_custodian_name", + "path": "modules/slots/has_or_had_custodian_name.yaml", + "category": "slot" + }, + { + "name": "has_or_had_custodian_observation", + "path": "modules/slots/has_or_had_custodian_observation.yaml", + "category": "slot" + }, { "name": "has_or_had_data_quality_notes", "path": "modules/slots/has_or_had_data_quality_notes.yaml", @@ -9082,11 +9097,6 @@ "path": "modules/slots/has_or_had_hyponym.yaml", "category": "slot" }, - { - "name": "has_or_had_identifier", - "path": "modules/slots/has_or_had_identifier.yaml", - "category": "slot" - }, { "name": "has_or_had_image", "path": "modules/slots/has_or_had_image.yaml", @@ -9382,11 +9392,6 @@ "path": "modules/slots/has_or_had_reference.yaml", "category": "slot" }, - { - "name": "has_or_had_reply", - "path": "modules/slots/has_or_had_reply.yaml", - "category": "slot" - }, { "name": "has_or_had_requirement", "path": "modules/slots/has_or_had_requirement.yaml", @@ -9442,11 +9447,6 @@ "path": "modules/slots/has_or_had_scope.yaml", "category": "slot" }, - { - "name": "has_or_had_score", - "path": "modules/slots/has_or_had_score.yaml", - "category": "slot" - }, { "name": "has_or_had_secondary_platform", "path": "modules/slots/has_or_had_secondary_platform.yaml", @@ -9662,11 +9662,6 @@ "path": "modules/slots/has_or_had_unit.yaml", "category": "slot" }, - { - "name": "has_or_had_url", - "path": "modules/slots/has_or_had_url.yaml", - "category": "slot" - }, { "name": "has_or_had_use_case", "path": "modules/slots/has_or_had_use_case.yaml", @@ -9707,11 +9702,21 @@ "path": "modules/slots/has_or_had_writing_system.yaml", "category": "slot" }, + { + "name": "has_score", + "path": "modules/slots/20260202_matang/has_score.yaml", + "category": "slot" + }, { "name": "has_supervised_handling", "path": "modules/slots/has_supervised_handling.yaml", "category": "slot" }, + { + "name": "has_url", + "path": "modules/slots/20260202_matang/has_url.yaml", + "category": "slot" + }, { "name": "has_wifi", "path": "modules/slots/has_wifi.yaml", @@ -9727,6 +9732,11 @@ "path": "modules/slots/hold_or_held_record_set_type.yaml", "category": "slot" }, + { + "name": "identified_by", + "path": "modules/slots/20260202_matang/identified_by.yaml", + "category": "slot" + }, { "name": "identifies_or_identified", "path": "modules/slots/identifies_or_identified.yaml", @@ -10562,6 +10572,11 @@ "path": "modules/slots/is_or_was_published_by.yaml", "category": "slot" }, + { + "name": "is_or_was_recombined", + "path": "modules/slots/is_or_was_recombined.yaml", + "category": "slot" + }, { "name": "is_or_was_related_to", "path": "modules/slots/is_or_was_related_to.yaml", @@ -11797,6 +11812,11 @@ "path": "modules/slots/noise_floor_db.yaml", "category": "slot" }, + { + "name": "nomenclatural_code", + "path": "modules/slots/nomenclatural_code.yaml", + "category": "slot" + }, { "name": "nonprofit_subtype", "path": "modules/slots/nonprofit_subtype.yaml", @@ -13057,6 +13077,26 @@ "path": "modules/slots/profile_name.yaml", "category": "slot" }, + { + "name": "profile_url", + "path": "modules/slots/profile_url.yaml", + "category": "slot" + }, + { + "name": "protocol_name", + "path": "modules/slots/protocol_name.yaml", + "category": "slot" + }, + { + "name": "protocol_version", + "path": "modules/slots/protocol_version.yaml", + "category": "slot" + }, + { + "name": "provider", + "path": "modules/slots/provider.yaml", + "category": "slot" + }, { "name": "provides_or_provided", "path": "modules/slots/provides_or_provided.yaml", @@ -13422,6 +13462,11 @@ "path": "modules/slots/replaces_primary_location.yaml", "category": "slot" }, + { + "name": "replied_to", + "path": "modules/slots/20260202_matang/replied_to.yaml", + "category": "slot" + }, { "name": "report_document", "path": "modules/slots/report_document.yaml", @@ -13697,6 +13742,11 @@ "path": "modules/slots/retrieved_by.yaml", "category": "slot" }, + { + "name": "retrieved_from", + "path": "modules/slots/20260202_matang/retrieved_from.yaml", + "category": "slot" + }, { "name": "retrieved_on", "path": "modules/slots/retrieved_on.yaml", @@ -13827,6 +13877,11 @@ "path": "modules/slots/sales_activity.yaml", "category": "slot" }, + { + "name": "sampling_protocol", + "path": "modules/slots/sampling_protocol.yaml", + "category": "slot" + }, { "name": "scene_count", "path": "modules/slots/scene_count.yaml", @@ -14332,11 +14387,6 @@ "path": "modules/slots/specificity_agent.yaml", "category": "slot" }, - { - "name": "specificity_annotation", - "path": "modules/slots/specificity_annotation.yaml", - "category": "slot" - }, { "name": "specificity_rationale", "path": "modules/slots/specificity_rationale.yaml", diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/APIEndpoint.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/APIEndpoint.yaml index e5309fcfb2..971d2cf514 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/APIEndpoint.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/APIEndpoint.yaml @@ -20,6 +20,6 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_url \ No newline at end of file + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_url diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/APIRequest.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/APIRequest.yaml index 918a8742d9..1dba8727c1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/APIRequest.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/APIRequest.yaml @@ -3,16 +3,17 @@ name: APIRequest title: APIRequest description: An API request event. prefixes: + rov: http://www.w3.org/ns/regorg# linkml: https://w3id.org/linkml/ schema: http://schema.org/ skos: http://www.w3.org/2004/02/skos/core# rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_endpoint -- ../slots/has_or_had_provenance -- ../slots/has_or_had_version + - linkml:types + - ../slots/has_or_had_endpoint + - ../slots/has_or_had_provenance + - ../slots/has_or_had_version classes: APIRequest: class_uri: prov:Activity diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/APIVersion.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/APIVersion.yaml index 1f116aebbe..3189afa14a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/APIVersion.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/APIVersion.yaml @@ -9,16 +9,16 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_label classes: APIVersion: class_uri: schema:SoftwareApplication description: Version of an API. slots: - has_or_had_label - - has_or_had_identifier + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AVEquipment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AVEquipment.yaml index 6ca4b2e072..542108919d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AVEquipment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AVEquipment.yaml @@ -15,9 +15,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name -- ../slots/has_or_had_type + - linkml:types + - ../slots/has_or_had_name + - ../slots/has_or_had_type classes: AVEquipment: class_uri: schema:Product diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AcademicArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AcademicArchive.yaml index a5ec94e0c1..58cdf89662 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AcademicArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AcademicArchive.yaml @@ -8,28 +8,15 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./AcademicArchiveRecordSetType -- ./AcademicArchiveRecordSetTypes -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_hypernym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_related_to classes: AcademicArchive: is_a: ArchiveOrganizationType @@ -40,7 +27,6 @@ classes: - hold_or_held_record_set_type - has_or_had_hypernym - has_or_had_label - - specificity_annotation - has_or_had_score - is_or_was_related_to structured_aliases: @@ -75,7 +61,7 @@ classes: hold_or_held_record_set_type: equals_expression: '["hc:UniversityAdministrativeFonds", "hc:StudentRecordSeries", "hc:FacultyPaperCollection", "hc:CampusDocumentationCollection"] ' - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetType.yaml index 016edf1ca3..27bb8ac6c0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetType.yaml @@ -8,16 +8,11 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to classes: AcademicArchiveRecordSetType: description: A rico:RecordSetType for classifying collections of academic and @@ -26,7 +21,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope - is_or_was_related_to diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetTypes.yaml index fc5a6f9a9d..dcc54cf16d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetTypes.yaml @@ -12,23 +12,17 @@ prefixes: bf: http://id.loc.gov/ontologies/bibframe/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/privacy_note -- ../slots/record_note -- ../slots/record_set_type -- ../slots/scope_exclude -- ../slots/scope_include -- ../slots/specificity_annotation -- ./AcademicArchive -- ./AcademicArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./AcademicArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/privacy_note + - ../slots/record_note + - ../slots/record_set_type + - ../slots/scope_exclude + - ../slots/scope_include classes: UniversityAdministrativeFonds: is_a: AcademicArchiveRecordSetType @@ -67,11 +61,10 @@ classes: - accreditation records - executive correspondence - institutional bylaws - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds - broad_mappings: - wd:Q1643722 - rico:RecordSetType - skos:Concept @@ -83,7 +76,6 @@ classes: - rico-rst:Fonds slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,11 +143,10 @@ classes: - disciplinary records - student organizations - financial aid records - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series - broad_mappings: - wd:Q185583 - rico:RecordSetType - skos:Concept @@ -168,7 +159,6 @@ classes: - UniversityAdministrativeFonds slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -235,11 +225,10 @@ classes: - conference papers - professional papers - academic papers - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds - broad_mappings: - wd:Q22075301 - rico:RecordSetType - skos:Concept @@ -255,7 +244,6 @@ classes: restrictions on access or publication specified by donor agreement. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -319,11 +307,10 @@ classes: - event documentation - building documentation - campus life - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q9388534 - rico:RecordSetType - skos:Concept @@ -339,7 +326,6 @@ classes: by subject, format, or documentation purpose rather than strict provenance. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AcademicInstitution.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AcademicInstitution.yaml index 48f1706901..4de8aeb34e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AcademicInstitution.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AcademicInstitution.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: AcademicInstitution: class_uri: schema:EducationalOrganization diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AcademicProgram.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AcademicProgram.yaml index b421397e91..a21fe41691 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AcademicProgram.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AcademicProgram.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: AcademicProgram: class_uri: schema:EducationalOccupationalProgram diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Access.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Access.yaml index 890587f572..1465f6f82a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Access.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Access.yaml @@ -9,16 +9,14 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ default_prefix: hc imports: -- linkml:types -- ../enums/AccessTypeEnum -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_frequency -- ../slots/has_or_had_type -- ../slots/has_or_had_user_category -- ../slots/temporal_extent -- ./Frequency -- ./TimeSpan + - linkml:types + - ../enums/AccessTypeEnum + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_frequency + - ../slots/has_or_had_type + - ../slots/has_or_had_user_category + - ../slots/temporal_extent classes: Access: class_uri: dcterms:RightsStatement diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AccessApplication.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AccessApplication.yaml index 296331e2c5..1e9f21b6f3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AccessApplication.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AccessApplication.yaml @@ -7,11 +7,10 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_url -- ./URL + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_url default_prefix: hc classes: AccessApplication: @@ -23,7 +22,7 @@ classes: slot_usage: has_or_had_url: range: uri - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AccessControl.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AccessControl.yaml index f673e28caa..bccdab1de7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AccessControl.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AccessControl.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: AccessControl: class_uri: schema:DigitalDocumentPermission diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AccessInterface.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AccessInterface.yaml index d5bf58b215..6be20423e2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AccessInterface.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AccessInterface.yaml @@ -7,11 +7,10 @@ prefixes: hc: https://nde.nl/ontology/hc/ dcat: http://www.w3.org/ns/dcat# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_url -- ./URL + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_url default_prefix: hc classes: AccessInterface: @@ -23,7 +22,7 @@ classes: slot_usage: has_or_had_url: range: uri - inlined: true + inlined: false # Fixed invalid inline for primitive type required: true annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AccessLevel.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AccessLevel.yaml index 6371853de3..f58da6f9cf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AccessLevel.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AccessLevel.yaml @@ -8,8 +8,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: AccessLevel: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml index f59fb2a327..4405253c09 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml @@ -12,37 +12,26 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/credentials_required -- ../slots/cultural_protocol_url -- ../slots/has_or_had_description -- ../slots/has_or_had_embargo_end_date -- ../slots/has_or_had_embargo_reason -- ../slots/has_or_had_level -- ../slots/has_or_had_score -- ../slots/imposes_or_imposed -- ../slots/legal_basis -- ../slots/policy_id -- ../slots/policy_name -- ../slots/poses_or_posed_condition -- ../slots/registration_required -- ../slots/requires_appointment -- ../slots/requires_or_required -- ../slots/review_date -- ../slots/rights_statement -- ../slots/rights_statement_url -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./AccessLevel -- ./Appointment -- ./Condition -- ./Description -- ./Fee -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../slots/credentials_required + - ../slots/cultural_protocol_url + - ../slots/has_or_had_description + - ../slots/has_or_had_embargo_end_date + - ../slots/has_or_had_embargo_reason + - ../slots/has_or_had_level + - ../slots/has_or_had_score + - ../slots/imposes_or_imposed + - ../slots/legal_basis + - ../slots/policy_id + - ../slots/policy_name + - ../slots/poses_or_posed_condition + - ../slots/registration_required + - ../slots/requires_appointment + - ../slots/requires_or_required + - ../slots/review_date + - ../slots/rights_statement + - ../slots/rights_statement_url + - ../slots/temporal_extent classes: AccessPolicy: class_uri: premis:RightsStatus @@ -53,8 +42,8 @@ classes: \ for preservation, not current access\n- Access restricted until triggering conditions (time, event)\n- \"Gray literature\" or un-catalogued backlogs awaiting processing\n" exact_mappings: - premis:RightsStatus - - dcterms:accessRights close_mappings: + - dcterms:accessRights - rico:Rule - schema:ActionAccessSpecification related_mappings: @@ -77,18 +66,17 @@ classes: - review_date - rights_statement - rights_statement_url - - specificity_annotation - has_or_had_score - temporal_extent slot_usage: policy_id: - range: uriorcurie +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/access-policy/open-access policy_name: - range: string +# range: string required: true examples: - value: Open Access @@ -106,8 +94,8 @@ classes: - value: has_or_had_label: EMBARGOED has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: Open to all visitors during reading room hours (Mon-Fri 9-17) @@ -127,7 +115,7 @@ classes: has_or_had_description: description_text: Registration form must be completed rights_statement: - range: string +# range: string examples: - value: In Copyright - value: No Copyright - United States @@ -146,13 +134,13 @@ classes: examples: - value: true credentials_required: - range: string +# range: string examples: - value: INSTITUTIONAL - value: true imposes_or_imposed: - range: Fee - inlined: true +# range: string # Fee + inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: @@ -171,7 +159,7 @@ classes: examples: - value: '2050-01-01' has_or_had_embargo_reason: - range: string +# range: string examples: - value: Donor privacy restrictions per deed of gift - value: Contains personal data protected under GDPR @@ -180,7 +168,7 @@ classes: examples: - value: https://localcontexts.org/tk-labels/ legal_basis: - range: string +# range: string examples: - value: General Data Protection Regulation (GDPR) - value: Freedom of Information Act exemption 6 @@ -191,7 +179,7 @@ classes: temporal_extent: range: TimeSpan inlined: true - required: false + required: true examples: - value: begin_of_the_begin: '2024-01-01' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AccessTriggerEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AccessTriggerEvent.yaml index 3ef1369efc..f3da675263 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AccessTriggerEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AccessTriggerEvent.yaml @@ -9,9 +9,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/temporal_extent + - linkml:types + - ../slots/has_or_had_description + - ../slots/temporal_extent classes: AccessTriggerEvent: class_uri: prov:Activity diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AccessibilityFeature.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AccessibilityFeature.yaml index 1e5c0a672e..32760e3861 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AccessibilityFeature.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AccessibilityFeature.yaml @@ -12,9 +12,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: AccessibilityFeature: class_uri: schema:LocationFeatureSpecification diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AccessionEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AccessionEvent.yaml index 4cbe9b0c94..0b2bdcc746 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AccessionEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AccessionEvent.yaml @@ -8,13 +8,11 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/temporal_extent -- ./Identifier -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/temporal_extent default_prefix: hc classes: AccessionEvent: @@ -23,7 +21,7 @@ classes: - temporal_extent - has_or_had_label - has_or_had_description - - has_or_had_identifier + - identified_by slot_usage: temporal_extent: required: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AccessionNumber.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AccessionNumber.yaml index a1d7f477b1..392d7a9fd9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AccessionNumber.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AccessionNumber.yaml @@ -9,10 +9,9 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ./Identifier + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: AccessionNumber: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AccountIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AccountIdentifier.yaml index dd6b092d92..0e8ad8639c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AccountIdentifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AccountIdentifier.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: AccountIdentifier: class_uri: schema:PropertyValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AccountStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AccountStatus.yaml index c8345240aa..53986f5f20 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AccountStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AccountStatus.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: AccountStatus: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Accreditation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Accreditation.yaml index 88f4069c72..cb9527b3cd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Accreditation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Accreditation.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: Accreditation: class_uri: schema:Permit diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AccreditationBody.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AccreditationBody.yaml index 8e94e23f98..3f1ca1a2a4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AccreditationBody.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AccreditationBody.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: AccreditationBody: class_uri: schema:Organization diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AccreditationEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AccreditationEvent.yaml index 4f725b1ece..2ca9c41531 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AccreditationEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AccreditationEvent.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/temporal_extent + - linkml:types + - ../slots/temporal_extent classes: AccreditationEvent: class_uri: prov:Activity diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Accumulation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Accumulation.yaml index ba2a106a82..3607972cc8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Accumulation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Accumulation.yaml @@ -9,9 +9,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/temporal_extent + - linkml:types + - ../slots/has_or_had_description + - ../slots/temporal_extent classes: Accumulation: class_uri: rico:AccumulationRelation diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AccuracyLevel.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AccuracyLevel.yaml index 74257df169..a8a24ef48c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AccuracyLevel.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AccuracyLevel.yaml @@ -9,10 +9,10 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_value classes: AccuracyLevel: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Acquisition.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Acquisition.yaml index 6720ce04a4..71a7bc52e9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Acquisition.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Acquisition.yaml @@ -15,16 +15,10 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -default_range: string + - linkml:types + - ../slots/has_or_had_score + - ../slots/temporal_extent +# default_range: string enums: AcquisitionMethodEnum: description: Methods by which items are acquired for collections. @@ -89,7 +83,6 @@ classes: - dwc:Event slots: - temporal_extent - - specificity_annotation - has_or_had_score comments: - Created per slot_fixes.yaml revision for collection_date migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AcquisitionBudget.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AcquisitionBudget.yaml deleted file mode 100644 index 3a4f41e121..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AcquisitionBudget.yaml +++ /dev/null @@ -1,21 +0,0 @@ -id: https://nde.nl/ontology/hc/class/AcquisitionBudget -name: AcquisitionBudget -title: AcquisitionBudget -description: >- - Budget allocated for acquisitions. -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ -default_prefix: hc -imports: -- linkml:types -classes: - AcquisitionBudget: - class_uri: schema:MonetaryAmount - description: Acquisition budget. - annotations: - specificity_score: 0.1 - specificity_rationale: "Generic utility class created during migration" - custodian_types: '["*"]' - slots: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AcquisitionEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AcquisitionEvent.yaml index 196594ed80..9f14db3a2b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AcquisitionEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AcquisitionEvent.yaml @@ -8,15 +8,12 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_method -- ../slots/has_or_had_origin -- ../slots/has_or_had_provenance -- ../slots/temporal_extent -- ./AcquisitionMethod -- ./Entity -- ./Provenance -- ./TimeSpan + - ./Entity + - linkml:types + - ../slots/has_or_had_method + - ../slots/has_or_had_origin + - ../slots/has_or_had_provenance + - ../slots/temporal_extent default_prefix: hc classes: AcquisitionEvent: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AcquisitionMethod.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AcquisitionMethod.yaml index 141b620716..b3895d515c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AcquisitionMethod.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AcquisitionMethod.yaml @@ -14,9 +14,9 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: AcquisitionMethod: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Activity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Activity.yaml index 9edc39c33d..758686fa8e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Activity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Activity.yaml @@ -13,29 +13,17 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/has_or_had_status -- ../slots/is_or_was_succeeded_by -- ../slots/note -- ../slots/preceding_activity -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./ActivityType -- ./ActivityTypes -- ./Description -- ./Identifier -- ./Label -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Activity + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/has_or_had_status + - ../slots/is_or_was_succeeded_by + - ../slots/note + - ../slots/preceding_activity + - ../slots/temporal_extent classes: Activity: class_uri: prov:Activity @@ -50,7 +38,7 @@ classes: related_mappings: - aat:300054277 slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - temporal_extent @@ -58,27 +46,26 @@ classes: - preceding_activity - has_or_had_status - note - - specificity_annotation - has_or_had_score slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: identifier_value: https://nde.nl/ontology/hc/activity/rijksmuseum-inventory-2025-001 - value: identifier_value: https://nde.nl/ontology/hc/activity/nationaal-archief-digitization-voc-2024 has_or_had_label: - range: string +# range: string required: true examples: - value: 2025 Annual Collection Inventory - value: VOC Archives Digitization Project Phase 2 has_or_had_description: - range: string +# range: string required: false examples: - value: "Annual physical inventory of the Dutch Masters collection, \ncovering approximately 450 paintings. Spot-check methodology \nwith 20% sample verified against catalog records.\n" @@ -93,25 +80,25 @@ classes: begin_of_the_begin: '2025-01-15' end_of_the_end: '2025-03-31' is_or_was_succeeded_by: - range: string +# range: string multivalued: true inlined: false examples: - value: https://nde.nl/ontology/hc/activity/conservation-treatment-2025 preceding_activity: - range: string +# range: string inlined: false examples: - value: https://nde.nl/ontology/hc/activity/condition-survey-2024 has_or_had_status: - range: string +# range: string required: false examples: - value: IN_PROGRESS - value: COMPLETED - value: PLANNED note: - range: string +# range: string multivalued: true annotations: specificity_score: '0.50' @@ -130,7 +117,7 @@ classes: - https://www.ica.org/standards/RiC/ontology examples: - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/activity/rijksmuseum-inventory-2025-001 has_or_had_label: 2025 Annual Collection Inventory - Dutch Masters has_or_had_description: "Annual physical inventory of the Dutch Masters collection \n(Gallery of Honour and adjacent galleries). Spot-check methodology \nwith 20% sample verification against CMS records.\n" @@ -139,7 +126,7 @@ classes: end_of_the_end: '2025-03-31' has_or_had_status: IN_PROGRESS - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/activity/kb-digitization-medieval-2024 has_or_had_label: Medieval Manuscripts Digitization Project has_or_had_description: "High-resolution digitization of 342 medieval manuscripts with \nHTR processing and metadata enhancement. IIIF-compliant output.\n" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ActivityType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ActivityType.yaml index 12a3592579..a5fdc028ed 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ActivityType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ActivityType.yaml @@ -12,19 +12,13 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/created -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/modified -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/created + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/modified classes: ActivityType: class_uri: skos:Concept @@ -43,14 +37,13 @@ classes: slots: - created - modified - - specificity_annotation - has_or_had_score - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_label slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true multivalued: true @@ -58,7 +51,7 @@ classes: - value: https://nde.nl/ontology/hc/activity-type/curation - value: wd:Q1348059 has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -67,7 +60,7 @@ classes: - curatie@nl - Kuration@de has_or_had_description: - range: string +# range: string required: false examples: - value: Activities related to the ongoing management and care of collections @@ -93,7 +86,7 @@ classes: - https://collectionstrust.org.uk/spectrum/ examples: - value: - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/activity-type/curation - wd:Q1348059 has_or_had_label: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ActivityTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ActivityTypes.yaml index 46949bded1..99974cb170 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ActivityTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ActivityTypes.yaml @@ -7,8 +7,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ default_prefix: hc imports: -- linkml:types -- ./ActivityType + - ./ActivityType + - linkml:types classes: ActivityTypes: class_uri: hc:ActivityTypes diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Actor.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Actor.yaml index 6820973970..ce522d3173 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Actor.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Actor.yaml @@ -8,9 +8,9 @@ prefixes: prov: http://www.w3.org/ns/prov# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name -- ../slots/has_or_had_role + - linkml:types + - ../slots/has_or_had_name + - ../slots/has_or_had_role classes: Actor: class_uri: prov:Agent diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Address.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Address.yaml index eb74e48860..ef619272a7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Address.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Address.yaml @@ -12,29 +12,23 @@ prefixes: dcterms: http://purl.org/dc/terms/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/country_name -- ../slots/has_or_had_label -- ../slots/has_or_had_section -- ../slots/has_or_had_type -- ../slots/is_or_was_derived_from # was: was_derived_from -- ../slots/is_or_was_generated_by # was: was_generated_by -- ../slots/is_or_was_located_in -- ../slots/latitude -- ../slots/locality -- ../slots/longitude -- ../slots/postal_code -- ../slots/region -- ./AddressType -- ./City # Added for is_or_was_located_in range (2026-01-18, Rule 53) -- ./Country -- ./CustodianObservation -- ./ReconstructionActivity -- ./Settlement -- ./Subregion -- ./HouseNumber -- ./Label -default_range: string + - ./ReconstructionActivity + - ./AddressType + - ./HouseNumber + - linkml:types + - ../slots/country_name + - ../slots/has_or_had_label + - ../slots/has_or_had_section + - ../slots/has_or_had_type + - ../slots/is_or_was_derived_from # was: was_derived_from + - ../slots/is_or_was_generated_by # was: was_generated_by + - ../slots/is_or_was_located_in + - ../slots/latitude + - ../slots/locality + - ../slots/longitude + - ../slots/postal_code + - ../slots/region +# default_range: string classes: Address: class_uri: vcard:Address @@ -149,12 +143,12 @@ classes: # REMOVED: street_address slot_usage - redundant string slot removed (2026-01-17, Rule 53/56) # Use house_number + has_or_had_label (street name as Label) instead of combined string postal_code: - range: string +# range: string required: false examples: - value: "1071 XX" locality: - range: string +# range: string required: false examples: - value: "Amsterdam" @@ -164,21 +158,21 @@ classes: # required: false # description: Alternative slot for locality (schema:addressLocality) is_or_was_located_in: - range: string +# range: string required: false - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: settlement_name: "Amsterdam" country: "NL" region: - range: string +# range: string required: false examples: - value: "Noord-Holland" - value: "NL-NH" country_name: - range: string +# range: string required: false examples: - value: "Netherlands" @@ -187,10 +181,10 @@ classes: # Formatted address strings now use has_or_had_label slot_usage below # REMOVED: address_type slot_usage - migrated to has_or_had_type (2026-01-17, Rule 53/56) has_or_had_label: # was: address_formatted + street_name - migrated per Rule 53 (2026-01-17, 2026-01-22) - range: string +# range: string multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -216,7 +210,7 @@ classes: - value: 4.8852 - value: 2759794 is_or_was_derived_from: # was: was_derived_from - migrated per Rule 53 - range: CustodianObservation +# range: string # CustodianObservation multivalued: true required: false is_or_was_generated_by: # was: was_generated_by - migrated per Rule 53 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AddressComponent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AddressComponent.yaml index 7bd58e3d15..f2da87a08a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AddressComponent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AddressComponent.yaml @@ -8,13 +8,11 @@ prefixes: vcard: http://www.w3.org/2006/vcard/ns# locn: http://www.w3.org/ns/locn# imports: -- linkml:types -- ../slots/has_or_had_type -- ../slots/long_name -- ../slots/short_name -- ./ComponentType -- ./ComponentTypes -default_range: string + - linkml:types + - ../slots/has_or_had_type + - ../slots/long_name + - ../slots/short_name +# default_range: string classes: AddressComponent: class_uri: hc:AddressComponent @@ -64,14 +62,14 @@ classes: - has_or_had_type slot_usage: long_name: - range: string +# range: string required: false examples: - value: Netherlands - value: Noord-Holland - value: Museumstraat short_name: - range: string +# range: string required: false examples: - value: NL diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AddressType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AddressType.yaml index 28c3d229b5..7db946b0e8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AddressType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AddressType.yaml @@ -12,17 +12,15 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/is_or_was_equivalent_to -- ../slots/is_or_was_related_to -- ./WikiDataIdentifier -- ./AddressType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/is_or_was_equivalent_to + - ../slots/is_or_was_related_to classes: AddressType: class_uri: skos:Concept @@ -37,7 +35,7 @@ classes: - gleif_base:hasAddressLegal - gleif_base:hasAddressHeadquarters slots: - - has_or_had_identifier + - identified_by - has_or_had_code - has_or_had_label - has_or_had_description @@ -46,8 +44,8 @@ classes: - is_or_was_related_to - is_or_was_equivalent_to slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/address-type/[a-z0-9-]+$ @@ -55,7 +53,7 @@ classes: - value: https://nde.nl/ontology/hc/address-type/headquarters - value: https://nde.nl/ontology/hc/address-type/legal has_or_had_code: - range: string +# range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ examples: @@ -66,7 +64,7 @@ classes: - value: STORAGE - value: BRANCH has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -80,7 +78,7 @@ classes: - Visiting Address@en - Bezoekadres@nl has_or_had_description: - range: string +# range: string examples: - value: Main organizational address where primary operations occur. has_or_had_hypernym: @@ -118,7 +116,7 @@ classes: - https://www.gleif.org/ontology/Base/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/address-type/headquarters + identified_by: https://nde.nl/ontology/hc/address-type/headquarters has_or_had_code: HEADQUARTERS has_or_had_label: - Headquarters@en @@ -131,7 +129,7 @@ classes: ' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/address-type/legal + identified_by: https://nde.nl/ontology/hc/address-type/legal has_or_had_code: LEGAL has_or_had_label: - Legal Address@en @@ -145,7 +143,7 @@ classes: ' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/address-type/visiting + identified_by: https://nde.nl/ontology/hc/address-type/visiting has_or_had_code: VISITING has_or_had_label: - Visiting Address@en @@ -156,7 +154,7 @@ classes: ' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/address-type/storage + identified_by: https://nde.nl/ontology/hc/address-type/storage has_or_had_code: STORAGE has_or_had_label: - Storage Facility@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AddressTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AddressTypes.yaml index 417305a497..ab1a7696fe 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AddressTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AddressTypes.yaml @@ -9,8 +9,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ./AddressType + - ./AddressType + - linkml:types classes: HeadquartersAddress: is_a: AddressType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Administration.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Administration.yaml index e165ebac80..a998547ea3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Administration.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Administration.yaml @@ -9,10 +9,10 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: Administration: class_uri: org:OrganizationalUnit @@ -23,7 +23,7 @@ classes: slots: - has_or_had_label - has_or_had_description - - has_or_had_identifier + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AdministrativeLevel.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AdministrativeLevel.yaml index 1626964a93..5f40a79cd8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AdministrativeLevel.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AdministrativeLevel.yaml @@ -14,10 +14,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: AdministrativeLevel: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AdministrativeOffice.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AdministrativeOffice.yaml index f630885983..829dce3a62 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AdministrativeOffice.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AdministrativeOffice.yaml @@ -2,33 +2,17 @@ id: https://nde.nl/ontology/hc/class/administrative-office name: administrative_office_class title: AdministrativeOffice Class imports: -- linkml:types -- ../classes/Description -- ../classes/Identifier -- ../classes/Label -- ../slots/has_or_had_description -- ../slots/has_or_had_function -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/has_or_had_staff -- ../slots/is_leased -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/lease_expiry -- ../slots/specificity_annotation -- ./CustodianObservation -- ./FunctionType -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./Staff -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./Description -- ./Identifier -- ./Label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_function + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/has_or_had_staff + - ../slots/is_leased + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/lease_expiry prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -56,26 +40,25 @@ classes: - org:OrganizationalUnit slots: - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_label # has_or_had_admin_staff_count REMOVED - migrated to has_or_had_staff (Rule 53) - has_or_had_staff - has_or_had_function - is_leased - lease_expiry - - specificity_annotation - has_or_had_score - is_or_was_derived_from - is_or_was_generated_by slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true has_or_had_label: - range: string +# range: string required: true has_or_had_description: - range: string +# range: string has_or_had_function: range: FunctionType multivalued: true @@ -114,7 +97,7 @@ classes: examples: - value: '2028-12-31' is_or_was_derived_from: - range: CustodianObservation +# range: string # CustodianObservation multivalued: true required: false is_or_was_generated_by: @@ -132,7 +115,7 @@ classes: - https://schema.org/Corporation examples: - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/aux/rijksmuseum-admin-zuidas has_or_had_label: has_or_had_label: Rijksmuseum Administrative Offices - Zuidas @@ -159,7 +142,7 @@ classes: is_leased: true lease_expiry: '2028-12-31' - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/aux/kb-digitization-center has_or_had_label: has_or_had_label: Koninklijke Bibliotheek Digitization Support Center diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AdministrativeUnit.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AdministrativeUnit.yaml index 02daffa35e..3b3617c9c1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AdministrativeUnit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AdministrativeUnit.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: AdministrativeUnit: class_uri: org:OrganizationalUnit diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AdmissionFee.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AdmissionFee.yaml index 29df64b04e..bec0b44067 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AdmissionFee.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AdmissionFee.yaml @@ -9,7 +9,7 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types + - linkml:types classes: AdmissionFee: class_uri: schema:PriceSpecification @@ -18,4 +18,4 @@ classes: specificity_score: 0.1 specificity_rationale: "Generic utility class created during migration" custodian_types: '["*"]' - slots: + slots: [] diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AdmissionInfo.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AdmissionInfo.yaml index 98bb6d7ed5..be97598d95 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AdmissionInfo.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AdmissionInfo.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: AdmissionInfo: description: "Structured admission price information from Google Maps including\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchive.yaml index a0c0845337..55181e4c4c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchive.yaml @@ -4,30 +4,18 @@ title: Advertising Radio Archive Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./AdvertisingRadioArchiveRecordSetType -- ./AdvertisingRadioArchiveRecordSetTypes -- ./ArchiveOrganizationType -- ./CollectionType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikidataAlignment + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_related_to classes: AdvertisingRadioArchive: is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score description: 'Sound archive specializing in advertising radio productions and commercials. @@ -58,7 +46,7 @@ classes: ' slot_usage: - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ exact_mappings: - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchiveRecordSetType.yaml index 22def3efe2..1aa1d76793 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchiveRecordSetType.yaml @@ -5,13 +5,10 @@ prefixes: linkml: https://w3id.org/linkml/ wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to classes: AdvertisingRadioArchiveRecordSetType: description: A rico:RecordSetType for classifying collections of advertising radio productions and commercials within heritage institutions. @@ -29,7 +26,6 @@ classes: - AdvertisingRadioArchive slots: - has_or_had_type - - specificity_annotation - has_or_had_score - is_or_was_related_to annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchiveRecordSetTypes.yaml index 2e87b1e0b1..ccca39b20e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./AdvertisingRadioArchive -- ./AdvertisingRadioArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./AdvertisingRadioArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: RadioAdvertisementCollection: is_a: AdvertisingRadioArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Radio commercial recordings.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept CampaignDocumentationSeries: is_a: AdvertisingRadioArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Advertising campaign records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by AdvertisingRadioArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Age.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Age.yaml index 7ae801785c..f42b08fad0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Age.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Age.yaml @@ -8,10 +8,10 @@ prefixes: dcterms: http://purl.org/dc/terms/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_quantity -- ../slots/has_or_had_unit + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_quantity + - ../slots/has_or_had_unit classes: Age: class_uri: schema:QuantitativeValue @@ -39,7 +39,7 @@ classes: range: integer required: true has_or_had_unit: - range: string +# range: string required: false annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Agenda.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Agenda.yaml index 24572f260e..c550031453 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Agenda.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Agenda.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: Agenda: class_uri: schema:Action diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Agent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Agent.yaml index c7ec15891d..92951a9382 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Agent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Agent.yaml @@ -10,10 +10,10 @@ prefixes: dcterms: http://purl.org/dc/terms/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_name -- ../slots/has_or_had_type + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_name + - ../slots/has_or_had_type classes: Agent: class_uri: prov:Agent @@ -21,7 +21,7 @@ classes: \n**RULE 53 MIGRATION**:\nReplaces simple string slots with a structured agent\ \ model:\n- `is_or_was_acquired_by` → Agent (this class)\n- Supports typed agents\ \ (person, organization, software)\n\n**USAGE**:\n```yaml\nis_or_was_acquired_by:\n\ - \ - agent_name: \"Dr. Jane Smith\"\n agent_type: person\n has_or_had_identifier:\n\ + \ - agent_name: \"Dr. Jane Smith\"\n agent_type: person\n identified_by:\n\ \ - identifier_scheme: ORCID\n identifier_value: \"0000-0001-2345-6789\"\ \n```\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `prov:Agent`\ \ - PROV-O agent\n- **Close**: `foaf:Agent` - FOAF agent\n- **Close**: `schema:Person`\ @@ -39,16 +39,16 @@ classes: slots: - has_or_had_name - has_or_had_type - - has_or_had_identifier + - identified_by slot_usage: has_or_had_name: - range: uriorcurie +# range: string # uriorcurie required: false has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: false - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie multivalued: true required: false annotations: @@ -64,7 +64,7 @@ classes: - value: null - value: null - value: - has_or_had_identifier: + identified_by: - identifier_scheme: ISIL comments: - Created per slot_fixes.yaml migration (2026-01-22) diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AgentType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AgentType.yaml index 5ab7e82a58..9b465cf2ee 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AgentType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AgentType.yaml @@ -7,10 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: AgentType: class_uri: skos:Concept @@ -28,10 +28,10 @@ classes: - has_or_had_description slot_usage: has_or_had_code: - range: string +# range: string required: true has_or_had_label: - range: string +# range: string required: false annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AgentTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AgentTypes.yaml index b73eaed8f8..472ab75700 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AgentTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AgentTypes.yaml @@ -7,8 +7,8 @@ description: 'Concrete subclasses for AgentType taxonomy. ' imports: -- linkml:types -- ./AgentType + - ./AgentType + - linkml:types prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Agreement.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Agreement.yaml index 00f7b8f96b..3f3bae1656 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Agreement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Agreement.yaml @@ -14,12 +14,11 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/is_or_was_signed_on -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/is_or_was_signed_on + - ../slots/temporal_extent classes: Agreement: class_uri: schema:Contract diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AirChanges.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AirChanges.yaml index 9b964c8320..afd9fdf76f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AirChanges.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AirChanges.yaml @@ -7,11 +7,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_quantity -- ../slots/has_or_had_unit -- ./Quantity -- ./Unit + - linkml:types + - ../slots/has_or_had_quantity + - ../slots/has_or_had_unit classes: AirChanges: class_uri: schema:QuantitativeValue @@ -31,7 +29,7 @@ classes: range: float required: true has_or_had_unit: - range: string +# range: string required: true annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Alignment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Alignment.yaml index 422b137ad7..bacf34c450 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Alignment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Alignment.yaml @@ -8,10 +8,10 @@ description: 'Represents positioning or alignment information for content elemen - Visual element placement in layouts ' imports: -- linkml:types -- ../slots/has_or_had_alignment -- ../slots/has_or_had_unit -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_alignment + - ../slots/has_or_had_unit + - ../slots/has_or_had_value prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -29,7 +29,7 @@ classes: - has_or_had_unit slot_usage: has_or_had_alignment: - range: string +# range: string multivalued: true examples: - value: center @@ -37,12 +37,12 @@ classes: - value: bottom - value: middle has_or_had_value: - range: string +# range: string examples: - value: '10' - value: default has_or_had_unit: - range: string +# range: string examples: - value: px - value: '%' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AllocationAgency.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AllocationAgency.yaml index ecd2d0262b..41df13fad8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AllocationAgency.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AllocationAgency.yaml @@ -8,20 +8,11 @@ prefixes: gleif_base: https://www.gleif.org/ontology/Base/ hc: https://nde.nl/ontology/hc/ imports: -- linkml:types -- ../enums/AllocationDomainEnum -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./Country -- ./RegistrationAuthority -- ./SpecificityAnnotation -- ./Standard -- ./Subregion -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/AllocationDomainEnum + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_score classes: AllocationAgency: class_uri: org:FormalOrganization @@ -55,7 +46,6 @@ classes: - gleif_base:RegistrationAuthority - schema:Organization slots: - - specificity_annotation - has_or_had_score - name - name_local diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AllocationEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AllocationEvent.yaml index 2e6862e99a..aee112b074 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AllocationEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AllocationEvent.yaml @@ -8,9 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# default_prefix: hc imports: -- linkml:types -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../slots/temporal_extent classes: AllocationEvent: class_uri: prov:Activity diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Alpha2Code.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Alpha2Code.yaml index 56ce2cfede..064226ad0a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Alpha2Code.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Alpha2Code.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code + - linkml:types + - ../slots/has_or_had_code classes: Alpha2Code: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Alpha3Code.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Alpha3Code.yaml index 20a2947b2d..fd972bac8b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Alpha3Code.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Alpha3Code.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code + - linkml:types + - ../slots/has_or_had_code classes: Alpha3Code: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AlternativeName.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AlternativeName.yaml deleted file mode 100644 index 28b359e115..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AlternativeName.yaml +++ /dev/null @@ -1,34 +0,0 @@ -id: https://nde.nl/ontology/hc/classes/AlternativeName -name: AlternativeName -title: AlternativeName -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - prov: http://www.w3.org/ns/prov# - xsd: http://www.w3.org/2001/XMLSchema# - skos: http://www.w3.org/2004/02/skos/core# -imports: -- linkml:types -default_range: string -classes: - AlternativeName: - description: "Alternative name with language and source information, representing\ - \ a variant or translated form of an institution's name.\nOntology mapping rationale:\ - \ - class_uri is skos:altLabel because this represents an alternative\n lexical\ - \ label for a concept (the institution)\n- exact_mappings includes schema:alternateName\ - \ as both represent variant names - related_mappings includes rdfs:label for\ - \ general labeling context" - class_uri: skos:altLabel - exact_mappings: - - schema:alternateName - related_mappings: - - rdfs:label - annotations: - specificity_score: 0.1 - specificity_rationale: Generic utility class/slot created during migration - custodian_types: '[''*'']' - slots: - - name - - language - - source diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Altitude.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Altitude.yaml index 86cdf5e8a3..7b131cd79e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Altitude.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Altitude.yaml @@ -9,9 +9,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_unit -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_unit + - ../slots/has_or_had_value classes: Altitude: class_uri: schema:QuantitativeValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AmendmentEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AmendmentEvent.yaml index b5d3f373c4..40957b93c3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AmendmentEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AmendmentEvent.yaml @@ -3,16 +3,17 @@ name: AmendmentEvent title: Amendment Event description: An event where a document or agreement was amended. prefixes: + rov: http://www.w3.org/ns/regorg# linkml: https://w3id.org/linkml/ schema: http://schema.org/ skos: http://www.w3.org/2004/02/skos/core# rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/temporal_extent + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/temporal_extent classes: AmendmentEvent: class_uri: prov:Activity @@ -20,7 +21,7 @@ classes: slots: - temporal_extent - has_or_had_description - - has_or_had_identifier + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Animal.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Animal.yaml index 2328d703d1..e298cc3ca0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Animal.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Animal.yaml @@ -15,11 +15,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/is_or_was_categorized_as -- ./Species + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/is_or_was_categorized_as classes: Animal: class_uri: schema:Animal diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AnimalSoundArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AnimalSoundArchive.yaml index 52811c814f..3bedaf7176 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AnimalSoundArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AnimalSoundArchive.yaml @@ -4,34 +4,22 @@ title: Animal Sound Archive Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./AnimalSoundArchiveRecordSetType -- ./AnimalSoundArchiveRecordSetTypes -- ./ArchiveOrganizationType -- ./CollectionType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikidataAlignment + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_related_to classes: AnimalSoundArchive: is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score description: "Archive specializing in animal sound recordings for research and preservation.\n\n**Wikidata**: Q18574935\n\n**Scope**:\nAnimal sound archives (Tierstimmenarchive) preserve:\n- Bioacoustic recordings of wildlife\n- Species identification recordings\n- Environmental soundscapes with animal vocalizations\n- Scientific research recordings\n- Educational materials for species identification\n\n**Scientific Context**:\nThese archives support:\n- Biodiversity monitoring and conservation\n- Species identification and taxonomy\n- Behavioral ecology research\n- Environmental impact assessment\n- Educational outreach\n\n**Related Types**:\n- SoundArchive (Q2230431) - Broader audio collection type\n- ScientificArchive (Q27032095) - Research-focused archives\n\n**Notable Examples**:\n- Tierstimmenarchiv (Museum f\xFCr Naturkunde Berlin)\n- Macaulay Library (Cornell Lab of Ornithology)\n- British Library Sound Archive wildlife collection\n" slot_usage: - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ exact_mappings: - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AnimalSoundArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AnimalSoundArchiveRecordSetType.yaml index d4e10be447..e36783ac3b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AnimalSoundArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AnimalSoundArchiveRecordSetType.yaml @@ -5,13 +5,10 @@ prefixes: linkml: https://w3id.org/linkml/ wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to classes: AnimalSoundArchiveRecordSetType: description: A rico:RecordSetType for classifying collections of animal sound archive materials within heritage institutions. @@ -29,7 +26,6 @@ classes: - AnimalSoundArchive slots: - has_or_had_type - - specificity_annotation - has_or_had_score - is_or_was_related_to annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AnimalSoundArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AnimalSoundArchiveRecordSetTypes.yaml index b81cd65902..ff9d785776 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AnimalSoundArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AnimalSoundArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./AnimalSoundArchive -- ./AnimalSoundArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./AnimalSoundArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: BioacousticRecordingCollection: is_a: AnimalSoundArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Animal and nature sound recordings.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept FieldRecordingSeries: is_a: AnimalSoundArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Field research audio.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by AnimalSoundArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AnnexCreationEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AnnexCreationEvent.yaml index da9f28573b..e62a6fa34c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AnnexCreationEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AnnexCreationEvent.yaml @@ -8,9 +8,9 @@ prefixes: prov: http://www.w3.org/ns/prov# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_reason -- ../slots/temporal_extent + - linkml:types + - ../slots/has_or_had_reason + - ../slots/temporal_extent classes: AnnexCreationEvent: class_uri: prov:Activity diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Annotation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Annotation.yaml index ada8255d38..9f667fd27e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Annotation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Annotation.yaml @@ -8,20 +8,12 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../classes/Agent -- ../classes/AnnotationType -- ../classes/Rationale -- ../classes/Segment -- ../slots/contains_or_contained -- ../slots/has_or_had_description -- ../slots/has_or_had_rationale -- ../slots/has_or_had_type -- ../slots/is_or_was_created_by -- ./Agent -- ./AnnotationType -- ./Rationale -- ./Segment + - linkml:types + - ../slots/contains_or_contained + - ../slots/has_or_had_description + - ../slots/has_or_had_rationale + - ../slots/has_or_had_type + - ../slots/is_or_was_created_by classes: Annotation: class_uri: oa:Annotation diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AnnotationMotivationType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AnnotationMotivationType.yaml index d86d2e2394..667ea8a88a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AnnotationMotivationType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AnnotationMotivationType.yaml @@ -16,17 +16,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_score -- ../slots/motivation_type_description -- ../slots/motivation_type_id -- ../slots/motivation_type_name -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/has_or_had_score + - ../slots/motivation_type_description + - ../slots/motivation_type_id + - ../slots/motivation_type_name classes: AnnotationMotivationType: class_uri: oa:Motivation @@ -46,7 +41,6 @@ classes: - motivation_type_id - motivation_type_name - motivation_type_description - - specificity_annotation - has_or_had_score slot_usage: motivation_type_id: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AnnotationMotivationTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AnnotationMotivationTypes.yaml index ead2491a38..f4bea7aa4a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AnnotationMotivationTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AnnotationMotivationTypes.yaml @@ -13,20 +13,17 @@ prefixes: wcag: https://www.w3.org/WAI/WCAG21/ default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_score -- ../slots/motivation_type_name -- ../slots/specificity_annotation -- ./AnnotationMotivationType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./AnnotationMotivationType + - linkml:types + - ../metadata + - ../slots/has_or_had_score + - ../slots/motivation_type_name classes: ClassifyingMotivation: is_a: AnnotationMotivationType - class_uri: oa:classifying + class_uri: hc:ClassifyingMotivation + exact_mappings: + - oa:classifying description: 'Motivation for categorizing or classifying content. @@ -78,16 +75,14 @@ classes: - Iconographic classification (Iconclass) ' - exact_mappings: - - oa:classifying close_mappings: + - oa:classifying - skos:Concept - crm:E17_Type_Assignment slot_usage: motivation_type_name: equals_string: classifying slots: - - specificity_annotation - has_or_had_score comments: - W3C Web Annotation standard motivation @@ -100,7 +95,9 @@ classes: - skos:Concept DescribingMotivation: is_a: AnnotationMotivationType - class_uri: oa:describing + class_uri: hc:DescribingMotivation + exact_mappings: + - oa:describing description: 'Motivation for adding descriptive information to content. @@ -152,16 +149,14 @@ classes: - Video/audio content summarization ' - exact_mappings: - - oa:describing close_mappings: + - oa:describing - dcterms:description - crm:E62_String slot_usage: motivation_type_name: equals_string: describing slots: - - specificity_annotation - has_or_had_score comments: - W3C Web Annotation standard motivation @@ -170,7 +165,9 @@ classes: - skos:Concept IdentifyingMotivation: is_a: AnnotationMotivationType - class_uri: oa:identifying + class_uri: hc:IdentifyingMotivation + exact_mappings: + - oa:identifying description: 'Motivation for identifying depicted entities. @@ -222,16 +219,14 @@ classes: - Object-to-record linking (computer vision) ' - exact_mappings: - - oa:identifying close_mappings: + - oa:identifying - crm:E15_Identifier_Assignment - schema:identifier slot_usage: motivation_type_name: equals_string: identifying slots: - - specificity_annotation - has_or_had_score comments: - W3C Web Annotation standard motivation @@ -240,7 +235,9 @@ classes: - skos:Concept TaggingMotivation: is_a: AnnotationMotivationType - class_uri: oa:tagging + class_uri: hc:TaggingMotivation + exact_mappings: + - oa:tagging description: 'Motivation for adding tags or keywords. @@ -292,16 +289,14 @@ classes: - Folksonomies alongside controlled vocabularies ' - exact_mappings: - - oa:tagging close_mappings: + - oa:tagging - skos:Concept - schema:keywords slot_usage: motivation_type_name: equals_string: tagging slots: - - specificity_annotation - has_or_had_score comments: - W3C Web Annotation standard motivation @@ -310,7 +305,9 @@ classes: - skos:Concept LinkingMotivation: is_a: AnnotationMotivationType - class_uri: oa:linking + class_uri: hc:LinkingMotivation + exact_mappings: + - oa:linking description: 'Motivation for linking to external resources. @@ -362,9 +359,8 @@ classes: - Bibliographic references ' - exact_mappings: - - oa:linking close_mappings: + - oa:linking - dcterms:relation - skos:related - schema:relatedLink @@ -372,7 +368,6 @@ classes: motivation_type_name: equals_string: linking slots: - - specificity_annotation - has_or_had_score comments: - W3C Web Annotation standard motivation @@ -381,7 +376,9 @@ classes: - skos:Concept CommentingMotivation: is_a: AnnotationMotivationType - class_uri: oa:commenting + class_uri: hc:CommentingMotivation + exact_mappings: + - oa:commenting description: 'Motivation for adding commentary. @@ -431,16 +428,14 @@ classes: - Community engagement features ' - exact_mappings: - - oa:commenting close_mappings: + - oa:commenting - schema:Comment - schema:UserComments slot_usage: motivation_type_name: equals_string: commenting slots: - - specificity_annotation - has_or_had_score comments: - W3C Web Annotation standard motivation @@ -524,7 +519,6 @@ classes: motivation_type_name: equals_string: accessibility slots: - - specificity_annotation - has_or_had_score comments: - Heritage-specific extension beyond W3C standard @@ -607,7 +601,6 @@ classes: motivation_type_name: equals_string: discovery slots: - - specificity_annotation - has_or_had_score comments: - Heritage-specific extension beyond W3C standard @@ -692,7 +685,6 @@ classes: motivation_type_name: equals_string: preservation slots: - - specificity_annotation - has_or_had_score comments: - Heritage-specific extension beyond W3C standard @@ -775,7 +767,6 @@ classes: motivation_type_name: equals_string: research slots: - - specificity_annotation - has_or_had_score comments: - Heritage-specific extension beyond W3C standard diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AnnotationType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AnnotationType.yaml index 1a90403c72..d82c59a99b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AnnotationType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AnnotationType.yaml @@ -7,10 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: AnnotationType: class_uri: skos:Concept @@ -28,10 +28,10 @@ classes: - has_or_had_description slot_usage: has_or_had_code: - range: string +# range: string required: true has_or_had_label: - range: string +# range: string required: false annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AnnotationTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AnnotationTypes.yaml index 5dfa39f24b..53fddedd7f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AnnotationTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AnnotationTypes.yaml @@ -7,14 +7,14 @@ description: 'Concrete subclasses for AnnotationType taxonomy. ' imports: -- linkml:types -- ./AnnotationType + - ./AnnotationType + - linkml:types prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ default_prefix: hc classes: - Comment: + CommentAnnotation: is_a: AnnotationType class_uri: hc:Comment description: A comment on a resource. @@ -24,7 +24,7 @@ classes: custodian_types: '[''*'']' broad_mappings: - skos:Concept - Tag: + TagAnnotation: is_a: AnnotationType class_uri: hc:Tag description: A tag or keyword associated with a resource. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Any.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Any.yaml index 397e48159b..1cda30d738 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Any.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Any.yaml @@ -5,7 +5,7 @@ prefixes: hc: https://nde.nl/ontology/hc/ owl: http://www.w3.org/2002/07/owl# imports: -- linkml:types + - linkml:types classes: Any: class_uri: owl:Thing diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Appellation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Appellation.yaml index 8b7557dcd1..7bb9ea8c30 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Appellation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Appellation.yaml @@ -12,18 +12,11 @@ prefixes: dcterms: http://purl.org/dc/terms/ rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# imports: -- linkml:types -- ../enums/AppellationTypeEnum -- ../metadata -- ../slots/has_or_had_score -- ../slots/is_or_was_alternative_form_of -- ../slots/specificity_annotation -- ./CustodianName -- ./Label -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/AppellationTypeEnum + - ../metadata + - ../slots/has_or_had_score + - ../slots/is_or_was_alternative_form_of classes: CustodianAppellation: class_uri: crm:E41_Appellation @@ -38,13 +31,13 @@ classes: - rdfs:label - dcterms:title slots: - - specificity_annotation - has_or_had_score - is_or_was_alternative_form_of slot_usage: is_or_was_alternative_form_of: - range: Label - inlined: true +# range: string # uriorcurie + # range: Label + inlined: false # Fixed invalid inline for primitive type examples: - value: "Label:\n label_value: \"Rijksmuseum\"\n label_language: \"nl\"\n" annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AppellationType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AppellationType.yaml index e56d2483ab..58c06c8c8d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AppellationType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AppellationType.yaml @@ -9,8 +9,8 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: AppellationType: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Applicant.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Applicant.yaml index 7370a972af..e0e1c62771 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Applicant.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Applicant.yaml @@ -10,12 +10,11 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ./ApplicantType + - linkml:types + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_type classes: Applicant: class_uri: schema:Person @@ -28,7 +27,7 @@ classes: slots: - has_or_had_label - - has_or_had_identifier + - identified_by - has_or_had_type annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ApplicantRequirement.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ApplicantRequirement.yaml index 8f0acaf356..3d18ec8c94 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ApplicantRequirement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ApplicantRequirement.yaml @@ -14,13 +14,11 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/can_or_could_be_fulfilled_by -- ../slots/has_or_had_description -- ../slots/imposes_or_imposed -- ./Applicant -- ./GeographicExtent + - linkml:types + - ../metadata + - ../slots/fulfilled_by + - ../slots/has_or_had_description + - ../slots/imposes_or_imposed classes: ApplicantRequirement: class_uri: schema:Requirement @@ -29,10 +27,10 @@ classes: **Ontology Alignment**: - **Primary**: `schema:Requirement` (proposed extension or conceptual) - **Close**: `dcterms:requires`' slots: - has_or_had_description - - can_or_could_be_fulfilled_by + - fulfilled_by - imposes_or_imposed slot_usage: - can_or_could_be_fulfilled_by: + fulfilled_by: range: Applicant imposes_or_imposed: range: GeographicExtent diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ApplicantType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ApplicantType.yaml index 3d45bfb996..74db4e3df6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ApplicantType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ApplicantType.yaml @@ -10,10 +10,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label classes: ApplicantType: class_uri: skos:Concept @@ -26,7 +26,7 @@ classes: slots: - has_or_had_label - - has_or_had_identifier + - identified_by annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Appointment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Appointment.yaml index 6cf4b6ff43..2576daa0a7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Appointment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Appointment.yaml @@ -8,11 +8,10 @@ prefixes: schema: http://schema.org/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/temporal_extent default_prefix: hc classes: Appointment: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AppraisalPolicy.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AppraisalPolicy.yaml index d073afb6fd..0ca33246fb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AppraisalPolicy.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AppraisalPolicy.yaml @@ -8,8 +8,7 @@ prefixes: odrl: http://www.w3.org/ns/odrl/2/ default_prefix: hc imports: -- linkml:types -- ./Policy + - linkml:types classes: AppraisalPolicy: is_a: Policy diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AppreciationEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AppreciationEvent.yaml index 61293335fd..86dfe5eece 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AppreciationEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AppreciationEvent.yaml @@ -8,14 +8,11 @@ prefixes: as: https://www.w3.org/ns/activitystreams# prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_quantity -- ../slots/has_or_had_unit -- ../slots/temporal_extent -- ./Quantity -- ./TimeSpan -- ./Unit + - linkml:types + - ../metadata + - ../slots/has_or_had_quantity + - ../slots/has_or_had_unit + - ../slots/temporal_extent default_prefix: hc classes: AppreciationEvent: @@ -51,7 +48,7 @@ classes: slot_usage: has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -59,8 +56,8 @@ classes: has_or_had_unit: unit_label: likes has_or_had_unit: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ApprovalTimeType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ApprovalTimeType.yaml index 1a237ad62a..5d21611b5a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ApprovalTimeType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ApprovalTimeType.yaml @@ -5,16 +5,16 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: ApprovalTimeType: class_uri: skos:Concept abstract: true slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ApprovalTimeTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ApprovalTimeTypes.yaml index a1632e7412..782129138d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ApprovalTimeTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ApprovalTimeTypes.yaml @@ -12,8 +12,8 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ./ApprovalTimeType + - ./ApprovalTimeType + - linkml:types classes: ImmediateApproval: is_a: ApprovalTimeType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Approver.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Approver.yaml index 6068e31d75..043f7637c9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Approver.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Approver.yaml @@ -2,9 +2,9 @@ id: https://nde.nl/ontology/hc/class/Approver name: approver_class title: Approver Class imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_label prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -42,15 +42,15 @@ classes: - schema:Organization slots: - has_or_had_label - - has_or_had_identifier + - identified_by slot_usage: has_or_had_label: - range: string +# range: string examples: - value: Board of Directors - value: Museum Director - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/person/jan-de-vries comments: @@ -62,7 +62,7 @@ classes: examples: - value: has_or_had_label: Museum Director - has_or_had_identifier: https://nde.nl/ontology/hc/person/example-director + identified_by: https://nde.nl/ontology/hc/person/example-director annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ApproximationStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ApproximationStatus.yaml index 8c7a78c086..587c6a28f0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ApproximationStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ApproximationStatus.yaml @@ -9,17 +9,12 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_level -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_level + - ../slots/has_or_had_score default_prefix: hc classes: ApproximationStatus: @@ -36,20 +31,19 @@ classes: - has_or_had_level - has_or_had_label - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: has_or_had_level: - range: string +# range: string required: true has_or_had_label: - range: string +# range: string required: false examples: - value: circa 1880 - value: approximately 10,000 has_or_had_description: - range: string +# range: string required: false examples: - value: Founding date derived from secondary sources, exact day unknown diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Archdiocese.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Archdiocese.yaml index 6c1854be99..4e9727e0fd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Archdiocese.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Archdiocese.yaml @@ -9,8 +9,8 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: Archdiocese: class_uri: schema:AdministrativeArea diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Architect.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Architect.yaml index 57534d4174..270f0efb2e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Architect.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Architect.yaml @@ -15,10 +15,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: Architect: class_uri: schema:Person @@ -33,7 +33,7 @@ classes: slots: - has_or_had_label - has_or_had_description - - has_or_had_identifier + - identified_by slot_usage: has_or_had_label: required: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchitecturalArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchitecturalArchive.yaml index bbb3726f3f..a4e2a16dc6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchitecturalArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchitecturalArchive.yaml @@ -4,23 +4,12 @@ title: Architectural Archive Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./ArchitecturalArchiveRecordSetType -- ./ArchitecturalArchiveRecordSetTypes -- ./ArchiveOrganizationType -- ./CollectionType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikidataAlignment + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_related_to classes: ArchitecturalArchive: is_a: ArchiveOrganizationType @@ -28,12 +17,11 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score description: "Archive that safeguards architectural heritage through preservation of \narchitectural drawings, plans, models, and related documentation.\n\n**Wikidata**: Q121409581\n\n**Scope**:\nArchitectural archives preserve:\n- Architectural drawings and blueprints\n- Building plans and specifications\n- Scale models and maquettes\n- Photographs of buildings and construction\n- Correspondence and contracts\n- Architects' personal papers (Nachlass)\n- Design competitions documentation\n\n**Related Types**:\n- ArchivesForBuildingRecords (Q136027937) - Public building permits/records\n- ArtArchive (Q27032254) - Broader art documentation\n\n**Notable Examples**:\n- Canadian Centre for Architecture (CCA)\n- Deutsches Architekturmuseum archives\n- RIBA Architecture Library and Collections\n- Het Nieuwe Instituut (Netherlands)\n\n**Dual-Class Pattern**:\nThis class represents the CUSTODIAN type (the archive organization).\nFor the collection type, see `ArchitecturalRecordSetType` (rico:RecordSetType).\n\ \n**Ontological Alignment**:\n- **SKOS**: skos:Concept with skos:broader Q166118 (archive)\n- **Schema.org**: schema:ArchiveOrganization\n- **RiC-O**: rico:CorporateBody (as agent)\n\n**Multilingual Labels**:\n- de: Architekturarchiv\n- fr: archives architecturales\n- nl: architectonisch archief\n" slot_usage: - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchitecturalArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchitecturalArchiveRecordSetType.yaml index 1e29360af4..41e9054a29 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchitecturalArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchitecturalArchiveRecordSetType.yaml @@ -5,12 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to classes: ArchitecturalArchiveRecordSetType: description: A rico:RecordSetType for classifying collections of architectural archive materials within heritage institutions. @@ -25,7 +22,6 @@ classes: see_also: - ArchitecturalArchive slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchitecturalArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchitecturalArchiveRecordSetTypes.yaml index 3ff48a7d85..2ab3943804 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchitecturalArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchitecturalArchiveRecordSetTypes.yaml @@ -17,21 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ArchitecturalArchive -- ./ArchitecturalArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./ArchitecturalArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: ArchitecturalDrawingCollection: is_a: ArchitecturalArchiveRecordSetType @@ -39,7 +33,7 @@ classes: description: "A rico:RecordSetType for Architectural plans and drawings.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -50,7 +44,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -75,16 +68,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept ArchitectPapersCollection: is_a: ArchitecturalArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Architect personal papers.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -95,7 +85,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -118,16 +107,13 @@ classes: custodians. Inverse of rico:isOrWasHolderOf. annotations: custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept BuildingProjectFonds: is_a: ArchitecturalArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Building project documentation.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -138,7 +124,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -161,6 +146,3 @@ classes: custodians. Inverse of rico:isOrWasHolderOf. annotations: custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchitecturalStyle.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchitecturalStyle.yaml index 7370d8e726..8ff4c360c8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchitecturalStyle.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchitecturalStyle.yaml @@ -9,9 +9,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: ArchitecturalStyle: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivalLibrary.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivalLibrary.yaml index ba2e81951d..573aa79ff6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivalLibrary.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivalLibrary.yaml @@ -2,22 +2,11 @@ id: https://nde.nl/ontology/hc/class/ArchivalLibrary name: ArchivalLibrary title: Archival Library Type imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_branch_of -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./ArchivalLibraryRecordSetType -- ./BranchType -- ./CollectionType -- ./OrganizationBranch -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_branch_of + - ../slots/is_or_was_related_to classes: ArchivalLibrary: is_a: OrganizationBranch @@ -26,7 +15,7 @@ classes: \ staff and external researchers\n\n**Branch Relationship**:\n- Use `is_branch_of` to link to the parent Archive custodian\n- Use `has_or_had_type` = BranchLibraryUnit for classification\n\n**Related Types**:\n- Archive (Q166118) - Parent archive organization\n- SpecialCollection (Q4431094) - Specialized library holdings\n- OrganizationBranch - Parent class for organizational units\n\n**Dual-Class Pattern**:\nThis class represents the BRANCH type (the library unit within an archive).\nFor the collection type, see `ArchivalLibraryRecordSetType` (rico:RecordSetType).\n\n**Ontological Alignment**:\n- **W3C ORG**: org:OrganizationalUnit (branch of parent archive)\n- **Schema.org**: schema:Library (hybrid archive-library)\n- **RiC-O**: rico:CorporateBody (as agent)\n\n**Multilingual Labels**:\n- de: Archivbibliothek\n- es: biblioteca de archivo\n- fr: biblioth\xE8que li\xE9e \xE0 une institution conservant des archives\n" slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: BranchLibraryUnit @@ -49,7 +38,6 @@ classes: - OrganizationBranch slots: - has_or_had_type - - specificity_annotation - has_or_had_score annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivalLibraryRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivalLibraryRecordSetType.yaml index d99d1561c4..31db9e0b1c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivalLibraryRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivalLibraryRecordSetType.yaml @@ -8,12 +8,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to classes: ArchivalLibraryRecordSetType: description: A rico:RecordSetType for classifying collections of archival library materials within heritage institutions. @@ -28,7 +25,6 @@ classes: see_also: - ArchivalLibrary slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivalReference.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivalReference.yaml index 4aeff07f67..a800f64dd3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivalReference.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivalReference.yaml @@ -8,10 +8,10 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: ArchivalReference: class_uri: rico:Identifier @@ -24,11 +24,11 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description slot_usage: - has_or_had_identifier: + identified_by: required: true annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivalStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivalStatus.yaml index c4d0d26bba..23b8fae943 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivalStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivalStatus.yaml @@ -7,10 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: ArchivalStatus: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveAssociation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveAssociation.yaml index a5e5ee21c2..95b8bfd5f5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveAssociation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveAssociation.yaml @@ -4,18 +4,11 @@ title: Archive Association Type (Heritage Society) prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/society_focus -- ../slots/specificity_annotation -- ./HeritageSocietyType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/society_focus classes: ArchiveAssociation: is_a: HeritageSocietyType @@ -25,7 +18,7 @@ classes: slot_usage: society_focus: required: true - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HeritageSocietyType"]' @@ -45,9 +38,8 @@ classes: - HeritageSocietyType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveBranch.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveBranch.yaml index 40c752e28d..6201f27e16 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveBranch.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveBranch.yaml @@ -8,8 +8,8 @@ prefixes: org: http://www.w3.org/ns/org# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: ArchiveBranch: class_uri: org:OrganizationalUnit diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveInfo.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveInfo.yaml index 926ed555b7..9df0c27171 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveInfo.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveInfo.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: ArchiveInfo: description: "Archive reference containing basic information about an archival\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveNetwork.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveNetwork.yaml index d6b5b1df22..15ac7c9133 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveNetwork.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveNetwork.yaml @@ -9,18 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_applicable_in -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./Country -- ./EncompassingBody -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_applicable_in classes: ArchiveNetwork: is_a: ArchiveOrganizationType @@ -30,7 +22,6 @@ classes: \n**Multilingual Labels**:\n- de: Archivverbund\n- fr: r\xE9seau d'archives\n- it: rete di archivi\n" slots: - has_or_had_type - - specificity_annotation - has_or_had_score - is_or_was_applicable_in slot_usage: @@ -41,7 +32,7 @@ classes: maximum_cardinality: 1 examples: - value: - has_or_had_identifier: FR + identified_by: FR has_or_had_name: France has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganization.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganization.yaml index 18614c4007..4a42452448 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganization.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganization.yaml @@ -4,22 +4,11 @@ title: Archive of International Organization Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOfInternationalOrganizationRecordSetType -- ./ArchiveOfInternationalOrganizationRecordSetTypes -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: ArchiveOfInternationalOrganization: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetType.yaml index 1fcad89db7..a41ec52f07 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetType.yaml @@ -4,14 +4,10 @@ title: ArchiveOfInternationalOrganization Record Set Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: ArchiveOfInternationalOrganizationRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ArchiveOfInternationalOrganization custodians. @@ -20,7 +16,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetTypes.yaml index 00b04ccf5a..542279562f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ArchiveOfInternationalOrganization -- ./ArchiveOfInternationalOrganizationRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./ArchiveOfInternationalOrganizationRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: InternationalOrgFonds: is_a: ArchiveOfInternationalOrganizationRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for International organization records.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept TreatyCollection: is_a: ArchiveOfInternationalOrganizationRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for International agreements.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ArchiveOfInternationalOrganization custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept ConferenceRecordSeries: is_a: ArchiveOfInternationalOrganizationRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Conference proceedings.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ArchiveOfInternationalOrganization custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveOrganizationType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveOrganizationType.yaml index 3e92d1487d..b79f618d1f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveOrganizationType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveOrganizationType.yaml @@ -14,30 +14,18 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../classes/AppraisalPolicy -- ../classes/ArchiveScope -- ../slots/custodian_type_broader -- ../slots/has_or_had_identifier -- ../slots/has_or_had_policy -- ../slots/has_or_had_schema -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_subtype -- ../slots/has_or_had_type -- ../slots/preservation_standard -- ../slots/record_type -- ../slots/specificity_annotation -- ./CustodianType -- ./Schema -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier -- ./AppraisalPolicy -- ./ArchiveOrganizationType -- ./ArchiveScope + - ../classes/AgentType + - linkml:types + - ../slots/custodian_type_broader + - ../slots/identified_by + - ../slots/has_or_had_policy + - ../slots/has_or_had_schema + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_subtype + - ../slots/has_or_had_type + - ../slots/preservation_standard + - ../slots/record_type classes: ArchiveOrganizationType: is_a: CustodianType @@ -93,24 +81,22 @@ classes: **Wikidata Base Concept**: Q166118 (archive)' slots: - has_or_had_policy - - has_or_had_policy - has_or_had_scope - has_or_had_subtype - has_or_had_type - has_or_had_schema - preservation_standard - record_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ required: true has_or_had_policy: - range: string +# range: string has_or_had_scope: - range: string +# range: string custodian_type_broader: range: ArchiveOrganizationType required: false @@ -133,7 +119,7 @@ classes: - Access policies range from open (light archives) to restricted (dark archives) examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q1188452 + identified_by: https://nde.nl/ontology/hc/type/archive/Q1188452 has_or_had_type_code: ARCHIVE has_or_had_label: - National Archive@en @@ -154,7 +140,7 @@ classes: - has_or_had_label: EAD3 access_policy: mixed - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q10605195 + identified_by: https://nde.nl/ontology/hc/type/archive/Q10605195 has_or_had_type_code: ARCHIVE has_or_had_label: - Business Archive@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveScope.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveScope.yaml index 09d6debaff..d40c1a87ef 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveScope.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveScope.yaml @@ -8,8 +8,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: ArchiveScope: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecords.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecords.yaml index b8d8b31da1..91f433cc7a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecords.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecords.yaml @@ -4,22 +4,11 @@ title: Archives for Building Records Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./ArchivesForBuildingRecordsRecordSetType -- ./ArchivesForBuildingRecordsRecordSetTypes -- ./CollectionType -- ./DualClassLink -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: ArchivesForBuildingRecords: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecordsRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecordsRecordSetType.yaml index b999efb3eb..952775beae 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecordsRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecordsRecordSetType.yaml @@ -13,13 +13,10 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: ArchivesForBuildingRecordsRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ArchivesForBuildingRecords custodians. @@ -29,7 +26,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecordsRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecordsRecordSetTypes.yaml index eeaae34f23..db53f5f23f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecordsRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecordsRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ArchivesForBuildingRecords -- ./ArchivesForBuildingRecordsRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./ArchivesForBuildingRecordsRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: BuildingPermitSeries: is_a: ArchivesForBuildingRecordsRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Building permit records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept ConstructionDocumentCollection: is_a: ArchivesForBuildingRecordsRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Construction documentation.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ArchivesForBuildingRecords custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesRegionales.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesRegionales.yaml index 7daf1b2a24..8153e6a231 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesRegionales.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesRegionales.yaml @@ -4,22 +4,11 @@ title: "Archives R\xE9gionales Type (France)" prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./ArchivesRegionalesRecordSetType -- ./ArchivesRegionalesRecordSetTypes -- ./CollectionType -- ./DualClassLink -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: ArchivesRegionales: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetType.yaml index ca1e6afc01..784eda648b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetType.yaml @@ -4,14 +4,10 @@ title: ArchivesRegionales Record Set Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: ArchivesRegionalesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ArchivesRegionales custodians. @@ -20,7 +16,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetTypes.yaml index 6f1e4e704d..dbfc297913 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ArchivesRegionales -- ./ArchivesRegionalesRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./ArchivesRegionalesRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: RegionalAdministrationFonds: is_a: ArchivesRegionalesRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Regional government records (France).\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivingPlan.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivingPlan.yaml index 2a8e27109f..4884d1500f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchivingPlan.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchivingPlan.yaml @@ -9,25 +9,22 @@ prefixes: hc: https://nde.nl/ontology/hc/ prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/temporal_extent default_prefix: hc classes: ArchivingPlan: class_uri: prov:Plan description: A plan detailing archiving activities and timelines. slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - temporal_extent - - specificity_annotation - has_or_had_score slot_usage: temporal_extent: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Area.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Area.yaml index 51ab906140..663f14fa6d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Area.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Area.yaml @@ -27,14 +27,13 @@ prefixes: geosparql: http://www.opengis.net/ont/geosparql# imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_unit -- ../slots/has_or_had_value -- ../slots/is_estimate -- ../slots/measurement_date -- ../slots/measurement_method -- ./MeasureUnit + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_unit + - ../slots/has_or_had_value + - ../slots/is_estimate + - ../slots/measurement_date + - ../slots/measurement_method default_prefix: hc classes: @@ -95,14 +94,14 @@ classes: - value: true - value: false measurement_method: - range: string +# range: string required: false examples: - value: "GIS analysis" - value: "Land survey" - value: "Historical records" has_or_had_label: - range: string +# range: string examples: - value: "Total site area" - value: "Building floor area" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Arrangement.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Arrangement.yaml index 6bfc5d2c27..c78a229566 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Arrangement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Arrangement.yaml @@ -22,8 +22,8 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_level -- ../slots/has_or_had_note -- ../slots/has_or_had_type \ No newline at end of file + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_level + - ../slots/has_or_had_note + - ../slots/has_or_had_type diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArrangementLevel.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArrangementLevel.yaml index 93455da932..28dc9f6f0d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArrangementLevel.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArrangementLevel.yaml @@ -15,11 +15,11 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_rank + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_rank classes: ArrangementLevel: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArrangementLevelTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArrangementLevelTypes.yaml index 2007a33200..890027cc71 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArrangementLevelTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArrangementLevelTypes.yaml @@ -7,8 +7,7 @@ description: 'Concrete subclasses for ArrangementLevel taxonomy. ' imports: -- linkml:types -- ./ArrangementLevel + - linkml:types prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArrangementType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArrangementType.yaml index 71f6a3210b..1a11218bcf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArrangementType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArrangementType.yaml @@ -9,8 +9,8 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: ArrangementType: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArrangementTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArrangementTypes.yaml index 25ec48a84b..03877307f7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArrangementTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArrangementTypes.yaml @@ -7,8 +7,8 @@ description: 'Concrete subclasses for ArrangementType taxonomy. ' imports: -- linkml:types -- ./ArrangementType + - ./ArrangementType + - linkml:types prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArtArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArtArchive.yaml index 3454c2ade7..eccb9e8cdf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArtArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArtArchive.yaml @@ -4,22 +4,11 @@ title: Art Archive Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./ArtArchiveRecordSetType -- ./ArtArchiveRecordSetTypes -- ./CollectionType -- ./DualClassLink -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: ArtArchive: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetType.yaml index e6224c1724..c3abe2aef4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetType.yaml @@ -4,14 +4,10 @@ title: ArtArchive Record Set Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: ArtArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ArtArchive custodians. @@ -20,7 +16,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetTypes.yaml index e9ddf44f68..185e2d5b07 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ArtArchive -- ./ArtArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./ArtArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: ArtistPapersCollection: is_a: ArtArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Artist personal papers and sketches.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept GalleryRecordsFonds: is_a: ArtArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Art gallery records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ArtArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept ExhibitionDocumentationCollection: is_a: ArtArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Exhibition records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ArtArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArtDealer.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArtDealer.yaml index d2e6a3e30f..85f7886d85 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArtDealer.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArtDealer.yaml @@ -10,9 +10,8 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ imports: -- linkml:types -- ../slots/has_or_had_name -- ./Name + - linkml:types + - ../slots/has_or_had_name default_prefix: hc classes: @@ -51,8 +50,8 @@ classes: slot_usage: has_or_had_name: - range: Name - inlined: true +# range: string # Name + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArtSaleService.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArtSaleService.yaml index a6c9cedefc..3f8f8491b9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArtSaleService.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArtSaleService.yaml @@ -6,11 +6,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../metadata -- ../slots/takes_or_took_comission -- ./CommissionRate -- ./Service + - linkml:types + - ../metadata + - ../slots/takes_or_took_comission default_prefix: hc classes: ArtSaleService: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Article.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Article.yaml index bc156d0038..e6e0636b62 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Article.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Article.yaml @@ -3,8 +3,8 @@ name: Article title: Article description: A legal or statutory article. imports: -- linkml:types -- ../slots/has_or_had_text + - linkml:types + - ../slots/has_or_had_text classes: Article: class_uri: rico:Rule diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml index 457e069cbc..f685053223 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml @@ -2,60 +2,36 @@ id: https://nde.nl/ontology/hc/class/ArticlesOfAssociation name: articles_of_association_class title: ArticlesOfAssociation Class imports: -- linkml:types -- ../enums/RecordsLifecycleStageEnum -- ../slots/has_or_had_description -- ../slots/has_or_had_format -- ../slots/has_or_had_score -- ../slots/has_or_had_status -- ../slots/has_or_had_title -- ../slots/has_or_had_type -- ../slots/has_or_had_url -- ../slots/has_or_had_version -- ../slots/is_current_version -- ../slots/is_or_was_amended_through -- ../slots/is_or_was_archived_in -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_effective_at -- ../slots/is_or_was_generated_by -- ../slots/is_or_was_included_in -- ../slots/is_or_was_signed_at -- ../slots/jurisdiction -- ../slots/language -- ../slots/legal_form -- ../slots/notarial_deed_number -- ../slots/notary_name -- ../slots/notary_office -- ../slots/refers_to_custodian -- ../slots/refers_to_legal_status -- ../slots/registered_office_clause -- ../slots/requires_articles_at_registration -- ../slots/specificity_annotation -- ../slots/supersedes_or_superseded -- ../slots/temporal_extent -- ./AmendmentEvent -- ./Custodian -- ./CustodianArchive -- ./CustodianCollection -- ./CustodianLegalStatus -- ./CustodianObservation -- ./Description -- ./DocumentFormat -- ./DocumentType -- ./DocumentTypes -- ./Jurisdiction -- ./LegalForm -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./RecordCycleStatus -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Timestamp -- ./Title -- ./URL + - linkml:types + - ../enums/RecordsLifecycleStageEnum + - ../slots/has_or_had_description + - ../slots/has_or_had_format + - ../slots/has_or_had_score + - ../slots/has_or_had_status + - ../slots/has_or_had_title + - ../slots/has_or_had_type + - ../slots/has_or_had_url + - ../slots/has_or_had_version + - ../slots/is_current_version + - ../slots/is_or_was_amended_through + - ../slots/is_or_was_archived_in + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_effective_at + - ../slots/is_or_was_generated_by + - ../slots/is_or_was_included_in + - ../slots/is_or_was_signed_at + - ../slots/jurisdiction + - ../slots/language + - ../slots/legal_form + - ../slots/notarial_deed_number + - ../slots/notary_name + - ../slots/notary_office + - ../slots/refers_to_custodian + - ../slots/refers_to_legal_status + - ../slots/registered_office_clause + - ../slots/requires_articles_at_registration + - ../slots/supersedes_or_superseded + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -114,7 +90,6 @@ classes: - refers_to_legal_status - registered_office_clause - requires_articles_at_registration - - specificity_annotation - supersedes_or_superseded - has_or_had_score - temporal_extent @@ -123,15 +98,15 @@ classes: - is_or_was_generated_by slot_usage: has_or_had_title: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: has_or_had_label: Statuten Stichting Rijksmuseum has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -157,22 +132,22 @@ classes: examples: - value: '2024-03-18' notary_name: - range: string +# range: string required: false examples: - value: mr. J.A. van der Berg notary_office: - range: string +# range: string required: false examples: - value: Amsterdam notarial_deed_number: - range: string +# range: string required: false examples: - value: 2024/0315/001 has_or_had_version: - range: string +# range: string required: false examples: - value: '1' @@ -181,13 +156,13 @@ classes: range: boolean required: true registered_office_clause: - range: string +# range: string required: false examples: - value: De stichting heeft haar zetel in de gemeente Amsterdam. - value: '2015-11-12: Amendment to restructure board composition' language: - range: string +# range: string required: false examples: - value: nl @@ -217,7 +192,7 @@ classes: range: LegalForm required: false jurisdiction: - range: string +# range: string required: false is_or_was_derived_from: range: CustodianObservation @@ -278,7 +253,7 @@ classes: jurisdiction_id: NL jurisdiction_type: NATIONAL - value: - has_or_had_identifier: https://nde.nl/ontology/hc/articles/nha/v3 + identified_by: https://nde.nl/ontology/hc/articles/nha/v3 has_or_had_title: has_or_had_label: Statuten Stichting Noord-Hollands Archief (gewijzigd 2015) has_or_had_description: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Artist.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Artist.yaml index fa60e27275..11f919812b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Artist.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Artist.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: Artist: class_uri: schema:Person diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Artwork.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Artwork.yaml index 263defa5e8..71418e4b54 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Artwork.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Artwork.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_title + - linkml:types + - ../slots/has_or_had_title classes: Artwork: class_uri: schema:VisualArtwork diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AspectRatio.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AspectRatio.yaml index 46dff7879b..a9b78bfd03 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AspectRatio.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AspectRatio.yaml @@ -10,9 +10,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_degree -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_degree + - ../slots/has_or_had_value classes: AspectRatio: class_uri: schema:PropertyValue @@ -21,7 +21,7 @@ classes: - has_or_had_degree slot_usage: has_or_had_degree: - range: string +# range: string description: The aspect ratio string (e.g., "16:9"). examples: - value: '16:9' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Asserter.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Asserter.yaml index a4dfbe4d90..7c4c6f38bd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Asserter.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Asserter.yaml @@ -9,26 +9,21 @@ prefixes: schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../enums/AsserterTypeEnum -- ../slots/has_or_had_contact_point -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/has_or_had_version -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/AsserterTypeEnum + - ../slots/has_or_had_contact_point + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/has_or_had_version default_prefix: hc classes: Asserter: class_uri: prov:Agent description: "An agent (person, organization, or system) responsible for making an assertion about a heritage entity.\n**PROV-O ALIGNMENT**:\nMaps to `prov:Agent` - \"An agent is something that bears some form of responsibility for an activity taking place, for the existence of an entity, or for another agent's activity.\"\n**TYPES OF ASSERTERS**:\n| Type | Description | Example | |------|-------------|---------| | HUMAN_ANALYST | Expert making judgment | \"jane.doe@nde.nl\" | | AUTOMATED_SYSTEM | Software system | \"primary-presence-classifier/1.0\" | | AI_AGENT | AI/ML model | \"claude-opus-4\", \"opencode-claude-sonnet-4\" | | ORGANIZATION | Institution | \"Noord-Hollands Archief\" |\n**USE CASES**:\n1. **Attribution Tracking**: Who made this assertion about primary presence? 2. **Provenance Chain**: Trace assertions back to their source agent. 3. **Quality Assessment**: Different asserters may have different reliability. 4. **Accountability**: Identify responsible party for each\ - \ assertion.\n**EXAMPLE**:\n```yaml Asserter:\n has_or_had_identifier: https://nde.nl/ontology/hc/asserter/claude-opus-4\n has_or_had_label: Claude Opus 4\n has_or_had_type: AI_AGENT\n has_or_had_description: Anthropic Claude AI model used for assertion generation\n has_or_had_version: \"claude-opus-4-20250514\"\n```" + \ assertion.\n**EXAMPLE**:\n```yaml Asserter:\n identified_by: https://nde.nl/ontology/hc/asserter/claude-opus-4\n has_or_had_label: Claude Opus 4\n has_or_had_type: AI_AGENT\n has_or_had_description: Anthropic Claude AI model used for assertion generation\n has_or_had_version: \"claude-opus-4-20250514\"\n```" exact_mappings: - prov:Agent close_mappings: @@ -38,31 +33,30 @@ classes: - schema:Person - schema:Organization slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_type - has_or_had_version - has_or_had_contact_point - - specificity_annotation - has_or_had_score slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/asserter/claude-opus-4 - value: https://nde.nl/ontology/hc/asserter/jane-doe-nde has_or_had_label: - range: string +# range: string required: true examples: - value: Claude Opus 4 - value: Dr. Jane Doe - value: primary-presence-classifier has_or_had_description: - range: string +# range: string required: false examples: - value: Anthropic Claude AI model used for heritage data assertions @@ -75,13 +69,13 @@ classes: - value: HUMAN_ANALYST - value: AUTOMATED_SYSTEM has_or_had_version: - range: string +# range: string required: false examples: - value: claude-opus-4-20250514 - value: 1.2.3 has_or_had_contact_point: - range: string +# range: string required: false examples: - value: jane.doe@nde.nl @@ -96,19 +90,19 @@ classes: - https://xmlns.com/foaf/spec/#term_Agent examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/asserter/claude-opus-4 + identified_by: https://nde.nl/ontology/hc/asserter/claude-opus-4 has_or_had_label: Claude Opus 4 has_or_had_type: AI_AGENT has_or_had_description: Anthropic Claude AI model used for heritage data assertions has_or_had_version: claude-opus-4-20250514 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/asserter/jane-doe-nde + identified_by: https://nde.nl/ontology/hc/asserter/jane-doe-nde has_or_had_label: Dr. Jane Doe has_or_had_type: HUMAN_ANALYST has_or_had_description: Senior digital heritage analyst at NDE has_or_had_contact_point: jane.doe@nde.nl - value: - has_or_had_identifier: https://nde.nl/ontology/hc/asserter/primary-presence-classifier + identified_by: https://nde.nl/ontology/hc/asserter/primary-presence-classifier has_or_had_label: primary-presence-classifier has_or_had_type: AUTOMATED_SYSTEM has_or_had_description: Automated system for classifying primary digital presence diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Assertor.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Assertor.yaml index f857c18746..a995432b36 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Assertor.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Assertor.yaml @@ -8,7 +8,7 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types + - linkml:types classes: Assertor: class_uri: prov:Agent diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AssessmentCategory.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AssessmentCategory.yaml index a9e384a5f7..7c0467174a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AssessmentCategory.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AssessmentCategory.yaml @@ -8,9 +8,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_type -- ./AssessmentCategoryType + - linkml:types + - ../slots/has_or_had_type classes: AssessmentCategory: class_uri: skos:Concept @@ -19,7 +18,7 @@ classes: - has_or_had_type slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AssessmentCategoryType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AssessmentCategoryType.yaml index 8183077ff2..f3761ecc19 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AssessmentCategoryType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AssessmentCategoryType.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: AssessmentCategoryType: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AssessmentCategoryTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AssessmentCategoryTypes.yaml index 6b759c7bf9..ce182a26ac 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AssessmentCategoryTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AssessmentCategoryTypes.yaml @@ -7,8 +7,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ default_prefix: hc imports: -- linkml:types -- ./AssessmentCategoryType + - ./AssessmentCategoryType + - linkml:types classes: ConditionAssessmentCategory: is_a: AssessmentCategoryType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Asset.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Asset.yaml index b02f4a471b..d104269d64 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Asset.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Asset.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_currency -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_currency + - ../slots/has_or_had_value classes: Asset: class_uri: schema:MonetaryAmount diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AssociationArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AssociationArchive.yaml index b2867f6a0b..16bfb8408f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AssociationArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AssociationArchive.yaml @@ -4,11 +4,8 @@ title: Association Archive Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/parent_society -- ./ArchiveOrganizationType -- ./CollectionType -- ./HeritageSocietyType + - linkml:types + - ../slots/parent_society classes: AssociationArchive: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AuctionHouse.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AuctionHouse.yaml index 5add2829e0..40368b4bbe 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AuctionHouse.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AuctionHouse.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name -- ../slots/is_or_was_conducted_by + - linkml:types + - ../slots/has_or_had_name + - ../slots/is_or_was_conducted_by classes: AuctionHouse: class_uri: schema:AuctionHouse @@ -19,7 +19,7 @@ classes: - has_or_had_name slot_usage: has_or_had_name: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AuctionSaleCatalog.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AuctionSaleCatalog.yaml index 605430ec75..88b8d4b228 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AuctionSaleCatalog.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AuctionSaleCatalog.yaml @@ -15,9 +15,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name -- ../slots/publishes_or_published + - linkml:types + - ../slots/has_or_had_name + - ../slots/publishes_or_published classes: AuctionSaleCatalog: class_uri: schema:PublicationIssue @@ -26,7 +26,7 @@ classes: - has_or_had_name slot_usage: has_or_had_name: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml index 944b555b70..2ef0b63645 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml @@ -11,24 +11,16 @@ description: 'A temporal segment of audio containing a detected audio event (spe ' imports: -- linkml:types -- ../enums/AudioEventTypeEnum -- ../slots/has_or_had_score -- ../slots/has_or_had_time_interval -- ../slots/has_or_had_type -- ../slots/is_or_was_generated_by -- ../slots/segment_index -- ../slots/segment_text -- ../slots/specificity_annotation -- ../slots/start_seconds -- ../slots/start_time -- ./ConfidenceScore -- ./GenerationEvent -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeInterval + - linkml:types + - ../enums/AudioEventTypeEnum + - ../slots/has_or_had_score + - ../slots/has_or_had_time_interval + - ../slots/has_or_had_type + - ../slots/is_or_was_generated_by + - ../slots/segment_index + - ../slots/segment_text + - ../slots/start_seconds + - ../slots/start_time prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -133,7 +125,6 @@ classes: - segment_text - is_or_was_generated_by - has_or_had_type - - specificity_annotation - has_or_had_score - start_seconds - start_time @@ -151,7 +142,7 @@ classes: examples: - value: null segment_text: - range: string +# range: string required: false examples: - value: Welcome to the Rijksmuseum diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AudiovisualArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AudiovisualArchive.yaml index 497cc8af8f..2587ff13f4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AudiovisualArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AudiovisualArchive.yaml @@ -13,21 +13,11 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./AudiovisualArchiveRecordSetType -- ./AudiovisualArchiveRecordSetTypes -- ./CollectionType -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: AudiovisualArchive: is_a: ArchiveOrganizationType @@ -98,7 +88,7 @@ classes: ' slot_usage: hold_or_held_record_set_type: - range: string +# range: string annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetType.yaml index 582b09f86c..c6d3e09a4a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetType.yaml @@ -4,14 +4,10 @@ title: AudiovisualArchive Record Set Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: AudiovisualArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by AudiovisualArchive custodians. @@ -20,7 +16,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetTypes.yaml index 7557e08f14..6b21cfe166 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./AudiovisualArchive -- ./AudiovisualArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./AudiovisualArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: AudiovisualRecordingCollection: is_a: AudiovisualArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for AV recordings.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept AudiovisualProductionFonds: is_a: AudiovisualArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Media production records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by AudiovisualArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Audit.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Audit.yaml index 8a9a7bde90..e324949e28 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Audit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Audit.yaml @@ -9,10 +9,10 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/draws_or_drew_opinion -- ../slots/is_or_was_conducted_by -- ../slots/temporal_extent + - linkml:types + - ../slots/draws_or_drew_opinion + - ../slots/is_or_was_conducted_by + - ../slots/temporal_extent classes: Audit: class_uri: prov:Activity diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AuditOpinion.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AuditOpinion.yaml index 9109e03d94..2662384703 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AuditOpinion.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AuditOpinion.yaml @@ -8,9 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: AuditOpinion: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AuditStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AuditStatus.yaml index ac563dc4c0..f135150cd2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AuditStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AuditStatus.yaml @@ -12,10 +12,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ./AuditStatusType + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_type classes: AuditStatus: class_uri: skos:Concept @@ -31,4 +30,4 @@ classes: slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AuditStatusType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AuditStatusType.yaml index cc02cd5e8b..0d599a32fc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AuditStatusType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AuditStatusType.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: AuditStatusType: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AuditStatusTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AuditStatusTypes.yaml index 6467db2130..bd93e0ffcd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AuditStatusTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AuditStatusTypes.yaml @@ -7,8 +7,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ default_prefix: hc imports: -- linkml:types -- ./AuditStatusType + - ./AuditStatusType + - linkml:types classes: AuditedStatus: is_a: AuditStatusType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Auditor.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Auditor.yaml index 42d4aa6242..7cc21a1363 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Auditor.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Auditor.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: Auditor: class_uri: schema:Organization diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Authentication.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Authentication.yaml index 5026deea83..2673d16665 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Authentication.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Authentication.yaml @@ -7,8 +7,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ default_prefix: hc imports: -- linkml:types -- ../slots/requires_or_required + - linkml:types + - ../slots/requires_or_required classes: Authentication: class_uri: hc:Authentication diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Author.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Author.yaml index bf3c217013..cd3d92e370 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Author.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Author.yaml @@ -11,21 +11,16 @@ prefixes: foaf: http://xmlns.com/foaf/0.1/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../enums/AuthorRoleEnum -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_name -- ../slots/has_or_had_role -- ../slots/has_or_had_score -- ../slots/is_or_was_affiliated_with -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/AuthorRoleEnum + - ../metadata + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_name + - ../slots/has_or_had_role + - ../slots/has_or_had_score + - ../slots/is_or_was_affiliated_with default_prefix: hc classes: Author: @@ -45,14 +40,13 @@ classes: - has_or_had_name - has_or_had_role - is_or_was_affiliated_with - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: has_or_had_name: - range: string +# range: string required: true examples: - value: Jan de Vries @@ -65,13 +59,13 @@ classes: - value: AUTHOR - value: EDITOR is_or_was_affiliated_with: - range: string +# range: string required: false examples: - value: Rijksmuseum Amsterdam - value: Universiteit van Amsterdam - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: false examples: - value: https://orcid.org/0000-0001-2345-6789 @@ -90,7 +84,7 @@ classes: has_or_had_name: Jan de Vries has_or_had_role: AUTHOR is_or_was_affiliated_with: Rijksmuseum Amsterdam - has_or_had_identifier: https://orcid.org/0000-0001-2345-6789 + identified_by: https://orcid.org/0000-0001-2345-6789 - value: has_or_had_name: Maria van Dijk has_or_had_role: EDITOR diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AuthorityData.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AuthorityData.yaml index 62c170b5d0..7d869507fa 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AuthorityData.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AuthorityData.yaml @@ -8,10 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ../slots/has_or_had_url + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_type + - ../slots/has_or_had_url classes: AuthorityData: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AuthorityFile.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AuthorityFile.yaml index 6c5c4d89b5..fbcf565106 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AuthorityFile.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AuthorityFile.yaml @@ -10,12 +10,11 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/contains_or_contained -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ./Entity + - linkml:types + - ../metadata + - ../slots/contains_or_contained + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: AuthorityFile: class_uri: void:Dataset @@ -33,7 +32,7 @@ classes: slot_usage: contains_or_contained: - range: string +# range: string annotations: custodian_types: '["*"]' specificity_score: 0.4 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AutoGeneration.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AutoGeneration.yaml index fd0cc7aa89..0166f924f8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AutoGeneration.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AutoGeneration.yaml @@ -2,9 +2,9 @@ id: https://nde.nl/ontology/hc/class/AutoGeneration name: auto_generation_class title: AutoGeneration Class imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -43,12 +43,12 @@ classes: - has_or_had_description slot_usage: has_or_had_label: - range: string +# range: string examples: - value: YouTube Auto-Caption - value: ASR Transcription has_or_had_description: - range: string +# range: string examples: - value: Automatically generated by YouTube's speech recognition system - value: Generated using Whisper ASR model diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml index 8c231b9b18..61ff58ab49 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml @@ -2,58 +2,29 @@ id: https://nde.nl/ontology/hc/class/auxiliary-digital-platform name: auxiliary_digital_platform_class title: AuxiliaryDigitalPlatform Class imports: -- linkml:types -- ../classes/ArchivalStatus -- ../slots/has_or_had_documentation -- ../slots/has_or_had_endpoint -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_status -- ../slots/has_or_had_technological_infrastructure -- ../slots/has_or_had_type -- ../slots/is_auxiliary_of_platform -- ../slots/is_or_was_archived_at -- ../slots/is_or_was_based_on -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/linked_data -- ../slots/platform_description -- ../slots/platform_name -- ../slots/platform_purpose -- ../slots/platform_url -- ../slots/receives_or_received -- ../slots/refers_to_custodian -- ../slots/related_project -- ../slots/serves_finding_aid -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./CMS -- ./CMSType -- ./CollectionManagementSystem -- ./Custodian -- ./CustodianObservation -- ./DataServiceEndpoint -- ./DataServiceEndpointTypes -- ./DigitalPlatform -- ./DigitalPlatformType -- ./DigitalPlatformTypes -- ./Documentation -- ./FundingSource -- ./METSAPI -- ./OAIPMHEndpoint -- ./PlatformType -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SearchAPI -- ./SpecificityAnnotation -- ./TechnologicalInfrastructure -- ./TechnologicalInfrastructureType -- ./TechnologicalInfrastructureTypes -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./ArchivalStatus + - linkml:types + - ../slots/has_or_had_documentation + - ../slots/has_or_had_endpoint + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_status + - ../slots/has_or_had_technological_infrastructure + - ../slots/has_or_had_type + - ../slots/is_auxiliary_of_platform + - ../slots/is_or_was_archived_at + - ../slots/is_or_was_based_on + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/linked_data + - ../slots/platform_description + - ../slots/platform_name + - ../slots/platform_purpose + - ../slots/platform_url + - ../slots/receives_or_received + - ../slots/refers_to_custodian + - ../slots/related_project + - ../slots/serves_finding_aid + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -72,7 +43,7 @@ classes: class_uri: dcat:Catalog description: "Subordinate or project-based digital platform associated with a heritage custodian.\n\n**CRITICAL DISTINCTION - THREE-TIER DIGITAL PLATFORM MODEL**:\n\n1. **DigitalPlatform** (main digital entry point):\n - Primary web presence of the custodian\n - Main website, primary API, flagship digital platform\n - Like CustodianPlace is the preferred place reference\n - Examples: rijksmuseum.nl, europeana.eu, nationaalarchief.nl\n \n2. **AuxiliaryDigitalPlatform** (subordinate platforms) - THIS CLASS:\n - Secondary digital properties: project sites, exhibition microsites\n - Like CustodianAppellation is to CustodianName\n - Examples: project websites, temporary exhibition portals, specialized tools\n \n3. **DigitalPlatformType** (custodian type classification):\n - For digital-FIRST custodians (no physical building)\n - Applied at Custodian.custodian_type level\n - Examples: Europeana (aggregation platform), Internet Archive\n\n**DCAT ALIGNMENT**:\n\n`dcat:Catalog`\ \ - \"A curated collection of metadata about datasets\"\n\nKey properties:\n- `dcat:dataset` - links to datasets/collections\n- `dcat:service` - data services provided\n- `dcterms:isPartOf` - links to parent catalog\n\n**RELATIONSHIP TO DIGITALPLATFORM**:\n\nAuxiliaryDigitalPlatform represents SUBORDINATE digital presence\nDigitalPlatform represents PRIMARY digital entry point\n\n```\nCustodian (hub)\n \u2502\n \u2514\u2500\u2500 digital_platform \u2192 DigitalPlatform (main digital entry)\n \u2514\u2500\u2500 auxiliary_platforms \u2192 AuxiliaryDigitalPlatform (project sites)\n```\n\n**USE CASES**:\n\n1. **Project Websites**:\n - Rijksmuseum \u2192 Rijksstudio API (separate from main website)\n - National Archives \u2192 WW2 Portal (thematic project)\n\n2. **Exhibition Microsites**:\n - Temporary exhibition with dedicated website\n - Virtual tour for specific collection\n\n3. **Specialized Tools/Apps**:\n - Mobile app (separate from responsive website)\n - Collection\ - \ browser tool\n - Crowdsourcing platform\n\n4. **Legacy/Archived Platforms**:\n - Previous website versions\n - Deprecated APIs still in use\n\n5. **Grant-Funded Projects**:\n - EU-funded digitization project portal\n - Research project data portal\n\n6. **Educational Platforms**:\n - Teacher resources portal\n - Student learning modules\n - Workshop booking system\n\n**Example - Rijksmuseum Auxiliary Platforms**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address: \"https://www.rijksmuseum.nl/\"\n auxiliary_platforms:\n - platform_name: \"Rijksstudio\"\n auxiliary_platform_type: PROJECT_WEBSITE\n platform_url: \"https://www.rijksmuseum.nl/nl/rijksstudio\"\n platform_purpose: \"Personal collection creation and high-res image downloads\"\n - platform_name: \"\ + \ browser tool\n - Crowdsourcing platform\n\n4. **Legacy/Archived Platforms**:\n - Previous website versions\n - Deprecated APIs still in use\n\n5. **Grant-Funded Projects**:\n - EU-funded digitization project portal\n - Research project data portal\n\n6. **Educational Platforms**:\n - Teacher resources portal\n - Student learning modules\n - Workshop booking system\n\n**Example - Rijksmuseum Auxiliary Platforms**:\n```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address: \"https://www.rijksmuseum.nl/\"\n auxiliary_platforms:\n - platform_name: \"Rijksstudio\"\n auxiliary_platform_type: PROJECT_WEBSITE\n platform_url: \"https://www.rijksmuseum.nl/nl/rijksstudio\"\n platform_purpose: \"Personal collection creation and high-res image downloads\"\n - platform_name: \"\ Rijksmuseum Data API\"\n auxiliary_platform_type: API_ENDPOINT\n platform_url: \"https://data.rijksmuseum.nl/\"\n platform_purpose: \"Developer access to collection metadata and images\"\n - platform_name: \"Night Watch Experience\"\n auxiliary_platform_type: EXHIBITION_MICROSITE\n platform_url: \"https://www.rijksmuseum.nl/en/stories/operation-night-watch\"\n platform_purpose: \"Interactive exploration of Night Watch research project\"\n```\n\n**TEMPORAL VALIDITY**:\n\nAuxiliary platforms often have finite lifespans:\n- Exhibition microsite: opens with exhibition, archived after closure\n- Project portal: funded period, then deprecated or integrated\n- Legacy platforms: valid_to when replaced by new system\n" exact_mappings: - dcat:Catalog @@ -89,7 +60,7 @@ classes: slots: - has_or_had_documentation - is_or_was_archived_at - - has_or_had_identifier + - identified_by - has_or_had_type - is_or_was_based_on - has_or_had_endpoint @@ -100,32 +71,30 @@ classes: - platform_name - platform_purpose - platform_url - - has_or_had_type - refers_to_custodian - related_project - serves_finding_aid - - specificity_annotation - has_or_had_technological_infrastructure - has_or_had_score - temporal_extent - is_or_was_derived_from - is_or_was_generated_by slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux-platform/rijksmuseum-rijksstudio platform_name: - range: string +# range: string required: true examples: - value: Rijksstudio - value: Operation Night Watch - value: WW2 Portal has_or_had_type: - range: string +# range: string required: false examples: - value: web_harvest @@ -138,12 +107,12 @@ classes: - value: https://www.rijksmuseum.nl/nl/rijksstudio - value: https://data.rijksmuseum.nl/ platform_purpose: - range: string +# range: string examples: - value: Personal collection creation and high-res image downloads - value: Interactive exploration of Night Watch research project platform_description: - range: string +# range: string examples: - value: Rijksstudio allows users to create personal collections from the Rijksmuseum's digitized artworks, download high-resolution images, and share curated sets with others. has_or_had_documentation: @@ -152,35 +121,38 @@ classes: examples: - value: https://data.rijksmuseum.nl/object-metadata/api/ has_or_had_technological_infrastructure: - range: TechnologicalInfrastructure +# range: string # uriorcurie + # range: TechnologicalInfrastructure multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_identifier: tech-react-frontend + identified_by: tech-react-frontend has_or_had_type: FrontendFramework has_or_had_label: React has_or_had_version: '18.2' - value: - has_or_had_identifier: tech-django-backend + identified_by: tech-django-backend has_or_had_type: BackendFramework has_or_had_label: Python/Django has_or_had_version: '4.2' includes_or_included: - Django REST Framework is_auxiliary_of_platform: - range: DigitalPlatform +# range: string # uriorcurie + # range: DigitalPlatform required: true examples: - value: https://nde.nl/ontology/hc/platform/rijksmuseum-website related_project: - range: string +# range: string examples: - value: Operation Night Watch - value: 'EU Horizon 2020 Grant #123456' receives_or_received: - range: FundingSource - inlined: true +# range: string # uriorcurie + # range: FundingSource + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_label: European Commission Horizon 2020 @@ -197,8 +169,9 @@ classes: begin_of_the_begin: '2018-06-01' end_of_the_end: '2021-12-31' has_or_had_status: - range: ArchivalStatus - inlined: true +# range: string # uriorcurie + # range: ArchivalStatus + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_code: ACTIVE @@ -214,9 +187,10 @@ classes: examples: - value: https://web.archive.org/web/20211231/https://example.nl/exhibition/ is_or_was_based_on: - range: CMS +# range: string # uriorcurie + # range: CMS multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -227,7 +201,7 @@ classes: cms_version: 4.0.1 has_or_had_type: MuseumCMS is_or_was_derived_from: - range: CustodianObservation +# range: string # CustodianObservation multivalued: true required: false is_or_was_generated_by: @@ -239,9 +213,9 @@ classes: examples: - value: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 serves_finding_aid: - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type required: false examples: - value: https://nde.nl/ontology/hc/finding-aid/rm/night-watch-guide @@ -260,7 +234,7 @@ classes: - http://usefulinc.com/ns/doap# examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-platform/rijksmuseum-rijksstudio + identified_by: https://nde.nl/ontology/hc/aux-platform/rijksmuseum-rijksstudio platform_name: Rijksstudio has_or_had_type: has_or_had_label: ProjectWebsite @@ -273,7 +247,7 @@ classes: has_or_had_code: ACTIVE refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-platform/rijksmuseum-data-api + identified_by: https://nde.nl/ontology/hc/aux-platform/rijksmuseum-data-api platform_name: Rijksmuseum Data API has_or_had_type: has_or_had_label: APIEndpoint @@ -281,11 +255,11 @@ classes: platform_purpose: Developer access to collection metadata and images has_or_had_documentation: https://data.rijksmuseum.nl/object-metadata/api/ has_or_had_technological_infrastructure: - - has_or_had_identifier: tech-rest-api + - identified_by: tech-rest-api has_or_had_type: RESTful has_or_had_label: REST API has_or_had_description: RESTful API protocol for data access - - has_or_had_identifier: tech-json-format + - identified_by: tech-json-format has_or_had_type: APIProtocol has_or_had_label: JSON has_or_had_description: JSON data format for API responses @@ -295,7 +269,7 @@ classes: has_or_had_code: ACTIVE refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-platform/rm-night-watch-experience + identified_by: https://nde.nl/ontology/hc/aux-platform/rm-night-watch-experience platform_name: Operation Night Watch has_or_had_type: has_or_had_label: ExhibitionMicrosite @@ -309,7 +283,7 @@ classes: has_or_had_code: ACTIVE refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-platform/na-ww2-portal + identified_by: https://nde.nl/ontology/hc/aux-platform/na-ww2-portal platform_name: WW2 Archives Portal has_or_had_type: has_or_had_label: ProjectWebsite diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml index 05f7990344..92b2ce081f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml @@ -2,62 +2,27 @@ id: https://nde.nl/ontology/hc/class/auxiliary-place name: auxiliary_place_class title: AuxiliaryPlace Class imports: -- linkml:types -- ../enums/AuxiliaryPlaceTypeEnum -- ../slots/country -- ../slots/has_or_had_geographic_subdivision -- ../slots/has_or_had_geometry -- ../slots/has_or_had_identifier -- ../slots/has_or_had_location -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_branch_of -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/is_or_was_located_in -- ../slots/is_or_was_location_of -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/postal_code -- ../slots/refers_to_custodian -- ../slots/settlement -- ../slots/specialized_place -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./Address -- ./AdministrativeOffice -- ./BranchOffice -- ./CateringPlace -- ./City -- ./ConservationLab -- ./Country -- ./Custodian -- ./CustodianObservation -- ./CustodianPlace -- ./EducationCenter -- ./ExhibitionSpace -- ./FeaturePlace -- ./GeoSpatialPlace -- ./GiftShop -- ./HistoricBuilding -- ./OrganizationBranch -- ./OutdoorSite -- ./PlaceType -- ./ReadingRoom -- ./ReadingRoomAnnex -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./ResearchCenter -- ./Settlement -- ./SpecificityAnnotation -- ./Storage -- ./Subregion -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TemporaryLocation -- ./TimeSpan -- ./Warehouse + - linkml:types + - ../enums/AuxiliaryPlaceTypeEnum + - ../slots/country + - ../slots/has_or_had_geographic_subdivision + - ../slots/has_or_had_geometry + - ../slots/identified_by + - ../slots/has_or_had_location + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_branch_of + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/is_or_was_located_in + - ../slots/is_or_was_location_of + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/postal_code + - ../slots/refers_to_custodian + - ../slots/settlement + - ../slots/specialized_place + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -76,7 +41,7 @@ classes: class_uri: org:Site description: "Secondary or subordinate physical location associated with a heritage custodian.\n\n**CRITICAL DISTINCTION - THREE-TIER PLACE MODEL**:\n\n1. **CustodianPlace** (preferred place reference):\n - Main/primary place designation for the custodian\n - Like CustodianName is the preferred emic label\n - Examples: \"Rijksmuseum\" (main building), \"National Archives\" (headquarters)\n \n2. **AuxiliaryPlace** (subordinate places) - THIS CLASS:\n - Secondary locations: branch offices, storage facilities, regional sites\n - Like CustodianAppellation is to CustodianName\n - Examples: Depot Amersfoort (off-site storage), Regional office Noord-Holland\n \n3. **FeaturePlace** (feature type classification):\n - Classifies the TYPE of physical feature (museum building, warehouse, etc.)\n - Applies to both CustodianPlace and AuxiliaryPlace\n\n**W3C ORG ALIGNMENT**:\n\n`org:Site` - \"An office or other premise at which the organization is located. \nMany organizations are\ \ spread across multiple sites and many sites will host \nmultiple locations. In most cases a Site will be a physical location.\"\n\nKey properties:\n- `org:siteOf` - links site to organization (inverse of org:hasSite)\n- `org:siteAddress` - locn:Address for physical address\n- `locn:geometry` - geometric representation (lat/lon)\n\n**RELATIONSHIP TO ORGANIZATIONBRANCH**:\n\nAuxiliaryPlace represents PHYSICAL LOCATION (where)\nOrganizationBranch represents ORGANIZATIONAL UNIT (what operates there)\n\n```\nCustodian (hub)\n \u251C\u2500\u2500 place_designation \u2192 CustodianPlace (main place)\n \u2502 \u2514\u2500\u2500 auxiliary_places \u2192 AuxiliaryPlace (subordinate sites)\n \u2502 \u2514\u2500\u2500 hosts_branch \u2192 OrganizationBranch (org unit at site)\n \u2502 \u2514\u2500\u2500 has_operational_unit \u2192 OrganizationalStructure (teams)\n \u2502\n \u2514\u2500\u2500 organizational_structure \u2192 OrganizationalStructure (informal units)\n \ - \ \u2514\u2500\u2500 located_at \u2192 AuxiliaryPlace (optional physical location)\n```\n\n**USE CASES**:\n\n1. **Off-site Storage Facilities**:\n - Museum depot in Amersfoort (Rijksmuseum)\n - Archive annexes and document centers\n\n2. **Branch Libraries/Offices**:\n - University library branches at satellite campuses\n - Regional archive offices (Noord-Holland, Zuid-Holland)\n\n3. **Research Centers**:\n - Conservation lab in separate building\n - Digitization center at different address\n\n4. **Historic Buildings Under Same Custodian**:\n - Mauritshuis manages multiple historic houses\n - Abbey with multiple monastic buildings\n\n5. **Temporary Locations**:\n - Exhibition pavilions\n - Pop-up museums/archives\n - Storage during renovation\n\n**Example - Rijksmuseum with Multiple Sites**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n place_designation:\n place_name: \"Rijksmuseum\"\ + \ \u2514\u2500\u2500 located_at \u2192 AuxiliaryPlace (optional physical location)\n```\n\n**USE CASES**:\n\n1. **Off-site Storage Facilities**:\n - Museum depot in Amersfoort (Rijksmuseum)\n - Archive annexes and document centers\n\n2. **Branch Libraries/Offices**:\n - University library branches at satellite campuses\n - Regional archive offices (Noord-Holland, Zuid-Holland)\n\n3. **Research Centers**:\n - Conservation lab in separate building\n - Digitization center at different address\n\n4. **Historic Buildings Under Same Custodian**:\n - Mauritshuis manages multiple historic houses\n - Abbey with multiple monastic buildings\n\n5. **Temporary Locations**:\n - Exhibition pavilions\n - Pop-up museums/archives\n - Storage during renovation\n\n**Example - Rijksmuseum with Multiple Sites**:\n```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n place_designation:\n place_name: \"Rijksmuseum\"\ \ # Main building on Museumplein\n auxiliary_places:\n - place_name: \"Depot Amersfoort\"\n auxiliary_place_type: STORAGE_FACILITY\n street_address: \"Euterpelaan 25, Amersfoort\"\n - place_name: \"Rijksmuseum Schiphol\"\n auxiliary_place_type: BRANCH_OFFICE\n street_address: \"Schiphol Airport, Lounge 2\"\n hosts_branch:\n has_or_had_label: \"Schiphol Exhibition Space\"\n```\n\n**TEMPORAL VALIDITY**:\n\nAuxiliary places can open/close independently:\n- Storage facility opened 1995, closed 2010 (moved to new location)\n- Branch office valid_from 2000, valid_to null (still active)\n\nTrack with valid_from/valid_to or temporal_extent (for fuzzy dates).\n" exact_mappings: - org:Site @@ -91,7 +56,7 @@ classes: - org:siteAddress - vcard:Address slots: - - has_or_had_identifier + - identified_by - has_or_had_type - is_or_was_located_in - country @@ -104,7 +69,6 @@ classes: - refers_to_custodian - settlement - specialized_place - - specificity_annotation - has_or_had_geographic_subdivision - has_or_had_score - temporal_extent @@ -112,23 +76,24 @@ classes: - is_or_was_generated_by - has_or_had_geometry slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort has_or_had_label: - range: string +# range: string required: true examples: - value: Depot Amersfoort - value: Rijksmuseum Schiphol - value: Reading Room Annex has_or_had_type: - range: PlaceType +# range: string # uriorcurie + # range: PlaceType required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_label: STORAGE_FACILITY @@ -137,9 +102,10 @@ classes: - value: has_or_had_label: RESEARCH_CENTER specialized_place: - range: ReconstructedEntity +# range: string # uriorcurie + # range: ReconstructedEntity required: false - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: research_center_id: https://nde.nl/hc/research/kb-digitization @@ -152,17 +118,17 @@ classes: - Works on paper - Drawings has_or_had_description: - range: string +# range: string examples: - value: Off-site storage facility housing overflow collections. Staff access only. postal_code: - range: string +# range: string examples: - value: 3824 BK is_or_was_located_in: - range: string +# range: string required: false - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: settlement_name: Amersfoort @@ -172,7 +138,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/country/NL has_or_had_geographic_subdivision: - range: string +# range: string examples: - value: https://nde.nl/ontology/hc/subregion/NL-UT settlement: @@ -182,9 +148,10 @@ classes: - value: https://nde.nl/ontology/hc/settlement/5206379 - value: https://nde.nl/ontology/hc/feature/herenhuis-mansion has_or_had_location: - range: GeoSpatialPlace +# range: string # uriorcurie + # range: GeoSpatialPlace multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -213,15 +180,17 @@ classes: has_accuracy_in_meters: 50.0 spatial_resolution: BUILDING is_or_was_location_of: - range: OrganizationBranch +# range: string # uriorcurie + # range: OrganizationBranch multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: has_or_had_label: Conservation Division - Amersfoort branch_type: CONSERVATION_LAB is_or_was_branch_of: - range: CustodianPlace +# range: string # uriorcurie + # range: CustodianPlace required: true examples: - value: https://nde.nl/ontology/hc/place/rijksmuseum-main @@ -235,7 +204,7 @@ classes: begin_of_the_begin: '1970-01-01' end_of_the_begin: '1979-12-31' is_or_was_derived_from: - range: CustodianObservation +# range: string # CustodianObservation multivalued: true required: false is_or_was_generated_by: @@ -261,7 +230,7 @@ classes: - https://www.w3.org/TR/vcard-rdf/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort + identified_by: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort has_or_had_label: Depot Amersfoort has_or_had_type: has_or_had_label: STORAGE_FACILITY @@ -271,7 +240,7 @@ classes: is_or_was_branch_of: https://nde.nl/ontology/hc/place/rijksmuseum-main refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/rijksmuseum-schiphol + identified_by: https://nde.nl/ontology/hc/aux-place/rijksmuseum-schiphol has_or_had_label: Rijksmuseum Schiphol has_or_had_type: has_or_had_label: BRANCH_OFFICE @@ -286,7 +255,7 @@ classes: is_or_was_branch_of: https://nde.nl/ontology/hc/place/rijksmuseum-main refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/nha-reading-room-annex + identified_by: https://nde.nl/ontology/hc/aux-place/nha-reading-room-annex has_or_had_label: Noord-Hollands Archief Reading Room Annex has_or_had_type: has_or_had_label: READING_ROOM_ANNEX diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryPlatform.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryPlatform.yaml index 042d8f11cb..6549953109 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryPlatform.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryPlatform.yaml @@ -7,7 +7,7 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types + - linkml:types classes: AuxiliaryPlatform: class_uri: schema:WebSite diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AvailabilityStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AvailabilityStatus.yaml index f94d4d247d..9a9d2ecbc0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AvailabilityStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AvailabilityStatus.yaml @@ -2,11 +2,10 @@ id: https://nde.nl/ontology/hc/class/AvailabilityStatus name: availability_status_class title: AvailabilityStatus Class imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -46,13 +45,13 @@ classes: - temporal_extent slot_usage: has_or_had_label: - range: string +# range: string required: false examples: - value: API Available - value: Service Unavailable has_or_had_description: - range: string +# range: string examples: - value: REST API available with JSON responses temporal_extent: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BOLDIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BOLDIdentifier.yaml index 568e888020..05df84ae7b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BOLDIdentifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BOLDIdentifier.yaml @@ -10,14 +10,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_score classes: BOLDIdentifier: class_uri: schema:PropertyValue @@ -34,7 +29,6 @@ classes: - dcterms:identifier slots: - has_or_had_description - - specificity_annotation - has_or_had_score comments: - Used for DNA barcode identifiers in natural history collections diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BackupStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BackupStatus.yaml index 08adbe82e3..caa853a294 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BackupStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BackupStatus.yaml @@ -10,15 +10,14 @@ prefixes: premis: http://www.loc.gov/premis/rdf/v3/ default_prefix: hc imports: -- linkml:types -- ../slots/begin_of_the_begin -- ../slots/end_of_the_end -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_note -- ../slots/has_or_had_type -- ./BackupType + - linkml:types + - ../slots/begin_of_the_begin + - ../slots/end_of_the_end + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_note + - ../slots/has_or_had_type classes: BackupStatus: class_uri: prov:Entity @@ -29,7 +28,7 @@ classes: close_mappings: - premis:fixity slots: - - has_or_had_identifier + - identified_by - has_or_had_type - has_or_had_label - has_or_had_description @@ -37,25 +36,25 @@ classes: - begin_of_the_begin - end_of_the_end slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie identifier: true required: true pattern: ^https://nde\.nl/ontology/hc/backup-status/[a-z0-9-]+$ has_or_had_type: - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_code: DAILY_AUTOMATED - has_or_had_code: CLOUD_AZURE has_or_had_description: - range: string +# range: string examples: - value: Daily backup to Azure, replicated to secondary site in Rotterdam. has_or_had_note: - range: string +# range: string multivalued: true examples: - value: Encryption at rest enabled since 2024-01 @@ -75,7 +74,7 @@ classes: - 'MIGRATED 2026-01-13: Replaces backup_status string slot' examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/backup-status/example-001 + identified_by: https://nde.nl/ontology/hc/backup-status/example-001 has_or_had_type: - has_or_had_code: DAILY_AUTOMATED - has_or_had_code: CLOUD_AZURE @@ -86,7 +85,7 @@ classes: ' begin_of_the_begin: '2024-01-15T00:00:00Z' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/backup-status/critical-001 + identified_by: https://nde.nl/ontology/hc/backup-status/critical-001 has_or_had_type: - has_or_had_code: NOT_BACKED_UP has_or_had_description: Legacy system not yet included in backup. Migration planned for Q2 2026. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BackupType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BackupType.yaml index 5ec91e63cb..99fb5b45a5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BackupType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BackupType.yaml @@ -16,17 +16,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/is_or_was_equivalent_to -- ../slots/is_or_was_related_to -- ./WikiDataIdentifier -- ./BackupType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/is_or_was_equivalent_to + - ../slots/is_or_was_related_to classes: BackupType: class_uri: skos:Concept @@ -40,7 +38,7 @@ classes: related_mappings: - dcterms:isReferencedBy slots: - - has_or_had_identifier + - identified_by - has_or_had_code - has_or_had_label - has_or_had_description @@ -49,15 +47,15 @@ classes: - is_or_was_related_to - is_or_was_equivalent_to slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/backup-type/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/backup-type/daily-automated has_or_had_code: - range: string +# range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ examples: @@ -65,7 +63,7 @@ classes: - value: CLOUD_AZURE - value: NOT_BACKED_UP has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -76,7 +74,7 @@ classes: - Cloud backup (Azure)@en - Cloud backup (Azure)@nl has_or_had_description: - range: string +# range: string examples: - value: Daily automated backup to off-site storage with 30-day retention. has_or_had_hypernym: @@ -109,7 +107,7 @@ classes: - https://www.w3.org/TR/vocab-dqv/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/backup-type/daily-automated + identified_by: https://nde.nl/ontology/hc/backup-type/daily-automated has_or_had_code: DAILY_AUTOMATED has_or_had_label: - Daily automated backup@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BackupTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BackupTypes.yaml index bb2f24e3f0..1195a5aa3f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BackupTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BackupTypes.yaml @@ -7,8 +7,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ./BackupType + - ./BackupType + - linkml:types classes: DailyAutomatedBackup: is_a: BackupType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BankArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BankArchive.yaml index dcac1e25a5..5e48eda9fe 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BankArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BankArchive.yaml @@ -13,22 +13,11 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./BankArchiveRecordSetType -- ./BankArchiveRecordSetTypes -- ./CollectionType -- ./DualClassLink -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: BankArchive: is_a: ArchiveOrganizationType @@ -39,7 +28,7 @@ classes: \ closure periods for personal data\n- Anonymization requirements\n- Legal retention requirements\n- Sensitive commercial information\n\n**Notable Examples**:\n- HSBC Group Archives (London)\n- Deutsche Bank Historical Archive\n- Rothschild Archive (London)\n- Archives historiques de la Soci\xE9t\xE9 G\xE9n\xE9rale\n" slot_usage: hold_or_held_record_set_type: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BankArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BankArchiveRecordSetType.yaml index 4a74015166..d1a406bd1f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BankArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BankArchiveRecordSetType.yaml @@ -13,13 +13,10 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: BankArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by BankArchive custodians. @@ -29,7 +26,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BankArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BankArchiveRecordSetTypes.yaml index d586684adb..190f405eb9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BankArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BankArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./BankArchive -- ./BankArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./BankArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: BankingRecordsFonds: is_a: BankArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Banking institution records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept FinancialTransactionSeries: is_a: BankArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Financial records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by BankArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept CustomerAccountSeries: is_a: BankArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Account records (historical).\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by BankArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BaseName.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BaseName.yaml index 2aa7439d6b..94d287ca1d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BaseName.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BaseName.yaml @@ -14,7 +14,7 @@ prefixes: pnv: https://w3id.org/pnv# default_prefix: hc imports: -- linkml:types + - linkml:types classes: BaseName: class_uri: hc:BaseName diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BayNumber.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BayNumber.yaml index 4d1b4ea831..b36abb3ba7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BayNumber.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BayNumber.yaml @@ -3,17 +3,12 @@ name: bay_number_class title: Bay Number Class description: 'A storage bay or section identifier within a storage row. MIGRATED from bay_number slot (Rule 53). - Uses generic has_or_had_identifier slot with range narrowed to BayNumber. + Uses generic identified_by slot with range narrowed to BayNumber. Updated 2026-01-16: Migrated from inline attributes to proper slots. ' imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_score prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -25,7 +20,7 @@ classes: BayNumber: class_uri: hc:BayNumber description: "An identifier for a storage bay or section within a row/aisle of a storage facility.\n\n**DEFINITION**:\n\nBayNumber represents a discrete location identifier within a storage system.\nIn heritage storage facilities, storage is typically organized hierarchically:\n\n```\nStorage Facility\n \u2514\u2500\u2500 Zone (environmental control)\n \u2514\u2500\u2500 Row/Aisle (physical corridor)\n \u2514\u2500\u2500 Bay/Section (THIS CLASS - vertical unit in row)\n \u2514\u2500\u2500 Shelf (horizontal level within bay)\n \u2514\u2500\u2500 Storage Unit (box, drawer, etc.)\n```\n\n**TYPICAL VALUES**:\n\n| Format | Example | Description |\n|--------|---------|-------------|\n| Numeric | \"3\", \"12\" | Sequential bay numbers |\n| Alphabetic | \"A\", \"C\", \"AA\" | Lettered bays |\n| Mixed | \"3A\", \"B2\" | Combined formats |\n| Descriptive | \"North-3\" | Location-based |\n\n**HERITAGE USE CASES**:\n\n| Institution Type | Bay Naming Convention\ - \ |\n|------------------|----------------------|\n| Archives | Sequential numeric (1, 2, 3...) |\n| Museums | Alphanumeric by collection area |\n| Libraries | By call number range |\n| Natural history | By specimen type |\n\n**PROVENANCE**:\n\nCreated as part of slot migration (Rule 53) from deprecated\n`bay_number` slot to generic `has_or_had_identifier` pattern.\n" + \ |\n|------------------|----------------------|\n| Archives | Sequential numeric (1, 2, 3...) |\n| Museums | Alphanumeric by collection area |\n| Libraries | By call number range |\n| Natural history | By specimen type |\n\n**PROVENANCE**:\n\nCreated as part of slot migration (Rule 53) from deprecated\n`bay_number` slot to generic `identified_by` pattern.\n" exact_mappings: - hc:BayNumber close_mappings: @@ -33,9 +28,7 @@ classes: related_mappings: - schema:identifier slots: - - specificity_annotation - has_or_had_score - slot_usage: comments: - Storage bay identifier within a row/aisle - Part of hierarchical storage location addressing diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Bildstelle.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Bildstelle.yaml index 624c4f4009..afb92f0ce5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Bildstelle.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Bildstelle.yaml @@ -4,15 +4,9 @@ title: Bildstelle Type (German Visual Media Institution) prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: Bildstelle: is_a: ArchiveOrganizationType @@ -91,7 +85,6 @@ classes: equals_expression: '["hc:ArchiveOrganizationType"]' slots: - has_or_had_type - - specificity_annotation - has_or_had_score annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BindingType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BindingType.yaml index 6c1cb7dd83..cb8e6314b7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BindingType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BindingType.yaml @@ -11,17 +11,15 @@ prefixes: aat: http://vocab.getty.edu/aat/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/is_or_was_equivalent_to -- ../slots/is_or_was_related_to -- ./WikiDataIdentifier -- ./BindingType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/is_or_was_equivalent_to + - ../slots/is_or_was_related_to classes: BindingType: class_uri: bf:Binding @@ -35,7 +33,7 @@ classes: related_mappings: - aat:300211468 slots: - - has_or_had_identifier + - identified_by - has_or_had_code - has_or_had_label - has_or_had_description @@ -44,15 +42,15 @@ classes: - is_or_was_related_to - is_or_was_equivalent_to slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/binding-type/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/binding-type/full-leather has_or_had_code: - range: string +# range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ examples: @@ -60,7 +58,7 @@ classes: - value: HALF_LEATHER - value: CLOTH has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -71,7 +69,7 @@ classes: - Half leather@en - Halfleren band@nl has_or_had_description: - range: string +# range: string examples: - value: Entire cover bound in leather, typically calfskin, goatskin, or morocco. has_or_had_hypernym: @@ -104,7 +102,7 @@ classes: - http://vocab.getty.edu/aat/300211468 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/binding-type/full-leather + identified_by: https://nde.nl/ontology/hc/binding-type/full-leather has_or_had_code: FULL_LEATHER has_or_had_label: - Full leather@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BindingTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BindingTypes.yaml index 1bbcede3dd..af36c2337f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BindingTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BindingTypes.yaml @@ -9,8 +9,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ./BindingType + - ./BindingType + - linkml:types classes: FullLeatherBinding: is_a: BindingType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BioCustodianSubtype.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BioCustodianSubtype.yaml index 03351ef8ff..a49e5e7799 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BioCustodianSubtype.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BioCustodianSubtype.yaml @@ -9,12 +9,11 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/is_or_was_equivalent_to -- ./WikiDataIdentifier + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/is_or_was_equivalent_to default_prefix: hc classes: BioCustodianSubtype: @@ -86,21 +85,21 @@ classes: close_mappings: - schema:Enumeration slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - is_or_was_equivalent_to slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true - range: uriorcurie +# range: string # uriorcurie examples: - value: hc:BioCustodianSubtype/BOTANICAL_GARDEN - value: hc:BioCustodianSubtype/ZOOLOGICAL_GARDEN has_or_had_label: required: true - range: string +# range: string examples: - value: Botanical Garden - value: Zoological Park @@ -108,7 +107,7 @@ classes: - value: Safari Park has_or_had_description: required: false - range: string +# range: string is_or_was_equivalent_to: required: false range: WikiDataIdentifier diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BioCustodianSubtypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BioCustodianSubtypes.yaml index b21b19f873..cee6be0ba3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BioCustodianSubtypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BioCustodianSubtypes.yaml @@ -8,9 +8,8 @@ prefixes: schema: http://schema.org/ wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_label -- ./BioCustodianSubtype + - linkml:types + - ../slots/has_or_had_label default_prefix: hc classes: BotanicalGardenSubtype: @@ -31,7 +30,7 @@ classes: ifabsent: string(Botanical Garden) examples: - value: - has_or_had_identifier: hc:BioCustodianSubtype/BOTANICAL_GARDEN + identified_by: hc:BioCustodianSubtype/BOTANICAL_GARDEN has_or_had_label: Botanical Garden is_or_was_equivalent_to: - qid: Q167346 @@ -57,7 +56,7 @@ classes: ifabsent: string(Arboretum) examples: - value: - has_or_had_identifier: hc:BioCustodianSubtype/ARBORETUM + identified_by: hc:BioCustodianSubtype/ARBORETUM has_or_had_label: Arboretum is_or_was_equivalent_to: - qid: Q167951 @@ -125,7 +124,7 @@ classes: ifabsent: string(Zoological Garden) examples: - value: - has_or_had_identifier: hc:BioCustodianSubtype/ZOOLOGICAL_GARDEN + identified_by: hc:BioCustodianSubtype/ZOOLOGICAL_GARDEN has_or_had_label: Zoological Garden is_or_was_equivalent_to: - qid: Q43501 @@ -209,7 +208,7 @@ classes: ifabsent: string(Public Aquarium) examples: - value: - has_or_had_identifier: hc:BioCustodianSubtype/PUBLIC_AQUARIUM + identified_by: hc:BioCustodianSubtype/PUBLIC_AQUARIUM has_or_had_label: Public Aquarium is_or_was_equivalent_to: - qid: Q2281788 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BioCustodianType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BioCustodianType.yaml index 74050aa36f..ed9dda0fb3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BioCustodianType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BioCustodianType.yaml @@ -2,25 +2,16 @@ id: https://nde.nl/ontology/hc/class/BioCustodianType name: BioCustodianType title: Biological and Zoological Custodian Type Classification imports: -- linkml:types -- ../slots/conservation_breeding -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/living_collection -- ../slots/research_program -- ../slots/specificity_annotation -- ../slots/specimen_type -- ./BioCustodianSubtype -- ./BioCustodianSubtypes -- ./CustodianType -- ./Quantity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./Unit + - ../classes/AgentType + - linkml:types + - ../slots/conservation_breeding + - ../slots/has_or_had_hyponym + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/living_collection + - ../slots/research_program + - ../slots/specimen_type classes: BioCustodianType: is_a: CustodianType @@ -176,17 +167,16 @@ classes: - has_or_had_type - living_collection - research_program - - specificity_annotation - specimen_type - has_or_had_score slot_usage: specimen_type: - range: string +# range: string multivalued: true required: false has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type multivalued: true required: false examples: @@ -199,15 +189,16 @@ classes: range: boolean required: true research_program: - range: string +# range: string multivalued: true required: false conservation_breeding: - range: string +# range: string required: false has_or_had_type: equals_expression: '["hc:BioCustodianType"]' has_or_had_hyponym: - range: BioCustodianSubtype - inlined: true +# range: string # uriorcurie + # range: BioCustodianSubtype + inlined: false # Fixed invalid inline for primitive type description: 'Specific subtype from the BioCustodianSubtype class hierarchy (20 biological collection types). Each subtype links to a Wikidata entity describing a specific type of biological custodian. Subtypes include: BotanicalGardenSubtype, ZoologicalGardenSubtype, PublicAquariumSubtype, etc.' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BioTypeClassification.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BioTypeClassification.yaml index e2bca359c2..0cae8ca1bd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BioTypeClassification.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BioTypeClassification.yaml @@ -9,12 +9,11 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/is_or_was_equivalent_to -- ./WikiDataIdentifier + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/is_or_was_equivalent_to default_prefix: hc classes: BioTypeClassification: @@ -27,28 +26,28 @@ classes: close_mappings: - schema:Enumeration slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - is_or_was_equivalent_to slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true - range: uriorcurie +# range: string # uriorcurie examples: - value: hc:BioTypeClassification/BOTANICAL - value: hc:BioTypeClassification/ZOOLOGICAL has_or_had_label: required: true - range: string +# range: string examples: - value: Botanical Institution - value: Zoological Institution - value: Aquatic Institution has_or_had_description: required: false - range: string +# range: string is_or_was_equivalent_to: required: false range: WikiDataIdentifier diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BioTypeClassifications.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BioTypeClassifications.yaml index 4fd5fc8f19..4473cd9e16 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BioTypeClassifications.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BioTypeClassifications.yaml @@ -15,9 +15,8 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_label -- ./BioTypeClassification + - linkml:types + - ../slots/has_or_had_label default_prefix: hc classes: BotanicalInstitutionClassification: @@ -47,7 +46,7 @@ classes: ifabsent: string(Botanical Institution) examples: - value: - has_or_had_identifier: hc:BioTypeClassification/BOTANICAL + identified_by: hc:BioTypeClassification/BOTANICAL has_or_had_label: Botanical Institution annotations: specificity_score: 0.1 @@ -80,7 +79,7 @@ classes: ifabsent: string(Zoological Institution) examples: - value: - has_or_had_identifier: hc:BioTypeClassification/ZOOLOGICAL + identified_by: hc:BioTypeClassification/ZOOLOGICAL has_or_had_label: Zoological Institution annotations: custodian_types: "['*']" @@ -111,7 +110,7 @@ classes: ifabsent: string(Aquatic Institution) examples: - value: - has_or_had_identifier: hc:BioTypeClassification/AQUATIC + identified_by: hc:BioTypeClassification/AQUATIC has_or_had_label: Aquatic Institution annotations: custodian_types: "['*']" @@ -137,7 +136,7 @@ classes: ifabsent: string(Mixed Biological Institution) examples: - value: - has_or_had_identifier: hc:BioTypeClassification/MIXED_BIO + identified_by: hc:BioTypeClassification/MIXED_BIO has_or_had_label: Mixed Biological Institution annotations: custodian_types: "['*']" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml index 936b145657..7010cfd2d9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml @@ -12,64 +12,39 @@ prefixes: gbif: http://rs.gbif.org/terms/ aat: http://vocab.getty.edu/aat/ imports: -- linkml:types -- ../enums/PreservationMethodEnum -- ../metadata -- ../slots/describes_or_described -- ../slots/has_or_had_authority -- ../slots/has_or_had_comment -- ../slots/has_or_had_habitat -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_name -- ../slots/has_or_had_place -- ../slots/has_or_had_rank -- ../slots/has_or_had_score -- ../slots/has_or_had_status -- ../slots/has_or_had_type -- ../slots/is_or_was_acquired_by -- ../slots/is_or_was_associated_with -- ../slots/is_or_was_identified_through -- ../slots/is_or_was_listed_in -- ../slots/is_type_specimen -- ../slots/iucn_status -- ../slots/legal_provenance_note -- ../slots/life_stage -- ../slots/part_type -- ../slots/preparation_date -- ../slots/prepared_by -- ../slots/preservation_method -- ../slots/preservative_detail -- ../slots/sex -- ../slots/specificity_annotation -- ../slots/specimen_count -- ../slots/specimen_type -- ../slots/was_acquired_through -- ./Acquisition -- ./Agent -- ./BOLDIdentifier -- ./CITESAppendix -- ./CollectionEvent -- ./CustodianPlace -- ./FieldNumber -- ./Habitat -- ./IdentificationEvent -- ./Locality -- ./Name -- ./NameType -- ./NameTypes -- ./SpecificityAnnotation -- ./Taxon -- ./TaxonName -- ./TaxonomicAuthority -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./TypeStatus -- ./WikiDataIdentifier -- ./Identifier + - linkml:types + - ../enums/PreservationMethodEnum + - ../metadata + - ../slots/describes_or_described + - ../slots/has_or_had_authority + - ../slots/has_or_had_comment + - ../slots/has_or_had_habitat + - ../slots/has_or_had_hypernym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_name + - ../slots/has_or_had_place + - ../slots/has_or_had_rank + - ../slots/has_or_had_score + - ../slots/has_or_had_status + - ../slots/has_or_had_type + - ../slots/is_or_was_acquired_by + - ../slots/is_or_was_associated_with + - ../slots/is_or_was_identified_through + - ../slots/is_or_was_listed_in + - ../slots/is_type_specimen + - ../slots/iucn_status + - ../slots/legal_provenance_note + - ../slots/life_stage + - ../slots/part_type + - ../slots/preparation_date + - ../slots/prepared_by + - ../slots/preservation_method + - ../slots/preservative_detail + - ../slots/sex + - ../slots/specimen_count + - ../slots/specimen_type + - ../slots/was_acquired_through default_prefix: hc classes: BiologicalObject: @@ -91,7 +66,7 @@ classes: is_a: ExhibitedObject slots: - is_or_was_associated_with - - has_or_had_identifier + - identified_by - is_or_was_listed_in - was_acquired_through - describes_or_described @@ -101,7 +76,6 @@ classes: - has_or_had_name - has_or_had_type - is_or_was_identified_through - - has_or_had_identifier - has_or_had_habitat - is_type_specimen - iucn_status @@ -113,7 +87,6 @@ classes: - preservation_method - preservative_detail - sex - - specificity_annotation - specimen_count - specimen_type - has_or_had_label @@ -129,17 +102,17 @@ classes: inlined_as_list: true examples: - value: https://nde.nl/ontology/hc/taxon/raphus-cucullatus - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type required: false any_of: - range: FieldNumber - range: BOLDIdentifier - range: WikiDataIdentifier - - range: uriorcurie + - range: string # uriorcurie examples: - value: has_or_had_type: FieldNumber @@ -181,7 +154,7 @@ classes: has_or_had_language: en has_or_had_rank: required: false - range: string +# range: string examples: - value: SPECIES - value: SUBSPECIES @@ -201,7 +174,7 @@ classes: - John Edward Gray has_or_had_comment: required: false - range: string +# range: string examples: - value: Previously classified as Didus ineptus - value: aff. @@ -213,11 +186,12 @@ classes: - value: temporal_extent: begin_of_the_begin: '2020-03-15' + identified_by: - agent_name: Dr. Jane Smith description: 'Was date_identified: 2020-03-15' specimen_type: required: false - range: string +# range: string examples: - value: HOLOTYPE - value: PARATYPE @@ -234,21 +208,21 @@ classes: - value: "TypeStatus:\n status_value: \"Holotype of Raphus cucullatus Linnaeus, 1758\"\n status_type: \"nomenclatural\"\n" sex: required: false - range: string +# range: string examples: - value: MALE - value: FEMALE - value: UNKNOWN life_stage: required: false - range: string +# range: string examples: - value: ADULT - value: LARVA - value: FLOWERING part_type: required: false - range: string +# range: string multivalued: true examples: - value: SKELETON @@ -270,7 +244,7 @@ classes: - value: FROZEN_TISSUE preservative_detail: required: false - range: string +# range: string examples: - value: 70% ethanol - value: Formalin-fixed, ethanol-transferred @@ -282,7 +256,7 @@ classes: - value: '2020-06-15' prepared_by: required: false - range: string +# range: string examples: - value: Natural History Museum Preparation Lab - value: J. van der Berg @@ -349,7 +323,7 @@ classes: description: parasite of:Cervus elaphus iucn_status: required: false - range: string +# range: string examples: - value: EX - value: CR @@ -366,7 +340,7 @@ classes: has_or_had_label: Not regulated under CITES legal_provenance_note: required: false - range: string +# range: string examples: - value: 'Collected pre-CITES (1975). Import permit #12345.' has_or_had_type: @@ -411,7 +385,7 @@ classes: iucn_status: EX current_keeper: https://nde.nl/ontology/hc/custodian/uk/oxford-museum-natural-history accession_number: OUM 11605 - has_or_had_identifier: + identified_by: - qid: Q193493 - value: object_id: https://nde.nl/ontology/hc/object/naturalis-megatherium diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BirthDate.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BirthDate.yaml index 3ab226300d..2b1c5151d2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BirthDate.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BirthDate.yaml @@ -11,23 +11,14 @@ prefixes: dcterms: http://purl.org/dc/terms/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_reference -- ../slots/has_or_had_score -- ../slots/inference_provenance -- ../slots/is_inferred -- ../slots/is_or_was_generated_by -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./ConfidenceScore -- ./GenerationEvent -- ./Reference -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../metadata + - ../slots/has_or_had_reference + - ../slots/has_or_had_score + - ../slots/inference_provenance + - ../slots/is_inferred + - ../slots/is_or_was_generated_by + - ../slots/temporal_extent default_prefix: hc classes: BirthDate: @@ -46,7 +37,6 @@ classes: - is_inferred - inference_provenance - is_or_was_generated_by - - specificity_annotation - has_or_had_score - temporal_extent slot_usage: @@ -66,7 +56,7 @@ classes: required: false ifabsent: 'false' inference_provenance: - range: string +# range: string required: false examples: - value: '{"method": "earliest_education_heuristic", "inference_chain": [...]}' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BirthPlace.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BirthPlace.yaml index 2d528ab1ef..1b3bd1b71a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BirthPlace.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BirthPlace.yaml @@ -15,28 +15,22 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../metadata -- ../slots/coordinates -- ../slots/country_code -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/modern_place_name -- ../slots/place_name -- ../slots/place_source_text -- ../slots/region_code -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../metadata + - ../slots/coordinates + - ../slots/country_code + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/modern_place_name + - ../slots/place_name + - ../slots/place_source_text + - ../slots/region_code default_prefix: hc classes: BirthPlace: class_uri: schema:Place - description: "Structured representation of a person's place of birth with support for historical place names, modern equivalents, and geographic identifiers.\n**PURPOSE**:\nBirthPlace replaces simple string birth_place slots to provide: - Historical place name preservation - Modern place name linkage - Geographic identifier integration (GeoNames, Wikidata) - Coordinate storage for mapping applications\n**HISTORICAL VS. MODERN NAMES**:\nMany birth places used historical names that have since changed: - \"Batavia\" \u2192 \"Jakarta\" - \"Bombay\" \u2192 \"Mumbai\" - \"Leningrad\" \u2192 \"St. Petersburg\" - \"Saigon\" \u2192 \"Ho Chi Minh City\"\nBirthPlace preserves the source name while linking to modern identifiers.\n**GEOGRAPHIC RESOLUTION**:\nPer AGENTS.md Rule on GeoNames as authoritative source: - `geonames_id`: Links to GeoNames for standardization - `has_or_had_identifier`: Links to Wikidata for additional context - `coordinates`: Lat/lon for mapping\n**ONTOLOGY ALIGNMENT**:\n| Ontology\ - \ | Mapping | Usage | |----------|---------|-------| | **Schema.org** | `schema:Place` | Primary class | | **CIDOC-CRM** | `crm:E53_Place` | Place entity | | **GeoNames** | `gn:Feature` | Geographic feature |\n**EXAMPLE**:\n```yaml has_or_had_place_of_birth:\n place_name: \"Batavia\"\n modern_place_name: \"Jakarta\"\n country_code: \"ID\"\n geonames_id: 1642911\n has_or_had_identifier:\n qid: \"Q3630\"\n```" + description: "Structured representation of a person's place of birth with support for historical place names, modern equivalents, and geographic identifiers.\n**PURPOSE**:\nBirthPlace replaces simple string birth_place slots to provide: - Historical place name preservation - Modern place name linkage - Geographic identifier integration (GeoNames, Wikidata) - Coordinate storage for mapping applications\n**HISTORICAL VS. MODERN NAMES**:\nMany birth places used historical names that have since changed: - \"Batavia\" \u2192 \"Jakarta\" - \"Bombay\" \u2192 \"Mumbai\" - \"Leningrad\" \u2192 \"St. Petersburg\" - \"Saigon\" \u2192 \"Ho Chi Minh City\"\nBirthPlace preserves the source name while linking to modern identifiers.\n**GEOGRAPHIC RESOLUTION**:\nPer AGENTS.md Rule on GeoNames as authoritative source: - `geonames_id`: Links to GeoNames for standardization - `identified_by`: Links to Wikidata for additional context - `coordinates`: Lat/lon for mapping\n**ONTOLOGY ALIGNMENT**:\n| Ontology\ + \ | Mapping | Usage | |----------|---------|-------| | **Schema.org** | `schema:Place` | Primary class | | **CIDOC-CRM** | `crm:E53_Place` | Place entity | | **GeoNames** | `gn:Feature` | Geographic feature |\n**EXAMPLE**:\n```yaml has_or_had_place_of_birth:\n place_name: \"Batavia\"\n modern_place_name: \"Jakarta\"\n country_code: \"ID\"\n geonames_id: 1642911\n identified_by:\n qid: \"Q3630\"\n```" exact_mappings: - schema:Place close_mappings: @@ -47,48 +41,47 @@ classes: - modern_place_name - country_code - region_code - - has_or_had_identifier + - identified_by - coordinates - place_source_text - - specificity_annotation - has_or_had_score slot_usage: place_name: - range: string +# range: string required: true examples: - value: Amsterdam - value: Batavia modern_place_name: - range: string +# range: string required: false examples: - value: Jakarta country_code: - range: string +# range: string required: false pattern: ^[A-Z]{2}$ examples: - value: NL - value: ID region_code: - range: string +# range: string required: false examples: - value: NH - value: 2759794 - has_or_had_identifier: + identified_by: range: WikiDataIdentifier required: false examples: - value: coordinates: - range: string +# range: string required: false examples: - value: 52.3676,4.9041 place_source_text: - range: string +# range: string required: false examples: - value: born at the family estate in rural Gelderland @@ -104,13 +97,13 @@ classes: place_name: Amsterdam country_code: NL region_code: NH - has_or_had_identifier: + identified_by: coordinates: 52.3676,4.9041 - value: place_name: Batavia modern_place_name: Jakarta country_code: ID - has_or_had_identifier: + identified_by: - value: place_name: rural Gelderland country_code: NL diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Bookplate.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Bookplate.yaml index e1b88341d0..1eb17c3fda 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Bookplate.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Bookplate.yaml @@ -11,16 +11,11 @@ prefixes: bf: http://id.loc.gov/ontologies/bibframe/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_owner -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_owner + - ../slots/has_or_had_score classes: Bookplate: class_uri: bf:Bookplate @@ -42,17 +37,16 @@ classes: - has_or_had_label - has_or_had_description - has_or_had_owner - - specificity_annotation - has_or_had_score slot_usage: has_or_had_label: - range: string +# range: string required: true examples: - value: Ex Libris Johann Wolfgang von Goethe - value: Bibliotheca Regia has_or_had_owner: - range: string +# range: string examples: - value: Johann Wolfgang von Goethe - value: Royal Library of Prussia diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Boundary.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Boundary.yaml index 6ed08d24c7..4c8c11c0f7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Boundary.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Boundary.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: Boundary: class_uri: schema:Place diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BoundingBox.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BoundingBox.yaml index 3eacfac5b2..d679b50190 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BoundingBox.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BoundingBox.yaml @@ -10,11 +10,10 @@ prefixes: schema: http://schema.org/ geosparql: http://www.opengis.net/ont/geosparql# imports: -- linkml:types -- ../slots/has_or_had_coordinates -- ../slots/has_or_had_height -- ../slots/has_or_had_width -- ./PlanarCoordinates + - linkml:types + - ../slots/has_or_had_coordinates + - ../slots/has_or_had_height + - ../slots/has_or_had_width default_prefix: hc classes: BoundingBox: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BoxNumber.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BoxNumber.yaml index 652fc8a99c..0969bb73c6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BoxNumber.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BoxNumber.yaml @@ -6,20 +6,15 @@ description: 'A storage box number or position identifier on a shelf. MIGRATED from box_number slot (Rule 53). - Uses generic has_or_had_identifier slot with range narrowed to BoxNumber. + Uses generic identified_by slot with range narrowed to BoxNumber. Updated 2026-01-16: Migrated from inline attributes to proper slots. ' imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/numeric_value -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_score + - ../slots/numeric_value prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -31,7 +26,7 @@ classes: BoxNumber: class_uri: hc:BoxNumber description: "An identifier for a storage box or its position on a shelf.\n\n**DEFINITION**:\n\nBoxNumber represents the position or identifier of a storage box within \na storage unit hierarchy. Archive boxes are the most common physical \ncontainers for heritage materials, particularly in archives.\n\n```\nShelf\n \u2514\u2500\u2500 Box 1 (THIS CLASS - position on shelf)\n \u2514\u2500\u2500 Box 2\n \u2514\u2500\u2500 Box 3\n ...\n```\n\n**TYPICAL VALUES**:\n\n| Type | Example | Description |\n|------|---------|-------------|\n| Sequential | 1, 2, 3, 12 | Position on shelf left-to-right |\n| Inventory | 145, 2024-0042 | Unique box inventory number |\n| Combined | 12.3 | Bay 12, Box 3 |\n\n**ARCHIVE BOX STANDARDS**:\n\nHeritage institutions typically use acid-free archive boxes conforming to:\n- ISO 16245 (Boxes for documents)\n- ANSI/NISO Z39.77 (Guidelines for materials in archives)\n\n**HERITAGE USE CASES**:\n\n| Material Type | Box Format |\n|---------------|------------|\n\ - | Documents | Standard archive box (legal/letter) |\n| Photographs | Photo storage boxes |\n| Oversized | Flat boxes, tubes |\n| Fragile | Custom padded boxes |\n\n**PROVENANCE**:\n\nCreated as part of slot migration (Rule 53) from deprecated\n`box_number` slot to generic `has_or_had_identifier` pattern.\n" + | Documents | Standard archive box (legal/letter) |\n| Photographs | Photo storage boxes |\n| Oversized | Flat boxes, tubes |\n| Fragile | Custom padded boxes |\n\n**PROVENANCE**:\n\nCreated as part of slot migration (Rule 53) from deprecated\n`box_number` slot to generic `identified_by` pattern.\n" exact_mappings: - hc:BoxNumber close_mappings: @@ -40,7 +35,6 @@ classes: - schema:identifier slots: - numeric_value - - specificity_annotation - has_or_had_score slot_usage: numeric_value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Branch.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Branch.yaml index 43e8ff687d..e01d45cb82 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Branch.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Branch.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: Branch: class_uri: org:OrganizationalUnit diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BranchOffice.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BranchOffice.yaml index 5d5410baca..06f7550bad 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BranchOffice.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BranchOffice.yaml @@ -2,29 +2,19 @@ id: https://nde.nl/ontology/hc/class/branch-office name: branch_office_class title: BranchOffice Class imports: -- linkml:types -- ../enums/QuantityTypeEnum -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_service_area -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/is_public_facing -- ../slots/operating_hour -- ../slots/services_offered -- ../slots/specificity_annotation -- ./CustodianObservation -- ./Quantity -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./ServiceArea -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/QuantityTypeEnum + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_service_area + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/is_public_facing + - ../slots/operating_hour + - ../slots/services_offered prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -39,7 +29,7 @@ classes: is_a: ReconstructedEntity class_uri: org:Site description: "Regional or satellite office of a heritage custodian organization.\n\n**DEFINITION**:\n\nA BranchOffice is a secondary physical location where a heritage custodian\nmaintains operational presence, typically providing services to a specific\ngeographic area or community. Unlike the main headquarters, branch offices\nusually have more limited scope of activities.\n\n**W3C ORG ALIGNMENT**:\n\n`org:Site` - \"An office or other premise at which the organization is located.\"\n\nBranchOffice specializes org:Site for heritage custodian branch locations:\n- Regional archives serving provincial communities\n- Satellite library branches in neighborhoods\n- Museum outposts or study centers\n\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Purpose | Example |\n|------|---------|---------|\n| **BranchOffice** | Service delivery to geographic area | Regional archive office |\n| AdministrativeOffice | Non-public administrative functions | Finance department building |\n\ - | ExhibitionSpace | Display of collections | Gallery annex |\n| ResearchCenter | Research and conservation | Conservation lab |\n\n**TYPICAL CHARACTERISTICS**:\n\n- **Public-facing**: Serves visitors, researchers, patrons\n- **Geographic coverage**: Serves specific region/community\n- **Core services**: Reference, access, programming (subset of main)\n- **Staff presence**: Permanent staff assignment\n- **Collection subset**: May hold locally-relevant materials\n\n**USE CASES**:\n\n1. **Regional Archive Branches**:\n - Noord-Hollands Archief Zaanstreek-Waterland branch\n - Serves researchers in Zaandam area\n - Holds local municipal records\n\n2. **Library Satellite Locations**:\n - University library branch at satellite campus\n - Public library neighborhood branches\n\n3. **Museum Study Centers**:\n - Off-site study/research center for scholars\n - Rijksmuseum Schiphol (airport exhibition space)\n\n**Example - Regional Archive Branch**:\n```yaml\nBranchOffice:\n has_or_had_identifier:\ + | ExhibitionSpace | Display of collections | Gallery annex |\n| ResearchCenter | Research and conservation | Conservation lab |\n\n**TYPICAL CHARACTERISTICS**:\n\n- **Public-facing**: Serves visitors, researchers, patrons\n- **Geographic coverage**: Serves specific region/community\n- **Core services**: Reference, access, programming (subset of main)\n- **Staff presence**: Permanent staff assignment\n- **Collection subset**: May hold locally-relevant materials\n\n**USE CASES**:\n\n1. **Regional Archive Branches**:\n - Noord-Hollands Archief Zaanstreek-Waterland branch\n - Serves researchers in Zaandam area\n - Holds local municipal records\n\n2. **Library Satellite Locations**:\n - University library branch at satellite campus\n - Public library neighborhood branches\n\n3. **Museum Study Centers**:\n - Off-site study/research center for scholars\n - Rijksmuseum Schiphol (airport exhibition space)\n\n**Example - Regional Archive Branch**:\n```yaml\nBranchOffice:\n identified_by:\ \ \"https://nde.nl/ontology/hc/aux/nha-zaanstreek-branch\"\n has_or_had_label: \"Noord-Hollands Archief - Zaanstreek-Waterland\"\n has_or_had_description: |\n Regional branch serving Zaanstreek-Waterland area.\n Holds municipal records from Zaandam, Wormerland, Purmerend.\n Open to researchers Tuesday-Thursday.\n branch_service_area: \"Zaanstreek-Waterland region\"\n is_public_facing: true\n services_offered:\n - \"Archival research access\"\n - \"Genealogical consultations\"\n - \"Local history reference\"\n```\n" exact_mappings: - org:Site @@ -52,26 +42,25 @@ classes: - schema:branch slots: - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_service_area - has_or_had_quantity - is_public_facing - operating_hour - services_offered - - specificity_annotation - has_or_had_score - is_or_was_derived_from - is_or_was_generated_by slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/nha-zaanstreek-branch has_or_had_label: - range: string +# range: string required: true multivalued: false examples: @@ -79,7 +68,7 @@ classes: - value: Rijksmuseum Schiphol - value: Universiteitsbibliotheek Science Park has_or_had_description: - range: string +# range: string examples: - value: Regional branch serving Zaanstreek-Waterland area. Holds municipal records from Zaandam, Wormerland, Purmerend. Open to researchers Tuesday-Thursday. has_or_had_service_area: @@ -97,19 +86,19 @@ classes: examples: - value: true services_offered: - range: string +# range: string multivalued: true examples: - value: Archival research access - value: Genealogical consultations - value: Local history reference operating_hour: - range: string +# range: string examples: - value: Tu-Th 09:00-17:00 has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_description: Staff assigned to this branch @@ -133,7 +122,7 @@ classes: - https://schema.org/branch examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/nha-zaanstreek-branch + identified_by: https://nde.nl/ontology/hc/aux/nha-zaanstreek-branch has_or_had_label: Noord-Hollands Archief - Zaanstreek-Waterland has_or_had_description: Regional branch serving Zaanstreek-Waterland area. Holds municipal records from Zaandam, Wormerland, Purmerend. has_or_had_service_area: @@ -149,7 +138,7 @@ classes: has_or_had_quantity: has_or_had_description: Staff assigned to Zaanstreek-Waterland branch - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/rijksmuseum-schiphol + identified_by: https://nde.nl/ontology/hc/aux/rijksmuseum-schiphol has_or_had_label: Rijksmuseum Schiphol has_or_had_description: Exhibition space at Schiphol Airport featuring rotating highlights from the Rijksmuseum collection. Free admission. has_or_had_service_area: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BranchType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BranchType.yaml index 47e9b1b410..00b7ce3564 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BranchType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BranchType.yaml @@ -11,17 +11,15 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/is_or_was_equivalent_to -- ../slots/is_or_was_related_to -- ./WikiDataIdentifier -- ./BranchType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/is_or_was_equivalent_to + - ../slots/is_or_was_related_to classes: BranchType: class_uri: org:OrganizationalUnit @@ -36,7 +34,7 @@ classes: related_mappings: - schema:LocalBusiness slots: - - has_or_had_identifier + - identified_by - has_or_had_code - has_or_had_label - has_or_had_description @@ -45,15 +43,15 @@ classes: - is_or_was_related_to - is_or_was_equivalent_to slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/branch-type/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/branch-type/regional-office has_or_had_code: - range: string +# range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ examples: @@ -61,7 +59,7 @@ classes: - value: BRANCH_LIBRARY - value: CONSERVATION_LAB has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -72,7 +70,7 @@ classes: - Branch Library@en - Filiaalbibliotheek@nl has_or_had_description: - range: string +# range: string examples: - value: Geographic regional branch serving local community. has_or_had_hypernym: @@ -105,7 +103,7 @@ classes: - https://www.w3.org/TR/vocab-org/#class-site examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/branch-type/regional-office + identified_by: https://nde.nl/ontology/hc/branch-type/regional-office has_or_had_code: REGIONAL_OFFICE has_or_had_label: - Regional Office@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BranchTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BranchTypes.yaml index bf3f91a282..015d6345b7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BranchTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BranchTypes.yaml @@ -8,8 +8,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ./BranchType + - ./BranchType + - linkml:types classes: RegionalOfficeBranch: is_a: BranchType @@ -35,9 +35,9 @@ classes: description: Provincial heritage service branch broad_mappings: - skos:Concept - BranchLibraryUnit: + BranchLibraryBranch: is_a: BranchType - class_uri: hc:BranchLibraryUnit + class_uri: hc:BranchLibraryBranch description: 'Library at satellite location. @@ -58,9 +58,9 @@ classes: description: Neighborhood library branch broad_mappings: - skos:Concept - SatelliteGalleryUnit: + SatelliteGalleryBranch: is_a: BranchType - class_uri: hc:SatelliteGalleryUnit + class_uri: hc:SatelliteGalleryBranch description: 'Museum exhibition space at satellite location. @@ -81,9 +81,9 @@ classes: description: Off-site exhibition space broad_mappings: - skos:Concept - ConservationLabUnit: + ConservationLabBranch: is_a: BranchType - class_uri: hc:ConservationLabUnit + class_uri: hc:ConservationLabBranch description: 'Specialized conservation and restoration facility. @@ -104,9 +104,9 @@ classes: description: Collection conservation facility broad_mappings: - skos:Concept - DigitizationCenterUnit: + DigitizationCenterBranch: is_a: BranchType - class_uri: hc:DigitizationCenterUnit + class_uri: hc:DigitizationCenterBranch description: 'Digital production and digitization facility. @@ -127,9 +127,9 @@ classes: description: Collection digitization facility broad_mappings: - skos:Concept - ResearchCenterUnit: + ResearchCenterBranch: is_a: BranchType - class_uri: hc:ResearchCenterUnit + class_uri: hc:ResearchCenterBranch description: 'Research and scholarly unit. @@ -150,9 +150,9 @@ classes: description: Academic research unit broad_mappings: - skos:Concept - EducationCenterUnit: + EducationCenterBranch: is_a: BranchType - class_uri: hc:EducationCenterUnit + class_uri: hc:EducationCenterBranch description: 'Education and outreach facility. @@ -173,9 +173,9 @@ classes: description: Public education facility broad_mappings: - skos:Concept - AdministrativeOfficeUnit: + AdministrativeOfficeBranch: is_a: BranchType - class_uri: hc:AdministrativeOfficeUnit + class_uri: hc:AdministrativeOfficeBranch description: 'Non-public administrative office. @@ -196,9 +196,9 @@ classes: description: Back-office administration broad_mappings: - skos:Concept - StorageManagementUnit: + StorageManagementBranch: is_a: BranchType - class_uri: hc:StorageManagementUnit + class_uri: hc:StorageManagementBranch description: 'Collection storage operations unit. @@ -219,9 +219,9 @@ classes: description: Off-site storage operations broad_mappings: - skos:Concept - ExhibitionSpaceUnit: + ExhibitionSpaceBranch: is_a: BranchType - class_uri: hc:ExhibitionSpaceUnit + class_uri: hc:ExhibitionSpaceBranch description: 'Exhibition-focused branch facility. @@ -242,9 +242,9 @@ classes: description: Secondary exhibition venue broad_mappings: - skos:Concept - ReadingRoomUnit: + ReadingRoomBranch: is_a: BranchType - class_uri: hc:ReadingRoomUnit + class_uri: hc:ReadingRoomBranch description: 'Public reading room or study room. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Budget.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Budget.yaml index 9f3160860d..e823b2001b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Budget.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Budget.yaml @@ -2,64 +2,35 @@ id: https://nde.nl/ontology/hc/class/Budget name: budget_class title: Budget Class imports: -- linkml:types -- ../classes/Quantity -- ../classes/TimeSpan -- ../classes/Timestamp -- ../classes/Unit -- ../slots/allocates_or_allocated -- ../slots/has_or_had_currency -- ../slots/has_or_had_description -- ../slots/has_or_had_endowment_draw -- ../slots/has_or_had_label -- ../slots/has_or_had_main_part -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_status -- ../slots/has_or_had_type -- ../slots/has_or_had_unit -- ../slots/includes_or_included -- ../slots/innovation_budget -- ../slots/internal_funding -- ../slots/is_or_was_approved_by -- ../slots/is_or_was_approved_on -- ../slots/is_or_was_based_on -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_documented_by -- ../slots/is_or_was_generated_by -- ../slots/managing_unit -- ../slots/operating_budget -- ../slots/personnel_budget -- ../slots/preservation_budget -- ../slots/refers_to_custodian -- ../slots/revision_date -- ../slots/revision_number -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./Approver -- ./BudgetStatus -- ./BudgetType -- ./Currency -- ./Custodian -- ./CustodianObservation -- ./DigitizationBudget -- ./ExpenseType -- ./ExpenseTypes -- ./Expenses -- ./ExternalFunding -- ./FinancialStatement -- ./MainPart -- ./OrganizationalStructure -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./TimeSpanType -- ./TimeSpanTypes -- ./Budget + - linkml:types + - ../slots/allocate + - ../slots/has_or_had_currency + - ../slots/has_or_had_description + - ../slots/has_or_had_endowment_draw + - ../slots/has_or_had_label + - ../slots/has_or_had_main_part + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_status + - ../slots/has_or_had_type + - ../slots/has_or_had_unit + - ../slots/includes_or_included + - ../slots/innovation_budget + - ../slots/internal_funding + - ../slots/is_or_was_approved_by + - ../slots/is_or_was_approved_on + - ../slots/is_or_was_based_on + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_documented_by + - ../slots/is_or_was_generated_by + - ../slots/managing_unit + - ../slots/operating_budget + - ../slots/personnel_budget + - ../slots/preservation_budget + - ../slots/refers_to_custodian + - ../slots/revision_date + - ../slots/revision_number + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -94,7 +65,7 @@ classes: - has_or_had_status - has_or_had_type - has_or_had_main_part - - allocates_or_allocated + - allocate - has_or_had_endowment_draw - includes_or_included - temporal_extent @@ -107,29 +78,27 @@ classes: - refers_to_custodian - revision_date - revision_number - - specificity_annotation - has_or_had_score - has_or_had_quantity - - temporal_extent - is_or_was_derived_from - is_or_was_generated_by - is_or_was_documented_by slot_usage: has_or_had_label: - range: string +# range: string required: true description: Name/title for this budget document. MIGRATED from budget_name (2026-01-15) per Rule 53. Maps to dcterms:title as a formal title for a financial planning resource. examples: - value: Rijksmuseum Operating Budget FY2024 - value: Noord-Hollands Archief Annual Budget 2024-2025 has_or_had_description: - range: string +# range: string required: false description: Narrative description of this budget document's scope and purpose. MIGRATED from budget_description (2026-01-15) per Rule 53. Maps to dcterms:description for financial planning documentation. examples: - value: Annual operating budget for fiscal year 2024, including major exhibition initiatives and digitization expansion. has_or_had_type: - range: uriorcurie +# range: string # uriorcurie multivalued: true required: true examples: @@ -173,8 +142,8 @@ classes: range: decimal required: false has_or_had_main_part: - range: MainPart - inlined: true +# range: string # MainPart + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -187,18 +156,19 @@ classes: preservation_budget: range: decimal required: false - allocates_or_allocated: - range: DigitizationBudget + allocate: +# range: string # uriorcurie + # range: DigitizationBudget required: false multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type innovation_budget: range: decimal required: false includes_or_included: - range: string +# range: string multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type internal_funding: range: decimal required: false @@ -221,7 +191,8 @@ classes: range: date required: false is_or_was_documented_by: - range: FinancialStatement +# range: string # uriorcurie + # range: FinancialStatement multivalued: true inlined: false required: false @@ -231,7 +202,7 @@ classes: range: Custodian required: true is_or_was_derived_from: - range: CustodianObservation +# range: string # CustodianObservation multivalued: true required: false is_or_was_generated_by: @@ -271,7 +242,7 @@ classes: acquisition_budget: 2000000.0 personnel_budget: 22000000.0 preservation_budget: 1500000.0 - allocates_or_allocated: + allocate: - has_or_had_quantity: has_or_had_value: 500000.0 has_or_had_unit: @@ -311,7 +282,7 @@ classes: part_type: capital_budget currency_code: EUR personnel_budget: 5200000.0 - allocates_or_allocated: + allocate: - has_or_had_quantity: has_or_had_value: 800000.0 has_or_had_unit: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BudgetStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BudgetStatus.yaml index ada021bc62..0a4632d4c1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BudgetStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BudgetStatus.yaml @@ -7,14 +7,9 @@ description: 'Status of a heritage custodian budget throughout its lifecycle. Updated 2026-01-16: Migrated from inline attributes to proper slots. ' imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/is_or_was_effective_at -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_score + - ../slots/is_or_was_effective_at prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -35,9 +30,7 @@ classes: - dcterms:status slots: - is_or_was_effective_at - - specificity_annotation - has_or_had_score - slot_usage: comments: - Budget lifecycle status tracking - Supports audit trail of budget state changes diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BudgetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BudgetType.yaml index 5b2fe70532..d2ef7064b9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BudgetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BudgetType.yaml @@ -10,28 +10,26 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/is_or_was_equivalent_to -- ../slots/is_or_was_related_to -- ./WikiDataIdentifier -- ./BudgetType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/is_or_was_equivalent_to + - ../slots/is_or_was_related_to classes: BudgetType: class_uri: skos:Concept description: "Classification type for budgets in heritage custodian contexts.\n\n**DEFINITION**:\n\nBudgetType provides a SKOS-based classification hierarchy for categorizing\ndifferent types of organizational budgets based on purpose, scope, and\ntime horizon.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **SKOS** | `skos:Concept` | Primary - controlled vocabulary concept |\n| **CIDOC-CRM** | `crm:E55_Type` | General type classification |\n\n**BUDGET TYPES** (from slot definition):\n\n| Type | Description |\n|------|-------------|\n| `OPERATING` | Day-to-day operations budget |\n| `CAPITAL` | Major investments and infrastructure |\n| `PROJECT` | Time-limited initiative funding |\n| `MULTI_YEAR` | Spanning multiple fiscal years |\n| `CONSOLIDATED` | Institution-wide (all departments) |\n| `DEPARTMENTAL` | Single department/unit budget |\n| `ACQUISITION` | Collection acquisition funding |\n| `CONSERVATION` | Preservation\ \ and conservation funding |\n| `EXHIBITION` | Exhibition development funding |\n| `DIGITIZATION` | Digitization project funding |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nBudget / FinancialStatement\n \u2502\n \u2514\u2500\u2500 has_or_had_type \u2192 BudgetType (THIS CLASS)\n \u251C\u2500\u2500 has_or_had_hypernym \u2192 BudgetType (parent)\n \u2514\u2500\u2500 has_or_had_description (scope details)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the budget_type string slot with a proper class hierarchy.\nOld pattern: `budget_type: \"OPERATING\"` (string)\nNew pattern: `has_or_had_type: BudgetType` (object reference)\n" - exact_mappings: + broad_mappings: - skos:Concept close_mappings: - crm:E55_Type slots: - - has_or_had_identifier + - identified_by - has_or_had_code - has_or_had_label - has_or_had_description @@ -40,15 +38,15 @@ classes: - is_or_was_related_to - is_or_was_equivalent_to slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/budget-type/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/budget-type/operating has_or_had_code: - range: string +# range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ examples: @@ -56,7 +54,7 @@ classes: - value: CAPITAL - value: PROJECT has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -67,7 +65,7 @@ classes: - Capital Budget@en - Investeringsbegroting@nl has_or_had_description: - range: string +# range: string examples: - value: Day-to-day operational expenses including staff, utilities, and supplies. has_or_had_hypernym: @@ -97,7 +95,7 @@ classes: - 'MIGRATED 2026-01-13: Now uses shared slots (Rule 38)' examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/budget-type/operating + identified_by: https://nde.nl/ontology/hc/budget-type/operating has_or_had_code: OPERATING has_or_had_label: - Operating Budget@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BudgetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BudgetTypes.yaml index 1b498416ae..35a89108a0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BudgetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BudgetTypes.yaml @@ -7,8 +7,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ./BudgetType + - ./BudgetType + - linkml:types classes: OperatingBudget: is_a: BudgetType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BusinessCriticality.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BusinessCriticality.yaml index 97d9ff8446..9df71b5d9f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BusinessCriticality.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BusinessCriticality.yaml @@ -15,10 +15,10 @@ prefixes: schema: http://schema.org/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label default_prefix: hc classes: BusinessCriticality: @@ -27,7 +27,7 @@ classes: Structured class replacing string-valued business_criticality slot. Enables type classification via has_or_had_type.' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description slot_usage: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BusinessModel.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BusinessModel.yaml index 90255d8f74..929ed4fe56 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BusinessModel.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BusinessModel.yaml @@ -14,10 +14,10 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label default_prefix: hc classes: BusinessModel: @@ -26,7 +26,7 @@ classes: Structured class replacing string-valued business_model slot. Models funding structure, revenue sources, ownership, and operational context.' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description slot_usage: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml index 8e379eb9f1..7d5cf89de5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml @@ -13,11 +13,11 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ../slots/is_or_was_effective_at + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_type + - ../slots/is_or_was_effective_at default_prefix: hc classes: CITESAppendix: @@ -45,7 +45,7 @@ classes: - is_or_was_effective_at slot_usage: has_or_had_type: - range: string +# range: string required: true pattern: ^(APPENDIX_I|APPENDIX_II|APPENDIX_III|NOT_LISTED)$ examples: @@ -54,7 +54,7 @@ classes: - value: APPENDIX_III - value: NOT_LISTED has_or_had_label: - range: string +# range: string required: false examples: - value: CITES Appendix I - Trade Prohibited diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CMS.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CMS.yaml index a0eaa95200..2fbc19ac5f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CMS.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CMS.yaml @@ -8,11 +8,10 @@ prefixes: prov: http://www.w3.org/ns/prov# doap: http://usefulinc.com/ns/doap# imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ../slots/has_or_had_version -- ./CMSType + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_type + - ../slots/has_or_had_version default_prefix: hc classes: CMS: @@ -60,14 +59,14 @@ classes: - detection_method slot_usage: cms_name: - range: string +# range: string required: true examples: - value: WordPress - value: Omeka S - value: CollectiveAccess has_or_had_version: - range: string +# range: string required: false examples: - value: "6.4.2" @@ -84,7 +83,7 @@ classes: examples: - value: "2026-01-19T12:00:00Z" detection_method: - range: string +# range: string required: false examples: - value: HTTP_HEADER @@ -100,17 +99,17 @@ slots: cms_name: slot_uri: schema:name description: Name of the Content Management System - range: string - exact_mappings: +# range: string + close_mappings: - schema:name - doap:name detected_at: slot_uri: prov:generatedAtTime description: Timestamp when the CMS was detected range: datetime - exact_mappings: + close_mappings: - prov:generatedAtTime detection_method: slot_uri: prov:wasGeneratedBy description: Method used to detect the CMS (HTTP_HEADER, META_TAG, URL_PATTERN, MANUAL) - range: string +# range: string diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CMSType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CMSType.yaml index b5bcc0403a..7ddef28613 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CMSType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CMSType.yaml @@ -11,11 +11,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/includes_or_included -- ./CMSType + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/includes_or_included classes: CMSType: class_uri: skos:Concept @@ -54,7 +53,7 @@ classes: ```yaml CollectionManagementSystem: - has_or_had_identifier: + identified_by: identifier_scheme: CMS_URI identifier_value: "https://nde.nl/ontology/hc/cms/rijksmuseum-adlib" has_or_had_type: MUSEUM_CMS # ← CMSType @@ -72,7 +71,7 @@ classes: slot_usage: has_or_had_label: - range: string +# range: string required: true examples: - value: "MUSEUM_CMS" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CMSTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CMSTypes.yaml index 4c0b5dcc30..4ed00e6642 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CMSTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CMSTypes.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ./CMSType + - ./CMSType + - linkml:types classes: MuseumCMS: is_a: CMSType @@ -154,52 +154,7 @@ classes: description: Library CMS type broad_mappings: - skos:Concept - DigitalAssetManagement: - is_a: CMSType - class_uri: hc:DigitalAssetManagement - description: 'Digital asset management systems for media files. - - **TYPICAL FEATURES**: - - - Image, video, audio management - - - Metadata extraction - - - Format conversion - - - Rights management - - - Distribution workflows - - - **EXAMPLES**: - - - ResourceSpace - - - DAMsimple - - - Razuna - - - Pimcore - - - Bynder - - - Canto - - ' - annotations: - cms_type_code: DAM - primary_domain: digital_assets - examples: - - value: - has_or_had_label: DAM - has_or_had_description: - description_text: Digital asset management systems for organizing, storing, - and distributing media files including images, video, and audio. - description: DAM type - broad_mappings: - - skos:Concept DigitalRepository: is_a: CMSType class_uri: hc:DigitalRepository diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CacheValidation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CacheValidation.yaml index 55a558d2fe..e6485c4b1e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CacheValidation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CacheValidation.yaml @@ -9,30 +9,27 @@ prefixes: hc: https://nde.nl/ontology/hc/ prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_method -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./ETag + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_method + - ../slots/has_or_had_score + - ../slots/has_or_had_type default_prefix: hc classes: CacheValidation: description: A method used to validate if a cached resource is still fresh. Can use ETags, Last-Modified dates, or other mechanisms. slots: - - has_or_had_identifier + - identified_by - has_or_had_type - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: - has_or_had_identifier: + identified_by: range: ETag required: false has_or_had_type: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CalendarSystem.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CalendarSystem.yaml index 6621336b15..e338c84441 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CalendarSystem.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CalendarSystem.yaml @@ -18,9 +18,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ./Label + - linkml:types + - ../slots/has_or_had_label classes: CalendarSystem: class_uri: time:TRS @@ -33,8 +32,8 @@ classes: - has_or_had_label slot_usage: has_or_had_label: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: system_uri: http://www.opengis.net/def/trs/BIPM/0/Gregorian diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CallForApplication.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CallForApplication.yaml index a57d789e97..cb6a4d7c39 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CallForApplication.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CallForApplication.yaml @@ -11,83 +11,48 @@ prefixes: org: http://www.w3.org/ns/org# skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../enums/CallForApplicationStatusEnum -- ../enums/FundingRequirementTypeEnum -- ../enums/MeasureUnitEnum -- ../slots/end_of_the_end -- ../slots/has_or_had_budget # was: total_budget -- ../slots/has_or_had_description # was: call_description -- ../slots/has_or_had_funded # was: funded_project -- ../slots/has_or_had_identifier # was: call_id, call_identifier -- ../slots/has_or_had_label # was: call_short_name, call_title -- ../slots/has_or_had_provenance # was: web_observation -- ../slots/has_or_had_range -- ../slots/has_or_had_requirement -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_status # was: call_status -- ../slots/has_or_had_url # was: call_url -- ../slots/info_session_date -- ../slots/is_or_was_categorized_as # was: thematic_area -- ../slots/is_or_was_due_on -- ../slots/is_or_was_opened_on -- ../slots/issuing_organisation -- ../slots/keyword -- ../slots/minimum_partner -- ../slots/offers_or_offered # was: funding_rate -- ../slots/parent_programme -- ../slots/partnership_required -- ../slots/related_call -- ../slots/requires_or_required # was: co_funding_required -- ../slots/results_expected_date -- ../slots/specificity_annotation -- ../slots/start_of_the_start -- ./Budget # for has_or_had_budget range -- ./CoFunding # for requires_or_required range (co-funding requirements) -- ./FundingRate # for offers_or_offered range -- ./FundingRequirement -- ./GrantRange -- ./Identifier # for has_or_had_identifier range -- ./MeasureUnit -- ./Quantity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./URL # for has_or_had_url range -- ./WebObservation # for has_or_had_provenance range -- ./TimeSpan + - linkml:types + - ../enums/CallForApplicationStatusEnum + - ../enums/FundingRequirementTypeEnum + - ../enums/MeasureUnitEnum + - ../slots/end_of_the_end + - ../slots/has_or_had_budget # was: total_budget + - ../slots/has_or_had_description # was: call_description + - ../slots/has_or_had_funded # was: funded_project + - ../slots/identified_by # was: call_id, call_identifier + - ../slots/has_or_had_label # was: call_short_name, call_title + - ../slots/has_or_had_provenance # was: web_observation + - ../slots/has_or_had_range + - ../slots/has_or_had_requirement + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_status # was: call_status + - ../slots/has_or_had_url # was: call_url + - ../slots/info_session_date + - ../slots/is_or_was_categorized_as # was: thematic_area + - ../slots/is_or_was_due_on + - ../slots/is_or_was_opened_on + - ../slots/issuing_organisation + - ../slots/keyword + - ../slots/minimum_partner + - ../slots/offers_or_offered # was: funding_rate + - ../slots/parent_programme + - ../slots/partnership_required + - ../slots/related_call + - ../slots/requires_or_required # was: co_funding_required + - ../slots/results_expected_date + - ../slots/start_of_the_start + - ./WebObservation + - ./FundingRequirement + - ./FundingRate + - ./Budget + - ./CoFunding + - ./TimeSpan default_prefix: hc classes: CallForApplication: class_uri: schema:Offer description: "A funding call or grant application opportunity issued by a heritage funding\norganisation, inviting heritage\ - \ custodians to apply for project funding.\n\n**PURPOSE**:\n\nCallForApplication bridges the gap between:\n- **FundingOrganisation**\ - \ (entities that provide heritage funding)\n- **Heritage Custodians** (institutions seeking funding for projects)\n\n\ - Funding organisations like the European Commission, national heritage funds,\nand private foundations issue regular\ - \ calls for applications. These calls have\ndefined timeframes, budgets, eligibility criteria, and thematic focus areas.\n\ - \n**KEY RELATIONSHIPS**:\n\n```\nFundingOrganisation (e.g., European Commission)\n │\n ├── issues ──→ CallForApplication\ - \ (e.g., \"CL2-2025-HERITAGE-01\")\n │ │\n │ ├── web_observations\ - \ ──→ WebObservation[]\n │ │ (provenance tracking)\n │ \ - \ │\n │ └── funded_projects ──→ Project[]\n │ \ - \ │\n │ └── funding_call (inverse)\n │\n \ - \ └── parent_programme: \"Horizon Europe\"\n```\n\n**LIFECYCLE TRACKING**:\n\nCalls progress through defined stages\ - \ tracked via `call_status`:\n- ANNOUNCED → OPEN → CLOSING_SOON → CLOSED → UNDER_REVIEW → RESULTS_PUBLISHED\n- May be\ - \ CANCELLED or REOPENED under special circumstances\n\n**PROVENANCE TRACKING**:\n\nBecause call information is often\ - \ extracted from web sources, each\nCallForApplication should link to one or more WebObservation records\ndocumenting\ - \ when and where the information was retrieved.\n\n**ONTOLOGY ALIGNMENT**:\n\n- **Schema.org**: `schema:Offer` - \"\ - An offer to transfer some rights to an item\n or to provide a service\" (funding is a service/offer to heritage institutions)\n\ - - **Schema.org**: `schema:Grant` - Related class for awarded grants\n- **Schema.org**: `schema:MonetaryGrant` - For\ - \ actual grant awards\n- **PROV-O**: `prov:Activity` - Call issuance as activity\n- **Dublin Core**: `dcterms:relation`\ - \ for related calls\n\n**EXAMPLES**:\n\n1. **Horizon Europe CL2 2025 Heritage Calls**\n - issuing_organisation: European\ - \ Commission\n - parent_programme: Horizon Europe\n - total_budget: €82.5M\n - application_deadline: 2025-09-16\n\ - \ - thematic_areas: Cultural heritage preservation, digital heritage\n \n2. **Creative Europe Cooperation Projects\ - \ 2025**\n - issuing_organisation: EACEA (European Education and Culture Executive Agency)\n - parent_programme:\ - \ Creative Europe\n - partnership_required: true\n - minimum_partners: 3 (from different EU countries)\n \n3.\ - \ **National Lottery Heritage Fund UK**\n - issuing_organisation: National Lottery Heritage Fund\n - typical_grant_range:\ - \ £10K-£10M\n - eligible_countries: [UK, Northern Ireland, Scotland, Wales]\n \n4. **European Heritage Awards 2026**\n\ - \ - issuing_organisation: Europa Nostra\n - call_type: Awards/Recognition (not direct funding)\n - thematic_areas:\ - \ Research, Conservation, Education, Engagement\n" + \ custodians to apply for project funding." exact_mappings: - schema:Offer close_mappings: @@ -132,12 +97,13 @@ classes: fiscal_year_end: '2025-12-31' issuing_organisation: required: true - range: uriorcurie +# range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/encompassing-body/funding/ec-rea has_or_had_provenance: # was: web_observation - migrated per Rule 53 range: WebObservation multivalued: true + inlined: true inlined_as_list: true examples: - value: https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2 @@ -149,9 +115,9 @@ classes: examples: - value: See FundingRequirement class examples has_or_had_funded: # was: funded_project - migrated per Rule 53 (2026-01-26) - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: https://nde.nl/ontology/hc/project/nde/heritage-digitization-2025 requires_or_required: # was: co_funding_required - migrated per Rule 53 (2026-01-19) @@ -162,70 +128,7 @@ classes: - value: is_or_was_required: true has_or_had_description: "Partnership funding 5-50% depending on grant size" - comments: - - CallForApplication links FundingOrganisation to heritage custodian funding opportunities - - Lifecycle tracked via CallForApplicationStatusEnum (ANNOUNCED through RESULTS_PUBLISHED) - - CLOSING_SOON status based on date proximity (< 30 days to deadline) - - Provenance tracked via web_observations linking to WebObservation instances - - Maps to schema:Offer - funding as an offer to heritage institutions - - Bidirectional link to Project via funded_projects ↔ funding_call - see_also: - - https://schema.org/Offer - examples: - - value: - has_or_had_identifier: # was: call_id, call_identifier - migrated per Rule 53 (2026-01-17) - - identifier_value: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 - has_or_had_label: # was: call_title, call_short_name - migrated per Rule 53 (2026-01-17) - - Cultural heritage, cultural and creative industries - - HORIZON-CL2-2025-HERITAGE-01 - has_or_had_description: | # was: call_description - migrated per Rule 53 (2026-01-17) - This call supports research and innovation addressing cultural heritage - preservation, digitisation, and access. Projects should develop new - methods, technologies, and approaches for safeguarding tangible and - intangible cultural heritage while promoting sustainable use and - citizen engagement. - has_or_had_status: OPEN # was: call_status - migrated per Rule 53 (2026-01-17) - has_or_had_url: # was: call_url - migrated per Rule 53 (2026-01-17) - - url_value: https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/opportunities/topic-details/horizon-cl2-2025-heritage-01 - url_type: application_portal - application_opening_date: '2025-01-15' - application_deadline: '2025-09-16' - results_expected_date: '2026-03-01' - has_or_had_budget: # was: total_budget - migrated per Rule 53 (2026-01-15) - has_or_had_range: - - minimal_of_minimal: - has_or_had_measurement_unit: - unit_label: EUR - maximal_of_maximal: - has_or_had_measurement_unit: - unit_label: EUR - has_or_had_requirement: - - can_or_could_be_fulfilled_by: - - has_or_had_type: - has_or_had_label: "Public bodies" - - imposes_or_imposed: - - has_or_had_label: "EU Member States" - is_or_was_categorized_as: # was: thematic_area - migrated per Rule 53 - - Cultural heritage preservation - - Digital heritage - - Climate change impact on heritage - - Heritage skills and crafts - - Community engagement with heritage - partnership_required: true - minimum_partners: 3 - issuing_organisation: https://nde.nl/ontology/hc/encompassing-body/funding/ec-rea - parent_programme: Horizon Europe Cluster 2 - has_or_had_contact_point: - info_session_date: - - 2025-02-15 - Virtual info day - - 2025-04-10 - Brokerage event Brussels - keywords: - - cultural heritage - - research - - innovation - - digitisation - - preservation - - EU funding - - Horizon Europe - has_or_had_funded: # was: funded_project - migrated per Rule 53 (2026-01-26) - - https://nde.nl/ontology/hc/project/europeana/common-culture-2024 \ No newline at end of file + annotations: + specificity_score: 0.1 + specificity_rationale: Generic utility class/slot created during migration + custodian_types: "['*']" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Cancellation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Cancellation.yaml index 6bf699c952..bed6f91652 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Cancellation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Cancellation.yaml @@ -9,28 +9,25 @@ prefixes: hc: https://nde.nl/ontology/hc/ prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_rationale -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./Rationale + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_rationale + - ../slots/has_or_had_score default_prefix: hc classes: Cancellation: class_uri: prov:Activity description: Represents the cancellation event/action. slots: - - has_or_had_identifier + - identified_by - has_or_had_rationale - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: has_or_had_rationale: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CanonicalForm.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CanonicalForm.yaml index 5a79cf8adb..81910fa1c6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CanonicalForm.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CanonicalForm.yaml @@ -8,9 +8,8 @@ prefixes: schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../slots/has_or_had_label -- ./Label + - linkml:types + - ../slots/has_or_had_label default_prefix: hc classes: CanonicalForm: @@ -46,9 +45,9 @@ classes: - has_or_had_label slot_usage: has_or_had_label: - range: string +# range: string required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_label: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CantonalArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CantonalArchive.yaml index 67bef19dbc..42a92f413c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CantonalArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CantonalArchive.yaml @@ -4,22 +4,11 @@ title: Cantonal Archive Type (Switzerland) prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CantonalArchiveRecordSetType -- ./CantonalArchiveRecordSetTypes -- ./CollectionType -- ./DualClassLink -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: CantonalArchive: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetType.yaml index 60b9dfb25d..fb7f228ebe 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetType.yaml @@ -4,14 +4,10 @@ title: CantonalArchive Record Set Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: CantonalArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by CantonalArchive custodians. @@ -20,7 +16,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetTypes.yaml index fcdaf80bee..71a02441ac 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./CantonalArchive -- ./CantonalArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./CantonalArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: CantonalGovernmentFonds: is_a: CantonalArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Cantonal administrative records (Switzerland).\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept CantonalLegislationCollection: is_a: CantonalArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Cantonal laws and regulations.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by CantonalArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Capacity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Capacity.yaml index 7da1cf3cdb..71cfefb2fa 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Capacity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Capacity.yaml @@ -8,29 +8,18 @@ prefixes: schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../enums/CapacityTypeEnum -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_measurement_unit -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/has_or_had_unit -- ../slots/is_estimate -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./CapacityType -- ./CapacityTypes -- ./MeasureUnit -- ./Quantity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Unit + - linkml:types + - ../enums/CapacityTypeEnum + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_measurement_unit + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/has_or_had_unit + - ../slots/is_estimate + - ../slots/temporal_extent default_prefix: hc classes: Capacity: @@ -47,7 +36,7 @@ classes: - dcterms:extent - premis:StorageLocation slots: - - has_or_had_identifier + - identified_by - has_or_had_quantity - has_or_had_type - has_or_had_measurement_unit @@ -55,16 +44,15 @@ classes: - has_or_had_description - temporal_extent - is_estimate - - specificity_annotation - has_or_had_score slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: false examples: - value: https://nde.nl/ontology/hc/capacity/na-depot-b-shelving has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: false examples: - value: ShelfLengthCapacity @@ -88,7 +76,7 @@ classes: has_or_had_quantity: range: integer required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_unit: @@ -97,7 +85,7 @@ classes: - value: has_or_had_unit: has_or_had_description: - range: string +# range: string required: false examples: - value: Approximately 5,000 linear meters of shelving across 3 floors @@ -124,7 +112,7 @@ classes: - https://schema.org/QuantitativeValue examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/capacity/rijksmuseum-depot-shelving + identified_by: https://nde.nl/ontology/hc/capacity/rijksmuseum-depot-shelving has_or_had_quantity: has_or_had_unit: has_or_had_type: ShelfLengthCapacity diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CapacityType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CapacityType.yaml index 20cace817f..fc6866ef78 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CapacityType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CapacityType.yaml @@ -11,9 +11,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: CapacityType: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CapacityTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CapacityTypes.yaml index 678aa24868..9fcb6609c0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CapacityTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CapacityTypes.yaml @@ -7,8 +7,8 @@ prefixes: qudt: http://qudt.org/schema/qudt/ default_prefix: hc imports: -- linkml:types -- ./CapacityType + - ./CapacityType + - linkml:types classes: VolumeCapacity: is_a: CapacityType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Caption.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Caption.yaml index fd41497ca8..c0fa2b0a27 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Caption.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Caption.yaml @@ -7,14 +7,13 @@ prefixes: schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/language -- ./Label + - linkml:types + - ../slots/has_or_had_label + - ../slots/language default_prefix: hc classes: Caption: - class_uri: schema:caption + class_uri: hc:Caption description: 'Represents accessibility caption/subtitle information for media content. **PURPOSE**: Caption provides structured representation of video/audio captions for: - WCAG accessibility compliance - Multilingual subtitle support @@ -24,18 +23,18 @@ classes: for hearing accessibility - Subtitles for multilingual content - Closed captions vs. open captions distinction MIGRATED 2026-01-22: Created per slot_fixes.yaml feedback to replace simple caption_available string with structured class.' - exact_mappings: + close_mappings: - schema:caption slots: - has_or_had_label - language slot_usage: has_or_had_label: - range: string +# range: string required: false - inlined: true + inlined: false # Fixed invalid inline for primitive type language: - range: string +# range: string required: false examples: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CareerEntry.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CareerEntry.yaml index 6553e6a6a2..00023b7085 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CareerEntry.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CareerEntry.yaml @@ -13,8 +13,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# rdfs: http://www.w3.org/2000/01/rdf-schema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: CareerEntry: description: "Career history entry representing a single job position in a person's\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Carrier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Carrier.yaml index 37dd8cd7c5..dfa0893f17 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Carrier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Carrier.yaml @@ -16,12 +16,11 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_note -- ../slots/has_or_had_type -- ./CarrierType + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_note + - ../slots/has_or_had_type classes: Carrier: class_uri: bf:Carrier @@ -53,12 +52,12 @@ classes: carrier_type_code: VINYL_DISC carrier_type_label: Vinyl Disc has_or_had_description: - range: string +# range: string required: false examples: - value: Paper codex with leather binding, 324 leaves has_or_had_note: - range: string +# range: string required: false examples: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CarrierType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CarrierType.yaml index 648f92f480..f7c6d425c4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CarrierType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CarrierType.yaml @@ -9,11 +9,11 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: CarrierType: class_uri: bf:Carrier @@ -36,15 +36,15 @@ classes: - has_or_had_description slot_usage: has_or_had_code: - range: string +# range: string required: true identifier: true pattern: ^[A-Z][A-Z0-9_]*$ has_or_had_label: - range: string +# range: string required: true has_or_had_description: - range: string +# range: string required: false comments: - Abstract base class - use concrete subclasses from CarrierTypes.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CarrierTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CarrierTypes.yaml index 3a4404dd3f..bf1ec18ccd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CarrierTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CarrierTypes.yaml @@ -16,11 +16,11 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_code -- ../slots/has_or_had_label -- ./CarrierType + - ./CarrierType + - linkml:types + - ../metadata + - ../slots/has_or_had_code + - ../slots/has_or_had_label classes: CodexCarrier: is_a: CarrierType @@ -31,7 +31,7 @@ classes: has_or_had_code: equals_string: CODEX has_or_had_label: - range: string +# range: string equals_string: Codex annotations: specificity_score: 0.1 @@ -48,7 +48,7 @@ classes: has_or_had_code: equals_string: BOUND_VOLUME has_or_had_label: - range: string +# range: string equals_string: Bound Volume annotations: custodian_types: '[''*'']' @@ -63,7 +63,7 @@ classes: has_or_had_code: equals_string: PAMPHLET has_or_had_label: - range: string +# range: string equals_string: Pamphlet annotations: custodian_types: '[''*'']' @@ -78,7 +78,7 @@ classes: has_or_had_code: equals_string: NOTEBOOK has_or_had_label: - range: string +# range: string equals_string: Notebook annotations: custodian_types: '[''*'']' @@ -93,7 +93,7 @@ classes: has_or_had_code: equals_string: SHEET has_or_had_label: - range: string +# range: string equals_string: Sheet annotations: custodian_types: '[''*'']' @@ -108,7 +108,7 @@ classes: has_or_had_code: equals_string: BROADSIDE has_or_had_label: - range: string +# range: string equals_string: Broadside annotations: custodian_types: '[''*'']' @@ -123,7 +123,7 @@ classes: has_or_had_code: equals_string: MAP_SHEET has_or_had_label: - range: string +# range: string equals_string: Map Sheet annotations: custodian_types: '[''*'']' @@ -138,7 +138,7 @@ classes: has_or_had_code: equals_string: PHOTOGRAPH has_or_had_label: - range: string +# range: string equals_string: Photograph annotations: custodian_types: '[''*'']' @@ -153,7 +153,7 @@ classes: has_or_had_code: equals_string: PARCHMENT_LEAF has_or_had_label: - range: string +# range: string equals_string: Parchment Leaf annotations: custodian_types: '[''*'']' @@ -168,7 +168,7 @@ classes: has_or_had_code: equals_string: SCROLL has_or_had_label: - range: string +# range: string equals_string: Scroll annotations: custodian_types: '[''*'']' @@ -183,7 +183,7 @@ classes: has_or_had_code: equals_string: PAPYRUS_SCROLL has_or_had_label: - range: string +# range: string equals_string: Papyrus Scroll annotations: custodian_types: '[''*'']' @@ -198,7 +198,7 @@ classes: has_or_had_code: equals_string: CLAY_TABLET has_or_had_label: - range: string +# range: string equals_string: Clay Tablet annotations: custodian_types: '[''*'']' @@ -213,7 +213,7 @@ classes: has_or_had_code: equals_string: WAX_TABLET has_or_had_label: - range: string +# range: string equals_string: Wax Tablet annotations: custodian_types: '[''*'']' @@ -228,7 +228,7 @@ classes: has_or_had_code: equals_string: INSCRIPTION has_or_had_label: - range: string +# range: string equals_string: Inscription annotations: custodian_types: '[''*'']' @@ -243,7 +243,7 @@ classes: has_or_had_code: equals_string: VINYL_DISC has_or_had_label: - range: string +# range: string equals_string: Vinyl Disc annotations: custodian_types: '[''*'']' @@ -258,7 +258,7 @@ classes: has_or_had_code: equals_string: AUDIO_CASSETTE has_or_had_label: - range: string +# range: string equals_string: Audio Cassette annotations: custodian_types: '[''*'']' @@ -273,7 +273,7 @@ classes: has_or_had_code: equals_string: COMPACT_DISC has_or_had_label: - range: string +# range: string equals_string: Compact Disc annotations: custodian_types: '[''*'']' @@ -288,7 +288,7 @@ classes: has_or_had_code: equals_string: FILM_REEL has_or_had_label: - range: string +# range: string equals_string: Film Reel annotations: custodian_types: '[''*'']' @@ -303,7 +303,7 @@ classes: has_or_had_code: equals_string: VIDEOTAPE has_or_had_label: - range: string +# range: string equals_string: Videotape annotations: custodian_types: '[''*'']' @@ -318,7 +318,7 @@ classes: has_or_had_code: equals_string: MICROFILM has_or_had_label: - range: string +# range: string equals_string: Microfilm annotations: custodian_types: '[''*'']' @@ -333,7 +333,7 @@ classes: has_or_had_code: equals_string: MICROFICHE has_or_had_label: - range: string +# range: string equals_string: Microfiche annotations: custodian_types: '[''*'']' @@ -348,7 +348,7 @@ classes: has_or_had_code: equals_string: FLOPPY_DISK has_or_had_label: - range: string +# range: string equals_string: Floppy Disk annotations: custodian_types: '[''*'']' @@ -363,7 +363,7 @@ classes: has_or_had_code: equals_string: OPTICAL_DISC has_or_had_label: - range: string +# range: string equals_string: Optical Disc annotations: custodian_types: '[''*'']' @@ -378,7 +378,7 @@ classes: has_or_had_code: equals_string: HARD_DRIVE has_or_had_label: - range: string +# range: string equals_string: Hard Drive annotations: custodian_types: '[''*'']' @@ -393,7 +393,7 @@ classes: has_or_had_code: equals_string: USB_DRIVE has_or_had_label: - range: string +# range: string equals_string: USB Drive annotations: custodian_types: '[''*'']' @@ -408,7 +408,7 @@ classes: has_or_had_code: equals_string: MEMORY_CARD has_or_had_label: - range: string +# range: string equals_string: Memory Card annotations: custodian_types: '[''*'']' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CastCollection.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CastCollection.yaml index 532728a24f..4cce1a497b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CastCollection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CastCollection.yaml @@ -2,19 +2,9 @@ id: https://nde.nl/ontology/hc/class/CastCollection name: CastCollection title: Cast Collection Type imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./GalleryType -- ./MuseumType -- ./PersonalCollectionType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: CastCollection: is_a: ArchiveOrganizationType @@ -90,7 +80,6 @@ classes: ' slots: - has_or_had_type - - specificity_annotation - has_or_had_score slot_usage: has_or_had_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CatalogSystem.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CatalogSystem.yaml index ba14b8d0b1..ab68004ba7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CatalogSystem.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CatalogSystem.yaml @@ -24,12 +24,11 @@ prefixes: schema: http://schema.org/ prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_name -- ../slots/has_or_had_type -- ../slots/has_or_had_url -- ./CatalogSystemType + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_name + - ../slots/has_or_had_type + - ../slots/has_or_had_url default_prefix: hc classes: CatalogSystem: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CatalogSystemType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CatalogSystemType.yaml index 562f93ea2c..32189b5fb7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CatalogSystemType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CatalogSystemType.yaml @@ -20,9 +20,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_name default_prefix: hc classes: CatalogSystemType: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CatalogSystemTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CatalogSystemTypes.yaml index a766e3435b..eae6d6b042 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CatalogSystemTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CatalogSystemTypes.yaml @@ -23,9 +23,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_name -- ./CatalogSystemType + - ./CatalogSystemType + - linkml:types + - ../slots/has_or_had_name default_prefix: hc classes: IntegratedLibrarySystem: @@ -92,9 +92,9 @@ classes: - OPAC broad_mappings: - skos:Concept - CollectionManagementSystem: + CollectionManagementSystemType: is_a: CatalogSystemType - class_uri: hc:CollectionManagementSystem + class_uri: hc:CollectionManagementSystemType description: 'Collection Management System (CMS) for museums and cultural heritage institutions to manage object records, provenance, exhibitions, and loans. @@ -171,9 +171,9 @@ classes: - OAIS Repository broad_mappings: - skos:Concept - InstitutionalRepository: + InstitutionalRepositoryType: is_a: CatalogSystemType - class_uri: hc:InstitutionalRepository + class_uri: hc:InstitutionalRepositoryType description: 'Institutional Repository for managing and providing access to scholarly outputs, research data, and institutional publications. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CatalogingStandard.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CatalogingStandard.yaml index 02607ce965..471a20ead4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CatalogingStandard.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CatalogingStandard.yaml @@ -32,12 +32,12 @@ prefixes: dcterms: http://purl.org/dc/terms/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_url + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_url default_prefix: hc classes: CatalogingStandard: @@ -63,28 +63,28 @@ classes: close_mappings: - schema:CreativeWork slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_url slot_usage: - has_or_had_identifier: + identified_by: required: true - range: string +# range: string examples: - value: LIDO - value: MARC21 - value: Darwin Core has_or_had_label: required: false - range: string +# range: string examples: - value: Lightweight Information Describing Objects - value: Machine-Readable Cataloging 21 - value: Resource Description and Access has_or_had_description: required: false - range: string +# range: string examples: - value: XML schema for museum object metadata harvesting has_or_had_url: @@ -97,17 +97,17 @@ classes: - value: library examples: - value: - has_or_had_identifier: LIDO + identified_by: LIDO has_or_had_label: Lightweight Information Describing Objects has_or_had_description: XML schema for museum object metadata harvesting and exchange has_or_had_url: https://lido-schema.org/ - value: - has_or_had_identifier: MARC21 + identified_by: MARC21 has_or_had_label: Machine-Readable Cataloging 21 has_or_had_description: Library cataloging format for bibliographic data has_or_had_url: https://www.loc.gov/marc/ - value: - has_or_had_identifier: Darwin Core + identified_by: Darwin Core has_or_had_label: Darwin Core has_or_had_description: Data standard for biodiversity specimen information has_or_had_url: https://dwc.tdwg.org/ @@ -119,5 +119,5 @@ slots: standard_domain: slot_uri: hc:standardDomain description: Domain(s) where this standard is primarily used. - range: string +# range: string multivalued: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Category.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Category.yaml index 1c2e5576ed..d324cfcdb1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Category.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Category.yaml @@ -8,14 +8,9 @@ prefixes: dcterms: http://purl.org/dc/terms/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -default_range: string + - linkml:types + - ../slots/has_or_had_score +# default_range: string enums: CategoryTypeEnum: description: Types of categories for classification. @@ -60,12 +55,11 @@ classes: - schema:DefinedTerm - dcterms:subject slots: - - specificity_annotation - has_or_had_score comments: - Created per slot_fixes.yaml revision for collection_focus migration - SKOS-based category model for collection classification - - 'RULE 53: Part of collection_focus → has_or_had_category + Category migration' + - 'RULE 53: Part of collection_focus → categorized_as + Category migration' annotations: specificity_score: 0.45 specificity_rationale: Broadly useful - applies to many collection contexts diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CategoryStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CategoryStatus.yaml index 07722c741f..ab8e78a9f0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CategoryStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CategoryStatus.yaml @@ -18,11 +18,11 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# crm: http://www.cidoc-crm.org/cidoc-crm/ imports: -- linkml:types -- ../enums/StorageConditionStatusEnum -- ../slots/has_or_had_description -- ../slots/has_or_had_name -- ../slots/has_or_had_value + - linkml:types + - ../enums/StorageConditionStatusEnum + - ../slots/has_or_had_description + - ../slots/has_or_had_name + - ../slots/has_or_had_value default_prefix: hc classes: CategoryStatus: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CateringPlace.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CateringPlace.yaml index 453f5d7509..a77cb7864a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CateringPlace.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CateringPlace.yaml @@ -2,42 +2,28 @@ id: https://nde.nl/ontology/hc/class/catering-place name: catering_place_class title: CateringPlace Class imports: -- linkml:types -- ../slots/cuisine_type -- ../slots/has_or_had_accessibility_feature -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_price -- ../slots/has_or_had_score -- ../slots/has_or_had_service -- ../slots/has_or_had_type -- ../slots/is_or_was_classified_as -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_founded_through -- ../slots/is_or_was_generated_by -- ../slots/michelin_star -- ../slots/opening_hour -- ../slots/operator -- ../slots/outdoor_seating_capacity -- ../slots/reservation_required -- ../slots/seating_capacity -- ../slots/serves_staff -- ../slots/serves_visitors_only -- ../slots/specificity_annotation -- ./CateringTypes -- ./HeritageType -- ./Label -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./CateringType -- ./CustodianObservation -- ./Description -- ./FoundingEvent -- ./Price -- ./ReconstructionActivity + - linkml:types + - ../slots/cuisine_type + - ../slots/has_or_had_accessibility_feature + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_price + - ../slots/has_or_had_score + - ../slots/has_or_had_service + - ../slots/has_or_had_type + - ../slots/is_or_was_classified_as + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_founded_through + - ../slots/is_or_was_generated_by + - ../slots/michelin_star + - ../slots/opening_hour + - ../slots/operator + - ../slots/outdoor_seating_capacity + - ../slots/reservation_required + - ../slots/seating_capacity + - ../slots/serves_staff + - ../slots/serves_visitors_only prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -53,7 +39,7 @@ classes: is_a: ReconstructedEntity class_uri: schema:FoodEstablishment description: "Catering facility, caf\xE9, or restaurant operated at a heritage custodian venue.\n\n**DEFINITION**:\n\nA CateringPlace is a food and beverage facility operated at or by a heritage\ncustodian. This includes museum caf\xE9s, archive tea rooms, library cafeterias,\nand other dining facilities that serve visitors and staff. May also include\nhistoric restaurants or caf\xE9s that are themselves heritage institutions.\n\n**SCHEMA.ORG ALIGNMENT**:\n\n`schema:FoodEstablishment` - \"A food-related business.\"\n\nSubclasses include:\n- `schema:CafeOrCoffeeShop` - Caf\xE9 or coffee shop\n- `schema:Restaurant` - Full-service restaurant\n\n**WIKIDATA TYPE LINKAGE (TasteScentHeritageTypeEnum Subset)**:\n\nFor heritage catering venues with cultural significance, can be classified\nusing TasteScentHeritageTypeEnum (15 types):\n\n- Q11707 (restaurant) - General restaurant\n- Q30022 (caf\xE9) - Coffee shop/caf\xE9\n- Q1569167 (tearoom) - Tea room\n- Q5765838 (historic restaurant) - Restaurant\ - \ with heritage value\n\n**DISTINCTION FROM GiftShop**:\n\n| Type | Primary Function | Products |\n|------|------------------|----------|\n| **CateringPlace** | Food and beverage | Meals, drinks, snacks |\n| GiftShop | Retail merchandise | Souvenirs, books, gifts |\n\n**TYPES OF CATERING PLACES**:\n\n1. **Museum Caf\xE9**: Casual refreshments for visitors\n2. **Museum Restaurant**: Full-service dining\n3. **Historic Caf\xE9**: Caf\xE9 that is itself heritage (e.g., literary caf\xE9)\n4. **Staff Canteen**: Staff dining facility\n5. **Event Catering**: Function/event catering space\n6. **Terrace/Garden Caf\xE9**: Outdoor dining\n\n**USE CASES**:\n\n1. **Museum Restaurant**:\n ```yaml\n CateringPlace:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/rijksmuseum-restaurant\"\n has_or_had_label:\n label_text: \"RIJKS Restaurant\"\n catering_type: RESTAURANT\n cuisine_type: \"Modern Dutch fine dining\"\n has_michelin_star: true\n ```\n\n2. **Archive\ + \ with heritage value\n\n**DISTINCTION FROM GiftShop**:\n\n| Type | Primary Function | Products |\n|------|------------------|----------|\n| **CateringPlace** | Food and beverage | Meals, drinks, snacks |\n| GiftShop | Retail merchandise | Souvenirs, books, gifts |\n\n**TYPES OF CATERING PLACES**:\n\n1. **Museum Caf\xE9**: Casual refreshments for visitors\n2. **Museum Restaurant**: Full-service dining\n3. **Historic Caf\xE9**: Caf\xE9 that is itself heritage (e.g., literary caf\xE9)\n4. **Staff Canteen**: Staff dining facility\n5. **Event Catering**: Function/event catering space\n6. **Terrace/Garden Caf\xE9**: Outdoor dining\n\n**USE CASES**:\n\n1. **Museum Restaurant**:\n ```yaml\n CateringPlace:\n identified_by: \"https://nde.nl/ontology/hc/aux/rijksmuseum-restaurant\"\n has_or_had_label:\n label_text: \"RIJKS Restaurant\"\n catering_type: RESTAURANT\n cuisine_type: \"Modern Dutch fine dining\"\n has_michelin_star: true\n ```\n\n2. **Archive\ \ Caf\xE9**:\n ```yaml\n CateringPlace:\n has_or_had_label:\n label_text: \"Nationaal Archief Caf\xE9\"\n catering_type: CAFE\n serves_visitors_only: true\n ```\n\n3. **Historic Literary Caf\xE9**:\n ```yaml\n CateringPlace:\n has_or_had_label:\n label_text: \"Caf\xE9 Americain\"\n catering_type: HISTORIC_CAFE\n heritage_type_classification: HISTORIC_RESTAURANT\n founded_year: 1902\n ```\n" exact_mappings: - schema:FoodEstablishment @@ -68,7 +54,7 @@ classes: slots: - has_or_had_accessibility_feature - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_price - has_or_had_type @@ -84,20 +70,19 @@ classes: - seating_capacity - serves_staff - serves_visitors_only - - specificity_annotation - has_or_had_score - is_or_was_derived_from - is_or_was_generated_by slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/rijksmuseum-restaurant has_or_had_label: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: @@ -107,8 +92,8 @@ classes: - value: label_text: "Van Gogh Museum Caf\xE9" has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: Michelin-starred restaurant serving modern Dutch cuisine using seasonal ingredients. Located in the museum's atrium with views of the garden. @@ -128,7 +113,7 @@ classes: - value: has_or_had_label: HISTORIC_RESTAURANT cuisine_type: - range: string +# range: string examples: - value: Modern Dutch fine dining - value: "Organic caf\xE9 fare" @@ -146,7 +131,7 @@ classes: examples: - value: 40 opening_hour: - range: string +# range: string examples: - value: Tu-Su 10:00-17:00 - value: Tu-Su 10:00-22:00 @@ -187,13 +172,13 @@ classes: has_or_had_type: has_or_had_name: Budget has_or_had_accessibility_feature: - range: string +# range: string multivalued: true examples: - value: Wheelchair accessible - value: Accessible restrooms operator: - range: string +# range: string examples: - value: Vermaat Groep - value: In-house @@ -224,7 +209,7 @@ classes: - https://schema.org/CafeOrCoffeeShop examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/rijksmuseum-restaurant + identified_by: https://nde.nl/ontology/hc/aux/rijksmuseum-restaurant has_or_had_label: label_text: RIJKS Restaurant has_or_had_description: @@ -245,7 +230,7 @@ classes: has_or_had_name: Luxury operator: Vermaat Groep - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/na-cafe + identified_by: https://nde.nl/ontology/hc/aux/na-cafe has_or_had_label: label_text: "Nationaal Archief Caf\xE9" has_or_had_description: @@ -264,7 +249,7 @@ classes: has_or_had_accessibility_feature: - Wheelchair accessible - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/cafe-americain + identified_by: https://nde.nl/ontology/hc/aux/cafe-americain has_or_had_label: label_text: "Caf\xE9 Americain" has_or_had_description: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CateringType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CateringType.yaml index 4795efdd31..068e8637c6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CateringType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CateringType.yaml @@ -22,9 +22,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_name default_prefix: hc classes: CateringType: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CateringTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CateringTypes.yaml index b582655324..ce7df334ee 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CateringTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CateringTypes.yaml @@ -29,9 +29,9 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_name -- ./CateringType + - ./CateringType + - linkml:types + - ../slots/has_or_had_name default_prefix: hc classes: CafeCatering: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CathedralArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CathedralArchive.yaml index f9e3de7c94..f794738c9b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CathedralArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CathedralArchive.yaml @@ -4,22 +4,11 @@ title: Cathedral Archive Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CathedralArchiveRecordSetType -- ./CathedralArchiveRecordSetTypes -- ./CollectionType -- ./DualClassLink -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: CathedralArchive: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetType.yaml index 4c7ef8da2c..8a14e7a459 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetType.yaml @@ -4,14 +4,10 @@ title: CathedralArchive Record Set Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: CathedralArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by CathedralArchive custodians. @@ -20,7 +16,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetTypes.yaml index 634891bada..eded0f76c3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./CathedralArchive -- ./CathedralArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./CathedralArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: ChapterRecordsFonds: is_a: CathedralArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Cathedral chapter administrative records.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept LiturgicalDocumentCollection: is_a: CathedralArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Liturgical and ceremonial records.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by CathedralArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept FabricRecordsSeries: is_a: CathedralArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Building and fabric maintenance records.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by CathedralArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CauseOfDeath.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CauseOfDeath.yaml index 3df0e864fe..0664e8f563 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CauseOfDeath.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CauseOfDeath.yaml @@ -15,13 +15,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../enums/CauseOfDeathTypeEnum -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_location -- ../slots/has_or_had_type -- ./Location + - linkml:types + - ../enums/CauseOfDeathTypeEnum + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_location + - ../slots/has_or_had_type classes: CauseOfDeath: class_uri: hc:CauseOfDeath @@ -42,10 +41,10 @@ classes: ' has_or_had_description: - range: string +# range: string has_or_had_location: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type comments: - Structured cause of death for heritage workers - Wikidata P1196 (manner of death) is semantically equivalent diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CeaseEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CeaseEvent.yaml index 0d15edcc5b..f78d41b043 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CeaseEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CeaseEvent.yaml @@ -14,9 +14,9 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: CeaseEvent: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CeasingEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CeasingEvent.yaml index c94ad7df5e..08e6581384 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CeasingEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CeasingEvent.yaml @@ -15,13 +15,11 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/is_or_was_observed_by -- ../slots/temporal_extent -- ./CustodianObservation -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/is_or_was_observed_by + - ../slots/temporal_extent classes: CeasingEvent: class_uri: schema:Event diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CertaintyLevel.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CertaintyLevel.yaml index e838f7b9ff..4b55b8ec55 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CertaintyLevel.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CertaintyLevel.yaml @@ -13,17 +13,11 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_note -- ../slots/has_or_had_score -- ../slots/level_value -- ../slots/specificity_annotation -- ./Note -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/has_or_had_note + - ../slots/has_or_had_score + - ../slots/level_value classes: CertaintyLevel: class_uri: rico:ConfidenceLevel @@ -66,12 +60,11 @@ classes: slots: - level_value - has_or_had_note - - specificity_annotation - has_or_had_score slot_usage: level_value: - range: string +# range: string required: true examples: - value: CERTAIN @@ -79,9 +72,9 @@ classes: - value: POSSIBLE - value: UNCERTAIN has_or_had_note: - range: string +# range: string multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CertificationEntry.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CertificationEntry.yaml index a0ae4dab1e..7d89e6716f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CertificationEntry.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CertificationEntry.yaml @@ -8,8 +8,10 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types + - ../slots/name + - ../slots/date +# default_range: string classes: CertificationEntry: description: "A professional certification record documenting credentials held\ @@ -31,4 +33,4 @@ classes: custodian_types: '[''*'']' slots: - name - - date + - date_value diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationMetadata.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationMetadata.yaml index eb15be95d3..dd16bbcaae 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationMetadata.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationMetadata.yaml @@ -15,11 +15,9 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../slots/is_or_was_generated_by -- ./ConfidenceScore -- ./GenerationEvent -default_range: string + - linkml:types + - ../slots/is_or_was_generated_by +# default_range: string classes: ChAnnotatorAnnotationMetadata: description: "Metadata about the CH-Annotator annotation including confidence\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationProvenance.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationProvenance.yaml index 5a0b0c623e..2432ea8245 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationProvenance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationProvenance.yaml @@ -10,8 +10,8 @@ prefixes: oa: http://www.w3.org/ns/oa# pav: http://purl.org/pav/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: ChAnnotatorAnnotationProvenance: description: "Provenance information for the CH-Annotator annotation process,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorBlock.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorBlock.yaml index b6de1c1775..048e0b4139 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorBlock.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorBlock.yaml @@ -9,14 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# oa: http://www.w3.org/ns/oa# imports: -- linkml:types -- ./ChAnnotatorAnnotationMetadata -- ./ChAnnotatorAnnotationProvenance -- ./ChAnnotatorEntityClaim -- ./ChAnnotatorEntityClassification -- ./ChAnnotatorIntegrationNote -- ./ChAnnotatorProvenance -default_range: string + - linkml:types +# default_range: string classes: ChAnnotatorBlock: description: "Container for CH-Annotator convention metadata and entity claims,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClaim.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClaim.yaml index 3ac3e17b56..1a18814de9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClaim.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClaim.yaml @@ -15,13 +15,9 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../slots/has_or_had_type -- ./ChAnnotatorProvenance -- ./ClaimType -- ./ClaimTypes -- ./ExtractionSourceInfo -default_range: string + - linkml:types + - ../slots/has_or_had_type +# default_range: string classes: ChAnnotatorEntityClaim: description: "Individual claim about an entity extracted using CH-Annotator convention.\ @@ -41,8 +37,8 @@ classes: - has_or_had_type slot_usage: has_or_had_type: - range: uriorcurie - inlined: true +# range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type required: true annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClassification.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClassification.yaml index 8cc0870caf..52311d475d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClassification.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClassification.yaml @@ -10,10 +10,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# oa: http://www.w3.org/ns/oa# imports: -- linkml:types -- ./ChAnnotatorModel -- ./PatternClassification -default_range: string + - linkml:types +# default_range: string classes: ChAnnotatorEntityClassification: description: "Entity classification in the CH-Annotator taxonomy, capturing hypernym\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorIntegrationNote.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorIntegrationNote.yaml index efbf044a60..d465b6636b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorIntegrationNote.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorIntegrationNote.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# pav: http://purl.org/pav/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: ChAnnotatorIntegrationNote: description: "Note about how a file was created or integrated into the dataset,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorModel.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorModel.yaml index aecbd2b379..aa96981798 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorModel.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorModel.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: ChAnnotatorModel: description: "Information about the annotator model used for CH-Annotator extraction,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorProvenance.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorProvenance.yaml index e77df36626..80dd9490e5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorProvenance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorProvenance.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# pav: http://purl.org/pav/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: ChAnnotatorProvenance: description: "Provenance information for CH-Annotator extraction, tracking the\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchive.yaml index 9b68e07c21..4ce8fcf4b9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchive.yaml @@ -4,15 +4,10 @@ title: Church Archive Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/hold_or_held_record_set_type -- ./ArchiveOrganizationType -- ./ChurchArchiveRecordSetTypes -- ./CollectionType -- ./Scope -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/hold_or_held_record_set_type classes: ChurchArchive: is_a: ArchiveOrganizationType @@ -89,10 +84,10 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - hold_or_held_record_set_type slot_usage: - has_or_had_identifier: null + identified_by: null hold_or_held_record_set_type: equals_expression: '["hc:ChurchGovernanceFonds", "hc:ParishRegisterSeries", "hc:PastoralCorrespondenceCollection", "hc:ChurchPropertyFonds", "hc:CongregationalLifeCollection"] diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetType.yaml index 82f2e1842b..8e254e9675 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetType.yaml @@ -8,14 +8,11 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to classes: ChurchArchiveRecordSetType: abstract: true @@ -33,7 +30,6 @@ classes: - CongregationalLifeCollection slots: - has_or_had_type - - specificity_annotation - has_or_had_score slot_usage: has_or_had_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetTypes.yaml index dbefecd64e..e541378437 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetTypes.yaml @@ -11,24 +11,18 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/legal_note -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/privacy_note -- ../slots/record_note -- ../slots/record_set_type -- ../slots/scope_exclude -- ../slots/scope_include -- ../slots/specificity_annotation -- ./ChurchArchive -- ./ChurchArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./ChurchArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/legal_note + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/privacy_note + - ../slots/record_note + - ../slots/record_set_type + - ../slots/scope_exclude + - ../slots/scope_include classes: ChurchGovernanceFonds: is_a: ChurchArchiveRecordSetType @@ -65,11 +59,10 @@ classes: - church council - visitation records - membership rolls - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds - broad_mappings: - wd:Q1643722 - rico:RecordSetType - skos:Concept @@ -83,7 +76,6 @@ classes: - DiocesanArchive slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -154,12 +146,11 @@ classes: - genealogy sources - vital records - kerkelijke registers - exact_mappings: + broad_mappings: - rico:RecordSetType - wd:Q1464422 related_mappings: - rico-rst:Series - broad_mappings: - wd:Q185583 - rico:RecordSetType - skos:Concept @@ -180,7 +171,6 @@ classes: WieWasWie. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -246,12 +236,11 @@ classes: - ecclesiastical correspondence - minister papers - priest correspondence - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds - rico-rst:Series - broad_mappings: - wd:Q22075301 - rico:RecordSetType - skos:Concept @@ -264,7 +253,6 @@ classes: - FacultyPaperCollection slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -333,11 +321,10 @@ classes: - building records - financial accounts - cemetery records - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds - broad_mappings: - wd:Q1643722 - rico:RecordSetType - skos:Concept @@ -349,7 +336,6 @@ classes: - rico-rst:Fonds slots: - has_or_had_type - - specificity_annotation - has_or_had_score - legal_note - organizational_principle @@ -417,11 +403,10 @@ classes: - church publications - photograph - youth groups - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q9388534 - rico:RecordSetType - skos:Concept @@ -438,7 +423,6 @@ classes: reflect the lived religious experience of the community beyond formal administration. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveSweden.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveSweden.yaml index 09bf23a23e..51f60b4993 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveSweden.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveSweden.yaml @@ -4,22 +4,11 @@ title: Church Archive Type (Sweden) prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ChurchArchive -- ./ChurchArchiveSwedenRecordSetType -- ./ChurchArchiveSwedenRecordSetTypes -- ./CollectionType -- ./DualClassLink -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: ChurchArchiveSweden: is_a: ChurchArchive diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetType.yaml index 349e3901db..605681b36a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetType.yaml @@ -4,14 +4,10 @@ title: ChurchArchiveSweden Record Set Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: ChurchArchiveSwedenRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ChurchArchiveSweden custodians. @@ -20,7 +16,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetTypes.yaml index 0aedf9edd6..5d0941d07f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ChurchArchiveSweden -- ./ChurchArchiveSwedenRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./ChurchArchiveSwedenRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: SwedishParishRecordSeries: is_a: ChurchArchiveSwedenRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Swedish parish records (kyrkoarkiv).\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,9 +62,6 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept SwedishChurchPropertyFonds: is_a: ChurchArchiveSwedenRecordSetType class_uri: rico:RecordSetType @@ -80,7 +70,7 @@ classes: \ fonds \norganizational principle as defined by rico-rst:Fonds.\n\n**Note**:\ \ This is a Swedish-specific variant. For the general church property fonds\ \ type, see ChurchPropertyFonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -92,7 +82,6 @@ classes: - ChurchPropertyFonds slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -113,6 +102,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ChurchArchiveSweden custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Cinematheque.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Cinematheque.yaml index cfae61202f..f58e993901 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Cinematheque.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Cinematheque.yaml @@ -2,15 +2,9 @@ id: https://nde.nl/ontology/hc/class/Cinematheque name: Cinematheque title: Cinematheque Type imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: Cinematheque: is_a: ArchiveOrganizationType @@ -22,7 +16,6 @@ classes: equals_expression: '["hc:ArchiveOrganizationType"]' slots: - has_or_had_type - - specificity_annotation - has_or_had_score annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/City.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/City.yaml index 9a849bd54e..37b715bd3b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/City.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/City.yaml @@ -11,8 +11,7 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ imports: -- linkml:types -- ./Settlement + - linkml:types default_prefix: hc classes: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Claim.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Claim.yaml index 0919581a76..3ae8ac9754 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Claim.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Claim.yaml @@ -8,7 +8,7 @@ prefixes: prov: http://www.w3.org/ns/prov# arg: http://www.w3.org/ns/argument# imports: -- linkml:types + - linkml:types default_prefix: hc classes: Claim: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ClaimType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ClaimType.yaml index 0dff28ce5a..17e5ca8a4d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ClaimType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ClaimType.yaml @@ -8,9 +8,9 @@ prefixes: dcterms: http://purl.org/dc/terms/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: ClaimType: @@ -19,8 +19,8 @@ classes: \ per slot_fixes.yaml (Rule 0b, 53, 56).\nEnum archived to: modules/enums/archive/ClaimTypeEnum_archived_20260119.yaml\n" exact_mappings: - skos:Concept - - dcterms:type close_mappings: + - dcterms:type - schema:PropertyValueSpecification slots: - has_or_had_label diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ClaimTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ClaimTypes.yaml index 69ee3d317b..8d0f7af2ba 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ClaimTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ClaimTypes.yaml @@ -7,8 +7,8 @@ prefixes: schema: http://schema.org/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ./ClaimType + - ./ClaimType + - linkml:types default_prefix: hc classes: IdentityClaim: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Classification.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Classification.yaml index 776427c29c..96f1c156ac 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Classification.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Classification.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: Classification: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ClassificationStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ClassificationStatus.yaml index 554617c2b6..6482f07812 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ClassificationStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ClassificationStatus.yaml @@ -8,13 +8,10 @@ prefixes: schema: http://schema.org/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_type -- ../slots/temporal_extent -- ./ClassificationStatusType -- ./ClassificationStatusTypes -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_type + - ../slots/temporal_extent default_prefix: hc classes: ClassificationStatus: @@ -63,16 +60,16 @@ classes: - temporal_extent slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_label: "Indeterminate" - value: has_or_had_label: "Ambiguous" has_or_had_description: - range: string +# range: string required: true examples: - value: "Type indeterminate - insufficient evidence" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ClassificationStatusType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ClassificationStatusType.yaml index dda3a81eb5..4ec099613b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ClassificationStatusType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ClassificationStatusType.yaml @@ -7,9 +7,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# crm: http://www.cidoc-crm.org/cidoc-crm/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: ClassificationStatusType: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ClassificationStatusTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ClassificationStatusTypes.yaml index ee9e4461c2..052c073b88 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ClassificationStatusTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ClassificationStatusTypes.yaml @@ -6,8 +6,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ./ClassificationStatusType + - ./ClassificationStatusType + - linkml:types default_prefix: hc classes: IndeterminateStatus: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ClassificationType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ClassificationType.yaml index 174de7065d..e0288bd186 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ClassificationType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ClassificationType.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: ClassificationType: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Classroom.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Classroom.yaml index 1b7d060de6..fb671c7bd3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Classroom.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Classroom.yaml @@ -8,13 +8,10 @@ prefixes: qudt: http://qudt.org/schema/qudt/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_quantity -- ../slots/has_or_had_unit -- ../slots/seating_capacity -- ./Facility -- ./Quantity -- ./RoomUnit + - linkml:types + - ../slots/has_or_had_quantity + - ../slots/has_or_had_unit + - ../slots/seating_capacity classes: Classroom: is_a: Facility @@ -35,12 +32,12 @@ classes: slot_usage: has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: 'numeric_value: 4 ' has_or_had_unit: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: 'unit_type: CLASSROOM ' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ClimateArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ClimateArchive.yaml index a621e537b4..038656598f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ClimateArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ClimateArchive.yaml @@ -4,22 +4,11 @@ title: Climate Archive Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./ClimateArchiveRecordSetType -- ./ClimateArchiveRecordSetTypes -- ./CollectionType -- ./DualClassLink -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: ClimateArchive: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ClimateArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ClimateArchiveRecordSetType.yaml index 05c42388f8..0cf3c63686 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ClimateArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ClimateArchiveRecordSetType.yaml @@ -4,14 +4,10 @@ title: ClimateArchive Record Set Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: ClimateArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ClimateArchive custodians. @@ -20,7 +16,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ClimateArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ClimateArchiveRecordSetTypes.yaml index 4026fc050d..57e4bed4c9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ClimateArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ClimateArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ClimateArchive -- ./ClimateArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./ClimateArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: ClimateDataCollection: is_a: ClimateArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Historical climate records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept MeteorologicalObservationSeries: is_a: ClimateArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Weather observation records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ClimateArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ClimateControl.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ClimateControl.yaml index d1b83a7c12..94c2a1d198 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ClimateControl.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ClimateControl.yaml @@ -12,11 +12,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ./ClimateControlType + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type classes: ClimateControl: class_uri: aat:300264752 @@ -83,7 +82,7 @@ classes: slot_usage: has_or_had_label: - range: string +# range: string required: false examples: - value: "Main Stack HVAC System" @@ -94,7 +93,7 @@ classes: description_text: "Precision HVAC with temperature control ±1°C, humidity control ±3% RH. Redundant systems with automatic failover." description_type: technical has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: HVAC diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ClimateControlPolicy.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ClimateControlPolicy.yaml index 2f67d2e32a..cd4076388f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ClimateControlPolicy.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ClimateControlPolicy.yaml @@ -14,11 +14,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/regulates_or_regulated -- ./ClimateControl + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/regulates_or_regulated classes: ClimateControlPolicy: class_uri: odrl:Policy @@ -83,7 +82,7 @@ classes: slot_usage: has_or_had_label: - range: string +# range: string required: true examples: - value: "Archives Preservation Environment Standard" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ClimateControlType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ClimateControlType.yaml index 1068ee656d..eea6590699 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ClimateControlType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ClimateControlType.yaml @@ -11,11 +11,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/includes_or_included -- ./ClimateControlType + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/includes_or_included classes: ClimateControlType: class_uri: skos:Concept @@ -69,7 +68,7 @@ classes: slot_usage: has_or_had_label: - range: string +# range: string required: true examples: - value: "HVAC" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ClimateControlTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ClimateControlTypes.yaml index 8b8ccba0cf..fe6b1c0c33 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ClimateControlTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ClimateControlTypes.yaml @@ -8,8 +8,8 @@ prefixes: aat: http://vocab.getty.edu/aat/ default_prefix: hc imports: -- linkml:types -- ./ClimateControlType + - ./ClimateControlType + - linkml:types classes: HeatedClimateControl: is_a: ClimateControlType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Clipping.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Clipping.yaml index e594073434..392e02f55e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Clipping.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Clipping.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: Clipping: class_uri: schema:Clip diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CoFunding.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CoFunding.yaml index 881d0015c8..b1b65aee7f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CoFunding.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CoFunding.yaml @@ -8,13 +8,11 @@ prefixes: schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../enums/MeasureUnitEnum -- ../slots/has_or_had_description -- ../slots/has_or_had_quantity -- ../slots/is_or_was_required -- ./MeasureUnit -- ./Quantity + - linkml:types + - ../enums/MeasureUnitEnum + - ../slots/has_or_had_description + - ../slots/has_or_had_quantity + - ../slots/is_or_was_required default_prefix: hc classes: CoFunding: @@ -40,15 +38,15 @@ classes: - value: true - value: false has_or_had_description: - range: string +# range: string examples: - value: 30% co-funding required; in-kind contributions accepted up to 10% - value: Partnership funding required ranging from 5% to 50% depending on grant size has_or_had_quantity: range: integer multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type description: "Quantified co-funding requirements expressed as:\n- Percentage (e.g., 30% of total project cost)\n- Minimum amount (e.g., \u20AC50,000)\n- Maximum amount (e.g., up to \u20AC1,000,000)\n" examples: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Code.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Code.yaml index d2daa2a1b0..e3d0a89f87 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Code.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Code.yaml @@ -14,9 +14,9 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: Code: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CollectingArchives.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CollectingArchives.yaml index b1b87e8d9a..b5996bf1a3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CollectingArchives.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CollectingArchives.yaml @@ -4,22 +4,11 @@ title: Collecting Archives Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectingArchivesRecordSetType -- ./CollectingArchivesRecordSetTypes -- ./CollectionType -- ./DualClassLink -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: CollectingArchives: is_a: ArchiveOrganizationType @@ -27,7 +16,6 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score description: 'Archive that actively collects materials from multiple external sources rather than preserving records of its own parent organization. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CollectingArchivesRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CollectingArchivesRecordSetType.yaml index b9705a3de8..07db3a000c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CollectingArchivesRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CollectingArchivesRecordSetType.yaml @@ -4,14 +4,10 @@ title: CollectingArchives Record Set Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: CollectingArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by CollectingArchives custodians. @@ -20,7 +16,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CollectingArchivesRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CollectingArchivesRecordSetTypes.yaml index d60cd7778d..34bbf01a7d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CollectingArchivesRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CollectingArchivesRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./CollectingArchives -- ./CollectingArchivesRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./CollectingArchivesRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: CollectedMaterialsFonds: is_a: CollectingArchivesRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Collected/acquired materials.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept DonatedPapersCollection: is_a: CollectingArchivesRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Donated papers.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by CollectingArchives custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Collection.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Collection.yaml index f16705e5c4..aab2f54f59 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Collection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Collection.yaml @@ -16,46 +16,26 @@ prefixes: edm: http://www.europeana.eu/schemas/edm/ default_prefix: hc imports: -- linkml:types -- ../slots/custodial_history -- ../slots/has_or_had_content -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_policy -- ../slots/has_or_had_provenance -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_acquired_through -- ../slots/is_or_was_categorized_as -- ../slots/is_or_was_instantiated_by -- ../slots/is_or_was_sub_collection_of -- ../slots/item -- ../slots/part_of_custodian_collection -- ../slots/record_set_type -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./AccessPolicy -- ./AcquisitionEvent -- ./AcquisitionMethod -- ./CollectionType -- ./Content -- ./CurationActivity -- ./CustodianCollection -- ./Description -- ./DigitalInstantiation -- ./ExhibitedObject -- ./FindingAid -- ./Identifier -- ./Label -- ./Provenance -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Collection + - linkml:types + - ../slots/custodial_history + - ../slots/has_or_had_content + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_policy + - ../slots/has_or_had_provenance + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_acquired_through + - ../slots/is_or_was_categorized_as + - ../slots/is_or_was_instantiated_by + - ../slots/is_or_was_sub_collection_of + - ../slots/item + - ../slots/part_of_custodian_collection + - ../slots/record_set_type + - ../slots/temporal_extent +# - ./CurationActivity classes: Collection: class_uri: rico:RecordSet @@ -74,7 +54,7 @@ classes: slots: - is_or_was_acquired_through - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_label - is_or_was_categorized_as - custodial_history @@ -86,15 +66,13 @@ classes: - part_of_custodian_collection - has_or_had_provenance - record_set_type - - specificity_annotation - - is_or_was_categorized_as - has_or_had_score - has_or_had_content - temporal_extent slot_usage: - has_or_had_identifier: - range: uriorcurie - inlined: true + identified_by: +# range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type required: true identifier: true is_or_was_instantiated_by: @@ -115,17 +93,17 @@ classes: - value: has_or_had_label: Records of the Dutch East India Company (VOC) has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: false multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: description_text: The VOC archives comprise the administrative records of the Dutch East India Company from its founding in 1602 until its dissolution in 1799. The fonds includes correspondence, resolutions, journals, accounts, ship's logs, and maps documenting trade relations across Asia. description_type: collection_description record_set_type: - range: uriorcurie +# range: string # uriorcurie examples: - value: rico:Fonds has_or_had_quantity: @@ -133,9 +111,9 @@ classes: examples: - value: 125 has_or_had_content: - range: string +# range: string multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: has_or_had_label: VOC Trade Records @@ -143,7 +121,7 @@ classes: begin_of_the_begin: '1602-01-01' end_of_the_end: '1799-12-31' is_or_was_categorized_as: - range: uriorcurie +# range: string # uriorcurie multivalued: true required: true examples: @@ -158,7 +136,7 @@ classes: - description_text: The VOC archives were transferred to the Dutch state upon the company's dissolution in 1799. They were initially held by the Ministry of Colonies, then transferred to the Algemeen Rijksarchief (now Nationaal Archief) in 1856. description_type: provenance_statement custodial_history: - range: string +# range: string multivalued: true examples: - value: @@ -179,7 +157,7 @@ classes: temporal_extent: begin_of_the_begin: '1856-01-01' has_or_had_policy: - range: string +# range: string examples: - value: https://nde.nl/ontology/hc/access-policy/open-access is_or_was_sub_collection_of: @@ -194,7 +172,7 @@ classes: - value: - https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring part_of_custodian_collection: - range: CustodianCollection +# range: string # CustodianCollection required: true examples: - value: https://nde.nl/ontology/hc/custodian-collection/nationaal-archief @@ -222,7 +200,7 @@ classes: - http://www.cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E78 examples: - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/collection/nationaal-archief-voc-fonds has_or_had_label: has_or_had_label: Records of the Dutch East India Company (VOC) diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionContent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionContent.yaml index 9c5f956896..05cdc710fb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionContent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionContent.yaml @@ -15,10 +15,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_type -- ./CollectionContentType -- ./CollectionContentTypes + - linkml:types + - ../slots/has_or_had_type classes: CollectionContent: class_uri: hc:CollectionContent @@ -35,9 +33,9 @@ classes: - has_or_had_type slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type exact_mappings: - rico:RecordResource close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionContentType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionContentType.yaml index 691dca0e61..a12ad61bdc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionContentType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionContentType.yaml @@ -8,7 +8,7 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types + - linkml:types classes: CollectionContentType: class_uri: hc:CollectionContentType @@ -48,7 +48,7 @@ classes: ' abstract: true - exact_mappings: + close_mappings: - dcterms:type annotations: specificity_score: '0.50' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionContentTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionContentTypes.yaml index d03096ba0c..f3083c5e6a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionContentTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionContentTypes.yaml @@ -8,8 +8,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ./CollectionContentType + - ./CollectionContentType + - linkml:types classes: ArchivalCollectionContent: is_a: CollectionContentType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionDiscoveryScore.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionDiscoveryScore.yaml index 2b24000bcb..1829435505 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionDiscoveryScore.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionDiscoveryScore.yaml @@ -8,14 +8,9 @@ prefixes: prov: http://www.w3.org/ns/prov# schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -default_range: string + - linkml:types + - ../slots/has_or_had_score +# default_range: string classes: CollectionDiscoveryScore: class_uri: sosa:Observation @@ -38,7 +33,6 @@ classes: - schema:Rating slots: - has_or_had_score - - specificity_annotation comments: - Created per slot_fixes.yaml revision for collection_discovery_score migration - Replaces primitive float with structured observation diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionEvent.yaml index 43f0e4adbc..4a70169547 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionEvent.yaml @@ -10,19 +10,17 @@ prefixes: dwc: http://rs.tdwg.org/dwc/terms/ prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_note -- ../slots/has_or_had_place -- ../slots/has_or_had_provenance -- ../slots/is_or_was_acquired_by -- ../slots/temporal_extent -- ./Agent -- ./CustodianPlace -- ./Place -- ./TimeSpan -- ./ProvenanceBlock + - linkml:types + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_note + - ../slots/has_or_had_place + - ../slots/has_or_had_provenance + - ../slots/is_or_was_acquired_by + - ../slots/temporal_extent + - ../slots/field_number + - ../slots/sampling_protocol + - ../slots/habitat_description default_prefix: hc classes: CollectionEvent: @@ -44,40 +42,14 @@ classes: - has_or_had_note - temporal_extent - is_or_was_acquired_by - - has_or_had_identifier - annotations: - specificity_score: 0.1 - specificity_rationale: Generic utility class/slot created during migration - custodian_types: "['*']" - attributes: - has_or_had_identifier: - description: Unique identifier for this collection event. MIGRATED from event_id (Rule 53, 2026-01-26). - range: uriorcurie - identifier: true - slot_uri: dcterms:identifier - field_number: - description: Collector's field number or identifier. Maps to dwc:fieldNumber. - range: string - slot_uri: dwc:fieldNumber - examples: - - value: ARW-1234 - - value: CD-HMS Beagle-567 - sampling_protocol: - description: Method used to collect the specimen. Maps to dwc:samplingProtocol. - range: string - slot_uri: dwc:samplingProtocol - examples: - - value: UV light trap - - value: Mist net - - value: Hand collection - habitat_description: - description: Description of habitat where specimen was collected. Maps to dwc:habitat. - range: string - slot_uri: dwc:habitat - examples: - - value: Tropical rainforest, understory - - value: Coral reef, depth 15m + - identified_by + - field_number + - sampling_protocol + - habitat_description slot_usage: + identified_by: + identifier: true + description: Unique identifier for this collection event. MIGRATED from event_id (Rule 53, 2026-01-26). has_or_had_place: range: CustodianPlace inlined: true @@ -126,7 +98,7 @@ classes: template_specificity: '{"museum_search": 0.75, "collection_discovery": 0.8, "general_heritage": 0.55}' examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/event/dodo-collection-1662 + identified_by: https://nde.nl/ontology/hc/event/dodo-collection-1662 has_or_had_place: place_name: Mauritius country: MU @@ -138,7 +110,7 @@ classes: is_or_was_acquired_by: - agent_name: Unknown Dutch sailor - value: - has_or_had_identifier: https://nde.nl/ontology/hc/event/wallace-java-1234 + identified_by: https://nde.nl/ontology/hc/event/wallace-java-1234 has_or_had_place: place_name: Mt. Gede region: West Java @@ -149,4 +121,4 @@ classes: begin_of_the_begin: '1854-06-01' end_of_the_end: '1854-06-30' is_or_was_acquired_by: - - agent_name: Alfred Russel Wallace \ No newline at end of file + - agent_name: Alfred Russel Wallace diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionManagementSystem.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionManagementSystem.yaml index 67d8bc7c8a..45b5657f3a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionManagementSystem.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionManagementSystem.yaml @@ -2,49 +2,27 @@ id: https://nde.nl/ontology/hc/class/CollectionManagementSystem name: collection_management_system_class title: CollectionManagementSystem Class imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/has_or_had_standard -- ../slots/has_or_had_type -- ../slots/has_or_had_url -- ../slots/has_or_had_version -- ../slots/is_or_was_available -- ../slots/is_or_was_deployed_at -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/is_or_was_used_by -- ../slots/license -- ../slots/linked_data_export -- ../slots/manages_collection -- ../slots/open_source -- ../slots/powers_platform -- ../slots/refers_to_custodian -- ../slots/repository_url -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./AvailabilityStatus -- ./CMSType -- ./CMSTypes -- ./Custodian -- ./CustodianCollection -- ./CustodianObservation -- ./DeploymentEvent -- ./DigitalPlatform -- ./Identifier -- ./Label -- ./MetadataStandard -- ./MetadataStandardType -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./URL -- ./Version + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/has_or_had_standard + - ../slots/has_or_had_type + - ../slots/has_or_had_url + - ../slots/has_or_had_version + - ../slots/is_or_was_available + - ../slots/is_or_was_deployed_at + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/is_or_was_used_by + - ../slots/license + - ../slots/linked_data_export + - ../slots/manages_collection + - ../slots/open_source + - ../slots/powers_platform + - ../slots/refers_to_custodian + - ../slots/repository_url + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -78,8 +56,7 @@ classes: - rico:Activity slots: - is_or_was_available - - has_or_had_type - - has_or_had_identifier + - identified_by - has_or_had_version - has_or_had_type - is_or_was_deployed_at @@ -90,7 +67,6 @@ classes: - powers_platform - refers_to_custodian - repository_url - - specificity_annotation - has_or_had_standard - has_or_had_score - temporal_extent @@ -100,9 +76,9 @@ classes: - is_or_was_derived_from - is_or_was_generated_by slot_usage: - has_or_had_identifier: - range: uriorcurie - inlined: true + identified_by: +# range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type required: true identifier: true examples: @@ -133,7 +109,7 @@ classes: - value: true - value: false license: - range: string +# range: string examples: - value: GPL-3.0 - value: Proprietary @@ -157,7 +133,7 @@ classes: has_or_had_type: vendor_name has_or_had_url: range: uri - inlined: true + inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: @@ -173,9 +149,9 @@ classes: - value: https://github.com/collectiveaccess/providence - value: https://github.com/archivesspace/archivesspace has_or_had_standard: - range: string +# range: string multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: standard_uri: http://purl.org/dc/elements/1.1/ @@ -251,7 +227,7 @@ classes: - http://usefulinc.com/ns/doap#Project examples: - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/cms/rijksmuseum-adlib has_or_had_version: has_or_had_type: MuseumCMS @@ -287,7 +263,7 @@ classes: has_or_had_description: has_or_had_text: Initial deployment of Adlib CMS at Rijksmuseum - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/cms/example-museum-collectiveaccess has_or_had_version: has_or_had_type: MuseumCMS @@ -314,7 +290,7 @@ classes: is_or_was_available: true refers_to_custodian: https://nde.nl/ontology/hc/example-museum - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/cms/nationaal-archief-mais has_or_had_type: ArchiveCMS open_source: false diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionScope.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionScope.yaml index 7d4dc7e161..c396887637 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionScope.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionScope.yaml @@ -8,10 +8,9 @@ prefixes: schema: http://schema.org/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_type -- ./Scope -default_range: string + - linkml:types + - ../slots/has_or_had_type +# default_range: string default_prefix: hc classes: CollectionScope: @@ -37,8 +36,9 @@ classes: - Specialization for heritage collection domain' class_uri: dct:Coverage exact_mappings: - - dct:coverage + - dct:Coverage close_mappings: + - dct:coverage - schema:about - rico:hasContentOfType slots: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionType.yaml index 85086db861..5a1ccd0a41 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CollectionType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CollectionType.yaml @@ -11,36 +11,23 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_domain -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_equivalent_to -- ../slots/record_equivalent -- ../slots/specificity_annotation -- ./Description -- ./Domain -- ./DomainType -- ./DomainTypes -- ./Hypernym -- ./Identifier -- ./Label -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./CollectionType + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_domain + - ../slots/has_or_had_hypernym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_equivalent_to + - ../slots/record_equivalent classes: CollectionType: class_uri: rico:RecordSetType description: "Classification type for specific Collection instances.\n\nProvides semantic classification distinguishing different kinds of heritage collections:\n- Archival record set types (fonds, series, file, item)\n- Library collection types (special collection, personal papers)\n- Museum collection types (named collection, bequest)\n\n1. **RiC-O (Records in Contexts)**:\n - `rico:RecordSetType` - \"A record set type categorizes record sets according\n to the way they were created, assembled, or used.\"\n - Standard values: Fonds, Series, File, Collection, Item\n\n2. **BIBFRAME**:\n - bf:Collection for library special collections\n - bf:Archival for archival materials\n\n3. **SKOS**:\n - skos:Concept for classification term\n - Hierarchical relationships via skos:broader/narrower\n\n**COLLECTION TYPE TAXONOMY**:\n\n```\nCollectionType (root)\n \u2502\n \u251C\u2500\u2500 ArchivalRecordSetType\n \u2502 \u251C\u2500\u2500 FONDS (Q1643722) - Provenance-based archival\ \ unit\n \u2502 \u251C\u2500\u2500 SERIES - Group within fonds\n \u2502 \u251C\u2500\u2500 SUB_SERIES - Subdivision of series\n \u2502 \u251C\u2500\u2500 FILE - Individual folder/dossier\n \u2502 \u2514\u2500\u2500 ITEM - Single document\n \u2502\n \u251C\u2500\u2500 LibraryCollectionType\n \u2502 \u251C\u2500\u2500 SPECIAL_COLLECTION - Named special collection\n \u2502 \u251C\u2500\u2500 PERSONAL_PAPERS - Papers of an individual\n \u2502 \u251C\u2500\u2500 INSTITUTIONAL_RECORDS - Organizational records\n \u2502 \u2514\u2500\u2500 REFERENCE_COLLECTION - Reference materials\n \u2502\n \u251C\u2500\u2500 MuseumCollectionType\n \u2502 \u251C\u2500\u2500 NAMED_COLLECTION - Named collection (donor, subject)\n \u2502 \u251C\u2500\u2500 STUDY_COLLECTION - Research/study materials\n \u2502 \u251C\u2500\u2500 PERMANENT_COLLECTION - Core permanent holdings\n \u2502 \u2514\u2500\u2500 LOAN_COLLECTION - Long-term loans\n \u2502\n\ - \ \u2514\u2500\u2500 AssembledCollectionType\n \u251C\u2500\u2500 ARTIFICIAL_COLLECTION - Non-provenance assembled\n \u251C\u2500\u2500 THEMATIC_COLLECTION - Subject-based grouping\n \u2514\u2500\u2500 REFERENCE_COLLECTION - Reference aggregation\n```\n\n**RICO RECORD SET TYPE ALIGNMENT**:\n\n| CollectionType | RiC-O Type | Description |\n|----------------|------------|-------------|\n| FONDS | rico:Fonds | Provenance-based archival unit |\n| SERIES | rico:Series | Subdivision of fonds |\n| FILE | rico:File | Individual file/dossier |\n| ITEM | rico:Item | Single record |\n| ARTIFICIAL_COLLECTION | rico:Collection | Non-provenance assemblage |\n\n**USE CASES**:\n\n1. **Archival Classification**:\n ```yaml\n CollectionType:\n has_or_had_identifier: \"hc:collection-type/fonds\"\n type_name: \"Fonds\"\n record_equivalent: \"rico:Fonds\"\n description: \"Provenance-based archival unit\"\n ```\n\n2. **Library Special Collection**:\n ```yaml\n CollectionType:\n\ - \ has_or_had_identifier: \"hc:collection-type/special-collection\"\n type_name: \"Special Collection\"\n # BIBFRAME mapping at class level via close_mappings: [bf:CollectionType]\n description: \"Named library special collection\"\n ```\n\n3. **Museum Named Collection**:\n ```yaml\n CollectionType:\n has_or_had_identifier: \"hc:collection-type/named-collection\"\n type_name: \"Named Collection\"\n description: \"Collection named for donor or subject\"\n ```\n" + \ \u2514\u2500\u2500 AssembledCollectionType\n \u251C\u2500\u2500 ARTIFICIAL_COLLECTION - Non-provenance assembled\n \u251C\u2500\u2500 THEMATIC_COLLECTION - Subject-based grouping\n \u2514\u2500\u2500 REFERENCE_COLLECTION - Reference aggregation\n```\n\n**RICO RECORD SET TYPE ALIGNMENT**:\n\n| CollectionType | RiC-O Type | Description |\n|----------------|------------|-------------|\n| FONDS | rico:Fonds | Provenance-based archival unit |\n| SERIES | rico:Series | Subdivision of fonds |\n| FILE | rico:File | Individual file/dossier |\n| ITEM | rico:Item | Single record |\n| ARTIFICIAL_COLLECTION | rico:Collection | Non-provenance assemblage |\n\n**USE CASES**:\n\n1. **Archival Classification**:\n ```yaml\n CollectionType:\n identified_by: \"hc:collection-type/fonds\"\n type_name: \"Fonds\"\n record_equivalent: \"rico:Fonds\"\n description: \"Provenance-based archival unit\"\n ```\n\n2. **Library Special Collection**:\n ```yaml\n CollectionType:\n\ + \ identified_by: \"hc:collection-type/special-collection\"\n type_name: \"Special Collection\"\n # BIBFRAME mapping at class level via close_mappings: [bf:CollectionType]\n description: \"Named library special collection\"\n ```\n\n3. **Museum Named Collection**:\n ```yaml\n CollectionType:\n identified_by: \"hc:collection-type/named-collection\"\n type_name: \"Named Collection\"\n description: \"Collection named for donor or subject\"\n ```\n" exact_mappings: - rico:RecordSetType - skos:Concept @@ -50,26 +37,26 @@ classes: slots: - has_or_had_hypernym - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_type - has_or_had_domain - record_equivalent - - specificity_annotation - has_or_had_score - is_or_was_equivalent_to slot_usage: - has_or_had_identifier: - range: uriorcurie - inlined: true + identified_by: +# range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type required: true identifier: true examples: - value: identifier_value: https://nde.nl/ontology/hc/collection-type/fonds has_or_had_label: - range: Label - inlined: true +# range: string # uriorcurie + # range: Label + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: @@ -79,21 +66,21 @@ classes: - value: has_or_had_label: Named Collection has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: description_text: A fonds is a group of documents of any nature brought together by virtue of being accumulated by the same creator in the exercise of their activities and functions. description_type: collection_type_description record_equivalent: - range: uriorcurie +# range: string # uriorcurie examples: - value: rico:Fonds - value: rico:Series - value: rico:Collection is_or_was_equivalent_to: - range: string +# range: string pattern: ^Q[0-9]+$ examples: - value: Q1643722 @@ -101,16 +88,18 @@ classes: - value: Q185583 description: 'Wikidata equivalent: archive collection' has_or_had_hypernym: - range: Hypernym - inlined: true +# range: string # uriorcurie + # range: Hypernym + inlined: false # Fixed invalid inline for primitive type examples: - value: hypernym_uri: https://nde.nl/ontology/hc/collection-type/archival-record-set-type has_or_had_label: - label_text: Archival Record Set Type has_or_had_domain: - range: Domain - inlined: true +# range: string # uriorcurie + # range: Domain + inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: @@ -130,7 +119,7 @@ classes: - https://www.wikidata.org/wiki/Q1643722 examples: - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/collection-type/fonds has_or_had_label: has_or_had_label: Fonds @@ -144,7 +133,7 @@ classes: - https://nde.nl/ontology/hc/collection-type/series - https://nde.nl/ontology/hc/collection-type/sub-fonds - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/collection-type/special-collection has_or_had_label: has_or_had_label: Special Collection diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ColonialStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ColonialStatus.yaml index 9f366278a6..af331d4d2a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ColonialStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ColonialStatus.yaml @@ -8,12 +8,11 @@ prefixes: dcterms: http://purl.org/dc/terms/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/temporal_extent default_prefix: hc classes: ColonialStatus: @@ -72,19 +71,18 @@ classes: - Modern-day geographic equivalent ' - exact_mappings: - - dcterms:spatial close_mappings: + - dcterms:spatial - schema:containedInPlace related_mappings: - skos:Concept slots: - has_or_had_label - - has_or_had_identifier + - identified_by - temporal_extent slot_usage: has_or_had_label: - range: string +# range: string examples: - value: Dutch East Indies (1602-1949) temporal_extent: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ComarcalArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ComarcalArchive.yaml index 378e3196e2..2a02d5b0e3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ComarcalArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ComarcalArchive.yaml @@ -4,22 +4,11 @@ title: Comarcal Archive Type (Spain/Catalonia) prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./ComarcalArchiveRecordSetType -- ./ComarcalArchiveRecordSetTypes -- ./DualClassLink -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: ComarcalArchive: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ComarcalArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ComarcalArchiveRecordSetType.yaml index 1c1ed81ff3..a181ffc1db 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ComarcalArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ComarcalArchiveRecordSetType.yaml @@ -4,14 +4,10 @@ title: ComarcalArchive Record Set Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: ComarcalArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ComarcalArchive custodians. @@ -20,7 +16,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ComarcalArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ComarcalArchiveRecordSetTypes.yaml index 631473c54c..0daccb8bd1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ComarcalArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ComarcalArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ComarcalArchive -- ./ComarcalArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./ComarcalArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: ComarcalAdministrationFonds: is_a: ComarcalArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Comarca (county) administrative records\ \ (Spain).\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType\ \ following the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept ComarcalHistoryCollection: is_a: ComarcalArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Regional historical documentation.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ComarcalArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Comment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Comment.yaml index 8986a3ad4c..c4f4846602 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Comment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Comment.yaml @@ -7,11 +7,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_author -- ../slots/has_or_had_content -- ./Author -- ./Content + - linkml:types + - ../slots/has_or_had_author + - ../slots/has_or_had_content classes: Comment: class_uri: schema:Comment @@ -34,8 +32,8 @@ classes: - has_or_had_author slot_usage: has_or_had_content: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: @@ -49,7 +47,7 @@ classes: has_or_had_name: Visitor123 - value: has_or_had_name: MuseumFan2024 - has_or_had_identifier: https://youtube.com/channel/UC123 + identified_by: https://youtube.com/channel/UC123 exact_mappings: - schema:Comment annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CommentReply.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CommentReply.yaml index cbe7e626b1..e083d50699 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CommentReply.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CommentReply.yaml @@ -8,14 +8,11 @@ prefixes: sioc: http://rdfs.org/sioc/ns# as: https://www.w3.org/ns/activitystreams# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_quantity -- ../slots/has_or_had_unit -- ../slots/temporal_extent -- ./Quantity -- ./TimeSpan -- ./Unit + - linkml:types + - ../metadata + - ../slots/has_or_had_quantity + - ../slots/has_or_had_unit + - ../slots/temporal_extent default_prefix: hc classes: CommentReply: @@ -52,7 +49,7 @@ classes: slot_usage: has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -60,8 +57,8 @@ classes: has_or_had_unit: unit_label: replies has_or_had_unit: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CommercialCustodianTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CommercialCustodianTypes.yaml index 8aaac4d459..00ebedae7e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CommercialCustodianTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CommercialCustodianTypes.yaml @@ -8,11 +8,11 @@ prefixes: schema: http://schema.org/ wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../enums/CommercialCustodianTypeEnum -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../enums/CommercialCustodianTypeEnum + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label default_prefix: hc classes: CommercialCustodianTypes: @@ -78,12 +78,12 @@ classes: - skos:ConceptScheme slots: - has_or_had_label - - has_or_had_identifier + - identified_by slot_usage: has_or_had_label: examples: - value: Auction Houses and Art Dealers - has_or_had_identifier: + identified_by: examples: - value: null examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CommercialOrganizationType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CommercialOrganizationType.yaml index 7eaa2967b8..0a2a413553 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CommercialOrganizationType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CommercialOrganizationType.yaml @@ -7,29 +7,16 @@ description: 'Specialized CustodianType for for-profit commercial organizations Coverage: Corresponds to ''C'' (CORPORATION) in GLAMORCUBESFIXPHDNT taxonomy. ' imports: -- linkml:types -- ../enums/CommercialCustodianTypeEnum -- ../slots/collects_or_collected -- ../slots/corporate_integration -- ../slots/has_or_had_model -- ../slots/has_or_had_rationale -- ../slots/has_or_had_score -- ../slots/has_or_had_service -- ../slots/has_or_had_type -- ../slots/includes_or_included -- ../slots/specificity_annotation -- ./BusinessModel -- ./CommercialCustodianTypes -- ./CustodianType -- ./Rationale -- ./Service -- ./ServiceType -- ./ServiceTypes -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./Collection + - linkml:types + - ../enums/CommercialCustodianTypeEnum + - ../slots/collect + - ../slots/corporate_integration + - ../slots/has_or_had_model + - ../slots/has_or_had_rationale + - ../slots/has_or_had_score + - ../slots/has_or_had_service + - ../slots/has_or_had_type + - ../slots/includes_or_included prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -161,18 +148,17 @@ classes: - schema:TouristAttraction slots: - has_or_had_model - - collects_or_collected + - collect - has_or_had_rationale - has_or_had_service - includes_or_included - corporate_integration - has_or_had_type - - specificity_annotation - has_or_had_score slot_usage: has_or_had_model: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: @@ -184,10 +170,11 @@ classes: - value: has_or_had_label: Brand heritage center has_or_had_description: Event rental, Hospitality, Tourism revenue - collects_or_collected: - range: Collection - inlined: true - inlined_as_list: true + collect: +# range: string # uriorcurie + # range: Collection + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -206,8 +193,8 @@ classes: rationale_text: Corporate culture, Brand storytelling, Innovation rationale_category: corporate_culture has_or_had_rationale: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: @@ -217,9 +204,10 @@ classes: rationale_text: Legal compliance, IP documentation rationale_category: compliance includes_or_included: - range: CommercialCustodianTypes - inlined: true - inlined_as_list: true +# range: string # uriorcurie + # range: CommercialCustodianTypes + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -228,7 +216,7 @@ classes: wikidata_qid: wd:Q17537576 - value: corporate_integration: - range: string +# range: string required: true examples: - value: Fully owned by Heineken N.V., Marketing dept, Brand @@ -239,8 +227,8 @@ classes: - value: Vehicle prototypes, Engineering drawings, Patents - value: Perfume formulas, Bottle designs, Fashion sketches has_or_had_service: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type multivalued: true required: false examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CommissionRate.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CommissionRate.yaml index ca7660fc9a..7690752384 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CommissionRate.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CommissionRate.yaml @@ -6,10 +6,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_percentage -- ./Percentage + - linkml:types + - ../metadata + - ../slots/has_or_had_percentage default_prefix: hc classes: CommissionRate: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CommunityArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CommunityArchive.yaml index 60461780df..e3d3cec05e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CommunityArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CommunityArchive.yaml @@ -4,22 +4,11 @@ title: Community Archive Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./CommunityArchiveRecordSetType -- ./CommunityArchiveRecordSetTypes -- ./DualClassLink -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: CommunityArchive: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CommunityArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CommunityArchiveRecordSetType.yaml index 588e45377b..d84ccf1549 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CommunityArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CommunityArchiveRecordSetType.yaml @@ -4,14 +4,10 @@ title: CommunityArchive Record Set Type prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: CommunityArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by CommunityArchive custodians. @@ -20,7 +16,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CommunityArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CommunityArchiveRecordSetTypes.yaml index d6d4c34c6b..dcad5f0a3e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CommunityArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CommunityArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./CommunityArchive -- ./CommunityArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./CommunityArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: CommunityOrganizationFonds: is_a: CommunityArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Community organization records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept OralHistoryCollection: is_a: CommunityArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Community oral histories.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by CommunityArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept LocalEventDocumentation: is_a: CommunityArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Local event documentation.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by CommunityArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CompanyArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CompanyArchiveRecordSetType.yaml index 40f09019ef..650913ded0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CompanyArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CompanyArchiveRecordSetType.yaml @@ -8,14 +8,11 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to classes: CompanyArchiveRecordSetType: abstract: true @@ -33,7 +30,6 @@ classes: - CorporatePublicationsSeries slots: - has_or_had_type - - specificity_annotation - has_or_had_score slot_usage: has_or_had_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CompanyArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CompanyArchiveRecordSetTypes.yaml index 25c07d5786..4bd5f7c597 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CompanyArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CompanyArchiveRecordSetTypes.yaml @@ -12,24 +12,18 @@ prefixes: org: http://www.w3.org/ns/org# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/legal_note -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/privacy_note -- ../slots/record_note -- ../slots/record_set_type -- ../slots/scope_exclude -- ../slots/scope_include -- ../slots/specificity_annotation -- ./CompanyArchiveRecordSetType -- ./CompanyArchives -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./CompanyArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/legal_note + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/privacy_note + - ../slots/record_note + - ../slots/record_set_type + - ../slots/scope_exclude + - ../slots/scope_include classes: CorporateGovernanceFonds: is_a: CompanyArchiveRecordSetType @@ -71,11 +65,10 @@ classes: - articles of incorporation - supervisory board - raad van commissarissen - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds - broad_mappings: - wd:Q1643722 - rico:RecordSetType - skos:Concept @@ -89,7 +82,6 @@ classes: - CouncilGovernanceFonds slots: - has_or_had_type - - specificity_annotation - has_or_had_score - legal_note - organizational_principle @@ -164,12 +156,11 @@ classes: - engineering records - industrial design - laboratory notebooks - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - rico-rst:Fonds - broad_mappings: - wd:Q9388534 - rico:RecordSetType - skos:Concept @@ -184,7 +175,6 @@ classes: May contain trade secrets subject to access restrictions. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -247,11 +237,10 @@ classes: - brand heritage - promotional materials - trade fair - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q9388534 - rico:RecordSetType - skos:Concept @@ -268,7 +257,6 @@ classes: trademark protection. Historical campaigns often reused for nostalgic marketing. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -336,11 +324,10 @@ classes: - training records - performance evaluations - works council - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series - broad_mappings: - wd:Q185583 - rico:RecordSetType - skos:Concept @@ -353,7 +340,6 @@ classes: - StudentRecordSeries slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -419,11 +405,10 @@ classes: - house magazines - commemorative publications - corporate communications - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series - broad_mappings: - wd:Q5637226 - rico:RecordSetType - skos:Concept @@ -441,7 +426,6 @@ classes: description. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CompanyArchives.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CompanyArchives.yaml index d8adc07275..020ab84eb0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CompanyArchives.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CompanyArchives.yaml @@ -7,21 +7,13 @@ prefixes: org: http://www.w3.org/ns/org# rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_branch -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_archive_department_of -- ../slots/parent_corporation -- ./ArchiveOrganizationType -- ./CollectionType -- ./CompanyArchiveRecordSetTypes -- ./CompanyArchivesRecordSetType -- ./Department -- ./OrganizationBranch -- ./Scope -- ./WikiDataIdentifier + - linkml:types + - ../slots/has_or_had_branch + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_archive_department_of + - ../slots/parent_corporation classes: CompanyArchives: is_a: ArchiveOrganizationType @@ -33,10 +25,10 @@ classes: - parent_corporation - is_or_was_archive_department_of - has_or_had_branch - - has_or_had_identifier + - identified_by - hold_or_held_record_set_type slot_usage: - has_or_had_identifier: null + identified_by: null hold_or_held_record_set_type: equals_expression: '["hc:CorporateGovernanceFonds", "hc:ProductDevelopmentCollection", "hc:MarketingArchiveCollection", "hc:PersonnelRecordsSeries", "hc:CorporatePublicationsSeries"] diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CompanyArchivesRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CompanyArchivesRecordSetType.yaml index e452174643..19a9ee9220 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CompanyArchivesRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CompanyArchivesRecordSetType.yaml @@ -7,10 +7,8 @@ prefixes: org: http://www.w3.org/ns/org# rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_scope -- ./CollectionType -- ./Scope + - linkml:types + - ../slots/has_or_had_scope classes: CompanyArchivesRecordSetType: is_a: CollectionType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ComplianceStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ComplianceStatus.yaml index e98ae40b97..9131c3a68f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ComplianceStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ComplianceStatus.yaml @@ -7,11 +7,11 @@ prefixes: dcterms: http://purl.org/dc/terms/ schema: http://schema.org/ imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type default_prefix: hc classes: ComplianceStatus: @@ -40,7 +40,7 @@ classes: - remediation_required slot_usage: has_or_had_type: - range: string +# range: string required: true examples: - value: COMPLIANT @@ -48,13 +48,13 @@ classes: - value: PARTIALLY_COMPLIANT - value: NOT_ASSESSED has_or_had_label: - range: string +# range: string required: false examples: - value: ISO 11799 Compliant - value: Requires Temperature Control Upgrade has_or_had_description: - range: string +# range: string required: false exact_mappings: - hc:ComplianceStatus diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Component.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Component.yaml index a9d3d8de30..fe1a6543b5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Component.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Component.yaml @@ -9,12 +9,11 @@ prefixes: dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ./ComponentType + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type default_prefix: hc classes: @@ -66,7 +65,7 @@ classes: - value: Route - value: Locality has_or_had_label: - range: string +# range: string required: false examples: - value: "1" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ComponentType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ComponentType.yaml index 84380180b9..e5b2948a3d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ComponentType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ComponentType.yaml @@ -10,10 +10,10 @@ prefixes: locn: http://www.w3.org/ns/locn# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: @@ -47,13 +47,13 @@ classes: slot_usage: has_or_had_label: - range: string +# range: string required: true examples: - value: "Street Number" - value: "Locality" has_or_had_description: - range: string +# range: string required: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ComponentTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ComponentTypes.yaml index 0d9ebb80f4..c22af37c6f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ComponentTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ComponentTypes.yaml @@ -8,14 +8,14 @@ prefixes: locn: http://www.w3.org/ns/locn# schema: http://schema.org/ imports: -- linkml:types -- ../metadata -- ./ComponentType + - ./ComponentType + - linkml:types + - ../metadata default_prefix: hc classes: - StreetNumber: + StreetNumberComponent: is_a: ComponentType - class_uri: locn:locatorDesignator + class_uri: hc:StreetNumber description: 'House or building number component. @@ -25,7 +25,7 @@ classes: **Examples**: "1", "221B", "100-102" ' - exact_mappings: + close_mappings: - locn:locatorDesignator annotations: specificity_score: 0.45 @@ -33,9 +33,9 @@ classes: custodian_types: '[''*'']' broad_mappings: - skos:Concept - Route: + RouteComponent: is_a: ComponentType - class_uri: locn:thoroughfare + class_uri: hc:Route description: "Street or road name component.\n\n**LOCN Alignment**: `locn:thoroughfare`\n\ \n**Examples**: \"Museumstraat\", \"Baker Street\", \"Avenue des Champs-\xC9\ lys\xE9es\"\n" @@ -46,9 +46,9 @@ classes: specificity_rationale: Address-specific component type. broad_mappings: - skos:Concept - Locality: + LocalityComponent: is_a: ComponentType - class_uri: locn:postName + class_uri: hc:Locality description: 'City, town, or village component. @@ -65,9 +65,9 @@ classes: specificity_rationale: Common geographic component type. broad_mappings: - skos:Concept - PostalCode: + PostalCodeComponent: is_a: ComponentType - class_uri: locn:postCode + class_uri: hc:PostalCode description: 'ZIP or postal code component. @@ -84,9 +84,9 @@ classes: specificity_rationale: Address-specific component type. broad_mappings: - skos:Concept - Subregion: + SubregionComponent: is_a: ComponentType - class_uri: locn:adminUnitL2 + class_uri: hc:Subregion description: 'County, district, or second-level administrative division. @@ -103,9 +103,9 @@ classes: specificity_rationale: Administrative geography component. broad_mappings: - skos:Concept - Region: + RegionComponent: is_a: ComponentType - class_uri: locn:adminUnitL1 + class_uri: hc:Region description: "State, province, or first-level administrative division.\n\n**LOCN\ \ Alignment**: `locn:adminUnitL1`\n\n**Examples**: \"Noord-Holland\", \"California\"\ , \"\xCEle-de-France\"\n" @@ -116,9 +116,9 @@ classes: specificity_rationale: Common geographic component type. broad_mappings: - skos:Concept - Country: + CountryComponent: is_a: ComponentType - class_uri: schema:Country + class_uri: hc:Country description: 'Country component. @@ -135,7 +135,7 @@ classes: specificity_rationale: Fundamental geographic component type. broad_mappings: - skos:Concept - Premise: + PremiseComponent: is_a: ComponentType class_uri: hc:Premise description: 'Building or complex name component. @@ -149,7 +149,7 @@ classes: specificity_rationale: Building-level component type. broad_mappings: - skos:Concept - Subpremise: + SubpremiseComponent: is_a: ComponentType class_uri: hc:Subpremise description: 'Unit, floor, or suite within a building. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ComprehensiveOverview.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ComprehensiveOverview.yaml index eb6b4e0a9d..185d7ecc2e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ComprehensiveOverview.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ComprehensiveOverview.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: ComprehensiveOverview: class_uri: schema:CreativeWork diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ComputerTerminal.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ComputerTerminal.yaml index 723a4134c3..14317e2d9a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ComputerTerminal.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ComputerTerminal.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: ComputerTerminal: class_uri: schema:Product diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Concatenation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Concatenation.yaml index 3043e8f06a..c85dd811a6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Concatenation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Concatenation.yaml @@ -7,9 +7,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: Concatenation: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Condition.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Condition.yaml index 10f521efec..6d4a2a521e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Condition.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Condition.yaml @@ -5,11 +5,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_type -- ./ConditionType -- ./Description + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_type classes: Condition: class_uri: schema:OfferItemCondition @@ -23,9 +21,9 @@ classes: - has_or_had_description slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie has_or_had_description: - range: string +# range: string examples: - value: description_text: Good physical condition with minor wear diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConditionPolicy.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConditionPolicy.yaml index 502c9f915c..f59b2a9221 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConditionPolicy.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConditionPolicy.yaml @@ -9,12 +9,9 @@ prefixes: dcterms: http://purl.org/dc/terms/ default_prefix: hc imports: -- linkml:types -- ../slots/is_or_was_approved_by -- ../slots/standards_compliance -- ./Approver -- ./Policy -- ./RequirementStatus + - linkml:types + - ../slots/is_or_was_approved_by + - ../slots/standards_compliance classes: ConditionPolicy: class_uri: hc:ConditionPolicy diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConditionState.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConditionState.yaml index 74fa5613a8..5c49b54903 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConditionState.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConditionState.yaml @@ -7,12 +7,9 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_type -- ./ConditionType -- ./ConditionTypes -- ./Description + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_type default_prefix: hc classes: ConditionState: @@ -36,12 +33,12 @@ classes: - has_or_had_description slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie examples: - value: GoodCondition - value: PoorCondition has_or_had_description: - range: string +# range: string examples: - value: description_text: Minor foxing on page margins, binding intact diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConditionType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConditionType.yaml index f7317d2ccf..cbcd7d9588 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConditionType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConditionType.yaml @@ -12,17 +12,17 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: ConditionType: class_uri: skos:Concept abstract: true description: "Abstract base class for condition type classification.\n\nCovers TWO distinct semantic domains:\n\n**1. Physical/Preservation Conditions**:\nCondition states for heritage objects (excellent, good, fair, poor, critical).\nMay include specialized categories for different material types.\n\n**2. Access/Use Conditions** (added 2026-01-22):\nRequirements or restrictions on accessing or using materials. Includes:\n- AccessCondition: Appointment requirements, reading room rules\n- UseCondition: Photography restrictions, handling requirements\n- ReproductionCondition: Permissions, fees, attribution requirements\n- LoanCondition: Insurance, environmental, courier requirements\n- DigitizationCondition: Quality standards, metadata requirements\n\nPer slot_fixes.yaml migration: `condition` \u2192 `poses_or_posed_condition` + Condition (Rule 53)\n" slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConditionTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConditionTypes.yaml index 2e4d303730..72122eb5c0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConditionTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConditionTypes.yaml @@ -4,8 +4,8 @@ prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ imports: -- linkml:types -- ./ConditionType + - ./ConditionType + - linkml:types classes: ExcellentCondition: is_a: ConditionType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConditionofAccess.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConditionofAccess.yaml index bf2e75adb3..c1a8859b67 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConditionofAccess.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConditionofAccess.yaml @@ -3,9 +3,9 @@ name: ConditionofAccess title: Condition of Access description: A structured condition of access. imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_name classes: ConditionofAccess: class_uri: rico:Rule diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Confidence.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Confidence.yaml index 0a577c75ec..718da3848d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Confidence.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Confidence.yaml @@ -9,8 +9,8 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: Confidence: class_uri: sosa:Result diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceLevel.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceLevel.yaml index b5bd97b5cb..82708ddc60 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceLevel.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceLevel.yaml @@ -7,9 +7,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ dqv: http://www.w3.org/ns/dqv# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_score + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_score default_prefix: hc classes: ConfidenceLevel: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceMeasure.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceMeasure.yaml index 98e8d9b618..0a2a4684de 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceMeasure.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceMeasure.yaml @@ -9,18 +9,13 @@ prefixes: oa: http://www.w3.org/ns/oa# rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_method -- ../slots/has_or_had_method # was: confidence_method -- ../slots/has_or_had_score -- ../slots/has_or_had_value -- ../slots/has_or_had_value # was: confidence_value -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/has_or_had_method + - ../slots/has_or_had_method # was: confidence_method + - ../slots/has_or_had_score + - ../slots/has_or_had_value + - ../slots/has_or_had_value # was: confidence_value classes: ConfidenceMeasure: class_uri: prov:Confidence @@ -51,7 +46,6 @@ classes: slots: - has_or_had_method - has_or_had_value - - specificity_annotation - has_or_had_score slot_usage: has_or_had_value: @@ -60,7 +54,7 @@ classes: maximum_value: 1.0 required: true has_or_had_method: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceMethod.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceMethod.yaml index d4bf1faf3f..09bce06f4f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceMethod.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceMethod.yaml @@ -7,10 +7,10 @@ prefixes: prov: http://www.w3.org/ns/prov# schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_type + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_type default_prefix: hc classes: ConfidenceMethod: @@ -31,22 +31,22 @@ classes: slots: - has_or_had_type - has_or_had_description - - has_or_had_identifier + - identified_by slot_usage: has_or_had_type: - range: string +# range: string required: true examples: - value: fuzzy_matching - value: ml_prediction - value: human_assessment has_or_had_description: - range: string +# range: string required: false examples: - value: Jaro-Winkler similarity with 0.7 threshold - has_or_had_identifier: - range: string + identified_by: +# range: string required: false examples: - value: rapidfuzz-2.15.1 @@ -60,11 +60,11 @@ classes: - value: has_or_had_type: fuzzy_matching has_or_had_description: Levenshtein distance with ratio normalization - has_or_had_identifier: rapidfuzz-levenshtein + identified_by: rapidfuzz-levenshtein - value: has_or_had_type: llm_classification has_or_had_description: GPT-4 based entity type classification - has_or_had_identifier: gpt-4-turbo-2024-04-09 + identified_by: gpt-4-turbo-2024-04-09 comments: - Created from slot_fixes.yaml migration (2026-01-19) - Documents confidence calculation methodology diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceScore.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceScore.yaml index 77636fd0b5..4e1e61c4dd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceScore.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceScore.yaml @@ -10,10 +10,10 @@ prefixes: schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_method -- ../slots/has_or_had_score + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_method + - ../slots/has_or_had_score default_prefix: hc classes: @@ -64,14 +64,14 @@ classes: - value: 0.50 - value: 0.10 has_or_had_method: - range: string +# range: string required: false examples: - value: "fuzzy_string_matching" - value: "xpath_extraction_validation" - value: "llm_classification" has_or_had_description: - range: string +# range: string required: false examples: - value: "High confidence - exact name match with verified ISIL code" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceThreshold.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceThreshold.yaml index e4d61e3db3..ab5636ab8f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceThreshold.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceThreshold.yaml @@ -6,9 +6,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ./Description + - linkml:types + - ../slots/has_or_had_description default_prefix: hc classes: ConfidenceThreshold: @@ -31,7 +30,7 @@ classes: - has_or_had_description slot_usage: has_or_had_description: - range: string +# range: string annotations: custodian_types: '["*"]' custodian_types_rationale: Threshold-based processing applies across heritage diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceValue.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceValue.yaml index 01f7b806a0..a90b253233 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceValue.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConfidenceValue.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: ConfidenceValue: class_uri: schema:StructuredValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Conflict.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Conflict.yaml index 59b620f839..d6da50aaa6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Conflict.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Conflict.yaml @@ -9,19 +9,13 @@ prefixes: prov: http://www.w3.org/ns/prov# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_provenance -- ../slots/has_or_had_type -- ../slots/is_or_was_based_on -- ../slots/temporal_extent -- ./ConflictStatus -- ./ConflictType -- ./ConflictTypes -- ./DocumentationSource -- ./Provenance -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_provenance + - ../slots/has_or_had_type + - ../slots/is_or_was_based_on + - ../slots/temporal_extent classes: Conflict: class_uri: crm:E5_Event @@ -61,7 +55,7 @@ classes: - has_or_had_provenance slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true has_or_had_label: examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConflictStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConflictStatus.yaml index 5a4c56a663..9f96ab5739 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConflictStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConflictStatus.yaml @@ -2,19 +2,13 @@ id: https://nde.nl/ontology/hc/class/ConflictStatus name: conflict_status_class title: Conflict Status Class imports: -- linkml:types -- ../enums/ConflictStatusEnum -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_score -- ../slots/is_rebuilding -- ../slots/reported_date -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../enums/ConflictStatusEnum + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_score + - ../slots/is_rebuilding + - ../slots/reported_date prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -63,7 +57,6 @@ classes: - https://github.com/nde-lab/glam/blob/main/frontend/src/components/map/CustodianTimeline.tsx - https://github.com/nde-lab/glam/blob/main/scripts/convert_palestinian_to_custodian.py slots: - - specificity_annotation - has_or_had_score - reported_date - is_rebuilding diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConflictType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConflictType.yaml index 5721b1051c..9be3be2db5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConflictType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConflictType.yaml @@ -10,7 +10,7 @@ prefixes: default_prefix: hc imports: -- linkml:types + - linkml:types classes: ConflictType: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConflictTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConflictTypes.yaml index 6a497ea20f..57217b3fe9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConflictTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConflictTypes.yaml @@ -7,8 +7,8 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ./ConflictType + - ./ConflictType + - linkml:types classes: ArmedConflict: is_a: ConflictType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Connection.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Connection.yaml index 7ac4272f26..6ce6300c8b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Connection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Connection.yaml @@ -13,9 +13,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: Connection: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionDegree.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionDegree.yaml index fb77ff17ce..4b45f615f0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionDegree.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionDegree.yaml @@ -10,11 +10,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_type -- ./ConnectionDegreeType -- ./ConnectionDegreeTypes + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_type classes: ConnectionDegree: class_uri: hc:ConnectionDegree @@ -53,7 +51,7 @@ classes: slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: FIRST diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionDegreeType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionDegreeType.yaml index 7571740e8c..1cbc6de0fe 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionDegreeType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionDegreeType.yaml @@ -14,9 +14,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: ConnectionDegreeType: class_uri: skos:Concept @@ -59,7 +59,7 @@ classes: Created as part of connection_degree migration per slot_fixes.yaml (Rule 53). ' - exact_mappings: + broad_mappings: - skos:Concept slots: - has_or_had_label diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionDegreeTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionDegreeTypes.yaml index eb083fc91f..02fa75b7c2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionDegreeTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionDegreeTypes.yaml @@ -8,8 +8,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ./ConnectionDegreeType + - ./ConnectionDegreeType + - linkml:types classes: FirstDegreeConnection: is_a: ConnectionDegreeType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionNetwork.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionNetwork.yaml index 2ee5855fca..ad2899b8f8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionNetwork.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionNetwork.yaml @@ -10,24 +10,14 @@ prefixes: dct: http://purl.org/dc/terms/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_member -- ../slots/has_or_had_score -- ../slots/network_analysis -- ../slots/note -- ../slots/source_metadata -- ../slots/specificity_annotation -- ./ConnectionSourceMetadata -- ./HeritageTypeCount -- ./NetworkAnalysis -- ./PersonConnection -- ./SocialNetworkMember -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -default_range: string + - linkml:types + - ../metadata + - ../slots/has_or_had_member + - ../slots/has_or_had_score + - ../slots/network_analysis + - ../slots/note + - ../slots/source_metadata +# default_range: string classes: ConnectionNetwork: class_uri: schema:ItemList @@ -75,7 +65,6 @@ classes: - has_or_had_member - network_analysis - source_metadata - - specificity_annotation - has_or_had_score slot_usage: source_metadata: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionSourceMetadata.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionSourceMetadata.yaml index a3f2273433..d37e8920e8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionSourceMetadata.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConnectionSourceMetadata.yaml @@ -15,23 +15,16 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/ScrapeMethodEnum -- ../slots/connections_extracted -- ../slots/has_or_had_label -- ../slots/has_or_had_profile -- ../slots/has_or_had_score -- ../slots/note -- ../slots/scrape_method -- ../slots/scraped_timestamp -- ../slots/source_url -- ../slots/specificity_annotation -- ./Label -- ./SocialMediaProfile -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/ScrapeMethodEnum + - ../slots/connections_extracted + - ../slots/has_or_had_label + - ../slots/has_or_had_profile + - ../slots/has_or_had_score + - ../slots/note + - ../slots/scrape_method + - ../slots/scraped_timestamp + - ../slots/source_url default_prefix: hc classes: ConnectionSourceMetadata: @@ -69,7 +62,6 @@ classes: - scrape_method - scraped_timestamp - source_url - - specificity_annotation - has_or_had_label - has_or_had_profile - has_or_had_score @@ -90,8 +82,8 @@ classes: examples: - value: alexandr-belov-bb547b46 has_or_had_label: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: "Label:\n label_value: \"Giovanna Fossati\"\n label_type: \"person_name\"\n" @@ -116,7 +108,7 @@ classes: examples: - value: 776 note: - range: string +# range: string examples: - value: Raw scrape in giovannafossati_connections_20251209T220000Z_note-max100p-1st2nd3th.md comments: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConservationLab.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConservationLab.yaml index ceded84159..d12d4c16c6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConservationLab.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConservationLab.yaml @@ -2,36 +2,20 @@ id: https://nde.nl/ontology/hc/class/conservation-lab name: conservation_lab_class title: ConservationLab Class imports: -- linkml:types -- ../classes/Quantity -- ../slots/accepts_or_accepted -- ../slots/conservation_specialization -- ../slots/has_or_had_description -- ../slots/has_or_had_equipment -- ../slots/has_or_had_equipment_type -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/is_accredited -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/safety_certification -- ../slots/specificity_annotation -- ./CustodianObservation -- ./Description -- ./Equipment -- ./EquipmentType -- ./EquipmentTypes -- ./ExternalWork -- ./Label -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./Quantity + - linkml:types + - ../slots/accept + - ../slots/conservation_specialization + - ../slots/has_or_had_description + - ../slots/has_or_had_equipment + - ../slots/has_or_had_equipment_type + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/is_accredited + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/safety_certification prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -47,7 +31,7 @@ classes: is_a: ReconstructedEntity class_uri: org:Site description: "Conservation or restoration laboratory of a heritage custodian.\n\n**DEFINITION**:\n\nA ConservationLab is a specialized facility where conservation professionals\nperform preventive conservation, remedial treatment, and restoration of\nheritage materials. These labs require specialized equipment, climate control,\nand safety features for working with collection objects.\n\n**GETTY AAT ALIGNMENT**:\n\n`aat:300263557` (conservation laboratories) - \"Laboratories where objects,\ndocuments, works of art, or specimens are examined, tested, and treated\nfor preservation or restoration.\"\n\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Primary Function | Staff |\n|------|------------------|-------|\n| **ConservationLab** | Object treatment/preservation | Conservators |\n| ResearchCenter | Academic research | Researchers |\n| Storage | Collection housing | Collections staff |\n| AdministrativeOffice | Back-office operations | Admin staff |\n\n**TYPICAL CHARACTERISTICS**:\n\ - \n- **Specialized equipment**: Microscopes, fume hoods, treatment tables\n- **Climate control**: Precise temperature/humidity for materials\n- **Safety features**: Ventilation, chemical storage, fire suppression\n- **Restricted access**: Conservation staff only (has_or_had_riskous materials)\n- **Documentation systems**: Treatment records, imaging equipment\n\n**CONSERVATION SPECIALIZATIONS**:\n\nLabs may specialize in specific material types:\n- Paper/book conservation (archives, libraries)\n- Paintings conservation (museums, galleries)\n- Textile conservation (costume, ethnographic collections)\n- Objects conservation (3D artifacts, sculpture)\n- Photographic conservation (film, prints, negatives)\n- Digital preservation (born-digital materials)\n\n**USE CASES**:\n\n1. **Museum Conservation Department**:\n ```yaml\n ConservationLab:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/rijksmuseum-conservation\"\n has_or_had_label:\n label_text: \"Rijksmuseum Conservation\ + \n- **Specialized equipment**: Microscopes, fume hoods, treatment tables\n- **Climate control**: Precise temperature/humidity for materials\n- **Safety features**: Ventilation, chemical storage, fire suppression\n- **Restricted access**: Conservation staff only (has_or_had_riskous materials)\n- **Documentation systems**: Treatment records, imaging equipment\n\n**CONSERVATION SPECIALIZATIONS**:\n\nLabs may specialize in specific material types:\n- Paper/book conservation (archives, libraries)\n- Paintings conservation (museums, galleries)\n- Textile conservation (costume, ethnographic collections)\n- Objects conservation (3D artifacts, sculpture)\n- Photographic conservation (film, prints, negatives)\n- Digital preservation (born-digital materials)\n\n**USE CASES**:\n\n1. **Museum Conservation Department**:\n ```yaml\n ConservationLab:\n identified_by: \"https://nde.nl/ontology/hc/aux/rijksmuseum-conservation\"\n has_or_had_label:\n label_text: \"Rijksmuseum Conservation\ \ Studio\"\n conservation_specialization:\n - \"Paintings\"\n - \"Works on paper\"\n - \"Furniture\"\n has_imaging_equipment: true\n is_accredited: true\n ```\n\n2. **Archive Paper Conservation**:\n ```yaml\n ConservationLab:\n has_or_had_label:\n label_text: \"Nationaal Archief Restauratie Atelier\"\n conservation_specialization:\n - \"Paper\"\n - \"Parchment\"\n - \"Seals\"\n has_deacidification_facility: true\n ```\n\n**CIDOC-CRM ALIGNMENT**:\n\nConservation activities map to:\n- `crm:E11_Modification` - Physical changes to objects\n- `crm:E14_Condition_Assessment` - Documentation of condition\n- `crm:E79_Part_Addition` / `crm:E80_Part_Removal` - Treatment actions\n" exact_mappings: - aat:300263557 @@ -60,29 +44,28 @@ classes: - crm:E14_Condition_Assessment - schema:ResearchOrganization slots: - - accepts_or_accepted + - accept - conservation_specialization - has_or_had_equipment - is_accredited - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - safety_certification - - specificity_annotation - has_or_had_quantity - has_or_had_score - is_or_was_derived_from - is_or_was_generated_by slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/rijksmuseum-conservation has_or_had_label: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: @@ -92,13 +75,13 @@ classes: - value: label_text: KB Preservation Laboratory has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: State-of-the-art conservation studio specializing in 17th-century Dutch paintings. Features advanced imaging suite for technical art history research. conservation_specialization: - range: string +# range: string multivalued: true examples: - value: Paintings @@ -120,7 +103,7 @@ classes: has_or_had_label: Suction table has_or_had_type: PaperConservationEquipment safety_certification: - range: string +# range: string multivalued: true examples: - value: ISO 45001 Occupational Health and Safety @@ -131,8 +114,8 @@ classes: - value: ICON - Institute of Conservation has_or_had_quantity: range: integer - inlined: true - accepts_or_accepted: + inlined: false # Fixed invalid inline for primitive type + accept: range: ExternalWork inlined: true multivalued: true @@ -157,7 +140,7 @@ classes: - https://icon.org.uk/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/rijksmuseum-conservation + identified_by: https://nde.nl/ontology/hc/aux/rijksmuseum-conservation has_or_had_label: label_text: Rijksmuseum Conservation Studio has_or_had_description: @@ -177,10 +160,10 @@ classes: accreditation_body: VeRes has_or_had_quantity: range: integer - inlined: true - accepts_or_accepted: [] + inlined: false # Fixed invalid inline for primitive type + accept: [] - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/na-restauratie + identified_by: https://nde.nl/ontology/hc/aux/na-restauratie has_or_had_label: label_text: Nationaal Archief Restauratie Atelier has_or_had_description: @@ -198,8 +181,8 @@ classes: has_fume_hoods: true has_or_had_quantity: range: integer - inlined: true - accepts_or_accepted: + inlined: false # Fixed invalid inline for primitive type + accept: - work_type: paper_conservation - work_type: seal_restoration annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConservationPlan.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConservationPlan.yaml index 3602b5d277..4c91ab585f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConservationPlan.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConservationPlan.yaml @@ -8,9 +8,9 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: ConservationPlan: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConservationRecord.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConservationRecord.yaml index 56e4577b36..24958a384b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConservationRecord.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConservationRecord.yaml @@ -10,55 +10,37 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# aat: http://vocab.getty.edu/aat/ imports: -- linkml:types -- ../enums/ConservationStatusEnum -- ../metadata -- ../slots/conservation_lab -- ../slots/conservation_note -- ../slots/conservator -- ../slots/conservator_affiliation -- ../slots/cost -- ../slots/cost_currency -- ../slots/describes_or_described -- ../slots/final_of_the_final -- ../slots/has_or_had_condition -- ../slots/has_or_had_description -- ../slots/has_or_had_score -- ../slots/has_or_had_treatment -- ../slots/has_or_had_type -- ../slots/indicates_or_indicated -- ../slots/initial_of_the_initial -- ../slots/materials_used -- ../slots/object_ref -- ../slots/photograph -- ../slots/receives_or_received -- ../slots/recommendation -- ../slots/record_date -- ../slots/record_id -- ../slots/record_timespan -- ../slots/record_type -- ../slots/related_loan -- ../slots/report_document -- ../slots/report_url -- ../slots/specificity_annotation -- ../slots/uses_or_used_technique -- ./Condition -- ./ConditionState -- ./Description -- ./SpecificityAnnotation -- ./Technique -- ./TechniqueType -- ./TechniqueTypes -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Treatment -- ./TreatmentType -- ./ConservationReview -- ./EnvironmentalCondition -- ./ExaminationMethod -- ./FundingSource + - linkml:types + - ../enums/ConservationStatusEnum + - ../metadata + - ../slots/conservation_lab + - ../slots/conservation_note + - ../slots/conservator + - ../slots/conservator_affiliation + - ../slots/cost + - ../slots/cost_currency + - ../slots/describes_or_described + - ../slots/final_of_the_final + - ../slots/has_or_had_condition + - ../slots/has_or_had_description + - ../slots/has_or_had_score + - ../slots/has_or_had_treatment + - ../slots/has_or_had_type + - ../slots/indicates_or_indicated + - ../slots/initial_of_the_initial + - ../slots/materials_used + - ../slots/object_ref + - ../slots/photograph + - ../slots/receives_or_received + - ../slots/recommendation + - ../slots/record_date + - ../slots/record_id + - ../slots/record_timespan + - ../slots/record_type + - ../slots/related_loan + - ../slots/report_document + - ../slots/report_url + - ../slots/uses_or_used_technique default_prefix: hc classes: ConservationRecord: @@ -97,28 +79,26 @@ classes: - related_loan - report_document - report_url - - specificity_annotation - uses_or_used_technique - has_or_had_score - has_or_had_treatment - - has_or_had_type slot_usage: record_id: identifier: true required: true - range: uriorcurie +# range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/conservation/mauritshuis-670-1994-001 - value: https://nde.nl/ontology/hc/conservation/rijksmuseum-sk-c-5-2019-001 object_ref: required: true - range: uriorcurie +# range: string # uriorcurie inlined: false examples: - value: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring record_type: required: true - range: string +# range: string examples: - value: TREATMENT - value: CONDITION_ASSESSMENT @@ -187,26 +167,26 @@ classes: - value: REFRAMING conservator: required: false - range: string +# range: string multivalued: true examples: - value: "Dr. J\xF8rgen Wadum" - value: Petria Noble conservator_affiliation: required: false - range: string +# range: string examples: - value: Mauritshuis Conservation Department - value: Hamilton Kerr Institute conservation_lab: required: false - range: string +# range: string examples: - value: Mauritshuis Conservation Studio, The Hague - value: Rijksmuseum Ateliergebouw materials_used: required: false - range: string +# range: string multivalued: true examples: - value: Dammar varnish (Kremer Pigmente) @@ -254,12 +234,12 @@ classes: - value: https://mauritshuis.nl/conservation/reports/670-1994-restoration.pdf report_document: required: false - range: string +# range: string examples: - value: "Wadum, J\xF8rgen. \"Vermeer Illuminated: The Restoration of \nGirl with a Pearl Earring.\" Burlington Magazine 137, \nno. 1103 (1995): 90-95.\n" recommendation: required: false - range: string +# range: string multivalued: true examples: - value: Re-examine varnish layer in 25 years @@ -277,7 +257,7 @@ classes: has_or_had_label: 25-year follow-up from 1994 restoration related_loan: required: false - range: uriorcurie +# range: string # uriorcurie inlined: false examples: - value: https://nde.nl/ontology/hc/loan/mauritshuis-rijksmuseum-2023-001 @@ -288,7 +268,7 @@ classes: - value: 150000 cost_currency: required: false - range: string +# range: string examples: - value: EUR - value: USD @@ -307,7 +287,7 @@ classes: has_or_had_label: Bank Giro Loterij conservation_note: required: false - range: string +# range: string multivalued: true examples: - value: Treatment coincided with preparation for 1995 exhibition diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConservationReview.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConservationReview.yaml index 5db40122fb..e8f852ba7f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConservationReview.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConservationReview.yaml @@ -8,11 +8,10 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/temporal_extent default_prefix: hc classes: ConservationReview: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Conservatoria.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Conservatoria.yaml index 5dd004a265..f6af0d1b5e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Conservatoria.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Conservatoria.yaml @@ -4,8 +4,7 @@ title: "Conservat\xF3ria Type (Lusophone)" prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ./ArchiveOrganizationType + - linkml:types classes: Conservatoria: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ContactDetails.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ContactDetails.yaml index 4b87c7ca0f..e31e74dc9f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ContactDetails.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ContactDetails.yaml @@ -10,10 +10,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/includes_or_included -- ./EmailAddress + - linkml:types + - ../metadata + - ../slots/includes_or_included classes: ContactDetails: class_uri: schema:ContactPoint @@ -29,7 +28,7 @@ classes: slot_usage: includes_or_included: - range: string +# range: string annotations: custodian_types: '["*"]' specificity_score: 0.2 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Container.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Container.yaml index 1087d64bb9..78a1082a55 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Container.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Container.yaml @@ -7,38 +7,8 @@ prefixes: prov: http://www.w3.org/ns/prov# schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./AllocationAgency -- ./Collection -- ./Country -- ./Custodian -- ./CustodianCollection -- ./CustodianLegalStatus -- ./CustodianName -- ./CustodianObservation -- ./CustodianPlace -- ./DigitalPlatform -- ./FindingAid -- ./Identifier -- ./InternetOfThings -- ./Jurisdiction -- ./OrganizationalStructure -- ./ReconstructionActivity -- ./RegistrationInfo -- ./SocialMediaProfile -- ./SpecificityAnnotation -- ./Standard -- ./StandardsOrganization -- ./Subregion -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TradeRegister -- ./IdentifierFormat -- ./RegistrationAuthority -- ./RegistrationNumber + - linkml:types + - ../slots/has_or_had_score classes: Container: tree_root: true @@ -67,13 +37,12 @@ classes: - 'v3: Added digital presence classes (SocialMediaProfile, InternetOfThings, DigitalPlatform)' - 'v4: Added Collection and FindingAid classes' slots: - - specificity_annotation - has_or_had_score - has_or_had_custodian - has_or_had_custodian_observation - has_or_had_custodian_name - has_or_had_section - - has_or_had_identifier + - identified_by - has_or_had_social_media_profile annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Content.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Content.yaml index eb813e5039..939d4d17b9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Content.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Content.yaml @@ -14,15 +14,12 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ../slots/temporal_extent -- ./ContentType -- ./ContentTypes -- ./TimeSpan + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type + - ../slots/temporal_extent classes: Content: class_uri: rico:RecordSetType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ContentType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ContentType.yaml index 01ae86dcfd..bb1739e5ce 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ContentType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ContentType.yaml @@ -9,11 +9,11 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: ContentType: class_uri: crm:E55_Type @@ -36,15 +36,15 @@ classes: - has_or_had_description slot_usage: has_or_had_code: - range: string +# range: string required: true identifier: true pattern: ^[A-Z][A-Z0-9_]*$ has_or_had_label: - range: string +# range: string required: true has_or_had_description: - range: string +# range: string required: false comments: - Abstract base class - use concrete subclasses from ContentTypes.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ContentTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ContentTypes.yaml index 22d9f5a6ad..2fad28bf45 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ContentTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ContentTypes.yaml @@ -6,11 +6,11 @@ prefixes: hc: https://nde.nl/ontology/hc/ default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_code -- ../slots/has_or_had_label -- ./ContentType + - ./ContentType + - linkml:types + - ../metadata + - ../slots/has_or_had_code + - ../slots/has_or_had_label classes: TextualContent: is_a: ContentType @@ -20,7 +20,7 @@ classes: has_or_had_code: equals_string: TEXTUAL has_or_had_label: - range: string +# range: string equals_string: Textual Content annotations: specificity_score: 0.1 @@ -36,7 +36,7 @@ classes: has_or_had_code: equals_string: LITERARY has_or_had_label: - range: string +# range: string equals_string: Literary Content broad_mappings: - skos:Concept @@ -48,7 +48,7 @@ classes: has_or_had_code: equals_string: SCIENTIFIC has_or_had_label: - range: string +# range: string equals_string: Scientific Content broad_mappings: - skos:Concept @@ -60,7 +60,7 @@ classes: has_or_had_code: equals_string: RELIGIOUS has_or_had_label: - range: string +# range: string equals_string: Religious Content broad_mappings: - skos:Concept @@ -72,7 +72,7 @@ classes: has_or_had_code: equals_string: LEGAL has_or_had_label: - range: string +# range: string equals_string: Legal Content broad_mappings: - skos:Concept @@ -84,7 +84,7 @@ classes: has_or_had_code: equals_string: ADMINISTRATIVE has_or_had_label: - range: string +# range: string equals_string: Administrative Content broad_mappings: - skos:Concept @@ -96,7 +96,7 @@ classes: has_or_had_code: equals_string: CORRESPONDENCE has_or_had_label: - range: string +# range: string equals_string: Correspondence broad_mappings: - skos:Concept @@ -108,7 +108,7 @@ classes: has_or_had_code: equals_string: VISUAL has_or_had_label: - range: string +# range: string equals_string: Visual Content broad_mappings: - skos:Concept @@ -120,7 +120,7 @@ classes: has_or_had_code: equals_string: PHOTOGRAPHIC has_or_had_label: - range: string +# range: string equals_string: Photographic Content broad_mappings: - skos:Concept @@ -132,7 +132,7 @@ classes: has_or_had_code: equals_string: CARTOGRAPHIC has_or_had_label: - range: string +# range: string equals_string: Cartographic Content broad_mappings: - skos:Concept @@ -144,7 +144,7 @@ classes: has_or_had_code: equals_string: ARTISTIC has_or_had_label: - range: string +# range: string equals_string: Artistic Content broad_mappings: - skos:Concept @@ -156,7 +156,7 @@ classes: has_or_had_code: equals_string: AUDIO has_or_had_label: - range: string +# range: string equals_string: Audio Content broad_mappings: - skos:Concept @@ -168,7 +168,7 @@ classes: has_or_had_code: equals_string: MUSIC has_or_had_label: - range: string +# range: string equals_string: Music Content broad_mappings: - skos:Concept @@ -180,7 +180,7 @@ classes: has_or_had_code: equals_string: SPOKEN_WORD has_or_had_label: - range: string +# range: string equals_string: Spoken Word Content broad_mappings: - skos:Concept @@ -192,7 +192,7 @@ classes: has_or_had_code: equals_string: AUDIOVISUAL has_or_had_label: - range: string +# range: string equals_string: Audiovisual Content broad_mappings: - skos:Concept @@ -204,7 +204,7 @@ classes: has_or_had_code: equals_string: FILM has_or_had_label: - range: string +# range: string equals_string: Film Content broad_mappings: - skos:Concept @@ -216,7 +216,7 @@ classes: has_or_had_code: equals_string: VIDEO has_or_had_label: - range: string +# range: string equals_string: Video Content broad_mappings: - skos:Concept @@ -228,7 +228,7 @@ classes: has_or_had_code: equals_string: DATA has_or_had_label: - range: string +# range: string equals_string: Data Content broad_mappings: - skos:Concept @@ -240,7 +240,7 @@ classes: has_or_had_code: equals_string: STATISTICAL has_or_had_label: - range: string +# range: string equals_string: Statistical Content broad_mappings: - skos:Concept @@ -252,7 +252,7 @@ classes: has_or_had_code: equals_string: MIXED has_or_had_label: - range: string +# range: string equals_string: Mixed Content broad_mappings: - skos:Concept @@ -264,7 +264,7 @@ classes: has_or_had_code: equals_string: MULTIMEDIA has_or_had_label: - range: string +# range: string equals_string: Multimedia Content broad_mappings: - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ContributingAgency.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ContributingAgency.yaml index dbab18a4ba..da98a09ad1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ContributingAgency.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ContributingAgency.yaml @@ -10,43 +10,27 @@ prefixes: hc: https://nde.nl/ontology/hc/ default_prefix: hc imports: -- linkml:types -- ../enums/AuthorityEntityTypeEnum -- ../enums/AuthorityRecordFormatEnum -- ../enums/ConsortiumGovernanceRoleEnum -- ../metadata -- ../slots/contributes_or_contributed -- ../slots/contributes_to -- ../slots/contribution_start_date -- ../slots/contributor_code -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_role -- ../slots/has_or_had_score -- ../slots/has_or_had_url -- ../slots/is_active -- ../slots/is_or_was_also_allocation_agency -- ../slots/is_or_was_represented_by -- ../slots/member_of -- ../slots/name_local -- ../slots/provides_or_provided -- ../slots/record_format -- ../slots/specificity_annotation -- ./Agent -- ./AllocationAgency -- ./AuthorityData -- ./AuthorityFile -- ./Country -- ./Entity -- ./EntityType -- ./GovernanceRole -- ./SpecificityAnnotation -- ./Standard -- ./StandardsOrganization -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./URL + - linkml:types + - ../enums/AuthorityEntityTypeEnum + - ../enums/AuthorityRecordFormatEnum + - ../enums/ConsortiumGovernanceRoleEnum + - ../metadata + - ../slots/contributes_or_contributed + - ../slots/contributes_to + - ../slots/contribution_start_date + - ../slots/contributor_code + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_role + - ../slots/has_or_had_score + - ../slots/has_or_had_url + - ../slots/is_active + - ../slots/is_or_was_also_allocation_agency + - ../slots/is_or_was_represented_by + - ../slots/member_of + - ../slots/name_local + - ../slots/provides_or_provided + - ../slots/record_format classes: ContributingAgency: class_uri: org:FormalOrganization @@ -103,15 +87,14 @@ classes: - is_or_was_also_allocation_agency - member_of - has_or_had_role - - specificity_annotation - has_or_had_score - name - country slot_usage: provides_or_provided: - range: string +# range: string multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_label: Library of Congress Name Authority File @@ -119,7 +102,7 @@ classes: - has_or_had_type: PERSON - has_or_had_type: CORPORATE_BODY contributes_to: - range: string +# range: string is_or_was_also_allocation_agency: range: AllocationAgency member_of: @@ -130,7 +113,7 @@ classes: range: GovernanceRole has_or_had_url: range: uri - inlined: true + inlined: false # Fixed invalid inline for primitive type multivalued: false contributes_or_contributed: range: AuthorityData diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConversionRate.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConversionRate.yaml index f8156c259a..d771461dec 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConversionRate.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConversionRate.yaml @@ -7,13 +7,10 @@ prefixes: schema: http://schema.org/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_type -- ../slots/temporal_extent -- ./ConversionRateType -- ./ConversionRateTypes -- ./TimeSpan -default_range: string + - linkml:types + - ../slots/has_or_had_type + - ../slots/temporal_extent +# default_range: string classes: ConversionRate: description: 'Structured representation of a conversion rate metric for heritage @@ -47,8 +44,8 @@ classes: - rate_value slot_usage: has_or_had_type: - range: uriorcurie - inlined: true +# range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type examples: - value: "has_or_had_type:\n has_or_had_label: \"Visitor to Purchase\"\n\ \ source_population: \"museum visitors\"\n target_action: \"made gift\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConversionRateType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConversionRateType.yaml index ca19114ef7..b26e1b9a31 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConversionRateType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConversionRateType.yaml @@ -9,13 +9,13 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/conversion_source_population -- ../slots/conversion_target_action -- ../slots/conversion_type_label -- ../slots/industry_benchmark_high -- ../slots/industry_benchmark_low -default_range: string + - linkml:types + - ../slots/conversion_source_population + - ../slots/conversion_target_action + - ../slots/conversion_type_label + - ../slots/industry_benchmark_high + - ../slots/industry_benchmark_low +# default_range: string classes: ConversionRateType: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ConversionRateTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ConversionRateTypes.yaml index 05dceeb38d..aba80e6e23 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ConversionRateTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ConversionRateTypes.yaml @@ -7,14 +7,14 @@ prefixes: schema: http://schema.org/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/conversion_source_population -- ../slots/conversion_target_action -- ../slots/conversion_type_label -- ../slots/industry_benchmark_high -- ../slots/industry_benchmark_low -- ./ConversionRateType -default_range: string + - ./ConversionRateType + - linkml:types + - ../slots/conversion_source_population + - ../slots/conversion_target_action + - ../slots/conversion_type_label + - ../slots/industry_benchmark_high + - ../slots/industry_benchmark_low +# default_range: string classes: VisitorToPurchaseConversion: is_a: ConversionRateType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CoordinateProvenance.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CoordinateProvenance.yaml index b6a399adcd..6f5de9816e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CoordinateProvenance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CoordinateProvenance.yaml @@ -9,7 +9,10 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types - has_or_had_citation: - range: string - description: 'MIGRATED from citation usage.' + - linkml:types + - ../slots/has_or_had_citation +classes: + CoordinateProvenance: + slots: + - has_or_had_citation + diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Coordinates.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Coordinates.yaml index c6d60f8bf6..0d323efa2a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Coordinates.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Coordinates.yaml @@ -10,8 +10,8 @@ prefixes: geo: http://www.w3.org/2003/01/geo/wgs84_pos# sf: http://www.opengis.net/ont/sf# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: Coordinates: description: "Geographic coordinates representing a point location with latitude\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Country.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Country.yaml index 971c5f0b45..dadeeae06e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Country.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Country.yaml @@ -9,16 +9,9 @@ prefixes: schema: http://schema.org/ wikidata: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./Alpha2Code -- ./Alpha3Code -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_score classes: Country: class_uri: schema:Country @@ -31,13 +24,10 @@ classes: \ with Alpha2Code and Alpha3Code \nclass instances per Rule 56 (semantic consistency over simplicity).\n" slots: - has_or_had_code - - specificity_annotation - has_or_had_score slot_usage: has_or_had_code: multivalued: true - inlined: true - inlined_as_list: true description: 'ISO country codes for this country. Includes: - One Alpha2Code instance (2-letter code, e.g., "NL") diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CountyRecordOffice.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CountyRecordOffice.yaml index 96d45bed0b..3657b9b242 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CountyRecordOffice.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CountyRecordOffice.yaml @@ -5,17 +5,10 @@ prefixes: linkml: https://w3id.org/linkml/ org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_branch_of_authority -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./OrganizationBranch -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_branch_of_authority classes: CountyRecordOffice: is_a: ArchiveOrganizationType @@ -117,7 +110,6 @@ classes: slots: - has_or_had_type - is_branch_of_authority - - specificity_annotation - has_or_had_score slot_usage: has_or_had_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CourtRecords.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CourtRecords.yaml index 8c0a40fafb..8f8213d8f1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CourtRecords.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CourtRecords.yaml @@ -9,19 +9,12 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# default_prefix: hc imports: -- linkml:types -- ../slots/court_types_covered -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/jurisdiction_level -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/court_types_covered + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/jurisdiction_level classes: CourtRecords: is_a: ArchiveOrganizationType @@ -32,18 +25,17 @@ classes: - court_types_covered - has_or_had_type - jurisdiction_level - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null jurisdiction_level: - range: string +# range: string examples: - value: state - value: federal court_types_covered: - range: string +# range: string multivalued: true examples: - value: @@ -69,7 +61,7 @@ classes: - https://www.ica.org/standards/RiC/ontology#RecordSet examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q11906844 + identified_by: https://nde.nl/ontology/hc/type/archive/Q11906844 has_or_had_type_code: ARCHIVE has_or_had_label: - Court Records Archive@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CreationEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CreationEvent.yaml index b5cea5ccf4..d3c8af0193 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CreationEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CreationEvent.yaml @@ -9,13 +9,12 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_place -- ../slots/temporal_extent -- ./Agent -- ./TimeSpan -- ./Place + - ./TimeSpan + - ./Place + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_place + - ../slots/temporal_extent classes: CreationEvent: class_uri: crm:E65_Creation diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CulturalInstitution.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CulturalInstitution.yaml index b87f03bae3..21a5725490 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CulturalInstitution.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CulturalInstitution.yaml @@ -15,19 +15,13 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/cultural_focus_area -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/institution_function -- ../slots/specificity_annotation -- ./CustodianType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/cultural_focus_area + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/institution_function classes: CulturalInstitution: is_a: CustodianType @@ -38,20 +32,19 @@ classes: - cultural_focus_area - has_or_had_type - institution_function - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null cultural_focus_area: - range: string +# range: string multivalued: true examples: - value: - visual arts - heritage preservation institution_function: - range: string +# range: string multivalued: true has_or_had_type: equals_expression: '["hc:MixedCustodianType"]' @@ -73,7 +66,7 @@ classes: - https://www.wikidata.org/wiki/Q1030034 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/cultural/Q3152824 + identified_by: https://nde.nl/ontology/hc/type/cultural/Q3152824 has_or_had_type_code: MIXED has_or_had_label: - Cultural Institution@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CurationActivity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CurationActivity.yaml index 982ed8af4c..bf8e3fa3e2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CurationActivity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CurationActivity.yaml @@ -13,31 +13,24 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../enums/CurationActivityTypeEnum -- ../metadata -- ../slots/curated_holding -- ../slots/has_or_had_objective -- ../slots/has_or_had_output -- ../slots/has_or_had_type -- ../slots/is_or_was_allocated_budget -- ../slots/is_recurring -- ../slots/objects_added -- ../slots/objects_affected -- ../slots/objects_count -- ../slots/objects_removed -- ../slots/priority -- ../slots/recurrence_pattern -- ../slots/responsible_actor -- ../slots/responsible_department -- ../slots/spectrum_procedure -- ./Activity -- ./Collection -- ./Deliverable -- ./Documentation -- ./ExhibitedObject -- ./PersonObservation -- ./CurationActivity + - linkml:types + - ../enums/CurationActivityTypeEnum + - ../metadata + - ../slots/curated_holding + - ../slots/has_or_had_objective + - ../slots/has_or_had_output + - ../slots/has_or_had_type + - ../slots/is_or_was_allocated_budget + - ../slots/is_recurring + - ../slots/objects_added + - ../slots/objects_affected + - ../slots/objects_count + - ../slots/objects_removed + - ../slots/priority + - ../slots/recurrence_pattern + - ../slots/responsible_actor + - ../slots/responsible_department + - ../slots/spectrum_procedure classes: CurationActivity: is_a: Activity @@ -89,7 +82,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/person/jan-de-vries-registrar responsible_department: - range: string +# range: string examples: - value: Registration Department - value: Digital Initiatives @@ -100,7 +93,7 @@ classes: - value: true - value: false recurrence_pattern: - range: string +# range: string examples: - value: P1Y - value: P3M @@ -141,10 +134,10 @@ classes: - value: has_or_had_label: Condition notation updates has_or_had_objective: - range: string +# range: string multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: has_or_had_label: @@ -157,17 +150,17 @@ classes: deliverable_url: https://example.org/finding-aids/voc-series-1.ead is_completed: true is_or_was_allocated_budget: - range: string +# range: string examples: - value: EUR 125,000 - value: USD 50,000 priority: - range: string +# range: string examples: - value: HIGH - value: CRITICAL spectrum_procedure: - range: string +# range: string examples: - value: inventory - value: cataloguing @@ -192,7 +185,7 @@ classes: - https://www.w3.org/TR/prov-o/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/activity/rijksmuseum-inventory-2025-001 + identified_by: https://nde.nl/ontology/hc/activity/rijksmuseum-inventory-2025-001 has_or_had_label: 2025 Annual Collection Inventory - Dutch Masters has_or_had_description: "Annual physical inventory of the Dutch Masters collection \n(Gallery of Honour and adjacent galleries). Spot-check methodology \nwith 20% sample verification against CMS records. Includes \ncondition notation and location verification.\n" curated_holding: @@ -213,7 +206,7 @@ classes: priority: MEDIUM spectrum_procedure: inventory - value: - has_or_had_identifier: https://nde.nl/ontology/hc/activity/nationaal-archief-digitization-voc-2024 + identified_by: https://nde.nl/ontology/hc/activity/nationaal-archief-digitization-voc-2024 has_or_had_label: VOC Archives Digitization Project - Phase 2 has_or_had_description: "Second phase of systematic digitization of VOC (Dutch East India \nCompany) archives. Focus on Hoge Regering Batavia series (1.04.02). \nHigh-resolution scanning with OCR/HTR processing for searchability. \nIIIF-compliant output.\n" curated_holding: @@ -238,7 +231,7 @@ classes: spectrum_procedure: documentation preceding_activity: https://nde.nl/ontology/hc/activity/voc-digitization-phase-1 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/activity/kb-rehousing-medieval-2025 + identified_by: https://nde.nl/ontology/hc/activity/kb-rehousing-medieval-2025 has_or_had_label: Medieval Manuscripts Rehousing Initiative has_or_had_description: "Transfer of 342 medieval manuscripts from legacy storage to \ncustom-fitted archival boxes with acid-free tissue interleaving. \nIncludes updated location records and condition photography.\n" curated_holding: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Currency.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Currency.yaml index 3bc0f10608..e5ab5eb045 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Currency.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Currency.yaml @@ -8,18 +8,13 @@ prefixes: qudt: http://qudt.org/schema/qudt/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../slots/currency_code -- ../slots/currency_symbol -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/currency_code + - ../slots/currency_symbol + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score default_prefix: hc classes: Currency: @@ -31,21 +26,20 @@ classes: close_mappings: - qudt:CurrencyUnit slots: - - has_or_had_identifier + - identified_by - currency_code - has_or_had_label - currency_symbol - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: false examples: - value: https://nde.nl/ontology/hc/currency/EUR currency_code: - range: string +# range: string required: true pattern: ^[A-Z]{3}$ examples: @@ -54,14 +48,14 @@ classes: - value: GBP - value: NLG has_or_had_label: - range: string +# range: string required: false examples: - value: Euro - value: US Dollar - value: Dutch Guilder currency_symbol: - range: string +# range: string required: false examples: - value: "\u20AC" @@ -69,7 +63,7 @@ classes: - value: "\xA3" - value: "\u0192" has_or_had_description: - range: string +# range: string required: false examples: - value: Official currency of the Eurozone since 1999 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CurrentArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CurrentArchive.yaml index 2b5a9a2b49..6c24e0045d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CurrentArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CurrentArchive.yaml @@ -10,29 +10,15 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# default_prefix: hc imports: -- linkml:types -- ../slots/creating_organization -- ../slots/has_or_had_identifier -- ../slots/has_or_had_policy -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/retention_schedule -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./CurrentArchiveRecordSetType -- ./CurrentArchiveRecordSetTypes -- ./CustodianAdministration -- ./CustodianArchive -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TransferPolicy -- ./WikiDataIdentifier + - linkml:types + - ../slots/creating_organization + - ../slots/identified_by + - ../slots/has_or_had_policy + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/retention_schedule classes: CurrentArchive: is_a: ArchiveOrganizationType @@ -42,21 +28,20 @@ classes: - has_or_had_type - hold_or_held_record_set_type - retention_schedule - - specificity_annotation - has_or_had_score - has_or_had_policy - - has_or_had_identifier + - identified_by description: "Archive maintaining records still in active/current use by the creating organization.\n\n**Wikidata**: Q3621648 (current archive / archivo corriente / archivio corrente)\n\n**DEFINITION**:\n\nCurrent Archive (also called \"active archive\" or \"records center\") maintains \nrecords that are still actively used for operational purposes. In the archival \nlifecycle, this represents the first phase:\n\n1. **Current/Active Phase** \u2190 THIS TYPE\n - Records actively used for business operations\n - Frequent retrieval and reference\n - Managed by creating office or central records unit\n\n2. **Semi-current/Intermediate Phase** \u2192 DepositArchive\n - Records no longer actively used but still referenced\n - Stored in intermediate facility\n - Awaiting disposition decision\n\n3. **Non-current/Archival Phase** \u2192 Historical Archive\n - Records with permanent value\n - Transferred to archives\n - Preserved for research/evidence\n\n**MULTILINGUAL LABELS**:\n\ - archivo corriente (es)\n- archive courante (fr)\n- archivio corrente (it)\n\n**RELATED TYPES**:\n- DepositArchive (Q244904) - intermediate/semi-current records\n- HistoricalArchive (Q3621673) - non-current permanent records\n- RecordsCenter - semi-current storage facility\n\n**RELATIONSHIP TO CustodianArchive**:\n\nCurrentArchive (this class) is a TYPE classification (skos:Concept) for \narchives managing records in the active/current phase of the lifecycle.\n\nCustodianArchive is an INSTANCE class (rico:RecordSet) representing the \nactual operational archives of a heritage custodian awaiting processing.\n\n**Semantic Relationship**:\n- CurrentArchive is a HYPERNYM (broader type) for the concept of active records\n- CustodianArchive records MAY be typed as CurrentArchive when in active use\n- When CustodianArchive.processing_status = \"UNPROCESSED\", records may still\n be in the current/active phase conceptually\n\n**SKOS Alignment**:\n- skos:broader: CurrentArchive \u2192 DepositArchive\ \ (lifecycle progression)\n- skos:narrower: CurrentArchive \u2190 specific current archive types\n\n**ONTOLOGICAL ALIGNMENT**:\n- **SKOS**: skos:Concept (type classification)\n- **RiC-O**: rico:RecordSet for active record groups\n- **Wikidata**: Q3621648\n- **ISO 15489**: Records in active use phase\n" slot_usage: - has_or_had_identifier: null + identified_by: null retention_schedule: - range: string +# range: string examples: - value: Ministry of Finance Records Schedule 2023 creating_organization: - range: string +# range: string examples: - value: Ministry of Finance has_or_had_policy: @@ -89,7 +74,7 @@ classes: - https://www.iso.org/standard/62542.html examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q3621648 + identified_by: https://nde.nl/ontology/hc/type/archive/Q3621648 has_or_had_type_code: ARCHIVE has_or_had_label: - Current Archive@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CurrentArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CurrentArchiveRecordSetType.yaml index d50ba2cf2b..5d29908bcf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CurrentArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CurrentArchiveRecordSetType.yaml @@ -9,11 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_scope # was: type_scope -- ./CollectionType -- ./Scope # for has_or_had_scope range (2026-01-15) + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_scope # was: type_scope classes: CurrentArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by CurrentArchive custodians. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CurrentArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CurrentArchiveRecordSetTypes.yaml index 9b95086420..4d5ff9860a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CurrentArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CurrentArchiveRecordSetTypes.yaml @@ -17,21 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./CurrentArchive -- ./CurrentArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./CurrentArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: ActiveRecordsFonds: is_a: CurrentArchiveRecordSetType @@ -39,7 +33,7 @@ classes: description: "A rico:RecordSetType for Current/active records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -50,7 +44,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -75,6 +68,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CurrentPosition.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CurrentPosition.yaml index 69376e25b4..daae206498 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CurrentPosition.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CurrentPosition.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# org: http://www.w3.org/ns/org# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: CurrentPosition: description: "Current job position held by a heritage professional, capturing\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Custodian.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Custodian.yaml index ca8fe056a8..1b50e3d849 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Custodian.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Custodian.yaml @@ -17,62 +17,32 @@ prefixes: sosa: http://www.w3.org/ns/sosa/ default_prefix: hc imports: -- linkml:types -- ../slots/created -- ../slots/has_or_had_collection -- ../slots/has_or_had_digital_presence -- ../slots/has_or_had_exhibition -- ../slots/has_or_had_facility -- ../slots/has_or_had_identifier -- ../slots/has_or_had_policy -- ../slots/has_or_had_score -- ../slots/has_or_had_social_media_profile -- ../slots/has_or_had_type -- ../slots/is_or_was_encompassed_by -- ../slots/is_or_was_involved_in -- ../slots/legal_status -- ../slots/mission_statement -- ../slots/modified -- ../slots/organizational_structure -- ../slots/place_designation -- ../slots/preferred_label -- ../slots/preserves_or_preserved -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./Budget -- ./Conflict -- ./ConflictStatus -- ./ConflictType -- ./ConflictTypes -- ./CustodianAdministration -- ./CustodianArchive -- ./CustodianCollection -- ./CustodianLegalStatus -- ./CustodianPlace -- ./CustodianType -- ./DataLicensePolicy -- ./DigitalPlatform -- ./EncompassingBody -- ./Exhibition -- ./GiftShop -- ./IntangibleHeritageForm -- ./InternetOfThings -- ./MissionStatement -- ./OrganizationalChangeEvent -- ./OrganizationalStructure -- ./Project -- ./SocialMediaProfile -- ./SpecificityAnnotation -- ./Storage -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../slots/created + - ../slots/has_or_had_collection + - ../slots/has_or_had_digital_presence + - ../slots/has_or_had_exhibition + - ../slots/has_or_had_facility + - ../slots/identified_by + - ../slots/has_or_had_policy + - ../slots/has_or_had_score + - ../slots/has_or_had_social_media_profile + - ../slots/has_or_had_type + - ../slots/is_or_was_encompassed_by + - ../slots/is_or_was_involved_in + - ../slots/legal_status + - ../slots/mission_statement + - ../slots/modified + - ../slots/organizational_structure + - ../slots/place_designation + - ../slots/preferred_label + - ../slots/preserves_or_preserved + - ../slots/temporal_extent classes: Custodian: class_uri: crm:E39_Actor description: 'An abstract hub class that serves as the central connection point for all information about a heritage custodian - entity. The Custodian itself contains minimal information - essentially just its persistent identifier (has_or_had_identifier) + entity. The Custodian itself contains minimal information - essentially just its persistent identifier (identified_by) - and acts as a node to which all observations (CustodianObservation, CustodianName) and reconstructions (CustodianLegalStatus) attach. This hub pattern allows multiple observations from different sources to be connected to a single logical entity without asserting which observation is "correct" or "primary". **HUB ARCHITECTURE**: - The Custodian hub is identified @@ -141,8 +111,7 @@ classes: - is_or_was_encompassed_by - has_or_had_exhibition - has_or_had_collection - - has_or_had_identifier - - has_or_had_identifier + - identified_by - legal_status - mission_statement - modified @@ -151,52 +120,56 @@ classes: - preferred_label - preserves_or_preserved - has_or_had_social_media_profile - - specificity_annotation - has_or_had_facility - has_or_had_score - temporal_extent slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/[a-z0-9-]+$ preferred_label: - range: string +# range: string required: false legal_status: required: false place_designation: - range: CustodianPlace - inlined: true +# range: string # uriorcurie + # range: CustodianPlace + inlined: false # Fixed invalid inline for primitive type required: false has_or_had_digital_presence: - range: DigitalPlatform +# range: string # uriorcurie + # range: DigitalPlatform multivalued: true required: false - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type has_or_had_collection: - range: CustodianCollection +# range: string # uriorcurie + # range: CustodianCollection multivalued: true required: false - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type organizational_structure: - range: uriorcurie +# range: string # uriorcurie multivalued: true required: false - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type is_or_was_encompassed_by: - range: EncompassingBody +# range: string # uriorcurie + # range: EncompassingBody multivalued: true required: false - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type has_or_had_policy: - range: string +# range: string required: false has_or_had_social_media_profile: - range: SocialMediaProfile +# range: string # uriorcurie + # range: SocialMediaProfile multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -209,16 +182,18 @@ classes: profile_url: https://x.com/rijksmuseum is_primary_digital_presence: false preserves_or_preserved: - range: IntangibleHeritageForm +# range: string # uriorcurie + # range: IntangibleHeritageForm multivalued: true inlined: false temporal_extent: range: TimeSpan required: false mission_statement: - range: MissionStatement +# range: string # uriorcurie + # range: MissionStatement multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type created: range: datetime modified: @@ -246,7 +221,7 @@ classes: (was time_of_destruction - migrated 2026-01-15) examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 + identified_by: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianAdministration.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianAdministration.yaml index 7f69efe192..b06223cd0a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianAdministration.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianAdministration.yaml @@ -2,50 +2,27 @@ id: https://nde.nl/ontology/hc/class/CustodianAdministration name: custodian_administration_class title: CustodianAdministration Class imports: -- linkml:types -- ../classes/Description -- ../classes/Label -- ../slots/contains_or_contained -- ../slots/creating_function -- ../slots/estimates_or_estimated -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_level -- ../slots/has_or_had_quantity -- ../slots/has_or_had_roadmap -- ../slots/has_or_had_score -- ../slots/has_or_had_status -- ../slots/is_or_was_active_since -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/managing_unit -- ../slots/primary_system -- ../slots/record_type -- ../slots/refers_to_custodian -- ../slots/retention_period_year -- ../slots/retention_schedule -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./BackupStatus -- ./BusinessCriticality -- ./Custodian -- ./CustodianObservation -- ./DataSensitivityLevel -- ./DigitalPlatform -- ./GrowthRate -- ./OrganizationalStructure -- ./PersonalData -- ./Quantity -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./Roadmap -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Description -- ./Label + - linkml:types + - ../slots/contains_or_contained + - ../slots/creating_function + - ../slots/estimates_or_estimated + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_level + - ../slots/has_or_had_quantity + - ../slots/has_or_had_roadmap + - ../slots/has_or_had_score + - ../slots/has_or_had_status + - ../slots/is_or_was_active_since + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/managing_unit + - ../slots/primary_system + - ../slots/record_type + - ../slots/refers_to_custodian + - ../slots/retention_period_year + - ../slots/retention_schedule + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -94,28 +71,27 @@ classes: - refers_to_custodian - retention_period_year - retention_schedule - - specificity_annotation - has_or_had_score - temporal_extent - is_or_was_derived_from - is_or_was_generated_by slot_usage: has_or_had_label: - range: string +# range: string required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: label_text: Director's Office Correspondence has_or_had_description: - range: string +# range: string required: false - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: Incoming and outgoing correspondence of the museum director record_type: - range: string +# range: string multivalued: true required: false examples: @@ -127,7 +103,7 @@ classes: range: OrganizationalStructure required: false creating_function: - range: string +# range: string required: false examples: - value: Collection acquisition @@ -139,7 +115,7 @@ classes: has_or_had_quantity: range: integer multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_measurement_unit: @@ -162,7 +138,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/platform/rm-sharepoint retention_schedule: - range: string +# range: string required: false examples: - value: Selectielijst Gemeenten 2020, categorie 4.2.3 @@ -173,8 +149,8 @@ classes: - value: 7 - value: 20 has_or_had_level: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: false description: 'Data sensitivity classification level. Standard codes: PUBLIC, INTERNAL, CONFIDENTIAL, STRICTLY_CONFIDENTIAL, PERSONAL_DATA, SPECIAL_CATEGORY' examples: @@ -324,7 +300,7 @@ classes: access_control: HR Department only, individual file permissions refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/administration/rm/conservation-lab + identified_by: https://nde.nl/ontology/hc/administration/rm/conservation-lab has_or_had_label: label_text: Conservation Treatment Records has_or_had_description: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianArchive.yaml index 7cab60f710..d6c89e78d7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianArchive.yaml @@ -2,57 +2,32 @@ id: https://nde.nl/ontology/hc/class/CustodianArchive name: custodian_archive_class title: CustodianArchive Class imports: -- linkml:types -- ../classes/Description -- ../classes/Label -- ../enums/ArchiveProcessingStatusEnum -- ../slots/creating_agency -- ../slots/has_or_had_accumulation -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_note -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_accessioned_through -- ../slots/is_or_was_appended_with -- ../slots/is_or_was_conducted_by -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/is_or_was_stored_at -- ../slots/is_or_was_transferred -- ../slots/lifecycle_phase_type -- ../slots/managing_unit -- ../slots/processing_completed_date -- ../slots/processing_priority -- ../slots/processing_started_date -- ../slots/processing_status -- ../slots/refers_to_custodian -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./AccessionEvent -- ./CollectionManagementSystem -- ./Custodian -- ./CustodianArchiveRecordSetType -- ./CustodianObservation -- ./CustodianType -- ./Note -- ./OrganizationalStructure -- ./ProcessorAgent -- ./Quantity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./Storage -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./TransferEvent -- ./Accumulation -- ./Description -- ./Label -- ./StorageLocation + - linkml:types + - ../enums/ArchiveProcessingStatusEnum + - ../slots/creating_agency + - ../slots/has_or_had_accumulation + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_note + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_accessioned_through + - ../slots/is_or_was_appended_with + - ../slots/is_or_was_conducted_by + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/is_or_was_stored_at + - ../slots/is_or_was_transferred + - ../slots/lifecycle_phase_type + - ../slots/managing_unit + - ../slots/processing_completed_date + - ../slots/processing_priority + - ../slots/processing_started_date + - ../slots/processing_status + - ../slots/refers_to_custodian + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -89,7 +64,6 @@ classes: - processing_started_date - processing_status - refers_to_custodian - - specificity_annotation - is_or_was_stored_at - is_or_was_appended_with - has_or_had_score @@ -116,15 +90,15 @@ classes: - crm:E78_Curated_Holding slot_usage: has_or_had_label: - range: string +# range: string required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: label_text: Director's Office Correspondence 2010-2020 has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_description: Incoming and outgoing correspondence of the museum director including policy discussions, loan requests, and exhibition planning. @@ -136,7 +110,7 @@ classes: - value: temporal_extent: begin_of_the_begin: '2024-01-15' - has_or_had_identifier: + identified_by: - has_or_had_value: 2024-0001 has_or_had_type: Accession Number has_or_had_accumulation: @@ -148,7 +122,7 @@ classes: begin_of_the_begin: '1990-01-01' end_of_the_end: '2020-12-31' creating_agency: - range: string +# range: string required: false has_or_had_type: range: CustodianType @@ -159,7 +133,7 @@ classes: has_or_had_quantity: range: integer multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_measurement_unit: @@ -205,14 +179,14 @@ classes: has_or_had_description: description_text: Transferred to collection after processing complete is_or_was_appended_with: - range: uriorcurie +# range: string # uriorcurie required: false examples: - value: https://nde.nl/ontology/hc/collection/rm-director-correspondence-2010-2020 has_or_had_note: - range: string +# range: string multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: id: https://nde.nl/ontology/hc/archive/rm/directors-correspondence-2010-2020 @@ -223,7 +197,7 @@ classes: is_or_was_accessioned_through: temporal_extent: begin_of_the_begin: '2024-01-15' - has_or_had_identifier: + identified_by: - has_or_had_value: RM-2024-0001 has_or_had_accumulation: temporal_extent: @@ -248,7 +222,7 @@ classes: is_or_was_accessioned_through: temporal_extent: begin_of_the_begin: '2015-06-01' - has_or_had_identifier: + identified_by: - has_or_had_value: NA-2015-GOV-0234 has_or_had_accumulation: temporal_extent: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianArchiveRecordSetType.yaml index 08ae972824..ba9613f4c2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianArchiveRecordSetType.yaml @@ -14,11 +14,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_scope # was: type_scope -- ./CollectionType -- ./Scope # for has_or_had_scope range (2026-01-15) + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_scope # was: type_scope classes: CustodianArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by CustodianArchive custodians. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianArchiveRecordSetTypes.yaml index 764e0aadcb..ff3ad3942c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./CustodianArchive -- ./CustodianArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./CustodianArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: CustodialRecordsFonds: is_a: CustodianArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Records held in custody.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianCollection.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianCollection.yaml index 8d6fa65dcd..d85e258cc7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianCollection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianCollection.yaml @@ -2,47 +2,23 @@ id: https://nde.nl/ontology/hc/class/CustodianCollection name: custodian_collection_class title: CustodianCollection Class imports: -- linkml:types -- ../classes/ArrangementType -- ../classes/ArrangementTypes -- ../slots/custody_history -- ../slots/has_or_had_arrangement -- ../slots/has_or_had_content -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_provenance -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/is_or_was_instantiated_by -- ../slots/managing_unit -- ../slots/preservation_level -- ../slots/refers_to_custodian -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./CollectionContent -- ./CollectionContentType -- ./CollectionContentTypes -- ./CollectionManagementSystem -- ./CollectionScope -- ./Content -- ./Custodian -- ./CustodianObservation -- ./Description -- ./DigitalInstantiation -- ./Label -- ./OrganizationalStructure -- ./Provenance -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./ArrangementType + - linkml:types + - ../slots/custody_history + - ../slots/has_or_had_arrangement + - ../slots/has_or_had_content + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_provenance + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/is_or_was_instantiated_by + - ../slots/managing_unit + - ../slots/preservation_level + - ../slots/refers_to_custodian + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -84,7 +60,6 @@ classes: - preservation_level - has_or_had_provenance - refers_to_custodian - - specificity_annotation - has_or_had_score - has_or_had_content - temporal_extent @@ -92,33 +67,37 @@ classes: - is_or_was_generated_by slot_usage: has_or_had_label: - range: Label - inlined: true +# range: string # uriorcurie + # range: Label + inlined: false # Fixed invalid inline for primitive type required: true pattern: ^.{1,500}$ managing_unit: - range: OrganizationalStructure +# range: string # uriorcurie + # range: OrganizationalStructure required: false temporal_extent: range: TimeSpan inlined: true required: false refers_to_custodian: - range: Custodian +# range: string # uriorcurie + # range: Custodian required: true has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: false multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: description_text: The Nationaal Archief holdings comprise over 137 km of archival records documenting Dutch government and society from the medieval period to the present. description_type: collection_description has_or_had_scope: - range: CollectionScope - inlined: true +# range: string # uriorcurie + # range: CollectionScope + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -126,10 +105,10 @@ classes: - value: scope_description: Municipal government records, 1578-present has_or_had_content: - range: string +# range: string multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type required: false description: "Content held by this collection with typed categorization.\nMIGRATED from:\n- temporal_coverage per slot_fixes.yaml (Rule 53/56, 2026-01-16)\n- collection_type per slot_fixes.yaml (Rule 53, 2026-01-22)\n\nCollectionContent unifies content description with type classification:\n- content_description: Free-text description of the content\n- content_date_range: Temporal coverage (e.g., \"1602-1799\")\n- content_extent: Size/extent of content\n- has_or_had_type \u2192 CollectionContentType: Type classification (Archival, Library, Art, etc.)\n" examples: @@ -141,17 +120,19 @@ classes: - type_label: Art - type_label: Liturgical is_or_was_instantiated_by: - range: DigitalInstantiation +# range: string # uriorcurie + # range: DigitalInstantiation multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type preservation_level: - range: string +# range: string required: false examples: - value: FULL - value: BIT_LEVEL has_or_had_arrangement: - range: ArrangementType +# range: string # uriorcurie + # range: ArrangementType required: false examples: - value: @@ -162,18 +143,21 @@ classes: has_or_had_description: Arranged by accession number has_or_had_provenance: required: false - range: Provenance - inlined: true +# range: string # uriorcurie + # range: Provenance + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_description: - description_text: Transferred from private donor 2015; previously held by estate since 1923. description_type: provenance_note is_or_was_generated_by: - range: ReconstructionActivity +# range: string # uriorcurie + # range: ReconstructionActivity required: false is_or_was_derived_from: - range: CustodianObservation +# range: string # uriorcurie + # range: CustodianObservation multivalued: true required: true has_or_had_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianLegalNameClaim.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianLegalNameClaim.yaml index 279994c9d8..80a0e12d7a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianLegalNameClaim.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianLegalNameClaim.yaml @@ -9,12 +9,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# imports: -- linkml:types -- ../slots/has_or_had_type -- ../slots/note -- ./ClaimType -- ./ClaimTypes -default_range: string + - linkml:types + - ../slots/has_or_had_type + - ../slots/note +# default_range: string classes: CustodianLegalNameClaim: description: "Legal name claim with provenance, representing an assertion about\ @@ -33,8 +31,8 @@ classes: - note slot_usage: has_or_had_type: - range: uriorcurie - inlined: true +# range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type required: false annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianLegalStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianLegalStatus.yaml index 2170222655..a0e3e01c66 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianLegalStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianLegalStatus.yaml @@ -19,56 +19,32 @@ prefixes: pico: https://personsincontext.org/model# gleif_base: https://www.gleif.org/ontology/Base/ imports: -- linkml:types -- ../enums/LegalStatusEnum -- ../enums/ReconstructionActivityTypeEnum -- ../metadata -- ../slots/defines_or_defined -- ../slots/has_or_had_document -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_status -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_dissolved_by -- ../slots/is_or_was_generated_by -- ../slots/is_or_was_responsible_for -- ../slots/is_or_was_revision_of -- ../slots/is_or_was_suborganization_of -- ../slots/legal_entity_type -- ../slots/legal_form -- ../slots/legal_jurisdiction -- ../slots/legal_name -- ../slots/primary_register -- ../slots/reconstruction_method -- ../slots/refers_to_custodian -- ../slots/registration_authority -- ../slots/registration_date -- ../slots/service_area -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./ArticlesOfAssociation -- ./Custodian -- ./CustodianObservation -- ./DissolutionEvent -- ./GovernanceStructure -- ./Jurisdiction -- ./LegalEntityType -- ./LegalForm -- ./LegalName -- ./LegalResponsibilityCollection -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./RegistrationAuthority -- ./RegistrationInfo -- ./ServiceArea -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./TradeRegister -- ./CustodianLegalStatus -- ./RegistrationNumber + - linkml:types + - ../enums/LegalStatusEnum + - ../enums/ReconstructionActivityTypeEnum + - ../metadata + - ../slots/defines_or_defined + - ../slots/has_or_had_document + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_status + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_dissolved_by + - ../slots/is_or_was_generated_by + - ../slots/is_or_was_responsible_for + - ../slots/is_or_was_revision_of + - ../slots/is_or_was_suborganization_of + - ../slots/legal_entity_type + - ../slots/legal_form + - ../slots/legal_jurisdiction + - ../slots/legal_name + - ../slots/primary_register + - ../slots/reconstruction_method + - ../slots/refers_to_custodian + - ../slots/registration_authority + - ../slots/registration_date + - ../slots/service_area + - ../slots/temporal_extent classes: CustodianLegalStatus: is_a: ReconstructedEntity @@ -117,7 +93,7 @@ classes: - is_or_was_dissolved_by - defines_or_defined - has_or_had_document - - has_or_had_identifier + - identified_by - legal_entity_type - legal_form - legal_jurisdiction @@ -129,9 +105,7 @@ classes: - refers_to_custodian - registration_authority - registration_date - - has_or_had_identifier - service_area - - specificity_annotation - has_or_had_score - temporal_extent - is_or_was_derived_from @@ -160,7 +134,7 @@ classes: examples: - value: ORGANIZATION reconstruction_method: - range: string +# range: string examples: - value: Synthesized from official website, historical records, and academic references legal_name: @@ -181,8 +155,9 @@ classes: see_also: - https://www.gleif.org/en/about-lei/code-lists/iso-20275-entity-legal-forms-code-list - /data/ontology/gleif_legal_form.ttl - has_or_had_identifier: - range: RegistrationNumber + identified_by: +# range: string # uriorcurie + # range: RegistrationNumber multivalued: true examples: - value: null @@ -213,8 +188,9 @@ classes: alpha_2: NL alpha_3: NLD is_or_was_dissolved_by: - range: DissolutionEvent - inlined: true +# range: string # uriorcurie + # range: DissolutionEvent + inlined: false # Fixed invalid inline for primitive type temporal_extent: range: TimeSpan examples: @@ -224,7 +200,8 @@ classes: begin_of_the_end: '1950-01-01' end_of_the_end: '1955-12-31' is_or_was_suborganization_of: - range: CustodianLegalStatus +# range: string # uriorcurie + # range: CustodianLegalStatus has_or_had_status: range: LegalStatus required: true @@ -232,14 +209,16 @@ classes: - value: has_or_had_label: Active defines_or_defined: - range: GovernanceStructure +# range: string # uriorcurie + # range: GovernanceStructure examples: - value: has_or_had_type: hierarchical has_or_had_description: Board of trustees with director-led departments has_or_had_document: - range: ArticlesOfAssociation - inlined: true +# range: string # uriorcurie + # range: ArticlesOfAssociation + inlined: false # Fixed invalid inline for primitive type multivalued: true required: false examples: @@ -264,11 +243,13 @@ classes: range: ReconstructionActivity required: true is_or_was_revision_of: - range: CustodianLegalStatus +# range: string # uriorcurie + # range: CustodianLegalStatus service_area: - range: ServiceArea +# range: string # uriorcurie + # range: ServiceArea multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - service_area_name: Noord-Hollands Archief Werkgebied @@ -302,7 +283,7 @@ classes: language: nl legal_form: abbreviation: St. - has_or_had_identifier: + identified_by: - number: '41215422' registration_authority: name: Chamber of Commerce @@ -330,8 +311,8 @@ classes: - https://w3id.org/heritage/observation/rijksmuseum-isil-2020 is_or_was_generated_by: null identifier: - - has_or_had_identifier_scheme: ISIL - - has_or_had_identifier_scheme: Wikidata + - identified_by_scheme: ISIL + - identified_by_scheme: Wikidata annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianName.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianName.yaml index c028f3f342..14baac1f3d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianName.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianName.yaml @@ -16,32 +16,19 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../classes/Label -- ../classes/LabelType -- ../classes/LabelTypes -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/name_authority -- ../slots/name_language -- ../slots/name_validity_period -- ../slots/refers_to_custodian -- ../slots/specificity_annotation -- ../slots/standardized_name -- ../slots/supersedes_or_superseded -- ../slots/temporal_extent -- ./Custodian -- ./CustodianObservation -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Label + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/name_authority + - ../slots/name_language + - ../slots/name_validity_period + - ../slots/refers_to_custodian + - ../slots/standardized_name + - ../slots/supersedes_or_superseded + - ../slots/temporal_extent +# - ./ReconstructionActivity classes: CustodianName: is_a: ReconstructedEntity @@ -53,11 +40,10 @@ classes: - \"Art + Culture Center\" \u2192 \"ACC\" (not \"A+CC\")\n- \"Museum/Gallery Amsterdam\" \u2192 \"MGA\" (not \"M/GA\")\n- \"Heritage@Digital\" \u2192 \"HD\" (not \"H@D\")\n- \"Archives (Historical)\" \u2192 \"AH\" (not \"A(H)\")\n\nSee: rules/ABBREVIATION_SPECIAL_CHAR_RULE.md for complete documentation\n\n===========================================================================\nMANDATORY RULE: Diacritics MUST Be Normalized to ASCII in Abbreviations\n===========================================================================\n\nWhen generating abbreviations for GHCID, diacritics (accented characters)\nMUST be normalized to their ASCII base letter equivalents. Only ASCII\nuppercase letters (A-Z) are permitted in the has_or_had_abbreviation component.\n\nRATIONALE:\n1. URI/URL safety - Non-ASCII requires percent-encoding\n2. Cross-system compatibility - ASCII is universally supported\n3. Parsing consistency - No special character handling needed\n4. Human readability - Easier to type\ \ and communicate\n\nDIACRITICS TO NORMALIZE (examples by language):\n- Czech: \u010C\u2192C, \u0158\u2192R, \u0160\u2192S, \u017D\u2192Z, \u011A\u2192E, \u016E\u2192U\n- Polish: \u0141\u2192L, \u0143\u2192N, \xD3\u2192O, \u015A\u2192S, \u0179\u2192Z, \u017B\u2192Z, \u0104\u2192A, \u0118\u2192E\n- German: \xC4\u2192A, \xD6\u2192O, \xDC\u2192U, \xDF\u2192SS\n- French: \xC9\u2192E, \xC8\u2192E, \xCA\u2192E, \xC7\u2192C, \xD4\u2192O\n- Spanish: \xD1\u2192N, \xC1\u2192A, \xC9\u2192E, \xCD\u2192I, \xD3\u2192O, \xDA\u2192U\n- Nordic: \xC5\u2192A, \xC4\u2192A, \xD6\u2192O, \xD8\u2192O, \xC6\u2192AE\n\nEXAMPLES:\n- \"Vlastiv\u011Bdn\xE9 muzeum\" (Czech) \u2192 \"VM\" (not \"VM\" with h\xE1\u010Dek)\n- \"\xD6sterreichische Nationalbibliothek\" (German) \u2192 \"ON\"\n- \"Biblioth\xE8que nationale\" (French) \u2192 \"BN\"\n\nREAL-WORLD EXAMPLE:\n- \u274C WRONG: CZ-VY-TEL-L-VHSPAO\u010CRZS (contains \u010C)\n- \u2705 CORRECT: CZ-VY-TEL-L-VHSPAOCRZS (ASCII only)\n\nIMPLEMENTATION:\n```python\n\ import unicodedata\nnormalized = unicodedata.normalize('NFD', text)\nascii_text = ''.join(c for c in normalized if unicodedata.category(c) != 'Mn')\n```\n\nSee: rules/ABBREVIATION_SPECIAL_CHAR_RULE.md for complete documentation\n\nCan be generated by:\n1. ReconstructionActivity (formal entity resolution) - is_or_was_generated_by link\n2. Direct extraction (simple standardization) - no is_or_was_generated_by link\n" - exact_mappings: + close_mappings: - skos:prefLabel - schema:name - foaf:name - close_mappings: - rdfs:label - dcterms:title - org:legalName @@ -74,18 +60,16 @@ classes: - name_language - name_validity_period - refers_to_custodian - - specificity_annotation - standardized_name - supersedes_or_superseded - - supersedes_or_superseded - has_or_had_score - temporal_extent - is_or_was_derived_from - is_or_was_generated_by slot_usage: has_or_had_label: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: @@ -95,13 +79,13 @@ classes: has_or_had_label: State Museum has_or_had_type: AlternativeName name_language: - range: string +# range: string pattern: ^[a-z]{2}(-[A-Z]{2})?$ standardized_name: - range: string +# range: string required: true name_authority: - range: string +# range: string temporal_extent: range: TimeSpan inlined: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianNameConsensus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianNameConsensus.yaml index c263b2c56f..9a06839421 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianNameConsensus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianNameConsensus.yaml @@ -9,22 +9,16 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_type -- ../slots/name_language -- ../slots/note -- ../slots/short_name -- ../slots/source -- ../slots/source_type -- ../slots/source_url -- ../slots/standardized_name -- ./AlternativeName -- ./ClaimType -- ./ClaimTypes -- ./FormerName -- ./MatchingSource -- ./MergeNote -default_range: string + - linkml:types + - ../slots/has_or_had_type + - ../slots/name_language + - ../slots/note + - ../slots/short_name + - ../slots/source + - ../slots/source_type + - ../slots/source_url + - ../slots/standardized_name +# default_range: string classes: CustodianNameConsensus: description: "Consensus determination of custodian name aggregating evidence from\ @@ -50,8 +44,8 @@ classes: - short_name slot_usage: has_or_had_type: - range: uriorcurie - inlined: true +# range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type required: false annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianObservation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianObservation.yaml index af350e0643..68cb595828 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianObservation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianObservation.yaml @@ -12,32 +12,18 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../classes/Label -- ../classes/LabelType -- ../classes/LabelTypes -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/has_or_had_value -- ../slots/observation_context -- ../slots/observation_date -- ../slots/observation_source -- ../slots/observed_name -- ../slots/refers_or_referred_to -- ../slots/source -- ../slots/specificity_annotation -- ./Appellation -- ./ConfidenceValue -- ./CustodianLegalStatus -- ./EntityReconstruction -- ./LanguageCode -- ./SourceDocument -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./Label + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/has_or_had_value + - ../slots/observation_context + - ../slots/observation_date + - ../slots/observation_source + - ../slots/observed_name + - ../slots/refers_or_referred_to + - ../slots/source +# - ./Appellation classes: CustodianObservation: class_uri: hc:CustodianObservation @@ -72,18 +58,18 @@ classes: - observation_source - observed_name - source - - specificity_annotation - has_or_had_score slot_usage: observation_source: - range: string +# range: string observed_name: - range: CustodianAppellation +# range: string # uriorcurie + # range: CustodianAppellation required: true has_or_had_label: - range: string +# range: string multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_label: Rijksmuseum Amsterdam @@ -94,17 +80,19 @@ classes: observation_date: range: date source: - range: uriorcurie +# range: string # uriorcurie required: true observation_context: - range: string +# range: string refers_or_referred_to: - range: CustodianLegalStatus +# range: string # uriorcurie + # range: CustodianLegalStatus required: false examples: - value: https://nde.nl/ontology/hc/legal/stichting-rijksmuseum has_or_had_value: - range: ConfidenceValue +# range: string # uriorcurie + # range: ConfidenceValue has_or_had_type: equals_expression: '["hc:GalleryType", "hc:LibraryType", "hc:ArchiveOrganizationType", "hc:MuseumType", "hc:OfficialInstitutionType", "hc:ResearchOrganizationType", diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianPlace.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianPlace.yaml index 79673af2e7..aeaddc01ca 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianPlace.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianPlace.yaml @@ -1,49 +1,39 @@ id: https://nde.nl/ontology/hc/class/custodian-place name: custodian_place_class title: CustodianPlace Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + geo: http://www.opengis.net/ont/geosparql# + prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../enums/PlaceSpecificityEnum -- ../slots/country -- ../slots/has_or_had_auxiliary_entities -- ../slots/has_or_had_geographic_subdivision -- ../slots/has_or_had_location -- ../slots/has_or_had_score -- ../slots/is_or_was_based_on -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/place_custodian_ref -- ../slots/place_language -- ../slots/place_name -- ../slots/place_note -- ../slots/place_specificity -- ../slots/refers_to_custodian -- ../slots/settlement -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./AuxiliaryPlace -- ./Country -- ./Custodian -- ./CustodianObservation -- ./FeaturePlace -- ./GeoSpatialPlace -- ./Observation -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./Settlement -- ./SpecificityAnnotation -- ./Subregion -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - ./ReconstructedEntity + - linkml:types + - ../enums/PlaceSpecificityEnum + - ../slots/country + - ../slots/has_or_had_auxiliary_entities + - ../slots/has_or_had_geographic_subdivision + - ../slots/has_or_had_location + - ../slots/has_or_had_score + - ../slots/is_or_was_based_on + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/place_custodian_ref + - ../slots/place_language + - ../slots/place_name + - ../slots/place_note + - ../slots/place_specificity + - ../slots/refers_to_custodian + - ../slots/settlement + - ../slots/temporal_extent classes: CustodianPlace: is_a: ReconstructedEntity class_uri: crm:E53_Place - description: "Nominal place designation used to identify a heritage custodian.\n\nCRITICAL: This is NOT geographic coordinates! This is a NOMINAL REFERENCE\nto a place as a way of identifying the custodian.\n\nCustodianPlace represents how people refer to a custodian through place:\n- \"het herenhuis in de Schilderswijk\" (neighborhood reference)\n- \"the mansion\" (generic building reference)\n- \"Rijksmuseum\" (building name as place, not institution name)\n- \"het museum op het Museumplein\" (landmark reference)\n\n**Relationship to FeaturePlace**:\n\nCustodianPlace provides the NOMINAL REFERENCE (WHERE):\n- \"Rijksmuseum\" (building name used as place identifier)\n\nFeaturePlace classifies the FEATURE TYPE (WHAT TYPE):\n- MUSEUM building type\n\nExample:\n```yaml\nCustodianPlace:\n place_name: \"Rijksmuseum\"\n has_feature_type:\n feature_type: MUSEUM\n feature_description: \"Neo-Gothic museum building (1885)\"\n```\n\n**Distinction from GeoSpatialPlace class**:\n\n| CustodianPlace\ - \ | GeoSpatialPlace |\n|----------------|-----------------|\n| Nominal reference | Geographic coordinates |\n| \"the mansion in the Schilderswijk\" | lat: 52.0705, lon: 4.2894 |\n| Emic/contextual | Precise/measured |\n| May be ambiguous | Unambiguous |\n| Identifies custodian | Locates custodian |\n| Source: archives, oral history | Source: GPS, cadastral surveys |\n\n**Relationship to GeoSpatialPlace**:\n\nCustodianPlace.has_geospatial_location \u2192 GeoSpatialPlace\n\nA nominal place reference can link to precise geospatial coordinates:\n- CustodianPlace: \"the mansion in the Schilderswijk, Den Haag\"\n- GeoSpatialPlace: lat 52.0705, lon 4.2894, WKT: POINT(4.2894 52.0705)\n\n**Generated by ReconstructionActivity**:\nCustodianPlace is ONE OF THREE possible outputs from ReconstructionActivity:\n1. CustodianLegalStatus - Formal legal entity\n2. CustodianName - Emic label\n3. CustodianPlace - Nominal place designation (THIS CLASS)\n\nAll three aspects independently identify the SAME\ - \ Custodian hub via refers_to_custodian.\n" + description: "Nominal place designation used to identify a heritage custodian." exact_mappings: - crm:E53_Place - schema:Place @@ -63,165 +53,11 @@ classes: - place_specificity - refers_to_custodian - settlement - - specificity_annotation - has_or_had_geographic_subdivision - has_or_had_score - temporal_extent - is_or_was_derived_from - is_or_was_generated_by - slot_usage: - place_name: - range: string - required: true - examples: - - value: het herenhuis in de Schilderswijk - - value: the mansion - - value: Rijksmuseum - place_language: - range: string - required: false - examples: - - value: nl - - value: en - place_specificity: - range: PlaceSpecificityEnum - required: false - examples: - - value: NEIGHBORHOOD - - value: BUILDING - - value: VAGUE - place_note: - range: string - required: false - examples: - - value: Used as place reference in archival documents, not as institution name - country: - range: Country - inlined: true - required: false - examples: - - value: https://nde.nl/ontology/hc/country/NL - - value: https://nde.nl/ontology/hc/country/PE - has_or_had_geographic_subdivision: - range: string - inlined: true - required: false - examples: - - value: https://nde.nl/ontology/hc/subregion/US-PA - - value: https://nde.nl/ontology/hc/subregion/ID-BA - settlement: - range: Settlement - inlined: true - required: false - examples: - - value: https://nde.nl/ontology/hc/settlement/2759794 - - value: https://nde.nl/ontology/hc/settlement/5206379 - - value: https://nde.nl/ontology/hc/feature/herenhuis-mansion - has_or_had_location: - range: GeoSpatialPlace - multivalued: true - inlined_as_list: true - required: false - examples: - - value: - has_or_had_location: - geospatial_id: https://nde.nl/ontology/hc/geo/rijksmuseum-building - latitude: 52.36 - longitude: 4.8852 - - value: - has_or_had_location: - geospatial_id: https://nde.nl/ontology/hc/geo/schilderswijk-herenhuis - latitude: 52.0705 - longitude: 4.2894 - has_accuracy_in_meters: 50.0 - spatial_resolution: NEIGHBORHOOD - has_or_had_auxiliary_entities: - range: AuxiliaryPlace - multivalued: true - inlined_as_list: true - required: false - examples: - - value: - - place_name: Depot Amersfoort - auxiliary_place_type: STORAGE_FACILITY - - place_name: Rijksmuseum Schiphol - auxiliary_place_type: BRANCH_OFFICE - is_or_was_based_on: - range: uriorcurie - multivalued: true - required: true - examples: - - value: https://w3id.org/heritage/observation/notarial-deed-1850 - is_or_was_generated_by: - range: ReconstructionActivity - required: false - place_custodian_ref: - range: uriorcurie - required: true - examples: - - value: https://nde.nl/ontology/hc/nl-zh-hag-m-xyz - temporal_extent: - range: TimeSpan - inlined: true - required: false - examples: - - value: - begin_of_the_begin: '1850-01-01' - end_of_the_end: '1900-12-31' - comments: - - 'Represents the PLACE ASPECT of a custodian: ''how is this custodian identified by place reference?''' - - One of three possible outputs from ReconstructionActivity (legal status, name, PLACE) - - 'CRITICAL: NOT geographic coordinates - this is a NOMINAL reference (name-based)' - - 'Example: ''het herenhuis in de Schilderswijk'' identifies a custodian through place naming' - - Distinct from GeoSpatialPlace which has lat/lon coordinates and WKT geometry - - Link to GeoSpatialPlace via has_or_had_location slot (migrated from has_geospatial_location) - - Can be vague ('the mansion') or specific ('het museum op het Museumplein 1') - - Historical place names capture how custodians were referenced in archival documents - - "MIGRATED: auxiliary_places \u2192 has_or_had_auxiliary_entities for AuxiliaryPlace sites (depots, branches, labs)" - - "Hierarchical pattern mirrors CustodianName \u2192 CustodianAppellation relationship" - see_also: - - http://www.cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E53 - - https://schema.org/Place - - http://www.opengis.net/ont/geosparql - - https://identifier.overheid.nl/tooi/def/ont/ - examples: - - value: - place_name: het herenhuis in de Schilderswijk - place_language: nl - place_specificity: NEIGHBORHOOD - place_note: Referenced in notarial deed from 1850 - has_or_had_location: - - has_or_had_location: - geospatial_id: https://nde.nl/ontology/hc/geo/schilderswijk-herenhuis - latitude: 52.0705 - longitude: 4.2894 - has_accuracy_in_meters: 100.0 - spatial_resolution: NEIGHBORHOOD - is_or_was_derived_from: - - https://w3id.org/heritage/observation/notarial-deed-1850 - is_or_was_generated_by: null - refers_to_custodian: https://nde.nl/ontology/hc/nl-zh-hag-m-xyz - - value: - place_name: Rijksmuseum - place_language: nl - place_specificity: BUILDING - place_note: Used as place reference in guidebooks, not as institution name - has_or_had_location: - - has_or_had_location: - geospatial_id: https://nde.nl/ontology/hc/geo/rijksmuseum-building - latitude: 52.36 - longitude: 4.8852 - has_or_had_geometry: - - has_or_had_format: - has_or_had_value: POLYGON((4.8830 52.3590, 4.8870 52.3590, 4.8870 52.3610, 4.8830 52.3610, 4.8830 52.3590)) - has_or_had_type: - has_or_had_label: POLYGON - osm_id: way/27083908 - has_accuracy_in_meters: 1.0 - spatial_resolution: BUILDING - is_or_was_derived_from: - - https://w3id.org/heritage/observation/guidebook-1920 - refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianSourceFile.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianSourceFile.yaml index c748e75fcb..c781602b8e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianSourceFile.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianSourceFile.yaml @@ -8,32 +8,11 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/EnrichmentStatusEnum -- ../enums/GoogleMapsStatusEnum -- ./ChAnnotatorBlock -- ./CustodianLegalNameClaim -- ./CustodianNameConsensus -- ./DigitalPlatform -- ./DigitalPlatformV2 -- ./GenealogiewerkbalkEnrichment -- ./GhcidBlock -- ./GoogleMapsEnrichment -- ./GoogleMapsPlaywrightEnrichment -- ./Identifier -- ./LogoEnrichment -- ./MuseumRegisterEnrichment -- ./NanIsilEnrichment -- ./NormalizedLocation -- ./OriginalEntry -- ./ProvenanceBlock -- ./TimespanBlock -- ./UnescoIchEnrichment -- ./WebClaimsBlock -- ./WebEnrichment -- ./WikidataEnrichment -- ./YoutubeEnrichment -default_range: string + - linkml:types + - ../enums/EnrichmentStatusEnum + - ../enums/GoogleMapsStatusEnum + - ../slots/has_or_had_provenance +# default_range: string classes: CustodianSourceFile: description: "Root class representing the complete structure of a custodian YAML\ @@ -55,7 +34,7 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' slots: - - provenance + - has_or_had_provenance - has_or_had_web_claim - location - legal_status diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianTimelineEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianTimelineEvent.yaml index f7e5de6734..0ca88daec2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianTimelineEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianTimelineEvent.yaml @@ -14,34 +14,23 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../slots/archive_path -- ../slots/degree_of_certainty -- ../slots/has_or_had_description -- ../slots/has_or_had_file_path -- ../slots/has_or_had_level -- ../slots/has_or_had_method -- ../slots/has_or_had_note -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_approximate -- ../slots/is_or_was_retrieved_through -- ../slots/observation_ref -- ../slots/source_url -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./ApproximationStatus -- ./DataTierLevel -- ./DatePrecision -- ./RetrievalEvent -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Timestamp -- ../enums/OrganizationalChangeEventTypeEnum -- ../enums/TimelineExtractionMethodEnum + - linkml:types + - ../slots/archive_path + - ../slots/degree_of_certainty + - ../slots/has_or_had_description + - ../slots/has_or_had_file_path + - ../slots/has_or_had_level + - ../slots/has_or_had_method + - ../slots/has_or_had_note + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_approximate + - ../slots/is_or_was_retrieved_through + - ../slots/observation_ref + - ../slots/source_url + - ../slots/temporal_extent + - ../enums/OrganizationalChangeEventTypeEnum + - ../enums/TimelineExtractionMethodEnum default_prefix: hc classes: CustodianTimelineEvent: @@ -50,7 +39,7 @@ classes: \ source-specific details:\n- API queries and responses\n- XPath locations in archived HTML\n- Wikidata property references\n- Manual research notes\n\n**EVENT TYPE MAPPING**\n\nEvents are classified using OrganizationalChangeEventTypeEnum:\n- FOUNDING: Institution creation (opgericht, gesticht)\n- MERGER: Multiple institutions combining (fusie, samenvoeging)\n- DISSOLUTION: Institution closure (opgeheven, gesloten)\n- RENAMING: Name change only (hernoemd, naamswijziging)\n- TRANSFER: Physical relocation (verhuisd, verplaatst)\n- EXPANSION: Absorbing other units (uitgebreid, geabsorbeerd)\n- SPLIT: Division into multiple units (opgesplitst)\n- SPIN_OFF: Parts becoming independent (afgesplitst)\n- REDUCTION: Scope decrease (ingekrompen)\n- REORGANIZATION: Complex restructuring (herstructurering)\n\n**EXCLUDED EVENT TYPES**\n\nSome patterns are NOT mapped to events:\n- predecessor: This is a relationship, not an event\n- friends_org: Separate organization (Vrienden van...)\n- reopening:\ \ Not in OrganizationalChangeEventTypeEnum\n\n**EXAMPLE USAGE**\n\n```yaml\ntimeline_events:\n - event_type: FOUNDING\n event_date: \"2005-04-30\"\n degree_of_certainty:\n has_or_had_code: DAY\n is_or_was_approximate:\n approximation_level: EXACT\n description: >-\n Het RHC Drents Archief werd opgericht op 30 april 2005.\n Het is de voortzetting van het Rijksarchief in Drenthe (sinds 2000).\n source_url:\n - \"https://nl.wikipedia.org/wiki/Drents_Archief\"\n - \"https://bizzy.ai/nl/nl/52454037/regionaal-historisch-centrum-rhc-drents-archief\"\n extraction_method: api_response_regex\n extraction_timestamp: \"2025-12-16T10:00:00Z\"\n extraction_notes: >-\n Query: \"Regionaal Historisch Centrum (RHC) Drents Archief\" Assen opgericht\n Answer archived at: web/0002/linkup/linkup_founding_20251215T160438Z.json\n archive_path: web/0002/linkup/linkup_founding_20251215T160438Z.json\n has_or_had_level:\n has_or_had_code:\ \ TIER_4_INFERRED\n```\n" - exact_mappings: + broad_mappings: - prov:Entity close_mappings: - crm:E5_Event @@ -69,7 +58,6 @@ classes: - is_or_was_retrieved_through - observation_ref - source_url - - specificity_annotation - has_or_had_score slot_usage: has_or_had_type: @@ -117,8 +105,8 @@ classes: has_or_had_note: required: false has_or_had_level: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: true description: 'Data quality tier indicating trustworthiness of this event data. Standard codes: TIER_1_AUTHORITATIVE, TIER_2_VERIFIED, TIER_3_CROWD_SOURCED, TIER_4_INFERRED' examples: @@ -130,11 +118,7 @@ classes: has_or_had_description: Verified against institutional website observation_ref: required: false - rules: - - preconditions: - slot_conditions: - temporal_extent: - value_presence: PRESENT + comments: - 'Source-agnostic design - see Rule 37: Provenance Separation' - Use observation_ref to link to detailed source provenance diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianType.yaml index 373a9968a4..d2d450c172 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianType.yaml @@ -4,24 +4,17 @@ title: Custodian Type Classification prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ../slots/created -- ../slots/custodian_type_broader -- ../slots/custodian_type_narrower -- ../slots/custodian_type_related -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/has_or_had_type_code -- ../slots/modified -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier -- ./CustodianType + - linkml:types + - ../slots/created + - ../slots/custodian_type_broader + - ../slots/custodian_type_narrower + - ../slots/custodian_type_related + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/has_or_had_type_code + - ../slots/modified classes: CustodianType: class_uri: skos:Concept @@ -46,32 +39,31 @@ classes: - custodian_type_related - has_or_had_type_code - modified - - specificity_annotation - has_or_had_score - has_or_had_description - has_or_had_label - - has_or_had_identifier + - identified_by slot_usage: has_or_had_type_code: - range: string +# range: string required: false pattern: ^[ABCDEFGHILMNOPRSTUX]$ - has_or_had_identifier: + identified_by: description: 'Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ' - range: uriorcurie +# range: string # uriorcurie required: true identifier: true multivalued: true pattern: ^(https://nde\.nl/ontology/hc/type/[a-z-]+/[QP][0-9]+|Q[0-9]+)$ has_or_had_label: - range: string +# range: string required: true multivalued: true has_or_had_description: - range: string +# range: string required: false custodian_type_broader: range: CustodianType @@ -97,7 +89,7 @@ classes: - GLAMORCUBESFIXPHDNT code derived from class hierarchy (2026-01-05 migration) examples: - value: - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/type/museum/Q207694 - Q207694 has_or_had_type_code: M diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DOI.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DOI.yaml index 0cc27e870b..8ee5ea2a28 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DOI.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DOI.yaml @@ -3,13 +3,13 @@ name: DOI title: DOI Identifier description: Digital Object Identifier (DOI). MIGRATED from doi slot (2026-01-26). Subclass of Identifier. imports: -- linkml:types -- ../slots/has_or_had_label -- ./Identifier + - linkml:types + - ../slots/has_or_had_label default_prefix: hc classes: DOI: is_a: Identifier + class_uri: schema:PropertyValue description: Digital Object Identifier. annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DarkArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DarkArchive.yaml index 54f63b655e..9dbb9fa254 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DarkArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DarkArchive.yaml @@ -11,30 +11,19 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_embargo_end_date -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/preservation_purpose -- ../slots/refers_to_access_policy -- ../slots/specificity_annotation -- ./AccessPolicy -- ./ArchiveOrganizationType -- ./CollectionType -- ./DarkArchiveRecordSetType -- ./DarkArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/has_or_had_embargo_end_date + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/preservation_purpose + - ../slots/refers_to_access_policy classes: DarkArchive: - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type @@ -42,20 +31,19 @@ classes: - hold_or_held_record_set_type - preservation_purpose - refers_to_access_policy - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by description: "Archive preserving materials for future use but with NO CURRENT ACCESS.\n\n**Wikidata**: Q112796578 (Dark Archive)\n\n**DEFINITION**:\n\nDark Archive is a preservation repository where materials are stored with \nNO ACCESS provided to users. The primary purpose is long-term preservation\nrather than current use. Access may be triggered by specific future events.\n\n**ACCESS SPECTRUM** (Light/Dim/Dark classification):\n\n| Type | Access Level | Purpose |\n|------|--------------|---------|\n| Light Archive (Q112815447) | Broadly accessible | Discovery & use |\n| Dim Archive (Q112796779) | Limited access | Selective access |\n| **Dark Archive** | No current access | Preservation only |\n\n**COMMON USE CASES**:\n\n1. **Digital Preservation**\n - Trusted Digital Repositories (TDR)\n - Backup/disaster recovery copies\n - Integrity verification archives\n\n2. **Rights-Restricted Content**\n - Orphan works awaiting rights clearance\n - Embargoed materials\n - Donor\ \ restrictions (sealed for X years)\n\n3. **Sensitive Materials**\n - Security-classified records\n - Privacy-protected personal data\n - Legally sealed court records\n\n4. **Format Migration**\n - Source materials preserved after migration\n - Original files kept for verification\n\n**TRIGGER EVENTS** (when dark becomes accessible):\n- Expiration of embargo period\n- Rights clearance obtained\n- Donor permission granted\n- Declassification decision\n- Original system failure (disaster recovery)\n\n**MULTILINGUAL LABELS**:\n- Dark Archive (de) [uses English term]\n\n**RELATED TYPES**:\n- LightArchive (Q112815447) - broadly accessible\n- DimArchive (Q112796779) - limited access\n- ClosedSpace - physical restricted access areas\n\n**ONTOLOGICAL ALIGNMENT**:\n- **SKOS**: skos:Concept (type classification)\n- **PREMIS**: premis:RightsStatus for access restrictions\n- **RiC-O**: rico:RecordSet with access restrictions\n- **Wikidata**: Q112796578\n\n**PREMIS INTEGRATION**:\n\n\ Dark archives typically use PREMIS for preservation metadata:\n- `premis:RightsStatus` to document access restrictions\n- `premis:endDate` for embargo expiration dates\n- `premis:Agent` to identify the responsible custodian\n" slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_embargo_end_date: range: date examples: - value: '2050-01-01' preservation_purpose: - range: string +# range: string examples: - value: disaster_recovery - value: rights_pending @@ -87,7 +75,7 @@ classes: - http://www.loc.gov/premis/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q112796578 + identified_by: https://nde.nl/ontology/hc/type/archive/Q112796578 has_or_had_type_code: ARCHIVE has_or_had_label: - Dark Archive@en @@ -99,7 +87,7 @@ classes: access_level: CLOSED restriction_reason: Disaster recovery copy - access on system failure only - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q112796578-embargo + identified_by: https://nde.nl/ontology/hc/type/archive/Q112796578-embargo has_or_had_type_code: ARCHIVE has_or_had_label: - Embargoed Dark Archive@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DarkArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DarkArchiveRecordSetType.yaml index 6da32496c9..6d9e809982 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DarkArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DarkArchiveRecordSetType.yaml @@ -10,11 +10,9 @@ prefixes: premis: http://www.loc.gov/premis/rdf/v3/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_scope # was: type_scope -- ./CollectionType -- ./Scope # for has_or_had_scope range (2026-01-15) + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_scope # was: type_scope classes: DarkArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by DarkArchive custodians. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DarkArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DarkArchiveRecordSetTypes.yaml index 97be6fea9a..037bab4614 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DarkArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DarkArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./DarkArchive -- ./DarkArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./DarkArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: PreservationCopyCollection: is_a: DarkArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Preservation copies.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept DigitalPreservationFonds: is_a: DarkArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Digital preservation records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by DarkArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DataFormat.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DataFormat.yaml index d3fecd973c..3d1a357c07 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DataFormat.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DataFormat.yaml @@ -8,11 +8,10 @@ prefixes: dct: http://purl.org/dc/terms/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ./Label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type classes: DataFormat: class_uri: hc:DataFormat @@ -40,13 +39,13 @@ classes: - has_or_had_description slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie examples: - value: JsonFormat - value: CsvFormat has_or_had_label: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: label_text: JSON diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DataFormatTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DataFormatTypes.yaml index 7a1d304c2e..b3c6e88f45 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DataFormatTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DataFormatTypes.yaml @@ -6,8 +6,7 @@ prefixes: hc: https://nde.nl/ontology/hc/ default_prefix: hc imports: -- linkml:types -- ./DataFormat + - linkml:types classes: JsonFormat: is_a: DataFormatType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DataLicensePolicy.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DataLicensePolicy.yaml index bc5b845351..eb881f291a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DataLicensePolicy.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DataLicensePolicy.yaml @@ -9,17 +9,12 @@ prefixes: odrl: http://www.w3.org/ns/odrl/2/ hc: https://nde.nl/ontology/hc/ imports: -- linkml:types -- ../enums/DataLicenseTypeEnum -- ../enums/DataOpennessLevelEnum -- ../enums/OpennessStanceEnum -- ../metadata -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/DataLicenseTypeEnum + - ../enums/DataOpennessLevelEnum + - ../enums/OpennessStanceEnum + - ../metadata + - ../slots/has_or_had_score default_prefix: hc classes: DataLicensePolicy: @@ -53,7 +48,6 @@ classes: - dcterms:Policy - schema:DigitalDocument slots: - - specificity_annotation - has_or_had_score - policy_name - is_or_was_effective_at @@ -85,7 +79,6 @@ classes: - dcterms:LicenseDocument - schema:CreativeWork slots: - - specificity_annotation - has_or_had_score - name ServiceLicense: @@ -118,5 +111,4 @@ classes: ' slots: - - specificity_annotation - has_or_had_score diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DataQualityFlag.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DataQualityFlag.yaml index 32d81aa0da..b6f45cb905 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DataQualityFlag.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DataQualityFlag.yaml @@ -8,8 +8,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: DataQualityFlag: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DataSensitivityLevel.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DataSensitivityLevel.yaml index 15a9213b29..05490fcc36 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DataSensitivityLevel.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DataSensitivityLevel.yaml @@ -19,10 +19,10 @@ prefixes: schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: @@ -59,13 +59,13 @@ classes: - has_or_had_description slot_usage: has_or_had_label: - range: string +# range: string required: true examples: - value: "Public" - value: "Strictly Confidential" has_or_had_code: - range: string +# range: string required: true pattern: "^[A-Z][A-Z0-9_]*$" examples: @@ -73,7 +73,7 @@ classes: - value: "CONFIDENTIAL" - value: "SPECIAL_CATEGORY" has_or_had_description: - range: string +# range: string required: false examples: - value: "Contains employee health records - requires explicit consent and strict access controls" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DataServiceEndpoint.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DataServiceEndpoint.yaml index f6dbb74701..a45edcf1b0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DataServiceEndpoint.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DataServiceEndpoint.yaml @@ -15,22 +15,15 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../enums/AuthenticationMethodEnum -- ../enums/DataServiceProtocolEnum -- ../enums/EndpointStatusEnum -- ../metadata -- ../slots/has_or_had_score -- ../slots/has_or_had_url -- ../slots/is_or_was_required -- ../slots/response_format -- ../slots/specificity_annotation -- ./DataServiceEndpointType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./URL + - linkml:types + - ../enums/AuthenticationMethodEnum + - ../enums/DataServiceProtocolEnum + - ../enums/EndpointStatusEnum + - ../metadata + - ../slots/has_or_had_score + - ../slots/has_or_had_url + - ../slots/is_or_was_required + - ../slots/response_format classes: DataServiceEndpoint: abstract: true @@ -39,7 +32,6 @@ classes: - is_or_was_required - response_format - has_or_had_url - - specificity_annotation - has_or_had_score description: "Abstract base class for API service endpoints exposed by heritage\ \ digital platforms.\n\n**Purpose:**\n\nModels the technical API endpoints discovered\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DataServiceEndpointType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DataServiceEndpointType.yaml index b7294db2b2..b9738f82fd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DataServiceEndpointType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DataServiceEndpointType.yaml @@ -10,20 +10,13 @@ prefixes: schema: http://schema.org/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_format -- ../slots/has_or_had_method -- ../slots/has_or_had_score -- ../slots/is_or_was_used_in -- ../slots/specification_url -- ../slots/specificity_annotation -- ./HeritageSector -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./DataServiceEndpointType + - linkml:types + - ../metadata + - ../slots/has_or_had_format + - ../slots/has_or_had_method + - ../slots/has_or_had_score + - ../slots/is_or_was_used_in + - ../slots/specification_url classes: DataServiceEndpointType: abstract: true @@ -74,13 +67,12 @@ classes: - https://www.w3.org/TR/skos-reference/#concepts - https://www.w3.org/TR/vocab-dcat-3/#Class:Data_Service slots: - - specificity_annotation - has_or_had_score - specification_url - has_or_had_format - has_or_had_method - is_or_was_used_in - - has_or_had_identifier + - identified_by - has_or_had_description - protocol_name - protocol_version @@ -91,11 +83,11 @@ classes: range: HeritageSector has_or_had_format: slot_uri: dcterms:format - range: string +# range: string multivalued: true has_or_had_method: slot_uri: schema:httpMethod - range: string +# range: string multivalued: true annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DataServiceEndpointTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DataServiceEndpointTypes.yaml index d0982d4922..e560ae0ab7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DataServiceEndpointTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DataServiceEndpointTypes.yaml @@ -10,18 +10,13 @@ prefixes: schema: http://schema.org/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_format -- ../slots/has_or_had_method -- ../slots/has_or_had_score -- ../slots/specification_url -- ../slots/specificity_annotation -- ./DataServiceEndpointType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./DataServiceEndpointType + - linkml:types + - ../metadata + - ../slots/has_or_had_format + - ../slots/has_or_had_method + - ../slots/has_or_had_score + - ../slots/specification_url classes: SRUEndpoint: is_a: DataServiceEndpointType @@ -62,7 +57,6 @@ classes: - Library-focused search protocol - successor to Z39.50 - Uses CQL (Contextual Query Language) slots: - - specificity_annotation - has_or_had_score annotations: specificity_score: 0.1 @@ -109,7 +103,6 @@ classes: comments: - Federated search standard - browser integration support slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -159,7 +152,6 @@ classes: - International Image Interoperability Framework - Image API - Global standard for heritage image delivery slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -207,7 +199,6 @@ classes: - International Image Interoperability Framework - Presentation API - Manifests describe object structure for viewers slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -253,7 +244,6 @@ classes: - W3C standard for querying RDF graphs - Foundation of Linked Open Data infrastructure slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -296,7 +286,6 @@ classes: - Modern API query language - growing adoption in GLAM - Alternative to REST for complex data requirements slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -338,7 +327,6 @@ classes: - IETF standard for content syndication - More structured than RSS - supports namespaces slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -378,7 +366,6 @@ classes: - Legacy syndication format - still widely supported - Simpler than Atom but less extensible slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DataSource.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DataSource.yaml index 28e47481db..77607e1bb5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DataSource.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DataSource.yaml @@ -15,11 +15,11 @@ prefixes: schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/source_url + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/source_url default_prefix: hc classes: @@ -55,13 +55,13 @@ classes: - source_url slot_usage: has_or_had_label: - range: string +# range: string required: true examples: - value: "WhatsApp" - value: "LinkedIn Profile" has_or_had_code: - range: string +# range: string required: true pattern: "^[A-Z][A-Z0-9_]*$" examples: @@ -69,12 +69,12 @@ classes: - value: "LINKEDIN" - value: "WEB_SCRAPE" has_or_had_description: - range: string +# range: string required: false examples: - value: "Profile information extracted from WhatsApp message exchange" source_url: - range: uriorcurie +# range: string # uriorcurie required: false examples: - value: "https://linkedin.com/in/example-profile" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DataTierLevel.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DataTierLevel.yaml index b2707a4d2d..29509bdf33 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DataTierLevel.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DataTierLevel.yaml @@ -15,10 +15,10 @@ prefixes: dqv: http://www.w3.org/ns/dqv# imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: @@ -53,20 +53,20 @@ classes: - has_or_had_description slot_usage: has_or_had_label: - range: string +# range: string required: true examples: - value: "Authoritative" - value: "Inferred" has_or_had_code: - range: string +# range: string required: true pattern: "^TIER_[1-4]_[A-Z_]+$" examples: - value: "TIER_1_AUTHORITATIVE" - value: "TIER_4_INFERRED" has_or_had_description: - range: string +# range: string required: false examples: - value: "Extracted from NDE CSV registry - authoritative Dutch heritage data" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DataTierSummary.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DataTierSummary.yaml index 9e99882839..70d824baf6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DataTierSummary.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DataTierSummary.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# dqv: http://www.w3.org/ns/dqv# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: DataTierSummary: description: "Summary of data quality tiers present in an entry. Lists fields\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Dataset.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Dataset.yaml index ebf0acabb3..3345aab4cd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Dataset.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Dataset.yaml @@ -10,18 +10,15 @@ prefixes: dcterms: http://purl.org/dc/terms/ default_prefix: hc imports: -- linkml:types -- ../slots/can_or_could_be_retrieved_from -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/has_or_had_title -- ../slots/is_or_was_published_by -- ../slots/linked_data_access -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore + - linkml:types + - ../slots/retrieved_from + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/has_or_had_title + - ../slots/is_or_was_published_by + - ../slots/linked_data_access classes: Dataset: class_uri: dcat:Dataset @@ -29,12 +26,11 @@ classes: slots: - has_or_had_label - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_title - - can_or_could_be_retrieved_from + - retrieved_from - linked_data_access - is_or_was_published_by - - specificity_annotation - has_or_had_score annotations: specificity_score: 0.5 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DatePrecision.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DatePrecision.yaml index a9730e8db5..260fc484c8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DatePrecision.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DatePrecision.yaml @@ -14,10 +14,10 @@ prefixes: time: http://www.w3.org/2006/time# imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: @@ -49,13 +49,13 @@ classes: - has_or_had_description slot_usage: has_or_had_label: - range: string +# range: string required: true examples: - value: "Day" - value: "Year" has_or_had_code: - range: string +# range: string required: true pattern: "^[A-Z]+$" examples: @@ -63,7 +63,7 @@ classes: - value: "YEAR" - value: "UNKNOWN" has_or_had_description: - range: string +# range: string required: false examples: - value: "Full date with day precision (YYYY-MM-DD format)" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DeacidificationFacility.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DeacidificationFacility.yaml index 0f5bec7b93..6dbd4a2cf4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DeacidificationFacility.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DeacidificationFacility.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: DeacidificationFacility: class_uri: schema:Room diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DeceasedStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DeceasedStatus.yaml index 6ee2a60b79..7a0da2d04f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DeceasedStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DeceasedStatus.yaml @@ -9,15 +9,12 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/is_or_was_caused_by -- ../slots/occurs_or_occurred_at -- ../slots/temporal_extent -- ./CauseOfDeath -- ./Place -- ./TimeSpan + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/is_or_was_caused_by + - ../slots/occurs_or_occurred_at + - ../slots/temporal_extent classes: DeceasedStatus: class_uri: schema:DeathEvent @@ -42,7 +39,7 @@ classes: range: TimeSpan inlined: true has_or_had_description: - range: string +# range: string occurs_or_occurred_at: range: Place inlined: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Deliverable.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Deliverable.yaml index ecb55502e7..29f2d8ffdb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Deliverable.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Deliverable.yaml @@ -17,14 +17,13 @@ description: 'Represents a tangible output or result from a project or activity. or completed work product. ' imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_status -- ../slots/has_or_had_type -- ../slots/has_or_had_url -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_status + - ../slots/has_or_had_type + - ../slots/has_or_had_url + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -50,14 +49,14 @@ classes: - temporal_extent slot_usage: has_or_had_type: - range: string +# range: string examples: - value: software - value: dataset - value: finding_aid - value: digitized_collection has_or_had_label: - range: string +# range: string examples: - value: Heritage Data Model v2.0 has_or_had_url: @@ -65,7 +64,7 @@ classes: examples: - value: https://doi.org/10.1234/deliverable has_or_had_status: - range: string +# range: string examples: - value: in_progress - value: completed diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Department.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Department.yaml index dba20d76e8..9613a1b658 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Department.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Department.yaml @@ -13,40 +13,21 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# default_prefix: hc imports: -- linkml:types -- ../slots/contact_point -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/has_or_had_staff_member -- ../slots/has_or_had_type -- ../slots/is_or_was_dissolved_by -- ../slots/is_or_was_established_by -- ../slots/is_or_was_managed_by -- ../slots/located_at -- ../slots/mandate -- ../slots/parent_department -- ../slots/refers_to_custodian -- ../slots/specificity_annotation -- ./AuxiliaryPlace -- ./Collection -- ./Custodian -- ./Description -- ./DissolutionEvent -- ./EstablishmentEvent -- ./Identifier -- ./Label -- ./LabelType -- ./LabelTypes -- ./Manager -- ./OrganizationalStructure -- ./PersonObservation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./Department + - linkml:types + - ../slots/contact_point + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/has_or_had_staff_member + - ../slots/has_or_had_type + - ../slots/is_or_was_dissolved_by + - ../slots/is_or_was_established_by + - ../slots/is_or_was_managed_by + - ../slots/located_at + - ../slots/mandate + - ../slots/parent_department + - ../slots/refers_to_custodian classes: Department: class_uri: org:OrganizationalUnit @@ -69,18 +50,17 @@ classes: - has_or_had_type - has_or_had_description - is_or_was_managed_by - - has_or_had_identifier + - identified_by - is_or_was_dissolved_by - located_at - mandate - parent_department - refers_to_custodian - - specificity_annotation - has_or_had_staff_member - has_or_had_score slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: @@ -108,14 +88,14 @@ classes: inlined: true required: false has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: has_or_had_text: The Colonial Records Department preserves and provides access to government records from the Dutch colonial period (1602-1949). Holdings include VOC archives, colonial administration files, and diplomatic correspondence. mandate: - range: string +# range: string examples: - value: Established by Royal Decree of 1891 to manage and preserve records of the Dutch East Indies administration. Mandate expanded in 1950 to include all colonial-era records. parent_department: @@ -138,7 +118,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/aux-place/nationaal-archief-building-b contact_point: - range: string +# range: string examples: - value: colonial-records@nationaalarchief.nl - value: https://www.nationaalarchief.nl/onderzoeken/colonial-records @@ -164,7 +144,7 @@ classes: - https://www.ica.org/standards/RiC/ontology#Agent examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/dept/nationaal-archief-colonial-records + identified_by: https://nde.nl/ontology/hc/dept/nationaal-archief-colonial-records has_or_had_label: - has_or_had_text: Colonial Records Department has_or_had_type: DepartmentName @@ -179,7 +159,7 @@ classes: contact_point: colonial-records@nationaalarchief.nl refers_to_custodian: https://nde.nl/ontology/hc/nl-zh-hag-a-na - value: - has_or_had_identifier: https://nde.nl/ontology/hc/dept/rijksmuseum-paintings + identified_by: https://nde.nl/ontology/hc/dept/rijksmuseum-paintings has_or_had_label: - has_or_had_text: Paintings Department has_or_had_type: DepartmentName diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DepartmentalArchives.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DepartmentalArchives.yaml index 1368bed73a..3d40cfa008 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DepartmentalArchives.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DepartmentalArchives.yaml @@ -10,64 +10,50 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_service_area -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_applicable_in -- ../slots/is_or_was_part_of_archive_series -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DepartmentalArchivesRecordSetType -- ./DepartmentalArchivesRecordSetTypes -- ./ServiceArea -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment -- ./Country + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_service_area + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_applicable_in + - ../slots/is_or_was_part_of_archive_series + - ../slots/is_or_was_related_to classes: DepartmentalArchives: - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - is_or_was_part_of_archive_series - has_or_had_type - has_or_had_service_area - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by description: "Departmental archives in France (archives d\xE9partementales).\n\n**Wikidata**: Q2860456 (archives d\xE9partementales)\n\n**\u26A0\uFE0F GEOGRAPHIC RESTRICTION: FRANCE ONLY**\n\nThis type applies ONLY to French d\xE9partement-level archives. For archives\nat comparable administrative levels in other countries, use:\n- DistrictArchiveGermany (Q130757255) for Kreisarchiv\n- ProvincialArchive (Q5403345) for provincial archives\n- RegionalArchive (Q27032392) for other regional archives\n\n**DEFINITION**:\n\nArchives d\xE9partementales are public archives at the d\xE9partement level in France.\nThey are the primary repositories for:\n- Pre-revolutionary records (ancien r\xE9gime documents)\n- Civil registration (\xE9tat civil) from 1792\n- Notarial archives\n- Cadastral/land records\n- Local government records\n- Regional ecclesiastical records\n\n**FRENCH TERRITORIAL ARCHIVE HIERARCHY**:\n\n```\nArchives nationales (national)\n \u2514\u2500\u2500 Archives r\xE9gionales (regional)\n\ \ \u2514\u2500\u2500 Archives d\xE9partementales (THIS TYPE)\n \u2514\u2500\u2500 Archives communales (municipal)\n```\n\n**STANDARDIZATION**:\n\nAll 101 d\xE9partements (96 metropolitan + 5 overseas) have departmental archives.\nThey use standardized classification (s\xE9rie/sous-s\xE9rie) based on circulars\nfrom Archives de France.\n\n**COMMON SERIES**:\n- S\xE9rie A-L: Ancien r\xE9gime\n- S\xE9rie M-Z: Post-1790 records\n- S\xE9rie E: Civil registration (\xE9tat civil)\n- S\xE9rie Q: National property (biens nationaux)\n\n**MULTILINGUAL LABELS**:\n- D\xE9partement-Archiv (de)\n- archivos departamentales (es)\n- archives d\xE9partementales (fr)\n\n**RELATED TYPES**:\n- ArchivesRegionales (Q2860567) - regional archives (France)\n- PublicArchivesInFrance (Q2421452) - public archives in France\n- MunicipalArchive (Q604177) - communal archives\n" slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_service_area: range: ServiceArea inlined: true required: false - description: "French d\xE9partement served by this archive.\nMIGRATED from 'departement_code' and 'departement_name' slots per slot_fixes.yaml (Rule 53).\n\nUses ServiceArea class with:\n- service_area_name: D\xE9partement name (e.g., \"Bouches-du-Rh\xF4ne\")\n- has_or_had_identifier: D\xE9partement code as structured identifier (e.g., \"13\")\n" + description: "French d\xE9partement served by this archive.\nMIGRATED from 'departement_code' and 'departement_name' slots per slot_fixes.yaml (Rule 53).\n\nUses ServiceArea class with:\n- service_area_name: D\xE9partement name (e.g., \"Bouches-du-Rh\xF4ne\")\n- identified_by: D\xE9partement code as structured identifier (e.g., \"13\")\n" examples: - value: service_area_name: Paris - has_or_had_identifier: + identified_by: - value: service_area_name: "Bouches-du-Rh\xF4ne" - has_or_had_identifier: + identified_by: - value: service_area_name: "La R\xE9union" - has_or_had_identifier: + identified_by: covers_country: alpha_2: FR is_or_was_part_of_archive_series: - range: string +# range: string multivalued: true examples: - value: @@ -82,11 +68,10 @@ classes: maximum_cardinality: 1 examples: - value: - has_or_had_identifier: FR + identified_by: FR has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' rules: - - description: DepartmentalArchives MUST have applicable_countries containing "FR" (France). This is a mandatory geographic restriction for French departmental archives. exact_mappings: - wd:Q2860456 close_mappings: @@ -110,7 +95,7 @@ classes: - https://francearchives.gouv.fr/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q2860456 + identified_by: https://nde.nl/ontology/hc/type/archive/Q2860456 has_or_had_type_code: ARCHIVE has_or_had_label: - Departmental Archives@en @@ -120,7 +105,7 @@ classes: has_or_had_description: Departmental archives in France has_or_had_service_area: service_area_name: "Bouches-du-Rh\xF4ne" - has_or_had_identifier: + identified_by: covers_country: alpha_2: FR is_or_was_part_of_archive_series: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DepartmentalArchivesRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DepartmentalArchivesRecordSetType.yaml index f10d7bdeeb..11a1cb9570 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DepartmentalArchivesRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DepartmentalArchivesRecordSetType.yaml @@ -9,13 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to classes: DepartmentalArchivesRecordSetType: description: A rico:RecordSetType for classifying collections of French departmental archive materials within heritage institutions. @@ -37,6 +34,5 @@ classes: custodian_types: "['*']" slots: - has_or_had_type - - specificity_annotation - has_or_had_score - is_or_was_related_to diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DepartmentalArchivesRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DepartmentalArchivesRecordSetTypes.yaml index 736ba5376a..933fb87a36 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DepartmentalArchivesRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DepartmentalArchivesRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./DepartmentalArchives -- ./DepartmentalArchivesRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./DepartmentalArchivesRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: DepartmentAdministrationFonds: is_a: DepartmentalArchivesRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Departmental government records (France).\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept PrefectureSeries: is_a: DepartmentalArchivesRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Prefecture administrative records.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by DepartmentalArchives custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DeploymentEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DeploymentEvent.yaml index 1140f504a1..b66c6393c1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DeploymentEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DeploymentEvent.yaml @@ -12,19 +12,11 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_score -- ../slots/refers_to_custodian -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./Custodian -- ./Description -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_score + - ../slots/refers_to_custodian + - ../slots/temporal_extent classes: DeploymentEvent: class_uri: prov:Activity @@ -75,7 +67,6 @@ classes: - temporal_extent - refers_to_custodian - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: @@ -96,8 +87,8 @@ classes: examples: - value: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DepositArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DepositArchive.yaml index ee02e34a27..66bbcca041 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DepositArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DepositArchive.yaml @@ -11,52 +11,39 @@ prefixes: premis: http://www.loc.gov/premis/rdf/v3/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_service -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/retention_tracking -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DepositArchiveRecordSetType -- ./DepositArchiveRecordSetTypes -- ./DispositionService -- ./Scope -- ./SpecificityAnnotation -- ./StorageType -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_service + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/retention_tracking classes: DepositArchive: - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - has_or_had_service - hold_or_held_record_set_type - retention_tracking - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by description: "Archive for intermediate/semi-current records awaiting final disposition.\n\n**Wikidata**: Q244904 (deposit archive / Zwischenarchiv / archive interm\xE9diaire)\n\n**DEFINITION**:\n\nDeposit Archive (also called \"intermediate archive\" or \"records center\")\nmanages records that are:\n- No longer actively used (not current archive)\n- Not yet transferred to permanent archive\n- Awaiting retention period completion or disposition decision\n\n**ARCHIVAL LIFECYCLE POSITION**:\n\n```\nCurrent Archive (active use)\n \u2193\nDEPOSIT ARCHIVE (semi-current) \u2190 THIS TYPE\n \u2193\nHistorical Archive (permanent preservation)\n or\nDestruction (per retention schedule)\n```\n\n**KEY CHARACTERISTICS**:\n\n1. **Custody Without Ownership**: Deposit archives often hold materials \n deposited by other organizations while ownership remains with depositor\n\n2. **Retention Management**: Tracks retention schedules and triggers \n disposition actions (transfer or destruction)\n\ \n3. **Efficient Storage**: Uses cost-effective storage for semi-current\n records with lower access frequency\n\n4. **Retrieval Services**: Provides retrieval for depositing organizations\n as needed\n\n**SPECIAL LINKAGE: StorageType**\n\nDeposit archives operate specialized storage facilities. This class links\nto StorageType to describe the deposit storage characteristics:\n- operates_storage \u2192 Storage[] \u2192 has_storage_type \u2192 StorageType\n- StorageType code: DEPOSIT_STORAGE\n\n```\nDepositArchive (custodian type)\n \u2502\n \u2514\u2500\u2500 operates_storage \u2192 Storage (facility instance)\n \u2502\n \u2514\u2500\u2500 has_storage_type \u2192 StorageType\n \u2514\u2500\u2500 DEPOSIT_STORAGE\n```\n\n**MULTILINGUAL LABELS**:\n- Zwischenarchiv (de)\n- archivo de dep\xF3sito (es)\n- archive interm\xE9diaire (fr)\n\n**RELATED TYPES**:\n- CurrentArchive (Q3621648) - active records\ \ (earlier phase)\n- HistoricalArchive (Q3621673) - permanent records (later phase)\n- StorageType.DEPOSIT_STORAGE - storage type for deposit facilities\n\n**ONTOLOGICAL ALIGNMENT**:\n- **SKOS**: skos:Concept (type classification)\n- **RiC-O**: rico:RecordSet for deposited materials\n- **PREMIS**: premis:StorageLocation for storage facilities\n- **Wikidata**: Q244904\n" slot_usage: - has_or_had_identifier: + identified_by: retention_tracking: range: boolean examples: - value: true has_or_had_service: - range: string +# range: string multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_type: SecureDestructionService @@ -91,7 +78,7 @@ classes: - https://www.iso.org/standard/62542.html examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q244904 + identified_by: https://nde.nl/ontology/hc/type/archive/Q244904 has_or_had_type_code: ARCHIVE has_or_had_label: - Deposit Archive@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DepositArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DepositArchiveRecordSetType.yaml index db22f1133a..9497f905db 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DepositArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DepositArchiveRecordSetType.yaml @@ -10,11 +10,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# premis: http://www.loc.gov/premis/rdf/v3/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_scope # was: type_scope -- ./CollectionType -- ./Scope # for has_or_had_scope range (2026-01-15) + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_scope # was: type_scope classes: DepositArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by DepositArchive custodians. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DepositArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DepositArchiveRecordSetTypes.yaml index 127d955130..9808f43a02 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DepositArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DepositArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./DepositArchive -- ./DepositArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./DepositArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: DepositedRecordsFonds: is_a: DepositArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Records deposited by external bodies.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DepositingOrganization.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DepositingOrganization.yaml index 3eeecc097e..d93a91820e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DepositingOrganization.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DepositingOrganization.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: DepositingOrganization: class_uri: schema:Organization diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Description.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Description.yaml index bf927fcd7b..9467c7e1a7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Description.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Description.yaml @@ -13,21 +13,15 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/description_type -- ../slots/has_or_had_content -- ../slots/has_or_had_score # was: template_specificity -- ../slots/language -- ../slots/specificity_annotation -- ./Content -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/description_type + - ../slots/has_or_had_content + - ../slots/has_or_had_score # was: template_specificity + - ../slots/language classes: Description: - class_uri: dcterms:description + class_uri: hc:Description description: | A typed description with optional language tagging and type metadata. @@ -58,10 +52,8 @@ classes: - `unit_description` (string) - `type_description` (string) - exact_mappings: - - dcterms:description - close_mappings: + - dcterms:description - skos:definition - rdfs:comment @@ -73,22 +65,21 @@ classes: - has_or_had_content - description_type - language - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: # DEPRECATED 2026-01-25: description_text migrated to has_or_had_content + Content (Rule 53) # Old slot archived: modules/slots/archive/description_text_archived_20260125.yaml has_or_had_content: - range: string +# range: string required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_label: "Zone Description" has_or_had_description: "Climate-controlled storage zone with dedicated HVAC for archival materials." description_type: - range: string +# range: string required: false examples: - value: binding @@ -96,7 +87,7 @@ classes: - value: budget - value: zone language: - range: string +# range: string required: false pattern: "^[a-z]{2}$" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml index 4423b58e38..7c1714c27f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml @@ -10,16 +10,13 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_geographic_extent -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_time_interval -- ../slots/has_or_had_type -- ../slots/is_or_was_generated_by -- ./ConfidenceScore -- ./GenerationEvent -- ./TimeInterval + - linkml:types + - ../slots/has_or_had_geographic_extent + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_time_interval + - ../slots/has_or_had_type + - ../slots/is_or_was_generated_by classes: DetectedEntity: class_uri: prov:Entity @@ -58,7 +55,7 @@ classes: - schema:Thing - crm:E21_Person slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_type - is_or_was_generated_by @@ -66,20 +63,20 @@ classes: - has_or_had_geographic_extent - start_time slot_usage: - has_or_had_identifier: - range: string + identified_by: +# range: string required: false examples: - value: detection-001 - value: transition-fade-00:03:15 has_or_had_type: - range: string +# range: string required: true examples: - value: TransitionType:FADE_IN - value: TextType:TITLE has_or_had_label: - range: string +# range: string required: false examples: - value: Museum Tour @@ -141,7 +138,7 @@ classes: - http://www.cidoc-crm.org/cidoc-crm/E73_Information_Object examples: - value: - has_or_had_identifier: transition-001 + identified_by: transition-001 has_or_had_type: TransitionType:FADE_IN is_or_was_generated_by: has_or_had_score: @@ -150,7 +147,7 @@ classes: start_time: 00:03:15 has_or_had_time_interval: null - value: - has_or_had_identifier: text-001 + identified_by: text-001 has_or_had_type: TextType:TITLE has_or_had_label: Museum Tour Guide is_or_was_generated_by: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DetectedFace.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DetectedFace.yaml index 419dc5985e..8d2520780d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DetectedFace.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DetectedFace.yaml @@ -15,11 +15,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/is_or_was_generated_by -- ./ConfidenceScore -- ./GenerationEvent + - linkml:types + - ../slots/has_or_had_label + - ../slots/is_or_was_generated_by classes: DetectedFace: class_uri: schema:Thing diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DetectedLandmark.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DetectedLandmark.yaml index 04347fa4aa..4b76ec9765 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DetectedLandmark.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DetectedLandmark.yaml @@ -8,11 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/is_or_was_generated_by -- ./ConfidenceScore -- ./GenerationEvent + - linkml:types + - ../slots/has_or_had_label + - ../slots/is_or_was_generated_by classes: DetectedLandmark: class_uri: schema:LandmarksOrHistoricalBuildings diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DetectedLogo.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DetectedLogo.yaml index 57a01db9a9..e2cc85666b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DetectedLogo.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DetectedLogo.yaml @@ -15,11 +15,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/is_or_was_generated_by -- ./ConfidenceScore -- ./GenerationEvent + - linkml:types + - ../slots/has_or_had_label + - ../slots/is_or_was_generated_by classes: DetectedLogo: class_uri: schema:Thing diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DetectedObject.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DetectedObject.yaml index 264f6d3d7c..85cc443b72 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DetectedObject.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DetectedObject.yaml @@ -8,11 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/is_or_was_generated_by -- ./ConfidenceScore -- ./GenerationEvent + - linkml:types + - ../slots/has_or_had_label + - ../slots/is_or_was_generated_by classes: DetectedObject: class_uri: schema:Thing diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DetectionLevelType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DetectionLevelType.yaml index d120ba48f0..5f70eb984d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DetectionLevelType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DetectionLevelType.yaml @@ -11,11 +11,11 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: DetectionLevelType: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DetectionLevelTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DetectionLevelTypes.yaml index 23e91bbbbd..483a5b5866 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DetectionLevelTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DetectionLevelTypes.yaml @@ -6,10 +6,10 @@ prefixes: hc: https://nde.nl/ontology/hc/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_label -- ./DetectionLevelType + - ./DetectionLevelType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_label classes: HighDetectionLevel: is_a: DetectionLevelType @@ -29,7 +29,7 @@ classes: has_or_had_code: equals_string: HIGH has_or_had_label: - range: string +# range: string equals_string: High Confidence annotations: confidence_range: 0.9-1.0 @@ -62,7 +62,7 @@ classes: has_or_had_code: equals_string: MEDIUM has_or_had_label: - range: string +# range: string equals_string: Medium Confidence annotations: confidence_range: 0.7-0.9 @@ -94,7 +94,7 @@ classes: has_or_had_code: equals_string: LOW has_or_had_label: - range: string +# range: string equals_string: Low Confidence annotations: confidence_range: 0.5-0.7 @@ -126,7 +126,7 @@ classes: has_or_had_code: equals_string: UNCERTAIN has_or_had_label: - range: string +# range: string equals_string: Uncertain annotations: confidence_range: 0.0-0.5 @@ -156,7 +156,7 @@ classes: has_or_had_code: equals_string: VERIFIED has_or_had_label: - range: string +# range: string equals_string: Human Verified annotations: confidence_range: '1.0' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DetectionThreshold.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DetectionThreshold.yaml index a2cf041145..0dee68e9b7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DetectionThreshold.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DetectionThreshold.yaml @@ -15,11 +15,11 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type classes: DetectionThreshold: class_uri: dqv:QualityMeasurement diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DeviceType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DeviceType.yaml index bcf4d9e69b..3a9b01ed55 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DeviceType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DeviceType.yaml @@ -11,9 +11,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_label classes: DeviceType: class_uri: schema:Product @@ -50,15 +50,15 @@ classes: - sosa:Platform slots: - - has_or_had_identifier + - identified_by - has_or_had_label slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: false has_or_had_label: - range: string +# range: string required: true annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DeviceTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DeviceTypes.yaml index 52e947d4e6..3ffe5997fd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DeviceTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DeviceTypes.yaml @@ -8,8 +8,8 @@ prefixes: sosa: http://www.w3.org/ns/sosa/ default_prefix: hc imports: -- linkml:types -- ./DeviceType + - ./DeviceType + - linkml:types classes: IoTBeacon: is_a: DeviceType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DiarizationSegment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DiarizationSegment.yaml deleted file mode 100644 index e5c085e552..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DiarizationSegment.yaml +++ /dev/null @@ -1,24 +0,0 @@ -id: https://nde.nl/ontology/hc/class/DiarizationSegment -name: DiarizationSegment -title: DiarizationSegment -description: A segment of audio/video where a specific speaker is identified. -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ -default_prefix: hc -imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_time_interval -classes: - DiarizationSegment: - class_uri: schema:MediaObject - description: Diarization segment. - slots: - - has_or_had_time_interval - - has_or_had_label - annotations: - specificity_score: 0.1 - specificity_rationale: Generic utility class/slot created during migration - custodian_types: "['*']" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DiarizationStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DiarizationStatus.yaml index 14a49f843d..e17e9b4c4e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DiarizationStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DiarizationStatus.yaml @@ -10,9 +10,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_label classes: DiarizationStatus: class_uri: schema:ActionStatusType @@ -28,15 +28,15 @@ classes: - schema:ActionStatusType slots: - - has_or_had_identifier + - identified_by - has_or_had_label slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: false has_or_had_label: - range: string +# range: string required: true annotations: @@ -51,7 +51,7 @@ classes: examples: - value: has_or_had_label: Enabled - has_or_had_identifier: https://schema.org/ActiveActionStatus + identified_by: https://schema.org/ActiveActionStatus - value: has_or_had_label: Completed - has_or_had_identifier: https://schema.org/CompletedActionStatus \ No newline at end of file + identified_by: https://schema.org/CompletedActionStatus \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalArchive.yaml index e9e47cc6f7..e2c87dabf6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalArchive.yaml @@ -10,32 +10,20 @@ prefixes: premis: http://www.loc.gov/premis/rdf/v3/ default_prefix: hc imports: -- linkml:types -- ../slots/content_origin -- ../slots/has_or_had_format -- ../slots/has_or_had_identifier -- ../slots/has_or_had_interface -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/preservation_level -- ../slots/specificity_annotation -- ./AccessInterface -- ./ArchiveOrganizationType -- ./CollectionType -- ./DigitalArchiveRecordSetType -- ./DigitalArchiveRecordSetTypes -- ./DigitalPlatformType -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/content_origin + - ../slots/has_or_had_format + - ../slots/identified_by + - ../slots/has_or_had_interface + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/preservation_level classes: DigitalArchive: - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: skos:Concept slots: - has_or_had_interface @@ -43,22 +31,21 @@ classes: - has_or_had_type - hold_or_held_record_set_type - preservation_level - - specificity_annotation - has_or_had_format - has_or_had_score - - has_or_had_identifier + - identified_by description: "Information system collecting and providing access to digital resources.\n\n**Wikidata**: Q1224984 (digital archive / digitales Archiv / archivo digital)\n\n**DEFINITION**:\n\nDigital Archive is an information system designed to:\n- Collect digital resources (born-digital or digitized)\n- Preserve them for long-term access\n- Make them available to defined user groups\n\n**TWO INTERPRETATIONS**:\n\n1. **Born-Digital Archive**: Preserves materials created digitally\n - Email archives\n - Digital government records\n - Electronic manuscripts\n - Social media archives\n\n2. **Digitized Archive**: Provides digital access to analog materials\n - Digitized photographs\n - Scanned documents\n - Digital surrogates of physical collections\n\nThis class covers BOTH interpretations.\n\n**SPECIAL LINKAGE: DigitalPlatformType**\n\nDigital archives require digital infrastructure. This class links to\nDigitalPlatformType to describe the platform/system characteristics:\n\ \n```\nDigitalArchive (custodian type)\n \u2502\n \u2514\u2500\u2500 operates_platform \u2192 DigitalPlatform (instance)\n \u2502\n \u2514\u2500\u2500 platform_type \u2192 DigitalPlatformType\n \u251C\u2500\u2500 DISCOVERY_PORTAL\n \u251C\u2500\u2500 DIGITAL_REPOSITORY\n \u251C\u2500\u2500 COLLECTION_MANAGEMENT\n \u2514\u2500\u2500 (other types)\n```\n\n**PRESERVATION STANDARDS**:\n\nDigital archives typically implement:\n- OAIS (ISO 14721) - Reference model\n- PREMIS - Preservation metadata\n- BagIt - File packaging\n- METS - Metadata encoding\n- Trusted Digital Repository (TDR) certification\n\n**MULTILINGUAL LABELS**:\n- digitales Archiv (de)\n- archivo digital (es)\n- archives num\xE9riques (fr)\n\n**RELATED TYPES**:\n- WebArchive (Q30047053) - specifically for web content\n- InstitutionalRepository\ \ (Q1065413) - academic digital publications\n- DigitalPlatformType - platform classification for infrastructure\n" slot_usage: - has_or_had_identifier: + identified_by: content_origin: - range: string +# range: string examples: - value: born_digital - value: mixed preservation_level: - range: string +# range: string examples: - value: level_3 has_or_had_interface: @@ -70,7 +57,7 @@ classes: has_or_had_url: has_or_had_value: https://archive.example.org/access has_or_had_format: - range: uriorcurie +# range: string # uriorcurie multivalued: true examples: - value: @@ -100,7 +87,7 @@ classes: - https://ndsa.org/publications/levels-of-digital-preservation/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q1224984 + identified_by: https://nde.nl/ontology/hc/type/archive/Q1224984 has_or_had_type_code: ARCHIVE has_or_had_label: - Digital Archive@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalArchiveRecordSetType.yaml index fdf9935e13..2447b8e304 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalArchiveRecordSetType.yaml @@ -9,11 +9,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# premis: http://www.loc.gov/premis/rdf/v3/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_scope # was: type_scope -- ./CollectionType -- ./Scope # for has_or_had_scope range (2026-01-15) + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_scope # was: type_scope classes: DigitalArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by DigitalArchive custodians. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalArchiveRecordSetTypes.yaml index 879f9b60ee..e045d2255c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./DigitalArchive -- ./DigitalArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./DigitalArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: DigitalObjectCollection: is_a: DigitalArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Born-digital materials.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept DigitizedCollection: is_a: DigitalArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Digitized materials.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by DigitalArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept WebArchiveCollection: is_a: DigitalArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Web archive captures.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by DigitalArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalConfidence.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalConfidence.yaml index 691520583e..6fcf52faf7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalConfidence.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalConfidence.yaml @@ -11,11 +11,11 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_score -- ../slots/has_or_had_type + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: DigitalConfidence: class_uri: dqv:QualityMeasurement diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalInstantiation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalInstantiation.yaml index 3d4010090f..8f5a602be6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalInstantiation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalInstantiation.yaml @@ -1,19 +1,17 @@ id: https://nde.nl/ontology/hc/class/DigitalInstantiation name: DigitalInstantiation description: Representation of a digital surrogate, digitization status, or digital manifestation of an entity. Captures details about digital availability, format, and resolution. +prefixes: + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ imports: -- linkml:types -- ../classes/Label -- ../classes/Status -- ../classes/URL -- ../slots/has_or_had_label -- ../slots/has_or_had_status -- ../slots/has_or_had_url -- ./Label -- ./Status -- ./URL + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_status + - ../slots/has_or_had_url classes: DigitalInstantiation: + class_uri: crm:E73_Information_Object description: A digital manifestation or surrogate of a heritage entity. MIGRATED from digital_surrogate, digital_surrogate_url, and digitization_status slots (2026-01-25). slots: - has_or_had_url @@ -25,7 +23,7 @@ classes: has_or_had_status: range: Status has_or_had_label: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml index 40aa09b6f9..709c17a0a4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml @@ -2,54 +2,29 @@ id: https://nde.nl/ontology/hc/class/digital-platform name: digital_platform_class title: DigitalPlatform Class imports: -- linkml:types -- ../classes/APIEndpoint -- ../slots/has_or_had_auxiliary_entities -- ../slots/has_or_had_endpoint -- ../slots/has_or_had_score -- ../slots/has_or_had_url -- ../slots/inventory_web_address -- ../slots/is_or_was_associated_with -- ../slots/is_or_was_checked_through -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/is_or_was_stored_at -- ../slots/linked_data -- ../slots/metadata_standard -- ../slots/oai_pmh_endpoint -- ../slots/platform_id -- ../slots/platform_name -- ../slots/platform_type -- ../slots/preservation_level -- ../slots/refers_to_custodian -- ../slots/repository_software -- ../slots/serves_finding_aid -- ../slots/sparql_endpoint -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./AuxiliaryDigitalPlatform -- ./CollectionManagementSystem -- ./Custodian -- ./CustodianObservation -- ./DataServiceEndpoint -- ./DataServiceEndpointTypes -- ./DigitalPlatformType -- ./DigitalPlatformTypes -- ./FixityVerification -- ./METSAPI -- ./OAIPMHEndpoint -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SearchAPI -- ./SpecificityAnnotation -- ./StorageLocation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./URL -- ./WebPage -- ./APIEndpoint + - linkml:types + - ../slots/has_or_had_auxiliary_entities + - ../slots/has_or_had_endpoint + - ../slots/has_or_had_score + - ../slots/has_or_had_url + - ../slots/inventory_web_address + - ../slots/is_or_was_associated_with + - ../slots/is_or_was_checked_through + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/is_or_was_stored_at + - ../slots/linked_data + - ../slots/metadata_standard + - ../slots/oai_pmh_endpoint + - ../slots/platform_id + - ../slots/platform_name + - ../slots/platform_type + - ../slots/preservation_level + - ../slots/refers_to_custodian + - ../slots/repository_software + - ../slots/serves_finding_aid + - ../slots/sparql_endpoint + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -89,12 +64,12 @@ classes: \ schema:WebApplication\n- DCAT: dcat:Catalog (for aggregation platforms), dcat:DataService\ \ (for APIs)\n- FOAF: foaf:homepage, foaf:Document\n- CIDOC-CRM: crm:E73_Information_Object\ \ (digital objects)\n\n**Example - Physical Museum with Digital Platform**:\n\ - ```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\ + ```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\ \n preferred_label: \"Rijksmuseum\"\n custodian_type: MUSEUM # Physical institution\n\ \ digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address:\ \ \"https://www.rijksmuseum.nl/\"\n platform_type: DISCOVERY_PORTAL\n \ \ iiif_support: true\n linked_data: true\n```\n\n**Example - Digital-First\ - \ Platform**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/eu-europeana\"\ + \ Platform**:\n```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/eu-europeana\"\ \n preferred_label: \"Europeana\"\n custodian_type: DIGITAL_PLATFORM # Digital-first\n\ \ digital_platform:\n - platform_name: \"Europeana Platform\"\n homepage_web_address:\ \ \"https://www.europeana.eu/\"\n platform_type: AGGREGATION_PLATFORM\n\ @@ -103,8 +78,8 @@ classes: , \"JavaScript\"]\n```\n" exact_mappings: - schema:WebSite - - foaf:homepage close_mappings: + - foaf:homepage - schema:WebApplication - dcat:Catalog - dcat:DataService @@ -132,28 +107,26 @@ classes: - repository_software - serves_finding_aid - sparql_endpoint - - specificity_annotation - is_or_was_stored_at - has_or_had_score - temporal_extent - is_or_was_derived_from - is_or_was_generated_by - - platform_url - - provenance + - has_or_had_provenance slot_usage: platform_id: - range: uriorcurie +# range: string # uriorcurie required: false examples: - value: https://nde.nl/ontology/hc/platform/rijksmuseum-website platform_name: - range: string +# range: string required: false examples: - value: Rijksmuseum Website - value: Europeana Platform platform_type: - range: string +# range: string multivalued: false required: false examples: @@ -165,7 +138,7 @@ classes: has_or_had_url: range: uri required: false - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_url: https://www.rijksmuseum.nl/ @@ -194,7 +167,7 @@ classes: examples: - value: https://www.europeana.eu/oai repository_software: - range: string +# range: string examples: - value: DSpace 7.2 linked_data: @@ -202,7 +175,7 @@ classes: examples: - value: true metadata_standard: - range: string +# range: string multivalued: true examples: - value: Dublin Core @@ -241,7 +214,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 preservation_level: - range: string +# range: string required: false examples: - value: full_preservation @@ -252,12 +225,12 @@ classes: inlined: true examples: - value: - has_or_had_identifier: aws-s3-eu-west-1 + identified_by: aws-s3-eu-west-1 has_or_had_label: label_text: AWS S3 eu-west-1 language: en - value: - has_or_had_identifier: dans-data-archive + identified_by: dans-data-archive has_or_had_label: label_text: DANS Data Archive language: en @@ -271,9 +244,9 @@ classes: begin_of_the_begin: '2025-11-15' has_or_had_label: Last full fixity check serves_finding_aid: - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type required: false examples: - value: https://nde.nl/ontology/hc/finding-aid/na/voc-inventory diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformScore.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformScore.yaml index e2f4b27369..7649162724 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformScore.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformScore.yaml @@ -15,8 +15,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score + - linkml:types + - ../slots/has_or_had_score classes: DigitalPlatformScore: class_uri: sosa:Result diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformType.yaml index 5174113492..fe21929f1b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformType.yaml @@ -9,27 +9,19 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wikidata: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../enums/PlatformTypeCategoryEnum -- ../metadata -- ../slots/has_or_had_example -- ../slots/has_or_had_feature -- ../slots/has_or_had_score -- ../slots/has_or_had_standard -- ../slots/is_or_was_related_to -- ../slots/multilingual_label -- ../slots/platform_type_category -- ../slots/platform_type_description -- ../slots/platform_type_id -- ../slots/platform_type_name -- ../slots/specificity_annotation -- ./MetadataStandard -- ./SpecificityAnnotation -- ./TechnicalFeature -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./DigitalPlatformType + - linkml:types + - ../enums/PlatformTypeCategoryEnum + - ../metadata + - ../slots/has_or_had_example + - ../slots/has_or_had_feature + - ../slots/has_or_had_score + - ../slots/has_or_had_standard + - ../slots/is_or_was_related_to + - ../slots/multilingual_label + - ../slots/platform_type_category + - ../slots/platform_type_description + - ../slots/platform_type_id + - ../slots/platform_type_name classes: DigitalPlatformType: class_uri: skos:Concept @@ -159,7 +151,6 @@ classes: - platform_type_description - platform_type_id - platform_type_name - - specificity_annotation - has_or_had_score - has_or_had_standard - has_or_had_feature diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformTypes.yaml index d918ea88ce..ee46db2d0b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformTypes.yaml @@ -15,17 +15,12 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/platform_type_category -- ../slots/specificity_annotation -- ./DigitalPlatformType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./DigitalPlatformType + - linkml:types + - ../metadata + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to + - ../slots/platform_type_category classes: DigitalLibrary: is_a: DigitalPlatformType @@ -64,7 +59,6 @@ classes: - biblioteca digital (es) - "biblioth\xE8que num\xE9rique (fr)" slots: - - specificity_annotation - has_or_had_score annotations: specificity_score: 0.1 @@ -111,7 +105,6 @@ classes: - archivo digital (es) - "archives num\xE9riques (fr)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -153,7 +146,6 @@ classes: - repositorio digital (es) - "d\xE9p\xF4t (fr)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -195,7 +187,6 @@ classes: - Archivierungsstelle (de) - repositorio (es) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -234,7 +225,6 @@ classes: - repositorio de acceso abierto (es) - archive ouverte (fr) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -271,7 +261,6 @@ classes: is_or_was_related_to: equals_string: wikidata:Q117816878 slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -308,7 +297,6 @@ classes: is_or_was_related_to: equals_string: wikidata:Q112795563 slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -345,7 +333,6 @@ classes: is_or_was_related_to: equals_string: wikidata:Q114351452 slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -382,7 +369,6 @@ classes: is_or_was_related_to: equals_string: wikidata:Q12328550 slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -419,7 +405,6 @@ classes: comments: - "Biblioth\xE8que universitaire en ligne (fr)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -456,7 +441,6 @@ classes: comments: - online digitale muziekdocumentbibliotheek (nl) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -497,7 +481,6 @@ classes: - biblioteca fantasma (es) - "biblioth\xE8que clandestine (fr)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -536,7 +519,6 @@ classes: - "colecci\xF3n de fotograf\xEDas (es)" - collection de photographies (fr) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -575,7 +557,6 @@ classes: - agregador (es) - "agr\xE9gateur (fr)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -616,7 +597,6 @@ classes: - database online aggregato (it) - geaggregeerde online databank (nl) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -655,7 +635,6 @@ classes: - "base de datos bibliogr\xE1fica (es)" - "base de donn\xE9es bibliographiques (fr)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -695,7 +674,6 @@ classes: - base de datos especializada (es) - "base de donn\xE9es sp\xE9cialis\xE9e (fr)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -734,7 +712,6 @@ classes: - portal de archivos (es) - portail d'archives (fr) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -772,7 +749,6 @@ classes: - Regionalportal (de) - regionaal portaal (nl) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -807,7 +783,6 @@ classes: is_or_was_related_to: equals_string: wikidata:Q2910253 slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -846,7 +821,6 @@ classes: - portal de Internet (es) - portail web (fr) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -885,7 +859,6 @@ classes: - sitio web (es) - site web (fr) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -925,7 +898,6 @@ classes: - Webseite (de) - sitio web (es) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -966,7 +938,6 @@ classes: - "base de datos en l\xEDnea (es)" - "base de donn\xE9es en ligne (fr)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1005,7 +976,6 @@ classes: - base de datos (es) - "base de donn\xE9es (fr)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1044,7 +1014,6 @@ classes: comments: - data platform (it) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1083,7 +1052,6 @@ classes: - portal de datos abiertos (es) - "portail de donn\xE9es ouvertes (fr)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1122,7 +1090,6 @@ classes: comments: - "ressource d'int\xE9gration (fr)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1161,7 +1128,6 @@ classes: - servicio de internet (es) - service Internet (fr) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1203,7 +1169,6 @@ classes: - museo virtual (es) - "mus\xE9e virtuel (fr)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1244,7 +1209,6 @@ classes: - biblioteca virtual (es) - "biblioth\xE8que virtuelle (fr)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1283,7 +1247,6 @@ classes: - biblioteca especializada virtual (es) - "biblioth\xE8que virtuelle sp\xE9cialis\xE9e (fr)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1322,7 +1285,6 @@ classes: - herbario virtual (es) - virtueel herbarium (nl) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1360,7 +1322,6 @@ classes: - Virtuelle Kartenbibliothek (de) - Mapoteca virtual (es) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1398,7 +1359,6 @@ classes: - Online-Kunstgalerie (de) - online kunstgalerie (nl) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1437,7 +1397,6 @@ classes: - "galer\xEDa de Commons (es)" - galerie (fr) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1479,7 +1438,6 @@ classes: - "repositorio tem\xE1tico (es)" - "d\xE9p\xF4t disciplinaire (fr)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1518,7 +1476,6 @@ classes: - "serveur de pr\xE9impression (fr)" - preprintserver (nl) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1557,7 +1514,6 @@ classes: - "base de datos geneal\xF3gica (es)" - "base de donn\xE9es de g\xE9n\xE9alogie (fr)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1592,7 +1548,6 @@ classes: is_or_was_related_to: equals_string: wikidata:Q124368261 slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1627,7 +1582,6 @@ classes: is_or_was_related_to: equals_string: wikidata:Q124368518 slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1662,7 +1616,6 @@ classes: is_or_was_related_to: equals_string: wikidata:Q124368239 slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1697,7 +1650,6 @@ classes: is_or_was_related_to: equals_string: wikidata:Q124418301 slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1732,7 +1684,6 @@ classes: is_or_was_related_to: equals_string: wikidata:Q124515090 slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1770,7 +1721,6 @@ classes: - Crowdsourcing platform for heritage data enrichment - From AuxiliaryDigitalPlatformTypeEnum slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1808,7 +1758,6 @@ classes: - Educational portal for heritage learning - From AuxiliaryDigitalPlatformTypeEnum slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1846,7 +1795,6 @@ classes: - Social media presence for heritage institutions - From AuxiliaryDigitalPlatformTypeEnum slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1886,7 +1834,6 @@ classes: - Blog and news platform for heritage content - From AuxiliaryDigitalPlatformTypeEnum slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1926,7 +1873,6 @@ classes: - Podcast channel for heritage audio content - From AuxiliaryDigitalPlatformTypeEnum slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -1966,7 +1912,6 @@ classes: - Virtual tour platform for immersive heritage experiences - From AuxiliaryDigitalPlatformTypeEnum slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2004,7 +1949,6 @@ classes: - Collection browser for enhanced exploration - From AuxiliaryDigitalPlatformTypeEnum slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2042,7 +1986,6 @@ classes: - E-Services (de) - "servicio electr\xF3nico (es)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2080,7 +2023,6 @@ classes: - Booking system for heritage visits and events - From AuxiliaryDigitalPlatformTypeEnum slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2118,7 +2060,6 @@ classes: - E-commerce platform for heritage merchandise - From AuxiliaryDigitalPlatformTypeEnum slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2156,7 +2097,6 @@ classes: - Project website for heritage initiatives - From AuxiliaryDigitalPlatformTypeEnum slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2194,20 +2134,17 @@ classes: - Exhibition microsite for temporary exhibitions - From AuxiliaryDigitalPlatformTypeEnum slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' - APIEndpoint: + APIService: is_a: DigitalPlatformType class_uri: dcat:DataService description: 'Programmatic interface separate from main API. Developer tools, - specialized data access, experimental APIs. **PURPOSE**: Provide programmatic access to heritage data through - dedicated API endpoints. @@ -2223,7 +2160,6 @@ classes: **EXAMPLES**: Collection APIs, search APIs, IIIF endpoints - ' slot_usage: platform_type_category: @@ -2232,7 +2168,6 @@ classes: - API endpoint for programmatic heritage data access - From AuxiliaryDigitalPlatformTypeEnum slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2271,7 +2206,6 @@ classes: - Mobile application for heritage services - From AuxiliaryDigitalPlatformTypeEnum slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2309,7 +2243,6 @@ classes: - Data portal for dataset access - From AuxiliaryDigitalPlatformTypeEnum (DATA_PORTAL) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2348,7 +2281,6 @@ classes: - Legacy platform maintained for continuity - From AuxiliaryDigitalPlatformTypeEnum slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2386,7 +2318,6 @@ classes: - Newsletter platform for heritage communication - From AuxiliaryDigitalPlatformTypeEnum slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2427,7 +2358,6 @@ classes: - proyecto (es) - projet (fr) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2468,7 +2398,6 @@ classes: - "instituci\xF3n del patrimonio (es)" - institution patrimoniale (fr) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2489,7 +2418,6 @@ classes: - Heimatmuseen in Schweden (de) - "Hembygdsg\xE5rd (nl)" slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2530,7 +2458,6 @@ classes: - centro di cultura scientifica, tecnica e industriale (it) - wetenschappelijk, technisch en industrieel cultuurcentrum (nl) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2569,7 +2496,6 @@ classes: - "espacio p\xFAblico (es)" - espace public (fr) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2611,7 +2537,6 @@ classes: - espacio social (es) - espace social (fr) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -2650,7 +2575,6 @@ classes: - espacio cerrado (es) - spazio chiuso (it) slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformUserIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformUserIdentifier.yaml index d0853a5482..d6ce5dcec7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformUserIdentifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformUserIdentifier.yaml @@ -9,11 +9,12 @@ prefixes: foaf: http://xmlns.com/foaf/0.1/ as: https://www.w3.org/ns/activitystreams# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ./Identifier + - linkml:types + - ../slots/platform_type + - ../slots/profile_url + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label default_prefix: hc classes: DigitalPlatformUserIdentifier: @@ -24,7 +25,7 @@ classes: such as YouTube channel IDs, Twitter handles, or Instagram usernames. Replaces simple string channel_id slots with typed identifiers. **DESIGN RATIONALE**: Created per slot_fixes.yaml migration from `comment_author_channel_id` string - to structured `has_or_had_author` + `Author` with `has_or_had_identifier` + + to structured `has_or_had_author` + `Author` with `identified_by` + `DigitalPlatformUserIdentifier` for platform user identification. **PLATFORM IDENTIFIER TYPES**: | Platform | Identifier Type | Example | |----------|-----------------|---------| | YouTube | Channel ID | UC1234abcdef | | Twitter/X | User ID | 12345678 | | diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2.yaml index f7a397fe13..e7e0e01a8e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2.yaml @@ -9,47 +9,34 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_transformation_metadata -- ../slots/has_or_had_organization_status -- ../slots/has_or_had_data_quality_notes -- ../slots/has_or_had_organization_profile -- ../slots/has_or_had_primary_platform -- ../slots/has_or_had_key_contact -- ../slots/has_or_had_service_details -- ../slots/has_or_had_identifier -- ../slots/has_or_had_provenance -- ../slots/has_or_had_auxiliary_platform -- ../slots/has_or_had_navigation_link -- ../slots/has_or_had_homepage -- ../slots/has_or_had_name -- ../slots/has_or_had_type -- ../slots/refers_to_custodian -- ../slots/has_or_had_contact_information -- ../slots/has_or_had_facility -- ../slots/has_or_had_secondary_platform -- ../slots/has_or_had_web_claim -- ../slots/has_or_had_collection_url -- ../slots/has_or_had_inventory_url -- ./DigitalPlatformV2DataQualityNotes -- ./DigitalPlatformV2KeyContact -- ./DigitalPlatformV2OrganizationProfile -- ./DigitalPlatformV2OrganizationStatus -- ./DigitalPlatformV2PrimaryPlatform -- ./DigitalPlatformV2Provenance -- ./DigitalPlatformV2ServiceDetails -- ./DigitalPlatformV2TransformationMetadata -- ./Identifier -default_range: string + - linkml:types + - ./DigitalPlatformV2Provenance + - ../slots/has_or_had_transformation_metadata + - ../slots/has_or_had_organization_status + - ../slots/has_or_had_data_quality_notes + - ../slots/has_or_had_organization_profile + - ../slots/has_or_had_primary_platform + - ../slots/has_or_had_key_contact + - ../slots/has_or_had_service_details + - ../slots/identified_by + - ../slots/has_or_had_provenance + - ../slots/has_or_had_auxiliary_platform + - ../slots/has_or_had_navigation_link + - ../slots/has_or_had_homepage + - ../slots/has_or_had_name + - ../slots/has_or_had_type + - ../slots/refers_to_custodian + - ../slots/has_or_had_contact_information + - ../slots/has_or_had_facility + - ../slots/has_or_had_secondary_platform + - ../slots/has_or_had_web_claim + - ../slots/has_or_had_collection_url + - ../slots/has_or_had_inventory_url +# default_range: string classes: DigitalPlatformV2: - description: "Enhanced digital platform data structure (v2) containing comprehensive organization profile, contacts, service details, and multi-source provenance. This is an enriched version of DigitalPlatform with structured organization metadata gathered from web research.\nOntology mapping rationale: - class_uri is org:Organization because this represents an organization's\n digital presence and operational details\n- close_mappings includes schema:Organization for web semantics - related_mappings includes prov:Entity for provenance tracking" + description: "Enhanced digital platform data structure (v2)" class_uri: org:Organization - close_mappings: - - schema:Organization - related_mappings: - - prov:Entity - - schema:WebSite slots: - has_or_had_transformation_metadata - has_or_had_organization_status @@ -58,7 +45,7 @@ classes: - has_or_had_primary_platform - has_or_had_key_contact - has_or_had_service_details - - has_or_had_identifier + - identified_by - has_or_had_provenance - has_or_had_auxiliary_platform - has_or_had_navigation_link @@ -73,60 +60,15 @@ classes: - has_or_had_collection_url - has_or_had_inventory_url slot_usage: - has_or_had_transformation_metadata: - description: Metadata about how this v2 record was created/transformed - has_or_had_organization_status: - description: Current status and legal form of the organization - has_or_had_data_quality_notes: - description: Notes about data quality and verification status - has_or_had_organization_profile: - description: Detailed profile of the organization - has_or_had_primary_platform: - description: Primary digital platform/website for the organization - has_or_had_key_contact: - description: Key staff contacts for the organization - has_or_had_service_details: - description: Service offerings, opening hours, regional support - has_or_had_identifier: + identified_by: description: External identifiers (Wikidata, Sigla, ICO, etc.) - range: uriorcurie +# range: string multivalued: true - inlined_as_list: true - has_or_had_provenance: - description: Research provenance with data sources - range: DigitalPlatformV2Provenance - has_or_had_auxiliary_platform: - description: Auxiliary or related digital platforms (URLs, platform objects) - has_or_had_navigation_link: - description: Navigation links found on the platform (header, footer, sidebar links) - has_or_had_homepage: - description: Homepage web address URL - has_or_had_name: - description: Name of the platform (was platform_name) + inlined_as_list: false # Fixed invalid inline for primitive type has_or_had_type: description: Type of platform (institutional_website, discovery_portal, etc.) - can be string or array - range: string +# range: string any_of: - range: string - range: string multivalued: true - refers_to_custodian: - description: GHCID of the custodian this platform refers to - has_or_had_contact_information: - description: Contact information for the organization (email, phone, address) - inlined: true - has_or_had_facility: - description: Facilities and amenities available at the institution - inlined: true - has_or_had_secondary_platform: - description: Secondary or alternative digital platforms for the organization - has_or_had_web_claim: - description: Claims extracted from web pages with provenance - has_or_had_collection_url: - description: URLs to collection pages or online catalogs - has_or_had_inventory_url: - description: URLs to inventory or finding aid pages - annotations: - specificity_score: 0.1 - specificity_rationale: Generic utility class/slot created during migration - custodian_types: "['*']" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2DataQualityNotes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2DataQualityNotes.yaml index fbcc0afdc6..5ee2a84864 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2DataQualityNotes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2DataQualityNotes.yaml @@ -14,8 +14,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: DigitalPlatformV2DataQualityNotes: description: Notes about data quality, verification status, and source checks diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2DataSource.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2DataSource.yaml index 4bb3644931..5889ee2688 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2DataSource.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2DataSource.yaml @@ -7,8 +7,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: DigitalPlatformV2DataSource: description: Individual data source used for enrichment with quality tier diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2KeyContact.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2KeyContact.yaml index df7d65543d..c349238c02 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2KeyContact.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2KeyContact.yaml @@ -7,8 +7,8 @@ prefixes: schema: http://schema.org/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: DigitalPlatformV2KeyContact: description: Key staff contact for the organization diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationProfile.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationProfile.yaml index d6f241c3e1..545e1057cf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationProfile.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationProfile.yaml @@ -7,12 +7,11 @@ prefixes: schema: http://schema.org/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/is_or_was_founded_through -- ../slots/organization_type -- ../slots/scope -- ./FoundingEvent -default_range: string + - linkml:types + - ../slots/is_or_was_founded_through + - ../slots/organization_type + - ../slots/scope +# default_range: string classes: DigitalPlatformV2OrganizationProfile: description: Detailed profile of the organization including type, scope, and description diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationStatus.yaml index cf505cd284..4971fa4e73 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationStatus.yaml @@ -13,8 +13,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# rdfs: http://www.w3.org/2000/01/rdf-schema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: DigitalPlatformV2OrganizationStatus: description: Current operational status and legal form of an organization diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2PrimaryPlatform.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2PrimaryPlatform.yaml index 221288b031..f01346007b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2PrimaryPlatform.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2PrimaryPlatform.yaml @@ -7,8 +7,8 @@ prefixes: schema: http://schema.org/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: DigitalPlatformV2PrimaryPlatform: description: Primary digital platform or website for the organization diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2Provenance.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2Provenance.yaml index adb005ba2c..8cb15fb1d3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2Provenance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2Provenance.yaml @@ -7,9 +7,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ./DigitalPlatformV2DataSource -default_range: string + - linkml:types +# default_range: string classes: DigitalPlatformV2Provenance: description: Research provenance including date, agent, and data sources diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2ServiceDetails.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2ServiceDetails.yaml index 5e6a35febc..98eafd6abe 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2ServiceDetails.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2ServiceDetails.yaml @@ -13,8 +13,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: DigitalPlatformV2ServiceDetails: description: Service offerings, opening hours, and regional support information diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2TransformationMetadata.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2TransformationMetadata.yaml index 64fe8fe96f..b2fe1c8c92 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2TransformationMetadata.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPlatformV2TransformationMetadata.yaml @@ -13,8 +13,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: DigitalPlatformV2TransformationMetadata: description: Metadata about how a DigitalPlatformV2 record was created or transformed diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPresence.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPresence.yaml index 5c0518e410..ae59148ae5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPresence.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPresence.yaml @@ -11,11 +11,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_type -- ./DigitalPresenceType -- ./DigitalPresenceTypes + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_type classes: DigitalPresence: class_uri: crm:E1_CRM_Entity @@ -26,20 +24,20 @@ classes: **MIGRATION SOURCE**: Created from digital_presence_type slot migration (Rule 53, 2026-01-25). **Pattern**: Replaces `digital_presence_type` slot on assertion with structured object: - - `has_or_had_identifier`: URI of the presence (SocialMediaProfile, Website, etc.) + - `identified_by`: URI of the presence (SocialMediaProfile, Website, etc.) - `has_or_had_type`: Classification (DigitalPresenceType) exact_mappings: - crm:E1_CRM_Entity slots: - - has_or_had_identifier + - identified_by - has_or_had_type slot_usage: - has_or_had_identifier: + identified_by: description: URI of the digital presence instance (e.g. hc:social-media/fb). - range: uriorcurie +# range: string # uriorcurie required: true has_or_had_type: range: DigitalPresenceType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPresenceType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPresenceType.yaml index 6ce9718e2a..a8142e4483 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPresenceType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPresenceType.yaml @@ -10,9 +10,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_label classes: DigitalPresenceType: class_uri: schema:Intangible @@ -30,15 +30,15 @@ classes: - schema:Intangible slots: - - has_or_had_identifier + - identified_by - has_or_had_label slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: false has_or_had_label: - range: string +# range: string required: true annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPresenceTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPresenceTypes.yaml index 4f3a055696..26732191d6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPresenceTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalPresenceTypes.yaml @@ -9,8 +9,8 @@ prefixes: foaf: http://xmlns.com/foaf/0.1/ default_prefix: hc imports: -- linkml:types -- ./DigitalPresenceType + - ./DigitalPresenceType + - linkml:types classes: WebsitePresence: is_a: DigitalPresenceType @@ -121,7 +121,9 @@ classes: - skos:Concept ArchivedWebsitePresence: is_a: DigitalPresenceType - class_uri: schema:archivedAt + class_uri: hc:ArchivedWebsitePresence + close_mappings: + - schema:archivedAt description: Historical/archived website preserved in web archive. annotations: enum_equivalent: ARCHIVED_WEBSITE diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalProficiency.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalProficiency.yaml index 68a81fd7d0..e2795125a0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitalProficiency.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DigitalProficiency.yaml @@ -14,11 +14,11 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type classes: DigitalProficiency: class_uri: schema:DefinedTerm diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DigitizationBudget.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DigitizationBudget.yaml deleted file mode 100644 index 0c03c37a85..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DigitizationBudget.yaml +++ /dev/null @@ -1,19 +0,0 @@ -id: https://nde.nl/ontology/hc/class/DigitizationBudget -name: DigitizationBudget -description: Representation of a budget allocated for digitization activities. MIGRATED from digitization_budget slot (2026-01-25). -imports: -- linkml:types -- ../classes/Quantity -- ../classes/Unit -- ../slots/has_or_had_quantity -- ../slots/has_or_had_unit -classes: - DigitizationBudget: - description: Budget allocated for digitization. - slots: - - has_or_had_quantity - - has_or_had_unit - annotations: - specificity_score: 0.1 - specificity_rationale: Generic utility class/slot created during migration - custodian_types: "['*']" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DimArchives.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DimArchives.yaml index 86971d40ef..3ce6b8d08c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DimArchives.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DimArchives.yaml @@ -11,31 +11,15 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# default_prefix: hc imports: -- linkml:types -- ../slots/grants_or_granted_access_through -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_time_interval -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/restriction_category -- ../slots/specificity_annotation -- ./AccessPolicy -- ./ArchiveOrganizationType -- ./Collection -- ./CollectionType -- ./Condition -- ./DimArchivesRecordSetType -- ./DimArchivesRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeInterval -- ./WikiDataIdentifier -- ./AccessApplication + - linkml:types + - ../slots/grants_or_granted_access_through + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_time_interval + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/restriction_category classes: DimArchives: is_a: ArchiveOrganizationType @@ -45,15 +29,14 @@ classes: - has_or_had_type - hold_or_held_record_set_type - restriction_category - - specificity_annotation - has_or_had_score - has_or_had_time_interval - - has_or_had_identifier + - identified_by description: "Archive with LIMITED access - between broadly accessible and fully closed.\n\n**Wikidata**: Q112796779 (Dim Archive)\n\n**DEFINITION**:\n\nDim Archive provides access to materials but with significant restrictions\nthat limit who can access, when, or under what conditions. This is the\nmiddle position in the Light/Dim/Dark access spectrum.\n\n**ACCESS SPECTRUM**:\n\n| Type | Access Level | Characteristics |\n|------|--------------|-----------------|\n| Light Archive (Q112815447) | Broadly accessible | Open to public/researchers |\n| **Dim Archive** | Limited access | Restricted by criteria |\n| Dark Archive (Q112796578) | No current access | Preservation only |\n\n**RESTRICTION TYPES** (reasons for \"dim\" access):\n\n1. **User-Based Restrictions**\n - Researchers only (credentials required)\n - Institutional affiliates only\n - Nationality restrictions\n - Security clearance required\n\n2. **Content-Based Restrictions**\n - Privacy-sensitive materials (personal\ \ data)\n - Confidential business information\n - Culturally sensitive materials\n - Copyright restrictions (reading room only)\n\n3. **Process-Based Restrictions**\n - Appointment required\n - Approval/application process\n - Fee-based access\n - Supervised access only\n\n4. **Format-Based Restrictions**\n - Physical access only (no digital)\n - Specific reading room required\n - No reproduction allowed\n - Watermarked copies only\n\n**SPECIAL LINKAGE: AccessPolicy \u2192 Collection**\n\nDim archives use AccessPolicy to document restrictions. AccessPolicy\napplies to Collection instances:\n\n```\nDimArchives (custodian type)\n \u2502\n \u2514\u2500\u2500 manages \u2192 Collection (holdings)\n \u2502\n \u2514\u2500\u2500 has_access_policy \u2192 AccessPolicy\n \u251C\u2500\u2500 access_level: RESTRICTED\n \u251C\u2500\u2500 restriction_reason: (text)\n \u251C\ \u2500\u2500 eligible_users: (criteria)\n \u2514\u2500\u2500 access_process: (procedure)\n```\n\n**MULTILINGUAL LABELS**:\n- Dim Archive (de) [uses English term]\n\n**RELATED TYPES**:\n- LightArchive (Q112815447) - broadly accessible\n- DarkArchive (Q112796578) - no current access\n- AccessPolicy - policy class for restriction documentation\n" slot_usage: - has_or_had_identifier: + identified_by: examples: - value: has_or_had_type: RESEARCHER_ONLY @@ -64,7 +47,7 @@ classes: has_or_had_description: description_text: Application and approval process required restriction_category: - range: string +# range: string multivalued: true examples: - value: @@ -107,7 +90,7 @@ classes: - http://www.loc.gov/premis/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q112796779 + identified_by: https://nde.nl/ontology/hc/type/archive/Q112796779 has_or_had_type_code: ARCHIVE has_or_had_label: - Dim Archive@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DimArchivesRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DimArchivesRecordSetType.yaml index 43c526f1ab..6209c1c03c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DimArchivesRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DimArchivesRecordSetType.yaml @@ -10,11 +10,9 @@ prefixes: premis: http://www.loc.gov/premis/rdf/v3/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_scope # was: type_scope -- ./CollectionType -- ./Scope # for has_or_had_scope range (2026-01-15) + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_scope # was: type_scope classes: DimArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by DimArchives custodians. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DimArchivesRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DimArchivesRecordSetTypes.yaml index 6ccf8de32c..00c245daa3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DimArchivesRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DimArchivesRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./DimArchives -- ./DimArchivesRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./DimArchivesRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: DigitallyInaccessibleCollection: is_a: DimArchivesRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Materials with access challenges.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DiocesanArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DiocesanArchive.yaml index ae3baaf154..5182a79533 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DiocesanArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DiocesanArchive.yaml @@ -10,33 +10,16 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_name -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_part_of -- ../slots/originates_or_originated_from -- ../slots/requires_or_required -- ../slots/specificity_annotation -- ./Archdiocese -- ./ArchiveOrganizationType -- ./CollectionType -- ./DiocesanArchiveRecordSetType -- ./DiocesanArchiveRecordSetTypes -- ./Diocese -- ./Permission -- ./PermissionType -- ./PermissionTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier -- ./Organization + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_name + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_part_of + - ../slots/originates_or_originated_from + - ../slots/requires_or_required classes: DiocesanArchive: is_a: ArchiveOrganizationType @@ -47,13 +30,12 @@ classes: - originates_or_originated_from - is_or_was_part_of - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by description: "Archive of a bishopric (diocese) - ecclesiastical administrative unit.\n\n**Wikidata**: Q11906839 (diocesan archive / Bisch\xF6fliches Archiv)\n\n**DEFINITION**:\n\nDiocesan Archive preserves records created by or relating to a Catholic\nor Anglican diocese (bishopric). Holdings typically include:\n\n- Episcopal correspondence and decrees\n- Diocesan administrative records\n- Personnel files (clergy appointments, ordinations)\n- Parish records (copies or originals)\n- Matrimonial dispensation records\n- Visitation records\n- Financial/property records of the diocese\n\n**ECCLESIASTICAL HIERARCHY**:\n\n```\nVatican Archives (central)\n \u251C\u2500\u2500 Archdioceses \u2192 Archdiocesan Archives\n \u2502 \u2514\u2500\u2500 Dioceses \u2192 DIOCESAN ARCHIVE (THIS TYPE)\n \u2502 \u2514\u2500\u2500 Parishes \u2192 Parish Archives\n \u2514\u2500\u2500 Religious Orders \u2192 Order Archives\n```\n\n**HISTORICAL SIGNIFICANCE**:\n\nDiocesan archives are critical\ \ sources for:\n- Genealogical research (baptismal, marriage records)\n- Local history (diocese often predates civil administration)\n- Ecclesiastical history and church-state relations\n- Medieval and early modern studies\n\n**MULTILINGUAL LABELS**:\n- Bisch\xF6fliches Archiv (de)\n- archivo diocesano (es)\n- archives dioc\xE9saines (fr)\n\n**RELATED TYPES**:\n- ChurchArchive (Q2877653) - general church archives\n- ParishArchive (Q34544468) - parish-level records\n- CathedralArchive (Q132201761) - cathedral chapter records\n- MonasteryArchive (Q27030561) - religious order archives\n\n**ACCESS CONSIDERATIONS**:\n\nDiocesan archives often have restrictions:\n- Recent personnel files may be sealed\n- Matrimonial records may require dispensation\n- Some materials subject to canon law access rules\n- Research may require bishop's permission\n" slot_usage: - has_or_had_identifier: null + identified_by: null originates_or_originated_from: range: Diocese examples: @@ -109,7 +91,7 @@ classes: - https://www.ica.org/standards/RiC/ontology examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q11906839 + identified_by: https://nde.nl/ontology/hc/type/archive/Q11906839 has_or_had_type_code: ARCHIVE has_or_had_label: - Diocesan Archive@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DiocesanArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DiocesanArchiveRecordSetType.yaml index f291803359..b67f754640 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DiocesanArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DiocesanArchiveRecordSetType.yaml @@ -9,11 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_scope # was: type_scope -- ./CollectionType -- ./Scope # for has_or_had_scope range (2026-01-15) + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_scope # was: type_scope classes: DiocesanArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by DiocesanArchive custodians. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DiocesanArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DiocesanArchiveRecordSetTypes.yaml index 480c94594a..efec6cdebb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DiocesanArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DiocesanArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./DiocesanArchive -- ./DiocesanArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./DiocesanArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: DiocesanAdministrationFonds: is_a: DiocesanArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Diocesan administrative records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept ParishRecordSeries: is_a: DiocesanArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Parish records (multiple parishes).\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by DiocesanArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept EpiscopalCorrespondenceCollection: is_a: DiocesanArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Bishop's correspondence.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by DiocesanArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Diocese.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Diocese.yaml index b3022ccaf7..503a31e141 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Diocese.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Diocese.yaml @@ -9,14 +9,12 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/is_or_was_founded_through -- ../slots/is_or_was_located_in -- ./EcclesiasticalProvince -- ./FoundingEvent + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/is_or_was_founded_through + - ../slots/is_or_was_located_in classes: Diocese: class_uri: org:Organization @@ -35,20 +33,20 @@ classes: \ diocese identity and founding event.\n" slots: - is_or_was_founded_through - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - is_or_was_located_in slot_usage: has_or_had_label: - range: string +# range: string required: true examples: - value: Diocese of Utrecht - value: Bistum Münster - value: Diocese of 's-Hertogenbosch is_or_was_located_in: - range: string +# range: string examples: - value: has_or_had_label: Province of Utrecht diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DismissalEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DismissalEvent.yaml index 8f65f1501e..152ec01d28 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DismissalEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DismissalEvent.yaml @@ -6,16 +6,13 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../classes/Quantity -- ../classes/Unit -- ../slots/has_or_had_quantity -- ../slots/has_or_had_unit -- ./Quantity -- ./Unit + - linkml:types + - ../slots/has_or_had_quantity + - ../slots/has_or_had_unit default_prefix: hc classes: DismissalEvent: + class_uri: schema:UserInteraction description: Event of dismissal or negative reaction. slots: - has_or_had_quantity @@ -24,7 +21,7 @@ classes: has_or_had_quantity: range: integer has_or_had_unit: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DisplayLocation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DisplayLocation.yaml index 66f0c3d420..7af5202f3b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DisplayLocation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DisplayLocation.yaml @@ -3,21 +3,22 @@ name: DisplayLocation title: Display Location Class description: Specific location within a venue where an object is displayed (e.g. Gallery, Wing, Case). MIGRATED from display_location string (2026-01-26). prefixes: + linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ imports: -- linkml:types -- ../classes/Label -- ../slots/has_or_had_label -- ./Label + - linkml:types + - ../slots/has_or_had_label default_prefix: hc classes: DisplayLocation: + class_uri: crm:E53_Place description: Location within a venue for display. slots: - has_or_had_label slot_usage: has_or_had_label: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DispositionService.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DispositionService.yaml index 3bff232df9..1780a31bdf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DispositionService.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DispositionService.yaml @@ -6,12 +6,10 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ./DispositionServiceType -- ./DispositionServiceTypes + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type default_prefix: hc classes: DispositionService: @@ -23,7 +21,7 @@ classes: - has_or_had_description slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie has_or_had_label: annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DispositionServiceType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DispositionServiceType.yaml index bf09280363..4cddf4719b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DispositionServiceType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DispositionServiceType.yaml @@ -6,9 +6,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: DispositionServiceType: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DispositionServiceTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DispositionServiceTypes.yaml index c57eb493dd..f7df9eb60c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DispositionServiceTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DispositionServiceTypes.yaml @@ -4,8 +4,8 @@ title: Disposition Service Types description: Concrete types of disposition services. MIGRATED from disposition_service string (2026-01-26). imports: -- linkml:types -- ./DispositionServiceType + - ./DispositionServiceType + - linkml:types default_prefix: hc classes: SecureDestructionService: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DissolutionEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DissolutionEvent.yaml index de591d5190..6b95a5e562 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DissolutionEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DissolutionEvent.yaml @@ -7,10 +7,8 @@ prefixes: prov: http://www.w3.org/ns/prov# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../classes/TimeSpan -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../slots/temporal_extent default_prefix: hc classes: DissolutionEvent: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DistrictArchiveGermany.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DistrictArchiveGermany.yaml index 3ad2719819..44cabb96fd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DistrictArchiveGermany.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DistrictArchiveGermany.yaml @@ -8,22 +8,11 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DistrictArchiveGermanyRecordSetType -- ./DistrictArchiveGermanyRecordSetTypes -- ./DualClassLink -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: DistrictArchiveGermany: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DistrictArchiveGermanyRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DistrictArchiveGermanyRecordSetType.yaml index 611dbbdd72..115c9d3335 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DistrictArchiveGermanyRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DistrictArchiveGermanyRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: DistrictArchiveGermanyRecordSetType: description: 'A rico:RecordSetType for classifying collections held by DistrictArchiveGermany custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DistrictArchiveGermanyRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DistrictArchiveGermanyRecordSetTypes.yaml index d4f929e620..b6ccca0fae 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DistrictArchiveGermanyRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DistrictArchiveGermanyRecordSetTypes.yaml @@ -17,21 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./DistrictArchiveGermany -- ./DistrictArchiveGermanyRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./DistrictArchiveGermanyRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: KreisAdministrationFonds: is_a: DistrictArchiveGermanyRecordSetType @@ -39,7 +33,7 @@ classes: description: "A rico:RecordSetType for District (Kreis) administrative records.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -50,7 +44,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -75,16 +68,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept LocalGovernanceSeries: is_a: DistrictArchiveGermanyRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for District governance documentation.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -95,7 +85,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -118,6 +107,3 @@ classes: custodians. Inverse of rico:isOrWasHolderOf. annotations: custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DistritalArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DistritalArchive.yaml index 9d6ee1295f..ca351208ff 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DistritalArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DistritalArchive.yaml @@ -8,24 +8,12 @@ prefixes: wd: http://www.wikidata.org/entity/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DistritalArchiveRecordSetType -- ./DistritalArchiveRecordSetTypes -- ./DualClassLink -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: DistritalArchive: description: 'District archives in Portugal (Arquivo Distrital). These archives serve as the primary archival institution at the district (distrito) administrative level in Portugal. They preserve records of regional administration, notarial records, parish registers, and other historical documentation for their respective districts. German term: Bezirksarchiv (Portugal).' @@ -34,11 +22,10 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DistritalArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DistritalArchiveRecordSetType.yaml index c5323ccce6..2eecf794e3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DistritalArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DistritalArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: wd: http://www.wikidata.org/entity/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: DistritalArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by DistritalArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DistritalArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DistritalArchiveRecordSetTypes.yaml index c3ab123a0d..56ca766d9b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DistritalArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DistritalArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./DistritalArchive -- ./DistritalArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./DistritalArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: DistritoAdministrationFonds: is_a: DistritalArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for District administrative records (Portugal/Spain).\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Division.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Division.yaml index b0eff866b9..5ae553c4bb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Division.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Division.yaml @@ -7,17 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/organizational_level -- ../slots/specificity_annotation -- ./OrganizationalStructure -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/organizational_level classes: Division: description: A distinct and large part of an organization. In the context of heritage custodians, this represents a major organizational unit or department that may have its own archival or collection management responsibilities. Divisions are typically larger than departments and may contain multiple sub-units. @@ -26,11 +19,10 @@ classes: mixins: - OrganizationalStructure slots: - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: organizational_level: equals_string: major unit annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DocumentFormat.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DocumentFormat.yaml index 2686db0970..4deca0905f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DocumentFormat.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DocumentFormat.yaml @@ -8,9 +8,9 @@ prefixes: dcterms: http://purl.org/dc/terms/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: DocumentFormat: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DocumentType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DocumentType.yaml index c1b8ab3a8d..0b4e0cf954 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DocumentType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DocumentType.yaml @@ -14,12 +14,13 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: DocumentType: + class_uri: crm:E55_Type abstract: true description: Classification of a document. slots: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DocumentTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DocumentTypes.yaml index cd96304c1e..2a6cc2b746 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DocumentTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DocumentTypes.yaml @@ -3,8 +3,8 @@ name: DocumentTypes title: Document Types description: Concrete types of documents. MIGRATED from document_type string (2026-01-26). imports: -- linkml:types -- ./DocumentType + - ./DocumentType + - linkml:types default_prefix: hc classes: NotarialDeed: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Documentation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Documentation.yaml index bacb3cd8ab..1652a4f6fd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Documentation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Documentation.yaml @@ -2,12 +2,11 @@ id: https://nde.nl/ontology/hc/class/Documentation name: documentation_class title: Documentation Class imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -47,22 +46,22 @@ classes: slots: - has_or_had_label - has_or_had_description - - has_or_had_identifier + - identified_by - temporal_extent slot_usage: - has_or_had_identifier: + identified_by: range: uri required: true identifier: true examples: - value: https://data.rijksmuseum.nl/object-metadata/api/ has_or_had_label: - range: string +# range: string examples: - value: API Reference Documentation - value: Developer Integration Guide has_or_had_description: - range: string +# range: string examples: - value: Complete REST API reference with endpoint specifications, authentication, and response formats. temporal_extent: @@ -75,14 +74,14 @@ classes: comments: - Generic documentation class replacing domain-specific documentation slots - Supports multiple documentation types (API, user, developer, system) - - URL stored in has_or_had_identifier as the primary identifier + - URL stored in identified_by as the primary identifier - Aligns with Schema.org TechArticle for technical documentation see_also: - https://schema.org/TechArticle - http://usefulinc.com/ns/doap# examples: - value: - has_or_had_identifier: https://data.rijksmuseum.nl/object-metadata/api/ + identified_by: https://data.rijksmuseum.nl/object-metadata/api/ has_or_had_label: Rijksmuseum Collection API has_or_had_description: REST API documentation for accessing collection metadata and images annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DocumentationCentre.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DocumentationCentre.yaml index 3bc1ea7da8..91e743fdba 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DocumentationCentre.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DocumentationCentre.yaml @@ -7,16 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: DocumentationCentre: description: An organisation that deals with documentation, typically focusing on collecting, organizing, and providing access to documents and information on specific topics. Documentation centres often serve as specialized research facilities, combining archival, library, and information management functions. They may focus on particular subjects like human rights, social movements, or historical events. @@ -24,11 +18,10 @@ classes: class_uri: skos:Concept slots: - has_or_had_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DocumentationSource.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DocumentationSource.yaml index 0f9b47a973..e9cbaefb52 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DocumentationSource.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DocumentationSource.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_url + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_url classes: DocumentationSource: class_uri: schema:CreativeWork diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Domain.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Domain.yaml index 2f8ae92804..342d9b067d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Domain.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Domain.yaml @@ -5,9 +5,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_type -- ./DomainType + - linkml:types + - ../slots/has_or_had_type classes: Domain: class_uri: skos:Concept @@ -19,7 +18,7 @@ classes: - has_or_had_type slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DomainType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DomainType.yaml index d7a28a4a9d..93680ea363 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DomainType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DomainType.yaml @@ -5,10 +5,10 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: DomainType: class_uri: skos:Concept @@ -26,7 +26,7 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DomainTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DomainTypes.yaml index 41cdd8d0b9..1f43a0ba61 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DomainTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DomainTypes.yaml @@ -4,8 +4,8 @@ prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ imports: -- linkml:types -- ./DomainType + - ./DomainType + - linkml:types classes: HeritageDomain: is_a: DomainType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DonationScheme.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DonationScheme.yaml index 36c6a3e68b..ece9f8f5aa 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DonationScheme.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DonationScheme.yaml @@ -11,33 +11,25 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../enums/DonationSchemeTypeEnum -- ../slots/currency -- ../slots/has_or_had_benefit -- ../slots/has_or_had_note -- ../slots/has_or_had_score -- ../slots/is_or_was_tax_deductible -- ../slots/maximum_amount -- ../slots/minimum_amount -- ../slots/observed_in -- ../slots/offered_by -- ../slots/payment_frequency -- ../slots/regulated_by_scheme -- ../slots/scheme_description -- ../slots/scheme_id -- ../slots/scheme_name -- ../slots/scheme_type -- ../slots/scheme_url -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./SpecificityAnnotation -- ./TaxDeductibility -- ./TaxScheme -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../enums/DonationSchemeTypeEnum + - ../slots/currency + - ../slots/has_or_had_benefit + - ../slots/has_or_had_note + - ../slots/has_or_had_score + - ../slots/is_or_was_tax_deductible + - ../slots/maximum_amount + - ../slots/minimum_amount + - ../slots/observed_in + - ../slots/offered_by + - ../slots/payment_frequency + - ../slots/regulated_by_scheme + - ../slots/scheme_description + - ../slots/scheme_id + - ../slots/scheme_name + - ../slots/scheme_type + - ../slots/scheme_url + - ../slots/temporal_extent default_prefix: hc classes: DonationScheme: @@ -73,7 +65,6 @@ classes: - scheme_name - scheme_type - scheme_url - - specificity_annotation - is_or_was_tax_deductible - regulated_by_scheme - has_or_had_score @@ -82,7 +73,7 @@ classes: scheme_id: identifier: true required: true - range: uriorcurie +# range: string # uriorcurie pattern: ^https://nde\.nl/ontology/hc/donation-scheme/[a-z0-9-]+/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/donation-scheme/rijksmuseum/vrienden @@ -98,14 +89,14 @@ classes: - value: LEGACY_BEQUEST scheme_name: required: true - range: string +# range: string examples: - value: Rijksmuseum Vrienden - value: Adopt a Book - value: Director's Circle - value: Amis du Louvre scheme_description: - range: string +# range: string examples: - value: Become a Friend of the Rijksmuseum and enjoy unlimited free entry, exclusive member events, and a 10% discount in the museum shop. - value: Your adoption supports the conservation of fragile historic books. Choose a book to adopt and receive a certificate and bookplate. @@ -121,20 +112,20 @@ classes: - value: 4999 - value: 12000 currency: - range: string +# range: string examples: - value: EUR - value: GBP - value: USD payment_frequency: - range: string +# range: string examples: - value: one-time - value: monthly - value: annually - value: life has_or_had_benefit: - range: string +# range: string multivalued: true examples: - value: Free unlimited admission @@ -144,7 +135,7 @@ classes: - value: Bookplate with donor name offered_by: required: true - range: uriorcurie +# range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum - value: https://nde.nl/ontology/hc/custodian/uk/british-library @@ -199,7 +190,7 @@ classes: - has_or_had_percentage: observed_in: required: true - range: uriorcurie +# range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/observation/web/2026-01-01/rijksmuseum-support comments: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Drawer.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Drawer.yaml index 280b1ff4ef..b9d6f04d76 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Drawer.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Drawer.yaml @@ -6,19 +6,17 @@ prefixes: hc: https://nde.nl/ontology/hc/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../classes/Identifier -- ../slots/has_or_had_identifier -- ./DrawerNumber + - linkml:types + - ../slots/identified_by default_prefix: hc classes: Drawer: class_uri: rico:PhysicalLocation description: Storage drawer. slots: - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: range: DrawerNumber annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DrawerNumber.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DrawerNumber.yaml index 36f9300260..8fa9ba2a7c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DrawerNumber.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DrawerNumber.yaml @@ -5,8 +5,7 @@ description: Identifier for a drawer. MIGRATED from drawer_number (2026-01-26). prefixes: hc: https://nde.nl/ontology/hc/ imports: -- linkml:types -- ../classes/Identifier + - linkml:types default_prefix: hc classes: DrawerNumber: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DualClassLink.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DualClassLink.yaml index 700b080770..8bcdaa5af9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DualClassLink.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DualClassLink.yaml @@ -3,7 +3,7 @@ name: DualClassLink title: Dual Class Link description: A structured link between two classes. imports: -- linkml:types + - linkml:types classes: DualClassLink: class_uri: rdfs:Resource diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/DuplicateEntry.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/DuplicateEntry.yaml index a7e4da3ed7..bef8928a12 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/DuplicateEntry.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/DuplicateEntry.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# owl: http://www.w3.org/2002/07/owl# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: DuplicateEntry: description: "Reference to a duplicate institution entry, documenting the label,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EADDownload.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EADDownload.yaml index 4958767b6e..20c174f3bb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EADDownload.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EADDownload.yaml @@ -9,18 +9,12 @@ prefixes: schema: http://schema.org/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/CompressionTypeEnum -- ../enums/EADVersionEnum -- ../metadata -- ../slots/has_or_had_score -- ../slots/response_format -- ../slots/specificity_annotation -- ./DataServiceEndpoint -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/CompressionTypeEnum + - ../enums/EADVersionEnum + - ../metadata + - ../slots/has_or_had_score + - ../slots/response_format classes: EADDownload: is_a: DataServiceEndpoint @@ -59,7 +53,6 @@ classes: - https://eadiva.com/ - https://www.ica.org/en/isadg-general-international-standard-archival-description-second-edition slots: - - specificity_annotation - has_or_had_score annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EADIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EADIdentifier.yaml deleted file mode 100644 index 9bd688c829..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EADIdentifier.yaml +++ /dev/null @@ -1,37 +0,0 @@ -id: https://nde.nl/ontology/hc/class/EADIdentifier -name: EADIdentifier -title: EAD Identifier Class -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ -default_prefix: hc -imports: -- linkml:types -- ../slots/has_or_had_type -- ./Identifier -classes: - EADIdentifier: - is_a: Identifier - description: | - Identifier used in Encoded Archival Description (EAD) finding aids. - **DEFINITION**: - Uniquely identifies a finding aid or archival description component - within the EAD standard context. - **Ontological Alignment**: - - **Schema.org**: `schema:PropertyValue` - **Migrated From** (per slot_fixes.yaml): - - `ead_id` (string) → has_or_had_identifier + EADIdentifier - slot_usage: - has_or_had_type: - examples: - - value: - has_or_had_code: EAD_ID - has_or_had_label: EAD Identifier - annotations: - custodian_types: '["A"]' - custodian_types_rationale: EAD identifiers are specific to archives - specificity_score: 0.80 - specificity_rationale: Specific to archival description standards - examples: - - value: \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EBook.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EBook.yaml index 207315a7fa..4d15fbe8e2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EBook.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EBook.yaml @@ -10,10 +10,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_url -- ./URL + - linkml:types + - ../metadata + - ../slots/has_or_had_url classes: EBook: class_uri: schema:EBook diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ETag.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ETag.yaml index 5ed01d4fa2..92769db532 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ETag.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ETag.yaml @@ -8,25 +8,23 @@ prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score default_prefix: hc classes: ETag: - description: Represents an HTTP ETag (Entity Tag) value used for web cache validation. The ETag value is stored in `has_or_had_label` or `has_or_had_identifier`. + description: Represents an HTTP ETag (Entity Tag) value used for web cache validation. The ETag value is stored in `has_or_had_label` or `identified_by`. slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: has_or_had_label: - range: string +# range: string required: true annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EcclesiasticalProvince.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EcclesiasticalProvince.yaml index 4d99c65beb..760530b5d4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EcclesiasticalProvince.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EcclesiasticalProvince.yaml @@ -10,10 +10,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label classes: EcclesiasticalProvince: class_uri: org:Organization @@ -33,7 +33,7 @@ classes: slots: - has_or_had_label - - has_or_had_identifier + - identified_by annotations: custodian_types: '["H"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EconomicArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EconomicArchive.yaml index 77e33f3dca..d2b1d986f8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EconomicArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EconomicArchive.yaml @@ -8,24 +8,12 @@ prefixes: wd: http://www.wikidata.org/entity/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./EconomicArchiveRecordSetType -- ./EconomicArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: EconomicArchive: description: Archive documenting the economic history of a country, region, or sector. Economic archives collect and preserve records related to business, commerce, industry, trade, banking, and economic policy. They serve as primary sources for economic historians and researchers studying commercial and industrial development. @@ -34,11 +22,10 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EconomicArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EconomicArchiveRecordSetType.yaml index 1a4e54179f..f6a8bddcac 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EconomicArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EconomicArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: wd: http://www.wikidata.org/entity/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: EconomicArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by EconomicArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EconomicArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EconomicArchiveRecordSetTypes.yaml index 2dc267cbbd..55989bb99b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EconomicArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EconomicArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./EconomicArchive -- ./EconomicArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./EconomicArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: BusinessRecordsFonds: is_a: EconomicArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Business and commercial records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept TradeDocumentationCollection: is_a: EconomicArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Trade and commerce documentation.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by EconomicArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Edition.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Edition.yaml index d6233b16b2..57573aa647 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Edition.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Edition.yaml @@ -15,11 +15,11 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_note + - linkml:types + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_note classes: Edition: class_uri: bf:Edition @@ -31,11 +31,11 @@ classes: exact_mappings: - bf:Edition slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_note slot_usage: - has_or_had_identifier: + identified_by: has_or_had_label: has_or_had_note: annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Editor.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Editor.yaml index 63f0880f1d..a3a770cafd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Editor.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Editor.yaml @@ -8,11 +8,11 @@ prefixes: bibo: http://purl.org/ontology/bibo/ default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_role + - linkml:types + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_role classes: Editor: class_uri: schema:Person @@ -23,7 +23,7 @@ classes: - **Close**: `bibo:Editor` slots: - has_or_had_label - - has_or_had_identifier + - identified_by - has_or_had_role slot_usage: has_or_had_label: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Education.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Education.yaml index 2fd27c420d..695df60c31 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Education.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Education.yaml @@ -9,13 +9,12 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/temporal_extent classes: Education: class_uri: schema:EducationalOccupationalCredential @@ -30,7 +29,7 @@ classes: slots: - has_or_had_label - - has_or_had_identifier + - identified_by - temporal_extent - has_or_had_description diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EducationCenter.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EducationCenter.yaml index 9aa73c9343..cf1861902d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EducationCenter.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EducationCenter.yaml @@ -2,49 +2,26 @@ id: https://nde.nl/ontology/hc/class/education-center name: education_center_class title: EducationCenter Class imports: -- linkml:types -- ../classes/Participant -- ../classes/Quantity -- ../classes/TimeSpan -- ../enums/EducationProviderTypeEnum -- ../enums/RoomUnitTypeEnum -- ../slots/has_or_had_accessibility_feature -- ../slots/has_or_had_contact_details -- ../slots/has_or_had_description -- ../slots/has_or_had_equipment -- ../slots/has_or_had_facility -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_time_interval -- ../slots/has_or_had_type -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/is_or_was_required -- ../slots/max_group_size -- ../slots/provides_or_provided -- ../slots/serves_or_served -- ../slots/specificity_annotation -- ./AVEquipment -- ./Classroom -- ./ContactDetails -- ./CustodianObservation -- ./Description -- ./EducationFacilityType -- ./EmailAddress -- ./HandsOnFacility -- ./Label -- ./Program -- ./Quantity -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./RoomUnit -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./UserCommunity + - linkml:types + - ../enums/EducationProviderTypeEnum + - ../enums/RoomUnitTypeEnum + - ../slots/has_or_had_accessibility_feature + - ../slots/has_or_had_contact_details + - ../slots/has_or_had_description + - ../slots/has_or_had_equipment + - ../slots/has_or_had_facility + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_time_interval + - ../slots/has_or_had_type + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/is_or_was_required + - ../slots/max_group_size + - ../slots/provides_or_provided + - ../slots/serves_or_served prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -60,7 +37,7 @@ classes: is_a: ReconstructedEntity class_uri: schema:EducationalOrganization description: "Education center, learning facility, or educational programming space\noperated by a heritage custodian.\n\n**DEFINITION**:\n\nAn EducationCenter is a dedicated space for educational activities,\nworkshops, school programs, and public learning initiatives operated\nby a heritage custodian. Distinguished from ResearchCenter (academic\nresearch) by focus on public education and lifelong learning.\n\n**SCHEMA.ORG ALIGNMENT**:\n\n`schema:EducationalOrganization` - \"An educational organization.\"\n\n**WIKIDATA TYPE LINKAGE (EducationProviderTypeEnum Subset)**:\n\nEducation centers can be classified using relevant types from \nEducationProviderTypeEnum (208 types). Relevant education facility types:\n\n- Q3914 (school) - General educational facility\n- Q1376987 (education center)\n- Q9842 (primary school) - For youth programs\n- Q159334 (adult education) - For adult learning\n- Q578023 (resource center) - Learning resource facility\n- Q7315155 (research department) - If combined\ - \ with research\n\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Primary Focus | Audience |\n|------|---------------|----------|\n| **EducationCenter** | Public learning | Schools, families, adults |\n| ResearchCenter | Academic research | Scholars, researchers |\n| ReadingRoom | Collection access | Researchers |\n| ExhibitionSpace | Display | General public |\n\n**TYPICAL CHARACTERISTICS**:\n\n- **Classroom spaces**: Dedicated teaching rooms\n- **Workshop facilities**: Hands-on activity areas\n- **AV equipment**: Presentation technology\n- **Educational materials**: Teaching resources\n- **Flexible spaces**: Adaptable for different programs\n\n**USE CASES**:\n\n1. **Museum Education Department**:\n ```yaml\n EducationCenter:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/rijksmuseum-education\"\n has_or_had_label:\n label_text: \"Rijksmuseum Educatie Centrum\"\n education_type_classification: EDUCATION_CENTER\n target_audiences:\n\ + \ with research\n\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Primary Focus | Audience |\n|------|---------------|----------|\n| **EducationCenter** | Public learning | Schools, families, adults |\n| ResearchCenter | Academic research | Scholars, researchers |\n| ReadingRoom | Collection access | Researchers |\n| ExhibitionSpace | Display | General public |\n\n**TYPICAL CHARACTERISTICS**:\n\n- **Classroom spaces**: Dedicated teaching rooms\n- **Workshop facilities**: Hands-on activity areas\n- **AV equipment**: Presentation technology\n- **Educational materials**: Teaching resources\n- **Flexible spaces**: Adaptable for different programs\n\n**USE CASES**:\n\n1. **Museum Education Department**:\n ```yaml\n EducationCenter:\n identified_by: \"https://nde.nl/ontology/hc/aux/rijksmuseum-education\"\n has_or_had_label:\n label_text: \"Rijksmuseum Educatie Centrum\"\n education_type_classification: EDUCATION_CENTER\n target_audiences:\n\ \ - \"Primary schools\"\n - \"Secondary schools\"\n - \"Families\"\n - \"Adults\"\n ```\n\n2. **Archive Learning Center**:\n ```yaml\n EducationCenter:\n has_or_had_label:\n label_text: \"Nationaal Archief Leercentrum\"\n education_type_classification: RESOURCE_CENTER\n programs_offered:\n - \"Genealogy workshops\"\n - \"Historical research skills\"\n - \"Teacher training\"\n ```\n" exact_mappings: - schema:EducationalOrganization @@ -76,7 +53,7 @@ classes: - has_or_had_accessibility_feature - is_or_was_required - has_or_had_facility - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_contact_details @@ -84,22 +61,21 @@ classes: - has_or_had_equipment - provides_or_provided - max_group_size - - specificity_annotation - serves_or_served - has_or_had_score - is_or_was_derived_from - is_or_was_generated_by - has_or_had_quantity slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/rijksmuseum-education has_or_had_label: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: 'label_text: Rijksmuseum Educatie Centrum @@ -109,8 +85,8 @@ classes: - value: 'label_text: KB Workshops & Trainingen ' has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: 'description_text: Dedicated education facility offering school programs, family workshops, and teacher training. Features 4 classroom spaces and hands-on workshop areas. ' @@ -131,7 +107,7 @@ classes: has_or_had_name: 4K Projector has_or_had_type: Projector provides_or_provided: - range: string +# range: string examples: - value: has_or_had_description: Hands-on learning lab @@ -149,14 +125,14 @@ classes: - value: - value: has_or_had_facility: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: "facility_name: \"Main Classroom Wing\"\nhas_or_had_quantity:\n numeric_value: 4\nhas_or_had_unit:\n unit_type: CLASSROOM\nseating_capacity: 120\nav_equipped: true\n" has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: numeric_value: 2 @@ -192,7 +168,7 @@ classes: - https://www.wikidata.org/wiki/Q1376987 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/rijksmuseum-education + identified_by: https://nde.nl/ontology/hc/aux/rijksmuseum-education has_or_had_label: label_text: Rijksmuseum Educatie Centrum has_or_had_description: @@ -238,7 +214,7 @@ classes: has_or_had_label: Annual is_or_was_required: true - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/na-leercentrum + identified_by: https://nde.nl/ontology/hc/aux/na-leercentrum has_or_had_label: label_text: Nationaal Archief Leercentrum has_or_had_description: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EducationFacilityType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EducationFacilityType.yaml index 6956554e6c..d781922d10 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EducationFacilityType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EducationFacilityType.yaml @@ -14,10 +14,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label classes: EducationFacilityType: class_uri: skos:Concept @@ -26,7 +26,7 @@ classes: **Ontology Alignment**: - **Primary**: `skos:Concept` (Taxonomy term) - **Close**: `schema:definedTerm`' slots: - has_or_had_label - - has_or_had_identifier + - identified_by annotations: custodian_types: '["*"]' specificity_score: 0.7 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EducationLevel.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EducationLevel.yaml index e7e922f059..5eefc40d62 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EducationLevel.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EducationLevel.yaml @@ -10,10 +10,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label classes: EducationLevel: class_uri: schema:DefinedTerm @@ -26,7 +26,7 @@ classes: slots: - has_or_had_label - - has_or_had_identifier + - identified_by annotations: custodian_types: '["E"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EducationProviderSubtype.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EducationProviderSubtype.yaml index c76f31f34e..7734926cb2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EducationProviderSubtype.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EducationProviderSubtype.yaml @@ -10,10 +10,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label classes: EducationProviderSubtype: class_uri: skos:Concept @@ -26,7 +26,7 @@ classes: slots: - has_or_had_label - - has_or_had_identifier + - identified_by annotations: custodian_types: '["E"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EducationProviderType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EducationProviderType.yaml index a0145e2061..708d9cbef8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EducationProviderType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EducationProviderType.yaml @@ -26,22 +26,13 @@ see_also: - https://www.wikidata.org/wiki/Q2467461 - https://www.wikidata.org/wiki/Q132560468 imports: -- linkml:types -- ../enums/EducationProviderTypeEnum -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_level -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/offers_or_offered_access -- ../slots/specificity_annotation -- ./Access -- ./CustodianType -- ./EducationLevel -- ./EducationProviderSubtype -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/EducationProviderTypeEnum + - ../slots/has_or_had_hyponym + - ../slots/has_or_had_level + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/offers_or_offered_access prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# @@ -213,7 +204,6 @@ classes: \ so map to E.\n" slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_level - has_or_had_hyponym diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EmailAddress.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EmailAddress.yaml index 08ba9739b7..c05d3d0016 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EmailAddress.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EmailAddress.yaml @@ -10,12 +10,14 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/has_or_had_label classes: EmailAddress: - class_uri: schema:email + class_uri: hc:EmailAddress + close_mappings: + - schema:email description: >- An email address. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Embargo.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Embargo.yaml index a3bb5fcb13..7f16e1d68b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Embargo.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Embargo.yaml @@ -10,11 +10,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/temporal_extent classes: Embargo: class_uri: odrl:Prohibition diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Employer.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Employer.yaml index aedf0d9353..55dd632e0d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Employer.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Employer.yaml @@ -10,14 +10,12 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_url -- ../slots/is_or_was_related_to -- ./Heritage -- ./URL + - linkml:types + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_url + - ../slots/is_or_was_related_to classes: Employer: class_uri: schema:Organization @@ -30,7 +28,7 @@ classes: slots: - has_or_had_label - - has_or_had_identifier + - identified_by - has_or_had_url - is_or_was_related_to diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EncompassingBody.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EncompassingBody.yaml index 160a392957..e78fd53e82 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EncompassingBody.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EncompassingBody.yaml @@ -1,45 +1,25 @@ id: https://nde.nl/ontology/hc/class/EncompassingBody name: EncompassingBody imports: -- linkml:types -- ../classes/ServiceArea -- ../enums/EncompassingBodyTypeEnum -- ../slots/has_or_had_authority -- ../slots/has_or_had_budget -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_policy -- ../slots/has_or_had_score -- ../slots/has_or_had_url -- ../slots/implements_or_implemented -- ../slots/is_or_was_dissolved_by -- ../slots/is_or_was_founded_through -- ../slots/issued_call -- ../slots/legal_jurisdiction -- ../slots/membership_criteria -- ../slots/organization_legal_form -- ../slots/organization_name -- ../slots/organization_type -- ../slots/service_offering -- ../slots/specificity_annotation -- ./Agenda -- ./Budget -- ./Country -- ./DataLicensePolicy -- ./DissolutionEvent -- ./FoundingEvent -- ./GovernanceAuthority -- ./Jurisdiction -- ./Project -- ./Settlement -- ./SpecificityAnnotation -- ./Subregion -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./URL -- ./ServiceArea + - linkml:types + - ../enums/EncompassingBodyTypeEnum + - ../slots/has_or_had_authority + - ../slots/has_or_had_budget + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_policy + - ../slots/has_or_had_score + - ../slots/has_or_had_url + - ../slots/implements_or_implemented + - ../slots/is_or_was_dissolved_by + - ../slots/is_or_was_founded_through + - ../slots/issued_call + - ../slots/legal_jurisdiction + - ../slots/membership_criteria + - ../slots/organization_legal_form + - ../slots/organization_name + - ../slots/organization_type + - ../slots/service_offering prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -66,7 +46,7 @@ classes: - has_or_had_policy - has_or_had_description - is_or_was_dissolved_by - - has_or_had_identifier + - identified_by - is_or_was_founded_through - has_or_had_authority - legal_jurisdiction @@ -75,13 +55,12 @@ classes: - organization_name - organization_type - service_offering - - specificity_annotation - has_or_had_score - has_or_had_url slot_usage: organization_name: required: true - range: string +# range: string examples: - value: Ministerie van Onderwijs, Cultuur en Wetenschap - value: Digital Heritage Network @@ -92,7 +71,7 @@ classes: - value: UMBRELLA - value: NETWORK organization_legal_form: - range: string +# range: string examples: - value: Government ministry - value: Non-profit foundation @@ -121,7 +100,7 @@ classes: - value: has_or_had_description: Network coordinates digital preservation services but members retain autonomy. service_offering: - range: string +# range: string multivalued: true examples: - value: Digital preservation infrastructure @@ -129,19 +108,19 @@ classes: - value: Professional development training - value: Bulk licensing negotiations membership_criteria: - range: string +# range: string examples: - value: Dutch government heritage institutions established by law - value: Museums with digitization programs seeking preservation services - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: http://www.wikidata.org/entity/Q2294910 has_or_had_url: range: uri - inlined: true + inlined: false # Fixed invalid inline for primitive type multivalued: false examples: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EncompassingBodyTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EncompassingBodyTypes.yaml index 2093692626..b2d8431c80 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EncompassingBodyTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EncompassingBodyTypes.yaml @@ -14,38 +14,23 @@ description: 'Concrete subclasses of EncompassingBody representing different typ - FundingOrganisation - Grant-giving organization (financial relationships) ' imports: -- linkml:types -- ../classes/ServiceArea -- ../slots/has_or_had_authority -- ../slots/has_or_had_budget -- ../slots/has_or_had_focus -- ../slots/has_or_had_policy -- ../slots/has_or_had_scheme -- ../slots/has_or_had_score -- ../slots/has_or_had_source -- ../slots/has_or_had_time_interval -- ../slots/issued_call -- ../slots/legal_jurisdiction -- ../slots/membership_criteria -- ../slots/organization_legal_form -- ../slots/organization_type -- ../slots/provides_or_provided -- ../slots/receives_or_received -- ../slots/service_offering -- ../slots/specificity_annotation -- ./Budget -- ./DataLicensePolicy -- ./EncompassingBody -- ./Jurisdiction -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./FundingFocus -- ./FundingScheme -- ./FundingSource -- ../enums/EncompassingBodyTypeEnum + - linkml:types + - ../slots/has_or_had_authority + - ../slots/has_or_had_budget + - ../slots/has_or_had_focus + - ../slots/has_or_had_policy + - ../slots/has_or_had_scheme + - ../slots/has_or_had_source + - ../slots/has_or_had_time_interval + - ../slots/issued_call + - ../slots/legal_jurisdiction + - ../slots/membership_criteria + - ../slots/organization_legal_form + - ../slots/organization_type + - ../slots/provides_or_provided + - ../slots/receives_or_received + - ../slots/service_offering + - ../enums/EncompassingBodyTypeEnum prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -64,7 +49,7 @@ default_prefix: hc classes: UmbrellaOrganisation: is_a: EncompassingBody - class_uri: org:FormalOrganization + class_uri: hc:UmbrellaOrganisation description: "A legal parent organization with formal governance authority over\ \ heritage custodians,\ndefined in articles of association, foundation statutes,\ \ or legislation. Represents\nPERMANENT hierarchical legal structures.\n\n**Characteristics**:\n\ @@ -125,7 +110,7 @@ classes: alpha_3: DEU subregion: iso_3166_2_code: DE-BY - exact_mappings: + broad_mappings: - org:FormalOrganization close_mappings: - tooi:Ministerie @@ -153,23 +138,21 @@ classes: country: alpha_2: NL alpha_3: NLD - - has_or_had_identifier: https://nde.nl/ontology/hc/nl-na + has_or_had_member: + - identified_by: https://nde.nl/ontology/hc/nl-na preferred_label: Nationaal Archief - - has_or_had_identifier: https://nde.nl/ontology/hc/nl-nh-ams-m-rm + - identified_by: https://nde.nl/ontology/hc/nl-nh-ams-m-rm preferred_label: Rijksmuseum has_or_had_url: https://www.rijksoverheid.nl/ministeries/ocw slots: - - specificity_annotation - has_or_had_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - skos:Concept NetworkOrganisation: is_a: EncompassingBody - class_uri: schema:Organization + class_uri: hc:NetworkOrganisation description: "A service provider network that coordinates and delivers services\ \ to member heritage\ncustodians through TEMPORARY agreements or treaties. Members\ \ choose to participate\nto access services; participation is NOT legally imposed.\n\ @@ -216,7 +199,7 @@ classes: has_or_had_description: Network defines technical standards for digital preservation but members retain full autonomy over collection policies and operations. - exact_mappings: + broad_mappings: - schema:Organization close_mappings: - tooi:Samenwerkingsorganisatie @@ -231,6 +214,7 @@ classes: organization_name: Digital Heritage Network Netherlands organization_type: NETWORK begin_of_the_begin: '2015-03-01' + service_area: - has_or_had_label: NL has_or_had_description: Netherlands national coverage service_offering: @@ -240,21 +224,19 @@ classes: - Preservation format migration services membership_criteria: Dutch museums, archives, and libraries with digital collections. Annual membership fee based on storage usage. - - has_or_had_identifier: https://nde.nl/ontology/hc/nl-nh-ams-m-am + has_or_had_member: + - identified_by: https://nde.nl/ontology/hc/nl-nh-ams-m-am preferred_label: Amsterdam Museum - - has_or_had_identifier: https://nde.nl/ontology/hc/nl-ut-utr-l-ub + - identified_by: https://nde.nl/ontology/hc/nl-ut-utr-l-ub preferred_label: Utrecht University Library has_or_had_url: https://digitalheritage.nl slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' - broad_mappings: - - skos:Concept Consortium: is_a: EncompassingBody - class_uri: schema:Consortium + class_uri: hc:Consortium description: "A collaborative body where member heritage custodians provide MUTUAL\ \ assistance\nto each other through TEMPORARY agreements. Unlike networks (centralized\ \ service\nprovider), consortia are PEER-TO-PEER collaboration models.\n\n**Characteristics**:\n\ @@ -325,13 +307,13 @@ classes: membership_criteria: Dutch university libraries accredited by VSNU (Association of Universities in the Netherlands). Members must contribute cataloging records and participate in interlibrary loan network. - - has_or_had_identifier: https://nde.nl/ontology/hc/nl-zh-lei-l-ub + has_or_had_member: + - identified_by: https://nde.nl/ontology/hc/nl-zh-lei-l-ub preferred_label: Leiden University Library - - has_or_had_identifier: https://nde.nl/ontology/hc/nl-nh-ams-l-uba + - identified_by: https://nde.nl/ontology/hc/nl-nh-ams-l-uba preferred_label: Amsterdam University Library has_or_had_url: https://universiteitsbibliotheken.nl slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' @@ -339,7 +321,7 @@ classes: - skos:Concept Cooperative: is_a: EncompassingBody - class_uri: org:FormalOrganization + class_uri: hc:Cooperative description: "A member-OWNED organization where members both contribute to and\ \ benefit from\nshared services. Distinguished from Consortium by PERMANENT\ \ structure and\nOWNERSHIP model - members are legal owners of the cooperative.\n\ @@ -390,7 +372,7 @@ classes: and access to services. has_or_had_policy: recommended: true - exact_mappings: + broad_mappings: - org:FormalOrganization close_mappings: - schema:Organization @@ -424,23 +406,21 @@ classes: Americas, EMEA, and Asia Pacific. Annual Members Council meeting. has_or_had_policy: policy_name: OCLC Data Usage Policy + applies_to: - service_name: VIAF license: odc-by-1.0 - service_name: WorldCat Identities license: odc-by-1.0 - has_or_had_identifier: + identified_by: - https://viaf.org/viaf/125315828 has_or_had_url: https://www.oclc.org/ slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' - broad_mappings: - - skos:Concept SocialMovement: is_a: EncompassingBody - class_uri: schema:Organization + class_uri: hc:SocialMovement description: "A value-driven movement organized around shared ideological principles,\n\ with open participation and commitment to public benefit. Distinguished from\n\ other types by ideological motivation and OPEN data policies as core value.\n\ @@ -498,7 +478,7 @@ classes: and community-elected bodies. has_or_had_policy: required: true - exact_mappings: + broad_mappings: - schema:Organization comments: - SocialMovement = value-driven, open participation, open data @@ -534,24 +514,22 @@ classes: bodies (Movement Charter in development). has_or_had_policy: policy_name: Wikimedia Foundation Open Content Policy + applies_to: - service_name: Wikidata license: cc0-1.0 - service_name: Wikipedia license: cc-by-sa-4.0 - service_name: Wikimedia Commons - has_or_had_identifier: + identified_by: - https://viaf.org/viaf/305375908 has_or_had_url: https://www.wikimedia.org/ slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '[''*'']' - broad_mappings: - - skos:Concept FundingOrganisation: is_a: EncompassingBody - class_uri: schema:FundingAgency + class_uri: hc:FundingOrganisation description: "A grant-giving organization that provides FINANCIAL RESOURCES to\ \ heritage\ncustodians through funding schemes, grants, and subsidies. Distinguished\ \ from\nother EncompassingBody types by the FINANCIAL relationship rather than\ @@ -602,7 +580,6 @@ classes: - receives_or_received - issued_call - has_or_had_time_interval - - specificity_annotation - has_or_had_score - has_or_had_budget slot_usage: @@ -611,9 +588,9 @@ classes: required: true ifabsent: string(FUNDING_BODY) issued_call: - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: https://nde.nl/ontology/hc/call/nwo/nwa-heritage-2025 has_or_had_focus: @@ -698,6 +675,7 @@ classes: has_or_had_label: Euro currency_symbol: "\u20AC" has_or_had_source: Dutch Ministry of OCW annual appropriation + service_area: - has_or_had_label: NL has_or_had_description: Netherlands national coverage service_offering: @@ -707,7 +685,7 @@ classes: membership_criteria: 'Eligibility depends on specific funding scheme. Generally: Dutch museums, archives, heritage organizations, and visual artists. International projects may have broader eligibility.' - has_or_had_identifier: null + identified_by: null has_or_had_url: https://www.mondriaanfonds.nl/ - value: id: https://nde.nl/ontology/hc/encompassing-body/funding/erc @@ -737,6 +715,7 @@ classes: end_of_the_end: '2027-12-31' receives_or_received: has_or_had_label: Horizon Europe Framework Programme (EU budget) + service_area: - has_or_had_label: EU has_or_had_description: European Union - has_or_had_label: EEA @@ -746,7 +725,7 @@ classes: membership_criteria: Open to researchers of any nationality. Host institution must be in EU Member State or Horizon Europe Associated Country. Selection based on scientific excellence only. - has_or_had_identifier: null + identified_by: null has_or_had_url: https://erc.europa.eu/ annotations: custodian_types: '[''*'']' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Endpoint.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Endpoint.yaml index 5d9dbba52e..dbcf8c7ec1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Endpoint.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Endpoint.yaml @@ -6,10 +6,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ dcat: http://www.w3.org/ns/dcat# imports: -- linkml:types -- ../classes/URL -- ../slots/has_or_had_url -- ./URL + - linkml:types + - ../slots/has_or_had_url default_prefix: hc classes: Endpoint: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EngagementMetric.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EngagementMetric.yaml index de3be5e6df..e5615f88b5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EngagementMetric.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EngagementMetric.yaml @@ -9,11 +9,11 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_type -- ../slots/has_or_had_unit -- ../slots/has_or_had_value + - linkml:types + - ../metadata + - ../slots/has_or_had_type + - ../slots/has_or_had_unit + - ../slots/has_or_had_value classes: EngagementMetric: class_uri: schema:InteractionCounter @@ -30,11 +30,11 @@ classes: slot_usage: has_or_had_type: - range: string +# range: string has_or_had_value: range: decimal has_or_had_unit: - range: string +# range: string annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentMetadata.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentMetadata.yaml index 1252605dc2..4c76262f2b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentMetadata.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentMetadata.yaml @@ -10,13 +10,11 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_method -- ../slots/temporal_extent -- ./EnrichmentMethod -- ./TimeSpan + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_method + - ../slots/temporal_extent classes: EnrichmentMetadata: class_uri: prov:Activity diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentMethod.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentMethod.yaml index 95bb1caa09..f8d5e9baea 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentMethod.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentMethod.yaml @@ -14,10 +14,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: EnrichmentMethod: class_uri: prov:Plan diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentProvenance.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentProvenance.yaml index a3ddcb3212..36b20a74bc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentProvenance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentProvenance.yaml @@ -8,9 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ./EnrichmentProvenanceEntry -default_range: string + - linkml:types +# default_range: string classes: EnrichmentProvenance: description: "Nested provenance tracking for individual enrichment sources within\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentProvenanceEntry.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentProvenanceEntry.yaml index 8e85e99645..44b800414b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentProvenanceEntry.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EnrichmentProvenanceEntry.yaml @@ -13,8 +13,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: EnrichmentProvenanceEntry: description: "A single enrichment provenance entry containing content hash for\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Entity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Entity.yaml index e0f8b93819..b06a4958d7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Entity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Entity.yaml @@ -14,7 +14,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types + - linkml:types classes: Entity: class_uri: prov:Entity @@ -32,7 +32,7 @@ classes: - Abstract entity representation ' - exact_mappings: + broad_mappings: - prov:Entity close_mappings: - schema:Thing diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EntityReconstruction.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EntityReconstruction.yaml index c93e7dc2d7..606e215807 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EntityReconstruction.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EntityReconstruction.yaml @@ -11,13 +11,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_score classes: EntityReconstruction: class_uri: prov:Entity @@ -58,7 +53,6 @@ classes: abstract: true slots: - - specificity_annotation - has_or_had_score annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EntityType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EntityType.yaml index 20d68a0ac8..61d91afb89 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EntityType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EntityType.yaml @@ -10,10 +10,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label classes: EntityType: class_uri: skos:Concept @@ -26,7 +26,7 @@ classes: slots: - has_or_had_label - - has_or_had_identifier + - identified_by annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalCondition.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalCondition.yaml index 9655610c54..3dae2f5a67 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalCondition.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalCondition.yaml @@ -8,10 +8,10 @@ prefixes: sosa: http://www.w3.org/ns/sosa/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_type -- ../slots/has_or_had_unit -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_type + - ../slots/has_or_had_unit + - ../slots/has_or_had_value classes: EnvironmentalCondition: class_uri: sosa:Observation diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalControl.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalControl.yaml index 4297e0682b..898f803860 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalControl.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalControl.yaml @@ -15,10 +15,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: EnvironmentalControl: class_uri: sosa:Actuation diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalRequirement.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalRequirement.yaml index 5f6cfe3148..922d3f94d5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalRequirement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalRequirement.yaml @@ -10,10 +10,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: EnvironmentalRequirement: class_uri: schema:PropertyValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalZone.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalZone.yaml index 8df3cd3f40..0ce8d6f635 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalZone.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalZone.yaml @@ -12,41 +12,26 @@ prefixes: aat: http://vocab.getty.edu/aat/ default_prefix: hc imports: -- linkml:types -- ../enums/MeasureUnitEnum -- ../enums/SetpointTypeEnum -- ../slots/allows_or_allowed -- ../slots/contains_or_contained_contains_unit -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_requirement -- ../slots/has_or_had_score -- ../slots/has_or_had_setpoint -- ../slots/has_or_had_tolerance -- ../slots/has_or_had_type -- ../slots/max_annual_light_exposure -- ../slots/max_light_lux -- ../slots/monitoring_platform -- ../slots/monitoring_platform_url -- ../slots/observation -- ../slots/part_of_facility -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./EnvironmentalRequirement -- ./EnvironmentalZoneType -- ./EnvironmentalZoneTypes -- ./Setpoint -- ./SpecificityAnnotation -- ./Storage -- ./StorageCondition -- ./StorageConditionPolicy -- ./StorageUnit -- ./TemperatureDeviation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../enums/MeasureUnitEnum + - ../enums/SetpointTypeEnum + - ../slots/allow + - ../slots/contains_or_contained_contains_unit + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_requirement + - ../slots/has_or_had_score + - ../slots/has_or_had_setpoint + - ../slots/has_or_had_tolerance + - ../slots/has_or_had_type + - ../slots/max_annual_light_exposure + - ../slots/max_light_lux + - ../slots/monitoring_platform + - ../slots/monitoring_platform_url + - ../slots/observation + - ../slots/part_of_facility + - ../slots/temporal_extent classes: EnvironmentalZone: class_uri: hc:EnvironmentalZone @@ -72,44 +57,43 @@ classes: slots: - contains_or_contained_contains_unit - has_or_had_tolerance - - allows_or_allowed + - allow - max_annual_light_exposure - max_light_lux - monitoring_platform - monitoring_platform_url - observation - part_of_facility - - specificity_annotation - has_or_had_setpoint - has_or_had_score - temporal_extent - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_type slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/zone/na-depot-a-standard has_or_had_label: - range: string +# range: string required: true examples: - value: Standard Archive Storage Zone A - value: Cold Storage Vault - Film Negatives - value: Photographic Materials Room has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: ARCHIVE_STANDARD - value: COLD_STORAGE - value: PHOTOGRAPHIC has_or_had_description: - range: string +# range: string has_or_had_setpoint: range: Setpoint multivalued: true @@ -129,11 +113,11 @@ classes: setpoint_max: 55.0 setpoint_tolerance: 5.0 setpoint_unit: PERCENT - allows_or_allowed: - range: string + allow: +# range: string multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - deviation_value: 2.0 @@ -162,7 +146,7 @@ classes: multivalued: true inlined_as_list: true monitoring_platform: - range: string +# range: string examples: - value: Hanwell RadioLog environmental monitoring system - value: Meaco Climate Manager @@ -190,7 +174,7 @@ classes: - http://www.w3.org/ns/sosa/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/zone/na-depot-a-standard + identified_by: https://nde.nl/ontology/hc/zone/na-depot-a-standard has_or_had_label: Standard Archive Storage Zone A has_or_had_type: ARCHIVE_STANDARD has_or_had_description: 'Climate-controlled archive storage meeting ISO 11799 requirements. @@ -215,7 +199,7 @@ classes: monitoring_platform: Hanwell RadioLog monitoring system part_of_facility: https://nde.nl/ontology/hc/storage/na-depot-a - value: - has_or_had_identifier: https://nde.nl/ontology/hc/zone/ef-cold-vault + identified_by: https://nde.nl/ontology/hc/zone/ef-cold-vault has_or_had_label: Cold Storage Vault - Film Archive has_or_had_type: COLD_STORAGE has_or_had_description: "Refrigerated vault for nitrate and acetate film negatives.\nMaintained at -5\xB0C, 30% RH per ISO 18911.\n" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalZoneType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalZoneType.yaml index a0645ea4d4..6f4ebea30b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalZoneType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalZoneType.yaml @@ -18,40 +18,31 @@ prefixes: # Rule compliance: 0b (Type/Types naming), 37 (specificity scores), 38 (slot centralization) # # MIGRATION: This file replaces environmental_zone_type_* slots with shared slots: -# - environmental_zone_type_id → has_or_had_identifier +# - environmental_zone_type_id → identified_by # - environmental_zone_type_code → has_or_had_code # - environmental_zone_type_label → has_or_had_label # - environmental_zone_type_description → has_or_had_description default_prefix: hc imports: -- linkml:types -- ../enums/MeasureUnitEnum -- ../enums/SetpointTypeEnum -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_setpoint -- ../slots/is_or_was_equivalent_to -- ../slots/iso_standard -- ../slots/max_annual_light_exposure -- ../slots/max_light_lux -- ../slots/requires_dark_storage -- ../slots/requires_dust_free -- ../slots/requires_esd_protection -- ../slots/requires_uv_filter -- ../slots/specificity_annotation -- ../slots/stores_or_stored -- ../slots/stores_or_stored # was: target_material -- ./Material # Added for stores_or_stored range (material design specs) -- ./MaterialType # Added for Material.has_or_had_type -- ./Setpoint -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../enums/MeasureUnitEnum + - ../enums/SetpointTypeEnum + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_setpoint + - ../slots/is_or_was_equivalent_to + - ../slots/iso_standard + - ../slots/max_annual_light_exposure + - ../slots/max_light_lux + - ../slots/requires_dark_storage + - ../slots/requires_dust_free + - ../slots/requires_esd_protection + - ../slots/requires_uv_filter + - ../slots/stores_or_stored + - ../slots/stores_or_stored # was: target_material classes: EnvironmentalZoneType: class_uri: skos:Concept @@ -96,7 +87,7 @@ classes: Each enum value becomes a subclass with richer semantic modeling. **SLOT MIGRATION** (2026-01-13): This class now uses shared slots instead of domain-specific environmental_zone_type_* slots: - - `has_or_had_identifier` replaces `environmental_zone_type_id` + - `identified_by` replaces `environmental_zone_type_id` - `has_or_had_code` replaces `environmental_zone_type_code` - `has_or_had_label` replaces `environmental_zone_type_label` - `has_or_had_description` replaces `environmental_zone_type_description` @@ -145,7 +136,7 @@ classes: - aat:300054225 slots: # Shared slots (from centralized slot files) - - has_or_had_identifier + - identified_by - has_or_had_code - has_or_had_label - has_or_had_description @@ -160,12 +151,11 @@ classes: - requires_esd_protection - requires_dark_storage - requires_dust_free - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) # REMOVED 2026-01-15: wikidata_id - migrated to is_or_was_equivalent_to (Rule 53) - is_or_was_equivalent_to slot_usage: - has_or_had_identifier: + identified_by: required: true has_or_had_code: required: true @@ -215,23 +205,23 @@ classes: inlined_as_list: true examples: - value: - - has_or_had_identifier: https://nde.nl/ontology/hc/material/paper + - identified_by: https://nde.nl/ontology/hc/material/paper has_or_had_label: - paper@en - papier@nl has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/parchment + - identified_by: https://nde.nl/ontology/hc/material/parchment has_or_had_label: - parchment@en - perkament@nl has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - value: - - has_or_had_identifier: https://nde.nl/ontology/hc/material/nitrate-film + - identified_by: https://nde.nl/ontology/hc/material/nitrate-film has_or_had_label: - nitrate film@en - nitraatfilm@nl has_or_had_type: https://nde.nl/ontology/hc/material-type/synthetic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/acetate-film + - identified_by: https://nde.nl/ontology/hc/material/acetate-film has_or_had_label: - acetate film@en - acetaatfilm@nl @@ -256,7 +246,7 @@ classes: # NOTE: slot_usage may need manual review for range/description updates '{"collection_discovery": 0.80, "organizational_change": 0.35, "general_heritage": 0.50}' slot_migration: | 2026-01-13: Migrated from domain-specific to shared slots - - environmental_zone_type_id → has_or_had_identifier + - environmental_zone_type_id → identified_by - environmental_zone_type_code → has_or_had_code - environmental_zone_type_label → has_or_had_label - environmental_zone_type_description → has_or_had_description @@ -287,7 +277,7 @@ classes: - http://www.cidoc-crm.org/cidoc-crm/E3_Condition_State examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/environmental-zone-type/archive-standard + identified_by: https://nde.nl/ontology/hc/environmental-zone-type/archive-standard has_or_had_code: ARCHIVE_STANDARD has_or_had_label: - Archive Standard Storage Environment@en @@ -311,22 +301,22 @@ classes: has_or_had_uri: hc:StandardArchiveEnvironment # was: target_material - migrated per Rule 53/56 (2026-01-16) stores_or_stored: - - has_or_had_identifier: https://nde.nl/ontology/hc/material/paper + - identified_by: https://nde.nl/ontology/hc/material/paper has_or_had_label: - paper@en - papier@nl has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/parchment + - identified_by: https://nde.nl/ontology/hc/material/parchment has_or_had_label: - parchment@en - perkament@nl has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/manuscript + - identified_by: https://nde.nl/ontology/hc/material/manuscript has_or_had_label: - manuscript@en - manuscript@nl has_or_had_type: https://nde.nl/ontology/hc/material-type/composite - - has_or_had_identifier: https://nde.nl/ontology/hc/material/photograph + - identified_by: https://nde.nl/ontology/hc/material/photograph has_or_had_label: - photograph@en - foto@nl diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalZoneTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalZoneTypes.yaml index 08f3985f3d..a47b14de29 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalZoneTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EnvironmentalZoneTypes.yaml @@ -13,24 +13,17 @@ prefixes: aat: http://vocab.getty.edu/aat/ default_prefix: hc imports: -- linkml:types -- ../classes/Setpoint -- ../slots/has_or_had_code -- ../slots/has_or_had_score -- ../slots/has_or_had_setpoint -- ../slots/max_annual_light_exposure -- ../slots/max_light_lux -- ../slots/requires_dark_storage -- ../slots/requires_dust_free -- ../slots/requires_esd_protection -- ../slots/requires_uv_filter -- ../slots/specificity_annotation -- ./EnvironmentalZoneType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./Setpoint + - ./EnvironmentalZoneType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_score + - ../slots/has_or_had_setpoint + - ../slots/max_annual_light_exposure + - ../slots/max_light_lux + - ../slots/requires_dark_storage + - ../slots/requires_dust_free + - ../slots/requires_esd_protection + - ../slots/requires_uv_filter classes: ArchiveStandardStorageEnvironment: is_a: EnvironmentalZoneType @@ -77,7 +70,6 @@ classes: equals_number: 50.0 slots: - has_or_had_setpoint - - specificity_annotation - has_or_had_score comments: - Primary standard for paper-based archival materials @@ -141,7 +133,6 @@ classes: equals_expression: 'true' slots: - has_or_had_setpoint - - specificity_annotation - has_or_had_score comments: - Essential for film preservation - prevents vinegar syndrome @@ -202,7 +193,6 @@ classes: equals_expression: 'true' slots: - has_or_had_setpoint - - specificity_annotation - has_or_had_score comments: - Maximum preservation for highly sensitive materials @@ -271,7 +261,6 @@ classes: equals_expression: 'true' slots: - has_or_had_setpoint - - specificity_annotation - has_or_had_score comments: - Specialized environment for photographic collections @@ -338,7 +327,6 @@ classes: equals_expression: 'true' slots: - has_or_had_setpoint - - specificity_annotation - has_or_had_score comments: - Specialized for textile and costume collections @@ -397,7 +385,6 @@ classes: setpoint_max: 55.0 slots: - has_or_had_setpoint - - specificity_annotation - has_or_had_score comments: - Emphasis on environmental stability @@ -449,7 +436,6 @@ classes: setpoint_max: 35.0 slots: - has_or_had_setpoint - - specificity_annotation - has_or_had_score comments: - Low humidity critical for corrosion prevention @@ -497,7 +483,6 @@ classes: setpoint_max: 50.0 slots: - has_or_had_setpoint - - specificity_annotation - has_or_had_score comments: - Conditions vary by specimen type @@ -554,7 +539,6 @@ classes: equals_number: 50.0 slots: - has_or_had_setpoint - - specificity_annotation - has_or_had_score comments: - Similar to archive standard @@ -612,7 +596,6 @@ classes: equals_expression: 'true' slots: - has_or_had_setpoint - - specificity_annotation - has_or_had_score comments: - Distinct from cold storage for film @@ -665,7 +648,6 @@ classes: equals_expression: 'true' slots: - has_or_had_setpoint - - specificity_annotation - has_or_had_score comments: - ESD protection essential @@ -717,7 +699,6 @@ classes: setpoint_max: 55.0 slots: - has_or_had_setpoint - - specificity_annotation - has_or_had_score comments: - Basic climate control for mixed collections @@ -759,7 +740,6 @@ classes: has_or_had_code: equals_string: AMBIENT slots: - - specificity_annotation - has_or_had_score comments: - Minimal climate control @@ -794,7 +774,6 @@ classes: has_or_had_code: equals_string: QUARANTINE slots: - - specificity_annotation - has_or_had_score comments: - Physical isolation required @@ -846,7 +825,6 @@ classes: setpoint_max: 55.0 slots: - has_or_had_setpoint - - specificity_annotation - has_or_had_score comments: - Workspace, not storage @@ -884,7 +862,6 @@ classes: has_or_had_code: equals_string: OTHER slots: - - specificity_annotation - has_or_had_score comments: - Use when no standard category applies diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Equipment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Equipment.yaml index c5ee2ef362..b7d1afdf68 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Equipment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Equipment.yaml @@ -10,12 +10,11 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ./EquipmentType + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type classes: Equipment: class_uri: sosa:Platform @@ -33,7 +32,7 @@ classes: slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie annotations: custodian_types: '["*"]' specificity_score: 0.3 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EquipmentType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EquipmentType.yaml index 4761d45cfb..0dc5ff05cf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EquipmentType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EquipmentType.yaml @@ -10,10 +10,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label classes: EquipmentType: class_uri: skos:Concept @@ -26,7 +26,7 @@ classes: slots: - has_or_had_label - - has_or_had_identifier + - identified_by annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EquipmentTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EquipmentTypes.yaml index 18bd2f7422..497c3113f3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EquipmentTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EquipmentTypes.yaml @@ -16,8 +16,8 @@ description: 'Concrete subclasses of EquipmentType for heritage domain. ' imports: -- linkml:types -- ./EquipmentType + - ./EquipmentType + - linkml:types classes: ConservationEquipment: is_a: EquipmentType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Essay.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Essay.yaml index f851efaf9c..3b1c7947e5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Essay.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Essay.yaml @@ -15,9 +15,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: Essay: class_uri: schema:Article diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EstablishmentEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EstablishmentEvent.yaml index e6f7b35f98..ea068f64d4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EstablishmentEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EstablishmentEvent.yaml @@ -14,11 +14,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/temporal_extent classes: EstablishmentEvent: class_uri: org:ChangeEvent diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EstimationMethod.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EstimationMethod.yaml index ce4786fe56..9bf57c2ff5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EstimationMethod.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EstimationMethod.yaml @@ -12,12 +12,11 @@ prefixes: prov: http://www.w3.org/ns/prov# schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score default_prefix: hc classes: EstimationMethod: @@ -28,14 +27,13 @@ classes: exact_mappings: - prov:Plan slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: has_or_had_label: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Event.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Event.yaml index fed3bd35cc..dad7080c8c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Event.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Event.yaml @@ -12,30 +12,17 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_documentation -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/involves_or_involved -- ../slots/is_or_was_generated_by -- ../slots/specificity_annotation -- ../slots/takes_or_took_place_at -- ../slots/temporal_extent -- ./Actor -- ./ConfidenceScore -- ./Description -- ./EventType -- ./GenerationEvent -- ./Identifier -- ./Label -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_documentation + - ../slots/has_or_had_hypernym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/involves_or_involved + - ../slots/is_or_was_generated_by + - ../slots/takes_or_took_place_at + - ../slots/temporal_extent classes: Event: class_uri: crm:E5_Event @@ -65,24 +52,24 @@ classes: slots: - has_or_had_documentation - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_hypernym - temporal_extent - involves_or_involved - - specificity_annotation - has_or_had_score - takes_or_took_place_at - is_or_was_generated_by slot_usage: - has_or_had_identifier: + identified_by: required: true identifier: true has_or_had_hypernym: required: true - range: EventType - inlined: true +# range: string # uriorcurie + # range: EventType + inlined: false # Fixed invalid inline for primitive type has_or_had_label: required: true has_or_had_description: @@ -92,9 +79,10 @@ classes: range: TimeSpan inlined: true is_or_was_generated_by: - range: GenerationEvent +# range: string # uriorcurie + # range: GenerationEvent required: false - inlined: true + inlined: false # Fixed invalid inline for primitive type description: 'Generation event containing confidence score for this event. MIGRATED 2026-01-19: Replaces confidence_score slot with structured pattern.' examples: - value: @@ -111,7 +99,7 @@ classes: - "MIGRATED 2026-01-19: confidence_score \u2192 is_or_was_generated_by + ConfidenceScore" examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/event/nha-merger-2001 + identified_by: https://nde.nl/ontology/hc/event/nha-merger-2001 has_or_had_label: Noord-Hollands Archief Merger has_or_had_hypernym: TRANSFORMATION temporal_extent: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EventType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EventType.yaml index ee6e56615c..81d780b11a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EventType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EventType.yaml @@ -16,26 +16,24 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score default_prefix: hc classes: EventType: class_uri: skos:Concept description: A type or category of event. slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: has_or_had_label: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EventTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EventTypes.yaml index 8ba233de1b..ba68305d67 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EventTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EventTypes.yaml @@ -9,9 +9,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/includes_or_included -- ./EventType + - ./EventType + - linkml:types + - ../slots/includes_or_included default_prefix: hc classes: EventTypes: @@ -21,9 +21,9 @@ classes: - includes_or_included slot_usage: includes_or_included: - range: string +# range: string multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Evidence.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Evidence.yaml index a82c1f1e2b..b052de9689 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Evidence.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Evidence.yaml @@ -9,26 +9,24 @@ prefixes: hc: https://nde.nl/ontology/hc/ crm: http://www.cidoc-crm.org/cidoc-crm/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score default_prefix: hc classes: Evidence: class_uri: crm:E73_Information_Object description: Evidence supporting a claim, gap, or assertion. slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: has_or_had_description: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExaSearchMetadata.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExaSearchMetadata.yaml index 55bbd9a230..aa64ebc415 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExaSearchMetadata.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExaSearchMetadata.yaml @@ -13,14 +13,14 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../slots/has_or_had_tool -- ../slots/has_or_had_timestamp -- ../slots/has_or_had_url -- ../slots/has_or_had_agent -- ../slots/has_or_had_method -- ../slots/has_or_had_note -default_range: string + - linkml:types + - ../slots/has_or_had_tool + - ../slots/has_or_had_timestamp + - ../slots/has_or_had_url + - ../slots/has_or_had_agent + - ../slots/has_or_had_method + - ../slots/has_or_had_note +# default_range: string classes: ExaSearchMetadata: description: "Metadata from EXA search operations, capturing tool used, timestamp, source URL, extraction agent, method, and notes. Documents the provenance of data retrieved through EXA web search API.\nOntology mapping rationale: - class_uri is prov:Activity because this documents a search/extraction\n activity performed at a specific time by a specific agent\n- close_mappings includes schema:SearchAction as this represents a\n search operation\n- related_mappings includes prov:Entity as the activity produces\n entity outputs" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExaminationMethod.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExaminationMethod.yaml index 8c76ae6e82..8b307f22ae 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExaminationMethod.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExaminationMethod.yaml @@ -8,9 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_type + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_type classes: ExaminationMethod: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExaminationMethodType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExaminationMethodType.yaml index 07b71b1daf..d240ccd4b3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExaminationMethodType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExaminationMethodType.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: ExaminationMethodType: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Example.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Example.yaml index 2103262b54..51ef281fcd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Example.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Example.yaml @@ -9,30 +9,30 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/has_or_had_url -- ../slots/specificity_annotation + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/has_or_had_url default_prefix: hc classes: Example: - class_uri: skos:example + class_uri: hc:Example + close_mappings: + - skos:example description: Provides concrete examples to illustrate a definition or type. slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_url - - specificity_annotation - has_or_had_score slot_usage: has_or_had_label: - range: string +# range: string has_or_had_url: - range: uriorcurie +# range: string # uriorcurie annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitedObject.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitedObject.yaml index cd5efa1b67..98cec948f3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitedObject.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitedObject.yaml @@ -13,61 +13,47 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# aat: http://vocab.getty.edu/aat/ imports: -- linkml:types -- ../enums/ExhibitedObjectTypeEnum -- ../metadata -- ../slots/conservation_history -- ../slots/creation_place -- ../slots/creation_timespan -- ../slots/creator -- ../slots/creator_role -- ../slots/current_keeper -- ../slots/current_location -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_provenance -- ../slots/has_or_had_score -- ../slots/has_or_had_size -- ../slots/has_or_had_subject -- ../slots/has_or_had_type -- ../slots/has_or_had_unit -- ../slots/inscription -- ../slots/inventory_number -- ../slots/is_or_was_acquired_through -- ../slots/is_or_was_created_through -- ../slots/is_or_was_exhibited_at -- ../slots/loan_history -- ../slots/medium -- ../slots/object_alternate_name -- ../slots/object_description -- ../slots/object_id -- ../slots/object_name -- ../slots/object_type -- ../slots/part_of_collection -- ../slots/permanent_location -- ../slots/specificity_annotation -- ./AcquisitionEvent -- ./AcquisitionMethod -- ./ConservationRecord -- ./CreationEvent -- ./CustodianPlace -- ./Description -- ./ExhibitionLocation -- ./HeritageObject -- ./IdentifierType -- ./IdentifierTypes -- ./Label -- ./Loan -- ./Provenance -- ./ProvenanceEvent -- ./Size -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Unit -- ./Identifier + - ./Loan + - ./ExhibitionLocation + - ./AcquisitionEvent + - ./Provenance + - ./Size + - ./CustodianPlace + - ./TimeSpan + - ./CreationEvent + - ./HeritageObject + - linkml:types + - ../enums/ExhibitedObjectTypeEnum + - ../metadata + - ../slots/conservation_history + - ../slots/creation_place + - ../slots/creation_timespan + - ../slots/creator + - ../slots/creator_role + - ../slots/current_keeper + - ../slots/current_location + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_provenance + - ../slots/has_or_had_score + - ../slots/has_or_had_size + - ../slots/has_or_had_subject + - ../slots/has_or_had_type + - ../slots/has_or_had_unit + - ../slots/inscription + - ../slots/inventory_number + - ../slots/is_or_was_acquired_through + - ../slots/is_or_was_created_through + - ../slots/is_or_was_exhibited_at + - ../slots/loan_history + - ../slots/medium + - ../slots/object_alternate_name + - ../slots/object_description + - ../slots/object_id + - ../slots/object_name + - ../slots/object_type + - ../slots/part_of_collection + - ../slots/permanent_location default_prefix: hc classes: ExhibitedObject: @@ -89,7 +75,7 @@ classes: - crm:E24_Physical_Human-Made_Thing - crm:E84_Information_Carrier slots: - - has_or_had_identifier + - identified_by - is_or_was_acquired_through - conservation_history - creation_place @@ -114,35 +100,33 @@ classes: - part_of_collection - permanent_location - has_or_had_provenance - - specificity_annotation - has_or_had_subject - has_or_had_score - - has_or_had_identifier slot_usage: object_id: identifier: true required: true - range: uriorcurie +# range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring - value: https://nde.nl/ontology/hc/object/rijksmuseum-night-watch object_name: required: true - range: string +# range: string examples: - value: Girl with a Pearl Earring - value: The Night Watch - value: Rosetta Stone object_alternate_name: required: false - range: string +# range: string multivalued: true examples: - value: Meisje met de parel - value: The Militia Company of Captain Frans Banninck Cocq object_description: required: false - range: string +# range: string examples: - value: 'Oil painting by Johannes Vermeer, depicting a girl wearing an exotic dress and a large pearl earring. One of the most famous paintings in @@ -157,7 +141,7 @@ classes: - value: MANUSCRIPT creator: required: false - range: string +# range: string multivalued: true examples: - value: Johannes Vermeer @@ -165,7 +149,7 @@ classes: - value: Unknown Egyptian artist creator_role: required: false - range: string +# range: string multivalued: true examples: - value: Artist @@ -207,7 +191,7 @@ classes: country: NL medium: required: false - range: string +# range: string examples: - value: Oil on canvas - value: Marble @@ -230,14 +214,14 @@ classes: has_or_had_label: cm inscription: required: false - range: string +# range: string multivalued: true examples: - value: IVMeer - value: Rembrandt f. 1642 current_keeper: required: false - range: uriorcurie +# range: string # uriorcurie inlined: false examples: - value: https://nde.nl/ontology/hc/custodian/nl/mauritshuis @@ -252,17 +236,17 @@ classes: country: NL permanent_location: required: false - range: string +# range: string examples: - value: Gallery 15 - value: Dutch Golden Age wing, Room 3 - has_or_had_identifier: + identified_by: description: "External identifiers for this exhibited object.\n\nMIGRATED 2026-01-15: Replaces wikidata_id slot per Rule 53.\nMIGRATED 2026-01-23: Also includes catalog raisonn\xE9 numbers per Rule 53/F26.\n\nUse has_or_had_type with IdentifierType subclasses to specify identifier type.\n" required: false - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: has_or_had_type: @@ -290,7 +274,7 @@ classes: has_or_had_label: ULAN inventory_number: required: false - range: string +# range: string examples: - value: BM-1802,0710.1 has_or_had_provenance: @@ -319,17 +303,17 @@ classes: inlined: true examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 + identified_by: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 has_or_had_label: Vermeer 2023 part_of_collection: required: false - range: uriorcurie +# range: string # uriorcurie inlined: false examples: - value: https://nde.nl/ontology/hc/collection/mauritshuis-dutch-paintings has_or_had_subject: required: false - range: string +# range: string multivalued: true examples: - value: portrait @@ -338,7 +322,7 @@ classes: - value: turban conservation_history: required: false - range: string +# range: string multivalued: true examples: - value: '1882: First cleaning' @@ -369,7 +353,7 @@ classes: - https://cidoc-crm.org/html/cidoc_crm_v7.1.3.html#P50 examples: - value: - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring - qid: Q81858 has_or_had_label: Girl with a Pearl Earring @@ -410,7 +394,7 @@ classes: - description_text: Possibly Pieter van Ruijven, Delft (c. 1665); his widow, Maria de Knuijt, Delft (1674); Dissius sale, Amsterdam, May 16, 1696; A.A. des Tombe, The Hague (purchased 1881); Bequeathed to Mauritshuis (1903). description_type: provenance_text is_or_was_exhibited_at: - - has_or_had_identifier: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 + - identified_by: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 has_or_had_label: Vermeer 2023 has_or_had_subject: - portrait @@ -418,7 +402,7 @@ classes: - pearl earring - turban - value: - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/object/rijksmuseum-night-watch - qid: Q219831 - SK-C-5 @@ -440,7 +424,7 @@ classes: - Rembrandt f. 1642 has_or_had_custodian: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum - value: - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/object/british-museum-rosetta-stone - EA 24 - qid: Q48584 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Exhibition.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Exhibition.yaml index ecf4d8594b..d0c8de9bbb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Exhibition.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Exhibition.yaml @@ -11,46 +11,27 @@ prefixes: foaf: http://xmlns.com/foaf/0.1/ rdfs: http://www.w3.org/2000/01/rdf-schema# imports: -- linkml:types -- ../enums/EventStatusEnum -- ../enums/ExhibitionTypeEnum -- ../metadata -- ../slots/curated_by -- ../slots/exhibits_or_exhibited -- ../slots/has_or_had_description -- ../slots/has_or_had_documentation -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_organizer -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_status -- ../slots/has_or_had_type -- ../slots/has_or_had_url -- ../slots/has_or_had_venue -- ../slots/is_or_was_cataloged_in -- ../slots/is_or_was_located_in -- ../slots/organized_by -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./CustodianPlace -- ./Documentation -- ./ExhibitedObject -- ./ExhibitionCatalog -- ./FeaturedObject -- ./Label -- ./Organizer -- ./OrganizerRole -- ./Quantity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./URL -- ./Venue -- ./WikiDataIdentifier -- ./Exhibition + - linkml:types + - ../enums/EventStatusEnum + - ../enums/ExhibitionTypeEnum + - ../metadata + - ../slots/curated_by + - ../slots/exhibits_or_exhibited + - ../slots/has_or_had_description + - ../slots/has_or_had_documentation + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_organizer + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_status + - ../slots/has_or_had_type + - ../slots/has_or_had_url + - ../slots/has_or_had_venue + - ../slots/is_or_was_cataloged_in + - ../slots/is_or_was_located_in + - ../slots/organized_by + - ../slots/temporal_extent default_prefix: hc classes: Exhibition: @@ -80,22 +61,21 @@ classes: - is_or_was_located_in - exhibits_or_exhibited - organized_by - - specificity_annotation - has_or_had_score - has_or_had_venue - has_or_had_quantity - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true - range: uriorcurie +# range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 - value: https://nde.nl/ontology/hc/exhibition/moma-picasso-retrospective-2024 has_or_had_label: required: true - range: string +# range: string multivalued: true examples: - value: Vermeer @@ -105,7 +85,7 @@ classes: - value: 150 Years of Revolutionary Art has_or_had_description: required: false - range: string +# range: string examples: - value: 'The largest Vermeer exhibition ever mounted, bringing together 28 of the Dutch master''s 37 known paintings. A once-in-a-lifetime opportunity to see works from collections worldwide. ' has_or_had_type: @@ -117,7 +97,7 @@ classes: - value: TRAVELING organized_by: required: false - range: uriorcurie +# range: string # uriorcurie multivalued: true inlined: false examples: @@ -141,7 +121,7 @@ classes: has_or_had_role: curated_by: required: false - range: string +# range: string multivalued: true examples: - value: Pieter Roelofs @@ -159,7 +139,7 @@ classes: country: NL is_or_was_located_in: required: false - range: string +# range: string examples: - value: Philips Wing - value: Gallery of Honour @@ -172,7 +152,7 @@ classes: has_or_had_quantity: required: false range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type description: 'Visitor count for the exhibition. RULE 53: Replaces deprecated visitor_count integer slot with structured Quantity class.' examples: - value: @@ -232,7 +212,7 @@ classes: - https://cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E5 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 + identified_by: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 has_or_had_label: - Vermeer - The greatest Vermeer exhibition ever @@ -274,7 +254,7 @@ classes: - View of Delft (Mauritshuis) - Woman Reading a Letter (Rijksmuseum) - value: - has_or_had_identifier: https://nde.nl/ontology/hc/exhibition/nationaal-archief-ww2-voices-2024 + identified_by: https://nde.nl/ontology/hc/exhibition/nationaal-archief-ww2-voices-2024 has_or_had_label: - Voices from the War - Personal Stories from World War II Archives @@ -287,7 +267,7 @@ classes: end_of_the_end: '2024-11-11' has_or_had_status: COMPLETED - value: - has_or_had_identifier: https://nde.nl/ontology/hc/exhibition/rijksmuseum-gallery-of-honour + identified_by: https://nde.nl/ontology/hc/exhibition/rijksmuseum-gallery-of-honour has_or_had_label: Gallery of Honour has_or_had_description: 'The Rijksmuseum''s permanent display of Dutch Golden Age masterpieces, featuring works by Rembrandt, Vermeer, Frans Hals, and Jan Steen. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml index de6652dd62..5e744d5c1c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml @@ -12,56 +12,38 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# rdfs: http://www.w3.org/2000/01/rdf-schema# imports: -- linkml:types -- ../metadata -- ../slots/contains_or_contained -- ../slots/contributor -- ../slots/has_or_had_author -- ../slots/has_or_had_content -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_publisher -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/has_or_had_url -- ../slots/is_or_was_associated_with -- ../slots/is_or_was_edited_by -- ../slots/is_or_was_indexed -- ../slots/is_or_was_instantiated_as -- ../slots/is_or_was_published_at -- ../slots/isbn -- ../slots/isbn_13 -- ../slots/issn -- ../slots/language -- ../slots/library_catalog_url -- ../slots/page -- ../slots/pdf_url -- ../slots/price -- ../slots/specificity_annotation -- ./Author -- ./BindingType -- ./EBook -- ./Editor -- ./Essay -- ./Index -- ./IndexType -- ./PublicationEvent -- ./Publisher -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./URL -- ./WikiDataIdentifier -- ./WorldCatIdentifier + - linkml:types + - ../metadata + - ../slots/contains_or_contained + - ../slots/contributor + - ../slots/has_or_had_author + - ../slots/has_or_had_content + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_publisher + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/has_or_had_url + - ../slots/is_or_was_associated_with + - ../slots/is_or_was_edited_by + - ../slots/is_or_was_indexed + - ../slots/is_or_was_instantiated_as + - ../slots/is_or_was_published_at + - ../slots/isbn + - ../slots/isbn_13 + - ../slots/issn + - ../slots/language + - ../slots/library_catalog_url + - ../slots/page + - ../slots/pdf_url + - ../slots/price default_prefix: hc classes: ExhibitionCatalog: class_uri: schema:Book description: "A publication documenting an exhibition, including scholarly essays, \nobject entries, and illustrations.\n\nExhibition catalogs serve as permanent scholarly record of temporary exhibitions\nand are valuable research resources in their own right.\n\n**Types of Exhibition Catalogs**:\n\n| Type | Description | Example |\n|------|-------------|---------|\n| PRINT_CATALOG | Traditional printed book | Hardcover exhibition catalog |\n| DIGITAL_CATALOG | Online/downloadable publication | PDF or web-based catalog |\n| COLLECTION_CATALOG | Permanent collection catalog | Museum handbook |\n| BROCHURE | Brief exhibition guide | Gallery handout |\n| CHECKLIST | List of exhibited works | Exhibition checklist |\n\n**Ontology Alignment**:\n\n- **Schema.org**: schema:Book (primary - web discoverability)\n- **BIBFRAME**: bf:Work + bf:Instance (bibliographic modeling)\n- **CIDOC-CRM**: crm:E31_Document (document with propositions)\n- **BIBO**: bibo:Document (bibliographic ontology)\n\n**Relationship\ - \ to Other Classes**:\n\n```\nExhibition (curated display)\n \u2502\n \u2502\u2500\u2500 exhibition_catalogs (documentation)\n v\nExhibitionCatalog (this class)\n \u2502\n \u2502\u2500\u2500 documents \u2192 ExhibitedObject[] (catalog entries)\n \u2502\u2500\u2500 authored_by \u2192 (scholars, curators)\n v\nPublisher/Institution\n```\n\n**Example**:\n\nThe \"Vermeer\" exhibition catalog (Rijksmuseum, 2023):\n- has_or_had_identifier: https://nde.nl/ontology/hc/catalog/rijksmuseum-vermeer-2023\n- has_or_had_label: \"Vermeer\"\n- is_or_was_associated_with: Vermeer exhibition 2023\n- isbn: 978-9491714962\n- pages: 320\n" + \ to Other Classes**:\n\n```\nExhibition (curated display)\n \u2502\n \u2502\u2500\u2500 exhibition_catalogs (documentation)\n v\nExhibitionCatalog (this class)\n \u2502\n \u2502\u2500\u2500 documents \u2192 ExhibitedObject[] (catalog entries)\n \u2502\u2500\u2500 authored_by \u2192 (scholars, curators)\n v\nPublisher/Institution\n```\n\n**Example**:\n\nThe \"Vermeer\" exhibition catalog (Rijksmuseum, 2023):\n- identified_by: https://nde.nl/ontology/hc/catalog/rijksmuseum-vermeer-2023\n- has_or_had_label: \"Vermeer\"\n- is_or_was_associated_with: Vermeer exhibition 2023\n- isbn: 978-9491714962\n- pages: 320\n" exact_mappings: - schema:Book close_mappings: @@ -89,20 +71,19 @@ classes: - price - is_or_was_published_at - has_or_had_publisher - - specificity_annotation - is_or_was_indexed - has_or_had_score slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type description: 'Identifiers for the exhibition catalog. Includes: - Primary catalog identifier (required, first value) - MIGRATED from catalog_id (2026-01-17) - WikiDataIdentifier: Wikidata Q-number - MIGRATED from wikidata_id (2026-01-15) - WorldCatIdentifier: OCLC WorldCat ID - MIGRATED from worldcat_id (2026-01-14) First identifier serves as primary key. Uses structured identifier classes per Rule 53.' any_of: - - range: uriorcurie + - range: string # uriorcurie - range: WikiDataIdentifier - range: WorldCatIdentifier examples: @@ -113,7 +94,7 @@ classes: identifier_source: OCLC WorldCat has_or_had_label: required: true - range: string +# range: string multivalued: true examples: - value: Vermeer @@ -121,13 +102,13 @@ classes: - value: The Greatest Exhibition is_or_was_associated_with: required: true - range: uriorcurie +# range: string # uriorcurie inlined: false examples: - value: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 has_or_had_type: required: false - range: uriorcurie +# range: string # uriorcurie multivalued: true description: 'Type classification for the catalog. Supports multiple type facets: - Catalog format type: PRINT_CATALOG, DIGITAL_CATALOG, HYBRID_CATALOG - Binding type: BindingType class (hc:HardcoverBinding, hc:PaperbackBinding, etc.) MIGRATED from catalog_type (2026-01-17) and binding (2026-01-15) per Rule 53/56. Uses multivalued to support both format and binding classification simultaneously.' @@ -169,7 +150,7 @@ classes: has_or_had_name: Pieter Roelofs language: required: false - range: string +# range: string multivalued: true examples: - value: en @@ -179,8 +160,8 @@ classes: required: false range: uri multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: has_or_had_url: https://www.rijksmuseum.nl/nl/webshop/catalogus-vermeer @@ -204,13 +185,13 @@ classes: has_or_had_type: purchase_page price: required: false - range: string +# range: string examples: - value: "\u20AC59.95" - value: $75.00 has_or_had_description: required: false - range: string +# range: string examples: - value: "The official catalog of the groundbreaking Vermeer exhibition at the \nRijksmuseum, featuring 28 of the Dutch master's 37 known paintings.\nIncludes scholarly essays on Vermeer's technique, pigments, and\nsubjects, along with detailed entries for each work.\n" is_or_was_indexed: @@ -220,7 +201,7 @@ classes: inlined_as_list: true examples: - value: - has_or_had_identifier: hc:index/vermeer-catalog-toc + identified_by: hc:index/vermeer-catalog-toc has_or_had_label: - Table of Contents@en - entry_label: 1. Introduction (Pieter Roelofs) @@ -253,7 +234,7 @@ classes: - http://id.loc.gov/ontologies/bibframe/Work examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/catalog/rijksmuseum-vermeer-2023 + identified_by: https://nde.nl/ontology/hc/catalog/rijksmuseum-vermeer-2023 has_or_had_label: Vermeer is_or_was_associated_with: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 has_or_had_type: @@ -289,7 +270,7 @@ classes: has_or_had_description: "The official catalog of the groundbreaking Vermeer exhibition at the \nRijksmuseum (February 10 - June 4, 2023), featuring 28 of the Dutch \nmaster's 37 known paintings. Includes scholarly essays on Vermeer's \ntechnique, pigments, and subjects.\n" has_or_had_content: '28' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/catalog/moma-matisse-cutouts-2014 + identified_by: https://nde.nl/ontology/hc/catalog/moma-matisse-cutouts-2014 has_or_had_label: 'Henri Matisse: The Cut-Outs' is_or_was_associated_with: https://nde.nl/ontology/hc/exhibition/moma-matisse-cutouts-2014 has_or_had_type: @@ -317,7 +298,7 @@ classes: - en price: $60.00 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/catalog/british-museum-arctic-2020 + identified_by: https://nde.nl/ontology/hc/catalog/british-museum-arctic-2020 has_or_had_label: 'Arctic: culture and climate' is_or_was_associated_with: https://nde.nl/ontology/hc/exhibition/british-museum-arctic-2020 has_or_had_type: DIGITAL_CATALOG diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionLocation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionLocation.yaml index e84ee112fe..6b3b249fec 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionLocation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionLocation.yaml @@ -16,28 +16,26 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score default_prefix: hc classes: ExhibitionLocation: class_uri: crm:E53_Place description: Specifies where an object was exhibited, potentially including specific gallery/room/case details within the exhibition. slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: has_or_had_label: - range: string - has_or_had_identifier: - range: uriorcurie +# range: string + identified_by: +# range: string # uriorcurie annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionSpace.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionSpace.yaml index 4c9c9b1b30..cdae024de5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionSpace.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExhibitionSpace.yaml @@ -2,42 +2,27 @@ id: https://nde.nl/ontology/hc/class/exhibition-space name: exhibition_space_class title: ExhibitionSpace Class imports: -- linkml:types -- ../enums/ExhibitionSpaceTypeEnum -- ../enums/GalleryTypeEnum -- ../enums/MuseumTypeEnum -- ../slots/current_exhibition -- ../slots/has_or_had_area -- ../slots/has_or_had_capacity -- ../slots/has_or_had_description -- ../slots/has_or_had_fee -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_schedule -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_accessible -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/is_permanent -- ../slots/museum_type_classification -- ../slots/opening_hour -- ../slots/partner_institution -- ../slots/specificity_annotation -- ./AdmissionFee -- ./Area -- ./Capacity -- ./CustodianObservation -- ./Description -- ./GalleryType -- ./GalleryTypes -- ./Label -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/ExhibitionSpaceTypeEnum + - ../enums/GalleryTypeEnum + - ../enums/MuseumTypeEnum + - ../slots/current_exhibition + - ../slots/has_or_had_area + - ../slots/has_or_had_capacity + - ../slots/has_or_had_description + - ../slots/has_or_had_fee + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_schedule + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_accessible + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/is_permanent + - ../slots/museum_type_classification + - ../slots/opening_hour + - ../slots/partner_institution prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -54,7 +39,7 @@ classes: is_a: ReconstructedEntity class_uri: aat:300005768 description: "Exhibition space, gallery, or display area operated by a heritage custodian\nat a location separate from the main facility.\n\n**DEFINITION**:\n\nAn ExhibitionSpace is a dedicated area for displaying collections or\nexhibitions at a secondary location. This may be a satellite gallery,\nexhibition pavilion, temporary exhibition venue, or partner venue where\nthe heritage custodian presents its collections.\n\n**GETTY AAT ALIGNMENT**:\n\n`aat:300005768` (exhibition spaces) - \"Spaces designed and equipped for\nthe display and viewing of objects, artworks, or specimens.\"\n\n**WIKIDATA TYPE LINKAGE**:\n\nThis class can be further classified using either:\n\n1. **MuseumTypeEnum** (187 types) - For museum-style exhibition spaces:\n - Q207694 (art museum)\n - Q17431399 (history museum)\n - Q2087181 (science museum)\n \n2. **GalleryTypeEnum** (78 types) - For gallery-style exhibition spaces:\n - Q1007870 (art gallery)\n - Q1060829 (exhibition hall)\n - Q856584 (kunsthalle)\n\ - \n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Primary Function | Public Access |\n|------|------------------|---------------|\n| **ExhibitionSpace** | Display collections | Yes - public viewing |\n| Storage | Store collections | No - staff only |\n| BranchOffice | Service delivery | Yes - services |\n| ResearchCenter | Academic research | Limited |\n\n**TYPES OF EXHIBITION SPACES**:\n\n1. **Satellite Gallery**: Permanent secondary exhibition venue\n2. **Exhibition Pavilion**: Purpose-built exhibition structure\n3. **Partner Venue**: Space in another institution\n4. **Pop-up Gallery**: Temporary exhibition venue\n5. **Outdoor Exhibition**: Open-air display area\n6. **Project Space**: Experimental/contemporary art space\n\n**USE CASES**:\n\n1. **Museum Satellite Gallery**:\n ```yaml\n ExhibitionSpace:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/rijksmuseum-schiphol-gallery\"\n has_or_had_label:\n label_text: \"Rijksmuseum Schiphol\"\n\ + \n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Primary Function | Public Access |\n|------|------------------|---------------|\n| **ExhibitionSpace** | Display collections | Yes - public viewing |\n| Storage | Store collections | No - staff only |\n| BranchOffice | Service delivery | Yes - services |\n| ResearchCenter | Academic research | Limited |\n\n**TYPES OF EXHIBITION SPACES**:\n\n1. **Satellite Gallery**: Permanent secondary exhibition venue\n2. **Exhibition Pavilion**: Purpose-built exhibition structure\n3. **Partner Venue**: Space in another institution\n4. **Pop-up Gallery**: Temporary exhibition venue\n5. **Outdoor Exhibition**: Open-air display area\n6. **Project Space**: Experimental/contemporary art space\n\n**USE CASES**:\n\n1. **Museum Satellite Gallery**:\n ```yaml\n ExhibitionSpace:\n identified_by: \"https://nde.nl/ontology/hc/aux/rijksmuseum-schiphol-gallery\"\n has_or_had_label:\n label_text: \"Rijksmuseum Schiphol\"\n\ \ museum_type_classification: ART_MUSEUM\n exhibition_type: SATELLITE_GALLERY\n has_or_had_area:\n quantity_value: 200\n ```\n\n2. **Contemporary Art Project Space**:\n ```yaml\n ExhibitionSpace:\n has_or_had_label:\n label_text: \"Stedelijk Museum Project Space\"\n gallery_type_classification: PROJECT_SPACE\n exhibition_type: PROJECT_SPACE\n focuses_on_contemporary: true\n ```\n" exact_mappings: - aat:300005768 @@ -72,7 +57,7 @@ classes: - has_or_had_capacity - has_or_had_area - has_or_had_schedule - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_type @@ -81,20 +66,19 @@ classes: - museum_type_classification - opening_hour - partner_institution - - specificity_annotation - has_or_had_score - is_or_was_derived_from - is_or_was_generated_by slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/rijksmuseum-schiphol-gallery has_or_had_label: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: 'label_text: Rijksmuseum Schiphol @@ -104,8 +88,8 @@ classes: - value: 'label_text: Van Gogh Museum Mesdag Collection ' has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: 'description_text: Free gallery at Schiphol Airport featuring rotating highlights from the Rijksmuseum collection. Open daily to all travelers. ' @@ -150,7 +134,7 @@ classes: examples: - value: true opening_hour: - range: string +# range: string examples: - value: Daily 07:00-20:00 has_or_had_fee: @@ -163,11 +147,11 @@ classes: - value: has_or_had_label: "Standard Adult" current_exhibition: - range: string +# range: string examples: - value: Highlights from the Golden Age has_or_had_schedule: - range: string +# range: string examples: - value: Exhibitions rotate quarterly is_permanent: @@ -175,7 +159,7 @@ classes: examples: - value: true partner_institution: - range: string +# range: string examples: - value: Schiphol Group - value: Groninger Museum @@ -198,7 +182,7 @@ classes: - https://www.wikidata.org/wiki/Q1060829 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/rijksmuseum-schiphol-gallery + identified_by: https://nde.nl/ontology/hc/aux/rijksmuseum-schiphol-gallery has_or_had_label: label_text: Rijksmuseum Schiphol has_or_had_description: @@ -222,7 +206,7 @@ classes: is_permanent: true partner_institution: Schiphol Group - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/stedelijk-project-space + identified_by: https://nde.nl/ontology/hc/aux/stedelijk-project-space has_or_had_label: label_text: Stedelijk Museum Bureau Amsterdam has_or_had_description: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Expense.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Expense.yaml index e72f5de749..b6e1fac08f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Expense.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Expense.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_quantity + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_quantity classes: Expense: class_uri: schema:MonetaryAmount diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExpenseType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExpenseType.yaml index 6868d64d49..27e3cf8082 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExpenseType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExpenseType.yaml @@ -6,9 +6,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: ExpenseType: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExpenseTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExpenseTypes.yaml index af21dfabe0..367bb12717 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExpenseTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExpenseTypes.yaml @@ -3,8 +3,8 @@ name: ExpenseTypes title: Expense Types description: Concrete types of expenses. MIGRATED from expense-specific slots (2026-01-26). imports: -- linkml:types -- ./ExpenseType + - ./ExpenseType + - linkml:types default_prefix: hc classes: PersonnelExpenses: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Expenses.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Expenses.yaml index 875827431b..798cfc2c0f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Expenses.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Expenses.yaml @@ -12,17 +12,15 @@ prefixes: frapo: http://purl.org/cerif/frapo/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../enums/ExpenseTypeEnum -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_quantity -- ../slots/has_or_had_type -- ../slots/has_or_had_type # was: expense_type -- ../slots/temporal_extent -- ../slots/temporal_extent # was: valid_from + valid_to -- ./Quantity -- ./TimeSpan + - linkml:types + - ../enums/ExpenseTypeEnum + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_quantity + - ../slots/has_or_had_type + - ../slots/has_or_had_type # was: expense_type + - ../slots/temporal_extent + - ../slots/temporal_extent # was: valid_from + valid_to default_prefix: hc classes: Expenses: @@ -82,7 +80,7 @@ classes: has_or_had_quantity: range: integer required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type temporal_extent: range: TimeSpan inlined: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Experience.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Experience.yaml index a4ba756b76..228d690dea 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Experience.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Experience.yaml @@ -9,28 +9,26 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score default_prefix: hc classes: Experience: class_uri: skos:Concept description: A specific experience entry. slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: has_or_had_label: - range: string +# range: string has_or_had_description: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExpertiseArea.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExpertiseArea.yaml index ef98829f3d..941b74ddd6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExpertiseArea.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExpertiseArea.yaml @@ -9,26 +9,24 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score default_prefix: hc classes: ExpertiseArea: class_uri: skos:Concept description: A domain of expertise. slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: has_or_had_label: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Extension.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Extension.yaml index ae9608823b..308bb895e7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Extension.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Extension.yaml @@ -9,30 +9,27 @@ prefixes: hc: https://nde.nl/ontology/hc/ prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./Quantity + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score default_prefix: hc classes: Extension: class_uri: prov:Activity description: An extension of a loan or agreement. slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_quantity - - specificity_annotation - has_or_had_score slot_usage: has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExternalFunding.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExternalFunding.yaml index 090b95cc22..4f3e5537c9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExternalFunding.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExternalFunding.yaml @@ -9,30 +9,27 @@ prefixes: hc: https://nde.nl/ontology/hc/ frapo: http://purl.org/cerif/frapo/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./Quantity + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score default_prefix: hc classes: ExternalFunding: class_uri: frapo:Funding description: Funding from external sources. slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_quantity - - specificity_annotation - has_or_had_score slot_usage: has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExternalResource.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExternalResource.yaml index 54d35e880c..0cfcf55633 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExternalResource.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExternalResource.yaml @@ -15,9 +15,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_url + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_url classes: ExternalResource: class_uri: schema:CreativeWork diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExternalWork.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExternalWork.yaml index 6d8e1345d1..23cb09b5ba 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExternalWork.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExternalWork.yaml @@ -6,8 +6,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: ExternalWork: description: 'External work or services that an institution accepts or commissions. @@ -15,7 +15,7 @@ classes: **EXAMPLES**: - Conservation work from external specialists - Digitization services - Research collaborations - Restoration projects - Used with `accepts_or_accepted` slot to indicate what types of external work + Used with `accept` slot to indicate what types of external work an institution will accept or commission.' class_uri: schema:Service close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExtractionMetadata.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExtractionMetadata.yaml index c3aa7845ba..3882d4719e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExtractionMetadata.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExtractionMetadata.yaml @@ -10,29 +10,23 @@ prefixes: dct: http://purl.org/dc/terms/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/ProfileExtractionMethodEnum -- ../metadata -- ../slots/has_or_had_expense -- ../slots/has_or_had_identifier -- ../slots/has_or_had_method -- ../slots/has_or_had_score -- ../slots/has_or_had_source -- ../slots/has_or_had_url -- ../slots/is_or_was_retrieved_by -- ../slots/llm_response -- ../slots/retrieval_timestamp -- ../slots/specificity_annotation -- ./LLMResponse -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -default_range: string + - linkml:types + - ../enums/ProfileExtractionMethodEnum + - ../metadata + - ../slots/has_or_had_expense + - ../slots/identified_by + - ../slots/has_or_had_method + - ../slots/has_or_had_score + - ../slots/has_or_had_source + - ../slots/has_or_had_url + - ../slots/is_or_was_retrieved_by + - ../slots/llm_response + - ../slots/retrieval_timestamp +# default_range: string classes: ExtractionMetadata: class_uri: prov:Activity - description: "Provenance metadata for data extraction activities.\n\nRecords how, when, and by what agent data was extracted from \nexternal sources (LinkedIn, web scraping, APIs).\n\n**PROV-O Alignment**:\n- ExtractionMetadata IS a prov:Activity (the extraction process)\n- The extracted data IS the prov:Entity (output of the activity)\n- is_or_was_retrieved_by IS the prov:Agent (software/AI that performed extraction)\n- has_or_had_source/has_or_had_url IS prov:used (input to the activity)\n\n**Use Cases**:\n- LinkedIn profile extractions via Exa API\n- Web scraping provenance\n- Staff list parsing provenance\n- Connection network extraction\n\n**Example JSON Structure**:\n```json\n{\n \"extraction_metadata\": {\n \"has_or_had_source\": \"/path/to/source.json\",\n \"has_or_had_identifier\": \"org_staff_0001_name\",\n \"retrieval_timestamp\": \"2025-12-12T22:00:00Z\",\n \"has_or_had_method\": \"exa_crawling_exa\",\n \"is_or_was_retrieved_by\": \"claude-opus-4.5\",\n \"has_or_had_url\": \"https://www.linkedin.com/in/...\"\ + description: "Provenance metadata for data extraction activities.\n\nRecords how, when, and by what agent data was extracted from \nexternal sources (LinkedIn, web scraping, APIs).\n\n**PROV-O Alignment**:\n- ExtractionMetadata IS a prov:Activity (the extraction process)\n- The extracted data IS the prov:Entity (output of the activity)\n- is_or_was_retrieved_by IS the prov:Agent (software/AI that performed extraction)\n- has_or_had_source/has_or_had_url IS prov:used (input to the activity)\n\n**Use Cases**:\n- LinkedIn profile extractions via Exa API\n- Web scraping provenance\n- Staff list parsing provenance\n- Connection network extraction\n\n**Example JSON Structure**:\n```json\n{\n \"extraction_metadata\": {\n \"has_or_had_source\": \"/path/to/source.json\",\n \"identified_by\": \"org_staff_0001_name\",\n \"retrieval_timestamp\": \"2025-12-12T22:00:00Z\",\n \"has_or_had_method\": \"exa_crawling_exa\",\n \"is_or_was_retrieved_by\": \"claude-opus-4.5\",\n \"has_or_had_url\": \"https://www.linkedin.com/in/...\"\ ,\n \"has_or_had_expense\": 0.001\n }\n}\n```\n" exact_mappings: - prov:Activity @@ -46,17 +40,16 @@ classes: - has_or_had_method - has_or_had_url - llm_response - - has_or_had_identifier + - identified_by - has_or_had_source - - specificity_annotation - has_or_had_score slot_usage: has_or_had_source: - range: string +# range: string examples: - value: /data/custodian/person/affiliated/parsed/rijksmuseum_staff_20251210T155416Z.json - has_or_had_identifier: - range: string + identified_by: +# range: string pattern: ^[a-z0-9-]+_staff_[a-z0-9-_]+$ examples: - value: rijksmuseum_staff_0042_jan_van_der_berg @@ -72,7 +65,7 @@ classes: examples: - value: exa_crawling_exa is_or_was_retrieved_by: - range: string +# range: string examples: - value: claude-opus-4.5 - value: '' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExtractionMethod.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExtractionMethod.yaml index 668ad0b7d8..c56e6666cd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExtractionMethod.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExtractionMethod.yaml @@ -8,9 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# nif: http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-core# imports: -- linkml:types -- ../slots/has_or_had_label -- ./Label + - linkml:types + - ../slots/has_or_had_label default_prefix: hc classes: ExtractionMethod: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ExtractionSourceInfo.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ExtractionSourceInfo.yaml index 62b0a6b2ac..7b2b65546f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ExtractionSourceInfo.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ExtractionSourceInfo.yaml @@ -14,11 +14,11 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../slots/has_or_had_field -- ../slots/has_or_had_text -- ../slots/has_or_had_method -default_range: string + - linkml:types + - ../slots/has_or_had_field + - ../slots/has_or_had_text + - ../slots/has_or_had_method +# default_range: string classes: ExtractionSourceInfo: description: "Information about extraction source (can be structured or freeform). Documents the field extracted, the extracted text content, and the method used for extraction (pattern matching, LLM, etc.).\nOntology mapping rationale: - class_uri is prov:Entity because extraction source info is a\n traceable entity recording what was extracted and how\n- close_mappings includes pav:SourceAccessedAt as this documents\n a source that was accessed during extraction\n- related_mappings includes prov:Derivation (the extraction is\n derived from source) and schema:PropertyValue (field/value pair)" @@ -39,7 +39,7 @@ classes: description: The text that was extracted has_or_had_method: description: Extraction method (pattern_matching, llm, etc.) - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Facility.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Facility.yaml index 43a0db5014..894119147c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Facility.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Facility.yaml @@ -7,9 +7,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_type -- ./FacilityType + - linkml:types + - ../slots/has_or_had_type classes: Facility: class_uri: schema:Place @@ -31,7 +30,7 @@ classes: - has_or_had_type slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie close_mappings: - schema:Place annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FacilityType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FacilityType.yaml index 77d3b2f767..cccd34cb5b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FacilityType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FacilityType.yaml @@ -7,17 +7,17 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: FacilityType: class_uri: skos:Concept abstract: true description: "Abstract base class for facility type classifications.\n\n**FACILITY CATEGORIES**:\n- FOOD_SERVICE: Caf\xE9s, restaurants, vending\n- RETAIL: Gift shops, bookstores\n- PARKING: Car parks, bike storage\n- RESEARCH: Reading rooms, study areas\n- STORAGE: Collection storage facilities\n- ACCESSIBILITY: Wheelchair access, assistive devices\n" slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FacilityTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FacilityTypes.yaml index 4ff06ace78..db2cfc746d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FacilityTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FacilityTypes.yaml @@ -6,8 +6,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ default_prefix: hc imports: -- linkml:types -- ./FacilityType + - ./FacilityType + - linkml:types classes: FoodServiceFacility: is_a: FacilityType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Feature.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Feature.yaml index 1ca902ca0f..2f231d0446 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Feature.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Feature.yaml @@ -14,12 +14,10 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ./FeatureType -- ./FeatureTypes + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type default_prefix: hc classes: Feature: @@ -30,7 +28,7 @@ classes: - has_or_had_description slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FeatureCustodianType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FeatureCustodianType.yaml index 19c3fdb7ca..e4b7ce369f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FeatureCustodianType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FeatureCustodianType.yaml @@ -4,21 +4,14 @@ title: FeatureCustodianType description: "Specialized CustodianType for organizations managing physical heritage features\nlike monuments, landmarks, memorials, historic sites, and landscape features.\n\nCRITICAL DISTINCTION - Feature vs. FeatureCustodian:\n\n**FeaturePlace** (physical thing):\n- The Eiffel Tower (iron lattice tower, physical structure)\n- Liberty Bell (physical bell, monument)\n- Stonehenge (prehistoric monument, physical stones)\n- Physical heritage features classified by type\n\n**FeatureCustodian** (organization managing physical thing):\n- Soci\xE9t\xE9 d'Exploitation de la Tour Eiffel (company operating Eiffel Tower)\n- National Park Service (agency managing Liberty Bell)\n- English Heritage (charity managing Stonehenge)\n- Organizations responsible for feature preservation/access\n\nFeatureCustodian organizations manage FeaturePlace physical features.\n\nUse Cases:\n- Monument management agencies\n- Historic site preservation trusts\n- Landmark visitor services\n- Memorial maintenance foundations\n\ - Heritage landscape conservancies\n\nCoverage: Corresponds to 'F' (FEATURES) in GLAMORCUBESFIXPHDNT taxonomy.\n" imports: -- linkml:types -- ../slots/has_or_had_activity -- ../slots/has_or_had_score -- ../slots/has_or_had_service -- ../slots/has_or_had_type -- ../slots/is_or_was_managed_by -- ../slots/manages_or_managed -- ../slots/site_portfolio -- ../slots/specificity_annotation -- ./CustodianType -- ./Service -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_activity + - ../slots/has_or_had_score + - ../slots/has_or_had_service + - ../slots/has_or_had_type + - ../slots/is_or_was_managed_by + - ../slots/manages_or_managed + - ../slots/site_portfolio prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -133,7 +126,7 @@ classes: \ trust (owns sites) vs. heritage advocacy group (lobbies)\n\nvs. BioCustodian:\n- FeatureCustodianType: NON-LIVING heritage features (monuments, buildings)\n- BioCustodianType: LIVING collections (plants, animals)\n- Example: Historic garden trust (landscape) vs. Botanical garden (living plants)\n\n**RDF Serialization Example**:\n\n```turtle\n@prefix hc: .\n@prefix skos: .\n@prefix schema: .\n@prefix crm: .\n\nhc:FeatureCustodianType\n a skos:Concept, hc:CustodianType ;\n skos:prefLabel \"Feature Custodian Type\"@en,\n \"Monumentenbeheerder Type\"@nl,\n \"Denkmalpfleger Typ\"@de,\n \"Type de Gestionnaire de Monument\"@fr ;\n skos:definition \"Organizations managing physical heritage features\"@en ;\n skos:broader hc:CustodianType ;\n skos:narrower hc:MonumentManager,\n hc:LandmarkOperator,\n\ \ hc:SitePreservationTrust ;\n schema:url .\n\n# Example: English Heritage (manages 400+ monuments in England)\n\n a schema:Organization, crm:E39_Actor, hc:FeatureCustodian ;\n hc:custodian_type hc:FeatureCustodianType ;\n hc:manages_or_managed \"Monument\", \"Castle\", \"Historic house\", \"Abbey\", \"Fort\" ;\n hc:site_portfolio \"400+ historic sites and monuments across England\" ;\n hc:visitor_services \"On-site interpretation\", \"Guided tours\", \"Events\", \"Gift shops\", \"Caf\xE9s\" ;\n hc:conservation_activities \"Monument preservation\", \"Structural repairs\", \"Archaeological research\" ;\n hc:access_management \"Ticketing\", \"Opening hours\", \"Accessibility programs\", \"Education visits\" ;\n hc:is_or_was_managed_by \"Charitable trust ownership and management\" ;\n schema:foundingDate \"1983-04-01\" ;\n schema:legalName \"English\ \ Heritage Trust\" ;\n schema:url ;\n hc:manages_feature ,\n .\n```\n" - exact_mappings: + broad_mappings: - skos:Concept close_mappings: - crm:E39_Actor @@ -148,13 +141,12 @@ classes: - has_or_had_type - manages_or_managed - site_portfolio - - specificity_annotation - is_or_was_managed_by - has_or_had_score - has_or_had_service slot_usage: manages_or_managed: - range: string +# range: string multivalued: true required: true examples: @@ -162,15 +154,15 @@ classes: - value: Castle, Historic house, Abbey - value: Archaeological site, Ruins site_portfolio: - range: string +# range: string required: true examples: - value: 400+ historic sites across England - value: 'Single monument: Eiffel Tower' - value: 150+ National Trust properties has_or_had_service: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: @@ -180,7 +172,7 @@ classes: - value: service_type: VISITOR has_or_had_activity: - range: string +# range: string required: true examples: - value: Monument preservation, Structural repairs, Archaeological research @@ -189,7 +181,7 @@ classes: - value: Free public access, No booking required - value: Restricted access, Conservation priority, Virtual alternatives is_or_was_managed_by: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: Charitable trust ownership and management diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FeaturePlace.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FeaturePlace.yaml index 4fe6679241..342ba70364 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FeaturePlace.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FeaturePlace.yaml @@ -2,34 +2,18 @@ id: https://nde.nl/ontology/hc/class/feature-place name: feature_place_class title: FeaturePlace Class imports: -- linkml:types -- ../enums/FeatureTypeEnum -- ../enums/PlaceSpecificityEnum -- ../slots/classifies_or_classified -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_note -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./Custodian -- ./CustodianObservation -- ./Description -- ./FeatureType -- ./FeatureTypes -- ./Label -- ./Note -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./CustodianPlace + - linkml:types + - ../enums/FeatureTypeEnum + - ../enums/PlaceSpecificityEnum + - ../slots/classifies_or_classified + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_note + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/temporal_extent classes: FeaturePlace: is_a: ReconstructedEntity @@ -53,17 +37,15 @@ classes: - has_or_had_description - has_or_had_label - has_or_had_note - - has_or_had_type - - specificity_annotation - has_or_had_score - temporal_extent - is_or_was_derived_from - is_or_was_generated_by slot_usage: has_or_had_label: - range: string +# range: string multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -73,8 +55,8 @@ classes: label_text: Manor house in Schilderswijk language_code: en has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -87,8 +69,8 @@ classes: examples: - value: https://nde.nl/ontology/hc/place/rijksmuseum-location has_or_had_note: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FeatureType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FeatureType.yaml index 266d080a23..44ef79528d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FeatureType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FeatureType.yaml @@ -10,9 +10,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# aat: http://vocab.getty.edu/aat/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: FeatureType: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FeatureTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FeatureTypes.yaml index 624f312397..e99408f387 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FeatureTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FeatureTypes.yaml @@ -9,8 +9,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# aat: http://vocab.getty.edu/aat/ imports: -- linkml:types -- ./FeatureType + - ./FeatureType + - linkml:types default_prefix: hc classes: Building: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FeaturedItem.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FeaturedItem.yaml index f1b24ec2c5..5b52582cd8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FeaturedItem.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FeaturedItem.yaml @@ -8,10 +8,10 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_image -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_image + - ../slots/has_or_had_label classes: FeaturedItem: class_uri: schema:CreativeWork diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FeaturedObject.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FeaturedObject.yaml index 679b3e4793..e20a65fdd4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FeaturedObject.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FeaturedObject.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: FeaturedObject: class_uri: schema:Thing diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Fee.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Fee.yaml index f1dd606ac5..152ef9b856 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Fee.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Fee.yaml @@ -8,12 +8,10 @@ prefixes: schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_quantity -- ../slots/has_or_had_unit -- ./Quantity -- ./Unit + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_quantity + - ../slots/has_or_had_unit default_prefix: hc classes: Fee: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FellowsProgram.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FellowsProgram.yaml index e1cb5afb29..7124550f68 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FellowsProgram.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FellowsProgram.yaml @@ -15,8 +15,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: FellowsProgram: class_uri: schema:Project diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FieldNumber.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FieldNumber.yaml index 91dc65b628..32793f51af 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FieldNumber.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FieldNumber.yaml @@ -8,13 +8,14 @@ prefixes: schema: http://schema.org/ dwc: http://rs.tdwg.org/dwc/terms/ imports: -- linkml:types -- ./Identifier + - linkml:types default_prefix: hc classes: FieldNumber: is_a: Identifier - class_uri: dwc:fieldNumber + class_uri: hc:FieldNumber + close_mappings: + - dwc:fieldNumber description: An identifier given to the event in the field. Often serves as a link between field notes and the Event. annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FieldOfStudy.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FieldOfStudy.yaml index a139cad10f..bbfdb6c91b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FieldOfStudy.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FieldOfStudy.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: FieldOfStudy: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FileAPI.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FileAPI.yaml index 39360b6685..5bc450df0b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FileAPI.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FileAPI.yaml @@ -10,16 +10,10 @@ prefixes: premis: http://www.loc.gov/premis/rdf/v3/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/ContentDispositionEnum -- ../metadata -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./DataServiceEndpoint -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/ContentDispositionEnum + - ../metadata + - ../slots/has_or_had_score classes: FileAPI: is_a: DataServiceEndpoint @@ -51,10 +45,9 @@ classes: - https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition slots: - - specificity_annotation - has_or_had_score - has_or_had_format - - has_or_had_access_restriction + - is_or_was_access_restricted annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FileLocation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FileLocation.yaml index 843a410b9d..c2ea65727c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FileLocation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FileLocation.yaml @@ -13,9 +13,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_value classes: FileLocation: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FilePath.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FilePath.yaml index 27eebb640d..276b64b078 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FilePath.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FilePath.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: FilePath: class_uri: schema:DigitalDocument @@ -20,7 +20,7 @@ classes: - has_or_had_description slot_usage: has_or_had_label: - range: string +# range: string required: true annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FilmArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FilmArchive.yaml index d715c8678b..737400e611 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FilmArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FilmArchive.yaml @@ -8,22 +8,12 @@ prefixes: wd: http://www.wikidata.org/entity/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./FilmArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: FilmArchive: description: Archive that safeguards film heritage. Film archives collect, preserve, restore, and provide access to motion pictures, including feature films, documentaries, newsreels, and other moving image materials. They often also maintain related materials such as scripts, production documents, posters, and equipment. Film archives play a crucial role in preserving cultural heritage in moving image form. @@ -32,11 +22,10 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null hold_or_held_record_set_type: equals_expression: '["hc:FeatureFilmCollection", "hc:DocumentaryFilmCollection", "hc:NewsreelSeries", "hc:ProductionRecordsFonds", "hc:FilmPromoCollection"] diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FilmArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FilmArchiveRecordSetType.yaml index 08141bd12c..0da22653c4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FilmArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FilmArchiveRecordSetType.yaml @@ -8,14 +8,11 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to classes: FilmArchiveRecordSetType: abstract: true @@ -33,7 +30,6 @@ classes: - FilmPromoCollection slots: - has_or_had_type - - specificity_annotation - has_or_had_score slot_usage: has_or_had_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FilmArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FilmArchiveRecordSetTypes.yaml index 479f5c5d14..4e39050de3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FilmArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FilmArchiveRecordSetTypes.yaml @@ -11,24 +11,18 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/legal_note -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/preservation_note -- ../slots/record_note -- ../slots/record_set_type -- ../slots/scope_exclude -- ../slots/scope_include -- ../slots/specificity_annotation -- ./FilmArchive -- ./FilmArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./FilmArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/legal_note + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/preservation_note + - ../slots/record_note + - ../slots/record_set_type + - ../slots/scope_exclude + - ../slots/scope_include classes: FeatureFilmCollection: is_a: FilmArchiveRecordSetType @@ -69,11 +63,10 @@ classes: - silent films - studio films - national cinema - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q24862 - wd:Q11424 - rico:RecordSetType @@ -87,7 +80,6 @@ classes: - FilmArchive slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -160,12 +152,11 @@ classes: - educational films - ethnographic films - sponsored films - exact_mappings: + broad_mappings: - rico:RecordSetType - wd:Q93204 related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q11424 - rico:RecordSetType - skos:Concept @@ -181,7 +172,6 @@ classes: archives may contain related paper records. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -243,12 +233,11 @@ classes: - cinematograph news - war newsreels - Polygoon - exact_mappings: + broad_mappings: - rico:RecordSetType - wd:Q622812 related_mappings: - rico-rst:Series - broad_mappings: - wd:Q11424 - rico:RecordSetType - skos:Concept @@ -266,7 +255,6 @@ classes: by paper documentation (shot lists, scripts). slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -330,11 +318,10 @@ classes: - film production - studio records - filmmaker papers - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds - broad_mappings: - wd:Q1643722 - rico:RecordSetType - skos:Concept @@ -347,7 +334,6 @@ classes: - CorporateGovernanceFonds slots: - has_or_had_type - - specificity_annotation - has_or_had_score - legal_note - organizational_principle @@ -415,11 +401,10 @@ classes: - film advertising - promotional materials - star photographs - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q9388534 - rico:RecordSetType - skos:Concept @@ -438,7 +423,6 @@ classes: culture. Poster collections may be exhibited as art. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml index 06498890bc..c09bbe0e0f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml @@ -2,59 +2,34 @@ id: https://nde.nl/ontology/hc/class/FinancialStatement name: financial_statement_class title: FinancialStatement Class imports: -- linkml:types -- ../enums/FinancialStatementTypeEnum -- ../slots/documents_or_documented -- ../slots/draws_or_drew_opinion -- ../slots/has_or_had_asset -- ../slots/has_or_had_expense -- ../slots/has_or_had_format -- ../slots/has_or_had_identifier -- ../slots/has_or_had_liability -- ../slots/has_or_had_revenue -- ../slots/has_or_had_status -- ../slots/has_or_had_type -- ../slots/has_or_had_url -- ../slots/is_or_was_based_on -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/is_or_was_published_at -- ../slots/managing_unit -- ../slots/refers_to_custodian -- ../slots/reporting_period_end -- ../slots/reporting_period_start -- ../slots/specifies_or_specified -- ../slots/statement_currency -- ../slots/statement_description -- ../slots/statement_name -- ../slots/statement_type -- ../slots/states_or_stated -- ../slots/temporal_extent -- ./Audit -- ./AuditOpinion -- ./AuditStatus -- ./AuditStatusType -- ./AuditStatusTypes -- ./Auditor -- ./Budget -- ./Custodian -- ./CustodianAdministration -- ./CustodianArchive -- ./CustodianCollection -- ./CustodianObservation -- ./Expenses -- ./Identifier -- ./NetAsset -- ./OrganizationalStructure -- ./PublicationEvent -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./RecordSetType -- ./RecordSetTypes -- ./RecordStatus -- ./TimeSpan -- ./URL -- ./Revenue + - linkml:types + - ../enums/FinancialStatementTypeEnum + - ../slots/documents_or_documented + - ../slots/draws_or_drew_opinion + - ../slots/has_or_had_asset + - ../slots/has_or_had_expense + - ../slots/has_or_had_format + - ../slots/identified_by + - ../slots/has_or_had_liability + - ../slots/has_or_had_revenue + - ../slots/has_or_had_status + - ../slots/has_or_had_type + - ../slots/has_or_had_url + - ../slots/is_or_was_based_on + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/is_or_was_published_at + - ../slots/managing_unit + - ../slots/refers_to_custodian + - ../slots/reporting_period_end + - ../slots/reporting_period_start + - ../slots/specifies_or_specified + - ../slots/statement_currency + - ../slots/statement_description + - ../slots/statement_name + - ../slots/statement_type + - ../slots/states_or_stated + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -96,10 +71,10 @@ classes: - is_or_was_generated_by slot_usage: statement_name: - range: string +# range: string required: true statement_description: - range: string +# range: string required: false statement_type: range: FinancialStatementTypeEnum @@ -122,7 +97,7 @@ classes: begin_of_the_end: '2024-04-15T00:00:00Z' end_of_the_end: '2024-04-15T00:00:00Z' statement_currency: - range: string +# range: string required: true examples: - value: EUR @@ -158,23 +133,23 @@ classes: range: decimal required: false has_or_had_format: - range: string +# range: string required: false has_or_had_type: - range: string +# range: string required: false examples: - value: IRS Form 990 - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: false multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_status: multivalued: true - range: string +# range: string any_of: - range: AuditStatus examples: @@ -182,19 +157,19 @@ classes: has_or_had_type: AuditedStatus has_or_had_label: Audited documents_or_documented: - range: Budget +# range: string # Budget multivalued: true required: false examples: - value: https://nde.nl/ontology/hc/budget/rm/fy2023 managing_unit: - range: OrganizationalStructure +# range: string # OrganizationalStructure required: false refers_to_custodian: range: Custodian required: true is_or_was_derived_from: - range: CustodianObservation +# range: string # CustodianObservation multivalued: true required: false is_or_was_generated_by: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FinancialStatementType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FinancialStatementType.yaml index 2049756a58..e4fc8997a9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FinancialStatementType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FinancialStatementType.yaml @@ -3,8 +3,8 @@ name: FinancialStatementType title: FinancialStatementType description: The type of a financial statement. imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: FinancialStatementType: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FindingAid.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FindingAid.yaml index 22b8f298ae..fe46f376d4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FindingAid.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FindingAid.yaml @@ -15,117 +15,81 @@ prefixes: foaf: http://xmlns.com/foaf/0.1/ xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc -default_range: string +# default_range: string imports: -- linkml:types -- ../enums/ExternalResourceTypeEnum -- ../enums/LinkTypeEnum -- ../enums/RelationshipTypeEnum -- ../enums/SubGuideTypeEnum -- ../slots/contains_or_contained -- ../slots/creator -- ../slots/css_selector -- ../slots/custodian -- ../slots/date -- ../slots/has_or_had_content -- ../slots/has_or_had_description -- ../slots/has_or_had_file_location -- ../slots/has_or_had_format -- ../slots/has_or_had_geographic_extent -- ../slots/has_or_had_identifier -- ../slots/has_or_had_image -- ../slots/has_or_had_label -- ../slots/has_or_had_level -- ../slots/has_or_had_note -- ../slots/has_or_had_period -- ../slots/has_or_had_policy -- ../slots/has_or_had_provenance_path -- ../slots/has_or_had_restriction -- ../slots/has_or_had_score -- ../slots/has_or_had_status -- ../slots/has_or_had_type -- ../slots/has_or_had_url -- ../slots/inbound_from -- ../slots/includes_or_included -- ../slots/international -- ../slots/is_or_was_access_restricted -- ../slots/is_or_was_categorized_as -- ../slots/is_or_was_generated_by -- ../slots/is_or_was_instance_of -- ../slots/is_or_was_located_in -- ../slots/is_or_was_related_to -- ../slots/is_or_was_retrieved_through -- ../slots/is_or_was_superseded_by -- ../slots/is_sub_guide -- ../slots/isbn -- ../slots/isil -- ../slots/language -- ../slots/link_context -- ../slots/link_text -- ../slots/link_type -- ../slots/link_url -- ../slots/list_item -- ../slots/major_city -- ../slots/note -- ../slots/outbound_to -- ../slots/period -- ../slots/period_description -- ../slots/period_end -- ../slots/period_name -- ../slots/period_start -- ../slots/permission_required -- ../slots/primary -- ../slots/related -- ../slots/relationship -- ../slots/resource_description -- ../slots/restriction_description -- ../slots/restriction_type -- ../slots/retrieval_agent -- ../slots/revision_date -- ../slots/scope -- ../slots/secondary -- ../slots/section_id -- ../slots/served_by -- ../slots/slug -- ../slots/specificity_annotation -- ../slots/start -- ../slots/supersedes_or_superseded -- ../slots/temporal_extent -- ./AccessPolicy -- ./ColonialStatus -- ./ConfidenceMethod -- ./ConfidenceScore -- ./Content -- ./Description -- ./FileLocation -- ./FindingAid -- ./FindingAidType -- ./GenerationEvent -- ./HistoricalRegion -- ./KeyDate -- ./KeyPeriod -- ./Label -- ./Overview -- ./PageSection -- ./PersonWebClaim -- ./Restriction -- ./SpecificityAnnotation -- ./SubGuideType -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Topic -- ./TopicType -- ./TopicTypes -- ./URL -- ./ValidationStatus -- ./WebClaim -- ./WebLink -- ./WikiDataEntry -- ./XPath -- ./Image -- ./GeoSpatialPlace + - linkml:types + - ../enums/ExternalResourceTypeEnum + - ../enums/LinkTypeEnum + - ../enums/RelationshipTypeEnum + - ../enums/SubGuideTypeEnum + - ../slots/contains_or_contained + - ../slots/creator + - ../slots/css_selector + - ../slots/custodian + - ../slots/date + - ../slots/has_or_had_content + - ../slots/has_or_had_description + - ../slots/has_or_had_file_location + - ../slots/has_or_had_format + - ../slots/has_or_had_geographic_extent + - ../slots/identified_by + - ../slots/has_or_had_image + - ../slots/has_or_had_label + - ../slots/has_or_had_level + - ../slots/has_or_had_note + - ../slots/has_or_had_period + - ../slots/has_or_had_policy + - ../slots/has_or_had_provenance_path + - ../slots/has_or_had_restriction + - ../slots/has_or_had_score + - ../slots/has_or_had_status + - ../slots/has_or_had_type + - ../slots/has_or_had_url + - ../slots/inbound_from + - ../slots/includes_or_included + - ../slots/international + - ../slots/is_or_was_access_restricted + - ../slots/is_or_was_categorized_as + - ../slots/is_or_was_generated_by + - ../slots/is_or_was_instance_of + - ../slots/is_or_was_located_in + - ../slots/is_or_was_related_to + - ../slots/is_or_was_retrieved_through + - ../slots/is_or_was_superseded_by + - ../slots/is_sub_guide + - ../slots/isbn + - ../slots/isil + - ../slots/language + - ../slots/link_context + - ../slots/link_text + - ../slots/link_type + - ../slots/link_url + - ../slots/list_item + - ../slots/major_city + - ../slots/note + - ../slots/outbound_to + - ../slots/period + - ../slots/period_description + - ../slots/period_end + - ../slots/period_name + - ../slots/period_start + - ../slots/permission_required + - ../slots/primary + - ../slots/related + - ../slots/relationship + - ../slots/resource_description + - ../slots/restriction_description + - ../slots/restriction_type + - ../slots/retrieval_agent + - ../slots/revision_date + - ../slots/scope + - ../slots/secondary + - ../slots/section_id + - ../slots/served_by + - ../slots/slug + - ../slots/start + - ../slots/supersedes_or_superseded + - ../slots/temporal_extent classes: FindingAid: class_uri: rico:FindingAid @@ -157,8 +121,8 @@ classes: ' exact_mappings: - dcterms:PeriodOfTime - - schema:temporalCoverage close_mappings: + - schema:temporalCoverage - dcterms:BibliographicResource - schema:CreativeWork - crm:E31_Document @@ -168,22 +132,17 @@ classes: - creator - custodian - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_note - has_or_had_type - has_or_had_format - has_or_had_geographic_extent - - has_or_had_identifier - isbn - language - - note - - includes_or_included - - contains_or_contained - includes_or_included - contains_or_contained - note - has_or_had_period - - specificity_annotation - start - has_or_had_score slot_usage: @@ -207,16 +166,15 @@ classes: - period_end - period_name - period_start - - specificity_annotation - has_or_had_score slot_usage: period_name: - range: string +# range: string required: true aliases: - name period: - range: string +# range: string period_start: range: TemporalValue aliases: @@ -225,88 +183,10 @@ classes: range: TemporalValue aliases: period_description: - range: string +# range: string aliases: - has_or_had_description - KeyDate: - class_uri: schema:Event - description: 'A significant historical date with event description. - Used for key_dates within TemporalCoverage. - ' - slots: - - date - - has_or_had_description - - specificity_annotation - - has_or_had_score - slot_usage: - date: - range: string - required: true - has_or_had_description: - range: string - multivalued: true - inlined: true - required: true - GeographicExtent: - class_uri: dcterms:Location - description: 'Geographic area covered by the finding aid''s materials. - Supports primary areas, secondary/related areas, and migration patterns. - ' - slots: - - includes_or_included - - is_or_was_categorized_as - - is_or_was_located_in - - inbound_from - - international - - major_city - - outbound_to - - primary - - related - - scope - - secondary - - specificity_annotation - - has_or_had_score - slot_usage: - primary: - multivalued: true - secondary: - multivalued: true - related: - multivalued: true - is_or_was_located_in: - range: string - multivalued: true - includes_or_included: - range: GeoSpatialPlace - multivalued: true - inlined: true - inlined_as_list: true - examples: - - value: - geospatial_id: https://nde.nl/ontology/hc/geo/dutch-east-indies - latitude: -6.2 - longitude: 106.8 - is_or_was_categorized_as: - range: ColonialStatus - multivalued: true - inlined: true - inlined_as_list: true - examples: - - value: - temporal_extent: - begin_of_the_begin: '1602-01-01' - end_of_the_end: '1949-12-27' - international: - multivalued: true - major_city: - multivalued: true - inbound_from: - multivalued: true - outbound_to: - multivalued: true - exact_mappings: - - dcterms:spatial - - schema:spatialCoverage + SubGuideReference: class_uri: rico:FindingAid description: 'Reference to a sub-guide or related finding aid within the same repository. @@ -318,7 +198,6 @@ classes: - is_or_was_access_restricted - note - slug - - specificity_annotation - has_or_had_description - has_or_had_content - has_or_had_type @@ -329,10 +208,10 @@ classes: slug: required: true has_or_had_label: - range: string +# range: string required: true multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: 'label_value: "Burgerlijke Stand" language_code: "nl" @@ -342,14 +221,14 @@ classes: ' has_or_had_url: range: uri - inlined: true + inlined: false # Fixed invalid inline for primitive type required: true has_or_had_type: - range: uriorcurie +# range: string # uriorcurie is_or_was_access_restricted: range: boolean has_or_had_content: - range: string +# range: string examples: - value: 1811-1935 - value: before 1811 @@ -363,12 +242,11 @@ classes: ' slots: - has_or_had_label - - has_or_had_identifier + - identified_by - has_or_had_level - contains_or_contained - list_item - section_id - - specificity_annotation - has_or_had_score - has_or_had_provenance_path slot_usage: @@ -378,7 +256,7 @@ classes: maximum_value: 6 contains_or_contained: multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type any_of: - range: PageSection - range: PageLink @@ -399,7 +277,6 @@ classes: - link_text - link_type - link_url - - specificity_annotation - has_or_had_score - has_or_had_provenance_path slot_usage: @@ -425,14 +302,13 @@ classes: - has_or_had_image - has_or_had_label - has_or_had_url - - specificity_annotation - has_or_had_score - has_or_had_provenance_path slot_usage: has_or_had_description: - range: string +# range: string multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: Kaart beschrijving in het Nederlands @@ -451,9 +327,9 @@ classes: has_or_had_url: has_or_had_value: https://archive.org/images/card.jpg has_or_had_label: - range: string +# range: string multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: @@ -464,7 +340,7 @@ classes: language: en has_or_had_url: range: uri - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_value: https://archive.org/page diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FindingAidType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FindingAidType.yaml index 517ab76a89..a22a80be71 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FindingAidType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FindingAidType.yaml @@ -22,27 +22,16 @@ prefixes: dcat: http://www.w3.org/ns/dcat# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_domain -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/is_or_was_equivalent_to -- ../slots/narrower_type -- ../slots/record_equivalent -- ../slots/specificity_annotation -- ./Description -- ./Domain -- ./Identifier -- ./Label -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier -- ./FindingAidType + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_domain + - ../slots/has_or_had_hypernym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/is_or_was_equivalent_to + - ../slots/narrower_type + - ../slots/record_equivalent classes: FindingAidType: class_uri: rico:DocumentaryFormType @@ -61,27 +50,26 @@ classes: slots: - has_or_had_hypernym - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_label - narrower_type - record_equivalent - - specificity_annotation - has_or_had_score - has_or_had_domain - is_or_was_equivalent_to slot_usage: - has_or_had_identifier: - range: uriorcurie - inlined: true + identified_by: +# range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type required: true identifier: true has_or_had_label: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: true has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: A descriptive tool that establishes intellectual and physical control over records. @@ -94,7 +82,7 @@ classes: - value: - qid: Q65769447 record_equivalent: - range: uriorcurie +# range: string # uriorcurie has_or_had_hypernym: range: FindingAidType narrower_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FindingAidTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FindingAidTypes.yaml index eff292d6ac..29805b480a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FindingAidTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FindingAidTypes.yaml @@ -29,20 +29,13 @@ prefixes: dcat: http://www.w3.org/ns/dcat# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_domain -- ../slots/has_or_had_score -- ../slots/is_or_was_equivalent_to -- ../slots/narrower_type -- ../slots/record_equivalent -- ../slots/specificity_annotation -- ./Domain -- ./FindingAidType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ./FindingAidType + - linkml:types + - ../slots/has_or_had_domain + - ../slots/has_or_had_score + - ../slots/is_or_was_equivalent_to + - ../slots/narrower_type + - ../slots/record_equivalent classes: Inventory: is_a: FindingAidType @@ -70,7 +63,6 @@ classes: narrower_type: range: Inventory slots: - - specificity_annotation - has_or_had_score annotations: specificity_score: 0.1 @@ -99,7 +91,6 @@ classes: narrower_type: range: ArchivalInventory slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -133,7 +124,6 @@ classes: has_or_had_domain: ifabsent: string(ARCHIVE) slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -167,7 +157,6 @@ classes: has_or_had_domain: ifabsent: string(ARCHIVE) slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -206,7 +195,6 @@ classes: has_or_had_domain: ifabsent: string(MUSEUM) slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -242,7 +230,6 @@ classes: narrower_type: range: LogisticsInventory slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -260,7 +247,6 @@ classes: - wd:Q7168640 slot_usage: {} slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -281,7 +267,6 @@ classes: - wd:Q7169552 slot_usage: {} slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -304,7 +289,6 @@ classes: - wd:Q7180610 slot_usage: {} slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -325,7 +309,6 @@ classes: - wd:Q475356 slot_usage: {} slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -346,7 +329,6 @@ classes: - wd:Q609498 slot_usage: {} slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -388,7 +370,6 @@ classes: narrower_type: range: Catalogue slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -425,7 +406,6 @@ classes: has_or_had_domain: ifabsent: string(LIBRARY) slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -456,7 +436,6 @@ classes: has_or_had_domain: ifabsent: string(LIBRARY) slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -495,7 +474,6 @@ classes: narrower_type: range: Guide slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -533,7 +511,6 @@ classes: has_or_had_domain: ifabsent: string(ARCHIVE) slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -566,7 +543,6 @@ classes: has_or_had_domain: ifabsent: string(ARCHIVE) slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -606,7 +582,6 @@ classes: narrower_type: range: List slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -635,7 +610,6 @@ classes: has_or_had_domain: ifabsent: string(ARCHIVE) slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -672,7 +646,6 @@ classes: has_or_had_domain: ifabsent: string(LIBRARY) slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -710,7 +683,6 @@ classes: narrower_type: range: Database slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -744,7 +716,6 @@ classes: has_or_had_domain: ifabsent: string(LIBRARY) slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -778,7 +749,6 @@ classes: has_or_had_domain: ifabsent: string(LIBRARY) slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -815,7 +785,6 @@ classes: narrower_type: range: Review slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -849,7 +818,6 @@ classes: has_or_had_domain: ifabsent: string(LIBRARY) slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -877,7 +845,6 @@ classes: has_or_had_domain: ifabsent: string(LIBRARY) slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -917,7 +884,6 @@ classes: narrower_type: range: IndexDocument slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -948,7 +914,6 @@ classes: has_or_had_domain: ifabsent: string(LIBRARY) slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -979,7 +944,6 @@ classes: has_or_had_domain: ifabsent: string(ARCHIVE) slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -1015,7 +979,6 @@ classes: narrower_type: range: InstructionalMaterials slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document @@ -1049,7 +1012,6 @@ classes: has_or_had_domain: ifabsent: string(LIBRARY) slots: - - specificity_annotation - has_or_had_score broad_mappings: - foaf:Document diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FireSuppressionSystem.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FireSuppressionSystem.yaml index b71f069d86..2bab980834 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FireSuppressionSystem.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FireSuppressionSystem.yaml @@ -7,10 +7,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_type -- ./FireSuppressionType -- ./FireSuppressionTypes + - linkml:types + - ../slots/has_or_had_type default_prefix: hc classes: FireSuppressionSystem: @@ -19,7 +17,7 @@ classes: - has_or_had_type slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FireSuppressionType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FireSuppressionType.yaml index 84f81fd182..cf203ab456 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FireSuppressionType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FireSuppressionType.yaml @@ -7,9 +7,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: FireSuppressionType: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FireSuppressionTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FireSuppressionTypes.yaml index 241768bdcc..64ef555ab0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FireSuppressionTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FireSuppressionTypes.yaml @@ -8,8 +8,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ./FireSuppressionType + - ./FireSuppressionType + - linkml:types default_prefix: hc classes: InertGasSystem: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Fixity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Fixity.yaml index 98a0c3afd6..b3ebb36906 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Fixity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Fixity.yaml @@ -8,9 +8,9 @@ prefixes: premis: http://www.loc.gov/premis/rdf/v3/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: Fixity: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FixityVerification.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FixityVerification.yaml index 69b9f1b954..16d88c58b0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FixityVerification.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FixityVerification.yaml @@ -8,9 +8,9 @@ prefixes: premis: http://www.loc.gov/premis/rdf/v3/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: FixityVerification: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Foremalarkiv.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Foremalarkiv.yaml index 63463f5db5..f211d5ad0b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Foremalarkiv.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Foremalarkiv.yaml @@ -7,16 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: Foremalarkiv: description: "Swedish object archive (f\xF6rem\xE5lsarkiv). A specialized type of archive in Sweden that focuses on three-dimensional objects rather than documents. These archives preserve physical artifacts, specimens, and objects with historical, cultural, or scientific significance. The concept bridges archival and museum practices, applying archival principles to object collections." @@ -24,11 +18,10 @@ classes: class_uri: skos:Concept slots: - has_or_had_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ForkliftAccess.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ForkliftAccess.yaml index cbd8f45f61..a5e0d13621 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ForkliftAccess.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ForkliftAccess.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: ForkliftAccess: class_uri: schema:AmenityFeature diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Format.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Format.yaml index 90a752ba18..5c4d3230c4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Format.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Format.yaml @@ -9,10 +9,10 @@ prefixes: premis: http://www.loc.gov/premis/rdf/v3/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: Format: class_uri: dct:MediaType @@ -49,7 +49,7 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FormerName.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FormerName.yaml index 1b32381273..1487d0dda7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FormerName.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FormerName.yaml @@ -10,8 +10,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# org: http://www.w3.org/ns/org# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: FormerName: description: "A former name of the institution with optional temporal bounds and\ @@ -21,8 +21,9 @@ classes: \ searchable\n- close_mappings includes org:changedBy for organizational change\ \ context - related_mappings includes schema:alternateName for variant name\ \ relationships" - class_uri: skos:hiddenLabel + class_uri: hc:FormerName close_mappings: + - skos:hiddenLabel - org:changedBy related_mappings: - schema:alternateName diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FoundationArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FoundationArchive.yaml index 02b22e222a..c8f912a65e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FoundationArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FoundationArchive.yaml @@ -8,24 +8,12 @@ prefixes: wd: http://www.wikidata.org/entity/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./FoundationArchiveRecordSetType -- ./FoundationArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: FoundationArchive: description: "Archive of a foundation (Stiftung, fundaci\xF3n, fondation). Foundation archives preserve records documenting the activities, governance, and history of charitable, cultural, or educational foundations. They may include founding documents, board minutes, grant records, correspondence, and documentation of foundation-supported projects and programs." @@ -34,11 +22,10 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FoundationArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FoundationArchiveRecordSetType.yaml index a717b64d32..bb9e367216 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FoundationArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FoundationArchiveRecordSetType.yaml @@ -15,13 +15,10 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: FoundationArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by FoundationArchive custodians. @@ -31,7 +28,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FoundationArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FoundationArchiveRecordSetTypes.yaml index 071f3ef3af..c6aceab389 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FoundationArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FoundationArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./FoundationArchive -- ./FoundationArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./FoundationArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: FoundationAdministrationFonds: is_a: FoundationArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Foundation administrative records.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept GrantRecordSeries: is_a: FoundationArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Grant and funding records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by FoundationArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept ProjectDocumentationCollection: is_a: FoundationArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Project documentation.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by FoundationArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FoundingEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FoundingEvent.yaml index 086d06f755..02263c6a4e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FoundingEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FoundingEvent.yaml @@ -14,11 +14,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/temporal_extent classes: FoundingEvent: class_uri: crm:E63_Beginning_of_Existence @@ -69,7 +68,7 @@ classes: slots: - temporal_extent - has_or_had_description - - has_or_had_identifier + - identified_by slot_usage: temporal_extent: range: TimeSpan @@ -82,17 +81,17 @@ classes: - prov:Activity examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/event/founding/rijksmuseum-1800 + identified_by: https://nde.nl/ontology/hc/event/founding/rijksmuseum-1800 temporal_extent: begin_of_the_begin: '1800-01-01' end_of_the_begin: '1800-12-31' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/event/founding/de-kas-1902 + identified_by: https://nde.nl/ontology/hc/event/founding/de-kas-1902 temporal_extent: begin_of_the_begin: '1902-01-01' end_of_the_begin: '1902-12-31' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/event/founding/unknown-archive-1850s + identified_by: https://nde.nl/ontology/hc/event/founding/unknown-archive-1850s temporal_extent: begin_of_the_begin: '1850-01-01' end_of_the_begin: '1859-12-31' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FreeArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FreeArchive.yaml index 9c071fa17a..d28d87e181 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FreeArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FreeArchive.yaml @@ -15,23 +15,12 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./FreeArchiveRecordSetType -- ./FreeArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: FreeArchive: description: Archive that preserves documents on the history of social movements. Free archives (Freie Archive) are typically independent, non-governmental institutions that document grassroots movements, activism, alternative culture, and marginalized communities. They operate outside traditional archival institutions and often have connections to the movements they document. Common in German-speaking countries and Italy. @@ -40,11 +29,10 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FreeArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FreeArchiveRecordSetType.yaml index d863b57140..4210e62f82 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FreeArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FreeArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: wd: http://www.wikidata.org/entity/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: FreeArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by FreeArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FreeArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FreeArchiveRecordSetTypes.yaml index f21f68212a..fd8c7c5c79 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FreeArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FreeArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./FreeArchive -- ./FreeArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./FreeArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: OpenAccessCollection: is_a: FreeArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Open access materials.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FrenchPrivateArchives.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FrenchPrivateArchives.yaml index 6664aa3d5b..3f4ad09818 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FrenchPrivateArchives.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FrenchPrivateArchives.yaml @@ -8,24 +8,12 @@ prefixes: wd: http://www.wikidata.org/entity/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./FrenchPrivateArchivesRecordSetType -- ./FrenchPrivateArchivesRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: FrenchPrivateArchives: description: "Non-public archives in France (archives priv\xE9es en France). This category encompasses archives held by private individuals, families, businesses, associations, and other non-governmental entities in France. French archival law distinguishes between public archives (archives publiques) and private archives (archives priv\xE9es), with specific regulations governing each category. Private archives may be classified as historical monuments (classement) or registered (inscription) if they have historical significance." @@ -34,11 +22,10 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FrenchPrivateArchivesRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FrenchPrivateArchivesRecordSetType.yaml index baeefe8bf3..52559cbbb0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FrenchPrivateArchivesRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FrenchPrivateArchivesRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: wd: http://www.wikidata.org/entity/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: FrenchPrivateArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by FrenchPrivateArchives custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FrenchPrivateArchivesRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FrenchPrivateArchivesRecordSetTypes.yaml index d69f2b11c5..c8d0b36137 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FrenchPrivateArchivesRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FrenchPrivateArchivesRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./FrenchPrivateArchives -- ./FrenchPrivateArchivesRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./FrenchPrivateArchivesRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: FrenchPrivateFonds: is_a: FrenchPrivateArchivesRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for French private archives.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Frequency.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Frequency.yaml index 312ad2ff4e..8a91bf206a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Frequency.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Frequency.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: Frequency: class_uri: schema:Schedule diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FumeHood.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FumeHood.yaml index fea4650c8b..51730c3505 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FumeHood.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FumeHood.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: FumeHood: class_uri: schema:AmenityFeature diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FunctionCategory.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FunctionCategory.yaml index 4efc7d9517..8c60a1a079 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FunctionCategory.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FunctionCategory.yaml @@ -7,9 +7,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: FunctionCategory: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FunctionType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FunctionType.yaml index aeec6fb039..0c5a815459 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FunctionType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FunctionType.yaml @@ -14,15 +14,12 @@ prefixes: dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label # was: function_name -- ../slots/is_or_was_categorized_as # was: function_category -- ../slots/temporal_extent -- ../slots/temporal_extent # was: valid_from + valid_to -- ./FunctionCategory -- ./Label -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label # was: function_name + - ../slots/is_or_was_categorized_as # was: function_category + - ../slots/temporal_extent + - ../slots/temporal_extent # was: valid_from + valid_to default_prefix: hc enums: @@ -98,9 +95,8 @@ classes: - Primary: `org:purpose` - "Indicates the purpose of this Organization" - Related: `schema:roleName` - The role associated with an organizational function - exact_mappings: - - org:purpose close_mappings: + - org:purpose - schema:Role related_mappings: - org:OrganizationalUnit @@ -115,10 +111,10 @@ classes: inlined: true required: true has_or_had_label: # was: function_name - migrated per Rule 53 (2026-01-26) - range: string +# range: string required: true has_or_had_description: - range: string +# range: string required: false temporal_extent: range: TimeSpan diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FunctionTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FunctionTypes.yaml index 04d622e2c3..063d73b664 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FunctionTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FunctionTypes.yaml @@ -15,8 +15,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ./FunctionType + - ./FunctionType + - linkml:types default_prefix: hc classes: FinanceFunction: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Funding.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Funding.yaml index 4afa8226ab..e0677c71d6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Funding.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Funding.yaml @@ -9,12 +9,10 @@ prefixes: frapo: http://purl.org/cerif/frapo/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_currency -- ../slots/has_or_had_description -- ../slots/has_or_had_quantity -- ./Currency -- ./Quantity + - linkml:types + - ../slots/has_or_had_currency + - ../slots/has_or_had_description + - ../slots/has_or_had_quantity default_prefix: hc classes: Funding: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FundingAgenda.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FundingAgenda.yaml index ed37524fe5..b0954b106c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FundingAgenda.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FundingAgenda.yaml @@ -11,52 +11,28 @@ prefixes: org: http://www.w3.org/ns/org# skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../classes/Description -- ../classes/Heritage -- ../classes/Identifier -- ../classes/Label -- ../classes/LabelType -- ../classes/LabelTypes -- ../classes/Organization -- ../classes/Title -- ../classes/URL -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_investment -- ../slots/has_or_had_label -- ../slots/has_or_had_objective -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_title -- ../slots/has_or_had_url -- ../slots/is_or_was_governed_by -- ../slots/is_or_was_implemented_by -- ../slots/is_or_was_related_to -- ../slots/keyword -- ../slots/language -- ../slots/related_agenda -- ../slots/route_description -- ../slots/route_id -- ../slots/route_keyword -- ../slots/route_relevance_to_heritage -- ../slots/route_title -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./GeographicScope -- ./GoverningBody -- ./Identifier -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Description -- ./Heritage -- ./Label -- ./Organization -- ./ThematicRoute -- ./URL + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_investment + - ../slots/has_or_had_label + - ../slots/has_or_had_objective + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_title + - ../slots/has_or_had_url + - ../slots/is_or_was_governed_by + - ../slots/is_or_was_implemented_by + - ../slots/is_or_was_related_to + - ../slots/keyword + - ../slots/language + - ../slots/related_agenda + - ../slots/route_description + - ../slots/route_id + - ../slots/route_keyword + - ../slots/route_relevance_to_heritage + - ../slots/route_title + - ../slots/temporal_extent default_prefix: hc classes: FundingAgenda: @@ -77,7 +53,7 @@ classes: slots: - has_or_had_description - has_or_had_url - - has_or_had_identifier + - identified_by - has_or_had_label - is_or_was_governed_by - is_or_was_related_to @@ -86,10 +62,10 @@ classes: - has_or_had_investment - temporal_extent slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true - range: uriorcurie +# range: string # uriorcurie pattern: ^https://nde\.nl/ontology/hc/agenda/[a-z0-9-]+/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/agenda/nl/nwa @@ -97,13 +73,13 @@ classes: - value: https://nde.nl/ontology/hc/agenda/uk/ace-lets-create has_or_had_title: required: true - range: string +# range: string examples: - value: Nationale Wetenschapsagenda - value: Horizon Europe Strategic Plan 2021-2024 has_or_had_label: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: @@ -119,11 +95,11 @@ classes: has_or_had_type: has_or_had_code: SHORT_NAME has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type has_or_had_url: range: uri - inlined: true + inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: @@ -138,9 +114,9 @@ classes: range: GoverningBody examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/encompassing-body/umbrella/nl-ministry-ocw + identified_by: https://nde.nl/ontology/hc/encompassing-body/umbrella/nl-ministry-ocw - value: - has_or_had_identifier: https://nde.nl/ontology/hc/encompassing-body/umbrella/eu-commission + identified_by: https://nde.nl/ontology/hc/encompassing-body/umbrella/eu-commission - value: https://nde.nl/ontology/hc/encompassing-body/funding/ec-rea temporal_extent: range: TimeSpan @@ -174,9 +150,9 @@ classes: - value: has_or_had_name: Netherlands Enterprise Agency (RVO) related_agenda: - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: https://nde.nl/ontology/hc/agenda/eu/h2020-swfs comments: @@ -192,7 +168,7 @@ classes: - https://www.artscouncil.org.uk/lets-create/strategy-2020-2030 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/agenda/nl/nwa + identified_by: https://nde.nl/ontology/hc/agenda/nl/nwa has_or_had_title: Nationale Wetenschapsagenda has_or_had_label: NWA has_or_had_description: 'The Dutch Research Agenda (Nationale Wetenschapsagenda, NWA) is a collaborative @@ -206,10 +182,10 @@ classes: has_or_had_url: https://www.nwo.nl/en/researchprogrammes/dutch-research-agenda-nwa has_or_had_documentation: https://wetenschapsagenda.nl/publicaties/ is_or_was_governed_by: - has_or_had_identifier: https://nde.nl/ontology/hc/encompassing-body/umbrella/nl-ministry-ocw + identified_by: https://nde.nl/ontology/hc/encompassing-body/umbrella/nl-ministry-ocw is_or_was_implemented_by: - - has_or_had_identifier: https://nde.nl/ontology/hc/encompassing-body/funding/nwo - - has_or_had_identifier: https://nde.nl/ontology/hc/encompassing-body/funding/knaw + - identified_by: https://nde.nl/ontology/hc/encompassing-body/funding/nwo + - identified_by: https://nde.nl/ontology/hc/encompassing-body/funding/knaw temporal_extent: begin_of_the_begin: '2015-11-27T00:00:00Z' end_of_the_begin: '2015-11-27T00:00:00Z' @@ -232,7 +208,7 @@ classes: - interdisciplinary research - societal challenges - value: - has_or_had_identifier: https://nde.nl/ontology/hc/agenda/eu/horizon-europe-sp-2021-2024 + identified_by: https://nde.nl/ontology/hc/agenda/eu/horizon-europe-sp-2021-2024 has_or_had_title: Horizon Europe Strategic Plan 2021-2024 has_or_had_label: HE SP 2021-2024 has_or_had_description: 'The Horizon Europe Strategic Plan 2021-2024 sets out the key strategic @@ -245,7 +221,7 @@ classes: ' has_or_had_url: https://research-and-innovation.ec.europa.eu/funding/funding-opportunities/funding-programmes-and-open-calls/horizon-europe/strategic-plan_en is_or_was_governed_by: - has_or_had_identifier: https://nde.nl/ontology/hc/encompassing-body/umbrella/eu-commission + identified_by: https://nde.nl/ontology/hc/encompassing-body/umbrella/eu-commission is_or_was_implemented_by: - https://nde.nl/ontology/hc/encompassing-body/funding/ec-rea - https://nde.nl/ontology/hc/encompassing-body/funding/erc @@ -282,83 +258,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" - ThematicRoute: - class_uri: skos:Concept - description: 'A thematic area, route, or priority cluster within a funding agenda. - ThematicRoute represents a major area of focus that guides research priorities - and funding allocation. Routes are typically interdisciplinary and address - broad societal challenges. - **PURPOSE**: - Routes structure the agenda into navigable themes that: - - Help researchers identify relevant funding opportunities - - Guide funding organisations in designing calls - - Enable cross-referencing between agenda priorities and actual calls - **NAMING CONVENTIONS**: - Different agendas use different terminology: - - NWA: "Routes" (25 thematic routes) - - Horizon Europe: "Clusters" (6) and "Missions" (5) - - Creative Europe: "Strands" (3) - - National strategies: "Priority areas", "Themes", "Pillars" - - **SKOS**: `skos:Concept` - Thematic routes are concepts in a scheme - - Can be organised hierarchically (broader/narrower themes) - - Can be linked across agendas (similar themes in different frameworks) - ' - exact_mappings: - - skos:Concept - close_mappings: - - dcterms:subject - slots: - - route_description - - route_id - - route_keyword - - route_relevance_to_heritage - - route_title - - specificity_annotation - - has_or_had_score - slot_usage: - route_id: - identifier: true - required: true - range: uriorcurie - pattern: ^https://nde\.nl/ontology/hc/route/[a-z0-9-]+/[a-z0-9-]+$ - examples: - - value: https://nde.nl/ontology/hc/route/nwa/cultural-identity - - value: https://nde.nl/ontology/hc/route/he/cluster-2 - route_title: - required: true - range: string - examples: - - value: Origin and Identity of the Netherlands and Its Inhabitants - - value: Culture, Creativity and Inclusive Society - route_description: - range: string - route_keyword: - range: string - multivalued: true - inlined_as_list: true - route_relevance_to_heritage: - range: string - comments: - - ThematicRoute represents a priority area within a FundingAgenda - - Uses SKOS vocabulary for concept representation - - Can be linked across agendas to show thematic alignment - - Heritage relevance field helps heritage sector navigate agendas - examples: - - value: - route_id: https://nde.nl/ontology/hc/route/nwa/cultural-identity - route_title: Origin and Identity of the Netherlands and Its Inhabitants - route_description: 'This route addresses questions about Dutch cultural heritage, national - identity, migration history, and cultural diversity. Research explores - how the Netherlands developed its unique cultural characteristics and - how identity is shaped and reshaped in an increasingly multicultural - society. - ' - route_keyword: - - cultural heritage - - national identity - - migration history - - cultural diversity - - collective memory - - museums - - archives - route_relevance_to_heritage: Directly relevant - this route explicitly addresses cultural heritage institutions, collections, and the role of heritage in identity formation. Museums and archives are key partners in NWA research on this theme. \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FundingCall.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FundingCall.yaml index 624b576fba..c1dc4f22aa 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FundingCall.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FundingCall.yaml @@ -7,8 +7,7 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ./CallForApplication + - linkml:types default_prefix: hc classes: FundingCall: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FundingFocus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FundingFocus.yaml index 3cf51a1e85..c67b6da0df 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FundingFocus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FundingFocus.yaml @@ -7,9 +7,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: FundingFocus: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FundingProgram.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FundingProgram.yaml index c690d7c0ff..88ae14890f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FundingProgram.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FundingProgram.yaml @@ -8,10 +8,10 @@ prefixes: frapo: http://purl.org/cerif/frapo/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/is_or_was_targeted_at + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/is_or_was_targeted_at default_prefix: hc classes: FundingProgram: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FundingRate.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FundingRate.yaml index 4137080c26..a5f9ebef57 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FundingRate.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FundingRate.yaml @@ -7,10 +7,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../classes/Percentage -- ../slots/has_or_had_rate -- ../slots/maximal_of_maximal + - linkml:types + - ../slots/has_or_had_rate + - ../slots/maximal_of_maximal default_prefix: hc classes: FundingRate: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml index b2c10c7e62..5015732dc4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml @@ -10,29 +10,22 @@ prefixes: pav: http://purl.org/pav/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../enums/FundingRequirementTypeEnum -- ../slots/applies_or_applied_to -- ../slots/has_or_had_note -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_mandatory -- ../slots/observed_in -- ../slots/requirement_id -- ../slots/requirement_text -- ../slots/requirement_type -- ../slots/requirement_unit -- ../slots/requirement_value -- ../slots/source_section -- ../slots/specificity_annotation -- ../slots/supersedes_or_superseded -- ../slots/temporal_extent -- ./RequirementType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../enums/FundingRequirementTypeEnum + - ../slots/apply_to + - ../slots/has_or_had_note + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_mandatory + - ../slots/observed_in + - ../slots/requirement_id + - ../slots/requirement_text + - ../slots/requirement_type + - ../slots/requirement_unit + - ../slots/requirement_value + - ../slots/source_section + - ../slots/supersedes_or_superseded + - ../slots/temporal_extent default_prefix: hc classes: FundingRequirement: @@ -55,7 +48,7 @@ classes: - schema:eligibleQuantity - prov:wasDerivedFrom slots: - - applies_or_applied_to + - apply_to - has_or_had_note - is_mandatory - observed_in @@ -66,7 +59,6 @@ classes: - requirement_unit - requirement_value - source_section - - specificity_annotation - supersedes_or_superseded - has_or_had_score - temporal_extent @@ -74,7 +66,7 @@ classes: requirement_id: identifier: true required: true - range: uriorcurie +# range: string # uriorcurie pattern: ^https://nde\.nl/ontology/hc/requirement/[a-z0-9-]+/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/requirement/ec-cl2-2025-heritage-01/min-partners-3 @@ -101,19 +93,19 @@ classes: - Co-funding requirement@en requirement_text: required: true - range: string +# range: string examples: - value: Minimum 3 independent legal entities from 3 different EU Member States or Horizon Europe Associated Countries - value: Applications must demonstrate at least 25% co-funding from non-EU sources requirement_value: - range: string +# range: string examples: - value: '3' - value: '25' - value: eu-member-states - value: immediate requirement_unit: - range: string +# range: string examples: - value: partners - value: percent @@ -130,17 +122,17 @@ classes: description: 'Optional: preferred but not required' observed_in: required: true - range: uriorcurie +# range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage source_section: - range: string +# range: string examples: - value: Section 2.1 - Eligibility Criteria - value: 'FAQ #7 - Consortium composition' - value: Work Programme page 45 supersedes_or_superseded: - range: uriorcurie +# range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/requirement/ec-cl2-2024-heritage-01/min-partners-4 comments: @@ -162,7 +154,7 @@ classes: requirement_value: '3' requirement_unit: partners is_mandatory: true - applies_or_applied_to: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 + apply_to: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage source_section: Section 2 - Eligibility Conditions has_or_had_score: @@ -175,7 +167,7 @@ classes: requirement_value: '30' requirement_unit: percent is_mandatory: true - applies_or_applied_to: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 + apply_to: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage source_section: Section 3 - Financial Conditions has_or_had_score: @@ -188,7 +180,7 @@ classes: requirement_value: immediate requirement_unit: null is_mandatory: true - applies_or_applied_to: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 + apply_to: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage source_section: Section 4.2 - Open Science has_or_had_score: @@ -201,7 +193,7 @@ classes: requirement_value: UK requirement_unit: country is_mandatory: true - applies_or_applied_to: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 + apply_to: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-28/nlhf-medium-grants source_section: Eligibility has_or_had_score: @@ -214,7 +206,7 @@ classes: requirement_value: non-profit requirement_unit: organization-type is_mandatory: true - applies_or_applied_to: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 + apply_to: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-28/nlhf-medium-grants source_section: Who can apply has_or_had_score: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FundingScheme.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FundingScheme.yaml index eacb6fa6e4..a281abba42 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FundingScheme.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FundingScheme.yaml @@ -14,9 +14,9 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: FundingScheme: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FundingSource.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FundingSource.yaml index ac5db7a1b1..e5c4d93e58 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FundingSource.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FundingSource.yaml @@ -15,10 +15,10 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type default_prefix: hc classes: FundingSource: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Fylkesarkiv.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Fylkesarkiv.yaml index 70d46b7dfb..580e443bf4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Fylkesarkiv.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Fylkesarkiv.yaml @@ -4,9 +4,7 @@ title: Fylkesarkiv (Norwegian County Archive) prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ./ArchiveOrganizationType -- ./CollectionType + - linkml:types classes: Fylkesarkiv: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GBIFIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GBIFIdentifier.yaml index 44914024a2..d0356b193b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GBIFIdentifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GBIFIdentifier.yaml @@ -8,13 +8,14 @@ prefixes: schema: http://schema.org/ dwc: http://rs.tdwg.org/dwc/terms/ imports: -- linkml:types -- ./Identifier + - linkml:types default_prefix: hc classes: GBIFIdentifier: is_a: Identifier - class_uri: dwc:occurrenceID + class_uri: hc:GBIFIdentifier + close_mappings: + - dwc:occurrenceID description: A persistent identifier for a biodiversity occurrence record. annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GHCIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GHCIdentifier.yaml index bf5eb9cc6d..a22da20f09 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GHCIdentifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GHCIdentifier.yaml @@ -7,13 +7,14 @@ prefixes: hc: https://nde.nl/ontology/hc/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ./Identifier + - linkml:types default_prefix: hc classes: GHCIdentifier: is_a: Identifier - class_uri: dcterms:identifier + class_uri: hc:GHCIdentifier + close_mappings: + - dcterms:identifier description: 'A persistent, unique identifier for a heritage custodian. Format: CC-RR-LLL-T-ABBREVIATION' annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GLAM.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GLAM.yaml index 44e549bace..3af90ddeff 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GLAM.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GLAM.yaml @@ -7,26 +7,19 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score classes: GLAM: description: Acronym for "Galleries, Libraries, Archives, and Museums" that refers to cultural institutions that have providing access to knowledge as their mission. GLAM institutions share common goals around preservation, access, and cultural heritage stewardship, though they differ in their primary materials and methodologies. The term is used to describe both the sector collectively and institutions that combine multiple GLAM functions. is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: annotations: skos:prefLabel: GLAM skos:altLabel: Galleries, Libraries, Archives, and Museums, GLAM institution, Memory institution, Cultural heritage institution diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GLAMORCUBESFIXPHDNTCode.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GLAMORCUBESFIXPHDNTCode.yaml index d5880435e5..582e8bd77b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GLAMORCUBESFIXPHDNTCode.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GLAMORCUBESFIXPHDNTCode.yaml @@ -7,9 +7,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: GLAMORCUBESFIXPHDNTCode: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GLEIFIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GLEIFIdentifier.yaml index d0390f0de8..f0cc728de5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GLEIFIdentifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GLEIFIdentifier.yaml @@ -15,8 +15,7 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ./Identifier + - linkml:types default_prefix: hc classes: GLEIFIdentifier: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Gallery.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Gallery.yaml index b524ce53ef..4dbef551a5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Gallery.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Gallery.yaml @@ -8,12 +8,10 @@ prefixes: schema: http://schema.org/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ./GalleryType -- ./GalleryTypes + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type default_prefix: hc classes: Gallery: @@ -24,7 +22,7 @@ classes: - has_or_had_type slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GalleryType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GalleryType.yaml index 99336e09c5..2023dfdc4e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GalleryType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GalleryType.yaml @@ -2,35 +2,21 @@ id: https://nde.nl/ontology/hc/class/GalleryType name: GalleryType title: Gallery Type Classification imports: -- linkml:types -- ../classes/Artist -- ../enums/GalleryTypeEnum -- ../slots/custodian_type_broader -- ../slots/has_or_had_identifier # was: wikidata_entity -- ../slots/has_or_had_model # was: exhibition_model -- ../slots/has_or_had_objective -- ../slots/has_or_had_percentage -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_service -- ../slots/has_or_had_type -- ../slots/includes_or_included # was: gallery_subtype -- ../slots/is_or_was_categorized_as # was: exhibition_focus -- ../slots/represents_or_represented -- ../slots/sales_activity -- ../slots/specificity_annotation -- ../slots/takes_or_took_comission -- ./ArtSaleService -- ./CommissionRate -- ./CustodianType -- ./GalleryTypes -- ./Percentage -- ./Profit -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier -- ./GalleryType + - linkml:types + - ../enums/GalleryTypeEnum + - ../slots/custodian_type_broader + - ../slots/identified_by # was: wikidata_entity + - ../slots/has_or_had_model # was: exhibition_model + - ../slots/has_or_had_objective + - ../slots/has_or_had_percentage + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_service + - ../slots/has_or_had_type + - ../slots/includes_or_included # was: gallery_subtype + - ../slots/is_or_was_categorized_as # was: exhibition_focus + - ../slots/represents_or_represented + - ../slots/sales_activity + - ../slots/takes_or_took_comission classes: GalleryType: is_a: CustodianType @@ -153,11 +139,10 @@ classes: - has_or_had_model # was: exhibition_model - migrated per Rule 53 (2026-01-26) - includes_or_included # was: gallery_subtype - migrated per Rule 53 (2026-01-26) - sales_activity - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - - has_or_had_identifier # was: wikidata_entity - migrated per Rule 53 (2026-01-16) + - identified_by # was: wikidata_entity - migrated per Rule 53 (2026-01-16) slot_usage: - has_or_had_identifier: # was: wikidata_entity - migrated per Rule 53 (2026-01-16) + identified_by: # was: wikidata_entity - migrated per Rule 53 (2026-01-16) pattern: ^Q[0-9]+$ required: true custodian_type_broader: @@ -166,9 +151,9 @@ classes: has_or_had_type: equals_expression: '["hc:GalleryType"]' is_or_was_categorized_as: # was: exhibition_focus - migrated per Rule 53 (2026-01-26) - range: string +# range: string has_or_had_model: # was: exhibition_model - migrated per Rule 53 (2026-01-26) - range: string +# range: string includes_or_included: # was: gallery_subtype - migrated per Rule 53 (2026-01-26) range: GalleryType any_of: @@ -194,7 +179,7 @@ classes: - 'Artist-run initiatives: Canadian model (1960s+), cooperative ownership' examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/gallery/Q1475403 + identified_by: https://nde.nl/ontology/hc/type/gallery/Q1475403 has_or_had_type_code: GALLERY has_or_had_label: - Kunsthalle@en @@ -208,7 +193,7 @@ classes: sales_activity: false has_or_had_model: temporary rotating exhibitions, no permanent collection - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/gallery/Q56856618 + identified_by: https://nde.nl/ontology/hc/type/gallery/Q56856618 has_or_had_type_code: GALLERY has_or_had_label: - Commercial Art Gallery@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GalleryTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GalleryTypes.yaml index 01c518d434..22b9c0fbb9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GalleryTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GalleryTypes.yaml @@ -8,8 +8,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ./GalleryType + - ./GalleryType + - linkml:types default_prefix: hc classes: CommercialGallery: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GenBankAccession.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GenBankAccession.yaml index bce0b7b7f6..e5b0536cb9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GenBankAccession.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GenBankAccession.yaml @@ -7,8 +7,7 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ./Identifier + - linkml:types default_prefix: hc classes: GenBankAccession: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Gender.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Gender.yaml index e6ccb2c51d..ee5e0f6f3e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Gender.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Gender.yaml @@ -14,9 +14,9 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: Gender: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GenealogiewerkbalkEnrichment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GenealogiewerkbalkEnrichment.yaml index a500eabb15..3e27e780eb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GenealogiewerkbalkEnrichment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GenealogiewerkbalkEnrichment.yaml @@ -8,12 +8,9 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/DataTierEnum -- ./ArchiveInfo -- ./MunicipalityInfo -- ./ProvinceInfo -default_range: string + - linkml:types + - ../enums/DataTierEnum +# default_range: string classes: GenealogiewerkbalkEnrichment: description: "Dutch genealogy archives registry (Genealogiewerkbalk) data including\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GenerationEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GenerationEvent.yaml index 5ea1732690..6966a95a3c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GenerationEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GenerationEvent.yaml @@ -9,14 +9,11 @@ prefixes: schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_provenance -- ../slots/has_or_had_score -- ../slots/temporal_extent -- ./ConfidenceScore -- ./Provenance -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_provenance + - ../slots/has_or_had_score + - ../slots/temporal_extent default_prefix: hc classes: @@ -74,7 +71,7 @@ classes: has_or_had_type: SOFTWARE has_or_had_name: "YouTube Auto-Chapters" has_or_had_description: - range: string +# range: string required: false examples: - value: "Generated using Whisper transcript segmentation" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GeoFeature.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GeoFeature.yaml index 6396405c2e..ef18caacaf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GeoFeature.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GeoFeature.yaml @@ -17,11 +17,9 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_type -- ./Code -- ./GeoFeatureType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_type default_prefix: hc classes: GeoFeature: @@ -31,10 +29,10 @@ classes: - has_or_had_code slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true has_or_had_code: - range: uriorcurie +# range: string # uriorcurie required: true annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GeoFeatureType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GeoFeatureType.yaml index 4c51398155..4d7ffb7bee 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GeoFeatureType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GeoFeatureType.yaml @@ -8,9 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# gn: http://www.geonames.org/ontology# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: GeoFeatureType: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GeoFeatureTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GeoFeatureTypes.yaml index 0a69770a64..bf9e1f0b51 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GeoFeatureTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GeoFeatureTypes.yaml @@ -9,8 +9,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# gn: http://www.geonames.org/ontology# imports: -- linkml:types -- ./GeoFeatureType + - ./GeoFeatureType + - linkml:types default_prefix: hc classes: AdministrativeBoundary: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GeoNamesIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GeoNamesIdentifier.yaml index a9500aff6c..14557c4ce4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GeoNamesIdentifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GeoNamesIdentifier.yaml @@ -8,13 +8,14 @@ prefixes: schema: http://schema.org/ gn: http://www.geonames.org/ontology# imports: -- linkml:types -- ./Identifier + - linkml:types default_prefix: hc classes: GeoNamesIdentifier: is_a: Identifier - class_uri: gn:geonamesID + class_uri: hc:GeoNamesIdentifier + close_mappings: + - gn:geonamesID description: A unique identifier for a GeoNames feature. Typically an integer. annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GeoSpatialPlace.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GeoSpatialPlace.yaml index cf16f283f2..6ce53848e7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GeoSpatialPlace.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GeoSpatialPlace.yaml @@ -2,6 +2,8 @@ id: https://nde.nl/ontology/hc/class/GeoSpatialPlace name: geospatial_place_class title: GeoSpatialPlace Class prefixes: + geo: http://www.opengis.net/ont/geosparql# + rov: http://www.w3.org/ns/regorg# geosparql: http://www.opengis.net/ont/geosparql# wgs84: http://www.w3.org/2003/01/geo/wgs84_pos# sf: http://www.opengis.net/ont/sf# @@ -9,33 +11,20 @@ prefixes: gn_entity: http://sws.geonames.org/ tooi: https://identifier.overheid.nl/tooi/def/ont/ imports: -- linkml:types -- ../enums/GeometryTypeEnum -- ../metadata -- ../slots/coordinate_reference_system -- ../slots/has_or_had_altitude -- ../slots/has_or_had_coordinates -- ../slots/has_or_had_geofeature -- ../slots/has_or_had_geographic_extent -- ../slots/has_or_had_geometry -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/osm_id -- ../slots/spatial_resolution -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./Altitude -- ./Code -- ./Coordinates -- ./GeoFeature -- ./GeoFeatureType -- ./GeoFeatureTypes -- ./Geometry -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../enums/GeometryTypeEnum + - ../metadata + - ../slots/coordinate_reference_system + - ../slots/has_or_had_altitude + - ../slots/has_or_had_coordinates + - ../slots/has_or_had_geofeature + - ../slots/has_or_had_geographic_extent + - ../slots/has_or_had_geometry + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/osm_id + - ../slots/spatial_resolution + - ../slots/temporal_extent types: WktLiteral: uri: geosparql:wktLiteral @@ -66,13 +55,12 @@ classes: - has_or_had_coordinates - has_or_had_altitude - has_or_had_geographic_extent - - has_or_had_identifier + - identified_by - coordinate_reference_system - has_or_had_geofeature - has_or_had_geometry - osm_id - spatial_resolution - - specificity_annotation - has_or_had_score - temporal_extent slot_usage: @@ -86,7 +74,7 @@ classes: longitude: 4.8852 coordinate_reference_system: ifabsent: string(EPSG:4326) - has_or_had_identifier: + identified_by: description: 'Cadastral identifiers for this geospatial place. MIGRATION NOTE (2026-01-14): Replaces cadastral_id per slot_fixes.yaml. Use Identifier with identifier_scheme=''cadastral'' for parcel IDs. Netherlands: Kadaster perceelnummer format {gemeente}-{sectie}-{perceelnummer}' examples: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GeographicExtent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GeographicExtent.yaml index 0b39ff16d8..ddc1fd8b79 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GeographicExtent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GeographicExtent.yaml @@ -10,10 +10,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label classes: GeographicExtent: class_uri: dcterms:Location @@ -26,7 +26,7 @@ classes: slots: - has_or_had_label - - has_or_had_identifier + - identified_by annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GeographicScope.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GeographicScope.yaml index 837eea67b4..f9672f69bb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GeographicScope.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GeographicScope.yaml @@ -7,9 +7,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: GeographicScope: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Geometry.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Geometry.yaml index c8d362381b..9f902c247b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Geometry.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Geometry.yaml @@ -7,14 +7,11 @@ prefixes: hc: https://nde.nl/ontology/hc/ geosparql: http://www.opengis.net/ont/geosparql# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_format -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ./GeometryType -- ./GeometryTypes -- ./WKT + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_format + - ../slots/has_or_had_label + - ../slots/has_or_had_type default_prefix: hc classes: Geometry: @@ -26,10 +23,10 @@ classes: - has_or_had_format slot_usage: has_or_had_format: - range: uriorcurie +# range: string # uriorcurie required: true has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GeometryType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GeometryType.yaml index 0d0625ae61..6209f0de58 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GeometryType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GeometryType.yaml @@ -8,9 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# geosparql: http://www.opengis.net/ont/geosparql# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: GeometryType: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GeometryTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GeometryTypes.yaml index 6ba3dd677c..015f9775a1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GeometryTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GeometryTypes.yaml @@ -4,14 +4,15 @@ title: Geometry Type Subclasses description: Concrete subclasses of GeometryType representing specific geometry types. Based on GeoSPARQL geometry types. prefixes: + geo: http://www.opengis.net/ont/geosparql# linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# geosparql: http://www.opengis.net/ont/geosparql# sf: http://www.opengis.net/ont/sf# imports: -- linkml:types -- ./GeometryType + - ./GeometryType + - linkml:types default_prefix: hc classes: Point: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GeospatialIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GeospatialIdentifier.yaml index 7891450581..ada4562ada 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GeospatialIdentifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GeospatialIdentifier.yaml @@ -7,8 +7,7 @@ prefixes: hc: https://nde.nl/ontology/hc/ geosparql: http://www.opengis.net/ont/geosparql# imports: -- linkml:types -- ./Identifier + - linkml:types default_prefix: hc classes: GeospatialIdentifier: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GeospatialLocation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GeospatialLocation.yaml index 66a6689d4b..bdff5a6f47 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GeospatialLocation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GeospatialLocation.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_location + - linkml:types + - ../slots/has_or_had_location classes: GeospatialLocation: class_uri: schema:GeoCoordinates diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GhcidBlock.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GhcidBlock.yaml index d3e1fc0ce4..caf90dbc78 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GhcidBlock.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GhcidBlock.yaml @@ -13,10 +13,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ./GhcidHistoryEntry -- ./LocationResolution -default_range: string + - linkml:types +# default_range: string classes: GhcidBlock: description: "GHCID (Global Heritage Custodian Identifier) generation metadata\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GhcidHistoryEntry.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GhcidHistoryEntry.yaml index 2aaa2a000e..239c54ef73 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GhcidHistoryEntry.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GhcidHistoryEntry.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: GhcidHistoryEntry: description: "Historical GHCID entry with validity period tracking the evolution\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GiftShop.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GiftShop.yaml index 7a0c085a4b..113c10a4f2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GiftShop.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GiftShop.yaml @@ -2,55 +2,29 @@ id: https://nde.nl/ontology/hc/class/gift-shop name: gift_shop_class title: GiftShop Class imports: -- linkml:types -- ../classes/Quantity -- ../classes/Revenue -- ../enums/GiftShopTypeEnum -- ../enums/ProductCategoryEnum -- ../slots/accepts_or_accepted -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_quantity -- ../slots/has_or_had_range -- ../slots/has_or_had_revenue -- ../slots/has_or_had_score -- ../slots/has_or_had_supplier -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/managed_by -- ../slots/online_shop -- ../slots/opening_hour -- ../slots/physical_location -- ../slots/price_currency -- ../slots/refers_to_custodian -- ../slots/shop_type -- ../slots/specificity_annotation -- ../slots/square_meters -- ../slots/temporal_extent -- ./AuxiliaryDigitalPlatform -- ./AuxiliaryPlace -- ./ConversionRate -- ./ConversionRateType -- ./ConversionRateTypes -- ./Custodian -- ./CustodianObservation -- ./Description -- ./Label -- ./PaymentMethod -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./Supplier -- ./SupplierType -- ./SupplierTypes -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./PriceRange -- ./Quantity -- ./Revenue + - linkml:types + - ../enums/GiftShopTypeEnum + - ../enums/ProductCategoryEnum + - ../slots/accept + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_quantity + - ../slots/has_or_had_range + - ../slots/has_or_had_revenue + - ../slots/has_or_had_score + - ../slots/has_or_had_supplier + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/managed_by + - ../slots/online_shop + - ../slots/opening_hour + - ../slots/physical_location + - ../slots/price_currency + - ../slots/refers_to_custodian + - ../slots/shop_type + - ../slots/square_meters + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -65,10 +39,10 @@ classes: GiftShop: is_a: ReconstructedEntity class_uri: schema:Store - description: "Retail operation associated with a heritage custodian for selling merchandise,\nreproductions, books, and heritage-related products.\n\n**PURPOSE AND SCOPE**:\n\nMuseum gift shops, archive bookshops, and library retail spaces are important\nrevenue-generating operations that also serve educational and cultural missions:\n\n- **Revenue generation**: Support institutional operations through merchandise sales\n- **Mission extension**: Offer products related to collections and exhibitions\n- **Visitor experience**: Complete the visit with memorable takeaways\n- **Brand communication**: Extend institutional identity through products\n- **Educational outreach**: Books, educational materials, replicas for learning\n\n**PHYSICAL vs. DIGITAL PRESENCE**:\n\nGift shops can exist in multiple forms:\n\n1. **Physical shop** (on-site): Located within museum/archive building\n - Links to AuxiliaryPlace (physical location)\n - Has opening_hours, accepts_or_accepted (PaymentMethod)\n\ + description: "Retail operation associated with a heritage custodian for selling merchandise,\nreproductions, books, and heritage-related products.\n\n**PURPOSE AND SCOPE**:\n\nMuseum gift shops, archive bookshops, and library retail spaces are important\nrevenue-generating operations that also serve educational and cultural missions:\n\n- **Revenue generation**: Support institutional operations through merchandise sales\n- **Mission extension**: Offer products related to collections and exhibitions\n- **Visitor experience**: Complete the visit with memorable takeaways\n- **Brand communication**: Extend institutional identity through products\n- **Educational outreach**: Books, educational materials, replicas for learning\n\n**PHYSICAL vs. DIGITAL PRESENCE**:\n\nGift shops can exist in multiple forms:\n\n1. **Physical shop** (on-site): Located within museum/archive building\n - Links to AuxiliaryPlace (physical location)\n - Has opening_hours, accept (PaymentMethod)\n\ \ \n2. **Physical shop** (separate): Stand-alone retail location\n - Links to AuxiliaryPlace with type RETAIL_SPACE\n - May have separate street address, hours\n \n3. **Online shop** (e-commerce): Web-based retail platform\n - Links to AuxiliaryDigitalPlatform with type WEBSHOP\n - Has platform_url, shipping policies\n \n4. **Hybrid**: Both physical and online presence\n - Multiple links to AuxiliaryPlace AND AuxiliaryDigitalPlatform\n\n**SCHEMA.ORG ALIGNMENT**:\n\n`schema:Store` - \"A retail good store.\"\n\nKey properties:\n- `schema:openingHours` - Operating hours\n- `schema:acceptedPaymentMethod` - Payment options\n- `schema:priceRange` - Price level indication\n- `schema:currenciesAccepted` - Currency codes\n\n**GoodRelations Integration**:\n\nFor detailed product/offer modeling, GiftShop can link to:\n- `gr:Offering` - Specific product offers\n- `gr:BusinessEntity` - Shop as business entity\n- `gr:PaymentMethod` - Payment options\n\n**RELATIONSHIP TO CUSTODIAN\ \ HUB**:\n\n```\nCustodian (hub)\n \u251C\u2500\u2500 gift_shop \u2192 GiftShop (retail operations)\n \u2502 \u251C\u2500\u2500 physical_location \u2192 AuxiliaryPlace (shop location)\n \u2502 \u251C\u2500\u2500 online_shop \u2192 AuxiliaryDigitalPlatform (e-commerce)\n \u2502 \u251C\u2500\u2500 product_categories \u2192 ProductCategoryEnum[]\n \u2502 \u2514\u2500\u2500 revenue_data \u2192 Annual sales, visitor conversion\n \u2502\n \u2514\u2500\u2500 commercial_activities (broader commercial operations)\n```\n\n**USE CASES**:\n\n1. **Museum Shop** (Rijksmuseum):\n - Physical shop in museum foyer\n - Online shop at rijksmuseumshop.nl\n - Products: Reproductions, books, design objects\n \n2. **Archive Bookshop** (National Archives):\n - Small shop near reading room\n - Publications, finding aids, historical maps\n \n3. **Library Retail** (British Library):\n - Multiple retail spaces (shop, cafe, bookshop)\n - Extensive publication program\n \n4. **Pop-up\ - \ Shop** (Exhibition):\n - Temporary retail for special exhibition\n - Exhibition catalog, themed merchandise\n\n**Example - Rijksmuseum Gift Shop**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n gift_shop:\n - has_or_had_identifier: \"https://nde.nl/ontology/hc/gift-shop/rijksmuseum-shop\" # was: shop_id\n has_or_had_label: # was: shop_name\n label_text: \"Rijksmuseum Shop\"\n shop_type: MUSEUM_SHOP\n has_or_had_description: # was: shop_description\n description_text: |\n Award-winning museum shop offering reproductions, design objects,\n books, and exclusive Rijksmuseum merchandise.\n physical_location:\n - place_name: \"Rijksmuseum Shop - Main Hall\"\n auxiliary_place_type: RETAIL_SPACE\n street_address: \"Museumstraat 1, Amsterdam\"\n online_shop:\n - platform_name: \"Rijksmuseum Online Shop\"\n \ + \ Shop** (Exhibition):\n - Temporary retail for special exhibition\n - Exhibition catalog, themed merchandise\n\n**Example - Rijksmuseum Gift Shop**:\n```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n gift_shop:\n - identified_by: \"https://nde.nl/ontology/hc/gift-shop/rijksmuseum-shop\" # was: shop_id\n has_or_had_label: # was: shop_name\n label_text: \"Rijksmuseum Shop\"\n shop_type: MUSEUM_SHOP\n has_or_had_description: # was: shop_description\n description_text: |\n Award-winning museum shop offering reproductions, design objects,\n books, and exclusive Rijksmuseum merchandise.\n physical_location:\n - place_name: \"Rijksmuseum Shop - Main Hall\"\n auxiliary_place_type: RETAIL_SPACE\n street_address: \"Museumstraat 1, Amsterdam\"\n online_shop:\n - platform_name: \"Rijksmuseum Online Shop\"\n \ \ platform_url: \"https://www.rijksmuseumshop.nl/\"\n auxiliary_platform_type: WEBSHOP\n product_categories:\n - REPRODUCTIONS\n - BOOKS\n - DESIGN_OBJECTS\n - JEWELRY\n - HOME_DECOR\n price_currency: EUR\n accepts_payment_methods:\n - CASH\n - CREDIT_CARD\n - DEBIT_CARD\n - MOBILE_PAYMENT\n opening_hours: \"09:00-18:00\"\n```\n\n**TEMPORAL VALIDITY**:\n\nGift shops can open/close independently of the main institution:\n- New shop location opened 2013 after renovation\n- Temporary pop-up during exhibition\n- Online shop launched 2010\n\nTrack with valid_from/valid_to dates.\n" exact_mappings: - schema:Store @@ -83,7 +57,7 @@ classes: - gr:Offering - schema:Product slots: - - accepts_or_accepted + - accept - has_or_had_revenue - has_or_had_range - managed_by @@ -92,11 +66,10 @@ classes: - physical_location - price_currency - refers_to_custodian - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - shop_type - - specificity_annotation - square_meters - has_or_had_quantity - has_or_had_supplier @@ -105,15 +78,15 @@ classes: - is_or_was_derived_from - is_or_was_generated_by slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/gift-shop/rijksmuseum-shop has_or_had_label: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: @@ -121,8 +94,8 @@ classes: - value: label_text: British Library Bookshop has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: Award-winning museum shop offering reproductions and design objects @@ -152,7 +125,7 @@ classes: platform_url: https://www.rijksmuseumshop.nl/ auxiliary_platform_type: WEBSHOP price_currency: - range: string +# range: string required: true pattern: ^[A-Z]{3}$ examples: @@ -169,7 +142,7 @@ classes: - value: has_or_had_label: "\u20AC5-\u20AC500" has_or_had_description: Price range in euros - accepts_or_accepted: + accept: range: PaymentMethod inlined: true multivalued: true @@ -179,7 +152,7 @@ classes: - method_type: credit_card - method_type: digital opening_hour: - range: string +# range: string required: false examples: - value: Mo-Su 09:00-18:00 @@ -197,14 +170,14 @@ classes: - value: "has_or_had_conversion_rate:\n - rate_value: 0.35\n has_or_had_type:\n has_or_had_label: \"Visitor to Purchase\"\n temporal_extent:\n begin_of_the_begin: \"2024-01-01\"\n end_of_the_end: \"2024-12-31\"\n" has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type square_meters: range: float required: false examples: - value: 250.0 managed_by: - range: string +# range: string required: false examples: - value: In-house (Rijksmuseum BV) @@ -262,7 +235,7 @@ classes: - https://schema.org/Offer examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/gift-shop/rijksmuseum-shop + identified_by: https://nde.nl/ontology/hc/gift-shop/rijksmuseum-shop has_or_had_label: label_text: Rijksmuseum Shop shop_type: MUSEUM_SHOP @@ -281,7 +254,7 @@ classes: has_or_had_range: has_or_had_symbol: $$ has_or_had_description: Mid-range pricing - accepts_or_accepted: + accept: - method_type: CASH - method_type: CREDIT_CARD - method_type: DEBIT_CARD @@ -290,7 +263,7 @@ classes: opening_hours: Mo-Su 09:00-18:00 has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type square_meters: 450.0 managed_by: In-house (Rijksmuseum BV) has_or_had_supplier: @@ -308,7 +281,7 @@ classes: label_text: Reproduction Supplier refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/gift-shop/british-library-shop + identified_by: https://nde.nl/ontology/hc/gift-shop/british-library-shop has_or_had_label: label_text: British Library Shop shop_type: BOOKSHOP @@ -326,14 +299,14 @@ classes: has_or_had_range: has_or_had_symbol: $$ has_or_had_description: Mid-range pricing - accepts_or_accepted: + accept: - method_type: CASH - method_type: CREDIT_CARD - method_type: DEBIT_CARD opening_hours: Mo-Fr 09:30-18:00, Sa 09:30-17:00, Su 11:00-17:00 refers_to_custodian: https://nde.nl/ontology/hc/gb-british-library - value: - has_or_had_identifier: https://nde.nl/ontology/hc/gift-shop/vermeer-exhibition-popup + identified_by: https://nde.nl/ontology/hc/gift-shop/vermeer-exhibition-popup has_or_had_label: label_text: Vermeer Exhibition Pop-up Shop shop_type: POP_UP diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GivenName.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GivenName.yaml index 58fa1fd545..e3911e6ac9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GivenName.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GivenName.yaml @@ -8,13 +8,15 @@ prefixes: schema: http://schema.org/ foaf: http://xmlns.com/foaf/0.1/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: GivenName: - class_uri: foaf:givenName + class_uri: hc:GivenName + close_mappings: + - foaf:givenName slots: - has_or_had_label - has_or_had_description diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GoogleMapsEnrichment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GoogleMapsEnrichment.yaml index c53b1c7000..47453ec300 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GoogleMapsEnrichment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GoogleMapsEnrichment.yaml @@ -13,21 +13,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ./AddressComponent -- ./AdmissionInfo -- ./Coordinates -- ./GooglePhoto -- ./GoogleReview -- ./LlmVerification -- ./OpeningHours -- ./PhotoMetadata -- ./PlaceFeature -- ./RejectedGoogleMapsData -- ./RelatedPlace -- ./ReviewBreakdown -- ./ReviewsSummary -default_range: string + - linkml:types +# default_range: string classes: GoogleMapsEnrichment: class_uri: prov:Entity diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GoogleMapsPlaywrightEnrichment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GoogleMapsPlaywrightEnrichment.yaml index c0cf074336..f9c622f0da 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GoogleMapsPlaywrightEnrichment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GoogleMapsPlaywrightEnrichment.yaml @@ -8,14 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ./GoogleReview -- ./OpeningHours -- ./PhotoMetadata -- ./RelatedPlace -- ./ReviewBreakdown -- ./ReviewTopics -default_range: string + - linkml:types +# default_range: string classes: GoogleMapsPlaywrightEnrichment: description: "Google Maps data extracted via Playwright browser automation including\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GooglePhoto.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GooglePhoto.yaml index 667f510ef0..ac9a9a5920 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GooglePhoto.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GooglePhoto.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: GooglePhoto: description: "Photo metadata from Google Places API including reference string,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GoogleReview.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GoogleReview.yaml index d04a855332..4b783465d7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GoogleReview.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GoogleReview.yaml @@ -13,14 +13,14 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../slots/has_or_had_author_name -- ../slots/has_or_had_url -- ../slots/has_or_had_rating -- ../slots/has_or_had_description -- ../slots/has_or_had_text -- ../slots/has_or_had_publication_date -default_range: string + - linkml:types + - ../slots/has_or_had_author_name + - ../slots/has_or_had_url + - ../slots/has_or_had_rating + - ../slots/has_or_had_description + - ../slots/has_or_had_text + - ../slots/has_or_had_publication_date +# default_range: string classes: GoogleReview: description: "Google Maps review for a heritage institution. Contains author information, rating (1-5 stars), review text, and publication timestamp. Used for crowd-sourced quality assessment data.\nOntology mapping rationale: - class_uri is schema:Review which is the standard Schema.org\n type for user reviews and ratings\n- close_mappings includes schema:UserReview (specific review subtype) - related_mappings includes prov:Entity (review as traceable data)\n and schema:Rating (the numeric rating component)" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GovernanceAuthority.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GovernanceAuthority.yaml index 1a2d277fde..790b215ffe 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GovernanceAuthority.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GovernanceAuthority.yaml @@ -13,7 +13,7 @@ classes: class_uri: org:Organization description: The authority that exercises governance over the entity or institution. slots: - - has_or_had_identifier + - identified_by - has_or_had_name - has_or_had_description annotations: @@ -21,7 +21,7 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_name \ No newline at end of file + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_name diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GovernanceRole.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GovernanceRole.yaml index 5d61357f8f..e2eef97c63 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GovernanceRole.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GovernanceRole.yaml @@ -9,16 +9,16 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: GovernanceRole: class_uri: org:Role description: A role within a governance structure (e.g., Voting Member, Observer). slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GovernanceStructure.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GovernanceStructure.yaml index 7b9be37f24..0cb0697f8d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GovernanceStructure.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GovernanceStructure.yaml @@ -9,10 +9,10 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_type + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_type classes: GovernanceStructure: class_uri: org:OrganizationalUnit @@ -20,7 +20,7 @@ classes: slots: - has_or_had_description - has_or_had_type - - has_or_had_identifier + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GoverningBody.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GoverningBody.yaml index 45c07275c1..ccaf0b95d1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GoverningBody.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GoverningBody.yaml @@ -9,9 +9,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_name + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_name classes: GoverningBody: class_uri: org:Organization @@ -20,7 +20,7 @@ classes: - rico:CorporateBody description: The organisation or body that established and governs this agenda or entity. slots: - - has_or_had_identifier + - identified_by - has_or_had_name annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GovernmentArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GovernmentArchive.yaml index 949c03cebc..f8a2260c66 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GovernmentArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GovernmentArchive.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./GovernmentArchiveRecordSetType -- ./GovernmentArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: GovernmentArchive: description: Official archive of a government. Government archives preserve records created or received by governmental bodies in the course of their activities. They document the functions, policies, decisions, and operations of the state at various levels (national, regional, local). Government archives are typically public institutions with legal mandates to preserve and provide access to official records. @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q119712417 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GovernmentArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GovernmentArchiveRecordSetType.yaml index 465f9335fb..65700874f3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GovernmentArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GovernmentArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: GovernmentArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by GovernmentArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GovernmentArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GovernmentArchiveRecordSetTypes.yaml index e410b073ae..a8f558bc29 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GovernmentArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GovernmentArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./GovernmentArchive -- ./GovernmentArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./GovernmentArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: AgencyAdministrativeFonds: is_a: GovernmentArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Government agency operational records.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept PolicyDocumentCollection: is_a: GovernmentArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Government policy documentation.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by GovernmentArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept PublicServiceRecordSeries: is_a: GovernmentArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Public service delivery records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by GovernmentArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GovernmentHierarchy.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GovernmentHierarchy.yaml index 6221319ed7..11c8b782b1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GovernmentHierarchy.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GovernmentHierarchy.yaml @@ -8,10 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_tier -- ./AdministrativeLevel + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_tier classes: GovernmentHierarchy: class_uri: org:OrganizationalUnit diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GrantRange.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GrantRange.yaml index 0bd65300b9..c9f7dcfc7a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GrantRange.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GrantRange.yaml @@ -7,12 +7,10 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ schema: http://schema.org/ imports: -- linkml:types -- ../enums/MeasureUnitEnum -- ../slots/maximal_of_maximal -- ../slots/minimal_of_minimal -- ./MeasureUnit -- ./Quantity + - linkml:types + - ../enums/MeasureUnitEnum + - ../slots/maximal_of_maximal + - ../slots/minimal_of_minimal default_prefix: hc classes: GrantRange: @@ -43,11 +41,11 @@ classes: slot_usage: minimal_of_minimal: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type required: false maximal_of_maximal: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type required: false comments: - Created from slot_fixes.yaml migration (2026-01-14) diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Group.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Group.yaml index f62462b378..24a7e05c8f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Group.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Group.yaml @@ -8,7 +8,7 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types + - linkml:types classes: Group: class_uri: org:OrganizationalUnit diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/GrowthRate.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/GrowthRate.yaml index 6a26a0d808..6022097d23 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/GrowthRate.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/GrowthRate.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description default_prefix: hc classes: GrowthRate: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HALCAdm1Code.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HALCAdm1Code.yaml index c192b94b63..91ee63de7b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HALCAdm1Code.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HALCAdm1Code.yaml @@ -9,10 +9,11 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types + - linkml:types classes: HALCAdm1Code: is_a: Identifier + class_uri: skos:Concept description: HALC administrative level 1 code. annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HALCAdm2Name.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HALCAdm2Name.yaml index bb166681c2..013fb5cdfd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HALCAdm2Name.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HALCAdm2Name.yaml @@ -7,9 +7,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: HALCAdm2Name: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HCID.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HCID.yaml index 7aa4fe8d5f..32d278c9f3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HCID.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HCID.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: HCID: class_uri: schema:PropertyValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HCPresetURI.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HCPresetURI.yaml index ecaef24812..8e97a0e974 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HCPresetURI.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HCPresetURI.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: HCPresetURI: class_uri: schema:URL diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HTMLFile.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HTMLFile.yaml index 7afc518eb1..203191bf38 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HTMLFile.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HTMLFile.yaml @@ -13,10 +13,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_file_location -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_file_location + - ../slots/has_or_had_label classes: HTMLFile: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HTTPMethod.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HTTPMethod.yaml index 20e452091e..83a5ffd70f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HTTPMethod.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HTTPMethod.yaml @@ -5,9 +5,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_type -- ./HTTPMethodType + - linkml:types + - ../slots/has_or_had_type classes: HTTPMethod: description: Represents an HTTP request method supported by a heritage institution's API or web service. Common methods @@ -17,7 +16,7 @@ classes: - has_or_had_type slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HTTPMethodType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HTTPMethodType.yaml index c76459f1a1..5f95201bf9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HTTPMethodType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HTTPMethodType.yaml @@ -5,17 +5,17 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: HTTPMethodType: description: Abstract base class for HTTP method type taxonomy. Classifies HTTP request methods (GET, POST, PUT, DELETE, PATCH, etc.) used by heritage institution APIs and web services. class_uri: skos:Concept abstract: true slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HTTPMethodTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HTTPMethodTypes.yaml index 78cc6b434b..ed5ac0e155 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HTTPMethodTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HTTPMethodTypes.yaml @@ -4,8 +4,8 @@ prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ imports: -- linkml:types -- ./HTTPMethodType + - ./HTTPMethodType + - linkml:types classes: GETMethod: is_a: HTTPMethodType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HTTPStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HTTPStatus.yaml index 464979ad1c..fbd4464c5b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HTTPStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HTTPStatus.yaml @@ -13,10 +13,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_value classes: HTTPStatus: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HTTPStatusCode.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HTTPStatusCode.yaml index 63f62adcf6..17b59ee397 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HTTPStatusCode.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HTTPStatusCode.yaml @@ -13,9 +13,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_value classes: HTTPStatusCode: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Habitat.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Habitat.yaml index dcad03200e..d402486781 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Habitat.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Habitat.yaml @@ -8,13 +8,15 @@ prefixes: dwc: http://rs.tdwg.org/dwc/terms/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: Habitat: - class_uri: dwc:habitat + class_uri: hc:Habitat + close_mappings: + - dwc:habitat slots: - has_or_had_label - has_or_had_description diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HandsOnFacility.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HandsOnFacility.yaml index 49e131be6f..262951380c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HandsOnFacility.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HandsOnFacility.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: HandsOnFacility: class_uri: schema:AmenityFeature diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Hazard.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Hazard.yaml index 4a78d226d4..f294b3a2d2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Hazard.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Hazard.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: Hazard: class_uri: schema:Text diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Heading.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Heading.yaml index ef3657890d..c564227c71 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Heading.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Heading.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: Heading: class_uri: schema:Text diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HeadingLevel.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HeadingLevel.yaml index 69d56cdfc1..937c75ce51 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HeadingLevel.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HeadingLevel.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: HeadingLevel: class_uri: schema:Integer diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Heritage.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Heritage.yaml index dea87f842d..61f1f727b9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Heritage.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Heritage.yaml @@ -10,9 +10,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: Heritage: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageCustodianPlace.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageCustodianPlace.yaml index 512489e842..222e43581a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageCustodianPlace.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageCustodianPlace.yaml @@ -14,7 +14,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types + - linkml:types classes: HeritageCustodianPlace: class_uri: schema:Place diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageExperienceEntry.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageExperienceEntry.yaml index 18310f507c..24817d628f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageExperienceEntry.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageExperienceEntry.yaml @@ -8,33 +8,22 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# org: http://www.w3.org/ns/org# - dcterms: http://purl.org/dc/terms/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# imports: -- linkml:types -default_range: string + - linkml:types [] +# default_range: string classes: HeritageExperienceEntry: - description: "Heritage sector specific work experience entry. Contains job title,\ - \ company, relevance assessment, heritage institution type code (A/L/M/etc.),\ - \ and demonstrated skills. Used for assessing person profiles' heritage sector\ - \ relevance.\nOntology mapping rationale: - class_uri is org:Membership because\ - \ heritage experience represents\n a person's membership/role within heritage\ - \ organizations\n- close_mappings includes schema:OrganizationRole for web semantics\n\ - \ compatibility with role-based employment modeling\n- related_mappings includes\ - \ prov:Entity (experience as traceable\n data) and schema:Occupation (the occupation/role\ - \ held)" + is_a: Entity + description: "Heritage sector specific work experience entry." class_uri: org:Membership close_mappings: - - schema:OrganizationRole + - schema:OrganizationRole related_mappings: - - prov:Entity - - schema:Occupation + - prov:Entity + - schema:Occupation annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration - custodian_types: '[''*'']' + custodian_types: '["*"]' slots: - - heritage_type + - has_heritage_type diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageForm.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageForm.yaml index 24fff8c3cf..e8d2d930cd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageForm.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageForm.yaml @@ -8,9 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: HeritageForm: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageObject.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageObject.yaml index 615cc9e886..6fde1673e4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageObject.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageObject.yaml @@ -10,28 +10,22 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../metadata -- ../slots/current_keeper -- ../slots/current_location -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/object_description -- ../slots/object_id -- ../slots/object_name -- ../slots/specificity_annotation -- ./CustodianPlace -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/current_keeper + - ../slots/current_location + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/object_description + - ../slots/object_id + - ../slots/object_name default_prefix: hc classes: HeritageObject: class_uri: crm:E18_Physical_Thing abstract: true description: "Abstract base class for all physical heritage objects that may be stored,\nexhibited, or managed by heritage custodians.\n\n**CIDOC-CRM Alignment**:\n\nMaps to `crm:E18_Physical_Thing` - \"All persistent physical items with a \nrelatively stable form, human-made or natural.\"\n\n**Class Hierarchy**:\n\n```\nHeritageObject (crm:E18_Physical_Thing) - THIS CLASS (abstract)\n \u2502\n \u251C\u2500\u2500 ExhibitedObject (crm:E22_Human-Made_Object)\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500 BiologicalObject (crm:E20_Biological_Object)\n \u2502\n \u2514\u2500\u2500 (future: ArchivalObject, DigitalObject, etc.)\n```\n\n**Purpose**:\n\nHeritageObject serves as:\n1. Common parent for all heritage object types\n2. Typed range for storage relationships (e.g., stores_or_stored slot)\n3. Base for polymorphic queries across object types\n\n**Core Slots Defined**:\n\nAll heritage objects inherit these fundamental properties:\n- `object_id` - Unique identifier\ - \ (required)\n- `object_name` - Human-readable name (required)\n- `object_description` - Descriptive text\n- `current_keeper` - Institution currently holding the object\n- `current_location` - Physical location\n- `has_or_had_identifier` - External identifiers (Wikidata, etc.)\n\n**Usage**:\n\nDo NOT instantiate HeritageObject directly (it is abstract).\nUse concrete subclasses:\n- `ExhibitedObject` for museum objects, artworks, artifacts\n- `BiologicalObject` for natural history specimens\n\n**Example Use Case**:\n\nA StorageUnit.stores_or_stored slot can reference any HeritageObject:\n```yaml\nstores_or_stored:\n - https://nde.nl/ontology/hc/object/painting-001 # ExhibitedObject\n - https://nde.nl/ontology/hc/object/specimen-042 # BiologicalObject\n```\n" + \ (required)\n- `object_name` - Human-readable name (required)\n- `object_description` - Descriptive text\n- `current_keeper` - Institution currently holding the object\n- `current_location` - Physical location\n- `identified_by` - External identifiers (Wikidata, etc.)\n\n**Usage**:\n\nDo NOT instantiate HeritageObject directly (it is abstract).\nUse concrete subclasses:\n- `ExhibitedObject` for museum objects, artworks, artifacts\n- `BiologicalObject` for natural history specimens\n\n**Example Use Case**:\n\nA StorageUnit.stores_or_stored slot can reference any HeritageObject:\n```yaml\nstores_or_stored:\n - https://nde.nl/ontology/hc/object/painting-001 # ExhibitedObject\n - https://nde.nl/ontology/hc/object/specimen-042 # BiologicalObject\n```\n" exact_mappings: - crm:E18_Physical_Thing close_mappings: @@ -47,30 +41,29 @@ classes: - object_description - current_keeper - current_location - - has_or_had_identifier - - specificity_annotation + - identified_by - has_or_had_score slot_usage: object_id: identifier: true required: true - range: uriorcurie +# range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/object/rijksmuseum-night-watch - value: https://nde.nl/ontology/hc/object/naturalis-dodo-001 object_name: required: true - range: string +# range: string examples: - value: The Night Watch - value: Oxford Dodo - value: Rosetta Stone object_description: required: false - range: string +# range: string current_keeper: required: false - range: uriorcurie +# range: string # uriorcurie inlined: false examples: - value: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum @@ -83,9 +76,9 @@ classes: - value: place_name: Gallery 15 country: NL - has_or_had_identifier: + identified_by: required: false - range: uriorcurie +# range: string # uriorcurie multivalued: true comments: - HeritageObject is ABSTRACT - do not instantiate directly diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HeritagePractice.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HeritagePractice.yaml index cd57e1e3de..9302a52c39 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HeritagePractice.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HeritagePractice.yaml @@ -13,9 +13,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: HeritagePractice: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageRelevanceAssessment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageRelevanceAssessment.yaml index 0acf405086..93a848dd2a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageRelevanceAssessment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageRelevanceAssessment.yaml @@ -8,21 +8,14 @@ prefixes: schema: http://schema.org/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../enums/HeritageTypeEnum -- ../metadata -- ../slots/has_or_had_note -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./Heritage -- ./HeritageRelevanceScore -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -default_range: string + - linkml:types + - ../enums/HeritageTypeEnum + - ../metadata + - ../slots/has_or_had_note + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to +# default_range: string classes: HeritageRelevanceAssessment: class_uri: hc:HeritageRelevanceAssessment @@ -62,7 +55,6 @@ classes: - has_or_had_type - is_or_was_related_to - has_or_had_note - - specificity_annotation slot_usage: is_or_was_related_to: range: Heritage @@ -83,7 +75,7 @@ classes: - E has_or_had_score: range: float - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_value: 0.85 @@ -92,7 +84,7 @@ classes: has_or_had_value: 0.55 has_or_had_description: Low confidence - intern position has_or_had_note: - range: string +# range: string required: true examples: - value: Education sector professional at government education inspectorate diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageRelevanceScore.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageRelevanceScore.yaml index ee44930542..0338b50722 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageRelevanceScore.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageRelevanceScore.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_value classes: HeritageRelevanceScore: class_uri: schema:Rating diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageScore.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageScore.yaml index 29e0215dcd..4e6d57aaca 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageScore.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageScore.yaml @@ -7,9 +7,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_score + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_score default_prefix: hc classes: HeritageScore: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageSector.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageSector.yaml index 5de9d1b5b0..2f1867cf7a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageSector.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageSector.yaml @@ -14,9 +14,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: HeritageSector: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml index 1678997b66..48ca529750 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml @@ -28,29 +28,17 @@ see_also: - https://www.wikidata.org/wiki/Q2077377 - https://www.wikidata.org/wiki/Q15755503 imports: -- linkml:types -- ../enums/HeritageSocietyTypeEnum -- ../slots/has_or_had_activity -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_published_at -- ../slots/membership_size -- ../slots/society_focus -- ../slots/specificity_annotation -- ./Activity -- ./ActivityType -- ./ActivityTypes -- ./CollectionScope -- ./CustodianType -- ./Program -- ./PublicationEvent -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - ../classes/AgentType + - linkml:types + - ../enums/HeritageSocietyTypeEnum + - ../slots/has_or_had_activity + - ../slots/has_or_had_hyponym + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_published_at + - ../slots/membership_size + - ../slots/society_focus prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# @@ -217,7 +205,6 @@ classes: - has_or_had_type - has_or_had_activity - has_or_had_scope - - specificity_annotation - has_or_had_score - society_focus - membership_size @@ -225,16 +212,17 @@ classes: slot_usage: has_or_had_type: equals_expression: '["hc:HeritageSocietyType"]' - range: Program - inlined: true +# range: string # uriorcurie + # range: Program + inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: null has_or_had_activity: - range: string +# range: string multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - has_activity_identifier: https://nde.nl/ontology/hc/activity/oud-leiden-lectures-2025 @@ -252,10 +240,11 @@ classes: begin_of_the_begin: '2025-05-15' end_of_the_end: '2025-05-15' has_or_had_scope: - range: CollectionScope +# range: string # uriorcurie + # range: CollectionScope multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - scope_description: 5,000 photographs of Leiden 1850-2000; 200 linear meters diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageStatus.yaml index 4a2b4e3df8..e52e709df3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageStatus.yaml @@ -9,10 +9,10 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: HeritageStatus: class_uri: skos:Concept @@ -20,7 +20,7 @@ classes: slots: - has_or_had_label - has_or_had_description - - has_or_had_identifier + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageType.yaml index 731ac4b4b1..5c04d78591 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageType.yaml @@ -15,10 +15,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: HeritageType: class_uri: skos:Concept @@ -26,7 +26,7 @@ classes: slots: - has_or_had_label - has_or_had_description - - has_or_had_identifier + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageTypeCode.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageTypeCode.yaml index d4a3e64d10..b9ae852615 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageTypeCode.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageTypeCode.yaml @@ -9,9 +9,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: HeritageTypeCode: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageTypeCount.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageTypeCount.yaml index e30f44b768..877e1ed2e9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HeritageTypeCount.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HeritageTypeCount.yaml @@ -7,17 +7,10 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_type_code -- ../slots/specificity_annotation -- ./HeritageTypeCode -- ./Quantity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_type_code default_prefix: hc classes: HeritageTypeCount: @@ -26,7 +19,6 @@ classes: slots: - has_or_had_type_code - has_or_had_quantity - - specificity_annotation - has_or_had_score slot_usage: has_or_had_type_code: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml index ad51fa8017..39de13a2ee 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml @@ -2,44 +2,25 @@ id: https://nde.nl/ontology/hc/class/historic-building name: historic_building_class title: HistoricBuilding Class imports: -- linkml:types -- ../classes/Architect -- ../classes/ArchitecturalStyle -- ../enums/FeatureTypeEnum -- ../slots/construction_date -- ../slots/construction_date_precision -- ../slots/current_use -- ../slots/has_or_had_area -- ../slots/has_or_had_condition -- ../slots/has_or_had_label -- ../slots/has_or_had_opening_hour -- ../slots/has_or_had_score -- ../slots/has_or_had_status -- ../slots/has_or_had_style -- ../slots/has_or_had_type -- ../slots/is_open_to_public -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_designed_by -- ../slots/is_or_was_generated_by -- ../slots/is_part_of_complex -- ../slots/monument_number -- ../slots/specificity_annotation -- ./Area -- ./Condition -- ./CustodianObservation -- ./FeatureType -- ./FeatureTypes -- ./HeritageStatus -- ./Label -- ./OpeningHour -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./Architect -- ./ArchitecturalStyle + - linkml:types + - ../enums/FeatureTypeEnum + - ../slots/construction_date + - ../slots/construction_date_precision + - ../slots/current_use + - ../slots/has_or_had_area + - ../slots/has_or_had_condition + - ../slots/has_or_had_label + - ../slots/has_or_had_opening_hour + - ../slots/has_or_had_score + - ../slots/has_or_had_status + - ../slots/has_or_had_style + - ../slots/has_or_had_type + - ../slots/is_open_to_public + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_designed_by + - ../slots/is_or_was_generated_by + - ../slots/is_part_of_complex + - ../slots/monument_number prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -82,7 +63,6 @@ classes: - is_open_to_public - is_part_of_complex - monument_number - - specificity_annotation - has_or_had_score - has_or_had_opening_hour - is_or_was_derived_from @@ -98,13 +78,13 @@ classes: - value: CASTLE - value: MANOR_HOUSE construction_date: - range: string +# range: string examples: - value: '1650' - value: ca. 1465 - value: 15th century construction_date_precision: - range: string +# range: string examples: - value: EXACT - value: APPROXIMATE @@ -135,7 +115,7 @@ classes: - value: has_or_had_label: Gemeentelijk monument monument_number: - range: string +# range: string examples: - value: '521814' is_open_to_public: @@ -190,7 +170,7 @@ classes: measurement_method: Historical records has_or_had_label: Total floor area current_use: - range: string +# range: string examples: - value: Museum and events - value: Administrative offices diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HistoricalArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HistoricalArchive.yaml index b19de49cf6..317c40140e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HistoricalArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HistoricalArchive.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./HistoricalArchiveRecordSetType -- ./HistoricalArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: HistoricalArchive: description: "Historical archive (archivo hist\xF3rico, archive historique). An archive that specifically focuses on preserving records of historical value, typically older materials that have passed beyond active administrative use. Historical archives may be independent institutions or divisions within larger archival systems. They emphasize long-term preservation and scholarly access to historical documentation." @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q3621673 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HistoricalArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HistoricalArchiveRecordSetType.yaml index e0de068476..9c8acaa9a4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HistoricalArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HistoricalArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: HistoricalArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by HistoricalArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HistoricalArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HistoricalArchiveRecordSetTypes.yaml index 7340b6e32f..ce44e74ade 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HistoricalArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HistoricalArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./HistoricalArchive -- ./HistoricalArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./HistoricalArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: HistoricalDocumentFonds: is_a: HistoricalArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Historical documents.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept HistoricalManuscriptCollection: is_a: HistoricalArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Historical manuscripts.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by HistoricalArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HistoricalRegion.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HistoricalRegion.yaml index d5846b3f49..f5f6e2cf7c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HistoricalRegion.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HistoricalRegion.yaml @@ -11,16 +11,13 @@ prefixes: gn: http://www.geonames.org/ontology# rdfs: http://www.w3.org/2000/01/rdf-schema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ../slots/is_or_was_located_in -- ../slots/temporal_extent -- ./Identifier -- ./TimeSpan -- ./HistoricalRegion + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_type + - ../slots/is_or_was_located_in + - ../slots/temporal_extent default_prefix: hc classes: HistoricalRegion: @@ -36,21 +33,21 @@ classes: - has_or_had_type - temporal_extent - is_or_was_located_in - - has_or_had_identifier + - identified_by - has_or_had_description slot_usage: has_or_had_label: - range: string +# range: string required: true examples: - value: Duchy of Brabant - value: Prussia has_or_had_type: - range: string +# range: string temporal_extent: range: TimeSpan is_or_was_located_in: - range: string +# range: string annotations: specificity_score: 0.3 specificity_rationale: Specialized geographic concept for historical archives. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HolySacredSiteType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HolySacredSiteType.yaml index fcbbbfaeba..2d75345027 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HolySacredSiteType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HolySacredSiteType.yaml @@ -12,27 +12,17 @@ description: 'Specialized CustodianType for religious institutions and sacred si ' imports: -- linkml:types -- ../enums/HolySiteTypeEnum -- ../slots/has_or_had_content -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_policy -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_managed_by -- ../slots/religious_function -- ../slots/religious_tradition -- ../slots/secularization_status -- ../slots/specificity_annotation -- ./CollectionContent -- ./CollectionContentType -- ./CollectionContentTypes -- ./CustodianType -- ./HolySiteType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/HolySiteTypeEnum + - ../slots/has_or_had_content + - ../slots/has_or_had_hyponym + - ../slots/has_or_had_policy + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_managed_by + - ../slots/religious_function + - ../slots/religious_tradition + - ../slots/secularization_status prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -244,22 +234,22 @@ classes: - religious_function - religious_tradition - secularization_status - - specificity_annotation - is_or_was_managed_by - has_or_had_score slot_usage: religious_tradition: - range: string +# range: string required: true examples: - value: Roman Catholic Christianity - value: Sunni Islam, Hanafi school - value: Theravada Buddhism has_or_had_content: - range: CollectionContent +# range: string # uriorcurie + # range: CollectionContent multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type required: true examples: - value: @@ -275,28 +265,28 @@ classes: - type_label: Library - type_label: Art religious_function: - range: string +# range: string required: true examples: - value: Papal governance, Church history, Canon law - value: Clergy education, Liturgical support - value: Community genealogy, Ritual preparation has_or_had_policy: - range: string +# range: string required: true examples: - value: Restricted, Scholars by appointment, No browsing - value: Public viewing hours, No photography, Guided tours - value: Digitized online, Physical access by permission is_or_was_managed_by: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: Prefect of Vatican Archive, Papal authority - value: Parish priest, Volunteer committee - value: Monastic community, Brother librarian secularization_status: - range: string +# range: string required: true examples: - value: Active religious institution, No secularization @@ -305,7 +295,8 @@ classes: has_or_had_type: equals_expression: '["hc:HolySacredSiteType"]' has_or_had_hyponym: - range: HolySiteType +# range: string # uriorcurie + # range: HolySiteType examples: - value: has_or_had_label: Church diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HolySiteType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HolySiteType.yaml index 50b3ab413f..d8eb34b90e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HolySiteType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HolySiteType.yaml @@ -8,33 +8,32 @@ prefixes: schema: http://schema.org/ wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/is_or_was_equivalent_to -- ./WikiDataIdentifier + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/is_or_was_equivalent_to default_prefix: hc classes: HolySiteType: class_uri: skos:Concept description: "Classification of a holy or sacred site type (e.g., Church, Mosque, Synagogue).\n\n**MIGRATED** from holy_site_subtype slot (2026-01-28) per Rule 53.\n\n**Purpose**:\nProvides structured classification for religious heritage sites beyond the top-level 'H' code.\nLinks to Wikidata entities for semantic grounding.\n" - exact_mappings: + broad_mappings: - skos:Concept slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - is_or_was_equivalent_to slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true examples: - value: hc:HolySiteType/CHURCH - value: hc:HolySiteType/MOSQUE has_or_had_label: - range: string +# range: string required: true examples: - value: Church diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HospitalArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HospitalArchive.yaml index 76991c1445..c1593bbb29 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HospitalArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HospitalArchive.yaml @@ -15,22 +15,12 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./HospitalArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: HospitalArchive: description: "Hospital archive (Krankenhausarchiv, archivo hospitalario, archives hospitali\xE8res). Archives that preserve records created by hospitals and healthcare institutions. These may include administrative records, patient records (subject to privacy regulations), medical research documentation, photographs, and institutional histories. Hospital archives are valuable for medical history, genealogy, and understanding the evolution of healthcare practices." @@ -46,11 +36,10 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null hold_or_held_record_set_type: equals_expression: '["hc:HospitalAdministrationFonds", "hc:PatientRecordsSeries", "hc:MedicalResearchCollection", "hc:NursingRecordsCollection", "hc:MedicalPhotographyCollection"] diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HospitalArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HospitalArchiveRecordSetType.yaml index 6ff9e1b753..c44df29379 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HospitalArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HospitalArchiveRecordSetType.yaml @@ -8,14 +8,11 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to classes: HospitalArchiveRecordSetType: abstract: true @@ -33,7 +30,6 @@ classes: - MedicalPhotographyCollection slots: - has_or_had_type - - specificity_annotation - has_or_had_score slot_usage: has_or_had_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HospitalArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HospitalArchiveRecordSetTypes.yaml index f37d20e6c6..bf25fdad74 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HospitalArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HospitalArchiveRecordSetTypes.yaml @@ -11,24 +11,18 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/preservation_note -- ../slots/privacy_note -- ../slots/record_note -- ../slots/record_set_type -- ../slots/scope_exclude -- ../slots/scope_include -- ../slots/specificity_annotation -- ./HospitalArchive -- ./HospitalArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./HospitalArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/preservation_note + - ../slots/privacy_note + - ../slots/record_note + - ../slots/record_set_type + - ../slots/scope_exclude + - ../slots/scope_include classes: HospitalAdministrationFonds: is_a: HospitalArchiveRecordSetType @@ -136,11 +130,10 @@ classes: - healthcare management - financial records - personnel administration - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds - broad_mappings: - wd:Q1643722 - rico:RecordSetType - skos:Concept @@ -161,7 +154,6 @@ classes: custodian_types: '[''*'']' slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -304,11 +296,10 @@ classes: - birth registers - death registers - medical history - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series - broad_mappings: - wd:Q185583 - rico:RecordSetType - skos:Concept @@ -326,7 +317,6 @@ classes: for genealogical research. Birth/death registers particularly valuable. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -482,11 +472,10 @@ classes: - clinical research - laboratory notebooks - research protocols - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q9388534 - rico:RecordSetType - skos:Concept @@ -507,7 +496,6 @@ classes: apply. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -646,11 +634,10 @@ classes: - nursing administration - nurse training - nursing profession - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q9388534 - rico:RecordSetType - skos:Concept @@ -667,7 +654,6 @@ classes: schools until the late 20th century. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -747,11 +733,10 @@ classes: - pathological specimens - teaching slides - medical imaging history - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q1260006 - rico:RecordSetType - skos:Concept @@ -769,7 +754,6 @@ classes: museums. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HouseArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HouseArchive.yaml index 8b191d614d..ecf42bf2a1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HouseArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HouseArchive.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./HouseArchiveRecordSetType -- ./HouseArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: HouseArchive: description: Archive containing documents and letters that concern a family. House archives (Familienarchive) preserve records documenting the history, activities, and relationships of a family over generations. They typically include correspondence, legal documents, financial records, photographs, and personal papers. Often associated with noble or prominent families, but may also document ordinary families. @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q4344572 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HouseArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HouseArchiveRecordSetType.yaml index 2493830322..af4b15e768 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HouseArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HouseArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: HouseArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by HouseArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HouseArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HouseArchiveRecordSetTypes.yaml index b49ea23ebe..4f0bef8296 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HouseArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HouseArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./HouseArchive -- ./HouseArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./HouseArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: HouseRecordsFonds: is_a: HouseArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Historic house records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept FamilyPapersCollection: is_a: HouseArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Family papers.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by HouseArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept EstateDocumentSeries: is_a: HouseArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Estate management records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by HouseArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HouseNumber.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HouseNumber.yaml index c22109885b..1dff59d19a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HouseNumber.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HouseNumber.yaml @@ -13,9 +13,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_value classes: HouseNumber: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Humidity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Humidity.yaml index 80638032e0..11e7310184 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Humidity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Humidity.yaml @@ -8,12 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_tolerance -- ./HumidityTolerance -- ./MaximumHumidity -- ./MinimumHumidity -- ./TargetHumidity + - linkml:types + - ../slots/has_or_had_tolerance classes: Humidity: class_uri: schema:StructuredValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HumidityTolerance.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HumidityTolerance.yaml index e8c5d624e2..9ffe8db7c1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HumidityTolerance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/HumidityTolerance.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_unit -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_unit + - ../slots/has_or_had_value classes: HumidityTolerance: class_uri: schema:QuantitativeValue @@ -23,7 +23,7 @@ classes: range: float required: true has_or_had_unit: - range: string +# range: string ifabsent: string(%) annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Hypernym.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Hypernym.yaml index b653556d24..e8854d70a9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Hypernym.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Hypernym.yaml @@ -14,11 +14,11 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -default_range: string + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label +# default_range: string default_prefix: hc classes: Hypernym: @@ -44,13 +44,13 @@ classes: **ONTOLOGY MAPPING**: - class_uri: skos:Concept (as hypernym IS a concept) - exact_mappings: skos:broader target concept' class_uri: skos:Concept - exact_mappings: + broad_mappings: - skos:Concept close_mappings: - rdfs:Class - owl:Class slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Hyponym.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Hyponym.yaml index f6710bf691..dbe02dff54 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Hyponym.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Hyponym.yaml @@ -8,8 +8,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: Hyponym: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Hypothesis.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Hypothesis.yaml index 359589cc03..0293128069 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Hypothesis.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Hypothesis.yaml @@ -8,12 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# schema: http://schema.org/ imports: -- linkml:types -- ../slots/is_or_was_generated_by -- ./ConfidenceMethod -- ./ConfidenceScore -- ./GenerationEvent -default_range: string + - linkml:types + - ../slots/is_or_was_generated_by +# default_range: string classes: Hypothesis: description: 'A hypothesis or working assertion about uncertain or ambiguous data. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ICHDomain.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ICHDomain.yaml index 0bd7094af7..41cc83a1aa 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ICHDomain.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ICHDomain.yaml @@ -15,8 +15,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: ICHDomain: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ICHSafeguarding.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ICHSafeguarding.yaml index 9604f2db31..efc29e049f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ICHSafeguarding.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ICHSafeguarding.yaml @@ -8,10 +8,10 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_objective -- ../slots/has_or_had_type + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_objective + - ../slots/has_or_had_type classes: ICHSafeguarding: class_uri: schema:Action diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ICHSafeguardingType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ICHSafeguardingType.yaml index e0cd5a9305..599b1ec663 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ICHSafeguardingType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ICHSafeguardingType.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: ICHSafeguardingType: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ID.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ID.yaml index 26c1659cd1..7b6bf04856 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ID.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ID.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: ID: class_uri: schema:PropertyValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IIIF.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IIIF.yaml index 3f5ac28bce..13cda0b370 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IIIF.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IIIF.yaml @@ -8,8 +8,8 @@ prefixes: dcterms: http://purl.org/dc/terms/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: IIIF: class_uri: dcterms:Standard diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IIPImageServer.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IIPImageServer.yaml index d8ae017133..85a88ea0da 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IIPImageServer.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IIPImageServer.yaml @@ -10,18 +10,11 @@ prefixes: iiif: http://iiif.io/api/image/3# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/IIIFComplianceLevelEnum -- ../enums/ImageProtocolEnum -- ../metadata -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./DataServiceEndpoint -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./Image + - linkml:types + - ../enums/IIIFComplianceLevelEnum + - ../enums/ImageProtocolEnum + - ../metadata + - ../slots/has_or_had_score classes: IIPImageServer: is_a: DataServiceEndpoint @@ -57,7 +50,6 @@ classes: - https://iipimage.sourceforge.io/ - https://github.com/loris-imageserver/loris slots: - - specificity_annotation - has_or_had_score annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ISO639-3Identifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ISO639-3Identifier.yaml index dba8831bf5..c639012f9e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ISO639-3Identifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ISO639-3Identifier.yaml @@ -5,11 +5,13 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_code + - linkml:types + - ../slots/has_or_had_code classes: ISO639-3Identifier: - class_uri: schema:identifier + class_uri: hc:ISO639-3Identifier + close_mappings: + - schema:identifier description: ISO 639-3 three-letter language code slots: - has_or_had_code diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IconographicArchives.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IconographicArchives.yaml index d8242e3c37..82c96279cc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IconographicArchives.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IconographicArchives.yaml @@ -15,23 +15,12 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./IconographicArchivesRecordSetType -- ./IconographicArchivesRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: IconographicArchives: description: Archives containing predominantly pictorial materials. Iconographic archives specialize in collecting and preserving images including prints, drawings, photographs, posters, and other visual materials. They serve as important resources for art historical research, visual culture studies, and iconographic analysis. @@ -40,9 +29,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q117810712 close_mappings: @@ -51,7 +39,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IconographicArchivesRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IconographicArchivesRecordSetType.yaml index 43e939fff0..b0c0c46ce0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IconographicArchivesRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IconographicArchivesRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: IconographicArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by IconographicArchives custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IconographicArchivesRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IconographicArchivesRecordSetTypes.yaml index d01bf0cbd1..0aa84b9af6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IconographicArchivesRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IconographicArchivesRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./IconographicArchives -- ./IconographicArchivesRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./IconographicArchivesRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: VisualImageCollection: is_a: IconographicArchivesRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Iconographic materials.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept PrintCollection: is_a: IconographicArchivesRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Prints and engravings.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by IconographicArchives custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Iconography.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Iconography.yaml index 76ce059304..fe1c2e31df 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Iconography.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Iconography.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: Iconography: class_uri: schema:DefinedTerm diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IdentificationEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IdentificationEvent.yaml index 4d271dbddb..2700c15696 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IdentificationEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IdentificationEvent.yaml @@ -15,13 +15,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_score -- ../slots/temporal_extent -- ./Agent -- ./ConfidenceScore -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_score + - ../slots/temporal_extent classes: IdentificationEvent: class_uri: hc:IdentificationEvent diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Identifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Identifier.yaml index 461c3d2807..586f3fdf7a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Identifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Identifier.yaml @@ -12,39 +12,20 @@ prefixes: adms: http://www.w3.org/ns/adms# prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../classes/AllocationEvent -- ../classes/TimeSpan -- ../metadata -- ../slots/has_or_had_canonical_form -- ../slots/has_or_had_format -- ../slots/has_or_had_scheme -- ../slots/has_or_had_score -- ../slots/has_or_had_standard -- ../slots/has_or_had_type -- ../slots/has_or_had_value -- ../slots/identifies_or_identified -- ../slots/is_or_was_allocated_by -- ../slots/is_or_was_allocated_through -- ../slots/source -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./AllocationAgency -- ./CanonicalForm -- ./Custodian -- ./CustodianName -- ./IdentifierFormat -- ./IdentifierScheme -- ./IdentifierType -- ./IdentifierTypes -- ./IdentifierValue -- ./Label -- ./SpecificityAnnotation -- ./Standard -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./AllocationEvent + - linkml:types + - ../metadata + - ../slots/has_or_had_canonical_form + - ../slots/has_or_had_format + - ../slots/has_or_had_scheme + - ../slots/has_or_had_score + - ../slots/has_or_had_standard + - ../slots/has_or_had_type + - ../slots/has_or_had_value + - ../slots/identifies_or_identified + - ../slots/is_or_was_allocated_by + - ../slots/is_or_was_allocated_through + - ../slots/source + - ../slots/temporal_extent default_prefix: hc classes: # Generic Identifier class - base for all identifier types @@ -63,8 +44,8 @@ classes: - value → identifier_value exact_mappings: - schema:PropertyValue - - dcterms:identifier close_mappings: + - dcterms:identifier - adms:Identifier - skos:notation slots: @@ -162,7 +143,7 @@ classes: begin_of_the_begin: "2023-01-01" # MIGRATED 2026-01-24: defined_by_standard → has_or_had_standard + Standard (Rule 53) has_or_had_standard: - range: string +# range: string required: false multivalued: false inlined: false diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierFormat.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierFormat.yaml index 401ca67df4..d710faec5d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierFormat.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierFormat.yaml @@ -1,21 +1,24 @@ id: https://nde.nl/ontology/hc/class/IdentifierFormat name: IdentifierFormat title: IdentifierFormat -description: Format of an identifier (e.g. UUID, DOI). +description: "A specific format variant for an identifier standard.\n\nMany identifier standards allow multiple display formats. This class\ncaptures the variations and which is canonical for storage.\n\n**Examples:**\n\n- **ISNI formats:**\n - \"0000 0000 0000 0000\" (display format with spaces)\n - \"0000000000000000\" (compact/canonical for storage)\n - \"http://isni.org/isni/0000000000000000\" (URI format)\n\n- **ISIL formats:**\n - \"NL-AmUvA\" (full format with country prefix)\n - \"AmUvA\" (local part only)\n\n- **Wikidata formats:**\n - \"Q12345\" (short form)\n - \"http://www.wikidata.org/entity/Q12345\" (full URI)\n\n**Usage:**\n\nWhen storing identifiers, use the canonical format (canonical: true).\nWhen displaying, choose the appropriate format for the context." prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_score classes: IdentifierFormat: - class_uri: skos:Concept - description: Identifier format. + class_uri: schema:PropertyValue + description: Identifier format variant. slots: - has_or_had_label + - has_or_had_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierLookupScore.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierLookupScore.yaml index 6a982d09d0..9c25aff849 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierLookupScore.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierLookupScore.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: IdentifierLookupScore: class_uri: schema:Rating diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierScheme.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierScheme.yaml index 4e0dc60ae5..44154545fb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierScheme.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierScheme.yaml @@ -8,8 +8,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: IdentifierScheme: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierType.yaml index 62049e10be..bab1c901b9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierType.yaml @@ -9,11 +9,11 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: IdentifierType: class_uri: adms:Identifier @@ -30,15 +30,15 @@ classes: - has_or_had_description slot_usage: has_or_had_code: - range: string +# range: string required: true identifier: true pattern: ^[A-Z][A-Z0-9_]*$ has_or_had_label: - range: string +# range: string required: true has_or_had_description: - range: string +# range: string required: false comments: - Abstract base class - use concrete subclasses from IdentifierTypes.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierTypes.yaml index 7f1cc3866e..c8058ee6cf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierTypes.yaml @@ -2,15 +2,16 @@ id: https://nde.nl/ontology/hc/class/IdentifierTypes name: IdentifierTypes title: Identifier Types (Concrete Subclasses) prefixes: + rov: http://www.w3.org/ns/regorg# linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_code -- ../slots/has_or_had_label -- ./IdentifierType + - ./IdentifierType + - linkml:types + - ../metadata + - ../slots/has_or_had_code + - ../slots/has_or_had_label classes: ISILIdentifier: is_a: IdentifierType @@ -21,7 +22,7 @@ classes: has_or_had_code: equals_string: ISIL has_or_had_label: - range: string +# range: string equals_string: ISIL Code annotations: specificity_score: 0.1 @@ -39,7 +40,7 @@ classes: has_or_had_code: equals_string: VIAF has_or_had_label: - range: string +# range: string equals_string: VIAF ID exact_mappings: - adms:Identifier @@ -53,7 +54,7 @@ classes: has_or_had_code: equals_string: ISNI has_or_had_label: - range: string +# range: string equals_string: ISNI exact_mappings: - adms:Identifier @@ -67,7 +68,7 @@ classes: has_or_had_code: equals_string: ROR has_or_had_label: - range: string +# range: string equals_string: ROR ID exact_mappings: - adms:Identifier @@ -81,7 +82,7 @@ classes: has_or_had_code: equals_string: ORCID has_or_had_label: - range: string +# range: string equals_string: ORCID exact_mappings: - adms:Identifier @@ -95,7 +96,7 @@ classes: has_or_had_code: equals_string: WIKIDATA has_or_had_label: - range: string +# range: string equals_string: Wikidata ID exact_mappings: - adms:Identifier @@ -109,7 +110,7 @@ classes: has_or_had_code: equals_string: GND has_or_had_label: - range: string +# range: string equals_string: GND ID exact_mappings: - adms:Identifier @@ -123,7 +124,7 @@ classes: has_or_had_code: equals_string: ULAN has_or_had_label: - range: string +# range: string equals_string: ULAN ID exact_mappings: - adms:Identifier @@ -137,7 +138,7 @@ classes: has_or_had_code: equals_string: AAT has_or_had_label: - range: string +# range: string equals_string: AAT ID exact_mappings: - adms:Identifier @@ -151,7 +152,7 @@ classes: has_or_had_code: equals_string: TGN has_or_had_label: - range: string +# range: string equals_string: TGN ID exact_mappings: - adms:Identifier @@ -165,10 +166,11 @@ classes: has_or_had_code: equals_string: KVK has_or_had_label: - range: string +# range: string equals_string: KvK Number exact_mappings: - adms:Identifier + close_mappings: - rov:registration broad_mappings: - skos:Concept @@ -180,7 +182,7 @@ classes: has_or_had_code: equals_string: LEI has_or_had_label: - range: string +# range: string equals_string: LEI exact_mappings: - adms:Identifier @@ -194,7 +196,7 @@ classes: has_or_had_code: equals_string: VAT has_or_had_label: - range: string +# range: string equals_string: VAT Number exact_mappings: - adms:Identifier @@ -208,7 +210,7 @@ classes: has_or_had_code: equals_string: ISBN has_or_had_label: - range: string +# range: string equals_string: ISBN exact_mappings: - adms:Identifier @@ -223,7 +225,7 @@ classes: has_or_had_code: equals_string: ISSN has_or_had_label: - range: string +# range: string equals_string: ISSN exact_mappings: - adms:Identifier @@ -238,7 +240,7 @@ classes: has_or_had_code: equals_string: DOI has_or_had_label: - range: string +# range: string equals_string: DOI exact_mappings: - adms:Identifier @@ -253,7 +255,7 @@ classes: has_or_had_code: equals_string: OCLC has_or_had_label: - range: string +# range: string equals_string: OCLC Number exact_mappings: - adms:Identifier @@ -269,7 +271,7 @@ classes: has_or_had_code: equals_string: CATALOG_RAISONNE has_or_had_label: - range: string +# range: string equals_string: "Catalogue Raisonn\xE9 Number" exact_mappings: - adms:Identifier @@ -283,7 +285,7 @@ classes: has_or_had_code: equals_string: INVENTORY_NUMBER has_or_had_label: - range: string +# range: string equals_string: Inventory Number exact_mappings: - adms:Identifier @@ -297,7 +299,7 @@ classes: has_or_had_code: equals_string: ACCESSION_NUMBER has_or_had_label: - range: string +# range: string equals_string: Accession Number exact_mappings: - adms:Identifier @@ -311,7 +313,7 @@ classes: has_or_had_code: equals_string: FINDING_AID_ID has_or_had_label: - range: string +# range: string equals_string: Finding Aid ID exact_mappings: - adms:Identifier @@ -325,7 +327,7 @@ classes: has_or_had_code: equals_string: FONDS_NUMBER has_or_had_label: - range: string +# range: string equals_string: Fonds Number exact_mappings: - adms:Identifier @@ -339,7 +341,7 @@ classes: has_or_had_code: equals_string: EAD_ID has_or_had_label: - range: string +# range: string equals_string: EAD ID exact_mappings: - adms:Identifier @@ -353,7 +355,7 @@ classes: has_or_had_code: equals_string: LOCAL_COLLECTION has_or_had_label: - range: string +# range: string equals_string: Local Collection ID exact_mappings: - adms:Identifier @@ -367,7 +369,7 @@ classes: has_or_had_code: equals_string: INTERNAL_CODE has_or_had_label: - range: string +# range: string equals_string: Internal Code exact_mappings: - adms:Identifier @@ -381,7 +383,7 @@ classes: has_or_had_code: equals_string: URI has_or_had_label: - range: string +# range: string equals_string: URI exact_mappings: - adms:Identifier @@ -395,7 +397,7 @@ classes: has_or_had_code: equals_string: URL has_or_had_label: - range: string +# range: string equals_string: URL exact_mappings: - adms:Identifier diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierValue.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierValue.yaml index 0b216c23e0..4034597e41 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierValue.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IdentifierValue.yaml @@ -15,8 +15,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: IdentifierValue: class_uri: schema:PropertyValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Illustration.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Illustration.yaml index abaad5226f..9d95b9df35 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Illustration.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Illustration.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_image + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_image classes: Illustration: class_uri: schema:ImageObject diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Image.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Image.yaml index a828d8d0d7..2a33f6e9d2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Image.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Image.yaml @@ -8,11 +8,9 @@ prefixes: foaf: http://xmlns.com/foaf/0.1/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_url -- ./Label -- ./URL + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_url default_prefix: hc classes: Image: @@ -36,11 +34,11 @@ classes: has_or_had_url: range: uri required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type has_or_had_label: - range: string +# range: string required: false - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_url: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ImagingEquipment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ImagingEquipment.yaml deleted file mode 100644 index a01354aa0f..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ImagingEquipment.yaml +++ /dev/null @@ -1,22 +0,0 @@ -id: https://nde.nl/ontology/hc/class/ImagingEquipment -name: ImagingEquipment -title: ImagingEquipment -description: Equipment used for imaging (digitization, photography, etc.). -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ -default_prefix: hc -imports: -- linkml:types -- ../slots/has_or_had_name -classes: - ImagingEquipment: - class_uri: schema:Product - description: Imaging equipment. - slots: - - has_or_had_name - annotations: - specificity_score: 0.1 - specificity_rationale: Generic utility class/slot created during migration - custodian_types: "['*']" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ImpactMeasurement.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ImpactMeasurement.yaml index d652b95004..820493510d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ImpactMeasurement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ImpactMeasurement.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_unit -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_unit + - ../slots/has_or_had_value classes: ImpactMeasurement: class_uri: schema:QuantitativeValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Index.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Index.yaml index 5bd8628a01..1d1ba881fc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Index.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Index.yaml @@ -8,11 +8,10 @@ prefixes: dcterms: http://purl.org/dc/terms/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ./IndexType + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: Index: class_uri: hc:Index @@ -26,14 +25,13 @@ classes: Thematic groupings **HERITAGE CONTEXT**: Indices in exhibition catalogs, collection guides, archival finding aids, and other heritage publications. ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_label: multivalued: true - inlined_as_list: true annotations: specificity_score: 0.55 specificity_rationale: 'Indices are moderately specific - used in publications, @@ -44,7 +42,7 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_identifier: hc:index/exhibition-catalog-2024-toc + identified_by: hc:index/exhibition-catalog-2024-toc has_or_had_label: - Table of Contents@en - Inhoudsopgave@nl @@ -52,7 +50,7 @@ classes: - entry_label: 'Chapter 1: Origins' - entry_label: 1.1 Early Collections - value: - has_or_had_identifier: hc:index/catalog-subject-index + identified_by: hc:index/catalog-subject-index has_or_had_label: - Subject Index@en - entry_label: Art, Dutch Golden Age @@ -77,4 +75,3 @@ slots: reference, and optional hierarchy level. ' range: IndexEntry multivalued: true - inlined_as_list: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IndexNumber.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IndexNumber.yaml index 478d7f6d8b..37eacf4d10 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IndexNumber.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IndexNumber.yaml @@ -15,8 +15,7 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ./Identifier + - linkml:types default_prefix: hc classes: IndexNumber: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IndexType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IndexType.yaml index da29b3faaa..6f585133ce 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IndexType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IndexType.yaml @@ -7,10 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: IndexType: class_uri: skos:Concept @@ -43,11 +43,11 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true has_or_had_label: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IndexTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IndexTypes.yaml index 2293756b7d..388e5085e6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IndexTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IndexTypes.yaml @@ -7,8 +7,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ./IndexType + - ./IndexType + - linkml:types classes: TableOfContents: is_a: IndexType @@ -25,7 +25,7 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_identifier: hc:index-type/table-of-contents + identified_by: hc:index-type/table-of-contents has_or_had_label: - Table of Contents@en - Inhoudsopgave@nl @@ -44,7 +44,7 @@ classes: ' examples: - value: - has_or_had_identifier: hc:index-type/subject-index + identified_by: hc:index-type/subject-index has_or_had_label: - Subject Index@en - Zakenregister@nl @@ -61,7 +61,7 @@ classes: ' examples: - value: - has_or_had_identifier: hc:index-type/name-index + identified_by: hc:index-type/name-index has_or_had_label: - Name Index@en - Index of Artists@en @@ -79,7 +79,7 @@ classes: ' examples: - value: - has_or_had_identifier: hc:index-type/chronological-index + identified_by: hc:index-type/chronological-index has_or_had_label: - Chronological Index@en - Timeline@en @@ -97,7 +97,7 @@ classes: ' examples: - value: - has_or_had_identifier: hc:index-type/topical-index + identified_by: hc:index-type/topical-index has_or_had_label: - Topical Index@en - Thematic Guide@en @@ -114,7 +114,7 @@ classes: ' examples: - value: - has_or_had_identifier: hc:index-type/glossary + identified_by: hc:index-type/glossary has_or_had_label: - Glossary@en - Verklarende woordenlijst@nl @@ -131,7 +131,7 @@ classes: ' examples: - value: - has_or_had_identifier: hc:index-type/plate-index + identified_by: hc:index-type/plate-index has_or_had_label: - List of Plates@en - List of Illustrations@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/InformationCarrier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/InformationCarrier.yaml index 2316becb06..29794c2a25 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/InformationCarrier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/InformationCarrier.yaml @@ -13,77 +13,42 @@ prefixes: aat: http://vocab.getty.edu/aat/ rda: http://rdaregistry.info/termList/ imports: -- linkml:types -- ../classes/Agent -- ../classes/Annotation -- ../classes/ArchivalReference -- ../classes/ArrangementLevel -- ../classes/ArrangementLevelTypes -- ../classes/Identifier -- ../enums/CarrierTypeEnum -- ../metadata -- ../slots/contains_or_contained -- ../slots/copy_note -- ../slots/copy_number -- ../slots/cover_material -- ../slots/has_or_had_carrier -- ../slots/has_or_had_content -- ../slots/has_or_had_description -- ../slots/has_or_had_direction -- ../slots/has_or_had_direction # was: text_direction -- ../slots/has_or_had_edition -- ../slots/has_or_had_extent_text -- ../slots/has_or_had_fond -- ../slots/has_or_had_identifier -- ../slots/has_or_had_index_number # was: file_number -- ../slots/has_or_had_label # was: title_proper -- ../slots/has_or_had_label # was: uniform_title -- ../slots/has_or_had_language -- ../slots/has_or_had_level -- ../slots/has_or_had_policy -- ../slots/has_or_had_provenance -- ../slots/has_or_had_quantity # was: folio_count -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_series -- ../slots/has_or_had_summary -- ../slots/has_or_had_time_interval -- ../slots/has_or_had_type -- ../slots/has_or_had_writing_system -- ../slots/includes_or_included -- ../slots/is_or_was_created_by -- ../slots/is_or_was_published -- ../slots/is_or_was_triggered_by -- ../slots/isbn -- ../slots/shelf_mark -- ../slots/specificity_annotation -- ./AccessPolicy -- ./AccessTriggerEvent -- ./BindingType -- ./Bookplate -- ./Carrier -- ./CarrierType -- ./CarrierTypes -- ./Content -- ./ContentType -- ./ContentTypes -- ./CustodianPlace -- ./DOI -- ./Edition -- ./Identifier # for has_or_had_identifier range -- ./IndexNumber # for has_or_had_index_number range -- ./Publication -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TextDirection -- ./TimeInterval -- ./TimeSpan -- ./WritingSystem -- ./Annotation -- ./ArrangementLevel -- ./Language -- ./Quantity + - linkml:types + - ../enums/CarrierTypeEnum + - ../metadata + - ../slots/contains_or_contained + - ../slots/copy_note + - ../slots/copy_number + - ../slots/cover_material + - ../slots/has_or_had_carrier + - ../slots/has_or_had_content + - ../slots/has_or_had_description + - ../slots/has_or_had_direction + - ../slots/has_or_had_direction # was: text_direction + - ../slots/has_or_had_edition + - ../slots/has_or_had_extent_text + - ../slots/has_or_had_fond + - ../slots/identified_by + - ../slots/has_or_had_index_number # was: file_number + - ../slots/has_or_had_label # was: title_proper + - ../slots/has_or_had_label # was: uniform_title + - ../slots/has_or_had_language + - ../slots/has_or_had_level + - ../slots/has_or_had_policy + - ../slots/has_or_had_provenance + - ../slots/has_or_had_quantity # was: folio_count + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_series + - ../slots/has_or_had_summary + - ../slots/has_or_had_time_interval + - ../slots/has_or_had_type + - ../slots/has_or_had_writing_system + - ../slots/includes_or_included + - ../slots/is_or_was_created_by + - ../slots/is_or_was_published + - ../slots/is_or_was_triggered_by + - ../slots/isbn + - ../slots/shelf_mark default_prefix: hc classes: InformationCarrier: @@ -125,14 +90,14 @@ classes: slots: # has_annotation_by REMOVED - migrated to is_or_was_created_by (Rule 53) - is_or_was_created_by - - has_or_had_identifier # was: archival_reference - migrated per Rule 53 (2026-01-27) + - identified_by # was: archival_reference - migrated per Rule 53 (2026-01-27) - has_or_had_description - has_or_had_provenance - has_or_had_type # bookplate REMOVED - migrated to includes_or_included (Rule 53) - includes_or_included - # REMOVED 2026-01-17: call_number - migrated to has_or_had_identifier (Rule 53) - # - has_or_had_identifier # ALREADY LISTED ABOVE + # REMOVED 2026-01-17: call_number - migrated to identified_by (Rule 53) + # - identified_by # ALREADY LISTED ABOVE # REMOVED 2026-01-23: carrier_type - migrated to has_or_had_carrier (Rule 53/F24) - has_or_had_carrier # REMOVED 2026-01-23: carries_information - migrated to has_or_had_content (Rule 53/F25) @@ -145,7 +110,7 @@ classes: # - has_or_had_type - DUPLICATE REMOVED # REMOVED 2026-01-24: date_of_publication - migrated to is_or_was_published (Rule 53) - is_or_was_published - # - has_or_had_identifier # ALREADY LISTED ABOVE + # - identified_by # ALREADY LISTED ABOVE # MIGRATED 2026-01-25: duration → has_or_had_time_interval (Rule 53) - has_or_had_time_interval - has_or_had_edition @@ -168,7 +133,6 @@ classes: # - script_type - has_or_had_series - shelf_mark - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - has_or_had_direction # was: text_direction - migrated per Rule 53/56 (2026-01-16) - has_or_had_label # was: title_proper @@ -217,14 +181,14 @@ classes: # - value: 324 has_or_had_quantity: # was: folio_count - migrated per Rule 53 (2026-01-26) range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: has_or_had_unit: has_or_had_extent_text: required: false - range: string +# range: string multivalued: true examples: - value: 'xii, 324 p., [8] p. of plates : ill. ; 24 cm' @@ -247,13 +211,13 @@ classes: - value: LimpVellumBinding has_or_had_description: required: false - range: string +# range: string examples: - value: "Contemporary blind-stamped pigskin over wooden boards, with brass clasps and corner pieces. Spine with five raised bands." - value: "Rebound in the 18th century in red morocco with gold tooling." cover_material: required: false - range: string +# range: string examples: - value: Leather (calf) - value: Cloth (buckram) @@ -367,13 +331,13 @@ classes: has_or_had_label: "2nd Edition" copy_number: required: false - range: string +# range: string examples: - value: Copy 45 of 500 - value: No. 12/100 copy_note: required: false - range: string +# range: string multivalued: true examples: - value: Lacking title page @@ -385,7 +349,7 @@ classes: # examples: # - value: Extensive marginal annotations in 16th-century hand contains_or_contained: - range: string +# range: string examples: - value: has_or_had_description: "Partially illegible note in margin" @@ -408,7 +372,7 @@ classes: # - value: British Museum stamp on verso of title page has_or_had_provenance: required: false - range: string +# range: string examples: - value: Bound for presentation to Elizabeth I, royal arms in gold # isbn: @@ -425,19 +389,19 @@ classes: # examples: # - value: 0028-0836 # description: Nature - # doi migrated to has_or_had_identifier with DOI class (Rule 53, 2026-01-26) + # doi migrated to identified_by with DOI class (Rule 53, 2026-01-26) # oclc_number: # required: false # range: string # examples: # - value: '12345678' - # REMOVED 2026-01-17: call_number - migrated to has_or_had_identifier (Rule 53) - # Old call_number slot_usage preserved below in has_or_had_identifier - has_or_had_identifier: + # REMOVED 2026-01-17: call_number - migrated to identified_by (Rule 53) + # Old call_number slot_usage preserved below in identified_by + identified_by: required: false - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: - value: @@ -448,12 +412,12 @@ classes: has_or_had_label: Archival Reference shelf_mark: required: false - range: string +# range: string examples: - value: MS. Royal 1.A.XVIII - value: Add. MS 43725 - # MIGRATED 2026-01-27: archival_reference → has_or_had_identifier (Rule 53) - # Old archival_reference slot usage merged into has_or_had_identifier + # MIGRATED 2026-01-27: archival_reference → identified_by (Rule 53) + # Old archival_reference slot usage merged into identified_by # archival_reference: # required: false # range: string @@ -462,13 +426,13 @@ classes: # description: Dutch National Archives reference has_or_had_fond: required: false - range: string +# range: string examples: - value: VOC Archives - value: Roosevelt Papers has_or_had_series: required: false - range: string +# range: string examples: - value: Correspondence, 1933-1945 has_or_had_index_number: # was: file_number - migrated per Rule 53 (2026-01-26) @@ -492,8 +456,8 @@ classes: # REMOVED 2026-01-23: carries_information - migrated to has_or_had_content (Rule 53/F25) has_or_had_content: required: false - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_label: Vulgate Latin Bible @@ -530,7 +494,7 @@ classes: # - value: The Holy Bible (English parallel title) has_or_had_summary: required: false - range: string +# range: string examples: - value: "The Gutenberg Bible is the first substantial book printed \nwith movable metal type. Contains the complete\ \ Latin Vulgate \ntext of the Old and New Testaments.\n" @@ -587,9 +551,9 @@ classes: has_or_had_label: Religious Content title_proper: Biblia Latina uniform_title: Bible. Latin. Vulgate. 1455 - # MIGRATED 2026-01-17: call_number → has_or_had_identifier (Rule 53) + # MIGRATED 2026-01-17: call_number → identified_by (Rule 53) # Merged with existing wikidata_id migration (2026-01-15) - has_or_had_identifier: + identified_by: - identifier_value: "Inc. 1" - identifier_value: "Q178401" copy_note: @@ -628,8 +592,8 @@ classes: uniform_title: Bible. Greek shelf_mark: Add. MS 43725 current_keeper: https://nde.nl/ontology/hc/custodian/uk/british-library - # MIGRATED 2026-01-15: wikidata_id → has_or_had_identifier (Rule 53) - has_or_had_identifier: + # MIGRATED 2026-01-15: wikidata_id → identified_by (Rule 53) + identified_by: - qid: "Q151610" - value: object_id: https://nde.nl/ontology/hc/object/nara-declaration-independence @@ -653,11 +617,11 @@ classes: - temporal_extent: begin_of_the_begin: "1776-08-02" end_of_the_end: "1776-08-02" - has_or_had_identifier: + identified_by: - identifier_value: NARA 1419 has_or_had_type: has_or_had_label: Archival Reference - # MIGRATED 2026-01-15: wikidata_id → has_or_had_identifier (Rule 53) + # MIGRATED 2026-01-15: wikidata_id → identified_by (Rule 53) - qid: "Q127885" fonds: Records of the Continental and Confederation Congresses has_or_had_level: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Institution.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Institution.yaml index 1acf324d47..21673f2161 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Institution.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Institution.yaml @@ -7,17 +7,11 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_level -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_level classes: Institution: description: Structure or mechanism of social order and cooperation governing the behaviour of a set of individuals within a given community. In the heritage context, this represents formal organizations established to fulfill specific societal functions related to cultural heritage, education, or public service. This is a broad category that encompasses many specific institution types. @@ -31,11 +25,10 @@ classes: custodian_types: "['*']" slots: - has_or_had_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: has_or_had_type: equals_expression: '["*"]' organizational_level: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalArchive.yaml index e5d4867fa9..beea9e21c6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalArchive.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./InstitutionalArchiveRecordSetType -- ./InstitutionalArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: InstitutionalArchive: description: Repository that holds records created or received by its parent institution. Institutional archives serve their creating organization by preserving records that document institutional history, operations, governance, and achievements. They differ from collecting archives in that their primary mandate is to preserve their parent organization's records rather than to acquire materials from external sources. @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q124762372 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalArchiveRecordSetType.yaml index e50cbb938b..ee756b9318 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: InstitutionalArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by InstitutionalArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalArchiveRecordSetTypes.yaml index 7b8e524fa6..72a6c76a87 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./InstitutionalArchive -- ./InstitutionalArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./InstitutionalArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: InstitutionAdministrationFonds: is_a: InstitutionalArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Institutional administrative records.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept OperationalRecordSeries: is_a: InstitutionalArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Operational documentation.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by InstitutionalArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalFunction.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalFunction.yaml index 71a941f6de..f08c8dd7a4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalFunction.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalFunction.yaml @@ -8,12 +8,10 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ./FunctionType -- ./FunctionTypes + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type default_prefix: hc classes: InstitutionalFunction: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalRepository.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalRepository.yaml index a449f267b8..4ef5d4119e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalRepository.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/InstitutionalRepository.yaml @@ -7,18 +7,11 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/platform_type_id -- ../slots/specificity_annotation -- ./DigitalPlatformType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/platform_type_id classes: InstitutionalRepository: description: Archive of publications by an institution's staff. Institutional repositories (IRs) collect, preserve, and provide open access to the scholarly output of an institution, typically a university or research organization. They include publications, theses, datasets, and other research outputs. IRs are usually digital platforms that support open access principles. @@ -28,11 +21,10 @@ classes: - DigitalPlatformType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: platform_type_id: identifier: false has_or_had_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IntangibleHeritageEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IntangibleHeritageEvent.yaml index f4f3e01b79..7fe7da4518 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IntangibleHeritageEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IntangibleHeritageEvent.yaml @@ -2,38 +2,24 @@ id: https://nde.nl/ontology/hc/class/IntangibleHeritageEvent name: intangible_heritage_event_class title: IntangibleHeritageEvent Class imports: -- linkml:types -- ../enums/EventStatusEnum -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_documentation -- ../slots/has_or_had_edition -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/has_or_had_status -- ../slots/has_or_had_type -- ../slots/has_or_had_url -- ../slots/instance_of -- ../slots/is_or_was_cancelled_by -- ../slots/is_or_was_located_in -- ../slots/organized_by -- ../slots/participant_count -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./Cancellation -- ./Custodian -- ./CustodianPlace -- ./Edition -- ./IntangibleHeritageForm -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./WikiDataIdentifier -- ./IntangibleHeritageEvent -- ./Venue + - linkml:types + - ../enums/EventStatusEnum + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_documentation + - ../slots/has_or_had_edition + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/has_or_had_status + - ../slots/has_or_had_type + - ../slots/has_or_had_url + - ../slots/instance_of + - ../slots/is_or_was_cancelled_by + - ../slots/is_or_was_located_in + - ../slots/organized_by + - ../slots/participant_count + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -62,7 +48,7 @@ classes: - is_or_was_cancelled_by - temporal_extent - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_status - has_or_had_url @@ -71,19 +57,18 @@ classes: - instance_of - organized_by - participant_count - - specificity_annotation - has_or_had_score slot_usage: has_or_had_label: required: true - range: string +# range: string examples: - value: Pride Amsterdam 2024 - value: Carnaval Maastricht 2025 - value: 1 aprilviering Brielle 2024 has_or_had_description: required: false - range: string +# range: string examples: - value: "Pride Amsterdam 2024 celebrated \"Proud of Every Body\" with 80 \nboats in the Canal Parade, attracting over 500,000 spectators.\n" instance_of: @@ -98,7 +83,7 @@ classes: multivalued: true examples: - value: - has_or_had_identifier: '29' + identified_by: '29' has_or_had_label: 29th Edition temporal_extent: required: false @@ -152,7 +137,7 @@ classes: multivalued: true examples: - value: https://www.youtube.com/watch?v=pride2024 - has_or_had_identifier: + identified_by: required: false range: WikiDataIdentifier multivalued: true @@ -173,33 +158,33 @@ classes: - https://cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E7 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/heritage-event/pride-amsterdam-2024 + identified_by: https://nde.nl/ontology/hc/heritage-event/pride-amsterdam-2024 has_or_had_label: Pride Amsterdam 2024 has_or_had_description: 'The 29th edition of Pride Amsterdam with theme "Proud of Every Body". Featured 80 boats in the Canal Parade with over 500,000 spectators. ' instance_of: https://nde.nl/ontology/hc/heritage-form/pride-amsterdam has_or_had_edition: - - has_or_had_identifier: '29' + - identified_by: '29' temporal_extent: begin_of_the_begin: '2024-08-03' end_of_the_end: '2024-08-10' is_or_was_located_in: - has_or_had_label: Amsterdam Canal Ring organized_by: - - has_or_had_identifier: https://nde.nl/ontology/hc/custodian/nl/amsterdam-gay-pride + - identified_by: https://nde.nl/ontology/hc/custodian/nl/amsterdam-gay-pride participant_count: 5000 has_or_had_status: COMPLETED has_or_had_url: https://pride.amsterdam/2024 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/heritage-event/pride-amsterdam-2020 + identified_by: https://nde.nl/ontology/hc/heritage-event/pride-amsterdam-2020 has_or_had_label: Pride Amsterdam 2020 has_or_had_description: 'Cancelled due to COVID-19 pandemic restrictions. Virtual Pride Week organized as alternative online celebration. ' instance_of: https://nde.nl/ontology/hc/heritage-form/pride-amsterdam has_or_had_edition: - - has_or_had_identifier: '25' + - identified_by: '25' temporal_extent: begin_of_the_begin: '2020-08-01' end_of_the_end: '2020-08-08' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IntangibleHeritageForm.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IntangibleHeritageForm.yaml index 23eb9aed3d..82b55bc3af 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IntangibleHeritageForm.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IntangibleHeritageForm.yaml @@ -2,44 +2,28 @@ id: https://nde.nl/ontology/hc/class/IntangibleHeritageForm name: intangible_heritage_form_class title: IntangibleHeritageForm Class imports: -- linkml:types -- ../enums/UNESCOICHDomainEnum -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_status -- ../slots/has_or_had_type -- ../slots/has_or_had_url -- ../slots/is_or_was_categorized_as -- ../slots/is_or_was_related_to -- ../slots/is_or_was_threatened_by -- ../slots/kien_registration_date -- ../slots/kien_url -- ../slots/origin_location -- ../slots/origin_period -- ../slots/safeguarded_by -- ../slots/safeguarding_measure -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./Custodian -- ./Description -- ./HeritageForm -- ./Label -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./UNESCODomain -- ./UNESCOListStatus -- ./URL -- ./ViabilityStatus -- ./WikiDataIdentifier -- ./GeographicScope -- ./IntangibleHeritageForm + - linkml:types + - ../enums/UNESCOICHDomainEnum + - ../metadata + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_status + - ../slots/has_or_had_type + - ../slots/has_or_had_url + - ../slots/is_or_was_categorized_as + - ../slots/is_or_was_related_to + - ../slots/is_or_was_threatened_by + - ../slots/kien_registration_date + - ../slots/kien_url + - ../slots/origin_location + - ../slots/origin_period + - ../slots/safeguarded_by + - ../slots/safeguarding_measure + - ../slots/temporal_extent + - ./HeritageForm prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -69,7 +53,7 @@ classes: - has_or_had_url - has_or_had_scope - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_label - kien_registration_date - kien_url @@ -78,29 +62,25 @@ classes: - is_or_was_related_to - safeguarded_by - safeguarding_measure - - specificity_annotation - has_or_had_score - is_or_was_threatened_by - is_or_was_categorized_as - temporal_extent - has_or_had_status slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true multivalued: true - inlined: true - inlined_as_list: true any_of: - - range: uriorcurie + - range: string # uriorcurie - range: WikiDataIdentifier examples: - value: https://nde.nl/ontology/hc/heritage-form/pride-amsterdam - value: has_or_had_label: required: true - range: string - inlined: true +# range: string examples: - value: label_text: Pride Amsterdam @@ -110,17 +90,15 @@ classes: label_text: Bloemencorso Bollenstreek has_or_had_description: required: false - range: string - inlined: true +# range: string examples: - value: description_text: Pride Amsterdam is the annual LGBTQ+ celebration featuring the famous Canal Parade through the historic canals of Amsterdam. First held in 1996, it represents Dutch values of tolerance and equality. is_or_was_categorized_as: - range: UNESCODomain +# range: string # uriorcurie + # range: UNESCODomain required: true multivalued: true - inlined: true - inlined_as_list: true examples: - value: "UNESCODomain:\n has_or_had_code: SOCIAL_PRACTICES_RITUALS_FESTIVE_EVENTS\n domain_name: \"Social practices, rituals and festive events\"\n" kien_url: @@ -134,16 +112,14 @@ classes: examples: - value: '2019-04-15' has_or_had_status: - range: string +# range: string multivalued: true - inlined_as_list: true required: false examples: - value: "UNESCOListStatus:\n has_or_had_code: REPRESENTATIVE_LIST\n list_name: \"Representative List of ICH of Humanity\"\n inscription_date: \"2023-12-06\"\n" - value: "ViabilityStatus:\n has_or_had_code: THRIVING\n status_name: \"Thriving\"\n assessment_date: \"2024-12-01\"\n assessment_notes: \"Strong community practice\"\n" temporal_extent: range: TimeSpan - inlined: true required: false examples: - value: @@ -152,7 +128,7 @@ classes: - Netherlands origin_location: required: false - range: string +# range: string examples: - value: Amsterdam - value: Brielle @@ -166,12 +142,11 @@ classes: required: false range: Custodian multivalued: true - inlined: false examples: - value: https://nde.nl/ontology/hc/custodian/nl/amsterdam-gay-pride is_or_was_threatened_by: required: false - range: string +# range: string multivalued: true examples: - value: @@ -179,7 +154,7 @@ classes: - Lack of youth interest safeguarding_measure: required: false - range: string +# range: string multivalued: true examples: - value: @@ -190,7 +165,6 @@ classes: required: false range: IntangibleHeritageForm multivalued: true - inlined: false examples: - value: https://nde.nl/ontology/hc/heritage-form/carnaval-maastricht has_or_had_url: @@ -200,8 +174,8 @@ classes: examples: - value: https://www.pride.amsterdam has_or_had_scope: - range: GeographicScope - inlined: true +# range: string # uriorcurie + # range: GeographicScope examples: - value: has_or_had_label: National @@ -221,7 +195,7 @@ classes: - https://cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E28 examples: - value: - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/heritage-form/pride-amsterdam - qid: Q478546 has_or_had_label: @@ -236,7 +210,7 @@ classes: origin_period: begin_of_the_begin: '1996-01-01' safeguarded_by: - - has_or_had_identifier: https://nde.nl/ontology/hc/custodian/nl/amsterdam-gay-pride + - identified_by: https://nde.nl/ontology/hc/custodian/nl/amsterdam-gay-pride transmission_methods: Annual organization, volunteer networks, community participation has_or_had_status: - ViabilityStatus: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IntangibleHeritageGroupType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IntangibleHeritageGroupType.yaml index 4f5d83b96c..8c7d94cdf4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IntangibleHeritageGroupType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IntangibleHeritageGroupType.yaml @@ -6,24 +6,17 @@ description: 'Specialized CustodianType for organizations preserving intangible Coverage: Corresponds to ''I'' (INTANGIBLE_HERITAGE_GROUP) in GLAMORCUBESFIXPHDNT taxonomy. ' imports: -- linkml:types -- ../enums/IntangibleHeritageTypeEnum -- ../slots/cultural_context -- ../slots/has_or_had_objective -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/intangible_heritage_subtype -- ../slots/is_or_was_categorized_as -- ../slots/performance_repertoire -- ../slots/practitioner_community -- ../slots/specificity_annotation -- ../slots/transmits_or_transmitted_through -- ./CustodianType -- ./ICHSafeguarding -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/IntangibleHeritageTypeEnum + - ../slots/cultural_context + - ../slots/has_or_had_objective + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/intangible_heritage_subtype + - ../slots/is_or_was_categorized_as + - ../slots/performance_repertoire + - ../slots/practitioner_community + - ../slots/transmits_or_transmitted_through prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -184,25 +177,24 @@ classes: - intangible_heritage_subtype - performance_repertoire - practitioner_community - - specificity_annotation - has_or_had_score slot_usage: practitioner_community: - range: string +# range: string required: true examples: - value: 30 active musicians, 15 apprentices, 3 master teachers - value: 8 elder weavers, 12 mid-career, 20 learners - value: 50 storytellers, 200 community participants performance_repertoire: - range: string +# range: string required: true examples: - value: Gong Kebyar style, Ceremonial music, Contemporary works - value: Traditional Ikat patterns, Natural dye techniques - value: Annual carnival, Summer solstice, Harvest festival cultural_context: - range: string +# range: string required: true examples: - value: Temple ceremonies, Community festivals, Tourist performances diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IntangibleHeritagePerformance.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IntangibleHeritagePerformance.yaml index f5d655d889..41c551f4f4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IntangibleHeritagePerformance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IntangibleHeritagePerformance.yaml @@ -2,37 +2,26 @@ id: https://nde.nl/ontology/hc/class/IntangibleHeritagePerformance name: intangible_heritage_performance_class title: IntangibleHeritagePerformance Class imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/part_of_event -- ../slots/performance_datetime -- ../slots/performance_description -- ../slots/performance_duration -- ../slots/performance_id -- ../slots/performance_location -- ../slots/performance_name -- ../slots/performance_note -- ../slots/performance_of -- ../slots/performance_venue -- ../slots/performed_by -- ../slots/performer -- ../slots/recording_available -- ../slots/recording_url -- ../slots/repertoire -- ../slots/serves_or_served -- ../slots/specificity_annotation -- ./Custodian -- ./CustodianPlace -- ./IntangibleHeritageEvent -- ./IntangibleHeritageForm -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./UserCommunity + - linkml:types + - ../metadata + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/part_of_event + - ../slots/performance_datetime + - ../slots/performance_description + - ../slots/performance_duration + - ../slots/performance_id + - ../slots/performance_location + - ../slots/performance_name + - ../slots/performance_note + - ../slots/performance_of + - ../slots/performance_venue + - ../slots/performed_by + - ../slots/performer + - ../slots/recording_available + - ../slots/recording_url + - ../slots/repertoire + - ../slots/serves_or_served prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -73,25 +62,24 @@ classes: - recording_available - recording_url - repertoire - - specificity_annotation - has_or_had_score slot_usage: performance_id: identifier: true required: true - range: uriorcurie +# range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/heritage-performance/gamelan-festival-2024-opening performance_name: required: true - range: string +# range: string examples: - value: Gamelan Opening Concert - value: Cramignon Dance Performance - value: "Tamb\xFA Drum Circle" performance_description: required: false - range: string +# range: string examples: - value: Traditional Gamelan Gong Kebyar performance featuring 25 musicians playing ceremonial pieces from Bali. Performed at the opening of the Indonesian Heritage Festival. performance_of: @@ -113,7 +101,7 @@ classes: - value: '2024-09-15T19:00:00+02:00' performance_duration: required: false - range: string +# range: string examples: - value: PT90M - value: PT2H @@ -126,7 +114,7 @@ classes: place_specificity: BUILDING performance_venue: required: false - range: string +# range: string examples: - value: Concertgebouw, Amsterdam - value: Open Air Stage, Museumplein @@ -139,7 +127,7 @@ classes: - value: https://nde.nl/ontology/hc/custodian/nl/gamelan-gong-kebyar performer: required: false - range: string +# range: string multivalued: true examples: - value: @@ -147,7 +135,7 @@ classes: - Made Subandi (gong player) repertoire: required: false - range: string +# range: string multivalued: true examples: - value: @@ -174,7 +162,7 @@ classes: - value: https://www.youtube.com/watch?v=gamelan2024 performance_note: required: false - range: string +# range: string examples: - value: First public performance of this ensemble in the Netherlands. has_or_had_type: @@ -200,7 +188,7 @@ classes: performance_duration: PT45M performance_venue: Museumplein Stage performed_by: - - has_or_had_identifier: https://nde.nl/ontology/hc/custodian/nl/stichting-splika + - identified_by: https://nde.nl/ontology/hc/custodian/nl/stichting-splika repertoire: - "Traditional Tamb\xFA rhythms" - "Se\xFA harvest dance" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/InternetOfThings.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/InternetOfThings.yaml index d75e793d4c..5e9a54c102 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/InternetOfThings.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/InternetOfThings.yaml @@ -2,57 +2,31 @@ id: https://nde.nl/ontology/hc/class/InternetOfThings name: internet_of_things_class title: InternetOfThings Class imports: -- linkml:types -- ../classes/APIEndpoint -- ../slots/connectivity_type -- ../slots/coverage_area -- ../slots/has_or_had_endpoint -- ../slots/has_or_had_frequency -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_model -- ../slots/has_or_had_output -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_specification -- ../slots/has_or_had_unit -- ../slots/installation_date -- ../slots/installed_at_place -- ../slots/is_or_was_created_by -- ../slots/is_or_was_decommissioned_at -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/is_or_was_instantiated_by -- ../slots/maintenance_schedule -- ../slots/operational_status -- ../slots/power_source -- ../slots/refers_to_custodian -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./Custodian -- ./CustodianObservation -- ./CustodianPlace -- ./DataFormat -- ./DeviceType -- ./DeviceTypes -- ./Identifier -- ./IoTDevice -- ./Label -- ./Manufacturer -- ./Model -- ./OutputData -- ./Quantity -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Timestamp -- ./Unit -- ./UpdateFrequency -- ./APIEndpoint + - linkml:types + - ../slots/connectivity_type + - ../slots/coverage_area + - ../slots/has_or_had_endpoint + - ../slots/has_or_had_frequency + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_model + - ../slots/has_or_had_output + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_specification + - ../slots/has_or_had_unit + - ../slots/installation_date + - ../slots/installed_at_place + - ../slots/is_or_was_created_by + - ../slots/is_or_was_decommissioned_at + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/is_or_was_instantiated_by + - ../slots/maintenance_schedule + - ../slots/operational_status + - ../slots/power_source + - ../slots/refers_to_custodian + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -75,7 +49,7 @@ classes: class_uri: sosa:Platform description: "Physical device with digital connectivity used by a heritage custodian\nto enhance visitor experience, monitor conditions, or provide services.\n\n**WHY IOT CLASS?**\n\nModern heritage institutions increasingly deploy IoT devices:\n- **Beacons**: Location-based triggers for mobile apps\n- **Kiosks**: Interactive information terminals\n- **Sensors**: Environmental monitoring (climate, light, visitor counts)\n- **Displays**: Digital signage, interactive screens\n\nThese are a form of DIGITAL PRESENCE that bridges physical and digital worlds.\n\n**RELATIONSHIP TO OTHER DIGITAL PRESENCE TYPES**:\n\n```\nDigital Presence Hierarchy:\n\nDigitalPlatform (PRIMARY - websites)\n \u2502\n \u2514\u2500\u2500 AuxiliaryDigitalPlatform (SECONDARY - project sites)\n\nSocialMediaProfile (THIRD-PARTY - external platforms)\n\nInternetOfThings (PHYSICAL-DIGITAL - in-venue devices) \u2190 THIS CLASS\n```\n\n**SOSA/SSN ALIGNMENT**:\n\nW3C Semantic Sensor Network (SSN) and Sensor, Observation,\ \ Sample, \nand Actuator (SOSA) ontologies provide the semantic foundation:\n\n- `sosa:Platform` - Entity hosting sensors/systems (building, room, beacon)\n- `sosa:Sensor` - Device that observes properties\n- `sosa:Observation` - Act of observing a property\n- `ssn:System` - System comprising multiple components\n\n**USE CASES**:\n\n1. **Visitor Experience Enhancement**:\n - Bluetooth beacons trigger app content near artworks\n - NFC tags on object labels for detailed information\n - Interactive kiosks for self-guided exploration\n \n2. **Environmental Monitoring**:\n - Climate sensors (temperature, humidity) for conservation\n - Light level sensors to protect sensitive materials\n - Air quality monitoring in storage areas\n \n3. **Visitor Analytics**:\n - People counters at entrances\n - Heat maps of gallery traffic\n - Dwell time sensors near exhibits\n \n4. **Digital Signage**:\n - Rotating information displays\n - Exhibition schedules\n - Wayfinding\ - \ screens\n\n**EXAMPLE - Museum with IoT Devices**:\n\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n iot_devices:\n - device_id: \".../iot/rijksmuseum-beacon-gallery-1\"\n device_name: \"Gallery of Honour Beacon Network\"\n device_type: IOT_BEACON\n device_count: 24\n coverage_area: \"Gallery of Honour (main wing)\"\n purpose: \"Proximity triggers for mobile app content\"\n \n - device_id: \".../iot/rijksmuseum-climate-monitor\"\n device_name: \"Conservation Climate Monitoring\"\n device_type: IOT_SENSOR\n device_count: 150\n coverage_area: \"All galleries and storage\"\n purpose: \"Temperature and humidity monitoring for preservation\"\n publishes_to: \"https://dashboard.rijksmuseum.nl/climate\"\n```\n\n**TEMPORAL CONSIDERATIONS**:\n\nIoT devices have installation/decommissioning dates:\n- Beacons may be temporary for exhibitions\n- Sensors\ + \ screens\n\n**EXAMPLE - Museum with IoT Devices**:\n\n```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n iot_devices:\n - device_id: \".../iot/rijksmuseum-beacon-gallery-1\"\n device_name: \"Gallery of Honour Beacon Network\"\n device_type: IOT_BEACON\n device_count: 24\n coverage_area: \"Gallery of Honour (main wing)\"\n purpose: \"Proximity triggers for mobile app content\"\n \n - device_id: \".../iot/rijksmuseum-climate-monitor\"\n device_name: \"Conservation Climate Monitoring\"\n device_type: IOT_SENSOR\n device_count: 150\n coverage_area: \"All galleries and storage\"\n purpose: \"Temperature and humidity monitoring for preservation\"\n publishes_to: \"https://dashboard.rijksmuseum.nl/climate\"\n```\n\n**TEMPORAL CONSIDERATIONS**:\n\nIoT devices have installation/decommissioning dates:\n- Beacons may be temporary for exhibitions\n- Sensors\ \ may be upgraded/replaced\n- Kiosks may be moved between venues\n\n**NOT INCLUDED**:\n\n- Smartphones/tablets (user devices, not custodian-owned)\n- Standard IT infrastructure (servers, networking)\n- Security cameras (unless part of heritage experience)\n" exact_mappings: - sosa:Platform @@ -94,7 +68,7 @@ classes: - has_or_had_output - is_or_was_decommissioned_at - has_or_had_quantity - - has_or_had_identifier + - identified_by - is_or_was_created_by - has_or_had_model - has_or_had_label @@ -105,7 +79,6 @@ classes: - operational_status - power_source - refers_to_custodian - - specificity_annotation - has_or_had_specification - has_or_had_score - temporal_extent @@ -113,8 +86,8 @@ classes: - is_or_was_derived_from - is_or_was_generated_by slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: @@ -143,8 +116,8 @@ classes: has_or_had_type: has_or_had_label: Information Kiosk has_or_had_model: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -162,7 +135,7 @@ classes: has_or_had_label: Samsung has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -172,7 +145,7 @@ classes: - value: has_or_had_unit: coverage_area: - range: string +# range: string examples: - value: Gallery of Honour (main wing) - value: All galleries and storage areas @@ -180,17 +153,17 @@ classes: - value: Temperature and humidity monitoring for preservation - value: Self-service collection search for visitors has_or_had_specification: - range: string +# range: string examples: - value: BLE 5.0, 50m range, 5-year battery, IP67 rated connectivity_type: - range: string +# range: string multivalued: true examples: - value: BLUETOOTH_LE - value: WIFI power_source: - range: string +# range: string examples: - value: BATTERY - value: MAINS @@ -237,12 +210,12 @@ classes: - value: begin_of_the_begin: '2023-06-15' operational_status: - range: string +# range: string examples: - value: ACTIVE - value: MAINTENANCE maintenance_schedule: - range: string +# range: string examples: - value: Monthly battery check is_or_was_derived_from: @@ -270,7 +243,7 @@ classes: - https://schema.org/Thing examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/iot/rijksmuseum-beacon-gallery-honour + identified_by: https://nde.nl/ontology/hc/iot/rijksmuseum-beacon-gallery-honour has_or_had_label: has_or_had_label: Gallery of Honour Beacon Network is_or_was_instantiated_by: @@ -292,7 +265,7 @@ classes: maintenance_schedule: Monthly battery check refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/iot/rijksmuseum-climate-monitoring + identified_by: https://nde.nl/ontology/hc/iot/rijksmuseum-climate-monitoring has_or_had_label: has_or_had_label: Conservation Climate Monitoring System is_or_was_instantiated_by: @@ -325,7 +298,7 @@ classes: maintenance_schedule: Quarterly calibration refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/iot/rijksmuseum-entrance-kiosk + identified_by: https://nde.nl/ontology/hc/iot/rijksmuseum-entrance-kiosk has_or_had_label: has_or_had_label: Main Entrance Information Kiosks is_or_was_instantiated_by: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/InvalidWebClaim.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/InvalidWebClaim.yaml index 57c97000d8..0e3539930d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/InvalidWebClaim.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/InvalidWebClaim.yaml @@ -10,15 +10,12 @@ prefixes: rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# dqv: http://www.w3.org/ns/dqv# imports: -- linkml:types -- ../slots/has_or_had_provenance_path -- ../slots/has_or_had_type -- ../slots/retrieved_on -- ../slots/source_url -- ./ClaimType -- ./ClaimTypes -- ./XPath -default_range: string + - linkml:types + - ../slots/has_or_had_provenance_path + - ../slots/has_or_had_type + - ../slots/retrieved_on + - ../slots/source_url +# default_range: string classes: InvalidWebClaim: description: "A web claim that failed validation, preserving the original extracted\ @@ -43,8 +40,8 @@ classes: - has_or_had_provenance_path slot_usage: has_or_had_type: - range: uriorcurie - inlined: true +# range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type required: false annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Investment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Investment.yaml index f728d341cb..8b392e1648 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Investment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Investment.yaml @@ -12,11 +12,10 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_quantity -- ../slots/has_or_had_type -- ../slots/temporal_extent -- ./InvestmentArea + - linkml:types + - ../slots/has_or_had_quantity + - ../slots/has_or_had_type + - ../slots/temporal_extent classes: Investment: class_uri: schema:InvestmentOrDeposit @@ -29,7 +28,7 @@ classes: has_or_had_quantity: temporal_extent: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie annotations: specificity_score: '0.60' specificity_rationale: Investment tracking is moderately specific to organizational management. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/InvestmentArea.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/InvestmentArea.yaml index 864ae710b3..05bb8f9659 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/InvestmentArea.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/InvestmentArea.yaml @@ -5,10 +5,10 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: InvestmentArea: class_uri: skos:Concept @@ -18,7 +18,7 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IoTDevice.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IoTDevice.yaml index 6a4ef538e2..99e03a0370 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IoTDevice.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IoTDevice.yaml @@ -16,16 +16,16 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_label classes: IoTDevice: class_uri: sosa:Sensor description: IoT device. slots: - has_or_had_label - - has_or_had_identifier + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/IsilCodeEntry.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/IsilCodeEntry.yaml index d02f574edb..a38df075ba 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/IsilCodeEntry.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/IsilCodeEntry.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: IsilCodeEntry: description: "Structured ISIL code entry from Nationaal Archief registry containing\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Item.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Item.yaml index 854f5f5d14..b90c332e67 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Item.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Item.yaml @@ -9,12 +9,10 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ./Description -- ./Identifier + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label default_prefix: hc classes: @@ -47,18 +45,18 @@ classes: - schema:Product slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie multivalued: true has_or_had_label: - range: string +# range: string has_or_had_description: - range: string +# range: string annotations: custodian_types: '["*"]' custodian_types_rationale: "All heritage custodians may hold items." @@ -67,13 +65,13 @@ classes: examples: - value: - has_or_had_identifier: + identified_by: - identifier_scheme: ACCESSION has_or_had_label: "Girl with a Pearl Earring" has_or_had_description: description_text: "Oil on canvas by Johannes Vermeer, c. 1665" - value: - has_or_had_identifier: + identified_by: - identifier_scheme: INVENTORY has_or_had_label: "Medieval manuscript" has_or_had_description: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/JointArchives.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/JointArchives.yaml index 6f51ca61da..4aefb58bbf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/JointArchives.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/JointArchives.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./JointArchivesRecordSetType -- ./JointArchivesRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: JointArchives: description: Archive containing records of two or more entities. Joint archives are collaborative archival institutions that serve multiple organizations, often resulting from mergers, partnerships, or shared service arrangements. They may preserve records from multiple municipalities, institutions, or organizations under a unified archival program. @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q117442301 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/JointArchivesRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/JointArchivesRecordSetType.yaml index 4dca0abe6e..fc98239e0e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/JointArchivesRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/JointArchivesRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: JointArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by JointArchives custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/JointArchivesRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/JointArchivesRecordSetTypes.yaml index 7f8038a886..f4cd6f45f2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/JointArchivesRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/JointArchivesRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./JointArchives -- ./JointArchivesRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./JointArchivesRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: SharedRecordsFonds: is_a: JointArchivesRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Joint/shared records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Jurisdiction.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Jurisdiction.yaml index 4b19954325..f1f32d4d63 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Jurisdiction.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Jurisdiction.yaml @@ -8,28 +8,20 @@ prefixes: lcc_cr: https://www.omg.org/spec/LCC/Countries/CountryRepresentation/ schema: http://schema.org/ imports: -- linkml:types -- ../enums/JurisdictionTypeEnum -- ../enums/LegalSystemTypeEnum -- ../metadata -- ../slots/country -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_geographic_subdivision -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/jurisdiction_id -- ../slots/jurisdiction_type -- ../slots/legal_system_type -- ../slots/settlement -- ../slots/specificity_annotation -- ./Country -- ./Settlement -- ./SpecificityAnnotation -- ./Subregion -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/JurisdictionTypeEnum + - ../enums/LegalSystemTypeEnum + - ../metadata + - ../slots/country + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_geographic_subdivision + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/jurisdiction_id + - ../slots/jurisdiction_type + - ../slots/legal_system_type + - ../slots/settlement classes: Jurisdiction: class_uri: lcc_cr:GeographicRegion @@ -47,12 +39,11 @@ classes: slots: - country - has_or_had_description - - has_or_had_identifier + - identified_by - jurisdiction_id - jurisdiction_type - legal_system_type - settlement - - specificity_annotation - has_or_had_geographic_subdivision - has_or_had_code - has_or_had_score diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/KeyArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/KeyArchive.yaml index 94422f83ec..c537678f7f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/KeyArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/KeyArchive.yaml @@ -8,16 +8,16 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_name + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_name classes: KeyArchive: class_uri: rico:RecordSet description: Key archive. slots: - has_or_had_name - - has_or_had_identifier + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/KeyDate.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/KeyDate.yaml index 00d47da41c..54c23ddfe0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/KeyDate.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/KeyDate.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: KeyDate: class_uri: schema:Event diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/KeyPeriod.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/KeyPeriod.yaml index c5e702ee6c..06abca7fce 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/KeyPeriod.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/KeyPeriod.yaml @@ -8,9 +8,9 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/temporal_extent + - linkml:types + - ../slots/has_or_had_description + - ../slots/temporal_extent classes: KeyPeriod: class_uri: crm:E4_Period diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Kustodie.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Kustodie.yaml index 1e448413e4..b06705e984 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Kustodie.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Kustodie.yaml @@ -4,9 +4,7 @@ title: Kustodie (University Art Collection) prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ./ArchiveOrganizationType -- ./CollectionType + - linkml:types classes: Kustodie: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LEIIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LEIIdentifier.yaml deleted file mode 100644 index dee9b168a9..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LEIIdentifier.yaml +++ /dev/null @@ -1,22 +0,0 @@ -id: https://nde.nl/ontology/hc/class/LEIIdentifier -name: LEIIdentifier -title: LEI Identifier -description: Legal Entity Identifier (LEI) code. MIGRATED from gleif_jurisdiction_code/gleif_ra_code slots per Rule 53. Follows gleif:LEI. -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - gleif: https://www.gleif.org/ontology/Base/ -imports: -- linkml:types -- ./Identifier -default_prefix: hc -classes: - LEIIdentifier: - is_a: Identifier - class_uri: gleif:LEI - description: A Legal Entity Identifier (LEI). - annotations: - specificity_score: 0.1 - specificity_rationale: Generic utility class/slot created during migration - custodian_types: "['*']" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LGBTArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LGBTArchive.yaml index 8ac4f33167..2795155d9e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LGBTArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LGBTArchive.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./LGBTArchiveRecordSetType -- ./LGBTArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: LGBTArchive: description: Archive related to LGBT (Lesbian, Gay, Bisexual, Transgender) topics. LGBT archives collect and preserve materials documenting the history, culture, activism, and experiences of LGBT communities. They may include organizational records, personal papers, periodicals, photographs, oral histories, and ephemera. These archives often emerged from community activism and continue to serve both scholarly research and community memory. @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q61710689 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LGBTArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LGBTArchiveRecordSetType.yaml index 1ca7ab594c..c1e12ace7d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LGBTArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LGBTArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: LGBTArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by LGBTArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LGBTArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LGBTArchiveRecordSetTypes.yaml index 113e9b1c68..dd8827451e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LGBTArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LGBTArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./LGBTArchive -- ./LGBTArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./LGBTArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: LGBTOrganizationFonds: is_a: LGBTArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for LGBT organization records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept ActivistPapersCollection: is_a: LGBTArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Activist personal papers.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by LGBTArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept PrideEventCollection: is_a: LGBTArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Pride and event documentation.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by LGBTArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LLMResponse.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LLMResponse.yaml index 69679a7c02..97098cd319 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LLMResponse.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LLMResponse.yaml @@ -10,40 +10,33 @@ prefixes: dct: http://purl.org/dc/terms/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/FinishReasonEnum -- ../enums/LLMProviderEnum -- ../enums/ThinkingModeEnum -- ../metadata -- ../slots/consumes_or_consumed -- ../slots/content -- ../slots/cost_usd -- ../slots/created -- ../slots/has_or_had_mode -- ../slots/has_or_had_score -- ../slots/has_or_had_token -- ../slots/is_or_was_ceased_by -- ../slots/latency_ms -- ../slots/model -- ../slots/preserves_or_preserved -- ../slots/reasoning_content -- ../slots/request_id -- ../slots/specificity_annotation -- ./CeaseEvent -- ./ReasoningContent -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./ThinkingMode -- ./Token -default_range: string + - ./ReasoningContent + - ./ThinkingMode + - ./CeaseEvent + - ./Token + - linkml:types + - ../enums/FinishReasonEnum + - ../enums/LLMProviderEnum + - ../enums/ThinkingModeEnum + - ../metadata + - ../slots/consumes_or_consumed +# - ../slots/content + - ../slots/cost_usd + - ../slots/created + - ../slots/has_or_had_mode + - ../slots/has_or_had_score + - ../slots/has_or_had_token + - ../slots/is_or_was_ceased_by + - ../slots/latency_ms + - ../slots/model + - ../slots/preserves_or_preserved + - ../slots/reasoning_content + - ../slots/request_id +# default_range: string classes: LLMResponse: class_uri: prov:Activity - description: "Provenance metadata for LLM API responses, including GLM 4.7 Thinking Modes.\n\nCaptures complete response metadata from LLM providers (ZhipuAI GLM, Anthropic,\nOpenAI, etc.) for traceability and analysis. The key innovation is capturing\n`reasoning_content` - the chain-of-thought reasoning that GLM 4.7 exposes\nthrough its three thinking modes.\n\n**GLM 4.7 Thinking Modes** (https://docs.z.ai/guides/capabilities/thinking-mode):\n\n1. **Interleaved Thinking** (default, since GLM-4.5):\n - Model thinks between tool calls and after receiving tool results\n - Enables complex, step-by-step reasoning with tool chaining\n - Returns `reasoning_content` alongside `content` in every response\n\n2. **Preserved Thinking** (new in GLM-4.7):\n - Retains reasoning_content from previous assistant turns in context\n - Preserves reasoning continuity across multi-turn conversations\n - Improves model performance and increases cache hit rates\n - **Enabled by default on Coding\ - \ Plan endpoint**\n - Requires returning EXACT, UNMODIFIED reasoning_content back to API\n - Set via: `preserves_or_preserved` with `is_preserved: true` (preserve previous reasoning)\n\n3. **Turn-level Thinking** (new in GLM-4.7):\n - Control reasoning computation on a per-turn basis\n - Enable/disable thinking independently for each request in a session\n - Useful for balancing speed (simple queries) vs accuracy (complex tasks)\n - Set via: `\"thinking\": {\"type\": \"enabled\"}` or `\"thinking\": {\"type\": \"disabled\"}`\n\n**Critical Implementation Note for Preserved Thinking**:\nWhen using Preserved Thinking with tool calls, thinking blocks MUST be:\n1. Explicitly preserved in the messages array\n2. Returned together with tool results\n3. Kept in EXACT original sequence (no reordering/editing)\n\n**PROV-O Alignment**:\n- LLMResponse IS a prov:Activity (the inference process)\n- content IS prov:Entity (the generated output)\n- model/provider IS prov:Agent (the AI system)\n\ - - reasoning_content documents the prov:Plan (how the agent reasoned)\n- prompt (input) IS prov:used (input to the activity)\n\n**Use Cases**:\n- DSPy RAG responses with reasoning traces\n- Heritage institution extraction provenance\n- LinkML schema conformity validation\n- Ontology mapping decision logs\n- Multi-turn agent conversations with preserved context\n" + description: "Provenance metadata for LLM API responses." exact_mappings: - prov:Activity close_mappings: @@ -52,7 +45,7 @@ classes: slots: - has_or_had_token - preserves_or_preserved - - content +# - content - cost_usd - created - is_or_was_ceased_by @@ -60,29 +53,28 @@ classes: - model - reasoning_content - request_id - - specificity_annotation - has_or_had_score - has_or_had_mode - consumes_or_consumed slot_usage: - content: - range: string - required: true - examples: - - value: The Rijksmuseum is a national museum in Amsterdam dedicated to Dutch arts and history. +# content: +# # range: string +# required: true +# examples: +# - value: The Rijksmuseum is a national museum in Amsterdam dedicated to Dutch arts and history. reasoning_content: - range: string + # range: string required: false examples: - - value: 'The user is asking about Dutch heritage institutions. I need to identify: 1) Institution name: Rijksmuseum, 2) Type: Museum (maps to InstitutionTypeEnum.MUSEUM), 3) Location: Amsterdam (city in Noord-Holland province)...' + - value: 'The user is asking about Dutch heritage institutions...' model: - range: string + # range: string required: true examples: - value: glm-4.7 request_id: - range: string - required: false + identifier: true # range: string + required: true examples: - value: req_8f3a2b1c4d5e6f7g created: @@ -101,34 +93,10 @@ classes: inlined: true inlined_as_list: true required: false - examples: - - value: - - has_or_had_type: - has_or_had_identifier: hc:TokenType/CACHED - has_or_had_label: Cached Token - has_or_had_quantity: - has_or_had_description: Tokens from provider KV cache - - has_or_had_type: - has_or_had_identifier: hc:TokenType/OUTPUT - has_or_had_label: Output Token - has_or_had_quantity: - has_or_had_description: Completion tokens (content + reasoning) - - value: - - has_or_had_type: - has_or_had_identifier: hc:TokenType/OUTPUT - has_or_had_label: Output Token - has_or_had_quantity: is_or_was_ceased_by: range: CeaseEvent inlined: true required: false - examples: - - value: - has_or_had_label: stop - has_or_had_description: Model completed naturally - - value: - has_or_had_label: length - has_or_had_description: Max tokens exceeded latency_ms: range: integer minimum_value: 0 @@ -145,33 +113,11 @@ classes: has_or_had_mode: range: ThinkingMode required: false - examples: - - value: - has_or_had_label: Preserved Thinking - - value: - has_or_had_label: Interleaved Thinking - - value: - has_or_had_label: Disabled preserves_or_preserved: range: ReasoningContent inlined: true multivalued: true required: false - examples: - - value: - has_or_had_label: Preserved Reasoning - - value: - has_or_had_label: Fresh Context - comments: - - reasoning_content is the key field for Interleaved Thinking (GLM 4.7) - - Store reasoning_content for debugging, auditing, and DSPy optimization - - 'Z.AI Coding Plan endpoint: https://api.z.ai/api/coding/paas/v4/chat/completions' - - 'For DSPy: use LLMResponse to track all LLM calls in the pipeline' - - See AGENTS.md Rule 11 for Z.AI API configuration - see_also: - - https://www.w3.org/TR/prov-o/ - - https://api.z.ai/docs - - https://dspy-docs.vercel.app/ annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Label.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Label.yaml index b6b53e5c5a..d43536aa14 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Label.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Label.yaml @@ -12,18 +12,13 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_label -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_type -- ../slots/has_or_had_type # Added 2026-01-18 for label type discrimination -- ../slots/language -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_type + - ../slots/has_or_had_type # Added 2026-01-18 for label type discrimination + - ../slots/language classes: Label: class_uri: rdfs:Resource @@ -61,19 +56,18 @@ classes: - has_or_had_label - has_or_had_type # Added 2026-01-18 for label type discrimination - language - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: has_or_had_label: - range: string +# range: string required: true has_or_had_type: - range: string +# range: string required: false multivalued: false language: - range: string +# range: string required: false pattern: "^[a-z]{2}$" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LabelType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LabelType.yaml index 8d10052483..8f0c06f04b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LabelType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LabelType.yaml @@ -14,10 +14,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: LabelType: class_uri: skos:Concept @@ -27,7 +27,7 @@ classes: ' abstract: true - exact_mappings: + broad_mappings: - skos:Concept slots: - has_or_had_label @@ -35,15 +35,15 @@ classes: - has_or_had_description slot_usage: has_or_had_code: - range: string +# range: string required: true examples: - value: SHORT_NAME has_or_had_label: - range: string +# range: string required: false has_or_had_description: - range: string +# range: string required: false annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LabelTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LabelTypes.yaml index 3957448cbb..4961c1b765 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LabelTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LabelTypes.yaml @@ -7,8 +7,8 @@ description: 'Concrete subclasses for LabelType taxonomy. ' imports: -- linkml:types -- ./LabelType + - ./LabelType + - linkml:types prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -36,13 +36,13 @@ classes: description: Label type for department display names. broad_mappings: - skos:Concept - OfficialName: + OfficialLabel: is_a: LabelType class_uri: hc:OfficialName description: Label type for legal/official organization names. broad_mappings: - skos:Concept - Abbreviation: + LabelAbbreviation: is_a: LabelType class_uri: hc:Abbreviation description: Label type for abbreviations and acronyms. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Landsarkiv.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Landsarkiv.yaml index a7375131ab..45022eb9db 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Landsarkiv.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Landsarkiv.yaml @@ -4,9 +4,7 @@ title: Landsarkiv (Regional Archive - Scandinavia) prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ./ArchiveOrganizationType -- ./CollectionType + - linkml:types classes: Landsarkiv: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Language.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Language.yaml index 7488479cf5..370948ed04 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Language.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Language.yaml @@ -14,12 +14,12 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_iso_639_1 -- ../slots/has_or_had_iso_639_3 -- ../slots/has_or_had_text -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_iso_639_1 + - ../slots/has_or_had_iso_639_3 + - ../slots/has_or_had_text + - ../slots/has_or_had_label classes: Language: class_uri: dct:LinguisticSystem diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LanguageCode.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LanguageCode.yaml index 198d49ed85..2a631d27d4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LanguageCode.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LanguageCode.yaml @@ -10,15 +10,10 @@ prefixes: rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_score -- ../slots/language_code -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/has_or_had_score + - ../slots/language_code classes: LanguageCode: class_uri: dcterms:LinguisticSystem @@ -37,11 +32,10 @@ classes: - skos:Concept slots: - language_code - - specificity_annotation - has_or_had_score slot_usage: language_code: - range: string +# range: string pattern: ^[a-z]{2}$ required: true annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LanguageProficiency.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LanguageProficiency.yaml index 55e3a161b6..4bd6671e59 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LanguageProficiency.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LanguageProficiency.yaml @@ -8,50 +8,43 @@ prefixes: schema: http://schema.org/ dct: http://purl.org/dc/terms/ imports: -- linkml:types -- ../enums/LanguageProficiencyEnum -- ../metadata -- ../slots/has_or_had_score -- ../slots/language_code -- ../slots/language_name -- ../slots/language_raw -- ../slots/proficiency_level -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -default_range: string + - linkml:types + - ../enums/LanguageProficiencyEnum + - ../metadata + - ../slots/has_or_had_score + - ../slots/language_code + - ../slots/language_name + - ../slots/language_raw + - ../slots/proficiency_level +# default_range: string default_prefix: hc classes: LanguageProficiency: - class_uri: schema:knowsLanguage + class_uri: hc:LanguageProficiency description: "A language skill with proficiency level.\n\nModels language abilities as extracted from LinkedIn profiles,\nwith both raw string and parsed components.\n\n**Schema.org Alignment**:\n- Represents schema:knowsLanguage relation\n- Language is schema:Language\n\n**Use Cases**:\n- LinkedIn profile language sections\n- Multilingual staff identification\n- Heritage institution language capabilities\n\n**Example JSON Values**:\n```json\n[\n \"English - Native or bilingual\",\n \"Dutch - Native or bilingual\",\n \"French - Professional working proficiency\"\n]\n```\n\n**LinkedIn Proficiency Levels**:\n- Native or bilingual proficiency\n- Full professional proficiency \n- Professional working proficiency\n- Limited working proficiency\n- Elementary proficiency\n" - exact_mappings: - - schema:knowsLanguage close_mappings: + - schema:knowsLanguage - dct:language slots: - language_code - language_name - language_raw - proficiency_level - - specificity_annotation - has_or_had_score slot_usage: language_raw: - range: string +# range: string examples: - value: English - Native or bilingual - value: Dutch - Professional working proficiency language_name: - range: string +# range: string examples: - value: English - value: Dutch - value: French language_code: - range: string +# range: string pattern: ^[a-z]{2}$ examples: - value: en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Laptop.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Laptop.yaml index 94ff505086..0ba1a1caf1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Laptop.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Laptop.yaml @@ -7,7 +7,7 @@ description: >- and under what conditions. **MIGRATION NOTE** (2026-01-14): Created as part of slot migration from `allows_laptops` and - `allows_or_allowed_laptop` to generic `allows_or_allowed` slot + `allows_or_allowed_laptop` to generic `allow` slot with typed class. See slot_fixes.yaml for migration specification. prefixes: linkml: https://w3id.org/linkml/ @@ -16,21 +16,14 @@ prefixes: dcterms: http://purl.org/dc/terms/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_score # was: template_specificity -- ../slots/is_permitted -- ../slots/poses_or_posed_condition -- ../slots/specificity_annotation -- ../slots/temporal_extent # was: valid_from + valid_to -- ./Condition -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_score # was: template_specificity + - ../slots/is_permitted + - ../slots/poses_or_posed_condition + - ../slots/temporal_extent # was: valid_from + valid_to default_prefix: hc -default_range: string +# default_range: string classes: Laptop: class_uri: schema:LocationFeatureSpecification @@ -54,7 +47,7 @@ classes: - COVID era: Some restrictions due to spacing **EXAMPLE**: ```yaml - allows_or_allowed: + allow: - permitted_item: Laptop is_permitted: true conditions: @@ -72,7 +65,6 @@ classes: # MIGRATED 2026-01-22: condition → poses_or_posed_condition + Condition (Rule 53) - poses_or_posed_condition - temporal_extent # was: valid_from + valid_to - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: is_permitted: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LastName.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LastName.yaml index fd0db882cb..704f374729 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LastName.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LastName.yaml @@ -30,11 +30,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_base -- ../slots/has_or_had_label -- ./BaseName -- ./Label + - linkml:types + - ../slots/has_or_had_base + - ../slots/has_or_had_label classes: LastName: class_uri: hc:LastName @@ -49,8 +47,8 @@ classes: - has_or_had_base slot_usage: has_or_had_label: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: label_value: "van der Berg" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LayoutMetadata.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LayoutMetadata.yaml index e57d3eb9b0..c105c186c3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LayoutMetadata.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LayoutMetadata.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: LayoutMetadata: description: "Metadata about page layout extraction from archived web pages, including\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LegalEntityType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LegalEntityType.yaml index 9248189bcf..3bf9f8c1e4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LegalEntityType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LegalEntityType.yaml @@ -25,17 +25,14 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/has_or_had_score classes: LegalEntityType: - class_uri: org:classification + class_uri: hc:LegalEntityType + close_mappings: + - org:classification description: 'Top-level legal entity classification distinguishing between natural persons @@ -57,7 +54,6 @@ classes: governments, foundations)' - All corporations and government bodies are subtypes of ORGANIZATION (legal persons) slots: - - specificity_annotation - has_or_had_score annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LegalForm.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LegalForm.yaml index 54e7304a00..70bf57ad4a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LegalForm.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LegalForm.yaml @@ -13,20 +13,14 @@ prefixes: gleif: https://www.gleif.org/ontology/Base/ iso20275: https://www.gleif.org/en/about-lei/code-lists/iso-20275-entity-legal-forms-code-list imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./Country -- ./LegalEntityType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./LegalForm + - linkml:types + - ../metadata + - ../slots/has_or_had_score classes: LegalForm: - class_uri: rov:orgType + class_uri: hc:LegalForm + close_mappings: + - rov:orgType description: 'Legal form of an organization as recognized by law. Based on ISO 20275 Entity Legal Forms (ELF) standard. @@ -46,7 +40,6 @@ classes: - Each legal form has specific rights, obligations, and governance requirements - Legal forms determine tax treatment, liability, and reporting requirements slots: - - specificity_annotation - has_or_had_score - legal_entity_type annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LegalName.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LegalName.yaml index 1339117d6f..0971a58e9e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LegalName.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LegalName.yaml @@ -11,18 +11,12 @@ prefixes: linkml: https://w3id.org/linkml/ rov: http://www.w3.org/ns/regorg# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../metadata + - ../slots/has_or_had_score classes: LegalName: - class_uri: rov:legalName + class_uri: hc:LegalName description: 'Legal name of an entity as officially registered. @@ -51,7 +45,6 @@ classes: - Organizations may have different legal names in different jurisdictions - Historical legal names are preserved with temporal validity periods slots: - - specificity_annotation - has_or_had_score - has_or_had_label - language diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LegalResponsibilityCollection.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LegalResponsibilityCollection.yaml index 89fa1bbfc4..886cd0ec78 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LegalResponsibilityCollection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LegalResponsibilityCollection.yaml @@ -19,27 +19,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/legal_responsibility_basis -- ../slots/legal_responsibility_end_date -- ../slots/legal_responsibility_start_date -- ../slots/refers_to_custodian -- ../slots/responsible_legal_entity -- ../slots/specificity_annotation -- ./Custodian -- ./CustodianCollection -- ./CustodianLegalStatus -- ./CustodianObservation -- ./OrganizationalStructure -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../metadata + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/legal_responsibility_basis + - ../slots/legal_responsibility_end_date + - ../slots/legal_responsibility_start_date + - ../slots/refers_to_custodian + - ../slots/responsible_legal_entity classes: LegalResponsibilityCollection: is_a: CustodianCollection @@ -51,7 +39,7 @@ classes: \n collection_name: \"Gemeentearchief Haarlem Municipal Records\"\n collection_type: [\"archival_records\"]\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/haarlem-municipality-1990s\"\n legal_responsibility_basis: \"Municipal charter + Archiefwet\"\n valid_from: \"1910-01-01\"\n valid_to: \"2001-01-01\" # Custody ended when NHA formed\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-haa-a-gemeentearchief\"\n\n# Example 3: Custody Transfer (After)\nLegalResponsibilityCollection:\n id: \"https://nde.nl/ontology/hc/collection/haarlem-municipal-archive-post-2001\"\n collection_name: \"Gemeentearchief Haarlem Municipal Records\"\n collection_type: [\"archival_records\"]\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/nha-organization\"\n legal_responsibility_basis: \"NHA merger agreement + Archiefwet\"\n valid_from: \"2001-01-01\"\n custody_history:\n - transfer_date: \"2001-01-01\"\n from_entity: \"https://nde.nl/ontology/hc/legal/haarlem-municipality-1990s\"\ \n to_entity: \"https://nde.nl/ontology/hc/legal/nha-organization\"\n transfer_reason: \"Merger of Gemeentearchief Haarlem into Noord-Hollands Archief\"\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-haa-a-nha\"\n```\n\n**Distinction from managing_unit**:\n- `responsible_legal_entity`: TOP-LEVEL legal accountability (CustodianLegalStatus)\n - Who is LEGALLY responsible? (foundation, government agency, etc.)\n - Established through statute, registration, or regulation\n \n- `managing_unit`: OPERATIONAL management (OrganizationalStructure)\n - Which department/division manages day-to-day operations?\n - Internal organizational structure\n\nExample:\n- `responsible_legal_entity`: Stichting Rijksmuseum (legal foundation)\n- `managing_unit`: Paintings Department (internal unit)\n\n**SPARQL Query Pattern**:\n```sparql\n# Find legal entity responsible for a collection\nPREFIX tooi: \nPREFIX hc: \n\ \nSELECT ?collection ?collection_name ?legal_entity ?legal_name\nWHERE {\n ?collection a hc:LegalResponsibilityCollection ;\n hc:collection_name ?collection_name ;\n tooi:verantwoordelijke ?legal_entity .\n \n ?legal_entity hc:legal_name/hc:full_name ?legal_name .\n}\n```\n" - exact_mappings: + broad_mappings: - tooi:Informatieobject - prov:Entity - dcat:Resource @@ -68,7 +56,6 @@ classes: - legal_responsibility_end_date - legal_responsibility_start_date - responsible_legal_entity - - specificity_annotation - has_or_had_score slot_usage: responsible_legal_entity: @@ -78,7 +65,7 @@ classes: - value: https://nde.nl/ontology/hc/legal/nha-organization - value: https://nde.nl/ontology/hc/legal/rijksmuseum-foundation legal_responsibility_basis: - range: string +# range: string required: true examples: - value: 'Archiefwet 1995, Article 41: Provincial archives shall preserve government records' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Liability.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Liability.yaml index 614da104c5..edbdf93962 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Liability.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Liability.yaml @@ -5,8 +5,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_liability + - linkml:types + - ../slots/has_or_had_liability classes: Liability: class_uri: schema:MonetaryAmount diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LibraryType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LibraryType.yaml index 75c34c1cd9..1e393b54a8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LibraryType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LibraryType.yaml @@ -2,31 +2,20 @@ id: https://nde.nl/ontology/hc/class/LibraryType name: LibraryType title: Library Type Classification imports: -- linkml:types -- ../enums/LibraryTypeEnum -- ../slots/complies_or_complied_with -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/interlibrary_loan -- ../slots/lending_policy -- ../slots/library_subtype -- ../slots/membership_required -- ../slots/special_collection -- ../slots/specificity_annotation -- ../slots/uses_or_used -- ./CatalogSystem -- ./CatalogSystemType -- ./CatalogSystemTypes -- ./CatalogingStandard -- ./CustodianType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier -- ./LibraryType + - ../classes/AgentType + - linkml:types + - ../enums/LibraryTypeEnum + - ../slots/complies_or_complied_with + - ../slots/has_or_had_hypernym + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/interlibrary_loan + - ../slots/lending_policy + - ../slots/library_subtype + - ../slots/membership_required + - ../slots/special_collection + - ../slots/uses_or_used classes: LibraryType: is_a: CustodianType @@ -94,15 +83,15 @@ classes: - library_subtype - membership_required - special_collection - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: uses_or_used: - range: CatalogSystem - inlined: true +# range: string # uriorcurie + # range: CatalogSystem + inlined: false # Fixed invalid inline for primitive type multivalued: true - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ required: true has_or_had_hypernym: @@ -110,12 +99,14 @@ classes: has_or_had_type: equals_expression: '["hc:LibraryType"]' complies_or_complied_with: - range: CatalogingStandard - inlined: true +# range: string # uriorcurie + # range: CatalogingStandard + inlined: false # Fixed invalid inline for primitive type multivalued: true exact_mappings: - - skos:Concept - schema:Library + broad_mappings: + - skos:Concept close_mappings: - crm:E55_Type - bf:Organization @@ -131,7 +122,7 @@ classes: - 'Cataloging standards: MARC21, RDA, Dublin Core, BIBFRAME' examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/library/Q22806 + identified_by: https://nde.nl/ontology/hc/type/library/Q22806 has_or_had_type_code: LIBRARY has_or_had_label: - National Library@en @@ -151,10 +142,10 @@ classes: membership_required: false interlibrary_loan: true complies_or_complied_with: - - has_or_had_identifier: RDA + - identified_by: RDA has_or_had_label: Resource Description and Access - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/library/Q1994819 + identified_by: https://nde.nl/ontology/hc/type/library/Q1994819 has_or_had_type_code: LIBRARY has_or_had_label: - WSF Library@en @@ -173,10 +164,10 @@ classes: membership_required: false interlibrary_loan: true complies_or_complied_with: - - has_or_had_identifier: MARC21 + - identified_by: MARC21 has_or_had_label: Machine-Readable Cataloging 21 is_or_was_applicable_in: - - has_or_had_identifier: NL + - identified_by: NL has_or_had_name: Netherlands description: 'Dutch WSF Library combining public lending with research collections (geographic restriction: Netherlands only)' prefixes: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LightArchives.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LightArchives.yaml index 7d8b93d5a0..6f8ddca7f4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LightArchives.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LightArchives.yaml @@ -8,25 +8,13 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_policy -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./LightArchivesRecordSetType -- ./LightArchivesRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_policy + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: LightArchives: description: Repository whose holdings are broadly accessible. Light archives contrast with "dark archives" by providing open or minimally restricted access to their holdings. The term emphasizes accessibility and transparency in archival practice, where materials are readily available for research and public use rather than being preserved primarily for security or preservation purposes. @@ -36,9 +24,8 @@ classes: - has_or_had_policy - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q112815447 close_mappings: @@ -47,7 +34,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LightArchivesRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LightArchivesRecordSetType.yaml index bae887d100..8a779a0cd1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LightArchivesRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LightArchivesRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: LightArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by LightArchives custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LightArchivesRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LightArchivesRecordSetTypes.yaml index 98da9c20d8..4b37c1f236 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LightArchivesRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LightArchivesRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./LightArchives -- ./LightArchivesRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./LightArchivesRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: MinimalProcessingCollection: is_a: LightArchivesRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Minimally processed materials.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LikelihoodScore.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LikelihoodScore.yaml index 3c956098ba..90928d9ac6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LikelihoodScore.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LikelihoodScore.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: LikelihoodScore: class_uri: schema:Rating diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LinkedDataEndpoint.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LinkedDataEndpoint.yaml index 624431435b..cae7fb8070 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LinkedDataEndpoint.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LinkedDataEndpoint.yaml @@ -8,8 +8,8 @@ prefixes: void: http://rdfs.org/ns/void# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_url + - linkml:types + - ../slots/has_or_had_url classes: LinkedDataEndpoint: class_uri: void:Dataset diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml index fcf0932442..2cb5538077 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml @@ -10,61 +10,40 @@ prefixes: prov: http://www.w3.org/ns/prov# dct: http://purl.org/dc/terms/ imports: -- linkml:types -- ../metadata -- ../slots/connections_text -- ../slots/emphasizes_or_emphasized -- ../slots/estimates_or_estimated -- ../slots/has_or_had_assessment -- ../slots/has_or_had_contact_details -- ../slots/has_or_had_description -- ../slots/has_or_had_language -- ../slots/has_or_had_metadata -- ../slots/has_or_had_method -- ../slots/has_or_had_provenance -- ../slots/has_or_had_score -- ../slots/has_or_had_source -- ../slots/has_or_had_title -- ../slots/indicates_or_indicated -- ../slots/is_or_was_assessed_on -- ../slots/languages_raw -- ../slots/likelihood_confidence -- ../slots/likelihood_factor -- ../slots/likelihood_level -- ../slots/likelihood_score -- ../slots/likely_whatsapp_proficient -- ../slots/max_likelihood_score -- ../slots/no_fabrication -- ../slots/profile_data -- ../slots/profile_image_url -- ../slots/profile_linkedin_url -- ../slots/profile_location -- ../slots/profile_name -- ../slots/skill -- ../slots/source_organization -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./DataSource -- ./DigitalConfidence -- ./DigitalProficiency -- ./EducationCredential -- ./EnrichmentMetadata -- ./ExtractionMetadata -- ./HeritageRelevanceAssessment -- ./LanguageProficiency -- ./LikelihoodScore -- ./LinkedInProfile -- ./Provenance -- ./ProvenanceBlock -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./WorkExperience -- ./Description -- ./WhatsAppProfile -default_range: string + - linkml:types + - ../metadata + - ../slots/connections_text + - ../slots/emphasizes_or_emphasized + - ../slots/estimates_or_estimated + - ../slots/has_or_had_assessment + - ../slots/has_or_had_contact_details + - ../slots/has_or_had_description + - ../slots/has_or_had_language + - ../slots/has_or_had_metadata + - ../slots/has_or_had_method + - ../slots/has_or_had_provenance + - ../slots/has_or_had_score + - ../slots/has_or_had_source + - ../slots/has_or_had_title + - ../slots/indicates_or_indicated + - ../slots/is_or_was_assessed_on + - ../slots/languages_raw + - ../slots/likelihood_confidence + - ../slots/likelihood_factor + - ../slots/likelihood_level + - ../slots/likelihood_score + - ../slots/likely_whatsapp_proficient + - ../slots/max_likelihood_score + - ../slots/no_fabrication + - ../slots/profile_data + - ../slots/profile_image_url + - ../slots/profile_linkedin_url + - ../slots/profile_location + - ../slots/profile_name + - ../slots/skill + - ../slots/source_organization + - ../slots/temporal_extent +# default_range: string classes: LinkedInProfile: class_uri: schema:ProfilePage @@ -80,14 +59,13 @@ classes: - has_or_had_assessment - profile_data - source_organization - - specificity_annotation - has_or_had_score - has_or_had_contact_details slot_usage: has_or_had_provenance: - range: string +# range: string required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type profile_data: range: LinkedInProfileData required: true @@ -96,7 +74,7 @@ classes: range: HeritageRelevanceAssessment inlined: true source_organization: - range: string +# range: string pattern: ^[a-z0-9-]+$ examples: - value: the-dutch-inspectorate-of-education @@ -148,11 +126,10 @@ classes: - profile_location - profile_name - skill - - specificity_annotation - has_or_had_score slot_usage: profile_name: - range: string +# range: string required: true examples: - value: Sander Hulleman @@ -163,38 +140,38 @@ classes: examples: - value: https://www.linkedin.com/in/sander-hulleman-5017b9105 has_or_had_title: - range: string +# range: string examples: - value: Stafadviseur PO - value: Senior Curator | Rijksmuseum - value: Digital Archivist | Heritage Data Specialist profile_location: - range: string +# range: string examples: - value: Arnhem, Gelderland, Netherlands - value: Amsterdam, Netherlands connections_text: - range: string +# range: string examples: - value: "246 connections \u2022 248 followers" - value: 500+ connections has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: Experienced curator with a focus on... languages_raw: - range: string +# range: string multivalued: true examples: - value: - English - Native or bilingual - Dutch - Native or bilingual has_or_had_language: - range: string +# range: string multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type profile_image_url: range: uri pattern: ^https://media\.licdn\.com/.*$ @@ -218,7 +195,6 @@ classes: ' slots: - indicates_or_indicated - - specificity_annotation - has_or_had_score slot_usage: indicates_or_indicated: @@ -232,7 +208,6 @@ classes: - estimates_or_estimated - emphasizes_or_emphasized - likely_whatsapp_proficient - - specificity_annotation - has_or_had_score slot_usage: likely_whatsapp_proficient: @@ -265,7 +240,6 @@ classes: - likelihood_level - likelihood_score - max_likelihood_score - - specificity_annotation - has_or_had_score slot_usage: likelihood_score: @@ -275,13 +249,13 @@ classes: max_likelihood_score: range: integer likelihood_level: - range: string +# range: string likelihood_confidence: range: float minimum_value: 0.0 maximum_value: 1.0 likelihood_factor: - range: string +# range: string multivalued: true is_or_was_assessed_on: range: TimeSpan @@ -297,7 +271,6 @@ classes: - has_or_had_provenance - has_or_had_source - no_fabrication - - specificity_annotation - has_or_had_score slot_usage: has_or_had_source: @@ -311,8 +284,8 @@ classes: no_fabrication: range: boolean has_or_had_provenance: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: extraction_date: '2025-01-14T12:00:00Z' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LiteraryArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LiteraryArchive.yaml index c3372b0585..bcec9e2cd8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LiteraryArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LiteraryArchive.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./LiteraryArchiveRecordSetType -- ./LiteraryArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: LiteraryArchive: description: Archive for literary works. Literary archives collect and preserve materials related to authors, literary movements, and the production of literature. Holdings typically include manuscripts, drafts, correspondence, personal papers, and documentation of publishing history. They serve literary scholars, biographers, and researchers studying the creative process and literary history. @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q28607652 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LiteraryArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LiteraryArchiveRecordSetType.yaml index bdcfd1454b..dd2873b96e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LiteraryArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LiteraryArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: LiteraryArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by LiteraryArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LiteraryArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LiteraryArchiveRecordSetTypes.yaml index 0b22c2f6ab..8779e849f0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LiteraryArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LiteraryArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./LiteraryArchive -- ./LiteraryArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./LiteraryArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: AuthorPapersCollection: is_a: LiteraryArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Author and writer personal papers.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept LiteraryManuscriptCollection: is_a: LiteraryArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Literary manuscripts.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by LiteraryArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept PublisherRecordsSeries: is_a: LiteraryArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Publishing house records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by LiteraryArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LlmVerification.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LlmVerification.yaml index d9e235122b..12f87a4cd8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LlmVerification.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LlmVerification.yaml @@ -9,9 +9,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# dqv: http://www.w3.org/ns/dqv# imports: -- linkml:types -- ../slots/has_or_had_type -default_range: string + - linkml:types + - ../slots/has_or_had_type +# default_range: string classes: LlmVerification: description: "LLM-based verification results for enrichment data including match\ @@ -30,7 +30,7 @@ classes: - model slot_usage: has_or_had_type: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LoadingDock.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LoadingDock.yaml index 5069c5f583..12cc2928e2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LoadingDock.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LoadingDock.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: LoadingDock: class_uri: schema:AmenityFeature diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Loan.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Loan.yaml index bb810632da..09d09c1d50 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Loan.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Loan.yaml @@ -10,67 +10,53 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# aat: http://vocab.getty.edu/aat/ imports: -- linkml:types -- ../classes/Agreement -- ../classes/Timestamp -- ../enums/LoanStatusEnum -- ../metadata -- ../slots/courier_detail -- ../slots/courier_required -- ../slots/custody_received_by -- ../slots/has_or_had_contact_point -- ../slots/has_or_had_objective -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/insurance_currency -- ../slots/insurance_provider -- ../slots/insurance_value -- ../slots/is_or_was_approved_on -- ../slots/is_or_was_based_on -- ../slots/is_or_was_displayed_at -- ../slots/is_or_was_extended -- ../slots/is_or_was_returned -- ../slots/is_or_was_signed_on -- ../slots/lender -- ../slots/lender_contact -- ../slots/loan_agreement_url -- ../slots/loan_end_date -- ../slots/loan_id -- ../slots/loan_note -- ../slots/loan_number -- ../slots/loan_purpose -- ../slots/loan_start_date -- ../slots/loan_status -- ../slots/loan_timespan -- ../slots/loan_type -- ../slots/original_end_date -- ../slots/outbound_condition_report_url -- ../slots/request_date -- ../slots/return_condition_report_url -- ../slots/shipping_method -- ../slots/special_requirement -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./Condition -- ./ConditionType -- ./ConditionTypes -- ./DisplayLocation -- ./Extension -- ./Item -- ./Quantity -- ./ReturnEvent -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - ./TimeSpan + - ./DisplayLocation + - ./ReturnEvent + - ./Extension + - linkml:types + - ../enums/LoanStatusEnum + - ../metadata + - ../slots/courier_detail + - ../slots/courier_required + - ../slots/custody_received_by + - ../slots/has_or_had_contact_point + - ../slots/has_or_had_objective + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/insurance_currency + - ../slots/insurance_provider + - ../slots/insurance_value + - ../slots/is_or_was_approved_on + - ../slots/is_or_was_based_on + - ../slots/is_or_was_displayed_at + - ../slots/is_or_was_extended + - ../slots/is_or_was_returned + - ../slots/is_or_was_signed_on + - ../slots/lender + - ../slots/lender_contact + - ../slots/loan_agreement_url + - ../slots/loan_end_date + - ../slots/loan_id + - ../slots/loan_note + - ../slots/loan_number + - ../slots/loan_purpose + - ../slots/loan_start_date + - ../slots/loan_status + - ../slots/loan_timespan + - ../slots/loan_type + - ../slots/original_end_date + - ../slots/outbound_condition_report_url + - ../slots/request_date + - ../slots/return_condition_report_url + - ../slots/shipping_method + - ../slots/special_requirement + - ../slots/temporal_extent default_prefix: hc classes: Loan: class_uri: crm:E10_Transfer_of_Custody - description: "A loan of one or more objects from a lending institution to a borrowing institution.\n\nModels the TEMPORARY TRANSFER OF CUSTODY, not ownership transfer (see ProvenanceEvent\nfor ownership changes).\n\n**Key Distinction**:\n\n| Concept | Class | Description |\n|---------|-------|-------------|\n| Permanent ownership change | ProvenanceEvent | Sale, gift, bequest |\n| **Temporary custody transfer** | **Loan** | **Exhibition loan, study loan** |\n| Object condition | ConservationRecord | Condition assessments |\n\n**Loan Types**:\n\n- **Exhibition Loan**: Object loaned for public display in an exhibition\n- **Study Loan**: Object loaned for research or scholarly examination\n- **Long-term Loan**: Extended loan (typically 1+ years) for permanent display\n- **Institutional Transfer**: Inter-departmental or inter-branch transfer\n\n- **CIDOC-CRM**: crm:E10_Transfer_of_Custody (primary)\n \"The handing over of physical custody of an object from one party to another.\"\n- **Schema.org**:\ - \ schema:BorrowAction / schema:LendAction (borrower/lender actions)\n- **SPECTRUM**: Loans Out / Loans In procedures\n\n**SPECTRUM Alignment**:\n\nThis class models both:\n- **Loans Out**: When the custodian is the lender\n- **Loans In**: When the custodian is the borrower\n\n**Relationship to Other Classes**:\n\n```\nCustodian (lender)\n \u2502\n \u2502\u2500\u2500 lends objects via Loan\n v\nLoan (this class)\n \u2502\n \u2502\u2500\u2500 loaned_objects \u2192 ExhibitedObject[]\n \u2502\u2500\u2500 borrower \u2192 Custodian\n \u2502\u2500\u2500 exhibition_ref \u2192 Exhibition (optional)\n v\nCustodian (borrower)\n```\n\n**Example**:\n\nMauritshuis loans \"Girl with a Pearl Earring\" to Rijksmuseum for Vermeer 2023:\n- loan_id: https://nde.nl/ontology/hc/loan/mauritshuis-rijksmuseum-vermeer-2023-001\n- loaned_objects: [mauritshuis-girl-pearl-earring]\n- lender: Mauritshuis\n- custody_received_by: Rijksmuseum\n- loan_status: CLOSED\n- loan_start_date:\ - \ 2023-02-10\n- loan_end_date: 2023-06-04\n- exhibition_ref: Vermeer 2023\n" + description: "A loan of one or more objects from a lending institution to a borrowing institution." exact_mappings: - crm:E10_Transfer_of_Custody close_mappings: @@ -142,14 +128,14 @@ classes: - value: 30000000 insurance_currency: required: false - range: string +# range: string examples: - value: EUR - value: USD - value: GBP insurance_provider: required: false - range: string +# range: string examples: - value: AXA Art Insurance - value: Government Indemnity Scheme (UK) @@ -161,12 +147,12 @@ classes: - value: true courier_detail: required: false - range: string +# range: string examples: - value: 'Outbound: Dr. J. Wadum (conservator). Return: Museum registrar.' shipping_method: required: false - range: string +# range: string examples: - value: Climate-controlled art transport by Hasenkamp - value: Hand-carried by courier on commercial flight @@ -193,15 +179,9 @@ classes: - has_or_had_type: GoodCondition has_or_had_description: description_text: UNCHANGED - returned in same condition - - value: - - return_date: '2023-06-07' - has_or_had_condition: - - has_or_had_type: FairCondition - has_or_had_description: - description_text: MINOR_DAMAGE - small scratch on frame, documented has_or_had_objective: required: false - range: uriorcurie +# range: string # uriorcurie inlined: false examples: - value: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 @@ -215,14 +195,14 @@ classes: has_or_had_label: Philips Wing, Gallery 0.1 loan_note: required: false - range: string +# range: string multivalued: true examples: - value: Object required custom climate-controlled display case - value: Insurance claim filed for minor frame damage during transport special_requirement: required: false - range: string +# range: string multivalued: true examples: - value: Maintain 45-55% relative humidity @@ -231,84 +211,6 @@ classes: - value: Must be displayed in glazed case has_or_had_type: equals_expression: '["hc:GalleryType", "hc:MuseumType", "hc:ArchiveOrganizationType", "hc:LibraryType", "hc:ResearchOrganizationType", "hc:HolySacredSiteType", "hc:BioCustodianType"]' - comments: - - Loan models temporary custody transfer between heritage institutions - - Links to ExhibitedObject via loaned_objects relationship - - Links to Custodian via lender and borrower relationships - - Links to Exhibition via exhibition_ref for exhibition loans - - Uses CIDOC-CRM E10_Transfer_of_Custody as primary ontology mapping - - Aligns with SPECTRUM Loans Out / Loans In procedures - see_also: - - https://cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E10 - - https://collectionstrust.org.uk/spectrum/ - - https://schema.org/BorrowAction - examples: - - value: - loan_id: https://nde.nl/ontology/hc/loan/mauritshuis-rijksmuseum-2023-001 - loan_number: MH-OUT-2023-0042 - lender: https://nde.nl/ontology/hc/custodian/nl/mauritshuis - lender_contact: Dr. Maria van der Berg, Registrar - custody_received_by: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum - has_or_had_contact_point: Anna de Wit, Exhibition Coordinator - loan_status: CLOSED - loan_type: EXHIBITION_LOAN - loan_purpose: Major Vermeer retrospective exhibition - request_date: '2021-06-15' - is_or_was_based_on: - has_or_had_label: Loan Agreement 2023-001 - is_or_was_signed_on: '2022-03-15' - loan_start_date: '2023-02-10' - loan_end_date: '2023-06-04' - temporal_extent: - end_of_the_end: '2023-06-07' - insurance_value: 30000000 - insurance_currency: EUR - insurance_provider: Rijksindemniteit - courier_required: true - courier_details: Conservator Dr. J. Wadum accompanied both transits - shipping_method: Climate-controlled art transport by Hizkia - has_or_had_objective: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 - is_or_was_displayed_at: - - has_or_had_label: Philips Wing, Gallery 0.1 - is_or_was_returned: - - return_date: '2023-06-07' - has_or_had_condition: - - has_or_had_type: GoodCondition - has_or_had_description: - description_text: UNCHANGED - returned in same condition as loaned - special_requirement: - - Maintain 45-55% relative humidity - - Maximum 50 lux illumination - - Anti-reflective glazed case - - value: - loan_id: https://nde.nl/ontology/hc/loan/rijksmuseum-national-gallery-2024-001 - lender: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum - custody_received_by: https://nde.nl/ontology/hc/custodian/uk/national-gallery - loan_status: DECLINED - loan_type: EXHIBITION_LOAN - loan_purpose: Proposed Dutch Golden Age exhibition - request_date: '2023-01-15' - loan_note: - - Declined due to ongoing Operation Night Watch conservation project - - Object too large and fragile for transport - - value: - loan_id: https://nde.nl/ontology/hc/loan/leiden-university-rkd-2024-001 - lender: https://nde.nl/ontology/hc/custodian/nl/leiden-university-libraries - custody_received_by: https://nde.nl/ontology/hc/custodian/nl/rkd - loan_status: RETURNED - loan_type: STUDY_LOAN - loan_purpose: Technical analysis for Rembrandt drawings catalogue - loan_start_date: '2024-03-01' - loan_end_date: '2024-04-15' - temporal_extent: - end_of_the_end: '2024-04-12' - courier_required: false - is_or_was_returned: - - return_date: '2024-04-12' - has_or_had_condition: - - has_or_had_type: GoodCondition - has_or_had_description: - description_text: UNCHANGED - returned in same condition annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LocalCollection.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LocalCollection.yaml index 30dc8312cc..8e24eae27e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LocalCollection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LocalCollection.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: LocalCollection: class_uri: schema:Collection diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LocalGovernmentArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LocalGovernmentArchive.yaml index 7b6ebfcf7d..bf433a7e4c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LocalGovernmentArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LocalGovernmentArchive.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./LocalGovernmentArchiveRecordSetType -- ./LocalGovernmentArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: LocalGovernmentArchive: description: Archive of records belonging to a local government. Local government archives preserve records created by municipal, county, or other local governmental bodies. They document local administration, public services, planning, taxation, and community governance. These archives are essential for understanding local history and for citizens exercising rights related to government records. @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q118281267 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LocalGovernmentArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LocalGovernmentArchiveRecordSetType.yaml index dd62de236d..69bf38ee50 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LocalGovernmentArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LocalGovernmentArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: LocalGovernmentArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by LocalGovernmentArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LocalGovernmentArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LocalGovernmentArchiveRecordSetTypes.yaml index dce9ef7508..cf5c2edfd5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LocalGovernmentArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LocalGovernmentArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./LocalGovernmentArchive -- ./LocalGovernmentArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./LocalGovernmentArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: LocalAdministrationFonds: is_a: LocalGovernmentArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Local authority administrative records.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept PublicWorksSeries: is_a: LocalGovernmentArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Infrastructure and public works documentation.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by LocalGovernmentArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept LocalTaxRecordsSeries: is_a: LocalGovernmentArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Local taxation records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by LocalGovernmentArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LocalHeritageInstitutionSweden.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LocalHeritageInstitutionSweden.yaml index 400c798b7e..db6a41e34f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LocalHeritageInstitutionSweden.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LocalHeritageInstitutionSweden.yaml @@ -7,16 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: LocalHeritageInstitutionSweden: description: "A Swedish type of local history and cultural heritage museum (Hembygdsg\xE5rd). These institutions are typically run by local heritage associations (hembygdsf\xF6reningar) and preserve buildings, objects, and documentation related to local rural life and traditions. They often maintain open-air collections of historic buildings alongside archival and museum collections." @@ -31,11 +25,10 @@ classes: custodian_types: "['*']" slots: - has_or_had_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: has_or_had_type: equals_expression: '["hc:MixedCustodianType"]' see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LocalHistoryArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LocalHistoryArchive.yaml index 748aac81f9..5c23e82c01 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LocalHistoryArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LocalHistoryArchive.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./LocalHistoryArchiveRecordSetType -- ./LocalHistoryArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: LocalHistoryArchive: description: Archive dealing with local history. Local history archives collect and preserve materials documenting the history of a specific locality such as a town, village, neighborhood, or small region. They may include official records, photographs, maps, newspapers, oral histories, and ephemera. Often maintained by local historical societies, libraries, or municipal governments. @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q12324798 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LocalHistoryArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LocalHistoryArchiveRecordSetType.yaml index e4a70485a7..84abe984a9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LocalHistoryArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LocalHistoryArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: LocalHistoryArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by LocalHistoryArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LocalHistoryArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LocalHistoryArchiveRecordSetTypes.yaml index 2b6e662710..7a7e7b98fe 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LocalHistoryArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LocalHistoryArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./LocalHistoryArchive -- ./LocalHistoryArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./LocalHistoryArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: LocalHistoryFonds: is_a: LocalHistoryArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Local history materials.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept CommunityPhotographCollection: is_a: LocalHistoryArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Local photographs.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by LocalHistoryArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept LocalNewspaperCollection: is_a: LocalHistoryArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Local newspaper archives.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by LocalHistoryArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Locality.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Locality.yaml index e4761db8d6..72f6a34bcb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Locality.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Locality.yaml @@ -10,13 +10,12 @@ prefixes: dwc: http://rs.tdwg.org/dwc/terms/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_label -- ../slots/has_or_had_note -- ../slots/has_or_had_provenance -- ../slots/language -- ./ProvenanceBlock + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_note + - ../slots/has_or_had_provenance + - ../slots/language default_prefix: hc classes: Locality: @@ -50,11 +49,11 @@ classes: - language slot_usage: has_or_had_label: - range: string +# range: string examples: - value: Port Louis, Mauritius has_or_had_note: - range: string +# range: string has_or_had_provenance: range: ProvenanceBlock inlined: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Location.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Location.yaml index 6422c479ee..85510244c3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Location.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Location.yaml @@ -12,17 +12,12 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_score # was: template_specificity -- ../slots/latitude -- ../slots/location_name -- ../slots/longitude -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/has_or_had_score # was: template_specificity + - ../slots/latitude + - ../slots/location_name + - ../slots/longitude classes: Location: class_uri: schema:Place @@ -53,12 +48,11 @@ classes: - location_name - latitude - longitude - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: location_name: - range: string +# range: string required: true latitude: range: float diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LocationLibrary.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LocationLibrary.yaml index 6bb5ce5626..8ebe0c065a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LocationLibrary.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LocationLibrary.yaml @@ -7,16 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: LocationLibrary: description: A collection of visual and reference information about locations or places that might be used for filming or photography. Location libraries serve the film, television, and photography industries by providing searchable databases of potential shooting locations. They typically include photographs, descriptions, access information, and logistical details about venues and landscapes. @@ -31,11 +25,10 @@ classes: custodian_types: "['*']" slots: - has_or_had_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: has_or_had_type: equals_expression: '["hc:LibraryType"]' see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LocationResolution.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LocationResolution.yaml index db22249ead..1e4c00c712 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LocationResolution.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LocationResolution.yaml @@ -9,13 +9,11 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# geo: http://www.w3.org/2003/01/geo/wgs84_pos# imports: -- linkml:types -- ../enums/LocationResolutionMethodEnum -- ../slots/has_or_had_citation -- ../slots/has_or_had_city_code -- ./ResearchSource -- ./SourceCoordinates -default_range: string + - linkml:types + - ../enums/LocationResolutionMethodEnum + - ../slots/has_or_had_citation + - ../slots/has_or_had_city_code +# default_range: string classes: LocationResolution: description: "Method and result of settlement resolution for GHCID generation.\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Locker.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Locker.yaml index b188f60175..4231ff9adb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Locker.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Locker.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: Locker: class_uri: schema:AmenityFeature diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LogoClaim.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LogoClaim.yaml index 88a8f991e4..b79f673fbd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LogoClaim.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LogoClaim.yaml @@ -8,14 +8,12 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/css_selector -- ../slots/has_or_had_type -- ../slots/retrieved_on -- ../slots/source_url -- ./ClaimType -- ./ClaimTypes -default_range: string + - linkml:types + - ../slots/css_selector + - ../slots/has_or_had_type + - ../slots/retrieved_on + - ../slots/source_url +# default_range: string classes: LogoClaim: description: "Individual logo or favicon claim extracted from a webpage, including\ @@ -35,8 +33,8 @@ classes: - retrieved_on slot_usage: has_or_had_type: - range: uriorcurie - inlined: true +# range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type required: false annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LogoEnrichment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LogoEnrichment.yaml index eaea6aac02..6ad40328cd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LogoEnrichment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LogoEnrichment.yaml @@ -13,10 +13,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ./LogoClaim -- ./LogoEnrichmentSummary -default_range: string + - linkml:types +# default_range: string classes: LogoEnrichment: description: "Logo and favicon enrichment data extracted from institutional websites\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/LogoEnrichmentSummary.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/LogoEnrichmentSummary.yaml index 5bf97d20a2..1d17376f00 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/LogoEnrichmentSummary.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/LogoEnrichmentSummary.yaml @@ -7,8 +7,8 @@ prefixes: schema: http://schema.org/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: LogoEnrichmentSummary: description: "Summary statistics of logo enrichment results, indicating what types\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/METSAPI.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/METSAPI.yaml index 00e75ccd50..76b2a7389f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/METSAPI.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/METSAPI.yaml @@ -10,17 +10,11 @@ prefixes: premis: http://www.loc.gov/premis/rdf/v3/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/METSIdentifierTypeEnum -- ../metadata -- ../slots/has_or_had_score -- ../slots/response_format -- ../slots/specificity_annotation -- ./DataServiceEndpoint -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/METSIdentifierTypeEnum + - ../metadata + - ../slots/has_or_had_score + - ../slots/response_format classes: METSAPI: is_a: DataServiceEndpoint @@ -57,7 +51,6 @@ classes: - https://www.loc.gov/standards/mets/ - https://www.loc.gov/standards/mets/mets-schemadocs.html slots: - - specificity_annotation - has_or_had_score annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MailingListArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MailingListArchive.yaml index 5aaa5ba5f7..202a3f9d94 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MailingListArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MailingListArchive.yaml @@ -8,26 +8,13 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/platform_type_id -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DigitalPlatformType -- ./DualClassLink -- ./MailingListArchiveRecordSetType -- ./MailingListArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/platform_type_id classes: MailingListArchive: description: Archive of mailing list communications. Mailing list archives preserve the messages exchanged through email distribution lists, documenting online discussions, community conversations, and collaborative work. They are important sources for studying digital communication history, online communities, and the development of technical projects. @@ -36,9 +23,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q104018626 close_mappings: @@ -49,7 +35,7 @@ classes: mixins: - DigitalPlatformType slot_usage: - has_or_had_identifier: null + identified_by: null platform_type_id: identifier: false has_or_had_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MailingListArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MailingListArchiveRecordSetType.yaml index 9b616410e7..833baf3c5d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MailingListArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MailingListArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: MailingListArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by MailingListArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MailingListArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MailingListArchiveRecordSetTypes.yaml index e97b161724..f36cc85af0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MailingListArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MailingListArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./MailingListArchive -- ./MailingListArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./MailingListArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: EmailArchiveCollection: is_a: MailingListArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Email list archives.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept DiscussionForumFonds: is_a: MailingListArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Discussion forum records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by MailingListArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MainPart.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MainPart.yaml index 64ce393d70..712a45b791 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MainPart.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MainPart.yaml @@ -7,11 +7,10 @@ prefixes: schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../slots/currency_code -- ../slots/has_or_had_quantity -- ../slots/part_type -- ./Quantity + - linkml:types + - ../slots/currency_code + - ../slots/has_or_had_quantity + - ../slots/part_type default_prefix: hc classes: MainPart: @@ -45,7 +44,7 @@ classes: has_or_had_quantity: range: integer required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type description: 'The quantified value of this main part. For capital budget: Quantity.quantity_value = amount, currency in metadata.' examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Manager.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Manager.yaml index 6e789d8b5f..6e662aad6d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Manager.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Manager.yaml @@ -21,10 +21,10 @@ description: 'Represents a person or role responsible for managing an organizati ' imports: -- linkml:types -- ../slots/has_or_had_email -- ../slots/has_or_had_name -- ../slots/has_or_had_title + - linkml:types + - ../slots/has_or_had_email + - ../slots/has_or_had_name + - ../slots/has_or_had_title prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -49,18 +49,18 @@ classes: - has_or_had_email slot_usage: has_or_had_name: - range: string +# range: string required: true examples: - value: Dr. Jan de Vries has_or_had_title: - range: string +# range: string required: false examples: - value: Head of Collections - value: Director of Archives has_or_had_email: - range: string +# range: string required: false annotations: specificity_score: 0.1 @@ -73,5 +73,5 @@ slots: description: Date when person became manager person_reference: slot_uri: hc:personReference - range: uriorcurie +# range: string # uriorcurie description: Reference to PersonObservation record diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Mandate.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Mandate.yaml index dee93dd3af..0606d5a1b7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Mandate.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Mandate.yaml @@ -9,10 +9,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type classes: Mandate: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Manufacturer.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Manufacturer.yaml index 7c1b14a0d0..33beba61ef 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Manufacturer.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Manufacturer.yaml @@ -12,11 +12,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_url -- ./URL + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_url classes: Manufacturer: class_uri: schema:Organization @@ -28,7 +27,7 @@ classes: **Pattern**: Simple string manufacturer name replaced with structured class: - has_or_had_label: Manufacturer name (String or Label) - has_or_had_url: Manufacturer website (URL) - - has_or_had_identifier: Unique identifier + - identified_by: Unique identifier **Ontological Alignment**: - **Primary**: `schema:Organization` - Schema.org organization @@ -56,18 +55,18 @@ classes: - prov:Agent slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_url slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: false examples: - value: https://nde.nl/ontology/hc/manufacturer/estimote has_or_had_label: - range: string +# range: string required: true examples: - value: Estimote @@ -75,7 +74,7 @@ classes: - value: Samsung has_or_had_url: range: uri - inlined: true + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -94,12 +93,12 @@ classes: examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/manufacturer/estimote + identified_by: https://nde.nl/ontology/hc/manufacturer/estimote has_or_had_label: Estimote has_or_had_url: url_value: https://estimote.com/ - value: - has_or_had_identifier: https://nde.nl/ontology/hc/manufacturer/sensirion + identified_by: https://nde.nl/ontology/hc/manufacturer/sensirion has_or_had_label: Sensirion has_or_had_url: url_value: https://sensirion.com/ \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MappingType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MappingType.yaml index 53346992e3..83135c3a7c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MappingType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MappingType.yaml @@ -9,20 +9,14 @@ prefixes: owl: http://www.w3.org/2002/07/owl# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./MappingType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score classes: MappingType: class_uri: skos:Concept @@ -38,17 +32,16 @@ classes: related_mappings: - skos:mappingRelation slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code - has_or_had_hypernym - has_or_had_hyponym - - specificity_annotation - has_or_had_score slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/mapping-type/[a-z-]+$ @@ -56,7 +49,7 @@ classes: - value: https://nde.nl/ontology/hc/mapping-type/exact - value: https://nde.nl/ontology/hc/mapping-type/broad has_or_had_code: - range: string +# range: string required: true pattern: ^[a-z][a-z0-9_]*$ examples: @@ -67,7 +60,7 @@ classes: - value: related - value: ontonym has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -78,7 +71,7 @@ classes: - Broad Match@en - Bredere match@nl has_or_had_description: - range: string +# range: string required: false examples: - value: Exact semantic match - concepts are interchangeable @@ -108,7 +101,7 @@ classes: - https://www.wikidata.org/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/mapping-type/exact + identified_by: https://nde.nl/ontology/hc/mapping-type/exact has_or_had_code: exact has_or_had_label: - Exact Match@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MappingTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MappingTypes.yaml index 8cdfe437c0..de7887b753 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MappingTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MappingTypes.yaml @@ -8,12 +8,12 @@ prefixes: owl: http://www.w3.org/2002/07/owl# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ./MappingType + - ./MappingType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: ExactMapping: is_a: MappingType @@ -57,12 +57,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/mapping-type/exact) has_or_had_code: ifabsent: string(exact) @@ -89,12 +89,12 @@ classes: \ scope differences\n\n**EXAMPLE**:\n- \"Kunsthal\" (NL) closeMatch \"Art Gallery\"\ \ (EN) - cultural nuance\n" slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/mapping-type/close) has_or_had_code: ifabsent: string(close) @@ -120,12 +120,12 @@ classes: \ \"Municipal Archive\" broadMatch Wikidata \"Archive\"\n- LocalClass \"Natural\ \ History Museum\" broadMatch Wikidata \"Museum\"\n" slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/mapping-type/broad) has_or_had_code: ifabsent: string(broad) @@ -151,12 +151,12 @@ classes: \ \"Heritage Institution\" narrowMatch Wikidata \"Art Museum\"\n- LocalClass\ \ \"Archive\" narrowMatch Wikidata \"Film Archive\"\n" slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/mapping-type/narrow) has_or_had_code: ifabsent: string(narrow) @@ -215,12 +215,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/mapping-type/related) has_or_had_code: ifabsent: string(related) @@ -252,12 +252,12 @@ classes: \ no direct record type exists\n- Document the semantic gap\n- Consider proposing\ \ new Wikidata items\n" slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/mapping-type/ontonym) has_or_had_code: ifabsent: string(ontonym) diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MatchingSource.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MatchingSource.yaml index 23bec68b8c..0ec4ef1f97 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MatchingSource.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MatchingSource.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: MatchingSource: description: "Source that contributed to name consensus during entity resolution.\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Material.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Material.yaml index b954e2a379..c8a8f10de0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Material.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Material.yaml @@ -15,20 +15,13 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_type -- ../slots/is_or_was_equivalent_to -- ../slots/specificity_annotation -- ./MaterialType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_type + - ../slots/is_or_was_equivalent_to classes: Material: class_uri: crm:E57_Material @@ -88,17 +81,16 @@ classes: - skos:Concept slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_type - is_or_was_equivalent_to - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie identifier: true required: true pattern: "^https://nde\\.nl/ontology/hc/material/[a-z0-9-]+$" @@ -106,7 +98,7 @@ classes: - value: https://nde.nl/ontology/hc/material/paper - value: https://nde.nl/ontology/hc/material/nitrate-film has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -115,12 +107,12 @@ classes: - value: ["parchment@en", "perkament@nl"] has_or_had_description: - range: string +# range: string examples: - value: "Cellulose-based material made from wood pulp or cotton fibers, used for documents, books, and prints." has_or_had_type: - range: uriorcurie +# range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/material-type/organic is_or_was_equivalent_to: @@ -159,7 +151,7 @@ classes: examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/material/paper + identified_by: https://nde.nl/ontology/hc/material/paper has_or_had_label: - paper@en - papier@nl @@ -168,7 +160,7 @@ classes: is_or_was_equivalent_to: - qid: "Q11472" - value: - has_or_had_identifier: https://nde.nl/ontology/hc/material/nitrate-film + identified_by: https://nde.nl/ontology/hc/material/nitrate-film has_or_had_label: - nitrate film@en - nitraatfilm@nl @@ -178,7 +170,7 @@ classes: is_or_was_equivalent_to: - qid: "Q1201597" - value: - has_or_had_identifier: https://nde.nl/ontology/hc/material/parchment + identified_by: https://nde.nl/ontology/hc/material/parchment has_or_had_label: - parchment@en - perkament@nl diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MaterialType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MaterialType.yaml index 8d75012cdc..156b36955f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MaterialType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MaterialType.yaml @@ -14,19 +14,13 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score # was: template_specificity -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./MaterialType + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score # was: template_specificity classes: MaterialType: class_uri: skos:Concept @@ -111,17 +105,16 @@ classes: - crm:E57_Material slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_hypernym - has_or_had_hyponym - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie identifier: true required: true pattern: "^https://nde\\.nl/ontology/hc/material-type/[a-z0-9-]+$" @@ -129,7 +122,7 @@ classes: - value: https://nde.nl/ontology/hc/material-type/organic - value: https://nde.nl/ontology/hc/material-type/synthetic has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -137,7 +130,7 @@ classes: - value: ["Synthetic Material@en", "Synthetisch materiaal@nl"] has_or_had_description: - range: string +# range: string examples: - value: "Plant and animal-derived materials including paper, parchment, leather, textiles, and wood." @@ -179,7 +172,7 @@ classes: examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/material-type/organic + identified_by: https://nde.nl/ontology/hc/material-type/organic has_or_had_label: - Organic Material@en - Organisch materiaal@nl @@ -191,7 +184,7 @@ classes: - https://nde.nl/ontology/hc/material-type/textile - https://nde.nl/ontology/hc/material-type/wood - value: - has_or_had_identifier: https://nde.nl/ontology/hc/material-type/synthetic + identified_by: https://nde.nl/ontology/hc/material-type/synthetic has_or_had_label: - Synthetic Material@en - Synthetisch materiaal@nl diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MaterialTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MaterialTypes.yaml index 343d53fc9a..230c6b4b4c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MaterialTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MaterialTypes.yaml @@ -10,8 +10,8 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ./MaterialType + - ./MaterialType + - linkml:types classes: OrganicMaterial: is_a: MaterialType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MaximumHumidity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MaximumHumidity.yaml index b616c9aa6e..4081336337 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MaximumHumidity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MaximumHumidity.yaml @@ -9,9 +9,9 @@ prefixes: qudt: http://qudt.org/schema/qudt/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_unit -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_unit + - ../slots/has_or_had_value classes: MaximumHumidity: class_uri: schema:QuantitativeValue @@ -24,7 +24,7 @@ classes: range: float required: true has_or_had_unit: - range: string +# range: string ifabsent: string(%) annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MaximumQuantity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MaximumQuantity.yaml index fd445a03a1..d4249458dc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MaximumQuantity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MaximumQuantity.yaml @@ -3,8 +3,7 @@ name: MaximumQuantity title: Maximum Quantity description: The maximum possible value for a quantity. imports: -- linkml:types -- ./Quantity + - linkml:types classes: MaximumQuantity: is_a: Quantity diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MeanValue.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MeanValue.yaml index a87bc6327c..7ebcf7c2ed 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MeanValue.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MeanValue.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: MeanValue: class_uri: schema:StructuredValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MeasureUnit.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MeasureUnit.yaml index 9964fe8203..3758315eca 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MeasureUnit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MeasureUnit.yaml @@ -20,12 +20,12 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/MeasureUnitEnum -- ../slots/has_or_had_code -- ../slots/has_or_had_label -- ../slots/has_or_had_symbol -- ../slots/has_or_had_type + - linkml:types + - ../enums/MeasureUnitEnum + - ../slots/has_or_had_code + - ../slots/has_or_had_label + - ../slots/has_or_had_symbol + - ../slots/has_or_had_type default_prefix: hc classes: MeasureUnit: @@ -46,20 +46,20 @@ classes: range: MeasureUnitEnum required: true has_or_had_symbol: - range: string +# range: string required: false examples: - value: ha - value: "m\xB2" - value: m has_or_had_code: - range: string +# range: string required: false examples: - value: har - value: m2 has_or_had_label: - range: string +# range: string examples: - value: hectare - value: square meter diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Measurement.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Measurement.yaml index 2c439a998b..08def64568 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Measurement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Measurement.yaml @@ -19,12 +19,10 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ sosa: http://www.w3.org/ns/sosa/ imports: -- linkml:types -- ../slots/has_or_had_measurement_type -- ../slots/has_or_had_measurement_unit -- ../slots/has_or_had_value -- ./MeasureUnit -- ./MeasurementType + - linkml:types + - ../slots/has_or_had_measurement_type + - ../slots/has_or_had_measurement_unit + - ../slots/has_or_had_value default_prefix: hc classes: Measurement: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MeasurementType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MeasurementType.yaml index 0fc0559286..eb4af29562 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MeasurementType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MeasurementType.yaml @@ -23,11 +23,10 @@ prefixes: qudt: http://qudt.org/schema/qudt/ crm: http://www.cidoc-crm.org/cidoc-crm/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_measurement_unit -- ../slots/has_or_had_name -- ./MeasureUnit + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_measurement_unit + - ../slots/has_or_had_name default_prefix: hc classes: MeasurementType: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MeasurementTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MeasurementTypes.yaml index 0c0a88c59a..f1843bdef7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MeasurementTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MeasurementTypes.yaml @@ -23,9 +23,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# qudt: http://qudt.org/schema/qudt/ imports: -- linkml:types -- ../slots/has_or_had_name -- ./MeasurementType + - ./MeasurementType + - linkml:types + - ../slots/has_or_had_name default_prefix: hc classes: TemperatureMeasurement: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MeasurementUnit.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MeasurementUnit.yaml index 96baa9f7eb..a2f2be1826 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MeasurementUnit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MeasurementUnit.yaml @@ -6,10 +6,10 @@ prefixes: qudt: http://qudt.org/schema/qudt/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: MeasurementUnit: class_uri: qudt:Unit @@ -26,7 +26,7 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MediaAppearanceEntry.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MediaAppearanceEntry.yaml index 44ac89a406..40f1c9a495 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MediaAppearanceEntry.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MediaAppearanceEntry.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: MediaAppearanceEntry: description: "Record of a media appearance such as TV broadcast, radio interview,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MediaArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MediaArchive.yaml index 1c0630d367..d42169c617 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MediaArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MediaArchive.yaml @@ -15,23 +15,12 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./MediaArchiveRecordSetType -- ./MediaArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: MediaArchive: description: Archive preserving media content across various formats. Media archives collect and preserve audio, video, photographic, and other media materials. They may serve broadcasters, production companies, or cultural heritage institutions. Media archives face particular challenges around format obsolescence, rights management, and the preservation of time-based media. @@ -40,9 +29,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q116809817 close_mappings: @@ -51,7 +39,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MediaArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MediaArchiveRecordSetType.yaml index 12872bb510..604867f200 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MediaArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MediaArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: MediaArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by MediaArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MediaArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MediaArchiveRecordSetTypes.yaml index 8845d6a6af..20f2a6654e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MediaArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MediaArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./MediaArchive -- ./MediaArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./MediaArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: MediaProductionFonds: is_a: MediaArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Media company records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept BroadcastCollection: is_a: MediaArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Broadcast recordings.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by MediaArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MediaObject.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MediaObject.yaml index 26c5d0d37f..662ea119be 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MediaObject.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MediaObject.yaml @@ -8,16 +8,16 @@ prefixes: schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_url + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_url default_prefix: hc classes: MediaObject: class_uri: schema:MediaObject slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_url annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MediaSegment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MediaSegment.yaml index 14f34c4fc0..348fec45cd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MediaSegment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MediaSegment.yaml @@ -8,9 +8,8 @@ prefixes: schema: http://schema.org/ oa: http://www.w3.org/ns/oa# imports: -- linkml:types -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../slots/temporal_extent default_prefix: hc classes: MediaSegment: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Medienzentrum.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Medienzentrum.yaml index 05991e6ee2..f8bfac2440 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Medienzentrum.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Medienzentrum.yaml @@ -4,9 +4,7 @@ title: Medienzentrum (Media Center) prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ./ArchiveOrganizationType -- ./CollectionType + - linkml:types classes: Medienzentrum: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Member.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Member.yaml index ae3f33bd89..019161ad00 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Member.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Member.yaml @@ -8,15 +8,15 @@ prefixes: org: http://www.w3.org/ns/org# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_name + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_name classes: Member: class_uri: org:Membership description: Organization member. slots: - - has_or_had_identifier + - identified_by - has_or_had_name annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Membership.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Membership.yaml index e6df48840d..84c68d44db 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Membership.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Membership.yaml @@ -15,9 +15,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_role -- ../slots/temporal_extent + - linkml:types + - ../slots/has_or_had_role + - ../slots/temporal_extent classes: Membership: class_uri: org:Membership diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Memento.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Memento.yaml index 0a49ddd474..341a617dea 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Memento.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Memento.yaml @@ -9,9 +9,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_url -- ../slots/temporal_extent + - linkml:types + - ../slots/has_or_had_url + - ../slots/temporal_extent classes: Memento: class_uri: schema:WebPage diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MerchandiseSale.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MerchandiseSale.yaml index 889ae7ad9c..b5cde3a6c4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MerchandiseSale.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MerchandiseSale.yaml @@ -7,9 +7,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: MerchandiseSale: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MergeNote.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MergeNote.yaml index 8466734ca1..5e124af878 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MergeNote.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MergeNote.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: MergeNote: description: "Documentation of a merge operation between duplicate entries, recording\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MetadataStandard.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MetadataStandard.yaml index 8222f72efb..f9dacff4a3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MetadataStandard.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MetadataStandard.yaml @@ -5,9 +5,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ dct: http://purl.org/dc/terms/ imports: -- linkml:types -- ../slots/has_or_had_type -- ./MetadataStandardType + - linkml:types + - ../slots/has_or_had_type classes: MetadataStandard: class_uri: dct:Standard @@ -28,7 +27,7 @@ classes: - has_or_had_type slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MetadataStandardType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MetadataStandardType.yaml index 8ec07dc0f7..6692cbaf53 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MetadataStandardType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MetadataStandardType.yaml @@ -5,17 +5,17 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: MetadataStandardType: description: Abstract base class for metadata standard type taxonomy. Classifies categories of metadata standards used by heritage institutions, such as bibliographic (MARC21), archival (EAD, RiC-O), museum (LIDO, CIDOC-CRM), or web (Schema.org, Dublin Core). class_uri: skos:Concept abstract: true slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MetadataStandardTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MetadataStandardTypes.yaml index c6ae33b747..d6de69453b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MetadataStandardTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MetadataStandardTypes.yaml @@ -4,8 +4,8 @@ prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ imports: -- linkml:types -- ./MetadataStandardType + - ./MetadataStandardType + - linkml:types classes: DublinCoreStandard: is_a: MetadataStandardType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Method.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Method.yaml index a8f2b88de1..e368e2ef43 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Method.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Method.yaml @@ -9,8 +9,8 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: Method: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Methodology.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Methodology.yaml index 570d34ffc0..0bfeaf236a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Methodology.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Methodology.yaml @@ -22,21 +22,15 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/MethodologyTypeEnum -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/has_or_had_threshold -- ../slots/has_or_had_version -- ../slots/methodology_type -- ../slots/specificity_annotation -- ./ConfidenceThreshold -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/MethodologyTypeEnum + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/has_or_had_threshold + - ../slots/has_or_had_version + - ../slots/methodology_type default_prefix: hc classes: Methodology: @@ -50,17 +44,16 @@ classes: related_mappings: - dcterms:methodology slots: - - has_or_had_identifier + - identified_by - methodology_type - has_or_had_label - has_or_had_description - has_or_had_version - has_or_had_threshold - - specificity_annotation - has_or_had_score slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: false examples: - value: https://nde.nl/ontology/hc/methodology/retinaface-arcface-v1 @@ -71,7 +64,7 @@ classes: - value: ENTITY_RESOLUTION - value: OBJECT_TRACKING has_or_had_label: - range: string +# range: string required: false description: 'Human-readable name for the methodology or algorithm. MIGRATED: Now serves both methodology name AND algorithm_name (Rule 53/56).' examples: @@ -79,12 +72,12 @@ classes: - value: YOLOv8 - value: ArcFace has_or_had_description: - range: string +# range: string required: false examples: - value: Faces detected using RetinaFace, clustered using ArcFace embeddings has_or_had_version: - range: string +# range: string required: false examples: - value: 1.0.0 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MichelinStarRating.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MichelinStarRating.yaml index d62268e998..129f23f1d4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MichelinStarRating.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MichelinStarRating.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: MichelinStarRating: class_uri: schema:Rating diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MicrofilmReader.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MicrofilmReader.yaml index 90e569b965..3de26403b8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MicrofilmReader.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MicrofilmReader.yaml @@ -15,8 +15,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: MicrofilmReader: class_uri: schema:Product diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MilitaryArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MilitaryArchive.yaml index f8e5b53045..6ddfceff98 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MilitaryArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MilitaryArchive.yaml @@ -8,22 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./MilitaryArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: MilitaryArchive: description: Archive for documents regarding military topics. Military archives preserve records of armed forces, defense ministries, and military operations. Holdings typically include personnel records, operational documents, maps, photographs, and materials documenting military history. Access may be restricted for national security or privacy reasons, with materials often declassified after specified periods. @@ -39,11 +29,10 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null hold_or_held_record_set_type: equals_expression: '["hc:MilitaryOperationsFonds", "hc:MilitaryPersonnelSeries", "hc:UnitHistoryCollection", "hc:MilitaryMapsCollection", "hc:VeteransDocumentationCollection"] diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MilitaryArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MilitaryArchiveRecordSetType.yaml index d2b153347c..e2ef11adf0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MilitaryArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MilitaryArchiveRecordSetType.yaml @@ -8,14 +8,11 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to classes: MilitaryArchiveRecordSetType: abstract: true @@ -33,7 +30,6 @@ classes: - VeteransDocumentationCollection slots: - has_or_had_type - - specificity_annotation - has_or_had_score slot_usage: has_or_had_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MilitaryArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MilitaryArchiveRecordSetTypes.yaml index 775d4d0c4c..54daf356ae 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MilitaryArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MilitaryArchiveRecordSetTypes.yaml @@ -17,24 +17,18 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/preservation_note -- ../slots/privacy_note -- ../slots/record_note -- ../slots/record_set_type -- ../slots/scope_exclude -- ../slots/scope_include -- ../slots/specificity_annotation -- ./MilitaryArchive -- ./MilitaryArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./MilitaryArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/preservation_note + - ../slots/privacy_note + - ../slots/record_note + - ../slots/record_set_type + - ../slots/scope_exclude + - ../slots/scope_include classes: MilitaryOperationsFonds: is_a: MilitaryArchiveRecordSetType @@ -127,11 +121,10 @@ classes: - intelligence reports - strategic planning - command records - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds - broad_mappings: - wd:Q1643722 - rico:RecordSetType - skos:Concept @@ -151,7 +144,6 @@ classes: custodian_types: '[''*'']' slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -219,11 +211,10 @@ classes: - muster rolls - enlistment records - military genealogy - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series - broad_mappings: - wd:Q185583 - rico:RecordSetType - skos:Concept @@ -240,7 +231,6 @@ classes: custodian_types: '[''*'']' slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -312,11 +302,10 @@ classes: - battle honors - honor rolls - veterans associations - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q9388534 - rico:RecordSetType - skos:Concept @@ -333,7 +322,6 @@ classes: custodian_types: '[''*'']' slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -403,11 +391,10 @@ classes: - luchtfoto's - strategic maps - tactical maps - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q4006 - rico:RecordSetType - skos:Concept @@ -420,7 +407,6 @@ classes: - MapCollection slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -491,11 +477,10 @@ classes: - oral history - war testimonies - POW - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q9388534 - rico:RecordSetType - skos:Concept @@ -517,7 +502,6 @@ classes: custodian_types: '[''*'']' slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MinimumHumidity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MinimumHumidity.yaml index 399c64815b..075510561f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MinimumHumidity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MinimumHumidity.yaml @@ -9,9 +9,9 @@ prefixes: qudt: http://qudt.org/schema/qudt/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_unit -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_unit + - ../slots/has_or_had_value classes: MinimumHumidity: class_uri: schema:QuantitativeValue @@ -24,7 +24,7 @@ classes: range: float required: true has_or_had_unit: - range: string +# range: string ifabsent: string(%) annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MissionStatement.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MissionStatement.yaml index f2a7dec678..bcbcb2f6f7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MissionStatement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MissionStatement.yaml @@ -12,46 +12,35 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# oa: http://www.w3.org/ns/oa# imports: -- linkml:types -- ../classes/Policy -- ../enums/StatementTypeEnum -- ../slots/content_hash -- ../slots/css_selector -- ../slots/describes_or_described -- ../slots/has_or_had_identifier -- ../slots/has_or_had_language -- ../slots/has_or_had_note -- ../slots/has_or_had_provenance_path -- ../slots/has_or_had_score -- ../slots/has_or_had_summary -- ../slots/has_or_had_text -- ../slots/has_or_had_type -- ../slots/has_or_had_url -- ../slots/is_or_was_effective_at -- ../slots/page_section -- ../slots/retrieved_on -- ../slots/source_url -- ../slots/specificity_annotation -- ../slots/supersedes_or_superseded -- ../slots/temporal_extent -- ./SpecificityAnnotation -- ./StatementType -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./URL -- ./XPath -- ./Policy + - linkml:types + - ../enums/StatementTypeEnum + - ../slots/content_hash + - ../slots/css_selector + - ../slots/describes_or_described + - ../slots/identified_by + - ../slots/has_or_had_language + - ../slots/has_or_had_note + - ../slots/has_or_had_provenance_path + - ../slots/has_or_had_score + - ../slots/has_or_had_summary + - ../slots/has_or_had_text + - ../slots/has_or_had_type + - ../slots/has_or_had_url + - ../slots/is_or_was_effective_at + - ../slots/page_section + - ../slots/retrieved_on + - ../slots/source_url + - ../slots/supersedes_or_superseded + - ../slots/temporal_extent default_prefix: hc classes: MissionStatement: - class_uri: org:purpose + class_uri: hc:MissionStatement description: "A structured record of an organizational purpose statement (mission, vision,\ngoals, values, or motto) extracted from a heritage custodian's website with\nfull provenance documentation.\n\n**PURPOSE**:\n\nHeritage custodians publish mission and vision statements that articulate:\n- Why they exist (mission)\n- What future state they aspire to (vision)\n- What specific outcomes they pursue (goals)\n- What principles guide their work (values)\n- Memorable phrases encapsulating their purpose (mottos)\n\nThese statements are valuable for:\n- Understanding organizational identity and purpose\n- Comparing institutions within and across sectors\n- Tracking organizational evolution over time\n- Research on heritage sector discourse and priorities\n\n**PROVENANCE REQUIREMENTS**:\n\nFollowing the WebObservation pattern, every MissionStatement MUST have:\n\n1. **Source documentation**: source_url + retrieved_on\n2. **Location evidence**: xpath OR css_selector + html_file\n3. **Integrity\ \ verification**: content_hash (SHA-256)\n4. **Archive link**: has_archive_memento_uri (recommended)\n\nStatements without verifiable provenance are rejected.\n\n**ONTOLOGY ALIGNMENT**:\n\nW3C Organization Ontology `org:purpose`:\n- \"Indicates the purpose of this Organization\"\n- \"There can be many purposes at different levels of abstraction\"\n- \"It is recommended that the purpose be denoted by a controlled term\"\n\nWe extend this by:\n- Distinguishing statement types (mission, vision, goal, value, motto)\n- Adding temporal tracking (effective_date, supersedes)\n- Full provenance chain (source_url, xpath, content_hash, archive)\n\n**MULTILINGUAL SUPPORT**:\n\nHeritage custodians publish statements in their native language.\nFor Dutch institutions, statements are typically in Dutch.\nThe statement_language field captures the ISO 639-1 code,\nand statement_summary can provide English translation.\n\n**TEMPORAL TRACKING**:\n\nOrganizations revise their mission statements over time.\n\ The `supersedes` field links to previous statements,\nenabling tracking of how organizational purpose evolves.\n\n**EXAMPLES**:\n\n1. **Dutch Agricultural Museum Mission**\n - statement_type: mission\n - has_or_had_text: \"Waar komt ons voedsel \xE9cht vandaan.\"\n - statement_language: nl\n - source_url: https://www.landbouwmuseumtiengemeten.nl/het-museum/missie-en-visie\n \n2. **Rijksmuseum Vision**\n - statement_type: vision\n - has_or_had_text: \"Het Rijksmuseum verbindt mensen met kunst en geschiedenis.\"\n - statement_language: nl\n - statement_summary: \"The Rijksmuseum connects people with art and history.\"\n" - exact_mappings: - - org:purpose close_mappings: + - org:purpose - schema:description - prov:Entity related_mappings: @@ -68,8 +57,7 @@ classes: - page_section - retrieved_on - source_url - - specificity_annotation - - has_or_had_identifier + - identified_by - has_or_had_language - has_or_had_summary - has_or_had_text @@ -80,7 +68,7 @@ classes: - has_or_had_provenance_path slot_usage: describes_or_described: - range: string +# range: string has_or_had_type: required: true range: StatementType @@ -99,7 +87,7 @@ classes: inlined: true has_or_had_url: range: uri - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: url_value: https://example.org/about#:~:text=Our%20mission%20is @@ -122,7 +110,7 @@ classes: - https://www.w3.org/TR/SRI/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/mission/nl-zh-zui-m-lmt/mission-2025 + identified_by: https://nde.nl/ontology/hc/mission/nl-zh-zui-m-lmt/mission-2025 has_or_had_type: mission has_or_had_text: "Waar komt ons voedsel \xE9cht vandaan." has_or_had_language: nl @@ -134,7 +122,7 @@ classes: has_or_had_score: has_or_had_score: 0.95 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/mission/nl-zh-zui-m-lmt/vision-2025 + identified_by: https://nde.nl/ontology/hc/mission/nl-zh-zui-m-lmt/vision-2025 has_or_had_type: vision has_or_had_text: 'Het Landbouwmuseum Tiengemeten voelt zich onderdeel van een belangrijke agrarische ontwikkeling, de mechanisatie tussen 1920 en 1955. De collectie @@ -148,7 +136,7 @@ classes: has_or_had_score: has_or_had_score: 0.9 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/mission/nl-zh-zui-m-lmt/goals-2025 + identified_by: https://nde.nl/ontology/hc/mission/nl-zh-zui-m-lmt/goals-2025 has_or_had_type: goal has_or_had_text: "Onze ambitie en doelstellingen hebben wij geformuleerd rondom de volgende punten:\n- Het Landbouwmuseum Tiengemeten laat de ontwikkeling van het boerenbedrijf\n in de periode 1920 tot 1955 zien d.m.v. een prachtige collectie.\n- Voor onze bezoekers een gewaardeerd en gastvrij museum te zijn.\n- De collecties welke wij beheren toegankelijk maken voor nu en voor\n volgende generaties.\n" has_or_had_language: nl diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MixedCustodianType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MixedCustodianType.yaml index cab5d71fdc..09ba04a16b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MixedCustodianType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MixedCustodianType.yaml @@ -12,29 +12,15 @@ description: 'Specialized CustodianType for heritage institutions that simultane ' imports: -- linkml:types -- ../slots/constituent_type -- ../slots/defines_or_defined -- ../slots/has_or_had_score -- ../slots/has_or_had_service -- ../slots/has_or_had_type -- ../slots/integrates_or_integrated -- ../slots/serves_or_served -- ../slots/service_portfolio -- ../slots/specificity_annotation -- ./CustodianType -- ./FunctionType -- ./FunctionTypes -- ./GovernanceStructure -- ./InstitutionalFunction -- ./Service -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./UserCommunity -- ./UserCommunityType -- ./UserCommunityTypes + - linkml:types + - ../slots/constituent_type + - ../slots/defines_or_defined + - ../slots/has_or_had_score + - ../slots/has_or_had_service + - ../slots/has_or_had_type + - ../slots/integrates_or_integrated + - ../slots/serves_or_served + - ../slots/service_portfolio prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -161,12 +147,11 @@ classes: - integrates_or_integrated - defines_or_defined - service_portfolio - - specificity_annotation - has_or_had_score - serves_or_served slot_usage: constituent_type: - range: string +# range: string multivalued: true required: true examples: @@ -174,9 +159,10 @@ classes: - value: Museum (primary), Library (research collections) - value: Library + Archive + Museum (equal) integrates_or_integrated: - range: InstitutionalFunction +# range: string # uriorcurie + # range: InstitutionalFunction multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: @@ -192,7 +178,8 @@ classes: is_or_was_categorized_as: has_or_had_label: SUPPORT defines_or_defined: - range: GovernanceStructure +# range: string # uriorcurie + # range: GovernanceStructure required: true examples: - value: @@ -202,7 +189,7 @@ classes: - value: has_or_had_description: Co-directors (archive + museum), Unified operations service_portfolio: - range: string +# range: string multivalued: true required: true examples: @@ -210,9 +197,9 @@ classes: - value: Museum exhibitions, Library reference, Fellowships, Conservation - value: Reading room, Galleries, Lectures, Digital portal has_or_had_service: - range: string +# range: string multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_label: Purpose-built facility (2007) @@ -221,9 +208,10 @@ classes: has_or_had_label: Historic building 1990 has_or_had_description: Separate wings, Shared entrance serves_or_served: - range: UserCommunity +# range: string # uriorcurie + # range: UserCommunity multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type required: true examples: - value: "- has_or_had_type: ResearcherCommunity\n has_or_had_label:\n - label_value: \"Researchers and genealogists\"\n language_code: \"en\"\n" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Model.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Model.yaml index df66d9f2d9..474a36da0f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Model.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Model.yaml @@ -14,27 +14,27 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_label classes: Model: class_uri: schema:ProductModel - description: "Represents a product model or design variant.\n\n**MIGRATION SOURCE**: Created from device_model slot migration (Rule 53, 2026-01-25).\n\n**Pattern**: Simple string model name replaced with structured class:\n- has_or_had_label: Model name/designation\n- has_or_had_identifier: Model number or SKU\n\n**Ontological Alignment**:\n- **Primary**: `schema:ProductModel` - Schema.org product model\n\n**Use Cases**:\n- IoT device models (Estimote Proximity Beacon, Sensirion SHT45)\n- Equipment model variants\n- Hardware versions\n\n**Relationship to InternetOfThings**:\n```\nInternetOfThings\n \u2514\u2500\u2500 has_or_had_model \u2192 Model\n \u251C\u2500\u2500 has_or_had_label \u2192 \"Estimote Proximity Beacon\"\n \u2514\u2500\u2500 has_or_had_identifier \u2192 \"EPB-v3.0\"\n```\n" + description: "Represents a product model or design variant.\n\n**MIGRATION SOURCE**: Created from device_model slot migration (Rule 53, 2026-01-25).\n\n**Pattern**: Simple string model name replaced with structured class:\n- has_or_had_label: Model name/designation\n- identified_by: Model number or SKU\n\n**Ontological Alignment**:\n- **Primary**: `schema:ProductModel` - Schema.org product model\n\n**Use Cases**:\n- IoT device models (Estimote Proximity Beacon, Sensirion SHT45)\n- Equipment model variants\n- Hardware versions\n\n**Relationship to InternetOfThings**:\n```\nInternetOfThings\n \u2514\u2500\u2500 has_or_had_model \u2192 Model\n \u251C\u2500\u2500 has_or_had_label \u2192 \"Estimote Proximity Beacon\"\n \u2514\u2500\u2500 identified_by \u2192 \"EPB-v3.0\"\n```\n" exact_mappings: - schema:ProductModel slots: - - has_or_had_identifier + - identified_by - has_or_had_label slot_usage: - has_or_had_identifier: - range: string + identified_by: +# range: string required: false examples: - value: EPB-v3.0 - value: SHT45-AD1B-R2 has_or_had_label: - range: string +# range: string required: true examples: - value: Estimote Proximity Beacon @@ -52,8 +52,8 @@ classes: - Enables structured model data with name and identifier examples: - value: - has_or_had_identifier: EPB-v3.0 + identified_by: EPB-v3.0 has_or_had_label: Estimote Proximity Beacon - value: - has_or_had_identifier: SHT45-AD1B-R2 + identified_by: SHT45-AD1B-R2 has_or_had_label: Sensirion SHT45 \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MonasteryArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MonasteryArchive.yaml index b20922c6f4..0ba3891fb4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MonasteryArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MonasteryArchive.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./MonasteryArchiveRecordSetType -- ./MonasteryArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: MonasteryArchive: description: Archive of a monastery. Monastery archives preserve records created by monastic communities over centuries, including administrative documents, charters, liturgical records, manuscripts, and documentation of daily monastic life. These archives are invaluable for medieval and early modern history, often containing some of the oldest surviving written records in a region. @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q27030561 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HolySacredSiteType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MonasteryArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MonasteryArchiveRecordSetType.yaml index 5062518d92..72a8ce8c9e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MonasteryArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MonasteryArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: MonasteryArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by MonasteryArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MonasteryArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MonasteryArchiveRecordSetTypes.yaml index a6961bc0d2..654e5c2992 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MonasteryArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MonasteryArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./MonasteryArchive -- ./MonasteryArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./MonasteryArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: MonasticRecordsFonds: is_a: MonasteryArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Monastery administrative records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept MonasticManuscriptCollection: is_a: MonasteryArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Medieval manuscripts and codices.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by MonasteryArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept PropertyRecordsSeries: is_a: MonasteryArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Monastic property and land records.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by MonasteryArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MowInscription.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MowInscription.yaml index 71e6e000cd..0b33c6b682 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MowInscription.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MowInscription.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# crm: http://www.cidoc-crm.org/cidoc-crm/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: MowInscription: description: "UNESCO Memory of the World (MoW) inscription reference. Contains\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MultilingualAliases.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MultilingualAliases.yaml index f63a352a24..f0fbddcfa0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MultilingualAliases.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MultilingualAliases.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: MultilingualAliases: description: 'Aliases in multiple languages. This is a flexible dict-like structure diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MultilingualDescriptions.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MultilingualDescriptions.yaml index 85d797f16a..ef14323ad1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MultilingualDescriptions.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MultilingualDescriptions.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: MultilingualDescriptions: description: 'Descriptions in multiple languages. This is a flexible dict-like structure diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MultilingualLabels.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MultilingualLabels.yaml index 09b192e117..ae3879bc70 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MultilingualLabels.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MultilingualLabels.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: MultilingualLabels: description: 'Labels/names in multiple languages. This is a flexible dict-like structure diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MunicipalArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MunicipalArchive.yaml index 2bbb760aa6..8feffed2d7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MunicipalArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MunicipalArchive.yaml @@ -15,22 +15,12 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./MunicipalArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: MunicipalArchive: description: 'Accumulation of historical records of a town or city. Municipal @@ -62,15 +52,14 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: hold_or_held_record_set_type: equals_expression: '["hc:CouncilGovernanceFonds", "hc:CivilRegistrySeries", "hc:MunicipalAdministrationFonds", "hc:UrbanPlanningCollection", "hc:LocalHistoryCollection"] ' - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MunicipalArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MunicipalArchiveRecordSetType.yaml index 146e2d15db..54494c5234 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MunicipalArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MunicipalArchiveRecordSetType.yaml @@ -8,14 +8,11 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to classes: MunicipalArchiveRecordSetType: abstract: true @@ -33,7 +30,6 @@ classes: - LocalHistoryCollection slots: - has_or_had_type - - specificity_annotation - has_or_had_score slot_usage: has_or_had_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MunicipalArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MunicipalArchiveRecordSetTypes.yaml index 88b2492044..ba13cdc38f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MunicipalArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MunicipalArchiveRecordSetTypes.yaml @@ -11,23 +11,17 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/privacy_note -- ../slots/record_note -- ../slots/record_set_type -- ../slots/scope_exclude -- ../slots/scope_include -- ../slots/specificity_annotation -- ./MunicipalArchive -- ./MunicipalArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./MunicipalArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/privacy_note + - ../slots/record_note + - ../slots/record_set_type + - ../slots/scope_exclude + - ../slots/scope_include classes: CouncilGovernanceFonds: is_a: MunicipalArchiveRecordSetType @@ -64,11 +58,10 @@ classes: - B&W besluiten - election records - civic ceremonies - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds - broad_mappings: - wd:Q1643722 - rico:RecordSetType - skos:Concept @@ -81,7 +74,6 @@ classes: - MunicipalArchive slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -153,12 +145,11 @@ classes: - population register - vital records - genealogy sources - exact_mappings: + broad_mappings: - rico:RecordSetType - wd:Q1866196 related_mappings: - rico-rst:Series - broad_mappings: - wd:Q185583 - rico:RecordSetType - skos:Concept @@ -174,7 +165,6 @@ classes: records as official source from 1811 in Netherlands. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -244,11 +234,10 @@ classes: - sociale zaken - personnel records - department records - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds - broad_mappings: - wd:Q1643722 - rico:RecordSetType - skos:Concept @@ -261,7 +250,6 @@ classes: - CouncilGovernanceFonds slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -326,12 +314,11 @@ classes: - building permits - building plans - cadastral records - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - rico-rst:Fonds - broad_mappings: - wd:Q9388534 - rico:RecordSetType - skos:Concept @@ -345,7 +332,6 @@ classes: - ArchitecturalArchive slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -412,11 +398,10 @@ classes: - oral history - community history - local businesses - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q9388534 - rico:RecordSetType - skos:Concept @@ -434,7 +419,6 @@ classes: frequently acquired through donation programs and community partnerships. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MunicipalityInfo.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MunicipalityInfo.yaml index 6b9c3159af..50c44af7a5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MunicipalityInfo.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MunicipalityInfo.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# locn: http://www.w3.org/ns/locn# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: MunicipalityInfo: description: "Municipality information representing an administrative division\ @@ -19,7 +19,7 @@ classes: \ administrative territorial unit (municipality level)\n- close_mappings includes\ \ schema:AdministrativeArea for general admin areas - related_mappings includes\ \ schema:Place for location aspects" - class_uri: locn:AdminUnit + class_uri: hc:MunicipalityInfo close_mappings: - schema:AdministrativeArea related_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MuseumArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MuseumArchive.yaml index 5d09a4432e..cfe74d086d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MuseumArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MuseumArchive.yaml @@ -15,23 +15,12 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./MuseumArchiveRecordSetType -- ./MuseumArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: MuseumArchive: description: Archive established by a museum to collect, organize, preserve, and provide access to its organizational records. Museum archives document the history and operations of the museum itself, including exhibition files, acquisition records, correspondence, photographs, and administrative documentation. They serve institutional memory and provenance research. @@ -40,9 +29,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q53566456 close_mappings: @@ -51,7 +39,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MuseumArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MuseumArchiveRecordSetType.yaml index d854680e79..06ca59a3d9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MuseumArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MuseumArchiveRecordSetType.yaml @@ -15,13 +15,10 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: MuseumArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by MuseumArchive custodians. @@ -31,7 +28,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MuseumArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MuseumArchiveRecordSetTypes.yaml index 2d8d3f7992..eada5cae4d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MuseumArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MuseumArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./MuseumArchive -- ./MuseumArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./MuseumArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: MuseumAdministrationFonds: is_a: MuseumArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Museum administrative records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept CollectionDocumentationSeries: is_a: MuseumArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Collection documentation.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by MuseumArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept ExhibitionRecordCollection: is_a: MuseumArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Exhibition records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by MuseumArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MuseumRegisterEnrichment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MuseumRegisterEnrichment.yaml index f4fb83eced..4f9590b147 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MuseumRegisterEnrichment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MuseumRegisterEnrichment.yaml @@ -8,13 +8,10 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_category -- ../slots/has_or_had_quantity -- ./Category -- ./MuseumRegisterProvenance -- ./Quantity -default_range: string + - linkml:types + - ../slots/categorized_as + - ../slots/has_or_had_quantity +# default_range: string classes: MuseumRegisterEnrichment: description: "Dutch Museum Register (Museumregister Nederland) data including\ @@ -34,7 +31,7 @@ classes: custodian_types: '[''*'']' slots: - registration_date - - has_or_had_category + - categorized_as - has_or_had_quantity - note - source_url diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MuseumRegisterProvenance.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MuseumRegisterProvenance.yaml index 94a38d0d9d..a4919f34fb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MuseumRegisterProvenance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MuseumRegisterProvenance.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# pav: http://purl.org/pav/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: MuseumRegisterProvenance: description: "Provenance metadata for museum register enrichment including source\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MuseumType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MuseumType.yaml index e3649a032d..a726d7fab1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MuseumType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MuseumType.yaml @@ -2,30 +2,18 @@ id: https://nde.nl/ontology/hc/class/MuseumType name: MuseumType title: Museum Type Classification imports: -- linkml:types -- ../enums/MuseumTypeEnum -- ../slots/complies_or_complied_with -- ../slots/conservation_lab -- ../slots/has_or_had_category -- ../slots/has_or_had_facility -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/museum_subtype -- ../slots/research_department -- ../slots/specificity_annotation -- ./CatalogingStandard -- ./Category -- ./CustodianType -- ./Facility -- ./Program -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier -- ./MuseumType + - linkml:types + - ../enums/MuseumTypeEnum + - ../slots/complies_or_complied_with + - ../slots/conservation_lab + - ../slots/categorized_as + - ../slots/has_or_had_facility + - ../slots/has_or_had_hypernym + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/museum_subtype + - ../slots/research_department classes: MuseumType: is_a: CustodianType @@ -99,21 +87,20 @@ classes: description: "Specialized custodian type for museums - institutions that collect, preserve,\nresearch, and exhibit objects of artistic, cultural, historical, or scientific\nsignificance for public education and enjoyment.\n\n**Wikidata Base Concept**: Q33506 (museum)\n\n**Scope**:\nMuseums are distinguished by their focus on:\n- Object-based collections (artifacts, specimens, artworks)\n- Public exhibitions and interpretation\n- Educational programming\n- Conservation and research\n- Tangible cultural/natural heritage\n\n**Key Museum Subtypes** (187+ extracted from Wikidata):\n\n**By Subject Matter**:\n- Art museums (Q207694) - Fine arts and visual arts\n- History museums (Q588140) - Historical artifacts and narratives\n- Science museums (Q588140) - Scientific phenomena and technology\n- Natural history museums (Q559049) - Biological and geological specimens\n- Anthropology museums (Q57566) - Cultural and ethnic heritage\n- Military museums (Q1520008) - Armed forces and warfare history\n\ \n**Art Museum Specializations**:\n- Modern art museums (Q108860593) - 20th century art\n- Contemporary art museums (Q108860927) - Current/recent art\n- Folk art museums (Q108861021) - Traditional/vernacular art\n- University art museums (Q111889841) - Academic art collections\n- Single-artist museums (Q107524840) - Dedicated to one artist\n- Private art museums (Q107537774) - Privately owned collections\n\n**Subject-Specific Museums**:\n- Writers' museums (Q10501308) - Literary heritage\n- Comics museums (Q11341528) - Sequential art and graphic novels\n- Chess museums (Q106686551) - Chess history and artifacts\n- Picture book museums (Q11606865) - Children's illustrated books\n- Fortification museums (Q1014837) - Military architecture\n- Hospital museums (Q114650550) - Medical heritage\n\n**Specialized Formats**:\n- Open-air museums (Q588140) - Outdoor historical environments\n- Ecomuseums (Q861259) - Community-based heritage sites\n- Virtual museums (Q3565794) - Digital-only collections\n\ - Selfie museums (Q104127212) - Instagram-friendly installations\n- Typhlological museums (Q107313856) - Museums for the blind\n\n**By Administrative Level**:\n- National museums (Q2668072) - State-level institutions\n- Regional museums (Q1048268) - Provincial/state museums\n- County museums (Q10571947) - Local government museums (Sweden)\n- University museums (Q3152824) - Academic institution museums\n\n**By Location Type**:\n- Heritage farms (Q111079628) - Historic agricultural sites\n- National military parks (Q100154387) - US military heritage sites\n- National battlefield parks (Q100222740) - US battle sites\n- Forest experience centers (Q106775899) - German forest museums\n\n**Geographic/Cultural Focus**:\n- Local heritage institutions (Q10520688) - Swedish hembygdsg\xE5rd\n- National centers for contemporary art (Q109017987) - National art centers\n- Buried cultural property centers (Q11425913) - Archaeology museums (Japan)\n\n**RDF Serialization Example**:\n```turtle\n:Custodian_Rijksmuseum\n\ - \ org:classification :MuseumType_ArtMuseum_Q207694 .\n\n:MuseumType_ArtMuseum_Q207694\n a glamtype:MuseumType, crm:E55_Type, skos:Concept ;\n skos:prefLabel \"Art Museum\"@en, \"kunstmuseum\"@nl ;\n skos:broader :MuseumType_Museum_Q33506 ;\n skos:narrower :MuseumType_ModernArtMuseum_Q108860593 ;\n schema:additionalType ;\n glamtype:glamorcubesfixphdnt_code \"MUSEUM\" ;\n glamtype:has_or_had_category [ hc:category_name \"paintings\" ; hc:category_type \"TYPOLOGY\" ] ;\n glamtype:exhibition_program \"rotating exhibitions with permanent collection\" ;\n glamtype:cataloging_standard \"LIDO\" .\n```\n\n**Domain-Specific Properties**:\nThis class adds museum-specific metadata beyond base CustodianType:\n- `has_or_had_category` - Subject areas of collections (art, history, science, etc.) using Category class\n- `exhibition_program` - Exhibition strategy (permanent, rotating, temporary)\n- `visitor_facilities` - Public\ + \ org:classification :MuseumType_ArtMuseum_Q207694 .\n\n:MuseumType_ArtMuseum_Q207694\n a glamtype:MuseumType, crm:E55_Type, skos:Concept ;\n skos:prefLabel \"Art Museum\"@en, \"kunstmuseum\"@nl ;\n skos:broader :MuseumType_Museum_Q33506 ;\n skos:narrower :MuseumType_ModernArtMuseum_Q108860593 ;\n schema:additionalType ;\n glamtype:glamorcubesfixphdnt_code \"MUSEUM\" ;\n glamtype:categorized_as [ hc:category_name \"paintings\" ; hc:category_type \"TYPOLOGY\" ] ;\n glamtype:exhibition_program \"rotating exhibitions with permanent collection\" ;\n glamtype:cataloging_standard \"LIDO\" .\n```\n\n**Domain-Specific Properties**:\nThis class adds museum-specific metadata beyond base CustodianType:\n- `categorized_as` - Subject areas of collections (art, history, science, etc.) using Category class\n- `exhibition_program` - Exhibition strategy (permanent, rotating, temporary)\n- `visitor_facilities` - Public\ \ amenities (cafe, shop, education center, etc.)\n- `cataloging_standard` - Standards used (LIDO, SPECTRUM, CIDOC-CRM, etc.)\n- `conservation_lab` - Whether museum has conservation facilities\n- `research_department` - Whether museum conducts scholarly research\n\n**Integration with CIDOC-CRM**:\nMuseum organizations should reference CIDOC-CRM for detailed object cataloging:\n- crm:E78_Curated_Holding - Museum collections\n- crm:E18_Physical_Thing - Museum objects\n- crm:E7_Activity - Exhibitions and educational activities\n- crm:E39_Actor - Museum as organizational actor\n\n**Integration with LIDO**:\nLIDO (Lightweight Information Describing Objects) is the standard for museum\nobject interchange:\n- lido:legalBodyType - Museum organization type\n- lido:objectClassificationWrap - Object categorization\n- lido:administrativeMetadata - Collection management\n\n**Data Population**:\nMuseum subtypes extracted from 187 Wikidata entities with type='M'\nin `data/wikidata/GLAMORCUBEPSXHFN/hyponyms_curated_full.yaml`.\n" slots: - complies_or_complied_with - - has_or_had_category + - categorized_as - conservation_lab - has_or_had_type - museum_subtype - research_department - - specificity_annotation - has_or_had_score - has_or_had_facility - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ required: true has_or_had_hypernym: @@ -124,16 +111,18 @@ classes: has_or_had_type: equals_expression: '["hc:MuseumType"]' has_or_had_facility: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type multivalued: true complies_or_complied_with: - range: CatalogingStandard - inlined: true +# range: string # uriorcurie + # range: CatalogingStandard + inlined: false # Fixed invalid inline for primitive type multivalued: true - has_or_had_category: - range: Category - inlined: true + categorized_as: +# range: string # uriorcurie + # range: Category + inlined: false # Fixed invalid inline for primitive type multivalued: true exact_mappings: - skos:Concept @@ -153,7 +142,7 @@ classes: - Includes specialized formats (open-air, ecomuseums, virtual museums) examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/museum/Q207694 + identified_by: https://nde.nl/ontology/hc/type/museum/Q207694 has_or_had_type_code: MUSEUM has_or_had_label: - Art Museum@en @@ -161,7 +150,7 @@ classes: - Kunstmuseum@de has_or_had_description: museum that primarily exhibits works of art has_or_had_hypernym: https://nde.nl/ontology/hc/type/museum/Q33506 - has_or_had_category: + categorized_as: - category_name: paintings - category_name: sculptures - category_name: decorative arts @@ -173,24 +162,24 @@ classes: - facility_name: Education Center facility_type: EDUCATION complies_or_complied_with: - - has_or_had_identifier: LIDO + - identified_by: LIDO has_or_had_label: Lightweight Information Describing Objects conservation_lab: true research_department: true - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/museum/Q559049 + identified_by: https://nde.nl/ontology/hc/type/museum/Q559049 has_or_had_type_code: MUSEUM has_or_had_label: - Natural History Museum@en - natuurhistorisch museum@nl has_or_had_description: museum that exhibits natural history specimens has_or_had_hypernym: https://nde.nl/ontology/hc/type/museum/Q33506 - has_or_had_category: + categorized_as: - category_name: biological specimens - category_name: fossils - category_name: minerals - category_name: taxidermy complies_or_complied_with: - - has_or_had_identifier: Darwin Core + - identified_by: Darwin Core has_or_had_label: Darwin Core research_department: true \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MusicArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MusicArchive.yaml index 5da0c31532..34910f9ccb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MusicArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MusicArchive.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./MusicArchiveRecordSetType -- ./MusicArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: MusicArchive: description: Archive of musical recordings and documents. Music archives collect and preserve materials related to music including recordings, scores, manuscripts, correspondence, photographs, and documentation of musical performances and compositions. They may focus on specific genres, composers, performers, or regional musical traditions. @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q53759838 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MusicArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MusicArchiveRecordSetType.yaml index 809e576a36..56b2c70c18 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MusicArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MusicArchiveRecordSetType.yaml @@ -15,14 +15,10 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: MusicArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by MusicArchive custodians. @@ -31,7 +27,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MusicArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MusicArchiveRecordSetTypes.yaml index 8a67b7911a..7140152bd3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MusicArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/MusicArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./MusicArchive -- ./MusicArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./MusicArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: MusicManuscriptCollection: is_a: MusicArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Musical scores and manuscripts.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept PerformanceRecordingSeries: is_a: MusicArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Concert and performance recordings.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by MusicArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept ComposerPapersCollection: is_a: MusicArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Composer personal papers.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by MusicArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/MusicSegment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MusicSegment.yaml deleted file mode 100644 index f9b30bfd7d..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/classes/MusicSegment.yaml +++ /dev/null @@ -1,24 +0,0 @@ -id: https://nde.nl/ontology/hc/class/MusicSegment -name: MusicSegment -title: MusicSegment -description: A segment of audio containing music. -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ -default_prefix: hc -imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_time_interval -classes: - MusicSegment: - class_uri: schema:MusicRecording - description: Music segment. - slots: - - has_or_had_time_interval - - has_or_had_description - annotations: - specificity_score: 0.1 - specificity_rationale: Generic utility class/slot created during migration - custodian_types: "['*']" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Nachlass.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Nachlass.yaml index d463e6ba03..ab324c5487 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Nachlass.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Nachlass.yaml @@ -7,16 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: Nachlass: description: Collection of manuscripts, notes, correspondence, and so on left behind when a scholar or an artist dies. The German term "Nachlass" (literally "that which is left behind") refers to the personal papers and literary remains of a person, typically a writer, artist, scholar, or other notable individual. It represents an important archival concept for personal and literary archives. @@ -24,11 +18,10 @@ classes: class_uri: skos:Concept slots: - has_or_had_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Name.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Name.yaml index 373ab37f02..17ecc87077 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Name.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Name.yaml @@ -11,17 +11,16 @@ prefixes: dwc: http://rs.tdwg.org/dwc/terms/ imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_label -- ../slots/has_or_had_language -- ../slots/has_or_had_type -- ./NameType + - linkml:types + - ../metadata + - ../slots/has_or_had_label + - ../slots/has_or_had_language + - ../slots/has_or_had_type default_prefix: hc classes: Name: - class_uri: schema:name + class_uri: hc:Name description: | Structured representation of a name associated with an entity. @@ -64,7 +63,7 @@ classes: slot_usage: has_or_had_label: - range: string +# range: string required: true examples: - value: "Dodo" @@ -76,15 +75,14 @@ classes: - value: CommonName - value: ScientificName has_or_had_language: - range: string +# range: string required: false examples: - value: "en" - value: "nl" - value: "la" - exact_mappings: - - schema:name close_mappings: + - schema:name - skos:prefLabel - rdfs:label related_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NameType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NameType.yaml index 5cbd56c1cc..82eb98d0e2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NameType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NameType.yaml @@ -10,10 +10,10 @@ prefixes: dwc: http://rs.tdwg.org/dwc/terms/ imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: @@ -56,13 +56,13 @@ classes: slot_usage: has_or_had_label: - range: string +# range: string required: true examples: - value: "Common Name" - value: "Scientific Name" has_or_had_description: - range: string +# range: string required: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NameTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NameTypes.yaml index f7b89c45db..d14c8a5a9e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NameTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NameTypes.yaml @@ -8,21 +8,21 @@ prefixes: dwc: http://rs.tdwg.org/dwc/terms/ schema: http://schema.org/ imports: -- linkml:types -- ../metadata -- ./NameType + - ./NameType + - linkml:types + - ../metadata default_prefix: hc classes: CommonName: is_a: NameType - class_uri: dwc:vernacularName + class_uri: hc:CommonName description: "Vernacular or common name in any language.\n\n**Darwin Core Alignment**:\n\ Maps to `dwc:vernacularName` - \"A common or vernacular name.\"\n\n**Use Cases**:\n\ - Species common names (\"Dodo\", \"Dronte\", \"Coast Redwood\")\n- Product\ \ common names\n- Informal organization names\n\n**Example**:\n```yaml\nhas_or_had_name:\n\ \ - has_or_had_label: \"Dodo\"\n has_or_had_type: CommonName\n has_or_had_language:\ \ \"en\"\n```\n" - exact_mappings: + close_mappings: - dwc:vernacularName annotations: specificity_score: 0.35 @@ -32,7 +32,7 @@ classes: - skos:Concept ScientificName: is_a: NameType - class_uri: dwc:scientificName + class_uri: hc:ScientificName description: "Scientific name following nomenclatural codes (ICZN, ICN, ICNP).\n\ \n**Darwin Core Alignment**:\nMaps to `dwc:scientificName` - \"The full scientific\ \ name, with authorship \nand date information if known.\"\n\n**Use Cases**:\n\ @@ -40,7 +40,7 @@ classes: ```yaml\nhas_or_had_name:\n - has_or_had_label: \"Raphus cucullatus (Linnaeus,\ \ 1758)\"\n has_or_had_type: ScientificName\n has_or_had_language: \"\ la\"\n```\n" - exact_mappings: + close_mappings: - dwc:scientificName annotations: specificity_score: 0.7 @@ -49,7 +49,7 @@ classes: - skos:Concept OfficialName: is_a: NameType - class_uri: skos:prefLabel + class_uri: hc:OfficialName description: "Official, formal, or legal name of an entity.\n\n**Use Cases**:\n\ - Organization legal names\n- Official place names\n- Formal document titles\n\ \n**Example**:\n```yaml\nhas_or_had_name:\n - has_or_had_label: \"Rijksmuseum\ @@ -66,7 +66,7 @@ classes: - skos:Concept TradeName: is_a: NameType - class_uri: schema:alternateName + class_uri: hc:TradeName description: "Commercial, trade, or brand name.\n\n**Use Cases**:\n- Company trading\ \ names (DBA)\n- Product brand names\n- Service marks\n\n**Example**:\n```yaml\n\ has_or_had_name:\n - has_or_had_label: \"The Rijks\"\n has_or_had_type:\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NanIsilEnrichment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NanIsilEnrichment.yaml index d18f5cf8a9..30f0cd8ccc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NanIsilEnrichment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NanIsilEnrichment.yaml @@ -8,11 +8,9 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/DataTierEnum -- ./IsilCodeEntry -- ./SourceProvenance -default_range: string + - linkml:types + - ../enums/DataTierEnum +# default_range: string classes: NanIsilEnrichment: description: "Nationaal Archief ISIL registry match containing ISIL codes, institution\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NationalArchives.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NationalArchives.yaml index 6fa873f1fd..c2eb35fad7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NationalArchives.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NationalArchives.yaml @@ -15,24 +15,12 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./NationalArchivesRecordSetType -- ./NationalArchivesRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: NationalArchives: description: Archives of a country. National archives are the principal archival institutions of a nation state, responsible for preserving and providing access to records of the central government and other materials of national importance. They typically have legal mandates for records management and are custodians of a nation's documentary heritage. @@ -41,10 +29,9 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - has_or_had_scope - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q2122214 close_mappings: @@ -53,7 +40,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NationalArchivesRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NationalArchivesRecordSetType.yaml index 34f60dec08..834513f72d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NationalArchivesRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NationalArchivesRecordSetType.yaml @@ -8,12 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: NationalArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections of national archival records. @@ -31,7 +28,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score slot_usage: has_or_had_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NationalArchivesRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NationalArchivesRecordSetTypes.yaml index 42534968df..759d20237e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NationalArchivesRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NationalArchivesRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./NationalArchives -- ./NationalArchivesRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./NationalArchivesRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: GovernmentAdministrativeFonds: is_a: NationalArchivesRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Government ministry and agency administrative\ \ records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType\ \ following the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept LegislativeRecordSeries: is_a: NationalArchivesRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Parliamentary and legislative documentation.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by NationalArchives custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept DiplomaticCorrespondenceCollection: is_a: NationalArchivesRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for International relations and diplomatic\ \ records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType\ \ following the collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,16 +136,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by NationalArchives custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept NationalStatisticsSeries: is_a: NationalArchivesRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Census and national statistical records.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -171,7 +153,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -192,6 +173,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by NationalArchives custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NationalTreasure.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NationalTreasure.yaml index 5a581becac..0e8f50f637 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NationalTreasure.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NationalTreasure.yaml @@ -7,27 +7,20 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/custodian_only -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/custodian_only + - ../slots/identified_by + - ../slots/has_or_had_score classes: NationalTreasure: description: Treasure or artifact that is regarded as emblematic of a nation's cultural heritage, identity, or significance. National treasures are items of exceptional cultural, historical, or artistic value that are protected by law or official designation. This class represents custodial responsibility for such items rather than the items themselves. is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: custodian_only: equals_string: 'true' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NationalTreasureOfFrance.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NationalTreasureOfFrance.yaml index 4004e0aa1b..1c50a19da2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NationalTreasureOfFrance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NationalTreasureOfFrance.yaml @@ -7,26 +7,19 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score classes: NationalTreasureOfFrance: description: "Designation for entities of cultural significance in France (tr\xE9sor national). French national treasures are cultural property of major importance for the national heritage from an artistic, historical, or archaeological standpoint. Export of such items is prohibited, and the state has preferential purchase rights. This class represents institutions with custodial responsibility for such designated items." is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: annotations: skos:prefLabel: National Treasure of France skos:altLabel: "tr\xE9sor national, French National Treasure" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NetAsset.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NetAsset.yaml index 2cc2f82b0b..35a90b981a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NetAsset.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NetAsset.yaml @@ -5,7 +5,7 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types + - linkml:types classes: NetAsset: class_uri: schema:MonetaryAmount diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NetworkAnalysis.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NetworkAnalysis.yaml index 68e2a6fe4a..93f64ad7cd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NetworkAnalysis.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NetworkAnalysis.yaml @@ -7,22 +7,12 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/connections_by_heritage_type -- ../slots/has_or_had_percentage -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./Connection -- ./Heritage -- ./HeritageTypeCount -- ./Percentage -- ./Quantity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/connections_by_heritage_type + - ../slots/has_or_had_percentage + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to default_prefix: hc classes: NetworkAnalysis: @@ -31,14 +21,13 @@ classes: slots: - connections_by_heritage_type - has_or_had_quantity - - specificity_annotation - has_or_had_score - is_or_was_related_to - has_or_had_percentage slot_usage: has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: "Quantity:\n value: 776\n unit: \"connections\"\n" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchive.yaml index e462a8d852..159270b4ae 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchive.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./NewspaperClippingsArchiveRecordSetType -- ./NewspaperClippingsArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: NewspaperClippingsArchive: description: Archive of press clippings, organized by topics. Newspaper clippings archives (Zeitungsausschnittsarchive) systematically collect and organize articles cut from newspapers and periodicals on specific subjects, individuals, or organizations. Before digital databases, these were essential research tools for journalists, researchers, and organizations tracking media coverage. @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q65651503 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchiveRecordSetType.yaml index 526e1c17a7..9db74ede37 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: NewspaperClippingsArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by NewspaperClippingsArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchiveRecordSetTypes.yaml index 3393b22b9c..59b67847c0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchiveRecordSetTypes.yaml @@ -17,21 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./NewspaperClippingsArchive -- ./NewspaperClippingsArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./NewspaperClippingsArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: ClippingsCollection: is_a: NewspaperClippingsArchiveRecordSetType @@ -39,7 +33,7 @@ classes: description: "A rico:RecordSetType for Newspaper clippings.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -50,7 +44,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -75,16 +68,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept SubjectFileCollection: is_a: NewspaperClippingsArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Subject-based clipping files.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -95,7 +85,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -118,6 +107,3 @@ classes: custodians. Inverse of rico:isOrWasHolderOf. annotations: custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NobilityArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NobilityArchive.yaml index ca2eaa03e8..7ee3b6fd34 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NobilityArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NobilityArchive.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./NobilityArchiveRecordSetType -- ./NobilityArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: NobilityArchive: description: Collection of historical documents and information about members of the nobility. Nobility archives preserve records documenting noble families, their genealogies, titles, properties, and activities. They may include charters, correspondence, estate records, heraldic materials, and family papers. Often held by noble families themselves or deposited in state or regional archives. @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q355358 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NobilityArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NobilityArchiveRecordSetType.yaml index 66e8e683f8..8e305b069e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NobilityArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NobilityArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: NobilityArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by NobilityArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NobilityArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NobilityArchiveRecordSetTypes.yaml index c44017fe78..854267f97d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NobilityArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NobilityArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./NobilityArchive -- ./NobilityArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./NobilityArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: NobleFamilyPapersFonds: is_a: NobilityArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Noble family papers.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept EstateRecordsSeries: is_a: NobilityArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Estate management records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by NobilityArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept GenealogyCollection: is_a: NobilityArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Genealogical documentation.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by NobilityArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NonProfitType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NonProfitType.yaml index 55f2d5c9bd..98ffd3a59b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NonProfitType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NonProfitType.yaml @@ -7,20 +7,14 @@ description: 'Specialized CustodianType for non-profit organizations (NGOs) focu Coverage: Corresponds to ''N'' (NGO) in GLAMORCUBESFIXPHDNT taxonomy. ' imports: -- linkml:types -- ../enums/NonProfitCustodianTypeEnum -- ../slots/has_or_had_beneficiary -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/nonprofit_subtype -- ../slots/organizational_mission -- ../slots/partnership_model -- ../slots/specificity_annotation -- ./CustodianType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/NonProfitCustodianTypeEnum + - ../slots/has_or_had_beneficiary + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/nonprofit_subtype + - ../slots/organizational_mission + - ../slots/partnership_model prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -170,11 +164,10 @@ classes: - nonprofit_subtype - organizational_mission - partnership_model - - specificity_annotation - has_or_had_score slot_usage: organizational_mission: - range: string +# range: string required: true examples: - value: Heritage advocacy, Awareness, Policy influence @@ -185,7 +178,7 @@ classes: - value: Global, 100+ countries, 10 regional offices - value: National (Netherlands), 500 members has_or_had_beneficiary: - range: string +# range: string multivalued: true required: true examples: @@ -193,7 +186,7 @@ classes: - value: Conservation professionals, Students - value: Museums, Libraries, Heritage managers partnership_model: - range: string +# range: string required: true examples: - value: Membership network, Co-funded programs, Coalitions diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NormalizedLocation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NormalizedLocation.yaml index 294567d99b..9f61ca1e8c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NormalizedLocation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NormalizedLocation.yaml @@ -10,11 +10,8 @@ prefixes: locn: http://www.w3.org/ns/locn# geo: http://www.w3.org/2003/01/geo/wgs84_pos# imports: -- linkml:types -- ./CoordinateProvenance -- ./Coordinates -- ./WikidataEntity -default_range: string + - linkml:types +# default_range: string classes: NormalizedLocation: description: "Normalized geographic location with standardized address components,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NotableExample.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NotableExample.yaml index 77484a2621..23001b0758 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NotableExample.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NotableExample.yaml @@ -7,11 +7,11 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/example_location -- ../slots/example_name -- ../slots/example_note -- ../slots/example_wikidata_id + - linkml:types + - ../slots/example_location + - ../slots/example_name + - ../slots/example_note + - ../slots/example_wikidata_id classes: NotableExample: class_uri: hc:NotableExample diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NotarialArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NotarialArchive.yaml index 63f17c9ce6..dc9139d4c2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NotarialArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NotarialArchive.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./NotarialArchiveRecordSetType -- ./NotarialArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: NotarialArchive: description: Type of archive housing notarial records. Notarial archives preserve records created by notaries in the course of their official duties, including contracts, wills, property transactions, and other legal instruments. These records are essential for legal history, genealogy, and understanding economic and social relationships in historical societies. @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q8203685 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NotarialArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NotarialArchiveRecordSetType.yaml index 7e7e6c970b..d5dae6b8f7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NotarialArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NotarialArchiveRecordSetType.yaml @@ -15,13 +15,10 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: NotarialArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by NotarialArchive custodians. @@ -31,7 +28,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/NotarialArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NotarialArchiveRecordSetTypes.yaml index 9532c9d7b9..fb881cf0df 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NotarialArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NotarialArchiveRecordSetTypes.yaml @@ -17,21 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./NotarialArchive -- ./NotarialArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./NotarialArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: NotarialActsSeries: is_a: NotarialArchiveRecordSetType @@ -39,7 +33,7 @@ classes: description: "A rico:RecordSetType for Notarial deeds and contracts.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -50,7 +44,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -75,16 +68,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept ProtocolSeries: is_a: NotarialArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Notarial protocols.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -95,7 +85,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -118,6 +107,3 @@ classes: Inverse of rico:isOrWasHolderOf. annotations: custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Note.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Note.yaml index 739ce44571..5545e03940 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Note.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Note.yaml @@ -13,21 +13,16 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_score -- ../slots/language -- ../slots/note_content -- ../slots/note_date -- ../slots/note_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/has_or_had_score + - ../slots/language + - ../slots/note_content + - ../slots/note_date + - ../slots/note_type classes: Note: - class_uri: skos:note + class_uri: hc:Note description: | A typed note with optional provenance metadata. @@ -60,10 +55,8 @@ classes: - `feature_note` (string) → has_or_had_note with Note class - Other *_note slots per slot_fixes.yaml - exact_mappings: - - skos:note - close_mappings: + - skos:note - rdfs:comment - dcterms:description @@ -72,12 +65,11 @@ classes: - note_content - note_date - language - - specificity_annotation - has_or_had_score slot_usage: note_type: - range: string +# range: string required: false examples: - value: claim @@ -86,13 +78,13 @@ classes: - value: extraction - value: general note_content: - range: string +# range: string required: true note_date: range: date required: false language: - range: string +# range: string required: false pattern: "^[a-z]{2}$" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Notes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Notes.yaml index 607427888b..e829553811 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Notes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Notes.yaml @@ -13,21 +13,16 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_score # was: template_specificity -- ../slots/language -- ../slots/note_content -- ../slots/note_date -- ../slots/note_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/has_or_had_score # was: template_specificity + - ../slots/language + - ../slots/note_content + - ../slots/note_date + - ../slots/note_type classes: Notes: - class_uri: skos:note + class_uri: hc:Notes description: | A typed note with optional provenance metadata. @@ -50,10 +45,8 @@ classes: **Replaces**: - `appraisal_notes` (string) - now typed with note_type - exact_mappings: - - skos:note - close_mappings: + - skos:note - rdfs:comment - dcterms:description @@ -62,25 +55,24 @@ classes: - note_content - note_date - language - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: note_type: - range: string +# range: string required: false examples: - value: appraisal - value: arrangement - value: conservation note_content: - range: string +# range: string required: true note_date: range: date required: false language: - range: string +# range: string required: false pattern: "^[a-z]{2}$" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OAIPMHEndpoint.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OAIPMHEndpoint.yaml index 1737f959a1..483992ce71 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OAIPMHEndpoint.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OAIPMHEndpoint.yaml @@ -9,18 +9,12 @@ prefixes: schema: http://schema.org/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/OAIDeletedRecordPolicyEnum -- ../enums/OAIGranularityEnum -- ../metadata -- ../slots/has_or_had_score -- ../slots/response_format -- ../slots/specificity_annotation -- ./DataServiceEndpoint -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/OAIDeletedRecordPolicyEnum + - ../enums/OAIGranularityEnum + - ../metadata + - ../slots/has_or_had_score + - ../slots/response_format classes: OAIPMHEndpoint: is_a: DataServiceEndpoint @@ -56,7 +50,6 @@ classes: - http://www.openarchives.org/OAI/openarchivesprotocol.html - https://www.openarchives.org/OAI/2.0/guidelines.htm slots: - - specificity_annotation - has_or_had_score - protocol_version annotations: @@ -77,7 +70,6 @@ classes: ' slots: - - specificity_annotation - has_or_had_score - name - record_count diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Observation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Observation.yaml index eeb8dfa222..16bfcc7c78 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Observation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Observation.yaml @@ -15,25 +15,20 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_score classes: Observation: class_uri: sosa:Observation description: "Abstract base class for observational evidence from sources.\n\n**Purpose**:\nObservation is the base class for source-based evidence about entities.\nConcrete implementations include:\n- CustodianObservation - Evidence about heritage custodians\n- PersonObservation - Evidence about people (staff, directors)\n- WebObservation - Evidence from web scraping\n\n**PiCo Model Alignment**:\nFollowing the Persons in Context (PiCo) model, observations are\ndiscrete pieces of evidence from specific sources that may be\ncombined to reconstruct formal entities.\n\n**PROV-O Semantics**:\n- `prov:Entity`: Observations are things with provenance\n- `is_or_was_based_on`: Links derived entities back to observations\n\n**Relationship to EntityReconstruction**:\n```\nObservation[] (source evidence)\n \u2502\n \u2514\u2500\u2500 is_or_was_based_on \u2190 EntityReconstruction\n (reconstructed formal entity)\n```\n" exact_mappings: - sosa:Observation + broad_mappings: - prov:Entity close_mappings: - crm:E13_Attribute_Assignment abstract: true slots: - - specificity_annotation - has_or_had_score annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OfficialInstitutionType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OfficialInstitutionType.yaml index 54cd782710..e6f6d41457 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OfficialInstitutionType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OfficialInstitutionType.yaml @@ -2,21 +2,16 @@ id: https://nde.nl/ontology/hc/class/OfficialInstitutionType name: OfficialInstitutionType title: Official Institution Type Classification imports: -- linkml:types -- ../classes/GovernmentHierarchy -- ../enums/OfficialInstitutionTypeEnum -- ../slots/has_or_had_mandate # was: heritage_mandate -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_part_of -- ../slots/official_institution_subtype -- ../slots/oversight_jurisdiction -- ../slots/policy_authority -- ../slots/regulatory_authority -- ../slots/specificity_annotation -- ./CustodianType -- ./Mandate -- ./GovernmentHierarchy + - linkml:types + - ../enums/OfficialInstitutionTypeEnum + - ../slots/has_or_had_mandate # was: heritage_mandate + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_part_of + - ../slots/official_institution_subtype + - ../slots/oversight_jurisdiction + - ../slots/policy_authority + - ../slots/regulatory_authority classes: OfficialInstitutionType: is_a: CustodianType @@ -150,20 +145,21 @@ classes: - oversight_jurisdiction - policy_authority - regulatory_authority - - specificity_annotation - has_or_had_score slot_usage: is_or_was_part_of: - range: GovernmentHierarchy +# range: string # uriorcurie + # range: GovernmentHierarchy examples: - value: has_or_had_label: National Government has_or_had_tier: has_or_had_label: National has_or_had_mandate: # was: heritage_mandate - migrated per Rule 53 (2026-01-28) - range: Mandate +# range: string # uriorcurie + # range: Mandate multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -173,10 +169,10 @@ classes: range: boolean required: false oversight_jurisdiction: - range: string +# range: string required: false policy_authority: - range: string +# range: string required: false has_or_had_type: equals_expression: '["hc:OfficialInstitutionType"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OnlineNewsArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OnlineNewsArchive.yaml index 2c695663d9..9199e20ad9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OnlineNewsArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OnlineNewsArchive.yaml @@ -15,26 +15,13 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/platform_type_id -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DigitalPlatformType -- ./DualClassLink -- ./OnlineNewsArchiveRecordSetType -- ./OnlineNewsArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/platform_type_id classes: OnlineNewsArchive: description: Archive of newspapers, magazines, and other periodicals that can be consulted online. Online news archives provide digital access to historical and current news publications, often through searchable databases. They may include digitized historical newspapers or born-digital news content. @@ -43,9 +30,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q2001867 close_mappings: @@ -56,7 +42,7 @@ classes: mixins: - DigitalPlatformType slot_usage: - has_or_had_identifier: null + identified_by: null platform_type_id: identifier: false has_or_had_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OnlineNewsArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OnlineNewsArchiveRecordSetType.yaml index 6cc31f7b0a..950a906da7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OnlineNewsArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OnlineNewsArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: OnlineNewsArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by OnlineNewsArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OnlineNewsArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OnlineNewsArchiveRecordSetTypes.yaml index b6e734c11d..9f3d71c08b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OnlineNewsArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OnlineNewsArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./OnlineNewsArchive -- ./OnlineNewsArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./OnlineNewsArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: DigitalNewsCollection: is_a: OnlineNewsArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Digital news content.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept WebPublicationFonds: is_a: OnlineNewsArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Online publication records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by OnlineNewsArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OpeningHour.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OpeningHour.yaml index 4918a289b8..c2e7ac5293 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OpeningHour.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OpeningHour.yaml @@ -7,7 +7,7 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types + - linkml:types classes: OpeningHour: class_uri: schema:OpeningHoursSpecification diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OpeningHours.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OpeningHours.yaml index 021ffbdcf5..276c1d1b40 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OpeningHours.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OpeningHours.yaml @@ -9,9 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# time: http://www.w3.org/2006/time# imports: -- linkml:types -- ./OpeningPeriod -default_range: string + - linkml:types +# default_range: string classes: OpeningHours: description: "Business opening hours for heritage institutions. Contains current\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OpeningHoursMap.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OpeningHoursMap.yaml index fbd40ea9f4..4278e6c73d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OpeningHoursMap.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OpeningHoursMap.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: OpeningHoursMap: description: Opening hours as a day-keyed map diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OpeningPeriod.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OpeningPeriod.yaml index dc4a7d385a..eff6d56c3f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OpeningPeriod.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OpeningPeriod.yaml @@ -9,9 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# time: http://www.w3.org/2006/time# imports: -- linkml:types -- ./TimeSlot -default_range: string + - linkml:types +# default_range: string classes: OpeningPeriod: description: "Single opening period representing a time window when an institution\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OperationalArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OperationalArchive.yaml index 7588a700e9..ccae3aabc3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OperationalArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OperationalArchive.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: OperationalArchive: class_uri: schema:ArchiveComponent diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OperationalUnit.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OperationalUnit.yaml index 6965c340b6..3924d40360 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OperationalUnit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OperationalUnit.yaml @@ -8,8 +8,8 @@ prefixes: org: http://www.w3.org/ns/org# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: OperationalUnit: class_uri: org:OrganizationalUnit diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Organization.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Organization.yaml index 33cf5c56ad..59dcbd3ad1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Organization.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Organization.yaml @@ -7,27 +7,20 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/organizational_level -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/organizational_level classes: Organization: description: Social entity established to meet needs or pursue goals. In the heritage context, this is a broad category encompassing any formal organizational structure that may have archival or heritage custodial responsibilities. More specific organization types should be preferred when available. is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: organizational_level: equals_string: broad category annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationBranch.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationBranch.yaml index 7fa29bc75a..f4b01ea954 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationBranch.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationBranch.yaml @@ -2,40 +2,23 @@ id: https://nde.nl/ontology/hc/class/organization-branch name: organization_branch_class title: OrganizationBranch Class imports: -- linkml:types -- ../classes/Quantity -- ../enums/OrganizationBranchTypeEnum -- ../slots/contact_point -- ../slots/has_or_had_branch -- ../slots/has_or_had_description -- ../slots/has_or_had_head -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_branch_of -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/located_at -- ../slots/refers_to_custodian -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./AuxiliaryPlace -- ./BranchType -- ./Custodian -- ./CustodianObservation -- ./OrganizationalStructure -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./OrganizationBranch -- ./Person -- ./Quantity + - linkml:types + - ../enums/OrganizationBranchTypeEnum + - ../slots/contact_point + - ../slots/has_or_had_branch + - ../slots/has_or_had_description + - ../slots/has_or_had_head + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_branch_of + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/located_at + - ../slots/refers_to_custodian + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -52,7 +35,7 @@ classes: class_uri: org:OrganizationalUnit description: "Formal organizational branch or sub-organization of a heritage custodian\nthat operates at a specific physical location (AuxiliaryPlace).\n\n**CRITICAL DISTINCTION FROM OrganizationalStructure**:\n\n| OrganizationBranch | OrganizationalStructure |\n|-------------------|------------------------|\n| **Formal** branches with administrative status | **Informal** operational units |\n| Tied to PHYSICAL LOCATION (AuxiliaryPlace) | May or may not have fixed location |\n| Semi-autonomous (may have own budget, staff) | Part of main organizational hierarchy |\n| Examples: Regional archive, branch library | Examples: Department, team, division |\n\n**W3C ORG ALIGNMENT**:\n\n`org:OrganizationalUnit` - \"An Organization such as a University Support Unit \nwhich is part of some larger FormalOrganization and only has full recognition \nwithin the context of that FormalOrganization.\"\n\nKey properties:\n- `org:unitOf` - links unit to parent organization\n- `org:hasSite` - links organization\ \ to physical site\n- `org:hasSubOrganization` - links to sub-branches\n\n**THREE-TIER ORGANIZATIONAL MODEL**:\n\n1. **Custodian** (hub): The main heritage institution\n2. **OrganizationBranch** (formal sub-organization): \n - Located at AuxiliaryPlace\n - Semi-autonomous branch\n3. **OrganizationalStructure** (informal units):\n - Departments, teams within branch or main org\n - Can be assigned to branch via has_operational_unit\n\n**RELATIONSHIP PATTERN**:\n\n```\nCustodian (hub)\n \u2502\n \u251C\u2500\u2500 place_designation \u2192 CustodianPlace (main headquarters)\n \u2502 \u2514\u2500\u2500 auxiliary_places \u2192 AuxiliaryPlace (branch sites)\n \u2502 \u2514\u2500\u2500 hosts_branch \u2192 OrganizationBranch (THIS CLASS)\n \u2502 \u2514\u2500\u2500 has_operational_unit \u2192 OrganizationalStructure\n \u2502\n \u2514\u2500\u2500 organizational_structure \u2192 OrganizationalStructure (main org units)\n```\n\n**USE CASES**:\n\n1. **Regional Archive\ - \ Branches**:\n - National Archives \u2192 Regional Office Noord-Holland\n - Regional office has own staff, reading room, collections\n \n2. **University Library Branches**:\n - Main library \u2192 Science Library \u2192 Medical Library\n - Each branch at different campus location\n \n3. **Museum Satellite Galleries**:\n - Main museum \u2192 Contemporary Art Wing (off-site)\n - Separate building, curated exhibitions\n \n4. **Conservation/Research Centers**:\n - Main institution \u2192 Conservation Lab (different building)\n - Specialized facility with own staff\n\n**Example - National Archives Branch**:\n```yaml\nAuxiliaryPlace:\n place_name: \"Regionaal Historisch Centrum Noord-Holland\"\n auxiliary_place_type: BRANCH_OFFICE\n hosts_branch:\n - has_or_had_identifier: \"https://nde.nl/ontology/hc/branch/na-rhc-noord-holland\"\n has_or_had_label: \"RHC Noord-Holland\"\n branch_type: REGIONAL_OFFICE\n has_operational_unit:\n - unit_name:\ + \ Branches**:\n - National Archives \u2192 Regional Office Noord-Holland\n - Regional office has own staff, reading room, collections\n \n2. **University Library Branches**:\n - Main library \u2192 Science Library \u2192 Medical Library\n - Each branch at different campus location\n \n3. **Museum Satellite Galleries**:\n - Main museum \u2192 Contemporary Art Wing (off-site)\n - Separate building, curated exhibitions\n \n4. **Conservation/Research Centers**:\n - Main institution \u2192 Conservation Lab (different building)\n - Specialized facility with own staff\n\n**Example - National Archives Branch**:\n```yaml\nAuxiliaryPlace:\n place_name: \"Regionaal Historisch Centrum Noord-Holland\"\n auxiliary_place_type: BRANCH_OFFICE\n hosts_branch:\n - identified_by: \"https://nde.nl/ontology/hc/branch/na-rhc-noord-holland\"\n has_or_had_label: \"RHC Noord-Holland\"\n branch_type: REGIONAL_OFFICE\n has_operational_unit:\n - unit_name:\ \ \"Reading Room Services\"\n - unit_name: \"Digitization Team\"\n is_branch_of: \"https://nde.nl/ontology/hc/nl-na\"\n```\n\n**DISTINCTION FROM schema:branchOf**:\n\nSchema.org `branchOf` links commercial branches (e.g., bank branches).\n`org:unitOf` is more appropriate for heritage institutions as it:\n- Models public sector organizational hierarchies\n- Allows for semi-autonomous units\n- Integrates with formal organizational structures\n" exact_mappings: - org:OrganizationalUnit @@ -66,7 +49,7 @@ classes: slots: - has_or_had_description - has_or_had_head - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_type - contact_point @@ -74,34 +57,33 @@ classes: - is_branch_of - located_at - refers_to_custodian - - specificity_annotation - has_or_had_quantity - has_or_had_score - temporal_extent - is_or_was_derived_from - is_or_was_generated_by slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/branch/rm-schiphol-exhibition has_or_had_label: - range: string +# range: string required: true multivalued: false examples: - value: Rijksmuseum Schiphol - value: Conservation Division - Amersfoort has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: ExhibitionSpaceUnit - value: ConservationLabUnit has_or_had_description: - range: string +# range: string examples: - value: Small exhibition space at Schiphol Airport featuring rotating highlights from the Rijksmuseum collection. - value: Off-site collection storage facility managing overflow objects and art storage. @@ -112,7 +94,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/aux-place/rijksmuseum-schiphol is_branch_of: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 @@ -131,9 +113,9 @@ classes: full_name: Dr. Maria van der Berg has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type contact_point: - range: string +# range: string examples: - value: schiphol@rijksmuseum.nl temporal_extent: @@ -147,7 +129,7 @@ classes: begin_of_the_begin: '2002-10-01' end_of_the_end: '2020-03-15' is_or_was_derived_from: - range: CustodianObservation +# range: string # CustodianObservation multivalued: true required: false is_or_was_generated_by: @@ -173,7 +155,7 @@ classes: - https://www.w3.org/TR/vcard-rdf/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/branch/rm-schiphol + identified_by: https://nde.nl/ontology/hc/branch/rm-schiphol has_or_had_label: Rijksmuseum Schiphol branch_type: EXHIBITION_SPACE has_or_had_description: Small exhibition space at Schiphol Airport featuring rotating highlights from the collection. @@ -182,15 +164,15 @@ classes: - unit_name: Exhibition Curation Team has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type is_branch_of: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type contact_point: schiphol@rijksmuseum.nl refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/branch/rm-depot-operations + identified_by: https://nde.nl/ontology/hc/branch/rm-depot-operations has_or_had_label: Collection Storage Operations - Amersfoort branch_type: STORAGE_MANAGEMENT has_or_had_description: Off-site collection storage facility managing overflow objects and art storage. @@ -201,17 +183,17 @@ classes: is_branch_of: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/branch/na-rhc-nh + identified_by: https://nde.nl/ontology/hc/branch/na-rhc-nh has_or_had_label: Regionaal Historisch Centrum Noord-Holland branch_type: REGIONAL_OFFICE has_or_had_description: Regional archives center serving Noord-Holland province, providing reading room services and archival research support. is_branch_of: https://nde.nl/ontology/hc/nl-na has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type refers_to_custodian: https://nde.nl/ontology/hc/nl-na annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationUnit.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationUnit.yaml index 20380f85b7..b0a334e8d6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationUnit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationUnit.yaml @@ -14,7 +14,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types + - linkml:types classes: OrganizationUnit: class_uri: org:OrganizationalUnit diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalChange.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalChange.yaml index a4b63a6154..14f0f66803 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalChange.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalChange.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# org: http://www.w3.org/ns/org# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: OrganizationalChange: description: "Organizational change record documenting closures, mergers, renames,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml index 8a12d81e20..f0ec28c276 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml @@ -13,33 +13,19 @@ prefixes: geosparql: http://www.opengis.net/ont/geosparql# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_documentation -- ../slots/has_or_had_origin -- ../slots/has_or_had_rationale -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/has_or_had_url -- ../slots/is_or_was_transferred_to -- ../slots/specificity_annotation -- ../slots/staff_impact -- ../slots/temporal_extent -- ./CustodianLegalStatus -- ./CustodianPlace -- ./Documentation -- ./GeoSpatialPlace -- ./OrganizationalStructure -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./URL -- ./Custodian -- ./Rationale -- ../enums/OrganizationalChangeEventTypeEnum + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_documentation + - ../slots/has_or_had_origin + - ../slots/has_or_had_rationale + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/has_or_had_url + - ../slots/is_or_was_transferred_to + - ../slots/staff_impact + - ../slots/temporal_extent + - ../enums/OrganizationalChangeEventTypeEnum classes: OrganizationalChangeEvent: class_uri: crm:E5_Event @@ -95,7 +81,6 @@ classes: - has_or_had_description - has_or_had_type - has_or_had_origin - - specificity_annotation - staff_impact - has_or_had_score - is_or_was_transferred_to @@ -115,17 +100,17 @@ classes: begin_of_the_begin: '2013-04-01' has_or_had_description: required: true - range: string +# range: string examples: - value: Merger of Restoration Department (12 FTE, founded 1885) and Research Department (16 FTE) to form Conservation and Research Department (28 FTE). Implemented as part of museum renovation and reopening strategy. Combined conservation lab facilities and integrated scientific research with conservation practice. has_or_had_rationale: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_description: Part of 10-year museum renovation (2003-2013). Reorganization aimed to integrate conservation science with practice. staff_impact: - range: string +# range: string examples: - value: 28 FTE total (12 from Restoration + 16 from Research). All existing staff retained. 5 new positions created for scientific imaging and digital conservation. 3 staff retirements (planned succession). has_or_had_origin: @@ -143,8 +128,8 @@ classes: place_name: Museumstraat 1 place_specificity: BUILDING has_or_had_documentation: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalStructure.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalStructure.yaml index 73452fd2f7..78d28f75ad 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalStructure.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalStructure.yaml @@ -6,31 +6,17 @@ prefixes: org: http://www.w3.org/ns/org# prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../classes/Quantity -- ../slots/contact_point -- ../slots/has_or_had_label -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_staff_member -- ../slots/has_or_had_type -- ../slots/located_at -- ../slots/parent_unit -- ../slots/refers_to_custodian -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./AuxiliaryPlace -- ./Custodian -- ./CustodianCollection -- ./OrganizationalUnitType -- ./PersonObservation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./OrganizationalStructure -- ./Quantity + - linkml:types + - ../slots/contact_point + - ../slots/has_or_had_label + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_staff_member + - ../slots/has_or_had_type + - ../slots/located_at + - ../slots/parent_unit + - ../slots/refers_to_custodian + - ../slots/temporal_extent classes: OrganizationalStructure: class_uri: org:OrganizationalUnit @@ -42,7 +28,6 @@ classes: - located_at - parent_unit - refers_to_custodian - - specificity_annotation - has_or_had_quantity - has_or_had_staff_member - has_or_had_score @@ -52,13 +37,13 @@ classes: slot_usage: has_or_had_label: required: true - range: string +# range: string examples: - value: Digital Preservation Department - value: Public Services Team - value: Research and Documentation Division has_or_had_type: - range: uriorcurie +# range: string # uriorcurie examples: - value: DEPARTMENT - value: TEAM @@ -70,7 +55,7 @@ classes: has_or_had_label: Collections Division has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type has_or_had_staff_member: range: PersonObservation multivalued: true @@ -90,7 +75,7 @@ classes: - place_name: Depot Amersfoort auxiliary_place_type: STORAGE_FACILITY contact_point: - range: string +# range: string examples: - value: digitization@nationalarchives.nl - value: https://nationalarchives.nl/services/reading-room @@ -109,7 +94,7 @@ classes: range: Custodian examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/cust/national-archives + identified_by: https://nde.nl/ontology/hc/cust/national-archives comments: - OrganizationalStructure models INFORMAL operational units - GovernanceStructure models FORMAL legal structure @@ -127,12 +112,12 @@ classes: has_or_had_type: DEPARTMENT has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type contact_point: digipres@nationalarchives.nl temporal_extent: begin_of_the_begin: '2010-01-01' refers_to_custodian: - has_or_had_identifier: https://nde.nl/ontology/hc/cust/national-archives-nl + identified_by: https://nde.nl/ontology/hc/cust/national-archives-nl - value: id: https://nde.nl/ontology/hc/org-unit/rijks-conservation has_or_had_label: @@ -143,11 +128,11 @@ classes: has_or_had_label: Collections Care Division has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type temporal_extent: begin_of_the_begin: '1885-07-13' refers_to_custodian: - has_or_had_identifier: https://nde.nl/ontology/hc/cust/national-archives-nl + identified_by: https://nde.nl/ontology/hc/cust/national-archives-nl - value: id: https://nde.nl/ontology/hc/org-unit/rijks-conservation has_or_had_label: @@ -158,11 +143,11 @@ classes: has_or_had_label: Collections Care Division has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type temporal_extent: begin_of_the_begin: '1885-07-13' refers_to_custodian: - has_or_had_identifier: https://nde.nl/ontology/hc/cust/rijksmuseum + identified_by: https://nde.nl/ontology/hc/cust/rijksmuseum annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalSubdivision.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalSubdivision.yaml index 5a34f822d5..bc3545828b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalSubdivision.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalSubdivision.yaml @@ -7,16 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/organizational_level -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/organizational_level classes: OrganizationalSubdivision: description: Organization that is a part of a larger organization. Organizational subdivisions include departments, divisions, branches, sections, and other units within a parent organization. In archival contexts, understanding organizational structure is essential for records provenance and hierarchical arrangement. @@ -25,11 +19,10 @@ classes: mixins: - OrganizationalStructure slots: - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: organizational_level: equals_string: subdivision annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalUnitType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalUnitType.yaml index 3517860cb6..d53e4fc5be 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalUnitType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalUnitType.yaml @@ -9,19 +9,14 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score classes: OrganizationalUnitType: class_uri: skos:Concept @@ -34,26 +29,25 @@ classes: related_mappings: - schema:Organization slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code - has_or_had_hypernym - has_or_had_hyponym - - specificity_annotation - has_or_had_score slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/unit-type/[a-z-]+$ has_or_had_code: - range: string +# range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ has_or_had_label: - range: string +# range: string required: true multivalued: true annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalUnitTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalUnitTypes.yaml index 210ad85fbe..a53ede0bea 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalUnitTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationalUnitTypes.yaml @@ -7,9 +7,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ./OrganizationalUnitType + - ./OrganizationalUnitType + - linkml:types + - ../slots/has_or_had_code classes: DirectorateUnit: is_a: OrganizationalUnitType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Organizer.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Organizer.yaml index 8140537f57..da35535fad 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Organizer.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Organizer.yaml @@ -12,10 +12,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_role -- ./OrganizerRole + - linkml:types + - ../metadata + - ../slots/has_or_had_role classes: Organizer: class_uri: schema:Organization @@ -110,11 +109,11 @@ slots: organizer_entity: slot_uri: schema:organizer description: Reference to the organizing institution - range: uriorcurie +# range: string # uriorcurie required: true organizer_contribution: slot_uri: schema:description description: Description of organizational contribution - range: string +# range: string required: false diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizerRole.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizerRole.yaml index 4db0593113..5dc5af743b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizerRole.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizerRole.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata + - linkml:types + - ../metadata classes: OrganizerRole: class_uri: schema:Role @@ -63,13 +63,13 @@ slots: role_type: slot_uri: schema:roleName description: Type of organizer role - range: string +# range: string required: true role_description: slot_uri: schema:description description: Additional description of the organizational role - range: string +# range: string required: false enums: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntry.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntry.yaml index 328689053e..c86b2536bf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntry.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntry.yaml @@ -9,18 +9,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# dcat: http://www.w3.org/ns/dcat# imports: -- linkml:types -- ../enums/InstitutionTypeCodeEnum -- ./DuplicateEntry -- ./MowInscription -- ./OriginalEntryCoordinates -- ./OriginalEntryIdentifier -- ./OriginalEntryIdentifiersDict -- ./OriginalEntryLocation -- ./OriginalEntryWikidata -- ./ReferenceLink -- ./TimeEntry -default_range: string + - linkml:types + - ../enums/InstitutionTypeCodeEnum +# default_range: string classes: OriginalEntry: description: "Source registry data from NDE CSV or CH-Annotator extraction, preserving\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryCoordinates.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryCoordinates.yaml index 7cb6ce5828..6b6f5ef709 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryCoordinates.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryCoordinates.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# geo: http://www.w3.org/2003/01/geo/wgs84_pos# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: OriginalEntryCoordinates: description: "Geographic coordinates from an original source entry, supporting\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryIdentifier.yaml index 684d6822a5..c148481f80 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryIdentifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryIdentifier.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: OriginalEntryIdentifier: description: "Identifier from an original source entry, supporting ISIL, Website,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryIdentifiersDict.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryIdentifiersDict.yaml index 4a2eee5ea2..b52dfca05b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryIdentifiersDict.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryIdentifiersDict.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: OriginalEntryIdentifiersDict: description: "Dictionary-format identifiers from original source, used by Palestinian\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryLocation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryLocation.yaml index eab68d0802..668967d02b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryLocation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryLocation.yaml @@ -2,6 +2,7 @@ id: https://nde.nl/ontology/hc/classes/OriginalEntryLocation name: OriginalEntryLocation title: OriginalEntryLocation prefixes: + geo: http://www.opengis.net/ont/geosparql# linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ @@ -9,8 +10,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# locn: http://www.w3.org/ns/locn# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: OriginalEntryLocation: description: "Location from an original source entry including city, region, country,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryWikidata.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryWikidata.yaml index 68e0210fc0..611efba0bd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryWikidata.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OriginalEntryWikidata.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# wikibase: http://wikiba.se/ontology# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: OriginalEntryWikidata: description: "Wikidata reference from an original source entry, including the\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OutdoorSeating.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OutdoorSeating.yaml index 35b519825f..b59701d0c4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OutdoorSeating.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OutdoorSeating.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: OutdoorSeating: class_uri: schema:LocationFeatureSpecification diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OutdoorSite.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OutdoorSite.yaml index 94c05abb3a..12debd15bc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OutdoorSite.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OutdoorSite.yaml @@ -2,49 +2,31 @@ id: https://nde.nl/ontology/hc/class/outdoor-site name: outdoor_site_class title: OutdoorSite Class imports: -- linkml:types -- ../classes/Animal -- ../classes/Quantity -- ../classes/Species -- ../enums/FeatureTypeEnum -- ../enums/OutdoorSiteTypeEnum -- ../slots/conservation_status -- ../slots/contains_or_contained -- ../slots/has_or_had_accessibility_feature -- ../slots/has_or_had_area -- ../slots/has_or_had_artwork_count -- ../slots/has_or_had_fee -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_type # was: feature_type_classification -- ../slots/historic_garden_designation -- ../slots/is_open_to_public -- ../slots/is_or_was_classified_as # was: bio_type_classification -- ../slots/is_or_was_derived_from # was: was_derived_from -- ../slots/is_or_was_generated_by # was: was_generated_by -- ../slots/opening_hour -- ../slots/outdoor_site_description -- ../slots/outdoor_site_id -- ../slots/outdoor_site_name -- ../slots/outdoor_site_type -- ../slots/period_covered -- ../slots/plant_species_count -- ../slots/seasonal_hour -- ../slots/specificity_annotation -- ./AdmissionFee -- ./Area -- ./BioTypeClassification # Type/Types class hierarchy (was BioCustodianTypeEnum) -- ./BioTypeClassifications # 15 concrete subclasses -- ./CustodianObservation -- ./FeatureType -- ./FeatureTypes -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./Animal + - linkml:types + - ../enums/FeatureTypeEnum + - ../enums/OutdoorSiteTypeEnum + - ../slots/conservation_status + - ../slots/contains_or_contained + - ../slots/has_or_had_accessibility_feature + - ../slots/has_or_had_area + - ../slots/has_or_had_artwork_count + - ../slots/has_or_had_fee + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_type # was: feature_type_classification + - ../slots/historic_garden_designation + - ../slots/is_open_to_public + - ../slots/is_or_was_classified_as # was: bio_type_classification + - ../slots/is_or_was_derived_from # was: was_derived_from + - ../slots/is_or_was_generated_by # was: was_generated_by + - ../slots/opening_hour + - ../slots/outdoor_site_description + - ../slots/outdoor_site_id + - ../slots/outdoor_site_name + - ../slots/outdoor_site_type + - ../slots/period_covered + - ../slots/plant_species_count + - ../slots/seasonal_hour prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -111,26 +93,25 @@ classes: - period_covered - plant_species_count - seasonal_hour - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - is_or_was_derived_from # was: was_derived_from - migrated per Rule 53 - is_or_was_generated_by # was: was_generated_by - migrated per Rule 53 slot_usage: outdoor_site_id: - range: uriorcurie +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/kroller-muller-sculpture outdoor_site_name: - range: string +# range: string required: true examples: - value: Kröller-Müller Beeldentuin - value: Paleis Het Loo Tuinen - value: Archeologisch Park Matilo outdoor_site_description: - range: string +# range: string examples: - value: One of Europe's largest sculpture gardens with 160 works set in 25 hectares of park landscape within De Hoge Veluwe National Park. @@ -184,9 +165,9 @@ classes: examples: - value: 2500 contains_or_contained: - range: string +# range: string multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: outdoor_site_id: https://nde.nl/ontology/hc/aux/kroller-muller-sculpture diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Output.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Output.yaml index 9a756b2ba9..f07b8eb1eb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Output.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Output.yaml @@ -8,9 +8,9 @@ prefixes: prov: http://www.w3.org/ns/prov# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: Output: class_uri: prov:Entity diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OutputData.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OutputData.yaml index 5a2d875c35..657dcadfbf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OutputData.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OutputData.yaml @@ -16,11 +16,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_format -- ../slots/has_or_had_identifier -- ./DataFormat + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_format + - ../slots/identified_by classes: OutputData: class_uri: hc:OutputData @@ -42,16 +41,16 @@ classes: slots: - has_or_had_format - has_or_had_description - - has_or_had_identifier + - identified_by slot_usage: has_or_had_format: - range: uriorcurie - inlined: true +# range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_type: JsonFormat has_or_had_description: - range: string +# range: string examples: - value: Temperature and humidity readings from conservation sensors - value: https://analytics.museum.nl/data diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Overview.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Overview.yaml index eead3856c6..2218086c99 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Overview.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Overview.yaml @@ -27,26 +27,18 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label # was: title -- ../slots/has_or_had_score # was: template_specificity -- ../slots/includes_or_included -- ../slots/is_or_was_retrieved_at # was: date_retrieved -- ../slots/link_count -- ../slots/name -- ../slots/source_url -- ../slots/specificity_annotation -- ../slots/temporal_extent # was: valid_from + valid_to -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Timestamp -- ./WebLink + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label # was: title + - ../slots/has_or_had_score # was: template_specificity + - ../slots/includes_or_included + - ../slots/is_or_was_retrieved_at # was: date_retrieved + - ../slots/link_count + - ../slots/name + - ../slots/source_url + - ../slots/temporal_extent # was: valid_from + valid_to default_prefix: hc -default_range: string +# default_range: string classes: Overview: class_uri: dcterms:Collection @@ -99,17 +91,16 @@ classes: - is_or_was_retrieved_at # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23) - link_count - temporal_extent # was: valid_from + valid_to - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: name: - range: string +# range: string has_or_had_label: # was: title - range: string +# range: string includes_or_included: - range: string +# range: string multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type source_url: range: uri is_or_was_retrieved_at: # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23) diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Owner.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Owner.yaml index e487e85a59..76607e20eb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Owner.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Owner.yaml @@ -10,9 +10,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_label classes: Owner: class_uri: crm:E39_Actor @@ -68,10 +68,10 @@ classes: ' slots: - has_or_had_label - - has_or_had_identifier + - identified_by slot_usage: has_or_had_label: - has_or_had_identifier: + identified_by: exact_mappings: - prov:Agent close_mappings: @@ -87,7 +87,7 @@ classes: examples: - value: has_or_had_label: Rijksmuseum - has_or_had_identifier: https://www.wikidata.org/entity/Q190804 + identified_by: https://www.wikidata.org/entity/Q190804 - value: has_or_had_label: Private Collection (Anonymous) - has_or_had_identifier: hc:owner/private-001 \ No newline at end of file + identified_by: hc:owner/private-001 \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PageSection.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PageSection.yaml index 3425e441d4..00efad1496 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PageSection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PageSection.yaml @@ -3,7 +3,7 @@ name: PageSection title: Page Section description: A section of a page. imports: -- linkml:types + - linkml:types classes: PageSection: class_uri: schema:WebPageElement diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ParentOrganizationUnit.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ParentOrganizationUnit.yaml index 3d5c5f8fd9..7ec04eab60 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ParentOrganizationUnit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ParentOrganizationUnit.yaml @@ -7,16 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/organizational_level -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/organizational_level classes: ParentOrganizationUnit: description: Organization that has a subsidiary unit. For companies, this refers to entities that own enough voting stock in another firm to control management and operations. In heritage contexts, this represents organizations that have subordinate archives, museums, or other heritage custodian units under their administrative control. @@ -25,11 +19,10 @@ classes: mixins: - OrganizationalStructure slots: - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: organizational_level: equals_string: parent annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ParishArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ParishArchive.yaml index 1dba6ab121..74c5749ec6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ParishArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ParishArchive.yaml @@ -8,35 +8,23 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./ParishArchiveRecordSetType -- ./ParishArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: ParishArchive: description: Parish archive (Pfarrarchiv). Archives of religious parishes that preserve records of parish administration, sacramental registers (baptisms, marriages, burials), correspondence, and documentation of parish life. Parish archives are among the most important sources for genealogical research and local religious history. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q34544468 close_mappings: @@ -45,7 +33,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HolySacredSiteType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ParishArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ParishArchiveRecordSetType.yaml index d3aa5986a7..75c3f8b566 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ParishArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ParishArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: ParishArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ParishArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ParishArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ParishArchiveRecordSetTypes.yaml index ec9fb6dc49..4a2158ded6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ParishArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ParishArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ParishArchive -- ./ParishArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./ParishArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: ParishSpecificRegisterSeries: is_a: ParishArchiveRecordSetType @@ -35,7 +29,7 @@ classes: \ following the series \norganizational principle as defined by rico-rst:Series.\n\ \n**Note**: This is parish-specific. For the general church parish registers,\ \ see ParishRegisterSeries.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -47,7 +41,6 @@ classes: - ParishRegisterSeries slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -72,16 +65,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept ParishAdministrationFonds: is_a: ParishArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Parish administrative records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -92,7 +82,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -113,16 +102,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ParishArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept SacramentalRecordCollection: is_a: ParishArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Sacramental documentation.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -133,7 +119,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -154,6 +139,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ParishArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ParliamentaryArchives.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ParliamentaryArchives.yaml index 48ab4f1c47..fa275024d2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ParliamentaryArchives.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ParliamentaryArchives.yaml @@ -8,35 +8,23 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./ParliamentaryArchivesRecordSetType -- ./ParliamentaryArchivesRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: ParliamentaryArchives: description: Political archives of parliaments and legislative bodies. Parliamentary archives preserve records documenting the activities of legislative institutions including debates, legislation, committee records, and administrative documentation. They are essential for understanding democratic governance and political history. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q53251146 close_mappings: @@ -45,7 +33,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ParliamentaryArchivesRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ParliamentaryArchivesRecordSetType.yaml index e39116e03a..3337264e90 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ParliamentaryArchivesRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ParliamentaryArchivesRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: ParliamentaryArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ParliamentaryArchives custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ParliamentaryArchivesRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ParliamentaryArchivesRecordSetTypes.yaml index 30faeabb96..016a4e1521 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ParliamentaryArchivesRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ParliamentaryArchivesRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ParliamentaryArchives -- ./ParliamentaryArchivesRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./ParliamentaryArchivesRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: ParliamentaryProceedingsFonds: is_a: ParliamentaryArchivesRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Parliamentary debates and proceedings.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept CommitteeRecordSeries: is_a: ParliamentaryArchivesRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Parliamentary committee documentation.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ParliamentaryArchives custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept LegislativeDraftCollection: is_a: ParliamentaryArchivesRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Bill drafts and legislative history.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ParliamentaryArchives custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Participant.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Participant.yaml index cdc0c5b2d4..635026e9e1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Participant.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Participant.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: Participant: class_uri: schema:Person diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PartyArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PartyArchive.yaml index 5a6b1db131..526828e02e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PartyArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PartyArchive.yaml @@ -8,35 +8,23 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./PartyArchiveRecordSetType -- ./PartyArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: PartyArchive: description: Subclass of political archive focusing on political parties. Party archives preserve records documenting the activities, organization, and history of political parties. Holdings may include organizational records, campaign materials, correspondence, publications, and personal papers of party leaders. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q53252161 close_mappings: @@ -45,7 +33,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PartyArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PartyArchiveRecordSetType.yaml index e813203004..099bbfa4d9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PartyArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PartyArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: PartyArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by PartyArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PartyArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PartyArchiveRecordSetTypes.yaml index f0b1950f60..0502e563e1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PartyArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PartyArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./PartyArchive -- ./PartyArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./PartyArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: PartyAdministrationFonds: is_a: PartyArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Political party administrative records.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept MembershipRecordSeries: is_a: PartyArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Party membership records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by PartyArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PatternClassification.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PatternClassification.yaml index f5a6e7a7f7..54677e0521 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PatternClassification.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PatternClassification.yaml @@ -10,8 +10,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# dqv: http://www.w3.org/ns/dqv# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: PatternClassification: description: "Classification pattern details documenting the method (e.g., regex\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PaymentMethod.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PaymentMethod.yaml index dee3fb614b..ed3e6e13a4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PaymentMethod.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PaymentMethod.yaml @@ -6,8 +6,10 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -default_range: string + - linkml:types + - ../slots/provider + - ../slots/note +# default_range: string classes: PaymentMethod: description: 'A payment method accepted by an institution for tickets, services, @@ -17,7 +19,7 @@ classes: V-Pay) - Digital payments (iDEAL, Apple Pay, Google Pay) - Cash - Museum passes (Museumkaart, etc.) - Used with `accepts_or_accepted` slot to indicate payment options.' + Used with `accept` slot to indicate payment options.' class_uri: schema:PaymentMethod annotations: custodian_types: '["M", "G", "B", "H"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Percentage.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Percentage.yaml index 71e5c4ac1b..0d14a314c4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Percentage.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Percentage.yaml @@ -14,8 +14,8 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../metadata + - linkml:types + - ../metadata default_prefix: hc classes: Percentage: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PerformingArtsArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PerformingArtsArchive.yaml index ad55c8c2e0..18060f12e1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PerformingArtsArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PerformingArtsArchive.yaml @@ -8,35 +8,23 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./PerformingArtsArchiveRecordSetType -- ./PerformingArtsArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: PerformingArtsArchive: description: Archive for performing arts materials. Performing arts archives collect and preserve materials documenting theater, dance, opera, music performance, and other live performance traditions. Holdings may include programs, scripts, set designs, costumes, photographs, recordings, and personal papers of performers and companies. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q27030945 close_mappings: @@ -45,7 +33,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PerformingArtsArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PerformingArtsArchiveRecordSetType.yaml index 922bf44d18..cc962de70e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PerformingArtsArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PerformingArtsArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: PerformingArtsArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by PerformingArtsArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PerformingArtsArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PerformingArtsArchiveRecordSetTypes.yaml index f6cdd3cec1..278654bc01 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PerformingArtsArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PerformingArtsArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./PerformingArtsArchive -- ./PerformingArtsArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./PerformingArtsArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: TheatreRecordsFonds: is_a: PerformingArtsArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Theatre company records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept PerformanceDocumentationCollection: is_a: PerformingArtsArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Performance documentation.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by PerformingArtsArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept PerformingArtsProductionRecordSeries: is_a: PerformingArtsArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Production records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by PerformingArtsArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Permission.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Permission.yaml index 49c2f117e0..b0e9de01fc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Permission.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Permission.yaml @@ -27,13 +27,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_type -- ../slots/temporal_extent -- ./PermissionType -- ./PermissionTypes -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_type + - ../slots/temporal_extent classes: Permission: class_uri: rico:AccessCondition @@ -47,12 +44,12 @@ classes: - temporal_extent slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: BishopsPermission has_or_had_description: - range: string +# range: string examples: - value: "Written permission from the diocesan bishop required for access to personnel files" temporal_extent: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PermissionType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PermissionType.yaml index 80c92d60f8..ec9efcc06c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PermissionType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PermissionType.yaml @@ -22,7 +22,7 @@ prefixes: default_prefix: hc imports: -- linkml:types + - linkml:types classes: PermissionType: class_uri: hc:PermissionType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PermissionTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PermissionTypes.yaml index 03b9834d4e..c6767d27d5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PermissionTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PermissionTypes.yaml @@ -10,8 +10,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ default_prefix: hc imports: -- linkml:types -- ./PermissionType + - ./PermissionType + - linkml:types classes: BishopsPermission: is_a: PermissionType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Person.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Person.yaml index e4f9c8a5e5..4574bddc55 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Person.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Person.yaml @@ -13,20 +13,13 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/created -- ../slots/has_or_had_score -- ../slots/modified -- ../slots/person_id -- ../slots/preferred_label -- ../slots/preferred_name -- ../slots/specificity_annotation -- ./Event -- ./PersonObservation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/created + - ../slots/has_or_had_score + - ../slots/modified + - ../slots/person_id + - ../slots/preferred_label + - ../slots/preferred_name classes: Person: class_uri: crm:E21_Person @@ -52,16 +45,15 @@ classes: - modified - person_id - preferred_name - - specificity_annotation - has_or_had_score slot_usage: person_id: - range: uriorcurie +# range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/person/[a-z0-9-]+$ preferred_name: - range: string +# range: string required: false comments: - Person is the hub class for individual humans in the HC ontology diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PersonConnection.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PersonConnection.yaml index ae716c3254..43ec342e26 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PersonConnection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PersonConnection.yaml @@ -9,33 +9,23 @@ prefixes: foaf: http://xmlns.com/foaf/0.1/ dct: http://purl.org/dc/terms/ imports: -- linkml:types -- ../enums/HeritageTypeEnum -- ../enums/NameTypeEnum -- ../metadata -- ../slots/connection_heritage_relevant -- ../slots/connection_heritage_type -- ../slots/connection_id -- ../slots/connection_linkedin_url -- ../slots/connection_location -- ../slots/connection_name -- ../slots/connection_organization -- ../slots/has_or_had_degree -- ../slots/has_or_had_description -- ../slots/has_or_had_score -- ../slots/mutual_connections_text -- ../slots/name_type -- ../slots/specificity_annotation -- ./ConnectionDegree -- ./ConnectionDegreeType -- ./ConnectionDegreeTypes -- ./Description -- ./SocialNetworkMember -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -default_range: string + - linkml:types + - ../enums/HeritageTypeEnum + - ../enums/NameTypeEnum + - ../metadata + - ../slots/connection_heritage_relevant + - ../slots/connection_heritage_type + - ../slots/connection_id + - ../slots/connection_linkedin_url + - ../slots/connection_location + - ../slots/connection_name + - ../slots/connection_organization + - ../slots/has_or_had_degree + - ../slots/has_or_had_description + - ../slots/has_or_had_score + - ../slots/mutual_connections_text + - ../slots/name_type +# default_range: string classes: PersonConnection: is_a: SocialNetworkMember @@ -95,18 +85,17 @@ classes: - connection_organization - mutual_connections_text - name_type - - specificity_annotation - has_or_had_score slot_usage: connection_id: - range: string +# range: string required: true pattern: ^[a-z0-9-]+_conn_[0-9]{4}_[a-z0-9_]+$ examples: - value: giovannafossati_conn_0042_amy_b - value: rijksmuseum_staff_0001_jan_van_berg connection_name: - range: string +# range: string required: true examples: - value: Maddalena Ghiotto @@ -128,8 +117,8 @@ classes: - value: has_or_had_type: FirstDegreeConnection has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: Archiving nerd in the digital era. @@ -138,13 +127,13 @@ classes: - value: description_text: PhD candidate Critical audiovisual heritage connection_location: - range: string +# range: string examples: - value: Utrecht, Utrecht, Netherlands - value: Netherlands - value: Amsterdam, North Holland, Netherlands connection_organization: - range: string +# range: string examples: - value: Vrije Universiteit Amsterdam - value: Digital Infrastructure department of the KNAW Humanities Cluster @@ -166,7 +155,7 @@ classes: examples: - value: https://www.linkedin.com/in/maddalena-ghiotto-12345 mutual_connections_text: - range: string +# range: string examples: - value: Thomas van Maaren, Bob Coret, and 4 other mutual connections - value: 12 mutual connections diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PersonName.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PersonName.yaml index d218c7b741..ba6d5252a3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PersonName.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PersonName.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: PersonName: class_uri: schema:Text diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PersonObservation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PersonObservation.yaml index 48b7121ab5..f41339b04e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PersonObservation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PersonObservation.yaml @@ -13,50 +13,29 @@ prefixes: dcterms: http://purl.org/dc/terms/ sdo: https://schema.org/ imports: -- linkml:types -- ../classes/Age -- ../slots/created -- ../slots/has_or_had_age -- ../slots/has_or_had_expertise_in -- ../slots/has_or_had_label -- ../slots/has_or_had_provenance -- ../slots/has_or_had_score -- ../slots/identifies_or_identified_as -- ../slots/is_deceased -- ../slots/is_or_was_affected_by_event -- ../slots/is_or_was_affiliated_with -- ../slots/linkedin_profile_path -- ../slots/linkedin_profile_url -- ../slots/modified -- ../slots/observation_source -- ../slots/occupation -- ../slots/person_name -- ../slots/refers_to_person -- ../slots/religion -- ../slots/role_end_date -- ../slots/role_start_date -- ../slots/role_title -- ../slots/specificity_annotation -- ../slots/staff_role -- ./BirthDate -- ./BirthPlace -- ./DeceasedStatus -- ./ExpertiseArea -- ./ExtractionMetadata -- ./Gender -- ./OrganizationUnit -- ./OrganizationalChangeEvent -- ./OrganizationalStructure -- ./Person -- ./PersonName -- ./PersonWebClaim -- ./SpecificityAnnotation -- ./StaffRole -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Provenance + - linkml:types + - ../slots/created + - ../slots/has_or_had_age + - ../slots/has_or_had_expertise_in + - ../slots/has_or_had_label + - ../slots/has_or_had_provenance + - ../slots/has_or_had_score + - ../slots/identifies_or_identified_as + - ../slots/is_deceased + - ../slots/is_or_was_affected_by_event + - ../slots/is_or_was_affiliated_with + - ../slots/linkedin_profile_path + - ../slots/linkedin_profile_url + - ../slots/modified + - ../slots/observation_source + - ../slots/occupation + - ../slots/person_name + - ../slots/refers_to_person + - ../slots/religion + - ../slots/role_end_date + - ../slots/role_start_date + - ../slots/role_title + - ../slots/staff_role classes: PersonObservation: class_uri: pico:PersonObservation @@ -77,18 +56,19 @@ classes: - has_or_had_age slot_usage: has_or_had_age: - range: string +# range: string required: false occupation: - range: string +# range: string multivalued: true required: false religion: - range: string +# range: string required: false identifies_or_identified_as: - range: Gender - inlined: true +# range: string # uriorcurie + # range: Gender + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -96,13 +76,14 @@ classes: - value: has_or_had_label: Male staff_role: - range: StaffRole +# range: string # uriorcurie + # range: StaffRole required: true role_title: - range: string +# range: string required: false is_or_was_affiliated_with: - range: string +# range: string required: false role_start_date: range: date @@ -111,22 +92,24 @@ classes: range: date required: false observation_source: - range: string +# range: string required: false has_or_had_provenance: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: false is_or_was_affected_by_event: - range: OrganizationalChangeEvent +# range: string # uriorcurie + # range: OrganizationalChangeEvent required: false has_or_had_expertise_in: - range: ExpertiseArea +# range: string # uriorcurie + # range: ExpertiseArea multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type required: false linkedin_profile_path: - range: string +# range: string required: false linkedin_profile_url: range: uri diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PersonOrOrganization.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PersonOrOrganization.yaml index 8cfe773e31..4e2945f2ac 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PersonOrOrganization.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PersonOrOrganization.yaml @@ -14,27 +14,21 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/organizational_level -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/organizational_level classes: PersonOrOrganization: description: Class of agents that can be either a person or an organization. This abstract category represents entities that can act as creators, collectors, donors, or custodians of archival materials. In heritage contexts, it is often necessary to reference agents whose specific nature (individual or organizational) may be uncertain or variable. - is_a: ArchiveOrganizationType + is_a: AgentType class_uri: skos:Concept slots: - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: organizational_level: equals_string: abstract category annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PersonProfile.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PersonProfile.yaml index d0d4656193..86660bd76f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PersonProfile.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PersonProfile.yaml @@ -15,12 +15,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ./ExaSearchMetadata -- ./ProfileData -- ./SourceStaffEntry -- ./WebSource -default_range: string + - linkml:types +# default_range: string classes: PersonProfile: class_uri: foaf:PersonalProfileDocument diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PersonWebClaim.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PersonWebClaim.yaml index 835a5c2d03..83fce6dd9c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PersonWebClaim.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PersonWebClaim.yaml @@ -10,26 +10,19 @@ prefixes: pico: https://personsincontext.org/model# foaf: http://xmlns.com/foaf/0.1/ imports: -- linkml:types -- ../enums/PersonClaimTypeEnum -- ../enums/RetrievalAgentEnum -- ../slots/has_or_had_note -- ../slots/has_or_had_provenance_path -- ../slots/has_or_had_score -- ../slots/person_claim_id -- ../slots/person_claim_type -- ../slots/person_claim_value -- ../slots/person_html_file -- ../slots/retrieval_agent -- ../slots/retrieved_on -- ../slots/source_url -- ../slots/specificity_annotation -- ./Note -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./XPath + - linkml:types + - ../enums/PersonClaimTypeEnum + - ../enums/RetrievalAgentEnum + - ../slots/has_or_had_note + - ../slots/has_or_had_provenance_path + - ../slots/has_or_had_score + - ../slots/person_claim_id + - ../slots/person_claim_type + - ../slots/person_claim_value + - ../slots/person_html_file + - ../slots/retrieval_agent + - ../slots/retrieved_on + - ../slots/source_url default_prefix: hc classes: PersonWebClaim: @@ -53,13 +46,12 @@ classes: - retrieval_agent - retrieved_on - source_url - - specificity_annotation slot_usage: has_or_had_note: - range: string +# range: string multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - note_type: extraction diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PersonalCollectionType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PersonalCollectionType.yaml index 1e5b68dec7..66feb5a5b0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PersonalCollectionType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PersonalCollectionType.yaml @@ -6,41 +6,34 @@ description: 'Specialized CustodianType for individual private collectors and th Coverage: Corresponds to ''P'' (PERSONAL_COLLECTION) in GLAMORCUBESFIXPHDNT taxonomy. ' imports: -- linkml:types -- ../slots/has_or_had_category -- ../slots/has_or_had_quantity -- ../slots/has_or_had_type -- ../slots/is_or_was_acquired_through -- ../slots/is_or_was_acquired_through # was: has_acquisition_history -- ../slots/legacy_planning -- ../slots/personal_collection_subtype -- ../slots/preservation_approach -- ../slots/specificity_annotation -- ./AcquisitionEvent -- ./Category -- ./CustodianType -- ./Provenance -- ./Quantity -- ./Unit + - linkml:types + - ../slots/categorized_as + - ../slots/has_or_had_quantity + - ../slots/has_or_had_type + - ../slots/is_or_was_acquired_through + - ../slots/is_or_was_acquired_through # was: has_acquisition_history + - ../slots/legacy_planning + - ../slots/personal_collection_subtype + - ../slots/preservation_approach default_prefix: hc classes: PersonalCollectionType: slots: - # REMOVED 2026-01-19: collection_focus - migrated to has_or_had_category + Category (Rule 53) - - has_or_had_category + # REMOVED 2026-01-19: collection_focus - migrated to categorized_as + Category (Rule 53) + - categorized_as # REMOVED 2026-01-19: collection_size - migrated to has_or_had_quantity + Quantity (Rule 53) - has_or_had_quantity - has_or_had_type - legacy_planning - personal_collection_subtype - preservation_approach - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - is_or_was_acquired_through slot_usage: - has_or_had_category: # was: collection_focus - migrated per Rule 53 (2026-01-19) - range: Category - inlined: true + categorized_as: # was: collection_focus - migrated per Rule 53 (2026-01-19) +# range: string # uriorcurie + # range: Category + inlined: false # Fixed invalid inline for primitive type multivalued: true required: true examples: @@ -49,7 +42,7 @@ classes: - value: has_or_had_quantity: # was: collection_size - migrated per Rule 53 (2026-01-19) range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type multivalued: true required: true examples: @@ -60,9 +53,10 @@ classes: - value: has_or_had_unit: is_or_was_acquired_through: - range: AcquisitionEvent +# range: string # uriorcurie + # range: AcquisitionEvent multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: @@ -81,14 +75,14 @@ classes: - value: Scholars by appointment, Photography allowed - value: Open Heritage Days, Guided tours preservation_approach: - range: string +# range: string required: true examples: - value: Professional conservation, Climate control - value: Museum-standard storage, Annual checks - value: Acid-free boxes, Climate monitoring legacy_planning: - range: string +# range: string required: false examples: - value: Family succession, Museum permanent loans diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PersonalData.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PersonalData.yaml index e012e2fe8b..72699e3e53 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PersonalData.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PersonalData.yaml @@ -8,10 +8,9 @@ prefixes: schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_sensitivity_level -- ./SensitivityLevel + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_sensitivity_level default_prefix: hc classes: PersonalData: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PersonalLibrary.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PersonalLibrary.yaml index d2f56c6a87..bc275ef494 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PersonalLibrary.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PersonalLibrary.yaml @@ -7,20 +7,15 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: PersonalLibrary: description: The private library collection of an individual. Personal libraries (Autorenbibliotheken) document the reading habits, intellectual interests, and working methods of their owners. They may include books with annotations, presentation copies, and materials reflecting the owner's personal and professional life. Often preserved as part of a Nachlass or literary archive. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: skos:Concept annotations: skos:prefLabel: Personal Library @@ -31,11 +26,10 @@ classes: custodian_types: "['*']" slots: - has_or_had_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: has_or_had_type: equals_expression: '["hc:LibraryType", "hc:PersonalCollectionType"]' see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Personenstandsarchiv.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Personenstandsarchiv.yaml index 1f4f368ef7..7fdc9b2e04 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Personenstandsarchiv.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Personenstandsarchiv.yaml @@ -4,9 +4,7 @@ title: Personenstandsarchiv (Civil Registry Archive) prefixes: linkml: https://w3id.org/linkml/ imports: -- linkml:types -- ./ArchiveOrganizationType -- ./CollectionType + - linkml:types classes: Personenstandsarchiv: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PhotoArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PhotoArchive.yaml index 21cb5e0c80..cf0a1a5ed8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PhotoArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PhotoArchive.yaml @@ -8,35 +8,23 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./PhotoArchiveRecordSetType -- ./PhotoArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: PhotoArchive: description: Physical image collection focusing on photographs. Photo archives collect, preserve, and provide access to photographic materials including prints, negatives, slides, and digital images. They may focus on specific subjects, photographers, or geographic regions. Preservation of photographic materials requires specialized environmental controls and handling procedures. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q27032363 close_mappings: @@ -45,7 +33,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PhotoArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PhotoArchiveRecordSetType.yaml index 1b8c46af89..79bbda3a68 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PhotoArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PhotoArchiveRecordSetType.yaml @@ -15,13 +15,10 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: PhotoArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by PhotoArchive custodians. @@ -31,7 +28,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PhotoArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PhotoArchiveRecordSetTypes.yaml index 12ed5fafcd..2b53dc398d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PhotoArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PhotoArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./PhotoArchive -- ./PhotoArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./PhotoArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: PhotographerPapersCollection: is_a: PhotoArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Personal papers of photographers.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept PhotographicPrintSeries: is_a: PhotoArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Photographic prints and negatives.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by PhotoArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept DigitalImageCollection: is_a: PhotoArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Born-digital photography.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by PhotoArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PhotoAttribution.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PhotoAttribution.yaml index bf38e20a69..7da31cbf72 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PhotoAttribution.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PhotoAttribution.yaml @@ -13,8 +13,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: PhotoAttribution: description: "Photo author attribution containing display name, author URI, and\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PhotoMetadata.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PhotoMetadata.yaml index 196e1115ed..47cbdead6c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PhotoMetadata.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PhotoMetadata.yaml @@ -8,9 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ./PhotoAttribution -default_range: string + - linkml:types +# default_range: string classes: PhotoMetadata: description: "Metadata about photos from Google Maps including dimensions and\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Photography.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Photography.yaml index 9089d82fe9..68e13ae650 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Photography.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Photography.yaml @@ -7,7 +7,7 @@ description: >- and under what conditions. **MIGRATION NOTE** (2026-01-14): Created as part of slot migration from `allows_photography` and - `allows_or_allowed_photography` to generic `allows_or_allowed` slot + `allows_or_allowed_photography` to generic `allow` slot with typed class. See slot_fixes.yaml for migration specification. prefixes: linkml: https://w3id.org/linkml/ @@ -16,26 +16,16 @@ prefixes: dcterms: http://purl.org/dc/terms/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/excludes_or_excluded -- ../slots/has_or_had_description -- ../slots/has_or_had_score # was: template_specificity -- ../slots/is_permitted -- ../slots/poses_or_posed_condition -- ../slots/requires_declaration -- ../slots/specificity_annotation -- ../slots/temporal_extent # was: valid_from + valid_to -- ./Condition -- ./ConditionType -- ./ConditionTypes -- ./Material -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../slots/excludes_or_excluded + - ../slots/has_or_had_description + - ../slots/has_or_had_score # was: template_specificity + - ../slots/is_permitted + - ../slots/poses_or_posed_condition + - ../slots/requires_declaration + - ../slots/temporal_extent # was: valid_from + valid_to default_prefix: hc -default_range: string +# default_range: string classes: Photography: class_uri: schema:LocationFeatureSpecification @@ -66,7 +56,7 @@ classes: - 2010s onwards: Many institutions allow free photography **EXAMPLE**: ```yaml - allows_or_allowed: + allow: - permitted_item: Photography is_permitted: true conditions: @@ -88,7 +78,6 @@ classes: - requires_declaration - excludes_or_excluded - temporal_extent # was: valid_from + valid_to - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: is_permitted: @@ -116,10 +105,10 @@ classes: inlined: true examples: - value: - has_or_had_identifier: "https://nde.nl/ontology/hc/material/fragile-manuscripts" + identified_by: "https://nde.nl/ontology/hc/material/fragile-manuscripts" has_or_had_label: "Fragile manuscripts" - value: - has_or_had_identifier: "https://nde.nl/ontology/hc/material/copyrighted-materials" + identified_by: "https://nde.nl/ontology/hc/material/copyrighted-materials" has_or_had_label: "Materials under copyright" annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Place.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Place.yaml index 3de421a552..3174178362 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Place.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Place.yaml @@ -8,9 +8,9 @@ prefixes: gn: http://www.geonames.org/ontology# locn: http://www.w3.org/ns/locn# imports: -- linkml:types -- ./Place -default_range: string + - ../slots/place_name + - linkml:types +# default_range: string classes: Place: description: 'A geographic or administrative place used for containment relationships. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PlaceFeature.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PlaceFeature.yaml index b9a2960b1e..814a5c38d5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PlaceFeature.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PlaceFeature.yaml @@ -13,8 +13,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: PlaceFeature: description: A feature flag for a place (e.g., native_garden, shop, volunteers) diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PlaceType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PlaceType.yaml index a57079e162..1717ca1df0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PlaceType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PlaceType.yaml @@ -8,8 +8,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: PlaceType: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PlanarCoordinates.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PlanarCoordinates.yaml index b9874c3845..a8d8611e05 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PlanarCoordinates.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PlanarCoordinates.yaml @@ -8,7 +8,7 @@ prefixes: dcterms: http://purl.org/dc/terms/ default_prefix: hc imports: -- linkml:types + - linkml:types classes: PlanarCoordinates: description: '2D planar coordinates (x, y) for image regions, bounding boxes, diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Platform.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Platform.yaml index 8c93e8f1a1..1570c03b93 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Platform.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Platform.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name -- ../slots/has_or_had_type + - linkml:types + - ../slots/has_or_had_name + - ../slots/has_or_had_type classes: Platform: class_uri: schema:DigitalDocument diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PlatformSourceReference.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PlatformSourceReference.yaml index a51a95475b..3cbe12e9e6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PlatformSourceReference.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PlatformSourceReference.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# pav: http://purl.org/pav/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: PlatformSourceReference: description: "Structured source reference for a digital platform including URL,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PlatformType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PlatformType.yaml index c7b417a3fe..9c9f8e6137 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PlatformType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PlatformType.yaml @@ -8,8 +8,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: PlatformType: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Policy.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Policy.yaml index 15ae5d5468..8497af5ee2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Policy.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Policy.yaml @@ -15,13 +15,13 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/is_or_was_effective_at -- ../slots/is_or_was_expired_at -- ../slots/note -- ../slots/policy_description -- ../slots/policy_id -- ../slots/policy_name + - linkml:types + - ../slots/is_or_was_effective_at + - ../slots/is_or_was_expired_at + - ../slots/note + - ../slots/policy_description + - ../slots/policy_id + - ../slots/policy_name classes: Policy: class_uri: odrl:Policy @@ -84,16 +84,16 @@ classes: - note slot_usage: policy_id: - required: false + required: true policy_name: required: true policy_description: is_or_was_effective_at: range: date - required: false + required: true is_or_was_expired_at: range: date - required: false + required: true note: annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PoliticalArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PoliticalArchive.yaml index b86748ba35..6276afdee9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PoliticalArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PoliticalArchive.yaml @@ -8,35 +8,23 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./PoliticalArchiveRecordSetType -- ./PoliticalArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: PoliticalArchive: description: Archive focused on political topics and documentation. Political archives collect and preserve materials documenting political movements, parties, governments, elections, and political figures. They serve as essential resources for understanding political history and contemporary politics. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q27030921 close_mappings: @@ -45,7 +33,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PoliticalArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PoliticalArchiveRecordSetType.yaml index 72932b8284..3fd6b8501a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PoliticalArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PoliticalArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: PoliticalArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by PoliticalArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PoliticalArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PoliticalArchiveRecordSetTypes.yaml index e7539d76d6..694aa23736 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PoliticalArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PoliticalArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./PoliticalArchive -- ./PoliticalArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./PoliticalArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: PoliticalPartyFonds: is_a: PoliticalArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Political party records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept CampaignRecordCollection: is_a: PoliticalArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Election campaign materials.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by PoliticalArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept PoliticianPapersCollection: is_a: PoliticalArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Politician personal papers.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by PoliticalArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Portal.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Portal.yaml index 00f7fe99c8..494ffe2645 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Portal.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Portal.yaml @@ -9,9 +9,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_url + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_url classes: Portal: class_uri: schema:WebSite diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PostcustodialArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PostcustodialArchive.yaml index 2308fe5957..7f548e51d2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PostcustodialArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PostcustodialArchive.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./PostcustodialArchiveRecordSetType -- ./PostcustodialArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: PostcustodialArchive: description: Archive operating under postcustodial principles. Postcustodial archives do not take physical custody of records but instead provide archival services (description, access, preservation guidance) while records remain with their creators or other custodians. This model is particularly relevant for digital records and distributed archival networks. @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q124223197 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PostcustodialArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PostcustodialArchiveRecordSetType.yaml index 450e49a962..5bbc1b99ae 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PostcustodialArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PostcustodialArchiveRecordSetType.yaml @@ -15,14 +15,10 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: PostcustodialArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by PostcustodialArchive custodians. @@ -31,7 +27,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PostcustodialArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PostcustodialArchiveRecordSetTypes.yaml index 1966dccef6..ceefd8ae27 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PostcustodialArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PostcustodialArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./PostcustodialArchive -- ./PostcustodialArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./PostcustodialArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: DistributedRecordsCollection: is_a: PostcustodialArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Distributed custody records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Precision.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Precision.yaml index a2c92c556b..b9d73d7692 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Precision.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Precision.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: Precision: class_uri: schema:QuantitativeValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PressArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PressArchive.yaml index 05d9ea6eab..c6a75bb77c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PressArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PressArchive.yaml @@ -15,23 +15,12 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./PressArchiveRecordSetType -- ./PressArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: PressArchive: description: Collection of press, newspaper materials and content. Press archives collect and preserve newspapers, magazines, press releases, and other media materials. They may serve news organizations, research institutions, or the general public. Holdings may include both print materials and digital content. @@ -40,9 +29,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q56650887 close_mappings: @@ -51,7 +39,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PressArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PressArchiveRecordSetType.yaml index 9d8f76875a..bf11d72b17 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PressArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PressArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: PressArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by PressArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PressArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PressArchiveRecordSetTypes.yaml index 2f429cf3db..f34401e056 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PressArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PressArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./PressArchive -- ./PressArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./PressArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: NewspaperPublicationFonds: is_a: PressArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Newspaper publisher records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept JournalistPapersCollection: is_a: PressArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Journalist papers.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by PressArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept EditorialRecordSeries: is_a: PressArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Editorial records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by PressArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Price.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Price.yaml index 26e4448fbd..27d337ff46 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Price.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Price.yaml @@ -8,12 +8,10 @@ prefixes: schema: http://schema.org/ gr: http://purl.org/goodrelations/v1# imports: -- linkml:types -- ../slots/has_or_had_currency -- ../slots/has_or_had_type -- ../slots/has_or_had_value -- ./Currency -- ./PriceRange + - linkml:types + - ../slots/has_or_had_currency + - ../slots/has_or_had_type + - ../slots/has_or_had_value default_prefix: hc classes: Price: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PriceRange.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PriceRange.yaml index 0b388435e9..c97bd3a591 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PriceRange.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PriceRange.yaml @@ -18,10 +18,10 @@ prefixes: schema: http://schema.org/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_name -- ../slots/has_or_had_symbol + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_name + - ../slots/has_or_had_symbol default_prefix: hc classes: PriceRange: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Primary.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Primary.yaml index e0b122638f..fe4d6cb53a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Primary.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Primary.yaml @@ -11,8 +11,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_status + - linkml:types + - ../slots/has_or_had_status classes: Primary: class_uri: hc:Primary diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml index 291d377054..9863c616ea 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml @@ -2,35 +2,19 @@ id: https://nde.nl/ontology/hc/class/PrimaryDigitalPresenceAssertion name: primary_digital_presence_assertion title: PrimaryDigitalPresenceAssertion Class imports: -- linkml:types -- ../slots/asserts_or_asserted -- ../slots/has_or_had_identifier -- ../slots/has_or_had_rationale -- ../slots/has_or_had_score -- ../slots/has_or_had_value -- ../slots/is_or_was_about_digital_presence -- ../slots/is_or_was_asserted_by -- ../slots/is_or_was_asserted_on -- ../slots/is_or_was_generated_by -- ../slots/is_or_was_superseded_by -- ../slots/specificity_annotation -- ../slots/supersedes_or_superseded -- ../slots/temporal_extent -- ./Asserter -- ./ConfidenceMethod -- ./ConfidenceScore -- ./DigitalPresence -- ./DigitalPresenceType -- ./DigitalPresenceTypes -- ./GenerationEvent -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./WebObservation -- ./Value -- ./Rationale + - linkml:types + - ../slots/assert + - ../slots/identified_by + - ../slots/has_or_had_rationale + - ../slots/has_or_had_score + - ../slots/has_or_had_value + - ../slots/is_or_was_about_digital_presence + - ../slots/is_or_was_asserted_by + - ../slots/is_or_was_asserted_on + - ../slots/is_or_was_generated_by + - ../slots/is_or_was_superseded_by + - ../slots/supersedes_or_superseded + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -62,31 +46,30 @@ classes: - is_or_was_about_digital_presence - is_or_was_asserted_by - is_or_was_asserted_on - - has_or_had_identifier + - identified_by - has_or_had_rationale - has_or_had_value - is_or_was_generated_by - - asserts_or_asserted - - specificity_annotation + - assert - is_or_was_superseded_by - supersedes_or_superseded - has_or_had_score - temporal_extent slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/assertion/primary-presence/hvn-facebook-2025 is_or_was_about_digital_presence: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: https://nde.nl/ontology/hc/social-media/hvn-facebook - value: https://nde.nl/ontology/hc/platform/rijksmuseum-website - value: https://nde.nl/ontology/hc/iot/museum-beacon-network - asserts_or_asserted: + assert: range: DigitalPresence required: false inlined: true @@ -94,15 +77,15 @@ classes: - value: has_or_had_type: has_or_had_label: Social Media Profile - has_or_had_identifier: https://nde.nl/ontology/hc/type/social-media + identified_by: https://nde.nl/ontology/hc/type/social-media - value: has_or_had_type: has_or_had_label: Website - has_or_had_identifier: https://nde.nl/ontology/hc/type/website + identified_by: https://nde.nl/ontology/hc/type/website has_or_had_value: - range: string +# range: string required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: - value: @@ -134,12 +117,12 @@ classes: required: false examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/asserter/primary-presence-analyzer + identified_by: https://nde.nl/ontology/hc/asserter/primary-presence-analyzer has_or_had_label: primary-presence-analyzer asserter_type: AUTOMATED_SYSTEM asserter_version: '1.0' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/asserter/jane-doe + identified_by: https://nde.nl/ontology/hc/asserter/jane-doe has_or_had_label: Jane Doe asserter_type: HUMAN_ANALYST asserter_contact: jane.doe@heritage-org.nl @@ -158,12 +141,12 @@ classes: has_or_had_score: 0.65 has_or_had_method: comparative_analysis is_or_was_superseded_by: - range: uriorcurie +# range: string # uriorcurie required: false examples: - value: https://nde.nl/ontology/hc/assertion/club-facebook-primary-2023 supersedes_or_superseded: - range: uriorcurie +# range: string # uriorcurie required: false examples: - value: https://nde.nl/ontology/hc/assertion/club-facebook-secondary-2020 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PrintRoom.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PrintRoom.yaml index 1a46f2af27..6f20ba1d99 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PrintRoom.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PrintRoom.yaml @@ -7,16 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: PrintRoom: description: Collection of prints, and sometimes drawings, watercolours and photographs. Print rooms (Kupferstichkabinette, cabinets des estampes) are specialized collections within museums or libraries that focus on works on paper including prints, drawings, and related materials. They typically require special viewing conditions due to light sensitivity of the materials. @@ -24,11 +18,10 @@ classes: class_uri: skos:Concept slots: - has_or_had_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProcessorAgent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProcessorAgent.yaml index 4577d6b675..63ca030640 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProcessorAgent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProcessorAgent.yaml @@ -9,8 +9,8 @@ prefixes: prov: http://www.w3.org/ns/prov# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: ProcessorAgent: class_uri: prov:Agent diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProductCategories.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProductCategories.yaml index 54bd3e9614..645cf24f70 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProductCategories.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProductCategories.yaml @@ -11,8 +11,7 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ./ProductCategory + - linkml:types classes: ProductCategories: class_uri: hc:ProductCategories diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProductCategory.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProductCategory.yaml index 941ca155f6..49b4449800 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProductCategory.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProductCategory.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: ProductCategory: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProfileData.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProfileData.yaml index d641252c26..adf99ae1bb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProfileData.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProfileData.yaml @@ -10,15 +10,8 @@ prefixes: pico: https://personsincontext.org/model# foaf: http://xmlns.com/foaf/0.1/ imports: -- linkml:types -- ./CareerEntry -- ./CertificationEntry -- ./CurrentPosition -- ./Education -- ./HeritageExperienceEntry -- ./MediaAppearanceEntry -- ./PublicationEntry -default_range: string + - linkml:types +# default_range: string classes: ProfileData: description: "Core profile information for a person, containing extracted biographical\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Profit.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Profit.yaml index dde729d550..a15697eeba 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Profit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Profit.yaml @@ -7,8 +7,8 @@ prefixes: schema: http://schema.org/ org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../metadata + - linkml:types + - ../metadata default_prefix: hc classes: Profit: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Program.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Program.yaml index 302a734439..57fb273cdd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Program.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Program.yaml @@ -7,10 +7,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_type -- ../slots/participant_count -- ./ProgramType + - linkml:types + - ../slots/has_or_had_type + - ../slots/participant_count classes: Program: class_uri: schema:Event @@ -21,7 +20,7 @@ classes: - participant_count slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie close_mappings: - schema:Event annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProgramType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProgramType.yaml index c6df022b2c..cda31a7562 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProgramType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProgramType.yaml @@ -7,10 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: ProgramType: class_uri: skos:Concept @@ -32,7 +32,7 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description exact_mappings: @@ -43,6 +43,6 @@ classes: custodian_types: "['*']" examples: - value: - has_or_had_identifier: https://nde.nl/program-type/volunteer + identified_by: https://nde.nl/program-type/volunteer has_or_had_label: null description: Volunteer program type diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProgramTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProgramTypes.yaml index 1852720c35..380a7f3ddf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProgramTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProgramTypes.yaml @@ -14,8 +14,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ./ProgramType + - ./ProgramType + - linkml:types classes: VolunteerProgram: is_a: ProgramType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Project.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Project.yaml index 12c4791730..266f435a91 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Project.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Project.yaml @@ -12,35 +12,24 @@ prefixes: org: http://www.w3.org/ns/org# skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../enums/ProjectStatusEnum -- ../slots/has_or_had_budget # was: funding_amount -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_objective -- ../slots/has_or_had_participated_in # was: funding_call -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_status -- ../slots/has_or_had_url -- ../slots/keyword -- ../slots/objective -- ../slots/organizing_body -- ../slots/participating_custodian -- ../slots/receives_or_received # was: funding_source -- ../slots/related_project -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./Budget # for has_or_had_budget range -- ./Deliverable -- ./Funding # for receives_or_received range -- ./FundingCall # for has_or_had_participated_in range -- ./FundingSource -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../enums/ProjectStatusEnum + - ../slots/has_or_had_budget # was: funding_amount + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_objective + - ../slots/has_or_had_participated_in # was: funding_call + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_status + - ../slots/has_or_had_url + - ../slots/keyword + - ../slots/objective + - ../slots/organizing_body + - ../slots/participating_custodian + - ../slots/receives_or_received # was: funding_source + - ../slots/related_project + - ../slots/temporal_extent default_prefix: hc classes: Project: @@ -102,26 +91,25 @@ classes: - organizing_body - participating_custodian - related_project - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) # RiC-O style slots (migrated 2026-01-16 per Rule 53) - - has_or_had_identifier # was: project_id, project_identifier + - identified_by # was: project_id, project_identifier - has_or_had_label # was: project_name, project_short_name - has_or_had_description # was: project_description - has_or_had_status # was: project_status - has_or_had_url # was: project_url slot_usage: # === MIGRATED SLOTS (2026-01-16 per Rule 53) === - has_or_had_identifier: + identified_by: # was: project_id (primary) + project_identifier (external IDs) # Migration note: Consolidated two slots into one multivalued slot. # First value should be the primary project URI (was project_id). # Additional values are external identifiers like Wikidata, DOI (was project_identifier). identifier: true required: true - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type pattern: ^https://nde\.nl/ontology/hc/project/[a-z0-9-]+/[a-z0-9-]+$|^https?://.*$ examples: - value: https://nde.nl/ontology/hc/project/nde/versnellen-2024 @@ -132,9 +120,9 @@ classes: # Migration note: First value should be the full project name. # Additional values can be short names, acronyms, or alternative titles. required: true - range: string +# range: string multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: Versnellen 2024 - value: V2024 @@ -143,7 +131,7 @@ classes: has_or_had_description: # was: project_description - migrated 2026-01-16 per Rule 53 required: true - range: string +# range: string examples: - value: Versnellen 2024 is NDE's annual acceleration program supporting heritage institutions in adopting digital infrastructure. The program provides funding, technical support, and training to help museums, archives, and @@ -188,9 +176,9 @@ classes: currency_code: "USD" currency_symbol: "$" objective: - range: string +# range: string multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: Onboard 50 heritage institutions to NDE infrastructure - value: Create standardized metadata mappings for 10M records @@ -210,35 +198,35 @@ classes: deliverable_url: "https://github.com/nde-project/tool" organizing_body: required: true - range: uriorcurie +# range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/encompassing-body/network/nde - value: https://nde.nl/ontology/hc/encompassing-body/cooperative/oclc participating_custodian: - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: https://nde.nl/ontology/hc/nl-nh-ams-m-am - value: https://nde.nl/ontology/hc/nl-zh-haa-l-kb related_project: - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: https://nde.nl/ontology/hc/project/nde/versnellen-2023 - value: https://github.com/nde-project/versnellen-2024 keyword: - range: string +# range: string multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: digital preservation - value: metadata standardization - value: linked open data - value: IIIF - value: sustainable infrastructure - # project_identifier slot_usage removed - migrated to has_or_had_identifier (2026-01-16) + # project_identifier slot_usage removed - migrated to identified_by (2026-01-16) has_or_had_participated_in: # was: funding_call - migrated per Rule 53 (2026-01-26) range: FundingCall multivalued: true # Allow multiple calls if applicable (e.g. co-funded) @@ -272,7 +260,7 @@ classes: examples: - value: # Migrated to RiC-O slots 2026-01-16 - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/project/nde/versnellen-2024 # primary project URI has_or_had_label: - Versnellen 2024 # full project name @@ -322,7 +310,7 @@ classes: - digital preservation - value: # Migrated to RiC-O slots 2026-01-16 - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/project/europeana/common-culture-2024 # primary project URI has_or_had_label: - Europeana Common Culture # full project name diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Provenance.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Provenance.yaml index e27511f620..ed8411e3a3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Provenance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Provenance.yaml @@ -14,25 +14,20 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../slots/has_or_had_agent -- ../slots/has_or_had_identifier -- ../slots/has_or_had_output -- ../slots/has_or_had_quantity -- ../slots/is_or_was_based_on -- ../slots/is_or_was_generated_by -- ../slots/is_or_was_retrieved_by -- ../slots/is_or_was_retrieved_through -- ../slots/temporal_extent -- ./ConfidenceScore -- ./GenerationEvent -- ./LLMResponse -- ./Quantity -- ./RetrievalAgent -- ./RetrievalEvent -- ./RetrievalMethod -- ./Source -default_range: string + - ./LLMResponse + - ./RetrievalMethod + - ../slots/note + - linkml:types + - ../slots/has_or_had_agent + - ../slots/identified_by + - ../slots/has_or_had_output + - ../slots/has_or_had_quantity + - ../slots/is_or_was_based_on + - ../slots/is_or_was_generated_by + - ../slots/is_or_was_retrieved_by + - ../slots/is_or_was_retrieved_through + - ../slots/temporal_extent +# default_range: string classes: Provenance: description: 'A single provenance statement describing the origin, lineage, or @@ -62,26 +57,26 @@ classes: - is_or_was_generated_by - is_or_was_retrieved_by - is_or_was_retrieved_through - - has_or_had_identifier + - identified_by - has_or_had_quantity - is_or_was_based_on - has_or_had_output - note slot_usage: is_or_was_retrieved_by: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type is_or_was_retrieved_through: range: RetrievalMethod inlined: true temporal_extent: null - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type is_or_was_based_on: - range: uriorcurie +# range: string # uriorcurie multivalued: true has_or_had_output: range: LLMResponse @@ -101,7 +96,7 @@ classes: \ \"Extracted from archived HTML using XPath\"\n" - value: "Provenance:\n is_or_was_retrieved_by:\n has_or_had_label: \"claude-opus-4.5\"\ \n is_or_was_retrieved_through:\n has_or_had_label: \"exa_crawling_exa\"\ - \n is_or_was_based_on:\n - \"https://www.linkedin.com/in/...\"\n has_or_had_identifier:\ + \n is_or_was_based_on:\n - \"https://www.linkedin.com/in/...\"\n identified_by:\ \ \"exa_12345678\"\n has_or_had_quantity:\n quantity_value: 0.001\n \ \ has_or_had_unit:\n has_or_had_label: \"USD\"\n temporal_extent:\n\ \ begin_of_the_begin: \"2025-12-12T22:00:00Z\"\n" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProvenanceBlock.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProvenanceBlock.yaml index d58b3690c2..87897f8abc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProvenanceBlock.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProvenanceBlock.yaml @@ -9,20 +9,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# pav: http://purl.org/pav/ imports: -- linkml:types -- ../enums/DataTierEnum -- ../slots/is_or_was_generated_by -- ../slots/note -- ../slots/source_type -- ../slots/source_url -- ../slots/standards_compliance -- ./ConfidenceMethod -- ./ConfidenceScore -- ./DataTierSummary -- ./EnrichmentProvenance -- ./GenerationEvent -- ./ProvenanceSources -default_range: string + - linkml:types + - ../enums/DataTierEnum + - ../slots/is_or_was_generated_by + - ../slots/note + - ../slots/source_type + - ../slots/source_url + - ../slots/standards_compliance +# default_range: string classes: ProvenanceBlock: description: "Complete provenance tracking for the entry, supporting both nested\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml index 106c4ed5ff..cd7f567882 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml @@ -11,48 +11,31 @@ prefixes: aat: http://vocab.getty.edu/aat/ prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../enums/ProvenanceEventTypeEnum -- ../metadata -- ../slots/changes_or_changed_ownership_from -- ../slots/changes_or_changed_ownership_to -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_level -- ../slots/has_or_had_note -- ../slots/has_or_had_provenance -- ../slots/has_or_had_reference -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/has_or_had_url -- ../slots/is_or_was_associated_with -- ../slots/is_or_was_conducted_by -- ../slots/lot_number -- ../slots/nazi_era_flag -- ../slots/object_ref -- ../slots/price -- ../slots/price_currency -- ../slots/price_text -- ../slots/publishes_or_published -- ../slots/requires_research -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./ArtDealer -- ./AuctionHouse -- ./AuctionSaleCatalog -- ./CertaintyLevel -- ./CustodianPlace -- ./Description -- ./Identifier -- ./Note -- ./Provenance -- ./Reference -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./URL + - linkml:types + - ../enums/ProvenanceEventTypeEnum + - ../metadata + - ../slots/changes_or_changed_ownership_from + - ../slots/changes_or_changed_ownership_to + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_level + - ../slots/has_or_had_note + - ../slots/has_or_had_provenance + - ../slots/has_or_had_reference + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/has_or_had_url + - ../slots/is_or_was_associated_with + - ../slots/is_or_was_conducted_by + - ../slots/lot_number + - ../slots/nazi_era_flag + - ../slots/object_ref + - ../slots/price + - ../slots/price_currency + - ../slots/price_text + - ../slots/publishes_or_published + - ../slots/requires_research + - ../slots/temporal_extent default_prefix: hc classes: ProvenanceEvent: @@ -75,11 +58,10 @@ classes: - is_or_was_associated_with - has_or_had_reference - has_or_had_url - - has_or_had_identifier + - identified_by - has_or_had_note - temporal_extent - has_or_had_type - - has_or_had_note - changes_or_changed_ownership_from - lot_number - nazi_era_flag @@ -89,21 +71,20 @@ classes: - price_text - has_or_had_provenance - requires_research - - specificity_annotation - has_or_had_score - changes_or_changed_ownership_to - has_or_had_description slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true - range: uriorcurie +# range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/provenance/mauritshuis-670-001 - value: https://nde.nl/ontology/hc/provenance/rijksmuseum-sk-c-5-005 object_ref: required: true - range: uriorcurie +# range: string # uriorcurie inlined: false examples: - value: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring @@ -129,13 +110,13 @@ classes: has_or_had_label: May 16, 1696 changes_or_changed_ownership_from: required: false - range: uriorcurie +# range: string # uriorcurie inlined: false examples: - value: https://nde.nl/ontology/hc/person/des-tombe changes_or_changed_ownership_to: required: false - range: uriorcurie +# range: string # uriorcurie inlined: false examples: - value: https://nde.nl/ontology/hc/custodian/nl/mauritshuis @@ -166,7 +147,7 @@ classes: - value: 30000000 price_currency: required: false - range: string +# range: string examples: - value: NLG - value: EUR @@ -174,14 +155,14 @@ classes: - value: RM price_text: required: false - range: string +# range: string examples: - value: 30 guilders - value: Purchased for 2 stuivers 10 guilders - value: Forced sale for nominal sum lot_number: required: false - range: string +# range: string examples: - value: '36' - value: Lot 127A @@ -210,7 +191,7 @@ classes: has_or_had_url: required: false range: uri - inlined: true + inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: @@ -254,7 +235,7 @@ classes: description_type: provenance_text has_or_had_note: required: false - range: string +# range: string multivalued: true examples: - value: des Tombe purchased at auction for 30 guilders, a bargain price @@ -275,7 +256,7 @@ classes: - https://www.getty.edu/research/tools/provenance/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/provenance/mauritshuis-670-001 + identified_by: https://nde.nl/ontology/hc/provenance/mauritshuis-670-001 object_ref: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring has_or_had_type: CREATION temporal_extent: @@ -294,7 +275,7 @@ classes: - description_text: Created by Johannes Vermeer, Delft, c. 1665 description_type: provenance_text - value: - has_or_had_identifier: https://nde.nl/ontology/hc/provenance/mauritshuis-670-002 + identified_by: https://nde.nl/ontology/hc/provenance/mauritshuis-670-002 object_ref: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring has_or_had_type: PURCHASE temporal_extent: @@ -318,7 +299,7 @@ classes: - description_text: Possibly Pieter van Ruijven, Delft (c. 1665-1674) description_type: provenance_text - value: - has_or_had_identifier: https://nde.nl/ontology/hc/provenance/mauritshuis-670-005 + identified_by: https://nde.nl/ontology/hc/provenance/mauritshuis-670-005 object_ref: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring has_or_had_type: AUCTION temporal_extent: @@ -347,7 +328,7 @@ classes: - description_text: Dissius sale, Amsterdam, May 16, 1696, lot 36 description_type: provenance_text - value: - has_or_had_identifier: https://nde.nl/ontology/hc/provenance/mauritshuis-670-008 + identified_by: https://nde.nl/ontology/hc/provenance/mauritshuis-670-008 object_ref: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring has_or_had_type: PURCHASE temporal_extent: @@ -372,7 +353,7 @@ classes: - Des Tombe purchased at auction for a bargain price - Painting was in poor condition and not yet attributed to Vermeer - value: - has_or_had_identifier: https://nde.nl/ontology/hc/provenance/mauritshuis-670-009 + identified_by: https://nde.nl/ontology/hc/provenance/mauritshuis-670-009 object_ref: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring has_or_had_type: BEQUEST temporal_extent: @@ -395,7 +376,7 @@ classes: - description_text: Bequeathed to Mauritshuis, 1903 description_type: provenance_text - value: - has_or_had_identifier: https://nde.nl/ontology/hc/provenance/example-nazi-confiscation + identified_by: https://nde.nl/ontology/hc/provenance/example-nazi-confiscation object_ref: https://nde.nl/ontology/hc/object/example-painting has_or_had_type: CONFISCATION temporal_extent: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProvenancePath.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProvenancePath.yaml index 988d110641..be1e1f1c88 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProvenancePath.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProvenancePath.yaml @@ -3,14 +3,15 @@ name: ProvenancePath title: Provenance Path description: A path or chain of provenance. prefixes: + rov: http://www.w3.org/ns/regorg# linkml: https://w3id.org/linkml/ schema: http://schema.org/ skos: http://www.w3.org/2004/02/skos/core# rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: ProvenancePath: class_uri: prov:Plan diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProvenanceSources.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProvenanceSources.yaml index 559f0904f1..e29c81413f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProvenanceSources.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProvenanceSources.yaml @@ -8,10 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ./SourceRecord -- ./YoutubeSourceRecord -default_range: string + - linkml:types +# default_range: string classes: ProvenanceSources: description: "Sources organized by type, aggregating multiple source records from\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProvinceInfo.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProvinceInfo.yaml index 51bd28f67e..daad555327 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProvinceInfo.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProvinceInfo.yaml @@ -14,8 +14,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: ProvinceInfo: description: "Province/region administrative information containing name and ISO\ @@ -25,7 +25,7 @@ classes: \ models administrative territorial units\n- close_mappings includes schema:AdministrativeArea\ \ for web\n semantics compatibility\n- related_mappings includes prov:Entity\ \ (province info as data)\n and schema:Place (provinces are geographic places)" - class_uri: locn:AdminUnit + class_uri: hc:ProvinceInfo close_mappings: - schema:AdministrativeArea related_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialArchive.yaml index 7e20c53b77..a07eb02dec 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialArchive.yaml @@ -15,23 +15,12 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./ProvincialArchiveRecordSetType -- ./ProvincialArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: ProvincialArchive: description: Archive at the provincial administrative level. Provincial archives preserve records of provincial government and administration, serving as the main archival institution for a province or similar administrative unit. They may hold government records, notarial archives, and other materials of provincial significance. @@ -40,9 +29,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q5403345 close_mappings: @@ -51,7 +39,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialArchiveRecordSetType.yaml index 2729200021..4132e9e60a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: ProvincialArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ProvincialArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialArchiveRecordSetTypes.yaml index 98de5c78b6..ae65d54c9f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ProvincialArchive -- ./ProvincialArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./ProvincialArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: ProvincialAdministrationFonds: is_a: ProvincialArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Provincial government records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept RegionalPlanningCollection: is_a: ProvincialArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Regional development documentation.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ProvincialArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept ProvincialCourtSeries: is_a: ProvincialArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Provincial judicial records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ProvincialArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchive.yaml index 2a9c2308e5..c63996ffbd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchive.yaml @@ -8,22 +8,11 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./ProvincialHistoricalArchiveRecordSetType -- ./ProvincialHistoricalArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: ProvincialHistoricalArchive: is_a: ArchiveOrganizationType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchiveRecordSetType.yaml index 55bcfed89a..377ee42fe8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchiveRecordSetType.yaml @@ -15,14 +15,10 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: ProvincialHistoricalArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ProvincialHistoricalArchive custodians. @@ -31,7 +27,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchiveRecordSetTypes.yaml index c1c916672f..83ccdfd92f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ProvincialHistoricalArchive -- ./ProvincialHistoricalArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./ProvincialHistoricalArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: ProvincialHistoricalFonds: is_a: ProvincialHistoricalArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Historical provincial records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchive.yaml index 9b9ba1160f..e9e78dabb8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchive.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./PublicArchiveRecordSetType -- ./PublicArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: PublicArchive: description: Repository for official documents open to public access. Public archives are archival institutions that serve the general public, typically holding government records and other materials of public interest. They operate under principles of transparency and public access, subject to privacy and security restrictions. @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q27031009 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchiveRecordSetType.yaml index b37846da6e..dcfcfe83c1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: PublicArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by PublicArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchiveRecordSetTypes.yaml index 7d9b6bd7a3..3b1d9d0f60 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./PublicArchive -- ./PublicArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./PublicArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: PublicRecordsFonds: is_a: PublicArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Records created by public bodies.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept CivicDocumentationCollection: is_a: PublicArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Civic and community documentation.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by PublicArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept AdministrativeCorrespondenceSeries: is_a: PublicArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Official correspondence.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by PublicArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchivesInFrance.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchivesInFrance.yaml index 02e9417f84..40f23567e7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchivesInFrance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchivesInFrance.yaml @@ -8,24 +8,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./PublicArchivesInFranceRecordSetType -- ./PublicArchivesInFranceRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: PublicArchivesInFrance: description: Type of archives in France under public law. French public archives (archives publiques en France) are defined by French law as archives created or received by public legal entities in the exercise of their activities. They are subject to specific legal requirements regarding preservation, access, and transfer to archival institutions. @@ -34,9 +22,8 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q2421452 close_mappings: @@ -45,7 +32,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchivesInFranceRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchivesInFranceRecordSetType.yaml index 44be735fed..d6a80a523d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchivesInFranceRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchivesInFranceRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: PublicArchivesInFranceRecordSetType: description: 'A rico:RecordSetType for classifying collections held by PublicArchivesInFrance custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchivesInFranceRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchivesInFranceRecordSetTypes.yaml index f47e45f7b7..d868ff02ec 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchivesInFranceRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PublicArchivesInFranceRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./PublicArchivesInFrance -- ./PublicArchivesInFranceRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./PublicArchivesInFranceRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: FrenchPublicFonds: is_a: PublicArchivesInFranceRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for French public sector records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Publication.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Publication.yaml index 9d9729c4ef..adc9397675 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Publication.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Publication.yaml @@ -8,10 +8,10 @@ prefixes: prov: http://www.w3.org/ns/prov# bf: http://id.loc.gov/ontologies/bibframe/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_name -- ../slots/temporal_extent + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_name + - ../slots/temporal_extent default_prefix: hc classes: Publication: @@ -25,7 +25,7 @@ classes: - temporal_extent - has_or_had_name - has_or_had_description - - publication_place + - place_of_publication annotations: replaces: date_of_publication migration_date: '2026-01-23' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PublicationEntry.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PublicationEntry.yaml index df3aadbe1c..87b21b5231 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PublicationEntry.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PublicationEntry.yaml @@ -10,8 +10,8 @@ prefixes: bf: http://id.loc.gov/ontologies/bibframe/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: PublicationEntry: description: "An academic or professional publication record, capturing bibliographic\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PublicationEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PublicationEvent.yaml index 24feb51148..71c998f25a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PublicationEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PublicationEvent.yaml @@ -28,17 +28,11 @@ prefixes: prov: http://www.w3.org/ns/prov# dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/temporal_extent default_prefix: hc classes: PublicationEvent: @@ -84,8 +78,7 @@ classes: slots: - temporal_extent - has_or_had_label - - has_or_had_identifier - - specificity_annotation + - identified_by - has_or_had_score slot_usage: temporal_extent: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/PublicationSeries.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/PublicationSeries.yaml index c65572d688..67fa21cf5d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/PublicationSeries.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/PublicationSeries.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: PublicationSeries: class_uri: schema:Periodical diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Publisher.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Publisher.yaml index 3796662d8c..68836656a1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Publisher.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Publisher.yaml @@ -54,19 +54,14 @@ prefixes: dcterms: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/ imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_location -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/has_or_had_url -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_location + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/has_or_had_url default_prefix: hc classes: Publisher: @@ -86,16 +81,15 @@ classes: - dcterms:Agent slots: - has_or_had_label - - has_or_had_identifier + - identified_by - has_or_had_location - has_or_had_url - has_or_had_type - - specificity_annotation - has_or_had_score slot_usage: has_or_had_label: required: true - range: string +# range: string examples: - value: Rijksmuseum - value: Yale University Press @@ -103,7 +97,7 @@ classes: - value: The British Museum Press has_or_had_type: required: false - range: string +# range: string examples: - value: institutional - value: commercial @@ -111,15 +105,15 @@ classes: - value: government has_or_had_location: required: false - range: string +# range: string examples: - value: Amsterdam - value: New York - value: London - value: New Haven - has_or_had_identifier: + identified_by: required: false - range: uriorcurie +# range: string # uriorcurie multivalued: true examples: - value: Q190804 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Qualifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Qualifier.yaml index fc8a02b07c..1e605ef49f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Qualifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Qualifier.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: Qualifier: class_uri: schema:PropertyValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Quantity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Quantity.yaml index 49e58c9509..e04f95d29c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Quantity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Quantity.yaml @@ -8,27 +8,18 @@ prefixes: schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../enums/QuantityTypeEnum -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_measurement_unit -- ../slots/has_or_had_methodology -- ../slots/has_or_had_provenance -- ../slots/has_or_had_score -- ../slots/is_estimate -- ../slots/is_or_was_based_on -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./EstimationMethod -- ./MeasureUnit -- ./Methodology -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../enums/QuantityTypeEnum + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_measurement_unit + - ../slots/has_or_had_methodology + - ../slots/has_or_had_provenance + - ../slots/has_or_had_score + - ../slots/is_estimate + - ../slots/is_or_was_based_on + - ../slots/temporal_extent default_prefix: hc classes: Quantity: @@ -45,7 +36,7 @@ classes: - schema:floorSize - dcterms:extent slots: - - has_or_had_identifier + - identified_by - has_or_had_measurement_unit - has_or_had_methodology - is_or_was_based_on @@ -53,11 +44,10 @@ classes: - temporal_extent - has_or_had_description - is_estimate - - specificity_annotation - has_or_had_score slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: false examples: - value: https://nde.nl/ontology/hc/quantity/nha-zaanstreek-staff-2025 @@ -107,7 +97,7 @@ classes: methodology_type: OBJECT_TRACKING has_or_had_label: DeepSORT has_or_had_description: - range: string +# range: string required: false examples: - value: Staff assigned to Zaanstreek-Waterland branch @@ -130,7 +120,7 @@ classes: - https://schema.org/QuantitativeValue examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/quantity/nha-zaanstreek-staff-2025 + identified_by: https://nde.nl/ontology/hc/quantity/nha-zaanstreek-staff-2025 has_or_had_measurement_unit: has_or_had_type: FTE has_or_had_symbol: FTE diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RadioArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RadioArchive.yaml index d6ebced9c7..4da0aaa8c2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RadioArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RadioArchive.yaml @@ -8,35 +8,23 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./RadioArchiveRecordSetType -- ./RadioArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: RadioArchive: description: Archive of radio broadcasts and recordings. Radio archives preserve recordings of radio programs, broadcasts, and related documentation. They may be maintained by broadcasting organizations, national sound archives, or specialized institutions. Holdings document the history of radio and serve as sources for cultural and historical research. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q109326271 close_mappings: @@ -45,7 +33,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RadioArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RadioArchiveRecordSetType.yaml index 7ac379a587..16d4910db5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RadioArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RadioArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: RadioArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by RadioArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RadioArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RadioArchiveRecordSetTypes.yaml index 01d0b48a80..d4d018d971 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RadioArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RadioArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./RadioArchive -- ./RadioArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./RadioArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: BroadcastRecordingFonds: is_a: RadioArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Radio broadcast recordings.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept RadioScriptCollection: is_a: RadioArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Radio scripts and programming.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by RadioArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept StationAdministrationSeries: is_a: RadioArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Radio station records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by RadioArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Rationale.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Rationale.yaml index 07a8d03781..b895a03c71 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Rationale.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Rationale.yaml @@ -8,11 +8,11 @@ prefixes: prov: http://www.w3.org/ns/prov# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: Rationale: - class_uri: skos:note + class_uri: hc:Rationale description: A rationale or justification for a decision. slots: - has_or_had_description @@ -20,6 +20,7 @@ classes: has_or_had_description: required: true close_mappings: + - skos:note - prov:wasInfluencedBy annotations: specificity_score: '0.45' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RawSource.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RawSource.yaml index 3e34407a38..21bb9625d0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RawSource.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RawSource.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# pav: http://purl.org/pav/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: RawSource: description: "Raw source information for web enrichment including URL, fetch timestamp,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ReadingRoom.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ReadingRoom.yaml index d950c0b515..0ad6eb2781 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ReadingRoom.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ReadingRoom.yaml @@ -2,39 +2,26 @@ id: https://nde.nl/ontology/hc/class/reading-room name: reading_room_class title: ReadingRoom Class imports: -- linkml:types -- ../enums/ReadingRoomTypeEnum -- ../slots/allows_or_allowed -- ../slots/has_locker -- ../slots/has_microfilm_reader -- ../slots/has_or_had_accessibility_feature -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_supervised_handling -- ../slots/has_wifi -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/opening_hour -- ../slots/reading_room_type -- ../slots/requires_appointment -- ../slots/requires_registration -- ../slots/seating_capacity -- ../slots/specificity_annotation -- ./CustodianObservation -- ./Description -- ./Label -- ./Laptop -- ./Photography -- ./Quantity -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/ReadingRoomTypeEnum + - ../slots/allow + - ../slots/has_locker + - ../slots/has_microfilm_reader + - ../slots/has_or_had_accessibility_feature + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_supervised_handling + - ../slots/has_wifi + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/opening_hour + - ../slots/reading_room_type + - ../slots/requires_appointment + - ../slots/requires_registration + - ../slots/seating_capacity prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -50,7 +37,7 @@ classes: is_a: ReconstructedEntity class_uri: aat:300004051 description: "Reading room or research room at a heritage custodian institution.\n\n**DEFINITION**:\n\nA ReadingRoom is a designated space where researchers, scholars, and the\npublic can access and consult collection materials under supervised\nconditions. Reading rooms are the primary interface between heritage\ncustodians and their users for on-site collection access.\n\n**GETTY AAT ALIGNMENT**:\n\n`aat:300004051` (reading rooms) - \"Rooms in libraries, archives, or other\nbuildings where books, periodicals, or other materials may be read or\nstudied, but not normally borrowed.\"\n\n**DISTINCTION FROM ReadingRoomAnnex**:\n\n| Type | Location | Status |\n|------|----------|--------|\n| **ReadingRoom** | Main building | Primary reading facility |\n| ReadingRoomAnnex | Separate location | Overflow/supplementary |\n\n**TYPICAL CHARACTERISTICS**:\n\n- **Supervised access**: Staff oversight for security\n- **Controlled environment**: Climate control for materials\n- **Research support**:\ - \ Finding aids, catalogs, reference help\n- **Registration required**: Reader cards, ID verification\n- **Rules of use**: No food/drink, pencils only, handling guidelines\n\n**TYPES OF READING ROOMS**:\n\n1. **General Reading Room**: Primary research space\n2. **Special Collections Reading Room**: Rare/valuable materials\n3. **Microfilm Reading Room**: Microform materials\n4. **Digital Reading Room**: Electronic resources, digitization on demand\n5. **Map Room**: Oversized cartographic materials\n6. **Newspaper Reading Room**: Periodicals and newspapers\n\n**USE CASES**:\n\n1. **Archive Reading Room**:\n ```yaml\n ReadingRoom:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/na-studiezaal\"\n has_or_had_label:\n label_text: \"Nationaal Archief Studiezaal\"\n reading_room_type: \"General\"\n seating_capacity: 80\n requires_registration: true\n allows_photography: true\n ```\n\n2. **Special Collections Room**:\n ```yaml\n ReadingRoom:\n\ + \ Finding aids, catalogs, reference help\n- **Registration required**: Reader cards, ID verification\n- **Rules of use**: No food/drink, pencils only, handling guidelines\n\n**TYPES OF READING ROOMS**:\n\n1. **General Reading Room**: Primary research space\n2. **Special Collections Reading Room**: Rare/valuable materials\n3. **Microfilm Reading Room**: Microform materials\n4. **Digital Reading Room**: Electronic resources, digitization on demand\n5. **Map Room**: Oversized cartographic materials\n6. **Newspaper Reading Room**: Periodicals and newspapers\n\n**USE CASES**:\n\n1. **Archive Reading Room**:\n ```yaml\n ReadingRoom:\n identified_by: \"https://nde.nl/ontology/hc/aux/na-studiezaal\"\n has_or_had_label:\n label_text: \"Nationaal Archief Studiezaal\"\n reading_room_type: \"General\"\n seating_capacity: 80\n requires_registration: true\n allows_photography: true\n ```\n\n2. **Special Collections Room**:\n ```yaml\n ReadingRoom:\n\ \ has_or_had_label:\n label_text: \"KB Bijzondere Collecties Leeszaal\"\n reading_room_type: \"Special Collections\"\n seating_capacity: 20\n requires_appointment: true\n has_supervised_handling: true\n ```\n" exact_mappings: - aat:300004051 @@ -63,35 +50,34 @@ classes: - schema:ReadingRoom slots: - has_or_had_accessibility_feature - - allows_or_allowed + - allow - has_locker - has_microfilm_reader - has_supervised_handling - has_wifi - opening_hour - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_label - reading_room_type - requires_appointment - requires_registration - seating_capacity - - specificity_annotation - has_or_had_score - has_or_had_quantity - is_or_was_derived_from - is_or_was_generated_by slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/na-studiezaal has_or_had_label: - range: string +# range: string required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: label_text: Nationaal Archief Studiezaal @@ -100,8 +86,8 @@ classes: - value: label_text: Stadsarchief Amsterdam Studiezaal has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: Main research room for consulting archival collections. Staff assistance available. Self-service microfilm readers and computer terminals for catalog access. @@ -119,7 +105,7 @@ classes: has_or_had_quantity: range: integer required: false - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_measurement_unit: @@ -142,8 +128,8 @@ classes: examples: - value: true - value: false - allows_or_allowed: - range: string + allow: +# range: string multivalued: true examples: - value: Laptops permitted @@ -157,11 +143,11 @@ classes: examples: - value: true opening_hour: - range: string +# range: string examples: - value: Tu-Fr 09:00-17:00, Sa 09:00-13:00 has_or_had_accessibility_feature: - range: string +# range: string multivalued: true examples: - value: Wheelchair accessible @@ -184,7 +170,7 @@ classes: - https://schema.org/Library examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/na-studiezaal + identified_by: https://nde.nl/ontology/hc/aux/na-studiezaal has_or_had_label: label_text: Nationaal Archief Studiezaal has_or_had_description: @@ -197,7 +183,7 @@ classes: has_wifi: true requires_registration: true requires_appointment: false - allows_or_allowed: + allow: - Laptops permitted - Photography for personal research use has_lockers: true @@ -206,7 +192,7 @@ classes: - Wheelchair accessible - Adjustable desks - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/kb-bijzondere-collecties + identified_by: https://nde.nl/ontology/hc/aux/kb-bijzondere-collecties has_or_had_label: label_text: KB Bijzondere Collecties Leeszaal has_or_had_description: @@ -217,7 +203,7 @@ classes: terminal_count: 4 requires_registration: true requires_appointment: true - allows_or_allowed: + allow: - Photography not permitted - reproduction service available has_supervised_handling: true has_lockers: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ReadingRoomAnnex.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ReadingRoomAnnex.yaml index 8c814f5e89..5c745511b0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ReadingRoomAnnex.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ReadingRoomAnnex.yaml @@ -2,38 +2,23 @@ id: https://nde.nl/ontology/hc/class/reading-room-annex name: reading_room_annex_class title: ReadingRoomAnnex Class imports: -- linkml:types -- ../classes/Description -- ../classes/Label -- ../enums/ReadingRoomAnnexReasonEnum -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/is_annex_of_reading_room -- ../slots/is_or_was_created_through -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/is_temporary -- ../slots/material_specialization -- ../slots/opening_hour -- ../slots/planned_closure_date -- ../slots/requires_separate_registration -- ../slots/seating_capacity -- ../slots/shares_catalog_with_main -- ../slots/specificity_annotation -- ./AnnexCreationEvent -- ./CustodianObservation -- ./Identifier -- ./ReadingRoom -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./Description -- ./Label + - linkml:types + - ../enums/ReadingRoomAnnexReasonEnum + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/is_annex_of_reading_room + - ../slots/is_or_was_created_through + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/is_temporary + - ../slots/material_specialization + - ../slots/opening_hour + - ../slots/planned_closure_date + - ../slots/requires_separate_registration + - ../slots/seating_capacity + - ../slots/shares_catalog_with_main prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -49,7 +34,7 @@ classes: is_a: ReconstructedEntity class_uri: aat:300004051 description: "Overflow or supplementary reading room at a separate location from main facility.\n\n**DEFINITION**:\n\nA ReadingRoomAnnex is a secondary research space located separately from\nthe main heritage custodian building. Annexes typically serve overflow\ncapacity, specialized materials, or specific researcher communities.\n\n**DISTINCTION FROM ReadingRoom**:\n\n| Property | ReadingRoom | ReadingRoomAnnex |\n|----------|-------------|------------------|\n| **Location** | Main building | Separate location |\n| **Status** | Primary facility | Supplementary |\n| **Materials** | Main collections | Overflow/specialized |\n| **Permanence** | Permanent | May be temporary |\n\n**TYPICAL REASONS FOR ANNEX**:\n\n1. **Capacity overflow**: Main reading room at capacity\n2. **Specialized materials**: Maps, newspapers, genealogy\n3. **Geographic reach**: Serve researchers in another city\n4. **Renovation**: Temporary reading room during construction\n5. **Partnership**: Shared space with another\ - \ institution\n\n**USE CASES**:\n\n1. **Overflow Annex**:\n ```yaml\n ReadingRoomAnnex:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/nha-annex-kleine-houtweg\"\n annex_name: \"Noord-Hollands Archief Reading Room Annex\"\n annex_reason: CAPACITY_OVERFLOW\n is_annex_of_reading_room: \"https://nde.nl/ontology/hc/aux/nha-studiezaal\"\n ```\n\n2. **Specialized Materials Annex**:\n ```yaml\n ReadingRoomAnnex:\n annex_name: \"Stadsarchief Kaartenkamer Annex\"\n annex_reason: SPECIALIZED_MATERIALS\n material_specialization: \"Historical maps and atlases\"\n ```\n\n**RELATIONSHIP TO AuxiliaryPlace**:\n\nReadingRoomAnnex is typically located within an AuxiliaryPlace:\n```\nAuxiliaryPlace (physical location)\n \u2514\u2500\u2500 hosts \u2192 ReadingRoomAnnex (function at that location)\n```\n" + \ institution\n\n**USE CASES**:\n\n1. **Overflow Annex**:\n ```yaml\n ReadingRoomAnnex:\n identified_by: \"https://nde.nl/ontology/hc/aux/nha-annex-kleine-houtweg\"\n annex_name: \"Noord-Hollands Archief Reading Room Annex\"\n annex_reason: CAPACITY_OVERFLOW\n is_annex_of_reading_room: \"https://nde.nl/ontology/hc/aux/nha-studiezaal\"\n ```\n\n2. **Specialized Materials Annex**:\n ```yaml\n ReadingRoomAnnex:\n annex_name: \"Stadsarchief Kaartenkamer Annex\"\n annex_reason: SPECIALIZED_MATERIALS\n material_specialization: \"Historical maps and atlases\"\n ```\n\n**RELATIONSHIP TO AuxiliaryPlace**:\n\nReadingRoomAnnex is typically located within an AuxiliaryPlace:\n```\nAuxiliaryPlace (physical location)\n \u2514\u2500\u2500 hosts \u2192 ReadingRoomAnnex (function at that location)\n```\n" exact_mappings: - aat:300004051 close_mappings: @@ -60,7 +45,7 @@ classes: - schema:branch slots: - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_label - is_or_was_created_through - is_annex_of_reading_room @@ -71,12 +56,11 @@ classes: - requires_separate_registration - seating_capacity - shares_catalog_with_main - - specificity_annotation - has_or_had_score - is_or_was_derived_from - is_or_was_generated_by slot_usage: - has_or_had_identifier: + identified_by: range: CustodianIdentifier required: true identifier: true @@ -84,24 +68,24 @@ classes: examples: - value: https://nde.nl/ontology/hc/aux/nha-annex-kleine-houtweg has_or_had_label: - range: string +# range: string required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: label_text: Noord-Hollands Archief Reading Room Annex - value: label_text: Stadsarchief Kaartenkamer Annex has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: Overflow reading room for peak research periods. Same registration as main studiezaal. Materials must be pre-ordered. is_or_was_created_through: - range: string +# range: string required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_reason: @@ -110,7 +94,7 @@ classes: has_or_had_reason: has_or_had_label: SPECIALIZED_MATERIALS material_specialization: - range: string +# range: string examples: - value: Historical maps and atlases - value: Newspaper and periodical collections @@ -134,7 +118,7 @@ classes: examples: - value: true opening_hour: - range: string +# range: string examples: - value: We-Th 10:00-16:00 is_temporary: @@ -163,7 +147,7 @@ classes: - http://vocab.getty.edu/aat/300004051 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/nha-annex-kleine-houtweg + identified_by: https://nde.nl/ontology/hc/aux/nha-annex-kleine-houtweg has_or_had_label: label_text: Noord-Hollands Archief Reading Room Annex has_or_had_description: @@ -178,7 +162,7 @@ classes: opening_hours: Tu-Th 10:00-16:00 is_temporary: false - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/sa-renovation-annex + identified_by: https://nde.nl/ontology/hc/aux/sa-renovation-annex has_or_had_label: label_text: Stadsarchief Temporary Reading Room has_or_had_description: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Reason.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Reason.yaml index fbfa6f8e0b..e7b3110188 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Reason.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Reason.yaml @@ -8,9 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: Reason: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ReasoningContent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ReasoningContent.yaml index 2016f63a10..491b399ae8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ReasoningContent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ReasoningContent.yaml @@ -8,10 +8,10 @@ prefixes: prov: http://www.w3.org/ns/prov# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: ReasoningContent: class_uri: prov:Entity @@ -89,7 +89,7 @@ classes: slots: - has_or_had_label - has_or_had_description - - has_or_had_identifier + - identified_by slot_usage: has_or_had_label: examples: @@ -97,7 +97,7 @@ classes: has_or_had_description: examples: - value: Chain-of-thought reasoning for heritage institution extraction - has_or_had_identifier: + identified_by: examples: - value: reasoning-turn-3-20260119-143000 annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ReconstructedEntity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ReconstructedEntity.yaml index 0ddc467a8e..812a86f6d6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ReconstructedEntity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ReconstructedEntity.yaml @@ -6,15 +6,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/is_or_was_generated_by -- ../slots/specificity_annotation -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_score + - ../slots/is_or_was_generated_by classes: ReconstructedEntity: class_uri: prov:Entity @@ -24,7 +18,6 @@ classes: exact_mappings: - prov:Entity slots: - - specificity_annotation - has_or_had_score - is_or_was_generated_by slot_usage: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ReconstructionActivity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ReconstructionActivity.yaml index 7d5b07fbeb..0284f564d0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ReconstructionActivity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ReconstructionActivity.yaml @@ -10,26 +10,16 @@ prefixes: schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../enums/ReconstructionActivityTypeEnum -- ../metadata -- ../slots/generates_or_generated -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_value # was: has_or_had_confidence_measure -- ../slots/justification -- ../slots/method -- ../slots/responsible_agent -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./ConfidenceValue -- ./CustodianObservation -- ./Output -- ./ReconstructionAgent -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../enums/ReconstructionActivityTypeEnum + - ../metadata + - ../slots/generates_or_generated + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_value # was: has_or_had_confidence_measure + - ../slots/justification + - ../slots/method + - ../slots/responsible_agent + - ../slots/temporal_extent default_prefix: hc classes: ReconstructionActivity: @@ -52,12 +42,11 @@ classes: - justification - method - responsible_agent - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - temporal_extent slot_usage: method: - range: string +# range: string responsible_agent: range: ReconstructionAgent temporal_extent: @@ -76,7 +65,7 @@ classes: has_or_had_label: "Reconstructed Custodian Record" has_or_had_description: "Merged record from ISIL and Wikidata sources" justification: - range: string +# range: string comments: - Documents the 'how' (method) and 'who' (responsible_agent) of entity resolution and reconstruction - Enables provenance tracking for data quality assessment and citation purposes diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ReconstructionAgent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ReconstructionAgent.yaml index 18fb97edf1..53d2c93777 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ReconstructionAgent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ReconstructionAgent.yaml @@ -15,23 +15,13 @@ prefixes: tooi: https://identifier.overheid.nl/tooi/def/ont/ rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# imports: -- linkml:types -- ../classes/AgentType -- ../classes/AgentTypes -- ../classes/Label -- ../enums/AgentTypeEnum -- ../metadata -- ../slots/contact -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./AgentType -- ./Label + - linkml:types + - ../enums/AgentTypeEnum + - ../metadata + - ../slots/contact + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: ReconstructionAgent: class_uri: prov:Agent @@ -56,16 +46,15 @@ classes: - has_or_had_label - has_or_had_type - contact - - specificity_annotation - has_or_had_score slot_usage: has_or_had_label: - range: string +# range: string required: true has_or_had_type: - range: uriorcurie +# range: string # uriorcurie contact: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RecordCycleStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RecordCycleStatus.yaml index ce9b71efed..3cff273cce 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RecordCycleStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RecordCycleStatus.yaml @@ -9,9 +9,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: RecordCycleStatus: class_uri: rico:RecordState diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RecordSetType.yaml index 3e590e103b..07558bfe28 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RecordSetType.yaml @@ -8,9 +8,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: RecordSetType: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RecordSetTypes.yaml index 24984b5f55..bd991dffad 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RecordSetTypes.yaml @@ -9,8 +9,8 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ./RecordSetType + - ./RecordSetType + - linkml:types default_prefix: hc classes: Fonds: @@ -41,7 +41,7 @@ classes: broad_mappings: - rico:RecordSetType - skos:Concept - Item: + RecordItem: is_a: RecordSetType class_uri: rico:Record description: The smallest intellectually indivisible unit of archival material. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RecordStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RecordStatus.yaml index 67da54b1ae..b2e8e57b81 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RecordStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RecordStatus.yaml @@ -8,9 +8,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: RecordStatus: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Reference.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Reference.yaml index 1834587e3d..18dd66e7a8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Reference.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Reference.yaml @@ -15,9 +15,8 @@ prefixes: bibo: http://purl.org/ontology/bibo/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ./Label + - linkml:types + - ../slots/has_or_had_label classes: Reference: class_uri: dcterms:BibliographicResource @@ -34,8 +33,8 @@ classes: - source_date slot_usage: has_or_had_label: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: label_value: Parish register entry for Johannes van Berg diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ReferenceLink.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ReferenceLink.yaml index 5da64e7056..d3c491362b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ReferenceLink.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ReferenceLink.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: ReferenceLink: description: "A URL reference from a source document, representing a hyperlink\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchive.yaml index 9dc5207ef9..30d0ced0f9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchive.yaml @@ -8,26 +8,17 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./RegionalArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: RegionalArchive: description: Archive with a regional scope. Regional archives serve geographic regions that may cross administrative boundaries, preserving materials of regional significance. They may focus on particular regions, states, provinces, or cultural areas, complementing national and local archival institutions. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization exact_mappings: - wd:Q27032392 @@ -39,11 +30,10 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null hold_or_held_record_set_type: equals_expression: '["hc:RegionalGovernanceFonds", "hc:CadastralAndLandRecordsFonds", "hc:NotarialProtocolSeries", "hc:RegionalHistoryCollection", "hc:WaterManagementFonds"] diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchiveRecordSetType.yaml index 37d347e90c..bbac0f37a0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchiveRecordSetType.yaml @@ -8,14 +8,11 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to classes: RegionalArchiveRecordSetType: abstract: true @@ -43,7 +40,7 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation + - has_or_had_score slot_usage: has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchiveRecordSetTypes.yaml index 594b2241d3..f490c1c114 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchiveRecordSetTypes.yaml @@ -11,24 +11,18 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_significance -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/privacy_note -- ../slots/record_note -- ../slots/record_set_type -- ../slots/scope_exclude -- ../slots/scope_include -- ../slots/specificity_annotation -- ./RegionalArchive -- ./RegionalArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./RegionalArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_significance + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/privacy_note + - ../slots/record_note + - ../slots/record_set_type + - ../slots/scope_exclude + - ../slots/scope_include classes: RegionalGovernanceFonds: is_a: RegionalArchiveRecordSetType @@ -99,11 +93,10 @@ classes: - intergovernmental records - provincial administration - regional planning - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds - broad_mappings: - wd:Q1643722 - rico:RecordSetType - skos:Concept @@ -123,7 +116,6 @@ classes: custodian_types: '[''*'']' slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -223,11 +215,10 @@ classes: - tithe records - feudal records - oud-rechterlijk archief - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds - broad_mappings: - wd:Q7418661 - rico:RecordSetType - skos:Concept @@ -246,7 +237,6 @@ classes: and residence patterns. Complements civil registry and notarial records. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -348,11 +338,10 @@ classes: - property transfers - estate inventories - powers of attorney - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series - broad_mappings: - wd:Q1366032 - rico:RecordSetType - skos:Concept @@ -369,7 +358,6 @@ classes: history. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -473,11 +461,10 @@ classes: - regional maps - local publications - regional culture - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q9388534 - rico:RecordSetType - skos:Concept @@ -494,7 +481,6 @@ classes: by subject, format, or documentation purpose rather than strict provenance. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -592,11 +578,10 @@ classes: - land reclamation - water management - pumping stations - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds - broad_mappings: - wd:Q188509 - rico:RecordSetType - skos:Concept @@ -618,7 +603,6 @@ classes: over centuries. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchivesInIceland.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchivesInIceland.yaml index 0d21747736..79563d8186 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchivesInIceland.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchivesInIceland.yaml @@ -8,35 +8,23 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./RegionalArchivesInIcelandRecordSetType -- ./RegionalArchivesInIcelandRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: RegionalArchivesInIceland: description: "Regional archives in Iceland. These archives serve specific regions of Iceland, preserving local government records, parish registers, and other materials of regional significance. They complement the National Archives of Iceland (\xDEj\xF3\xF0skjalasafn \xCDslands) by focusing on regional documentation." - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q16428785 close_mappings: @@ -45,7 +33,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchivesInIcelandRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchivesInIcelandRecordSetType.yaml index bcc8520f23..73d56cc64f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchivesInIcelandRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchivesInIcelandRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: RegionalArchivesInIcelandRecordSetType: description: 'A rico:RecordSetType for classifying collections held by RegionalArchivesInIceland custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchivesInIcelandRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchivesInIcelandRecordSetTypes.yaml index 4136fabb23..7f5d92233f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchivesInIcelandRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalArchivesInIcelandRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./RegionalArchivesInIceland -- ./RegionalArchivesInIcelandRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./RegionalArchivesInIcelandRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: IcelandicRegionalFonds: is_a: RegionalArchivesInIcelandRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Icelandic regional administrative records.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalEconomicArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalEconomicArchive.yaml index 271570fff7..5f532ded6c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalEconomicArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalEconomicArchive.yaml @@ -8,35 +8,23 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./RegionalEconomicArchiveRecordSetType -- ./RegionalEconomicArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: RegionalEconomicArchive: description: Archive documenting the economic history of a region. Regional economic archives focus on business, industrial, and commercial history within a specific geographic region. They may hold records of regional businesses, trade associations, chambers of commerce, and documentation of regional economic development. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q2138319 close_mappings: @@ -45,7 +33,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalEconomicArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalEconomicArchiveRecordSetType.yaml index 4d64c6e348..8bad3c1c48 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalEconomicArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalEconomicArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: RegionalEconomicArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by RegionalEconomicArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalEconomicArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalEconomicArchiveRecordSetTypes.yaml index 553bc61662..90a0da8151 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalEconomicArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalEconomicArchiveRecordSetTypes.yaml @@ -17,21 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./RegionalEconomicArchive -- ./RegionalEconomicArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./RegionalEconomicArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: RegionalBusinessFonds: is_a: RegionalEconomicArchiveRecordSetType @@ -39,7 +33,7 @@ classes: description: "A rico:RecordSetType for Regional business records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -50,7 +44,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -75,6 +68,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalHistoricCenter.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalHistoricCenter.yaml index 907e1b2b82..ba23f9ff32 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalHistoricCenter.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalHistoricCenter.yaml @@ -7,26 +7,20 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score classes: RegionalHistoricCenter: description: Name for archives in the Netherlands (Regionaal Historisch Centrum). Regional Historic Centers are Dutch archival institutions that typically result from collaboration between multiple municipalities and the national archives service. They serve as regional repositories for archival materials from participating organizations. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: skos:Concept slots: - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: annotations: skos:prefLabel: Regional Historic Center skos:altLabel: "Regionalhistorisches Zentrum, centre r\xE9gional historique, Regionaal Historisch Centrum, RHC" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalStateArchives.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalStateArchives.yaml index f814d17a32..88875cba48 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalStateArchives.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalStateArchives.yaml @@ -8,35 +8,23 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./RegionalStateArchivesRecordSetType -- ./RegionalStateArchivesRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: RegionalStateArchives: description: Regional state archives in Sweden. These archives are part of Riksarkivet (National Archives of Sweden) and serve specific regions of the country. They preserve government records, court records, church archives, and other materials of regional significance, complementing the central national archives. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q8727648 close_mappings: @@ -45,7 +33,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalStateArchivesRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalStateArchivesRecordSetType.yaml index ceb070e057..95a285060a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalStateArchivesRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalStateArchivesRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: RegionalStateArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by RegionalStateArchives custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalStateArchivesRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalStateArchivesRecordSetTypes.yaml index 9341512978..6c41bbfc3d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RegionalStateArchivesRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RegionalStateArchivesRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./RegionalStateArchives -- ./RegionalStateArchivesRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./RegionalStateArchivesRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: RegionalStateFonds: is_a: RegionalStateArchivesRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Regional state government records.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RegistrationAuthority.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RegistrationAuthority.yaml index b18a40bda3..e33cf28d77 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RegistrationAuthority.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RegistrationAuthority.yaml @@ -14,21 +14,16 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/RegistrationAuthorityGovernanceEnum -- ../metadata -- ../slots/has_or_had_score -- ../slots/is_or_was_equivalent_to -- ../slots/specificity_annotation -- ./Country -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier -- ./AllocationAgency -- ./RegistrationAuthority -- ./Standard + - linkml:types + - ../enums/RegistrationAuthorityGovernanceEnum + - ../metadata + - ../slots/has_or_had_score + - ../slots/is_or_was_equivalent_to + - ../slots/name + - ../slots/name_local + - ../slots/country + - ../slots/sparql_endpoint + - ../slots/has_or_had_url classes: RegistrationAuthority: class_uri: gleif_base:RegistrationAuthority @@ -58,7 +53,6 @@ classes: - org:FormalOrganization - schema:Organization slots: - - specificity_annotation - has_or_had_score - is_or_was_equivalent_to - name @@ -70,6 +64,7 @@ classes: is_or_was_equivalent_to: slot_uri: schema:sameAs range: WikiDataIdentifier + inlined_as_list: true examples: - value: null annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RegistrationInfo.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RegistrationInfo.yaml index 648af96b2e..80eae5dde1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RegistrationInfo.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RegistrationInfo.yaml @@ -19,68 +19,13 @@ prefixes: org: http://www.w3.org/ns/org# schema: http://schema.org/ imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/jurisdiction -- ../slots/specificity_annotation -- ./Jurisdiction -- ./RegistrationAuthority -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./TradeRegister + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/jurisdiction classes: - RegistrationNumber: - class_uri: gleif_base:RegistryIdentifier - description: "Official registration number assigned by an authority and recorded\ - \ in a trade register.\n\n**Ontology Alignment:**\n\n- gleif_base:RegistryIdentifier\ - \ - \"An identifier associated with an entry in a registry,\n i.e., one that\ - \ provides an index to the registry for the recorded item.\"\n- rov:registration\ - \ - \"The registration is a fundamental relationship between a legal \n entity\ - \ and the authority with which it is registered\"\n\n**Examples:**\n\n- Dutch\ - \ KvK number: \"41215422\" (Rijksmuseum)\n- UK Companies House: \"RC000024\"\ - \ or \"00000224\"\n- German HRB: \"HRB 123456 B\" (Berlin)\n- Irish charity\ - \ number: \"CHY 4700\"\n- US EIN: \"12-3456789\"\n\n**Key Properties:**\n\n\ - - number: The actual registration string\n- type: Classification of the registration\ - \ (KvK, EIN, CHY, etc.)\n- trade_register: The register where this number is\ - \ recorded\n- temporal_validity: When this registration was/is valid\n\nSee\ - \ also:\n- TradeRegister: The register that issued this number\n- RegistrationAuthority:\ - \ The organization maintaining the register\n" - exact_mappings: - - gleif_base:RegistryIdentifier - close_mappings: - - rov:registration - - schema:identifier - slots: - - specificity_annotation - - has_or_had_score - annotations: - specificity_score: 0.1 - specificity_rationale: Generic utility class/slot created during migration - custodian_types: '[''*'']' - GovernanceStructure: - class_uri: org:hasUnit - description: 'Organizational governance structure including departments, branches, - and units. - - Used to model the internal structure of complex organizations. - - - Maps to: - - - org:hasUnit (W3C Organization Ontology) - - - org:OrganizationalUnit - - ' - slots: - - specificity_annotation - - has_or_had_score LegalStatus: class_uri: gleif_base:RegistrationStatus description: "Legal status of an organization (active, dissolved, suspended, etc.).\n\ @@ -94,7 +39,6 @@ classes: - gleif_base:EntityStatus - schema:status slots: - - specificity_annotation - has_or_had_score - has_or_had_label - jurisdiction diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RegistrationNumber.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RegistrationNumber.yaml index f78d96fadd..60e10a8f97 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RegistrationNumber.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RegistrationNumber.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: RegistrationNumber: class_uri: schema:PropertyValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RejectedGoogleMapsData.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RejectedGoogleMapsData.yaml index 5f40932059..e3d3d2cf4a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RejectedGoogleMapsData.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RejectedGoogleMapsData.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: RejectedGoogleMapsData: description: "Rejected Google Maps data preserved for audit trail, documenting\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RelatedPlace.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RelatedPlace.yaml index 80754cbd0b..21633d1ee0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RelatedPlace.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RelatedPlace.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: RelatedPlace: description: "A related place from Google Maps representing nearby or associated\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RelatedType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RelatedType.yaml index b4462e31d7..6a8a293f8c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RelatedType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RelatedType.yaml @@ -8,11 +8,11 @@ prefixes: dcterms: http://purl.org/dc/terms/ default_prefix: hc imports: -- linkml:types -- ../slots/related_type_name -- ../slots/related_type_note -- ../slots/related_type_relationship -- ../slots/related_type_wikidata + - linkml:types + - ../slots/related_type_name + - ../slots/related_type_note + - ../slots/related_type_relationship + - ../slots/related_type_wikidata classes: RelatedType: class_uri: hc:RelatedType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RelatedYoutubeVideo.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RelatedYoutubeVideo.yaml index 39a02b7436..ae200b1923 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RelatedYoutubeVideo.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RelatedYoutubeVideo.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: RelatedYoutubeVideo: description: "A YouTube video related to a heritage institution, published by\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ReligiousArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ReligiousArchive.yaml index 1daaa72882..006c13596f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ReligiousArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ReligiousArchive.yaml @@ -15,34 +15,23 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./ReligiousArchiveRecordSetType -- ./ReligiousArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: ReligiousArchive: description: Accumulation of records of a religious denomination or society. Religious archives preserve records documenting the activities, governance, and history of religious organizations. This broad category encompasses archives of various faith traditions including churches, denominations, religious orders, and faith-based organizations. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q85545753 close_mappings: @@ -51,7 +40,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HolySacredSiteType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ReligiousArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ReligiousArchiveRecordSetType.yaml index 343da9e43d..0b6bf56b53 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ReligiousArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ReligiousArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: ReligiousArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ReligiousArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ReligiousArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ReligiousArchiveRecordSetTypes.yaml index 5f15914830..80dfb6c263 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ReligiousArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ReligiousArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ReligiousArchive -- ./ReligiousArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./ReligiousArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: ReligiousInstitutionFonds: is_a: ReligiousArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Religious organization records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept CongregationalRecordsSeries: is_a: ReligiousArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Congregation documentation.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ReligiousArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RequirementStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RequirementStatus.yaml index 2cda2287ba..0962d30c29 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RequirementStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RequirementStatus.yaml @@ -9,16 +9,15 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/begin_of_the_begin -- ../slots/end_of_the_end -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_note -- ../slots/has_or_had_type -- ../slots/is_or_was_required -- ./RequirementType + - linkml:types + - ../slots/begin_of_the_begin + - ../slots/end_of_the_end + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_note + - ../slots/has_or_had_type + - ../slots/is_or_was_required classes: RequirementStatus: class_uri: prov:Entity @@ -29,7 +28,7 @@ classes: close_mappings: - schema:Action slots: - - has_or_had_identifier + - identified_by - is_or_was_required - has_or_had_type - has_or_had_label @@ -38,8 +37,8 @@ classes: - begin_of_the_begin - end_of_the_end slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie identifier: true required: true pattern: ^https://nde\.nl/ontology/hc/requirement-status/[a-z0-9-]+$ @@ -50,18 +49,18 @@ classes: - value: true - value: false has_or_had_type: - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_code: ADVANCE_BOOKING has_or_had_description: - range: string +# range: string examples: - value: Advance booking required for groups of 10 or more. Individual visitors welcome without booking. has_or_had_note: - range: string +# range: string multivalued: true examples: - value: Online booking available at www.museum.nl/book @@ -81,7 +80,7 @@ classes: - 'CREATED 2026-01-15: Enables migration from domain-specific boolean slots' examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/requirement-status/rijksmuseum-edu-booking + identified_by: https://nde.nl/ontology/hc/requirement-status/rijksmuseum-edu-booking is_or_was_required: true has_or_had_type: - has_or_had_code: ADVANCE_BOOKING @@ -97,12 +96,12 @@ classes: - 'Online booking: educatie@rijksmuseum.nl' begin_of_the_begin: '2020-01-01T00:00:00Z' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/requirement-status/archive-reading-room + identified_by: https://nde.nl/ontology/hc/requirement-status/archive-reading-room is_or_was_required: true has_or_had_type: - has_or_had_code: APPOINTMENT_REQUIRED has_or_had_description: "Appointment required for reading room access. \nWalk-in visits not possible due to limited seating.\n" - value: - has_or_had_identifier: https://nde.nl/ontology/hc/requirement-status/library-open-access + identified_by: https://nde.nl/ontology/hc/requirement-status/library-open-access is_or_was_required: false has_or_had_description: No booking required. Open access during public hours. \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RequirementType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RequirementType.yaml index 0af96a0d0d..e60d9b4ecf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RequirementType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RequirementType.yaml @@ -10,17 +10,15 @@ prefixes: dcterms: http://purl.org/dc/terms/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/is_or_was_equivalent_to -- ../slots/is_or_was_related_to -- ./WikiDataIdentifier -- ./RequirementType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/is_or_was_equivalent_to + - ../slots/is_or_was_related_to classes: RequirementType: class_uri: skos:Concept @@ -35,7 +33,7 @@ classes: - schema:eligibleRegion - org:Organization slots: - - has_or_had_identifier + - identified_by - has_or_had_code - has_or_had_label - has_or_had_description @@ -44,15 +42,15 @@ classes: - is_or_was_related_to - is_or_was_equivalent_to slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/requirement-type/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/requirement-type/eligibility-geographic has_or_had_code: - range: string +# range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ examples: @@ -60,7 +58,7 @@ classes: - value: FINANCIAL_COFUNDING - value: PARTNERSHIP_MINIMUM_PARTNERS has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -71,7 +69,7 @@ classes: - Co-funding requirement@en - Cofinancieringseis@nl has_or_had_description: - range: string +# range: string examples: - value: Geographic eligibility constraint on applicant location (e.g., EU Member States only). has_or_had_hypernym: @@ -101,7 +99,7 @@ classes: - https://www.heritagefund.org.uk/funding examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/requirement-type/eligibility-geographic + identified_by: https://nde.nl/ontology/hc/requirement-type/eligibility-geographic has_or_had_code: ELIGIBILITY_GEOGRAPHIC has_or_had_label: - Geographic eligibility@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RequirementTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RequirementTypes.yaml index 3fc93f46f0..53d9a861a9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RequirementTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RequirementTypes.yaml @@ -9,8 +9,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ./RequirementType + - ./RequirementType + - linkml:types classes: EligibilityRequirementCategory: is_a: RequirementType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Research.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Research.yaml index 6cd1d90429..c5d21d733c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Research.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Research.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: Research: class_uri: prov:Activity diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ResearchCenter.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ResearchCenter.yaml index f1b6cf8064..8396a401db 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ResearchCenter.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ResearchCenter.yaml @@ -2,35 +2,22 @@ id: https://nde.nl/ontology/hc/class/research-center name: research_center_class title: ResearchCenter Class imports: -- linkml:types -- ../classes/Quantity -- ../enums/ResearchCenterTypeEnum -- ../slots/accepts_or_accepted -- ../slots/has_or_had_description -- ../slots/has_or_had_facility -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/major_research_project -- ../slots/publishes_or_published -- ../slots/research_center_type -- ../slots/research_focus_area -- ../slots/specificity_annotation -- ./CustodianObservation -- ./Description -- ./Label -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./VisitingScholar -- ./Quantity + - linkml:types + - ../enums/ResearchCenterTypeEnum + - ../slots/accept + - ../slots/has_or_had_description + - ../slots/has_or_had_facility + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/major_research_project + - ../slots/publishes_or_published + - ../slots/research_center_type + - ../slots/research_focus_area prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -59,32 +46,31 @@ classes: - hc:ConservationLab - hc:EducationCenter slots: - - accepts_or_accepted + - accept - has_or_had_type - publishes_or_published - has_or_had_facility - major_research_project - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_label - research_center_type - research_focus_area - - specificity_annotation - has_or_had_quantity - has_or_had_score - is_or_was_derived_from - is_or_was_generated_by slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/rijksmuseum-research has_or_had_label: - range: string +# range: string required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: label_text: Rijksmuseum Research Department @@ -93,8 +79,8 @@ classes: - value: label_text: NIOD Institute for War, Holocaust and Genocide Studies has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: The Rijksmuseum Research Department conducts scholarly research on Dutch art and history, with particular focus on the Golden Age. Publishes the Rijksmuseum Bulletin and monograph series. @@ -106,7 +92,7 @@ classes: - value: DIGITAL_HUMANITIES_CENTER - value: RESEARCH_INSTITUTE research_focus_area: - range: string +# range: string multivalued: true examples: - value: Dutch Golden Age painting @@ -122,21 +108,21 @@ classes: range: boolean examples: - value: true - accepts_or_accepted: + accept: range: VisitingScholar inlined: true multivalued: true examples: - value: major_research_project: - range: string +# range: string multivalued: true examples: - value: Rembrandt Database - value: Operation Night Watch has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type is_or_was_derived_from: range: CustodianObservation multivalued: true @@ -158,7 +144,7 @@ classes: - https://www.wikidata.org/wiki/Q1542449 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/rijksmuseum-research + identified_by: https://nde.nl/ontology/hc/aux/rijksmuseum-research has_or_had_label: label_text: Rijksmuseum Research Department has_or_had_description: @@ -171,16 +157,16 @@ classes: - Decorative arts publishes_or_published: true has_or_had_facility: true - accepts_or_accepted: + accept: - program_type: fellowship major_research_project: - Rembrandt Database - Operation Night Watch has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/kb-dh-lab + identified_by: https://nde.nl/ontology/hc/aux/kb-dh-lab has_or_had_label: label_text: KB Lab - Digital Humanities has_or_had_description: @@ -191,11 +177,11 @@ classes: - Linked open data - Machine learning for OCR - Digital preservation - accepts_or_accepted: + accept: - program_type: short_term_visit has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ResearchLibrary.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ResearchLibrary.yaml index 853a44437c..95489fd639 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ResearchLibrary.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ResearchLibrary.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: ResearchLibrary: class_uri: schema:Library diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ResearchOrganizationType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ResearchOrganizationType.yaml index c07894d2be..91ec41d465 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ResearchOrganizationType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ResearchOrganizationType.yaml @@ -1,26 +1,31 @@ id: https://nde.nl/ontology/hc/class/ResearchOrganizationType name: ResearchOrganizationType title: Research Organization Type Classification +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# + vivo: http://vivoweb.org/ontology/core# imports: -- linkml:types -- ../enums/ResearchCenterTypeEnum -- ../slots/data_repository -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/research_center_subtype -- ../slots/research_focus -- ../slots/research_infrastructure -- ../slots/research_project -- ../slots/specificity_annotation -- ./CustodianType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier -- ./ResearchOrganizationType + - ../classes/AgentType + - linkml:types + - ../enums/ResearchCenterTypeEnum + - ../slots/data_repository + - ../slots/has_or_had_hypernym + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/research_center_subtype + - ../slots/research_focus + - ../slots/research_infrastructure + - ../slots/research_project classes: ResearchOrganizationType: is_a: CustodianType @@ -164,11 +169,10 @@ classes: - research_focus - research_infrastructure - research_project - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ required: true has_or_had_hypernym: @@ -192,7 +196,7 @@ classes: - 'Herbaria: scientific collections of dried plants for botanical research' examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/research/Q117052196 + identified_by: https://nde.nl/ontology/hc/type/research/Q117052196 has_or_had_type_code: RESEARCH_CENTER has_or_had_label: - Conservation Laboratory@en @@ -210,7 +214,7 @@ classes: - microscopy laboratory - climate-controlled storage - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/research/Q181916 + identified_by: https://nde.nl/ontology/hc/type/research/Q181916 has_or_had_type_code: RESEARCH_CENTER has_or_had_label: - Herbarium@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ResearchSource.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ResearchSource.yaml index 45135e74cb..bd3e3265d8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ResearchSource.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ResearchSource.yaml @@ -14,9 +14,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ./ResearchSourceData -default_range: string + - linkml:types +# default_range: string classes: ResearchSource: description: "A research source consulted during location resolution or other\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ResearchSourceData.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ResearchSourceData.yaml index 04f930f819..01cd725669 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ResearchSourceData.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ResearchSourceData.yaml @@ -8,11 +8,9 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/expires_on_expired_at -- ./TimeSpan -- ./Timestamp -default_range: string + - linkml:types + - ../slots/expires_on_expired_at +# default_range: string classes: ResearchSourceData: description: "Structured data from WHOIS research sources including domain registrant\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Resolution.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Resolution.yaml index 9cdbe0ddc3..1eaad899fa 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Resolution.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Resolution.yaml @@ -8,15 +8,13 @@ description: 'Represents resolution or quality specifications for media content. - Display resolution specifications ' imports: -- linkml:types -- ../slots/has_or_had_height -- ../slots/has_or_had_label -- ../slots/has_or_had_quantity -- ../slots/has_or_had_type -- ../slots/has_or_had_unit -- ../slots/has_or_had_width -- ./Quantity -- ./Unit + - linkml:types + - ../slots/has_or_had_height + - ../slots/has_or_had_label + - ../slots/has_or_had_quantity + - ../slots/has_or_had_type + - ../slots/has_or_had_unit + - ../slots/has_or_had_width prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -28,7 +26,7 @@ classes: description: 'Resolution or quality specifications for media content. Captures both quality labels (HD, 4K) and pixel dimensions. ' - exact_mappings: + close_mappings: - schema:videoQuality slots: - has_or_had_type @@ -57,12 +55,12 @@ classes: - value: 1080 has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type multivalued: true required: false has_or_had_unit: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: false annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ResourceType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ResourceType.yaml index a2de278f37..6dfb658436 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ResourceType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ResourceType.yaml @@ -5,8 +5,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ dct: http://purl.org/dc/terms/ imports: -- linkml:types -- ../slots/has_or_had_code + - linkml:types + - ../slots/has_or_had_code classes: ResourceType: class_uri: dct:DCMIType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ResponseFormat.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ResponseFormat.yaml index fffa840410..1bca48852b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ResponseFormat.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ResponseFormat.yaml @@ -5,9 +5,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ dct: http://purl.org/dc/terms/ imports: -- linkml:types -- ../slots/has_or_had_type -- ./ResponseFormatType + - linkml:types + - ../slots/has_or_had_type classes: ResponseFormat: class_uri: dct:MediaType @@ -15,7 +14,7 @@ classes: - has_or_had_type slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ResponseFormatType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ResponseFormatType.yaml index a36df42af9..93dbf3516e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ResponseFormatType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ResponseFormatType.yaml @@ -5,16 +5,16 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: ResponseFormatType: class_uri: skos:Concept abstract: true slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ResponseFormatTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ResponseFormatTypes.yaml index 089b3f34ef..2552400fc9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ResponseFormatTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ResponseFormatTypes.yaml @@ -4,11 +4,12 @@ prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ imports: -- linkml:types -- ./ResponseFormatType + - ./ResponseFormatType + - linkml:types classes: JSONFormat: is_a: ResponseFormatType + class_uri: hc:JSONFormat description: JSON format annotations: specificity_score: 0.1 @@ -18,21 +19,25 @@ classes: - skos:Concept XMLFormat: is_a: ResponseFormatType + class_uri: hc:XMLFormat description: XML format broad_mappings: - skos:Concept RDFFormat: is_a: ResponseFormatType + class_uri: hc:RDFFormat description: RDF format broad_mappings: - skos:Concept HTMLFormat: is_a: ResponseFormatType + class_uri: hc:HTMLFormat description: HTML format broad_mappings: - skos:Concept CSVFormat: is_a: ResponseFormatType + class_uri: hc:CSVFormat description: CSV format broad_mappings: - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Responsibility.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Responsibility.yaml index 4dd8d6fdcc..3de7e1b032 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Responsibility.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Responsibility.yaml @@ -5,9 +5,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../slots/has_or_had_type -- ./ResponsibilityType + - linkml:types + - ../slots/has_or_had_type classes: Responsibility: class_uri: org:Role @@ -30,7 +29,7 @@ classes: - has_or_had_type slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ResponsibilityType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ResponsibilityType.yaml index 41f178295d..a013cdd9b1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ResponsibilityType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ResponsibilityType.yaml @@ -5,17 +5,17 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: ResponsibilityType: description: Abstract base class for responsibility type taxonomy. Defines the classification of duties and roles that can be assigned within a heritage organization, such as curatorial, administrative, conservation, or public engagement responsibilities. class_uri: skos:Concept abstract: true slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ResponsibilityTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ResponsibilityTypes.yaml index e65584be6f..82950090ba 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ResponsibilityTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ResponsibilityTypes.yaml @@ -4,8 +4,8 @@ prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ imports: -- linkml:types -- ./ResponsibilityType + - ./ResponsibilityType + - linkml:types classes: CurationResponsibility: is_a: ResponsibilityType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Restriction.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Restriction.yaml index 35ca958735..05e5aeb2da 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Restriction.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Restriction.yaml @@ -9,11 +9,10 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ default_prefix: hc imports: -- linkml:types -- ../slots/restriction_reason -- ../slots/restriction_type -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../slots/restriction_reason + - ../slots/restriction_type + - ../slots/temporal_extent classes: Restriction: class_uri: dct:RightsStatement diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RetrievalAgent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RetrievalAgent.yaml index 3cc0a77f08..e9f39d613d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RetrievalAgent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RetrievalAgent.yaml @@ -9,26 +9,24 @@ prefixes: hc: https://nde.nl/ontology/hc/ prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score default_prefix: hc classes: RetrievalAgent: class_uri: prov:SoftwareAgent description: Software or agent that performed data retrieval/extraction. slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: has_or_had_label: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RetrievalEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RetrievalEvent.yaml index 48f979b3d1..6894c286bb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RetrievalEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RetrievalEvent.yaml @@ -9,25 +9,22 @@ prefixes: hc: https://nde.nl/ontology/hc/ prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/temporal_extent default_prefix: hc classes: RetrievalEvent: class_uri: prov:Activity description: Event representing the retrieval of data. slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - temporal_extent - - specificity_annotation - has_or_had_score slot_usage: temporal_extent: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RetrievalMethod.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RetrievalMethod.yaml index 2a558602ff..3cb8a2b22c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RetrievalMethod.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RetrievalMethod.yaml @@ -16,26 +16,24 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score default_prefix: hc classes: RetrievalMethod: class_uri: prov:Plan description: Method or plan used for data retrieval. slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: has_or_had_label: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ReturnEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ReturnEvent.yaml index f41215f597..8571f92b42 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ReturnEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ReturnEvent.yaml @@ -8,15 +8,12 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../slots/has_or_had_condition -- ../slots/has_or_had_description -- ../slots/item_returned -- ./Condition -- ./ConditionType -- ./ConditionTypes -- ./Description -- ./Item + - ./Condition + - ./Item + - linkml:types + - ../slots/has_or_had_condition + - ../slots/has_or_had_description + - ../slots/item_returned default_prefix: hc classes: ReturnEvent: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Revenue.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Revenue.yaml index f11e8a6a65..dd034cfe5a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Revenue.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Revenue.yaml @@ -9,7 +9,7 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types + - linkml:types classes: Revenue: class_uri: schema:MonetaryAmount diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ReviewBreakdown.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ReviewBreakdown.yaml index b3bf8846bc..041feb9100 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ReviewBreakdown.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ReviewBreakdown.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: ReviewBreakdown: description: Review count breakdown by star rating diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ReviewTopics.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ReviewTopics.yaml index 36ce1435d3..2b2d157f30 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ReviewTopics.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ReviewTopics.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: ReviewTopics: description: Review topic mention counts (flexible dict) diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ReviewsSummary.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ReviewsSummary.yaml index 6b86fd8b8c..692f448f2f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ReviewsSummary.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ReviewsSummary.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: ReviewsSummary: description: "Breakdown of reviews by star rating (1-5 stars), showing the count\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Roadmap.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Roadmap.yaml index 2d5b27d05d..c5f8374682 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Roadmap.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Roadmap.yaml @@ -16,31 +16,28 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/contains_or_contained -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./ArchivingPlan + - linkml:types + - ../slots/contains_or_contained + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score default_prefix: hc classes: Roadmap: class_uri: skos:Concept description: A plan outlining future goals or steps. slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - contains_or_contained - - specificity_annotation - has_or_had_score slot_usage: contains_or_contained: - range: string +# range: string multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/RoomUnit.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/RoomUnit.yaml index 258d3e9fa0..3e951f182e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/RoomUnit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/RoomUnit.yaml @@ -8,9 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../enums/RoomUnitTypeEnum -- ./Unit + - linkml:types + - ../enums/RoomUnitTypeEnum classes: RoomUnit: is_a: Unit diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SceneSegment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SceneSegment.yaml index e0d4e3ce48..035741b870 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SceneSegment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SceneSegment.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_time_interval + - linkml:types + - ../slots/has_or_had_time_interval classes: SceneSegment: class_uri: schema:VideoObject diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Schema.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Schema.yaml index bebf20237c..3cd089aa33 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Schema.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Schema.yaml @@ -8,9 +8,9 @@ prefixes: dcterms: http://purl.org/dc/terms/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: Schema: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SchoolArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SchoolArchive.yaml index ce8da54aeb..836fafcfb9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SchoolArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SchoolArchive.yaml @@ -8,35 +8,23 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./SchoolArchiveRecordSetType -- ./SchoolArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: SchoolArchive: description: Archive of a school or educational institution. School archives preserve records documenting the history and administration of schools, including student records, faculty papers, curriculum materials, photographs, and institutional publications. They serve institutional memory and educational history research. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q27030883 close_mappings: @@ -45,7 +33,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SchoolArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SchoolArchiveRecordSetType.yaml index 9022cb2abf..d0d7029a3f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SchoolArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SchoolArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: SchoolArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by SchoolArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SchoolArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SchoolArchiveRecordSetTypes.yaml index 237ec71424..9e5871aa1e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SchoolArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SchoolArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./SchoolArchive -- ./SchoolArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./SchoolArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: SchoolAdministrationFonds: is_a: SchoolArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for School administrative records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept SchoolStudentRecordSeries: is_a: SchoolArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Pupil records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by SchoolArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept CurriculumDocumentCollection: is_a: SchoolArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Educational materials.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by SchoolArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ScientificArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ScientificArchive.yaml index 0f37166808..7d62f4101a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ScientificArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ScientificArchive.yaml @@ -8,35 +8,23 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./ScientificArchiveRecordSetType -- ./ScientificArchiveRecordSetTypes -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: ScientificArchive: description: Archive created for academic purposes. Scientific archives (Forschungsarchive) collect and preserve materials related to scientific research, including research data, laboratory notebooks, correspondence, and documentation of scientific projects. They serve the history of science and support reproducibility of research findings. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q27032095 close_mappings: @@ -45,7 +33,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ScientificArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ScientificArchiveRecordSetType.yaml index 7a3bc02131..7d8d0bd729 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ScientificArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ScientificArchiveRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: ScientificArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ScientificArchive custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ScientificArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ScientificArchiveRecordSetTypes.yaml index af63ef6b4c..cadc633a10 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ScientificArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ScientificArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ScientificArchive -- ./ScientificArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./ScientificArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: ResearchProjectFonds: is_a: ScientificArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Scientific research project records.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept ScientistPapersCollection: is_a: ScientificArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Scientist personal papers.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ScientificArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept LaboratoryRecordSeries: is_a: ScientificArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Laboratory notebooks and data.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by ScientificArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Scope.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Scope.yaml index 6f4018af4a..090db9c660 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Scope.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Scope.yaml @@ -7,9 +7,9 @@ prefixes: dct: http://purl.org/dc/terms/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_type -default_range: string + - linkml:types + - ../slots/has_or_had_type +# default_range: string classes: Scope: description: 'Coverage or scope information for a collection, service, or institution. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ScopeType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ScopeType.yaml index 2ca7599497..fe228f670e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ScopeType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ScopeType.yaml @@ -9,17 +9,11 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score classes: ScopeType: class_uri: skos:Concept @@ -32,13 +26,12 @@ classes: - dct:Coverage - schema:DefinedTerm slots: - - specificity_annotation - has_or_had_score - has_or_had_description - has_or_had_label - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: description: 'Identifier(s) for this scope type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/scope-type/temporal) @@ -46,7 +39,7 @@ classes: - Wikidata Q-number (e.g., Q186408) ' - range: uriorcurie +# range: string # uriorcurie required: true identifier: true multivalued: true @@ -54,7 +47,7 @@ classes: - value: https://nde.nl/ontology/hc/scope-type/temporal - value: Q186408 has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -63,7 +56,7 @@ classes: - temporeel@nl - zeitlich@de has_or_had_description: - range: string +# range: string required: false examples: - value: Time-based scope dimension covering date ranges and historical periods @@ -83,7 +76,7 @@ classes: - https://www.w3.org/2004/02/skos/ examples: - value: - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/scope-type/temporal has_or_had_label: - Temporal@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ScopeTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ScopeTypes.yaml index eb987183d2..c4e40b010e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ScopeTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ScopeTypes.yaml @@ -9,8 +9,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ./ScopeType + - ./ScopeType + - linkml:types classes: TemporalScope: is_a: ScopeType @@ -28,21 +28,8 @@ classes: - "19th century" (century scope) ' - exact_mappings: - - dct:PeriodOfTime - annotations: - specificity_score: '0.40' - specificity_rationale: Moderately specific - temporal scoping is common across - domains. - custodian_types: '[''*'']' - examples: - - value: - has_or_had_identifier: https://nde.nl/ontology/hc/scope-type/temporal - has_or_had_label: - - Temporal@en - - temporeel@nl - description: Temporal scope type instance - broad_mappings: + close_mappings: + - dct:subject - skos:Concept SpatialScope: is_a: ScopeType @@ -62,26 +49,12 @@ classes: - "Europe" (continent) ' - exact_mappings: - - dct:Location close_mappings: - - schema:Place - annotations: - specificity_score: '0.40' - specificity_rationale: Moderately specific - geographic scoping is common across - domains. - examples: - - value: - has_or_had_identifier: https://nde.nl/ontology/hc/scope-type/spatial - has_or_had_label: - - Spatial@en - - ruimtelijk@nl - description: Spatial scope type instance - broad_mappings: + - dct:subject - skos:Concept SubjectScope: is_a: ScopeType - class_uri: dct:subject + class_uri: hc:SubjectScope description: 'Topic/domain scope dimension covering subjects, themes, and disciplines. @@ -94,16 +67,15 @@ classes: - "Maritime history" (subject area) ' - exact_mappings: - - dct:subject close_mappings: + - dct:subject - skos:Concept annotations: specificity_score: '0.45' specificity_rationale: Moderately specific - subject classification is domain-dependent. examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/scope-type/subject + identified_by: https://nde.nl/ontology/hc/scope-type/subject has_or_had_label: - Subject@en - onderwerp@nl @@ -127,16 +99,15 @@ classes: - "3D objects" (physical objects) ' - exact_mappings: - - dct:DCMIType close_mappings: + - dct:DCMIType - schema:CreativeWork annotations: specificity_score: '0.50' specificity_rationale: More specific - material types are heritage-domain focused. examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/scope-type/material + identified_by: https://nde.nl/ontology/hc/scope-type/material has_or_had_label: - Material@en - materiaal@nl @@ -145,7 +116,7 @@ classes: - skos:Concept LinguisticScope: is_a: ScopeType - class_uri: dct:language + class_uri: hc:LinguisticScope description: 'Language scope dimension covering languages, scripts, and dialects. @@ -158,14 +129,14 @@ classes: - "Low Saxon" (dialect/regional language) ' - exact_mappings: + close_mappings: - dct:language annotations: specificity_score: '0.40' specificity_rationale: Moderately specific - linguistic scoping is common. examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/scope-type/linguistic + identified_by: https://nde.nl/ontology/hc/scope-type/linguistic has_or_had_label: - Linguistic@en - taalkundig@nl @@ -196,14 +167,14 @@ classes: heritage-relevant. examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/scope-type/institutional + identified_by: https://nde.nl/ontology/hc/scope-type/institutional has_or_had_label: - Institutional@en - institutioneel@nl description: Institutional scope type instance broad_mappings: - skos:Concept - CollectionScope: + CollectionScopeType: is_a: ScopeType class_uri: schema:Collection description: 'Collection-based scope dimension covering collection types and sizes. @@ -226,7 +197,7 @@ classes: focused. examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/scope-type/collection + identified_by: https://nde.nl/ontology/hc/scope-type/collection has_or_had_label: - Collection@en - collectie@nl @@ -235,7 +206,7 @@ classes: - skos:Concept FormatScope: is_a: ScopeType - class_uri: dct:format + class_uri: hc:FormatScope description: 'Format scope dimension covering file formats and data standards. @@ -248,14 +219,14 @@ classes: - "EAD" (archival encoding) ' - exact_mappings: + close_mappings: - dct:format annotations: specificity_score: '0.50' specificity_rationale: More specific - format scoping is technical/domain focused. examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/scope-type/format + identified_by: https://nde.nl/ontology/hc/scope-type/format has_or_had_label: - Format@en - formaat@nl diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SearchAPI.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SearchAPI.yaml index eed0a85cc8..c25255e81a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SearchAPI.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SearchAPI.yaml @@ -10,19 +10,13 @@ prefixes: hydra: http://www.w3.org/ns/hydra/core# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/HTTPMethodEnum -- ../enums/PaginationMethodEnum -- ../enums/SearchResponseFormatEnum -- ../metadata -- ../slots/has_or_had_score -- ../slots/response_format -- ../slots/specificity_annotation -- ./DataServiceEndpoint -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/HTTPMethodEnum + - ../enums/PaginationMethodEnum + - ../enums/SearchResponseFormatEnum + - ../metadata + - ../slots/has_or_had_score + - ../slots/response_format classes: SearchAPI: is_a: DataServiceEndpoint @@ -57,7 +51,6 @@ classes: - https://opensearch.org/ - https://www.hydra-cg.com/spec/latest/core/ slots: - - specificity_annotation - has_or_had_score - has_or_had_url - response_format @@ -76,6 +69,5 @@ classes: ' slots: - - specificity_annotation - has_or_had_score - name diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SearchScore.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SearchScore.yaml index 3a6375adc5..e1ee678fac 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SearchScore.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SearchScore.yaml @@ -9,8 +9,8 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: SearchScore: class_uri: schema:Rating diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SectionLink.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SectionLink.yaml index fb5f7caf7b..2ebcda30b3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SectionLink.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SectionLink.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_url + - linkml:types + - ../slots/has_or_had_url classes: SectionLink: class_uri: schema:WebPageElement diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSweden.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSweden.yaml index f0980a7612..19cbc2b8d0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSweden.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSweden.yaml @@ -8,35 +8,23 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./Scope -- ./SectorOfArchivesInSwedenRecordSetType -- ./SectorOfArchivesInSwedenRecordSetTypes -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: SectorOfArchivesInSweden: description: The archival sector in Sweden. This represents the collective system of archival institutions and practices in Sweden, including Riksarkivet (National Archives), regional archives, municipal archives, and private archives. It describes the sector as a whole rather than individual institutions. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q84171278 close_mappings: @@ -54,7 +42,7 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:OfficialInstitutionType"]' see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSwedenRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSwedenRecordSetType.yaml index 0b0736b4d7..3754dd4c56 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSwedenRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSwedenRecordSetType.yaml @@ -15,13 +15,10 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: SectorOfArchivesInSwedenRecordSetType: description: 'A rico:RecordSetType for classifying collections held by SectorOfArchivesInSweden custodians. @@ -31,7 +28,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSwedenRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSwedenRecordSetTypes.yaml index 7bb96fb008..e372fb7502 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSwedenRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSwedenRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./SectorOfArchivesInSweden -- ./SectorOfArchivesInSwedenRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./SectorOfArchivesInSwedenRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: SwedishSectorFonds: is_a: SectorOfArchivesInSwedenRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Swedish sector archives.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the fonds \norganizational\ \ principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SecurityArchives.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SecurityArchives.yaml index 4e71e3829d..4b47a836f0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SecurityArchives.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SecurityArchives.yaml @@ -8,35 +8,23 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./DualClassLink -- ./Scope -- ./SecurityArchivesRecordSetType -- ./SecurityArchivesRecordSetTypes -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type classes: SecurityArchives: description: Type of archives in Czechia related to security services. Security archives preserve records of security and intelligence services, often from historical regimes. In the Czech context, this includes archives documenting the activities of communist-era security services and their records. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q101475797 close_mappings: @@ -45,7 +33,7 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SecurityArchivesRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SecurityArchivesRecordSetType.yaml index 944b2eac7c..333b9b6b2d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SecurityArchivesRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SecurityArchivesRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/specificity_annotation -- ./CollectionType -- ./DualClassLink -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: SecurityArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by SecurityArchives custodians. @@ -24,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - has_or_had_scope see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SecurityArchivesRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SecurityArchivesRecordSetTypes.yaml index 11a99ced0b..0eb0831efd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SecurityArchivesRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SecurityArchivesRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./SecurityArchives -- ./SecurityArchivesRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./SecurityArchivesRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: SecurityServiceFonds: is_a: SecurityArchivesRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Security/intelligence service records.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept SurveillanceRecordSeries: is_a: SecurityArchivesRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Surveillance documentation.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by SecurityArchives custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SecurityLevel.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SecurityLevel.yaml index 1485a9e43d..a6e5d405fe 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SecurityLevel.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SecurityLevel.yaml @@ -8,8 +8,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code + - linkml:types + - ../slots/has_or_had_code classes: SecurityLevel: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SecuritySystem.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SecuritySystem.yaml index 1e910992ab..06228037b6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SecuritySystem.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SecuritySystem.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: SecuritySystem: class_uri: schema:Product diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Segment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Segment.yaml index 3a76afb5b9..8c7ec0d22a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Segment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Segment.yaml @@ -7,9 +7,9 @@ prefixes: oa: http://www.w3.org/ns/oa# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: Segment: class_uri: oa:SpecificResource diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SensitivityLevel.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SensitivityLevel.yaml index 851f101e73..e834ae193b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SensitivityLevel.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SensitivityLevel.yaml @@ -7,9 +7,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: SensitivityLevel: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Series.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Series.yaml deleted file mode 100644 index 0f293ddbab..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Series.yaml +++ /dev/null @@ -1,17 +0,0 @@ -id: https://nde.nl/ontology/hc/class/Series -name: Series -title: Series -description: A series of records. -imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_name -classes: - Series: - class_uri: rico:RecordSet - annotations: - custodian_types: '["A"]' - custodian_types_rationale: Archival concept - slots: - - has_or_had_name - - has_or_had_description diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Service.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Service.yaml index a4309b3272..9858f1bb13 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Service.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Service.yaml @@ -7,10 +7,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_type -- ../slots/price -- ./ServiceType + - linkml:types + - ../slots/has_or_had_type + - ../slots/price classes: Service: class_uri: schema:Service @@ -22,7 +21,7 @@ classes: - price slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie exact_mappings: - schema:Service annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ServiceArea.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ServiceArea.yaml index 4a8cbc8ec5..cc6f30be9f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ServiceArea.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ServiceArea.yaml @@ -10,36 +10,23 @@ prefixes: prov: http://www.w3.org/ns/prov# rico: https://www.ica.org/standards/RiC/ontology# imports: -- linkml:types -- ../enums/ServiceAreaTypeEnum -- ../metadata -- ../slots/contains_or_contained_covers_settlement -- ../slots/cover_or_covered_subregion -- ../slots/covers_country -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/is_historical_boundary -- ../slots/served_by -- ../slots/service_area_description -- ../slots/service_area_id -- ../slots/service_area_name -- ../slots/service_area_type -- ../slots/source_dataset -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./Country -- ./CustodianLegalStatus -- ./GeoSpatialPlace -- ./HALCAdm1Code -- ./HALCAdm2Name -- ./Settlement -- ./SpecificityAnnotation -- ./Subregion -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../enums/ServiceAreaTypeEnum + - ../metadata + - ../slots/contains_or_contained_covers_settlement + - ../slots/cover_or_covered_subregion + - ../slots/covers_country + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/is_historical_boundary + - ../slots/served_by + - ../slots/service_area_description + - ../slots/service_area_id + - ../slots/service_area_name + - ../slots/service_area_type + - ../slots/source_dataset + - ../slots/temporal_extent classes: ServiceArea: class_uri: schema:AdministrativeArea @@ -62,7 +49,7 @@ classes: - covers_country - contains_or_contained_covers_settlement - cover_or_covered_subregion - - has_or_had_identifier + - identified_by - has_or_had_label - is_historical_boundary - served_by @@ -71,11 +58,10 @@ classes: - service_area_name - service_area_type - source_dataset - - specificity_annotation - has_or_had_score - temporal_extent slot_usage: - has_or_had_identifier: + identified_by: range: HALCAdm1Code inlined: true has_or_had_label: @@ -146,8 +132,8 @@ classes: temporal_extent: begin_of_the_begin: '1500-01-01' end_of_the_end: '1795-01-01' - has_or_had_identifier: - has_or_had_identifier: VI + identified_by: + identified_by: VI has_or_had_label: has_or_had_label: Vianen served_by: https://nde.nl/ontology/hc/legal/gemeentearchief-vianen diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ServiceType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ServiceType.yaml index e45181eacc..c9235dd20f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ServiceType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ServiceType.yaml @@ -14,10 +14,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: ServiceType: class_uri: skos:Concept @@ -39,7 +39,7 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ServiceTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ServiceTypes.yaml index 7b4458088a..024842e0f9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ServiceTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ServiceTypes.yaml @@ -6,8 +6,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ default_prefix: hc imports: -- linkml:types -- ./ServiceType + - ./ServiceType + - linkml:types classes: VisitorService: is_a: ServiceType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Setpoint.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Setpoint.yaml index d1d5255cf0..229257a8aa 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Setpoint.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Setpoint.yaml @@ -12,16 +12,16 @@ prefixes: dcterms: http://purl.org/dc/terms/ default_prefix: hc imports: -- linkml:types -- ../enums/MeasureUnitEnum -- ../enums/SetpointTypeEnum -- ../slots/iso_standard_reference -- ../slots/setpoint_max -- ../slots/setpoint_min -- ../slots/setpoint_tolerance -- ../slots/setpoint_type -- ../slots/setpoint_unit -- ../slots/setpoint_value + - linkml:types + - ../enums/MeasureUnitEnum + - ../enums/SetpointTypeEnum + - ../slots/iso_standard_reference + - ../slots/setpoint_max + - ../slots/setpoint_min + - ../slots/setpoint_tolerance + - ../slots/setpoint_type + - ../slots/setpoint_unit + - ../slots/setpoint_value classes: Setpoint: class_uri: brick:Setpoint @@ -76,7 +76,7 @@ classes: - value: PERCENT - value: LUX iso_standard_reference: - range: string +# range: string required: false examples: - value: ISO 11799:2015 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Settlement.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Settlement.yaml index daa27ddfd8..fa2562d99c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Settlement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Settlement.yaml @@ -2,20 +2,13 @@ id: https://nde.nl/ontology/hc/class/settlement name: settlement title: Settlement Class imports: -- linkml:types -- ../slots/country -- ../slots/has_or_had_geographic_subdivision -- ../slots/has_or_had_score -- ../slots/latitude -- ../slots/longitude -- ../slots/settlement_name -- ../slots/specificity_annotation -- ./Country -- ./SpecificityAnnotation -- ./Subregion -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/country + - ../slots/has_or_had_geographic_subdivision + - ../slots/has_or_had_score + - ../slots/latitude + - ../slots/longitude + - ../slots/settlement_name classes: Settlement: class_uri: gn:Feature @@ -48,7 +41,6 @@ classes: - latitude - longitude - settlement_name - - specificity_annotation - has_or_had_geographic_subdivision - has_or_had_score slot_usage: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ShortCode.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ShortCode.yaml index 16a5366c1e..58e3009b99 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ShortCode.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ShortCode.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: ShortCode: class_uri: schema:PropertyValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Significance.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Significance.yaml index 0420eb5138..f8173669ee 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Significance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Significance.yaml @@ -10,12 +10,11 @@ prefixes: schema: http://schema.org/ imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ./SignificanceType + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type default_prefix: hc classes: @@ -66,13 +65,13 @@ classes: - value: CommunitySignificance - value: EconomicSignificance has_or_had_description: - range: string +# range: string required: true examples: - value: "UNESCO-recognized Trappist tradition, Belgian cultural identity" - value: "Economic importance for regional tourism" has_or_had_label: - range: string +# range: string required: false examples: - value: "UNESCO Intangible Heritage" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SignificanceType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SignificanceType.yaml index bbd2843467..d821efe9a0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SignificanceType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SignificanceType.yaml @@ -9,10 +9,10 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: @@ -47,13 +47,13 @@ classes: slot_usage: has_or_had_label: - range: string +# range: string required: true examples: - value: "Community Significance" - value: "Economic Significance" has_or_had_description: - range: string +# range: string required: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SignificanceTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SignificanceTypes.yaml index 819f60e26a..b757cfcaa5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SignificanceTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SignificanceTypes.yaml @@ -7,9 +7,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# schema: http://schema.org/ imports: -- linkml:types -- ../metadata -- ./SignificanceType + - ./SignificanceType + - linkml:types + - ../metadata default_prefix: hc classes: CommunitySignificance: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SilenceSegment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SilenceSegment.yaml index 840e990d8d..650f9758eb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SilenceSegment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SilenceSegment.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_time_interval + - linkml:types + - ../slots/has_or_had_time_interval classes: SilenceSegment: class_uri: schema:AudioObject diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Size.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Size.yaml index 2ef4404661..8dfcd42b14 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Size.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Size.yaml @@ -3,18 +3,15 @@ name: Size title: Size Class description: Dimensions or size of an entity. MIGRATED from dimension string value (2026-01-26). Maps to CIDOC-CRM E54 Dimension. prefixes: + linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ crm: http://www.cidoc-crm.org/cidoc-crm/ schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../classes/Label -- ../classes/Unit -- ../slots/has_or_had_label -- ../slots/has_or_had_unit -- ./Label -- ./Unit + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_unit default_prefix: hc classes: Size: @@ -24,9 +21,9 @@ classes: - has_or_had_unit slot_usage: has_or_had_label: - range: string +# range: string has_or_had_unit: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SnapshotPath.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SnapshotPath.yaml index 958430d76b..26d48a2329 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SnapshotPath.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SnapshotPath.yaml @@ -13,9 +13,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: SnapshotPath: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaContent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaContent.yaml index 4bda061d0f..a46a324597 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaContent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaContent.yaml @@ -2,36 +2,23 @@ id: https://nde.nl/ontology/hc/class/SocialMediaContent name: social_media_content_class title: Social Media Content Base Class imports: -- linkml:types -- ../classes/APIEndpoint -- ../slots/content_category -- ../slots/content_id -- ../slots/content_url -- ../slots/has_or_had_description -- ../slots/has_or_had_endpoint -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/has_or_had_url -- ../slots/is_official_content -- ../slots/is_or_was_categorized_as -- ../slots/is_or_was_last_updated_at -- ../slots/is_or_was_published_at -- ../slots/language -- ../slots/platform_type -- ../slots/posted_by_profile -- ../slots/retrieval_timestamp -- ../slots/specificity_annotation -- ./PublicationEvent -- ./SocialMediaPlatformType -- ./SocialMediaProfile -- ./SpecificityAnnotation -- ./Tag -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./WebObservation -- ./APIEndpoint + - linkml:types + - ../slots/content_category + - ../slots/content_id + - ../slots/content_url + - ../slots/has_or_had_description + - ../slots/has_or_had_endpoint + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/has_or_had_url + - ../slots/is_official_content + - ../slots/is_or_was_categorized_as + - ../slots/is_or_was_last_updated_at + - ../slots/is_or_was_published_at + - ../slots/language + - ../slots/platform_type + - ../slots/posted_by_profile + - ../slots/retrieval_timestamp prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -70,7 +57,6 @@ classes: - posted_by_profile - is_or_was_published_at - retrieval_timestamp - - specificity_annotation - is_or_was_categorized_as - has_or_had_score - has_or_had_url @@ -78,7 +64,7 @@ classes: - is_or_was_last_updated_at slot_usage: content_id: - range: string +# range: string required: true identifier: true examples: @@ -90,7 +76,7 @@ classes: examples: - value: https://www.youtube.com/watch?v=FbIoC-Owy-M platform_type: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: YouTube @@ -100,7 +86,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/social-media/nationaal-onderduikmuseum-youtube has_or_had_label: - range: string +# range: string required: false examples: - value: "De Vrijheidsroute (aflevering 3) \u2013 Zevenaar, Duiven, Westervoort" @@ -121,7 +107,7 @@ classes: examples: - value: '2025-08-01T10:30:00Z' language: - range: string +# range: string required: false examples: - value: nl @@ -147,7 +133,7 @@ classes: examples: - value: true content_category: - range: string +# range: string required: false examples: - value: '22' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPlatformType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPlatformType.yaml index c6c8327c4f..d813d8ec57 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPlatformType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPlatformType.yaml @@ -9,25 +9,19 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../enums/PlatformCategoryEnum -- ../metadata -- ../slots/has_or_had_score -- ../slots/social_media_example_profile -- ../slots/social_media_feature -- ../slots/social_media_heritage_use_case -- ../slots/social_media_platform_category -- ../slots/social_media_platform_description -- ../slots/social_media_platform_name -- ../slots/social_media_platform_type_id -- ../slots/social_media_url_pattern -- ../slots/social_media_wikidata_id -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./SocialMediaPlatformType + - linkml:types + - ../enums/PlatformCategoryEnum + - ../metadata + - ../slots/has_or_had_score + - ../slots/social_media_example_profile + - ../slots/social_media_feature + - ../slots/social_media_heritage_use_case + - ../slots/social_media_platform_category + - ../slots/social_media_platform_description + - ../slots/social_media_platform_name + - ../slots/social_media_platform_type_id + - ../slots/social_media_url_pattern + - ../slots/social_media_wikidata_id classes: SocialMediaPlatformType: class_uri: skos:Concept @@ -51,7 +45,6 @@ classes: - social_media_platform_type_id - social_media_url_pattern - social_media_wikidata_id - - specificity_annotation - has_or_had_score slot_usage: social_media_platform_type_id: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPlatformTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPlatformTypes.yaml index b08f65c06f..4a5505f137 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPlatformTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPlatformTypes.yaml @@ -9,19 +9,14 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_score -- ../slots/platform_name -- ../slots/social_media_platform_category -- ../slots/social_media_url_pattern -- ../slots/social_media_wikidata_id -- ../slots/specificity_annotation -- ./SocialMediaPlatformType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./SocialMediaPlatformType + - linkml:types + - ../metadata + - ../slots/has_or_had_score + - ../slots/platform_name + - ../slots/social_media_platform_category + - ../slots/social_media_url_pattern + - ../slots/social_media_wikidata_id classes: Facebook: is_a: SocialMediaPlatformType @@ -70,7 +65,6 @@ classes: - Business pages common for heritage institutions - Events feature useful for exhibition announcements slots: - - specificity_annotation - has_or_had_score annotations: specificity_score: 0.1 @@ -119,7 +113,6 @@ classes: - Launched 2023 as X/Twitter alternative - Instagram account integration slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -167,7 +160,6 @@ classes: - Important for Hermitage, Russian museums - Music and video hosting integrated slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -219,7 +211,6 @@ classes: - Both x.com and twitter.com URLs valid - Major platform for GLAM community engagement slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -267,7 +258,6 @@ classes: - Growing GLAM community presence - Custom feed algorithms slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -319,7 +309,6 @@ classes: - GLAM-specific instance at glammr.us - Popular with open source/academic communities slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -367,7 +356,6 @@ classes: - Essential for Chinese audience reach - E-commerce integration for museum shops slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -421,7 +409,6 @@ classes: - High engagement for visual content - Reels increasingly important for discovery slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -473,7 +460,6 @@ classes: - Good for art and design collections - Strong traffic driver to collection pages slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -527,7 +513,6 @@ classes: - Strong Creative Commons community - Wikimedia Commons integration slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -587,7 +572,6 @@ classes: - Primary platform for long-form heritage video - YouTube Shorts for short-form content slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -636,7 +620,6 @@ classes: - Critical for Gen Z audience reach - Trend-driven content format slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -690,7 +673,6 @@ classes: - Ad-free, high quality preferred by arts sector - Password protection for press previews slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -739,7 +721,6 @@ classes: - Strong for interactive live content - Growing museum presence for virtual tours slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -791,7 +772,6 @@ classes: - Primary platform for heritage sector jobs - Industry thought leadership slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -843,7 +823,6 @@ classes: - Business API for institutional use - Channels feature for broadcasts slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -895,7 +874,6 @@ classes: - Strong bot ecosystem - Popular for news/announcement channels slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -936,7 +914,6 @@ classes: - Essential for Chinese visitor services - Mini programs for interactive experiences slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -975,7 +952,6 @@ classes: - Official account for institutional presence - Sticker communication popular slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -1025,7 +1001,6 @@ classes: - Growing heritage podcast presence - Exhibition playlists popular slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -1074,7 +1049,6 @@ classes: - Good for oral history embedding - Waveform comment feature unique slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -1126,7 +1100,6 @@ classes: - Good for thought leadership - Publication feature for teams slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -1178,7 +1151,6 @@ classes: - Growing heritage sector presence - Paid subscription option for members slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -1227,7 +1199,6 @@ classes: - Tiered access for supporters - Crowdfunding for special projects slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -1261,7 +1232,6 @@ classes: - Require platform_name specification - Review for promotion to dedicated class slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPost.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPost.yaml index 7d359117c2..c5937ab52a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPost.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPost.yaml @@ -2,37 +2,23 @@ id: https://nde.nl/ontology/hc/class/SocialMediaPost name: social_media_post_class title: Social Media Post Class imports: -- linkml:types -- ../classes/APIEndpoint -- ../slots/content_category -- ../slots/has_or_had_description -- ../slots/has_or_had_endpoint -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/has_or_had_url -- ../slots/is_official_content -- ../slots/is_or_was_categorized_as -- ../slots/is_or_was_last_updated_at -- ../slots/is_or_was_published_at -- ../slots/language -- ../slots/platform_type -- ../slots/post_id -- ../slots/post_url -- ../slots/posted_by_profile -- ../slots/retrieval_timestamp -- ../slots/specificity_annotation -- ./PublicationEvent -- ./SocialMediaPlatformType -- ./SocialMediaPostType -- ./SocialMediaProfile -- ./SpecificityAnnotation -- ./Tag -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./WebObservation -- ./APIEndpoint + - linkml:types + - ../slots/content_category + - ../slots/has_or_had_description + - ../slots/has_or_had_endpoint + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/has_or_had_url + - ../slots/is_official_content + - ../slots/is_or_was_categorized_as + - ../slots/is_or_was_last_updated_at + - ../slots/is_or_was_published_at + - ../slots/language + - ../slots/platform_type + - ../slots/post_id + - ../slots/post_url + - ../slots/posted_by_profile + - ../slots/retrieval_timestamp prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -72,7 +58,6 @@ classes: - posted_by_profile - is_or_was_published_at - retrieval_timestamp - - specificity_annotation - is_or_was_categorized_as - has_or_had_score - has_or_had_url @@ -80,7 +65,7 @@ classes: - is_or_was_last_updated_at slot_usage: post_id: - range: string +# range: string required: true identifier: true examples: @@ -94,7 +79,7 @@ classes: - value: https://www.youtube.com/watch?v=FbIoC-Owy-M - value: '[CarouselPost, ImagePost, VideoPost]' platform_type: - range: uriorcurie +# range: string # uriorcurie required: true inlined: false examples: @@ -106,7 +91,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/social-media/nationaal-onderduikmuseum-youtube has_or_had_label: - range: string +# range: string required: false examples: - value: "De Vrijheidsroute (aflevering 3) \u2013 Zevenaar, Duiven, Westervoort" @@ -127,7 +112,7 @@ classes: examples: - value: '2025-08-01T10:30:00Z' language: - range: string +# range: string required: false examples: - value: nl @@ -153,7 +138,7 @@ classes: examples: - value: true content_category: - range: string +# range: string required: false examples: - value: '22' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPostType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPostType.yaml index 78f080773a..cfd1f8d0da 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPostType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPostType.yaml @@ -10,27 +10,21 @@ prefixes: as: https://www.w3.org/ns/activitystreams# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../enums/PostTypeCategoryEnum -- ../metadata -- ../slots/has_or_had_score -- ../slots/post_type_activity_streams_type -- ../slots/post_type_category -- ../slots/post_type_description -- ../slots/post_type_ephemeral -- ../slots/post_type_heritage_use_case -- ../slots/post_type_id -- ../slots/post_type_max_duration -- ../slots/post_type_media_format -- ../slots/post_type_name -- ../slots/post_type_schema_org_type -- ../slots/post_type_supported_platform -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./SocialMediaPostType + - linkml:types + - ../enums/PostTypeCategoryEnum + - ../metadata + - ../slots/has_or_had_score + - ../slots/post_type_activity_streams_type + - ../slots/post_type_category + - ../slots/post_type_description + - ../slots/post_type_ephemeral + - ../slots/post_type_heritage_use_case + - ../slots/post_type_id + - ../slots/post_type_max_duration + - ../slots/post_type_media_format + - ../slots/post_type_name + - ../slots/post_type_schema_org_type + - ../slots/post_type_supported_platform classes: SocialMediaPostType: class_uri: skos:Concept @@ -58,7 +52,6 @@ classes: - post_type_name - post_type_schema_org_type - post_type_supported_platform - - specificity_annotation - has_or_had_score slot_usage: post_type_id: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPostTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPostTypes.yaml index 6f1ede992e..dd8fc6e35b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPostTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaPostTypes.yaml @@ -10,24 +10,19 @@ prefixes: as: https://www.w3.org/ns/activitystreams# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_score -- ../slots/post_type_activity_streams_type -- ../slots/post_type_category -- ../slots/post_type_ephemeral -- ../slots/post_type_max_duration -- ../slots/post_type_media_format -- ../slots/post_type_schema_org_type -- ../slots/post_type_supported_platform -- ../slots/specificity_annotation -- ./SocialMediaPostType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./SocialMediaPostType + - linkml:types + - ../metadata + - ../slots/has_or_had_score + - ../slots/post_type_activity_streams_type + - ../slots/post_type_category + - ../slots/post_type_ephemeral + - ../slots/post_type_max_duration + - ../slots/post_type_media_format + - ../slots/post_type_schema_org_type + - ../slots/post_type_supported_platform classes: - VideoPost: + VideoPostType: is_a: SocialMediaPostType class_uri: as:Video description: "Standard video content with no strict duration limit.\n\n**Activity\ @@ -35,18 +30,18 @@ classes: \n**Platforms**:\n- YouTube (primary)\n- Vimeo\n- Facebook Video\n- LinkedIn\ \ Video\n- X/Twitter Video\n\n**Duration Characteristics**:\n- YouTube: Up to\ \ 12 hours (for verified accounts)\n- Vimeo: Varies by plan (500MB-unlimited)\n\ - - Facebook: Up to 4 hours\n- LinkedIn: Up to 10 minutes\n\n**Heritage Use Cases**:\n\ - \n| Use Case | Description | Typical Duration |\n|----------|-------------|------------------|\n\ - | Virtual tours | 360\xB0 or guided exhibition walkthroughs | 10-30 min |\n\ - | Conservation | Restoration process documentation | 5-20 min |\n| Interviews\ - \ | Curator, artist, or expert conversations | 15-60 min |\n| Lectures | Educational\ - \ presentations | 30-90 min |\n| Documentaries | In-depth collection or history\ - \ stories | 20-60 min |\n| Exhibition intro | Preview of new exhibitions | 2-5\ - \ min |\n\n**Technical Properties**:\n- Resolution: Up to 8K on YouTube\n- Formats:\ - \ MP4 (H.264), WebM, MOV\n- Captions: VTT, SRT supported\n- Chapters: Timestamp-based\ - \ navigation\n\n**Metadata Captured**:\n- Duration (ISO 8601)\n- Definition\ - \ (SD, HD, 4K, 8K)\n- Caption availability\n- View/like/comment counts\n- Tags\ - \ and categories\n" + \ - Facebook: Up to 4 hours\n- LinkedIn: Up to 10 minutes\n\n**Heritage Use Cases**:\n\ + \ \n| Use Case | Description | Typical Duration |\n|----------|-------------|------------------|\n\ + \ | Virtual tours | 360\xB0 or guided exhibition walkthroughs | 10-30 min |\n\ + \ | Conservation | Restoration process documentation | 5-20 min |\n| Interviews\ + \ \ | Curator, artist, or expert conversations | 15-60 min |\n| Lectures | Educational\ + \ \ presentations | 30-90 min |\n| Documentaries | In-depth collection or history\ + \ \ stories | 20-60 min |\n| Exhibition intro | Preview of new exhibitions | 2-5\ + \ \ min |\n\n**Technical Properties**:\n- Resolution: Up to 8K on YouTube\n- Formats:\ + \ \ MP4 (H.264), WebM, MOV\n- Captions: VTT, SRT supported\n- Chapters: Timestamp-based\ + \ \ navigation\n\n**Metadata Captured**:\n- Duration (ISO 8601)\n- Definition\ + \ \ (SD, HD, 4K, 8K)\n- Caption availability\n- View/like/comment counts\n- Tags\ + \ \ and categories\n" exact_mappings: - as:Video - schema:VideoObject @@ -77,7 +72,6 @@ classes: - Supports captions, chapters, and community features - Long-form content for educational and documentary purposes slots: - - specificity_annotation - has_or_had_score annotations: specificity_score: 0.1 @@ -85,12 +79,13 @@ classes: custodian_types: '[''*'']' broad_mappings: - skos:Concept - ShortVideoPost: + ShortVideoPostType: is_a: SocialMediaPostType class_uri: hc:ShortVideo description: 'Short-form video content optimized for mobile viewing and discovery. + **Activity Streams Mapping**: `as:Video` (with duration constraint) **Schema.org Mapping**: `schema:VideoObject` @@ -188,11 +183,10 @@ classes: - Vertical format (9:16) required - TikTok pioneered format, others followed slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept - ImagePost: + ImagePostType: is_a: SocialMediaPostType class_uri: as:Image description: 'Static image content including photographs, graphics, and artwork @@ -303,11 +297,10 @@ classes: - Pinterest valuable for discovery - Flickr for high-resolution and CC licensing slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept - TextPost: + TextPostType: is_a: SocialMediaPostType class_uri: as:Note description: 'Text-based social media posts, typically short-form. @@ -397,11 +390,10 @@ classes: - Often combined with images or links - Hashtags important for heritage campaigns slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept - StoryPost: + StoryPostType: is_a: SocialMediaPostType class_uri: hc:Story description: 'Ephemeral content that auto-deletes after 24 hours (typically). @@ -494,11 +486,10 @@ classes: - Highlights feature preserves selected stories - Interactive stickers for engagement slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept - LiveStreamPost: + LiveStreamPostType: is_a: SocialMediaPostType class_uri: hc:LiveStream description: 'Real-time video broadcasting with audience interaction. @@ -594,11 +585,10 @@ classes: - YouTube and Facebook most common for heritage - Twitch for gaming/cultural crossover events slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept - AudioPost: + AudioPostType: is_a: SocialMediaPostType class_uri: as:Audio description: 'Audio-only content including podcasts, music, and audio guides. @@ -705,11 +695,10 @@ classes: - Audio guides extend museum experience - Oral histories preserve community voices slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept - ArticlePost: + ArticlePostType: is_a: SocialMediaPostType class_uri: as:Article description: 'Long-form written content including blog posts and newsletters. @@ -811,11 +800,10 @@ classes: - Substack for newsletter-style distribution - LinkedIn Articles for professional audience slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept - ThreadPost: + ThreadPostType: is_a: SocialMediaPostType class_uri: hc:Thread description: 'Multi-post sequences forming a connected narrative. @@ -905,11 +893,10 @@ classes: - '#MuseumWeek and similar campaigns use threads' - Thread reader tools compile into articles slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept - CarouselPost: + CarouselPostType: is_a: SocialMediaPostType class_uri: hc:Carousel description: 'Multi-image or multi-video posts in a swipeable format. @@ -1004,11 +991,10 @@ classes: - Good for before/after conservation - LinkedIn carousels popular for professional content slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept - OtherPost: + OtherPostType: is_a: SocialMediaPostType class_uri: as:Object description: "Fallback type for emerging or uncategorized content formats.\n\n\ @@ -1038,7 +1024,6 @@ classes: - Review periodically for new category creation - Use sparingly - prefer specific types when possible slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml index 2dc149f150..9e45012364 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml @@ -2,42 +2,25 @@ id: https://nde.nl/ontology/hc/class/social-media-profile name: social_media_profile_class title: SocialMediaProfile Class imports: -- linkml:types -- ../slots/cover_image_url -- ../slots/created_date -- ../slots/has_or_had_engagement_metric -- ../slots/has_or_had_score -- ../slots/is_or_was_categorized_as -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/is_primary_digital_presence -- ../slots/language -- ../slots/metrics_observed_date -- ../slots/platform_name -- ../slots/platform_type -- ../slots/post_count -- ../slots/profile_description -- ../slots/profile_image_url -- ../slots/refers_to_custodian -- ../slots/social_media_profile_id -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./AuxiliaryDigitalPlatform -- ./Custodian -- ./CustodianObservation -- ./DigitalPlatform -- ./EngagementMetric -- ./PrimaryDigitalPresenceAssertion -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SocialMediaPlatformType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./VerificationStatus -- ./WebObservation + - linkml:types + - ../slots/cover_image_url + - ../slots/created_date + - ../slots/has_or_had_engagement_metric + - ../slots/has_or_had_score + - ../slots/is_or_was_categorized_as + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/is_primary_digital_presence + - ../slots/language + - ../slots/metrics_observed_date + - ../slots/platform_name + - ../slots/platform_type + - ../slots/post_count + - ../slots/profile_description + - ../slots/profile_image_url + - ../slots/refers_to_custodian + - ../slots/social_media_profile_id + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -56,8 +39,8 @@ classes: description: "Represents a social media account or profile maintained by a heritage custodian.\n\n**FOAF ONTOLOGY ALIGNMENT**:\n\nMaps to `foaf:OnlineAccount` - \"An online account.\"\n\nKey FOAF properties used:\n- `foaf:accountName` - Username/handle on the platform\n- `foaf:accountServiceHomepage` - Homepage of the service provider (e.g., https://twitter.com)\n- `foaf:account` - Inverse property linking Agent to OnlineAccount\n\n**RELATIONSHIP TO DIGITAL PLATFORM HIERARCHY**:\n\nSocial media profiles exist in a three-tier digital presence model:\n\n```\n1. DigitalPlatform (PRIMARY digital presence)\n - Main website, primary API, flagship platform\n - Example: rijksmuseum.nl\n - Links to Custodian via refers_to_custodian\n \n2. AuxiliaryDigitalPlatform (SECONDARY digital properties)\n - Project sites, exhibition microsites, specialized tools\n - Example: Rijksstudio, Night Watch Experience\n - Links to DigitalPlatform via is_auxiliary_of\n \n3. SocialMediaProfile (THIRD-PARTY\ \ presence) - THIS CLASS\n - Accounts on external social media services\n - Example: @rijksmuseum on Instagram, Facebook, X\n - Links to BOTH Custodian AND optionally DigitalPlatform/AuxiliaryDigitalPlatform\n```\n\n**WHY SOCIAL MEDIA IS DISTINCT FROM AUXILIARY PLATFORMS**:\n\nUnlike AuxiliaryDigitalPlatform (owned/operated digital properties), social media profiles:\n- Are hosted on THIRD-PARTY platforms (not custodian-controlled)\n- Have standardized URL patterns per platform\n- Provide follower/engagement metrics\n- Subject to platform terms of service\n- Can be verified/authenticated by platform\n\n**RELATIONSHIP TO CUSTODIAN vs DIGITAL PLATFORM**:\n\nSocial media profiles can link to:\n\n1. **Custodian directly** (`refers_to_custodian`):\n - When social media is the PRIMARY or ONLY digital presence\n - Example: Small local heritage society with Facebook page as main presence\n \n2. **DigitalPlatform** (`associated_digital_platform`):\n - When social media SUPPORTS\ \ the main website\n - Example: Rijksmuseum Instagram supports rijksmuseum.nl\n \n3. **AuxiliaryDigitalPlatform** (`associated_auxiliary_platform`):\n - When social media is for a SPECIFIC project/exhibition\n - Example: Instagram account for a temporary exhibition\n\n**DECISION RULES**:\n\n\"Is social media this custodian's MAIN way to profile itself online?\"\n\n- **YES** \u2192 Link SocialMediaProfile directly to Custodian\n - is_primary_digital_presence: true\n - associated_digital_platform: null\n - Example: Local heritage group with only Facebook\n \n- **NO** \u2192 Link SocialMediaProfile to DigitalPlatform/AuxiliaryDigitalPlatform\n - is_primary_digital_presence: false\n - associated_digital_platform: (main website)\n - Example: Museum Instagram supporting main website\n\n**TEMPORAL VALIDITY**:\n\nSocial media profiles have lifecycles:\n- Account creation date\n- Account deactivation/deletion date\n- Platform migration (e.g., Twitter \u2192 X)\n- Account suspension/recovery\n\ - \n**METRICS AND ANALYTICS**:\n\nSocial media profiles can track:\n- Follower/subscriber count\n- Post count\n- Engagement metrics\n- Verification status\n\nThese metrics are OBSERVATIONAL and should be timestamped.\n\n**Example - Museum with Social Media Supporting Website**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n \n digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address: \"https://www.rijksmuseum.nl/\"\n \n social_media_profiles:\n - platform_type: INSTAGRAM\n account_name: \"rijksmuseum\"\n profile_url: \"https://www.instagram.com/rijksmuseum/\"\n is_primary_digital_presence: false # Website is primary\n associated_digital_platform: \".../platform/rijksmuseum-website\"\n follower_count: 1200000\n verified: true\n \n - platform_type: X_TWITTER\n account_name: \"rijksmuseum\"\n profile_url: \"https://x.com/rijksmuseum\"\ - \n is_primary_digital_presence: false\n associated_digital_platform: \".../platform/rijksmuseum-website\"\n```\n\n**Example - Local Society with Social Media as Primary Presence**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-fr-123-s-hvn\"\n preferred_label: \"Historische Vereniging Nijeveen\"\n \n digital_platform: null # No formal website\n \n social_media_profiles:\n - platform_type: FACEBOOK\n account_name: \"HistorischeVerenigingNijeveen\"\n profile_url: \"https://www.facebook.com/HistorischeVerenigingNijeveen\"\n is_primary_digital_presence: true # Facebook IS their main presence\n associated_digital_platform: null\n follower_count: 450\n```\n" + \n**METRICS AND ANALYTICS**:\n\nSocial media profiles can track:\n- Follower/subscriber count\n- Post count\n- Engagement metrics\n- Verification status\n\nThese metrics are OBSERVATIONAL and should be timestamped.\n\n**Example - Museum with Social Media Supporting Website**:\n```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n \n digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address: \"https://www.rijksmuseum.nl/\"\n \n social_media_profiles:\n - platform_type: INSTAGRAM\n account_name: \"rijksmuseum\"\n profile_url: \"https://www.instagram.com/rijksmuseum/\"\n is_primary_digital_presence: false # Website is primary\n associated_digital_platform: \".../platform/rijksmuseum-website\"\n follower_count: 1200000\n verified: true\n \n - platform_type: X_TWITTER\n account_name: \"rijksmuseum\"\n profile_url: \"https://x.com/rijksmuseum\"\ + \n is_primary_digital_presence: false\n associated_digital_platform: \".../platform/rijksmuseum-website\"\n```\n\n**Example - Local Society with Social Media as Primary Presence**:\n```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/nl-fr-123-s-hvn\"\n preferred_label: \"Historische Vereniging Nijeveen\"\n \n digital_platform: null # No formal website\n \n social_media_profiles:\n - platform_type: FACEBOOK\n account_name: \"HistorischeVerenigingNijeveen\"\n profile_url: \"https://www.facebook.com/HistorischeVerenigingNijeveen\"\n is_primary_digital_presence: true # Facebook IS their main presence\n associated_digital_platform: null\n follower_count: 450\n```\n" exact_mappings: - foaf:OnlineAccount close_mappings: @@ -82,32 +65,31 @@ classes: - profile_image_url - refers_to_custodian - social_media_profile_id - - specificity_annotation - has_or_had_score - temporal_extent - is_or_was_derived_from - is_or_was_generated_by slot_usage: social_media_profile_id: - range: uriorcurie +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/social-media/rijksmuseum-instagram platform_type: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: INSTAGRAM - value: FACEBOOK platform_name: - range: string +# range: string required: false examples: - value: Instagram - value: Mastodon (glammr.us) profile_description: - range: string +# range: string required: false examples: - value: The museum of the Netherlands. Open daily 9-17h. @@ -163,7 +145,7 @@ classes: begin_of_the_begin: '2012-03-15' end_of_the_end: '2024-06-01' language: - range: string +# range: string required: false examples: - value: nl diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SocialNetworkMember.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SocialNetworkMember.yaml index dfa9f5a3e2..4a6cc4be3c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SocialNetworkMember.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SocialNetworkMember.yaml @@ -11,11 +11,11 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/linkedin_profile_url + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/linkedin_profile_url classes: SocialNetworkMember: class_uri: foaf:Person @@ -48,7 +48,7 @@ classes: ConnectionNetwork │ └── has_or_had_member → SocialNetworkMember (THIS CLASS) - ├── has_or_had_identifier: LinkedIn URL + ├── identified_by: LinkedIn URL ├── has_or_had_label: Person name └── (subclasses add connection-specific metadata) ``` @@ -61,13 +61,13 @@ classes: - schema:Person slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - linkedin_profile_url slot_usage: - has_or_had_identifier: + identified_by: has_or_had_label: linkedin_profile_url: annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SoundArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SoundArchive.yaml index a3507b30bc..34ef0d000b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SoundArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SoundArchive.yaml @@ -8,38 +8,27 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SoundArchiveRecordSetType -- ./SoundArchiveRecordSetTypes -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_related_to classes: SoundArchive: description: "A heritage custodian specialized in collecting, preserving, and providing access to audio recordings and\ \ sound materials. Sound archives (also known as phonoth\xE8ques or fonotecas) hold diverse audio collections including\ \ music recordings, oral histories, radio broadcasts, field recordings, and other audio documentation of cultural\ \ significance." - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q2230431 close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SoundArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SoundArchiveRecordSetType.yaml index b3371de804..1ac7731223 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SoundArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SoundArchiveRecordSetType.yaml @@ -8,12 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to classes: SoundArchiveRecordSetType: description: A rico:RecordSetType for classifying collections of sound recordings and audio materials within heritage institutions. @@ -28,7 +25,6 @@ classes: see_also: - SoundArchive slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SoundArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SoundArchiveRecordSetTypes.yaml index b7f67b47ad..d938e2a1dd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SoundArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SoundArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./SoundArchive -- ./SoundArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./SoundArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: AudioRecordingCollection: is_a: SoundArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Sound recordings.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept OralHistorySeries: is_a: SoundArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Oral history interviews.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by SoundArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept MusicRecordingCollection: is_a: SoundArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Music recordings.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by SoundArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SoundEventType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SoundEventType.yaml index 17622eb576..3dce3e2de3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SoundEventType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SoundEventType.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: SoundEventType: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Source.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Source.yaml index 295cd9c075..5b4091ff06 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Source.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Source.yaml @@ -14,19 +14,19 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type default_prefix: hc classes: Source: class_uri: prov:Entity description: A source from which something was derived or generated. Can represent manual creation, automated generation, external services, or imported data. Subclasses may specialize for specific domains. - exact_mappings: + broad_mappings: - prov:Entity - - dcterms:source close_mappings: + - dcterms:source - schema:CreativeWork slots: - has_or_had_type @@ -34,13 +34,13 @@ classes: - has_or_had_description slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: false has_or_had_label: - range: string +# range: string required: false has_or_had_description: - range: string +# range: string required: false annotations: specificity_score: 0.2 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SourceCommentCount.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SourceCommentCount.yaml index 3aef9346dc..53c45f83e6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SourceCommentCount.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SourceCommentCount.yaml @@ -7,12 +7,10 @@ prefixes: schema: http://schema.org/ prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_quantity -- ../slots/was_fetched_at -- ./Quantity -- ./Timestamp + - linkml:types + - ../metadata + - ../slots/has_or_had_quantity + - ../slots/was_fetched_at default_prefix: hc classes: SourceCommentCount: @@ -45,7 +43,7 @@ classes: has_or_had_timestamp: '2025-01-14T10:30:00Z' has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SourceCoordinates.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SourceCoordinates.yaml index 7f48930d7f..b7f1dcc6d8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SourceCoordinates.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SourceCoordinates.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# geo: http://www.w3.org/2003/01/geo/wgs84_pos# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: SourceCoordinates: description: "Source of coordinates for geographic resolution, combining latitude/longitude\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SourceDocument.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SourceDocument.yaml index 63da3f86e8..6caecd8049 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SourceDocument.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SourceDocument.yaml @@ -15,19 +15,14 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/SourceDocumentTypeEnum -- ../metadata -- ../slots/has_or_had_score -- ../slots/source_creator -- ../slots/source_date -- ../slots/source_type -- ../slots/source_uri -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/SourceDocumentTypeEnum + - ../metadata + - ../slots/has_or_had_score + - ../slots/source_creator + - ../slots/source_date + - ../slots/source_type + - ../slots/source_uri classes: SourceDocument: class_uri: crm:E73_Information_Object @@ -79,18 +74,17 @@ classes: - source_date - source_type - source_uri - - specificity_annotation - has_or_had_score slot_usage: source_uri: - range: uriorcurie +# range: string # uriorcurie required: true source_type: range: SourceDocumentTypeEnum source_date: range: date source_creator: - range: string +# range: string annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SourceProvenance.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SourceProvenance.yaml index 8cf97e8ba2..42eb205a77 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SourceProvenance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SourceProvenance.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# pav: http://purl.org/pav/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: SourceProvenance: description: "Detailed provenance information about a source including file location\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SourceRecord.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SourceRecord.yaml index 09f139fd46..ed6ef88fd3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SourceRecord.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SourceRecord.yaml @@ -15,9 +15,9 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../enums/DataTierEnum -default_range: string + - linkml:types + - ../enums/DataTierEnum +# default_range: string classes: SourceRecord: description: "Individual source record with claims, representing a data extraction\ @@ -44,4 +44,4 @@ classes: - source_url - note - source_file - - archive_path + - has_archive_path diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SourceReference.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SourceReference.yaml index 96d48a6f69..cf93d5ffc5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SourceReference.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SourceReference.yaml @@ -10,8 +10,8 @@ prefixes: oa: http://www.w3.org/ns/oa# dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: SourceReference: description: "Structured source reference for a claim with text position information\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SourceStaffEntry.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SourceStaffEntry.yaml index 4c729fcee6..9c7ea0326c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SourceStaffEntry.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SourceStaffEntry.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# foaf: http://xmlns.com/foaf/0.1/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: SourceStaffEntry: description: "Reference to original staff entry from custodian staff parsing.\ @@ -36,4 +36,3 @@ classes: - name - has_or_had_title - linkedin_url - - heritage_type diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SourceWork.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SourceWork.yaml index e8e7aa2e8d..83d4d4ad0c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SourceWork.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SourceWork.yaml @@ -8,7 +8,7 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types + - linkml:types classes: SourceWork: class_uri: prov:Entity diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Speaker.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Speaker.yaml index 0d0af95607..b124827185 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Speaker.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Speaker.yaml @@ -11,9 +11,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_label classes: Speaker: class_uri: prov:Agent @@ -33,15 +33,15 @@ classes: - schema:Person slots: - - has_or_had_identifier + - identified_by - has_or_had_label slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true has_or_had_label: - range: string +# range: string required: false annotations: @@ -55,8 +55,8 @@ classes: examples: - value: - has_or_had_identifier: spk_001 + identified_by: spk_001 has_or_had_label: Curator - value: - has_or_had_identifier: https://www.wikidata.org/wiki/Q12345 + identified_by: https://www.wikidata.org/wiki/Q12345 has_or_had_label: John Doe \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SpecialCollection.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SpecialCollection.yaml index 21a9e11d2d..4c86ab7cdd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SpecialCollection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SpecialCollection.yaml @@ -8,34 +8,24 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/custodian_type -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/label_de -- ../slots/label_es -- ../slots/label_fr -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./LibraryType -- ./SpecialCollectionRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/custodian_type + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to + - ../slots/label_de + - ../slots/label_es + - ../slots/label_fr + - ../slots/record_set_type classes: SpecialCollection: description: A library or library unit that houses materials requiring specialized security and user services, or whose relationship (period, subject, format, provenance, etc.) is to be preserved as a distinct collection. Special collections typically include rare books, manuscripts, archives, maps, photographs, and other unique or valuable materials that require special handling, storage, and access conditions. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: skos:Concept exact_mappings: - wd:Q4431094 @@ -43,10 +33,9 @@ classes: - LibraryType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by - record_set_type - label_de - label_es diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SpecialCollectionRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SpecialCollectionRecordSetType.yaml index 7993bf4549..13b1086cf7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SpecialCollectionRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SpecialCollectionRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikiDataIdentifier -- ./WikidataAlignment + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to classes: SpecialCollectionRecordSetType: description: A rico:RecordSetType for classifying special collections requiring specialized security, handling, and user services. @@ -24,10 +20,9 @@ classes: exact_mappings: - wd:Q4431094 slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by slot_usage: is_or_was_related_to: range: WikidataAlignment diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchive.yaml index 6434404618..aae06028c5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchive.yaml @@ -8,37 +8,26 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecializedArchiveRecordSetType -- ./SpecializedArchiveRecordSetTypes -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_related_to classes: SpecializedArchive: description: An archive specialized in a specific field, subject area, format, or type of documentation. Specialized archives (Facharchive) focus their collection and preservation activities on particular domains such as architecture, medicine, sports, or other thematic areas, developing deep expertise in their chosen specialization. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q27030941 close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchiveRecordSetType.yaml index 016b47202f..68cd96aecb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchiveRecordSetType.yaml @@ -8,12 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to classes: SpecializedArchiveRecordSetType: description: A rico:RecordSetType for classifying collections from archives specialized in specific fields or subject areas. @@ -28,7 +25,6 @@ classes: see_also: - SpecializedArchive slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchiveRecordSetTypes.yaml index 64d05064ef..83828d90f4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchiveRecordSetTypes.yaml @@ -17,21 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./SpecializedArchive -- ./SpecializedArchiveRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./SpecializedArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: SpecializedCollectionFonds: is_a: SpecializedArchiveRecordSetType @@ -39,7 +33,7 @@ classes: description: "A rico:RecordSetType for Subject-specialized materials.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -50,7 +44,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -75,6 +68,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechia.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechia.yaml index ab4e9dab2d..75d0d1f70f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechia.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechia.yaml @@ -8,37 +8,26 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecializedArchivesCzechiaRecordSetType -- ./SpecializedArchivesCzechiaRecordSetTypes -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_related_to classes: SpecializedArchivesCzechia: description: A type of specialized archives specific to the Czech archival system. These archives focus on particular subject areas, formats, or types of documentation within the Czech national archival framework, operating under Czech archival law and regulations. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q101470010 close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechiaRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechiaRecordSetType.yaml index b8a74cc122..ea35184e74 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechiaRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechiaRecordSetType.yaml @@ -8,12 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to classes: SpecializedArchivesCzechiaRecordSetType: description: A rico:RecordSetType for classifying collections from specialized archives within the Czech archival system. @@ -32,6 +29,5 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechiaRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechiaRecordSetTypes.yaml index 294a40513c..ac18e162f1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechiaRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechiaRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./SpecializedArchivesCzechia -- ./SpecializedArchivesCzechiaRecordSetType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./SpecializedArchivesCzechiaRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: CzechSpecializedFonds: is_a: SpecializedArchivesCzechiaRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Czech specialized archives.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Species.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Species.yaml index 1767df9eb1..aab090eb31 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Species.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Species.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_label classes: Species: class_uri: schema:Taxon diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SpecificityAnnotation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SpecificityScore.yaml similarity index 68% rename from frontend/public/schemas/20251121/linkml/modules/classes/SpecificityAnnotation.yaml rename to frontend/public/schemas/20251121/linkml/modules/classes/SpecificityScore.yaml index 2da9a5495a..4790a326b8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SpecificityAnnotation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SpecificityScore.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/class/SpecificityAnnotation -name: SpecificityAnnotation -title: Specificity Annotation +id: https://nde.nl/ontology/hc/class/SpecificityScore +name: SpecificityScore +title: Specificity Score prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -8,18 +8,14 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/specificity_agent -- ../slots/specificity_rationale -- ../slots/specificity_score -- ../slots/specificity_timestamp -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/specificity_agent + - ../slots/specificity_rationale + - ../slots/specificity_score + - ../slots/specificity_timestamp classes: - SpecificityAnnotation: - class_uri: hc:SpecificityAnnotation + SpecificityScore: + class_uri: hc:SpecificityScore description: 'Structured metadata for RAG retrieval specificity scoring. Documents how specific/general a class is for different search templates. @@ -43,7 +39,6 @@ classes: - specificity_rationale - specificity_timestamp - specificity_agent - - has_or_had_score annotations: specificity_score: 0.2 specificity_rationale: Meta-class for specificity annotations diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SpeechSegment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SpeechSegment.yaml deleted file mode 100644 index 48726558fd..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SpeechSegment.yaml +++ /dev/null @@ -1,27 +0,0 @@ -id: https://nde.nl/ontology/hc/class/SpeechSegment -name: SpeechSegment -title: SpeechSegment -description: >- - A segment of speech in audio. - -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - -default_prefix: hc - -imports: -- linkml:types -- ../slots/has_or_had_time_interval -classes: - SpeechSegment: - class_uri: schema:AudioObject - description: Speech segment. - annotations: - specificity_score: 0.1 - specificity_rationale: "Generic utility class created during migration" - custodian_types: '["*"]' - - slots: - - has_or_had_time_interval diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Staff.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Staff.yaml index fb89a5bb00..5d371f441f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Staff.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Staff.yaml @@ -10,10 +10,10 @@ prefixes: org: http://www.w3.org/ns/org# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_quantity -- ../slots/has_or_had_type + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_quantity + - ../slots/has_or_had_type classes: Staff: class_uri: schema:Person diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StaffRole.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StaffRole.yaml index 7dc4697827..6831b1394d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StaffRole.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StaffRole.yaml @@ -10,36 +10,24 @@ prefixes: pico: https://personsincontext.org/model# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../enums/CauseOfDeathTypeEnum -- ../enums/RoleCategoryEnum -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_domain -- ../slots/has_or_had_responsibility -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/includes_or_included -- ../slots/is_deceased -- ../slots/martyred -- ../slots/requires_qualification -- ../slots/role_category -- ../slots/role_id -- ../slots/role_name -- ../slots/role_name_local -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./CauseOfDeath -- ./DeceasedStatus -- ./Domain -- ./Responsibility -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./VariantType -- ./VariantTypes + - linkml:types + - ../enums/CauseOfDeathTypeEnum + - ../enums/RoleCategoryEnum + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_domain + - ../slots/has_or_had_responsibility + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/includes_or_included + - ../slots/is_deceased + - ../slots/martyred + - ../slots/requires_qualification + - ../slots/role_category + - ../slots/role_id + - ../slots/role_name + - ../slots/role_name_local + - ../slots/temporal_extent classes: StaffRole: class_uri: org:Role @@ -67,7 +55,6 @@ classes: - role_id - role_name - role_name_local - - specificity_annotation - has_or_had_score - temporal_extent - has_or_had_domain @@ -86,15 +73,17 @@ classes: required: false is_deceased: required: false - range: DeceasedStatus - inlined: true +# range: string # uriorcurie + # range: DeceasedStatus + inlined: false # Fixed invalid inline for primitive type description: "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" has_or_had_type: required: false - range: VariantType +# range: string # uriorcurie + # range: VariantType multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: has_or_had_label: Keeper @@ -106,10 +95,11 @@ classes: has_or_had_language: fr includes_or_included: required: false - range: VariantType +# range: string # uriorcurie + # range: VariantType multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type comments: - Abstract base class - use specific subclasses (Curator, Archivist, etc.) - Represents OFFICIAL JOB TITLES, not de facto work performed diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StaffRoles.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StaffRoles.yaml index 15f7b8a66d..892eeea06f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StaffRoles.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StaffRoles.yaml @@ -6,16 +6,10 @@ prefixes: org: http://www.w3.org/ns/org# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_score -- ../slots/role_category -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./StaffRole -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/has_or_had_score + - ../slots/role_category classes: Curator: is_a: StaffRole @@ -66,7 +60,6 @@ classes: role_category: ifabsent: string(CURATORIAL) slots: - - specificity_annotation - has_or_had_score annotations: specificity_score: 0.1 @@ -119,7 +112,6 @@ classes: role_category: ifabsent: string(CURATORIAL) slots: - - specificity_annotation - has_or_had_score Conservator: is_a: StaffRole @@ -184,7 +176,6 @@ classes: role_category: ifabsent: string(CONSERVATION) slots: - - specificity_annotation - has_or_had_score Archivist: is_a: StaffRole @@ -239,7 +230,6 @@ classes: role_category: ifabsent: string(ARCHIVAL) slots: - - specificity_annotation - has_or_had_score RecordsManager: is_a: StaffRole @@ -286,7 +276,6 @@ classes: role_category: ifabsent: string(ARCHIVAL) slots: - - specificity_annotation - has_or_had_score Librarian: is_a: StaffRole @@ -341,7 +330,6 @@ classes: role_category: ifabsent: string(LIBRARY) slots: - - specificity_annotation - has_or_had_score DigitalPreservationSpecialist: is_a: StaffRole @@ -386,7 +374,6 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - specificity_annotation - has_or_had_score DigitizationSpecialist: is_a: StaffRole @@ -433,7 +420,6 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - specificity_annotation - has_or_had_score DataManager: is_a: StaffRole @@ -480,7 +466,6 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - specificity_annotation - has_or_had_score Educator: is_a: StaffRole @@ -529,7 +514,6 @@ classes: role_category: ifabsent: string(EDUCATION) slots: - - specificity_annotation - has_or_had_score PublicEngagementSpecialist: is_a: StaffRole @@ -576,7 +560,6 @@ classes: role_category: ifabsent: string(EDUCATION) slots: - - specificity_annotation - has_or_had_score Director: is_a: StaffRole @@ -627,7 +610,6 @@ classes: role_category: ifabsent: string(LEADERSHIP) slots: - - specificity_annotation - has_or_had_score DeputyDirector: is_a: StaffRole @@ -670,7 +652,6 @@ classes: role_category: ifabsent: string(LEADERSHIP) slots: - - specificity_annotation - has_or_had_score DepartmentHead: is_a: StaffRole @@ -715,7 +696,6 @@ classes: role_category: ifabsent: string(LEADERSHIP) slots: - - specificity_annotation - has_or_had_score Chairperson: is_a: StaffRole @@ -768,7 +748,6 @@ classes: role_category: ifabsent: string(GOVERNANCE) slots: - - specificity_annotation - has_or_had_score ViceChairperson: is_a: StaffRole @@ -817,7 +796,6 @@ classes: role_category: ifabsent: string(GOVERNANCE) slots: - - specificity_annotation - has_or_had_score Secretary: is_a: StaffRole @@ -870,7 +848,6 @@ classes: role_category: ifabsent: string(GOVERNANCE) slots: - - specificity_annotation - has_or_had_score Treasurer: is_a: StaffRole @@ -923,7 +900,6 @@ classes: role_category: ifabsent: string(GOVERNANCE) slots: - - specificity_annotation - has_or_had_score BoardMember: is_a: StaffRole @@ -978,7 +954,6 @@ classes: role_category: ifabsent: string(GOVERNANCE) slots: - - specificity_annotation - has_or_had_score Researcher: is_a: StaffRole @@ -1023,7 +998,6 @@ classes: role_category: ifabsent: string(RESEARCH) slots: - - specificity_annotation - has_or_had_score ResearcherInResidence: is_a: StaffRole @@ -1066,7 +1040,6 @@ classes: role_category: ifabsent: string(RESEARCH) slots: - - specificity_annotation - has_or_had_score Historian: is_a: StaffRole @@ -1117,7 +1090,6 @@ classes: role_category: ifabsent: string(RESEARCH) slots: - - specificity_annotation - has_or_had_score Genealogist: is_a: StaffRole @@ -1168,7 +1140,6 @@ classes: role_category: ifabsent: string(RESEARCH) slots: - - specificity_annotation - has_or_had_score OralHistorian: is_a: StaffRole @@ -1217,7 +1188,6 @@ classes: role_category: ifabsent: string(RESEARCH) slots: - - specificity_annotation - has_or_had_score FacilitiesManager: is_a: StaffRole @@ -1262,7 +1232,6 @@ classes: role_category: ifabsent: string(TECHNICAL) slots: - - specificity_annotation - has_or_had_score ITSpecialist: is_a: StaffRole @@ -1309,7 +1278,6 @@ classes: role_category: ifabsent: string(TECHNICAL) slots: - - specificity_annotation - has_or_had_score SecurityGuard: is_a: StaffRole @@ -1354,7 +1322,6 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - specificity_annotation - has_or_had_score Janitor: is_a: StaffRole @@ -1397,7 +1364,6 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - specificity_annotation - has_or_had_score Cleaner: is_a: StaffRole @@ -1438,7 +1404,6 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - specificity_annotation - has_or_had_score Volunteer: is_a: StaffRole @@ -1483,7 +1448,6 @@ classes: role_category: ifabsent: string(EXTERNAL) slots: - - specificity_annotation - has_or_had_score DataEngineer: is_a: StaffRole @@ -1526,7 +1490,6 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - specificity_annotation - has_or_had_score DataScientist: is_a: StaffRole @@ -1569,7 +1532,6 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - specificity_annotation - has_or_had_score DataAnalyst: is_a: StaffRole @@ -1612,7 +1574,6 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - specificity_annotation - has_or_had_score EnterpriseArchitect: is_a: StaffRole @@ -1655,7 +1616,6 @@ classes: role_category: ifabsent: string(TECHNICAL) slots: - - specificity_annotation - has_or_had_score ProductOwner: is_a: StaffRole @@ -1698,7 +1658,6 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - specificity_annotation - has_or_had_score Caterer: is_a: StaffRole @@ -1707,7 +1666,6 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - specificity_annotation - has_or_had_score DepotWorker: is_a: StaffRole @@ -1752,7 +1710,6 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - specificity_annotation - has_or_had_score HumanResourcesWorker: is_a: StaffRole @@ -1797,7 +1754,6 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - specificity_annotation - has_or_had_score MapSpecialist: is_a: StaffRole @@ -1842,7 +1798,6 @@ classes: role_category: ifabsent: string(LIBRARY) slots: - - specificity_annotation - has_or_had_score FrontendDeveloper: is_a: StaffRole @@ -1887,7 +1842,6 @@ classes: role_category: ifabsent: string(TECHNICAL) slots: - - specificity_annotation - has_or_had_score BackendDeveloper: is_a: StaffRole @@ -1932,7 +1886,6 @@ classes: role_category: ifabsent: string(TECHNICAL) slots: - - specificity_annotation - has_or_had_score ArtistInResidence: is_a: StaffRole @@ -1973,7 +1926,6 @@ classes: role_category: ifabsent: string(CREATIVE) slots: - - specificity_annotation - has_or_had_score Spokesperson: is_a: StaffRole @@ -2018,7 +1970,6 @@ classes: role_category: ifabsent: string(EDUCATION) slots: - - specificity_annotation - has_or_had_score Receptionist: is_a: StaffRole @@ -2061,7 +2012,6 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - specificity_annotation - has_or_had_score CallCenterWorker: is_a: StaffRole @@ -2104,7 +2054,6 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - specificity_annotation - has_or_had_score Host: is_a: StaffRole @@ -2149,7 +2098,6 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - specificity_annotation - has_or_had_score TourGuide: is_a: StaffRole @@ -2204,7 +2152,6 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - specificity_annotation - has_or_had_score Consultant: is_a: StaffRole @@ -2249,7 +2196,6 @@ classes: role_category: ifabsent: string(EXTERNAL) slots: - - specificity_annotation - has_or_had_score LegalConsultant: is_a: StaffRole @@ -2292,7 +2238,6 @@ classes: role_category: ifabsent: string(EXTERNAL) slots: - - specificity_annotation - has_or_had_score Lawyer: is_a: StaffRole @@ -2337,7 +2282,6 @@ classes: role_category: ifabsent: string(EXTERNAL) slots: - - specificity_annotation - has_or_had_score Translator: is_a: StaffRole @@ -2380,7 +2324,6 @@ classes: role_category: ifabsent: string(EXTERNAL) slots: - - specificity_annotation - has_or_had_score Gardener: is_a: StaffRole @@ -2425,7 +2368,6 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - specificity_annotation - has_or_had_score Waiter: is_a: StaffRole @@ -2434,7 +2376,6 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - specificity_annotation - has_or_had_score UXDesigner: is_a: StaffRole @@ -2479,7 +2420,6 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - specificity_annotation - has_or_had_score DevOpsEngineer: is_a: StaffRole @@ -2522,7 +2462,6 @@ classes: role_category: ifabsent: string(TECHNICAL) slots: - - specificity_annotation - has_or_had_score ScrumMaster: is_a: StaffRole @@ -2565,7 +2504,6 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - specificity_annotation - has_or_had_score MLOpsEngineer: is_a: StaffRole @@ -2608,7 +2546,6 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - specificity_annotation - has_or_had_score MLEngineer: is_a: StaffRole @@ -2651,7 +2588,6 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - specificity_annotation - has_or_had_score LinkedDataSpecialist: is_a: StaffRole @@ -2698,7 +2634,6 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - specificity_annotation - has_or_had_score InternationalDelegate: is_a: StaffRole @@ -2707,7 +2642,6 @@ classes: role_category: ifabsent: string(EXTERNAL) slots: - - specificity_annotation - has_or_had_score CooperativeManager: is_a: StaffRole @@ -2716,7 +2650,6 @@ classes: role_category: ifabsent: string(LEADERSHIP) slots: - - specificity_annotation - has_or_had_score MembershipCoordinator: is_a: StaffRole @@ -2767,7 +2700,6 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - specificity_annotation - has_or_had_score NewsletterEditor: is_a: StaffRole @@ -2818,7 +2750,6 @@ classes: role_category: ifabsent: string(EXTERNAL) slots: - - specificity_annotation - has_or_had_score EventCoordinator: is_a: StaffRole @@ -2827,5 +2758,4 @@ classes: role_category: ifabsent: string(EXTERNAL) slots: - - specificity_annotation - has_or_had_score diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Standard.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Standard.yaml index e2e35ade28..c3802e0e6b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Standard.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Standard.yaml @@ -7,25 +7,14 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../enums/GovernanceModelEnum -- ../enums/IdentifierDomainEnum -- ../enums/StandardScopeTypeEnum -- ../enums/StandardTypeEnum -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./ContributingAgency -- ./Country -- ./RegistrationAuthority -- ./SpecificityAnnotation -- ./StandardsOrganization -- ./Subregion -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./IdentifierFormat + - linkml:types + - ../enums/GovernanceModelEnum + - ../enums/IdentifierDomainEnum + - ../enums/StandardScopeTypeEnum + - ../enums/StandardTypeEnum + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_score classes: Standard: class_uri: skos:ConceptScheme @@ -51,7 +40,6 @@ classes: - schema:DefinedTermSet - dcterms:Standard slots: - - specificity_annotation - has_or_had_score - name - registration_authority @@ -59,20 +47,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - IdentifierFormat: - class_uri: schema:PropertyValue - description: "A specific format variant for an identifier standard.\n\nMany identifier\ - \ standards allow multiple display formats. This class\ncaptures the variations\ - \ and which is canonical for storage.\n\n**Examples:**\n\n- **ISNI formats:**\n\ - \ - \"0000 0000 0000 0000\" (display format with spaces)\n - \"0000000000000000\"\ - \ (compact/canonical for storage)\n - \"http://isni.org/isni/0000000000000000\"\ - \ (URI format)\n\n- **ISIL formats:**\n - \"NL-AmUvA\" (full format with country\ - \ prefix)\n - \"AmUvA\" (local part only)\n\n- **Wikidata formats:**\n - \"\ - Q12345\" (short form)\n - \"http://www.wikidata.org/entity/Q12345\" (full URI)\n\ - \n**Usage:**\n\nWhen storing identifiers, use the canonical format (canonical:\ - \ true).\nWhen displaying, choose the appropriate format for the context.\n" - exact_mappings: - - schema:PropertyValue - slots: - - specificity_annotation - - has_or_had_score diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StandardsOrganization.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StandardsOrganization.yaml index 4e49133c5c..14ec8d3260 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StandardsOrganization.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StandardsOrganization.yaml @@ -9,19 +9,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# foaf: http://xmlns.com/foaf/0.1/ imports: -- linkml:types -- ../enums/StandardsOrganizationTypeEnum -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_score -- ../slots/is_or_was_founded_through -- ../slots/specificity_annotation -- ./FoundingEvent -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./Standard + - linkml:types + - ../enums/StandardsOrganizationTypeEnum + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_score + - ../slots/is_or_was_founded_through classes: StandardsOrganization: class_uri: org:FormalOrganization @@ -55,7 +48,6 @@ classes: related_mappings: - schema:GovernmentOrganization slots: - - specificity_annotation - has_or_had_score - name - organization_type diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StateArchives.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StateArchives.yaml index 030c373c1d..b7feada4ed 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StateArchives.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StateArchives.yaml @@ -15,37 +15,26 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecificityAnnotation -- ./StateArchivesRecordSetType -- ./StateArchivesRecordSetTypes -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_related_to classes: StateArchives: description: An archive operated by and for a state (subnational entity), responsible for preserving records of state government agencies, courts, and other state-level institutions. State archives (Staatsarchive) serve as the official repository for historical records of state administration and governance, distinct from national or federal archives. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q52341833 close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesRecordSetType.yaml index 14cda43773..06b4f8a7bf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesRecordSetType.yaml @@ -8,12 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to classes: StateArchivesRecordSetType: description: A rico:RecordSetType for classifying collections of state government records and administrative documentation. @@ -28,7 +25,6 @@ classes: see_also: - StateArchives slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesRecordSetTypes.yaml index 7ff50a95e2..3df02c7063 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesRecordSetTypes.yaml @@ -17,21 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./StateArchives -- ./StateArchivesRecordSetType -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./StateArchivesRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: StateGovernmentFonds: is_a: StateArchivesRecordSetType @@ -39,7 +33,7 @@ classes: description: "A rico:RecordSetType for State/provincial government administrative\ \ records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType\ \ following the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -50,7 +44,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -75,16 +68,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept JudicialRecordSeries: is_a: StateArchivesRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Court records and legal documentation.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -95,7 +85,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -118,16 +107,13 @@ classes: Inverse of rico:isOrWasHolderOf. annotations: custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept LandRecordsSeries: is_a: StateArchivesRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Property and land registry records.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -138,7 +124,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -161,16 +146,13 @@ classes: Inverse of rico:isOrWasHolderOf. annotations: custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept TaxRecordsSeries: is_a: StateArchivesRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Taxation and fiscal documentation.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -181,7 +163,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -204,6 +185,3 @@ classes: Inverse of rico:isOrWasHolderOf. annotations: custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesSection.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesSection.yaml index f8a34294d4..2310262c07 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesSection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesSection.yaml @@ -15,37 +15,26 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecificityAnnotation -- ./StateArchivesSectionRecordSetType -- ./StateArchivesSectionRecordSetTypes -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_related_to classes: StateArchivesSection: description: A section of a national archive in Italy (sezione di archivio di Stato). These are branch offices or divisions of the Italian state archives system, typically located in smaller cities or towns to provide local access to archival services and preserve records of regional significance within the Italian national archival framework. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q44796387 close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesSectionRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesSectionRecordSetType.yaml index cc6519821c..872068036c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesSectionRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesSectionRecordSetType.yaml @@ -8,12 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to classes: StateArchivesSectionRecordSetType: description: A rico:RecordSetType for classifying collections from Italian state archive sections. @@ -32,6 +29,5 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesSectionRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesSectionRecordSetTypes.yaml index 30742dc9a9..6810ecd066 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesSectionRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StateArchivesSectionRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./StateArchivesSection -- ./StateArchivesSectionRecordSetType -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./StateArchivesSectionRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: StateSectionFonds: is_a: StateArchivesSectionRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for State archives section records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StateDistrictArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StateDistrictArchive.yaml index d309d111c2..25c283feff 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StateDistrictArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StateDistrictArchive.yaml @@ -8,37 +8,26 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecificityAnnotation -- ./StateDistrictArchiveRecordSetType -- ./StateDistrictArchiveRecordSetTypes -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_related_to classes: StateDistrictArchive: description: A type of archive in the Czech Republic operating at the district (okres) level. State district archives (Bezirksarchiv) preserve records from local government, courts, and other administrative bodies within their respective districts, forming part of the Czech national archival network. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q53131316 close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StateDistrictArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StateDistrictArchiveRecordSetType.yaml index 383cb9fa36..b4969a8d73 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StateDistrictArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StateDistrictArchiveRecordSetType.yaml @@ -8,12 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to classes: StateDistrictArchiveRecordSetType: description: A rico:RecordSetType for classifying collections from Czech state district archives. @@ -32,6 +29,5 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StateDistrictArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StateDistrictArchiveRecordSetTypes.yaml index 2df11399f8..08e1c49b1a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StateDistrictArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StateDistrictArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./StateDistrictArchive -- ./StateDistrictArchiveRecordSetType -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./StateDistrictArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: StateDistrictFonds: is_a: StateDistrictArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for State district administrative records.\n\ \n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,6 +62,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechia.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechia.yaml index 0f3d664468..a560bda1f7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechia.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechia.yaml @@ -8,37 +8,26 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecificityAnnotation -- ./StateRegionalArchiveCzechiaRecordSetType -- ./StateRegionalArchiveCzechiaRecordSetTypes -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_related_to classes: StateRegionalArchiveCzechia: description: A state regional archive in the Czech Republic, responsible for preserving and providing access to historical records at the regional (kraj) level. These archives supervise district archives within their region and serve as the primary archival authority for regional government records and historical documentation. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q53130134 close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechiaRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechiaRecordSetType.yaml index 82c3e58e0e..0cb1230e48 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechiaRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechiaRecordSetType.yaml @@ -8,12 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to classes: StateRegionalArchiveCzechiaRecordSetType: description: A rico:RecordSetType for classifying collections from Czech state regional archives. @@ -32,6 +29,5 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechiaRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechiaRecordSetTypes.yaml index d5f1aa72e1..e68ceba2d6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechiaRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechiaRecordSetTypes.yaml @@ -17,21 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./StateRegionalArchiveCzechia -- ./StateRegionalArchiveCzechiaRecordSetType -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./StateRegionalArchiveCzechiaRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: CzechiaRegionalStateFonds: is_a: StateRegionalArchiveCzechiaRecordSetType @@ -39,7 +33,7 @@ classes: description: "A rico:RecordSetType for Czech regional state records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -50,7 +44,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -75,6 +68,3 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StatementType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StatementType.yaml index 2292617cd5..bd64d69d68 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StatementType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StatementType.yaml @@ -10,20 +10,14 @@ prefixes: org: http://www.w3.org/ns/org# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./StatementType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score classes: StatementType: class_uri: skos:Concept @@ -40,17 +34,16 @@ classes: - org:purpose - schema:description slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code - has_or_had_hypernym - has_or_had_hyponym - - specificity_annotation - has_or_had_score slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/statement-type/[a-z-]+$ @@ -58,7 +51,7 @@ classes: - value: https://nde.nl/ontology/hc/statement-type/mission - value: https://nde.nl/ontology/hc/statement-type/vision has_or_had_code: - range: string +# range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ examples: @@ -68,7 +61,7 @@ classes: - value: VALUE - value: MOTTO has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -79,7 +72,7 @@ classes: - Vision Statement@en - visieverklaring@nl has_or_had_description: - range: string +# range: string required: false examples: - value: Statement defining the organization's core purpose and reason for existence @@ -108,7 +101,7 @@ classes: - https://schema.org/Mission examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/statement-type/mission + identified_by: https://nde.nl/ontology/hc/statement-type/mission has_or_had_code: MISSION has_or_had_label: - Mission Statement@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StatementTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StatementTypes.yaml index 6486f0d4e7..6cbc7517e0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StatementTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StatementTypes.yaml @@ -8,12 +8,12 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_identifier -- ./StatementType + - ./StatementType + - linkml:types + - ../slots/has_or_had_code + - ../slots/identified_by classes: - MissionStatement: + MissionStatementType: is_a: StatementType class_uri: hc:MissionStatement description: 'Statement type for organizational mission - core purpose and reason @@ -46,7 +46,7 @@ classes: slot_usage: has_or_had_code: equals_string: MISSION - has_or_had_identifier: + identified_by: equals_string: https://nde.nl/ontology/hc/statement-type/mission annotations: specificity_score: '0.50' @@ -57,7 +57,7 @@ classes: broad_mappings: - schema:CreativeWork - skos:Concept - VisionStatement: + VisionStatementType: is_a: StatementType class_uri: hc:VisionStatement description: 'Statement type for organizational vision - aspirational future state. @@ -89,7 +89,7 @@ classes: slot_usage: has_or_had_code: equals_string: VISION - has_or_had_identifier: + identified_by: equals_string: https://nde.nl/ontology/hc/statement-type/vision annotations: specificity_score: '0.50' @@ -99,7 +99,7 @@ classes: broad_mappings: - schema:CreativeWork - skos:Concept - GoalStatement: + GoalStatementType: is_a: StatementType class_uri: hc:GoalStatement description: 'Statement type for organizational goals - specific, measurable objectives. @@ -129,7 +129,7 @@ classes: slot_usage: has_or_had_code: equals_string: GOAL - has_or_had_identifier: + identified_by: equals_string: https://nde.nl/ontology/hc/statement-type/goal annotations: specificity_score: '0.55' @@ -139,7 +139,7 @@ classes: broad_mappings: - schema:CreativeWork - skos:Concept - ValueStatement: + ValueStatementType: is_a: StatementType class_uri: hc:ValueStatement description: 'Statement type for organizational values - guiding principles and @@ -170,7 +170,7 @@ classes: slot_usage: has_or_had_code: equals_string: VALUE - has_or_had_identifier: + identified_by: equals_string: https://nde.nl/ontology/hc/statement-type/value annotations: specificity_score: '0.50' @@ -180,7 +180,7 @@ classes: broad_mappings: - schema:CreativeWork - skos:Concept - MottoStatement: + MottoStatementType: is_a: StatementType class_uri: hc:MottoStatement description: 'Statement type for organizational motto - memorable tagline or slogan. @@ -214,7 +214,7 @@ classes: slot_usage: has_or_had_code: equals_string: MOTTO - has_or_had_identifier: + identified_by: equals_string: https://nde.nl/ontology/hc/statement-type/motto annotations: specificity_score: '0.45' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Status.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Status.yaml index 9cc166819a..f91611f28c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Status.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Status.yaml @@ -11,10 +11,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_type + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_type classes: Status: class_uri: schema:PropertyValue @@ -48,9 +48,9 @@ classes: slot_usage: has_or_had_type: - range: string +# range: string has_or_had_label: - range: string +# range: string annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Storage.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Storage.yaml index e6f6e432ac..072abe89af 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Storage.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Storage.yaml @@ -14,47 +14,25 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# default_prefix: hc imports: -- linkml:types -- ../enums/CapacityTypeEnum -- ../enums/StorageStandardEnum -- ../enums/StorageTypeEnum -- ../enums/StorageUnitTypeEnum -- ../slots/current_utilization_percent -- ../slots/has_or_had_capacity -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_policy -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_stored_at -- ../slots/managed_by -- ../slots/provides_or_provided -- ../slots/refers_to_custodian -- ../slots/specificity_annotation -- ../slots/standards_applied -- ../slots/temporal_extent -- ./AuxiliaryPlace -- ./Capacity -- ./ConditionPolicy -- ./Custodian -- ./CustodianCollection -- ./EnvironmentalZone -- ./EnvironmentalZoneType -- ./EnvironmentalZoneTypes -- ./Event -- ./Label -- ./Policy -- ./SpecificityAnnotation -- ./StorageCondition -- ./StorageConditionPolicy -- ./StorageLocation -- ./StorageType -- ./StorageUnit -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../enums/CapacityTypeEnum + - ../enums/StorageStandardEnum + - ../enums/StorageTypeEnum + - ../enums/StorageUnitTypeEnum + - ../slots/current_utilization_percent + - ../slots/has_or_had_capacity + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_policy + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_stored_at + - ../slots/managed_by + - ../slots/provides_or_provided + - ../slots/refers_to_custodian + - ../slots/standards_applied + - ../slots/temporal_extent classes: Storage: class_uri: hc:StorageFacility @@ -84,26 +62,25 @@ classes: - provides_or_provided - managed_by - refers_to_custodian - - specificity_annotation - standards_applied - has_or_had_description - - has_or_had_identifier + - identified_by - is_or_was_stored_at - has_or_had_label - has_or_had_type - has_or_had_score - temporal_extent slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/storage/rijksmuseum-depot-amersfoort has_or_had_label: - range: string +# range: string required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: label_text: Depot Amersfoort @@ -115,7 +92,7 @@ classes: label_text: Manuscript Storage Room 3 language: en has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: ARCHIVE_DEPOT @@ -134,7 +111,7 @@ classes: inlined: true examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort + identified_by: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort has_or_had_label: label_text: Rijksmuseum Depot Amersfoort language: nl @@ -183,7 +160,7 @@ classes: - EN_16893_2018 - EN_15757_2010 has_or_had_policy: - range: string +# range: string examples: - value: policy_name: Archive Climate Control Policy @@ -193,7 +170,7 @@ classes: - EN 16893:2018 policy_effective_from: '2020-01-01' managed_by: - range: string +# range: string examples: - value: Collections Management Department - value: Facilities and Security Team @@ -220,7 +197,7 @@ classes: - http://www.cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E27 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/storage/rijksmuseum-depot-amersfoort + identified_by: https://nde.nl/ontology/hc/storage/rijksmuseum-depot-amersfoort has_or_had_label: label_text: Depot Amersfoort language: nl @@ -230,7 +207,7 @@ classes: description_type: storage language: en is_or_was_stored_at: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort + identified_by: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort has_or_had_label: label_text: Rijksmuseum Depot Amersfoort language: nl @@ -248,7 +225,7 @@ classes: - EN_15757_2010 refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/storage/nationaal-archief-depot-b + identified_by: https://nde.nl/ontology/hc/storage/nationaal-archief-depot-b has_or_had_label: label_text: Depot B - Cold Storage language: en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StorageCondition.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StorageCondition.yaml index ec7b43efd4..8011a4912b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StorageCondition.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StorageCondition.yaml @@ -12,58 +12,35 @@ prefixes: pico: https://personsincontext.org/model# default_prefix: hc imports: -- linkml:types -- ../enums/StorageConditionStatusEnum -- ../enums/StorageObserverTypeEnum -- ../slots/has_or_had_category -- ../slots/has_or_had_identifier # was: condition_id -- ../slots/has_or_had_measurement -- ../slots/has_or_had_measurement_type -- ../slots/has_or_had_note # was: category_note -- ../slots/has_or_had_provenance -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_status -- ../slots/includes_or_included -- ../slots/indicates_or_indicated # was: follow_up_date -- ../slots/is_official_assessment -- ../slots/is_or_was_based_on -- ../slots/is_or_was_generated_by -- ../slots/measurement_data -- ../slots/observation_date -- ../slots/observation_note -- ../slots/observation_period -- ../slots/observer_affiliation -- ../slots/observer_name -- ../slots/observer_type -- ../slots/overall_status -- ../slots/refers_to_storage -- ../slots/remediation_note -- ../slots/remediation_required -- ../slots/specificity_annotation -- ../slots/supersedes_or_superseded -- ../slots/supersedes_or_superseded # was: supersede -- ./AssessmentCategory -- ./AssessmentCategoryType -- ./AssessmentCategoryTypes -- ./CategoryStatus -- ./ComplianceStatus -- ./ConfidenceMethod -- ./ConfidenceScore -- ./ConservationReview # for indicates_or_indicated range -- ./Documentation -- ./GenerationEvent -- ./Identifier -- ./Measurement -- ./MeasurementType -- ./MeasurementTypes -- ./Note # for has_or_had_note range -- ./Provenance -- ./SpecificityAnnotation -- ./Storage -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../enums/StorageConditionStatusEnum + - ../enums/StorageObserverTypeEnum + - ../slots/categorized_as + - ../slots/identified_by # was: condition_id + - ../slots/has_or_had_measurement + - ../slots/has_or_had_measurement_type + - ../slots/has_or_had_note # was: category_note + - ../slots/has_or_had_provenance + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_status + - ../slots/includes_or_included + - ../slots/indicates_or_indicated # was: follow_up_date + - ../slots/is_official_assessment + - ../slots/is_or_was_based_on + - ../slots/is_or_was_generated_by + - ../slots/measurement_data + - ../slots/observation_date + - ../slots/observation_note + - ../slots/observation_period + - ../slots/observer_affiliation + - ../slots/observer_name + - ../slots/observer_type + - ../slots/overall_status + - ../slots/refers_to_storage + - ../slots/remediation_note + - ../slots/remediation_required + - ../slots/supersedes_or_superseded + - ../slots/supersedes_or_superseded # was: supersede classes: StorageCondition: class_uri: hc:StorageConditionAssessment @@ -105,7 +82,7 @@ classes: - includes_or_included # REMOVED 2026-01-22: compliance_status - migrated to has_or_had_status + ComplianceStatus (Rule 53) - has_or_had_status - - has_or_had_identifier # was: condition_id - migrated per Rule 53 (2026-01-18) + - identified_by # was: condition_id - migrated per Rule 53 (2026-01-18) # REMOVED 2026-01-19: confidence_score - migrated to is_or_was_generated_by (Rule 53) - is_or_was_generated_by - has_or_had_provenance @@ -122,15 +99,14 @@ classes: - refers_to_storage - remediation_note - remediation_required - - specificity_annotation - supersedes_or_superseded - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - # has_assessment_category REMOVED - migrated to has_or_had_category (Rule 53) - - has_or_had_category + # has_assessment_category REMOVED - migrated to categorized_as (Rule 53) + - categorized_as slot_usage: - has_or_had_identifier: # was: condition_id - migrated per Rule 53 (2026-01-18) - range: uriorcurie - inlined: true + identified_by: # was: condition_id - migrated per Rule 53 (2026-01-18) +# range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type required: true identifier: true examples: @@ -158,13 +134,13 @@ classes: - value: INTERNAL_STAFF - value: GOVERNMENT_INSPECTOR observer_name: - range: string +# range: string examples: - value: Maria van der Berg - value: Collections Management Team - value: Anonymous (confidential source) observer_affiliation: - range: string +# range: string examples: - value: De Volkskrant - value: Rijksdienst voor het Cultureel Erfgoed @@ -187,7 +163,7 @@ classes: inlined_as_list: true examples: - value: - - has_or_had_category: + - categorized_as: has_or_had_type: TEMPERATURE has_or_had_status: has_or_had_type: GOOD @@ -195,30 +171,30 @@ classes: - has_or_had_unit: has_or_had_label: Celsius measurement_value: 19.5 - - has_or_had_category: + - categorized_as: has_or_had_type: PEST_CONTROL has_or_had_status: has_or_had_type: CRITICAL has_or_had_note: # was: note - migrated per Rule 53/56 (2026-01-18) - note_type: category note_content: White ants discovered in main depot area - has_or_had_category: + categorized_as: range: AssessmentCategory multivalued: true inlined: true examples: - value: - has_or_had_category: PEST_CONTROL + categorized_as: PEST_CONTROL observation_note: - range: string +# range: string examples: - value: During routine inspection, white ant damage discovered in south wall of main document storage. Approximately 50 linear meters of shelving affected. Evidence of active infestation - live insects observed. Immediate treatment recommended. has_or_had_provenance: - range: string +# range: string multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: is_or_was_based_on: @@ -229,7 +205,7 @@ classes: has_or_had_url: url_value: "https://archive.org/evidence/photos/depot-damage-20240915.zip" measurement_data: - range: string +# range: string examples: - value: '{"temperature_celsius": 23.5, "humidity_percent": 58, "threshold_exceeded": true}' # MIGRATED 2026-01-22: compliance_status → has_or_had_status + ComplianceStatus (Rule 53) @@ -253,7 +229,7 @@ classes: examples: - value: true remediation_note: - range: string +# range: string examples: - value: 1. Engage licensed pest control immediately 2. Quarantine affected materials 3. Survey adjacent storage areas 4. Install additional monitoring traps 5. Report to Heritage Inspectorate within 48 hours @@ -296,7 +272,7 @@ classes: - https://www.loc.gov/premis/rdf/v3/Event examples: - value: - has_or_had_identifier: # was: condition_id - migrated per Rule 53 (2026-01-18) + identified_by: # was: condition_id - migrated per Rule 53 (2026-01-18) identifier_value: "https://nde.nl/ontology/hc/condition/depot-pest-investigation-2024" refers_to_storage: https://nde.nl/ontology/hc/storage/national-archive-depot-b observation_date: '2024-09-15' @@ -306,7 +282,7 @@ classes: is_official_assessment: false overall_status: CRITICAL includes_or_included: - - has_or_had_category: + - categorized_as: has_or_had_type: PEST_CONTROL has_or_had_status: has_or_had_type: CRITICAL @@ -327,7 +303,7 @@ classes: has_or_had_score: 0.85 has_or_had_method: "journalist_investigation" - value: - has_or_had_identifier: # was: condition_id - migrated per Rule 53 (2026-01-18) + identified_by: # was: condition_id - migrated per Rule 53 (2026-01-18) identifier_value: "https://nde.nl/ontology/hc/condition/rijksmuseum-q2-2024" refers_to_storage: https://nde.nl/ontology/hc/storage/rijksmuseum-depot-amersfoort observation_date: '2024-06-30' @@ -338,7 +314,7 @@ classes: is_official_assessment: true overall_status: GOOD includes_or_included: - - has_or_had_category: + - categorized_as: has_or_had_type: TEMPERATURE has_or_had_status: has_or_had_type: EXCELLENT @@ -346,7 +322,7 @@ classes: - measurement_value: 18.5 has_or_had_unit: has_or_had_label: Celsius - - has_or_had_category: + - categorized_as: has_or_had_type: HUMIDITY has_or_had_status: has_or_had_type: GOOD @@ -354,14 +330,14 @@ classes: - measurement_value: 48 has_or_had_unit: has_or_had_label: Percent - - has_or_had_category: + - categorized_as: has_or_had_type: PEST_CONTROL has_or_had_status: has_or_had_type: GOOD has_or_had_note: # was: note - migrated per Rule 53/56 (2026-01-18) - note_type: category note_content: No pest activity detected in monitoring traps - - has_or_had_category: + - categorized_as: has_or_had_type: SECURITY has_or_had_status: has_or_had_type: EXCELLENT @@ -386,14 +362,13 @@ classes: ' slots: - - has_or_had_category + - categorized_as - has_or_had_measurement # was: category_measurement - migrated per Rule 53/56 (2026-01-24) - has_or_had_note # was: category_note - migrated per Rule 53/56 (2026-01-18) - has_or_had_status # was: category_status - migrated per Rule 53/56 (2026-01-24) - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - has_or_had_category: + categorized_as: range: AssessmentCategory required: true inlined: true @@ -406,10 +381,10 @@ classes: inlined: true multivalued: true has_or_had_note: # was: category_note - migrated per Rule 53/56 (2026-01-18) - range: string +# range: string multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - note_type: category diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml index fa69ea7244..0bdabd3ccc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml @@ -16,43 +16,30 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../classes/AirChanges -- ../classes/Quantity -- ../classes/Setpoint -- ../classes/Unit -- ../classes/Ventilation -- ../slots/allows_or_allowed -- ../slots/has_or_had_description -- ../slots/has_or_had_policy -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_setpoint -- ../slots/has_or_had_tolerance -- ../slots/has_or_had_unit -- ../slots/is_or_was_approved_by -- ../slots/is_or_was_effective_at -- ../slots/is_or_was_expired_at -- ../slots/light_max_lux -- ../slots/note -- ../slots/particulate_max -- ../slots/pest_management_required -- ../slots/policy_description -- ../slots/policy_id -- ../slots/policy_name -- ../slots/policy_review_date -- ../slots/requires_or_required -- ../slots/specificity_annotation -- ../slots/specifies_or_specified -- ../slots/standards_compliance -- ./FireSuppressionSystem -- ./FireSuppressionType -- ./FireSuppressionTypes -- ./TemperatureDeviation -- ./TimeSpan -- ./Approver -- ./SecurityLevel -- ../enums/StorageStandardEnum + - linkml:types + - ../slots/allow + - ../slots/has_or_had_description + - ../slots/has_or_had_policy + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_setpoint + - ../slots/has_or_had_tolerance + - ../slots/has_or_had_unit + - ../slots/is_or_was_approved_by + - ../slots/is_or_was_effective_at + - ../slots/is_or_was_expired_at + - ../slots/light_max_lux + - ../slots/note + - ../slots/particulate_max + - ../slots/pest_management_required + - ../slots/policy_description + - ../slots/policy_id + - ../slots/policy_name + - ../slots/policy_review_date + - ../slots/requires_or_required + - ../slots/specifies_or_specified + - ../slots/standards_compliance + - ../enums/StorageStandardEnum classes: StorageConditionPolicy: class_uri: premis:PreservationPolicy @@ -61,13 +48,11 @@ classes: - has_or_had_description - has_or_had_policy - is_or_was_approved_by - - specificity_annotation - has_or_had_score - light_max_lux - particulate_max - pest_management_required - requires_or_required - - has_or_had_policy - standards_compliance - is_or_was_effective_at - is_or_was_expired_at @@ -102,7 +87,7 @@ classes: - value: level_code: HIGH has_or_had_policy: - range: string +# range: string examples: - value: Staff access only. Two-person rule for vault access. Visitor access requires Director approval and escort. standards_compliance: @@ -122,7 +107,7 @@ classes: range: date is_or_was_approved_by: range: Approver - required: false + required: true examples: - value: approver_name: Collections Committee @@ -133,7 +118,7 @@ classes: examples: - value: '2025-12-31' note: - range: string +# range: string comments: - Policy defines INTENDED conditions, not actual state - Actual conditions tracked separately in StorageCondition observations diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StorageFacility.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StorageFacility.yaml deleted file mode 100644 index 6268a2c6c7..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StorageFacility.yaml +++ /dev/null @@ -1,27 +0,0 @@ -id: https://nde.nl/ontology/hc/class/StorageFacility -name: StorageFacility -title: StorageFacility -description: >- - A storage facility. - -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - -default_prefix: hc - -imports: -- linkml:types -- ../slots/has_or_had_name -classes: - StorageFacility: - class_uri: schema:Place - description: Storage facility. - annotations: - specificity_score: 0.1 - specificity_rationale: "Generic utility class created during migration" - custodian_types: '["*"]' - - slots: - - has_or_had_name diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StorageLocation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StorageLocation.yaml index 79ba1001f0..2e45714c5d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StorageLocation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StorageLocation.yaml @@ -14,19 +14,14 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_type -- ../slots/has_or_had_url -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_type + - ../slots/has_or_had_url classes: StorageLocation: class_uri: premis:StorageLocation @@ -85,37 +80,36 @@ classes: - schema:DataCatalog slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_type - has_or_had_url - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/storage-location/rijksmuseum-depot-a - value: https://nde.nl/ontology/hc/storage-location/dans-vault has_or_had_label: - range: string +# range: string required: true examples: - value: Depot Amersfoort - Vault A - value: AWS S3 eu-west-1 - value: DANS Data Archive has_or_had_description: - range: string +# range: string required: false examples: - value: "Climate-controlled vault for photographic materials. -18°C, 30% RH." - value: "DANS is a trusted digital repository for Dutch research data." has_or_had_type: - range: string +# range: string required: false examples: - value: PHYSICAL_DEPOT @@ -151,19 +145,19 @@ classes: examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/storage-location/rijksmuseum-depot-vault-a + identified_by: https://nde.nl/ontology/hc/storage-location/rijksmuseum-depot-vault-a has_or_had_label: Rijksmuseum Depot Amersfoort - Vault A has_or_had_description: "Climate-controlled art storage vault. 18-22°C, 45-55% RH." has_or_had_type: PHYSICAL_DEPOT has_or_had_url: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort - value: - has_or_had_identifier: https://nde.nl/ontology/hc/storage-location/dans-archive + identified_by: https://nde.nl/ontology/hc/storage-location/dans-archive has_or_had_label: DANS Data Archive has_or_had_description: "DANS is a Dutch trusted digital repository for research data and cultural heritage collections." has_or_had_type: TRUSTED_ARCHIVE has_or_had_url: https://easy.dans.knaw.nl/ - value: - has_or_had_identifier: https://nde.nl/ontology/hc/storage-location/aws-s3-heritage + identified_by: https://nde.nl/ontology/hc/storage-location/aws-s3-heritage has_or_had_label: AWS S3 Heritage Bucket (eu-west-1) has_or_had_description: "Cloud storage for digitized heritage materials. Amsterdam region for GDPR compliance." has_or_had_type: CLOUD_STORAGE diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StorageSystem.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StorageSystem.yaml index e025668a99..9c16dfd538 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StorageSystem.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StorageSystem.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: StorageSystem: class_uri: schema:Product diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StorageType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StorageType.yaml index 3c6e0e26c2..baafd1b4cf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StorageType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StorageType.yaml @@ -14,37 +14,23 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_condition -- ../slots/has_or_had_condition # was: typical_condition -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_use_case -- ../slots/is_or_was_equivalent_to -- ../slots/is_or_was_related_to -- ../slots/preservation_requirement -- ../slots/security_level -- ../slots/specificity_annotation -- ../slots/stores_or_stored -- ../slots/stores_or_stored # was: target_material -- ./Access -- ./Condition # Added for has_or_had_condition range -- ./ConditionType # Added for Condition.has_or_had_type range -- ./Frequency -- ./Material # Added for stores_or_stored range (material design specs) -- ./MaterialType # Added for Material.has_or_had_type -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier -- ./StorageType -- ./UseCase + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_condition + - ../slots/has_or_had_condition # was: typical_condition + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_use_case + - ../slots/is_or_was_equivalent_to + - ../slots/is_or_was_related_to + - ../slots/preservation_requirement + - ../slots/security_level + - ../slots/stores_or_stored + - ../slots/stores_or_stored # was: target_material classes: StorageType: class_uri: skos:Concept @@ -98,7 +84,7 @@ classes: The "DEPOSIT_STORAGE" StorageType specifically supports deposit archive functions. **SLOT MIGRATION** (2026-01-13): This class now uses shared slots instead of domain-specific storage_type_* slots: - - `has_or_had_identifier` replaces `storage_type_id` + - `identified_by` replaces `storage_type_id` - `has_or_had_code` replaces `storage_type_code` - `has_or_had_label` replaces `storage_type_label` - `has_or_had_description` replaces `storage_type_description` @@ -115,7 +101,7 @@ classes: - rico:RecordSetType slots: # Shared slots (from centralized slot files) - - has_or_had_identifier + - identified_by - has_or_had_code - has_or_had_label - has_or_had_description @@ -127,15 +113,14 @@ classes: - has_or_had_use_case - preservation_requirement - security_level - - specificity_annotation - stores_or_stored # was: target_material - migrated per Rule 53/56 (2026-01-16) - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - has_or_had_condition # was: typical_condition - migrated per Rule 53 (2026-01-15) # REMOVED 2026-01-15: wikidata_id - migrated to is_or_was_equivalent_to (Rule 53) - is_or_was_equivalent_to slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true pattern: "^https://nde\\.nl/ontology/hc/storage-type/[a-z0-9-]+$" @@ -143,7 +128,7 @@ classes: - value: https://nde.nl/ontology/hc/storage-type/archive-depot - value: https://nde.nl/ontology/hc/storage-type/cold-storage has_or_had_code: - range: string +# range: string required: true pattern: "^[A-Z][A-Z0-9_]*$" examples: @@ -151,7 +136,7 @@ classes: - value: COLD_STORAGE - value: ART_STORAGE has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -159,7 +144,7 @@ classes: - value: ["Cold Storage@en", "Koudopslag@nl"] - value: ["Art Storage Vault@en", "Kunstkluis@nl"] has_or_had_description: - range: string +# range: string examples: - value: "Specialized climate-controlled facility for archival documents, manuscripts, and records. Maintains stable temperature and humidity optimal for paper and parchment preservation." has_or_had_hypernym: @@ -190,7 +175,7 @@ classes: - value: - qid: "Q1280667" preservation_requirement: - range: string +# range: string examples: - value: "Required for paper-based materials, manuscripts, and archival documents. Prevents acid migration, foxing, and brittleness. Essential for materials with lignin content." # was: typical_condition - migrated per Rule 53 (2026-01-15) @@ -220,34 +205,34 @@ classes: inlined_as_list: true examples: - value: - - has_or_had_identifier: https://nde.nl/ontology/hc/material/paper + - identified_by: https://nde.nl/ontology/hc/material/paper has_or_had_label: - paper@en - papier@nl has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/parchment + - identified_by: https://nde.nl/ontology/hc/material/parchment has_or_had_label: - parchment@en - perkament@nl has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/vellum + - identified_by: https://nde.nl/ontology/hc/material/vellum has_or_had_label: - vellum@en - velijn@nl has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - value: - - has_or_had_identifier: https://nde.nl/ontology/hc/material/nitrate-film + - identified_by: https://nde.nl/ontology/hc/material/nitrate-film has_or_had_label: - nitrate film@en - nitraatfilm@nl has_or_had_type: https://nde.nl/ontology/hc/material-type/synthetic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/acetate-film + - identified_by: https://nde.nl/ontology/hc/material/acetate-film has_or_had_label: - acetate film@en - acetaatfilm@nl has_or_had_type: https://nde.nl/ontology/hc/material-type/synthetic security_level: - range: string +# range: string examples: - value: STANDARD - value: HIGH_SECURITY @@ -278,7 +263,7 @@ classes: # NOTE: slot_usage may need manual review for range/description updates '{"collection_discovery": 0.75, "organizational_change": 0.40, "general_heritage": 0.50}' slot_migration: | 2026-01-13: Migrated from domain-specific to shared slots - - storage_type_id → has_or_had_identifier + - storage_type_id → identified_by - storage_type_code → has_or_had_code - storage_type_label → has_or_had_label - storage_type_description → has_or_had_description @@ -303,7 +288,7 @@ classes: - https://www.iso.org/standard/52821.html examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/storage-type/archive-depot + identified_by: https://nde.nl/ontology/hc/storage-type/archive-depot has_or_had_code: ARCHIVE_DEPOT has_or_had_label: - Archive Depot@en @@ -325,17 +310,17 @@ classes: description_type: condition # was: target_material - migrated per Rule 53/56 (2026-01-16) stores_or_stored: - - has_or_had_identifier: https://nde.nl/ontology/hc/material/paper + - identified_by: https://nde.nl/ontology/hc/material/paper has_or_had_label: - paper@en - papier@nl has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/parchment + - identified_by: https://nde.nl/ontology/hc/material/parchment has_or_had_label: - parchment@en - perkament@nl has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/photograph + - identified_by: https://nde.nl/ontology/hc/material/photograph has_or_had_label: - photograph@en - foto@nl @@ -345,7 +330,7 @@ classes: - has_or_had_label: Nationaal Archief Depot Den Haag - has_or_had_label: British Library Document Storage - value: - has_or_had_identifier: https://nde.nl/ontology/hc/storage-type/cold-storage + identified_by: https://nde.nl/ontology/hc/storage-type/cold-storage has_or_had_code: COLD_STORAGE has_or_had_label: - Cold Storage@en @@ -368,22 +353,22 @@ classes: # was: target_material - migrated per Rule 53/56 (2026-01-16) stores_or_stored: - has_or_had_material_type: - has_or_had_identifier: hc:material-type/film-nitrate + identified_by: hc:material-type/film-nitrate has_or_had_label: - Nitrate Film@en material_description: "Historical nitrate film stock, highly flammable" - has_or_had_material_type: - has_or_had_identifier: hc:material-type/film-acetate + identified_by: hc:material-type/film-acetate has_or_had_label: - Acetate Film@en material_description: "Acetate-based film, susceptible to vinegar syndrome" - has_or_had_material_type: - has_or_had_identifier: hc:material-type/photograph-color + identified_by: hc:material-type/photograph-color has_or_had_label: - Color Photographs@en material_description: "Color photographic materials requiring cold storage" - has_or_had_material_type: - has_or_had_identifier: hc:material-type/biological-specimen + identified_by: hc:material-type/biological-specimen has_or_had_label: - Biological Specimens@en material_description: "Preserved biological specimens requiring cryogenic storage" @@ -392,7 +377,7 @@ classes: - has_or_had_label: EYE Filmmuseum Cold Vault - has_or_had_label: Library of Congress Film Vault - value: - has_or_had_identifier: https://nde.nl/ontology/hc/storage-type/deposit-storage + identified_by: https://nde.nl/ontology/hc/storage-type/deposit-storage has_or_had_code: DEPOSIT_STORAGE has_or_had_label: - Deposit Storage@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StorageUnit.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StorageUnit.yaml index d4450b3465..3c58f7ecd5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StorageUnit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StorageUnit.yaml @@ -11,38 +11,23 @@ prefixes: aat: http://vocab.getty.edu/aat/ default_prefix: hc imports: -- linkml:types -- ../enums/CapacityTypeEnum -- ../enums/StorageUnitTypeEnum -- ../slots/current_item_count -- ../slots/has_or_had_capacity -- ../slots/has_or_had_description -- ../slots/has_or_had_drawer -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/part_of_storage -- ../slots/part_of_zone -- ../slots/row_number -- ../slots/shelf_number -- ../slots/specificity_annotation -- ../slots/stores_or_stored -- ../slots/temporal_extent -- ./BayNumber -- ./BoxNumber -- ./Capacity -- ./Drawer -- ./DrawerNumber -- ./EnvironmentalZone -- ./HeritageObject -- ./SpecificityAnnotation -- ./Storage -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./UnitIdentifier + - linkml:types + - ../enums/CapacityTypeEnum + - ../enums/StorageUnitTypeEnum + - ../slots/current_item_count + - ../slots/has_or_had_capacity + - ../slots/has_or_had_description + - ../slots/has_or_had_drawer + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/part_of_storage + - ../slots/part_of_zone + - ../slots/row_number + - ../slots/shelf_number + - ../slots/stores_or_stored + - ../slots/temporal_extent classes: StorageUnit: class_uri: hc:StorageUnit @@ -61,7 +46,7 @@ classes: - hc:EnvironmentalZone - schema:Place slots: - - has_or_had_identifier + - identified_by - has_or_had_capacity - current_item_count - has_or_had_drawer @@ -69,7 +54,6 @@ classes: - part_of_zone - row_number - shelf_number - - specificity_annotation - stores_or_stored - has_or_had_score - has_or_had_description @@ -78,7 +62,7 @@ classes: - temporal_extent slot_usage: has_or_had_label: - range: string +# range: string examples: - value: Archive Box 145 - WWII Correspondence - value: Map Drawer 42 - Netherlands 19th Century @@ -88,13 +72,13 @@ classes: has_or_had_description: multivalued: true row_number: - range: string +# range: string examples: - value: A - value: '12' - value: North-3 - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie multivalued: true required: true identifier: true @@ -112,7 +96,7 @@ classes: inlined: true examples: - value: - has_or_had_identifier: + identified_by: has_or_had_capacity: range: Capacity multivalued: true @@ -156,7 +140,7 @@ classes: description_type: unit language: en row_number: '12' - has_or_had_identifier: + identified_by: - value: '3' _type: BayNumber shelf_number: 4 @@ -169,7 +153,7 @@ classes: description_type: unit language: en has_or_had_drawer: - - has_or_had_identifier: + - identified_by: has_or_had_capacity: - capacity_value: 50 capacity_type: ITEM_COUNT diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/StrategicObjective.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/StrategicObjective.yaml index 46f4b77b81..420975786e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/StrategicObjective.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/StrategicObjective.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: StrategicObjective: class_uri: schema:Action diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SubGuideType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SubGuideType.yaml index 0d97cffa91..6c362a2905 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SubGuideType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SubGuideType.yaml @@ -10,20 +10,14 @@ prefixes: ead: https://www.loc.gov/ead/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./SubGuideType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score classes: SubGuideType: class_uri: skos:Concept @@ -40,17 +34,16 @@ classes: - rico:RecordResource - ead:archdesc slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code - has_or_had_hypernym - has_or_had_hyponym - - specificity_annotation - has_or_had_score slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/sub-guide-type/[a-z-]+$ @@ -58,7 +51,7 @@ classes: - value: https://nde.nl/ontology/hc/sub-guide-type/sub-guide - value: https://nde.nl/ontology/hc/sub-guide-type/thematic has_or_had_code: - range: string +# range: string required: true pattern: ^[a-z][a-z0-9_]*$ examples: @@ -67,7 +60,7 @@ classes: - value: thematic - value: regional has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -78,7 +71,7 @@ classes: - Thematic Collection@en - Thematische collectie@nl has_or_had_description: - range: string +# range: string required: false examples: - value: Direct sub-guide within the same repository's finding aid hierarchy @@ -108,7 +101,7 @@ classes: - https://www.w3.org/2004/02/skos/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/sub-guide-type/thematic + identified_by: https://nde.nl/ontology/hc/sub-guide-type/thematic has_or_had_code: thematic has_or_had_label: - Thematic Sub-collection@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SubGuideTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SubGuideTypes.yaml index 485fbdaf1c..8159103785 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SubGuideTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SubGuideTypes.yaml @@ -8,12 +8,12 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ./SubGuideType + - ./SubGuideType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: DirectSubGuide: is_a: SubGuideType @@ -54,12 +54,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/sub-guide-type/sub-guide) has_or_had_code: ifabsent: string(sub_guide) @@ -114,12 +114,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/sub-guide-type/cross-reference) has_or_had_code: ifabsent: string(cross_reference) @@ -175,12 +175,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/sub-guide-type/thematic) has_or_had_code: ifabsent: string(thematic) @@ -205,12 +205,12 @@ classes: - Distributed heritage networks\n- Provincial/state-level holdings\n- Municipal\ \ archives within regional systems\n" slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/sub-guide-type/regional) has_or_had_code: ifabsent: string(regional) diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Subregion.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Subregion.yaml index 6167d31d63..1b87a86425 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Subregion.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Subregion.yaml @@ -2,17 +2,11 @@ id: https://nde.nl/ontology/hc/class/subregion name: subregion title: Subregion Class imports: -- linkml:types -- ../slots/country -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/iso_3166_2_code -- ../slots/specificity_annotation -- ./Country -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/country + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/iso_3166_2_code classes: Subregion: class_uri: lcc_cr:GeographicRegion @@ -27,7 +21,6 @@ classes: slots: - country - iso_3166_2_code - - specificity_annotation - has_or_had_label - has_or_had_score slot_usage: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SubsidiaryOrganization.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SubsidiaryOrganization.yaml index ceb242e1e2..ca6ee3273d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SubsidiaryOrganization.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SubsidiaryOrganization.yaml @@ -2,40 +2,31 @@ id: https://nde.nl/ontology/hc/class/SubsidiaryOrganization name: SubsidiaryOrganization title: SubsidiaryOrganization Type imports: -- linkml:types -- ../slots/custodian_only -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/label_de -- ../slots/label_es -- ../slots/label_fr -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/custodian_only + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to + - ../slots/label_de + - ../slots/label_es + - ../slots/label_fr + - ../slots/record_set_type classes: SubsidiaryOrganization: description: An entity or organization administered by a larger entity or organization. In the heritage context, subsidiary organizations are archives, museums, libraries, or other heritage custodians that operate under the governance or administrative control of a parent institution. This class models the hierarchical relationship between organizations. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: skos:Concept mixins: - OrganizationalStructure slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null is_or_was_related_to: range: WikidataAlignment inlined: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Summary.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Summary.yaml index 0e15aa4e6d..5c79fb3ba1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Summary.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Summary.yaml @@ -3,8 +3,8 @@ name: Summary title: Summary description: A summary of a document or entity. imports: -- linkml:types -- ../slots/has_or_had_text + - linkml:types + - ../slots/has_or_had_text classes: Summary: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SupervisedHandling.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SupervisedHandling.yaml index 062691f5d4..dd4363e945 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SupervisedHandling.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SupervisedHandling.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: SupervisedHandling: class_uri: schema:Policy diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Supplier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Supplier.yaml index 8287ec3785..a2c8fd822b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Supplier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Supplier.yaml @@ -9,35 +9,31 @@ prefixes: org: http://www.w3.org/ns/org# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ../slots/temporal_extent -- ./Description -- ./Label -- ./SupplierType -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_type + - ../slots/temporal_extent classes: Supplier: class_uri: schema:Organization - description: "Business entity that supplies goods or services to a heritage custodian.\n\n**PURPOSE**:\nModels supplier relationships for commercial operations (gift shops, cafes, etc.)\nin a structured way that captures:\n- Supplier identity and contact\n- Type of supplier (print, reproduction, service, etc.)\n- Products/services provided\n- Temporal validity of relationship\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`class_uri`): `schema:Organization` - Schema.org organization\n- **Close**: `gr:BusinessEntity` - GoodRelations business entity\n- **Related**: `org:Organization` - W3C Org organization\n\n**USAGE**:\n```yaml\nhas_or_had_supplier:\n - has_or_had_identifier: \"hc:supplier/king-mcgaw\"\n has_or_had_label:\n label_text: \"King & McGaw\"\n has_or_had_type:\n has_or_had_label: \"Print Supplier\"\n has_or_had_description:\n description_text: \"Fine art print supplier for museum reproductions\"\n temporal_extent:\n begin_of_the_begin: \"2018-01-01\"\n\ + description: "Business entity that supplies goods or services to a heritage custodian.\n\n**PURPOSE**:\nModels supplier relationships for commercial operations (gift shops, cafes, etc.)\nin a structured way that captures:\n- Supplier identity and contact\n- Type of supplier (print, reproduction, service, etc.)\n- Products/services provided\n- Temporal validity of relationship\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`class_uri`): `schema:Organization` - Schema.org organization\n- **Close**: `gr:BusinessEntity` - GoodRelations business entity\n- **Related**: `org:Organization` - W3C Org organization\n\n**USAGE**:\n```yaml\nhas_or_had_supplier:\n - identified_by: \"hc:supplier/king-mcgaw\"\n has_or_had_label:\n label_text: \"King & McGaw\"\n has_or_had_type:\n has_or_had_label: \"Print Supplier\"\n has_or_had_description:\n description_text: \"Fine art print supplier for museum reproductions\"\n temporal_extent:\n begin_of_the_begin: \"2018-01-01\"\n\ ```\n\n**MIGRATION NOTE**:\nReplaces plain string values from `supplier_relationship` slot.\nProvides structured data with type classification and temporal tracking.\n" slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_type - temporal_extent slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie examples: - value: hc:supplier/king-mcgaw has_or_had_label: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: @@ -45,14 +41,14 @@ classes: - value: label_text: Museum Reproductions Ltd has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: Fine art print supplier specializing in museum reproduction prints has_or_had_type: - range: uriorcurie - inlined: true +# range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: @@ -72,7 +68,7 @@ classes: - org:Organization examples: - value: - has_or_had_identifier: hc:supplier/king-mcgaw + identified_by: hc:supplier/king-mcgaw has_or_had_label: label_text: King & McGaw has_or_had_type: @@ -83,7 +79,7 @@ classes: temporal_extent: begin_of_the_begin: '2018-01-01' - value: - has_or_had_identifier: hc:supplier/museum-reproductions-ltd + identified_by: hc:supplier/museum-reproductions-ltd has_or_had_label: label_text: Museum Reproductions Ltd has_or_had_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SupplierType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SupplierType.yaml index b8e7701b7b..d13acc7008 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SupplierType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SupplierType.yaml @@ -9,11 +9,9 @@ prefixes: gr: http://purl.org/goodrelations/v1# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ./Description -- ./Label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: SupplierType: class_uri: skos:Concept @@ -61,14 +59,14 @@ classes: - has_or_had_description slot_usage: has_or_had_label: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: label_text: Print Supplier has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: Suppliers providing print-on-demand and art reproduction services diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/SupplierTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/SupplierTypes.yaml index 2b600d796e..7470790e7a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/SupplierTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/SupplierTypes.yaml @@ -7,8 +7,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ./SupplierType + - ./SupplierType + - linkml:types classes: PrintSupplier: is_a: SupplierType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Tag.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Tag.yaml index 7d871c4130..f6cee31309 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Tag.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Tag.yaml @@ -9,10 +9,10 @@ prefixes: dct: http://purl.org/dc/terms/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: Tag: class_uri: skos:Concept @@ -51,17 +51,14 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description slot_usage: - has_or_had_identifier: + identified_by: has_or_had_label: multivalued: true required: true - rules: - - preconditions: - slot_conditions: annotations: specificity_score: 0.45 specificity_rationale: 'Tags are broadly useful across social media content, collections, @@ -87,40 +84,3 @@ classes: comments: - Replaces string-based tag per Rule 53/56 (2026-01-16) - Enables platform-specific tag handling (hashtags vs. keywords) -slots: - tag_value: - slot_uri: hc:tagValue - description: 'The raw tag/keyword/hashtag string value. - - For hashtags, includes the # prefix. - - For keywords, the plain text value. - - ' - range: string - required: true - examples: - - value: '#heritage' - - value: museum - tag_platform: - slot_uri: hc:tagPlatform - description: 'The platform where this tag originated. - - Used to understand platform-specific tag semantics. - - ' - range: string - examples: - - value: YouTube - - value: Twitter - - value: Instagram - - value: Mastodon - is_hashtag: - slot_uri: hc:isHashtag - description: 'Whether this tag uses hashtag format (#tag). - - True for social media hashtags, false for platform keywords. - - ' - range: boolean - ifabsent: 'false' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TargetHumidity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TargetHumidity.yaml index 854cb3fb35..ef6f7a7927 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TargetHumidity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TargetHumidity.yaml @@ -9,9 +9,9 @@ prefixes: qudt: http://qudt.org/schema/qudt/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_unit -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_unit + - ../slots/has_or_had_value classes: TargetHumidity: class_uri: schema:QuantitativeValue @@ -24,7 +24,7 @@ classes: range: float required: true has_or_had_unit: - range: string +# range: string ifabsent: string(%) annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TasteScentHeritageType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TasteScentHeritageType.yaml index e38b09ebef..9e41b2dc73 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TasteScentHeritageType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TasteScentHeritageType.yaml @@ -12,28 +12,16 @@ description: 'Specialized CustodianType for institutions preserving culinary her ' imports: -- linkml:types -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_score -- ../slots/has_or_had_significance -- ../slots/has_or_had_type -- ../slots/knowledge_transmission -- ../slots/preservation_method -- ../slots/preserves_or_preserved -- ../slots/sensory_heritage_domain -- ../slots/specificity_annotation -- ./CustodianType -- ./HeritagePractice -- ./Significance -- ./SignificanceType -- ./SignificanceTypes -- ./SpecificityAnnotation -- ./TasteScentSubType -- ./TasteScentSubTypes -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TraditionalProductType + - ../classes/AgentType + - linkml:types + - ../slots/has_or_had_hyponym + - ../slots/has_or_had_score + - ../slots/has_or_had_significance + - ../slots/has_or_had_type + - ../slots/knowledge_transmission + - ../slots/preservation_method + - ../slots/preserves_or_preserved + - ../slots/sensory_heritage_domain prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -164,15 +152,14 @@ classes: - knowledge_transmission - preservation_method - sensory_heritage_domain - - specificity_annotation - has_or_had_hyponym - has_or_had_score - - has_or_had_type slot_usage: preserves_or_preserved: - range: HeritagePractice +# range: string # uriorcurie + # range: HeritagePractice multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: @@ -182,14 +169,14 @@ classes: - value: has_or_had_label: Ancestral Gouda cheese with raw milk sensory_heritage_domain: - range: string +# range: string required: true examples: - value: Taste (beer), Scent (aromas), Intangible (brewing) - value: Scent (perfume), Intangible (nose expertise) - value: Taste (cheese), Texture (aging), Intangible (craft) preservation_method: - range: string +# range: string multivalued: true required: true examples: @@ -197,7 +184,8 @@ classes: - value: Formula archives, Nose training, Apprenticeship - value: Family manuscripts, Demonstration, PDO status has_or_had_type: - range: TraditionalProductType +# range: string # uriorcurie + # range: TraditionalProductType multivalued: true required: true examples: @@ -205,17 +193,18 @@ classes: - value: Eau de Cologne 1709, Rose de Mai - value: Aged Gouda 18-month, 24-month, 36-month knowledge_transmission: - range: string +# range: string required: true examples: - value: Monastic apprenticeship, Direct demo, Oral tradition - value: Apprentice program (3 years), Nose training - value: Family succession, Public demos, PDO training has_or_had_significance: - range: Significance +# range: string # uriorcurie + # range: Significance multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -228,9 +217,10 @@ classes: has_or_had_type: EconomicSignificance has_or_had_description: Protected Gouda PDO, Dutch cheese identity, Economic importance to region has_or_had_hyponym: - range: TasteScentSubType +# range: string # uriorcurie + # range: TasteScentSubType multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - Brewery diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TasteScentSubType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TasteScentSubType.yaml index 920149a84b..4e8ac07fb5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TasteScentSubType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TasteScentSubType.yaml @@ -12,11 +12,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/is_or_was_equivalent_to -- ./WikiDataIdentifier + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/is_or_was_equivalent_to classes: TasteScentSubType: class_uri: skos:Concept @@ -62,6 +61,7 @@ classes: - value: Business that makes and sells beer is_or_was_equivalent_to: range: WikiDataIdentifier + inlined_as_list: true examples: - value: description: wikidata:Q131734 (brewery) diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TasteScentSubTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TasteScentSubTypes.yaml index 70fedc44a0..bcfe552689 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TasteScentSubTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TasteScentSubTypes.yaml @@ -9,8 +9,8 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ./TasteScentSubType + - ./TasteScentSubType + - linkml:types classes: Brewery: is_a: TasteScentSubType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TaxDeductibility.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TaxDeductibility.yaml index 8b4927b8be..a297bcd083 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TaxDeductibility.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TaxDeductibility.yaml @@ -7,21 +7,15 @@ prefixes: schema: http://schema.org/ prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../slots/has_or_had_condition -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_percentage -- ../slots/has_or_had_type -- ../slots/is_or_was_effective_at -- ../slots/jurisdiction -- ../slots/minimum_donation -- ./Condition -- ./Jurisdiction -- ./Percentage -- ./TaxDeductibilityType -- ./TaxDeductibilityTypes -- ./TimeSpan + - linkml:types + - ../slots/has_or_had_condition + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_percentage + - ../slots/has_or_had_type + - ../slots/is_or_was_effective_at + - ../slots/jurisdiction + - ../slots/minimum_donation default_prefix: hc classes: TaxDeductibility: @@ -41,16 +35,16 @@ classes: - is_or_was_effective_at slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_label: Fully Deductible has_or_had_description: 100% of donation is tax-deductible jurisdiction: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: jurisdiction_code: NL @@ -83,7 +77,7 @@ classes: range: decimal is_or_was_effective_at: range: datetime - inlined: true + inlined: false # Fixed invalid inline for primitive type see_also: - https://www.belastingdienst.nl/wps/wcm/connect/nl/aftrek-en-kortingen/content/gift-aftrekken - https://www.gov.uk/donating-to-charity/gift-aid diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TaxDeductibilityType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TaxDeductibilityType.yaml index eef7d72dc9..8f79de32f1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TaxDeductibilityType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TaxDeductibilityType.yaml @@ -11,9 +11,9 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: TaxDeductibilityType: class_uri: skos:Concept @@ -55,10 +55,10 @@ classes: slot_usage: has_or_had_label: - range: string +# range: string required: true has_or_had_description: - range: string +# range: string annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TaxDeductibilityTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TaxDeductibilityTypes.yaml index ba1c825caf..6686882861 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TaxDeductibilityTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TaxDeductibilityTypes.yaml @@ -7,8 +7,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ./TaxDeductibilityType + - ./TaxDeductibilityType + - linkml:types classes: FullyDeductible: is_a: TaxDeductibilityType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TaxScheme.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TaxScheme.yaml index b232624084..63a38b38d7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TaxScheme.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TaxScheme.yaml @@ -9,22 +9,17 @@ prefixes: org: http://www.w3.org/ns/org# prov: http://www.w3.org/ns/prov# imports: -- linkml:types -- ../slots/expires_on_expired_at -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ../slots/is_or_was_effective_at -- ../slots/jurisdiction -- ../slots/legal_basis -- ../slots/offers_or_offered -- ../slots/regulatory_body -- ./TaxDeductibility -- ./TaxSchemeType -- ./TaxSchemeTypes -- ./TimeSpan -- ./Timestamp + - linkml:types + - ../slots/expires_on_expired_at + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_type + - ../slots/is_or_was_effective_at + - ../slots/jurisdiction + - ../slots/legal_basis + - ../slots/offers_or_offered + - ../slots/regulatory_body default_prefix: hc classes: TaxScheme: @@ -43,7 +38,7 @@ classes: - has_or_had_type - has_or_had_label - has_or_had_description - - has_or_had_identifier + - identified_by - jurisdiction - offers_or_offered - regulatory_body @@ -52,26 +47,26 @@ classes: - expires_on_expired_at slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: CulturalANBI - value: GiftAid - value: Section501c3 has_or_had_label: - range: string +# range: string examples: - value: Cultural ANBI (125%) - value: Gift Aid eligible has_or_had_description: - range: string - has_or_had_identifier: - range: string +# range: string + identified_by: +# range: string examples: - value: RSIN 123456789 - value: Charity No. 1234567 jurisdiction: - range: string +# range: string required: true examples: - value: NL @@ -92,13 +87,13 @@ classes: has_or_had_label: Enhanced Cultural has_or_had_percentage: regulatory_body: - range: string +# range: string examples: - value: Belastingdienst - value: HMRC - value: IRS legal_basis: - range: string +# range: string examples: - value: Wet inkomstenbelasting 2001 - value: Finance Act 1990 @@ -123,7 +118,7 @@ classes: has_or_had_type: CulturalANBI has_or_had_label: Cultural ANBI (125%) has_or_had_description: Rijksmuseum is registered as Cultural ANBI, providing donors with 125% tax deduction (100% standard + 25% cultural bonus). - has_or_had_identifier: RSIN 002006066 + identified_by: RSIN 002006066 jurisdiction: NL offers_or_offered: - has_or_had_type: @@ -136,7 +131,7 @@ classes: has_or_had_type: GiftAid has_or_had_label: Gift Aid eligible has_or_had_description: "British Library is registered for Gift Aid, allowing the library to reclaim 25p for every \xA31 donated by UK taxpayers." - has_or_had_identifier: Charity No. 1034686 + identified_by: Charity No. 1034686 jurisdiction: UK offers_or_offered: - has_or_had_type: @@ -149,7 +144,7 @@ classes: has_or_had_type: Section501c3 has_or_had_label: 501(c)(3) tax-exempt has_or_had_description: Smithsonian Institution is recognized as a 501(c)(3) organization, allowing donors to deduct contributions on federal income taxes. - has_or_had_identifier: EIN 53-0206027 + identified_by: EIN 53-0206027 jurisdiction: US offers_or_offered: - has_or_had_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TaxSchemeType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TaxSchemeType.yaml index bd5de0c61f..1eed83fa3c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TaxSchemeType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TaxSchemeType.yaml @@ -7,9 +7,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: TaxSchemeType: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TaxSchemeTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TaxSchemeTypes.yaml index 5c3be0ad0a..dc3fbc6ec1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TaxSchemeTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TaxSchemeTypes.yaml @@ -13,8 +13,8 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ./TaxSchemeType + - ./TaxSchemeType + - linkml:types default_prefix: hc classes: ANBI: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Taxon.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Taxon.yaml index c4ff91f974..d19f2410cf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Taxon.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Taxon.yaml @@ -11,15 +11,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_score classes: Taxon: class_uri: schema:Taxon @@ -38,11 +33,10 @@ classes: slots: - has_or_had_label - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: has_or_had_label: - range: string +# range: string required: true examples: - value: Raphus cucullatus diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TaxonName.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TaxonName.yaml index 25ed5f5cd2..5f054fdd13 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TaxonName.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TaxonName.yaml @@ -8,9 +8,9 @@ prefixes: dwc: http://rs.tdwg.org/dwc/terms/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_label classes: TaxonName: class_uri: dwc:Taxon diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TaxonomicAuthority.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TaxonomicAuthority.yaml index db4ab02692..9ee84534d5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TaxonomicAuthority.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TaxonomicAuthority.yaml @@ -11,46 +11,15 @@ prefixes: schema: http://schema.org/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_author -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ./TaxonomicAuthority + - linkml:types + - ../slots/has_or_had_author + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/is_or_was_recombined + - ../slots/nomenclatural_code + - ../slots/basionym_authority default_prefix: hc -slots: - has_or_had_author: - slot_uri: schema:author - range: string - multivalued: true - description: 'Author name(s) for the taxonomic name. - May include multiple authors for co-authored descriptions. - ' - is_or_was_recombined: - slot_uri: hc:isOrWasRecombined - range: boolean - description: 'Whether the name has been recombined from its original genus. - Indicated by parentheses around the authority in zoological nomenclature. - Example: "(Gray, 1821)" indicates original genus differs. - ' - nomenclatural_code: - slot_uri: dwc:nomenclaturalCode - range: string - description: 'The nomenclatural code governing this name. - Values: ICZN, ICN, ICNP, ICVCN, etc. - ' - examples: - - value: ICZN - description: International Code of Zoological Nomenclature - - value: ICN - description: International Code of Nomenclature for algae, fungi, and plants - basionym_authority: - slot_uri: hc:basionymAuthority - range: TaxonomicAuthority - description: 'Authority of the original name (basionym) if this is a recombination. - The parenthetical authority in "(Gray, 1821) Smith, 1900". - ' - inlined: true classes: TaxonomicAuthority: class_uri: prov:Attribution @@ -64,12 +33,12 @@ classes: - dwc:scientificNameAuthorship - schema:CreativeWork slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_author slot_usage: - has_or_had_identifier: + identified_by: examples: - value: urn:lsid:zoobank.org:act:12345678-1234-1234-1234-123456789012 has_or_had_label: @@ -99,7 +68,7 @@ classes: - TaxonomicAuthority provides structured representation of authorship - The has_or_had_label slot holds the conventional formatted string - Use is_or_was_recombined to indicate parenthetical authorities - - Link to nomenclatural databases via has_or_had_identifier + - Link to nomenclatural databases via identified_by see_also: - https://www.iczn.org/ - https://www.iapt-taxon.org/nomen/main.php diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TechnicalFeature.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TechnicalFeature.yaml index 33b9cb30e2..e684a70197 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TechnicalFeature.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TechnicalFeature.yaml @@ -7,9 +7,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_type -- ./TechnicalFeatureType + - linkml:types + - ../slots/has_or_had_type classes: TechnicalFeature: class_uri: schema:PropertyValue @@ -18,7 +17,7 @@ classes: - has_or_had_type slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie close_mappings: - schema:PropertyValue annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TechnicalFeatureType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TechnicalFeatureType.yaml index bfc8613734..ba966d9199 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TechnicalFeatureType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TechnicalFeatureType.yaml @@ -5,17 +5,17 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: TechnicalFeatureType: description: Abstract base class for technical feature type taxonomy. Classifies the technical capabilities and features of digital platforms, APIs, and systems used by heritage institutions, such as search functionality, authentication methods, or export formats. class_uri: skos:Concept abstract: true slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TechnicalFeatureTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TechnicalFeatureTypes.yaml index 3ca8728b5b..006236ecd0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TechnicalFeatureTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TechnicalFeatureTypes.yaml @@ -4,8 +4,8 @@ prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ imports: -- linkml:types -- ./TechnicalFeatureType + - ./TechnicalFeatureType + - linkml:types classes: SearchFeature: is_a: TechnicalFeatureType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Technique.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Technique.yaml index 3fa548f148..3f8dc418db 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Technique.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Technique.yaml @@ -11,15 +11,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# aat: http://vocab.getty.edu/aat/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ../slots/includes_or_included -- ./TechniqueType -- ./TechniqueTypes -- ./Technique + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_type + - ../slots/includes_or_included default_prefix: hc classes: Technique: @@ -40,18 +37,18 @@ classes: related_mappings: - crm:E55_Type slots: - - has_or_had_identifier + - identified_by - has_or_had_type - has_or_had_label - has_or_had_description - includes_or_included slot_usage: - has_or_had_identifier: + identified_by: examples: - value: aat:300379752 - value: https://nde.nl/ontology/hc/technique/mauritshuis-670-1994-solvent-cleaning has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: SolventCleaning @@ -81,9 +78,9 @@ classes: ' includes_or_included: - range: string +# range: string multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: has_or_had_type: AqueousCleaning @@ -93,14 +90,14 @@ classes: - Technique represents a procedure or method applied in heritage activities - Always requires has_or_had_type to classify the technique - Use includes_or_included for complex multi-step procedures - - Link to vocabulary terms (AAT) via has_or_had_identifier when applicable + - Link to vocabulary terms (AAT) via identified_by when applicable see_also: - https://cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E29 - https://www.getty.edu/research/tools/vocabularies/aat/ - https://collectionstrust.org.uk/spectrum/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/technique/mauritshuis-670-1994-solvent-cleaning + identified_by: https://nde.nl/ontology/hc/technique/mauritshuis-670-1994-solvent-cleaning has_or_had_type: SolventCleaning has_or_had_label: Varnish removal with acetone/white spirit mixture has_or_had_description: 'Removal of discolored natural resin varnish from Girl with a Pearl Earring. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TechniqueType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TechniqueType.yaml index 85a4c59e2f..80a7c9d4d5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TechniqueType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TechniqueType.yaml @@ -43,10 +43,10 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ aat: http://vocab.getty.edu/aat/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label default_prefix: hc classes: TechniqueType: @@ -66,11 +66,11 @@ classes: - crm:E55_Type - aat:300264237 slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description slot_usage: - has_or_had_identifier: + identified_by: examples: - value: aat:300053052 has_or_had_label: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TechniqueTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TechniqueTypes.yaml index e681e72bef..f80f78d01b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TechniqueTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TechniqueTypes.yaml @@ -21,8 +21,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# aat: http://vocab.getty.edu/aat/ imports: -- linkml:types -- ./TechniqueType + - ./TechniqueType + - linkml:types default_prefix: hc classes: ConservationTechnique: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructure.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructure.yaml index e0a431780b..985a32cfe6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructure.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructure.yaml @@ -9,20 +9,18 @@ prefixes: spdx: http://spdx.org/rdf/terms# skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_type -- ../slots/has_or_had_version -- ../slots/includes_or_included -- ./TechnologicalInfrastructureType -- ./TechnologicalInfrastructureTypes + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_type + - ../slots/has_or_had_version + - ../slots/includes_or_included default_prefix: hc classes: TechnologicalInfrastructure: class_uri: doap:Project - description: "Structured representation of a technology component used in a digital platform.\n\n**MIGRATION from technology_stack**:\nThis class replaces the simple string-based `technology_stack` slot with a\nstructured model that provides:\n- Type classification via TechnologicalInfrastructureType hierarchy\n- Version tracking\n- Component composition (includes_or_included)\n- Rich descriptions and provenance\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `doap:Project` - DOAP vocabulary for software projects\n- **Close**: `schema:SoftwareApplication` - Schema.org software application\n- **Related**: `spdx:Package` - SPDX Software Bill of Materials\n\n**Example Usage**:\n```yaml\nhas_or_had_technological_infrastructure:\n - has_or_had_identifier: tech-react-frontend\n has_or_had_type: FrontendFramework\n has_or_had_label: React\n has_or_had_version: \"18.2.0\"\n has_or_had_description: Frontend JavaScript library for building user interfaces\n - has_or_had_identifier:\ + description: "Structured representation of a technology component used in a digital platform.\n\n**MIGRATION from technology_stack**:\nThis class replaces the simple string-based `technology_stack` slot with a\nstructured model that provides:\n- Type classification via TechnologicalInfrastructureType hierarchy\n- Version tracking\n- Component composition (includes_or_included)\n- Rich descriptions and provenance\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `doap:Project` - DOAP vocabulary for software projects\n- **Close**: `schema:SoftwareApplication` - Schema.org software application\n- **Related**: `spdx:Package` - SPDX Software Bill of Materials\n\n**Example Usage**:\n```yaml\nhas_or_had_technological_infrastructure:\n - identified_by: tech-react-frontend\n has_or_had_type: FrontendFramework\n has_or_had_label: React\n has_or_had_version: \"18.2.0\"\n has_or_had_description: Frontend JavaScript library for building user interfaces\n - identified_by:\ \ tech-django-backend\n has_or_had_type: BackendFramework\n has_or_had_label: Django\n has_or_had_version: \"4.2\"\n has_or_had_description: Python web framework for rapid development\n includes_or_included:\n - Django REST Framework\n - Django ORM\n```\n\n**Use Cases**:\n- Document platform technology stacks for heritage digital platforms\n- Track software versions for preservation and migration planning\n- Model component dependencies\n- Enable technology-based discovery of similar platforms\n" exact_mappings: - doap:Project @@ -31,21 +29,21 @@ classes: related_mappings: - spdx:Package slots: - - has_or_had_identifier + - identified_by - has_or_had_type - has_or_had_label - has_or_had_description - has_or_had_version - includes_or_included slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true examples: - value: tech-react-18-frontend - value: tech-postgresql-15-primary has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: FrontendFramework @@ -61,13 +59,13 @@ classes: examples: - value: Frontend JavaScript framework for collection browsing interface has_or_had_version: - range: string +# range: string examples: - value: 18.2.0 - value: 4.2 LTS - value: '15.4' includes_or_included: - range: string +# range: string multivalued: true examples: - value: Django REST Framework @@ -79,13 +77,13 @@ classes: - Supports version tracking for preservation planning examples: - value: - has_or_had_identifier: tech-react-18 + identified_by: tech-react-18 has_or_had_type: FrontendFramework has_or_had_label: React has_or_had_version: 18.2.0 has_or_had_description: Frontend JavaScript library for collection interface - value: - has_or_had_identifier: tech-django-backend + identified_by: tech-django-backend has_or_had_type: BackendFramework has_or_had_label: Python/Django has_or_had_version: '4.2' @@ -95,13 +93,13 @@ classes: - Django ORM - Celery - value: - has_or_had_identifier: tech-solr-search + identified_by: tech-solr-search has_or_had_type: SearchIndex has_or_had_label: Apache Solr has_or_had_version: '9.4' has_or_had_description: Full-text search indexing for collection discovery - value: - has_or_had_identifier: tech-fedora-repo + identified_by: tech-fedora-repo has_or_had_type: DigitalRepositorySystem has_or_had_label: Fedora Commons has_or_had_version: '6.5' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructureType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructureType.yaml index c716d6be56..89dd368c42 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructureType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructureType.yaml @@ -7,10 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# doap: http://usefulinc.com/ns/doap# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label default_prefix: hc classes: TechnologicalInfrastructureType: @@ -63,11 +63,11 @@ classes: close_mappings: - doap:Project slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructureTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructureTypes.yaml index fb510ae31a..aba7dff862 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructureTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructureTypes.yaml @@ -7,8 +7,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# doap: http://usefulinc.com/ns/doap# imports: -- linkml:types -- ./TechnologicalInfrastructureType + - ./TechnologicalInfrastructureType + - linkml:types default_prefix: hc classes: Framework: @@ -55,7 +55,7 @@ classes: Examples: Python, JavaScript, TypeScript, Java, Go, Ruby, PHP ' - exact_mappings: + close_mappings: - doap:programming-language broad_mappings: - skos:Concept @@ -207,9 +207,9 @@ classes: ' broad_mappings: - skos:Concept - ContentManagementSystem: + ContentManagementSystemType: is_a: TechnologicalInfrastructureType - class_uri: hc:ContentManagementSystem + class_uri: hc:ContentManagementSystemType description: 'Web content management system. Examples: WordPress, Drupal, Typo3, Omeka diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TelevisionArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TelevisionArchive.yaml index 23846014ce..a95bb26ce7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TelevisionArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TelevisionArchive.yaml @@ -8,38 +8,27 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecificityAnnotation -- ./TelevisionArchiveRecordSetType -- ./TelevisionArchiveRecordSetTypes -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_related_to classes: TelevisionArchive: description: A heritage custodian specialized in collecting, preserving, and providing access to television programs, recordings, and broadcasts. Television archives (Fernseharchive) maintain collections of broadcast content, including news programs, documentaries, entertainment shows, and other televisual materials that document broadcast history and cultural production. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q109326243 close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TelevisionArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TelevisionArchiveRecordSetType.yaml index 8c97c998c1..7c4b4c1dfd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TelevisionArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TelevisionArchiveRecordSetType.yaml @@ -8,12 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to classes: TelevisionArchiveRecordSetType: description: A rico:RecordSetType for classifying collections of television programs, recordings, and broadcast materials. @@ -28,7 +25,6 @@ classes: see_also: - TelevisionArchive slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TelevisionArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TelevisionArchiveRecordSetTypes.yaml index 7e6e8844b6..e3cfa73db9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TelevisionArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TelevisionArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TelevisionArchive -- ./TelevisionArchiveRecordSetType -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ./TelevisionArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: TelevisionBroadcastFonds: is_a: TelevisionArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Television program recordings.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept ProductionRecordSeries: is_a: TelevisionArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for TV production documentation.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ series \norganizational principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,16 +99,13 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by TelevisionArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept NewsFootageCollection: is_a: TelevisionArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for News broadcast archives.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -130,7 +116,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -151,6 +136,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by TelevisionArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TemperatureDeviation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TemperatureDeviation.yaml index cfb5afb22b..ed7d4460ee 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TemperatureDeviation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TemperatureDeviation.yaml @@ -11,13 +11,11 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_measurement_unit -- ../slots/has_or_had_quantity -- ./MeasureUnit -- ./Quantity + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_measurement_unit + - ../slots/has_or_had_quantity classes: TemperatureDeviation: class_uri: qudt:Tolerance @@ -37,8 +35,8 @@ classes: \ 2.0` lose important context: - What's the unit? (Celsius? Fahrenheit?) - Is\ \ this plus/minus or just plus? - What standard is this based on? - When was\ \ this tolerance established?\n**MIGRATION NOTE**:\nThis class replaces the\ - \ bespoke `temperature_tolerance` slot (float range). Used via the generic `allows_or_allowed`\ - \ slot per Rule 53/56.\n**EXAMPLE**:\n```yaml EnvironmentalZone:\n allows_or_allowed:\n\ + \ bespoke `temperature_tolerance` slot (float range). Used via the generic `allow`\ + \ slot per Rule 53/56.\n**EXAMPLE**:\n```yaml EnvironmentalZone:\n allow:\n\ \ - deviation_value: 2.0\n deviation_direction: PLUS_MINUS\n has_or_had_measurement_unit:\n\ \ has_or_had_type: DEGREE_CELSIUS\n has_or_had_symbol: \"°C\"\n\ \ iso_standard_reference: \"ISO 11799:2015\"\n```" @@ -60,7 +58,7 @@ classes: has_or_had_quantity: range: integer required: false - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_measurement_unit: @@ -75,19 +73,19 @@ classes: has_or_had_type: DEGREE_CELSIUS has_or_had_symbol: °C has_or_had_description: - range: string +# range: string required: false examples: - value: Tighter tolerance required for daguerreotype collection has_or_had_label: - range: string +# range: string required: false examples: - value: Archive Standard Tolerance - value: Cold Storage Precision Tolerance comments: - MIGRATED from temperature_tolerance slot (float) per Rule 53/56 - - Used via allows_or_allowed slot for temporal flexibility + - Used via allow slot for temporal flexibility - Companion to humidity_tolerance migration (HumidityDeviation class) - Setpoint class already handles target values - this handles deviations see_also: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TemplateSpecificityScore.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TemplateSpecificityScore.yaml index 00f6e35ded..49614419a0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TemplateSpecificityScore.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TemplateSpecificityScore.yaml @@ -7,11 +7,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types +# - ../slots/has_or_had_score + - ../slots/has_or_had_type classes: TemplateSpecificityScore: class_uri: schema:Rating diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TemplateSpecificityType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TemplateSpecificityType.yaml index a7d27605c1..f21d535401 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TemplateSpecificityType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TemplateSpecificityType.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: TemplateSpecificityType: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TemplateSpecificityTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TemplateSpecificityTypes.yaml index 14ccd08057..5301f076d0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TemplateSpecificityTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TemplateSpecificityTypes.yaml @@ -7,8 +7,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ./TemplateSpecificityType + - ./TemplateSpecificityType + - linkml:types classes: ArchiveSearchTemplate: is_a: TemplateSpecificityType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TemporaryLocation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TemporaryLocation.yaml index 395aa1dbee..a9432dc9dd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TemporaryLocation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TemporaryLocation.yaml @@ -2,32 +2,22 @@ id: https://nde.nl/ontology/hc/class/temporary-location name: temporary_location_class title: TemporaryLocation Class imports: -- linkml:types -- ../enums/TemporaryLocationReasonEnum -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_rationale -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_active -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/planned_end -- ../slots/planned_start -- ../slots/replaces_primary_location -- ../slots/serves_function_of -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./CustodianObservation -- ./Description -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan + - linkml:types + - ../enums/TemporaryLocationReasonEnum + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_rationale + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_active + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/planned_end + - ../slots/planned_start + - ../slots/replaces_primary_location + - ../slots/serves_function_of + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -54,7 +44,7 @@ classes: - crm:E7_Activity - schema:TemporaryLocation slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_rationale @@ -64,20 +54,19 @@ classes: - planned_start - replaces_primary_location - serves_function_of - - specificity_annotation - has_or_had_score - temporal_extent - is_or_was_derived_from - is_or_was_generated_by slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/stedelijk-temp-2020 has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -85,8 +74,8 @@ classes: - value: Rijksmuseum Pop-up Groningen - value: Emergency Collection Storage - Watersnood 2024 has_or_had_description: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: Temporary entrance during main entrance renovation. Access collections via garden entrance, Paulus Potterstraat side. @@ -101,7 +90,7 @@ classes: - value: POP_UP_PROGRAM - value: EMERGENCY has_or_had_rationale: - range: string +# range: string examples: - value: Main entrance renovation including new accessibility features. Expected completion Q4 2021. - value: Emergency relocation due to flooding at main depot on 2024-01-14. Extent of damage being assessed. @@ -139,7 +128,7 @@ classes: - value: true - value: false serves_function_of: - range: string +# range: string multivalued: true examples: - value: Public entrance @@ -163,7 +152,7 @@ classes: - http://www.cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E7 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/stedelijk-temp-2020 + identified_by: https://nde.nl/ontology/hc/aux/stedelijk-temp-2020 has_or_had_label: - Stedelijk Museum Temporary Entrance has_or_had_description: @@ -185,7 +174,7 @@ classes: - Public entrance - Ticket sales - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/rijksmuseum-popup-groningen + identified_by: https://nde.nl/ontology/hc/aux/rijksmuseum-popup-groningen has_or_had_label: - Rijksmuseum Pop-up Groningen has_or_had_description: @@ -204,7 +193,7 @@ classes: serves_function_of: - Exhibition space - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/emergency-storage-2024 + identified_by: https://nde.nl/ontology/hc/aux/emergency-storage-2024 has_or_had_label: - Emergency Collection Storage - Watersnood 2024 has_or_had_description: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TentativeWorldHeritageSite.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TentativeWorldHeritageSite.yaml index 3fb5c0e892..e5d653d416 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TentativeWorldHeritageSite.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TentativeWorldHeritageSite.yaml @@ -2,41 +2,32 @@ id: https://nde.nl/ontology/hc/class/TentativeWorldHeritageSite name: TentativeWorldHeritageSite title: TentativeWorldHeritageSite Type imports: -- linkml:types -- ../slots/custodian_only -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/label_de -- ../slots/label_es -- ../slots/label_fr -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/custodian_only + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to + - ../slots/label_de + - ../slots/label_es + - ../slots/label_fr + - ../slots/record_set_type classes: TentativeWorldHeritageSite: description: A site or property that has been submitted by a State Party to UNESCO for consideration as a future World Heritage Site. Tentative World Heritage Sites appear on the indicative list (Tentativliste) and represent cultural or natural heritage that may be nominated for full World Heritage status. In the heritage custodian context, this designates institutions managing sites on the tentative list. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: skos:Concept slots: - has_or_had_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:FeatureCustodianType"]' is_or_was_related_to: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Text.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Text.yaml index 89b0220b39..f2be1372cb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Text.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Text.yaml @@ -7,13 +7,11 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_provenance -- ../slots/is_or_was_created_through -- ./Concatenation -- ./Provenance + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_provenance + - ../slots/is_or_was_created_through default_prefix: hc classes: Text: @@ -25,7 +23,7 @@ classes: - is_or_was_created_through slot_usage: is_or_was_created_through: - range: string +# range: string required: false annotations: specificity_score: 0.1 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TextDirection.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TextDirection.yaml index c20db129ed..5300d18715 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TextDirection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TextDirection.yaml @@ -12,10 +12,10 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_code -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/has_or_had_code + - ../slots/has_or_had_label classes: TextDirection: class_uri: hc:TextDirection diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TextRegion.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TextRegion.yaml index 2f143203e4..f22e7beaa8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TextRegion.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TextRegion.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: TextRegion: class_uri: schema:ImageObject diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TextSegment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TextSegment.yaml index 7ca68b5901..de6db827f9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TextSegment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TextSegment.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: TextSegment: class_uri: schema:CreativeWork diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TextType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TextType.yaml index b792250121..1635b0d6d5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TextType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TextType.yaml @@ -14,20 +14,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TextType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score classes: TextType: class_uri: skos:Concept @@ -35,7 +29,7 @@ classes: \ - Bottom third of frame\n - Common in documentaries/news\n \n3. **SUBTITLE**: Burned-in captions\n - Translation or transcription\n - Bottom-centered text\n - Synchronized with speech\n \n4. **SIGN**: Physical signs in scene\n - Museum signage, room labels\n - Part of physical environment\n - Natural perspective\n \n5. **LABEL**: Exhibition labels\n - Object identification\n - Wall text, plaques\n - Heritage-specific content\n \n6. **DOCUMENT**: Text from documents\n - Letters, manuscripts, books\n - Historical documents shown\n - Often zoomed/highlighted\n \n7. **HANDWRITTEN**: Handwritten text\n - Manuscripts, notes, signatures\n - Requires specialized OCR\n - Historical significance\n \n8. **GRAPHIC**: Infographic text\n - Charts, timelines, diagrams\n - Data visualization\n - Designed presentation\n\n**OCR vs SUBTITLES**:\n\n| Type | Source | Processing |\n|------|--------|------------|\n| **OCR (TextType)** | Video frames |\ \ Image-to-text |\n| **Subtitles** | Audio track | Speech-to-text |\n\n**REPLACES**: TextTypeEnum from schemas/enums.yaml\n\n**ONTOLOGY ALIGNMENT**:\n\n- **SKOS Concept**: Text types form a controlled vocabulary\n- **CIDOC-CRM E55_Type**: Cultural heritage type system\n- **Schema.org TextDigitalDocument**: Text content\n\n**SUBCLASSES**:\n\nSee TextTypes.yaml for concrete text type subclasses:\n- TitleCardText\n- LowerThirdText \n- SubtitleText\n- SignText\n- LabelText\n- DocumentText\n- HandwrittenText\n- GraphicText\n- WatermarkText\n- UrlText\n- CreditsText\n- OtherText\n" abstract: true - exact_mappings: + broad_mappings: - skos:Concept close_mappings: - crm:E55_Type @@ -44,17 +38,16 @@ classes: - schema:TextDigitalDocument - schema:VideoObject slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code - has_or_had_hypernym - has_or_had_hyponym - - specificity_annotation - has_or_had_score slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/text-type/[a-z-]+$ @@ -62,7 +55,7 @@ classes: - value: https://nde.nl/ontology/hc/text-type/title-card - value: https://nde.nl/ontology/hc/text-type/lower-third has_or_had_code: - range: string +# range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ examples: @@ -72,7 +65,7 @@ classes: - value: DOCUMENT - value: HANDWRITTEN has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -83,7 +76,7 @@ classes: - Lower Third@en - Ondertitel@nl has_or_had_description: - range: string +# range: string required: false examples: - value: Opening or closing title text displayed as a full-screen card @@ -113,7 +106,7 @@ classes: - https://www.w3.org/2004/02/skos/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/text-type/lower-third + identified_by: https://nde.nl/ontology/hc/text-type/lower-third has_or_had_code: LOWER_THIRD has_or_had_label: - Lower Third@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TextTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TextTypes.yaml index c541e9aa01..87a66d47fa 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TextTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TextTypes.yaml @@ -7,12 +7,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ./TextType + - ./TextType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: TitleCardText: is_a: TextType @@ -48,12 +48,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/title-card) has_or_had_code: ifabsent: string(TITLE_CARD) @@ -100,12 +100,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/lower-third) has_or_had_code: ifabsent: string(LOWER_THIRD) @@ -145,12 +145,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/subtitle) has_or_had_code: ifabsent: string(SUBTITLE) @@ -196,12 +196,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/sign) has_or_had_code: ifabsent: string(SIGN) @@ -247,12 +247,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/label) has_or_had_code: ifabsent: string(LABEL) @@ -298,12 +298,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/document) has_or_had_code: ifabsent: string(DOCUMENT) @@ -360,12 +360,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/handwritten) has_or_had_code: ifabsent: string(HANDWRITTEN) @@ -411,12 +411,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/graphic) has_or_had_code: ifabsent: string(GRAPHIC) @@ -462,12 +462,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/watermark) has_or_had_code: ifabsent: string(WATERMARK) @@ -513,12 +513,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/url) has_or_had_code: ifabsent: string(URL) @@ -564,12 +564,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/credits) has_or_had_code: ifabsent: string(CREDITS) @@ -604,12 +604,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/other) has_or_had_code: ifabsent: string(OTHER) diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ThematicRoute.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ThematicRoute.yaml index b2b3122632..ec829730b3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ThematicRoute.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ThematicRoute.yaml @@ -1,27 +1,98 @@ id: https://nde.nl/ontology/hc/class/ThematicRoute name: ThematicRoute title: ThematicRoute -description: >- - A thematic route or path. - prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ - + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc - imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/route_description + - ../slots/route_id + - ../slots/route_keyword + - ../slots/route_relevance_to_heritage + - ../slots/route_title + - ../slots/has_or_had_score classes: ThematicRoute: - class_uri: schema:Guide - description: Thematic route. - annotations: - specificity_score: 0.1 - specificity_rationale: "Generic utility class created during migration" - custodian_types: '["*"]' - + class_uri: skos:Concept + description: 'A thematic area, route, or priority cluster within a funding agenda. + ThematicRoute represents a major area of focus that guides research priorities + and funding allocation. Routes are typically interdisciplinary and address + broad societal challenges. + **PURPOSE**: + Routes structure the agenda into navigable themes that: + - Help researchers identify relevant funding opportunities + - Guide funding organisations in designing calls + - Enable cross-referencing between agenda priorities and actual calls + **NAMING CONVENTIONS**: + Different agendas use different terminology: + - NWA: "Routes" (25 thematic routes) + - Horizon Europe: "Clusters" (6) and "Missions" (5) + - Creative Europe: "Strands" (3) + - National strategies: "Priority areas", "Themes", "Pillars" + - **SKOS**: `skos:Concept` - Thematic routes are concepts in a scheme + - Can be organised hierarchically (broader/narrower themes) + - Can be linked across agendas (similar themes in different frameworks) + ' + exact_mappings: + - skos:Concept + close_mappings: + - dcterms:subject slots: - - has_or_had_name + - route_description + - route_id + - route_keyword + - route_relevance_to_heritage + - route_title + - has_or_had_score + slot_usage: + route_id: + identifier: true + required: true +# range: string # uriorcurie + pattern: ^https://nde\.nl/ontology/hc/route/[a-z0-9-]+/[a-z0-9-]+$ + examples: + - value: https://nde.nl/ontology/hc/route/nwa/cultural-identity + - value: https://nde.nl/ontology/hc/route/he/cluster-2 + route_title: + required: true +# range: string + examples: + - value: Origin and Identity of the Netherlands and Its Inhabitants + - value: Culture, Creativity and Inclusive Society + route_description: +# range: string + route_keyword: +# range: string + multivalued: true + inlined_as_list: false # Fixed invalid inline for primitive type + route_relevance_to_heritage: +# range: string + comments: + - ThematicRoute represents a priority area within a FundingAgenda + - Uses SKOS vocabulary for concept representation + - Can be linked across agendas to show thematic alignment + - Heritage relevance field helps heritage sector navigate agendas + examples: + - value: + route_id: https://nde.nl/ontology/hc/route/nwa/cultural-identity + route_title: Origin and Identity of the Netherlands and Its Inhabitants + route_description: 'This route addresses questions about Dutch cultural heritage, national + identity, migration history, and cultural diversity. Research explores + how the Netherlands developed its unique cultural characteristics and + how identity is shaped and reshaped in an increasingly multicultural + society. + ' + route_keyword: + - cultural heritage + - national identity + - migration history + - cultural diversity + - collective memory + - museums + - archives + route_relevance_to_heritage: Directly relevant - this route explicitly addresses cultural heritage institutions, collections, and the role of heritage in identity formation. Museums and archives are key partners in NWA research on this theme. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ThinkingMode.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ThinkingMode.yaml index e683756b64..463b769e3f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ThinkingMode.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ThinkingMode.yaml @@ -8,16 +8,11 @@ prefixes: prov: http://www.w3.org/ns/prov# default_prefix: hc imports: -- linkml:types -- ../enums/ThinkingModeEnum -- ../slots/has_or_had_description -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../enums/ThinkingModeEnum + - ../slots/has_or_had_description + - ../slots/has_or_had_label + - ../slots/has_or_had_score classes: ThinkingMode: class_uri: schema:PropertyValue @@ -65,7 +60,6 @@ classes: slots: - has_or_had_label - has_or_had_description - - specificity_annotation - has_or_had_score slot_usage: has_or_had_label: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Threat.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Threat.yaml index 5d5594c104..02da124cbe 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Threat.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Threat.yaml @@ -5,9 +5,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_type -- ./ThreatType + - linkml:types + - ../slots/has_or_had_type classes: Threat: class_uri: hc:Threat diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ThreatType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ThreatType.yaml index 58d2dccc1a..0f70e95f8e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ThreatType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ThreatType.yaml @@ -12,10 +12,10 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: ThreatType: class_uri: skos:Concept @@ -29,7 +29,7 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ThreatTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ThreatTypes.yaml index 031887267d..347bdb6279 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ThreatTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ThreatTypes.yaml @@ -12,8 +12,8 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ./ThreatType + - ./ThreatType + - linkml:types classes: UrbanizationThreat: is_a: ThreatType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Thumbnail.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Thumbnail.yaml index 6cd98aa27a..c60ac766d7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Thumbnail.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Thumbnail.yaml @@ -9,12 +9,10 @@ prefixes: prov: http://www.w3.org/ns/prov# default_prefix: hc imports: -- linkml:types -- ../slots/derives_or_derived_from -- ../slots/has_or_had_time_interval -- ../slots/has_or_had_url -- ./TimeInterval -- ./Video + - linkml:types + - ../slots/derives_or_derived_from + - ../slots/has_or_had_time_interval + - ../slots/has_or_had_url classes: Thumbnail: class_uri: schema:ImageObject diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TimeEntry.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TimeEntry.yaml index 5e1ffa04dd..f8bc933414 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TimeEntry.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TimeEntry.yaml @@ -10,9 +10,8 @@ prefixes: time: http://www.w3.org/2006/time# crm: http://www.cidoc-crm.org/cidoc-crm/ imports: -- linkml:types -- ./TimeEntryType -default_range: string + - linkml:types +# default_range: string classes: TimeEntry: description: "Structured time entry from source data representing a temporal point\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TimeEntryType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TimeEntryType.yaml index 072ae4566d..438e416657 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TimeEntryType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TimeEntryType.yaml @@ -10,8 +10,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# time: http://www.w3.org/2006/time# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: TimeEntryType: description: "Type classification for time entry specifying the semantic role\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TimeInterval.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TimeInterval.yaml index b5344dcb9d..c717341ba0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TimeInterval.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TimeInterval.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: TimeInterval: description: 'A duration or interval of time, representing a period rather than diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TimeSlot.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TimeSlot.yaml index 04bdf73210..eb4e8057af 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TimeSlot.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TimeSlot.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# time: http://www.w3.org/2006/time# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: TimeSlot: description: "Day and time specification representing a specific point within\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TimeSpan.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TimeSpan.yaml index 4dfb5f7427..f10b4772a4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TimeSpan.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TimeSpan.yaml @@ -2,6 +2,7 @@ id: https://nde.nl/ontology/hc/class/TimeSpan name: timespan_class title: TimeSpan Class prefixes: + rov: http://www.w3.org/ns/regorg# linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ @@ -9,20 +10,14 @@ prefixes: time: http://www.w3.org/2006/time# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/begin_of_the_begin -- ../slots/begin_of_the_end -- ../slots/end_of_the_begin -- ../slots/end_of_the_end -- ../slots/has_or_had_notation -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./Timestamp -default_range: string + - linkml:types + - ../slots/begin_of_the_begin + - ../slots/begin_of_the_end + - ../slots/end_of_the_begin + - ../slots/end_of_the_end + - ../slots/has_or_had_notation + - ../slots/has_or_had_score +# default_range: string classes: TimeSpan: class_uri: crm:E52_Time-Span @@ -76,12 +71,11 @@ classes: - begin_of_the_end - end_of_the_begin - end_of_the_end - - specificity_annotation - has_or_had_score - has_or_had_notation slot_usage: has_or_had_notation: - range: string +# range: string required: false examples: - value: '1970-08-15' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TimeSpanType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TimeSpanType.yaml index c8901e091f..67bf2bb854 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TimeSpanType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TimeSpanType.yaml @@ -7,9 +7,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: TimeSpanType: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TimeSpanTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TimeSpanTypes.yaml index a1785d893c..eda7ba27e3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TimeSpanTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TimeSpanTypes.yaml @@ -7,8 +7,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ./TimeSpanType + - ./TimeSpanType + - linkml:types default_prefix: hc classes: FiscalYear: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TimespanBlock.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TimespanBlock.yaml index 521b011779..a90653b219 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TimespanBlock.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TimespanBlock.yaml @@ -10,12 +10,12 @@ prefixes: time: http://www.w3.org/2006/time# crm: http://www.cidoc-crm.org/cidoc-crm/ imports: -- linkml:types -- ../slots/begin_of_the_begin -- ../slots/begin_of_the_end -- ../slots/end_of_the_begin -- ../slots/end_of_the_end -default_range: string + - linkml:types + - ../slots/begin_of_the_begin + - ../slots/begin_of_the_end + - ../slots/end_of_the_begin + - ../slots/end_of_the_end +# default_range: string classes: TimespanBlock: description: "CIDOC-CRM E52 Time-Span temporal bounds with four-point fuzzy temporal\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Timestamp.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Timestamp.yaml index 6f8a45bba9..c8910ec118 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Timestamp.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Timestamp.yaml @@ -13,18 +13,12 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/complies_or_complied_with -- ../slots/has_or_had_level # was: timestamp_precision -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_timestamp # was: timestamp_value -- ../slots/specificity_annotation -- ./CalendarSystem -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/complies_or_complied_with + - ../slots/has_or_had_level # was: timestamp_precision + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_timestamp # was: timestamp_value classes: Timestamp: class_uri: time:Instant @@ -76,16 +70,15 @@ classes: - has_or_had_timestamp # was: timestamp_value - migrated per Rule 53 - has_or_had_level # was: timestamp_precision - migrated per Rule 53 - complies_or_complied_with # was: calendar_system - migrated 2026-01-22 - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: has_or_had_timestamp: # was: timestamp_value - migrated per Rule 53 - range: string +# range: string required: true pattern: "^-?\\d{4}(-\\d{2})?(-\\d{2})?(T\\d{2}:\\d{2}(:\\d{2})?(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$" has_or_had_level: # was: timestamp_precision - migrated per Rule 53 - range: string +# range: string required: false examples: - value: year @@ -95,6 +88,7 @@ classes: range: CalendarSystem required: false inlined: true + inlined_as_list: true examples: - value: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Title.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Title.yaml index 91488ecea9..1716864bf2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Title.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Title.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_language + - linkml:types + - ../slots/has_or_had_language classes: Title: class_uri: hc:Title diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TitleType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TitleType.yaml index 497bd87af9..8308308620 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TitleType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TitleType.yaml @@ -7,10 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: TitleType: class_uri: skos:Concept @@ -30,7 +30,7 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TitleTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TitleTypes.yaml index ea6882e5ee..b3a1eda6ad 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TitleTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TitleTypes.yaml @@ -6,8 +6,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ default_prefix: hc imports: -- linkml:types -- ./TitleType + - ./TitleType + - linkml:types classes: UniformTitle: is_a: TitleType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Token.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Token.yaml index 0d386781f0..5b8077776e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Token.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Token.yaml @@ -14,83 +14,59 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_quantity -- ../slots/has_or_had_type -- ./Quantity -- ./TokenType + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_quantity + - ../slots/has_or_had_type default_prefix: hc classes: Token: class_uri: schema:QuantitativeValue - description: "Token count representation for LLM API usage tracking.\n\n**Key Fields**:\n\n| Field | Description | Example |\n|-------|-------------|---------|\n| has_or_had_type | Type of token | CachedToken |\n| has_or_had_quantity | Count value | 50 (cached tokens) |\n\n**Schema.org Alignment**:\n\nMaps to `schema:QuantitativeValue` for numeric values with context.\n\n**Use Cases**:\n\n1. **Cached tokens**: Prompt tokens served from cache (reduced cost)\n2. **Reasoning tokens**: Chain-of-thought tokens (GLM 4.7, o1)\n3. **Input/Output tokens**: Standard prompt/completion counts\n\n**Migration History**:\n\n- v1.0.0: Simple class with token_type attribute\n- v1.1.0: Updated to use has_or_had_type \u2192 TokenType per Rule 53/56\n\n**Example (Cached Tokens)**:\n\n```yaml\nToken:\n has_or_had_type:\n has_or_had_identifier: hc:TokenType/CACHED\n has_or_had_label: Cached Token\n has_or_had_quantity:\n quantity_value: 50\n has_or_had_description: Tokens from provider cache\n\ - ```\n" + description: "Token count representation for LLM API usage tracking." exact_mappings: - schema:QuantitativeValue slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_type - has_or_had_quantity slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: false examples: - value: https://nde.nl/ontology/hc/token/llm-response-001-cached has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: false - inlined: true + # inlined: true # CANNOT inline string examples: - value: - has_or_had_identifier: hc:TokenType/CACHED + identified_by: hc:TokenType/CACHED has_or_had_label: Cached Token - value: - has_or_had_identifier: hc:TokenType/REASONING + identified_by: hc:TokenType/REASONING has_or_had_label: Reasoning Token has_or_had_quantity: range: integer required: false - inlined: true + # inlined: true # CANNOT inline integer examples: - value: has_or_had_description: Tokens served from cache has_or_had_label: - range: string +# range: string required: false examples: - value: Cached tokens for context window has_or_had_description: - range: string +# range: string required: false examples: - value: 50 prompt tokens served from provider KV cache - comments: - - Token models LLM token counts with type and quantity - - "Updated per Rule 53/56 to use has_or_had_type \u2192 TokenType" - - Replaces simple token_type string attribute - see_also: - - https://platform.openai.com/docs/api-reference/chat/object#usage - - https://docs.z.ai/guides/capabilities/thinking-mode - examples: - - value: - has_or_had_identifier: https://nde.nl/ontology/hc/token/example-cached-001 - has_or_had_type: - has_or_had_identifier: hc:TokenType/CACHED - has_or_had_label: Cached Token - has_or_had_quantity: - has_or_had_description: Prompt tokens from cache - has_or_had_description: 50 cached tokens reducing API cost - - value: - has_or_had_type: - has_or_had_identifier: hc:TokenType/REASONING - has_or_had_label: Reasoning Token - has_or_had_quantity: annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TokenType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TokenType.yaml index f0411473be..1443c78928 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TokenType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TokenType.yaml @@ -8,10 +8,10 @@ prefixes: schema: http://schema.org/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label default_prefix: hc classes: TokenType: @@ -66,25 +66,25 @@ classes: close_mappings: - schema:Enumeration slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true - range: uriorcurie +# range: string # uriorcurie examples: - value: hc:TokenType/INPUT has_or_had_label: required: true - range: string +# range: string examples: - value: Input Token - value: Cached Token has_or_had_description: required: false - range: string +# range: string comments: - Abstract base class for TokenTypes hierarchy - Follows Type/Types naming convention (Rule 0b) diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TokenTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TokenTypes.yaml index 37fac8000a..f7aae10d98 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TokenTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TokenTypes.yaml @@ -7,9 +7,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_label -- ./TokenType + - ./TokenType + - linkml:types + - ../slots/has_or_had_label default_prefix: hc classes: InputToken: @@ -29,7 +29,7 @@ classes: ifabsent: string(Input Token) examples: - value: - has_or_had_identifier: hc:TokenType/INPUT + identified_by: hc:TokenType/INPUT has_or_had_label: Input Token has_or_had_description: Tokens in the input prompt annotations: @@ -55,7 +55,7 @@ classes: ifabsent: string(Output Token) examples: - value: - has_or_had_identifier: hc:TokenType/OUTPUT + identified_by: hc:TokenType/OUTPUT has_or_had_label: Output Token has_or_had_description: Tokens in the completion response broad_mappings: @@ -86,7 +86,7 @@ classes: ifabsent: string(Cached Token) examples: - value: - has_or_had_identifier: hc:TokenType/CACHED + identified_by: hc:TokenType/CACHED has_or_had_label: Cached Token has_or_had_description: Tokens served from provider cache broad_mappings: @@ -117,7 +117,7 @@ classes: ifabsent: string(Reasoning Token) examples: - value: - has_or_had_identifier: hc:TokenType/REASONING + identified_by: hc:TokenType/REASONING has_or_had_label: Reasoning Token has_or_had_description: Tokens for chain-of-thought reasoning broad_mappings: @@ -137,7 +137,7 @@ classes: ifabsent: string(Total Token) examples: - value: - has_or_had_identifier: hc:TokenType/TOTAL + identified_by: hc:TokenType/TOTAL has_or_had_label: Total Token has_or_had_description: Sum of input and output tokens broad_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Topic.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Topic.yaml index fd4c47c871..4040935018 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Topic.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Topic.yaml @@ -12,21 +12,13 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_type -- ../slots/includes_or_included -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TopicType -- ./TopicTypes -- ./Topic + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_type + - ../slots/includes_or_included classes: Topic: class_uri: skos:Concept @@ -83,26 +75,23 @@ classes: - rico:hasOrHadSubject slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_type - includes_or_included - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: has_or_had_label: required: true multivalued: true - inlined: true has_or_had_type: - range: uriorcurie +# range: string # uriorcurie has_or_had_description: includes_or_included: - range: string +# range: string multivalued: true - inlined_as_list: true annotations: custodian_types: '["*"]' custodian_types_rationale: Subject topics are universal across all heritage custodian types. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TopicType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TopicType.yaml index 9514458e5a..20d35d4229 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TopicType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TopicType.yaml @@ -12,20 +12,14 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score # was: template_specificity -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TopicType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score # was: template_specificity classes: TopicType: class_uri: skos:Concept @@ -68,13 +62,12 @@ classes: tree_root: false slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code - has_or_had_hypernym - has_or_had_hyponym - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TopicTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TopicTypes.yaml index b74b403cab..454e012468 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TopicTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TopicTypes.yaml @@ -8,8 +8,8 @@ prefixes: dcterms: http://purl.org/dc/terms/ default_prefix: hc imports: -- linkml:types -- ./TopicType + - ./TopicType + - linkml:types classes: GenealogyTopic: is_a: TopicType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TrackIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TrackIdentifier.yaml index aff017adb1..d12b9deff2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TrackIdentifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TrackIdentifier.yaml @@ -5,11 +5,13 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_code + - linkml:types + - ../slots/has_or_had_code classes: TrackIdentifier: - class_uri: schema:identifier + class_uri: hc:TrackIdentifier + close_mappings: + - schema:identifier description: Identifier for audio/music tracks slots: - has_or_had_code diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TradeRegister.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TradeRegister.yaml index f004c172c1..d2044203a6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TradeRegister.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TradeRegister.yaml @@ -9,33 +9,22 @@ prefixes: schema: http://schema.org/ rov: http://www.w3.org/ns/regorg# imports: -- linkml:types -- ../classes/APIEndpoint -- ../enums/RegisterTypeEnum -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_endpoint -- ../slots/has_or_had_format -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_url -- ../slots/jurisdiction -- ../slots/maintained_by -- ../slots/register_abbreviation -- ../slots/register_id -- ../slots/register_name -- ../slots/register_name_local -- ../slots/register_type -- ../slots/specificity_annotation -- ./GLEIFIdentifier -- ./Jurisdiction -- ./RegistrationAuthority -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./URL -- ./APIEndpoint + - linkml:types + - ../enums/RegisterTypeEnum + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_endpoint + - ../slots/has_or_had_format + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_url + - ../slots/jurisdiction + - ../slots/maintained_by + - ../slots/register_abbreviation + - ../slots/register_id + - ../slots/register_name + - ../slots/register_name_local + - ../slots/register_type default_prefix: hc classes: TradeRegister: @@ -53,7 +42,7 @@ classes: slots: - has_or_had_endpoint - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_format - maintained_by - register_abbreviation @@ -61,7 +50,6 @@ classes: - register_name - register_name_local - register_type - - specificity_annotation - has_or_had_score - has_or_had_url slot_usage: @@ -80,13 +68,13 @@ classes: required: true maintained_by: required: true - has_or_had_identifier: + identified_by: range: GLEIFIdentifier inlined: true required: false has_or_had_url: range: uri - inlined: true + inlined: false # Fixed invalid inline for primitive type multivalued: false has_or_had_endpoint: range: APIEndpoint diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TradeUnionArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TradeUnionArchive.yaml index 0d53d95985..4cfb34aded 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TradeUnionArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TradeUnionArchive.yaml @@ -15,32 +15,21 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./CollectionType -- ./Scope -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TradeUnionArchiveRecordSetTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_related_to classes: TradeUnionArchive: description: An archive formed by the documentation of labor organizations, trade unions, and workers' movements. Trade union archives (Gewerkschaftsarchive) preserve records documenting the history of organized labor, including meeting minutes, correspondence, publications, photographs, and other materials relating to workers' rights, collective bargaining, strikes, and labor activism. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization exact_mappings: - wd:Q66604802 @@ -52,12 +41,11 @@ classes: slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null hold_or_held_record_set_type: equals_expression: '["hc:UnionAdministrationFonds", "hc:CollectiveBargainingSeries", "hc:StrikeDocumentationCollection", "hc:LaborPublicationsCollection", "hc:WorkersPhotographyCollection"] diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TradeUnionArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TradeUnionArchiveRecordSetType.yaml index 4bf44a9881..25026e9555 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TradeUnionArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TradeUnionArchiveRecordSetType.yaml @@ -8,14 +8,11 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./Scope + - linkml:types + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to classes: TradeUnionArchiveRecordSetType: abstract: true @@ -33,7 +30,6 @@ classes: - WorkersPhotographyCollection slots: - has_or_had_type - - specificity_annotation - has_or_had_score slot_usage: has_or_had_type: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TradeUnionArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TradeUnionArchiveRecordSetTypes.yaml index d99aa5a395..30198ae38d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TradeUnionArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TradeUnionArchiveRecordSetTypes.yaml @@ -11,23 +11,18 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/legal_note -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/preservation_note -- ../slots/record_note -- ../slots/record_set_type -- ../slots/scope_exclude -- ../slots/scope_include -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TradeUnionArchiveRecordSetType + - ./TradeUnionArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/legal_note + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/preservation_note + - ../slots/record_note + - ../slots/record_set_type + - ../slots/scope_exclude + - ../slots/scope_include classes: UnionAdministrationFonds: is_a: TradeUnionArchiveRecordSetType @@ -135,11 +130,10 @@ classes: - membership records - union governance - labor organization - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds - broad_mappings: - wd:Q1643722 - rico:RecordSetType - skos:Concept @@ -160,7 +154,6 @@ classes: custodian_types: '[''*'']' slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -292,11 +285,10 @@ classes: - labor contracts - wage agreements - industrial relations - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series - broad_mappings: - wd:Q185583 - rico:RecordSetType - skos:Concept @@ -308,7 +300,6 @@ classes: - rico-rst:Series slots: - has_or_had_type - - specificity_annotation - has_or_had_score - legal_note - organizational_principle @@ -453,11 +444,10 @@ classes: - work stoppages - February strike - Februaristaking - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q9388534 - rico:RecordSetType - skos:Concept @@ -476,7 +466,6 @@ classes: from participants and media coverage. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -617,11 +606,10 @@ classes: - union magazines - May Day - 1 mei - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q732577 - rico:RecordSetType - skos:Concept @@ -637,7 +625,6 @@ classes: History), university libraries, and specialized research libraries. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -796,11 +783,10 @@ classes: - labor movement images - industrial photography - worker portraits - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection - broad_mappings: - wd:Q1260006 - rico:RecordSetType - skos:Concept @@ -818,7 +804,6 @@ classes: longer exist. slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TraditionalProductType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TraditionalProductType.yaml index 8f883bc0a3..b793ee7da0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TraditionalProductType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TraditionalProductType.yaml @@ -12,17 +12,17 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: TraditionalProductType: class_uri: skos:Concept abstract: true description: Type of traditional product slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TraditionalProductTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TraditionalProductTypes.yaml index 406b55680e..082580bef5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TraditionalProductTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TraditionalProductTypes.yaml @@ -4,8 +4,8 @@ prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ imports: -- linkml:types -- ./TraditionalProductType + - ./TraditionalProductType + - linkml:types classes: FoodProduct: is_a: TraditionalProductType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TranscriptFormat.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TranscriptFormat.yaml index 37dc0fa9e0..2898069d4d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TranscriptFormat.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TranscriptFormat.yaml @@ -5,8 +5,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ dct: http://purl.org/dc/terms/ imports: -- linkml:types -- ../slots/has_or_had_format + - linkml:types + - ../slots/has_or_had_format classes: TranscriptFormat: class_uri: dct:MediaType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TransferEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TransferEvent.yaml index 08f5c2b53c..33f88572d1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TransferEvent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TransferEvent.yaml @@ -10,22 +10,13 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description # migrated from has_or_had_description per Rule 55 -- ../slots/has_or_had_policy -- ../slots/has_or_had_score # was: template_specificity -- ../slots/specificity_annotation -- ../slots/starts_or_started_at_location -- ../slots/temporal_extent -- ./Description -- ./Location -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./TransferPolicy + - linkml:types + - ../metadata + - ../slots/has_or_had_description # migrated from has_or_had_description per Rule 55 + - ../slots/has_or_had_policy + - ../slots/has_or_had_score # was: template_specificity + - ../slots/starts_or_started_at_location + - ../slots/temporal_extent classes: TransferEvent: class_uri: crm:E10_Transfer_of_Custody @@ -64,7 +55,6 @@ classes: - starts_or_started_at_location - has_or_had_description # was: has_or_had_description - has_or_had_policy - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: temporal_extent: @@ -76,9 +66,9 @@ classes: required: false inlined: true has_or_had_description: # was: has_or_had_description - range: string +# range: string required: false - inlined: true + inlined: false # Fixed invalid inline for primitive type has_or_had_policy: range: TransferPolicy required: false diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TransferPolicy.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TransferPolicy.yaml index 3c1a1483b2..9c91341ecb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TransferPolicy.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TransferPolicy.yaml @@ -12,19 +12,12 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description # migrated from has_or_had_description per Rule 55 -- ../slots/has_or_had_score # was: template_specificity -- ../slots/policy_name -- ../slots/policy_text -- ../slots/specificity_annotation -- ./Description -- ./Policy # Base class for all policies (added 2026-01-22) -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/has_or_had_description # migrated from has_or_had_description per Rule 55 + - ../slots/has_or_had_score # was: template_specificity + - ../slots/policy_name + - ../slots/policy_text classes: TransferPolicy: is_a: Policy # Added 2026-01-22 per condition_policy migration (Rule 53) @@ -61,20 +54,19 @@ classes: - policy_name - policy_text - has_or_had_description # was: has_or_had_description - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: policy_name: - range: string +# range: string required: false policy_text: - range: string +# range: string required: false has_or_had_description: # was: has_or_had_description - range: string +# range: string required: false - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TransitionType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TransitionType.yaml index 17f6640ca8..f629b04e0a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TransitionType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TransitionType.yaml @@ -10,20 +10,14 @@ prefixes: ebucore: http://www.ebu.ch/metadata/ontologies/ebucore/ebucore# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TransitionType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score classes: TransitionType: class_uri: skos:Concept @@ -40,17 +34,16 @@ classes: - schema:VideoObject - schema:MediaObject slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code - has_or_had_hypernym - has_or_had_hyponym - - specificity_annotation - has_or_had_score slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/transition-type/[a-z-]+$ @@ -58,7 +51,7 @@ classes: - value: https://nde.nl/ontology/hc/transition-type/cut - value: https://nde.nl/ontology/hc/transition-type/dissolve has_or_had_code: - range: string +# range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ examples: @@ -68,7 +61,7 @@ classes: - value: WIPE - value: MORPH has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -81,7 +74,7 @@ classes: - overgang@nl - "\xDCberblendung@de" has_or_had_description: - range: string +# range: string required: false examples: - value: Instantaneous transition between shots with no visual effect @@ -113,14 +106,14 @@ classes: - https://en.wikipedia.org/wiki/Film_transition examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/transition-type/cut + identified_by: https://nde.nl/ontology/hc/transition-type/cut has_or_had_code: CUT has_or_had_label: - Cut@en - snede@nl has_or_had_description: Instantaneous transition between shots with no visual effect - value: - has_or_had_identifier: https://nde.nl/ontology/hc/transition-type/dissolve + identified_by: https://nde.nl/ontology/hc/transition-type/dissolve has_or_had_code: DISSOLVE has_or_had_label: - Dissolve@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TransitionTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TransitionTypes.yaml index 5165e65815..62f4fb466b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TransitionTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TransitionTypes.yaml @@ -7,12 +7,12 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ./TransitionType + - ./TransitionType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: CutTransition: is_a: TransitionType @@ -46,12 +46,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/transition-type/cut) has_or_had_code: ifabsent: string(CUT) @@ -95,12 +95,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/transition-type/fade-in) has_or_had_code: ifabsent: string(FADE_IN) @@ -147,12 +147,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/transition-type/fade-out) has_or_had_code: ifabsent: string(FADE_OUT) @@ -199,12 +199,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/transition-type/dissolve) has_or_had_code: ifabsent: string(DISSOLVE) @@ -253,12 +253,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/transition-type/wipe) has_or_had_code: ifabsent: string(WIPE) @@ -305,12 +305,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/transition-type/morph) has_or_had_code: ifabsent: string(MORPH) @@ -357,12 +357,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/transition-type/flash) has_or_had_code: ifabsent: string(FLASH) @@ -398,12 +398,12 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/transition-type/other) has_or_had_code: ifabsent: string(OTHER) diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TransmissionMethod.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TransmissionMethod.yaml index 410e7e3d2a..1cb43614f3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TransmissionMethod.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TransmissionMethod.yaml @@ -8,9 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_label classes: TransmissionMethod: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Treatment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Treatment.yaml index 8a24bfc951..b4f0d645e1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Treatment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Treatment.yaml @@ -7,7 +7,7 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ default_prefix: hc imports: -- linkml:types + - linkml:types classes: Treatment: class_uri: crm:E11_Modification diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TreatmentType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TreatmentType.yaml index 7b277ec38a..7ebdaa97ef 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TreatmentType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TreatmentType.yaml @@ -10,22 +10,15 @@ prefixes: premis: http://www.loc.gov/premis/rdf/v3/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/is_or_was_equivalent_to -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier -- ./TreatmentType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/is_or_was_equivalent_to classes: TreatmentType: class_uri: skos:Concept @@ -41,18 +34,17 @@ classes: - crm:E11_Modification - premis:PreservationEvent slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code - has_or_had_hypernym - has_or_had_hyponym - is_or_was_equivalent_to - - specificity_annotation - has_or_had_score slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/treatment-type/[a-z-]+$ @@ -60,7 +52,7 @@ classes: - value: https://nde.nl/ontology/hc/treatment-type/cleaning - value: https://nde.nl/ontology/hc/treatment-type/stabilization has_or_had_code: - range: string +# range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ examples: @@ -70,7 +62,7 @@ classes: - value: PREVENTIVE - value: DEACIDIFICATION has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -82,7 +74,7 @@ classes: - Stabilization@en - stabilisatie@nl has_or_had_description: - range: string +# range: string required: false examples: - value: Surface cleaning treatment to remove dirt, grime, and surface accretions @@ -120,7 +112,7 @@ classes: - http://www.cidoc-crm.org/cidoc-crm/E11_Modification examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/treatment-type/cleaning + identified_by: https://nde.nl/ontology/hc/treatment-type/cleaning has_or_had_code: CLEANING has_or_had_label: - Cleaning@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TreatmentTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TreatmentTypes.yaml index a32b985179..221d6b0717 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TreatmentTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TreatmentTypes.yaml @@ -8,9 +8,9 @@ prefixes: aat: http://vocab.getty.edu/aat/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ./TreatmentType + - ./TreatmentType + - linkml:types + - ../slots/has_or_had_code classes: CleaningTreatment: is_a: TreatmentType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Type.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Type.yaml index 2266602535..37e7e954f9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Type.yaml @@ -3,8 +3,8 @@ name: Type title: Type description: A generic type. imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: Type: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/TypeStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/TypeStatus.yaml index 57ecafb26f..a9aa1dea99 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/TypeStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/TypeStatus.yaml @@ -12,9 +12,9 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_label classes: TypeStatus: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/UNESCODomain.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/UNESCODomain.yaml index 4bcb3693c1..d3448d419a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/UNESCODomain.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/UNESCODomain.yaml @@ -5,9 +5,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_type -- ./UNESCODomainType + - linkml:types + - ../slots/has_or_had_type classes: UNESCODomain: class_uri: skos:Concept @@ -18,7 +17,7 @@ classes: - has_or_had_type slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/UNESCODomainType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/UNESCODomainType.yaml index 9501c335d4..e54efad122 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/UNESCODomainType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/UNESCODomainType.yaml @@ -5,10 +5,10 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: UNESCODomainType: class_uri: skos:Concept @@ -29,7 +29,7 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/UNESCODomainTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/UNESCODomainTypes.yaml index 00c9b6192f..f454cfcde2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/UNESCODomainTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/UNESCODomainTypes.yaml @@ -4,8 +4,8 @@ prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ imports: -- linkml:types -- ./UNESCODomainType + - ./UNESCODomainType + - linkml:types classes: OralTraditions: is_a: UNESCODomainType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/UNESCOListStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/UNESCOListStatus.yaml index 0a06beb668..6376192c2c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/UNESCOListStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/UNESCOListStatus.yaml @@ -7,8 +7,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code + - linkml:types + - ../slots/has_or_had_code classes: UNESCOListStatus: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/URL.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/URL.yaml index f3ce38c38b..38fe9d731a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/URL.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/URL.yaml @@ -12,17 +12,12 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_type # was: url_type -- ../slots/has_or_had_url # was: url_value -- ../slots/language -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_type # was: url_type + - ../slots/has_or_had_url # was: url_value + - ../slots/language classes: URL: class_uri: schema:URL @@ -64,7 +59,6 @@ classes: - has_or_had_url # was: url_value - migrated 2026-01-16 per Rule 53 - has_or_had_type # was: url_type - migrated 2026-01-16 per Rule 53 - language - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: @@ -72,10 +66,10 @@ classes: range: uri required: true has_or_had_type: # was: url_type - migrated 2026-01-16 per Rule 53 - range: string +# range: string required: false language: - range: string +# range: string required: false pattern: "^[a-z]{2}(-[A-Z]{2})?$" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/URLType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/URLType.yaml index 6d1438e8c6..51c9571838 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/URLType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/URLType.yaml @@ -8,10 +8,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/identified_by + - ../slots/has_or_had_label classes: URLType: class_uri: skos:Concept @@ -21,7 +21,7 @@ classes: **Ontology Alignment**: - **Primary**: `skos:Concept`' slots: - has_or_had_label - - has_or_had_identifier + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/URLTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/URLTypes.yaml index bfed548826..749254f6b2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/URLTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/URLTypes.yaml @@ -6,8 +6,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ default_prefix: hc imports: -- linkml:types -- ./URLType + - ./URLType + - linkml:types classes: LinkedInProfileURL: is_a: URLType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/UnescoIchElement.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/UnescoIchElement.yaml index 6d8a8456df..82279f1bcf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/UnescoIchElement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/UnescoIchElement.yaml @@ -9,9 +9,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../enums/WikidataListTypeEnum -default_range: string + - linkml:types + - ../enums/WikidataListTypeEnum +# default_range: string classes: UnescoIchElement: description: "A UNESCO Intangible Cultural Heritage (ICH) element, representing\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/UnescoIchEnrichment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/UnescoIchEnrichment.yaml index aea1361255..82a7ca4e24 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/UnescoIchEnrichment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/UnescoIchEnrichment.yaml @@ -13,9 +13,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ./UnescoIchElement -default_range: string + - linkml:types +# default_range: string classes: UnescoIchEnrichment: description: "UNESCO Intangible Cultural Heritage (ICH) elements for a country.\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Unit.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Unit.yaml index 0b89830c18..2314d15d05 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Unit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Unit.yaml @@ -7,9 +7,9 @@ prefixes: qudt: http://qudt.org/schema/qudt/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_label -default_range: string + - linkml:types + - ../slots/has_or_had_label +# default_range: string default_prefix: hc classes: Unit: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/UnitIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/UnitIdentifier.yaml index 8dc71bd23a..7f2399ae5d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/UnitIdentifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/UnitIdentifier.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code + - linkml:types + - ../slots/has_or_had_code classes: UnitIdentifier: class_uri: hc:UnitIdentifier @@ -32,7 +32,7 @@ classes: - has_or_had_code slot_usage: has_or_had_code: - range: string +# range: string required: true examples: - value: BOX-2024-00145 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/University.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/University.yaml index 679170d053..027aca7306 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/University.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/University.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_name + - linkml:types + - ../slots/has_or_had_name classes: University: class_uri: schema:CollegeOrUniversity diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/UniversityArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/UniversityArchive.yaml index 073904cb4f..b057e4712c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/UniversityArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/UniversityArchive.yaml @@ -15,39 +15,27 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_founded_through -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./FoundingEvent -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./UniversityArchiveRecordSetType -- ./UniversityArchiveRecordSetTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_founded_through + - ../slots/is_or_was_related_to classes: UniversityArchive: description: "A collection of historical records of a college or university. University archives (Universit\xE4tsarchive)\ \ preserve the institutional memory of higher education institutions, including administrative records, faculty papers,\ \ student records, photographs, publications, and other documentation of academic life and institutional history." - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by - is_or_was_founded_through exact_mappings: - wd:Q2496264 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/UniversityArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/UniversityArchiveRecordSetType.yaml index 15fb1d33c0..ca1d059a62 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/UniversityArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/UniversityArchiveRecordSetType.yaml @@ -8,12 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to classes: UniversityArchiveRecordSetType: description: A rico:RecordSetType for classifying collections of university and college historical records and institutional documentation. @@ -28,7 +25,6 @@ classes: see_also: - UniversityArchive slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/UniversityArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/UniversityArchiveRecordSetTypes.yaml index dd2846abf7..7a13374cc0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/UniversityArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/UniversityArchiveRecordSetTypes.yaml @@ -17,21 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./UniversityArchive -- ./UniversityArchiveRecordSetType + - ./UniversityArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: UniversityAdministrationFonds: is_a: UniversityArchiveRecordSetType @@ -39,7 +33,7 @@ classes: description: "A rico:RecordSetType for University administrative records.\n\n\ **RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following\ \ the fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -50,7 +44,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -75,16 +68,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept StudentRecordSeries: is_a: UniversityArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Student records.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the series \norganizational\ \ principle as defined by rico-rst:Series.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Series @@ -95,7 +85,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -118,16 +107,13 @@ classes: Inverse of rico:isOrWasHolderOf. annotations: custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept FacultyPapersCollection: is_a: UniversityArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Faculty personal papers.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -138,7 +124,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -161,6 +146,3 @@ classes: Inverse of rico:isOrWasHolderOf. annotations: custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/UnspecifiedType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/UnspecifiedType.yaml index effc6c9a41..4a97fbb304 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/UnspecifiedType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/UnspecifiedType.yaml @@ -7,21 +7,14 @@ description: 'Specialized CustodianType for heritage custodians where the instit Coverage: Corresponds to ''U'' (UNKNOWN) in GLAMORCUBESFIXPHDNT taxonomy. ' imports: -- linkml:types -- ../slots/asserts_or_asserted -- ../slots/has_or_had_score -- ../slots/has_or_had_status -- ../slots/has_or_had_type -- ../slots/is_or_was_based_on -- ../slots/review_status -- ../slots/specificity_annotation -- ./ClassificationStatus -- ./CustodianType -- ./Hypothesis -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - ../classes/AgentType + - linkml:types + - ../slots/assert + - ../slots/has_or_had_score + - ../slots/has_or_had_status + - ../slots/has_or_had_type + - ../slots/is_or_was_based_on + - ../slots/review_status prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -148,14 +141,14 @@ classes: - has_or_had_type - is_or_was_based_on - review_status - - specificity_annotation - has_or_had_score - - asserts_or_asserted + - assert slot_usage: has_or_had_status: - range: ClassificationStatus +# range: string # uriorcurie + # range: ClassificationStatus required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_type: @@ -171,16 +164,17 @@ classes: has_or_had_description: Type transitional - merger in progress - value: Website offline, Phone disconnected, No email response - value: 'Conflicting sources: museum vs. archive' - asserts_or_asserted: - range: Hypothesis + assert: +# range: string # uriorcurie + # range: Hypothesis multivalued: true required: false - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - value: is_or_was_based_on: - range: string +# range: string multivalued: true required: true examples: @@ -188,7 +182,7 @@ classes: - value: Website checked (offline), Email sent (no response) - value: Wikidata search, ICOM directory, Regional museum review_status: - range: string +# range: string required: true examples: - value: Requires specialist research, Low priority, Consider removing diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/UpdateFrequency.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/UpdateFrequency.yaml index 32c8599522..7d73e6695b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/UpdateFrequency.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/UpdateFrequency.yaml @@ -15,12 +15,10 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_quantity -- ../slots/has_or_had_time_interval -- ./Quantity -- ./TimeInterval -default_range: string + - linkml:types + - ../slots/has_or_had_quantity + - ../slots/has_or_had_time_interval +# default_range: string classes: UpdateFrequency: description: 'Structured representation of how often a device, system, or data @@ -49,8 +47,8 @@ classes: class_uri: dcterms:Frequency exact_mappings: - dcterms:Frequency - - dcat:frequency close_mappings: + - dcat:frequency - schema:Schedule related_mappings: - time:TemporalEntity @@ -60,7 +58,7 @@ classes: slot_usage: has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: "has_or_had_quantity:\n numeric_value: 5\n has_or_had_measurement_unit:\n\ \ has_or_had_symbol: \"updates\"\n" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/UseCase.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/UseCase.yaml index 07a9e763e0..9e11627483 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/UseCase.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/UseCase.yaml @@ -16,24 +16,21 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_example -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/specificity_annotation -- ./Example + - linkml:types + - ../slots/has_or_had_description + - ../slots/has_or_had_example + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score default_prefix: hc classes: UseCase: description: Describes a practical application or scenario. slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_example - - specificity_annotation - has_or_had_score slot_usage: has_or_had_example: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/UserCommunity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/UserCommunity.yaml index d74880b76d..c4b386ae5b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/UserCommunity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/UserCommunity.yaml @@ -7,9 +7,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_type -- ./UserCommunityType + - linkml:types + - ../slots/has_or_had_type classes: UserCommunity: class_uri: schema:Audience @@ -19,7 +18,7 @@ classes: - has_or_had_type slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie exact_mappings: - schema:Audience annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/UserCommunityType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/UserCommunityType.yaml index 6309282021..dd65de8abf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/UserCommunityType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/UserCommunityType.yaml @@ -7,10 +7,10 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: UserCommunityType: class_uri: skos:Concept @@ -32,7 +32,7 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/UserCommunityTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/UserCommunityTypes.yaml index 0aca296274..93ca775fe1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/UserCommunityTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/UserCommunityTypes.yaml @@ -6,8 +6,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ default_prefix: hc imports: -- linkml:types -- ./UserCommunityType + - ./UserCommunityType + - linkml:types classes: ResearchCommunity: is_a: UserCommunityType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ValidationMetadata.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ValidationMetadata.yaml index 1c68154b5b..66f86c2813 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ValidationMetadata.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ValidationMetadata.yaml @@ -15,8 +15,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: ValidationMetadata: description: "Metadata about claim validation including model, convention, timestamp,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ValidationStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ValidationStatus.yaml index 66632623f9..969c9efe2f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ValidationStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ValidationStatus.yaml @@ -7,9 +7,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_label classes: ValidationStatus: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Value.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Value.yaml index 386379277d..b84811200d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Value.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Value.yaml @@ -18,8 +18,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_value classes: Value: class_uri: schema:StructuredValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VariantType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VariantType.yaml index 69ebdd3451..762a4c6a81 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VariantType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VariantType.yaml @@ -9,10 +9,10 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_label + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_label default_prefix: hc classes: @@ -51,13 +51,13 @@ classes: slot_usage: has_or_had_label: - range: string +# range: string required: true examples: - value: "Abbreviation" - value: "Synonym" has_or_had_description: - range: string +# range: string required: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VariantTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VariantTypes.yaml index a1f5beedf2..58b05a2956 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VariantTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VariantTypes.yaml @@ -7,9 +7,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# schema: http://schema.org/ imports: -- linkml:types -- ../metadata -- ./VariantType + - ./VariantType + - linkml:types + - ../metadata default_prefix: hc classes: AbbreviationVariant: @@ -27,12 +27,12 @@ classes: - skos:Concept SynonymVariant: is_a: VariantType - class_uri: skos:altLabel + class_uri: hc:SynonymVariant description: "Synonym or alternative term with equivalent meaning.\n\n**Use Cases**:\n\ - Role title synonyms (\"Curator\" / \"Keeper\" / \"Conservator\")\n- Technical\ \ synonyms\n- Cross-cultural equivalents\n\n**Example**:\n```yaml\nhas_or_had_type:\n\ \ - has_or_had_label: \"Keeper\"\n has_or_had_type: SynonymVariant\n```\n" - exact_mappings: + close_mappings: - skos:altLabel annotations: specificity_score: 0.4 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Ventilation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Ventilation.yaml index e15344af1a..2357110b8c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Ventilation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Ventilation.yaml @@ -14,9 +14,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/requires_or_required -- ./AirChanges + - linkml:types + - ../slots/requires_or_required classes: Ventilation: class_uri: schema:Thing diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Venue.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Venue.yaml index 75498f5f41..4dc71eebce 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Venue.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Venue.yaml @@ -5,9 +5,8 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_type -- ./VenueType + - linkml:types + - ../slots/has_or_had_type classes: Venue: class_uri: schema:Place @@ -30,7 +29,7 @@ classes: - has_or_had_type slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VenueType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VenueType.yaml index 96984bcdd0..f3a9585a6e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VenueType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VenueType.yaml @@ -5,10 +5,10 @@ prefixes: hc: https://nde.nl/ontology/hc/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label classes: VenueType: class_uri: skos:Concept @@ -26,7 +26,7 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VenueTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VenueTypes.yaml index e07a20f6da..ea9f6a9483 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VenueTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VenueTypes.yaml @@ -4,8 +4,8 @@ prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ imports: -- linkml:types -- ./VenueType + - ./VenueType + - linkml:types classes: MuseumVenue: is_a: VenueType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Vereinsarchiv.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Vereinsarchiv.yaml index 9c38a29ba6..7e30f6add5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Vereinsarchiv.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Vereinsarchiv.yaml @@ -7,38 +7,28 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/custodian_type -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/label_de -- ../slots/legal_form -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./VereinsarchivRecordSetType -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/custodian_type + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to + - ../slots/label_de + - ../slots/legal_form + - ../slots/record_set_type classes: Vereinsarchiv: description: An archive of a German association or club (Verein). Vereinsarchive preserve the historical records of voluntary associations, societies, clubs, and similar membership organizations in German-speaking countries. These archives document the activities, governance, membership, and cultural contributions of civil society organizations. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: skos:Concept exact_mappings: - wd:Q130758889 slots: - has_or_had_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by slot_usage: has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' @@ -51,11 +41,6 @@ classes: equals_string: Vereinsarchiv custodian_type: equals_expression: 'true' - attributes: - range: string - range: string - legal_form: - range: string see_also: - AssociationArchive - ClubArchive diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VereinsarchivRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VereinsarchivRecordSetType.yaml index a3c2e084dc..d2ef0cf642 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VereinsarchivRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VereinsarchivRecordSetType.yaml @@ -15,15 +15,12 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/is_or_was_applicable_in -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikiDataIdentifier -- ./WikidataAlignment + - ./WikidataAlignment + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/is_or_was_applicable_in + - ../slots/is_or_was_related_to classes: VereinsarchivRecordSetType: description: A rico:RecordSetType for classifying collections from German association and club archives. @@ -32,10 +29,9 @@ classes: exact_mappings: - wd:Q130758889 slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by - is_or_was_applicable_in slot_usage: is_or_was_related_to: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VerificationStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VerificationStatus.yaml index aea0797a1b..5ee1924ed9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VerificationStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VerificationStatus.yaml @@ -8,7 +8,7 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types + - linkml:types classes: VerificationStatus: class_uri: skos:Concept @@ -26,7 +26,7 @@ classes: - Approval status ' - exact_mappings: + broad_mappings: - skos:Concept annotations: specificity_score: '0.40' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Verifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Verifier.yaml index 2244c8b2f3..d42091629c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Verifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Verifier.yaml @@ -7,7 +7,7 @@ prefixes: prov: http://www.w3.org/ns/prov# default_prefix: hc imports: -- linkml:types + - linkml:types classes: Verifier: class_uri: prov:Agent diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Verlagsarchiv.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Verlagsarchiv.yaml index 41234b5f3a..511be5bc14 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Verlagsarchiv.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Verlagsarchiv.yaml @@ -7,39 +7,29 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/custodian_type -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/label_de -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./VerlagsarchivRecordSetType -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/custodian_type + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to + - ../slots/label_de + - ../slots/record_set_type classes: Verlagsarchiv: description: An archive of a publishing house (Verlag). Verlagsarchive preserve the historical records of publishing companies in German-speaking countries, including correspondence with authors, manuscript submissions, editorial files, contracts, marketing materials, and documentation of book production and distribution activities. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: skos:Concept exact_mappings: - wd:Q130759004 slots: - has_or_had_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by slot_usage: has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VerlagsarchivRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VerlagsarchivRecordSetType.yaml index a05195eb9f..8ed4d805e1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VerlagsarchivRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VerlagsarchivRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikiDataIdentifier -- ./WikidataAlignment + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to classes: VerlagsarchivRecordSetType: description: A rico:RecordSetType for classifying collections from German publishing house archives. @@ -24,10 +20,9 @@ classes: exact_mappings: - wd:Q130759004 slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by slot_usage: is_or_was_related_to: range: WikidataAlignment diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Version.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Version.yaml index f6dddc1caf..1c2da23242 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Version.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Version.yaml @@ -8,11 +8,10 @@ prefixes: prov: http://www.w3.org/ns/prov# doap: http://usefulinc.com/ns/doap# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/temporal_extent -- ./TimeSpan + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/temporal_extent default_prefix: hc classes: Version: @@ -44,8 +43,9 @@ classes: **Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53). Replaces simple string cms_product_version with structured Version class. exact_mappings: - - schema:version - doap:Version + close_mappings: + - schema:version slots: - temporal_extent slot_usage: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VersionNumber.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VersionNumber.yaml index c0cc0ebcdc..98516d85c9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VersionNumber.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VersionNumber.yaml @@ -7,11 +7,11 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_version + - linkml:types + - ../slots/has_or_had_version classes: VersionNumber: - class_uri: schema:version + class_uri: hc:VersionNumber description: 'A version number or identifier. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Verwaltungsarchiv.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Verwaltungsarchiv.yaml index 378883554f..ebfcf1f55d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Verwaltungsarchiv.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Verwaltungsarchiv.yaml @@ -7,40 +7,28 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../classes/GovernmentHierarchy -- ../slots/custodian_type -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/is_or_was_part_of -- ../slots/is_or_was_related_to -- ../slots/label_de -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./VerwaltungsarchivRecordSetType -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment -- ./GovernmentHierarchy + - ../classes/AgentType + - linkml:types + - ../slots/custodian_type + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/is_or_was_part_of + - ../slots/is_or_was_related_to + - ../slots/label_de + - ../slots/record_set_type classes: Verwaltungsarchiv: description: An administrative archive (Verwaltungsarchiv) that preserves records created in the course of administrative activities. These archives hold documentation of organizational management, bureaucratic processes, policy implementation, and administrative decision-making, typically from government agencies or large organizations. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: skos:Concept exact_mappings: - wd:Q2519292 slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by - is_or_was_part_of slot_usage: is_or_was_part_of: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VerwaltungsarchivRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VerwaltungsarchivRecordSetType.yaml index fffde9d2d8..e07bd399c6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VerwaltungsarchivRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VerwaltungsarchivRecordSetType.yaml @@ -8,14 +8,10 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikiDataIdentifier -- ./WikidataAlignment + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to classes: VerwaltungsarchivRecordSetType: description: A rico:RecordSetType for classifying collections of administrative records and bureaucratic documentation. @@ -24,10 +20,9 @@ classes: exact_mappings: - wd:Q2519292 slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by slot_usage: is_or_was_related_to: range: WikidataAlignment diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ViabilityStatus.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ViabilityStatus.yaml index 68d35b7bf9..e8bdd93080 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ViabilityStatus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ViabilityStatus.yaml @@ -14,9 +14,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_label + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_label classes: ViabilityStatus: class_uri: skos:Concept @@ -37,7 +37,7 @@ classes: slots: - has_or_had_code - has_or_had_label - exact_mappings: + broad_mappings: - skos:Concept annotations: specificity_score: '0.55' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Video.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Video.yaml index e097a2c46f..13b385b35a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Video.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Video.yaml @@ -8,11 +8,10 @@ prefixes: ma: http://www.w3.org/ns/ma-ont# dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_url -- ./Label + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_url default_prefix: hc classes: Video: @@ -81,7 +80,7 @@ classes: ' slots: - has_or_had_url - - has_or_had_identifier + - identified_by - has_or_had_label slot_usage: has_or_had_url: @@ -89,12 +88,12 @@ classes: examples: - value: https://www.youtube.com/watch?v=ABC123def45 - value: https://vimeo.com/123456789 - has_or_had_identifier: + identified_by: examples: - value: has_or_had_label: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type exact_mappings: - ma:MediaResource close_mappings: @@ -108,7 +107,7 @@ classes: examples: - value: has_or_had_url: https://www.youtube.com/watch?v=dQw4w9WgXcQ - has_or_had_identifier: + identified_by: has_or_had_label: has_or_had_label: Rijksmuseum Virtual Tour 2024 language: en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VideoAnnotation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VideoAnnotation.yaml index de7bbc6e7f..0fc58205d7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VideoAnnotation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VideoAnnotation.yaml @@ -2,39 +2,22 @@ id: https://nde.nl/ontology/hc/class/VideoAnnotation name: video_annotation_class title: Video Annotation Class imports: -- linkml:types -- ../enums/AnnotationTypeEnum -- ../slots/analyzes_or_analyzed -- ../slots/contains_or_contained -- ../slots/filters_or_filtered -- ../slots/has_or_had_quantity -- ../slots/has_or_had_rationale -- ../slots/has_or_had_score -- ../slots/has_or_had_treshold -- ../slots/has_or_had_type -- ../slots/has_or_had_unit -- ../slots/includes_bounding_box -- ../slots/includes_segmentation_mask -- ../slots/keyframe_extraction -- ../slots/model_architecture -- ../slots/model_task -- ../slots/specificity_annotation -- ./AnnotationMotivationType -- ./AnnotationMotivationTypes -- ./DetectedEntity -- ./DetectionThreshold -- ./Quantity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./Unit -- ./VideoFrame -- ./VideoTextContent -- ./VideoTimeSegment -- ./Segment -- ./AnnotationType -- ./Rationale + - linkml:types + - ../enums/AnnotationTypeEnum + - ../slots/analyze + - ../slots/contains_or_contained + - ../slots/filters_or_filtered + - ../slots/has_or_had_quantity + - ../slots/has_or_had_rationale + - ../slots/has_or_had_score + - ../slots/has_or_had_treshold + - ../slots/has_or_had_type + - ../slots/has_or_had_unit + - ../slots/includes_bounding_box + - ../slots/includes_segmentation_mask + - ../slots/keyframe_extraction + - ../slots/model_architecture + - ../slots/model_task prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -51,7 +34,7 @@ classes: class_uri: oa:Annotation abstract: true description: "Abstract base class for computer vision and multimodal video annotations.\n\n**DEFINITION**:\n\nVideoAnnotation represents structured information derived from visual\nanalysis of video content. This includes:\n\n| Subclass | Analysis Type | Output |\n|----------|---------------|--------|\n| VideoSceneAnnotation | Shot/scene detection | Scene boundaries, types |\n| VideoObjectAnnotation | Object detection | Objects, faces, logos |\n| VideoOCRAnnotation | Text extraction | On-screen text (OCR) |\n\n**RELATIONSHIP TO W3C WEB ANNOTATION**:\n\nVideoAnnotation aligns with the W3C Web Annotation Data Model:\n\n```turtle\n:annotation a oa:Annotation ;\n oa:hasBody :detection_result ;\n oa:hasTarget [\n oa:hasSource :video ;\n oa:hasSelector [\n a oa:FragmentSelector ;\n dcterms:conformsTo ;\n rdf:value \"t=30,35\"\n ]\n ] ;\n oa:motivatedBy oa:classifying .\n```\n\n**FRAME-BASED\ - \ ANALYSIS**:\n\nUnlike audio transcription (continuous stream), video annotation is\ntypically frame-based:\n\n- `frame_sample_rate`: Frames analyzed per second (e.g., 1 fps, 5 fps)\n- `analyzes_or_analyzed`: Total frames processed\n- Higher sample rates = more detections but higher compute cost\n\n**DETECTION THRESHOLDS**:\n\nCV models output confidence scores. Thresholds filter noise:\n\n| Threshold | Use Case |\n|-----------|----------|\n| 0.9+ | High precision, production display |\n| 0.7-0.9 | Balanced, general use |\n| 0.5-0.7 | High recall, research/review |\n| < 0.5 | Raw output, needs filtering |\n\n**MODEL ARCHITECTURE TRACKING**:\n\nDifferent model architectures have different characteristics:\n\n| Architecture | Examples | Strengths |\n|--------------|----------|-----------|\n| CNN | ResNet, VGG | Fast inference, good for objects |\n| Transformer | ViT, CLIP | Better context, multimodal |\n| Hybrid | DETR, Swin | Balance of speed and accuracy |\n\n**HERITAGE INSTITUTION\ + \ ANALYSIS**:\n\nUnlike audio transcription (continuous stream), video annotation is\ntypically frame-based:\n\n- `frame_sample_rate`: Frames analyzed per second (e.g., 1 fps, 5 fps)\n- `analyze`: Total frames processed\n- Higher sample rates = more detections but higher compute cost\n\n**DETECTION THRESHOLDS**:\n\nCV models output confidence scores. Thresholds filter noise:\n\n| Threshold | Use Case |\n|-----------|----------|\n| 0.9+ | High precision, production display |\n| 0.7-0.9 | Balanced, general use |\n| 0.5-0.7 | High recall, research/review |\n| < 0.5 | Raw output, needs filtering |\n\n**MODEL ARCHITECTURE TRACKING**:\n\nDifferent model architectures have different characteristics:\n\n| Architecture | Examples | Strengths |\n|--------------|----------|-----------|\n| CNN | ResNet, VGG | Fast inference, good for objects |\n| Transformer | ViT, CLIP | Better context, multimodal |\n| Hybrid | DETR, Swin | Balance of speed and accuracy |\n\n**HERITAGE INSTITUTION\ \ CONTEXT**:\n\nVideo annotations enable:\n- **Discovery**: Find videos containing specific objects/artworks\n- **Accessibility**: Scene descriptions for visually impaired\n- **Research**: Analyze visual content at scale\n- **Preservation**: Document visual content as text\n- **Linking**: Connect detected artworks to collection records\n\n**CIDOC-CRM E13_Attribute_Assignment**:\n\nAnnotations are attribute assignments - asserting properties about\nvideo segments. The CV model or human annotator is the assigning agent.\n" exact_mappings: - oa:Annotation @@ -70,28 +53,27 @@ classes: - keyframe_extraction - model_architecture - model_task - - specificity_annotation - has_or_had_score - - analyzes_or_analyzed + - analyze slot_usage: has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: has_or_had_code: OBJECT_DETECTION has_or_had_label: Object Detection contains_or_contained: - range: string +# range: string multivalued: true required: false - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: has_or_had_label: Night Watch painting visible has_or_had_description: 30.0 - 35.0 seconds has_or_had_rationale: - range: string +# range: string required: false examples: - value: @@ -111,7 +93,7 @@ classes: has_or_had_unit: has_or_had_treshold: has_or_had_label: High Precision - analyzes_or_analyzed: + analyze: description: "MIGRATED 2026-01-22: Now supports VideoFrame class for frame_sample_rate migration.\n\nFrame analysis information including:\n- Total frames analyzed (integer, legacy pattern)\n- Frame sample rate and analysis parameters (VideoFrame class)\n\nMIGRATED SLOTS:\n- frame_sample_rate \u2192 VideoFrame.has_or_had_quantity with unit \"samples per second\"\n" range: VideoFrame inlined: true @@ -129,13 +111,13 @@ classes: examples: - value: true model_architecture: - range: string +# range: string required: false examples: - value: Transformer - value: CNN model_task: - range: string +# range: string required: false examples: - value: detection diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VideoAnnotationTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VideoAnnotationTypes.yaml index d1c3b2ff52..6119228d89 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VideoAnnotationTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VideoAnnotationTypes.yaml @@ -2,75 +2,48 @@ id: https://nde.nl/ontology/hc/class/VideoAnnotationTypes name: video_annotation_types title: Video Annotation Types imports: -- linkml:types -- ../enums/DetectionLevelEnum -- ../enums/SceneTypeEnum -- ../slots/contains_or_contained -- ../slots/filters_or_filtered -- ../slots/has_or_had_confidence -- ../slots/has_or_had_geometric_extent -- ../slots/has_or_had_language -- ../slots/has_or_had_level -- ../slots/has_or_had_provenance -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/includes_handwriting -- ../slots/includes_object_tracking -- ../slots/includes_or_included -- ../slots/is_or_was_visible_in -- ../slots/is_recognized -- ../slots/landmark_confidence -- ../slots/landmark_geonames_id -- ../slots/landmark_label -- ../slots/landmark_segment -- ../slots/landmark_wikidata_id -- ../slots/linked_to_collection -- ../slots/logo_confidence -- ../slots/logo_label -- ../slots/logo_organization -- ../slots/logo_segment -- ../slots/object_classes_detected -- ../slots/object_collection_id -- ../slots/object_confidence -- ../slots/object_label -- ../slots/object_segment -- ../slots/object_wikidata_id -- ../slots/person_id -- ../slots/recognized_person_name -- ../slots/region_confidence -- ../slots/region_language -- ../slots/region_text -- ../slots/region_type -- ../slots/scene_count -- ../slots/scene_types_detected -- ../slots/specificity_annotation -- ./BoundingBox -- ./Confidence -- ./ConfidenceLevel -- ./DetectedEntity -- ./DetectedFace -- ./DetectedLandmark -- ./DetectedLogo -- ./DetectedObject -- ./DetectionLevelType -- ./DetectionLevelTypes -- ./Language -- ./MediaObject -- ./MediaSegment -- ./Methodology -- ./Provenance -- ./Quantity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TextType -- ./TimeSpan -- ./TransitionType -- ./VideoAnnotation -- ./VideoTimeSegment -- ./TextRegion + - linkml:types + - ../enums/DetectionLevelEnum + - ../enums/SceneTypeEnum + - ../slots/contains_or_contained + - ../slots/filters_or_filtered + - ../slots/has_or_had_confidence + - ../slots/has_or_had_geometric_extent + - ../slots/has_or_had_language + - ../slots/has_or_had_level + - ../slots/has_or_had_provenance + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/includes_handwriting + - ../slots/includes_object_tracking + - ../slots/includes_or_included + - ../slots/is_or_was_visible_in + - ../slots/is_recognized + - ../slots/landmark_confidence + - ../slots/landmark_geonames_id + - ../slots/landmark_label + - ../slots/landmark_segment + - ../slots/landmark_wikidata_id + - ../slots/linked_to_collection + - ../slots/logo_confidence + - ../slots/logo_label + - ../slots/logo_organization + - ../slots/logo_segment + - ../slots/object_classes_detected + - ../slots/object_collection_id + - ../slots/object_confidence + - ../slots/object_label + - ../slots/object_segment + - ../slots/object_wikidata_id + - ../slots/person_id + - ../slots/recognized_person_name + - ../slots/region_confidence + - ../slots/region_language + - ../slots/region_text + - ../slots/region_type + - ../slots/scene_count + - ../slots/scene_types_detected prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -141,15 +114,14 @@ classes: - scene_count - contains_or_contained - scene_types_detected - - specificity_annotation - has_or_had_score - has_or_had_type slot_usage: contains_or_contained: - range: string +# range: string multivalued: true required: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: '[{start_seconds: 0.0, end_seconds: 15.5, segment_text: ''Opening titles''}]' @@ -183,17 +155,17 @@ classes: examples: - value: '[INTERIOR, CLOSEUP, INTERVIEW]' has_or_had_type: - range: uriorcurie +# range: string # uriorcurie multivalued: true required: false - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: '[{has_or_had_label: "CUT"}, {has_or_had_label: "FADE_IN"}]' has_or_had_quantity: range: integer required: false multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_numeric_value: 42 @@ -263,7 +235,6 @@ classes: - includes_object_tracking - linked_to_collection - object_classes_detected - - specificity_annotation - has_or_had_score slot_usage: contains_or_contained: @@ -280,7 +251,7 @@ classes: range: integer multivalued: true required: false - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: has_or_had_measurement_unit: @@ -296,7 +267,7 @@ classes: has_or_had_label: ArcFace clustering confidence_threshold: 0.6 object_classes_detected: - range: string +# range: string multivalued: true required: false examples: @@ -374,7 +345,6 @@ classes: - has_or_had_confidence - has_or_had_quantity - includes_handwriting - - specificity_annotation - has_or_had_score - has_or_had_language - contains_or_contained @@ -396,7 +366,7 @@ classes: range: integer multivalued: true required: false - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: has_or_had_measurement_unit: @@ -419,10 +389,10 @@ classes: - value: has_or_had_value: 0.68 contains_or_contained: - range: string +# range: string multivalued: true required: false - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: '[{text: ''Welcome'', bbox: [0.1, 0.9, 0.4, 0.1], type: ''OVERLAY''}]' comments: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VideoAudioAnnotation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VideoAudioAnnotation.yaml index a34820d5fd..0ddbfed11a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VideoAudioAnnotation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VideoAudioAnnotation.yaml @@ -2,67 +2,48 @@ id: https://nde.nl/ontology/hc/class/VideoAudioAnnotation name: video_audio_annotation_class title: Video Audio Annotation Class imports: -- linkml:types -- ../enums/AudioEventTypeEnum -- ../enums/MusicTypeEnum -- ../enums/SoundEventTypeEnum -- ../slots/contains_or_contained -- ../slots/end_of_the_end -- ../slots/has_audio_quality_score -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_provenance -- ../slots/has_or_had_score -- ../slots/has_or_had_segment -- ../slots/has_or_had_type -- ../slots/is_background -- ../slots/is_or_was_diarized -- ../slots/is_overlapping -- ../slots/languages_detected -- ../slots/music_confidence -- ../slots/music_detected -- ../slots/music_end_seconds -- ../slots/music_genre -- ../slots/music_genres_detected -- ../slots/music_segment_confidence -- ../slots/music_start_seconds -- ../slots/music_type -- ../slots/noise_floor_db -- ../slots/segment_confidence -- ../slots/segment_end_seconds -- ../slots/segment_language -- ../slots/segment_start_seconds -- ../slots/silence_total_seconds -- ../slots/snr_db -- ../slots/sound_events_detected -- ../slots/speaker_count -- ../slots/speaker_id -- ../slots/speaker_label -- ../slots/specificity_annotation -- ../slots/speech_detected -- ../slots/speech_language -- ../slots/speech_language_confidence -- ../slots/speech_text -- ../slots/start_of_the_start -- ../slots/temporal_extent -- ./AudioEventSegment -- ./ConfidenceScore -- ./DiarizationStatus -- ./Identifier -- ./Label -- ./Provenance -- ./Speaker -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Timestamp -- ./VideoAnnotation -- ./VideoAudioAnnotation -- ./VideoTimeSegment -- ./DiarizationSegment -- ./MusicSegment + - linkml:types + - ../enums/AudioEventTypeEnum + - ../enums/MusicTypeEnum + - ../enums/SoundEventTypeEnum + - ../slots/contains_or_contained + - ../slots/end_of_the_end + - ../slots/has_audio_quality_score + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_provenance + - ../slots/has_or_had_score + - ../slots/has_or_had_segment + - ../slots/has_or_had_type + - ../slots/is_background + - ../slots/is_or_was_diarized + - ../slots/is_overlapping + - ../slots/languages_detected + - ../slots/music_confidence + - ../slots/music_detected + - ../slots/music_end_seconds + - ../slots/music_genre + - ../slots/music_genres_detected + - ../slots/music_segment_confidence + - ../slots/music_start_seconds + - ../slots/music_type + - ../slots/noise_floor_db + - ../slots/segment_confidence + - ../slots/segment_end_seconds + - ../slots/segment_language + - ../slots/segment_start_seconds + - ../slots/silence_total_seconds + - ../slots/snr_db + - ../slots/sound_events_detected + - ../slots/speaker_count + - ../slots/speaker_id + - ../slots/speaker_label + - ../slots/speech_detected + - ../slots/speech_language + - ../slots/speech_language_confidence + - ../slots/speech_text + - ../slots/start_of_the_start + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -110,7 +91,6 @@ classes: - sound_events_detected - speaker_count - speaker_label - - specificity_annotation - speech_detected - speech_language - speech_language_confidence @@ -126,17 +106,17 @@ classes: - value: '[{has_or_had_type: SPEECH, start_seconds: 0.0, end_seconds: 15.0, segment_text: "Speech detected - Speaker 1", confidence: 0.95}]' - value: '[{has_or_had_type: MUSIC, start_seconds: 30.0, end_seconds: 60.0, segment_text: "Background classical music", confidence: 0.88}]' contains_or_contained: - range: string +# range: string multivalued: true required: false - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: temporal_extent: begin_of_the_begin: 0.0 end_of_the_end: 15.0 contains_or_contained: - has_or_had_identifier: spk_001 + identified_by: spk_001 has_or_had_label: Curator speaker_count: range: integer @@ -145,7 +125,7 @@ classes: examples: - value: 3 speaker_label: - range: string +# range: string multivalued: true required: false examples: @@ -156,7 +136,7 @@ classes: examples: - value: true music_genres_detected: - range: string +# range: string multivalued: true required: false examples: @@ -236,7 +216,6 @@ classes: - segment_start_seconds - speaker_id - speaker_label - - specificity_annotation - speech_text - has_or_had_score slot_usage: @@ -249,13 +228,13 @@ classes: required: true minimum_value: 0.0 speaker_id: - range: string +# range: string required: false speaker_label: - range: string +# range: string required: false segment_language: - range: string +# range: string required: false segment_confidence: range: float @@ -263,7 +242,7 @@ classes: minimum_value: 0.0 maximum_value: 1.0 speech_text: - range: string +# range: string required: false DiarizationSegment: class_uri: hc:DiarizationSegment @@ -275,7 +254,6 @@ classes: - temporal_extent - contains_or_contained - is_overlapping - - specificity_annotation - has_or_had_score slot_usage: temporal_extent: @@ -304,7 +282,6 @@ classes: - music_segment_confidence - music_start_seconds - music_type - - specificity_annotation - has_or_had_score slot_usage: music_start_seconds: @@ -319,7 +296,7 @@ classes: range: MusicTypeEnum required: false music_genre: - range: string +# range: string required: false music_segment_confidence: range: float diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VideoCategoryIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VideoCategoryIdentifier.yaml index 7f81276bf5..3385bfc7f1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VideoCategoryIdentifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VideoCategoryIdentifier.yaml @@ -14,11 +14,11 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code + - linkml:types + - ../slots/has_or_had_code classes: VideoCategoryIdentifier: - class_uri: schema:identifier + class_uri: hc:VideoCategoryIdentifier description: 'An identifier for a video category. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VideoChapter.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VideoChapter.yaml index b8051915b1..f955ccb89d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VideoChapter.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VideoChapter.yaml @@ -2,29 +2,22 @@ id: https://nde.nl/ontology/hc/class/VideoChapter name: video_chapter_class title: Video Chapter Class imports: -- linkml:types -- ../enums/ChapterSourceEnum -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_parent -- ../slots/has_or_had_score -- ../slots/has_or_had_sequence_index -- ../slots/has_or_had_source -- ../slots/has_or_had_thumbnail -- ../slots/is_or_was_created_through -- ../slots/nesting_level -- ../slots/specificity_annotation -- ./AutoGeneration -- ./Label -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./Thumbnail -- ./TimeInterval -- ./Video -- ./VideoTimeSegment + - linkml:types + - ../enums/ChapterSourceEnum + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_parent + - ../slots/has_or_had_score + - ../slots/has_or_had_sequence_index + - ../slots/has_or_had_source + - ../slots/has_or_had_thumbnail + - ../slots/is_or_was_created_through + - ../slots/nesting_level + - ../slots/start_time + - ../slots/end_time + - ../slots/start_seconds + - ../slots/end_seconds prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -82,22 +75,21 @@ classes: slots: - is_or_was_created_through - has_or_had_description - - has_or_had_identifier + - identified_by - has_or_had_sequence_index - has_or_had_source - has_or_had_thumbnail - has_or_had_label - nesting_level - has_or_had_parent - - specificity_annotation - has_or_had_score - start_time - end_time - start_seconds - end_seconds slot_usage: - has_or_had_identifier: - range: string + identified_by: +# range: string required: true examples: - value: ABC123_chapter_0 @@ -121,7 +113,7 @@ classes: - value: 0 - value: 5 has_or_had_description: - range: string +# range: string required: false examples: - value: Dr. Dibbits discusses the restoration of Rembrandt's masterpiece, @@ -152,7 +144,7 @@ classes: duration_description: 'Frame at 2:02.5 (was chapter_thumbnail_timestamp: 122.5)' has_or_had_parent: - range: string +# range: string required: false examples: - value: ABC123_chapter_0 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VideoChapterList.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VideoChapterList.yaml index 5c15993e5d..f2c8fef116 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VideoChapterList.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VideoChapterList.yaml @@ -2,26 +2,14 @@ id: https://nde.nl/ontology/hc/class/VideoChapterList name: video_chapter_list_class title: Video Chapter List Class imports: -- linkml:types -- ../slots/covers_full_video -- ../slots/has_or_had_chapter -- ../slots/has_or_had_identifier -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_source -- ../slots/is_or_was_generated_by -- ../slots/specificity_annotation -- ./GenerationEvent -- ./Provenance -- ./Quantity -- ./Source -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./VideoChapter -- ./VideoIdentifier + - linkml:types + - ../slots/covers_full_video + - ../slots/has_or_had_chapter + - ../slots/identified_by + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_source + - ../slots/is_or_was_generated_by prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -54,11 +42,10 @@ classes: - has_or_had_source - covers_full_video - has_or_had_quantity - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: range: VideoIdentifier required: true inlined: true @@ -72,7 +59,7 @@ classes: has_or_had_quantity: range: integer required: false - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_measurement_unit: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VideoFrame.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VideoFrame.yaml index 1013d43bcc..f811f0df9a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VideoFrame.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VideoFrame.yaml @@ -7,11 +7,9 @@ prefixes: schema: http://schema.org/ oa: http://www.w3.org/ns/oa# imports: -- linkml:types -- ../slots/has_or_had_quantity -- ../slots/has_or_had_unit -- ./Quantity -- ./Unit + - linkml:types + - ../slots/has_or_had_quantity + - ../slots/has_or_had_unit default_prefix: hc classes: VideoFrame: @@ -71,7 +69,7 @@ classes: slot_usage: has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type multivalued: false examples: - value: 'has_or_had_unit: @@ -79,8 +77,8 @@ classes: ' - value: "has_or_had_unit:\n has_or_had_label:\n - label_text: \"frames per second\"\n" has_or_had_unit: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["D"]' custodian_types_rationale: Video frames are primarily relevant for digital platforms (D) that host or process video @@ -93,5 +91,5 @@ classes: - value: "VideoFrame:\n has_or_had_quantity:\n has_or_had_unit:\n" comments: - Created from slot_fixes.yaml migration (2026-01-22) - - Use with analyzes_or_analyzed slot to track frame analysis + - Use with analyze slot to track frame analysis - Sample rate affects both coverage and compute cost diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VideoFrames.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VideoFrames.yaml index 7bc914c6c2..19ad89e818 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VideoFrames.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VideoFrames.yaml @@ -5,10 +5,9 @@ prefixes: hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ imports: -- linkml:types -- ../slots/has_or_had_measurement_unit -- ../slots/has_or_had_quantity -- ./MeasureUnit + - linkml:types + - ../slots/has_or_had_measurement_unit + - ../slots/has_or_had_quantity classes: VideoFrames: class_uri: schema:QuantitativeValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VideoIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VideoIdentifier.yaml index dd4d02c6ba..0ec5057acd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VideoIdentifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VideoIdentifier.yaml @@ -7,11 +7,11 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code + - linkml:types + - ../slots/has_or_had_code classes: VideoIdentifier: - class_uri: schema:identifier + class_uri: hc:VideoIdentifier description: 'An identifier for a video resource. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VideoPost.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VideoPost.yaml index 231099ccc6..983054b13e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VideoPost.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VideoPost.yaml @@ -2,55 +2,35 @@ id: https://nde.nl/ontology/hc/class/VideoPost name: video_post_class title: Video Post Class imports: -- linkml:types -- ../slots/has_or_had_author -- ../slots/has_or_had_caption -- ../slots/has_or_had_comment -- ../slots/has_or_had_comment # was: video_comment -- ../slots/has_or_had_content -- ../slots/has_or_had_degree -- ../slots/has_or_had_identifier -- ../slots/has_or_had_language -- ../slots/has_or_had_quantity -- ../slots/has_or_had_reply -- ../slots/has_or_had_resolution -- ../slots/has_or_had_score -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_status -- ../slots/has_or_had_time_interval -- ../slots/is_embeddable -- ../slots/is_licensed_content -- ../slots/is_made_for_kid -- ../slots/is_or_was_appreciated -- ../slots/is_or_was_dismissed -- ../slots/is_or_was_last_updated_at -- ../slots/is_or_was_part_of_total -- ../slots/language -- ../slots/like_count -- ../slots/live_broadcast_content -- ../slots/metrics_observed_at -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./AspectRatio -- ./SocialMediaPost -- ./SocialMediaPostTypes -- ./CommentReply -- ./AppreciationEvent -- ./Author -- ./Caption -- ./Content -- ./DismissalEvent -- ./Identifier -- ./Language -- ./Quantity -- ./Resolution -- ./SourceCommentCount -- ./Status -- ./TimeInterval -- ./TimeSpan -- ./Timestamp -- ./VideoCategoryIdentifier -- ../enums/LiveBroadcastStatusEnum + - linkml:types + - ../slots/has_or_had_author + - ../slots/has_or_had_caption + - ../slots/has_or_had_comment + - ../slots/has_or_had_comment # was: video_comment + - ../slots/has_or_had_content + - ../slots/has_or_had_degree + - ../slots/identified_by + - ../slots/has_or_had_language + - ../slots/has_or_had_quantity + - ../slots/has_or_had_reply + - ../slots/has_or_had_resolution + - ../slots/has_or_had_score + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_status + - ../slots/has_or_had_time_interval + - ../slots/is_embeddable + - ../slots/is_licensed_content + - ../slots/is_made_for_kid + - ../slots/is_or_was_appreciated + - ../slots/is_or_was_dismissed + - ../slots/is_or_was_last_updated_at + - ../slots/is_or_was_part_of_total + - ../slots/language + - ../slots/like_count + - ../slots/live_broadcast_content + - ../slots/metrics_observed_at + - ../slots/temporal_extent + - ../enums/LiveBroadcastStatusEnum default_prefix: hc classes: VideoPost: @@ -74,9 +54,8 @@ classes: - like_count - live_broadcast_content - metrics_observed_at - - specificity_annotation - has_or_had_score - - has_or_had_identifier + - identified_by - has_or_had_comment - has_or_had_quantity slot_usage: @@ -169,7 +148,7 @@ classes: # description: Captions available in Dutch, English, German has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: @@ -232,7 +211,7 @@ classes: # description: 'YouTube: People & Blogs' # - value: '27' # description: 'YouTube: Education' - has_or_had_identifier: + identified_by: range: VideoCategoryIdentifier multivalued: true required: false @@ -263,7 +242,7 @@ classes: # examples: # - value: 0 # description: No comments fetched - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_timestamp: "2025-12-01T23:16:22Z" @@ -289,22 +268,23 @@ classes: - https://www.w3.org/ns/activitystreams#Video - https://schema.org/VideoObject - https://developers.google.com/youtube/v3/docs/videos + VideoComment: class_uri: schema:Comment - description: 'A comment on a video post. + description: >- + A comment on a video post. Models user-generated comments with author, text, timestamp, and engagement metrics. Supports nested reply threads. - ' exact_mappings: - schema:Comment - as:Note slots: # MIGRATED 2026-01-18: comment_author → has_or_had_author + Author (Rule 53) - has_or_had_author - # MIGRATED 2026-01-22: comment_author_channel_id → has_or_had_identifier + DigitalPlatformUserIdentifier (Rule 53) - # NOTE: has_or_had_identifier already present - used for both comment_id and comment_author_channel_id - # REMOVED 2026-01-18: comment_id - migrated to has_or_had_identifier + Identifier (Rule 53) - - has_or_had_identifier + # MIGRATED 2026-01-22: comment_author_channel_id → identified_by + DigitalPlatformUserIdentifier (Rule 53) + # NOTE: identified_by already present - used for both comment_id and comment_author_channel_id + # REMOVED 2026-01-18: comment_id - migrated to identified_by + Identifier (Rule 53) + - identified_by # MIGRATED 2026-01-22: comment_like_count → is_or_was_appreciated + AppreciationEvent (Rule 53) - is_or_was_appreciated # REMOVED 2026-01-18: comment_published_at - migrated to temporal_extent + TimeSpan (Rule 53) @@ -315,19 +295,18 @@ classes: - has_or_had_content # REMOVED 2026-01-18: comment_updated_at - migrated to was_last_updated_at + Timestamp (Rule 53) - is_or_was_last_updated_at - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - # MIGRATED 2026-01-18: comment_id → has_or_had_identifier + Identifier (Rule 53/56) - has_or_had_identifier: - range: uriorcurie - inlined: true + # MIGRATED 2026-01-18: comment_id → identified_by + Identifier (Rule 53/56) + identified_by: +# range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: # REMOVED 2026-01-18: comment_author - migrated to has_or_had_author + Author (Rule 53) # MIGRATED 2026-01-18: comment_author → has_or_had_author + Author (Rule 53) - # MIGRATED 2026-01-22: comment_author_channel_id is now captured via Author.has_or_had_identifier (Rule 53) + # MIGRATED 2026-01-22: comment_author_channel_id is now captured via Author.identified_by (Rule 53) has_or_had_author: range: Author inlined: true @@ -337,21 +316,21 @@ classes: has_or_had_name: "Visitor123" - value: has_or_had_name: "MuseumFan2024" - has_or_had_identifier: + identified_by: - identifier_scheme: youtube_channel_id platform_type: "youtube" - # MIGRATED 2026-01-22: comment_author_channel_id → has_or_had_identifier + DigitalPlatformUserIdentifier (Rule 53) - # NOTE: has_or_had_identifier slot_usage updated above to handle BOTH comment_id AND comment_author_channel_id - # The Author class already has has_or_had_identifier slot, so channel_id can be linked via: + # MIGRATED 2026-01-22: comment_author_channel_id → identified_by + DigitalPlatformUserIdentifier (Rule 53) + # NOTE: identified_by slot_usage updated above to handle BOTH comment_id AND comment_author_channel_id + # The Author class already has identified_by slot, so channel_id can be linked via: # has_or_had_author: - # has_or_had_identifier: + # identified_by: # - identifier_scheme: youtube_channel_id # identifier_value: "UC1234..." # platform_type: "youtube" # MIGRATED 2026-01-18: comment_text → has_or_had_content + Content (Rule 53/56) has_or_had_content: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: true examples: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VideoSubtitle.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VideoSubtitle.yaml index b522c6680c..c56717a5a7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VideoSubtitle.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VideoSubtitle.yaml @@ -2,41 +2,27 @@ id: https://nde.nl/ontology/hc/class/VideoSubtitle name: video_subtitle_class title: Video Subtitle Class imports: -- linkml:types -- ../enums/SubtitleFormatEnum -- ../enums/SubtitlePositionEnum -- ../slots/has_or_had_alignment -- ../slots/has_or_had_caption -- ../slots/has_or_had_format -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_mean -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/has_or_had_segment -- ../slots/has_or_had_unit -- ../slots/includes_music_description -- ../slots/includes_sound_description -- ../slots/includes_speaker_identification -- ../slots/includes_timestamp -- ../slots/is_closed_caption -- ../slots/is_or_was_created_through -- ../slots/is_sdh -- ../slots/raw_subtitle_content -- ../slots/specificity_annotation -- ./Alignment -- ./AutoGeneration -- ./Caption -- ./MeanValue -- ./Quantity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TrackIdentifier -- ./Unit -- ./VideoTimeSegment -- ./VideoTranscript + - linkml:types + - ../enums/SubtitleFormatEnum + - ../enums/SubtitlePositionEnum + - ../slots/has_or_had_alignment + - ../slots/has_or_had_caption + - ../slots/has_or_had_format + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_mean + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/has_or_had_segment + - ../slots/has_or_had_unit + - ../slots/includes_music_description + - ../slots/includes_sound_description + - ../slots/includes_speaker_identification + - ../slots/includes_timestamp + - ../slots/is_closed_caption + - ../slots/is_or_was_created_through + - ../slots/is_sdh + - ../slots/raw_subtitle_content prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -59,9 +45,8 @@ classes: \ formats (closed caption, subtitles etc.)\n> use the MediaObject.encodingFormat property.\"\n\n**SUBTITLE vs CAPTION vs TRANSCRIPT**:\n\n| Type | Time-coded | Purpose | Audience |\n|------|------------|---------|----------|\n| Transcript | Optional | Reading, search | Everyone |\n| Subtitle | Required | Language translation | Hearing viewers |\n| Caption (CC) | Required | Accessibility | Deaf/HoH viewers |\n| SDH | Required | Full accessibility | Deaf viewers, noisy environments |\n\n**SDH (Subtitles for Deaf/Hard-of-Hearing)**:\n\nSDH differs from regular subtitles by including:\n- Speaker identification: \"(John) Hello\"\n- Sound effects: \"[door slams]\", \"[music playing]\"\n- Music descriptions: \"\u266A upbeat jazz \u266A\"\n- Emotional cues: \"[laughing]\", \"[whispering]\"\n\n**SUBTITLE FORMATS**:\n\n| Format | Extension | Features | Use Case |\n|--------|-----------|----------|----------|\n| SRT | .srt | Simple, universal | Most video players |\n| VTT | .vtt | W3C standard,\ \ styling | HTML5 video, web |\n| TTML | .ttml/.dfxp | XML, rich styling | Broadcast, streaming |\n| SBV | .sbv | YouTube native | YouTube uploads |\n| ASS | .ass | Advanced styling | Anime, complex layouts |\n\n**SRT FORMAT EXAMPLE**:\n\n```\n1\n00:00:00,000 --> 00:00:03,500\nWelcome to the Rijksmuseum.\n\n2\n00:00:03,500 --> 00:00:08,200\nToday we'll explore the Night Watch gallery.\n```\n\n**VTT FORMAT EXAMPLE**:\n\n```\nWEBVTT\n\n00:00:00.000 --> 00:00:03.500\nWelcome to the Rijksmuseum.\n\n00:00:03.500 --> 00:00:08.200\nToday we'll explore the Night Watch gallery.\n```\n\n**HERITAGE INSTITUTION CONTEXT**:\n\nSubtitles are critical for heritage video accessibility:\n\n1. **Accessibility Compliance**: WCAG 2.1, Section 508\n2. **Multilingual Access**: Translate for international audiences\n3. **Silent Viewing**: Social media, public displays, quiet spaces\n4. **Search Discovery**: Subtitle text is indexed by platforms\n5. **Preservation**: Text outlasts video format obsolescence\n\ \n**YOUTUBE API INTEGRATION**:\n\nSubtitle tracks from YouTube API populate:\n- `has_or_had_format`: Typically VTT or SRT\n- `generation_method`: PLATFORM_PROVIDED or ASR_AUTOMATIC\n- `content_language`: From track language code\n- `is_or_was_created_through`: YouTube auto-caption flag\n\n**SEGMENTS ARE REQUIRED**:\n\nUnlike VideoTranscript where segments are optional, VideoSubtitle\nREQUIRES the `segments` slot to be populated with VideoTimeSegment\nentries that include start_seconds, end_seconds, and segment_text.\n" - exact_mappings: - - schema:caption close_mappings: + - schema:caption - ma:CaptioningFormat related_mappings: - schema:transcript @@ -78,10 +63,9 @@ classes: - is_closed_caption - is_sdh - raw_subtitle_content - - specificity_annotation - has_or_had_format - has_or_had_score - - has_or_had_identifier + - identified_by - has_or_had_label slot_usage: has_or_had_segment: @@ -95,7 +79,7 @@ classes: - value: VTT - value: SRT raw_subtitle_content: - range: string +# range: string required: false examples: - value: 'WEBVTT @@ -143,12 +127,12 @@ classes: examples: - value: true has_or_had_label: - range: string +# range: string required: false - deprecated: Use has_or_had_identifier with TrackIdentifier range instead + deprecated: Use identified_by with TrackIdentifier range instead examples: - value: English (auto-generated) - has_or_had_identifier: + identified_by: range: TrackIdentifier required: false inlined: true @@ -165,7 +149,7 @@ classes: has_or_had_quantity: range: integer required: false - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_unit: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VideoTextContent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VideoTextContent.yaml index 36d2dd9f57..68d7a6fd56 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VideoTextContent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VideoTextContent.yaml @@ -2,34 +2,22 @@ id: https://nde.nl/ontology/hc/class/VideoTextContent name: video_text_content_class title: Video Text Content Class imports: -- linkml:types -- ../enums/GenerationMethodEnum -- ../slots/content_title -- ../slots/has_or_had_language -- ../slots/has_or_had_quantity -- ../slots/has_or_had_score -- ../slots/is_or_was_generated_by -- ../slots/is_or_was_verified_by -- ../slots/is_verified -- ../slots/model_provider -- ../slots/model_version -- ../slots/overall_confidence -- ../slots/processing_duration_seconds -- ../slots/source_video -- ../slots/source_video_url -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./Methodology -- ./Quantity -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Verifier -- ./VideoPost -- ./GenerationEvent -- ./Language + - linkml:types + - ../enums/GenerationMethodEnum + - ../slots/content_title + - ../slots/has_or_had_language + - ../slots/has_or_had_quantity + - ../slots/has_or_had_score + - ../slots/is_or_was_generated_by + - ../slots/is_or_was_verified_by + - ../slots/is_verified + - ../slots/model_provider + - ../slots/model_version + - ../slots/overall_confidence + - ../slots/processing_duration_seconds + - ../slots/source_video + - ../slots/source_video_url + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -66,14 +54,12 @@ classes: - processing_duration_seconds - source_video - source_video_url - - specificity_annotation - has_or_had_score - - temporal_extent - is_or_was_verified_by - has_or_had_quantity slot_usage: source_video: - range: string +# range: string required: true examples: - value: FbIoC-Owy-M @@ -83,9 +69,9 @@ classes: examples: - value: https://www.youtube.com/watch?v=FbIoC-Owy-M has_or_had_language: - range: string +# range: string required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: @@ -93,7 +79,7 @@ classes: - value: language_name: "English" content_title: - range: string +# range: string required: false examples: - value: De Vrijheidsroute Ep.3 - Dutch Transcript @@ -120,13 +106,13 @@ classes: - value: begin_of_the_begin: '2025-12-02T15:00:00Z' model_version: - range: string +# range: string required: false examples: - value: large-v3 - value: v2.3.1 model_provider: - range: string +# range: string required: false examples: - value: OpenAI @@ -161,8 +147,8 @@ classes: range: integer required: false multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - quantity_value: 1523 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VideoTimeSegment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VideoTimeSegment.yaml index 50335ac874..33f0bdde8b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VideoTimeSegment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VideoTimeSegment.yaml @@ -2,22 +2,14 @@ id: https://nde.nl/ontology/hc/class/VideoTimeSegment name: video_time_segment_class title: Video Time Segment Class imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_time_interval -- ../slots/is_or_was_generated_by -- ../slots/segment_index -- ../slots/segment_text -- ../slots/speaker_id -- ../slots/speaker_label -- ../slots/specificity_annotation -- ./ConfidenceScore -- ./GenerationEvent -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeInterval + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_time_interval + - ../slots/is_or_was_generated_by + - ../slots/segment_index + - ../slots/segment_text + - ../slots/speaker_id + - ../slots/speaker_label prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -156,7 +148,6 @@ classes: - segment_text - speaker_id - speaker_label - - specificity_annotation - has_or_had_score - is_or_was_generated_by - start_time @@ -169,7 +160,7 @@ classes: examples: - value: null segment_text: - range: string +# range: string required: false examples: - value: Welkom bij het Rijksmuseum @@ -198,19 +189,18 @@ classes: has_or_had_score: 0.72 has_or_had_method: cv_detection speaker_id: - range: string +# range: string required: false examples: - value: SPEAKER_01 - value: curator_taco_dibbits speaker_label: - range: string +# range: string required: false examples: - value: Narrator - value: Dr. Taco Dibbits, Museum Director - rules: - - postconditions: null + comments: - Reusable time segment for subtitles, annotations, chapters - 'Dual time format: ISO 8601 for serialization, seconds for computation' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VideoTranscript.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VideoTranscript.yaml index 3fe0e6a475..b5bb04492e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VideoTranscript.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VideoTranscript.yaml @@ -2,26 +2,19 @@ id: https://nde.nl/ontology/hc/class/VideoTranscript name: video_transcript_class title: Video Transcript Class imports: -- linkml:types -- ../enums/TranscriptFormatEnum -- ../slots/contains_or_contained -- ../slots/has_or_had_format -- ../slots/has_or_had_score -- ../slots/has_or_had_segment -- ../slots/includes_speaker -- ../slots/includes_timestamp -- ../slots/paragraph_count -- ../slots/primary_speaker -- ../slots/sentence_count -- ../slots/source_language_auto_detected -- ../slots/speaker_count -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./VideoTextContent -- ./VideoTimeSegment + - linkml:types + - ../enums/TranscriptFormatEnum + - ../slots/contains_or_contained + - ../slots/has_or_had_format + - ../slots/has_or_had_score + - ../slots/has_or_had_segment + - ../slots/includes_speaker + - ../slots/includes_timestamp + - ../slots/paragraph_count + - ../slots/primary_speaker + - ../slots/sentence_count + - ../slots/source_language_auto_detected + - ../slots/speaker_count prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -56,12 +49,11 @@ classes: - sentence_count - source_language_auto_detected - speaker_count - - specificity_annotation - has_or_had_score - has_or_had_format slot_usage: contains_or_contained: - range: string +# range: string required: true examples: - value: 'Welcome to the Rijksmuseum. Today we''ll explore the masterpieces @@ -110,7 +102,7 @@ classes: examples: - value: 3 primary_speaker: - range: string +# range: string required: false examples: - value: Narrator diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/VisitingScholar.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VisitingScholar.yaml index bf1fc85c5b..dff94b0a47 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VisitingScholar.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/VisitingScholar.yaml @@ -13,8 +13,8 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: VisitingScholar: description: 'Information about visiting scholar or researcher programs accepted @@ -26,7 +26,7 @@ classes: **PROGRAM TYPES**: - Short-term research visits - Fellowship programs - Residencies - Affiliated researcher positions - Used with `accepts_or_accepted` slot to indicate researcher access programs.' + Used with `accept` slot to indicate researcher access programs.' class_uri: schema:ResearchProject close_mappings: - schema:ScholarlyArticle diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WKT.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WKT.yaml index a62d1378b9..fd2948eb9e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WKT.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WKT.yaml @@ -14,12 +14,14 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_value + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_value classes: WKT: - class_uri: geosparql:wktLiteral + class_uri: hc:WKT + exact_mappings: + - geosparql:wktLiteral description: A WKT literal wrapper. slots: - has_or_had_value diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Warehouse.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Warehouse.yaml index 13f0679f03..ea2d681ade 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Warehouse.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Warehouse.yaml @@ -2,36 +2,20 @@ id: https://nde.nl/ontology/hc/class/warehouse name: warehouse_class title: Warehouse Class imports: -- linkml:types -- ../enums/WarehouseTypeEnum -- ../slots/contents_description -- ../slots/has_or_had_area -- ../slots/has_or_had_description -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_policy -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/is_or_was_managed_by -- ../slots/regulates_or_regulated -- ../slots/specificity_annotation -- ./Area -- ./ClimateControl -- ./ClimateControlPolicy -- ./ClimateControlType -- ./ClimateControlTypes -- ./CustodianObservation -- ./Group -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./SecurityLevel -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WarehouseType + - linkml:types + - ../enums/WarehouseTypeEnum + - ../slots/contents_description + - ../slots/has_or_had_area + - ../slots/has_or_had_description + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_policy + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/is_or_was_managed_by + - ../slots/regulates_or_regulated prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -61,25 +45,24 @@ classes: slots: - has_or_had_policy - contents_description - - specificity_annotation - has_or_had_score - has_or_had_description - has_or_had_area - - has_or_had_identifier + - identified_by - is_or_was_managed_by - has_or_had_label - has_or_had_type - is_or_was_derived_from - is_or_was_generated_by slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/rm-logistics-warehouse has_or_had_label: - range: string +# range: string required: true multivalued: false examples: @@ -91,18 +74,19 @@ classes: description_text: Logistics warehouse for exhibition equipment, packing materials, and furniture. Facilities team access only. description_type: warehouse has_or_had_type: - range: uriorcurie +# range: string # uriorcurie required: true examples: - value: EXHIBITION_EQUIPMENT - value: GENERAL_SUPPLIES contents_description: - range: string +# range: string examples: - value: Exhibition cases, lighting rigs, pedestals, crates, packing foam has_or_had_area: range: Area inlined: true + inlined_as_list: true examples: - value: area_value: 500.0 @@ -112,9 +96,9 @@ classes: has_or_had_label: Warehouse floor area - value: false has_or_had_policy: - range: string +# range: string description: "Climate control policy governing this warehouse.\nMIGRATED from climate_control_type per slot_fixes.yaml (Rule 53).\n\n**MIGRATION NOTE**:\nOld simple string values (HEATED, HVAC, etc.) now modeled as:\nClimateControlPolicy \u2192 regulates_or_regulated \u2192 ClimateControl \u2192 has_or_had_type \u2192 ClimateControlType\n" - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_label: Warehouse Basic Climate Requirements @@ -154,7 +138,7 @@ classes: - https://schema.org/Warehouse examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/rm-logistics-warehouse + identified_by: https://nde.nl/ontology/hc/aux/rm-logistics-warehouse has_or_had_label: Rijksmuseum Logistics Warehouse has_or_had_description: description_text: Logistics warehouse for exhibition equipment and packing materials. Used by exhibition services team. @@ -173,7 +157,7 @@ classes: has_or_had_type: HEATED is_or_was_managed_by: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/na-supplies-warehouse + identified_by: https://nde.nl/ontology/hc/aux/na-supplies-warehouse has_or_had_label: Nationaal Archief Supplies Warehouse has_or_had_description: description_text: General supplies warehouse for archival boxes, office furniture, and operational materials. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WarehouseType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WarehouseType.yaml index 3d4699dd1f..d728b5f45a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WarehouseType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WarehouseType.yaml @@ -15,29 +15,22 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ../slots/has_or_had_description -- ../slots/has_or_had_hypernym -- ../slots/has_or_had_hyponym -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_score -- ../slots/is_or_was_equivalent_to -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataIdentifier -- ./WarehouseType + - linkml:types + - ../slots/has_or_had_code + - ../slots/has_or_had_description + - ../slots/has_or_had_hypernym + - ../slots/has_or_had_hyponym + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_score + - ../slots/is_or_was_equivalent_to classes: WarehouseType: class_uri: skos:Concept description: "Abstract base class for warehouse type classifications in heritage storage.\n\n**DEFINITION**:\n\nWarehouseType represents CATEGORIES of warehouse/depot facilities, not\nindividual warehouse instances. Each subclass defines the characteristics,\nfunctions, and typical uses of a specific type of heritage storage facility.\n\n**CRITICAL: TYPE vs INSTANCE**\n\n| Aspect | WarehouseType (This Class) | Warehouse (Instance) |\n|--------|---------------------------|---------------------|\n| **Nature** | Classification/category | Individual facility |\n| **Examples** | CENTRAL_DEPOT, OFFSITE | \"Depot Amersfoort Building A\" |\n| **Properties** | Category metadata | Location, capacity, contents |\n| **Cardinality** | ~8-12 types | Many instances |\n\n**CATEGORY STRUCTURE**:\n\nWarehouse types are organized by function and location:\n\n1. **LOCATION-BASED**:\n - CENTRAL_DEPOT: Main storage at primary site\n - OFFSITE_DEPOT: Remote/external storage location\n - SATELLITE_DEPOT:\ \ Branch location storage\n \n2. **FUNCTION-BASED**:\n - COLLECTION_STORAGE: General collection materials\n - STUDY_STORAGE: Research-accessible storage\n - QUARANTINE_DEPOT: Isolation/treatment areas\n - TRANSIT_STORAGE: Temporary holding for loans/moves\n \n3. **ENVIRONMENTAL-BASED**:\n - CLIMATE_CONTROLLED: Full HVAC systems\n - COLD_STORAGE_FACILITY: Refrigerated/frozen\n - AMBIENT_STORAGE: Minimal environmental control\n \n4. **SECURITY-BASED**:\n - HIGH_SECURITY_VAULT: Maximum security\n - OPEN_STORAGE: Visible/accessible storage\n\n**ONTOLOGY ALIGNMENT**:\n\n- **SKOS Concept**: Warehouse types form a controlled vocabulary\n- **PREMIS StorageLocation**: Storage environment context\n- **CIDOC-CRM E27_Site**: Physical site classification\n- **Schema.org Place**: General place/facility typing\n\n**SUBCLASSES**:\n\nSee WarehouseTypes.yaml for concrete warehouse type subclasses.\n" abstract: true - exact_mappings: + broad_mappings: - skos:Concept close_mappings: - crm:E55_Type @@ -46,18 +39,17 @@ classes: - crm:E27_Site - schema:Place slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_description - has_or_had_code - has_or_had_hypernym - has_or_had_hyponym - is_or_was_equivalent_to - - specificity_annotation - has_or_had_score slot_usage: - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/warehouse-type/[a-z-]+$ @@ -65,7 +57,7 @@ classes: - value: https://nde.nl/ontology/hc/warehouse-type/central-depot - value: https://nde.nl/ontology/hc/warehouse-type/offsite-depot has_or_had_code: - range: string +# range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ examples: @@ -74,7 +66,7 @@ classes: - value: COLD_STORAGE_FACILITY - value: HIGH_SECURITY_VAULT has_or_had_label: - range: string +# range: string required: true multivalued: true examples: @@ -85,7 +77,7 @@ classes: - Offsite Storage@en - externe opslag@nl has_or_had_description: - range: string +# range: string required: false examples: - value: Primary storage facility located at main institutional site @@ -122,7 +114,7 @@ classes: - http://www.cidoc-crm.org/cidoc-crm/E27_Site examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/warehouse-type/central-depot + identified_by: https://nde.nl/ontology/hc/warehouse-type/central-depot has_or_had_code: CENTRAL_DEPOT has_or_had_label: - Central Depot@en diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WarehouseTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WarehouseTypes.yaml index a1888a9245..ad2fa1616f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WarehouseTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WarehouseTypes.yaml @@ -7,9 +7,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code -- ./WarehouseType + - ./WarehouseType + - linkml:types + - ../slots/has_or_had_code classes: CentralDepot: is_a: WarehouseType diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebArchive.yaml index 70fe5f3357..dc6f828aeb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebArchive.yaml @@ -8,41 +8,29 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_related_to -- ../slots/platform_type_id -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./DigitalPlatformType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WebArchiveRecordSetType -- ./WebArchiveRecordSetTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_related_to + - ../slots/platform_type_id classes: WebArchive: description: A publication type and collection of preserved web pages. Web archives (Webarchive) capture and preserve websites, web pages, and other online content for long-term access and research. They address the challenge of digital preservation by creating archival copies of ephemeral web content that might otherwise be lost. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by - has_or_had_scope exact_mappings: - wd:Q30047053 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebArchiveFailure.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebArchiveFailure.yaml index 9a0831dd04..38b84b06d0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebArchiveFailure.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebArchiveFailure.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WebArchiveFailure: description: "Record of a failed web archive attempt, documenting the URL that\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebArchiveRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebArchiveRecordSetType.yaml index a5c663c28a..f6d563f8f6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebArchiveRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebArchiveRecordSetType.yaml @@ -8,12 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to classes: WebArchiveRecordSetType: description: A rico:RecordSetType for classifying collections of preserved web pages and archived online content. @@ -28,7 +25,6 @@ classes: see_also: - WebArchive slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebArchiveRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebArchiveRecordSetTypes.yaml index 9677fa5232..79d37418e8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebArchiveRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebArchiveRecordSetTypes.yaml @@ -11,21 +11,15 @@ prefixes: wd: http://www.wikidata.org/entity/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WebArchive -- ./WebArchiveRecordSetType + - ./WebArchiveRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: WebCaptureCollection: is_a: WebArchiveRecordSetType @@ -33,7 +27,7 @@ classes: description: "A rico:RecordSetType for Website captures.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -44,7 +38,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -69,16 +62,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept SocialMediaCollection: is_a: WebArchiveRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Social media archives.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -89,7 +79,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -110,6 +99,3 @@ classes: record_holder_note: equals_string: This RecordSetType is typically held by WebArchive custodians. Inverse of rico:isOrWasHolderOf. - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebClaim.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebClaim.yaml index bf190f420e..9b1ba05d33 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebClaim.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebClaim.yaml @@ -16,36 +16,21 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../enums/ExtractionPipelineStageEnum -- ../slots/has_or_had_content -- ../slots/has_or_had_file_path -- ../slots/has_or_had_identifier -- ../slots/has_or_had_note -- ../slots/has_or_had_provenance_path -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_extracted_using -- ../slots/is_or_was_retrieved_through -- ../slots/pipeline_stage -- ../slots/retrieved_on -- ../slots/source_url -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./Claim -- ./ClaimType -- ./ClaimTypes -- ./Content -- ./ExtractionMethod -- ./FilePath -- ./Identifier -- ./Note -- ./RetrievalEvent -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./XPath + - linkml:types + - ../enums/ExtractionPipelineStageEnum + - ../slots/has_or_had_content + - ../slots/has_or_had_file_path + - ../slots/identified_by + - ../slots/has_or_had_note + - ../slots/has_or_had_provenance_path + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_extracted_using + - ../slots/is_or_was_retrieved_through + - ../slots/pipeline_stage + - ../slots/retrieved_on + - ../slots/source_url + - ../slots/temporal_extent default_prefix: hc classes: WebClaim: @@ -55,14 +40,14 @@ classes: \ SCORES?**\n\nConfidence scores like `0.95` are MEANINGLESS because:\n- There is NO methodology defining what these numbers mean\n- They cannot be verified or reproduced\n- They give false impression of rigor\n- They mask the fact that claims may be fabricated\n\nInstead, we use VERIFIABLE provenance:\n- XPath points to exact location\n- Archived HTML can be inspected\n- Match score is computed, not estimated\n\n**EXTRACTION PIPELINE (4 Stages)**\n\nFollowing the GLAM-NER Unified Entity Annotation Convention v1.7.0:\n\n1. **Entity Recognition** (Stage 1)\n - Detect named entities in text\n - Classify by hypernym type (AGT, GRP, TOP, TMP, etc.)\n - Methods: spaCy NER, transformer models, regex patterns\n\n2. **Layout Analysis** (Stage 2)\n - Analyze document structure (headers, paragraphs, tables)\n - Assign DOC hypernym types (DOC.HDR, DOC.PAR, DOC.TBL)\n - Generate XPath provenance for each claim location\n\n3. **Entity Resolution** (Stage 3)\n - Disambiguate entity\ \ mentions\n - Merge coreferences and name variants\n - Produce canonical entity clusters\n\n4. **Entity Linking** (Stage 4)\n - Link resolved entities to knowledge bases\n - Connect to Wikidata, ISIL, GeoNames, etc.\n - Assign link confidence scores\n\n**WORKFLOW**:\n\n1. Archive website using Playwright:\n `python scripts/fetch_website_playwright.py `\n \n This saves: web/{entry_number}/{domain}/rendered.html\n\n2. Add XPath provenance to claims:\n `python scripts/add_xpath_provenance.py`\n\n3. Script REMOVES claims that cannot be verified\n (stores in `removed_unverified_claims` for audit)\n\n**EXAMPLES**:\n\nCORRECT (Verifiable):\n```yaml\n- claim_type: full_name\n has_or_had_content:\n has_or_had_label: Historische Vereniging Nijeveen\n source_url: https://historischeverenigingnijeveen.nl/\n retrieved_on: \"2025-11-29T12:28:00Z\"\n has_or_had_provenance_path:\n expression: /html[1]/body[1]/div[6]/div[1]/h1[1]\n match_score:\ \ 1.0\n html_file: web/0021/historischeverenigingnijeveen.nl/rendered.html\n pipeline_stage: layout_analysis\n```\n\nWRONG (Fabricated - Must Be Removed):\n```yaml\n- claim_type: full_name\n has_or_had_content:\n has_or_had_label: Historische Vereniging Nijeveen\n confidence: 0.95 # \u2190 NO! This is meaningless without XPath\n```\n\n**MIGRATION NOTE (2026-01-15)**:\nConsolidated xpath, xpath_match_score, xpath_matched_text\ninto has_or_had_provenance_path with XPath class.\n\n**MIGRATION NOTE (2026-01-18)**:\nMigrated claim_value to has_or_had_content with Content class per Rule 53/56.\n" - exact_mappings: + broad_mappings: - prov:Entity close_mappings: - schema:PropertyValue - oa:Annotation slots: - is_or_was_extracted_using - - has_or_had_identifier + - identified_by - has_or_had_note - has_or_had_type - has_or_had_content @@ -71,13 +56,12 @@ classes: - pipeline_stage - retrieved_on - source_url - - specificity_annotation - has_or_had_score - has_or_had_provenance_path slot_usage: - has_or_had_identifier: - range: uriorcurie - inlined: true + identified_by: +# range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type required: false examples: - value: @@ -91,9 +75,9 @@ classes: - value: has_or_had_label: facebook has_or_had_note: - range: string - inlined: true - inlined_as_list: true +# range: string + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type multivalued: true required: false examples: @@ -106,8 +90,8 @@ classes: note_content: Biography truncated from longer text on page. note_date: '2025-11-29' has_or_had_content: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type required: true multivalued: false examples: @@ -145,11 +129,7 @@ classes: has_or_had_label: xpath_exact_match - value: has_or_had_label: nlp_ner - rules: - - preconditions: - slot_conditions: - has_or_had_provenance_path: - value_presence: ABSENT + comments: - WebClaim requires XPath provenance via has_or_had_provenance_path - claims without it are fabricated - XPath class contains expression, matched_text, and match_score in one structure diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebClaimsBlock.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebClaimsBlock.yaml index b294362b85..8b630a2fa3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebClaimsBlock.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebClaimsBlock.yaml @@ -8,16 +8,10 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_quantity -- ../slots/warrants_or_warranted -- ./Claim -- ./InvalidWebClaim -- ./LayoutMetadata -- ./Quantity -- ./ValidationMetadata -- ./WebClaim -default_range: string + - linkml:types + - ../slots/has_or_had_quantity + - ../slots/warrants_or_warranted +# default_range: string classes: WebClaimsBlock: description: "Container for claims extracted from archived websites, including\ @@ -39,7 +33,7 @@ classes: slot_usage: has_or_had_quantity: range: integer - inlined: true + inlined: false # Fixed invalid inline for primitive type examples: - value: has_or_had_description: Web claims extracted from archived website diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebCollection.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebCollection.yaml index eb719d7094..a0d8c0c117 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebCollection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebCollection.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# dcmitype: http://purl.org/dc/dcmitype/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WebCollection: description: "A collection documented on a heritage institution website, such\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebEnrichment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebEnrichment.yaml index 4064ce4167..8b275f9f84 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebEnrichment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebEnrichment.yaml @@ -9,16 +9,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# pav: http://purl.org/pav/ imports: -- linkml:types -- ../slots/warrants_or_warranted -- ./Claim -- ./DuplicateEntry -- ./OrganizationalChange -- ./RawSource -- ./WebArchiveFailure -- ./WebClaim -- ./WebCollection -default_range: string + - linkml:types + - ../slots/warrants_or_warranted +# default_range: string classes: WebEnrichment: description: "Web archive metadata and enrichment data extracted from institutional\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebLink.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebLink.yaml index fd4510d21b..32a7cc174d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebLink.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebLink.yaml @@ -27,27 +27,19 @@ prefixes: foaf: http://xmlns.com/foaf/0.1/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../enums/LinkTypeEnum -- ../slots/has_or_had_description -- ../slots/has_or_had_label # was: title -- ../slots/has_or_had_provenance_path -- ../slots/has_or_had_score # was: template_specificity -- ../slots/has_or_had_url -- ../slots/link_context -- ../slots/link_text -- ../slots/link_type -- ../slots/specificity_annotation -- ../slots/temporal_extent # was: valid_from + valid_to -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./URL -- ./XPath + - linkml:types + - ../enums/LinkTypeEnum + - ../slots/has_or_had_description + - ../slots/has_or_had_label # was: title + - ../slots/has_or_had_provenance_path + - ../slots/has_or_had_score # was: template_specificity + - ../slots/has_or_had_url + - ../slots/link_context + - ../slots/link_text + - ../slots/link_type + - ../slots/temporal_extent # was: valid_from + valid_to default_prefix: hc -default_range: string +# default_range: string classes: WebLink: class_uri: schema:WebPage @@ -87,21 +79,20 @@ classes: - link_context - has_or_had_provenance_path # was: xpath - migrated per Rule 53 (2026-01-15) - temporal_extent # was: valid_from + valid_to - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: has_or_had_url: range: uri - inlined: true + inlined: false # Fixed invalid inline for primitive type required: true link_text: - range: string +# range: string has_or_had_label: # was: title - range: string +# range: string link_type: range: LinkTypeEnum link_context: - range: string +# range: string has_or_had_provenance_path: range: XPath inlined: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebObservation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebObservation.yaml index e9de10eea8..cbf5ffdbde 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebObservation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebObservation.yaml @@ -15,34 +15,25 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ../slots/content_changed -- ../slots/content_hash -- ../slots/content_type -- ../slots/has_or_had_method -- ../slots/has_or_had_note -- ../slots/has_or_had_score -- ../slots/has_or_had_status -- ../slots/is_or_was_archived_at -- ../slots/last_modified -- ../slots/observation_id -- ../slots/observed_entity -- ../slots/page_title -- ../slots/previous_observation -- ../slots/retrieval_method -- ../slots/retrieved_by -- ../slots/retrieved_on -- ../slots/source_url -- ../slots/specificity_annotation -- ../slots/warrants_or_warranted -- ./CacheValidation -- ./ETag -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WebClaim -- ./HTTPStatusCode + - linkml:types + - ../slots/content_changed + - ../slots/content_hash + - ../slots/content_type + - ../slots/has_or_had_method + - ../slots/has_or_had_note + - ../slots/has_or_had_score + - ../slots/has_or_had_status + - ../slots/is_or_was_archived_at + - ../slots/last_modified + - ../slots/observation_id + - ../slots/observed_entity + - ../slots/page_title + - ../slots/previous_observation + - ../slots/retrieval_method + - ../slots/retrieved_by + - ../slots/retrieved_on + - ../slots/source_url + - ../slots/warrants_or_warranted default_prefix: hc classes: WebObservation: @@ -79,11 +70,10 @@ classes: - retrieved_by - retrieved_on - source_url - - specificity_annotation - has_or_had_score slot_usage: has_or_had_method: - range: string +# range: string has_or_had_status: # was: http_status_code - migrated per Rule 53/56 (2026-01-28) range: HTTPStatusCode examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebPage.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebPage.yaml index d1c8acf8c2..4e578bc1e3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebPage.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebPage.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_url + - linkml:types + - ../slots/has_or_had_url classes: WebPage: class_uri: schema:WebPage diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebPlatform.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebPlatform.yaml index 5558aad889..ff1a063826 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebPlatform.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebPlatform.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_label -- ../slots/has_or_had_url + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_url classes: WebPlatform: class_uri: schema:WebSite diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebPortal.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebPortal.yaml index a5fd8fa20f..c996029ba9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebPortal.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebPortal.yaml @@ -1,62 +1,36 @@ id: https://nde.nl/ontology/hc/class/WebPortal name: WebPortal imports: -- linkml:types -- ../classes/APIEndpoint -- ../slots/aggregates_or_aggregated_from -- ../slots/created_by_project -- ../slots/has_or_had_endpoint -- ../slots/has_or_had_identifier -- ../slots/has_or_had_policy -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/is_or_was_aggregated_by -- ../slots/is_or_was_associated_with -- ../slots/is_or_was_derived_from -- ../slots/is_or_was_generated_by -- ../slots/is_or_was_related_to -- ../slots/launch_date -- ../slots/metadata_standard -- ../slots/oai_pmh_endpoint -- ../slots/operated_by -- ../slots/participating_institution -- ../slots/portal_description -- ../slots/portal_id -- ../slots/portal_language -- ../slots/portal_name -- ../slots/portal_status -- ../slots/portal_type -- ../slots/portal_url -- ../slots/record_count -- ../slots/serves_finding_aid -- ../slots/sparql_endpoint -- ../slots/specificity_annotation -- ../slots/supersedes_or_superseded -- ../slots/temporal_extent -- ./AuxiliaryDigitalPlatform -- ./CollectionManagementSystem -- ./CustodianCollection -- ./CustodianObservation -- ./DataLicensePolicy -- ./DataServiceEndpoint -- ./DataServiceEndpointTypes -- ./DigitalPlatform -- ./EncompassingBody -- ./METSAPI -- ./OAIPMHEndpoint -- ./Project -- ./ReconstructedEntity -- ./ReconstructionActivity -- ./Scope -- ./SearchAPI -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./WebPortalType -- ./APIEndpoint -- ./GeographicScope + - linkml:types + - ../slots/aggregate_from + - ../slots/created_by_project + - ../slots/has_or_had_endpoint + - ../slots/identified_by + - ../slots/has_or_had_policy + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/is_or_was_aggregated_by + - ../slots/is_or_was_associated_with + - ../slots/is_or_was_derived_from + - ../slots/is_or_was_generated_by + - ../slots/is_or_was_related_to + - ../slots/launch_date + - ../slots/metadata_standard + - ../slots/oai_pmh_endpoint + - ../slots/operated_by + - ../slots/participating_institution + - ../slots/portal_description + - ../slots/portal_id + - ../slots/portal_language + - ../slots/portal_name + - ../slots/portal_status + - ../slots/portal_type + - ../slots/portal_url + - ../slots/record_count + - ../slots/serves_finding_aid + - ../slots/sparql_endpoint + - ../slots/supersedes_or_superseded + - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -89,13 +63,13 @@ classes: - dcmitype:Collection slots: - is_or_was_aggregated_by - - aggregates_or_aggregated_from + - aggregate_from - has_or_had_endpoint - is_or_was_associated_with - created_by_project - has_or_had_policy - has_or_had_scope - - has_or_had_identifier + - identified_by - is_or_was_related_to - launch_date - metadata_standard @@ -112,25 +86,23 @@ classes: - record_count - serves_finding_aid - sparql_endpoint - - specificity_annotation - supersedes_or_superseded - has_or_had_score - temporal_extent - - has_or_had_scope - is_or_was_derived_from - is_or_was_generated_by slot_usage: portal_id: identifier: true required: true - range: uriorcurie +# range: string # uriorcurie pattern: ^https://nde\.nl/ontology/hc/portal/[a-z-]+/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/portal/nl/archieven-nl - value: https://nde.nl/ontology/hc/portal/eu/europeana portal_name: required: true - range: string +# range: string examples: - value: Archieven.nl - value: Deutsche Digitale Bibliothek @@ -150,7 +122,7 @@ classes: - value: https://www.europeana.eu - value: https://www.deutsche-digitale-bibliothek.de portal_description: - range: string +# range: string examples: - value: Archieven.nl is the Dutch national portal for archival finding aids, providing unified search across 80+ Dutch archives. - value: DE-BW @@ -163,35 +135,35 @@ classes: has_or_had_label: National (Netherlands) - value: has_or_had_label: European - has_or_had_identifier: - range: uriorcurie + identified_by: +# range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: http://www.wikidata.org/entity/Q209441 - value: https://viaf.org/viaf/316748507 operated_by: required: true - range: uriorcurie +# range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/encompassing-body/network/nde - value: https://nde.nl/ontology/hc/encompassing-body/network/europeana-foundation - aggregates_or_aggregated_from: - range: uriorcurie + aggregate_from: +# range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: https://nde.nl/ontology/hc/portal/de/ddb is_or_was_aggregated_by: - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: https://nde.nl/ontology/hc/portal/eu/europeana metadata_standard: - range: string +# range: string multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: EDM (Europeana Data Model) - value: EAD (Encoded Archival Description) @@ -213,9 +185,9 @@ classes: examples: - value: https://oai.europeana.eu/oai portal_language: - range: string +# range: string multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: nl - value: en @@ -225,12 +197,12 @@ classes: examples: - value: '2008-11-20' portal_status: - range: string +# range: string examples: - value: ACTIVE - value: LEGACY supersedes_or_superseded: - range: uriorcurie +# range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/portal/nl/new-archieven-portal record_count: @@ -255,7 +227,7 @@ classes: is_or_was_generated_by: range: ReconstructionActivity has_or_had_policy: - range: string +# range: string examples: - value: https://nde.nl/ontology/hc/policy/europeana - value: https://nde.nl/ontology/hc/policy/archieven-nl @@ -264,9 +236,9 @@ classes: examples: - value: https://nde.nl/ontology/hc/project/nde/nde-portal-development-2023 is_or_was_associated_with: - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: https://nde.nl/ontology/hc/encompassing-body/consortium/dans - value: https://nde.nl/ontology/hc/encompassing-body/network/europeana-aggregators @@ -276,13 +248,13 @@ classes: inlined: true examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/platform/rijksmuseum-website + identified_by: https://nde.nl/ontology/hc/platform/rijksmuseum-website has_or_had_label: Rijksmuseum Website - value: https://nde.nl/ontology/hc/aux-platform/europeana-api-v3 serves_finding_aid: - range: uriorcurie +# range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type required: false examples: - value: https://nde.nl/ontology/hc/finding-aid/gelders-archief/ead-main @@ -339,7 +311,7 @@ classes: has_or_had_scope: - scope_description: Art and cultural heritage operated_by: https://nde.nl/ontology/hc/encompassing-body/network/europeana-foundation - aggregates_or_aggregated_from: + aggregate_from: - https://nde.nl/ontology/hc/portal/de/ddb - https://nde.nl/ontology/hc/portal/fr/gallica - https://nde.nl/ontology/hc/portal/nl/collectie-nederland @@ -359,7 +331,7 @@ classes: portal_status: ACTIVE record_count: 50000000 participating_institutions: 4000 - has_or_had_identifier: + identified_by: - http://www.wikidata.org/entity/Q209441 has_or_had_policy: - policy_id: https://nde.nl/ontology/hc/policy/europeana-data-exchange @@ -372,7 +344,7 @@ classes: begin_of_the_begin: '2011-09-01' end_of_the_end: null created_by_project: - has_or_had_identifier: https://nde.nl/ontology/hc/project/europeana-dsi + identified_by: https://nde.nl/ontology/hc/project/europeana-dsi has_or_had_label: Europeana DSI (Digital Service Infrastructure) has_or_had_description: "EU-funded project under CEF Telecom to develop and maintain the \nEuropeana digital platform as core European cultural heritage infrastructure.\n" funding_sources: @@ -385,23 +357,23 @@ classes: - https://nde.nl/ontology/hc/encompassing-body/network/europeana-foundation - https://nde.nl/ontology/hc/encompassing-body/consortium/europeana-network-association is_or_was_related_to: - - has_or_had_identifier: https://nde.nl/ontology/hc/platform/europeana-collections + - identified_by: https://nde.nl/ontology/hc/platform/europeana-collections has_or_had_label: Europeana Collections has_or_had_url: https://www.europeana.eu/collections temporal_extent: begin_of_the_begin: '2008-11-20' - - has_or_had_identifier: https://nde.nl/ontology/hc/platform/europeana-pro + - identified_by: https://nde.nl/ontology/hc/platform/europeana-pro has_or_had_label: Europeana Pro has_or_had_url: https://pro.europeana.eu temporal_extent: begin_of_the_begin: '2014-01-01' - - has_or_had_identifier: https://nde.nl/ontology/hc/auxiliary/europeana-iiif + - identified_by: https://nde.nl/ontology/hc/auxiliary/europeana-iiif has_or_had_label: Europeana IIIF APIs has_or_had_url: https://iiif.europeana.eu has_or_had_type: IIIF_SERVER temporal_extent: begin_of_the_begin: '2018-01-01' - - has_or_had_identifier: https://nde.nl/ontology/hc/auxiliary/europeana-entity-api + - identified_by: https://nde.nl/ontology/hc/auxiliary/europeana-entity-api has_or_had_label: Europeana Entity API has_or_had_url: https://api.europeana.eu/entity has_or_had_type: REST_API diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebPortalType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebPortalType.yaml index ad789191fd..8adcd174d1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebPortalType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebPortalType.yaml @@ -9,31 +9,19 @@ prefixes: dcterms: http://purl.org/dc/terms/ skos: http://www.w3.org/2004/02/skos/core# imports: -- linkml:types -- ../enums/PortalCategoryEnum -- ../metadata -- ../slots/has_or_had_example -- ../slots/has_or_had_feature -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_standard -- ../slots/portal_type_category -- ../slots/portal_type_description -- ../slots/portal_type_id -- ../slots/portal_type_name -- ../slots/portal_typical_domain -- ../slots/specificity_annotation -- ./MetadataStandard -- ./Scope -- ./ScopeType -- ./ScopeTypes -- ./SpecificityAnnotation -- ./TechnicalFeature -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./Example -- ./WebPortalType + - linkml:types + - ../enums/PortalCategoryEnum + - ../metadata + - ../slots/has_or_had_example + - ../slots/has_or_had_feature + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_standard + - ../slots/portal_type_category + - ../slots/portal_type_description + - ../slots/portal_type_id + - ../slots/portal_type_name + - ../slots/portal_typical_domain classes: WebPortalType: class_uri: skos:Concept @@ -54,7 +42,6 @@ classes: - portal_type_id - portal_type_name - portal_typical_domain - - specificity_annotation - has_or_had_score - has_or_had_standard - has_or_had_scope @@ -70,8 +57,8 @@ classes: - value: has_or_had_label: Archieven.nl has_or_had_scope: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type portal_type_id: identifier: true required: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml index 831301c550..a87d6a1a85 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml @@ -11,43 +11,25 @@ prefixes: dcat: http://www.w3.org/ns/dcat# void: http://rdfs.org/ns/void# imports: -- linkml:types -- ../metadata -- ../slots/can_or_could_be_retrieved_from -- ../slots/ceases_or_ceased_through -- ../slots/has_or_had_description -- ../slots/has_or_had_endpoint -- ../slots/has_or_had_feature -- ../slots/has_or_had_identifier -- ../slots/has_or_had_scope -- ../slots/has_or_had_score -- ../slots/has_or_had_standard -- ../slots/has_or_had_title -- ../slots/is_or_was_published_by -- ../slots/is_or_was_superseded_by -- ../slots/linked_data_access -- ../slots/portal_type_category -- ../slots/portal_typical_domain -- ../slots/registers_or_registered -- ../slots/specificity_annotation -- ./CeasingEvent -- ./Custodian -- ./CustodianObservation -- ./Dataset -- ./Description -- ./Endpoint -- ./Identifier -- ./LinkedDataEndpoint -- ./MetadataStandard -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./Title -- ./WebPortalType -- ./Scope -- ./TechnicalFeature + - ./WebPortalType + - linkml:types + - ../metadata + - ../slots/retrieved_from + - ../slots/ceased_through + - ../slots/has_or_had_description + - ../slots/has_or_had_endpoint + - ../slots/has_or_had_feature + - ../slots/identified_by + - ../slots/has_or_had_scope + - ../slots/has_or_had_score + - ../slots/has_or_had_standard + - ../slots/has_or_had_title + - ../slots/is_or_was_published_by + - ../slots/is_or_was_superseded_by + - ../slots/linked_data_access + - ../slots/portal_type_category + - ../slots/portal_typical_domain + - ../slots/registers_or_registered classes: NationalAggregator: is_a: WebPortalType @@ -76,7 +58,7 @@ classes: portal_type_category: equals_string: GEOGRAPHIC_SCOPE has_or_had_scope: - range: string +# range: string portal_typical_domain: equals_string_in: - archives @@ -88,7 +70,6 @@ classes: - Often operated by national cultural heritage agencies or ministries - 'Examples: NDE Dataset Register, Deutsche Digitale Bibliothek, Trove' slots: - - specificity_annotation - has_or_had_score annotations: specificity_score: 0.1 @@ -115,13 +96,12 @@ classes: portal_type_category: equals_string: GEOGRAPHIC_SCOPE has_or_had_scope: - range: string +# range: string comments: - Subnational/provincial heritage aggregation portal - Often operated by provincial/state heritage agencies - "Examples: LEO-BW, Bavarikon, Archivportal Th\xFCringen" slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -163,7 +143,6 @@ classes: - Specializes in finding aids and archival descriptions - 'Examples: Archieven.nl, Archives Portal Europe, Archivportal-D' slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -206,7 +185,6 @@ classes: - Aggregates bibliographic records from multiple libraries - 'Examples: WorldCat, GBV, SUDOC' slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -248,7 +226,6 @@ classes: - Aggregates object metadata from multiple museum institutions - 'Examples: Collectie Nederland, Europeana Collections' slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -283,7 +260,6 @@ classes: - Aggregates civil registration, parish records, and vital records - 'Examples: OpenArchieven.nl, FamilySearch, Ancestry' slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -329,7 +305,6 @@ classes: - Aggregates excavation data, site records, and archaeological datasets - 'Examples: ARIADNE, CARARE, Archaeology Data Service, tDAR' slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -375,7 +350,6 @@ classes: - Aggregates metadata across archives, libraries, and museums - 'Examples: Europeana, DPLA, Deutsche Digitale Bibliothek' slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -411,7 +385,6 @@ classes: - Supports provenance research and restitution scholarship - 'Examples: Colonial Collections (NDE), Atlas of Mutual Heritage' slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -446,7 +419,6 @@ classes: - Specializes in diplomatic sources and religious heritage - 'Examples: Monasterium.net (ICARUS)' slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -481,7 +453,6 @@ classes: - Provides full-text search across digitized historical newspapers - 'Examples: Delpher Kranten, Chronicling America' slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -523,7 +494,6 @@ classes: - Provides semantic web access to heritage metadata - 'Examples: NDE Termennetwerk, Wikidata, Getty Vocabularies' slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -565,7 +535,6 @@ classes: - Provides unified viewing of IIIF manifests across institutions - 'Examples: IIIF Discovery, Mirador instances' slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -607,7 +576,6 @@ classes: - Aggregates from OAI-PMH compliant repositories - 'Examples: BASE, OpenAIRE, CORE' slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -643,7 +611,6 @@ classes: - Emphasizes public availability and reuse - 'Examples: Wikimedia Commons, Internet Archive, HathiTrust' slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -680,7 +647,6 @@ classes: - Emphasizes FAIR data, DOIs, and reproducibility - 'Examples: DANS EASY, Zenodo' slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -727,7 +693,6 @@ classes: - Provides direct access to digitized library materials - 'Examples: Gallica, Polona, Internet Culturale, Delpher' slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -755,7 +720,7 @@ classes: portal_type_category: equals_string: RESEARCH_INFRASTRUCTURE has_or_had_scope: - range: string +# range: string portal_typical_domain: equals_string_in: - research_infrastructure @@ -766,7 +731,6 @@ classes: - Provides tools, services, and data for collaborative research - 'Examples: DARIAH-EU, ARIADNE, CLARIN, E-RIHS' slots: - - specificity_annotation - has_or_had_score broad_mappings: - skos:Concept @@ -808,7 +772,6 @@ classes: range: MetadataStandard slots: - registers_or_registered - - specificity_annotation - has_or_had_score comments: - National/regional dataset registry for heritage data @@ -849,8 +812,7 @@ classes: portal_type_category: equals_string: LIFECYCLE slots: - - ceases_or_ceased_through - - specificity_annotation + - ceased_through - is_or_was_superseded_by - has_or_had_score comments: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WebSource.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WebSource.yaml index aac59bc6de..309f4cdd1f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WebSource.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WebSource.yaml @@ -15,8 +15,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WebSource: description: "Web source used for profile compilation, representing a URL that\ @@ -40,4 +40,4 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' slots: - - date + - date_value diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WhatsAppProfile.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WhatsAppProfile.yaml index fee8e900ed..cef4ce7ae2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WhatsAppProfile.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WhatsAppProfile.yaml @@ -7,8 +7,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_contact_details + - linkml:types + - ../slots/has_or_had_contact_details classes: WhatsAppProfile: class_uri: schema:ContactPoint diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Wifi.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Wifi.yaml index 92d01f1ec4..dabbeb881a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Wifi.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Wifi.yaml @@ -12,8 +12,8 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_description + - linkml:types + - ../slots/has_or_had_description classes: Wifi: class_uri: schema:LocationFeatureSpecification diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikiDataEntry.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikiDataEntry.yaml index 82210a6677..5949eb1d2f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikiDataEntry.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikiDataEntry.yaml @@ -14,18 +14,13 @@ prefixes: default_prefix: hc imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description # was: wikidata_description -- ../slots/has_or_had_identifier # was: wikidata_qid -- ../slots/has_or_had_label # was: wikidata_label -- ../slots/has_or_had_score # was: template_specificity -- ../slots/language -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore # was: TemplateSpecificityScores -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes + - linkml:types + - ../metadata + - ../slots/has_or_had_description # was: wikidata_description + - ../slots/identified_by # was: wikidata_qid + - ../slots/has_or_had_label # was: wikidata_label + - ../slots/has_or_had_score # was: template_specificity + - ../slots/language classes: WikiDataEntry: class_uri: wikibase:Item @@ -66,26 +61,25 @@ classes: - prov:Entity slots: - - has_or_had_identifier # was: wikidata_qid - migrated 2026-01-16 per Rule 53 + - identified_by # was: wikidata_qid - migrated 2026-01-16 per Rule 53 - has_or_had_label # was: wikidata_label - migrated 2026-01-16 per Rule 53 - has_or_had_description # was: wikidata_description - migrated 2026-01-16 per Rule 53 - language - - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - has_or_had_identifier: # was: wikidata_qid - migrated 2026-01-16 per Rule 53 - range: string + identified_by: # was: wikidata_qid - migrated 2026-01-16 per Rule 53 +# range: string required: true pattern: "^Q[0-9]+$" has_or_had_label: # was: wikidata_label - migrated 2026-01-16 per Rule 53 - range: string +# range: string required: false has_or_had_description: # was: wikidata_description - migrated 2026-01-16 per Rule 53 - range: string +# range: string required: false language: - range: string +# range: string required: false pattern: "^[a-z]{2}(-[A-Z]{2})?$" @@ -98,12 +92,12 @@ classes: examples: - value: | - has_or_had_identifier: "Q33506" + identified_by: "Q33506" has_or_had_label: "museum" has_or_had_description: "institution that holds and displays collections" language: en - value: | - has_or_had_identifier: "Q190804" + identified_by: "Q190804" has_or_had_label: "Rijksmuseum" has_or_had_description: "Dutch national museum in Amsterdam" language: en \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikiDataIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikiDataIdentifier.yaml index 041660a7c5..6f6981268c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikiDataIdentifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikiDataIdentifier.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ dct: http://purl.org/dc/terms/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WikiDataIdentifier: description: 'A Wikidata entity identifier (Q-number) that uniquely identifies diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataAlignment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataAlignment.yaml index 65508588e9..adf6e6acbf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataAlignment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataAlignment.yaml @@ -9,39 +9,35 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_label -- ../slots/has_or_had_rationale -- ../slots/has_or_had_type -- ./Label -- ./MappingType -- ./Rationale -- ./WikiDataIdentifier + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_label + - ../slots/has_or_had_rationale + - ../slots/has_or_had_type classes: WikidataAlignment: class_uri: hc:WikidataAlignment description: "Structured metadata for Wikidata entity alignment.\nReplaces fragmented annotations with a proper structured object.\n\n**Example**:\n```yaml\nwikidata_alignment:\n entity_id: Q27032435\n entity_label: \"academic archive\"\n mapping_type: exact\n mapping_rationale: \"AcademicArchive is semantically equivalent to Q27032435\"\n```\n" slots: - - has_or_had_identifier + - identified_by - has_or_had_label - has_or_had_type - has_or_had_rationale slot_usage: - has_or_had_identifier: + identified_by: range: WikiDataIdentifier examples: - value: "qid: Q27032435" has_or_had_label: - range: string +# range: string examples: - value: "academic archive" has_or_had_rationale: - range: string +# range: string examples: - value: "AcademicArchive is semantically equivalent to Q27032435" has_or_had_type: - range: uriorcurie +# range: string # uriorcurie annotations: specificity_score: 0.3 specificity_rationale: Universal utility for Wikidata alignment metadata diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataApiMetadata.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataApiMetadata.yaml index 8749e06185..6732e15d02 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataApiMetadata.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataApiMetadata.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# http: http://www.w3.org/2011/http# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WikidataApiMetadata: description: "Metadata about Wikidata API calls including endpoint, timestamp,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataArchitecture.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataArchitecture.yaml index c28c50bb6c..27c476db0a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataArchitecture.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataArchitecture.yaml @@ -13,9 +13,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ./WikidataEntity -default_range: string + - linkml:types +# default_range: string classes: WikidataArchitecture: description: "Architecture-related properties extracted from Wikidata including\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataClaims.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataClaims.yaml index b236724576..cc13772c0e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataClaims.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataClaims.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WikidataClaims: description: 'Structured Wikidata claims with property metadata and values. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataClassification.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataClassification.yaml index a246d524f5..949cc803dc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataClassification.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataClassification.yaml @@ -10,9 +10,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wikibase: http://wikiba.se/ontology# imports: -- linkml:types -- ./WikidataEntity -default_range: string + - linkml:types +# default_range: string classes: WikidataClassification: description: "Classification properties from Wikidata including instance_of (P31),\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataCollectionInfo.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataCollectionInfo.yaml index fc908acbb3..2c82561d0d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataCollectionInfo.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataCollectionInfo.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# bf: http://id.loc.gov/ontologies/bibframe/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WikidataCollectionInfo: description: "Collection information from Wikidata in a flat structure, capturing\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataContact.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataContact.yaml index 9f9931923c..b4e054afba 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataContact.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataContact.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# vcard: http://www.w3.org/2006/vcard/ns# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WikidataContact: description: "Contact information extracted from Wikidata including phone numbers\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataCoordinates.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataCoordinates.yaml index 50233fb979..c6637d1b97 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataCoordinates.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataCoordinates.yaml @@ -15,8 +15,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WikidataCoordinates: description: "Coordinates from Wikidata P625 (coordinate location property). Includes\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataEnrichment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataEnrichment.yaml index f6edd8da6b..f1719fa902 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataEnrichment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataEnrichment.yaml @@ -9,31 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ./Coordinates -- ./MultilingualAliases -- ./MultilingualDescriptions -- ./MultilingualLabels -- ./WikidataApiMetadata -- ./WikidataArchitecture -- ./WikidataClaims -- ./WikidataClassification -- ./WikidataCollectionInfo -- ./WikidataContact -- ./WikidataCoordinates -- ./WikidataEntity -- ./WikidataIdentifiers -- ./WikidataLocation -- ./WikidataMedia -- ./WikidataOrganization -- ./WikidataRecognition -- ./WikidataResolvedEntities -- ./WikidataSitelinks -- ./WikidataSocialMedia -- ./WikidataTemporal -- ./WikidataTimeValue -- ./WikidataWeb -default_range: string + - linkml:types +# default_range: string classes: WikidataEnrichment: description: "Full Wikidata enrichment data extracted from Wikidata SPARQL/API\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataEntity.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataEntity.yaml index 246e289180..f3b3e5acf0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataEntity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataEntity.yaml @@ -10,8 +10,8 @@ prefixes: wikibase: http://wikiba.se/ontology# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WikidataEntity: description: "Reference to a Wikidata entity (Q-item), including Q-number identifier,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataIdentifiers.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataIdentifiers.yaml index af3c02696d..b902131a02 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataIdentifiers.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataIdentifiers.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WikidataIdentifiers: description: 'External identifiers from Wikidata. Keys are identifier scheme names diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataLocation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataLocation.yaml index f9e4f66ea1..36cc1e2f9f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataLocation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataLocation.yaml @@ -10,10 +10,8 @@ prefixes: geo: http://www.w3.org/2003/01/geo/wgs84_pos# locn: http://www.w3.org/ns/locn# imports: -- linkml:types -- ./WikidataCoordinates -- ./WikidataEntity -default_range: string + - linkml:types +# default_range: string classes: WikidataLocation: description: "Location properties extracted from Wikidata including country (P17),\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataMedia.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataMedia.yaml index 61695dcde6..9bbb475630 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataMedia.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataMedia.yaml @@ -10,8 +10,8 @@ prefixes: foaf: http://xmlns.com/foaf/0.1/ dcterms: http://purl.org/dc/terms/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WikidataMedia: description: "Media files from Wikidata including images (P18), logos (P154),\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataOrganization.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataOrganization.yaml index 635c53962b..0434ffbbc7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataOrganization.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataOrganization.yaml @@ -14,9 +14,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# rdfs: http://www.w3.org/2000/01/rdf-schema# imports: -- linkml:types -- ./WikidataEntity -default_range: string + - linkml:types +# default_range: string classes: WikidataOrganization: description: "Organizational properties extracted from Wikidata, including hierarchical\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataRecognition.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataRecognition.yaml index 1856db5e87..2cd835af15 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataRecognition.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataRecognition.yaml @@ -13,9 +13,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -- ./WikidataEntity -default_range: string + - linkml:types +# default_range: string classes: WikidataRecognition: description: "Awards and recognition information extracted from Wikidata, particularly\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataResolvedEntities.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataResolvedEntities.yaml index 21ae50086c..c781170c8b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataResolvedEntities.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataResolvedEntities.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WikidataResolvedEntities: description: 'Cache of resolved Wikidata property and entity metadata. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataSitelinks.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataSitelinks.yaml index 7edace4785..68b7b49065 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataSitelinks.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataSitelinks.yaml @@ -8,8 +8,8 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WikidataSitelinks: description: 'Wikipedia sitelinks. Keys are wiki identifiers (e.g., enwiki, nlwiki) diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataSocialMedia.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataSocialMedia.yaml index ff93028109..e6b98d6962 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataSocialMedia.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataSocialMedia.yaml @@ -14,8 +14,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WikidataSocialMedia: description: "Social media identifiers and metrics extracted from Wikidata. Includes\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataTemporal.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataTemporal.yaml index b15aaeee05..7bda388688 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataTemporal.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataTemporal.yaml @@ -9,10 +9,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# time: http://www.w3.org/2006/time# imports: -- linkml:types -- ../slots/temporal_extent -- ./TimeSpan -default_range: string + - linkml:types + - ../slots/temporal_extent +# default_range: string classes: WikidataTemporal: description: "Temporal properties extracted from Wikidata including inception\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataTimeValue.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataTimeValue.yaml index 6425f9615d..aa58ee3b55 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataTimeValue.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataTimeValue.yaml @@ -10,8 +10,8 @@ prefixes: wikibase: http://wikiba.se/ontology# time: http://www.w3.org/2006/time# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WikidataTimeValue: description: "Wikidata time value with precision metadata. Records temporal information\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataWeb.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataWeb.yaml index 7558df8fb4..6ebc4b4d5e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WikidataWeb.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WikidataWeb.yaml @@ -14,8 +14,8 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: WikidataWeb: description: "Web presence information extracted from Wikidata including official\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WomensArchives.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WomensArchives.yaml index 8aedf928db..6c4dba032c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WomensArchives.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WomensArchives.yaml @@ -15,37 +15,26 @@ prefixes: org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/hold_or_held_record_set_type -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment -- ./WomensArchivesRecordSetType -- ./WomensArchivesRecordSetTypes + - ../classes/AgentType + - linkml:types + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/hold_or_held_record_set_type + - ../slots/is_or_was_related_to classes: WomensArchives: description: Archives of documents and records written by and about women. Women's archives (Frauenarchive) specialize in collecting, preserving, and providing access to materials documenting women's history, feminist movements, women's organizations, and the experiences and contributions of women across all fields of endeavor. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - has_or_had_type - hold_or_held_record_set_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by exact_mappings: - wd:Q130217628 close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WomensArchivesRecordSetType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WomensArchivesRecordSetType.yaml index c08e500f2b..9e53978687 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WomensArchivesRecordSetType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WomensArchivesRecordSetType.yaml @@ -8,12 +8,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# wd: http://www.wikidata.org/entity/ imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/is_or_was_related_to -- ../slots/specificity_annotation -- ./CollectionType -- ./WikidataAlignment + - linkml:types + - ../slots/has_or_had_score + - ../slots/is_or_was_related_to classes: WomensArchivesRecordSetType: description: A rico:RecordSetType for classifying collections documenting women's history, feminist movements, and women's experiences. @@ -28,7 +25,6 @@ classes: see_also: - WomensArchives slots: - - specificity_annotation - has_or_had_score - is_or_was_related_to annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WomensArchivesRecordSetTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WomensArchivesRecordSetTypes.yaml index 91d6d30492..12f333b9e1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WomensArchivesRecordSetTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WomensArchivesRecordSetTypes.yaml @@ -17,21 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/organizational_principle -- ../slots/organizational_principle_uri -- ../slots/record_holder -- ../slots/record_holder_note -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WomensArchives -- ./WomensArchivesRecordSetType + - ./WomensArchivesRecordSetType + - linkml:types + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/organizational_principle + - ../slots/organizational_principle_uri + - ../slots/record_holder + - ../slots/record_holder_note + - ../slots/record_set_type classes: WomensOrganizationFonds: is_a: WomensArchivesRecordSetType @@ -39,7 +33,7 @@ classes: description: "A rico:RecordSetType for Women's organization records.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ fonds \norganizational principle as defined by rico-rst:Fonds.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Fonds @@ -50,7 +44,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -75,16 +68,13 @@ classes: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept FeministPapersCollection: is_a: WomensArchivesRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Feminist movement papers.\n\n**RiC-O Alignment**:\n\ This class is a specialized rico:RecordSetType following the collection \norganizational\ \ principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -95,7 +85,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -118,16 +107,13 @@ classes: Inverse of rico:isOrWasHolderOf. annotations: custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept WomensHistoryCollection: is_a: WomensArchivesRecordSetType class_uri: rico:RecordSetType description: "A rico:RecordSetType for Women's history documentation.\n\n**RiC-O\ \ Alignment**:\nThis class is a specialized rico:RecordSetType following the\ \ collection \norganizational principle as defined by rico-rst:Collection.\n" - exact_mappings: + broad_mappings: - rico:RecordSetType related_mappings: - rico-rst:Collection @@ -138,7 +124,6 @@ classes: - rico:RecordSetType slots: - has_or_had_type - - specificity_annotation - has_or_had_score - organizational_principle - organizational_principle_uri @@ -161,6 +146,3 @@ classes: Inverse of rico:isOrWasHolderOf. annotations: custodian_types: '[''*'']' - broad_mappings: - - rico:RecordSetType - - skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WordCount.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WordCount.yaml index 1c9adac0fc..3062b97643 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WordCount.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WordCount.yaml @@ -14,8 +14,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_quantity + - linkml:types + - ../slots/has_or_had_quantity classes: WordCount: class_uri: schema:QuantitativeValue diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WorkExperience.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WorkExperience.yaml index 15a2fc0e4f..d84d9f6105 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WorkExperience.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WorkExperience.yaml @@ -11,28 +11,16 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../metadata -- ../slots/has_or_had_description -- ../slots/has_or_had_location -- ../slots/has_or_had_score -- ../slots/is_or_was_current -- ../slots/is_or_was_employed_by -- ../slots/is_or_was_position -- ../slots/specificity_annotation -- ../slots/temporal_extent -- ./Employer -- ./Experience -- ./Location -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./TimeSpan -- ./URL -- ./URLType -- ./URLTypes -default_range: string + - linkml:types + - ../metadata + - ../slots/has_or_had_description + - ../slots/has_or_had_location + - ../slots/has_or_had_score + - ../slots/is_or_was_current + - ../slots/is_or_was_employed_by + - ../slots/is_or_was_position + - ../slots/temporal_extent +# default_range: string classes: WorkExperience: is_a: Experience @@ -84,12 +72,11 @@ classes: - is_or_was_current - has_or_had_description - is_or_was_position - - specificity_annotation - has_or_had_score - has_or_had_location slot_usage: is_or_was_position: - range: string +# range: string required: true examples: - value: Staff Adviseur @@ -123,13 +110,13 @@ classes: examples: - value: true has_or_had_location: - range: string - inlined: true +# range: string + inlined: false # Fixed invalid inline for primitive type examples: - value: "Location:\n city: \"Utrecht\"\n country: \"Netherlands\"\n" - value: "Location:\n city: \"Amsterdam\"\n region: \"Noord-Holland\"\n country: \"Netherlands\"\n" has_or_had_description: - range: string +# range: string comments: - Inlined in LinkedInProfile.experience[] as multivalued list - Preserves raw LinkedIn date formats for provenance diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WorkRevision.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WorkRevision.yaml index 1ecf966ae8..aaf0ea7512 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WorkRevision.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WorkRevision.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/is_or_was_revision_of + - linkml:types + - ../slots/is_or_was_revision_of classes: WorkRevision: class_uri: prov:Entity diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WorldCatIdentifier.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WorldCatIdentifier.yaml index dc9a305676..62e3f9a7b4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WorldCatIdentifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WorldCatIdentifier.yaml @@ -7,11 +7,11 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code + - linkml:types + - ../slots/has_or_had_code classes: WorldCatIdentifier: - class_uri: schema:identifier + class_uri: hc:WorldCatIdentifier description: 'A WorldCat OCLC identifier. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WorldHeritageSite.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WorldHeritageSite.yaml index 6c544a9e99..d98333a7a5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WorldHeritageSite.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WorldHeritageSite.yaml @@ -2,41 +2,32 @@ id: https://nde.nl/ontology/hc/class/WorldHeritageSite name: WorldHeritageSite title: WorldHeritageSite Type imports: -- linkml:types -- ../slots/custodian_only -- ../slots/has_or_had_identifier -- ../slots/has_or_had_score -- ../slots/has_or_had_type -- ../slots/is_or_was_related_to -- ../slots/label_de -- ../slots/label_es -- ../slots/label_fr -- ../slots/record_set_type -- ../slots/specificity_annotation -- ./ArchiveOrganizationType -- ./SpecificityAnnotation -- ./TemplateSpecificityScore -- ./TemplateSpecificityType -- ./TemplateSpecificityTypes -- ./WikiDataEntry -- ./WikiDataIdentifier -- ./WikidataAlignment + - ../classes/AgentType + - linkml:types + - ../slots/custodian_only + - ../slots/identified_by + - ../slots/has_or_had_score + - ../slots/has_or_had_type + - ../slots/is_or_was_related_to + - ../slots/label_de + - ../slots/label_es + - ../slots/label_fr + - ../slots/record_set_type classes: WorldHeritageSite: description: A place of cultural or natural significance listed by UNESCO as a World Heritage Site (UNESCO-Welterbe). In the heritage custodian context, this designates institutions managing sites that have been inscribed on the UNESCO World Heritage List for their outstanding universal value. World Heritage Sites may include cultural monuments, historic cities, natural landscapes, and mixed heritage properties. - is_a: ArchiveOrganizationType + is_a: CustodianType class_uri: skos:Concept slots: - has_or_had_type - - specificity_annotation - has_or_had_score - is_or_was_related_to - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null has_or_had_type: equals_expression: '["hc:FeatureCustodianType"]' is_or_was_related_to: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/WritingSystem.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/WritingSystem.yaml index 6b6dfebd92..9006dc0e8f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/WritingSystem.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/WritingSystem.yaml @@ -8,8 +8,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_code + - linkml:types + - ../slots/has_or_had_code classes: WritingSystem: class_uri: skos:Concept diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/XPath.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/XPath.yaml index f3119840de..8b0087f9d8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/XPath.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/XPath.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: XPath: description: 'An XPath expression used to locate a specific element within an diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/XPathScore.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/XPathScore.yaml index 52455b3410..0d22dcfcd3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/XPathScore.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/XPathScore.yaml @@ -7,8 +7,8 @@ prefixes: schema: http://schema.org/ default_prefix: hc imports: -- linkml:types -- ../slots/has_or_had_score + - linkml:types + - ../slots/has_or_had_score classes: XPathScore: class_uri: schema:Rating diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeChannel.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeChannel.yaml index 7b65586534..e64e3421ce 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeChannel.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeChannel.yaml @@ -9,10 +9,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# foaf: http://xmlns.com/foaf/0.1/ imports: -- linkml:types -- ../slots/has_or_had_language -- ./Language -default_range: string + - linkml:types + - ../slots/has_or_had_language +# default_range: string classes: YoutubeChannel: description: "YouTube channel metadata including channel ID, title, description,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeComment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeComment.yaml index ae499ca6b5..268306e011 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeComment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeComment.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# sioc: http://rdfs.org/sioc/ns# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: YoutubeComment: description: "YouTube video comment including comment ID, author information,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeEnrichment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeEnrichment.yaml index 26c0268388..7e92697c06 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeEnrichment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeEnrichment.yaml @@ -9,36 +9,21 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# dcat: http://www.w3.org/ns/dcat# imports: -- linkml:types -- ./LLMVerification -- ./RelatedYoutubeVideo -- ./YoutubeChannel -- ./YoutubeProvenance -- ./YoutubeSocialLink -- ./YoutubeVideo -default_range: string + - linkml:types +# default_range: string classes: YoutubeEnrichment: - description: "YouTube channel and video data for a heritage institution, supporting\ - \ both flat and nested data formats. Includes channel metadata, videos, social\ - \ links, and LLM verification results.\nOntology mapping rationale: - class_uri\ - \ is prov:Entity because YouTube enrichment data is a\n provenance-tracked\ - \ entity derived from YouTube API.\n- close_mappings includes dcat:Dataset as\ - \ the enrichment represents\n a dataset of YouTube information.\n- related_mappings\ - \ includes schema:BroadcastChannel for the channel\n aspect and prov:Collection\ - \ for the video collection." + description: "YouTube channel and video data for a heritage institution." class_uri: prov:Entity close_mappings: - - dcat:Dataset + - dcat:Dataset related_mappings: - - schema:BroadcastChannel - - prov:Collection + - schema:BroadcastChannel + - prov:Collection annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration - custodian_types: '[''*'']' + custodian_types: '["*"]' slots: - - source_url - - has_api_version - - provenance - - country + - source_url + - country diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeProvenance.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeProvenance.yaml index 1fb71ad12e..e400411937 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeProvenance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeProvenance.yaml @@ -9,9 +9,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# pav: http://purl.org/pav/ imports: -- linkml:types -- ../enums/DataTierEnum -default_range: string + - linkml:types + - ../enums/DataTierEnum +# default_range: string classes: YoutubeProvenance: description: "Provenance information for YouTube enrichment including source URL,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeSocialLink.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeSocialLink.yaml index 9e5ab5f49d..6a9d4994e1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeSocialLink.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeSocialLink.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# foaf: http://xmlns.com/foaf/0.1/ imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: YoutubeSocialLink: description: "Social media link from a YouTube channel's about page, linking to\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeSourceRecord.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeSourceRecord.yaml index 91eeca0599..b25f0ffdda 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeSourceRecord.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeSourceRecord.yaml @@ -8,9 +8,9 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../enums/DataTierEnum -default_range: string + - linkml:types + - ../enums/DataTierEnum +# default_range: string classes: YoutubeSourceRecord: description: "YouTube source record for provenance tracking, documenting API calls,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeTranscript.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeTranscript.yaml index 6a84e0171a..b707f8d1da 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeTranscript.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeTranscript.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# oa: http://www.w3.org/ns/oa# imports: -- linkml:types -default_range: string + - linkml:types +# default_range: string classes: YoutubeTranscript: description: "YouTube video transcript including video ID, language, transcript\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeVideo.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeVideo.yaml index 2c789914a7..0224b6d970 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeVideo.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeVideo.yaml @@ -8,17 +8,9 @@ prefixes: prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# imports: -- linkml:types -- ../slots/has_or_had_language -- ./Language -- ./Quantity -- ./SourceCommentCount -- ./Tag -- ./Timestamp -- ./YoutubeComment -- ./YoutubeTranscript -- ./Resolution -default_range: string + - linkml:types + - ../slots/has_or_had_language +# default_range: string classes: YoutubeVideo: description: "Individual YouTube video metadata including video ID, title, description,\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/deprecated/FindingAidMetadata.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/deprecated/FindingAidMetadata.yaml index 6159d13c7f..1c704e61dc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/deprecated/FindingAidMetadata.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/deprecated/FindingAidMetadata.yaml @@ -35,14 +35,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# default_prefix: hc -default_range: string +# default_range: string imports: - linkml:types -- ../enums/SubGuideTypeEnum -- ../enums/RelationshipTypeEnum -- ../enums/ExternalResourceTypeEnum -- ../enums/LinkTypeEnum + - ../enums/SubGuideTypeEnum + - ../enums/RelationshipTypeEnum + - ../enums/ExternalResourceTypeEnum + - ../enums/LinkTypeEnum # ============================================================================ # ENUMERATIONS @@ -374,13 +374,13 @@ classes: slot_usage: period_name: description: Name of the period - range: string +# range: string required: true aliases: - name period: description: Period as single string (e.g., "1945-1965") - range: string +# range: string period_start: description: Start year range: TemporalValue @@ -393,7 +393,7 @@ classes: - end period_description: description: Description of the period - range: string +# range: string aliases: - description @@ -414,15 +414,15 @@ classes: slot_usage: date: description: ISO 8601 date (YYYY-MM-DD or YYYY) - range: string +# range: string required: true event: description: Description of what happened (Dutch or original) - range: string +# range: string required: true event_en: description: English translation of event description - range: string +# range: string # -------------------------------------------------------------------------- # Geographic Coverage Class (expanded) @@ -475,7 +475,7 @@ classes: outbound_to: description: Migration destination countries/regions multivalued: true - exact_mappings: + close_mappings: - dcterms:spatial - schema:spatialCoverage @@ -522,7 +522,7 @@ classes: is_or_was_access_restricted: description: Whether access to this sub-guide is restricted range: boolean - exact_mappings: + close_mappings: - rico:isOrWasPartOf # -------------------------------------------------------------------------- @@ -734,7 +734,7 @@ classes: description: Unique identifier for this claim claim_type: description: Type of claim - range: string +# range: string required: true claim_value: description: The extracted text/data value @@ -907,7 +907,7 @@ slots: id: slot_uri: dcterms:identifier description: Unique identifier for this finding aid metadata record - range: string +# range: string required: true examples: - value: "na-guide-familiegeschiedenis" @@ -915,7 +915,7 @@ slots: slug: slot_uri: schema:identifier description: URL-friendly slug identifier - range: string +# range: string required: true pattern: "^[a-z0-9-]+$" examples: @@ -975,7 +975,7 @@ slots: - REFERENCE_WORK (Q13136) - Encyclopedias, handbooks See FindingAidType.yaml for complete class definitions and ontology alignments. - range: string +# range: string required: true pattern: "^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$" examples: @@ -989,7 +989,7 @@ slots: wikidata_class: slot_uri: skos:exactMatch description: Wikidata class ID for this finding aid type - range: string +# range: string pattern: "^Q[0-9]+$" examples: - value: "Q117649202" @@ -1028,7 +1028,7 @@ slots: topics: slot_uri: dcterms:subject description: Subject topics covered by this finding aid - range: string +# range: string multivalued: true examples: - value: "genealogy" @@ -1094,7 +1094,7 @@ slots: finding_aid_notes: slot_uri: skos:note description: General notes about this finding aid - range: string +# range: string multivalued: true # Page structure slots @@ -1129,129 +1129,129 @@ slots: # Nested class slots (used within classes above) nl: description: Dutch language text - range: string +# range: string en: description: English language text - range: string +# range: string de: description: German language text - range: string +# range: string fr: description: French language text - range: string +# range: string ghcid: slot_uri: hc:ghcid description: Global Heritage Custodian Identifier - range: string +# range: string isil: slot_uri: dcterms:identifier description: ISIL code (ISO 15511) - range: string +# range: string name: slot_uri: schema:name description: Human-readable name - range: string +# range: string wikidata: slot_uri: skos:exactMatch description: Wikidata entity ID - range: string +# range: string start: slot_uri: schema:startDate description: Start of temporal coverage - range: string +# range: string end: slot_uri: schema:endDate description: End of temporal coverage - range: string +# range: string notes: slot_uri: skos:note description: Additional notes - range: string +# range: string multivalued: true primary: slot_uri: dcterms:spatial description: Primary geographic areas - range: string +# range: string multivalued: true scope: slot_uri: dcterms:description description: Scope description - range: string +# range: string secondary: slot_uri: dcterms:spatial description: Secondary geographic areas - range: string +# range: string multivalued: true related: slot_uri: dcterms:spatial description: Related geographic areas - range: string +# range: string multivalued: true historical_regions: slot_uri: dcterms:spatial description: Historical region names - range: string +# range: string multivalued: true colonial: slot_uri: dcterms:spatial description: Colonial territories - range: string +# range: string multivalued: true international: slot_uri: dcterms:spatial description: International scope - range: string +# range: string multivalued: true major_cities: slot_uri: dcterms:spatial description: Major cities - range: string +# range: string multivalued: true inbound_from: slot_uri: dcterms:spatial description: Migration origin countries/regions - range: string +# range: string multivalued: true outbound_to: slot_uri: dcterms:spatial description: Migration destination countries/regions - range: string +# range: string multivalued: true title_nl: slot_uri: dcterms:title description: Dutch title - range: string +# range: string title_en: slot_uri: dcterms:title description: English title - range: string +# range: string type: slot_uri: dcterms:type description: Resource type - range: string +# range: string date_retrieved: slot_uri: prov:endedAtTime @@ -1261,7 +1261,7 @@ slots: retrieval_agent: slot_uri: prov:wasAssociatedWith description: Agent/tool that retrieved data - range: string +# range: string source_url: slot_uri: prov:used @@ -1271,22 +1271,22 @@ slots: extraction_notes: slot_uri: skos:note description: Notes about extraction process - range: string +# range: string extraction_method: slot_uri: prov:wasGeneratedBy description: Extraction method used - range: string +# range: string crawler_version: slot_uri: prov:wasAssociatedWith description: Version of crawler used - range: string +# range: string html_snapshot_path: slot_uri: prov:used description: Path to HTML snapshot - range: string +# range: string claims_count: slot_uri: schema:numberOfItems @@ -1296,12 +1296,12 @@ slots: validation_status: slot_uri: schema:status description: Validation status - range: string +# range: string sub_guide_temporal_coverage: slot_uri: dcterms:temporal description: Time period covered by sub-guide (free text) - range: string +# range: string examples: - value: "1811-1935" - value: "before 1811" @@ -1310,7 +1310,7 @@ slots: sub_guide_description: slot_uri: dcterms:description description: Brief description of sub-guide content - range: string +# range: string sub_guide_type: slot_uri: dcterms:type @@ -1325,7 +1325,7 @@ slots: resource_description: slot_uri: dcterms:description description: Brief description of an external resource - range: string +# range: string examples: - value: "Dutch genealogical database aggregator" - value: "Center for Family History" @@ -1334,17 +1334,17 @@ slots: full_name: slot_uri: schema:legalName description: Full official name - range: string +# range: string location: slot_uri: schema:location description: Physical location - range: string +# range: string has_or_had_access_condition: slot_uri: dcterms:accessRights description: Access restrictions or requirements - range: string +# range: string # Related guide slots relationship: @@ -1356,12 +1356,12 @@ slots: restriction_type: slot_uri: dcterms:type description: Type of access restriction - range: string +# range: string restriction_description: slot_uri: dcterms:description description: Description of restriction - range: string +# range: string years_restricted: slot_uri: schema:duration @@ -1377,59 +1377,59 @@ slots: period_name: slot_uri: skos:prefLabel description: Name of the period - range: string +# range: string period: slot_uri: dcterms:temporal description: Period as string - range: string +# range: string period_start: slot_uri: schema:startDate description: Start of period - range: string +# range: string period_end: slot_uri: schema:endDate description: End of period - range: string +# range: string period_description: slot_uri: dcterms:description description: Description of period - range: string +# range: string # Key date slots date: slot_uri: dcterms:date description: Date value - range: string +# range: string event: slot_uri: schema:description description: Event description - range: string +# range: string event_en: slot_uri: schema:description description: Event description in English - range: string +# range: string # Web claim slots claim_id: slot_uri: dcterms:identifier description: Claim identifier - range: string +# range: string claim_type: slot_uri: dcterms:type description: Type of claim - range: string +# range: string claim_value: slot_uri: rdf:value description: Extracted value - range: string +# range: string claim_source_url: slot_uri: prov:used @@ -1439,17 +1439,17 @@ slots: xpath: slot_uri: hc:xpath description: XPath to element - range: string +# range: string css_selector: slot_uri: hc:cssSelector description: CSS selector to element - range: string +# range: string html_tag: slot_uri: hc:htmlTag description: HTML tag name - range: string +# range: string claim_extraction_date: slot_uri: prov:generatedAtTime @@ -1464,18 +1464,18 @@ slots: claim_context: slot_uri: hc:context description: Surrounding context - range: string +# range: string html_file: slot_uri: prov:used description: Path to HTML file - range: string +# range: string # Page section slots section_id: slot_uri: dcterms:identifier description: Section identifier - range: string +# range: string heading_level: slot_uri: hc:headingLevel @@ -1485,17 +1485,17 @@ slots: heading_text: slot_uri: dcterms:title description: Heading text - range: string +# range: string heading_text_en: slot_uri: dcterms:title description: Heading text in English - range: string +# range: string content_blocks: slot_uri: schema:text description: Content paragraphs - range: string +# range: string multivalued: true sub_sections: @@ -1519,14 +1519,14 @@ slots: list_items: slot_uri: schema:itemListElement description: List items - range: string +# range: string multivalued: true # Page link slots link_text: slot_uri: schema:name description: Link text - range: string +# range: string link_url: slot_uri: schema:url @@ -1541,7 +1541,7 @@ slots: link_context: slot_uri: hc:context description: Link context - range: string +# range: string is_sub_guide: slot_uri: hc:isSubGuide @@ -1552,22 +1552,22 @@ slots: card_title: slot_uri: dcterms:title description: Card title - range: string +# range: string card_title_en: slot_uri: dcterms:title description: Card title in English - range: string +# range: string card_description: slot_uri: dcterms:description description: Card description - range: string +# range: string card_description_en: slot_uri: dcterms:description description: Card description in English - range: string +# range: string card_url: slot_uri: schema:url diff --git a/frontend/public/schemas/20251121/linkml/modules/enums/AttestationConfidenceEnum.yaml b/frontend/public/schemas/20251121/linkml/modules/enums/AttestationConfidenceEnum.yaml new file mode 100644 index 0000000000..0ddbc47d1f --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/enums/AttestationConfidenceEnum.yaml @@ -0,0 +1,175 @@ +# AttestationConfidenceEnum - Confidence levels for lexical attestations +# +# Enumeration of confidence levels for linguistic form attestations in structured_aliases. +# Used to express certainty about the validity of terminology from various corpora. +# +# Aligned with: +# - OntoLex-Lemon FrAC (Frequency, Attestation, Corpus Information) +# - PROV-O (Provenance Ontology) confidence patterns +# - W3C Data Quality Vocabulary (DQV) certainty levels +# - ISO 25964 (Thesauri and interoperability) +# +# Created: January 2026 + +id: https://nde.nl/ontology/hc/enum/AttestationConfidenceEnum +name: AttestationConfidenceEnum +title: Attestation Confidence Enumeration + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + frac: http://www.w3.org/ns/lemon/frac# + prov: http://www.w3.org/ns/prov# + dqv: http://www.w3.org/ns/dqv# + skos: http://www.w3.org/2004/02/skos/core# + oa: http://www.w3.org/ns/oa# + +default_prefix: hc + +imports: + - linkml:types + +enums: + AttestationConfidenceEnum: + description: | + Confidence levels for lexical attestations in structured_aliases. + + Expresses certainty about the validity and reliability of terminology + extracted from various corpora and terminology databases. + + **OntoLex-FrAC Alignment**: + + Complements `frac:Attestation` by providing a confidence qualifier + for the attestation observation. Used in conjunction with: + - `source`: URI of the corpus/terminology database + - `temporal_extent`: Time period of validity (begin_of_the_begin/end_of_the_end) + + **Use Cases**: + + 1. **Authoritative sources**: HIGH confidence for official thesauri (AAT, CHT, GND) + 2. **Translations**: MEDIUM confidence for schema.org translations + 3. **Inferred terms**: LOW confidence for machine-translated or derived terms + 4. **Deprecated terms**: Mark with end_of_the_end + appropriate confidence + + **Example**: + + ```yaml + structured_aliases: + - literal_form: accepteert + predicate: EXACT_SYNONYM + in_language: nl + source: https://data.cultureelerfgoed.nl/term/id/cht + annotations: + attestation_confidence: HIGH + corpus: Cultuurhistorische Thesaurus (RCE) + begin_of_the_begin: "2010-01-01" + ``` + + permissible_values: + HIGH: + description: | + Term attested in authoritative, curated terminology source. + High confidence in accuracy and currency of the linguistic form. + + **Indicators**: + - Published in official thesaurus or controlled vocabulary + - Maintained by recognized standards body + - Subject to editorial review process + - Versioned and dated + + **Example Sources**: + - Getty AAT (Art & Architecture Thesaurus) + - Cultuurhistorische Thesaurus (RCE/CHT) + - Gemeinsame Normdatei (GND) + - Library of Congress Subject Headings (LCSH) + - ISO standard terminologies + meaning: dqv:qualityAssessment + annotations: + confidence_score: "0.9" + frac_alignment: frac:attestedIn + verification_level: "authoritative" + category: "confidence_level" + + MEDIUM: + description: | + Term attested in reliable but less authoritative source. + Moderate confidence; may require verification for formal use. + + **Indicators**: + - Published in widely-used vocabulary (e.g., schema.org) + - Community-maintained terminology + - Translations from authoritative sources + - Wikipedia/Wikidata derived terms + + **Example Sources**: + - schema.org translations + - Wikidata labels + - Domain-specific glossaries + - Professional association terminology + annotations: + confidence_score: "0.7" + frac_alignment: frac:attestedIn + verification_level: "reliable" + category: "confidence_level" + + LOW: + description: | + Term inferred, machine-translated, or from unverified source. + Low confidence; should be verified before formal use. + + **Indicators**: + - Machine translation output + - Inferred from related terms + - User-contributed without review + - Historical usage (may be outdated) + + **Example Sources**: + - Machine translation services + - Automated terminology extraction + - Unreviewed crowdsourced content + - Legacy data without provenance + annotations: + confidence_score: "0.4" + frac_alignment: frac:attestedIn + verification_level: "unverified" + category: "confidence_level" + + UNCERTAIN: + description: | + Confidence level cannot be determined. + Term may be valid but source reliability is unknown. + + **Indicators**: + - Source not documented + - Provenance chain broken + - Conflicting attestations + - Historical term with unclear status + + **Use Case**: + Placeholder when migrating legacy data without provenance. + annotations: + confidence_score: "0.0" + frac_alignment: frac:attestedIn + verification_level: "unknown" + category: "confidence_level" + + DEPRECATED: + description: | + Term was previously valid but is now deprecated. + Should not be used for new data; retained for historical reference. + + **Indicators**: + - Superseded by preferred term + - Withdrawn from source vocabulary + - Considered offensive or inappropriate + - Technically obsolete + + **Usage**: + Set `end_of_the_end` to deprecation date. + Use `deprecated_element_has_exact_replacement` for successor term. + annotations: + confidence_score: "0.0" + frac_alignment: frac:attestedIn + verification_level: "deprecated" + is_deprecated: "true" + category: "confidence_level" diff --git a/frontend/public/schemas/20251121/linkml/modules/enums/OAIDeletedRecordPolicyEnum.yaml b/frontend/public/schemas/20251121/linkml/modules/enums/OAIDeletedRecordPolicyEnum.yaml index 89b36d07a6..a1f984f829 100644 --- a/frontend/public/schemas/20251121/linkml/modules/enums/OAIDeletedRecordPolicyEnum.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/enums/OAIDeletedRecordPolicyEnum.yaml @@ -12,7 +12,7 @@ enums: Determines how the repository handles records that have been deleted. permissible_values: - false: + 'no': description: | Repository does not maintain information about deletions. diff --git a/frontend/public/schemas/20251121/linkml/modules/metadata.yaml b/frontend/public/schemas/20251121/linkml/modules/metadata.yaml index a781a11a65..f416bae76e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/metadata.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/metadata.yaml @@ -15,6 +15,7 @@ prefixes: # Removed heritage: - duplicate of hc: # Wikidata shorthand (wd: is commonly used in SPARQL, wikidata: is longform) wd: http://www.wikidata.org/entity/ + wikidata: http://www.wikidata.org/entity/ skos: http://www.w3.org/2004/02/skos/core# # Darwin Core vocabulary (biodiversity) dwc: http://rs.tdwg.org/dwc/terms/ @@ -77,7 +78,7 @@ prefixes: nif: http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-core# default_prefix: hc -default_range: string +# default_range: string imports: - linkml:types diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/accept.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/accept.yaml new file mode 100644 index 0000000000..7a56e30d8a --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/accept.yaml @@ -0,0 +1,106 @@ +id: https://nde.nl/ontology/hc/slot/accept +name: accept +title: Accept +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: https://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + gr: http://purl.org/goodrelations/v1# + odrl: http://www.w3.org/ns/odrl/2/ +imports: +- linkml:types +default_prefix: hc +slots: + accept: + slot_uri: hc:accept + description: >- + To consent to receive or undertake something offered. + alt_descriptions: + nl: >- + Toestemmen om iets aangeboden te ontvangen of op zich te nemen. + de: >- + Zustimmen, etwas Angebotenes zu empfangen oder zu übernehmen. + fr: >- + Consentir à recevoir ou entreprendre quelque chose d'offert. + ar: >- + الموافقة على استلام أو تولي شيء معروض. + id: >- + Menyetujui untuk menerima atau melakukan sesuatu yang ditawarkan. + zh: >- + 同意接收或承担所提供的事物。 + es: >- + Consentir en recibir o emprender algo ofrecido. + structured_aliases: + - literal_form: accepteert + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: akzeptiert + predicate: EXACT_SYNONYM + in_language: de + - literal_form: accepte + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يقبل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: menerima + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 接受 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: acepta + predicate: EXACT_SYNONYM + in_language: es + range: string + multivalued: true + + # Cardinality + minimum_cardinality: 0 + + # Semantic mappings (SKOS predicates) + # From: schemaorg.owl, goodrelations.owl, CIDOC_CRM_v7.1.3.rdf, odrl.ttl + close_mappings: + - schema:AcceptAction # schemaorg.owl: Action representing acceptance + - crm:P22i_acquired_title_through # CIDOC-CRM: inverse of title transfer (receiver) + related_mappings: + - crm:E8_Acquisition # CIDOC-CRM: Transfer of legal ownership + - crm:P24_transferred_title_of # CIDOC-CRM: Physical thing involved in acquisition + - crm:P22_transferred_title_to # CIDOC-CRM: Actor acquiring ownership + - odrl:permission # ODRL: Permission to perform action (odrl.ttl) + narrow_mappings: + - schema:paymentAccepted # schemaorg.owl: Payment methods accepted + - schema:acceptsReservations # schemaorg.owl: Accepts reservations + - schema:acceptedPaymentMethod # schemaorg.owl: Accepted payment method + - schema:acceptedOffer # schemaorg.owl: The offer accepted + - schema:acceptedAnswer # schemaorg.owl: Accepted answer to question + - schema:currenciesAccepted # schemaorg.owl: Currencies accepted + - gr:acceptedPaymentMethods # goodrelations.owl: Payment methods accepted by business + + # Multilingual aliases + aliases: + - accepts_or_accepted + + # Project-specific annotations + annotations: + # RAG retrieval score (0.0-1.0) + specificity_score: 0.5 + + # Structured examples + examples: + - value: '["credit_card", "debit_card", "cash", "iDEAL", "contactless"]' + description: Payment methods accepted by a Dutch museum + - value: '["conservation_contracts", "digitization_requests"]' + description: External work types accepted by a regional archive + - value: '["visiting_scholar", "research_fellowship", "artist_residency"]' + description: Residency programs accepted by a research library + + # Development notes + todos: + - "Add slot_usage examples for different domain classes (20260202T1645)" + + # Revision history + comments: + - "Migration: altered name from accepts_or_accepted to accept for consistency (20260202T1639)" + - "Migration: slot_fixes.yaml (20260114)" \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/affect.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/affect.yaml new file mode 100644 index 0000000000..18e48e2fbe --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/affect.yaml @@ -0,0 +1,75 @@ +id: https://nde.nl/ontology/hc/slot/affect +name: affect +title: affect +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ +default_prefix: hc +imports: +- linkml:types +slots: + affect: + title: Affect + description: >- + To have an effect on; make a difference to. + alt_descriptions: + nl: >- + Een effect hebben op; verschil maken voor. + de: >- + Einen Effekt haben auf; einen Unterschied machen für. + fr: >- + Avoir un effet sur; faire une différence pour. + ar: >- + أن يكون له تأثير على؛ إحداث فرق في. + id: >- + Memiliki efek pada; membuat perbedaan untuk. + zh: >- + 对……产生影响;对……有所改变。 + es: >- + Tener un efecto en; hacer una diferencia para. + structured_aliases: + - literal_form: beïnvloedt + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: beeinflusst + predicate: EXACT_SYNONYM + in_language: de + - literal_form: affecte + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يؤثر + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mempengaruhi + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 影响 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: afecta + predicate: EXACT_SYNONYM + in_language: es + slot_uri: hc:affect + range: string # uriorcurie + # range: Organization + multivalued: true + annotations: + custodian_types: '["*"]' + specificity_score: 0.4 + specificity_rationale: Broad applicability across custodian types. + # Semantic mappings (SKOS predicates) + # From: prov-o.ttl - PROV-O Influence model + exact_mappings: + - prov:influenced # prov-o.ttl: Inverse of wasInfluencedBy + close_mappings: + - prov:wasInfluencedBy # prov-o.ttl: Entity/Activity/Agent was influenced by another + related_mappings: + - prov:Influence # prov-o.ttl: Class for qualified influence relationships + - prov:ActivityInfluence # prov-o.ttl: Activity's effect on another resource + - prov:EntityInfluence # prov-o.ttl: Entity's effect on another resource + - prov:AgentInfluence # prov-o.ttl: Agent's effect on another resource + - crm:P15_was_influenced_by # CIDOC-CRM: Activity influenced by entity/event + aliases: + - affects_or_affect diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/aggregate_from.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/aggregate_from.yaml new file mode 100644 index 0000000000..32ac381e80 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/aggregate_from.yaml @@ -0,0 +1,88 @@ +id: https://nde.nl/ontology/hc/slot/aggregate_from +name: aggregate_from +title: aggregate from +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + ore: http://www.openarchives.org/ore/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + edm: http://www.europeana.eu/schemas/edm/ + dcat: http://www.w3.org/ns/dcat# +imports: +- linkml:types +default_prefix: hc +slots: + aggregate_from: + description: >- + To collect and combine content or data from multiple distinct sources + into a single, unified location or view. + alt_descriptions: + nl: >- + Inhoud of gegevens van meerdere afzonderlijke bronnen verzamelen en + combineren tot één enkele, uniforme locatie of weergave. + de: >- + Inhalte oder Daten aus mehreren verschiedenen Quellen sammeln und + zu einem einzigen, einheitlichen Ort oder einer Ansicht kombinieren. + fr: >- + Collecter et combiner du contenu ou des données provenant de plusieurs + sources distinctes en un seul emplacement ou vue unifiée. + ar: >- + جمع ودمج المحتوى أو البيانات من مصادر متعددة مختلفة في موقع أو عرض موحد واحد. + id: >- + Mengumpulkan dan menggabungkan konten atau data dari berbagai sumber + yang berbeda ke dalam satu lokasi atau tampilan terpadu. + zh: >- + 从多个不同来源收集和整合内容或数据,形成单一统一的位置或视图。 + es: >- + Recopilar y combinar contenido o datos de múltiples fuentes distintas + en una única ubicación o vista unificada. + structured_aliases: + - literal_form: aggregeert van + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: aggregiert von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: agrège de + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يجمع من + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mengagregasi dari + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 聚合自 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: agrega de + predicate: EXACT_SYNONYM + in_language: es + range: string + multivalued: true + slot_uri: ore:aggregates + # Semantic mappings (SKOS predicates) + # From: ore.rdf, edm.owl, dcat3.ttl, prov-o.ttl, dcterms.ttl + exact_mappings: + - ore:aggregates # ore.rdf: Aggregation relationship (subPropertyOf dcterms:hasPart) + close_mappings: + - dcterms:source # dcterms.ttl: Related resource from which described resource is derived + - prov:wasDerivedFrom # prov-o.ttl: Entity derived from another + - ore:isAggregatedBy # ore.rdf: Inverse - resource is aggregated by aggregation + - edm:aggregatedCHO # edm.owl: Cultural Heritage Object aggregated by EuropeanaAggregation + related_mappings: + - ore:Aggregation # ore.rdf: Class representing grouped resources + - ore:AggregatedResource # ore.rdf: Class for resources included in aggregation + - dcterms:hasPart # dcterms.ttl: ore:aggregates is subPropertyOf this + - dcat:Resource # dcat3.ttl: Superclass for all catalogued resources + - crm:E78_Curated_Holding # CIDOC-CRM: Curated collection of items + - crm:E87_Curation_Activity # CIDOC-CRM: Activity managing curated holdings + narrow_mappings: + - edm:EuropeanaAggregation # edm.owl: Europeana's aggregation class + aliases: + - aggregates_or_aggregated_from + annotations: + specificity_score: 0.5 + diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/allocate.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/allocate.yaml new file mode 100644 index 0000000000..2bed0b9cdf --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/allocate.yaml @@ -0,0 +1,76 @@ +id: https://nde.nl/ontology/hc/slot/allocate +name: allocate +title: allocate +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: https://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + org: http://www.w3.org/ns/org# +imports: +- linkml:types +default_prefix: hc +slots: + allocate: + description: >- + To distribute resources, signifiers, or duties for a specific purpose. + alt_descriptions: + nl: >- + Middelen, aanduidingen of taken verdelen voor een specifiek doel. + de: >- + Ressourcen, Kennzeichen oder Pflichten für einen bestimmten Zweck verteilen. + fr: >- + Distribuer des ressources, des signifiants ou des devoirs pour un but spécifique. + ar: >- + توزيع الموارد أو المعرفات أو الواجبات لغرض محدد. + id: >- + Mendistribusikan sumber daya, penanda, atau tugas untuk tujuan tertentu. + zh: >- + 为特定目的分配资源、标识符或职责。 + es: >- + Distribuir recursos, identificadores o deberes para un propósito específico. + structured_aliases: + - literal_form: wijst toe + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: weist zu + predicate: EXACT_SYNONYM + in_language: de + - literal_form: alloue + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يخصص + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mengalokasikan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 分配 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: asigna + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + multivalued: true + slot_uri: hc:allocate + # Semantic mappings (SKOS predicates) + # From: prov-o.ttl, org.rdf, CIDOC_CRM_v7.1.3.rdf + close_mappings: + - prov:generated # prov-o.ttl: Entity generated by activity + - prov:used # prov-o.ttl: Entity used by activity (resource consumption) + related_mappings: + - org:hasUnit # org.rdf: Organization has organizational unit + - org:hasSite # org.rdf: Organization has site (resource location) + - crm:P14_carried_out_by # CIDOC-CRM: Activity carried out by actor (resource assignment) + - crm:E79_Part_Addition # CIDOC-CRM: Adding parts to aggregate (resource allocation) + - prov:wasAssociatedWith # prov-o.ttl: Activity associated with agent + - dcterms:isPartOf # dcterms.ttl: Resource is part of another + narrow_mappings: + - schema:owns # schemaorg.owl: Ownership of products/services + aliases: + - allocates_or_allocated + annotations: + specificity_score: 0.5 diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/allow.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/allow.yaml new file mode 100644 index 0000000000..16977fc55d --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/allow.yaml @@ -0,0 +1,93 @@ +id: https://nde.nl/ontology/hc/slot/allow +name: allow +title: allow +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: https://schema.org/ + odrl: http://www.w3.org/ns/odrl/2/ + rico: https://www.ica.org/standards/RiC/ontology# +default_prefix: hc +imports: +- linkml:types +slots: + allow: + slot_uri: hc:allow + description: >- + To grant permission for activities, things, or behaviors. + alt_descriptions: + nl: >- + Toestemming verlenen voor activiteiten, zaken of handelingen. + de: >- + Erlaubnis für Aktivitäten, Dinge oder Verhaltensweisen erteilen. + fr: >- + Accorder la permission pour des activités, des choses ou des comportements. + ar: >- + منح الإذن للأنشطة أو الأشياء أو السلوكيات. + id: >- + Memberikan izin untuk kegiatan, hal-hal, atau perilaku. + zh: >- + 授予活动、事物或行为的许可。 + es: >- + Otorgar permiso para actividades, cosas o comportamientos. + structured_aliases: + - literal_form: staat toe + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: erlaubt + predicate: EXACT_SYNONYM + in_language: de + - literal_form: permet + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يسمح + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mengizinkan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 允许 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: permite + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + multivalued: true + # Semantic mappings (SKOS predicates) + # From: odrl.ttl, schemaorg.owl, RiC-O_1-1.rdf + exact_mappings: + - odrl:permission # odrl.ttl: Permission to perform action on asset + close_mappings: + - odrl:Permission # odrl.ttl: Class representing permission rule + - odrl:grantUse # odrl.ttl: Grant use of asset to third parties + related_mappings: + - odrl:action # odrl.ttl: Action permitted/prohibited + - odrl:use # odrl.ttl: Use action (parent of many specific actions) + - odrl:Rule # odrl.ttl: Abstract class for permissions/prohibitions/duties + - schema:Permit # schemaorg.owl: Permit class + - schema:GovernmentPermit # schemaorg.owl: Government-issued permit + - schema:permittedUsage # schemaorg.owl: Permitted usage of accommodation + - rico:hasOrHadMandateType # RiC-O: Mandate type for agent + narrow_mappings: + - schema:amenityFeature # schemaorg.owl: Amenity feature of place + - odrl:play # odrl.ttl: Play/perform action + - odrl:display # odrl.ttl: Display/create copy action + - odrl:reproduce # odrl.ttl: Reproduce action + aliases: + - allows_or_allowed + annotations: + specificity_score: 0.5 + specificity_rationale: Generic permission slot applicable to reading rooms and public spaces. + examples: + - value: "allow:\n - \"Laptop\"\n - \"Photography\"\n" + description: Example of allowed activities in a reading room. + comments: + - | + **SEMANTICS**: Uses RiC-O temporal pattern (is_or_was / has_or_had / allows_or_allowed) + to capture policies that may change over time. + A reading room that \"allowed photography\" in 2020 may have changed policy by 2025. + - | + The range should be a typed class representing the permitted activity: + - `Laptop` - laptop use permission - `Photography` - photography permission + - Future: `Food`, `Beverages`, `MobilePhone`, etc. \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/analyze.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/analyze.yaml new file mode 100644 index 0000000000..42313b6ca2 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/analyze.yaml @@ -0,0 +1,112 @@ +id: https://nde.nl/ontology/hc/slot/analyze +name: analyze +title: analyze +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + sosa: http://www.w3.org/ns/sosa/ + dqv: http://www.w3.org/ns/dqv# +default_prefix: hc +imports: +- linkml:types +slots: + analyze: + slot_uri: hc:analyze + description: >- + To examine in detail the constitution or structure of something, + typically for purposes of explanation and interpretation. + alt_descriptions: + nl: >- + De samenstelling of structuur van iets in detail onderzoeken, + doorgaans met het oog op uitleg en interpretatie. + de: >- + Die Zusammensetzung oder Struktur von etwas im Detail untersuchen, + typischerweise zum Zweck der Erklärung und Interpretation. + fr: >- + Examiner en détail la constitution ou la structure de quelque chose, + généralement à des fins d'explication et d'interprétation. + ar: >- + فحص تكوين أو هيكل شيء ما بالتفصيل، عادةً لأغراض الشرح والتفسير. + id: >- + Memeriksa secara rinci susunan atau struktur sesuatu, biasanya + untuk tujuan penjelasan dan interpretasi. + zh: >- + 详细检查某事物的构成或结构,通常用于解释和诠释目的。 + es: >- + Examinar en detalle la constitución o estructura de algo, + típicamente con fines de explicación e interpretación. + structured_aliases: + - literal_form: analyseert + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: analysiert + predicate: EXACT_SYNONYM + in_language: de + - literal_form: analyse + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يحلل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: menganalisis + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 分析 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: analiza + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + any_of: + - range: integer + - range: VideoFrame + inlined: false # Fixed invalid inline for primitive type + examples: + - value: 24000 + description: Total video frames analyzed (integer count) + - value: "has_or_had_quantity:\n quantity_value: 1.0\n quantity_type: FRAME_SAMPLE_RATE\n has_or_had_unit:\n unit_value: \"samples per second\"\nframe_count: 1800\n" + description: Video frame analysis at 1 fps (VideoFrame instance) + annotations: + custodian_types: '["*"]' + # Semantic mappings (SKOS predicates) + # From: sosa.ttl, ssn.ttl, dqv.ttl, prov-o.ttl, CIDOC_CRM_v7.1.3.rdf + close_mappings: + - sosa:observes # sosa.ttl: Sensor observes observable property + - sosa:Observation # sosa.ttl: Act of observing a property + related_mappings: + - sosa:Procedure # sosa.ttl: Workflow/protocol for observation + - sosa:observedProperty # sosa.ttl: Property being observed + - sosa:hasResult # sosa.ttl: Result of observation + - sosa:Result # sosa.ttl: Class for observation results + - prov:wasGeneratedBy # prov-o.ttl: Entity generated by activity (analysis output) + - prov:used # prov-o.ttl: Activity used entity (analysis input) + - crm:E13_Attribute_Assignment # CIDOC-CRM: Assigning attributes through analysis + - crm:E83_Type_Creation # CIDOC-CRM: Type creation through scholarly analysis + - dqv:hasQualityMeasurement # dqv.ttl: Quality measurement from analysis + narrow_mappings: + - sosa:madeObservation # sosa.ttl: Sensor made observation + - crm:P140_assigned_attribute_to # CIDOC-CRM: Assigned attribute through analysis + broad_mappings: + - prov:Activity # prov-o.ttl: Generic activity class + aliases: + - analyzes_or_analyzed + comments: + - | + **USAGE NOTES**: + + - Frames analyzed in video processing (VideoFrame class) + + - Documents analyzed + + - Items processed + + - | + **MIGRATION SUPPORT**: + + This slot now supports VideoFrame class for frame_sample_rate migration + + per slot_fixes.yaml (Rule 53, 2026-01-22). + diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/apply_to.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/apply_to.yaml new file mode 100644 index 0000000000..22c93878f2 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/apply_to.yaml @@ -0,0 +1,112 @@ +id: https://nde.nl/ontology/hc/slot/apply_to +name: apply_to +title: apply to +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: https://schema.org/ + rico: https://www.ica.org/standards/RiC/ontology# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + odrl: http://www.w3.org/ns/odrl/2/ + premis: http://www.loc.gov/premis/rdf/v3/ +imports: +- linkml:types +default_prefix: hc +slots: + apply_to: + description: >- + To put a principle, method, or rule into practical operation to serve + a specific purpose. + alt_descriptions: + nl: >- + Een principe, methode of regel in praktijk brengen om een specifiek + doel te dienen. + de: >- + Ein Prinzip, eine Methode oder eine Regel in die praktische Anwendung + bringen, um einem bestimmten Zweck zu dienen. + fr: >- + Mettre en application pratique un principe, une méthode ou une règle + pour servir un objectif spécifique. + ar: >- + وضع مبدأ أو طريقة أو قاعدة موضع التنفيذ العملي لخدمة غرض محدد. + id: >- + Menerapkan prinsip, metode, atau aturan ke dalam operasi praktis + untuk melayani tujuan tertentu. + zh: >- + 将原则、方法或规则付诸实践,以服务于特定目的。 + es: >- + Poner en práctica un principio, método o regla para servir + un propósito específico. + structured_aliases: + - literal_form: past toe op + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: wendet an auf + predicate: EXACT_SYNONYM + in_language: de + - literal_form: applique à + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يطبق على + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: menerapkan pada + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 应用于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: aplica a + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + multivalued: true + # The semantics align with rico:isOrWasRegulatedBy (inverse) and prov:used + slot_uri: hc:apply_to + # Semantic mappings (SKOS predicates) + # From: prov.ttl, CIDOC_CRM_v7.1.3.rdf, RiC-O_1-1.rdf, odrl.ttl, dcterms.rdf + exact_mappings: + - prov:used # prov.ttl: Activity used Entity - core "apply" semantics + close_mappings: + - crm:P33_used_specific_technique # CIDOC-CRM: Activity used specific Design/Procedure + - crm:P16_used_specific_object # CIDOC-CRM: Activity used specific object essential to outcome + - rico:isOrWasRegulatedBy # RiC-O: Thing is/was regulated by Rule (inverse of regulatesOrRegulated) + - odrl:use # ODRL: Most generic action for using an Asset + related_mappings: + - crm:P32_used_general_technique # CIDOC-CRM: Activity used general technique (type-level) + - rico:regulatesOrRegulated # RiC-O: Rule regulates/regulated Thing + - rico:isAssociatedWithRule # RiC-O: Thing associated with Rule + - prov:Usage # prov.ttl: Class for qualified usage relationships + - prov:qualifiedUsage # prov.ttl: Qualified usage relation + - odrl:action # ODRL: Action permitted/prohibited on asset + - premis:policy # PREMIS: Has policy relationship + narrow_mappings: + - schema:legislationApplies # schema.org: Legislation applies/transfers another legislation + - schema:usesDevice # schema.org: Medical procedure uses device + - crm:P125_used_object_of_type # CIDOC-CRM: Activity used object of type (type-level) + broad_mappings: + - dcterms:relation # dcterms.rdf: Generic resource relation + - rico:isRelatedTo # RiC-O: Generic relation between Things + aliases: + - applies_or_applied_to + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types for various application contexts. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: Generic application relationship slot usable across contexts. + comments: + - | + **SEMANTICS**: Uses RiC-O temporal pattern (is_or_was / has_or_had / applies_or_applied) + to capture application relationships that may change over time. An institution that + "applied" a cataloging standard in 2010 may have adopted a different standard by 2025. + - | + **ONTOLOGY NOTES**: The original slot_uri rico:appliesOrAppliedTo does not exist in + RiC-O 1.1. The closest RiC-O predicates are rico:isOrWasRegulatedBy (for rules/mandates) + and rico:isAssociatedWithRule. For general "apply" semantics, prov:used from PROV-O + and crm:P33_used_specific_technique from CIDOC-CRM are the most appropriate mappings. + examples: + - value: "apply:\n - \"ISAD(G)\"\n - \"Dublin Core\"\n" + description: Institution applies descriptive standards to its collections diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/assert.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/assert.yaml new file mode 100644 index 0000000000..6aa43aec22 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/assert.yaml @@ -0,0 +1,121 @@ +id: https://nde.nl/ontology/hc/slot/assert +name: assert +title: assert +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: https://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + oa: http://www.w3.org/ns/oa# + rico: https://www.ica.org/standards/RiC/ontology# +imports: +- linkml:types +default_prefix: hc +slots: + assert: + title: Assert + description: >- + To state a fact or belief with confidence to affirm its validity or existence. + alt_descriptions: + nl: >- + Een feit of overtuiging met vertrouwen uitspreken om de geldigheid + of het bestaan ervan te bevestigen. + de: >- + Eine Tatsache oder Überzeugung mit Zuversicht aussprechen, um ihre + Gültigkeit oder Existenz zu bestätigen. + fr: >- + Énoncer un fait ou une croyance avec confiance pour affirmer sa + validité ou son existence. + ar: >- + التصريح بحقيقة أو اعتقاد بثقة لتأكيد صحتها أو وجودها. + id: >- + Menyatakan fakta atau keyakinan dengan percaya diri untuk menegaskan + validitas atau keberadaannya. + zh: >- + 自信地陈述事实或信念,以确认其有效性或存在。 + es: >- + Afirmar un hecho o creencia con confianza para confirmar su validez + o existencia. + structured_aliases: + - literal_form: beweert + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: behauptet + predicate: EXACT_SYNONYM + in_language: de + - literal_form: affirme + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يؤكد + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: menegaskan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 断言 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: afirma + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + multivalued: true + slot_uri: hc:assert + inlined: false + # Semantic mappings (SKOS predicates) + # From: prov.ttl, CIDOC_CRM_v7.1.3.rdf, schemaorg.owl, oa.ttl, RiC-O_1-1.rdf + exact_mappings: + - crm:P140_assigned_attribute_to # CIDOC-CRM: E13 Attribute Assignment assigns attribute to E1 CRM Entity + close_mappings: + - crm:P141_assigned # CIDOC-CRM: E13 Attribute Assignment assigned (the value/range) + - oa:hasBody # oa.ttl: Annotation has body (the content being asserted) + - oa:hasTarget # oa.ttl: Annotation has target (what the assertion is about) + related_mappings: + - crm:E13_Attribute_Assignment # CIDOC-CRM: Class - actions of making assertions about properties + - prov:Attribution # prov.ttl: Class - ascribing entity to agent + - prov:wasAttributedTo # prov.ttl: Entity was attributed to Agent + - oa:Annotation # oa.ttl: Class - Web Annotation (assertion container) + - oa:motivatedBy # oa.ttl: Annotation motivated by (purpose of assertion) + - oa:classifying # oa.ttl: Motivation - classify Target as something + - oa:identifying # oa.ttl: Motivation - assign identity to Target + - rico:describesOrDescribed # RiC-O: RecordResource describes/described Thing + - schema:Claim # schemaorg.owl: Class - specific factually-oriented claim + - schema:Statement # schemaorg.owl: Class - statement about something + - schema:mainEntity # schemaorg.owl: CreativeWork's primary entity (what is being asserted about) + narrow_mappings: + - schema:interpretedAsClaim # schemaorg.owl: MediaObject/CreativeWork interpreted as Claim + - crm:P177_assigned_property_of_type # CIDOC-CRM: E13 Attribute Assignment assigned property of type E55 Type + broad_mappings: + - prov:influenced # prov.ttl: Activity/Entity/Agent influenced another + - dcterms:relation # dcterms.rdf: Generic resource relation + aliases: + - asserts_or_asserted + annotations: + custodian_types: '["*"]' + specificity_score: 0.2 + specificity_rationale: Broadly applicable assertion predicate for provenance and attribution contexts. + comments: + - | + **SEMANTICS**: Uses RiC-O temporal pattern (is_or_was / has_or_had / asserts_or_asserted) + to capture assertions that may change over time. New evidence may modify or invalidate + hypotheses. Historical assertions are preserved for audit trail. + - | + **ONTOLOGY NOTES**: The core semantic model for assertions is CIDOC-CRM's E13 Attribute Assignment, + which represents "actions of making assertions about one property of an object". P140 connects + the assignment to the entity being described (domain), P141 connects to the value being assigned (range). + Web Annotation (oa:) provides a flexible assertion model with oa:hasBody (the assertion content) + and oa:hasTarget (what it's about). Note: prov:generated is NOT appropriate here as it represents + Activity-produces-Entity (creation), not epistemic claims. + - | + **USAGE**: + - Link PrimaryDigitalPresenceAssertion to DigitalPresence (crm:P140) + - Link Annotation to asserted content (oa:hasBody) + - Link assertion to what it's about (oa:hasTarget) + - | + **RANGE**: Generic `uriorcurie` to support multiple assertion targets (Hypothesis, DigitalPresence). + Classes should narrow this via slot_usage. + examples: + - value: "assert:\n - \"hypothesis:type_museum_art\"\n - \"claim:primary_website\"\n" + description: Provenance record asserting hypotheses about institution type \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/begin_of_the_begin.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/begin_of_the_begin.yaml new file mode 100644 index 0000000000..e575fbb805 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/begin_of_the_begin.yaml @@ -0,0 +1,128 @@ +id: https://nde.nl/ontology/hc/slot/begin_of_the_begin +name: begin_of_the_begin +title: Begin of the Begin +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + time: http://www.w3.org/2006/time# + prov: http://www.w3.org/ns/prov# + schema: https://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# +default_prefix: hc +imports: +- linkml:types +slots: + begin_of_the_begin: + # Primary semantic: CIDOC-CRM fuzzy temporal bound (earliest possible start) + slot_uri: crm:P82a_begin_of_the_begin + description: >- + To indicate the earliest possible start time of a temporal extent, used + to express uncertainty about when something began. + alt_descriptions: + nl: >- + Het aangeven van de vroegst mogelijke starttijd van een tijdsspanne, + gebruikt om onzekerheid over het begin uit te drukken. + de: >- + Die frühestmögliche Startzeit eines zeitlichen Umfangs angeben, um + Unsicherheit darüber auszudrücken, wann etwas begann. + fr: >- + Indiquer le moment de début le plus tôt possible d'une étendue + temporelle, pour exprimer l'incertitude sur le commencement. + ar: >- + الإشارة إلى أقرب وقت بداية ممكن لنطاق زمني، يستخدم للتعبير عن عدم + اليقين حول متى بدأ شيء ما. + id: >- + Menunjukkan waktu mulai paling awal yang mungkin dari rentang waktu, + digunakan untuk mengekspresikan ketidakpastian tentang kapan sesuatu dimulai. + zh: >- + 表示时间范围最早可能的开始时间,用于表达某事何时开始的不确定性。 + es: >- + Indicar el momento de inicio más temprano posible de una extensión + temporal, para expresar incertidumbre sobre cuándo comenzó algo. + structured_aliases: + - literal_form: begin van het begin + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Beginn des Beginns + predicate: EXACT_SYNONYM + in_language: de + - literal_form: début du début + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: بداية البداية + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: awal dari awal + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 开始之始 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: inicio del inicio + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + any_of: + - range: Timestamp + - range: string + - range: datetime + inlined: false + required: false + multivalued: false + # Semantic mappings (SKOS predicates) + # From: CIDOC_CRM_v7.1.3.rdf, RiC-O_1-1.rdf, time ontology, prov.ttl, schemaorg.owl + exact_mappings: + - crm:P82a_begin_of_the_begin # CIDOC-CRM: Earliest possible start of E52 Time-Span (subPropertyOf P82_at_some_time_within) + close_mappings: + - rico:hasBeginningDate # RiC-O: Thing has beginning Date (ObjectProperty, range: rico:Date) + related_mappings: + - crm:P82_at_some_time_within # CIDOC-CRM: Parent property - time within outer bounds + - crm:P81a_end_of_the_begin # CIDOC-CRM: Latest possible start (partner in fuzzy start pattern) + - time:hasBeginning # OWL Time: Temporal entity has beginning Instant (exact, not fuzzy) + - rico:isBeginningDateOf # RiC-O: Inverse - Date is beginning date of Thing + - prov:startedAtTime # PROV-O: Activity started at time (exact instant, not fuzzy) + broad_mappings: + - rico:isAssociatedWithDate # RiC-O: Generic date association (parent of hasBeginningDate) + - schema:startDate # schema.org: Start date (simple date, no fuzzy semantics) + - schema:foundingDate # schema.org: Organization founding date (specific start type) + - dcterms:date # Dublin Core: Generic date association + annotations: + slot_fixes_compliance: Range changed from datetime to Timestamp class per slot_fixes.yaml + migration_date: '2026-01-15' + replaces_slots: valid_from, valid_from_geo + custodian_types: '["*"]' + examples: + - value: | + timestamp_value: "1800-01-01" + timestamp_precision: day + description: Earliest possible date as Timestamp object + - value: | + # For "Founded between 1800-1805": + begin_of_the_begin: "1800-01-01" # earliest possible founding + end_of_the_begin: "1805-12-31" # latest possible founding + description: Expressing uncertainty about founding date using fuzzy bounds + comments: + - | + **CIDOC-CRM Fuzzy Date Pattern**: + + P82a defines the earliest possible time an E52 Time-Span could have started. + Used together with P81a (end_of_the_begin) to express uncertainty about start time. + The four fuzzy bound properties are: + - P82a_begin_of_the_begin: earliest possible start + - P81a_end_of_the_begin: latest possible start + - P81b_begin_of_the_end: earliest possible end + - P82b_end_of_the_end: latest possible end + - | + **Ontological Alignment**: + + - **Primary** (`slot_uri`): `crm:P82a_begin_of_the_begin` - CIDOC-CRM fuzzy temporal bound + - **Close**: `rico:hasBeginningDate` - RiC-O beginning date (ObjectProperty with rico:Date range) + - **Related**: `time:hasBeginning` - OWL Time (note: exact instant semantics, not fuzzy) + - **Broad**: `schema:startDate` - simple start date without uncertainty semantics + + Note: time:hasBeginning and prov:startedAtTime represent exact instants, not fuzzy bounds. + They are related but semantically distinct from the CIDOC-CRM uncertainty pattern. + - | + **Range**: Supports Timestamp class, string, and datetime values \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/begin_of_the_end.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/begin_of_the_end.yaml new file mode 100644 index 0000000000..7a930260bc --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/begin_of_the_end.yaml @@ -0,0 +1,126 @@ +id: https://nde.nl/ontology/hc/slot/begin_of_the_end +name: begin_of_the_end +title: Begin of the End +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + time: http://www.w3.org/2006/time# + prov: http://www.w3.org/ns/prov# + schema: https://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# +default_prefix: hc +imports: +- linkml:types +slots: + begin_of_the_end: + # Primary semantic: CIDOC-CRM fuzzy temporal bound (earliest possible end) + slot_uri: crm:P81b_begin_of_the_end + description: >- + To indicate the earliest possible end time of a temporal extent, used + to express uncertainty about when something ended. + alt_descriptions: + nl: >- + Het aangeven van de vroegst mogelijke eindtijd van een tijdsspanne, + gebruikt om onzekerheid over het einde uit te drukken. + de: >- + Die frühestmögliche Endzeit eines zeitlichen Umfangs angeben, um + Unsicherheit darüber auszudrücken, wann etwas endete. + fr: >- + Indiquer le moment de fin le plus tôt possible d'une étendue + temporelle, pour exprimer l'incertitude sur la fin. + ar: >- + الإشارة إلى أقرب وقت نهاية ممكن لنطاق زمني، يستخدم للتعبير عن عدم + اليقين حول متى انتهى شيء ما. + id: >- + Menunjukkan waktu akhir paling awal yang mungkin dari rentang waktu, + digunakan untuk mengekspresikan ketidakpastian tentang kapan sesuatu berakhir. + zh: >- + 表示时间范围最早可能的结束时间,用于表达某事何时结束的不确定性。 + es: >- + Indicar el momento de fin más temprano posible de una extensión + temporal, para expresar incertidumbre sobre cuándo terminó algo. + structured_aliases: + - literal_form: begin van het einde + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Beginn des Endes + predicate: EXACT_SYNONYM + in_language: de + - literal_form: début de la fin + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: بداية النهاية + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: awal dari akhir + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 结束之始 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: inicio del fin + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + any_of: + - range: Timestamp + - range: string + - range: datetime + inlined: false + required: false + multivalued: false + # Semantic mappings (SKOS predicates) + # From: CIDOC_CRM_v7.1.3.rdf, RiC-O_1-1.rdf, time ontology, prov.ttl, schemaorg.owl + exact_mappings: + - crm:P81b_begin_of_the_end # CIDOC-CRM: Earliest possible end of E52 Time-Span (subPropertyOf P81_ongoing_throughout) + close_mappings: + - rico:hasEndDate # RiC-O: Thing has end Date (ObjectProperty, range: rico:Date) + related_mappings: + - crm:P81_ongoing_throughout # CIDOC-CRM: Parent property - time span ongoing throughout + - crm:P82b_end_of_the_end # CIDOC-CRM: Latest possible end (partner in fuzzy end pattern) + - time:hasEnd # OWL Time: Temporal entity has end Instant (exact, not fuzzy) + - rico:isEndDateOf # RiC-O: Inverse - Date is end date of Thing + - prov:endedAtTime # PROV-O: Activity ended at time (exact instant, not fuzzy) + broad_mappings: + - rico:isAssociatedWithDate # RiC-O: Generic date association (parent of hasEndDate) + - schema:endDate # schema.org: End date (simple date, no fuzzy semantics) + - schema:dissolutionDate # schema.org: Organization dissolution date (specific end type) + - dcterms:date # Dublin Core: Generic date association + annotations: + migration_date: '2026-01-15' + custodian_types: '["*"]' + examples: + - value: | + timestamp_value: "1950-01-01" + timestamp_precision: day + description: Earliest possible closure date as Timestamp object + - value: | + # For "Closed between 1950-1955": + begin_of_the_end: "1950-01-01" # earliest possible closure + end_of_the_end: "1955-12-31" # latest possible closure + description: Expressing uncertainty about closure date using fuzzy bounds + comments: + - | + **CIDOC-CRM Fuzzy Date Pattern**: + + P81b defines the earliest possible time an E52 Time-Span could have ended. + Used together with P82b (end_of_the_end) to express uncertainty about end time. + The four fuzzy bound properties are: + - P82a_begin_of_the_begin: earliest possible start + - P81a_end_of_the_begin: latest possible start + - P81b_begin_of_the_end: earliest possible end + - P82b_end_of_the_end: latest possible end + - | + **Ontological Alignment**: + + - **Primary** (`slot_uri`): `crm:P81b_begin_of_the_end` - CIDOC-CRM fuzzy temporal bound + - **Close**: `rico:hasEndDate` - RiC-O end date (ObjectProperty with rico:Date range) + - **Related**: `time:hasEnd` - OWL Time (note: exact instant semantics, not fuzzy) + - **Broad**: `schema:endDate` - simple end date without uncertainty semantics + + Note: time:hasEnd and prov:endedAtTime represent exact instants, not fuzzy bounds. + They are related but semantically distinct from the CIDOC-CRM uncertainty pattern. + - | + **Range**: Supports Timestamp class, string, and datetime values \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/categorized_as.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/categorized_as.yaml new file mode 100644 index 0000000000..194f2415a8 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/categorized_as.yaml @@ -0,0 +1,182 @@ +id: https://nde.nl/ontology/hc/slot/categorized_as +name: categorized_as +title: categorized as +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# + dcat: http://www.w3.org/ns/dcat# +imports: +- linkml:types +default_prefix: hc +slots: + categorized_as: + description: >- + To assign an entity to a specific class or group based on shared + characteristics or distinct criteria. + alt_descriptions: + nl: >- + Een entiteit toewijzen aan een specifieke klasse of groep op basis + van gedeelde kenmerken of onderscheidende criteria. + de: >- + Eine Entität einer bestimmten Klasse oder Gruppe zuordnen, basierend + auf gemeinsamen Merkmalen oder unterscheidenden Kriterien. + fr: >- + Attribuer une entité à une classe ou un groupe spécifique en fonction + de caractéristiques partagées ou de critères distincts. + ar: >- + تعيين كيان إلى فئة أو مجموعة محددة بناءً على خصائص مشتركة أو معايير مميزة. + id: >- + Menetapkan entitas ke kelas atau kelompok tertentu berdasarkan + karakteristik bersama atau kriteria yang berbeda. + zh: >- + 根据共同特征或特定标准将实体分配到特定的类别或组。 + es: >- + Asignar una entidad a una clase o grupo específico basándose en + características compartidas o criterios distintivos. + structured_aliases: + - literal_form: gecategoriseerd als + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: kategorisiert als + predicate: EXACT_SYNONYM + in_language: de + - literal_form: catégorisé comme + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مصنف كـ + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dikategorikan sebagai + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 归类为 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: categorizado como + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + # range: Category + slot_uri: crm:P2_has_type + multivalued: true + inlined: false + inlined_as_list: false + + # VERIFIED MAPPINGS (2026-02-XX) + # Source files: data/ontology/CIDOC_CRM_v7.1.3.rdf, data/ontology/dcterms.rdf, + # data/ontology/dcat3.ttl, data/ontology/schemaorg.owl, + # data/ontology/RiC-O_1-1.rdf, data/ontology/skos.rdf + + exact_mappings: + # dcat3.ttl line 1722: theme + # "A main category of the resource. A resource can have multiple themes." + # Exact: categorization/classification semantics + - dcat:theme # from dcat3.ttl - main category of resource + + close_mappings: + # dcterms.rdf line 1968-1987: subject + # "A topic of the resource" + # Close: aboutness/topic is related but not identical to categorization + - dcterms:subject # from dcterms.rdf - topic of resource + + # schemaorg.owl line 11338: category + # "A category for the item. Greater signs or slashes can indicate category hierarchy." + # Close: informal category assignment + - schema:category # from schemaorg.owl - category for item + + # RiC-O_1-1.rdf line 8231: hasOrHadSubject + # "Connects a Record Resource to a Thing that is or was its subject" + # Close: subject relationship for archival records + - rico:hasOrHadSubject # from RiC-O_1-1.rdf - subject of Record Resource + + # RiC-O_1-1.rdf line 4148: hasContentOfType + # Connects Record Resource to Type + # Close: content type classification + - rico:hasContentOfType # from RiC-O_1-1.rdf - content type of Record Resource + + related_mappings: + # schemaorg.owl line 6247: about + # "The subject matter of an object" + # Related: aboutness (broader than categorization) + - schema:about # from schemaorg.owl - subject matter (broader) + + # CIDOC_CRM_v7.1.3.rdf line 2184: P41_classified + # "This property records the act of classifying an item" + # Related: the classification ACT (event-based, not direct categorization) + - crm:P41_classified # from CIDOC_CRM_v7.1.3.rdf - classification event + + # CIDOC_CRM_v7.1.3.rdf line 3912: P127_has_broader_term + # "Identifies a super-Type to which this Type is subordinate" + # Related: hierarchy between Types, not Entity-to-Type relationship + - crm:P127_has_broader_term # from CIDOC_CRM_v7.1.3.rdf - Type hierarchy + + # skos.rdf line 266: broader + # "Relates a concept to a concept that is more general in meaning" + # Related: Concept-to-Concept hierarchy (not Entity-to-Concept) + - skos:broader # from skos.rdf - concept hierarchy (related context) + + # skos.rdf line 281: narrower + # "Relates a concept to a concept that is more specific in meaning" + # Related: Concept-to-Concept hierarchy (not Entity-to-Concept) + - skos:narrower # from skos.rdf - concept hierarchy (related context) + + broad_mappings: + # dcat3.ttl line 1208: keyword + # Free-text keywords (less structured than categorization) + - dcat:keyword # from dcat3.ttl - free-text keywords (broader/less structured) + + aliases: + - has_or_had_category + - has_type + - is_classified_as + + annotations: + rule_53_migration: Replaces collection_focus with structured Category + custodian_types: '["*"]' + + examples: + - value: + has_or_had_identifier: "http://vocab.getty.edu/aat/300033618" + has_or_had_label: "paintings" + description: Artwork categorized as painting (AAT term) + - value: + has_or_had_identifier: "https://example.org/category/dutch-golden-age" + has_or_had_label: "Dutch Golden Age" + description: Collection categorized by historical period + + comments: + - | + Categories represent hierarchical or faceted classifications: + - Subject categories (art, science, history) + - Thematic categories (Dutch Golden Age, WWII, Islamic art) + - Material categories (paintings, manuscripts, specimens) + - Geographic categories (European, Asian, African) + - Temporal categories (Medieval, Renaissance, Contemporary) + - | + The Category class enables structured categorization with: + - Category name and description + - Category type (subject, theme, material, geographic, temporal) + - Hierarchical relationships (broader/narrower terms) + - Provenance tracking + - | + MAPPING CORRECTIONS (2026-02-XX): + - REMOVED skos:Concept from exact_mappings - it is a CLASS, not a PROPERTY + - Changed slot_uri from dcterms:subject to crm:P2_has_type for more precise + categorization/typing semantics (dcterms:subject is about "topic/aboutness") + - Moved dcterms:subject to close_mappings (related but not exact) + - Added dcat:theme as exact_mapping (category semantics) + - Moved skos:broader/skos:narrower to related_mappings (Concept-to-Concept + hierarchies, not Entity-to-Concept categorization) + - | + Verified predicates from: + - data/ontology/CIDOC_CRM_v7.1.3.rdf (crm:P2_has_type line 1200, crm:P41_classified line 2184, crm:P127 line 3912) + - data/ontology/dcterms.rdf (dcterms:subject line 1968) + - data/ontology/dcat3.ttl (dcat:theme line 1722, dcat:keyword line 1208) + - data/ontology/schemaorg.owl (schema:category line 11338, schema:about line 6247) + - data/ontology/RiC-O_1-1.rdf (rico:hasOrHadSubject line 8231, rico:hasContentOfType line 4148) + - data/ontology/skos.rdf (skos:broader line 266, skos:narrower line 281) diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/ceased_through.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/ceased_through.yaml new file mode 100644 index 0000000000..5bf3720cea --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/ceased_through.yaml @@ -0,0 +1,146 @@ +id: https://nde.nl/ontology/hc/slot/ceased_through +name: ceased_through +title: ceased through +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# +imports: +- linkml:types +default_prefix: hc +slots: + ceased_through: + description: >- + To indicate the event through which an entity ceased to exist or operate. + alt_descriptions: + nl: >- + Het aangeven van de gebeurtenis waardoor een entiteit ophield te + bestaan of te functioneren. + de: >- + Das Ereignis angeben, durch das eine Entität aufhörte zu existieren + oder zu funktionieren. + fr: >- + Indiquer l'événement par lequel une entité a cessé d'exister ou + de fonctionner. + ar: >- + الإشارة إلى الحدث الذي من خلاله توقف كيان عن الوجود أو العمل. + id: >- + Menunjukkan peristiwa yang menyebabkan suatu entitas berhenti + ada atau beroperasi. + zh: >- + 表示导致实体停止存在或运作的事件。 + es: >- + Indicar el evento a través del cual una entidad dejó de existir + u operar. + structured_aliases: + - literal_form: opgehouden door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: beendet durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: cessé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: توقف من خلال + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: berhenti melalui + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 通过...终止 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: cesado mediante + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + # range: CeasingEvent + slot_uri: hc:ceasedThrough + multivalued: true + + # VERIFIED MAPPINGS (2026-02-XX) + # Source files: data/ontology/CIDOC_CRM_v7.1.3.rdf, data/ontology/prov.ttl, + # data/ontology/RiC-O_1-1.rdf, data/ontology/schemaorg.owl + + exact_mappings: + # CIDOC_CRM_v7.1.3.rdf line 3210-3221: P93i_was_taken_out_of_existence_by + # "This property identifies the E64 End of Existence that ended the existence of this E77 Persistent Item" + # Exact semantic match: event that ended the existence of something + - crm:P93i_was_taken_out_of_existence_by # from CIDOC_CRM_v7.1.3.rdf + + close_mappings: + # RiC-O_1-1.rdf line 12585: isOrWasAffectedBy + # "Connects an Agent, Record Resource, or Instantiation to an Activity by which it was affected" + # Close: agent affected by activity (includes but not limited to cessation) + - rico:isOrWasAffectedBy # from RiC-O_1-1.rdf - agent/thing affected by activity + + narrow_mappings: + # prov.ttl line 1194-1206: wasInvalidatedBy + # "An entity that was invalidated by this activity" + # Narrower: specifically about data/provenance entities becoming invalid, + # not general physical cessation of existence + - prov:wasInvalidatedBy # from prov.ttl - entity invalidated by activity (data focus) + + related_mappings: + # prov.ttl line 729-740: invalidated (inverse of wasInvalidatedBy) + # "The Entity that was invalidated by this Activity" + # Related: inverse direction - activity that invalidated entity + - prov:invalidated # from prov.ttl - inverse of wasInvalidatedBy + + # RiC-O_1-1.rdf line 4428: hasDeathDate (for Persons specifically) + # Related but narrower: only for Person entities, and links to Date not Event + - rico:hasDeathDate # from RiC-O_1-1.rdf - death date for Person (narrower) + + # RiC-O_1-1.rdf line 5018: hasEndDate + # Related but different: links to Date, not to the ending Event + - rico:hasEndDate # from RiC-O_1-1.rdf - end date (not ending event) + + broad_mappings: + # schemaorg.owl line 14424-14427: deathDate (DatatypeProperty) + # Broader/different: date value, not event; only for Person + - schema:deathDate # from schemaorg.owl - death date for Person (value, not event) + + # schemaorg.owl line 15305-15308: dissolutionDate (DatatypeProperty) + # Broader/different: date value for Organization dissolution, not event + - schema:dissolutionDate # from schemaorg.owl - dissolution date for Organization (value, not event) + + aliases: + - ceases_or_ceased_through + - was_ended_by + - terminated_by + - dissolved_through + + examples: + - value: + has_or_had_identifier: "https://example.org/event/museum-closure-2024" + has_or_had_label: "Museum Closure Event 2024" + description: Museum ceased operations through a closure event + - value: + has_or_had_identifier: "https://example.org/event/organization-dissolution" + has_or_had_label: "Organization Dissolution" + description: Organization ceased to exist through dissolution + + comments: + - | + MIGRATED from cessation_observed_in (Rule 53). + - | + slot_uri changed from prov:wasInvalidatedBy to hc:ceasedThrough because + PROV-O 'wasInvalidatedBy' is specifically about data/provenance entities + (prov:Entity) being invalidated by activities. Our 'ceased_through' is + more general, covering physical organizations, institutions, and abstract + concepts ceasing to exist. + - | + CIDOC-CRM semantics note: 'crm:P93i_was_taken_out_of_existence_by' + is the inverse of 'crm:P93_took_out_of_existence' and connects + E77 Persistent Item to E64 End of Existence event. Subproperties + include P100i (died in), P99i (dissolved by), P124i (transformed by). + - | + Verified predicates from: + - data/ontology/CIDOC_CRM_v7.1.3.rdf (crm:P93i_was_taken_out_of_existence_by line 3210) + - data/ontology/prov.ttl (prov:wasInvalidatedBy line 1194, prov:invalidated line 729) + - data/ontology/RiC-O_1-1.rdf (rico:isOrWasAffectedBy line 12585, rico:hasDeathDate line 4428, rico:hasEndDate line 5018) + - data/ontology/schemaorg.owl (schema:deathDate line 14424, schema:dissolutionDate line 15305) diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/changed_through.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/changed_through.yaml new file mode 100644 index 0000000000..9f089fc577 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/changed_through.yaml @@ -0,0 +1,63 @@ +id: https://nde.nl/ontology/hc/slot/changed_through +name: changed_through +title: changed through +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# +imports: + - linkml:types +default_prefix: hc +slots: + changed_through: + slot_uri: prov:wasInfluencedBy + description: >- + To undergo modification or transformation as a direct result of a + specific process, event, or intervention. + alt_descriptions: + nl: >- + Het ondergaan van wijziging of transformatie als gevolg van een + specifiek proces, gebeurtenis of interventie. + de: >- + Eine Änderung oder Transformation als direktes Ergebnis eines + bestimmten Prozesses, Ereignisses oder Eingriffs durchlaufen. + fr: >- + Subir une modification ou une transformation en conséquence directe + d'un processus, événement ou intervention spécifique. + ar: >- + الخضوع لتعديل أو تحول كنتيجة مباشرة لعملية أو حدث أو تدخل محدد. + id: >- + Mengalami modifikasi atau transformasi sebagai akibat langsung dari + proses, peristiwa, atau intervensi tertentu. + zh: >- + 作为特定过程、事件或干预的直接结果而经历修改或转变。 + es: >- + Experimentar modificación o transformación como resultado directo + de un proceso, evento o intervención específica. + structured_aliases: + - literal_form: veranderd door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: geändert durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: changé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: تغير من خلال + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diubah melalui + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 通过...变更 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: cambiado mediante + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + # range: OrganizationalChangeEvent + multivalued: true + aliases: + - changes_or_changed_through diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/collect.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/collect.yaml new file mode 100644 index 0000000000..73f0a33d44 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/collect.yaml @@ -0,0 +1,160 @@ +id: https://nde.nl/ontology/hc/slot/collect +name: collect +title: collect +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# + dcat: http://www.w3.org/ns/dcat# +imports: +- linkml:types +default_prefix: hc +slots: + collect: + slot_uri: hc:collect + description: >- + To systematically acquire, document, and safeguard items or data. + alt_descriptions: + nl: >- + Systematisch objecten of gegevens verwerven, documenteren en beschermen. + de: >- + Systematisch Gegenstände oder Daten erwerben, dokumentieren und schützen. + fr: >- + Acquérir, documenter et protéger systématiquement des objets ou des données. + ar: >- + الحصول على العناصر أو البيانات وتوثيقها وحمايتها بشكل منهجي. + id: >- + Secara sistematis memperoleh, mendokumentasikan, dan melindungi item atau data. + zh: >- + 系统地获取、记录和保护物品或数据。 + es: >- + Adquirir, documentar y salvaguardar sistemáticamente objetos o datos. + structured_aliases: + - literal_form: verzamelt + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: sammelt + predicate: EXACT_SYNONYM + in_language: de + - literal_form: collecte + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يجمع + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mengumpulkan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 收集 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: colecciona + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + multivalued: true + inlined: false + inlined_as_list: false + + # VERIFIED MAPPINGS (2026-02-XX) + # Source files: data/ontology/RiC-O_1-1.rdf, data/ontology/CIDOC_CRM_v7.1.3.rdf, + # data/ontology/schemaorg.owl, data/ontology/dcat3.ttl + + close_mappings: + # RiC-O_1-1.rdf line 9859-9892: isAccumulatorOf + # "Connects an Agent to a Record Resource or Instantiation it accumulates" + # "accumulates it, be it intentionally (collecting) or not (receiving in the course of its activities)" + # Close: archival accumulation includes intentional collecting + - rico:isAccumulatorOf # from RiC-O_1-1.rdf - agent accumulates record resource + + # RiC-O_1-1.rdf line 3525-3563: hasAccumulator (inverse) + # "Connects a Record Resource or Instantiation to an Agent that accumulates it" + # Close: inverse direction - what has been accumulated by whom + - rico:hasAccumulator # from RiC-O_1-1.rdf - record resource has accumulator agent + + related_mappings: + # CIDOC_CRM_v7.1.3.rdf line 3639-3665: P109_has_current_or_former_curator + # Related but different: curatorial responsibility, not collecting scope + - crm:P109_has_current_or_former_curator # from CIDOC_CRM_v7.1.3.rdf - curatorial responsibility + + # CIDOC_CRM_v7.1.3.rdf line 1681-1708: P22_transferred_title_to + # Related: acquisition event that transferred title (event-focused, not scope) + - crm:P22_transferred_title_to # from CIDOC_CRM_v7.1.3.rdf - acquisition event + + # schemaorg.owl line 6762-6765: acquiredFrom + # Related but different direction: source of acquisition, not what is collected + - schema:acquiredFrom # from schemaorg.owl - acquisition source (different direction) + + # schemaorg.owl line 12156-12161: collection + # Related: collection as target of action + - schema:collection # from schemaorg.owl - collection target of action + + # dcat3.ttl line 818: dataset + # Related: links catalog to dataset (data collection context) + - dcat:dataset # from dcat3.ttl - catalog has dataset (data context) + + broad_mappings: + # schemaorg.owl line 28732-28736: owns + # Broader: general ownership, not specifically about collecting activity + - schema:owns # from schemaorg.owl - ownership (broader than collecting) + + # RiC-O_1-1.rdf line 6437-6439: hasOrHadHolder + # Broader: holding/custody relationship, not collecting activity + - rico:hasOrHadHolder # from RiC-O_1-1.rdf - holder relationship (broader) + + # CIDOC_CRM_v7.1.3.rdf line 2383-2408: P49_has_former_or_current_keeper + # Broader: custody/keeping, not active collecting + - crm:P49_has_former_or_current_keeper # from CIDOC_CRM_v7.1.3.rdf - custody (broader) + + # CIDOC_CRM_v7.1.3.rdf line 2410-2436: P50_has_current_keeper + # Broader: current custody relationship (narrower than P49 but still custody not collection) + - crm:P50_has_current_keeper # from CIDOC_CRM_v7.1.3.rdf - current custody (broader) + + aliases: + - collects_or_collected + - has_collecting_scope + - acquires + - accumulates + annotations: + custodian_types: '["C", "M", "A", "L"]' + custodian_types_rationale: Primarily for Corporations (C), Museums (M), Archives (A), and Libraries (L) that actively collect materials. + custodian_types_primary: C + specificity_score: '0.45' + specificity_rationale: Moderate specificity - applies to custodians with collecting programs. + examples: + - value: + has_or_had_identifier: "https://example.org/collection-scope/dutch-masters" + has_or_had_label: "Dutch Masters Paintings" + description: Museum collects Dutch Masters paintings + - value: + has_or_had_identifier: "https://example.org/collection-scope/corporate-records" + has_or_had_label: "Corporate Administrative Records" + description: Archive collects corporate administrative records + comments: + - Created from slot_fixes.yaml migration (2026-01-19) + - Part of collection_purpose migration + - Range is uriorcurie to allow class narrowing via slot_usage + - | + Mapping corrections (2026-02-XX): + - Moved crm:P109_has_current_or_former_curator from close_mappings to related_mappings + (P109 is about curatorial RESPONSIBILITY, not collecting ACTIVITY) + - Moved schema:owns and rico:hasOrHadHolder to broad_mappings + (ownership/custody STATE is broader than collecting ACTIVITY) + - Added rico:isAccumulatorOf and rico:hasAccumulator as close_mappings + (RiC-O accumulation includes intentional collecting) + - | + CIDOC-CRM note: E8 Acquisition is the class for collecting events. + P22_transferred_title_to/P23_transferred_title_from are the properties + that connect Acquisition to Actor. This slot describes collecting SCOPE, + not individual acquisition events. + - | + Verified predicates from: + - data/ontology/RiC-O_1-1.rdf (rico:isAccumulatorOf line 9859, rico:hasAccumulator line 3525, rico:hasOrHadHolder line 6437) + - data/ontology/CIDOC_CRM_v7.1.3.rdf (crm:P109 line 3639, crm:P22 line 1681, crm:P49 line 2383, crm:P50 line 2410) + - data/ontology/schemaorg.owl (schema:owns line 28732, schema:acquiredFrom line 6762, schema:collection line 12156) + - data/ontology/dcat3.ttl (dcat:dataset line 818) + see_also: + - https://www.ica.org/standards/RiC/ontology#isAccumulatorOf + - https://www.cidoc-crm.org/Entity/e8-acquisition/version-7.1.3 diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/fulfilled_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/fulfilled_by.yaml new file mode 100644 index 0000000000..b3defa53c1 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/fulfilled_by.yaml @@ -0,0 +1,123 @@ +id: https://nde.nl/ontology/hc/slot/fulfilled_by +name: fulfilled_by +title: fulfilled by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + odrl: http://www.w3.org/ns/odrl/2/ +default_prefix: hc +imports: +- linkml:types +slots: + fulfilled_by: + name: fulfilled_by + description: >- + To relate a requirement, condition, or duty to the entity that fulfills it. + alt_descriptions: + nl: >- + Een vereiste, voorwaarde of plicht relateren aan de entiteit die + eraan voldoet. + de: >- + Eine Anforderung, Bedingung oder Pflicht mit der Entität verbinden, + die sie erfüllt. + fr: >- + Relier une exigence, une condition ou un devoir à l'entité qui + la remplit. + ar: >- + ربط متطلب أو شرط أو واجب بالكيان الذي يفي به. + id: >- + Menghubungkan persyaratan, kondisi, atau tugas dengan entitas + yang memenuhinya. + zh: >- + 将需求、条件或责任与满足它的实体关联起来。 + es: >- + Relacionar un requisito, condición o deber con la entidad que + lo cumple. + structured_aliases: + - literal_form: vervuld door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: erfüllt von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: rempli par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يتم الوفاء به من قبل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dipenuhi oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 由...满足 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: cumplido por + predicate: EXACT_SYNONYM + in_language: es + slot_uri: hc:fulfilledBy + # range: Any + multivalued: true + + # VERIFIED MAPPINGS (2026-02-XX) + # Source files: data/ontology/odrl.ttl, data/ontology/schemaorg.owl + + # No exact_mappings: hc:fulfilledBy has specific requirement-fulfillment semantics + # that are not precisely matched by standard ontologies + + close_mappings: + # schemaorg.owl line 16287-16290: eligibleCustomerType - "The type of customer eligible for offer" + # Semantically similar: specifies who can satisfy eligibility criteria + - schema:eligibleCustomerType # from schemaorg.owl - eligibility/qualification relationship + + # odrl.ttl line 1777-1788: assignee - "The Party that receives the permission" + # In ODRL, assignee is the party that can exercise a permission (fulfills conditions to use) + - odrl:assignee # from odrl.ttl - party that receives/fulfills permission terms + + related_mappings: + # schemaorg.owl line 29158-29161: participant - "Other co-agents that participated in the action" + # Broader: general participation, not specifically fulfillment + - schema:participant # from schemaorg.owl - general participation in action + + # odrl.ttl line 769-776: duty - "Relates an individual Duty to a Permission" + # Note: Different direction - duty is ON a party, not fulfilled BY a party + # "A Duty is a pre-condition which must be fulfilled in order to receive the Permission" + - odrl:duty # from odrl.ttl - pre-condition that must be fulfilled (inverted relationship) + + # odrl.ttl line 778-785: obligation - "Relates an individual Duty to a Policy" + # "The Duty is a requirement which must be fulfilled" + - odrl:obligation # from odrl.ttl - requirement that must be fulfilled + + broad_mappings: + # odrl.ttl line 739-743: constraint - general constraint expression + # Much broader: any constraint, not specifically about who fulfills it + - odrl:constraint # from odrl.ttl - general constraint (broader than fulfillment) + + aliases: + - can_or_could_be_fulfilled_by + - satisfied_by + - met_by + annotations: + custodian_types: '["*"]' + examples: + - value: + has_or_had_identifier: "https://nde.nl/ontology/hc/applicant/non-profit" + has_or_had_label: "Non-profit Organization" + description: Requirement fulfilled by non-profit applicants + - value: + has_or_had_identifier: "https://example.org/role/museum-professional" + has_or_had_label: "Museum Professional" + description: Eligibility criterion fulfilled by museum professionals + comments: + - | + MIGRATED from `eligible_applicant` (via ApplicantRequirement). + - | + ODRL semantics note: In ODRL, 'odrl:duty' expresses "Permission has Duty" + (a pre-condition), while 'odrl:assignee' expresses "who receives permission". + Our 'fulfilled_by' is semantically closer to assignee (who can satisfy) than + duty (what must be done). + - | + Verified predicates from: + - data/ontology/odrl.ttl (odrl:assignee, odrl:duty, odrl:obligation, odrl:constraint) + - data/ontology/schemaorg.owl (schema:eligibleCustomerType, schema:participant) diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/has_score.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/has_score.yaml new file mode 100644 index 0000000000..9639beb38b --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/has_score.yaml @@ -0,0 +1,141 @@ +id: https://nde.nl/ontology/hc/slot/has_score +name: has_score +title: has score +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dqv: http://www.w3.org/ns/dqv# + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# +default_prefix: hc +imports: +- linkml:types +slots: + has_score: + slot_uri: hc:hasScore + description: >- + To possess a quantitative value assigned to evaluate rank, quality, + or performance against a defined metric. + alt_descriptions: + nl: >- + Het bezitten van een kwantitatieve waarde toegekend om rang, kwaliteit + of prestatie te evalueren tegen een gedefinieerde maatstaf. + de: >- + Einen quantitativen Wert besitzen, der zur Bewertung von Rang, Qualität + oder Leistung anhand einer definierten Metrik zugewiesen wird. + fr: >- + Posséder une valeur quantitative attribuée pour évaluer le rang, la + qualité ou la performance par rapport à une métrique définie. + ar: >- + امتلاك قيمة كمية مخصصة لتقييم الرتبة أو الجودة أو الأداء وفقًا لمقياس محدد. + id: >- + Memiliki nilai kuantitatif yang ditetapkan untuk mengevaluasi peringkat, + kualitas, atau kinerja terhadap metrik yang ditentukan. + zh: >- + 拥有一个用于根据定义的指标评估排名、质量或性能的量化值。 + es: >- + Poseer un valor cuantitativo asignado para evaluar rango, calidad + o rendimiento según una métrica definida. + structured_aliases: + - literal_form: heeft score + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Punktzahl + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a un score + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: لديه درجة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki skor + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 具有分数 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene puntuación + predicate: EXACT_SYNONYM + in_language: es + range: float + multivalued: true + + # VERIFIED MAPPINGS (2026-02-XX) + # Source files: data/ontology/schemaorg.owl, data/ontology/dqv.ttl, + # data/ontology/sosa.ttl, data/ontology/prov.ttl + + close_mappings: + # schemaorg.owl line 32043-32054: ratingValue + # "The rating for the content" - ObjectProperty + # Close: rating/score value semantics, but schema.org ratings have + # min/max bounds (worstRating/bestRating) which our generic score doesn't require + - schema:ratingValue # from schemaorg.owl - rating value within rating system + + # prov.ttl line 1055-1064: value + # "Provides a value that is a direct representation of an entity" + # Close: generic value representation, but prov:value is broader + - prov:value # from prov.ttl - direct value representation + + related_mappings: + # dqv.ttl line 157-161: hasQualityMeasurement + # "Refers to the performed quality measurements" + # Related: links to QualityMeasurement object (structured), not a scalar value + - dqv:hasQualityMeasurement # from dqv.ttl - links to structured quality measurement + + # sosa.ttl line 351-372: hasResult + # "Relation linking an Observation or Actuation or act of Sampling to its Result" + # Related: observation/sensor result (different context) + - sosa:hasResult # from sosa.ttl - observation/actuation result + + # schemaorg.owl line 9884-9887: bestRating + # "The highest value allowed in this rating system" + # Related: defines rating scale bounds, not the score value itself + - schema:bestRating # from schemaorg.owl - max rating bound + + # schemaorg.owl line 40641-40644: worstRating + # "The lowest value allowed in this rating system" + # Related: defines rating scale bounds, not the score value itself + - schema:worstRating # from schemaorg.owl - min rating bound + + aliases: + - has_or_had_score + - rating_value + - confidence_score + + annotations: + custodian_types: '["*"]' + + examples: + - value: 0.85 + description: XPath match confidence score (85% confidence) + - value: 0.72 + description: Relevance score for search result + - value: 4.5 + description: Quality rating (e.g., on 1-5 scale) + + comments: + - | + **USAGE**: + + Used for: + - XPath match confidence scores (0.0-1.0) + - Relevance scores + - Quality ratings + - Similarity scores + - | + **SEMANTIC NOTES**: + + Unlike schema:ratingValue which is part of a Rating with defined + worstRating/bestRating bounds, hc:hasScore is a generic numeric + score without required scale constraints. The interpretation of + the score depends on context (0.0-1.0 for confidence, 1-5 for + quality ratings, etc.). + - | + Verified predicates from: + - data/ontology/schemaorg.owl (schema:ratingValue line 32043, schema:bestRating line 9884, schema:worstRating line 40641) + - data/ontology/dqv.ttl (dqv:hasQualityMeasurement line 157) + - data/ontology/sosa.ttl (sosa:hasResult line 351) + - data/ontology/prov.ttl (prov:value line 1055) + diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/has_url.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/has_url.yaml new file mode 100644 index 0000000000..b2ec4733bf --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/has_url.yaml @@ -0,0 +1,125 @@ +id: https://nde.nl/ontology/hc/slot/has_url +name: has_url +title: has URL +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + foaf: http://xmlns.com/foaf/0.1/ + dcat: http://www.w3.org/ns/dcat# +default_prefix: hc +imports: +- linkml:types +slots: + has_url: + slot_uri: hc:hasUrl + range: uri + description: >- + To possess a standardized address that specifies the precise location + of a resource or entity on the internet. + alt_descriptions: + nl: >- + Het bezitten van een gestandaardiseerd adres dat de specifieke locatie + van een bron of entiteit op het internet aanduidt. + de: >- + Das Besitzen einer standardisierten Adresse, die den genauen Standort + einer Ressource oder Entität im Internet angibt. + fr: >- + Posséder une adresse standardisée qui spécifie l'emplacement précis + d'une ressource ou d'une entité sur Internet. + ar: >- + امتلاك عنوان موحد يحدد الموقع الدقيق لمورد أو كيان على الإنترنت. + id: >- + Memiliki alamat standar yang menentukan lokasi tepat dari sumber daya + atau entitas di internet. + zh: >- + 拥有一个标准化地址,用于指定资源或实体在互联网上的精确位置。 + es: >- + Poseer una dirección estandarizada que especifica la ubicación precisa + de un recurso o entidad en Internet. + structured_aliases: + - literal_form: heeft URL + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat URL + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a URL + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: لديه رابط + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki URL + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 具有网址 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene URL + predicate: EXACT_SYNONYM + in_language: es + implements: + - linkml:ObjectProperty + required: false + multivalued: true + inlined: false + inlined_as_list: false + # Semantic Mappings - Verified against source ontology files + # Verification date: 2025-02-02 + exact_mappings: + # schema:url - Schema.org URL property for any entity + # Verified: schemaorg.owl line 39120 (owl:ObjectProperty) + # Semantics: URL of the item - exact semantic match to has_url + - schema:url + close_mappings: + # foaf:homepage - FOAF homepage property for agents + # Verified: foaf.ttl line 291 (rdf:Property, owl:InverseFunctionalProperty) + # Semantics: Primary/main website - narrower scope (main page only) + - foaf:homepage + related_mappings: + # dcat:landingPage - DCAT landing page for datasets/distributions + # Verified: dcat3.ttl line 1241 + # Semantics: Human-readable entry page - specific to data catalogs + - dcat:landingPage + # dcat:accessURL - DCAT access URL for distributions + # Verified: dcat3.ttl line 562 + # Semantics: URL giving access to distribution - specific to data access + - dcat:accessURL + aliases: + - has_or_had_url + annotations: + replaces_slots: website, url, vendor_url + migration_date: '2026-01-15' + custodian_types: '["*"]' + custodian_types_rationale: URLs apply to all heritage custodian types. + specificity_score: 0.15 + specificity_rationale: Generic URL slot applicable across all contexts. + comments: + - >- + **Temporal Semantics**: This URL may be historical - websites change + over time. The alias 'has_or_had_url' reflects RiC-O temporal naming + conventions. + - >- + **Ontological Alignment**: + - **Primary** (`slot_uri`): `hc:hasUrl` - Heritage Custodian property + - **Exact**: `schema:url` - Schema.org URL property (line 39120) + - **Close**: `foaf:homepage` - FOAF homepage for main websites (line 291) + - **Related**: `dcat:landingPage`, `dcat:accessURL` - DCAT catalog URLs + - >- + **Use Cases**: + Institution websites, API endpoints, vendor/supplier websites, + documentation links, social media profiles. + - >- + **Range**: uri - Broadened from URL class to resolve type ambiguity. + Multivalued as entities may have multiple URLs of different types. + - >- + **Prefix Cleanup**: Removed unused prefixes (owl, dcterms, prov, crm, + skos, rdfs, org, xsd). Added dcat for related mappings. + examples: + - value: https://www.rijksmuseum.nl/ + description: Official website for Rijksmuseum + - value: https://api.rijksmuseum.nl/api/nl/collection + description: Rijksmuseum API endpoint for collection data + - value: https://www.nationaalarchief.nl/ + description: Official website for Nationaal Archief diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/identified_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/identified_by.yaml new file mode 100644 index 0000000000..b8bf3886cd --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/identified_by.yaml @@ -0,0 +1,156 @@ +id: https://nde.nl/ontology/hc/slot/identified_by +name: identified_by +title: identified by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# + skos: http://www.w3.org/2004/02/skos/core# +imports: +- linkml:types +default_prefix: hc +description: | + To be recognized or established as a particular entity based on specific + distinguishing designators or symbols. + + This slot captures identifiers in the general sense - strings, codes, URIs, + or other tokens that uniquely or semi-uniquely reference an entity within + some context or system. +slots: + identified_by: + slot_uri: crm:P1_is_identified_by + description: >- + To be recognized or established as a particular entity based on specific + distinguishing designators or symbols. + alt_descriptions: + nl: >- + Herkend of vastgesteld worden als een bepaalde entiteit op basis van + specifieke onderscheidende aanduidingen of symbolen. + de: >- + Als eine bestimmte Entität erkannt oder etabliert werden, basierend + auf spezifischen unterscheidenden Bezeichnungen oder Symbolen. + fr: >- + Être reconnu ou établi comme une entité particulière sur la base de + désignateurs ou symboles distinctifs spécifiques. + ar: >- + التعرف عليه أو إثباته ككيان معين بناءً على معرفات أو رموز مميزة محددة. + id: >- + Dikenali atau ditetapkan sebagai entitas tertentu berdasarkan penanda + atau simbol pembeda yang spesifik. + zh: >- + 根据特定的区分性标识符或符号被识别或确立为特定实体。 + es: >- + Ser reconocido o establecido como una entidad particular basándose en + designadores o símbolos distintivos específicos. + structured_aliases: + - literal_form: geïdentificeerd door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: identifiziert durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: identifié par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: معرف بواسطة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diidentifikasi oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 由...标识 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: identificado por + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + multivalued: true + + # VERIFIED MAPPINGS (2026-02-XX) + # Source files: data/ontology/dcterms.rdf, data/ontology/CIDOC_CRM_v7.1.3.rdf, + # data/ontology/schemaorg.owl, data/ontology/RiC-O_1-1.rdf, + # data/ontology/skos.rdf + + exact_mappings: + # dcterms.rdf line 1395-1416: identifier + # "An unambiguous reference to the resource within a given context" + # Exact: same core semantics of identification + - dcterms:identifier # from dcterms.rdf - unambiguous reference in context + + # schemaorg.owl line 21325-21328: identifier + # "The identifier property represents any kind of identifier for any kind of Thing" + # Exact: general-purpose identifier property + - schema:identifier # from schemaorg.owl - any identifier for any Thing + + close_mappings: + # RiC-O_1-1.rdf line 6493-6497: hasOrHadIdentifier + # Object property connecting to Identifier entity + # Close: same semantics but object property (links to Identifier, not literal) + - rico:hasOrHadIdentifier # from RiC-O_1-1.rdf - connects to Identifier entity + + # CIDOC_CRM_v7.1.3.rdf line 2353-2367: P48_has_preferred_identifier + # Subproperty of P1 for preferred/primary identifier + # Close: narrower (only preferred identifier) + - crm:P48_has_preferred_identifier # from CIDOC_CRM_v7.1.3.rdf - preferred identifier + + # RiC-O_1-1.rdf line 7143-7147: hasOrHadName + # Object property for names/appellations + # Close: names are a type of identifier (narrower: human-readable names) + - rico:hasOrHadName # from RiC-O_1-1.rdf - name/appellation (narrower) + + related_mappings: + # skos.rdf line 166-170: notation + # "A notation, also known as classification code" + # Related but narrower: specifically for concept scheme classification codes + - skos:notation # from skos.rdf - classification code (narrower context) + + # CIDOC_CRM_v7.1.3.rdf line 1198: P1i_identifies (inverse) + # Inverse direction: Appellation identifies Entity + - crm:P1i_identifies # from CIDOC_CRM_v7.1.3.rdf - inverse of P1 + + # RiC-O_1-1.rdf line 13768-13772: isOrWasIdentifierOf (inverse) + # Inverse direction: Identifier identifies Entity + - rico:isOrWasIdentifierOf # from RiC-O_1-1.rdf - inverse of hasOrHadIdentifier + + aliases: + - has_or_had_identifier + - has_identifier + - is_known_by + + annotations: + custodian_types: '["*"]' + + examples: + - value: "https://ror.org/02e2c7k09" + description: ROR identifier for Rijksmuseum + - value: "NL-AmRMA" + description: ISIL code for Rijksmuseum Amsterdam + - value: "Q190804" + description: Wikidata QID for Rijksmuseum + + comments: + - | + slot_uri changed from dcterms:identifier to crm:P1_is_identified_by + because P1 is more semantically general - it covers identification by + any appellation (names, identifiers, codes) whereas dcterms:identifier + is specifically for literal identifier strings. + - | + CIDOC-CRM P1 semantics: "describes the naming or identification of any + real-world item by a name or any other identifier. This property is + intended for identifiers in general use, which form part of the world + the model intends to describe." + - | + dcterms:identifier and schema:identifier are kept as exact_mappings + because they have the same core semantics, just with different + range expectations (literals vs. structured values). + - | + Verified predicates from: + - data/ontology/CIDOC_CRM_v7.1.3.rdf (crm:P1_is_identified_by line 1172, crm:P48 line 2353) + - data/ontology/dcterms.rdf (dcterms:identifier line 1395) + - data/ontology/schemaorg.owl (schema:identifier line 21325) + - data/ontology/RiC-O_1-1.rdf (rico:hasOrHadIdentifier line 6493, rico:hasOrHadName line 7143) + - data/ontology/skos.rdf (skos:notation line 166) diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_reply.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/replied_to.yaml similarity index 55% rename from schemas/20251121/linkml/modules/slots/has_or_had_reply.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/replied_to.yaml index 8f340c8212..0c01bec892 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_reply.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/replied_to.yaml @@ -1,5 +1,5 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_reply -name: has_or_had_reply +id: https://nde.nl/ontology/hc/slot/reply_to +name: reply_to prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -17,49 +17,11 @@ imports: - linkml:types default_prefix: hc slots: - has_or_had_reply: + reply_to: slot_uri: sioc:has_reply description: 'Reply or response associated with content (comments, posts, messages). - **PURPOSE**: - - - Captures reply/response relationships and metrics for threaded discussions - - using CommentReply class for structured representation. - - - **RiC-O NAMING** (Rule 39): - - - Uses "has_or_had_" prefix to indicate temporal relationship - the content - - has replies currently or had replies in the past (e.g., deleted replies). - - - **ONTOLOGY ALIGNMENT**: - - - | Ontology | Property | Usage | - - |----------|----------|-------| - - | **SIOC** | `sioc:has_reply` | Discussion reply relationship | - - | **Activity Streams** | `as:inReplyTo` (inverse) | Social media replies | - - | **Schema.org** | `schema:comment` | Generic comment relationship | - - - **MIGRATION NOTE**: - - - Created from migration of `comment_reply_count` slot per slot_fixes.yaml. - - Replaces simple integer counts with structured reply data. - - ' range: string # uriorcurie multivalued: true exact_mappings: @@ -68,6 +30,8 @@ slots: - schema:comment related_mappings: - as:inReplyTo + aliases: + - has_or_had_reply examples: - value: https://nde.nl/ontology/hc/reply/comment-123-replies description: Reply collection for a comment @@ -79,3 +43,44 @@ slots: custodian_types: '["*"]' specificity_score: 0.55 specificity_rationale: Moderately general - applies to any threaded discussion context. + comments: + - | + + **PURPOSE**: + + + Captures reply/response relationships and metrics for threaded discussions + + using CommentReply class for structured representation. + + - | + **RiC-O NAMING** (Rule 39): + + + Uses "has_or_had_" prefix to indicate temporal relationship - the content + + has replies currently or had replies in the past (e.g., deleted replies). + + - | + **ONTOLOGY ALIGNMENT**: + + + | Ontology | Property | Usage | + + |----------|----------|-------| + + | **SIOC** | `sioc:has_reply` | Discussion reply relationship | + + | **Activity Streams** | `as:inReplyTo` (inverse) | Social media replies | + + | **Schema.org** | `schema:comment` | Generic comment relationship | + + - | + **MIGRATION NOTE**: + + + Created from migration of `comment_reply_count` slot per slot_fixes.yaml. + + Replaces simple integer counts with structured reply data. + + ' \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_from.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_from.yaml new file mode 100644 index 0000000000..ef2393c378 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_from.yaml @@ -0,0 +1,138 @@ +id: https://nde.nl/ontology/hc/slot/retrieved_from +name: retrieved_from +title: retrieved from +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcat: http://www.w3.org/ns/dcat# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# +imports: +- linkml:types +default_prefix: hc +slots: + retrieved_from: + description: >- + To indicate where (endpoint, location, or address) data was obtained. + alt_descriptions: + nl: >- + Aangeven waar (eindpunt, locatie of adres) gegevens zijn verkregen. + de: >- + Angeben, wo (Endpunkt, Ort oder Adresse) Daten bezogen wurden. + fr: >- + Indiquer d'où (point d'accès, emplacement ou adresse) les données + ont été obtenues. + ar: >- + الإشارة إلى المكان (نقطة النهاية أو الموقع أو العنوان) الذي تم + الحصول على البيانات منه. + id: >- + Menunjukkan dari mana (endpoint, lokasi, atau alamat) data diperoleh. + zh: >- + 指示从哪里(端点、位置或地址)获取的数据。 + es: >- + Indicar de dónde (punto de acceso, ubicación o dirección) se + obtuvieron los datos. + structured_aliases: + - literal_form: opgehaald van + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: abgerufen von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: récupéré de + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: تم استرجاعه من + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diambil dari + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 检索自 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: recuperado de + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + # range: Endpoint + multivalued: true + inlined: false # Fixed invalid inline for primitive type + slot_uri: hc:retrievedFrom + + # VERIFIED MAPPINGS (2026-02-XX) + # Source files: data/ontology/prov.ttl, data/ontology/dcat3.ttl, + # data/ontology/dcterms.rdf, data/ontology/schemaorg.owl + + close_mappings: + # dcat3.ttl line 896-937: downloadURL - "URL of the downloadable file" + # Very close: specific URL from which distribution is directly accessible + - dcat:downloadURL # from dcat3.ttl - direct download URL for distribution + + # dcat3.ttl line 562-594: accessURL - "URL of the resource that gives access" + # Close: access point for distribution (may not be direct download) + - dcat:accessURL # from dcat3.ttl - access point for dataset distribution + + # prov.ttl line 661-667: hadPrimarySource - "original source of information" + # Close: emphasizes source provenance (subproperty of wasDerivedFrom) + - prov:hadPrimarySource # from prov.ttl - primary source of information + + related_mappings: + # prov.ttl line 1099-1104: wasDerivedFrom - "entity derived from another" + # Related but broader: general derivation, not specifically retrieval location + - prov:wasDerivedFrom # from prov.ttl - general derivation relationship + + # dcterms.rdf line 1920-1943: source - "related resource from which described is derived" + # Related: source relationship (may be abstract, not necessarily a URL) + - dcterms:source # from dcterms.rdf - related resource from which derived + + # dcat3.ttl line 536-540: accessService - "data service giving access to distribution" + # Related: service-level access (not a direct URL) + - dcat:accessService # from dcat3.ttl - service providing access to distribution + + # dcat3.ttl line 1008: endpointURL - "root location/endpoint of service" + # Related: service endpoint (API base, not specific resource URL) + - dcat:endpointURL # from dcat3.ttl - root endpoint of data service + + broad_mappings: + # schemaorg.owl: downloadUrl - "URL to download directly" + # Broader context: Schema.org is less precise about data provenance + - schema:downloadUrl # from schemaorg.owl - direct download URL + + # prov.ttl line 1082-1087: wasAttributedTo - "attributed to agent" + # Broader: about attribution to agent, not location of retrieval + - prov:wasAttributedTo # from prov.ttl - attribution (broader than location) + + aliases: + - can_or_could_be_retrieved_from + - obtained_from + - downloaded_from + - fetched_from + annotations: + custodian_types: '["*"]' + specificity_score: 0.4 + examples: + - value: "https://data.rijksmuseum.nl/api/v1/collection" + description: Data retrieved from Rijksmuseum collection API + - value: "https://www.nationaalarchief.nl/onderzoeken/zoekhulpen/download.csv" + description: CSV downloaded from National Archives search helper + comments: + - | + MIGRATED from download_endpoint (2026-01-26). + - | + PROV-O semantics note: 'prov:hadPrimarySource' is a subproperty of + 'prov:wasDerivedFrom' and emphasizes the ORIGINAL source. Our + 'retrieved_from' focuses on the LOCATION of retrieval, which may + be an intermediate endpoint (e.g., aggregator API) rather than + the primary source. + - | + DCAT semantics note: 'dcat:downloadURL' should be used for direct + HTTP GET access; 'dcat:accessURL' is broader and may include landing + pages or API endpoints requiring additional navigation. + - | + Verified predicates from: + - data/ontology/prov.ttl (prov:hadPrimarySource, prov:wasDerivedFrom, prov:wasAttributedTo) + - data/ontology/dcat3.ttl (dcat:downloadURL, dcat:accessURL, dcat:accessService, dcat:endpointURL) + - data/ontology/dcterms.rdf (dcterms:source) + - data/ontology/schemaorg.owl (schema:downloadUrl) diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/ANNOTATION_TO_SLOT_MIGRATION.md b/frontend/public/schemas/20251121/linkml/modules/slots/ANNOTATION_TO_SLOT_MIGRATION.md deleted file mode 100644 index 9d2d4c3c34..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/ANNOTATION_TO_SLOT_MIGRATION.md +++ /dev/null @@ -1,138 +0,0 @@ -# Annotation-to-Slot Migration Guide - -This document maps the annotations previously used on classes to proper slots with ontology-aligned predicates. - -## Summary: Annotations → Slots - -| Annotation | New Slot | Slot URI | Ontology Source | -|------------|----------|----------|-----------------| -| `custodian_types` | `custodian_types` | `hc:custodianTypes` | Custom (GLAMORCUBESFIXPHDNT) | -| `custodian_types_rationale` | `custodian_types_rationale` | `hc:custodianTypesRationale` | Custom | -| `custodian_types_primary` | `custodian_types_primary` | `hc:custodianTypesPrimary` | Custom | -| `wikidata` | `wikidata_entity_id` | `wdt:P31` | Wikidata | -| `wikidata_label` | `wikidata_entity_label` | `rdfs:label` | RDFS | -| `wikidata_mapping_type` | `wikidata_mapping_type` | `skos:mappingRelation` | SKOS | -| `wikidata_mapping_note` | `wikidata_mapping_rationale` | `skos:note` | SKOS | -| `skos_broader` | `skos_broader` | `skos:broader` | SKOS | -| `skos_broader_label` | `skos_broader_label` | `rdfs:label` | RDFS | -| `linked_collection_type` | `linked_class_name` | `rdfs:seeAlso` | RDFS | -| `linked_custodian_type` | `linked_class_name` | `rdfs:seeAlso` | RDFS | -| `dual_class_pattern` | `dual_class_role` | `hc:dualClassRole` | Custom | -| `dual_class_pattern_note` | `link_rationale` | `skos:editorialNote` | SKOS | -| `specificity_score` | `specificity_score` | `hc:specificityScore` | Custom | -| `specificity_rationale` | `specificity_rationale` | `skos:note` | SKOS | -| `specificity_annotation_timestamp` | `specificity_timestamp` | `prov:generatedAtTime` | PROV-O | -| `specificity_annotation_agent` | `specificity_agent` | `prov:wasAttributedTo` | PROV-O | -| `template_specificity` | `template_specificity` | `hc:templateSpecificity` | Custom | - -## Structured Objects - -Instead of flat annotations, we now use structured classes: - -### WikidataAlignment - -```yaml -wikidata_alignment: - wikidata_entity_id: Q27032435 - wikidata_entity_label: "academic archive" - wikidata_mapping_type: exact - wikidata_mapping_rationale: "Exact semantic match" -``` - -**Replaces annotations:** -- `wikidata: Q27032435` -- `wikidata_label: academic archive` -- `wikidata_mapping_type: ontonym` -- `wikidata_mapping_note: ...` - -### DualClassLink - -```yaml -dual_class_link: - dual_class_role: custodian_type - linked_class_name: AcademicArchiveRecordSetType - link_rationale: "This class represents the CUSTODIAN type..." -``` - -**Replaces annotations:** -- `linked_collection_type: AcademicArchiveRecordSetType` -- `dual_class_pattern: custodian_type` -- `dual_class_pattern_note: ...` - -### SpecificityAnnotation - -```yaml -specificity_annotation: - specificity_score: 0.5 - specificity_rationale: "Archive-related class." - specificity_timestamp: "2026-01-05T10:51:51Z" - specificity_agent: opencode-claude-sonnet-4 -``` - -**Replaces annotations:** -- `specificity_score: 0.5` -- `specificity_rationale: ...` -- `specificity_annotation_timestamp: ...` -- `specificity_annotation_agent: ...` - -### TemplateSpecificityScores - -```yaml -template_specificity: - archive_search_score: 0.25 - museum_search_score: 0.55 - library_search_score: 0.55 - collection_discovery_score: 0.35 - person_research_score: 0.55 - location_browse_score: 0.55 - identifier_lookup_score: 0.55 - organizational_change_score: 0.55 - digital_platform_score: 0.55 - general_heritage_score: 0.55 -``` - -**Replaces annotation:** -- `template_specificity: { archive_search: 0.25, ... }` - -## Ontology Predicates Used - -| Prefix | Namespace | Used For | -|--------|-----------|----------| -| `skos:` | `http://www.w3.org/2004/02/skos/core#` | Concept relationships, notes | -| `prov:` | `http://www.w3.org/ns/prov#` | Provenance (timestamps, agents) | -| `rdfs:` | `http://www.w3.org/2000/01/rdf-schema#` | Labels | -| `rico:` | `https://www.ica.org/standards/RiC/ontology#` | Archival relationships | -| `wdt:` | `http://www.wikidata.org/prop/direct/` | Wikidata properties | -| `hc:` | `https://nde.nl/ontology/hc/` | Custom heritage custodian properties | - -## SKOS Predicates Detail - -| Predicate | Usage | -|-----------|-------| -| `skos:broader` | Hierarchical parent concept | -| `skos:narrower` | Hierarchical child concepts | -| `skos:related` | Associative relationships | -| `skos:exactMatch` | Exact semantic match (LinkML `exact_mappings`) | -| `skos:closeMatch` | Close semantic match (LinkML `close_mappings`) | -| `skos:broadMatch` | Broader match in different scheme (LinkML `broad_mappings`) | -| `skos:narrowMatch` | Narrower match in different scheme (LinkML `narrow_mappings`) | -| `skos:relatedMatch` | Related match in different scheme (LinkML `related_mappings`) | -| `skos:note` | General notes | -| `skos:editorialNote` | Editorial/rationale notes | -| `skos:scopeNote` | Scope definitions | - -## PROV-O Predicates Detail - -| Predicate | Usage | -|-----------|-------| -| `prov:generatedAtTime` | Timestamp when annotation was created | -| `prov:wasAttributedTo` | Agent that created the annotation | - -## Benefits of Slot-Based Approach - -1. **Semantic Interoperability**: Slot URIs map to standard ontology predicates -2. **Validation**: LinkML validates slot values (types, patterns, ranges) -3. **Structured Data**: Complex annotations become typed objects -4. **Discoverability**: Slots are documented in schema, annotations are opaque -5. **Code Generation**: Slots generate proper class attributes in Python/TypeScript -6. **RDF Export**: Slots produce valid RDF triples with correct predicates diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/accepts_or_accepted.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/accepts_or_accepted.yaml deleted file mode 100644 index ef78ddef15..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/accepts_or_accepted.yaml +++ /dev/null @@ -1,44 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/accepts_or_accepted -name: accepts_or_accepted_slot -title: Accepts Or Accepted Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - accepts_or_accepted: - description: 'Generic slot for things an institution accepts or has accepted. - - **TEMPORAL SEMANTICS** (RiC-O style): The "accepts_or_accepted" naming indicates policies can change: - Payment methods may be added/removed - External work acceptance policies change - Visiting scholar programs may start/end - - **USE CASES**: - Payment methods accepted (credit cards, cash, digital) - External work (conservation, digitization contracts) - Visiting scholars (research programs) - - **RANGE**: This is a generic slot - use slot_usage in classes to constrain the range to specific types (ExternalWork, PaymentMethod, VisitingScholar).' - range: string - slot_uri: schema:acceptedPaymentMethod - multivalued: true - close_mappings: - - schema:acceptedPaymentMethod - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Acceptance policies applicable to various custodian types. - custodian_types_primary: '*' - specificity_score: 0.5 - specificity_rationale: Moderate specificity - depends on context of what is accepted. - examples: - - value: "accepts_or_accepted:\n - \"credit_card\"\n - \"debit_card\"\n - \"cash\"\n" - description: Payment methods accepted by institution. - comments: - - Created from slot_fixes.yaml migration (2026-01-14) - - Generic slot for acceptance-related relationships - - Constrain range via slot_usage in specific classes diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/aggregates_or_aggregated_from.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/aggregates_or_aggregated_from.yaml deleted file mode 100644 index aea6fb1450..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/aggregates_or_aggregated_from.yaml +++ /dev/null @@ -1,48 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/aggregates_or_aggregated_from -name: aggregates_or_aggregated_from_slot -title: Aggregates Or Aggregated From Slot -prefixes: - dcterms: http://purl.org/dc/terms/ - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - ore: http://www.openarchives.org/ore/terms/ - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - aggregates_or_aggregated_from: - description: 'Other portals from which this portal aggregates data. - - - Used for portal-to-portal aggregation chains: - - - Europeana aggregates from DDB, Gallica, etc. - - - Archives Portal Europe aggregates from national archive portals - - - **Inverse of aggregated_by** - - ' - range: string - multivalued: true - slot_uri: dcterms:source - exact_mappings: - - dcterms:source - close_mappings: - - prov:wasDerivedFrom - related_mappings: - - ore:aggregates - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: Moderately specific slot. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/allows_or_allowed.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/allows_or_allowed.yaml deleted file mode 100644 index e075d8264c..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/allows_or_allowed.yaml +++ /dev/null @@ -1,34 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/allows_or_allowed -name: allows_or_allowed_slot -title: Allows Or Allowed Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - odrl: http://www.w3.org/ns/odrl/2/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - allows_or_allowed: - description: "Generic slot for expressing what activities, equipment, or behaviors are permitted in a heritage custodian facility (past or present).\n**SEMANTICS**:\nUses RiC-O temporal pattern (is_or_was / has_or_had / allows_or_allowed) to capture policies that may change over time. A reading room that \"allowed photography\" in 2020 may have changed policy by 2025.\n**USAGE PATTERN**:\nThe range should be a typed class representing the permitted activity: - `Laptop` - laptop use permission - `Photography` - photography permission - Future: `Food`, `Beverages`, `MobilePhone`, etc.\n**EXAMPLES**:\n```yaml ReadingRoom:\n allows_or_allowed:\n - permitted_item: Laptop\n is_permitted: true\n conditions: \"Must be silent, no external keyboards\"\n - permitted_item: Photography \n is_permitted: true\n conditions: \"Personal research use only, no flash\"\n```" - slot_uri: schema:amenityFeature - range: uriorcurie - multivalued: true - exact_mappings: - - schema:amenityFeature - close_mappings: - - odrl:permission - annotations: - custodian_types: '["*"]' - custodian_types_rationale: All heritage custodians have visitor policies. - custodian_types_primary: A - specificity_score: 0.5 - specificity_rationale: Generic permission slot applicable to reading rooms and public spaces. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/analyzes_or_analyzed.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/analyzes_or_analyzed.yaml deleted file mode 100644 index 9bc1157d8f..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/analyzes_or_analyzed.yaml +++ /dev/null @@ -1,63 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/analyzes_or_analyzed -name: analyzes_or_analyzed -title: Analyzes or Analyzed -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -- ../classes/VideoFrame -slots: - analyzes_or_analyzed: - slot_uri: schema:object - description: 'Items analyzed by an activity or process. - - - **USAGE**: - - Used for: - - - Frames analyzed in video processing (VideoFrame class) - - - Documents analyzed - - - Items processed - - - **MIGRATION SUPPORT**: - - This slot now supports VideoFrame class for frame_sample_rate migration - - per slot_fixes.yaml (Rule 53, 2026-01-22). - - - **Examples**: - - - Integer: Total frames count (legacy pattern) - - - VideoFrame: Structured frame analysis with sample rate - - ' - # range: Any - any_of: - - range: integer - - range: VideoFrame - inlined: true - examples: - - value: 24000 - description: Total video frames analyzed (integer count) - - value: "has_or_had_quantity:\n quantity_value: 1.0\n quantity_type: FRAME_SAMPLE_RATE\n has_or_had_unit:\n unit_value: \"samples per second\"\nframe_count: 1800\n" - description: Video frame analysis at 1 fps (VideoFrame instance) - annotations: - custodian_types: '["*"]' - exact_mappings: - - schema:object diff --git a/schemas/20251121/linkml/modules/slots/api_ver.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/api_ver.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/api_ver.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/api_ver.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/applies_or_applied_to.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/applies_or_applied_to.yaml deleted file mode 100644 index e534f003e7..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/applies_or_applied_to.yaml +++ /dev/null @@ -1,36 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/applies_or_applied_to -name: applies_or_applied_to_slot -title: Applies Or Applied To Slot -prefixes: - dcterms: http://purl.org/dc/terms/ - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - schema: http://schema.org/ - rico: https://www.ica.org/standards/RiC/ontology# - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - applies_or_applied_to: - description: 'The entity (call, opportunity, context) that this applies (or applied) to. Uses RiC-O style temporal naming to indicate the relationship may be current or historical. - - Migrated from applies_or_applied_to_call per Rule 53/56 (2026-01-17). Removing domain-specific suffix enables reuse across contexts.' - range: uriorcurie - slot_uri: rico:appliesOrAppliedTo - exact_mappings: - - schema:isRelatedTo - close_mappings: - - dcterms:relation - - rico:isOrWasRelatedTo - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Applicable to all heritage custodian types for various application contexts. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: Generic application relationship slot usable across contexts. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/archive_path.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive_path.yaml index 09faa0389f..24dc599854 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/archive_path.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/archive_path.yaml @@ -8,7 +8,7 @@ prefixes: linkml: https://w3id.org/linkml/ schema: http://schema.org/ hc: https://nde.nl/ontology/hc/ -default_range: string +# default_range: string slots: archive_path: slot_uri: hc:archive_path diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/asserts_or_asserted.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/asserts_or_asserted.yaml deleted file mode 100644 index e4b3561dc7..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/asserts_or_asserted.yaml +++ /dev/null @@ -1,46 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/asserts_or_asserted -name: asserts_or_asserted_slot -title: Asserts Or Asserted Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - asserts_or_asserted: - description: 'Links a provenance record, assertion, or activity to the entity, hypothesis, or proposition that it asserts or supports. - - **TEMPORAL SEMANTICS** (RiC-O style): The "asserts_or_asserted" naming indicates that assertions can change: - New evidence may modify or invalidate hypotheses - Historical assertions preserved for audit trail - Confidence levels may be updated over time - - **USAGE**: - Link Provenance to Hypothesis (prov:generated) - Link PrimaryDigitalPresenceAssertion to DigitalPresence (crm:P140) - - **RANGE**: Generic `uriorcurie` to support multiple assertion targets (Hypothesis, DigitalPresence). Classes should narrow this via slot_usage.' - range: uriorcurie - slot_uri: prov:generated - inlined: true - exact_mappings: - - prov:generated - close_mappings: - - schema:mainEntity - - crm:P140_assigned_attribute_to - annotations: - rico_naming_convention: 'Follows RiC-O "assertsOrAsserted" naming pattern. - - ' - specificity_score: 0.2 - specificity_rationale: Broadly applicable assertion predicate. - custodian_types: '["*"]' - comments: - - Created from slot_fixes.yaml migration (2026-01-14, updated 2026-01-25) - - Replaces direct type_hypothesis slot usage - - Replaces digital_presence_type usage in PrimaryDigitalPresenceAssertion - - Links asserter/activity to asserted entity/proposition diff --git a/schemas/20251121/linkml/modules/slots/basionym_authority.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/basionym_authority.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/basionym_authority.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/basionym_authority.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/begin_of_the_begin.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/begin_of_the_begin.yaml deleted file mode 100644 index c00ea5a860..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/begin_of_the_begin.yaml +++ /dev/null @@ -1,80 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/begin_of_the_begin -name: begin_of_the_begin_slot -title: Begin of the Begin Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - time: http://www.w3.org/2006/time# - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -- ../classes/Timestamp -slots: - begin_of_the_begin: - slot_uri: time:hasBeginning - description: 'Earliest possible start time of temporal extent (CIDOC-CRM E52_Time-Span). - - - **CIDOC-CRM Pattern**: - - P82a defines the earliest possible time the time span could have started. - - Used with P81a (end_of_the_begin) to express uncertainty about start time. - - - **Example**: "Founded between 1800-1805" - - - begin_of_the_begin: 1800-01-01 (earliest possible founding) - - - end_of_the_begin: 1805-12-31 (latest possible founding) - - - **Ontological Alignment**: - - - **Primary** (`slot_uri`): `time:hasBeginning` (OWL Time ObjectProperty) - - - **Close**: `crm:P82a_begin_of_the_begin` - CIDOC-CRM fuzzy bound (note: expects literal) - - - **Related**: `prov:startedAtTime` - PROV-O activity start - - - **Narrow**: `schema:startDate` - Schema.org start date - - - **Range**: Any - supports both Timestamp class and string datetime values - - ' - # range: datetime - any_of: - - range: Timestamp - - range: string - - range: datetime - inlined: true - required: false - multivalued: false - close_mappings: - - crm:P82a_begin_of_the_begin - related_mappings: - - prov:startedAtTime - narrow_mappings: - - schema:startDate - annotations: - slot_fixes_compliance: Range changed from datetime to Timestamp class per slot_fixes.yaml - migration_date: '2026-01-15' - replaces_slots: valid_from, valid_from_geo - owl_note: Uses time:hasBeginning (ObjectProperty) instead of crm:P82a (DatatypeProperty) to match Timestamp class range - custodian_types: '["*"]' - examples: - - value: 'timestamp_value: "1800-01-01" - - timestamp_precision: day - - ' - description: Earliest possible founding date diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/begin_of_the_end.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/begin_of_the_end.yaml deleted file mode 100644 index aa0d2eecd2..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/begin_of_the_end.yaml +++ /dev/null @@ -1,68 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/begin_of_the_end -name: begin_of_the_end_slot -title: Begin of the End Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - time: http://www.w3.org/2006/time# - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -- ../classes/Timestamp -slots: - begin_of_the_end: - slot_uri: hc:beginOfTheEnd - description: 'Earliest possible end time of temporal extent (CIDOC-CRM E52_Time-Span). - - - **CIDOC-CRM Pattern**: - - P81b defines the earliest possible time the time span could have ended. - - Used with P82b (end_of_the_end) to express uncertainty about end time. - - - **Example**: "Closed between 1950-1955" - - - begin_of_the_end: 1950-01-01 (earliest possible closure) - - - end_of_the_end: 1955-12-31 (latest possible closure) - - - **Ontological Alignment**: - - - **Primary** (`slot_uri`): `hc:beginOfTheEnd` (custom ObjectProperty) - - - **Close**: `crm:P81b_begin_of_the_end` - CIDOC-CRM fuzzy bound (note: expects literal) - - - **Range**: Any to accept both ISO datetime strings and Timestamp objects - - ' - # range: Any - inlined: true - required: false - multivalued: false - close_mappings: - - crm:P81b_begin_of_the_end - related_mappings: - - prov:endedAtTime - annotations: - migration_date: '2026-01-15' - owl_note: Uses hc:beginOfTheEnd (ObjectProperty) instead of crm:P81b (DatatypeProperty) to match Timestamp class range - custodian_types: '["*"]' - examples: - - value: 'timestamp_value: "1950-01-01" - - timestamp_precision: day - - ' - description: Earliest possible closure date diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/can_or_could_be_fulfilled_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/can_or_could_be_fulfilled_by.yaml deleted file mode 100644 index cd521bdcb3..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/can_or_could_be_fulfilled_by.yaml +++ /dev/null @@ -1,37 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/can_or_could_be_fulfilled_by -name: can_or_could_be_fulfilled_by -title: can_or_could_be_fulfilled_by -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - can_or_could_be_fulfilled_by: - name: can_or_could_be_fulfilled_by - description: 'Relates a requirement or condition to the entity (e.g. Applicant) that fulfills it. - - MIGRATED from `eligible_applicant` (via ApplicantRequirement).' - slot_uri: schema:eligibleCustomerType - # range: Any - multivalued: true - exact_mappings: - - schema:eligibleCustomerType - close_mappings: - - schema:participant - annotations: - custodian_types: '["*"]' - examples: - - value: - has_or_had_identifier: "https://nde.nl/ontology/hc/applicant/non-profit" - has_or_had_label: "Non-profit Organization" - description: Requirement fulfilled by non-profit applicants diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/can_or_could_be_retrieved_from.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/can_or_could_be_retrieved_from.yaml deleted file mode 100644 index 5e4baff539..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/can_or_could_be_retrieved_from.yaml +++ /dev/null @@ -1,34 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/can_or_could_be_retrieved_from -name: can_or_could_be_retrieved_from_slot -title: Can Or Could Be Retrieved From Slot -prefixes: - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - schema: http://schema.org/ - dcat: http://www.w3.org/ns/dcat# - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -- ../classes/Endpoint -default_prefix: hc -slots: - can_or_could_be_retrieved_from: - description: Endpoint or location where a resource can be retrieved. MIGRATED from download_endpoint (2026-01-26). - range: Endpoint - multivalued: true - inlined: true - slot_uri: dcat:accessURL - close_mappings: - - schema:downloadUrl - annotations: - rico_naming_convention: 'Follows RiC-O "canOrCould" pattern for capability predicates. - - ' - custodian_types: '["*"]' - specificity_score: 0.4 diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/catalogues_or_catalogued.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/catalogues_or_catalogued.yaml index 354008f432..15370159ed 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/catalogues_or_catalogued.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/catalogues_or_catalogued.yaml @@ -20,7 +20,7 @@ slots: name: catalogues_or_catalogued description: Indicates that an entity catalogues or catalogued another entity (e.g., material). MIGRATED from geographic_coverage/temporal_coverage context. Follows RiC-O naming convention. slot_uri: rico:isOrWasSubjectOf - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/ceases_or_ceased_through.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/ceases_or_ceased_through.yaml deleted file mode 100644 index 28d8a684c7..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/ceases_or_ceased_through.yaml +++ /dev/null @@ -1,28 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/ceases_or_ceased_through -name: ceases_or_ceased_through -title: Ceases Or Ceased Through -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -- ../classes/CeasingEvent -default_prefix: hc -slots: - ceases_or_ceased_through: - description: >- - The event through which an entity ceases or ceased to exist/operate. - MIGRATED from cessation_observed_in (Rule 53). - range: CeasingEvent - slot_uri: prov:wasInvalidatedBy - exact_mappings: - - crm:P93i_was_taken_out_of_existence_by - multivalued: true diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/changes_or_changed_ownership_from.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/changes_or_changed_ownership_from.yaml index 48d3215aa4..1089c3647e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/changes_or_changed_ownership_from.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/changes_or_changed_ownership_from.yaml @@ -21,7 +21,7 @@ slots: slot_uri: crm:P23_transferred_title_from description: "The previous owner from whom ownership/title was transferred.\n\n**TEMPORAL SEMANTICS** (RiC-O Pattern):\nThe \"changesOrChanged\" naming follows RiC-O convention indicating this \nrelationship may be historical - ownership may have changed multiple times.\n\n**ONTOLOGICAL ALIGNMENT**:\n- **Primary** (`slot_uri`): `crm:P23_transferred_title_from` (CIDOC-CRM)\n - Domain: E8_Acquisition (transfer event)\n - Range: E39_Actor (person, organization, or group)\n - Semantics: Indicates the party who relinquished legal title\n\n**SEMANTIC DISTINCTION**:\nThis slot is for OWNERSHIP TRANSFER (legal title), NOT physical movement.\nFor physical movement origin, use `is_or_was_transferred_from` with `crm:P27_moved_from`.\n\n| Slot | Ontology | Semantics |\n|------|----------|-----------|\n| `changes_or_changed_ownership_from` | crm:P23 | Legal title transfer source |\n| `is_or_was_transferred_from` | crm:P27 | Physical location origin |\n\n**USAGE**:\nTypical in ProvenanceEvent for\ \ documenting chain of custody:\n- Null for CREATION events (no previous owner)\n- Identifies seller in PURCHASE/AUCTION events\n- Identifies donor in GIFT/BEQUEST events\n- Identifies victim in CONFISCATION events\n\n**MIGRATION** (2026-01-16, Rule 56):\nReplaces `from_owner` for symmetry with `changes_or_changed_ownership_to`.\n" - range: uriorcurie + range: string # uriorcurie required: false multivalued: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/changes_or_changed_ownership_to.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/changes_or_changed_ownership_to.yaml index 3b51f6d025..b6a78e455d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/changes_or_changed_ownership_to.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/changes_or_changed_ownership_to.yaml @@ -21,7 +21,7 @@ slots: slot_uri: crm:P22_transferred_title_to description: "The new owner to whom ownership/title was transferred.\n\n**TEMPORAL SEMANTICS** (RiC-O Pattern):\nThe \"changesOrChanged\" naming follows RiC-O convention indicating this \nrelationship may be historical - ownership may have changed multiple times.\n\n**ONTOLOGICAL ALIGNMENT**:\n- **Primary** (`slot_uri`): `crm:P22_transferred_title_to` (CIDOC-CRM)\n - Domain: E8_Acquisition (transfer event)\n - Range: E39_Actor (person, organization, or group)\n - Semantics: Indicates the recipient of a legal title transfer\n\n**SEMANTIC DISTINCTION**:\nThis slot is for OWNERSHIP TRANSFER (legal title), NOT physical movement.\nFor physical movement, use `is_or_was_transferred_to` with `crm:P26_moved_to`.\n\n| Slot | Ontology | Semantics |\n|------|----------|-----------|\n| `changes_or_changed_ownership_to` | crm:P22 | Legal title transfer |\n| `is_or_was_transferred_to` | crm:P26 | Physical location change |\n\n**USAGE**:\nTypical in ProvenanceEvent for documenting chain of custody:\n\ - Acquisitions (purchase, gift, bequest)\n- Deaccessioning (sale, transfer)\n- Loans (temporary custody without ownership change)\n\n**MIGRATION** (2026-01-16, Rule 56):\nReplaces `to_owner` per slot_fixes.yaml feedback.\n" - range: uriorcurie + range: string # uriorcurie required: false multivalued: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/changes_or_changed_through.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/changes_or_changed_through.yaml deleted file mode 100644 index b44174e70e..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/changes_or_changed_through.yaml +++ /dev/null @@ -1,18 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/changes_or_changed_through -name: changes_or_changed_through_slot - -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - prov: http://www.w3.org/ns/prov# - -default_range: string - -slots: - changes_or_changed_through: - slot_uri: prov:wasInfluencedBy - description: | - Events or activities that caused a change in this entity. - Generic slot for linking entities to ChangeEvent or other Event classes. - range: OrganizationalChangeEvent - multivalued: true diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/classifies_or_classified.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/classifies_or_classified.yaml index dd80a9b8dc..e2194ba5de 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/classifies_or_classified.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/classifies_or_classified.yaml @@ -19,7 +19,7 @@ slots: classifies_or_classified: description: "Indicates that an entity provides a classification or typing for another entity.\n**Temporal Semantics**: Uses RiC-O-style \"classifies_or_classified\" to express that the classification relationship may be current or historical - entities may be reclassified over time.\n**Common Use Cases**: - FeaturePlace classifies CustodianPlace (building type classification) - TypeSpecimen classifies Taxon (nomenclatural classification) - HeritageDesignation classifies HeritageSite (protection status)\n**CIDOC-CRM Alignment**: Maps to crm:P2_has_type / crm:P2i_is_type_of pattern where one entity provides typological information about another.\n**Example**: ```yaml FeaturePlace:\n feature_type: MUSEUM\n classifies_or_classified:\n id: https://nde.nl/ontology/hc/place/rijksmuseum-location\n place_name: \"Rijksmuseum\"\n```" slot_uri: crm:P2i_is_type_of - range: uriorcurie + range: string # uriorcurie multivalued: false exact_mappings: - crm:P2i_is_type_of diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/collects_or_collected.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/collects_or_collected.yaml deleted file mode 100644 index d4d48da866..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/collects_or_collected.yaml +++ /dev/null @@ -1,45 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/collects_or_collected -name: collects_or_collected_slot -title: Collects Or Collected Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - rico: https://www.ica.org/standards/RiC/ontology# - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - collects_or_collected: - slot_uri: rico:hasOrHadHolder - description: "Links a custodian to what it collects or collected.\n**TEMPORAL SEMANTICS** (RiC-O style): The \"collects_or_collected\" naming follows RiC-O convention indicating that collecting activities may change over time: - Active collecting programs - Historical collecting focus that has changed - Materials previously collected but now deaccessioned\n**USE CASES**: - Commercial organizations: what they collect for heritage purposes - Museums: their collecting scope and purpose - Archives: types of records they acquire\n**REPLACES**: - `collection_purpose` (why commercial organization maintains collections)\n**EXAMPLE**: ```yaml collects_or_collected:\n - collection_type: \"brand_heritage\"\n has_or_had_rationale:\n rationale_text: \"Brand heritage communication\"\n rationale_category: \"marketing\"\n```" - range: uriorcurie - multivalued: true - inlined: true - inlined_as_list: true - exact_mappings: - - rico:hasOrHadHolder - close_mappings: - - crm:P109_has_current_or_former_curator - - schema:owns - related_mappings: - - crm:P50_has_current_keeper - annotations: - custodian_types: '["C", "M", "A", "L"]' - custodian_types_rationale: Primarily for Corporations (C), Museums (M), Archives (A), and Libraries (L) that actively collect materials. - custodian_types_primary: C - specificity_score: '0.45' - specificity_rationale: Moderate specificity - applies to custodians with collecting programs. - comments: - - Created from slot_fixes.yaml migration (2026-01-19) - - Part of collection_purpose migration - - Range is uriorcurie to allow class narrowing via slot_usage - see_also: - - https://www.ica.org/standards/RiC/ontology#hasOrHadHolder diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/complies_or_complied_with.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/complies_or_complied_with.yaml index df250e44b0..f51245f4a3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/complies_or_complied_with.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/complies_or_complied_with.yaml @@ -29,10 +29,10 @@ slots: complies_or_complied_with: slot_uri: dcterms:conformsTo description: "Standard, specification, or guideline that this entity conforms to.\nUses RiC-O temporal naming convention to indicate conformance may be \ncurrent (complies) or historical (complied).\n\nCREATED 2026-01-17 per Rule 53/56: Generic slot for standards conformance.\n" - range: uriorcurie + range: string # uriorcurie multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type exact_mappings: - dcterms:conformsTo close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/connection_heritage_relevant.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/connection_heritage_relevant.yaml index 12851f42d1..72e41846b2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/connection_heritage_relevant.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/connection_heritage_relevant.yaml @@ -8,7 +8,7 @@ prefixes: linkml: https://w3id.org/linkml/ schema: http://schema.org/ hc: https://nde.nl/ontology/hc/ -default_range: string +# default_range: string slots: connection_heritage_relevant: slot_uri: hc:connection_heritage_relevant diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/connection_heritage_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/connection_heritage_type.yaml index 34e3674e8b..4de4d83919 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/connection_heritage_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/connection_heritage_type.yaml @@ -8,7 +8,7 @@ prefixes: linkml: https://w3id.org/linkml/ schema: http://schema.org/ hc: https://nde.nl/ontology/hc/ -default_range: string +# default_range: string slots: connection_heritage_type: slot_uri: hc:connection_heritage_type diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/conservation_lab.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/conservation_lab.yaml index f980a6366d..09f02f015f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/conservation_lab.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/conservation_lab.yaml @@ -15,7 +15,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: conservation_lab: description: 'Whether the museum has an in-house conservation laboratory for object preservation. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/contains_or_contained.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/contains_or_contained.yaml index 373f3e63cd..297e200067 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/contains_or_contained.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/contains_or_contained.yaml @@ -26,7 +26,7 @@ imports: slots: contains_or_contained: slot_uri: rico:containsOrContained - # range: Any + range: string # uriorcurie multivalued: true description: Generic containment relationship (temporal). Indicates that this entity contains or has contained the referenced entity. exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/contains_or_contained_collection.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/contains_or_contained_collection.yaml index 8b49905a52..0ff2eb1c05 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/contains_or_contained_collection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/contains_or_contained_collection.yaml @@ -15,7 +15,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Collection default_prefix: hc slots: contains_or_contained_collection: @@ -25,7 +24,8 @@ slots: ' slot_uri: rico:containsOrContained - range: Collection + range: string # uriorcurie + # range: Collection multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/contains_or_contained_contains_unit.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/contains_or_contained_contains_unit.yaml index fc61246395..b06a404d3a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/contains_or_contained_contains_unit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/contains_or_contained_contains_unit.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/StorageUnit default_prefix: hc slots: contains_or_contained_contains_unit: @@ -24,7 +23,8 @@ slots: HC Ontology: `hc:hasStorageSection` ' - range: StorageUnit + range: string # uriorcurie + # range: StorageUnit multivalued: true slot_uri: hc:containsUnits annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/contains_or_contained_covers_settlement.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/contains_or_contained_covers_settlement.yaml index 83bd859f2e..bc4ae5fd22 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/contains_or_contained_covers_settlement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/contains_or_contained_covers_settlement.yaml @@ -14,13 +14,13 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Settlement default_prefix: hc slots: contains_or_contained_covers_settlement: - range: Settlement + range: string # uriorcurie + # range: Settlement multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type slot_uri: schema:containsPlace description: 'Specific settlements (cities, towns, villages) covered by this service area. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/contains_storage.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/contains_storage.yaml index f418490fd7..fc9c487f7e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/contains_storage.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/contains_storage.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Storage default_prefix: hc slots: contains_storage: @@ -24,7 +23,8 @@ slots: ' slot_uri: crm:P46_is_composed_of - range: Storage + range: string # uriorcurie + # range: Storage multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/contributes_or_contributed.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/contributes_or_contributed.yaml index f0ef27ff7d..9759db70ce 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/contributes_or_contributed.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/contributes_or_contributed.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/AuthorityData slots: contributes_or_contributed: name: contributes_or_contributed title: contributes_or_contributed description: Contributes data or resources. slot_uri: prov:hadMember - range: AuthorityData + range: string # uriorcurie + # range: AuthorityData annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/contributes_to.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/contributes_to.yaml index 0be4f170fd..18d0021e65 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/contributes_to.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/contributes_to.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Standard default_prefix: hc slots: contributes_to: @@ -27,7 +26,8 @@ slots: Also possible: WorldCat, ISNI (via national ISNI agency) ' - range: Standard + range: string # uriorcurie + # range: Standard multivalued: true required: true inlined: false diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/conversion_source_population.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/conversion_source_population.yaml index b0c57bad01..2be0fe4a66 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/conversion_source_population.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/conversion_source_population.yaml @@ -14,7 +14,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: conversion_source_population: slot_uri: hc:sourcePopulation diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/conversion_target_action.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/conversion_target_action.yaml index 84494ee564..57a5897e93 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/conversion_target_action.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/conversion_target_action.yaml @@ -14,7 +14,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: conversion_target_action: slot_uri: hc:targetAction diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/conversion_type_label.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/conversion_type_label.yaml index 7638d92fa5..0992b04fa9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/conversion_type_label.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/conversion_type_label.yaml @@ -14,7 +14,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: conversion_type_label: slot_uri: rdfs:label diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/cost_usd.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/cost_usd.yaml index 9d4ae1a56d..aafd65e8bf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/cost_usd.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/cost_usd.yaml @@ -13,7 +13,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: cost_usd: description: 'Estimated cost in USD for this LLM call. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/country.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/country.yaml index 8248c57355..9582ee431c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/country.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/country.yaml @@ -4,11 +4,11 @@ title: Country Slot description: "Country where entity is located or operates.\n\nLinks to Country class with ISO 3166-1 alpha-2 codes.\n\nFormat: ISO 3166-1 alpha-2 code (e.g., \"NL\", \"DE\", \"JP\")\n\nUse when:\n- Place is in a specific country\n- Legal form is jurisdiction-specific\n- Feature types are country-specific\n\nExamples:\n- Netherlands museum \u2192 country.alpha_2 = \"NL\"\n- Japanese archive \u2192 country.alpha_2 = \"JP\"\n- German foundation \u2192 country.alpha_2 = \"DE\"\n" imports: - linkml:types -- ../classes/Country slots: country: slot_uri: schema:addressCountry - range: Country + range: string # uriorcurie + # range: Country required: false multivalued: false description: "Country where this place is located (OPTIONAL).\n\nLinks to Country class with ISO 3166-1 codes.\n\nSchema.org: addressCountry uses ISO 3166-1 alpha-2 codes.\n\nUse when:\n- Place name is ambiguous across countries (\"Victoria Museum\" exists in multiple countries)\n- Feature types are country-specific (e.g., \"cultural heritage of Peru\")\n- Generating country-conditional enums\n\nExamples:\n- \"Rijksmuseum\" \u2192 country.alpha_2 = \"NL\"\n- \"cultural heritage of Peru\" \u2192 country.alpha_2 = \"PE\"\n" diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/country_name.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/country_name.yaml index 17bcc61e37..9065131697 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/country_name.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/country_name.yaml @@ -16,7 +16,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string description: "Full country name or ISO 3166-1 country code within an address.\n\nvCard: country-name - \"The country name associated with the address of \nthe object\"\n\nSchema.org: addressCountry - \"The country. For example, USA. You can also \nprovide the two-letter ISO 3166-1 alpha-2 country code.\"\n\nLOCN: adminUnitL1 - \"The name or names of a unit of administration where \na Local Administrative Unit (LAU) is responsible.\"\n\nFor structured country references, use Country class with ISO 3166-1 code.\n\nExamples:\n- \"Netherlands\" (English name)\n- \"Nederland\" (Dutch name)\n- \"NL\" (ISO 3166-1 alpha-2)\n- \"NLD\" (ISO 3166-1 alpha-3)\n" slots: country_name: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/cover_or_covered_subregion.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/cover_or_covered_subregion.yaml index 0297242357..eea437ab65 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/cover_or_covered_subregion.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/cover_or_covered_subregion.yaml @@ -14,13 +14,13 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Subregion default_prefix: hc slots: cover_or_covered_subregion: - range: Subregion + range: string # uriorcurie + # range: Subregion multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type slot_uri: schema:addressRegion description: 'Subregion(s) covered by this service area. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/covers_country.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/covers_country.yaml index 0a01bf83cb..dc93c6eb81 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/covers_country.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/covers_country.yaml @@ -14,11 +14,11 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Country default_prefix: hc slots: covers_country: - range: Country + range: string # uriorcurie + # range: Country slot_uri: schema:addressCountry description: 'Country that this service area is within. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/created_by_project.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/created_by_project.yaml index 8c69171a11..6fe5ff352b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/created_by_project.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/created_by_project.yaml @@ -14,11 +14,11 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Project default_prefix: hc slots: created_by_project: - range: Project + range: string # uriorcurie + # range: Project description: "The Project that created or maintains this web portal.\n\nLinks to Project class representing time-limited initiatives run by\nEncompassingBody organizations.\n\n**Relationship Architecture**:\n```\nEncompassingBody (e.g., NDE)\n \u2502\n \u251C\u2500\u2500 projects \u2500\u2500\u2192 Project (e.g., \"Portal Development 2024\")\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500 creates \u2500\u2500\u2192 WebPortal (this portal)\n \u2502\n \u2514\u2500\u2500 operates \u2500\u2500\u2192 WebPortal (operational responsibility)\n```\n\n**DISTINCTION from operated_by**:\n- `operated_by`: The EncompassingBody with ongoing operational responsibility\n- `created_by_project`: The specific time-limited Project that built the portal\n\nA portal may be created by one project and then operated by the \nparent organization or a different entity.\n" slot_uri: hc:createdByProject annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/creation_place.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/creation_place.yaml index fe1d3f4309..7a77261aa1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/creation_place.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/creation_place.yaml @@ -14,14 +14,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CustodianPlace default_prefix: hc slots: creation_place: description: 'Location where the object was created. ' - range: CustodianPlace + range: string # uriorcurie + # range: CustodianPlace slot_uri: schema:locationCreated annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/creation_timespan.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/creation_timespan.yaml index 77742af135..2f2e4430ae 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/creation_timespan.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/creation_timespan.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/TimeSpan default_prefix: hc slots: creation_timespan: @@ -32,7 +31,8 @@ slots: - end_of_the_end: Latest possible completion ' - range: TimeSpan + range: string # uriorcurie + # range: TimeSpan slot_uri: crm:P4_has_time-span annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/creator.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/creator.yaml index 0d638d2f9c..91369c3f90 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/creator.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/creator.yaml @@ -8,7 +8,7 @@ prefixes: linkml: https://w3id.org/linkml/ dcterms: http://purl.org/dc/terms/ hc: https://nde.nl/ontology/hc/ -default_range: string +# default_range: string slots: creator: slot_uri: dcterms:creator diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/css_selector.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/css_selector.yaml index 188bddebd0..d1e119678f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/css_selector.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/css_selector.yaml @@ -13,7 +13,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: css_selector: description: CSS selector pointing to the element in HTML. Alternative to xpath for element identification. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/curated_holding.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/curated_holding.yaml index 5b72307d35..b743adab6c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/curated_holding.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/curated_holding.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Collection default_prefix: hc slots: curated_holding: @@ -27,7 +26,8 @@ slots: Back-reference from CurationActivity to Collection. ' - range: Collection + range: string # uriorcurie + # range: Collection multivalued: true slot_uri: crm:P147_curated annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/current_keeper.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/current_keeper.yaml index c34792525c..3125f3efe8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/current_keeper.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/current_keeper.yaml @@ -18,7 +18,7 @@ default_prefix: hc slots: current_keeper: description: "Custodian institution currently holding this object.\n\nCIDOC-CRM: P50_has_current_keeper - \"identifies the E39 Actor that \nhad custody of an instance of E18 Physical Thing at the time of validity.\"\n" - range: uriorcurie + range: string # uriorcurie slot_uri: crm:P50_has_current_keeper annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/current_location.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/current_location.yaml index 7397ded945..15b0f3d0ce 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/current_location.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/current_location.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CustodianPlace default_prefix: hc slots: current_location: @@ -23,7 +22,8 @@ slots: May differ from permanent_location if on loan or traveling. ' - range: CustodianPlace + range: string # uriorcurie + # range: CustodianPlace slot_uri: schema:location annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/custodian.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/custodian.yaml index c342ece7f3..b2d307cdda 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/custodian.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/custodian.yaml @@ -15,15 +15,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Custodian default_prefix: hc slots: custodian: slot_uri: rico:hasOrHadHolder description: Heritage custodian that created/maintains this finding aid - range: Custodian + range: string # uriorcurie + # range: Custodian required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/custodian_type_broader.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/custodian_type_broader.yaml index 8fc0771cb5..e67fad8326 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/custodian_type_broader.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/custodian_type_broader.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CustodianType default_prefix: hc slots: custodian_type_broader: @@ -27,7 +26,8 @@ slots: ' slot_uri: skos:broader - range: CustodianType + range: string # uriorcurie + # range: CustodianType annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/custodian_type_narrower.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/custodian_type_narrower.yaml index 7cb9f78e98..773028b2c2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/custodian_type_narrower.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/custodian_type_narrower.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CustodianType default_prefix: hc slots: custodian_type_narrower: @@ -27,7 +26,8 @@ slots: ' slot_uri: skos:narrower - range: CustodianType + range: string # uriorcurie + # range: CustodianType multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/custodian_type_related.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/custodian_type_related.yaml index 4d992a30fc..1be993f298 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/custodian_type_related.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/custodian_type_related.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CustodianType default_prefix: hc slots: custodian_type_related: @@ -27,7 +26,8 @@ slots: ' slot_uri: skos:related - range: CustodianType + range: string # uriorcurie + # range: CustodianType multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/custody_received_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/custody_received_by.yaml index afd9cc58f0..a36469e3f0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/custody_received_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/custody_received_by.yaml @@ -25,7 +25,7 @@ slots: custody_received_by: description: The agent who receives custody of an object in a custody transfer event. CIDOC-CRM P29_custody_received_by - identifies the E39 Actor who receives custody of an object. slot_uri: crm:P29_custody_received_by - range: uriorcurie + range: string # uriorcurie exact_mappings: - crm:P29_custody_received_by annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/date.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/date.yaml index 9f0852b75c..245bfe8f47 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/date.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/date.yaml @@ -13,7 +13,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: date_value: slot_uri: dcterms:date diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/defines_or_defined.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/defines_or_defined.yaml index 25ef9c6c02..7111a1e35c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/defines_or_defined.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/defines_or_defined.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/GovernanceStructure slots: defines_or_defined: name: defines_or_defined description: Defines or defined a structure, policy, or role. slot_uri: org:hasUnit - range: GovernanceStructure + range: string # uriorcurie + # range: GovernanceStructure multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/derives_or_derived_from.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/derives_or_derived_from.yaml index 0a96673d91..5963c8f750 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/derives_or_derived_from.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/derives_or_derived_from.yaml @@ -60,7 +60,7 @@ slots: - **Close**: `schema:isBasedOn` (Schema.org) ' - range: uriorcurie + range: string # uriorcurie multivalued: true slot_uri: prov:wasDerivedFrom exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/describes_or_described.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/describes_or_described.yaml index 9c9e3e9d47..6bf5816252 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/describes_or_described.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/describes_or_described.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/ExaminationMethod slots: describes_or_described: name: describes_or_described title: describes_or_described description: Describes an entity or process. slot_uri: schema:description - range: ExaminationMethod + range: string # uriorcurie + # range: ExaminationMethod annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/documents_or_documented.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/documents_or_documented.yaml index 64888a1ed2..a1436637f7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/documents_or_documented.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/documents_or_documented.yaml @@ -18,7 +18,7 @@ default_prefix: hc slots: documents_or_documented: description: Links a document (e.g. FinancialStatement) to the entity it documents (e.g. Budget). MIGRATED from documents_budget (2026-01-26). - range: uriorcurie + range: string # uriorcurie multivalued: true inlined: false slot_uri: schema:about diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/draws_or_drew_opinion.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/draws_or_drew_opinion.yaml index 17db3c201e..f02055fba3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/draws_or_drew_opinion.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/draws_or_drew_opinion.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/AuditOpinion slots: draws_or_drew_opinion: name: draws_or_drew_opinion title: draws_or_drew_opinion description: The opinion or conclusion drawn from an activity (e.g. audit). slot_uri: prov:generated - range: AuditOpinion + range: string # uriorcurie + # range: AuditOpinion annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/emphasizes_or_emphasized.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/emphasizes_or_emphasized.yaml index da0fed9024..1a4a0ee3c6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/emphasizes_or_emphasized.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/emphasizes_or_emphasized.yaml @@ -23,7 +23,7 @@ slots: range: string required: false multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type exact_mappings: - skos:related related_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/encompasses_or_encompassed.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/encompasses_or_encompassed.yaml index fa8f9ea14d..a9115ba95c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/encompasses_or_encompassed.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/encompasses_or_encompassed.yaml @@ -16,12 +16,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Custodian slots: encompasses_or_encompassed: slot_uri: org:hasSubOrganization description: "Custodians that are or were encompassed, governed, or coordinated by this body.\n\n**RiC-O Temporal Pattern**: Uses temporal pattern to acknowledge that\ngovernance relationships change over time:\n- Institutions move between ministries\n- Networks gain and lose members\n- Consortia dissolve or restructure\n\n**Three Relationship Types**:\n1. **Umbrella** - Legal parent hierarchy (permanent)\n - Ministry encompasses National Archives, Royal Library\n2. **Network** - Service provision (temporary, centralized)\n - De Ree Archive Hosting encompasses member archives\n3. **Consortium** - Mutual assistance (temporary, peer-to-peer)\n - Heritage Network encompasses participating museums\n" - range: Custodian + range: string # uriorcurie + # range: Custodian multivalued: true exact_mappings: - org:hasSubOrganization diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/end_of_the_begin.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/end_of_the_begin.yaml index f407e35935..44a65d6a8d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/end_of_the_begin.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/end_of_the_begin.yaml @@ -16,7 +16,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Timestamp slots: end_of_the_begin: slot_uri: hc:endOfTheBegin @@ -47,12 +46,12 @@ slots: **Range**: Any to support Timestamp class, ISO 8601 strings, and datetime values ' - # range: datetime + range: string # uriorcurie any_of: - range: Timestamp - range: string - range: datetime - inlined: true + inlined: false # Fixed invalid inline for primitive type required: false multivalued: false close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/end_of_the_end.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/end_of_the_end.yaml index c9d058ca0a..ba708861d1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/end_of_the_end.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/end_of_the_end.yaml @@ -16,7 +16,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Timestamp slots: end_of_the_end: slot_uri: time:hasEnd @@ -51,12 +50,12 @@ slots: **Range**: Any - supports both Timestamp class and string datetime values ' - # range: datetime + range: string # uriorcurie any_of: - range: Timestamp - range: string - range: datetime - inlined: true + inlined: false # Fixed invalid inline for primitive type required: false multivalued: false close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/end_seconds.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/end_seconds.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/end_seconds.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/end_seconds.yaml diff --git a/schemas/20251121/linkml/modules/slots/end_time.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/end_time.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/end_time.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/end_time.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/estimates_or_estimated.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/estimates_or_estimated.yaml index 8020e438b6..60da20e60d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/estimates_or_estimated.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/estimates_or_estimated.yaml @@ -21,9 +21,9 @@ slots: slot_uri: prov:wasDerivedFrom description: "Links an entity to an estimation or confidence assessment derived from it.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"estimatesOrEstimated\" naming follows RiC-O convention indicating this relationship\nmay be historical - estimations may be updated over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:wasDerivedFrom` - derivation from source\n- **Related**: `dqv:hasQualityMeasurement` - linking to quality/confidence metric\n\n**Usage**:\nUsed to link profiles or entities to confidence assessments about specific\nattributes (e.g., digital proficiency confidence).\n\n**Pattern**:\n```\nLinkedInProfile\n \u2514\u2500\u2500 estimates_or_estimated \u2192 DigitalConfidence\n \u251C\u2500\u2500 has_or_had_score: 0.8\n \u2514\u2500\u2500 has_or_had_type: PROFICIENCY_LEVEL\n```\n\n**Migrated From** (per slot_fixes.yaml):\n- `digital_confidence` \u2192 estimates_or_estimated + DigitalConfidence\n\n**Cardinality**:\nMultivalued - an entity\ \ may have multiple estimations (e.g., for different attributes).\n" - range: uriorcurie + range: string # uriorcurie multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type exact_mappings: - prov:wasDerivedFrom related_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/excludes_or_excluded.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/excludes_or_excluded.yaml index dfec7d5bb5..6f7d1d4914 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/excludes_or_excluded.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/excludes_or_excluded.yaml @@ -23,6 +23,6 @@ slots: description: Entities or materials explicitly excluded. # range: Any multivalued: true - inlined: true + # inlined: true # CANNOT inline string annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/exhibits_or_exhibited.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/exhibits_or_exhibited.yaml index 73abc62cf0..a2cd36d6ae 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/exhibits_or_exhibited.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/exhibits_or_exhibited.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/FeaturedObject slots: exhibits_or_exhibited: name: exhibits_or_exhibited title: exhibits_or_exhibited description: Exhibits an object. slot_uri: schema:workFeatured - range: FeaturedObject + range: string # uriorcurie + # range: FeaturedObject multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/expires_on_expired_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/expires_on_expired_at.yaml index 096a5faa87..4b4d07220c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/expires_on_expired_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/expires_on_expired_at.yaml @@ -17,15 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/TimeSpan default_prefix: hc slots: expires_on_expired_at: slot_uri: schema:expires description: Date or time interval when the entity expires. - range: TimeSpan + range: string # uriorcurie + # range: TimeSpan multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/exposes_or_exposed.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/exposes_or_exposed.yaml index 6e071c6615..b78e3a0e38 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/exposes_or_exposed.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/exposes_or_exposed.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Collection slots: exposes_or_exposed: name: exposes_or_exposed title: exposes_or_exposed description: Exposes a collection to risks or conditions. slot_uri: schema:about - range: Collection + range: string # uriorcurie + # range: Collection annotations: custodian_types: '["*"]' exact_mappings: diff --git a/schemas/20251121/linkml/modules/slots/field_number.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/field_number.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/field_number.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/field_number.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/filters_or_filtered.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/filters_or_filtered.yaml index e5aa065c75..645d967fb1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/filters_or_filtered.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/filters_or_filtered.yaml @@ -24,7 +24,7 @@ slots: range: string required: false multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type exact_mappings: - dqv:computedOn related_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/final_of_the_final.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/final_of_the_final.yaml index 2a0955c57c..035030b8a4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/final_of_the_final.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/final_of_the_final.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ConditionState default_prefix: hc slots: final_of_the_final: description: "The state or condition at the end of a process or activity.\n\nCIDOC-CRM pattern for capturing the final state after an event:\n- Conservation treatment \u2192 final condition state\n- Restoration \u2192 final preservation state\n- Processing \u2192 final outcome\n\n**SEMANTIC MEANING**:\nRefers to the state observed at the final moment of a process,\nanalogous to CIDOC-CRM's E3 Condition State with P5 consists of.\n\n**TEMPORAL SEMANTICS**:\n- The state AFTER something has occurred\n- Paired with `initial_of_the_initial` for before/after comparisons\n\n**Migration (2026-01-22)**:\n- `condition_after` \u2192 `final_of_the_final` + `ConditionState`\n- Per slot_fixes.yaml (Rule 53)\n" - range: ConditionState + range: string # uriorcurie + # range: ConditionState slot_uri: crm:P44_has_condition exact_mappings: - crm:P44_has_condition diff --git a/schemas/20251121/linkml/modules/slots/foo_bar.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/foo_bar.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/foo_bar.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/foo_bar.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/generates_or_generated.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/generates_or_generated.yaml index 96a22f1509..62b7eef7cb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/generates_or_generated.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/generates_or_generated.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Output slots: generates_or_generated: name: generates_or_generated title: generates_or_generated description: Generated output. slot_uri: prov:generated - range: Output + range: string # uriorcurie + # range: Output multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/grants_or_granted.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/grants_or_granted.yaml index aa1ad59211..21db50fdb0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/grants_or_granted.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/grants_or_granted.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/GovernanceAuthority slots: grants_or_granted: name: grants_or_granted description: Grants or granted a right, authority, or permission. slot_uri: schema:grant - range: GovernanceAuthority + range: string # uriorcurie + # range: GovernanceAuthority multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/grants_or_granted_access_through.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/grants_or_granted_access_through.yaml index d216cb1db0..b167fb8d32 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/grants_or_granted_access_through.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/grants_or_granted_access_through.yaml @@ -20,7 +20,7 @@ slots: name: grants_or_granted_access_through description: Indicates that an entity grants or granted access through a specific application or mechanism. MIGRATED from has_access_application_url per Rule 53. Follows RiC-O naming convention. slot_uri: schema:potentialAction - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/habitat_description.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/habitat_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/habitat_description.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/habitat_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_api_version.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_api_version.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_api_version.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/has_api_version.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_architectural_style.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_architectural_style.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_architectural_style.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/has_architectural_style.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_archive_path.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_archive_path.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_archive_path.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/has_archive_path.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_heritage_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_heritage_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_heritage_type.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/has_heritage_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_accreditation.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_accreditation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_accreditation.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_accreditation.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_accumulation.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_accumulation.yaml index 26cdfba5ce..1189e9b008 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_accumulation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_accumulation.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Accumulation slots: has_or_had_accumulation: name: has_or_had_accumulation description: The accumulation period or event of the records. slot_uri: rico:hasAccumulationDate - range: Accumulation + range: string # uriorcurie + # range: Accumulation multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_activity.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_activity.yaml index 2ec29763c7..21b2e61c74 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_activity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_activity.yaml @@ -16,16 +16,16 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Activity slots: has_or_had_activity: slot_uri: crm:P9_consists_of description: "Activities associated with this entity (custodian, collection, person, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity may have been associated with activities that\nare now concluded.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P9_consists_of` - CIDOC-CRM predicate for\n compositional relationships between activities/events\n- **Close**: `prov:wasAssociatedWith` - PROV-O predicate linking entities\n to activities they participated in\n- **Related**: `rico:hasOrHadActivity` - RiC-O predicate for record-keeping\n activities\n- **Related**: `schema:potentialAction` - Schema.org for actions associated\n with an entity\n\n**Range**:\nValues are instances of `Activity` class or its subclasses:\n- CurationActivity - Collection management activities\n- ConservationActivity - Preservation and conservation\n- CommercialActivity - Commercial operations\n\ - ResearchActivity - Research and documentation\n- EducationalActivity - Educational programs\n- ExhibitionActivity - Exhibition-related activities\n\n**Use Cases**:\n- Link custodian to curation activities (inventories, digitization)\n- Link collection to conservation activities\n- Link person to research activities\n- Track activity history over time\n" - range: Activity + range: string # uriorcurie + # range: Activity required: false multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type exact_mappings: - crm:P9_consists_of close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_administration.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_administration.yaml index c34283e8be..ce74d98d90 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_administration.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_administration.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Administration slots: has_or_had_administration: name: has_or_had_administration description: The administration that manages or managed the entity. slot_uri: org:hasUnit - range: Administration + range: string # uriorcurie + # range: Administration multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_affiliation.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_affiliation.yaml index 9f260e2051..8c4d3b04c2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_affiliation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_affiliation.yaml @@ -7,15 +7,17 @@ prefixes: org: http://www.w3.org/ns/org# schema: http://schema.org/ -default_range: string +# default_range: string +imports: + - linkml:types slots: has_or_had_affiliation: slot_uri: org:memberOf description: | An organization or institution with which this entity has or had an affiliation. - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - schema:affiliation diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_age.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_age.yaml index 814c53c458..a688409d28 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_age.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_age.yaml @@ -39,7 +39,7 @@ slots: - Can be an `Age` class for structured representation (e.g. range, unit). ' - range: uriorcurie + range: string # uriorcurie multivalued: false required: false annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_alignment.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_alignment.yaml index 6628d7f280..f8e10e5b35 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_alignment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_alignment.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Alignment slots: has_or_had_alignment: name: has_or_had_alignment @@ -46,9 +45,10 @@ slots: ' slot_uri: hc:hasOrHadAlignment - range: Alignment + range: string # uriorcurie + # range: Alignment multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: specificity_score: 0.55 specificity_rationale: Applies to various content types requiring positioning information diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_altitude.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_altitude.yaml index c9d1729025..8d74fdf16d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_altitude.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_altitude.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Altitude slots: has_or_had_altitude: name: has_or_had_altitude description: The altitude of a place. slot_uri: wgs84:alt - range: Altitude + range: string # uriorcurie + # range: Altitude multivalued: false annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_annotation.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_annotation.yaml index 0719ed258a..b117d75ac6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_annotation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_annotation.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Annotation slots: has_or_had_annotation: name: has_or_had_annotation description: An annotation on the entity. slot_uri: oa:hasAnnotation - range: Annotation + range: string # uriorcurie + # range: Annotation multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_archive.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_archive.yaml index 091cea8881..1e5abdda61 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_archive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_archive.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/OperationalArchive slots: has_or_had_archive: name: has_or_had_archive title: has_or_had_archive description: Archive associated with an entity. slot_uri: schema:archiveHeld - range: OperationalArchive + range: string # uriorcurie + # range: OperationalArchive annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_area.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_area.yaml index c0342fd8e5..56ad81d718 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_area.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_area.yaml @@ -34,8 +34,8 @@ slots: range: string slot_uri: schema:size multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type exact_mappings: - schema:size close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_arrangement.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_arrangement.yaml index 78719b324f..96c187c960 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_arrangement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_arrangement.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Arrangement slots: has_or_had_arrangement: name: has_or_had_arrangement description: The arrangement of the collection. slot_uri: rico:hasArrangement - range: Arrangement + range: string # uriorcurie + # range: Arrangement multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_arrangement_level.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_arrangement_level.yaml index cc9c0ce71d..fe4eeda5b5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_arrangement_level.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_arrangement_level.yaml @@ -14,14 +14,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ArrangementLevel default_prefix: hc slots: has_or_had_arrangement_level: description: The level of arrangement of the record set or information carrier. title: has or had arrangement level slot_uri: rico:hasRecordSetType - range: ArrangementLevel + range: string # uriorcurie + # range: ArrangementLevel multivalued: false exact_mappings: - isad:level_of_description diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_asset.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_asset.yaml index 051237f296..647746e238 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_asset.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_asset.yaml @@ -16,7 +16,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Asset slots: has_or_had_asset: slot_uri: schema:owns @@ -46,7 +45,8 @@ slots: The "or had" indicates assets may be historical (divested, depreciated). ' - range: Asset + range: string # uriorcurie + # range: Asset multivalued: true exact_mappings: - schema:owns diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_author.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_author.yaml index 0abdd58143..a32c3bf406 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_author.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_author.yaml @@ -17,7 +17,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Author default_prefix: hc slots: has_or_had_author: @@ -35,9 +34,10 @@ slots: **MIGRATED from authors (Rule 53)**: Changed from string to Author class for structured authorship modeling including roles, affiliations, and temporal aspects.' slot_uri: schema:author - range: Author + range: string # uriorcurie + # range: Author multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type exact_mappings: - schema:author - dcterms:creator diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_authority.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_authority.yaml index 4665217078..2fe6af6794 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_authority.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_authority.yaml @@ -39,7 +39,7 @@ default_prefix: hc slots: has_or_had_authority: slot_uri: prov:wasAttributedTo - range: uriorcurie + range: string # uriorcurie multivalued: true description: 'Authority information for a name, classification, catalog entry, or organization. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_auxiliary_entities.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_auxiliary_entities.yaml index 9a0b637dfa..1c7d5ee805 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_auxiliary_entities.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_auxiliary_entities.yaml @@ -16,8 +16,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/AuxiliaryPlace -- ../classes/AuxiliaryPlatform default_prefix: hc slots: has_or_had_auxiliary_entities: @@ -35,7 +33,7 @@ slots: 1. **Storage locations**: Off-site storage, external repositories 2. **Branch facilities**: Satellite offices, reading rooms 3. **Partner platforms**: External discovery services, aggregators' slot_uri: rico:hasOrHadPart - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - rico:hasOrHadPart diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_base.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_base.yaml index 0eec5cec8b..e29a263e73 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_base.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_base.yaml @@ -20,7 +20,7 @@ imports: slots: has_or_had_base: slot_uri: hc:hasOrHadBase - # range: Any + range: string # uriorcurie description: Generic slot for base/root component (temporal). Indicates the base or root form of a structured entity. close_mappings: - pnv:baseSurname diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_boundary.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_boundary.yaml index d877f37a6d..144c9f521f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_boundary.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_boundary.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Boundary slots: has_or_had_boundary: name: has_or_had_boundary title: has_or_had_boundary description: The boundary of a place or region. slot_uri: schema:geo - range: Boundary + range: string # uriorcurie + # range: Boundary annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_branch.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_branch.yaml index c7aa47f2b7..b122326104 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_branch.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_branch.yaml @@ -4,11 +4,11 @@ title: Has or Had Branch description: Indicates a branch or organizational unit of this institution. imports: - linkml:types -- ../classes/Branch slots: has_or_had_branch: slot_uri: org:hasUnit - range: Branch + range: string # uriorcurie + # range: Branch multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_budget.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_budget.yaml index cc89c7f839..e3e2afaddd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_budget.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_budget.yaml @@ -16,7 +16,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Budget slots: has_or_had_budget: slot_uri: hc:hasOrHadBudget @@ -44,7 +43,8 @@ slots: The "or had" indicates budgets may be historical (past fiscal years). ' - range: Budget + range: string # uriorcurie + # range: Budget multivalued: true close_mappings: - schema:amount diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_canonical_form.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_canonical_form.yaml index 5b799f201c..2ef5d7f49f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_canonical_form.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_canonical_form.yaml @@ -14,14 +14,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CanonicalForm -default_range: string +# default_range: string slots: has_or_had_canonical_form: slot_uri: skos:notation description: "Links to a CanonicalForm representing the normalized/canonical representation.\n**PURPOSE**: - Enables consistent storage and matching - Supports deduplication across records - Facilitates database joins\n**EXAMPLES**: - ISNI: \"0000 0001 2146 5765\" \u2192 canonical: \"0000000121465765\" - Wikidata: \"http://www.wikidata.org/entity/Q190804\" \u2192 canonical: \"Q190804\" - DOI: \"https://doi.org/10.1234/example\" \u2192 canonical: \"10.1234/example\"\n**NORMALIZATION RULES**: - ISNI: Remove all spaces - Wikidata: Extract Q-number only - VIAF: Numeric portion only - DOI: Lowercase, no resolver prefix - ISIL: Keep as-is (already canonical)\n**ONTOLOGY ALIGNMENT**: - slot_uri: skos:notation (primary - notation/code)\nMIGRATED 2026-01-22: Replaces canonical_value slot per slot_fixes.yaml feedback." - range: CanonicalForm - inlined: true + range: string # uriorcurie + # range: CanonicalForm + inlined: false # Fixed invalid inline for primitive type exact_mappings: - skos:notation close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_capacity.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_capacity.yaml index 1f623591e3..32ce115e2b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_capacity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_capacity.yaml @@ -19,10 +19,11 @@ slots: slot_uri: hc:hasOrHadCapacity description: "The storage or holding capacity of an entity.\nRULE 53 MIGRATION: This generic slot consolidates: - capacity_cubic_meters (volume capacity in m\xB3) - capacity_linear_meters (shelf/storage length in linear meters) - capacity_item (item count capacity) - capacity_description (textual capacity description)\nUses Capacity class which wraps Quantity for structured measurements with units, temporal validity, and descriptions.\n**ONTOLOGY ALIGNMENT**: - schema:floorSize (close - physical space) - qudt:Quantity (related - measured values) - premis:StorageLocation (related - storage capacity)\n**EXAMPLES**:\nArchive depot:\n has_or_had_capacity:\n capacity_value: 8000\n has_or_had_measurement_unit:\n has_or_had_type: LINEAR_METER\n has_or_had_symbol: \"m\"\n capacity_type: SHELF_LENGTH\n\nMuseum storage:\n has_or_had_capacity:\n capacity_value: 2500\n has_or_had_measurement_unit:\n has_or_had_type: CUBIC_METER\n has_or_had_symbol: \"m\xB3\"\n\ \ capacity_type: VOLUME\n\nArchive box capacity:\n has_or_had_capacity:\n capacity_value: 50000\n has_or_had_measurement_unit:\n has_or_had_type: ITEM\n has_or_had_symbol: \"boxes\"\n capacity_type: ITEM_COUNT" - range: Capacity + range: string # uriorcurie + # range: Capacity multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type exact_mappings: - hc:hasOrHadCapacity close_mappings: @@ -35,4 +36,3 @@ slots: custodian_types_rationale: Storage capacity applies to all custodian types that maintain physical storage facilities. imports: - linkml:types -- ../classes/Capacity \ No newline at end of file diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_caption.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_caption.yaml index 1cae2e0219..207230aff5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_caption.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_caption.yaml @@ -14,8 +14,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Caption -default_range: string +# default_range: string slots: has_or_had_caption: slot_uri: schema:caption @@ -26,8 +25,9 @@ slots: **ONTOLOGY ALIGNMENT**: - slot_uri: schema:caption (primary) - Supports Schema.org media accessibility patterns MIGRATED 2026-01-22: Replaces caption_available slot per slot_fixes.yaml feedback.' - range: Caption - inlined: true + range: string # uriorcurie + # range: Caption + inlined: false # Fixed invalid inline for primitive type multivalued: true exact_mappings: - schema:caption diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_carrier.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_carrier.yaml index ac44ebe8e2..bef5f3b16d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_carrier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_carrier.yaml @@ -17,7 +17,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Carrier slots: has_or_had_carrier: description: 'The physical carrier on which information is recorded. @@ -26,9 +25,10 @@ slots: MIGRATED from carrier_type (2026-01-23) per Rule 53. Replaces direct enum reference with structured Carrier class for richer metadata and Type/Types pattern compliance (Rule 0b).' slot_uri: bf:carrier - range: Carrier + range: string # uriorcurie + # range: Carrier multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type exact_mappings: - bf:carrier - rda:P60048 diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_category.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_category.yaml deleted file mode 100644 index 5c3c010ba5..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_category.yaml +++ /dev/null @@ -1,42 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_category -name: has_or_had_category_slot -title: Has or Had Category Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - skos: http://www.w3.org/2004/02/skos/core# - dcterms: http://purl.org/dc/terms/ - schema: http://schema.org/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -- ../classes/Category -default_prefix: hc -slots: - has_or_had_category: - description: 'Links an entity to its category or classification. - - Categories represent hierarchical or faceted classifications: - Subject categories (art, science, history) - Thematic categories (Dutch Golden Age, WWII, Islamic art) - Material categories (paintings, manuscripts, specimens) - Geographic categories (European, Asian, African) - Temporal categories (Medieval, Renaissance, Contemporary) - - The Category class enables structured categorization with: - Category name and description - Category type (subject, theme, material, geographic, temporal) - Hierarchical relationships (broader/narrower terms) - Provenance tracking' - range: Category - slot_uri: dcterms:subject - multivalued: true - inlined: true - inlined_as_list: true - exact_mappings: - - dcterms:subject - - skos:Concept - close_mappings: - - schema:about - - schema:category - related_mappings: - - skos:broader - - skos:narrower - annotations: - rule_53_migration: Replaces collection_focus with structured Category - custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_chapter.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_chapter.yaml index 628fd4e235..a39e6e560c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_chapter.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_chapter.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/VideoChapter default_prefix: hc slots: has_or_had_chapter: description: Ordered list of video chapters - range: VideoChapter + range: string # uriorcurie + # range: VideoChapter multivalued: true slot_uri: hc:chapters annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_code.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_code.yaml index a3614d24f6..32398e2970 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_code.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_code.yaml @@ -40,7 +40,7 @@ slots: - slot_uri: skos:notation (SKOS notation for concepts) ' - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - skos:notation diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_collection.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_collection.yaml index 04d34ead83..dd3e5505df 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_collection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_collection.yaml @@ -16,7 +16,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CustodianCollection slots: has_or_had_collection: slot_uri: rico:hasOrHadPart @@ -44,9 +43,10 @@ slots: - "The library transferred its rare books to the national archive" = Past holding ' - range: CustodianCollection + range: string # uriorcurie + # range: CustodianCollection multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type exact_mappings: - rico:hasOrHadPart close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_comment.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_comment.yaml index 98b102cdf1..f8759c1034 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_comment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_comment.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Comment slots: has_or_had_comment: slot_uri: schema:comment @@ -33,7 +32,8 @@ slots: - Annotation notes ' - range: Comment + range: string # uriorcurie + # range: Comment multivalued: true exact_mappings: - schema:comment diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_component.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_component.yaml index a46ac6fec1..1ba1113232 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_component.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_component.yaml @@ -19,7 +19,7 @@ slots: has_or_had_component: slot_uri: schema:hasPart description: "Component parts of an entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - components can change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:hasPart` - Schema.org part relationship\n- **Close**: `dcterms:hasPart` - Dublin Core part-whole\n\n**Use Cases**:\n- Address components (street, city, country)\n- System components\n- Structural components\n\n**Example**:\n```yaml\nhas_or_had_component:\n - has_or_had_type: StreetNumber\n has_or_had_label: \"1\"\n - has_or_had_type: Route\n has_or_had_label: \"Museumstraat\"\n```\n" - range: uriorcurie + range: string # uriorcurie multivalued: true required: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_condition.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_condition.yaml index 532fd8d4d0..a7b1fe43c4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_condition.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_condition.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Condition slots: has_or_had_condition: slot_uri: schema:itemCondition @@ -40,7 +39,8 @@ slots: Use with Condition class which has `has_or_had_description` for textual descriptions. ' - range: Condition + range: string # uriorcurie + # range: Condition multivalued: true exact_mappings: - schema:itemCondition diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_confidence.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_confidence.yaml index ef4a3019d6..d2b123e954 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_confidence.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_confidence.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Confidence slots: has_or_had_confidence: name: has_or_had_confidence description: The confidence level of an assertion or observation. slot_uri: sosa:hasSimpleResult - range: Confidence + range: string # uriorcurie + # range: Confidence multivalued: false annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_contact_details.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_contact_details.yaml index fb5a8456a6..be30ec3f86 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_contact_details.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_contact_details.yaml @@ -32,7 +32,7 @@ slots: - Email addresses ' - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - schema:contactPoint diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_coordinates.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_coordinates.yaml index e1878c84a8..9ce139316b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_coordinates.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_coordinates.yaml @@ -15,8 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/PlanarCoordinates -- ../classes/Coordinates slots: has_or_had_coordinates: name: has_or_had_coordinates diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_currency.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_currency.yaml index 514f8316fb..85c3fb9fc5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_currency.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_currency.yaml @@ -15,7 +15,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Currency default_prefix: hc slots: has_or_had_currency: @@ -26,7 +25,8 @@ slots: **ISO 4217**: Standard currency codes (EUR, USD, GBP, etc.) Can represent the currency for budgets, financial statements, acquisition costs, and other monetary amounts.' - range: Currency + range: string # uriorcurie + # range: Currency slot_uri: schema:currency exact_mappings: - schema:currency diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_custodian.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_custodian.yaml index e700421b0f..82d24c4891 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_custodian.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_custodian.yaml @@ -2,12 +2,12 @@ id: https://nde.nl/ontology/hc/slot/has_or_had_custodian name: has_or_had_custodian_slot imports: - linkml:types -- ../classes/Custodian slots: has_or_had_custodian: slot_uri: rdfs:member description: Collection of custodian hub entities in the container - range: Custodian + range: string # uriorcurie + # range: Custodian multivalued: true exact_mappings: - ldp:contains diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_custodian_name.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_custodian_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_custodian_name.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_custodian_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_custodian_observation.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_custodian_observation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_custodian_observation.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_custodian_observation.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_data_quality_notes.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_data_quality_notes.yaml index 187f8d5673..519758a38c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_data_quality_notes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_data_quality_notes.yaml @@ -7,13 +7,13 @@ prefixes: dqv: http://www.w3.org/ns/dqv# imports: - linkml:types -- ../classes/DigitalPlatformV2DataQualityNotes default_prefix: hc slots: has_or_had_data_quality_notes: slot_uri: dqv:hasQualityAnnotation description: "Notes regarding data quality." - range: DigitalPlatformV2DataQualityNotes + range: string # uriorcurie + # range: DigitalPlatformV2DataQualityNotes multivalued: true exact_mappings: - dqv:hasQualityAnnotation diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_degree.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_degree.yaml index 8e7616a883..b610bb593a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_degree.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_degree.yaml @@ -47,7 +47,7 @@ slots: structured class for better extensibility. ' - range: uriorcurie + range: string # uriorcurie multivalued: false required: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_detected.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_detected.yaml index 951ccc85a2..03ce1280f6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_detected.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_detected.yaml @@ -24,7 +24,7 @@ slots: range: string required: false multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type exact_mappings: - prov:generated related_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_device.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_device.yaml index fa68d6d446..29e321734b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_device.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_device.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/IoTDevice slots: has_or_had_device: name: has_or_had_device title: has_or_had_device description: Device associated with the entity. slot_uri: sosa:madeBySensor - range: IoTDevice + range: string # uriorcurie + # range: IoTDevice multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_digital_platform.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_digital_platform.yaml index 3b8c3ad73a..16b01647fd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_digital_platform.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_digital_platform.yaml @@ -18,13 +18,13 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/DigitalPlatform slots: has_or_had_digital_platform: slot_uri: rico:hasOrHadPart - range: DigitalPlatform + range: string # uriorcurie + # range: DigitalPlatform multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type description: "Digital platform(s) operated by or representing this custodian, \ncurrently or historically.\n\n**RiC-O Temporal Pattern**: Uses `hasOrHad*` pattern because digital\nplatforms can be:\n- Decommissioned (no longer active)\n- Transferred to another organization\n- Replaced by newer platforms\n- Merged into consolidated systems\n\nThis property enables documentation of digital infrastructure for ANY custodian\n(physical institutions with websites OR digital-first platforms):\n\n**Examples**:\n- Physical museum with website: Rijksmuseum \u2192 Rijksstudio (online collection)\n- Archive with multiple systems: Noord-Hollands Archief \u2192 Inventory, OAI-PMH endpoint\n- Digital-first platform: Europeana (classified as DigitalPlatformType custodian)\n- Historical platform: Institution's old catalog system (decommissioned 2015)\n\n**CRITICAL DISTINCTION**:\n- DigitalPlatform CLASS (this slot): Infrastructure documentation for any custodian\n- DigitalPlatformType: Custodian type\ \ classification for digital-first institutions\n\nMultivalued to support custodians with multiple platforms (website, API, SPARQL, etc.).\n" close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_digital_presence.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_digital_presence.yaml index e8afa83f49..9a8ff0fd9e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_digital_presence.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_digital_presence.yaml @@ -46,7 +46,7 @@ slots: **Replaces**: digital_platform slot per slot_fixes.yaml migration (2026-01-25) ' - range: uriorcurie + range: string # uriorcurie required: false multivalued: true exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_direction.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_direction.yaml index 787c85d306..ed94e1cad1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_direction.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_direction.yaml @@ -20,7 +20,7 @@ slots: slot_uri: schema:direction description: "The directional orientation of an entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - direction conventions may change over time (e.g., \nhistorical documents may have been read differently than modern convention).\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:direction` - Schema.org direction property\n- **Close**: `crm:P2_has_type` - CIDOC-CRM predicate for typing entities\n\n**Usage**:\nThis is a GENERIC slot intended for reuse across multiple classes.\nClasses may narrow the range in slot_usage to reference specific Direction classes\n(e.g., TextDirection for text flow, ReadingDirection for reading order).\n\n**Common Values for TextDirection**:\n- LEFT_TO_RIGHT - Latin, Cyrillic, Greek scripts\n- RIGHT_TO_LEFT - Arabic, Hebrew scripts\n- TOP_TO_BOTTOM - Traditional CJK vertical writing\n- BOUSTROPHEDON - Ancient alternating direction\n\n**Range**:\ \ `uriorcurie` (Rule 55 - broaden range for class-level narrowing)\n\n**Migrated From**: text_direction (2026-01-16)\n" - range: uriorcurie + range: string # uriorcurie multivalued: false exact_mappings: - schema:direction diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_document.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_document.yaml index 64c2f4072f..34e3daebb2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_document.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_document.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/ArticlesOfAssociation slots: has_or_had_document: name: has_or_had_document description: A document associated with the entity. slot_uri: foaf:isPrimaryTopicOf - range: ArticlesOfAssociation + range: string # uriorcurie + # range: ArticlesOfAssociation multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_domain.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_domain.yaml index 5239f353d5..ad0445361a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_domain.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_domain.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Domain slots: has_or_had_domain: slot_uri: schema:about @@ -33,7 +32,8 @@ slots: - Disciplinary fields ' - range: Domain + range: string # uriorcurie + # range: Domain multivalued: true close_mappings: - schema:about diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_drawer.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_drawer.yaml index 7224d9a726..ab0684ce23 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_drawer.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_drawer.yaml @@ -15,14 +15,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Drawer default_prefix: hc slots: has_or_had_drawer: description: Drawer within a storage unit. MIGRATED from drawer_number (2026-01-26). - range: Drawer + range: string # uriorcurie + # range: Drawer multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type slot_uri: rico:hasOrHadPhysicalLocation annotations: rico_naming_convention: 'Follows RiC-O "hasOrHad" pattern for temporal predicates. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_edition.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_edition.yaml index b096c4bba5..f0eb9b758e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_edition.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_edition.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Edition slots: has_or_had_edition: name: has_or_had_edition @@ -23,7 +22,8 @@ slots: MIGRATED from `edition_number` and `edition_statement` (via class promotion).' slot_uri: schema:bookEdition - range: Edition + range: string # uriorcurie + # range: Edition multivalued: true exact_mappings: - schema:bookEdition diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_email.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_email.yaml index a4666cce6a..653867b6d9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_email.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_email.yaml @@ -15,14 +15,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/EmailAddress default_prefix: hc slots: has_or_had_email: description: Email address associated with an entity. MIGRATED from contact_email, admin_email, and email_address (2026-01-26). - range: EmailAddress + range: string + # range: EmailAddress multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type slot_uri: schema:email close_mappings: - foaf:mbox diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_endpoint.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_endpoint.yaml index d936cd5666..1af8ef6df2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_endpoint.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_endpoint.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/DataServiceEndpoint slots: has_or_had_endpoint: name: has_or_had_endpoint title: has_or_had_endpoint description: The data service endpoint. slot_uri: dcat:endpointURL - range: DataServiceEndpoint + range: string # uriorcurie + # range: DataServiceEndpoint multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_engagement_metric.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_engagement_metric.yaml index 860a6cc082..7ee3fd77da 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_engagement_metric.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_engagement_metric.yaml @@ -22,7 +22,7 @@ slots: MIGRATED from `engagement_rate` (and other metrics). Uses EngagementMetric class for structured data (value + type).' slot_uri: schema:interactionStatistic - # range: Any + range: string # uriorcurie multivalued: true exact_mappings: - schema:interactionStatistic diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_equipment.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_equipment.yaml index 43834d12c0..e2d7e6cbba 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_equipment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_equipment.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/AVEquipment slots: has_or_had_equipment: name: has_or_had_equipment title: has_or_had_equipment description: Equipment associated with a facility or process. slot_uri: schema:instrument - range: AVEquipment + range: string # uriorcurie + # range: AVEquipment multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_equipment_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_equipment_type.yaml index 98a08e87dd..75c2d34033 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_equipment_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_equipment_type.yaml @@ -18,12 +18,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/EquipmentType default_prefix: hc slots: has_or_had_equipment_type: slot_uri: rico:hasOrHadEquipmentType - range: EquipmentType + range: string # uriorcurie + # range: EquipmentType multivalued: true description: Links to the type of equipment available or used. annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_example.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_example.yaml index c72869b0ef..a2b5ec40e4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_example.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_example.yaml @@ -17,15 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Example default_prefix: hc slots: has_or_had_example: slot_uri: skos:example description: An example instance or illustration of this concept. - range: Example + range: string # uriorcurie + # range: Example multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_exhibition.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_exhibition.yaml index 95797f260c..e0bfb3a716 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_exhibition.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_exhibition.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Exhibition default_prefix: hc slots: has_or_had_exhibition: slot_uri: schema:event - range: Exhibition + range: string # uriorcurie + # range: Exhibition multivalued: true inlined: false description: 'Exhibitions organized or hosted by this custodian. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_expense.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_expense.yaml index 4f61718e02..8e058b7612 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_expense.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_expense.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Expense slots: has_or_had_expense: name: has_or_had_expense title: has_or_had_expense description: Expense incurred. slot_uri: schema:expense - range: Expense + range: string # uriorcurie + # range: Expense multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_expertise_in.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_expertise_in.yaml index cce1fe18df..84981c7482 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_expertise_in.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_expertise_in.yaml @@ -17,15 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ExpertiseArea default_prefix: hc slots: has_or_had_expertise_in: slot_uri: schema:knowsAbout description: Expertise or knowledge area of the agent. - range: ExpertiseArea + range: string # uriorcurie + # range: ExpertiseArea multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_facility.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_facility.yaml index 24fb12d84d..f023c16df9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_facility.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_facility.yaml @@ -15,12 +15,12 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Facility slots: has_or_had_facility: slot_uri: schema:amenityFeature description: "A facility or amenity associated with an entity.\n\n**USAGE**:\nUsed for:\n- Visitor facilities (caf\xE9, shop, parking)\n- Research facilities (reading room, lab)\n- Accessibility facilities (wheelchair access)\n" - range: Facility + range: string # uriorcurie + # range: Facility multivalued: true exact_mappings: - schema:amenityFeature diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_feature.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_feature.yaml index 8384bc0a16..4ac6b1201a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_feature.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_feature.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/TechnicalFeature slots: has_or_had_feature: slot_uri: schema:featureList @@ -33,7 +32,8 @@ slots: - Product features ' - range: TechnicalFeature + range: string # uriorcurie + # range: TechnicalFeature multivalued: true close_mappings: - schema:featureList diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_fee.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_fee.yaml index b93d40a1ce..b8934cbd7f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_fee.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_fee.yaml @@ -9,11 +9,11 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/AdmissionFee slots: has_or_had_fee: slot_uri: schema:priceSpecification - range: AdmissionFee + range: string # uriorcurie + # range: AdmissionFee multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_file_location.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_file_location.yaml index 5ca7074048..f5dba4586f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_file_location.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_file_location.yaml @@ -14,13 +14,13 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/FileLocation default_prefix: hc slots: has_or_had_file_location: description: >- The location of a file. MIGRATED from html_snapshot_path (Rule 53). - range: FileLocation + range: string # uriorcurie + # range: FileLocation slot_uri: skos:note multivalued: true diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_fixity.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_fixity.yaml index 6f4f04ccc3..03743a14fd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_fixity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_fixity.yaml @@ -20,7 +20,7 @@ slots: name: has_or_had_fixity description: Fixity information (checksums, verification) for a digital resource. MIGRATED from fixity_info per Rule 53. Follows RiC-O naming convention. slot_uri: premis:fixity - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_flag.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_flag.yaml index b2bc7e4aec..31434fd5c3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_flag.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_flag.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/DataQualityFlag slots: has_or_had_flag: name: has_or_had_flag title: has_or_had_flag description: Data quality flag or status indicator. slot_uri: dqv:hasQualityAnnotation - range: DataQualityFlag + range: string # uriorcurie + # range: DataQualityFlag multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_focus.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_focus.yaml index 1c3f7f65b2..e56424949b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_focus.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_focus.yaml @@ -20,7 +20,7 @@ slots: name: has_or_had_focus description: Indicates the primary focus or area of interest of an entity. MIGRATED from funding_focus per Rule 53. Follows RiC-O naming convention. slot_uri: skos:scopeNote - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_format.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_format.yaml index 335ce1fcde..b26bc78ea7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_format.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_format.yaml @@ -58,7 +58,7 @@ slots: Classes can narrow to specific format enums/classes via slot_usage. ' - range: uriorcurie + range: string # uriorcurie multivalued: true close_mappings: - dct:format diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_frequency.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_frequency.yaml index 65934d0441..1474c1498b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_frequency.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_frequency.yaml @@ -15,7 +15,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/UpdateFrequency default_prefix: hc slots: has_or_had_frequency: @@ -28,9 +27,10 @@ slots: **IMPROVEMENT OVER STRING**: - Structured quantity (numeric value) - Structured time interval (ISO 8601 duration) - Event-driven vs time-based distinction - Machine-readable for analytics **USE CASES**: - IoT devices: Sensor update rates - Data feeds: Sync frequencies - APIs: Rate limiting and polling intervals' - range: UpdateFrequency + range: string # uriorcurie + # range: UpdateFrequency slot_uri: dcterms:accrualPeriodicity - inlined: true + inlined: false # Fixed invalid inline for primitive type exact_mappings: - dcterms:accrualPeriodicity close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_function.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_function.yaml index 8494463698..ea3053fa90 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_function.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_function.yaml @@ -15,16 +15,16 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/FunctionType default_prefix: hc slots: has_or_had_function: description: "Links an entity (e.g., AdministrativeOffice, OrganizationalUnit) to its organizational functions.\n**USAGE**:\n```yaml administrative_office:\n has_or_had_function:\n - function_category: ADMINISTRATIVE\n function_name: \"Finance and Accounting\"\n description: \"Financial operations and reporting\"\n - function_category: ADMINISTRATIVE\n function_name: \"Human Resources\"\n description: \"Staff management and recruitment\"\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC slot following slot_fixes.yaml revision. Do NOT create bespoke slots like `has_administrative_function` or `has_program_function`. Instead, use this single slot with FunctionType instances that have a `function_category` classification.\n**REPLACES**:\n- `administrative_functions` (deprecated stub) - `has_or_had_administrative_function` (bespoke, should not have been created)\n**ONTOLOGY ALIGNMENT**:\n- `org:purpose` - \"Indicates the purpose of this Organization\" - Maps to organizational\ \ function/role patterns in W3C ORG ontology" - range: FunctionType + range: string # uriorcurie + # range: FunctionType multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type slot_uri: org:purpose exact_mappings: - org:purpose diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_funded.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_funded.yaml index 9319b0d39e..c97e6f7e11 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_funded.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_funded.yaml @@ -20,7 +20,7 @@ slots: name: has_or_had_funded description: Indicates that an entity funded or provided funding for a project or activity. MIGRATED from funded_project per Rule 53. Follows RiC-O naming convention. slot_uri: frapo:funds - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_geofeature.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_geofeature.yaml index 3c14ec8d8d..cf17cd07cb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_geofeature.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_geofeature.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/GeoFeature slots: has_or_had_geofeature: name: has_or_had_geofeature description: Links a geospatial place to a geographic feature classification. MIGRATED from feature_class/feature_code per Rule 53. Follows RiC-O naming convention. slot_uri: gn:featureClass - range: GeoFeature + range: string # uriorcurie + # range: GeoFeature multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_geographic_subdivision.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_geographic_subdivision.yaml index 1320ab6740..d3723c94d3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_geographic_subdivision.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_geographic_subdivision.yaml @@ -23,7 +23,7 @@ slots: slot_uri: lcc_cr:isSubregionOf description: "Geographic subdivision within a country (state, province, region, department, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity may have been located in different subdivisions\nover time (e.g., due to boundary changes, administrative reorganization).\n\n**Geographic Hierarchy**:\nCountry \u2192 GeographicSubdivision (this slot) \u2192 Settlement\n\n**Identifier Format**:\nISO 3166-2 codes: {country_alpha2}-{subdivision_code}\nExamples: US-PA (Pennsylvania), ID-BA (Bali), DE-BY (Bavaria), NL-LI (Limburg)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `lcc_cr:isSubregionOf` - OMG Languages Countries and Codes\n- **Exact**: `schema:addressRegion` - Schema.org administrative region\n- **Close**: `locn:adminUnitL2` - INSPIRE administrative unit level 2\n- **Close**: `gn:A.ADM1` - GeoNames first-order administrative division\n\n**Use Cases**:\n- Place is located\ \ in a specific subdivision (e.g., \"Pittsburgh museum\" \u2192 US-PA)\n- Feature types are region-specific (e.g., \"sacred shrine (Bali)\" \u2192 ID-BA)\n- Legal jurisdiction at subnational level (e.g., Bavarian archive law)\n- Generating GHCID region codes\n\n**Range**: `uriorcurie` (Rule 55) - Allows both:\n- URI references to Subregion class instances\n- Direct ISO 3166-2 code CURIEs\n\n**Migration Note** (2026-01-17):\nReplaces domain-specific `subregion` slot per slot_fixes.yaml revision.\nProvides generic predicate name applicable across geographic contexts.\n" - range: uriorcurie + range: string # uriorcurie required: false multivalued: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_geometric_extent.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_geometric_extent.yaml index baa8c1eda9..a1526dafd8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_geometric_extent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_geometric_extent.yaml @@ -20,7 +20,7 @@ slots: name: has_or_had_geometric_extent description: Geometric extent of a spatial object (bounding box, polygon, etc.). MIGRATED from face_bbox/region_bbox/logo_bbox/object_bbox per Rule 53. Follows RiC-O naming convention. slot_uri: geosparql:hasGeometry - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_geometry.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_geometry.yaml index 27133502d9..c4a8660bd5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_geometry.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_geometry.yaml @@ -20,7 +20,7 @@ slots: name: has_or_had_geometry description: Indicates the geometry associated with an entity. MIGRATED from geometry_type/geometry_wkt per Rule 53. Follows GeoSPARQL naming convention. slot_uri: geosparql:hasGeometry - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_habitat.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_habitat.yaml index dd65c0e238..1efc2704ed 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_habitat.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_habitat.yaml @@ -20,7 +20,7 @@ slots: name: has_or_had_habitat description: Indicates the habitat associated with a biological entity or collection event. MIGRATED from habitat per Rule 53. Follows RiC-O naming convention. slot_uri: dwc:habitat - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_head.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_head.yaml index bfbf76c7b1..a271038fd8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_head.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_head.yaml @@ -15,13 +15,13 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Person default_prefix: hc slots: has_or_had_head: description: "Person who heads or headed this organizational unit.\n**W3C ORG Alignment**: - `org:headOf` links person TO organization (person \u2192 org) - This slot is the INVERSE: links organization TO person (org \u2192 person) - Semantically: \"This organization has (or had) this person as head\"\n**RiC-O Pattern**: Follows `hasOrHad*` temporal naming convention from Records in Contexts Ontology, indicating the relationship may be current or historical.\n**Usage**: - OrganizationBranch: Branch director or manager - Department: Department head - Team: Team lead\nCREATED: 2026-01-14 from branch_head migration per Rule 53." slot_uri: org:hasMember - range: Person + range: string # uriorcurie + # range: Person multivalued: false inlined: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_hypernym.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_hypernym.yaml index 65e9e1be03..752fdd23f3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_hypernym.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_hypernym.yaml @@ -21,7 +21,7 @@ slots: slot_uri: hc:hasOrHadHypernym description: "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow\ \ consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - range: uriorcurie + range: string # uriorcurie implements: - owl:ObjectProperty required: false diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_hyponym.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_hyponym.yaml index 7f9b861d8f..2929c42b92 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_hyponym.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_hyponym.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Hyponym slots: has_or_had_hyponym: name: has_or_had_hyponym title: has_or_had_hyponym description: Narrower term or instance. slot_uri: skos:narrower - range: Hyponym + range: string # uriorcurie + # range: Hyponym multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_identifier.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_identifier.yaml deleted file mode 100644 index 233654041b..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_identifier.yaml +++ /dev/null @@ -1,15 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_identifier -name: has_or_had_identifier -title: Has Or Had Identifier -description: An identifier associated with the entity. -imports: -- linkml:types -slots: - has_or_had_identifier: - slot_uri: dcterms:identifier - range: uriorcurie - multivalued: true - annotations: - custodian_types: '["*"]' - exact_mappings: - - dcterms:identifier diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_image.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_image.yaml index f1e357835c..d35bd1c71a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_image.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_image.yaml @@ -15,7 +15,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: has_or_had_image: slot_uri: schema:image @@ -27,7 +27,7 @@ slots: MIGRATED 2026-01-22: Created per slot_fixes.yaml revision for card_image_url.' range: uri - inlined: true + inlined: false # Fixed invalid inline for primitive type multivalued: true exact_mappings: - schema:image diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_index_number.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_index_number.yaml index 6d54d5cce9..06f285e2de 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_index_number.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_index_number.yaml @@ -20,7 +20,7 @@ slots: name: has_or_had_index_number description: An index number associated with an information carrier or record. MIGRATED from file_number per Rule 53. Follows RiC-O naming convention. slot_uri: rico:identifier - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_interface.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_interface.yaml index 9daa988e9b..4dd8cbd4e0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_interface.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_interface.yaml @@ -20,7 +20,7 @@ slots: name: has_or_had_interface description: Indicates an interface or access point for a digital resource. MIGRATED from has_access_interface_url per Rule 53. Follows RiC-O naming convention. slot_uri: dcat:accessService - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_investment.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_investment.yaml index 528a8d412e..7828b78dc9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_investment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_investment.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Quantity slots: has_or_had_investment: slot_uri: schema:amount @@ -33,7 +32,8 @@ slots: - Financial holdings ' - range: Quantity + range: string # uriorcurie + # range: Quantity examples: - value: value: 2000000 diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_key_contact.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_key_contact.yaml index fe5b3ae722..98dbe6da10 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_key_contact.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_key_contact.yaml @@ -7,13 +7,13 @@ prefixes: schema: http://schema.org/ imports: - linkml:types -- ../classes/DigitalPlatformV2KeyContact default_prefix: hc slots: has_or_had_key_contact: slot_uri: schema:employee description: "Key contact person for the organization." - range: DigitalPlatformV2KeyContact + range: string # uriorcurie + # range: DigitalPlatformV2KeyContact multivalued: true exact_mappings: - schema:employee diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_language.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_language.yaml index cedc43633d..f3a4d6a587 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_language.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_language.yaml @@ -15,20 +15,18 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/LanguageProficiency -- ../classes/Language default_prefix: hc slots: has_or_had_language: description: "Language information for an entity.\n\n**Use Cases**:\n1. **Language Proficiency**: When tracking language skills (e.g., person profiles)\n - Use LanguageProficiency class with language_name, code, and level\n2. **Language-Tagged Text**: When storing multilingual text content\n - Use Language class with iso_639_1, language_name, and text_content\n3. **Content Language**: Language of the resource content (migrated from content_language)\n - Use Language class\n\n**Migration Support**:\nThis slot replaces language-specific text slots (fr, de, en, nl) and content_language\nwith a unified pattern per slot_fixes.yaml revisions:\n- `content_language` \u2192 has_or_had_language with Language\n- `fr` (French text) \u2192 has_or_had_language with Language(iso_639_1=\"fr\")\n- `de` (German text) \u2192 has_or_had_language with Language(iso_639_1=\"de\")\n- `en` (English text) \u2192 has_or_had_language with Language(iso_639_1=\"en\")\n- `nl` (Dutch text) \u2192 has_or_had_language\ \ with Language(iso_639_1=\"nl\")\n\n**Example - Language-Tagged Text**:\n```yaml\nhas_or_had_language:\n - iso_639_1: \"fr\"\n language_name: \"French\"\n text_content: \"archives universitaires\"\n - iso_639_1: \"en\"\n language_name: \"English\"\n text_content: \"university archives\"\n```\n\n**Example - Language Proficiency**:\n```yaml\nhas_or_had_language:\n - language_name: \"French\"\n language_code: \"fr\"\n proficiency_level: \"fluent\"\n```\n" - # range: Any + range: string # uriorcurie any_of: - range: LanguageProficiency - range: Language multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type slot_uri: dct:language annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_liability.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_liability.yaml index 5c2d3ca99a..b45b6aead8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_liability.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_liability.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Quantity slots: has_or_had_liability: slot_uri: schema:amount @@ -33,7 +32,8 @@ slots: - Financial commitments ' - range: Quantity + range: string # uriorcurie + # range: Quantity examples: - value: value: 500000 diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_main_part.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_main_part.yaml index 204587b50f..7d3a5ae485 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_main_part.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_main_part.yaml @@ -14,8 +14,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/MainPart -default_range: string +# default_range: string slots: has_or_had_main_part: slot_uri: schema:hasPart @@ -26,8 +25,9 @@ slots: **ONTOLOGY ALIGNMENT**: - slot_uri: schema:hasPart (primary) - Represents a significant/main portion of a larger whole MIGRATED 2026-01-22: Created per slot_fixes.yaml revision for capital_budget.' - range: MainPart - inlined: true + range: string # uriorcurie + # range: MainPart + inlined: false # Fixed invalid inline for primitive type exact_mappings: - schema:hasPart annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_mandate.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_mandate.yaml index 0f4375c74c..12612224a6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_mandate.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_mandate.yaml @@ -10,13 +10,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Mandate slots: has_or_had_mandate: slot_uri: org:classification description: A formal mandate or responsibility. - range: Mandate + range: string # uriorcurie + # range: Mandate multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_mean.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_mean.yaml index 28eb5e5ee4..57ed052cb8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_mean.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_mean.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/MeanValue slots: has_or_had_mean: name: has_or_had_mean title: has_or_had_mean description: The mean value. slot_uri: schema:value - range: MeanValue + range: string # uriorcurie + # range: MeanValue annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_measurement.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_measurement.yaml index 7ef1570f14..54f6762974 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_measurement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_measurement.yaml @@ -40,7 +40,7 @@ slots: Measurement class per Rule 53/56. ' - range: uriorcurie + range: string # uriorcurie multivalued: true required: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_measurement_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_measurement_type.yaml index 042a586c2d..061014887a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_measurement_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_measurement_type.yaml @@ -28,7 +28,7 @@ slots: has_or_had_measurement_type: slot_uri: crm:P2_has_type description: "The type or category of a measurement (e.g., temperature, humidity, \nlight level, air quality).\n\nFollows RiC-O temporal naming convention (Rule 39) to indicate the\nrelationship may be current or historical.\n" - range: uriorcurie + range: string # uriorcurie required: false exact_mappings: - crm:P2_has_type diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_measurement_unit.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_measurement_unit.yaml index e38195990e..6439c1158c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_measurement_unit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_measurement_unit.yaml @@ -20,12 +20,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/MeasureUnit default_prefix: hc slots: has_or_had_measurement_unit: description: "The unit of measurement for a quantity value. Uses RiC-O temporal naming pattern to indicate the unit may be current or historical (e.g., if measurement standards changed over time).\n**QUDT**: qudt:unit - \"The unit of measure used to express the value of a Quantity.\"\n**USE CASES**: - Visitor counts: unit = \"visitors\", \"visitors/year\" - View counts: unit = \"views\", \"views/day\" - Collection sizes: unit = \"items\", \"objects\", \"linear meters\" - Area: unit = \"m\xB2\", \"ha\", \"km\xB2\" - Currency: unit = \"EUR\", \"USD\", \"GBP\"" - range: MeasureUnit + range: string # uriorcurie + # range: MeasureUnit slot_uri: qudt:unit exact_mappings: - qudt:unit diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_member.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_member.yaml index 4e118ffba7..c97226c9b5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_member.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_member.yaml @@ -17,8 +17,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/SocialNetworkMember -- ../classes/Custodian slots: has_or_had_member: slot_uri: org:hasMember @@ -58,7 +56,7 @@ slots: and social network membership patterns. ' - # range: Any + range: string # uriorcurie multivalued: true exact_mappings: - org:hasMember diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_method.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_method.yaml index 01722dc1b9..65a7e3a54e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_method.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_method.yaml @@ -15,8 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/EnrichmentMethod -- ../classes/HTTPMethod slots: has_or_had_method: slot_uri: schema:httpMethod @@ -39,7 +37,7 @@ slots: Range broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55. ' - # range: Any + range: string # uriorcurie multivalued: true exact_mappings: - schema:httpMethod diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_methodology.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_methodology.yaml index 1398de63b1..24e27272dc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_methodology.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_methodology.yaml @@ -19,12 +19,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Methodology default_prefix: hc slots: has_or_had_methodology: description: "The methodology used to derive a measurement or observation.\n**PROV-O ALIGNMENT**:\nMaps to `prov:hadPlan` which indicates \"The optional Plan adopted by an Agent in Association with some Activity.\"\n**WHY THIS MATTERS**:\nA \"unique face count\" of 15 has different meanings depending on methodology: - ENTITY_RESOLUTION: 15 distinct individuals identified via face clustering - OBJECT_TRACKING: 15 tracked face instances (may include same person) - MANUAL_COUNT: 15 faces counted by human annotator\n**EXAMPLE USAGE**:\n```yaml has_or_had_quantity:\n quantity_value: 15\n quantity_type: OBJECT_COUNT\n has_or_had_measurement_unit:\n unit_type: FACE\n has_or_had_methodology:\n methodology_type: ENTITY_RESOLUTION\n has_or_had_label: \"ArcFace clustering\"\n confidence_threshold: 0.6\n```" - range: Methodology + range: string # uriorcurie + # range: Methodology slot_uri: prov:hadPlan exact_mappings: - prov:hadPlan diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_mode.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_mode.yaml index e1260e0877..dc8c7a4d3c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_mode.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_mode.yaml @@ -50,7 +50,7 @@ slots: **Migrated From**: thinking_mode (2026-01-16) ' - range: uriorcurie + range: string # uriorcurie multivalued: false exact_mappings: - schema:actionOption diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_name.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_name.yaml index cba4ab4042..7f1abbb023 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_name.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_name.yaml @@ -56,7 +56,7 @@ slots: Classes may narrow via slot_usage to `string` or `Name` class. ' - range: uriorcurie + range: string # uriorcurie implements: - owl:ObjectProperty required: false diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_notation.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_notation.yaml index e2694039c1..7a03f41a8c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_notation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_notation.yaml @@ -14,7 +14,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: has_or_had_notation: slot_uri: skos:notation diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_note.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_note.yaml index 42c332348d..aa4003ca66 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_note.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_note.yaml @@ -20,8 +20,8 @@ slots: slot_uri: skos:note range: string multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type description: "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n" exact_mappings: - skos:note diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_opening_hour.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_opening_hour.yaml index 536f949e30..fd7badba72 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_opening_hour.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_opening_hour.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/OpeningHour slots: has_or_had_opening_hour: slot_uri: schema:openingHoursSpecification @@ -33,7 +32,8 @@ slots: - Service availability ' - range: OpeningHour + range: string # uriorcurie + # range: OpeningHour multivalued: true exact_mappings: - schema:openingHoursSpecification diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_organization_profile.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_organization_profile.yaml index c9d79a0839..1a910b5ad3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_organization_profile.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_organization_profile.yaml @@ -7,13 +7,13 @@ prefixes: org: http://www.w3.org/ns/org# imports: - linkml:types -- ../classes/DigitalPlatformV2OrganizationProfile default_prefix: hc slots: has_or_had_organization_profile: slot_uri: org:linkedTo description: "Detailed profile of the organization." - range: DigitalPlatformV2OrganizationProfile + range: string # uriorcurie + # range: DigitalPlatformV2OrganizationProfile multivalued: true related_mappings: - org:linkedTo diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_organization_status.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_organization_status.yaml index 69cc374869..20ab15f620 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_organization_status.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_organization_status.yaml @@ -7,13 +7,13 @@ prefixes: org: http://www.w3.org/ns/org# imports: - linkml:types -- ../classes/DigitalPlatformV2OrganizationStatus default_prefix: hc slots: has_or_had_organization_status: slot_uri: org:classification description: "Status of the organization (e.g., active, dissolved)." - range: DigitalPlatformV2OrganizationStatus + range: string # uriorcurie + # range: DigitalPlatformV2OrganizationStatus multivalued: true exact_mappings: - org:classification diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_organizer.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_organizer.yaml index 2aa50430b1..7bff797665 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_organizer.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_organizer.yaml @@ -59,7 +59,7 @@ slots: Classes narrow via slot_usage to Organizer class. ' - range: uriorcurie + range: string # uriorcurie implements: - owl:ObjectProperty required: false diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_origin.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_origin.yaml index 008c495f3e..cd43f6f831 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_origin.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_origin.yaml @@ -20,7 +20,7 @@ slots: name: has_or_had_origin description: Origin location, source, or starting point. MIGRATED from from_location per Rule 53. Follows RiC-O naming convention. slot_uri: prov:atLocation - range: uriorcurie + range: string # uriorcurie multivalued: false annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_output.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_output.yaml index 0f5d34d142..117976f8b6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_output.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_output.yaml @@ -16,7 +16,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/OutputData slots: has_or_had_output: slot_uri: hc:hasOrHadOutput @@ -52,9 +51,10 @@ slots: frequency, destination, and data characteristics. ' - range: OutputData + range: string # uriorcurie + # range: OutputData multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type close_mappings: - sosa:hasResult - schema:produces diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_parent.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_parent.yaml index edbf96606c..54fbff1b28 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_parent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_parent.yaml @@ -20,6 +20,6 @@ slots: description: >- The parent entity of this entity. MIGRATED from parent_chapter_id (Rule 53). - # range: Any + range: string # uriorcurie slot_uri: schema:parent multivalued: false diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_participated_in.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_participated_in.yaml index 829881b96c..414f788be8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_participated_in.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_participated_in.yaml @@ -20,7 +20,7 @@ slots: name: has_or_had_participated_in description: Indicates that an entity participated in an event, project, or funding call. MIGRATED from funding_call per Rule 53. Follows RiC-O naming convention. slot_uri: rico:isOrWasParticipantIn - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_percentage.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_percentage.yaml index b6c0f27269..7d08a843b6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_percentage.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_percentage.yaml @@ -13,14 +13,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Percentage default_prefix: hc slots: has_or_had_percentage: slot_uri: schema:valueReference description: "A percentage value associated with an entity.\n\n**PURPOSE**:\n\nLinks entities to structured percentage representations.\nUsed for commission rates, discounts, completion percentages, etc.\n\n**RiC-O NAMING** (Rule 39):\n\nUses \"has_or_had_\" prefix indicating temporal relationship - \npercentages may change over time.\n\n**MIGRATION NOTE**:\n\nCreated from migration of `commission_rate` slot per slot_fixes.yaml.\nProvides structured percentage via Percentage class.\n" - range: Percentage - inlined: true + range: string # uriorcurie + # range: Percentage + inlined: false # Fixed invalid inline for primitive type close_mappings: - schema:valueReference examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_period.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_period.yaml index 5ed5595498..4c4e324d1d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_period.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_period.yaml @@ -19,7 +19,7 @@ slots: has_or_had_period: slot_uri: dcterms:temporal description: Named periods within coverage (uses TemporalPeriod class) - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_place.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_place.yaml index cbb03cf558..32e34ee377 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_place.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_place.yaml @@ -19,8 +19,8 @@ slots: has_or_had_place: slot_uri: schema:location description: "Links an entity to its associated place.\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming follows RiC-O convention indicating that place associations may change over time: - Collection events occur at specific locations - Institutions may relocate - Historical associations preserved\n**USE CASES**: - Collection events: where specimen was collected - Events: where event took place - Activities: location of activity\n**REPLACES**: - `collection_location` (structured location for specimens)\n**EXAMPLE**: ```yaml has_or_had_place:\n place_name: \"Mauritius\"\n country: \"MU\"\n latitude: -20.2\n longitude: 57.5\n```" - range: uriorcurie - inlined: true + range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type exact_mappings: - schema:location close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_policy.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_policy.yaml index 2efa6dfaac..aa065e28c2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_policy.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_policy.yaml @@ -3,12 +3,12 @@ name: has_or_had_policy title: has_or_had_policy imports: - linkml:types -- ../classes/Policy slots: has_or_had_policy: description: Policy associated with an entity. slot_uri: schema:publishingPrinciples - range: Policy + range: string # uriorcurie + # range: Policy multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_price.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_price.yaml index 4023939089..83219be1e2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_price.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_price.yaml @@ -27,7 +27,7 @@ slots: has_or_had_price: slot_uri: schema:priceSpecification description: "Price or pricing information associated with an entity.\n\nFollows RiC-O temporal naming convention (Rule 39) to indicate the\nrelationship may be current or historical.\n\nCan represent:\n- Exact prices (admission fees, ticket prices)\n- Price ranges (\u20AC to \u20AC\u20AC\u20AC\u20AC)\n- Price categories (budget, moderate, premium)\n" - range: uriorcurie + range: string # uriorcurie multivalued: true required: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_primary_platform.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_primary_platform.yaml index 3a81c0c47e..18f3cdd1b9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_primary_platform.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_primary_platform.yaml @@ -7,13 +7,13 @@ prefixes: schema: http://schema.org/ imports: - linkml:types -- ../classes/DigitalPlatformV2PrimaryPlatform default_prefix: hc slots: has_or_had_primary_platform: slot_uri: schema:mainEntity description: "Primary digital platform of the organization." - range: DigitalPlatformV2PrimaryPlatform + range: string # uriorcurie + # range: DigitalPlatformV2PrimaryPlatform multivalued: false exact_mappings: - schema:mainEntity diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_profile.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_profile.yaml index 45871b1d4d..f8301b545b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_profile.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_profile.yaml @@ -67,7 +67,7 @@ slots: close_mappings: - prov:wasAssociatedWith - dcterms:subject - range: uriorcurie + range: string # uriorcurie multivalued: false annotations: migration_source: target_profile diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_provenance.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_provenance.yaml index c512050e8b..5f2e19357c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_provenance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_provenance.yaml @@ -15,15 +15,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ProvenanceBlock +# - ../classes/ProvenanceBlock default_prefix: hc slots: has_or_had_provenance: slot_uri: prov:wasGeneratedBy description: "Provenance information for this data element.\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\nBroadened from ProvenanceBlock to uriorcurie to resolve OWL ambiguous type warnings. This allows classes to narrow via slot_usage to: - `ProvenanceBlock` for comprehensive provenance tracking - `SourceDocument` for source document references - String URIs for simple provenance references\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming follows RiC-O convention indicating that provenance associations can change over time: - Additional provenance may be added as data is enriched - Provenance may be updated when verification occurs - Historical provenance preserved through versioning\n**REPLACES**: - `all_data_real` (auto-generated stub, string range) - `is_or_was_real` (RealnessStatus typed class) - `has_all_data_real_flag` (boolean flag, no provenance) - `has_or_had_observation_source_document` (bespoke slot, Rule 55)\n**EXAMPLE**: ```yaml has_or_had_provenance:\n\ \ data_source: \"public_linkedin_profile\"\n extraction_date: \"2025-01-14T12:00:00Z\"\n confidence_score: 0.95\n note: \"Verified production data\"\n```" - range: uriorcurie - inlined: true + range: string # uriorcurie + inlined: false # Fixed invalid inline for primitive type exact_mappings: - prov:wasGeneratedBy close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_provenance_path.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_provenance_path.yaml index 19e21c6d61..a257ce962c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_provenance_path.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_provenance_path.yaml @@ -4,11 +4,11 @@ title: Has or Had Provenance Path description: The provenance path associated with this entity. imports: - linkml:types -- ../classes/ProvenancePath slots: has_or_had_provenance_path: slot_uri: hc:provenancePath - range: ProvenancePath + range: string # uriorcurie + # range: ProvenancePath multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_publisher.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_publisher.yaml index 73cd2a9568..fe11517d15 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_publisher.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_publisher.yaml @@ -31,7 +31,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Publisher default_prefix: hc slots: has_or_had_publisher: @@ -52,9 +51,10 @@ slots: - Identifiers (ISNI, Wikidata) ' - range: Publisher + range: string # uriorcurie + # range: Publisher multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type exact_mappings: - dcterms:publisher - schema:publisher diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_qualifier.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_qualifier.yaml index 53eb1580f4..9261213dc1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_qualifier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_qualifier.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Qualifier slots: has_or_had_qualifier: name: has_or_had_qualifier title: has_or_had_qualifier description: Qualifier for a statement. slot_uri: schema:qualifier - range: Qualifier + range: string # uriorcurie + # range: Qualifier annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml index 8662c3fa9e..8a3d50263d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml @@ -4,11 +4,11 @@ title: Has or Had Quantity description: The quantity associated with an entity. imports: - linkml:types -- ../classes/Quantity slots: has_or_had_quantity: slot_uri: schema:value - range: Quantity + range: string # uriorcurie + # range: Quantity multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_range.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_range.yaml index d47024d4b3..3febdf331c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_range.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_range.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/GrantRange slots: has_or_had_range: slot_uri: crm:P43_has_dimension @@ -54,8 +53,9 @@ slots: a form of dimensional measurement on entities. ' - range: GrantRange - inlined: true + range: string # uriorcurie + # range: GrantRange + inlined: false # Fixed invalid inline for primitive type multivalued: true exact_mappings: - crm:P43_has_dimension diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_rating.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_rating.yaml index 14fd1d2832..156d516ba8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_rating.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_rating.yaml @@ -21,7 +21,7 @@ slots: title: has_or_had_rating description: Rating assigned to an entity. slot_uri: schema:starRating - range: uriorcurie + range: string # uriorcurie annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_rationale.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_rationale.yaml index 90e677da43..fca6c3164e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_rationale.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_rationale.yaml @@ -16,7 +16,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Rationale slots: has_or_had_rationale: slot_uri: prov:used @@ -41,7 +40,8 @@ slots: - **Close**: `skos:note` - SKOS note (DatatypeProperty) ' - range: Rationale + range: string # uriorcurie + # range: Rationale multivalued: true close_mappings: - skos:note diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_reason.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_reason.yaml index a5e32274ad..891c4736eb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_reason.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_reason.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Reason slots: has_or_had_reason: name: has_or_had_reason title: has_or_had_reason description: Reason for an event or state. slot_uri: prov:hadActivity - range: Reason + range: string # uriorcurie + # range: Reason multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_reply.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_reply.yaml deleted file mode 100644 index bf4ee06fa0..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_reply.yaml +++ /dev/null @@ -1,81 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_reply -name: has_or_had_reply -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - as: https://www.w3.org/ns/activitystreams# - sioc: http://rdfs.org/sioc/ns# - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - has_or_had_reply: - slot_uri: sioc:has_reply - description: 'Reply or response associated with content (comments, posts, messages). - - - **PURPOSE**: - - - Captures reply/response relationships and metrics for threaded discussions - - using CommentReply class for structured representation. - - - **RiC-O NAMING** (Rule 39): - - - Uses "has_or_had_" prefix to indicate temporal relationship - the content - - has replies currently or had replies in the past (e.g., deleted replies). - - - **ONTOLOGY ALIGNMENT**: - - - | Ontology | Property | Usage | - - |----------|----------|-------| - - | **SIOC** | `sioc:has_reply` | Discussion reply relationship | - - | **Activity Streams** | `as:inReplyTo` (inverse) | Social media replies | - - | **Schema.org** | `schema:comment` | Generic comment relationship | - - - **MIGRATION NOTE**: - - - Created from migration of `comment_reply_count` slot per slot_fixes.yaml. - - Replaces simple integer counts with structured reply data. - - ' - range: uriorcurie - multivalued: true - exact_mappings: - - sioc:has_reply - close_mappings: - - schema:comment - related_mappings: - - as:inReplyTo - examples: - - value: https://nde.nl/ontology/hc/reply/comment-123-replies - description: Reply collection for a comment - comments: - - Created 2026-01-22 from comment_reply_count migration (Rule 53) - - Uses RiC-O temporal naming convention (Rule 39) - - Supports structured reply metrics - annotations: - custodian_types: '["*"]' - specificity_score: 0.55 - specificity_rationale: Moderately general - applies to any threaded discussion context. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_requirement.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_requirement.yaml index d8b7049717..f8d4cbde09 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_requirement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_requirement.yaml @@ -14,14 +14,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/FundingRequirement default_prefix: hc slots: has_or_had_requirement: - range: FundingRequirement + range: string # uriorcurie + # range: FundingRequirement multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type description: "Structured requirements for this funding call with provenance tracking.\n\nEach FundingRequirement represents a single eligibility criterion,\nfinancial condition, partnership requirement, or other constraint.\nRequirements link to WebObservation for source tracking.\n\n**REPLACES UNSTRUCTURED FIELDS**:\n\nThe `requirements` slot provides structured alternatives to:\n- `eligible_applicants` \u2192 ELIGIBILITY_ORGANIZATIONAL requirements\n- `eligible_countries` \u2192 ELIGIBILITY_GEOGRAPHIC requirements\n- `funding_rate` \u2192 FINANCIAL_RATE requirements\n- `co_funding_required` \u2192 FINANCIAL_COFUNDING requirements\n- `partnership_required` \u2192 PARTNERSHIP_* requirements\n- `minimum_partners` \u2192 PARTNERSHIP_MINIMUM_PARTNERS requirements\n\nOriginal fields are retained for backward compatibility but\n`requirements` provides richer, provenance-tracked alternatives.\n\n**PROVENANCE CHAIN**:\n\n```\nCallForApplication\n \u2502\n \u2514\u2500\u2500 requirements\ \ \u2500\u2500\u2192 FundingRequirement[]\n \u2502\n \u251C\u2500\u2500 requirement_type: ELIGIBILITY_*\n \u251C\u2500\u2500 requirement_text: \"...\"\n \u251C\u2500\u2500 requirement_value: \"...\"\n \u2502\n \u2514\u2500\u2500 observed_in \u2500\u2500\u2192 WebObservation\n \u2502\n \u2514\u2500\u2500 source_url, retrieved_on, ...\n```\n\n**EXAMPLE USAGE**:\n\n```yaml\nrequirements:\n - requirement_id: \".../min-partners-3\"\n requirement_type: PARTNERSHIP_MINIMUM_PARTNERS\n requirement_text: \"Minimum 3 partners from 3 EU countries\"\n requirement_value: \"3\"\n requirement_unit: \"partners\"\n is_mandatory: true\n observed_in: \".../observation/web/2025-11-29/eu-horizon\"\ \n extraction_confidence: 0.98\n \n - requirement_id: \".../open-access\"\n requirement_type: TECHNICAL_OPEN_ACCESS\n requirement_text: \"Immediate open access required\"\n requirement_value: \"immediate\"\n is_mandatory: true\n observed_in: \".../observation/web/2025-11-29/eu-horizon\"\n```\n" diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_resolution.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_resolution.yaml index 5d2cc1803a..f589580719 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_resolution.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_resolution.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Resolution slots: has_or_had_resolution: name: has_or_had_resolution @@ -46,9 +45,10 @@ slots: ' slot_uri: hc:hasOrHadResolution - range: Resolution + range: string # uriorcurie + # range: Resolution multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type exact_mappings: - schema:videoQuality annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_responsibility.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_responsibility.yaml index d05c321bf4..d931a26118 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_responsibility.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_responsibility.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Responsibility slots: has_or_had_responsibility: slot_uri: org:role @@ -33,7 +32,8 @@ slots: - Functional duties ' - range: Responsibility + range: string # uriorcurie + # range: Responsibility multivalued: true close_mappings: - org:role diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_restriction.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_restriction.yaml index f2ef4f467b..39c9e1ebc8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_restriction.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_restriction.yaml @@ -16,7 +16,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Restriction slots: has_or_had_restriction: slot_uri: schema:accessibilityControl @@ -34,7 +33,8 @@ slots: - Use limitations ' - range: Restriction + range: string # uriorcurie + # range: Restriction multivalued: true close_mappings: - dct:accessRights diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_revenue.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_revenue.yaml index b407c887ea..0c676fd20a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_revenue.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_revenue.yaml @@ -16,7 +16,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Revenue slots: has_or_had_revenue: slot_uri: schema:revenue @@ -38,9 +37,10 @@ slots: - `Revenue` class (which maps to `schema:MonetaryAmount`). ' - range: Revenue + range: string # uriorcurie + # range: Revenue multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type required: false annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_roadmap.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_roadmap.yaml index da8b95c5e5..a3b5e9deb0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_roadmap.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_roadmap.yaml @@ -17,13 +17,13 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Roadmap default_prefix: hc slots: has_or_had_roadmap: description: A roadmap associated with this entity. - range: Roadmap + range: string # uriorcurie + # range: Roadmap multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_role.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_role.yaml index 5583693c05..e99483a8df 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_role.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_role.yaml @@ -55,7 +55,7 @@ slots: Classes may narrow via slot_usage to specific Role enums or classes. ' - range: uriorcurie + range: string # uriorcurie implements: - owl:ObjectProperty required: false diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_schema.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_schema.yaml index 51cc774e4d..380b6e943d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_schema.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_schema.yaml @@ -20,7 +20,7 @@ slots: name: has_or_had_schema description: Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention. slot_uri: dcterms:conformsTo - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_scheme.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_scheme.yaml index 00232662b9..c6fc235962 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_scheme.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_scheme.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/IdentifierScheme slots: has_or_had_scheme: name: has_or_had_scheme title: has_or_had_scheme description: Identifier scheme. slot_uri: schema:propertyID - range: IdentifierScheme + range: string # uriorcurie + # range: IdentifierScheme annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_scope.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_scope.yaml index 890700c469..e097fe8039 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_scope.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_scope.yaml @@ -3,12 +3,12 @@ name: has_or_had_scope title: has_or_had_scope imports: - linkml:types -- ../classes/Scope slots: has_or_had_scope: description: Scope of an organization or project. slot_uri: schema:areaServed - range: Scope + range: string + # range: Scope annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_section.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_section.yaml index db71650c2a..8de5dfbb1e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_section.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_section.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/OperationalUnit slots: has_or_had_section: name: has_or_had_section title: has_or_had_section description: Section or unit within an organization. slot_uri: org:hasUnit - range: OperationalUnit + range: string # uriorcurie + # range: OperationalUnit multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_sensitivity_level.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_sensitivity_level.yaml index c413c1ff95..7cabfce101 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_sensitivity_level.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_sensitivity_level.yaml @@ -20,7 +20,7 @@ slots: name: has_or_had_sensitivity_level description: Indicates the sensitivity level of data or materials (e.g., GDPR, confidential). MIGRATED from gdpr_relevant context. Follows RiC-O naming convention. slot_uri: rico:hasOrHadConditionsOfAccess - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_service.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_service.yaml index 3e53bb5f59..b99b20cee7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_service.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_service.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Service slots: has_or_had_service: slot_uri: schema:availableService @@ -33,7 +32,8 @@ slots: - Conservation services ' - range: Service + range: string # uriorcurie + # range: Service multivalued: true exact_mappings: - schema:availableService diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_service_area.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_service_area.yaml index 6a37134afd..0bdaa4e5b5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_service_area.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_service_area.yaml @@ -15,7 +15,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ServiceArea default_prefix: hc slots: has_or_had_service_area: @@ -31,8 +30,9 @@ slots: **MIGRATED from branch_service_area (Rule 53)**: Changed from string to ServiceArea class for richer geographic modeling including boundaries, temporal validity, and administrative hierarchy.' slot_uri: schema:areaServed - range: ServiceArea - inlined: true + range: string # uriorcurie + # range: ServiceArea + inlined: false # Fixed invalid inline for primitive type exact_mappings: - schema:areaServed close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_service_details.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_service_details.yaml index 71ef1d8a75..9ec8baeb70 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_service_details.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_service_details.yaml @@ -7,13 +7,13 @@ prefixes: schema: http://schema.org/ imports: - linkml:types -- ../classes/DigitalPlatformV2ServiceDetails default_prefix: hc slots: has_or_had_service_details: slot_uri: schema:serviceOutput description: "Details about services provided." - range: DigitalPlatformV2ServiceDetails + range: string # uriorcurie + # range: DigitalPlatformV2ServiceDetails multivalued: true exact_mappings: - schema:serviceOutput diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_setpoint.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_setpoint.yaml index b107eb2ac3..4a396cad2f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_setpoint.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_setpoint.yaml @@ -36,7 +36,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Setpoint slots: has_or_had_setpoint: description: 'Environmental control setpoint(s) for this entity. @@ -54,11 +53,12 @@ slots: with a structured Setpoint class. ' - range: Setpoint + range: string # uriorcurie + # range: Setpoint slot_uri: brick:hasSetpoint multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type exact_mappings: - brick:hasSetpoint close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_significance.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_significance.yaml index 3609437ecf..144aee7e29 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_significance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_significance.yaml @@ -19,7 +19,7 @@ slots: has_or_had_significance: slot_uri: crm:P17i_was_motivation_for description: "Significance or importance of an entity to a community, culture, or domain.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - significance can change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P17i_was_motivation_for` - CIDOC-CRM motivation\n- **Close**: `dcterms:description` - Dublin Core description\n- **Related**: `schema:significance` - Schema.org (informal)\n\n**Use Cases**:\n- Cultural heritage significance\n- Community importance\n- Historical relevance\n- Economic/social impact\n\n**Example**:\n```yaml\nhas_or_had_significance:\n - has_or_had_type: CommunitySignificance\n has_or_had_description: \"UNESCO-recognized Trappist tradition, Belgian cultural identity\"\n```\n" - range: uriorcurie + range: string # uriorcurie multivalued: true required: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_size.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_size.yaml index adc4b23b53..09f577e171 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_size.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_size.yaml @@ -14,14 +14,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Size default_prefix: hc slots: has_or_had_size: description: The size or dimensions of an entity. MIGRATED from dimension slot (2026-01-26). - range: Size + range: string # uriorcurie + # range: Size multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type slot_uri: crm:P43_has_dimension close_mappings: - schema:size diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_social_media_profile.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_social_media_profile.yaml index ef2c336700..8f3f8d508f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_social_media_profile.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_social_media_profile.yaml @@ -15,14 +15,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/SocialMediaProfile default_prefix: hc slots: has_or_had_social_media_profile: slot_uri: foaf:account - range: SocialMediaProfile + range: string # uriorcurie + # range: SocialMediaProfile multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type description: "Social media accounts/profiles maintained by this custodian.\n\nLinks to SocialMediaProfile instances representing third-party\nsocial media accounts (Instagram, Facebook, X/Twitter, YouTube, etc.).\n\n**FOAF Alignment**:\nUses `foaf:account` property which links Agent to OnlineAccount:\n- Domain: foaf:Agent (Custodian)\n- Range: foaf:OnlineAccount (SocialMediaProfile)\n\n**THREE-TIER DIGITAL PRESENCE MODEL**:\n\n```\n1. DigitalPlatform (PRIMARY - owned websites)\n - digital_platform slot\n - Main website, APIs, flagship platforms\n \n2. AuxiliaryDigitalPlatform (SECONDARY - owned project sites)\n - Linked via DigitalPlatform.auxiliary_platforms\n - Exhibition microsites, project-specific tools\n \n3. SocialMediaProfile (THIRD-PARTY - external accounts) - THIS SLOT\n - Accounts on external social media services\n - NOT owned/controlled by custodian\n```\n\n**is_primary_digital_presence Flag**:\n\nEach SocialMediaProfile has a boolean `is_primary_digital_presence`:\n\ \n- **true**: Social media IS the main digital presence\n - Custodian has no formal website\n - Example: Local heritage society with Facebook only\n \n- **false**: Social media SUPPORTS the main website\n - Custodian has a DigitalPlatform\n - Example: Rijksmuseum Instagram supports rijksmuseum.nl\n\n**Example - Museum with Social Media Supporting Website**:\n```yaml\nCustodian:\n hc_id: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n \n digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address: \"https://www.rijksmuseum.nl/\"\n \n social_media_profiles:\n - platform_type: INSTAGRAM\n account_name: \"rijksmuseum\"\n profile_url: \"https://www.instagram.com/rijksmuseum/\"\n is_primary_digital_presence: false\n follower_count: 1200000\n verified: true\n \n - platform_type: X_TWITTER\n account_name: \"rijksmuseum\"\n profile_url: \"https://x.com/rijksmuseum\"\ \n is_primary_digital_presence: false\n```\n\n**Example - Local Society with Social Media as Primary**:\n```yaml\nCustodian:\n hc_id: \"https://nde.nl/ontology/hc/nl-dr-nvn-s-hvn\"\n preferred_label: \"Historische Vereniging Nijeveen\"\n \n digital_platform: null # No formal website\n \n social_media_profiles:\n - platform_type: FACEBOOK\n account_name: \"HistorischeVerenigingNijeveen\"\n profile_url: \"https://www.facebook.com/HistorischeVerenigingNijeveen\"\n is_primary_digital_presence: true\n follower_count: 450\n```\n" diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_source.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_source.yaml index 07d17434a4..bbf544e0f6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_source.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_source.yaml @@ -19,7 +19,7 @@ slots: has_or_had_source: description: The source or origin from which something was derived, generated, or obtained. Follows RiC-O temporal naming convention (Rule 39) to indicate that sources may change over time. slot_uri: prov:wasDerivedFrom - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - prov:wasDerivedFrom diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_staff.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_staff.yaml index 31ee650ae1..7e58540739 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_staff.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_staff.yaml @@ -9,11 +9,11 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Staff slots: has_or_had_staff: slot_uri: schema:employee - range: Staff + range: string # uriorcurie + # range: Staff multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_staff_member.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_staff_member.yaml index ac2cf18406..cf6f2314df 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_staff_member.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_staff_member.yaml @@ -3,7 +3,6 @@ name: has_or_had_staff_member_slot title: Staff Members imports: - linkml:types -- ../classes/PersonObservation slots: has_or_had_staff_member: slot_uri: org:hasMember @@ -11,7 +10,8 @@ slots: \ (if unit dissolved)\n\n**Use Cases**:\n1. **Department staffing analysis**: \"How many conservators in Conservation Division?\"\n2. **Expertise location**: \"Which unit has manuscript conservation expertise?\"\n3. **Reorganization impact**: \"Track staff before/after merger event\"\n4. **Contact directory**: \"Find department head for Digital Services\"\n\n**Data Quality**:\n- Complete staff rosters (all positions documented) = high-quality data\n- Partial rosters (only senior staff) = acceptable for historical analysis\n- Empty staff_members (no data) = indicates missing personnel records\n\n**Example - Conservation Division**:\n```yaml\nOrganizationalStructure:\n id: \".../org-unit/rm-conservation-division\"\n unit_name: \"Conservation Division\"\n staff_count: 28 # Total FTE\n has_or_had_staff_member:\n - id: \".../person-obs/.../jane-smith/conservator-2013\"\n person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n role_title: \"Deputy Director, Conservation\ \ Division\"\n - id: \".../person-obs/.../john-doe/conservator-2015\"\n person_name: \"John Doe\"\n staff_role: CONSERVATOR\n role_title: \"Senior Objects Conservator\"\n```\n\n**Example - Staff Through Organizational Change**:\n```yaml\n# Before merger (2013-02-28)\nOrganizationalStructure:\n id: \".../org-unit/rm-paintings-conservation\"\n unit_name: \"Paintings Conservation Department\"\n valid_to: \"2013-02-28\"\n has_or_had_staff_member:\n - person_name: \"Dr. Jane Smith\"\n role_end_date: \"2013-02-28\" # Ends with unit dissolution\n\n# After merger (2013-03-01)\nOrganizationalStructure:\n id: \".../org-unit/rm-conservation-division\"\n unit_name: \"Conservation Division\"\n valid_from: \"2013-03-01\"\n has_or_had_staff_member:\n - person_name: \"Dr. Jane Smith\"\n role_start_date: \"2013-03-01\" # Starts with new unit\n affected_by_event: \".../event/rm-conservation-merger-2013\"\n```\n\n**Query Pattern (SPARQL)**:\n```sparql\n\ # Find all conservators in an institution\nSELECT ?unitName ?personName ?roleTitle WHERE {\n ?custodian hc:organizational_structure ?unit .\n ?unit hc:unit_name ?unitName ;\n hc:staff_members ?person .\n ?person hc:person_name ?personName ;\n hc:staff_role \"CONSERVATOR\" ;\n hc:role_title ?roleTitle .\n}\n```\n" - range: PersonObservation + range: string # uriorcurie + # range: PersonObservation multivalued: true close_mappings: - schema:employee diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_standard.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_standard.yaml index 88f41df8d2..be0a24e8d3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_standard.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_standard.yaml @@ -45,7 +45,7 @@ slots: MIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes. ' - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - dct:conformsTo diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_status.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_status.yaml index 39a1fc49e9..39c4fecb89 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_status.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_status.yaml @@ -19,7 +19,7 @@ default_prefix: hc slots: has_or_had_status: slot_uri: hc:hasOrHadStatus - range: uriorcurie + range: string # uriorcurie implements: - owl:ObjectProperty description: 'Current or past status of an entity. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_style.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_style.yaml index 4c45a7c9f4..815137358a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_style.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_style.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/ArchitecturalStyle slots: has_or_had_style: name: has_or_had_style description: The style of the entity. slot_uri: schema:genre - range: ArchitecturalStyle + range: string # uriorcurie + # range: ArchitecturalStyle multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_subject.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_subject.yaml index 3ed6a6b74d..367d1e0b3f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_subject.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_subject.yaml @@ -77,7 +77,7 @@ slots: Provides generic predicate name applicable across heritage object contexts. ' - range: uriorcurie + range: string # uriorcurie required: false multivalued: true exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_summary.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_summary.yaml index 1b922650cc..36051e41c7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_summary.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_summary.yaml @@ -4,11 +4,11 @@ title: Has Or Had Summary description: A summary or abstract of the entity. imports: - linkml:types -- ../classes/Summary slots: has_or_had_summary: slot_uri: schema:abstract - range: Summary + range: string # uriorcurie + # range: Summary multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_supplier.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_supplier.yaml index 339d4b41c8..e3b6942cc5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_supplier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_supplier.yaml @@ -62,7 +62,7 @@ slots: Provides structured Supplier class instead of plain string values. ' - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - schema:supplier diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_symbolism.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_symbolism.yaml index 9f1a81668b..a55dccd3b1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_symbolism.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_symbolism.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Iconography slots: has_or_had_symbolism: name: has_or_had_symbolism title: has_or_had_symbolism description: Symbolism or iconography. slot_uri: schema:encodingFormat - range: Iconography + range: string # uriorcurie + # range: Iconography annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_technological_infrastructure.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_technological_infrastructure.yaml index a47a3e67da..c9d719f013 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_technological_infrastructure.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_technological_infrastructure.yaml @@ -22,7 +22,7 @@ slots: slot_uri: hc:hasOrHadTechnologicalInfrastructure description: "Technical infrastructure components, systems, and technologies used by a digital platform.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - platforms may have changed technology stacks over time.\n\n**MIGRATION from technology_stack**:\nThis slot replaces the simple string-based `technology_stack` slot with a\nstructured TechnologicalInfrastructure class that provides:\n- Type classification (framework, language, database, API protocol, service)\n- Versioning information\n- Component relationships (includes_or_included)\n- Full provenance tracking\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadTechnologicalInfrastructure`\n- **Close**: `schema:softwareVersion` - Schema.org for software/version info\n- **Close**: `doap:programming-language` - DOAP vocabulary for software projects\n- **Related**: `spdx:relationshipType_DEPENDS_ON` - Software Bill of Materials\n\ \n**Usage Examples**:\n```yaml\nauxiliary_platform:\n has_or_had_technological_infrastructure:\n - has_or_had_type: Framework\n has_or_had_label: React\n has_or_had_description: Frontend JavaScript framework\n - has_or_had_type: BackendStack\n has_or_had_label: Python/Django\n has_or_had_description: Backend web framework\n - has_or_had_type: Database\n has_or_had_label: PostgreSQL\n has_or_had_description: Primary relational database\n```\n" - range: uriorcurie + range: string # uriorcurie multivalued: true required: false close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_text.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_text.yaml index 6a4f58ab37..6fb302be3b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_text.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_text.yaml @@ -4,11 +4,11 @@ title: Has Or Had Text description: The text content of an entity. imports: - linkml:types -- ../classes/Text slots: has_or_had_text: slot_uri: schema:text - range: Text + range: string # uriorcurie + # range: Text multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_threshold.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_threshold.yaml index 45b90aae82..034759ee1a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_threshold.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_threshold.yaml @@ -14,15 +14,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ConfidenceThreshold default_prefix: hc slots: has_or_had_threshold: description: "Threshold value(s) that apply or applied to something.\n\n**USE CASES**:\n- Confidence thresholds for NLP/ML processing\n- Quality thresholds for data validation\n- Acceptance thresholds for automated workflows\n\n**TEMPORAL SEMANTICS** (RiC-O Pattern):\nThe \"hasOrHad\" naming indicates thresholds may change over time\nas methodology evolves or requirements change.\n\n**Migration (2026-01-22)**:\n- `confidence_threshold` \u2192 `has_or_had_threshold` + `ConfidenceThreshold`\n- Per slot_fixes.yaml (Rule 53)\n" - range: ConfidenceThreshold + range: string # uriorcurie + # range: ConfidenceThreshold multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type slot_uri: hc:hasOrHadThreshold annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_thumbnail.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_thumbnail.yaml index 7e40b17a10..42a1842111 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_thumbnail.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_thumbnail.yaml @@ -22,7 +22,7 @@ slots: slot_uri: schema:thumbnailUrl description: "A thumbnail image associated with an entity.\n\n**TEMPORAL SEMANTICS** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this \nrelationship may be historical - thumbnails may change over time.\n\n**ONTOLOGICAL ALIGNMENT**:\n- **Primary** (`slot_uri`): `schema:thumbnailUrl` (Schema.org)\n- **Exact**: `foaf:thumbnail` (FOAF)\n- **Related**: `dcat:thumbnail` (DCAT)\n\n**CONSISTENCY PATTERN** (Rule 56):\nThis slot uses a structured Thumbnail class range for consistency with \nother media reference patterns in the ontology:\n- `has_or_had_image` \u2192 Image class\n- `has_or_had_video` \u2192 Video class \n- `has_or_had_audio` \u2192 Audio class\n- `has_or_had_thumbnail` \u2192 Thumbnail class\n\nEach media class contains:\n- `has_or_had_url` \u2192 URL of the media resource\n- Metadata (dimensions, format, alternative text, etc.)\n\n**MIGRATION** (2026-01-16, Rule 56):\nReplaces `thumbnail_url` per slot_fixes.yaml feedback.\nSimple URI \u2192 Structured\ \ Thumbnail class for extensibility.\n" - range: uriorcurie + range: string # uriorcurie required: false multivalued: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_tier.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_tier.yaml index 1b5bf88bfc..eadf45931e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_tier.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_tier.yaml @@ -36,7 +36,7 @@ slots: Used in GovernmentHierarchy to link to AdministrativeLevel. ' - range: uriorcurie + range: string # uriorcurie multivalued: false required: false annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_time_interval.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_time_interval.yaml index 8d59c121c2..c9f802f554 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_time_interval.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_time_interval.yaml @@ -15,7 +15,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/TimeInterval default_prefix: hc slots: has_or_had_time_interval: @@ -24,9 +23,10 @@ slots: **TEMPORAL SEMANTICS** (RiC-O style): The "has_or_had" naming indicates that time interval associations can change: - Update frequencies may be revised - Approval times may change with policy updates - Reporting periods may vary - Durations of media content **USE CASES**: - Update frequency: How often data is refreshed - Approval time: Expected processing duration - Reporting period: Time period for metrics/revenue - Media duration: Length of video/audio content' - range: TimeInterval + range: string # uriorcurie + # range: TimeInterval slot_uri: time:hasDuration - inlined: true + inlined: false # Fixed invalid inline for primitive type exact_mappings: - time:hasDuration close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_title.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_title.yaml index 5a06140356..0ad41e2574 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_title.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_title.yaml @@ -55,7 +55,7 @@ slots: ' range: string multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type exact_mappings: - dct:title close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_token.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_token.yaml index 4b7004ff21..f8061ec758 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_token.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_token.yaml @@ -20,16 +20,16 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Token default_prefix: hc slots: has_or_had_token: description: 'Token data associated with an entity (e.g., LLM token counts, cached tokens). Generic slot following RiC-O temporal naming convention. UPDATED v1.1.0: Range changed to Token class per full Rule 53/56 compliance.' slot_uri: schema:value - range: Token + range: string # uriorcurie + # range: Token multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type exact_mappings: - schema:value annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_tolerance.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_tolerance.yaml index e06a74a32a..ba7959d047 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_tolerance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_tolerance.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/HumidityTolerance slots: has_or_had_tolerance: name: has_or_had_tolerance title: has_or_had_tolerance description: Tolerance range for a value. slot_uri: schema:marginOfError - range: HumidityTolerance + range: string # uriorcurie + # range: HumidityTolerance annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_transformation_metadata.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_transformation_metadata.yaml index 8d6d4f3fbd..a17c7a596a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_transformation_metadata.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_transformation_metadata.yaml @@ -7,13 +7,13 @@ prefixes: prov: http://www.w3.org/ns/prov# imports: - linkml:types -- ../classes/DigitalPlatformV2TransformationMetadata default_prefix: hc slots: has_or_had_transformation_metadata: slot_uri: prov:wasGeneratedBy description: "Metadata regarding data transformation processes." - range: DigitalPlatformV2TransformationMetadata + range: string # uriorcurie + # range: DigitalPlatformV2TransformationMetadata multivalued: true exact_mappings: - prov:wasGeneratedBy diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_treatment.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_treatment.yaml index ca355924bb..3f80ae489f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_treatment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_treatment.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Treatment slots: has_or_had_treatment: slot_uri: schema:description @@ -33,7 +32,8 @@ slots: - Handling instructions ' - range: Treatment + range: string # uriorcurie + # range: Treatment multivalued: true examples: - value: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_treshold.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_treshold.yaml index f8c47d1331..92a18dd14e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_treshold.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_treshold.yaml @@ -25,7 +25,7 @@ slots: range: string required: false multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type exact_mappings: - rdf:value diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_type.yaml index ad6d664b8e..056a27a6c4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_type.yaml @@ -7,7 +7,7 @@ imports: slots: has_or_had_type: slot_uri: hc:hasOrHadType - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_unit.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_unit.yaml index db59a94a57..b2b7a15065 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_unit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_unit.yaml @@ -28,7 +28,7 @@ slots: Generic slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.' range: string slot_uri: qudt:unit - inlined: true + inlined: false # Fixed invalid inline for primitive type exact_mappings: - qudt:unit - schema:unitCode diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_url.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_url.yaml deleted file mode 100644 index 21249ea6fa..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_url.yaml +++ /dev/null @@ -1,57 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_url -name: has_or_had_url_slot -title: Has Or Had URL Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - owl: http://www.w3.org/2002/07/owl# - schema: http://schema.org/ - foaf: http://xmlns.com/foaf/0.1/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_url: - slot_uri: hc:hasOrHadUrl - range: uri - description: "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n" - implements: - - owl:ObjectProperty - required: false - multivalued: true - inlined: true - inlined_as_list: true - exact_mappings: [] - close_mappings: - - schema:url - - foaf:homepage - annotations: - rico_naming_convention: 'Follows RiC-O "hasOrHad" pattern for temporal predicates. - - See Rule 39: Slot Naming Convention (RiC-O Style) - - ' - replaces_slots: website, url, vendor_url - migration_date: '2026-01-15' - custodian_types: '["*"]' - custodian_types_rationale: URLs apply to all heritage custodian types. - specificity_score: 0.15 - specificity_rationale: Generic URL slot applicable across all contexts. - comments: - - Generic URL association slot - - Maps to schema:url for web addresses - - 'Temporal: URLs may change over time' - - 'RiC-O naming: hasOrHad indicates potentially historical' - - Replaces website, url, vendor_url per slot_fixes.yaml - examples: - - value: - url_value: https://www.rijksmuseum.nl/ - url_type: website - description: Official website for Rijksmuseum diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_use_case.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_use_case.yaml index 9af7b645a0..ec37bd5609 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_use_case.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_use_case.yaml @@ -4,11 +4,11 @@ title: Has Or Had Use Case description: Relates a concept to a use case scenario. imports: - linkml:types -- ../classes/UseCase slots: has_or_had_use_case: slot_uri: skos:example - range: UseCase + range: string # uriorcurie + # range: UseCase multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_user_category.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_user_category.yaml index e42f398ebe..4ee4320411 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_user_category.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_user_category.yaml @@ -17,6 +17,6 @@ slots: description: Categories of users eligible for access. range: string multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_venue.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_venue.yaml index 58f132c32f..ff01ba0096 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_venue.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_venue.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Venue slots: has_or_had_venue: slot_uri: schema:location @@ -33,7 +32,8 @@ slots: - Performance venues ' - range: Venue + range: string # uriorcurie + # range: Venue multivalued: true exact_mappings: - schema:location diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_writing_system.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_writing_system.yaml index 16c6db4b60..363ddf5986 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_writing_system.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_writing_system.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/WritingSystem slots: has_or_had_writing_system: slot_uri: schema:inLanguage @@ -33,7 +32,8 @@ slots: - Historical scripts (Cuneiform, Hieroglyphics) ' - range: WritingSystem + range: string # uriorcurie + # range: WritingSystem close_mappings: - schema:inLanguage examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/hold_or_held_record_set_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/hold_or_held_record_set_type.yaml index 5a4ce71fdd..0b48f9eacf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/hold_or_held_record_set_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/hold_or_held_record_set_type.yaml @@ -19,7 +19,7 @@ imports: slots: hold_or_held_record_set_type: slot_uri: rico:isOrWasHolderOf - range: uriorcurie + range: string # uriorcurie multivalued: true description: "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological\ \ Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types" diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/identifies_or_identified.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/identifies_or_identified.yaml index ad2424c455..b5e2421995 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/identifies_or_identified.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/identifies_or_identified.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Custodian slots: identifies_or_identified: name: identifies_or_identified title: identifies_or_identified description: Identifies an entity. slot_uri: schema:identifier - range: Custodian + range: string # uriorcurie + # range: Custodian annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/identifies_or_identified_as.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/identifies_or_identified_as.yaml index 4f58741a44..b98bb481fa 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/identifies_or_identified_as.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/identifies_or_identified_as.yaml @@ -20,7 +20,7 @@ slots: name: identifies_or_identified_as description: Indicates how an entity identifies or was identified (e.g., gender, social group). MIGRATED from gender_identity per Rule 53. Follows RiC-O naming convention. slot_uri: schema:gender - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/implements_or_implemented.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/implements_or_implemented.yaml index 2d4a44f97e..427501391a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/implements_or_implemented.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/implements_or_implemented.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Agenda slots: implements_or_implemented: name: implements_or_implemented title: implements_or_implemented description: Implements a plan or agenda. slot_uri: prov:used - range: Agenda + range: string # uriorcurie + # range: Agenda multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/imposes_or_imposed.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/imposes_or_imposed.yaml index 7af7e4fb0c..42c43123f3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/imposes_or_imposed.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/imposes_or_imposed.yaml @@ -22,7 +22,7 @@ slots: MIGRATED from `eligible_country` (via ApplicantRequirement) and `embargo_*` slots.' slot_uri: odrl:constraint - # range: Any + range: string # uriorcurie multivalued: true exact_mappings: - odrl:constraint diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/includes_or_included.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/includes_or_included.yaml index cbb174f72d..d7f3fd9346 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/includes_or_included.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/includes_or_included.yaml @@ -20,7 +20,7 @@ default_prefix: hc slots: includes_or_included: description: "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship" - range: uriorcurie + range: string # uriorcurie multivalued: true slot_uri: rico:includes exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/indicates_or_indicated.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/indicates_or_indicated.yaml index 11b9545dd0..6fefc254bd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/indicates_or_indicated.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/indicates_or_indicated.yaml @@ -22,7 +22,7 @@ slots: range: string required: false multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type exact_mappings: - prov:generated related_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/industry_benchmark_high.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/industry_benchmark_high.yaml index 9d72ef258c..540ef75cd3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/industry_benchmark_high.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/industry_benchmark_high.yaml @@ -14,7 +14,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: industry_benchmark_high: slot_uri: hc:industryBenchmarkHigh diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/industry_benchmark_low.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/industry_benchmark_low.yaml index ec0b99e93e..dee2d0dd01 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/industry_benchmark_low.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/industry_benchmark_low.yaml @@ -14,7 +14,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: industry_benchmark_low: slot_uri: hc:industryBenchmarkLow diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/initial_of_the_initial.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/initial_of_the_initial.yaml index 3c578836dd..ac1ccc62f9 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/initial_of_the_initial.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/initial_of_the_initial.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ConditionState default_prefix: hc slots: initial_of_the_initial: description: "The state or condition at the beginning of a process or activity.\n\nCIDOC-CRM pattern for capturing the initial state before an event:\n- Conservation treatment \u2192 initial condition state\n- Restoration \u2192 initial preservation state\n- Processing \u2192 initial state\n\n**SEMANTIC MEANING**:\nRefers to the state observed at the initial moment of a process,\nanalogous to CIDOC-CRM's E3 Condition State with P5 consists of.\n\n**TEMPORAL SEMANTICS**:\n- The state BEFORE something has occurred\n- Paired with `final_of_the_final` for before/after comparisons\n\n**Migration (2026-01-22)**:\n- `condition_before` \u2192 `initial_of_the_initial` + `ConditionState`\n- Per slot_fixes.yaml (Rule 53)\n" - range: ConditionState + range: string # uriorcurie + # range: ConditionState slot_uri: crm:P44_has_condition exact_mappings: - crm:P44_has_condition diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/installed_at_place.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/installed_at_place.yaml index 053c7f2572..5d14bb0371 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/installed_at_place.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/installed_at_place.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CustodianPlace default_prefix: hc slots: installed_at_place: @@ -27,7 +26,8 @@ slots: Schema.org: location for physical location. ' - range: CustodianPlace + range: string # uriorcurie + # range: CustodianPlace slot_uri: hc:installedAtPlace annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/instance_of.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/instance_of.yaml index a6532e6454..8733764083 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/instance_of.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/instance_of.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/IntangibleHeritageForm default_prefix: hc slots: instance_of: @@ -24,7 +23,8 @@ slots: Links this specific event to its abstract heritage tradition. ' - range: IntangibleHeritageForm + range: string # uriorcurie + # range: IntangibleHeritageForm slot_uri: crm:P2_has_type annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/intangible_heritage_subtype.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/intangible_heritage_subtype.yaml index b266592244..9c9c1c1ebb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/intangible_heritage_subtype.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/intangible_heritage_subtype.yaml @@ -24,7 +24,8 @@ slots: Each value links to a Wikidata entity describing a specific type. ' - range: IntangibleHeritageTypeEnum + range: string # uriorcurie + # range: IntangibleHeritageTypeEnum required: false multivalued: true comments: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/integrates_or_integrated.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/integrates_or_integrated.yaml index 473152d2c1..ffd04233d2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/integrates_or_integrated.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/integrates_or_integrated.yaml @@ -20,7 +20,7 @@ slots: name: integrates_or_integrated description: Indicates that an entity integrates or integrated another entity (e.g., a function, system). MIGRATED from functional_integration per Rule 53. Follows RiC-O naming convention. slot_uri: rico:hasOrHadComponent - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/involves_or_involved.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/involves_or_involved.yaml index ff8670bcdc..af8566b8cb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/involves_or_involved.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/involves_or_involved.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Actor slots: involves_or_involved: name: involves_or_involved title: involves_or_involved description: Actor involved in the event. slot_uri: prov:wasAssociatedWith - range: Actor + range: string # uriorcurie + # range: Actor multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_auxiliary_of_place.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_auxiliary_of_place.yaml index c2616ac4eb..64862f4ea8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_auxiliary_of_place.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_auxiliary_of_place.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CustodianPlace default_prefix: hc slots: is_auxiliary_of_place: description: "Link back to the CustodianPlace that this is an auxiliary of.\n\nSKOS: broader links subordinate to main concept.\n\nLike CustodianAppellation.variant_of_name \u2192 CustodianName,\nthis links AuxiliaryPlace \u2192 CustodianPlace (main place).\n" - range: CustodianPlace + range: string # uriorcurie + # range: CustodianPlace slot_uri: hc:isAuxiliaryOfPlace annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_auxiliary_of_platform.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_auxiliary_of_platform.yaml index 3cf7ababbb..335987adaa 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_auxiliary_of_platform.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_auxiliary_of_platform.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/DigitalPlatform default_prefix: hc slots: is_auxiliary_of_platform: description: "Link back to the DigitalPlatform that this is an auxiliary of.\n\nDublin Core: isPartOf links part to whole.\n\nLike CustodianAppellation.variant_of_name \u2192 CustodianName,\nthis links AuxiliaryDigitalPlatform \u2192 DigitalPlatform (main platform).\n" - range: DigitalPlatform + range: string # uriorcurie + # range: DigitalPlatform slot_uri: hc:isAuxiliaryOfPlatform annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_branch_of.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_branch_of.yaml index 0b87d83555..2b32c8c83b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_branch_of.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_branch_of.yaml @@ -18,7 +18,7 @@ default_prefix: hc slots: is_branch_of: description: "Parent Custodian or OrganizationBranch that this branch belongs to.\n\nW3C ORG: org:unitOf - \"Indicates an Organization of which this Unit is a part\"\n\nCan link to:\n- Custodian (direct branch of main institution)\n- OrganizationBranch (sub-branch of another branch)\n\nEnables hierarchical branch structures:\n- National Archives \u2192 Regional Branch \u2192 Local Office\n" - range: uriorcurie + range: string # uriorcurie slot_uri: hc:isBranchOf annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_deceased.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_deceased.yaml index 9b08f7c66c..eee36f812d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_deceased.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_deceased.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/DeceasedStatus slots: is_deceased: slot_uri: hc:isDeceased description: "Links to structured information about a person's death status.\n\n**Purpose**:\nProvides a structured representation of death circumstances, replacing\nthe simple `circumstances_of_death` string with a `DeceasedStatus` class\nthat captures:\n- Cause of death (via CauseOfDeath class)\n- Temporal extent (date of death via TimeSpan)\n- Narrative description of circumstances\n\n**Temporal Semantics**:\nUses \"is\" prefix (not \"has_or_had\") because death status is a permanent\nstate - once deceased, always deceased.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isDeceased` - Heritage Custodian property\n- **Related**: `schema:deathDate` - Schema.org death date\n- **Related**: `prov:wasEndedBy` - PROV-O activity termination\n\n**Usage in StaffRole**:\nDocuments the death status of heritage workers, particularly important for:\n- Heritage workers killed during conflicts (Gaza, Ukraine, etc.)\n- Historical figures in the heritage sector\n- Biographical documentation\ \ and commemoration\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n cause_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City on November 19, 2023.\n He was a journalist and information professional at Press House - Palestine.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - range: DeceasedStatus - inlined: true + range: string # uriorcurie + # range: DeceasedStatus + inlined: false # Fixed invalid inline for primitive type required: false exact_mappings: - schema:deathDate diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_legal_status_of.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_legal_status_of.yaml index 8f5862b9de..98af61f20f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_legal_status_of.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_legal_status_of.yaml @@ -15,12 +15,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Custodian slots: is_legal_status_of: slot_uri: hc:isLegalStatusOf description: The custodian that this legal status represents. - range: Custodian + range: string # uriorcurie + # range: Custodian comments: - Inverse of legal_status - Links legal entity back to custodian hub diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_access_restricted.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_access_restricted.yaml index dfff3228bf..10c7333c34 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_access_restricted.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_access_restricted.yaml @@ -8,7 +8,7 @@ prefixes: linkml: https://w3id.org/linkml/ premis: http://www.loc.gov/premis/rdf/v3/ hc: https://nde.nl/ontology/hc/ -default_range: string +# default_range: string slots: is_or_was_access_restricted: slot_uri: premis:hasRightsGranted diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_accessioned_through.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_accessioned_through.yaml index b604f9ec22..ee37da0af3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_accessioned_through.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_accessioned_through.yaml @@ -20,7 +20,7 @@ slots: name: is_or_was_accessioned_through description: Indicates that a record or object was accessioned through a specific event. MIGRATED from has_accession_date per Rule 53. Follows RiC-O naming convention. slot_uri: rico:hasOrHadInstantiation - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_acquired_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_acquired_by.yaml index ac71eccc54..52f279d7f7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_acquired_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_acquired_by.yaml @@ -53,10 +53,10 @@ slots: **Migrated From**: collector (2026-01-22) ' - range: uriorcurie + range: string # uriorcurie multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type exact_mappings: - prov:wasAttributedTo close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_acquired_through.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_acquired_through.yaml index 8684e0d8d0..b5545cb48d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_acquired_through.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_acquired_through.yaml @@ -4,11 +4,11 @@ title: Is or Was Acquired Through description: Indicates that an entity was acquired through a specific acquisition event. imports: - linkml:types -- ../classes/AcquisitionMethod slots: is_or_was_acquired_through: slot_uri: rico:hasOrHadInstantiation - range: AcquisitionMethod + range: string # uriorcurie + # range: AcquisitionMethod multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_affiliated_with.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_affiliated_with.yaml index 9064a5cdb1..83a21ea05e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_affiliated_with.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_affiliated_with.yaml @@ -32,7 +32,7 @@ slots: - Departmental relationships ' - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - org:memberOf diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_aggregated_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_aggregated_by.yaml index 20eb4cd46b..812d10f7a7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_aggregated_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_aggregated_by.yaml @@ -30,14 +30,13 @@ slots: ' range: string multivalued: true - slot_uri: dcterms:isPartOf + slot_uri: ore:isAggregatedBy exact_mappings: - - dcterms:isPartOf + - ore:isAggregatedBy close_mappings: + - dcterms:isPartOf - edm:isShownAt - schema:includedInDataCatalog - related_mappings: - - ore:isAggregatedBy annotations: custodian_types: '["*"]' custodian_types_rationale: Applicable to all heritage custodian types. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_allocated_through.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_allocated_through.yaml index bc6197df8a..a86da8e852 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_allocated_through.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_allocated_through.yaml @@ -36,7 +36,7 @@ slots: - `AllocationEvent` class. ' - range: uriorcurie + range: string # uriorcurie multivalued: false required: false annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_allocated_to.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_allocated_to.yaml index 422beccc5a..1c7afadddc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_allocated_to.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_allocated_to.yaml @@ -32,7 +32,7 @@ slots: - Resource distribution ' - range: uriorcurie + range: string # uriorcurie multivalued: true close_mappings: - schema:recipient diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_alternative_form_of.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_alternative_form_of.yaml index 1101a492a6..2c80692c8a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_alternative_form_of.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_alternative_form_of.yaml @@ -32,7 +32,7 @@ slots: - Abbreviations ' - range: uriorcurie + range: string # uriorcurie close_mappings: - skos:altLabel examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_amended_through.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_amended_through.yaml index e22933a2dd..8a11115690 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_amended_through.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_amended_through.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/AmendmentEvent slots: is_or_was_amended_through: name: is_or_was_amended_through description: The event through which the entity was amended. slot_uri: prov:wasInfluencedBy - range: AmendmentEvent + range: string # uriorcurie + # range: AmendmentEvent multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_appended_with.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_appended_with.yaml index bc4146405e..37bc86df24 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_appended_with.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_appended_with.yaml @@ -20,7 +20,7 @@ slots: is_or_was_appended_with: slot_uri: rico:hasSuccessor description: "Links to a record set or collection that succeeded or was derived from this one.\n\n**USAGE**:\nUsed for:\n- Linking unprocessed archives (CustodianArchive) to their processed\n successors (CustodianCollection)\n- Tracking record set lineage after archival processing\n- Documenting collection derivation chains\n\n**RICO ALIGNMENT**:\nUses rico:hasSuccessor which indicates that a RecordSet has a successor\nthat was created from or replaced this record set.\n\n**NOTE**: The reverse relationship is rico:isSuccessorOf\n\n**TEMPORAL**:\nUse with temporal_extent to indicate when the succession occurred.\n" - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - rico:hasSuccessor diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_applicable_in.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_applicable_in.yaml index 6800059495..61108f0613 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_applicable_in.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_applicable_in.yaml @@ -3,12 +3,12 @@ name: is_or_was_applicable_in title: is_or_was_applicable_in imports: - linkml:types -- ../classes/Country slots: is_or_was_applicable_in: description: The location or context where something is applicable. slot_uri: schema:spatialCoverage - range: Country + range: string # uriorcurie + # range: Country multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_appreciated.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_appreciated.yaml index 68735a334a..c02ef4001d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_appreciated.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_appreciated.yaml @@ -14,11 +14,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/AppreciationEvent default_prefix: hc slots: is_or_was_appreciated: - slot_uri: as:Like + slot_uri: hc:is_or_was_appreciated description: 'Appreciation or engagement event associated with content. @@ -58,11 +57,12 @@ slots: Replaces simple integer counts with structured appreciation events. ' - range: AppreciationEvent + range: string # uriorcurie + # range: AppreciationEvent multivalued: true - inlined: true - inlined_as_list: true - exact_mappings: + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type + related_mappings: - as:Like close_mappings: - schema:interactionStatistic diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_approved_on.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_approved_on.yaml index be7842485d..ee0db470eb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_approved_on.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_approved_on.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/TimeSpan slots: is_or_was_approved_on: name: is_or_was_approved_on description: The approval date. slot_uri: schema:datePublished - range: TimeSpan + range: string # uriorcurie + # range: TimeSpan multivalued: false annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_approximate.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_approximate.yaml index 43ac4f7308..14593ec286 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_approximate.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_approximate.yaml @@ -15,7 +15,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ApproximationStatus default_prefix: hc slots: is_or_was_approximate: @@ -31,8 +30,9 @@ slots: **MIGRATED from approximate (Rule 53)**: Changed from string to ApproximationStatus class for structured uncertainty modeling.' slot_uri: hc:isOrWasApproximate - range: ApproximationStatus - inlined: true + range: string # uriorcurie + # range: ApproximationStatus + inlined: false # Fixed invalid inline for primitive type close_mappings: - crm:P79_beginning_is_qualified_by - crm:P80_end_is_qualified_by diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_archived_as.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_archived_as.yaml index 26b7f3ceab..91b8017c88 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_archived_as.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_archived_as.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Memento slots: is_or_was_archived_as: name: is_or_was_archived_as description: The archived version (memento) of the resource. slot_uri: schema:archivedAt - range: Memento + range: string # uriorcurie + # range: Memento multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_asserted_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_asserted_by.yaml index 3bd6aa0f0f..9900fb8585 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_asserted_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_asserted_by.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Asserter default_prefix: hc slots: is_or_was_asserted_by: @@ -23,7 +22,8 @@ slots: PROV-O: wasAttributedTo - "links an entity to an agent that it may have been attributed to." Can be a human analyst, automated system, or AI agent.' - range: Asserter + range: string # uriorcurie + # range: Asserter slot_uri: prov:wasAttributedTo exact_mappings: - prov:wasAttributedTo diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_asserted_on.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_asserted_on.yaml index 6fc7463158..11fcf1587d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_asserted_on.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_asserted_on.yaml @@ -8,7 +8,7 @@ prefixes: linkml: https://w3id.org/linkml/ prov: http://www.w3.org/ns/prov# hc: https://nde.nl/ontology/hc/ -default_range: string +# default_range: string slots: is_or_was_asserted_on: slot_uri: prov:generatedAtTime diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_assessed_on.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_assessed_on.yaml index 005c218fe0..ab2ec1e661 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_assessed_on.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_assessed_on.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/TimeSpan slots: is_or_was_assessed_on: name: is_or_was_assessed_on title: is_or_was_assessed_on description: The date or timestamp when the assessment took place. slot_uri: prov:atTime - range: TimeSpan + range: string # uriorcurie + # range: TimeSpan annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml index c48b21d4b6..7a7cba5780 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml @@ -21,9 +21,9 @@ slots: slot_uri: prov:wasDerivedFrom description: "Entity or resource this item is or was based on (temporal relationship).\n\n**Semantic Pattern**: RiC-O temporal naming convention (Rule 39)\n- \"is_or_was\" indicates the relationship may be current or historical\n- Supports temporal modeling where dependencies change over time\n\n**PROV-O Alignment**:\nprov:wasDerivedFrom - \"A derivation is a transformation of an entity into another\"\n\n**Use Cases**:\n1. **CMS Detection**: Platform is_or_was_based_on a detected CMS\n2. **Software Dependencies**: Application based on framework/library\n3. **Content Derivation**: Document based on template/source\n4. **Infrastructure**: Service based on platform/technology\n\n**Temporal Semantics**:\n- Current: \"This platform IS based on WordPress 6.4\"\n- Historical: \"This platform WAS based on Drupal 7 (now migrated)\"\n- Use temporal_extent for precise validity periods\n\n**Examples**:\n```yaml\nAuxiliaryDigitalPlatform:\n platform_name: Museum Blog\n is_or_was_based_on:\n \ \ cms_name: WordPress\n cms_version: \"6.4\"\n detected_at: \"2026-01-19T12:00:00Z\"\n```\n\n**Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53).\nReplaces boolean cms_detected with structured CMS reference.\n" - range: uriorcurie + range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type exact_mappings: - prov:wasDerivedFrom close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_born_on.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_born_on.yaml index a32622eb29..d63e5d5397 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_born_on.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_born_on.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/TimeSpan slots: is_or_was_born_on: name: is_or_was_born_on title: is_or_was_born_on description: Birth date/time. slot_uri: schema:birthDate - range: TimeSpan + range: string # uriorcurie + # range: TimeSpan annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_branch_of.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_branch_of.yaml index c47fd68f52..ecf722797e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_branch_of.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_branch_of.yaml @@ -7,12 +7,14 @@ prefixes: org: http://www.w3.org/ns/org# rico: https://www.ica.org/standards/RiC/ontology# -default_range: string +# default_range: string +imports: + - linkml:types slots: is_or_was_branch_of: slot_uri: org:siteOf description: | Indicates that this place/site is a branch or auxiliary location of a main organization or place. - range: uriorcurie + range: string # uriorcurie multivalued: false diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_cancelled_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_cancelled_by.yaml index a40bcb2547..f92ab2fc1f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_cancelled_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_cancelled_by.yaml @@ -17,15 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Cancellation default_prefix: hc slots: is_or_was_cancelled_by: slot_uri: prov:wasInvalidatedBy description: The cancellation event or details that invalidated/cancelled this entity. - range: Cancellation + range: string # uriorcurie + # range: Cancellation multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_cataloged_in.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_cataloged_in.yaml index e98b3c8ded..b6d59074de 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_cataloged_in.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_cataloged_in.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/FindingAid slots: is_or_was_cataloged_in: name: is_or_was_cataloged_in title: is_or_was_cataloged_in description: The catalog or finding aid where the item is described. slot_uri: schema:includedInDataCatalog - range: FindingAid + range: string # uriorcurie + # range: FindingAid annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_categorized_as.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_categorized_as.yaml index 67c2e6daa1..1ba48dcc00 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_categorized_as.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_categorized_as.yaml @@ -44,7 +44,7 @@ slots: **Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances. ' - range: uriorcurie + range: string # uriorcurie implements: - owl:ObjectProperty multivalued: true diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_caused_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_caused_by.yaml index fdac4fa27d..4ae6c8dd1f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_caused_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_caused_by.yaml @@ -20,7 +20,7 @@ slots: slot_uri: prov:wasInfluencedBy description: "Links an event or status to its cause.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this relationship\nmay be historical - the cause was identified at some point in time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:wasInfluencedBy` - PROV-O influence relationship\n- **Exact**: `crm:P17_was_motivated_by` - CIDOC-CRM motivation relationship\n- **Related**: `schema:causeOf` - Schema.org cause relationship (inverse)\n\n**Usage**:\nGeneric causation slot for linking:\n- DeceasedStatus \u2192 CauseOfDeath (death circumstances)\n- OrganizationalChangeEvent \u2192 Cause (why institution changed)\n- Any event to its motivating factors\n\n**Range**: `uriorcurie` (Rule 55)\nBroadened range allows classes to narrow via slot_usage to specific\ncause classes (CauseOfDeath, ChangeReason, etc.)\n\n**Example - Death Causation**:\n```yaml\nis_or_was_caused_by:\n cause_type: CONFLICT\n has_or_had_description:\ \ \"Killed in airstrike during conflict\"\n```\n" - range: uriorcurie + range: string # uriorcurie required: false exact_mappings: - crm:P17_was_motivated_by diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_ceased_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_ceased_by.yaml index 2711f983fc..affbebce3f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_ceased_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_ceased_by.yaml @@ -20,7 +20,7 @@ slots: name: is_or_was_ceased_by description: Indicates that an activity or process was ceased/terminated by a specific event or condition. MIGRATED from finish_reason per Rule 53. Follows RiC-O naming convention. slot_uri: prov:wasInvalidatedBy - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_checked_through.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_checked_through.yaml index 92b124e123..724df4f3c1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_checked_through.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_checked_through.yaml @@ -20,7 +20,7 @@ slots: name: is_or_was_checked_through description: Indicates that a resource was checked or verified through a specific process or event. MIGRATED from fixity_check_date per Rule 53. Follows RiC-O naming convention. slot_uri: premis:fixity - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_collection_of.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_collection_of.yaml index db7fff4c37..fbdf5d7bbb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_collection_of.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_collection_of.yaml @@ -16,12 +16,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Custodian slots: is_or_was_collection_of: slot_uri: rico:isOrWasPartOf description: "The custodian that holds or held this collection.\n\n**RiC-O Temporal Pattern**: Uses `isOrWas*` pattern because collections\ncan be transferred between custodians over time. This property captures\nboth current and historical custody relationships.\n\n**Metonymic Reference**:\nThis property captures the common metonymic usage where people refer to \na custodian by its collection:\n- \"The Rijksmuseum has a Rembrandt\" (hasOrHadCollection)\n- \"This painting belongs to the Rijksmuseum\" (isOrWasCollectionOf)\n\n**Custody Transfer Example**:\nA collection transferred from Library A to Archive B would have:\n- Historical: isOrWasCollectionOf \u2192 Library A (with end date)\n- Current: isOrWasCollectionOf \u2192 Archive B (with start date)\n" - range: Custodian + range: string # uriorcurie + # range: Custodian required: false exact_mappings: - rico:isOrWasPartOf diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_compatible_with.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_compatible_with.yaml index 47697420c7..3264b79a01 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_compatible_with.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_compatible_with.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/IIIF slots: is_or_was_compatible_with: name: is_or_was_compatible_with title: is_or_was_compatible_with description: Compatible with a standard or system. slot_uri: schema:isSimilarTo - range: IIIF + range: string # uriorcurie + # range: IIIF annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_conducted_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_conducted_by.yaml index 53c2176aa5..44aa61ff6e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_conducted_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_conducted_by.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Agent slots: is_or_was_conducted_by: name: is_or_was_conducted_by title: is_or_was_conducted_by description: The agent or organization that conducted the event (e.g., auction, assessment). slot_uri: prov:wasAssociatedWith - range: Agent + range: string # uriorcurie + # range: Agent annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_created_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_created_by.yaml index 3118f7ddf2..d3461dcf22 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_created_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_created_by.yaml @@ -47,7 +47,7 @@ slots: **Replaces**: device_manufacturer slot per slot_fixes.yaml migration (2026-01-25) ' - range: uriorcurie + range: string # uriorcurie required: false multivalued: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_created_through.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_created_through.yaml index 8909a42ba1..f04eb065cb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_created_through.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_created_through.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/AnnexCreationEvent slots: is_or_was_created_through: name: is_or_was_created_through title: is_or_was_created_through description: Event through which an entity was created. slot_uri: prov:wasGeneratedBy - range: AnnexCreationEvent + range: string # uriorcurie + # range: AnnexCreationEvent annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_curated_through.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_curated_through.yaml index 527eb0478f..71c78ae572 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_curated_through.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_curated_through.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/CurationActivity slots: is_or_was_curated_through: name: is_or_was_curated_through title: is_or_was_curated_through description: The curation activity associated with this entity. slot_uri: prov:wasGeneratedBy - range: CurationActivity + range: string # uriorcurie + # range: CurationActivity annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_decommissioned_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_decommissioned_at.yaml index 43a5233337..c3fdff7449 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_decommissioned_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_decommissioned_at.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Timestamp slots: is_or_was_decommissioned_at: description: 'Timestamp when an entity was or will be decommissioned. @@ -53,7 +52,8 @@ slots: **Replaces**: decommission_date (per slot_fixes.yaml) ' - range: Timestamp + range: string # uriorcurie + # range: Timestamp slot_uri: prov:invalidatedAtTime exact_mappings: - prov:invalidatedAtTime diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_deployed_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_deployed_at.yaml index 8e49188fe1..e44e2f623f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_deployed_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_deployed_at.yaml @@ -19,7 +19,7 @@ slots: is_or_was_deployed_at: slot_uri: prov:wasGeneratedBy description: "Links a system (CMS, software) to its deployment event(s).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this relationship\nmay be historical - a system may have been deployed multiple times at\ndifferent institutions or locations.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:wasGeneratedBy` - PROV-O relationship\n linking entity to the activity that generated/deployed it\n- **Close**: `schema:datePublished` - Schema.org deployment date\n\n**MIGRATED FROM**: `deployment_date` slot\n\nThe revision pattern replaces a simple date with structured DeploymentEvent:\n- DeploymentEvent.temporal_extent \u2192 TimeSpan with fuzzy boundaries\n- Enables tracking multiple deployments over time\n- Captures deployment context (who, where, why)\n" - range: uriorcurie + range: string # uriorcurie multivalued: true required: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_deposited_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_deposited_by.yaml index c482605454..7f7de0ff97 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_deposited_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_deposited_by.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/DepositingOrganization slots: is_or_was_deposited_by: name: is_or_was_deposited_by title: is_or_was_deposited_by description: The organization that deposited the material. slot_uri: prov:wasAttributedTo - range: DepositingOrganization + range: string # uriorcurie + # range: DepositingOrganization annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_derived_from.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_derived_from.yaml index 7ca8e4b39b..382b9de431 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_derived_from.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_derived_from.yaml @@ -45,7 +45,7 @@ slots: to class types (e.g., CustodianObservation). ' - range: uriorcurie + range: string # uriorcurie implements: - owl:ObjectProperty exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_designed_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_designed_by.yaml index 63613f5769..1e70606990 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_designed_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_designed_by.yaml @@ -36,7 +36,7 @@ slots: - `Architect` (or `Agent`, `Person`, `Organization`). ' - range: uriorcurie + range: string # uriorcurie multivalued: true required: false annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_diarized.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_diarized.yaml index adc3db9d40..6095ce3ea4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_diarized.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_diarized.yaml @@ -41,7 +41,7 @@ slots: **Replaces**: diarization_enabled slot per slot_fixes.yaml migration (2026-01-25) ' - range: uriorcurie + range: string # uriorcurie required: false multivalued: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_dismissed.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_dismissed.yaml index 1fc0da0ccc..2016291c52 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_dismissed.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_dismissed.yaml @@ -14,14 +14,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/DismissalEvent default_prefix: hc slots: is_or_was_dismissed: description: Indicates that the entity was dismissed, rejected, or negatively received. MIGRATED from dislike_count (2026-01-26). - range: DismissalEvent + range: string # uriorcurie + # range: DismissalEvent multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: rico_naming_convention: 'Follows RiC-O "isOrWas" pattern for temporal predicates. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_displayed_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_displayed_at.yaml index a218e851de..0e46e43619 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_displayed_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_displayed_at.yaml @@ -14,14 +14,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/DisplayLocation default_prefix: hc slots: is_or_was_displayed_at: description: Location where an object is or was displayed (e.g. during a loan). MIGRATED from display_location (2026-01-26). - range: DisplayLocation + range: string # uriorcurie + # range: DisplayLocation multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: rico_naming_convention: 'Follows RiC-O "isOrWas" pattern for temporal predicates. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_dissolved_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_dissolved_by.yaml index 25fcd82a86..be40b7416e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_dissolved_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_dissolved_by.yaml @@ -14,14 +14,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/DissolutionEvent default_prefix: hc slots: is_or_was_dissolved_by: description: Dissolution event for an organization or legal status. MIGRATED from dissolution_date and dissolved_date (2026-01-26). - range: DissolutionEvent + range: string # uriorcurie + # range: DissolutionEvent multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type slot_uri: org:changedBy close_mappings: - prov:invalidatedAtTime diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_documented_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_documented_by.yaml index 57b665be6b..11b4a668d3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_documented_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_documented_by.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ReconstructedEntity default_prefix: hc slots: is_or_was_documented_by: @@ -22,7 +21,8 @@ slots: Indicates that the entity is or was documented by another resource (e.g., a FinancialStatement documenting a Budget). title: is or was documented by slot_uri: schema:subjectOf - range: ReconstructedEntity + range: string # uriorcurie + # range: ReconstructedEntity multivalued: true exact_mappings: - crm:P70i_is_documented_in diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_documented_in.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_documented_in.yaml index 56e7cf3683..dde2477809 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_documented_in.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_documented_in.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/ConservationRecord slots: is_or_was_documented_in: name: is_or_was_documented_in title: is_or_was_documented_in description: The record or document that documents this entity. slot_uri: schema:documentation - range: ConservationRecord + range: string # uriorcurie + # range: ConservationRecord annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_edited_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_edited_by.yaml index 316e86824e..d3ec78f607 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_edited_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_edited_by.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Editor slots: is_or_was_edited_by: name: is_or_was_edited_by @@ -23,7 +22,8 @@ slots: MIGRATED from `editor` slot.' slot_uri: schema:editor - range: Editor + range: string # uriorcurie + # range: Editor multivalued: true exact_mappings: - schema:editor diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_effective_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_effective_at.yaml index b6b3a31e1b..0c3beb0232 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_effective_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_effective_at.yaml @@ -22,7 +22,7 @@ slots: MIGRATED from `effective_date`, `status_effective_date`, `policy_effective_date` per Rule 53. Follows RiC-O temporal naming convention.' slot_uri: schema:datePublished - # range: Any + range: string # uriorcurie multivalued: false exact_mappings: - schema:datePublished diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_employed_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_employed_by.yaml index ba6ea90c15..46e364c64a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_employed_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_employed_by.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Employer slots: is_or_was_employed_by: name: is_or_was_employed_by @@ -23,7 +22,8 @@ slots: MIGRATED from `employer_name`, `employer_linkedin_url` (via Employer class).' slot_uri: schema:worksFor - range: Employer + range: string # uriorcurie + # range: Employer multivalued: false exact_mappings: - schema:worksFor diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_encompassed_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_encompassed_by.yaml index 39579928a3..8e4134ca38 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_encompassed_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_encompassed_by.yaml @@ -17,11 +17,11 @@ default_prefix: hc imports: - linkml:types - ../metadata -- ../classes/EncompassingBody slots: is_or_was_encompassed_by: slot_uri: org:subOrganizationOf - range: EncompassingBody + range: string # uriorcurie + # range: EncompassingBody multivalued: true description: 'Extra-organizational governance bodies that encompass, oversee, or coordinate diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_equivalent_to.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_equivalent_to.yaml index d34e3dbf60..5fcc6e530f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_equivalent_to.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_equivalent_to.yaml @@ -69,12 +69,12 @@ slots: Multivalued - an entity may have equivalences in multiple systems. ' - range: uriorcurie + range: string # uriorcurie implements: - owl:ObjectProperty required: false multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type exact_mappings: - skos:exactMatch related_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_established_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_established_by.yaml index 7f3ed4c352..9caf3ad070 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_established_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_established_by.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/EstablishmentEvent slots: is_or_was_established_by: name: is_or_was_established_by @@ -23,7 +22,8 @@ slots: MIGRATED from `established_date` (via EstablishmentEvent).' slot_uri: org:resultedFrom - range: EstablishmentEvent + range: string # uriorcurie + # range: EstablishmentEvent multivalued: false exact_mappings: - org:resultedFrom diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_exhibited_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_exhibited_at.yaml index ca6a81e519..0d3d55d303 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_exhibited_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_exhibited_at.yaml @@ -17,15 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ExhibitionLocation default_prefix: hc slots: is_or_was_exhibited_at: slot_uri: crm:P161i_is_spatial_projection_of description: The exhibition or location where the object was displayed. - range: ExhibitionLocation + range: string # uriorcurie + # range: ExhibitionLocation multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_expired_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_expired_at.yaml index 6cecacfe3f..d9983c327c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_expired_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_expired_at.yaml @@ -21,7 +21,7 @@ slots: MIGRATED from `policy_effective_to` per Rule 53. Follows RiC-O temporal naming convention.' slot_uri: schema:expires - # range: Any + range: string # uriorcurie multivalued: false exact_mappings: - schema:expires diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_exposed_via.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_exposed_via.yaml index 272026c683..f20bc3e058 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_exposed_via.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_exposed_via.yaml @@ -3,12 +3,12 @@ name: is_or_was_exposed_via title: is_or_was_exposed_via imports: - linkml:types -- ../classes/Portal slots: is_or_was_exposed_via: description: The platform or portal where the entity is exposed/published. slot_uri: schema:distribution - range: Portal + range: string # uriorcurie + # range: Portal multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_extended.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_extended.yaml index 649a148635..cb8a2c92da 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_extended.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_extended.yaml @@ -17,13 +17,13 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Extension default_prefix: hc slots: is_or_was_extended: description: Details of extensions applied to this entity. - range: Extension + range: string # uriorcurie + # range: Extension multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_extracted_using.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_extracted_using.yaml index b931a7b8dd..cbfd33dc1b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_extracted_using.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_extracted_using.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ExtractionMethod default_prefix: hc slots: is_or_was_extracted_using: - range: ExtractionMethod - inlined: true + range: string # uriorcurie + # range: ExtractionMethod + inlined: false # Fixed invalid inline for primitive type slot_uri: prov:wasGeneratedBy description: 'The extraction method used to obtain this data. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_founded_through.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_founded_through.yaml index 81224ac8a7..8b289a5cf0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_founded_through.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_founded_through.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/FoundingEvent slots: is_or_was_founded_through: slot_uri: hc:isOrWasFoundedThrough @@ -62,9 +61,10 @@ slots: with structured FoundingEvent for richer temporal and contextual data. ' - range: FoundingEvent + range: string # uriorcurie + # range: FoundingEvent multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type close_mappings: - schema:foundingDate - prov:wasGeneratedBy diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_generated_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_generated_by.yaml index 00d0b04575..492eaa072b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_generated_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_generated_by.yaml @@ -48,7 +48,7 @@ slots: to class types (e.g., ReconstructionActivity). ' - range: uriorcurie + range: string # uriorcurie multivalued: true implements: - owl:ObjectProperty diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_governed_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_governed_by.yaml index 2fb51c57a7..dc438d11bd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_governed_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_governed_by.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/GoverningBody slots: is_or_was_governed_by: name: is_or_was_governed_by description: The organisation or body that governs or governed this entity or agenda. slot_uri: org:linkedTo - range: GoverningBody + range: string # uriorcurie + # range: GoverningBody multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_identified_through.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_identified_through.yaml index ddd2286fe5..dc8d4aa566 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_identified_through.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_identified_through.yaml @@ -16,7 +16,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/IdentificationEvent slots: is_or_was_identified_through: slot_uri: hc:isOrWasIdentifiedThrough @@ -51,8 +50,9 @@ slots: - **Close**: `prov:wasGeneratedBy` - PROV-O activity ' - range: IdentificationEvent - inlined: true + range: string # uriorcurie + # range: IdentificationEvent + inlined: false # Fixed invalid inline for primitive type close_mappings: - dwc:dateIdentified - prov:wasGeneratedBy diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_implemented_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_implemented_by.yaml index f2827a980e..ff589ef15f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_implemented_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_implemented_by.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Organization slots: is_or_was_implemented_by: name: is_or_was_implemented_by title: is_or_was_implemented_by description: The organization that implemented the project/measure. slot_uri: schema:organizer - range: Organization + range: string # uriorcurie + # range: Organization annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_included_in.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_included_in.yaml index 20001aca30..b2b505e41e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_included_in.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_included_in.yaml @@ -45,7 +45,7 @@ slots: - Covers full temporal lifecycle of inclusion relationship ' - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - rico:isOrWasIncludedIn diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_indexed.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_indexed.yaml index 281f6f6a62..b74d478dcb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_indexed.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_indexed.yaml @@ -40,7 +40,7 @@ slots: MIGRATED from table_of_content slot per slot_fixes.yaml (Rule 53/56, 2026-01-16). ' - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - dcterms:tableOfContents diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_instance_of.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_instance_of.yaml index 0fc2581289..e5a842c42f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_instance_of.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_instance_of.yaml @@ -77,12 +77,12 @@ slots: Multivalued - entities may have multiple classifications. ' - range: uriorcurie + range: string # uriorcurie implements: - owl:ObjectProperty required: false multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type exact_mappings: - rdf:type - wdt:P31 diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_instantiated_as.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_instantiated_as.yaml index f5ad18f6a7..e0cc83faab 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_instantiated_as.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_instantiated_as.yaml @@ -2,6 +2,8 @@ id: https://nde.nl/ontology/hc/slot/is_or_was_instantiated_as name: is_or_was_instantiated_as title: is_or_was_instantiated_as prefixes: + frbroo: http://iflastandards.info/ns/fr/frbr/frbroo/ + bf: http://id.loc.gov/ontologies/bibframe/ linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ @@ -22,7 +24,7 @@ slots: Maps to BIBFRAME `bf:hasInstance` or generic instantiation relationships.' slot_uri: bf:hasInstance - # range: Any + range: string # uriorcurie multivalued: true exact_mappings: - bf:hasInstance diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_instantiated_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_instantiated_by.yaml index 562e0ada01..dbe9f1dd0b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_instantiated_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_instantiated_by.yaml @@ -46,7 +46,7 @@ slots: **Replaces**: device_type slot per slot_fixes.yaml migration (2026-01-25) ' - range: uriorcurie + range: string # uriorcurie required: false multivalued: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_involved_in.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_involved_in.yaml index 68bbf274a2..f7f7a7e3ce 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_involved_in.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_involved_in.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Conflict slots: is_or_was_involved_in: slot_uri: crm:P11i_participated_in @@ -51,11 +50,12 @@ slots: Created as part of conflict_status migration per slot_fixes.yaml (Rule 53). ' - range: Conflict + range: string # uriorcurie + # range: Conflict required: false multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type exact_mappings: - crm:P11i_participated_in close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_last_updated_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_last_updated_at.yaml index 08668b5da3..d74aa630e1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_last_updated_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_last_updated_at.yaml @@ -14,11 +14,11 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/TimeSpan slots: is_or_was_last_updated_at: slot_uri: schema:dateModified - range: TimeSpan + range: string # uriorcurie + # range: TimeSpan multivalued: false exact_mappings: - dcterms:modified diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_located_in.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_located_in.yaml index 819c642c26..79d643c6ce 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_located_in.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_located_in.yaml @@ -17,7 +17,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/City default_prefix: hc slots: is_or_was_located_in: @@ -67,9 +66,9 @@ slots: - Any entity requiring city-level location ' - # range: Any + range: string # uriorcurie slot_uri: schema:location - inlined: true + inlined: false # Fixed invalid inline for primitive type multivalued: true required: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_located_within.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_located_within.yaml index 72ba69d549..77b9e35d25 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_located_within.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_located_within.yaml @@ -15,7 +15,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Place default_prefix: hc slots: is_or_was_located_within: @@ -26,9 +25,10 @@ slots: **USE CASES**: - Institution within a city/region - Collection within a building/room - Archive within an administrative area **REPLACES**: - `within_place` (primary location containment) - `within_auxiliary_place` (secondary location containment)' - range: Place + range: string # uriorcurie + # range: Place slot_uri: schema:containedInPlace - inlined: true + inlined: false # Fixed invalid inline for primitive type multivalued: true exact_mappings: - schema:containedInPlace diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_managed_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_managed_by.yaml index 8b1643eb09..2cbbc6c814 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_managed_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_managed_by.yaml @@ -32,7 +32,7 @@ slots: - Organizational responsibility ' - range: uriorcurie + range: string # uriorcurie close_mappings: - org:hasMember - schema:member diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_member_of.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_member_of.yaml index 250af261d8..d596ee04a7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_member_of.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_member_of.yaml @@ -17,12 +17,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/EncompassingBody slots: is_or_was_member_of: slot_uri: org:memberOf description: "Encompassing bodies (networks, consortia, umbrella organizations) that \nthis custodian is or was a member of.\n\n**RiC-O Temporal Pattern**: Uses `isOrWas*` pattern to explicitly\nacknowledge that membership relationships can change over time.\nA custodian may have been a member of a network in the past but\nno longer participates.\n\n**Distinction from is_or_was_encompassed_by**:\n- `is_or_was_member_of`: MEMBERSHIP relationship (voluntary, network participation)\n- `is_or_was_encompassed_by`: GOVERNANCE relationship (hierarchical, umbrella oversight)\n\nBoth may apply: A custodian can be:\n1. Under governance of Ministry (is_or_was_encompassed_by)\n2. Member of NDE network (is_or_was_member_of)\n" - range: EncompassingBody + range: string # uriorcurie + # range: EncompassingBody multivalued: true exact_mappings: - org:memberOf diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_observed_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_observed_by.yaml index f6499b337c..f0d116e3e6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_observed_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_observed_by.yaml @@ -14,14 +14,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CustodianObservation default_prefix: hc slots: is_or_was_observed_by: description: >- The observation that documented this event or state. MIGRATED from cessation_observed_in (Rule 53). - range: CustodianObservation + range: string # uriorcurie + # range: CustodianObservation slot_uri: prov:wasGeneratedBy exact_mappings: - prov:wasGeneratedBy diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_opened_on.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_opened_on.yaml index ffda815930..fa328f4aec 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_opened_on.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_opened_on.yaml @@ -3,7 +3,6 @@ name: is_or_was_opened_on title: is_or_was_opened_on imports: - linkml:types -- ../classes/TimeSpan slots: is_or_was_opened_on: description: The opening date. @@ -13,4 +12,5 @@ slots: close_mappings: - schema:startDate - crm:P82a_begin_of_the_begin - range: TimeSpan + range: string # uriorcurie + # range: TimeSpan diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_operated_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_operated_by.yaml index 43589abe52..c7146e3d72 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_operated_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_operated_by.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Agent slots: is_or_was_operated_by: name: is_or_was_operated_by title: is_or_was_operated_by description: The agent operating the platform or facility. slot_uri: schema:provider - range: Agent + range: string # uriorcurie + # range: Agent annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_part_of.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_part_of.yaml index 9ffdca9723..9fd986905c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_part_of.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_part_of.yaml @@ -20,7 +20,7 @@ slots: is_or_was_part_of: slot_uri: rico:isOrWasPartOf description: "Indicates that this entity is or was part of another entity.\n\n**USAGE**:\nRepresents part-whole relationships for:\n- Archives as part of dioceses (DiocesanArchive \u2192 Diocese)\n- Collections as part of institutions\n- Organizational units as part of parent organizations\n- Geographic regions as part of larger regions\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `rico:isOrWasPartOf` - RiC-O part-of relationship\n- **Close**: `schema:isPartOf` - Schema.org containment\n- **Close**: `dcterms:isPartOf` - Dublin Core part-of\n\n**TEMPORAL SEMANTICS**:\nThe \"is_or_was\" pattern (RiC-O convention) indicates that:\n- The relationship may be current (\"is part of\")\n- The relationship may be historical (\"was part of\")\n- Temporal extent can be captured via associated TimeSpan\n\n**INVERSE**: `has_or_had_part`\n" - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - rico:isOrWasPartOf diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_part_of_total.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_part_of_total.yaml index 51e7e16305..35c4cd830f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_part_of_total.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_part_of_total.yaml @@ -13,14 +13,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/SourceCommentCount default_prefix: hc slots: is_or_was_part_of_total: slot_uri: schema:partOfTotalCount description: "Indicates a partial count as part of a total.\n\n**PURPOSE**:\n\nLinks a fetched/partial count to the total count at the source.\nUsed for tracking partial data retrieval (e.g., fetched 100 of 500 comments).\n\n**RiC-O NAMING** (Rule 39):\n\nUses \"is_or_was_\" prefix indicating temporal relationship - \nthe partial count is or was part of a total.\n\n**USE CASES**:\n\n- Comments: 100 fetched out of 500 total\n- Search results: 25 returned out of 1000 matches\n- Paginated data: page 1 of 50 pages\n\n**MIGRATION NOTE**:\n\nCreated from migration of `comments_fetched` slot per slot_fixes.yaml.\nWorks with SourceCommentCount class for structured count metadata.\n" - range: SourceCommentCount - inlined: true + range: string # uriorcurie + # range: SourceCommentCount + inlined: false # Fixed invalid inline for primitive type close_mappings: - schema:partOfTotalCount examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_platform_of.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_platform_of.yaml index fe78a878de..0afb0d09cc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_platform_of.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_platform_of.yaml @@ -17,7 +17,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Custodian slots: is_or_was_platform_of: slot_uri: hc:isOrWasPlatformOf @@ -44,7 +43,8 @@ slots: but later transferred to a consortium or national body. ' - range: Custodian + range: string # uriorcurie + # range: Custodian close_mappings: - dcterms:isPartOf - rico:isOrWasPartOf diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_published.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_published.yaml index 2c426f42ce..40bd4636ff 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_published.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_published.yaml @@ -14,16 +14,16 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Publication default_prefix: hc slots: is_or_was_published: description: Links an information carrier or creative work to its publication event(s). Follows RiC-O temporal naming convention (Rule 39) to indicate the publication may be historical. The Publication class captures date via temporal_extent, publisher, place of publication, and edition information. - range: Publication + range: string # uriorcurie + # range: Publication slot_uri: schema:publication multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type exact_mappings: - schema:datePublished annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_published_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_published_at.yaml index de3071b6c8..3d2724a7e8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_published_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_published_at.yaml @@ -31,7 +31,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/PublicationEvent default_prefix: hc slots: is_or_was_published_at: @@ -58,9 +57,10 @@ slots: TimeSpan boundaries set to the same instant. ' - range: PublicationEvent + range: string # uriorcurie + # range: PublicationEvent multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type exact_mappings: - dcterms:created - schema:datePublished diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_published_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_published_by.yaml index cccab0f822..726f4b4ee3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_published_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_published_by.yaml @@ -37,7 +37,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Custodian default_prefix: hc slots: is_or_was_published_by: @@ -59,7 +58,8 @@ slots: For commercial publications, use has_or_had_publisher instead. ' - range: Custodian + range: string # uriorcurie + # range: Custodian inlined: false exact_mappings: - dcterms:publisher diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_recombined.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_recombined.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_recombined.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_recombined.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_related_to.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_related_to.yaml index b66986d333..c8cde8c656 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_related_to.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_related_to.yaml @@ -4,11 +4,11 @@ title: Is or Was Related To description: General relationship to another entity. imports: - linkml:types -- ../classes/Entity slots: is_or_was_related_to: slot_uri: rico:isRelatedTo - range: Entity + range: string # uriorcurie + # range: Entity multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_represented_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_represented_by.yaml index 646713934d..633b4d838e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_represented_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_represented_by.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Agent slots: is_or_was_represented_by: name: is_or_was_represented_by description: The agent that represents or represented this entity. slot_uri: prov:actedOnBehalfOf - range: Agent + range: string # uriorcurie + # range: Agent multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_responsible_for.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_responsible_for.yaml index f78b9accb3..1e78ef60ad 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_responsible_for.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_responsible_for.yaml @@ -21,7 +21,7 @@ slots: is_or_was_responsible_for: slot_uri: rico:hasOrHadHolder description: "Links a legal entity to collections or resources for which it bears formal legal responsibility.\n\n**TEMPORAL SEMANTICS**:\nPer RiC-O and Rule 39, the \"is_or_was\" prefix indicates that:\n- The relationship may be current (active responsibility)\n- The relationship may be historical (past responsibility, now transferred)\n- Temporal validity is tracked via the range class (e.g., Collection.temporal_extent)\n\n**USAGE**:\nUsed for:\n- Legal responsibility for heritage collections\n- Custodial responsibility for archival holdings\n- Formal accountability for cultural property\n\n**RELATIONSHIP TO TOOI**:\n- Forward direction from legal entity to collection\n- Replaces collections_under_responsibility slot\n- Maps to tooi:heeft_informatieobject semantics\n\n**BIDIRECTIONAL PATTERN**:\n- Forward: CustodianLegalStatus \u2192 Collection (is_or_was_responsible_for)\n- Inverse: Collection \u2192 CustodianLegalStatus (is_or_was_held_by or has_or_had_holder)\n" - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - rico:hasOrHadHolder diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_at.yaml index 85737d9282..80025a5d0a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_at.yaml @@ -7,8 +7,10 @@ prefixes: prov: http://www.w3.org/ns/prov# schema: http://schema.org/ -default_range: string +# default_range: string +imports: + - linkml:types slots: is_or_was_retrieved_at: slot_uri: prov:atTime diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_by.yaml index 5f580b68b7..9ab06b6c0c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_by.yaml @@ -17,15 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/RetrievalAgent default_prefix: hc slots: is_or_was_retrieved_by: slot_uri: prov:wasAssociatedWith description: Agent that performed the retrieval activity. - range: RetrievalAgent + range: string # uriorcurie + # range: RetrievalAgent multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_through.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_through.yaml index 5192f2480b..d82572a7ea 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_through.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_through.yaml @@ -17,15 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/RetrievalMethod default_prefix: hc slots: is_or_was_retrieved_through: slot_uri: prov:used description: Method or plan used for the retrieval activity. - range: RetrievalMethod + range: string # uriorcurie + # range: RetrievalMethod multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_returned.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_returned.yaml index c14fd0b4d3..4a17dcbd63 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_returned.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_returned.yaml @@ -15,15 +15,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ReturnEvent default_prefix: hc slots: is_or_was_returned: description: "Links to a return event documenting when and how an item was returned.\n\nRiC-O temporal pattern for tracking custody returns. The ReturnEvent\ncaptures the full context including:\n- Return date\n- Item condition on return\n- Documentation/reports\n- Any issues or damage\n\n**TEMPORAL SEMANTICS**:\n- `is_or_was_returned` indicates the return has occurred (past) or is current\n- Links Loan to ReturnEvent for structured return documentation\n\n**Migration (2026-01-22)**:\n- `condition_on_return` \u2192 `is_or_was_returned` + `ReturnEvent` + `has_or_had_condition` + `Condition`\n- Per slot_fixes.yaml (Rule 53)\n" - range: ReturnEvent + range: string # uriorcurie + # range: ReturnEvent multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type slot_uri: hc:isOrWasReturned close_mappings: - rico:isOrWasPerformedBy diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_revision_of.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_revision_of.yaml index 97f1b1283d..382634352a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_revision_of.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_revision_of.yaml @@ -37,7 +37,7 @@ slots: - slot_uri: prov:wasRevisionOf (PROV-O revision relationship) ' - range: uriorcurie + range: string # uriorcurie exact_mappings: - prov:wasRevisionOf examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_signed_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_signed_at.yaml index c71a9000d7..c5d5fda90a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_signed_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_signed_at.yaml @@ -17,15 +17,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Timestamp default_prefix: hc slots: is_or_was_signed_at: slot_uri: schema:dateCreated description: Timestamp when the entity was signed or executed. - range: Timestamp + range: string # uriorcurie + # range: Timestamp multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_signed_on.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_signed_on.yaml index 36635b0b96..4faeb572d2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_signed_on.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_signed_on.yaml @@ -38,7 +38,7 @@ slots: - Can be a structured date object if needed. ' - range: uriorcurie + range: string # uriorcurie multivalued: false required: false annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_sub_collection_of.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_sub_collection_of.yaml index 9b5a566e87..bd8da56cc8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_sub_collection_of.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_sub_collection_of.yaml @@ -15,7 +15,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Collection slots: is_or_was_sub_collection_of: slot_uri: rico:isOrWasPartOf @@ -45,7 +44,8 @@ slots: - Is now part of Sri Lanka National Archives ' - range: Collection + range: string # uriorcurie + # range: Collection required: false exact_mappings: - rico:isOrWasPartOf diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_suborganization_of.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_suborganization_of.yaml index 38706a07f2..0b51b6b80c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_suborganization_of.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_suborganization_of.yaml @@ -17,7 +17,6 @@ prefixes: imports: - linkml:types - ../metadata -- ../classes/CustodianLegalStatus slots: is_or_was_suborganization_of: slot_uri: org:subOrganizationOf @@ -40,7 +39,8 @@ slots: - Is now an independent foundation (Stichting Rijksmuseum) ' - range: CustodianLegalStatus + range: string # uriorcurie + # range: CustodianLegalStatus exact_mappings: - org:subOrganizationOf - schema:parentOrganization diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_superseded_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_superseded_by.yaml index 14155026ab..32874ac917 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_superseded_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_superseded_by.yaml @@ -19,7 +19,7 @@ imports: slots: is_or_was_superseded_by: slot_uri: hc:isOrWasSupersededBy - range: uriorcurie + range: string # uriorcurie description: "Reference to an entity that supersedes, replaces, or succeeds this one.\n\n**TEMPORAL SEMANTICS** (RiC-O naming convention):\nThe \"is_or_was\" prefix indicates this relationship may be:\n- Current (active supersession)\n- Historical (past supersession in a chain)\n\n**USAGE**:\nUsed to track version chains and replacement relationships:\n- Finding aid versions (v1 \u2192 v2 \u2192 v3)\n- Assertion updates (old assertion \u2192 new assertion)\n- Document versions (original \u2192 amended)\n\n**PROVENANCE PATTERN**:\nFor temporal tracking, combine with `temporal_extent` to record\nWHEN the supersession occurred:\n```yaml\nis_or_was_superseded_by: https://example.org/finding-aid/v2\ntemporal_extent:\n end_of_the_end: \"2025-06-15\" # Date when superseded\n```\n\n**MIGRATED FROM**: superseded_by (2026-01-16)\n- Original slot_uri preserved in exact_mappings\n- Changed from range:uri to range:uriorcurie per Rule 55\n- Renamed per Rule 39 (RiC-O temporal naming)\n\nDublin Core:\ \ isReplacedBy - \"A related resource that supplants, \ndisplaces, or supersedes the described resource.\"\n" exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_targeted_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_targeted_at.yaml index 3d3040a5bb..d79271239a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_targeted_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_targeted_at.yaml @@ -20,7 +20,7 @@ slots: name: is_or_was_targeted_at description: Indicates the target audience or beneficiary of a program or activity. MIGRATED from funding_program context per Rule 53. Follows RiC-O naming convention. slot_uri: schema:audience - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_tax_deductible.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_tax_deductible.yaml index 67d8d7f437..8dbff4ba4e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_tax_deductible.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_tax_deductible.yaml @@ -18,7 +18,7 @@ default_prefix: hc slots: is_or_was_tax_deductible: slot_uri: hc:taxDeductible - range: uriorcurie + range: string # uriorcurie multivalued: false description: "Tax deductibility status of donations to a scheme or institution.\n\n**MIGRATION**: Replaces boolean `tax_deductible` slot with structured\nTaxDeductibility class per slot_fixes.yaml revision.\n\n**SEMANTIC PATTERN**:\n\nUses RiC-O temporal naming (is_or_was_*) to capture that tax\ndeductibility status may change over time as regulations evolve.\n\n**RELATIONSHIP TO regulated_by_scheme**:\n\nThis slot provides the simple yes/no/partial deductibility status,\nwhile `regulated_by_scheme` provides the detailed tax scheme\ninformation (jurisdiction, percentages, regulatory bodies).\n\n```\nDonationScheme\n \u2502\n \u251C\u2500\u2500 is_or_was_tax_deductible \u2500\u2500\u2192 TaxDeductibility\n \u2502 \u2514\u2500\u2500 status: FULLY_DEDUCTIBLE\n \u2502 \u2514\u2500\u2500 jurisdiction: NL\n \u2502\n \u2514\u2500\u2500 regulated_by_scheme \u2500\u2500\u2192 TaxScheme[]\n \u2514\u2500\u2500 has_or_had_type: CulturalANBI\n \u2514\ \u2500\u2500 offers_or_offered: [{ has_or_had_percentage: 125 }]\n```\n\n**HERITAGE SECTOR CONTEXT**:\n\nTax deductibility varies by:\n- Donor jurisdiction (where donor pays taxes)\n- Institution jurisdiction (where institution is registered)\n- Donation type (cash, securities, objects)\n- Donation amount (thresholds may apply)\n" diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_temporarily_located_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_temporarily_located_at.yaml index dc7e980fea..c856a6c7e1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_temporarily_located_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_temporarily_located_at.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/TemporaryLocation slots: is_or_was_temporarily_located_at: slot_uri: org:hasSite @@ -58,8 +57,9 @@ slots: - `is_or_was_temporarily_located_at`: Time-limited locations with explicit end dates ' - range: TemporaryLocation - inlined: true + range: string # uriorcurie + # range: TemporaryLocation + inlined: false # Fixed invalid inline for primitive type multivalued: true required: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_threatened_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_threatened_by.yaml index e994fed5cd..447d2ed1ab 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_threatened_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_threatened_by.yaml @@ -16,7 +16,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Threat slots: is_or_was_threatened_by: slot_uri: hc:isOrWasThreatenedBy @@ -50,7 +49,8 @@ slots: The "or was" indicates threats may be historical (now mitigated) or ongoing. ' - range: Threat + range: string # uriorcurie + # range: Threat multivalued: true examples: - value: Threat(type=PRACTITIONER_LOSS, severity=HIGH) diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_transferred.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_transferred.yaml index a4006d4555..c9e3f5fdbe 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_transferred.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_transferred.yaml @@ -16,16 +16,16 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/TransferEvent slots: is_or_was_transferred: slot_uri: rico:isOrWasAffectedBy description: "Links an entity to a transfer event that affected it.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\ntransfer may be historical.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `rico:isOrWasAffectedBy` - RiC-O affected by\n (entity affected by an event)\n- **Related**: `crm:P30_transferred_custody_of` - CIDOC-CRM custody transfer\n- **Related**: `prov:wasInfluencedBy` - PROV-O influence\n\n**Use Cases**:\n- Collection items transferred between institutions\n- Archive holdings relocated to new facility\n- Custody transfer of heritage materials\n\n**Range**: TransferEvent class (structured transfer with dates, locations, policy)\n\n**Cardinality**:\nMultivalued - entities may have been transferred multiple times.\n" - range: TransferEvent + range: string # uriorcurie + # range: TransferEvent required: false multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type related_mappings: - crm:P30_transferred_custody_of - prov:wasInfluencedBy diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_transferred_to.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_transferred_to.yaml index 1f36f4f066..fb30584159 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_transferred_to.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_transferred_to.yaml @@ -20,7 +20,7 @@ slots: is_or_was_transferred_to: slot_uri: crm:P26_moved_to description: "New location after a relocation or transfer event.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"is_or_was\" phrasing indicates the transfer may be:\n- Current (recent/ongoing relocations)\n- Historical (past relocations)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P26_moved_to` - CIDOC-CRM move destination\n - Domain: E9_Move\n - Range: E53_Place\n\n**Usage**:\nLinks relocation/transfer events to the destination location.\nTypically used with a corresponding `is_or_was_transferred_from` slot.\nClass-level slot_usage narrows the range to specific place types.\n\n**Applicable Event Types**:\n- RELOCATION (organizational move)\n- TRANSFER (custody transfer)\n- ACQUISITION (collection acquisition)\n\n**Examples**:\n- Archive moving to new climate-controlled facility\n- Museum relocating from historic building to modern campus\n- Collection transferred to new custodian\n" - range: uriorcurie + range: string # uriorcurie required: false multivalued: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_triggered_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_triggered_by.yaml index 2fc5862686..34501ea203 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_triggered_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_triggered_by.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/AccessTriggerEvent slots: is_or_was_triggered_by: name: is_or_was_triggered_by title: is_or_was_triggered_by description: The event that triggered this entity or state. slot_uri: prov:wasInformedBy - range: AccessTriggerEvent + range: string # uriorcurie + # range: AccessTriggerEvent annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_used_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_used_by.yaml index 1489a34686..b5d0d7b84e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_used_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_used_by.yaml @@ -32,7 +32,7 @@ slots: - Resource consumption ' - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - prov:wasUsedBy diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_used_in.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_used_in.yaml index 881d318778..59d049cf74 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_used_in.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_used_in.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/GovernanceStructure slots: is_or_was_used_in: name: is_or_was_used_in description: The context in which something is used. slot_uri: prov:wasUsedBy - range: GovernanceStructure + range: string # uriorcurie + # range: GovernanceStructure multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_verified_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_verified_by.yaml index a51b5e029d..38b2160c8a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_verified_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_verified_by.yaml @@ -32,7 +32,7 @@ slots: - Approval records ' - range: uriorcurie + range: string # uriorcurie close_mappings: - prov:wasAttributedTo examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_visible_in.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_visible_in.yaml index 1d37199f1b..8caab63ebc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_visible_in.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_visible_in.yaml @@ -20,7 +20,7 @@ slots: name: is_or_was_visible_in description: Indicates that an entity is/was visible in a specific media segment or timespan. MIGRATED from face_segment/object_segment/logo_segment/landmark_segment per Rule 53. Follows RiC-O naming convention. slot_uri: hc:isOrWasVisibleIn - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_webarchived_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_webarchived_at.yaml index 68017f4815..b737cdcdf7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_webarchived_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/is_or_was_webarchived_at.yaml @@ -15,16 +15,16 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/URL slots: is_or_was_webarchived_at: slot_uri: prov:alternateOf description: "URL to a web archive snapshot of this entity's content.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention. Web archives\ncapture content at a specific point in time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:alternateOf` - PROV-O alternate\n representation (archived version of original)\n- **Related**: `schema:archivedAt` - Schema.org archived location\n\n**Web Archive Services**:\n- Internet Archive Wayback Machine: web.archive.org\n- Archive.today: archive.ph\n- UK Web Archive: webarchive.org.uk\n- National library web archives\n\n**Range**: URL class (structured URL with type and metadata)\n\n**Provenance Value**:\nEssential for data verification - archived snapshots prove\ncontent existed at extraction time.\n\n**Cardinality**:\nMultivalued - content may be archived at multiple services/times.\n" - range: URL + range: string # uriorcurie + # range: URL required: false multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type related_mappings: - schema:archivedAt annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/isbn.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/isbn.yaml index 06b9de5de1..2422ec416c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/isbn.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/isbn.yaml @@ -13,7 +13,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: isbn: description: 'International Standard Book Number (ISBN) for publications. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/issued_call.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/issued_call.yaml index 87146d309d..e64917f1ee 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/issued_call.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/issued_call.yaml @@ -18,7 +18,7 @@ default_prefix: hc slots: issued_call: slot_uri: schema:makesOffer - range: uriorcurie + range: string # uriorcurie multivalued: true description: "Funding calls issued by this funding organisation.\n\nLinks FundingOrganisation to CallForApplication instances representing\nspecific funding opportunities.\n\n**Inverse of CallForApplication.issuing_organisation**:\n- FundingOrganisation \u2192 issued_calls \u2192 CallForApplication[]\n- CallForApplication \u2192 issuing_organisation \u2192 FundingOrganisation\n\nUses schema:makesOffer (FundingOrganisation makes funding offers via calls).\n" examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/issuing_organisation.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/issuing_organisation.yaml index 821605e06c..b09baf3ca3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/issuing_organisation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/issuing_organisation.yaml @@ -17,7 +17,7 @@ imports: default_prefix: hc slots: issuing_organisation: - range: uriorcurie + range: string # uriorcurie description: "The FundingOrganisation that issues this call.\n\nURI reference to EncompassingBody entity (FundingOrganisation subclass).\nFormat: https://nde.nl/ontology/hc/encompassing-body/funding/{slug}\n\n**Inverse of FundingOrganisation.issued_calls**:\n- FundingOrganisation \u2192 issued_calls \u2192 CallForApplication[]\n- CallForApplication \u2192 issuing_organisation \u2192 FundingOrganisation\n" slot_uri: hc:issuingOrganisation annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/item.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/item.yaml index d718ab0dba..2f3ca15a9f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/item.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/item.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ExhibitedObject slots: item: slot_uri: rico:hasOrHadConstituent description: "Individual ExhibitedObject items within this collection.\n\nRiC-O: hasOrHadConstituent for record-level items within a RecordSet.\n\nLinks to fully-modeled ExhibitedObject entities with:\n- Creator attribution\n- Medium and dimensions\n- Provenance information\n- Conservation history\n- Exhibition history\n\n**Relationship to ExhibitedObject.part_of_collection**:\nThis is the inverse relationship. Collection.items \u2192 ExhibitedObject[]\ncorresponds to ExhibitedObject.part_of_collection \u2192 Collection.\n\n**Use Cases**:\n- Museum: Individual artworks in a named collection\n- Archive: Individual documents/files in a fonds/series\n- Library: Individual rare books in a special collection\n\n**Note**: For large collections, items may be linked by reference (URI)\nrather than inlined, to avoid excessive file sizes.\n" - range: ExhibitedObject + range: string # uriorcurie + # range: ExhibitedObject multivalued: true required: false examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/item_returned.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/item_returned.yaml index 17b298e355..e709483cea 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/item_returned.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/item_returned.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Item default_prefix: hc slots: item_returned: description: "The item(s) being returned in a return event.\n\nLinks a ReturnEvent to the specific Item that was returned.\nMay be multivalued for loan returns involving multiple objects.\n\n**RELATIONSHIP TO LOAN**:\n- Loan.loaned_items \u2192 Items loaned out\n- ReturnEvent.item_returned \u2192 Items returned\n- Should match loaned_items for complete returns\n\n**Migration (2026-01-22)**:\nPart of condition_on_return \u2192 ReturnEvent migration per slot_fixes.yaml (Rule 53)\n" - range: Item + range: string # uriorcurie + # range: Item multivalued: true inlined: false slot_uri: hc:itemReturned diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/jurisdiction.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/jurisdiction.yaml index d785efe8db..c919be6e3d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/jurisdiction.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/jurisdiction.yaml @@ -16,7 +16,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Jurisdiction description: 'Legal/administrative jurisdiction where an entity operates or is registered. @@ -41,10 +40,10 @@ description: 'Legal/administrative jurisdiction where an entity operates or is r slots: jurisdiction: slot_uri: gleif_base:hasCoverageArea - range: uriorcurie + range: string # uriorcurie required: false multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type description: "Legal/administrative jurisdiction where entity operates or is registered.\n\ngleif_base:hasCoverageArea - \"Indicates a geographic region in which \nsome service is provided, or to which some policy applies\"\n\nExamples:\n- Netherlands (national): KvK jurisdiction\n- Bavaria (subnational): Amtsgericht M\xFCnchen jurisdiction\n- European Union (supranational): SE registration jurisdiction\n" exact_mappings: - schema:areaServed diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/jurisdiction_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/jurisdiction_type.yaml index 56358a97c1..b92b70c6e3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/jurisdiction_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/jurisdiction_type.yaml @@ -44,7 +44,8 @@ slots: - SUPRANATIONAL: supranational_code required ' - range: JurisdictionTypeEnum + range: string # uriorcurie + # range: JurisdictionTypeEnum slot_uri: schema:additionalType annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/lacks_or_lacked.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/lacks_or_lacked.yaml index 23c83d871c..a1fa1af1f1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/lacks_or_lacked.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/lacks_or_lacked.yaml @@ -23,6 +23,6 @@ slots: description: Indicates absence of a quality, resource, or evidence. # range: Any multivalued: true - inlined: true + # inlined: true # CANNOT inline string annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/landmark_segment.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/landmark_segment.yaml index 644597e74f..0f58619a4b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/landmark_segment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/landmark_segment.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/VideoTimeSegment default_prefix: hc slots: landmark_segment: description: Time segment when landmark is visible - range: VideoTimeSegment + range: string # uriorcurie + # range: VideoTimeSegment slot_uri: hc:landmarkSegment annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/legal_entity_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/legal_entity_type.yaml index 20e7749efb..4e1bc08152 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/legal_entity_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/legal_entity_type.yaml @@ -2,7 +2,6 @@ id: https://nde.nl/ontology/hc/slot/legal_entity_type name: legal_entity_type-slot imports: - linkml:types -- ../classes/LegalEntityType slots: legal_entity_type: description: 'High-level legal entity classification distinguishing between natural persons @@ -23,7 +22,8 @@ slots: ' slot_uri: org:classification - range: LegalEntityType + range: string # uriorcurie + # range: LegalEntityType required: true comments: - Natural persons cannot have legal forms (individuals are not 'incorporated') diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/legal_form.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/legal_form.yaml index 2d20cdd738..3d8be65676 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/legal_form.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/legal_form.yaml @@ -2,11 +2,11 @@ id: https://nde.nl/ontology/hc/slot/legal_form name: legal_form_slot imports: - linkml:types -- ../classes/LegalForm slots: legal_form: slot_uri: rov:orgType - range: LegalForm + range: string # uriorcurie + # range: LegalForm description: 'Specific legal form based on ISO 20275 Entity Legal Forms (ELF) codes. Links to LegalForm class with jurisdiction-specific legal form details. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/legal_jurisdiction.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/legal_jurisdiction.yaml index a27e3bb21e..975b1893d4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/legal_jurisdiction.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/legal_jurisdiction.yaml @@ -15,12 +15,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Jurisdiction description: "Jurisdiction of legal formation and registration.\n\nLinks to Jurisdiction class.\n\ngleif_base:hasLegalJurisdiction - \"The jurisdiction of legal formation \nand registration of the entity\"\n\nFor most entities, this is the country. For federal systems (USA, Germany),\nthis may be a state/region.\n" slots: legal_jurisdiction: slot_uri: gleif_base:hasLegalJurisdiction - range: Jurisdiction + range: string # uriorcurie + # range: Jurisdiction required: false multivalued: false description: 'Legal jurisdiction where this umbrella organization has authority. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/legal_name.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/legal_name.yaml index b1118b09a8..2ffea0caac 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/legal_name.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/legal_name.yaml @@ -2,11 +2,11 @@ id: https://nde.nl/ontology/hc/slot/legal_name name: legal_name_slot imports: - linkml:types -- ../classes/LegalName slots: legal_name: slot_uri: rov:legalName - range: LegalName + range: string # uriorcurie + # range: LegalName description: "Official legal name as registered in legal documents (KvK, company registry, etc.).\nLinks to LegalName class with structured name variants (TOOI pattern).\nThis is DISTINCT from hc:CustodianName (emic operational name).\nExample: LegalName{full_name: \"Stichting Rijksmuseum\", name_without_type: \"Rijksmuseum\"} (legal) \nvs CustodianName{emic_name: \"Rijksmuseum\"} (emic operational).\n" required: true notes: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/legal_status.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/legal_status.yaml index c00db0f5d0..add85944e2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/legal_status.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/legal_status.yaml @@ -16,7 +16,6 @@ default_prefix: hc imports: - linkml:types - ../metadata -- ../classes/CustodianLegalStatus slots: legal_status: slot_uri: hc:hasLegalStatus @@ -44,7 +43,8 @@ slots: **Range**: `Any` (2026-01-16) - Allows class instances. Classes narrow this to CustodianLegalStatus via slot_usage. ' - range: CustodianLegalStatus + range: string # uriorcurie + # range: CustodianLegalStatus required: false exact_mappings: - gleif:hasLegalForm diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/legal_system_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/legal_system_type.yaml index 9223ed0a04..49adf420d2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/legal_system_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/legal_system_type.yaml @@ -38,7 +38,8 @@ slots: This affects which legal forms are available and how entities are registered. ' - range: LegalSystemTypeEnum + range: string # uriorcurie + # range: LegalSystemTypeEnum slot_uri: schema:category annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/lender.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/lender.yaml index 0a1f14f439..886c5b7deb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/lender.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/lender.yaml @@ -25,7 +25,7 @@ slots: surrenders custody of an object." ' - range: uriorcurie + range: string # uriorcurie slot_uri: crm:P28_custody_surrendered_by annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/library_subtype.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/library_subtype.yaml index 4a4fedf762..9e349b2ee3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/library_subtype.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/library_subtype.yaml @@ -24,7 +24,8 @@ slots: Each value links to a Wikidata entity describing a specific type. ' - range: LibraryTypeEnum + range: string # uriorcurie + # range: LibraryTypeEnum required: false multivalued: true comments: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/lifecycle_phase_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/lifecycle_phase_type.yaml index 151019b7ce..c13d02e6b1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/lifecycle_phase_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/lifecycle_phase_type.yaml @@ -19,7 +19,7 @@ slots: lifecycle_phase_type: slot_uri: skos:broaderTransitive description: "Links this CustodianArchive INSTANCE to its lifecycle phase TYPE.\n\n**SKOS**: skos:broaderTransitive for instance-to-type relationship.\n\n**Archive Lifecycle Types (Wikidata)**:\n- Q3621648 (CurrentArchive) - Active records phase\n- Q244904 (DepositArchive) - Intermediate/semi-current phase\n- Q3621673 (HistoricalArchive) - Archival/permanent phase\n\n**Usage**:\nClassify this operational archive by its position in the records lifecycle.\nMost CustodianArchive records are in the intermediate phase (awaiting processing).\n\n**Example**:\n- CustodianArchive \"Ministry Records 2010-2020\" \u2192 lifecycle_phase_type \u2192 \n DepositArchive (Q244904) - semi-current, awaiting processing\n" - range: uriorcurie + range: string # uriorcurie annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/link_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/link_type.yaml index 286c30fb80..cc879ea27f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/link_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/link_type.yaml @@ -20,7 +20,8 @@ slots: link_type: slot_uri: dcterms:type description: Type of link - range: LinkTypeEnum + range: string # uriorcurie + # range: LinkTypeEnum annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/linked_data_access.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/linked_data_access.yaml index 4efcc34683..550f3dcf5a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/linked_data_access.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/linked_data_access.yaml @@ -19,7 +19,7 @@ slots: linked_data_access: slot_uri: void:sparqlEndpoint description: 'LinkedDataHub providing SPARQL access to this dataset. Named ''linked_data_access'' to avoid conflict with shared ''sparql_endpoint'' slot which has range: uri. This slot specifically links to a LinkedDataHub entity.' - range: uriorcurie + range: string # uriorcurie inlined: false annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/llm_response.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/llm_response.yaml index c0c5b07cd8..e3162e3fe3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/llm_response.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/llm_response.yaml @@ -15,7 +15,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/LLMResponse default_prefix: hc slots: llm_response: @@ -53,7 +52,8 @@ slots: ' slot_uri: prov:qualifiedGeneration - range: LLMResponse + range: string # uriorcurie + # range: LLMResponse annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/loan_history.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/loan_history.yaml index ffb5706602..52042b9cd1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/loan_history.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/loan_history.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Loan default_prefix: hc slots: loan_history: @@ -46,7 +45,8 @@ slots: and institutions. ' - range: Loan + range: string # uriorcurie + # range: Loan multivalued: true slot_uri: crm:P30i_custody_transferred_through annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/loan_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/loan_id.yaml index 2186a312b8..a0ad5aaa2e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/loan_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/loan_id.yaml @@ -22,7 +22,7 @@ slots: Format: https://nde.nl/ontology/hc/loan/{lender-slug}-{borrower-slug}-{year}-{seq} ' - range: uriorcurie + range: string # uriorcurie slot_uri: dcterms:identifier annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/loan_status.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/loan_status.yaml index bd791eba26..bdf5cb81a1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/loan_status.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/loan_status.yaml @@ -30,7 +30,8 @@ slots: OVERDUE, DISPUTED ' - range: LoanStatusEnum + range: string # uriorcurie + # range: LoanStatusEnum slot_uri: hc:loanStatus close_mappings: - adms:status diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/loan_timespan.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/loan_timespan.yaml index c90da73088..98883aafcb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/loan_timespan.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/loan_timespan.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/TimeSpan default_prefix: hc slots: loan_timespan: @@ -23,7 +22,8 @@ slots: Use for uncertain or approximate loan periods. ' - range: TimeSpan + range: string # uriorcurie + # range: TimeSpan slot_uri: crm:P4_has_time-span annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/locality.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/locality.yaml index 864013b64e..473e10be4a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/locality.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/locality.yaml @@ -16,7 +16,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string description: "City, town, village, or other locality name within an address.\n\nvCard: locality - \"The locality (e.g. city or town) associated with the \naddress of the object\"\n\nLOCN: postName - \"The key postal division of the address, usually the city.\"\n\nSchema.org: addressLocality - \"The locality in which the street address is.\"\n\nFor unambiguous identification, prefer Settlement class with GeoNames ID.\nThis slot is for simple string references when full Settlement is not needed.\n\nExamples:\n- \"Amsterdam\"\n- \"The Hague\" (English) or \"'s-Gravenhage\" (Dutch official)\n- \"New York\"\n" slots: locality: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/located_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/located_at.yaml index 370f4c687b..5557db3613 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/located_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/located_at.yaml @@ -13,13 +13,13 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/AuxiliaryPlace slots: located_at: slot_uri: hc:locatedAt - range: AuxiliaryPlace + range: string # uriorcurie + # range: AuxiliaryPlace multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type description: "Physical location where this organizational unit operates.\n\n**Range**: `Any` (2026-01-16) - Allows string values and AuxiliaryPlace/Location class instances.\nClasses narrow this to specific location types via slot_usage.\n\nNote: slot_uri changed from org:basedAt to hc:locatedAt\nto resolve OWL ambiguous type warning. org:basedAt may have\ndifferent expectations in the W3C Org ontology.\n\nAlternative: `org:hasSite` - \"Indicates a site at which the Organization \nhas some presence even if only indirect.\"\n\n**Use Cases**:\n\n1. **Departments at Branch Locations**:\n - Conservation Team \u2192 located at Amersfoort Depot\n - Digitization Team \u2192 located at off-site facility\n\n2. **Teams Spanning Multiple Locations**:\n - IT Department \u2192 located at main building AND data center\n - Public Services \u2192 located at main reading room AND annex\n\n3. **Temporary Location Assignments**:\n - Exhibition Team \u2192 temporarily at partner venue\n - Collections\ \ \u2192 temporarily at storage during renovation\n\n**Relationship Pattern**:\n\nTwo-way linking between locations and organizational units:\n\n```\nAuxiliaryPlace\n \u2514\u2500\u2500 hosts_branch \u2192 OrganizationBranch\n \u2514\u2500\u2500 has_operational_unit \u2192 OrganizationalStructure\n\nOrganizationalStructure\n \u2514\u2500\u2500 located_at \u2192 AuxiliaryPlace (optional)\n```\n\n**Optional Slot**:\n\nMany organizational units don't have fixed locations:\n- Strategic Planning Committee (meets virtually)\n- Research Fellowship Program (no physical space)\n\nOnly use when organizational unit has identifiable physical location.\n\n**Example - Conservation Division**:\n```yaml\nOrganizationalStructure:\n unit_name: \"Conservation Division\"\n unit_type: DIVISION\n located_at:\n - place_name: \"Conservation Lab - Main Building\"\n - place_name: \"Climate-Controlled Storage - Depot Amersfoort\"\n```" exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/logo_segment.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/logo_segment.yaml index 1524010370..9b6f7bca5c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/logo_segment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/logo_segment.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/VideoTimeSegment default_prefix: hc slots: logo_segment: description: Time segment when logo is visible - range: VideoTimeSegment + range: string # uriorcurie + # range: VideoTimeSegment slot_uri: hc:logoSegment annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/long_name.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/long_name.yaml index e54d0fcd95..66dbb75d67 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/long_name.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/long_name.yaml @@ -14,7 +14,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string description: 'Full/long form of a name, typically used for address component values. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/maintained_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/maintained_by.yaml index 1522b9d0df..d607798f3a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/maintained_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/maintained_by.yaml @@ -15,7 +15,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/RegistrationAuthority default_prefix: hc slots: maintained_by: @@ -34,9 +33,10 @@ slots: - Local courts (Amtsgericht) maintain German Handelsregister ' - range: RegistrationAuthority + range: string # uriorcurie + # range: RegistrationAuthority required: true - inlined: true + inlined: false # Fixed invalid inline for primitive type slot_uri: gleif_base:isManagedBy annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/major_city.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/major_city.yaml index 2f92a60b23..d4c528280c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/major_city.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/major_city.yaml @@ -8,7 +8,7 @@ prefixes: linkml: https://w3id.org/linkml/ schema: http://schema.org/ hc: https://nde.nl/ontology/hc/ -default_range: string +# default_range: string slots: major_city: slot_uri: schema:containsPlace diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/manages_collection.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/manages_collection.yaml index ed8d8c3ffb..a3c222adfd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/manages_collection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/manages_collection.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CustodianCollection default_prefix: hc slots: manages_collection: description: "CustodianCollection(s) managed by this CMS.\n\nCIDOC-CRM: P70_documents - the CMS documents the collection.\n\n**BIDIRECTIONAL RELATIONSHIP**:\n- Forward: CollectionManagementSystem \u2192 CustodianCollection (manages_collection)\n- Reverse: CustodianCollection \u2192 CollectionManagementSystem (managed_by_cms)\n\nMultiple collections may be managed by one CMS deployment:\n- Paintings collection\n- Prints and drawings\n- Archival fonds\n" - range: CustodianCollection + range: string # uriorcurie + # range: CustodianCollection slot_uri: hc:managesCollection annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/manages_or_managed.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/manages_or_managed.yaml index c034519aed..d776523a8e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/manages_or_managed.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/manages_or_managed.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Collection slots: manages_or_managed: name: manages_or_managed title: manages_or_managed description: Manages a resource or collection. slot_uri: prov:wasAttributedTo - range: Collection + range: string # uriorcurie + # range: Collection annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/managing_unit.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/managing_unit.yaml index 77cd44cf03..e22b22e8a4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/managing_unit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/managing_unit.yaml @@ -15,13 +15,13 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/OrganizationalStructure slots: managing_unit: slot_uri: org:unitOf description: "Organizational unit (department, division, section) responsible for managing this collection.\n\n**Bidirectional Relationship**:\n- **Forward**: CustodianCollection \u2192 OrganizationalStructure (managing_unit)\n- **Reverse**: OrganizationalStructure \u2192 CustodianCollection (managed_collections)\n\n**Validation**: If provided, temporal consistency is validated:\n- Collection.valid_from >= OrganizationalStructure.valid_from\n- Collection.valid_to <= OrganizationalStructure.valid_to (if unit dissolved)\n\n**Use Cases**:\n1. **Collection Management**: \"Which department manages the Medieval Manuscripts collection?\"\n2. **Staffing Cross-Reference**: \"Who are the curators managing this collection?\"\n - Follow: managing_unit \u2192 OrganizationalStructure \u2192 staff_members \u2192 PersonObservation\n3. **Organizational Change Impact**: Track collection custody through mergers, splits, reorganizations\n\n**Notes**:\n- If managing_unit is null, collection may be managed\ \ at institutional level\n- Collections may split across multiple units \u2192 create separate CustodianCollection instances\n- Custody transfers tracked via managing_unit changes + temporal validity\n" - range: OrganizationalStructure + range: string # uriorcurie + # range: OrganizationalStructure required: false multivalued: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/max_annual_light_exposure.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/max_annual_light_exposure.yaml index 7241512b0e..952c748377 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/max_annual_light_exposure.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/max_annual_light_exposure.yaml @@ -56,12 +56,11 @@ slots: description: "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \xD7 8 hours/day \xD7 250 days = 100,000 lux-hours (too high!)\n" range: float slot_uri: hc:maxAnnualLightExposure - exact_mappings: - - quantitykind:LuminousExposure close_mappings: - sosa:ObservableProperty - crm:E54_Dimension related_mappings: + - quantitykind:LuminousExposure - wd:Q194411 - schema:maxValue minimum_value: 0.0 diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/max_light_lux.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/max_light_lux.yaml index ad86a0a047..7e1061358e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/max_light_lux.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/max_light_lux.yaml @@ -28,13 +28,12 @@ slots: description: "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \xD7 8 hours = 400 lux \xD7 1 hour (same damage).\n" range: float slot_uri: hc:maxLightLux - exact_mappings: - - quantitykind:Illuminance close_mappings: - sosa:ObservableProperty - crm:E54_Dimension - brick:Illuminance_Sensor related_mappings: + - quantitykind:Illuminance - wd:Q194411 - schema:maxValue minimum_value: 0.0 diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/maximal_of_maximal.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/maximal_of_maximal.yaml index 9323817001..d00ddfda06 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/maximal_of_maximal.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/maximal_of_maximal.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Quantity slots: maximal_of_maximal: slot_uri: crm:P90b_has_upper_value_limit description: "Upper bound value of a range (CIDOC-CRM pattern for dimensional ranges).\n\n**CIDOC-CRM Alignment**:\nMaps to P90b_has_upper_value_limit which defines the highest value that\na dimension may have within an instance of E54 Dimension.\n\n**USE CASE - Grant Ranges**:\nFor grant funding ranges like \"\u20AC100K-\u20AC500K\":\n- minimal_of_minimal: Quantity(100000, EUR)\n- maximal_of_maximal: Quantity(500000, EUR)\n\n**TEMPORAL CONTEXT**:\nNamed \"maximal_of_maximal\" (not just \"maximum\") to acknowledge that the\nupper bound itself may have uncertainty - this is the maximum of the maximum.\n" - range: Quantity - inlined: true + range: string # uriorcurie + # range: Quantity + inlined: false # Fixed invalid inline for primitive type required: false multivalued: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/measures_or_measured.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/measures_or_measured.yaml index 3f620ab5d0..cb87c018a7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/measures_or_measured.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/measures_or_measured.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/ImpactMeasurement slots: measures_or_measured: name: measures_or_measured title: measures_or_measured description: Measures an impact or quality. slot_uri: schema:result - range: ImpactMeasurement + range: string # uriorcurie + # range: ImpactMeasurement multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/member_of.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/member_of.yaml index c6128560b8..d9744799b1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/member_of.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/member_of.yaml @@ -14,13 +14,13 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/StandardsOrganization default_prefix: hc slots: member_of: slot_uri: org:memberOf description: "The organization this entity is a member of.\n\n**Key Conceptual Distinction:**\n\n- Organization is the ORGANIZATION (e.g., OCLC is a StandardsOrganization)\n- Services are SERVICES operated by organizations (e.g., VIAF is a service)\n\nThere is no separate \"VIAF Consortium\" organization. The VIAF Council is an\nadvisory body WITHIN OCLC's governance structure.\n\n**Relationship Chain:**\n\nContributingAgency (e.g., KB/NTA)\n - member_of -> OCLC (organization)\n - contributes_to -> VIAF (service)\n - governance_role -> VOTING_MEMBER (council role)\n" - range: StandardsOrganization + range: string # uriorcurie + # range: StandardsOrganization multivalued: true inlined: false annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/minimal_of_minimal.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/minimal_of_minimal.yaml index 652464ce50..447792575e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/minimal_of_minimal.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/minimal_of_minimal.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Quantity slots: minimal_of_minimal: slot_uri: crm:P90a_has_lower_value_limit description: "Lower bound value of a range (CIDOC-CRM pattern for dimensional ranges).\n\n**CIDOC-CRM Alignment**:\nMaps to P90a_has_lower_value_limit which defines the lowest value that\na dimension may have within an instance of E54 Dimension.\n\n**USE CASE - Grant Ranges**:\nFor grant funding ranges like \"\u20AC100K-\u20AC500K\":\n- minimal_of_minimal: Quantity(100000, EUR)\n- maximal_of_maximal: Quantity(500000, EUR)\n\n**TEMPORAL CONTEXT**:\nNamed \"minimal_of_minimal\" (not just \"minimum\") to acknowledge that the\nlower bound itself may have uncertainty - this is the minimum of the minimum.\n" - range: Quantity - inlined: true + range: string # uriorcurie + # range: Quantity + inlined: false # Fixed invalid inline for primitive type required: false multivalued: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/mission_statement.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/mission_statement.yaml index 921f7ae348..62b927ae60 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/mission_statement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/mission_statement.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/MissionStatement description: 'Links a Custodian to its documented mission, vision, goal, and value statements. @@ -57,9 +56,10 @@ description: 'Links a Custodian to its documented mission, vision, goal, and val slots: mission_statement: slot_uri: org:purpose - range: MissionStatement + range: string # uriorcurie + # range: MissionStatement multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type required: false description: "Mission, vision, goal, value, and motto statements documented for this custodian.\n\nLinks to MissionStatement instances that capture organizational purpose\nwith full provenance (source URL, XPath, content hash, archive link).\n\n**Statement Types**:\n- **mission**: Core purpose (why we exist) - \"missie\" in Dutch\n- **vision**: Aspirational future (what we aim for) - \"visie\" in Dutch\n- **goal**: Specific objectives (what we pursue) - \"doelstelling\" in Dutch\n- **value**: Guiding principles (how we work) - \"kernwaarden\" in Dutch\n- **motto**: Memorable phrase (brand identity) - \"slagzin\" in Dutch\n\n**Why on Custodian (not CustodianLegalStatus)?**:\n\nMission statements express OPERATIONAL purpose, not legal obligations.\nThey may change without legal reorganization, and often reflect\npublic-facing identity rather than formal statutes.\n\n**Provenance Requirements**:\n\nFollowing the WebObservation pattern, every MissionStatement MUST have:\n1. `source_url`:\ \ URL where statement was found\n2. `retrieved_on`: When the page was archived\n3. `xpath` or `css_selector`: Location in HTML for verification\n4. `html_file`: Path to archived HTML\n5. `content_hash`: SHA-256 for integrity (recommended)\n\n**Example - Dutch Museum**:\n```yaml\nCustodian:\n hc_id: \"https://nde.nl/ontology/hc/nl-zh-zui-m-lmt\"\n preferred_label: \"Landbouwmuseum Tiengemeten\"\n \n mission_statement:\n - statement_type: mission\n statement_text: \"Waar komt ons voedsel \xE9cht vandaan.\"\n statement_language: nl\n source_url: \"https://www.landbouwmuseumtiengemeten.nl/het-museum/missie-en-visie\"\n retrieved_on: \"2025-12-29T10:00:00Z\"\n \n - statement_type: vision\n statement_text: |\n Het Landbouwmuseum Tiengemeten voelt zich onderdeel van een\n belangrijke agrarische ontwikkeling, de mechanisatie tussen\n 1920 en 1955. De collectie is relevant en de presentatie\n verbindt generaties.\n statement_language:\ diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/motivation_type_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/motivation_type_id.yaml index 9b8a98ee2b..a4a090942d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/motivation_type_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/motivation_type_id.yaml @@ -18,7 +18,7 @@ default_prefix: hc slots: motivation_type_id: description: Unique identifier for an annotation motivation type. - range: uriorcurie + range: string # uriorcurie slot_uri: dcterms:identifier exact_mappings: - dcterms:identifier diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/museum_subtype.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/museum_subtype.yaml index ba5ddc0cf6..72505e2530 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/museum_subtype.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/museum_subtype.yaml @@ -26,7 +26,8 @@ slots: Examples: ART_MUSEUM, NATURAL_HISTORY_MUSEUM, SCIENCE_MUSEUM, OPEN_AIR_MUSEUM, etc. ' - range: MuseumTypeEnum + range: string # uriorcurie + # range: MuseumTypeEnum required: false multivalued: true comments: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/museum_type_classification.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/museum_type_classification.yaml index f367e78220..a32822fb94 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/museum_type_classification.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/museum_type_classification.yaml @@ -37,7 +37,8 @@ slots: - SCIENCE_MUSEUM (Q2087181) ' - range: MuseumTypeEnum + range: string # uriorcurie + # range: MuseumTypeEnum annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/music_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/music_type.yaml index 222927c6fe..dc60f88eb7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/music_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/music_type.yaml @@ -19,7 +19,8 @@ default_prefix: hc slots: music_type: description: Type of music (BACKGROUND, FEATURED, ARCHIVAL) - range: MusicTypeEnum + range: string # uriorcurie + # range: MusicTypeEnum slot_uri: hc:musicType annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/name_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/name_type.yaml index 4935e5129b..8c01967296 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/name_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/name_type.yaml @@ -32,7 +32,8 @@ slots: ' slot_uri: hc:nameType - range: NameTypeEnum + range: string # uriorcurie + # range: NameTypeEnum annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/name_validity_period.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/name_validity_period.yaml index e649b401b3..ba5f45cb28 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/name_validity_period.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/name_validity_period.yaml @@ -2,11 +2,11 @@ id: https://nde.nl/ontology/hc/slot/name_validity_period name: name_validity_period_slot imports: - linkml:types -- ../classes/TimeSpan slots: name_validity_period: slot_uri: crm:P4_has_time-span - range: TimeSpan + range: string # uriorcurie + # range: TimeSpan description: 'Temporal period during which this name was valid (with fuzzy boundaries). CIDOC-CRM: P4_has_time-span links to E52_Time-Span for uncertain validity periods. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/narrower_concept.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/narrower_concept.yaml index 46c7dbdea2..0b5e713877 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/narrower_concept.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/narrower_concept.yaml @@ -26,7 +26,7 @@ slots: **Example**: archive skos:narrower AcademicArchive ' - range: uriorcurie + range: string # uriorcurie multivalued: true examples: - value: hc:UniversityArchive diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/narrower_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/narrower_type.yaml index a22bb82d61..7757ab68da 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/narrower_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/narrower_type.yaml @@ -23,7 +23,7 @@ slots: PerpetualInventory, PhantomInventory, PhysicalInventory, VendorManagedInventory. ' - range: uriorcurie + range: string # uriorcurie required: false multivalued: true annotations: diff --git a/schemas/20251121/linkml/modules/slots/nomenclatural_code.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/nomenclatural_code.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/nomenclatural_code.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/nomenclatural_code.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/nonprofit_subtype.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/nonprofit_subtype.yaml index 6b0a7fae89..b9691d91b7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/nonprofit_subtype.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/nonprofit_subtype.yaml @@ -24,7 +24,8 @@ slots: Each value links to a Wikidata entity describing a specific type. ' - range: NonProfitCustodianTypeEnum + range: string # uriorcurie + # range: NonProfitCustodianTypeEnum required: false multivalued: true comments: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/notable_examples.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/notable_examples.yaml index b6a3270efa..a499528b1d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/notable_examples.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/notable_examples.yaml @@ -14,7 +14,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/NotableExample slots: notable_examples: slot_uri: skos:example @@ -29,9 +28,10 @@ slots: **Format**: List of NotableExample objects with name, location, and optional Wikidata ID. ' - range: NotableExample + range: string # uriorcurie + # range: NotableExample multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type annotations: source_section: '**Notable Examples**:' custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/note.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/note.yaml index cbf7d8783a..e0cbda9bfd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/note.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/note.yaml @@ -13,7 +13,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: note: slot_uri: skos:note diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/numeric_value.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/numeric_value.yaml index 0e23801dda..c769b11d6b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/numeric_value.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/numeric_value.yaml @@ -15,7 +15,7 @@ prefixes: org: http://www.w3.org/ns/org# imports: - linkml:types -default_range: string +# default_range: string slots: numeric_value: slot_uri: rdf:value diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/object_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/object_id.yaml index dfab0df2fe..0bfe8f0a91 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/object_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/object_id.yaml @@ -22,7 +22,7 @@ slots: Format: https://nde.nl/ontology/hc/object/{institution-slug}-{object-slug} ' - range: uriorcurie + range: string # uriorcurie slot_uri: dcterms:identifier annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/object_ref.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/object_ref.yaml index 1b05f53861..ca9e7318fd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/object_ref.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/object_ref.yaml @@ -15,7 +15,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: object_ref: description: 'Reference to the object this provenance event concerns. @@ -26,7 +26,7 @@ slots: whose legal ownership was transferred." ' - range: uriorcurie + range: string # uriorcurie slot_uri: crm:P140_assigned_attribute_to comments: - Classes may override slot_uri in slot_usage for specific CRM property semantics diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/object_segment.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/object_segment.yaml index f64c7f69d1..1cea02b154 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/object_segment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/object_segment.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/VideoTimeSegment default_prefix: hc slots: object_segment: description: Time segment when object is visible - range: VideoTimeSegment + range: string # uriorcurie + # range: VideoTimeSegment slot_uri: hc:objectSegment annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/object_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/object_type.yaml index 772674f6f5..0a92334008 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/object_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/object_type.yaml @@ -28,7 +28,8 @@ slots: ARCHAEOLOGICAL_ARTIFACT, NATURAL_HISTORY_SPECIMEN, etc. ' - range: ExhibitedObjectTypeEnum + range: string # uriorcurie + # range: ExhibitedObjectTypeEnum slot_uri: dcterms:type annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/objects_added.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/objects_added.yaml index de68868e56..cf29e57d39 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/objects_added.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/objects_added.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ExhibitedObject default_prefix: hc slots: objects_added: @@ -27,7 +26,8 @@ slots: RiC-O: resultsIn for activity outcomes. ' - range: ExhibitedObject + range: string # uriorcurie + # range: ExhibitedObject multivalued: true slot_uri: hc:objectsAdded annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/objects_affected.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/objects_affected.yaml index b508d9edcb..b0bb59a7f5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/objects_affected.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/objects_affected.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ExhibitedObject default_prefix: hc slots: objects_affected: description: "ExhibitedObject items processed or examined by this activity.\n\nPROV-O: used for entities consumed/processed by Activity.\n\nFor activities that touch specific objects (condition surveys, \nphotography, rehousing).\n" - range: ExhibitedObject + range: string # uriorcurie + # range: ExhibitedObject multivalued: true slot_uri: prov:used annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/objects_removed.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/objects_removed.yaml index a34d51a054..cab8660540 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/objects_removed.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/objects_removed.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ExhibitedObject default_prefix: hc slots: objects_removed: @@ -27,7 +26,8 @@ slots: Track removal reason in activity_description. ' - range: ExhibitedObject + range: string # uriorcurie + # range: ExhibitedObject multivalued: true slot_uri: hc:objectsRemoved annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/observation.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/observation.yaml index ecc4cd0aad..e5e8031140 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/observation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/observation.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/StorageCondition default_prefix: hc slots: observation: @@ -29,7 +28,8 @@ slots: measured conditions at specific points in time. ' - range: StorageCondition + range: string # uriorcurie + # range: StorageCondition multivalued: true slot_uri: hc:observations annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/observation_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/observation_id.yaml index 7b800bc183..423505fced 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/observation_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/observation_id.yaml @@ -19,7 +19,7 @@ default_prefix: hc slots: observation_id: identifier: true - range: uriorcurie + range: string # uriorcurie description: Unique identifier for this web observation. Mapped to dcterms:identifier as the standard property for resource identifiers. slot_uri: dcterms:identifier close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/observation_period.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/observation_period.yaml index 14e22aa1db..385aea7a7c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/observation_period.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/observation_period.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/TimeSpan default_prefix: hc slots: observation_period: @@ -29,7 +28,8 @@ slots: CIDOC-CRM: P4_has_time-span for temporal extent. ' - range: TimeSpan + range: string # uriorcurie + # range: TimeSpan slot_uri: hc:observationPeriod annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/observation_ref.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/observation_ref.yaml index 41420c65cf..43a7d1b2f0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/observation_ref.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/observation_ref.yaml @@ -29,7 +29,7 @@ slots: ' slot_uri: prov:wasGeneratedBy - range: uriorcurie + range: string # uriorcurie annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/observed_entity.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/observed_entity.yaml index 0aeb173805..d5add10d8c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/observed_entity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/observed_entity.yaml @@ -17,7 +17,7 @@ imports: default_prefix: hc slots: observed_entity: - range: uriorcurie + range: string # uriorcurie multivalued: true description: Entities extracted from this observation slot_uri: hc:observedEntities diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/observed_in.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/observed_in.yaml index ad2c2afdb5..30e4a313cf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/observed_in.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/observed_in.yaml @@ -19,7 +19,7 @@ slots: slot_uri: prov:wasDerivedFrom description: "WebObservation documenting where this entity was found.\n\n**PROVENANCE PATTERN**:\n\nLinks extracted entities to their source WebObservation, enabling:\n- Verification of extracted data against original source\n- Temporal tracking (when was this information observed?)\n- Source URL preservation\n- Extraction confidence documentation\n\n**Example Usage**:\n```yaml\nDonationScheme:\n scheme_id: \"https://nde.nl/ontology/hc/donation-scheme/rijksmuseum/vrienden\"\n scheme_name: \"Rijksmuseum Vrienden\"\n observed_in: \"https://nde.nl/ontology/hc/observation/web/2026-01-01/rijksmuseum-support\"\n\nWebObservation:\n observation_id: \"https://nde.nl/ontology/hc/observation/web/2026-01-01/rijksmuseum-support\"\n source_url: \"https://www.rijksmuseum.nl/nl/steun-het-rijksmuseum\"\n retrieved_on: \"2026-01-01T10:00:00Z\"\n```\n\n**Classes Using This Slot**:\n- DonationScheme - donation/membership programs\n- FundingRequirement - grant eligibility criteria\n- Other extracted\ \ entities with web provenance" - range: uriorcurie + range: string # uriorcurie exact_mappings: - prov:wasDerivedFrom comments: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/observer_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/observer_type.yaml index d83687ddc7..ad2a1d642a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/observer_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/observer_type.yaml @@ -35,7 +35,8 @@ slots: PROV-O: wasAssociatedWith links activity to responsible agent. ' - range: StorageObserverTypeEnum + range: string # uriorcurie + # range: StorageObserverTypeEnum slot_uri: hc:observerType annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/occurs_or_occurred_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/occurs_or_occurred_at.yaml index c12ad59602..ca9669fdc1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/occurs_or_occurred_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/occurs_or_occurred_at.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Place default_prefix: hc slots: occurs_or_occurred_at: @@ -25,10 +24,11 @@ slots: **Ontological Alignment**: - Primary: `crm:P7_took_place_at` - CIDOC-CRM event location - Close: `prov:atLocation` - PROV-O activity location - Close: `schema:location` - Schema.org generic location **Use Cases**: - Death events (DeceasedStatus) - Birth events - Organizational change events - Provenance events' - range: Place + range: string # uriorcurie + # range: Place slot_uri: crm:P7_took_place_at multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type exact_mappings: - crm:P7_took_place_at close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/offered_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/offered_by.yaml index 9a4adc63a6..b4a70af121 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/offered_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/offered_by.yaml @@ -17,7 +17,7 @@ imports: default_prefix: hc slots: offered_by: - range: uriorcurie + range: string # uriorcurie description: 'Heritage custodian that offers this donation scheme. Links to HeritageCustodian entity. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/offers_donation_scheme.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/offers_donation_scheme.yaml index ce0fcaf79c..27c4c6cb96 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/offers_donation_scheme.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/offers_donation_scheme.yaml @@ -18,7 +18,7 @@ default_prefix: hc slots: offers_donation_scheme: slot_uri: schema:makesOffer - range: uriorcurie + range: string # uriorcurie multivalued: true inlined_as_list: false description: "Donation and giving schemes offered by this heritage custodian.\n\nLinks to DonationScheme instances representing the various ways\nindividuals and organizations can financially support the institution.\n\nExamples:\n- Friends/membership schemes (Museumvriend, F\xF6rderverein)\n- Patron circles and benefactor programs\n- Object adoption (Adopt-a-Book, sponsor an artifact)\n- Legacy giving (bequests, endowments)\n- Corporate sponsorship\n- Crowdfunding campaigns\n\nInverse property: DonationScheme.offered_by \u2192 Custodian\n\nNote: Bidirectional relationship implemented via separate slots.\nNavigation: Custodian.offers_donation_schemes \u2192 DonationScheme\n DonationScheme.offered_by \u2192 Custodian\n" diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/offers_or_offered.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/offers_or_offered.yaml index 56e02c1f02..08db6badf5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/offers_or_offered.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/offers_or_offered.yaml @@ -55,7 +55,7 @@ slots: Provides structured link to TaxDeductibility class. ' - # range: Any + range: string # uriorcurie multivalued: true exact_mappings: - schema:offers diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/offers_or_offered_access.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/offers_or_offered_access.yaml index 2f167f93b8..6bbb30f5d8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/offers_or_offered_access.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/offers_or_offered_access.yaml @@ -61,7 +61,7 @@ slots: Classes narrow via slot_usage to Access class. ' - range: uriorcurie + range: string # uriorcurie implements: - owl:ObjectProperty required: false diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/official_institution_subtype.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/official_institution_subtype.yaml index a761af0c86..1e62486414 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/official_institution_subtype.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/official_institution_subtype.yaml @@ -24,7 +24,8 @@ slots: Each value links to a Wikidata entity describing a specific type. ' - range: OfficialInstitutionTypeEnum + range: string # uriorcurie + # range: OfficialInstitutionTypeEnum required: false multivalued: true comments: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/online_shop.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/online_shop.yaml index ef082f3b5a..e6323e762c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/online_shop.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/online_shop.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/AuxiliaryDigitalPlatform default_prefix: hc slots: online_shop: @@ -30,7 +29,8 @@ slots: May be null for physical-only retail operations. ' - range: AuxiliaryDigitalPlatform + range: string # uriorcurie + # range: AuxiliaryDigitalPlatform multivalued: true slot_uri: hc:onlineShop annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/operated_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/operated_by.yaml index 5d4a3e31df..0d10941857 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/operated_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/operated_by.yaml @@ -15,12 +15,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/EncompassingBody slots: operated_by: slot_uri: schema:maintainer description: "The EncompassingBody that operates/maintains this web portal.\n\n**RELATIONSHIP**: WebPortal \u2192 EncompassingBody\n\nWeb portals are typically operated by:\n- NetworkOrganisation: NDE operates Dataset Register, Archieven.nl\n- Consortium: ICARUS operates Monasterium.net\n- Cooperative: OCLC operates WorldCat\n- UmbrellaOrganisation: National library operates national union catalog\n\n**Examples**:\n- NDE Dataset Register \u2192 operated_by \u2192 NDE (NetworkOrganisation)\n- Archieven.nl \u2192 operated_by \u2192 KVAN/Erfgoed Leiden (NetworkOrganisation)\n- Deutsche Digitale Bibliothek \u2192 operated_by \u2192 DDB (NetworkOrganisation)\n- Europeana \u2192 operated_by \u2192 Europeana Foundation (NetworkOrganisation)" - range: EncompassingBody + range: string # uriorcurie + # range: EncompassingBody exact_mappings: - schema:maintainer related_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/operates_or_operated.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/operates_or_operated.yaml index 4205a9cdac..d84f86990a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/operates_or_operated.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/operates_or_operated.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Platform slots: operates_or_operated: name: operates_or_operated title: operates_or_operated description: Operates a platform or facility. slot_uri: schema:owns - range: Platform + range: string # uriorcurie + # range: Platform annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/organizational_structure.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/organizational_structure.yaml index cb1305848c..9a73f3e9be 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/organizational_structure.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/organizational_structure.yaml @@ -2,11 +2,11 @@ id: https://nde.nl/ontology/hc/slot/organizational_structure name: organizational_structure_slot imports: - linkml:types -- ../classes/OrganizationalStructure slots: organizational_structure: slot_uri: org:hasUnit - range: OrganizationalStructure + range: string # uriorcurie + # range: OrganizationalStructure multivalued: true description: "Informal organizational structure - operational departments, teams,\ndivisions, and groups that are NOT formally registered legal entities.\n\n**Key Distinction from GovernanceStructure**:\n- **GovernanceStructure** (on CustodianLegalStatus): FORMAL structure\n from legal registration (e.g., \"National Archives is agency under Ministry OCW\")\n- **OrganizationalStructure** (on Custodian): INFORMAL operational units\n (e.g., \"Digital Preservation Team\", \"Collections Department\")\n\n**W3C ORG Ontology**:\nUses `org:hasUnit` to link custodian to `org:OrganizationalUnit` instances.\n- Domain: org:FormalOrganization\n- Range: org:OrganizationalUnit\n- Definition: \"Indicates a unit which is part of this Organization\"\n\n**Why on Custodian, not CustodianLegalStatus?**:\n- Organizational units are operational/functional, not legal\n- Units can change frequently without legal reorganization\n- Multiple legal entities (branches) may share organizational units\n- Separates\ \ formal (legal) from informal (operational) concerns\n\n**Temporal Dynamics**:\nEach OrganizationalStructure has `valid_from`/`valid_to` dates to track\norganizational changes (department creation, mergers, dissolutions).\n\n**Example - National Archives**:\n```yaml\nCustodianLegalStatus:\n governance_structure: # FORMAL (from legal docs)\n structure_type: \"Government agency\"\n governance_body: \"Reports to Ministry OCW\"\n\nCustodian:\n organizational_structure: # INFORMAL (operational)\n - unit_name: \"Digital Preservation Department\"\n unit_type: \"DEPARTMENT\"\n staff_count: 15\n - unit_name: \"Public Services Team\"\n unit_type: \"TEAM\"\n```\n" diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/organized_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/organized_by.yaml index db53b33be1..c6b46fd621 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/organized_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/organized_by.yaml @@ -25,7 +25,7 @@ slots: For joint exhibitions, list all organizing institutions. ' - range: uriorcurie + range: string # uriorcurie multivalued: true slot_uri: schema:organizer annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/organizing_body.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/organizing_body.yaml index c2c852ef76..21e130cd8a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/organizing_body.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/organizing_body.yaml @@ -17,7 +17,7 @@ imports: default_prefix: hc slots: organizing_body: - range: uriorcurie + range: string # uriorcurie description: "The EncompassingBody organization that runs this project.\n\nURI reference to EncompassingBody entity (avoids circular dependency).\nFormat: https://nde.nl/ontology/hc/encompassing-body/{type}/{slug}\n\n**Inverse of EncompassingBody.projects**:\n- EncompassingBody \u2192 projects \u2192 Project[]\n- Project \u2192 organizing_body \u2192 EncompassingBody\n\nTypically a NetworkOrganisation or Consortium, but can be any\nEncompassingBody subclass.\n\n**Ontology Note**: Uses `schema:sponsor` - \"A person or organization\nthat supports a thing through a pledge, promise, or financial contribution.\"\nDomain includes Organization. `schema:organizer` was considered but\nits domain is restricted to Event, not Project.\n" slot_uri: hc:organizingBody annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/origin_period.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/origin_period.yaml index d5cb866d0a..0743d18411 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/origin_period.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/origin_period.yaml @@ -14,14 +14,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/TimeSpan default_prefix: hc slots: origin_period: description: 'Time period when this heritage form originated or first appeared. ' - range: TimeSpan + range: string # uriorcurie + # range: TimeSpan slot_uri: hc:originPeriod annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/originates_or_originated_from.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/originates_or_originated_from.yaml index b20fe0c376..c8687df3e1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/originates_or_originated_from.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/originates_or_originated_from.yaml @@ -24,7 +24,7 @@ slots: MIGRATED from `ecclesiastical_province` (partial) and other origin slots.' slot_uri: prov:wasDerivedFrom - # range: Any + range: string # uriorcurie multivalued: false exact_mappings: - prov:wasDerivedFrom diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/outbound_to.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/outbound_to.yaml index 14123b6212..b20754b66c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/outbound_to.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/outbound_to.yaml @@ -8,11 +8,11 @@ prefixes: linkml: https://w3id.org/linkml/ rdfs: http://www.w3.org/2000/01/rdf-schema# hc: https://nde.nl/ontology/hc/ -default_range: string +# default_range: string slots: outbound_to: slot_uri: rdfs:seeAlso - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/outdoor_site_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/outdoor_site_id.yaml index db166296cf..5fdb65f8b6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/outdoor_site_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/outdoor_site_id.yaml @@ -24,7 +24,7 @@ slots: Format: URI following NDE Heritage Custodian ontology conventions. ' - range: uriorcurie + range: string # uriorcurie identifier: true examples: - value: https://nde.nl/ontology/hc/aux/kroller-muller-sculpture diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/outdoor_site_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/outdoor_site_type.yaml index c58c43a3f5..0acf56840f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/outdoor_site_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/outdoor_site_type.yaml @@ -42,7 +42,8 @@ slots: - PLAZA_COURTYARD ' - range: OutdoorSiteTypeEnum + range: string # uriorcurie + # range: OutdoorSiteTypeEnum examples: - value: SCULPTURE_GARDEN description: Outdoor art display diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/overall_status.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/overall_status.yaml index e282acca4d..354bed04e6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/overall_status.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/overall_status.yaml @@ -29,7 +29,8 @@ slots: PREMIS: hasOutcome for preservation action results. ' - range: StorageConditionStatusEnum + range: string # uriorcurie + # range: StorageConditionStatusEnum slot_uri: hc:overallStatus annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/parent_corporation.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/parent_corporation.yaml index 754aa78cd5..baf842c841 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/parent_corporation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/parent_corporation.yaml @@ -13,7 +13,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: parent_corporation: slot_uri: schema:parentOrganization diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/parent_department.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/parent_department.yaml index 45c4acf2ed..6ee97e09e1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/parent_department.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/parent_department.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Department default_prefix: hc slots: parent_department: description: "Parent department in organizational hierarchy.\n\nW3C ORG: subOrganizationOf for hierarchical relationships.\n\nExample: \"Paper Conservation Lab\" is sub-department of \n\"Conservation Department\"\n" - range: Department + range: string # uriorcurie + # range: Department slot_uri: hc:parentDepartment annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/parent_society.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/parent_society.yaml index 21ffa318bf..366a6d50fb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/parent_society.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/parent_society.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/HeritageSocietyType slots: parent_society: slot_uri: hc:parentSociety description: "Links an AssociationArchive to the HeritageSocietyType whose records \nit preserves.\n\n**Semantic Meaning**:\n\nThis slot captures the relationship between an archive (the custodian)\nand the society/association that created/owns the archival records.\nThe parent society is the provenance agent - the organization whose\nactivities generated the records now held by the archive.\n\n**Use Case**:\n\nAn AssociationArchive holds records OF a heritage society. The archive\nis the custodian; the society is the provenance agent whose activities\nare documented in the records.\n\n**Constraints**:\n- Range MUST be HeritageSocietyType (S-type in GLAMORCUBESFIXPHDNT)\n- Captures \"records OF\" relationship, not \"operated BY\" relationship" - range: HeritageSocietyType + range: string # uriorcurie + # range: HeritageSocietyType close_mappings: - org:linkedTo comments: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/parent_unit.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/parent_unit.yaml index 115fd4fa2f..4b0bff51df 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/parent_unit.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/parent_unit.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/OrganizationalStructure slots: parent_unit: slot_uri: org:unitOf @@ -30,7 +29,8 @@ slots: - "Collections Division" is parent_unit of "Acquisitions Department" ' - range: OrganizationalStructure + range: string # uriorcurie + # range: OrganizationalStructure exact_mappings: - org:unitOf comments: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/part_of_collection.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/part_of_collection.yaml index 8b1d1e228d..0f24c902a5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/part_of_collection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/part_of_collection.yaml @@ -20,7 +20,7 @@ slots: description: 'Collection(s) to which this object belongs. ' - range: uriorcurie + range: string # uriorcurie slot_uri: crm:P46i_forms_part_of annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/part_of_custodian_collection.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/part_of_custodian_collection.yaml index 7d0a6cd8ee..11bf13acda 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/part_of_custodian_collection.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/part_of_custodian_collection.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CustodianCollection slots: part_of_custodian_collection: slot_uri: rico:isOrWasHolderOf @@ -27,7 +26,8 @@ slots: CIDOC-CRM: P46i_forms_part_of for part-whole relationship. ' - range: CustodianCollection + range: string # uriorcurie + # range: CustodianCollection required: false examples: - value: https://nde.nl/ontology/hc/custodian-collection/nationaal-archief diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/part_of_event.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/part_of_event.yaml index c28e8f2d0c..c37b7fb627 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/part_of_event.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/part_of_event.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/IntangibleHeritageEvent default_prefix: hc slots: part_of_event: @@ -24,7 +23,8 @@ slots: Performances can be standalone or part of a larger festival. ' - range: IntangibleHeritageEvent + range: string # uriorcurie + # range: IntangibleHeritageEvent slot_uri: schema:superEvent annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/part_of_facility.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/part_of_facility.yaml index e1295ac225..9697d16b3b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/part_of_facility.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/part_of_facility.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Storage default_prefix: hc slots: part_of_facility: @@ -24,7 +23,8 @@ slots: HC Ontology: `hc:isStorageSectionOf` ' - range: Storage + range: string # uriorcurie + # range: Storage slot_uri: hc:partOfFacility annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/part_of_storage.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/part_of_storage.yaml index 849a9bb49c..cbc72b2b91 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/part_of_storage.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/part_of_storage.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Storage default_prefix: hc slots: part_of_storage: @@ -24,7 +23,8 @@ slots: HC Ontology: `hc:isStorageSectionOf` (inverse of `hc:hasStorageSection`) ' - range: Storage + range: string # uriorcurie + # range: Storage slot_uri: hc:partOfStorage annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/part_of_zone.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/part_of_zone.yaml index e5f561d03c..662768033f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/part_of_zone.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/part_of_zone.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/EnvironmentalZone default_prefix: hc slots: part_of_zone: @@ -24,7 +23,8 @@ slots: HC Ontology: `hc:isStorageSectionOf` (inverse of `hc:hasStorageSection`) ' - range: EnvironmentalZone + range: string # uriorcurie + # range: EnvironmentalZone slot_uri: hc:partOfZone annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/participates_or_participated_in.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/participates_or_participated_in.yaml index 9b167c97df..45de503575 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/participates_or_participated_in.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/participates_or_participated_in.yaml @@ -15,14 +15,14 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Event slots: participates_or_participated_in: name: participates_or_participated_in title: participates_or_participated_in description: Participates in an event. slot_uri: prov:hadActivity - range: Event + range: string # uriorcurie + # range: Event multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/participating_custodian.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/participating_custodian.yaml index dd886f7736..bf301d0c5f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/participating_custodian.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/participating_custodian.yaml @@ -17,7 +17,7 @@ imports: default_prefix: hc slots: participating_custodian: - range: uriorcurie + range: string # uriorcurie multivalued: true description: "Heritage custodians participating in this project.\n\nURI references to Custodian entities (avoids circular dependency).\nFormat: https://nde.nl/ontology/hc/{abstracted-ghcid}\n\n**Inverse of Custodian.participated_in_projects**:\n- Project \u2192 participating_custodians \u2192 Custodian[]\n- Custodian \u2192 participated_in_projects \u2192 Project[]\n\n**Navigation Pattern**:\nFrom project, find all participating institutions.\nFrom custodian, find all projects they participated in.\n\n**Ontology Note**: Uses W3C ORG `org:hasMember` - \"Indicates a person\nwho is a member of the subject Organization.\" Since Project is modeled\nas an org:OrganizationalCollaboration (which is an Organization), this\nproperty is valid. Alternative was `schema:participant` but its domain\nis schema:Action, not Organization/Project.\n" slot_uri: hc:participatingCustodians diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/performance_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/performance_id.yaml index 81a219036b..b0fd8a6c0b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/performance_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/performance_id.yaml @@ -22,7 +22,7 @@ slots: Format: https://nde.nl/ontology/hc/heritage-performance/{slug} ' - range: uriorcurie + range: string # uriorcurie slot_uri: dcterms:identifier annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/performance_location.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/performance_location.yaml index e084452c9d..899f11a826 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/performance_location.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/performance_location.yaml @@ -14,14 +14,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CustodianPlace default_prefix: hc slots: performance_location: description: 'Location where this performance takes place. ' - range: CustodianPlace + range: string # uriorcurie + # range: CustodianPlace slot_uri: schema:location annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/performance_of.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/performance_of.yaml index 69c8fc1372..a43bf40e49 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/performance_of.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/performance_of.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/IntangibleHeritageForm default_prefix: hc slots: performance_of: @@ -24,7 +23,8 @@ slots: Links to the abstract performing arts tradition. ' - range: IntangibleHeritageForm + range: string # uriorcurie + # range: IntangibleHeritageForm slot_uri: crm:P2_has_type annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/performed_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/performed_by.yaml index 6f5f2250a4..27b1ba6839 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/performed_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/performed_by.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Custodian default_prefix: hc slots: performed_by: @@ -24,7 +23,8 @@ slots: Links to heritage groups (usually type I) that maintain the tradition. ' - range: Custodian + range: string # uriorcurie + # range: Custodian multivalued: true slot_uri: schema:performer annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/person_claim_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/person_claim_id.yaml index bf84fb6233..74886c26d2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/person_claim_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/person_claim_id.yaml @@ -17,7 +17,7 @@ slots: person_claim_id: slot_uri: dcterms:identifier identifier: true - range: uriorcurie + range: string # uriorcurie description: Unique identifier for this person claim annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/person_claim_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/person_claim_type.yaml index 454b5288d5..0c4cba4957 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/person_claim_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/person_claim_type.yaml @@ -17,7 +17,8 @@ imports: slots: person_claim_type: slot_uri: hc:personClaimType - range: PersonClaimTypeEnum + range: string # uriorcurie + # range: PersonClaimTypeEnum required: true description: 'Type of person claim. See PersonClaimTypeEnum. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/person_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/person_id.yaml index 6e841e1d37..2f52ac06cc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/person_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/person_id.yaml @@ -20,7 +20,7 @@ slots: slot_uri: dcterms:identifier description: "The persistent identifier for a Person entity in the NDE Heritage Custodian\nontology. This is the core identifier that serves as the hub connecting\nall observations and reconstructions related to this person.\n\n**FORMAT**:\n```\nhttps://nde.nl/ontology/hc/person/{person-slug}\n```\n\n**NAMING CONVENTION**:\n- Lowercase, hyphenated slug derived from preferred name\n- May include disambiguator (birth year, location, etc.)\n\n**EXAMPLES**:\n```\nhttps://nde.nl/ontology/hc/person/taco-dibbits\nhttps://nde.nl/ontology/hc/person/jan-de-vries-1985\nhttps://nde.nl/ontology/hc/person/maria-garcia-amsterdam\n```\n\n**HUB ARCHITECTURE**:\n\nThe Person hub pattern mirrors the Custodian hub pattern:\n- Person contains minimal data (essentially just person_id)\n- PersonObservation entities attach via refers_to_person\n- Multiple observations can document the same person\n- Person persists while observations evolve\n\n```\nPersonObservation \u2500\u2500refers_to_person\u2500\u2500\ > Person \u2500\u2500participated_in_events\u2500\u2500> Event\n \u2191 \u2191\n(from source A) (from source B)\nPersonObservation \u2500\u2500refers_to_person\u2500\u2500\u2500\u2518\n```\n\n**PICO ALIGNMENT**:\n- Person hub \u2192 pico:Person\n- PersonObservation \u2192 pico:PersonObservation\n- The distinction between hub (abstract identity) and observation (evidence) is core PICO" - range: uriorcurie + range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/person/[a-z0-9-]+$ diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/physical_location.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/physical_location.yaml index 55348e3dd0..5c4e59de4a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/physical_location.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/physical_location.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/AuxiliaryPlace default_prefix: hc slots: physical_location: @@ -36,7 +35,8 @@ slots: May be null for online-only retail operations. ' - range: AuxiliaryPlace + range: string # uriorcurie + # range: AuxiliaryPlace multivalued: true slot_uri: hc:physicalLocation annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/pipeline_stage.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/pipeline_stage.yaml index 326dea78cb..3f3d964e31 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/pipeline_stage.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/pipeline_stage.yaml @@ -18,7 +18,8 @@ imports: default_prefix: hc slots: pipeline_stage: - range: ExtractionPipelineStageEnum + range: string # uriorcurie + # range: ExtractionPipelineStageEnum description: 'Which stage of the extraction pipeline produced this claim. Following the 4-stage GLAM-NER pipeline: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/place_custodian_ref.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/place_custodian_ref.yaml index 5b990f0069..e7a3462b53 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/place_custodian_ref.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/place_custodian_ref.yaml @@ -29,7 +29,7 @@ slots: ' slot_uri: dcterms:references - range: uriorcurie + range: string # uriorcurie annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/place_designation.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/place_designation.yaml index 3811563960..82746b16a2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/place_designation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/place_designation.yaml @@ -2,7 +2,6 @@ id: https://nde.nl/ontology/hc/slot/place_designation name: place_designation_slot imports: - linkml:types -- ../classes/CustodianPlace slots: place_designation: slot_uri: schema:location @@ -30,7 +29,8 @@ slots: CIDOC-CRM: P53_has_former_or_current_location for place associations. ' - range: CustodianPlace + range: string # uriorcurie + # range: CustodianPlace required: false exact_mappings: - crm:P7_took_place_at diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/place_of_publication.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/place_of_publication.yaml index 0d8fdaeff1..79663c750d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/place_of_publication.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/place_of_publication.yaml @@ -14,14 +14,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CustodianPlace default_prefix: hc slots: place_of_publication: description: 'Place where the item was published/produced. ' - range: CustodianPlace + range: string # uriorcurie + # range: CustodianPlace slot_uri: schema:locationCreated annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/place_specificity.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/place_specificity.yaml index 9e3ce96f5c..a4b0f10ebd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/place_specificity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/place_specificity.yaml @@ -24,7 +24,8 @@ slots: - VAGUE: Unspecified ("the mansion") ' - range: PlaceSpecificityEnum + range: string # uriorcurie + # range: PlaceSpecificityEnum required: false exact_mappings: - gn:featureClass diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/platform_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/platform_id.yaml index 366b9845da..6e41f86057 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/platform_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/platform_id.yaml @@ -22,7 +22,7 @@ slots: Format: URI following NDE Heritage Custodian ontology conventions. ' - range: uriorcurie + range: string # uriorcurie required: false slot_uri: dcterms:identifier close_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/platform_of.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/platform_of.yaml index 35fa4ce881..783492608b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/platform_of.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/platform_of.yaml @@ -18,12 +18,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Custodian slots: platform_of: slot_uri: hc:platformOf description: The custodian that operates or owns this digital platform. - range: Custodian + range: string # uriorcurie + # range: Custodian comments: - Inverse of digital_platform (foaf:homepage) - Links platform back to its operating custodian diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/policy_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/policy_id.yaml index fd5e8c0227..90ca3c46f6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/policy_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/policy_id.yaml @@ -16,7 +16,7 @@ imports: slots: policy_id: slot_uri: dcterms:identifier - range: uriorcurie + range: string # uriorcurie identifier: true description: 'Unique identifier for a policy entity. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/portal_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/portal_id.yaml index 5ac9b6bc9f..261e9a677e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/portal_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/portal_id.yaml @@ -18,7 +18,7 @@ default_prefix: hc slots: portal_id: identifier: true - range: uriorcurie + range: string # uriorcurie description: 'Unique identifier for this web portal. Mapped to dcterms:identifier as the standard property for resource identifiers. Format: https://nde.nl/ontology/hc/portal/{scope}/{slug} diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/portal_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/portal_type.yaml index f8bce5b196..c74c5a8e31 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/portal_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/portal_type.yaml @@ -14,11 +14,11 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/WebPortalType default_prefix: hc slots: portal_type: - range: WebPortalType + range: string # uriorcurie + # range: WebPortalType description: 'Category of portal based on function and scope. See WebPortalType class hierarchy for full list. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/portal_type_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/portal_type_id.yaml index b7177d0849..eba745e33a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/portal_type_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/portal_type_id.yaml @@ -19,7 +19,7 @@ slots: portal_type_id: slot_uri: dcterms:identifier description: Portal Type Id for heritage custodian entities. - range: uriorcurie + range: string # uriorcurie annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/poses_or_posed_condition.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/poses_or_posed_condition.yaml index 4755c5ebad..3b2e5b4ae0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/poses_or_posed_condition.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/poses_or_posed_condition.yaml @@ -15,15 +15,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Condition default_prefix: hc slots: poses_or_posed_condition: description: "Conditions, requirements, or constraints that apply to something.\n\nThis slot captures access conditions, use restrictions, or other requirements\nthat must be met. Uses RiC-O temporal pattern for conditions that may\nchange over time.\n\n**SEMANTIC DISTINCTION**:\n- `poses_or_posed_condition`: Requirements/restrictions to access or use something\n- `has_or_had_condition`: Physical/preservation state of an object\n\n**Migration (2026-01-22)**:\n- `condition` \u2192 `poses_or_posed_condition` + `Condition` class\n- Per slot_fixes.yaml (Rule 53)\n" - range: Condition + range: string # uriorcurie + # range: Condition multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type slot_uri: rico:posesOrPosedCondition exact_mappings: - rico:posesOrPosedCondition diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/post_type_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/post_type_id.yaml index 8a6a36fdc7..5a01f844b4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/post_type_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/post_type_id.yaml @@ -17,7 +17,7 @@ slots: post_type_id: slot_uri: dcterms:identifier description: Unique identifier for this post type - range: uriorcurie + range: string # uriorcurie annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/posted_by_profile.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/posted_by_profile.yaml index 1501559b8e..be7ccb73cc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/posted_by_profile.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/posted_by_profile.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/SocialMediaProfile default_prefix: hc slots: posted_by_profile: @@ -27,7 +26,8 @@ slots: Links to SocialMediaProfile which in turn links to the Custodian hub. ' - range: SocialMediaProfile + range: string # uriorcurie + # range: SocialMediaProfile slot_uri: hc:postedByProfile annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/powers_platform.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/powers_platform.yaml index 2c1130d296..7187a38cf2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/powers_platform.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/powers_platform.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/DigitalPlatform default_prefix: hc slots: powers_platform: description: "DigitalPlatform(s) powered by this CMS deployment.\n\nCIDOC-CRM: P33_used_specific_technique - the CMS is the technique/procedure\nused to power the digital platform.\n\n**BIDIRECTIONAL RELATIONSHIP**:\n- Forward: CollectionManagementSystem \u2192 DigitalPlatform (powers_platform)\n- Reverse: DigitalPlatform \u2192 CollectionManagementSystem (powered_by_cms)\n\nOne CMS deployment may power multiple platforms:\n- Public website\n- Staff intranet\n- Mobile app backend\n- API service\n" - range: DigitalPlatform + range: string # uriorcurie + # range: DigitalPlatform slot_uri: hc:powersPlatform annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/preceding_activity.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/preceding_activity.yaml index a1d49a888c..2306e44bbf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/preceding_activity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/preceding_activity.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CurationActivity default_prefix: hc slots: preceding_activity: @@ -27,7 +26,8 @@ slots: Creates sequential chain of activities. ' - range: CurationActivity + range: string # uriorcurie + # range: CurationActivity slot_uri: prov:wasInformedBy annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/preservation_method.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/preservation_method.yaml index b28c32f805..62db31e325 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/preservation_method.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/preservation_method.yaml @@ -54,7 +54,8 @@ slots: - "Distillery logbooks (1823-present), Master distiller mentorship, Copper still preservation" ' - range: PreservationMethodEnum + range: string # uriorcurie + # range: PreservationMethodEnum slot_uri: dwc:preparations annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/preserves_or_preserved.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/preserves_or_preserved.yaml index 3e251ada99..cf3b6bf069 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/preserves_or_preserved.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/preserves_or_preserved.yaml @@ -64,7 +64,7 @@ slots: **Migrated From**: clear_thinking (2026-01-19) ' - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - rico:hasOrHadSubject diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/previous_observation.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/previous_observation.yaml index eec6ba2f9e..6ff225a120 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/previous_observation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/previous_observation.yaml @@ -17,7 +17,7 @@ imports: default_prefix: hc slots: previous_observation: - range: uriorcurie + range: string # uriorcurie description: Previous observation of the same URL for change tracking slot_uri: hc:previousObservation annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/price.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/price.yaml index 58359c27e7..8945069b66 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/price.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/price.yaml @@ -15,7 +15,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: price: description: Price value (numeric or formatted string with currency) diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/price_currency.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/price_currency.yaml index 3fbe14314d..e3e5db352a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/price_currency.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/price_currency.yaml @@ -15,7 +15,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: price_currency: description: 'Primary currency accepted (ISO 4217 code). diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/primary_audio_event_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/primary_audio_event_type.yaml index b5cc9c2d75..fd94d153de 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/primary_audio_event_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/primary_audio_event_type.yaml @@ -35,7 +35,8 @@ slots: - MIXED: Multiple analysis types combined ' - range: AudioEventTypeEnum + range: string # uriorcurie + # range: AudioEventTypeEnum slot_uri: hc:primaryAudioEventType annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/primary_heritage_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/primary_heritage_type.yaml index 35ff0139b8..05f4b0579e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/primary_heritage_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/primary_heritage_type.yaml @@ -23,7 +23,8 @@ slots: The single most relevant type for this person''s current role. ' - range: HeritageTypeEnum + range: string # uriorcurie + # range: HeritageTypeEnum slot_uri: hc:primaryHeritageType annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/primary_register.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/primary_register.yaml index 0f390e0e00..bd4499ffef 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/primary_register.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/primary_register.yaml @@ -16,12 +16,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/TradeRegister description: "Primary trade register where an entity is registered.\n\nLinks to TradeRegister class.\n\ngleif_base:isRegisteredIn - \"indicates the registry that something is registered in\"\ngleif_ra:BusinessRegistry - \"a registry for registering and maintaining \ninformation about business entities\"\n\nUsed for:\n- CustodianLegalStatus: Primary register where entity is registered\n- RegistrationNumber: Register that issued the number\n" slots: primary_register: slot_uri: gleif_base:isRegisteredIn - range: TradeRegister + range: string # uriorcurie + # range: TradeRegister required: false multivalued: false description: "Primary trade register where this entity is registered.\nLinks to TradeRegister class.\n\ngleif_base:isRegisteredIn - \"indicates the registry that something is registered in\"\ngleif_ra:BusinessRegistry - \"a registry for registering and maintaining \ninformation about business entities\"\n\nExamples: Netherlands Handelsregister, UK Companies Register, German HRB.\n" diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/primary_system.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/primary_system.yaml index 1f55152752..ff9fcce203 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/primary_system.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/primary_system.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/DigitalPlatform default_prefix: hc slots: primary_system: @@ -40,7 +39,8 @@ slots: Important for digital preservation planning. ' - range: DigitalPlatform + range: string # uriorcurie + # range: DigitalPlatform slot_uri: hc:primarySystem annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/processing_status.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/processing_status.yaml index f1dc567b42..189468d269 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/processing_status.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/processing_status.yaml @@ -19,7 +19,8 @@ default_prefix: hc slots: processing_status: description: "Current processing status of this operational archive.\n\n**See**: ArchiveProcessingStatusEnum for full status lifecycle.\n\n**Common progression**:\nUNPROCESSED \u2192 IN_APPRAISAL \u2192 IN_ARRANGEMENT \u2192 IN_DESCRIPTION \n\u2192 PROCESSED_PENDING_TRANSFER \u2192 TRANSFERRED_TO_COLLECTION\n" - range: ArchiveProcessingStatusEnum + range: string # uriorcurie + # range: ArchiveProcessingStatusEnum slot_uri: hc:processingStatus annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/proficiency_level.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/proficiency_level.yaml index 16683c7e5f..58b78ec672 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/proficiency_level.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/proficiency_level.yaml @@ -24,7 +24,8 @@ slots: ' slot_uri: schema:proficiencyLevel - range: LanguageProficiencyEnum + range: string # uriorcurie + # range: LanguageProficiencyEnum examples: - value: NATIVE_BILINGUAL description: Native or bilingual proficiency diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/profile_data.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/profile_data.yaml index 320328762e..66ca0b5062 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/profile_data.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/profile_data.yaml @@ -24,7 +24,7 @@ slots: See LinkedInProfileData class for field definitions. ' - range: uriorcurie + range: string # uriorcurie slot_uri: hc:profileData annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/profile_url.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/profile_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/profile_url.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/profile_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/protocol_name.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/protocol_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/protocol_name.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/protocol_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/protocol_version.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/protocol_version.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/protocol_version.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/protocol_version.yaml diff --git a/schemas/20251121/linkml/modules/slots/provider.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/provider.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/provider.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/provider.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/provides_or_provided.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/provides_or_provided.yaml index 37204dcdd9..323a3092ce 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/provides_or_provided.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/provides_or_provided.yaml @@ -22,7 +22,7 @@ slots: MIGRATED from `entity_types_covered` (via ContributingAgency) and `funding_program` (via OfficialInstitutionType).' slot_uri: schema:provider - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - schema:provider diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/provides_or_provided_provenance_to.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/provides_or_provided_provenance_to.yaml index 02cb1261a5..6038d8ae20 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/provides_or_provided_provenance_to.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/provides_or_provided_provenance_to.yaml @@ -37,7 +37,7 @@ slots: - Inverse of prov:used ' - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - prov:wasUsedBy diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/provides_or_provided_to.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/provides_or_provided_to.yaml index 7aa2971666..90e400e443 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/provides_or_provided_to.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/provides_or_provided_to.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Agent slots: provides_or_provided_to: name: provides_or_provided_to description: The entity to which something is provided or granted. slot_uri: schema:recipient - range: Agent + range: string # uriorcurie + # range: Agent multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/publishes_or_published.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/publishes_or_published.yaml index 3da7f58d2f..3007947f5f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/publishes_or_published.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/publishes_or_published.yaml @@ -21,7 +21,7 @@ slots: title: publishes_or_published description: The work or document published by an entity. slot_uri: schema:published - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/rate_value.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/rate_value.yaml index 3174c43353..f70be06793 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/rate_value.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/rate_value.yaml @@ -16,7 +16,7 @@ prefixes: org: http://www.w3.org/ns/org# imports: - linkml:types -default_range: string +# default_range: string slots: rate_value: slot_uri: qudt:value diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/reading_room_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/reading_room_type.yaml index 98b2361f1f..50756926a4 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/reading_room_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/reading_room_type.yaml @@ -40,7 +40,8 @@ slots: - Multimedia: AV materials ' - range: ReadingRoomTypeEnum + range: string # uriorcurie + # range: ReadingRoomTypeEnum examples: - value: GENERAL description: General reading room diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/receives_or_received.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/receives_or_received.yaml index 7795eb07e9..79162d4f01 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/receives_or_received.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/receives_or_received.yaml @@ -20,7 +20,7 @@ slots: name: receives_or_received description: Indicates that an entity receives or received something (e.g., funding, award, material). MIGRATED from funding_source per Rule 53. Follows RiC-O naming convention. slot_uri: frapo:isFundedBy - range: uriorcurie + range: string # uriorcurie multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/record_equivalent.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/record_equivalent.yaml index 161f01b9e4..92c7fff540 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/record_equivalent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/record_equivalent.yaml @@ -26,7 +26,7 @@ slots: enabling interoperability with archival description standards. ' - range: uriorcurie + range: string # uriorcurie slot_uri: skos:closeMatch examples: - value: rico:RecordSet diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/record_format.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/record_format.yaml index 77c8004005..fa0e0f3a39 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/record_format.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/record_format.yaml @@ -34,7 +34,8 @@ slots: - PROPRIETARY: Custom format ' - range: AuthorityRecordFormatEnum + range: string # uriorcurie + # range: AuthorityRecordFormatEnum required: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/record_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/record_id.yaml index ddbee14fbe..a02ad75b8c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/record_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/record_id.yaml @@ -22,7 +22,7 @@ slots: Format: https://nde.nl/ontology/hc/conservation/{object-slug}-{year}-{seq} ' - range: uriorcurie + range: string # uriorcurie slot_uri: dcterms:identifier annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/record_timespan.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/record_timespan.yaml index c62dca2362..843dacfcaf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/record_timespan.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/record_timespan.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/TimeSpan default_prefix: hc slots: record_timespan: @@ -23,7 +22,8 @@ slots: Use for treatments spanning multiple dates. ' - range: TimeSpan + range: string # uriorcurie + # range: TimeSpan slot_uri: crm:P4_has_time-span annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/record_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/record_type.yaml index 0debb41f31..eb2e1e63ce 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/record_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/record_type.yaml @@ -15,7 +15,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: record_type: description: 'Type of conservation record. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/refers_or_referred_to.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/refers_or_referred_to.yaml index bc0d33f362..a55abde7bb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/refers_or_referred_to.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/refers_or_referred_to.yaml @@ -48,7 +48,7 @@ slots: - Enables provenance chain traversal ' - range: uriorcurie + range: string # uriorcurie multivalued: true required: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_access_policy.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_access_policy.yaml index 587db5733b..c1f46a71ef 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_access_policy.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_access_policy.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/AccessPolicy default_prefix: hc slots: refers_to_access_policy: @@ -23,7 +22,8 @@ slots: Required for dark archives to document why access is denied. ' - range: AccessPolicy + range: string # uriorcurie + # range: AccessPolicy slot_uri: hc:refersToAccessPolicy annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_custodian.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_custodian.yaml index 006ec68bb3..fd0610ff68 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_custodian.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_custodian.yaml @@ -15,13 +15,13 @@ default_prefix: hc imports: - linkml:types - ../metadata -- ../classes/Custodian slots: refers_to_custodian: description: "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status\ \ ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n" slot_uri: dcterms:references - range: Custodian + range: string # uriorcurie + # range: Custodian required: true comments: - This property connects observations and reconstructions back to the abstract Custodian hub, allowing multiple views of the same entity to be linked together. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_legal_status.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_legal_status.yaml index a1dfb07a4b..165d130b8f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_legal_status.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_legal_status.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CustodianLegalStatus default_prefix: hc slots: refers_to_legal_status: @@ -32,7 +31,8 @@ slots: CustodianLegalStatus that will be created upon registration. ' - range: CustodianLegalStatus + range: string # uriorcurie + # range: CustodianLegalStatus slot_uri: hc:refersToLegalStatus annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_person.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_person.yaml index 8cbc843218..31b3af95df 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_person.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_person.yaml @@ -16,14 +16,14 @@ default_prefix: hc imports: - linkml:types - ../metadata -- ../classes/Person slots: refers_to_person: slot_uri: hc:refersToPersonHub description: "Links this PersonObservation to the central Person hub it describes.\n\n**HUB-OBSERVATION PATTERN (PICO)**:\n\nThe PiCo (Persons in Context) ontology establishes a fundamental distinction:\n- **Person** (hub): Abstract identity, minimal data, stable over time\n- **PersonObservation** (this class): Evidence-based data from specific sources\n\nMultiple observations from different sources, time periods, or institutions\ncan all refer to the same Person hub, building up a complete picture.\n\n```\nPersonObservation (LinkedIn 2024) \u2500\u2500refers_to_person\u2500\u2500\u2510\n \u2502\nPersonObservation (Annual Report 2020) \u2500\u2500refers_to\u2500\u2500> Person (hub)\n \u2502\nPersonObservation (Staff Directory 1995) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n**WHY THIS MATTERS**:\n\n1. **Cross-Institution Career\ \ Tracking**:\n Same person worked at Rijksmuseum (obs 1), Van Gogh Museum (obs 2).\n Both observations link to ONE Person hub.\n \n2. **Source Reconciliation**:\n LinkedIn says \"Director\", annual report says \"General Director\".\n Both are valid observations of the same Person - no need to choose.\n \n3. **Temporal Evolution**:\n Person's title changed over time. Each observation captures a snapshot.\n Hub provides stable identity anchor.\n\n**USAGE**:\n\n```yaml\nPersonObservation:\n person_name: \"Taco Dibbits\"\n role_title: \"General Director\"\n unit_affiliation: \".../org-unit/rm-executive\"\n refers_to_person: \"https://nde.nl/ontology/hc/person/taco-dibbits\"\n observation_source:\n source_type: \"Staff directory\"\n observation_date: \"2025-01-15\"\n```\n\n**RELATIONSHIP TO OTHER PATTERNS**:\n\n| From | Slot | To | Purpose |\n|------|------|----|---------|\n| CustodianObservation | refers_to_custodian | Custodian | Org observation \u2192 org\ \ hub |\n| PersonObservation | **refers_to_person** | **Person** | Person observation \u2192 person hub |\n| Event | involved_actors | Person/Custodian | Event \u2192 participants |\n| Person | participated_in_events | Event | Person \u2192 events (inverse) |\n\n**See**: modules/classes/Person.yaml for Person hub class\n**See**: modules/slots/refers_to_person.yaml for slot definition\n" - range: Person + range: string # uriorcurie + # range: Person required: false comments: - This property connects PersonObservation to the abstract Person hub, allowing multiple views of the same person (from different sources, time periods, or institutions) to be linked together. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_storage.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_storage.yaml index b6121fa241..00ee59b940 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_storage.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/refers_to_storage.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Storage default_prefix: hc slots: refers_to_storage: @@ -27,7 +26,8 @@ slots: PROV-O: used indicates entities used in activity. ' - range: Storage + range: string # uriorcurie + # range: Storage slot_uri: hc:refersToStorage annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/region.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/region.yaml index 272ef55bac..28b7c3b552 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/region.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/region.yaml @@ -16,7 +16,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string description: "Administrative region, state, province, or similar first-level subdivision.\n\nvCard: region - \"The region (e.g. state or province) associated with the \naddress of the object\"\n\nLOCN: adminUnitL2 - \"The name or names of a unit of administration where \na Local Administrative Unit (LAU) is responsible.\"\n\nSchema.org: addressRegion - \"The region in which the locality is.\"\n\nFor structured subregion references, use Subregion class with ISO 3166-2 code.\n\nExamples:\n- \"Noord-Holland\" (Dutch province)\n- \"California\" (US state)\n- \"England\" (UK constituent country)\n- \"NL-NH\" (ISO 3166-2 code)\n" slots: region: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/region_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/region_type.yaml index 18b8ccf6cf..848cc63080 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/region_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/region_type.yaml @@ -14,12 +14,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/TextType default_prefix: hc slots: region_type: description: 'Type of text region (on-screen text classification for OCR). MIGRATED: range changed from TextTypeEnum to TextType class per Rule 9 (enum-to-class promotion).' - range: TextType + range: string # uriorcurie + # range: TextType slot_uri: hc:regionType annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/register_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/register_type.yaml index 80be6e25aa..534afeacd3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/register_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/register_type.yaml @@ -39,7 +39,8 @@ slots: - MIXED: Multiple entity types in one register ' - range: RegisterTypeEnum + range: string # uriorcurie + # range: RegisterTypeEnum required: true slot_uri: schema:category annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/registers_or_registered.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/registers_or_registered.yaml index a778436f7b..b2e920e39d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/registers_or_registered.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/registers_or_registered.yaml @@ -10,13 +10,13 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Dataset slots: registers_or_registered: slot_uri: dcat:dataset description: Datasets registered in this catalog/register. - range: Dataset + range: string # uriorcurie + # range: Dataset multivalued: true - inlined: true + inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/registration_authority.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/registration_authority.yaml index ce83f39230..c341fe1e34 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/registration_authority.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/registration_authority.yaml @@ -2,11 +2,11 @@ id: https://nde.nl/ontology/hc/slot/registration_authority name: registration_authority_slot imports: - linkml:types -- ../classes/RegistrationAuthority slots: registration_authority: slot_uri: rov:hasRegisteredOrganization - range: RegistrationAuthority + range: string # uriorcurie + # range: RegistrationAuthority description: 'Primary registration authority for this entity. Links to RegistrationAuthority class. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/regulated_by_scheme.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/regulated_by_scheme.yaml index 3f2dc90eef..9fe9dca3ee 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/regulated_by_scheme.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/regulated_by_scheme.yaml @@ -18,7 +18,7 @@ default_prefix: hc slots: regulated_by_scheme: slot_uri: hc:regulatedByScheme - range: uriorcurie + range: string # uriorcurie multivalued: true description: "Tax or regulatory scheme(s) that govern an entity's fiscal treatment.\n\nThis generic slot connects entities (donation schemes, custodians, etc.)\nto formal regulatory frameworks that provide tax benefits, compliance\nrequirements, or legal status.\n\n**MIGRATION**: Replaces `tax_scheme` per slot_fixes.yaml revision.\nThe structured TaxScheme class provides:\n- Typed classification via TaxSchemeType hierarchy\n- Jurisdictional metadata\n- Tax benefit percentages\n- Regulatory body references\n\n**HERITAGE SECTOR CONTEXT**:\n\nHeritage institutions operate under various tax regimes:\n- Netherlands: ANBI (general), Cultural ANBI (125% deduction)\n- UK: Gift Aid, Cultural Gifts Scheme\n- USA: 501(c)(3), 501(c)(4)\n- Germany: Gemeinn\xFCtzigkeit\n- France: M\xE9c\xE9nat culturel\n\n**USAGE PATTERN**:\n\n```yaml\ndonation_scheme:\n regulated_by_scheme:\n - scheme_type: CULTURAL_ANBI\n jurisdiction: NL\n # MIGRATED 2026-01-24: deduction_percentage \u2192 offers_or_offered\ \ (Rule 53)\n offers_or_offered:\n - has_or_had_percentage:\n percentage_value: 125\n regulatory_body: Belastingdienst\n```\n\n**ONTOLOGY ALIGNMENT**:\n\n- schema:GovernmentService - Tax schemes as government services\n- org:Organization - Regulatory bodies as organizations\n- schema:Legislation - Legal basis for schemes\n" diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/regulates_or_regulated.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/regulates_or_regulated.yaml index b5bfa73040..d3c7b0d74c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/regulates_or_regulated.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/regulates_or_regulated.yaml @@ -50,11 +50,11 @@ slots: Multivalued - policies may regulate multiple entities/systems. ' - range: uriorcurie + range: string # uriorcurie required: false multivalued: true - inlined: true - inlined_as_list: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type related_mappings: - prov:wasInfluencedBy annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/related_agenda.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/related_agenda.yaml index ac23ece798..e49bf9893e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/related_agenda.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/related_agenda.yaml @@ -17,7 +17,7 @@ imports: default_prefix: hc slots: related_agenda: - range: uriorcurie + range: string # uriorcurie multivalued: true description: 'Related agendas - predecessors, successors, or complementary frameworks. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/related_call.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/related_call.yaml index 1118442a9b..f6d09efb60 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/related_call.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/related_call.yaml @@ -17,7 +17,7 @@ imports: default_prefix: hc slots: related_call: - range: uriorcurie + range: string # uriorcurie multivalued: true description: Related or predecessor/successor calls slot_uri: hc:relatedCalls diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/related_concept.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/related_concept.yaml index 972025ca9a..fa29e0b5c0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/related_concept.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/related_concept.yaml @@ -23,7 +23,7 @@ slots: Used for concepts that are related but not in a parent-child relationship. ' - range: uriorcurie + range: string # uriorcurie multivalued: true examples: - value: wd:Q1065413 diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/related_loan.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/related_loan.yaml index 43f971e14e..a48a3edc02 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/related_loan.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/related_loan.yaml @@ -20,7 +20,7 @@ slots: description: 'Loan associated with this condition record (for loan condition checks). ' - range: uriorcurie + range: string # uriorcurie slot_uri: hc:relatedLoan annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/related_types.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/related_types.yaml index 6f602175f4..6c09b0b76b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/related_types.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/related_types.yaml @@ -14,7 +14,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/RelatedType slots: related_types: slot_uri: skos:related @@ -26,9 +25,10 @@ slots: **Migrated from**: `**Related Types**:` sections. ' - range: RelatedType + range: string # uriorcurie + # range: RelatedType multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type annotations: source_section: '**Related Types**:' custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/relationship.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/relationship.yaml index 6dcf9e1dbf..ffdb283f31 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/relationship.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/relationship.yaml @@ -20,7 +20,8 @@ slots: relationship: slot_uri: dcterms:relation description: Type of relationship - range: RelationshipTypeEnum + range: string # uriorcurie + # range: RelationshipTypeEnum annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/represents_or_represented.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/represents_or_represented.yaml index 6fd1b8cbd1..256591710b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/represents_or_represented.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/represents_or_represented.yaml @@ -3,12 +3,12 @@ name: represents_or_represented title: represents_or_represented imports: - linkml:types -- ../classes/Artist slots: represents_or_represented: description: Represents an artist or entity. slot_uri: schema:sponsor - range: Artist + range: string # uriorcurie + # range: Artist multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/requirement_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/requirement_id.yaml index aece49dc2c..0996747476 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/requirement_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/requirement_id.yaml @@ -18,7 +18,7 @@ default_prefix: hc slots: requirement_id: identifier: true - range: uriorcurie + range: string # uriorcurie description: 'Unique identifier for this funding requirement. Format: https://nde.nl/ontology/hc/requirement/{call-slug}/{requirement-slug} diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/requirement_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/requirement_type.yaml index 45d74dc4cf..832840d924 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/requirement_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/requirement_type.yaml @@ -18,7 +18,8 @@ imports: default_prefix: hc slots: requirement_type: - range: FundingRequirementTypeEnum + range: string # uriorcurie + # range: FundingRequirementTypeEnum description: 'Category of requirement from FundingRequirementTypeEnum. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/requires_or_required.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/requires_or_required.yaml index e513905313..034d7c7dc1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/requires_or_required.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/requires_or_required.yaml @@ -42,7 +42,7 @@ slots: to narrow to specific requirement types (Appointment, Credential, etc.) ' - range: uriorcurie + range: string # uriorcurie multivalued: true exact_mappings: - rico:requiresOrRequired diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/research_center_subtype.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/research_center_subtype.yaml index dd80957adf..d387fb835f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/research_center_subtype.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/research_center_subtype.yaml @@ -24,7 +24,8 @@ slots: Each value links to a Wikidata entity describing a specific type. ' - range: ResearchCenterTypeEnum + range: string # uriorcurie + # range: ResearchCenterTypeEnum required: false multivalued: true comments: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/research_center_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/research_center_type.yaml index 78d999f0c1..6828ccdb86 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/research_center_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/research_center_type.yaml @@ -37,7 +37,8 @@ slots: See ResearchCenterTypeEnum for full list with Wikidata mappings. ' - range: ResearchCenterTypeEnum + range: string # uriorcurie + # range: ResearchCenterTypeEnum slot_uri: hc:researchCenterType annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/responsible_actor.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/responsible_actor.yaml index bf1034fbed..142a01c08f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/responsible_actor.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/responsible_actor.yaml @@ -14,7 +14,6 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/PersonObservation default_prefix: hc slots: responsible_actor: @@ -29,7 +28,8 @@ slots: conservators, or external contractors. ' - range: PersonObservation + range: string # uriorcurie + # range: PersonObservation multivalued: true slot_uri: prov:wasAssociatedWith annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/responsible_agent.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/responsible_agent.yaml index 61ca2c56a5..0825caf895 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/responsible_agent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/responsible_agent.yaml @@ -2,11 +2,11 @@ id: https://nde.nl/ontology/hc/slot/responsible_agent name: responsible_agent_slot imports: - linkml:types -- ../classes/ReconstructionAgent slots: responsible_agent: slot_uri: prov:wasAssociatedWith - range: ReconstructionAgent + range: string # uriorcurie + # range: ReconstructionAgent description: 'ReconstructionAgent responsible for reconstruction (REQUIRED). PROV-O: wasAssociatedWith links Activity to responsible ReconstructionAgent. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/responsible_legal_entity.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/responsible_legal_entity.yaml index 41856bc712..efdec9fa25 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/responsible_legal_entity.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/responsible_legal_entity.yaml @@ -17,11 +17,11 @@ default_prefix: hc imports: - linkml:types - ../metadata -- ../classes/CustodianLegalStatus slots: responsible_legal_entity: slot_uri: tooi:verantwoordelijke - range: CustodianLegalStatus + range: string # uriorcurie + # range: CustodianLegalStatus required: true description: "Custodian legal entity that bears LEGAL RESPONSIBILITY for this collection.\n\n**TOOI Definition**: \"Overheidsorganisatie die de wettelijke verantwoordelijkheid \ndraagt voor de inhoud (strekking) van het informatieobject\"\n\nMaps information objects (collections) to the legal entity (organization or person)\nthat has formal legal accountability for their custody, preservation, and management.\n\n**Requirements**:\n- MUST reference a CustodianLegalStatus instance (formal legal entity)\n- Legal entity MUST have registration_numbers (unless natural person)\n- Legal responsibility MUST be documented (see legal_responsibility_basis)\n\n**Temporal Consistency**:\n- Collection valid_from MUST be >= legal_entity.registration_date\n- Collection valid_to MUST be <= legal_entity.dissolution_date (if dissolved)\n- During custody transfers, create NEW LegalResponsibilityCollection instance\n\n**Bidirectional Relationship**:\n- **Forward**: LegalResponsibilityCollection \u2192 CustodianLegalStatus\ \ (responsible_legal_entity)\n- **Reverse**: CustodianLegalStatus \u2192 LegalResponsibilityCollection (collections_under_responsibility)\n\n**Distinction from refers_to_custodian**:\n- `responsible_legal_entity`: Points to LEGAL ASPECT (CustodianLegalStatus)\n- `refers_to_custodian`: Points to HUB (Custodian)\n\nBoth link to the SAME custodian but different aspects:\n```yaml\nLegalResponsibilityCollection:\n responsible_legal_entity: \".../legal/rijksmuseum-foundation\" # Legal aspect\n refers_to_custodian: \".../custodian/nl-nh-ams-m-rm-q190804\" # Hub\n```\n" diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/retrieval_agent.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/retrieval_agent.yaml index b689d22b9b..843d7ac805 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/retrieval_agent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/retrieval_agent.yaml @@ -13,7 +13,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: retrieval_agent: description: 'Tool used to extract this data. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/revision_date.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/revision_date.yaml index a70f2fb499..b798281f63 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/revision_date.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/revision_date.yaml @@ -13,7 +13,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: revision_date: description: Date of most recent revision or update diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/role_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/role_id.yaml index a31f6d7dd5..6834d09cba 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/role_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/role_id.yaml @@ -19,7 +19,7 @@ slots: role_id: slot_uri: dcterms:identifier description: Role Id for heritage custodian entities. - range: uriorcurie + range: string # uriorcurie annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/route_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/route_id.yaml index 831869a9c4..09dca2f42a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/route_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/route_id.yaml @@ -19,7 +19,7 @@ slots: route_id: slot_uri: dcterms:identifier identifier: true - range: uriorcurie + range: string # uriorcurie description: 'Unique identifier for this thematic route. Format: https://nde.nl/ontology/hc/route/{agenda-slug}/{route-slug} diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/safeguarded_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/safeguarded_by.yaml index cbf0f9633f..8eec1a16f1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/safeguarded_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/safeguarded_by.yaml @@ -15,12 +15,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Custodian slots: safeguarded_by: slot_uri: crm:P109i_is_current_or_former_curator_of description: "Heritage custodian organizations that safeguard this intangible heritage form.\n\nWe use this to link IntangibleHeritageForm \u2192 Custodian\n\n**Usage**:\n\n- Links IntangibleHeritageForm to the Custodian entities that preserve it\n- Custodians with `institution_type = I` (Intangible Heritage Group) are typical safeguarders\n\n**Examples**:\n- Pride Amsterdam is safeguarded_by Stichting Amsterdam Gay Pride\n- Traditional Dutch baking is safeguarded_by Bakkerij van Maanen" - range: Custodian + range: string # uriorcurie + # range: Custodian multivalued: true inlined: false exact_mappings: diff --git a/schemas/20251121/linkml/modules/slots/sampling_protocol.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/sampling_protocol.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/sampling_protocol.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/sampling_protocol.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/scene_types_detected.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/scene_types_detected.yaml index efcce10ee1..97b6adbfba 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/scene_types_detected.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/scene_types_detected.yaml @@ -38,7 +38,8 @@ slots: - B_ROLL: Supplementary footage ' - range: SceneTypeEnum + range: string # uriorcurie + # range: SceneTypeEnum multivalued: true slot_uri: hc:sceneTypesDetected annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/scheme_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/scheme_id.yaml index ba57513d08..df679a4320 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/scheme_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/scheme_id.yaml @@ -18,7 +18,7 @@ default_prefix: hc slots: scheme_id: identifier: true - range: uriorcurie + range: string # uriorcurie description: 'Unique identifier for this donation scheme. Mapped to dcterms:identifier as the standard property for resource identifiers. Format: https://nde.nl/ontology/hc/donation-scheme/{custodian-slug}/{scheme-slug} diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/scheme_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/scheme_type.yaml index 001dfe08c8..5dfa2c1f44 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/scheme_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/scheme_type.yaml @@ -18,7 +18,8 @@ imports: default_prefix: hc slots: scheme_type: - range: DonationSchemeTypeEnum + range: string # uriorcurie + # range: DonationSchemeTypeEnum description: 'Category of donation scheme from DonationSchemeTypeEnum. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/scrape_method.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/scrape_method.yaml index 1e59ae921b..dfec3dab67 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/scrape_method.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/scrape_method.yaml @@ -32,7 +32,8 @@ slots: ' slot_uri: prov:wasAssociatedWith - range: ScrapeMethodEnum + range: string # uriorcurie + # range: ScrapeMethodEnum annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/served_by.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/served_by.yaml index 8969076f22..eeddfd7d23 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/served_by.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/served_by.yaml @@ -13,12 +13,12 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string slots: served_by: description: Provider entity that serves or hosts this resource slot_uri: schema:provider - range: uriorcurie + range: string # uriorcurie broad_mappings: - prov:wasAttributedTo annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/serves_finding_aid.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/serves_finding_aid.yaml index 135f946f84..fdddae26d2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/serves_finding_aid.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/serves_finding_aid.yaml @@ -19,9 +19,9 @@ slots: slot_uri: hc:servesFindingAids comments: - rico:isOrWasProviderOf does not exist in RiC-O - use hc namespace - range: uriorcurie + range: string # uriorcurie multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type description: "Finding aids hosted/served by this digital platform.\n\n**INVERSE RELATIONSHIP**:\n- Forward: FindingAid.served_by \u2192 DigitalPlatform/WebPortal (finding aid is served by platform)\n- Inverse: DigitalPlatform.serves_finding_aids \u2192 FindingAid[] (platform serves finding aids)\n\n**USE CASES**:\n1. \"What finding aids are available on this platform?\" \u2192 Follow serves_finding_aids\n2. \"Which platforms host EAD finding aids?\" \u2192 Query platforms with EAD-format finding aids\n3. Platform inventory: Map all finding aids served by each digital infrastructure\n\n**EXAMPLES**:\n- Archieven.nl serves 1000+ EAD finding aids\n- Archives Portal Europe serves finding aids from 30+ European countries\n- National Archives website serves collection guides and inventories\n\n**NOTE**: References FindingAid instances by URI. For full objects, \ndereference or query the FindingAid directly." examples: - value: https://nde.nl/ontology/hc/finding-aid/na/voc-inventory diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/serves_or_served.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/serves_or_served.yaml index b5bd15a5ce..b550d427cb 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/serves_or_served.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/serves_or_served.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/UserCommunity slots: serves_or_served: slot_uri: schema:audience @@ -33,7 +32,8 @@ slots: - Stakeholder groups ' - range: UserCommunity + range: string # uriorcurie + # range: UserCommunity multivalued: true exact_mappings: - schema:audience diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/service_area.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/service_area.yaml index 6481e95d76..d6471cf3ab 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/service_area.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/service_area.yaml @@ -14,15 +14,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ServiceArea slots: service_area: slot_uri: schema:areaServed description: "Geographic area(s) served by this heritage custodian.\n\n**Dutch Term**: \"Werkgebied\" - the operational territory where the custodian\nprovides services, collects materials, or has jurisdiction.\n\n**Use Cases**:\n\n1. **Archives (Werkgebied)**:\n - Provincial archive: Covers entire province\n - Regional archive: Covers specific municipalities\n - Municipal archive: Covers single city\n\n2. **Libraries (Service District)**:\n - Public library: Defined lending district\n - Academic library: May have national scope\n\n3. **Museums (Collection Scope)**:\n - Regional museum: Collects from specific area\n - National museum: Country-wide collection mandate\n\n**Multiple Service Areas**:\n\nA custodian may have multiple service areas:\n- Current service area (is_historical_boundary = false)\n- Historical service areas (is_historical_boundary = true)\n- Different service areas for different functions\n\n**Example - Noord-Hollands Archief**:\n\n```yaml\nservice_area:\n\ \ - service_area_name: \"NHA Provincial Coverage\"\n service_area_type: PROVINCIAL\n covers_subregions:\n - iso_3166_2_code: \"NL-NH\"\n - service_area_name: \"NHA Municipal Records (Haarlem)\"\n service_area_type: MUNICIPAL\n covers_settlements:\n - geonames_id: 2755003\n```" - range: ServiceArea + range: string # uriorcurie + # range: ServiceArea multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: 'service_area_id: https://nde.nl/ontology/hc/servicearea/nha-werkgebied diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/service_area_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/service_area_id.yaml index ac46fddbb6..6c68f95dbc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/service_area_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/service_area_id.yaml @@ -18,7 +18,7 @@ default_prefix: hc slots: service_area_id: identifier: true - range: uriorcurie + range: string # uriorcurie description: Unique identifier for this service area slot_uri: hc:serviceAreaId annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/service_area_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/service_area_type.yaml index 220ba37886..3163c7ab1d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/service_area_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/service_area_type.yaml @@ -18,7 +18,8 @@ imports: default_prefix: hc slots: service_area_type: - range: ServiceAreaTypeEnum + range: string # uriorcurie + # range: ServiceAreaTypeEnum slot_uri: dcterms:type description: 'Classification of the service area type. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/settlement.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/settlement.yaml index aeb0f558ac..b274996f85 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/settlement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/settlement.yaml @@ -5,11 +5,11 @@ description: "City, town, or municipality where place is located.\n\nLinks to Se \ GeoNames API\n" imports: - linkml:types -- ../classes/Settlement slots: settlement: slot_uri: schema:location - range: Settlement + range: string # uriorcurie + # range: Settlement required: false multivalued: false description: "City/town where this place is located (OPTIONAL).\n\nLinks to Settlement class with GeoNames numeric identifiers.\n\nGeoNames ID resolves ambiguity: 41 \"Springfield\"s in USA have different IDs.\n\nSchema.org: location for settlement reference.\n\nUse when:\n- Place is in a specific city (e.g., \"Amsterdam museum\" \u2192 GeoNames 2759794)\n- Feature types are city-specific (e.g., \"City of Pittsburgh historic designation\")\n- Maximum geographic precision needed\n\nExamples:\n- \"Amsterdam museum\" \u2192 settlement.geonames_id = 2759794\n- \"Pittsburgh designation\" \u2192 settlement.geonames_id = 5206379\n- \"Rio museum\" \u2192 settlement.geonames_id = 3451190\n\nNOTE: settlement must be within the specified country and subregion (if provided).\n\nGeoNames lookup: https://www.geonames.org/{geonames_id}/\n" diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/shop_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/shop_type.yaml index d4facaf689..998409112c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/shop_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/shop_type.yaml @@ -39,7 +39,8 @@ slots: Dublin Core: type for classification. ' - range: GiftShopTypeEnum + range: string # uriorcurie + # range: GiftShopTypeEnum slot_uri: hc:shopType annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/short_name.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/short_name.yaml index b2c250cf8c..17013c77cd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/short_name.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/short_name.yaml @@ -14,7 +14,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -default_range: string +# default_range: string description: 'Abbreviated/short form of a name, typically used for address component values. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/social_media_platform_type_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/social_media_platform_type_id.yaml index 14e25eb345..9739a893a7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/social_media_platform_type_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/social_media_platform_type_id.yaml @@ -17,7 +17,7 @@ slots: social_media_platform_type_id: slot_uri: dcterms:identifier description: Unique identifier for this platform type - range: uriorcurie + range: string # uriorcurie annotations: custodian_types: '["*"]' exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/social_media_profile_id.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/social_media_profile_id.yaml index 0fcda8e448..92b50fb4c0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/social_media_profile_id.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/social_media_profile_id.yaml @@ -22,7 +22,7 @@ slots: Format: URI following NDE Heritage Custodian ontology conventions. ' - range: uriorcurie + range: string # uriorcurie slot_uri: hc:socialMediaProfileId annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/source.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/source.yaml index b5e755675f..5c99d7f124 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/source.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/source.yaml @@ -5,7 +5,7 @@ imports: slots: source: slot_uri: prov:hadPrimarySource - range: uriorcurie + range: string # uriorcurie description: Source document where observation was recorded (REQUIRED) required: true exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/source_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/source_type.yaml index 0ed28b9b11..082e572166 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/source_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/source_type.yaml @@ -6,7 +6,8 @@ imports: slots: source_type: slot_uri: crm:P2_has_type - range: SourceDocumentTypeEnum + range: string # uriorcurie + # range: SourceDocumentTypeEnum description: 'Type of source document. CIDOC-CRM: P2_has_type links to E55_Type. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/source_uri.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/source_uri.yaml index fed4a8b418..6dbe8e862e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/source_uri.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/source_uri.yaml @@ -5,7 +5,7 @@ imports: slots: source_uri: slot_uri: dcterms:identifier - range: uriorcurie + range: string # uriorcurie description: 'URI or URL of the source document. Dublin Core: identifier for resource location. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/specialized_place.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/specialized_place.yaml index 2ab59d9d58..a97ce460a5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/specialized_place.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/specialized_place.yaml @@ -14,14 +14,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/ReconstructedEntity default_prefix: hc slots: specialized_place: description: "Link to a specialized place class instance for type-specific data.\n\n**CLASS-BASED TYPING SYSTEM**:\n\nWhile `auxiliary_place_type` provides basic classification via enum,\n`specialized_place` allows linking to a fully-typed specialized class\ninstance with type-specific slots and further classification enums.\n\n**Available Specialized Classes**:\n\n| has_auxiliary_place_type | specialized_place class | Type-specific features |\n|---------------------|------------------------|----------------------|\n| BRANCH_OFFICE | BranchOffice | service_types, parent_branch |\n| STORAGE_FACILITY | Storage | storage_conditions, climate_zones |\n| RESEARCH_CENTER | ResearchCenter | research_center_type enum |\n| EXHIBITION_SPACE | ExhibitionSpace | exhibition_space_type, linked gallery/museum types |\n| HISTORIC_BUILDING | HistoricBuilding | construction_date, heritage_designation, feature_type |\n| TEMPORARY_LOCATION | TemporaryLocation | reason enum, planned_end_date |\n| ADMINISTRATIVE_OFFICE\ \ | AdministrativeOffice | departments_hosted |\n| EDUCATION_CENTER | EducationCenter | education_provider_type |\n| CONSERVATION_LAB | ConservationLab | conservation_specialties |\n| READING_ROOM | ReadingRoom | reading_room_type enum, capacity |\n| READING_ROOM_ANNEX | ReadingRoomAnnex | has_annex_reason enum, primary_reading_room |\n| WAREHOUSE | Warehouse | warehouse_type enum, total_capacity |\n| OUTDOOR_SITE | OutdoorSite | outdoor_site_type enum, bio/feature types |\n| RETAIL_SPACE | GiftShop | shop_types, product_categories |\n| CAFE_RESTAURANT | CateringPlace | catering_type enum, taste_scent_type |\n\n**EXAMPLE**:\n\n```yaml\nauxiliary_place_type: CONSERVATION_LAB\nspecialized_place:\n conservation_lab_id: \"https://nde.nl/hc/lab/rijksmuseum-paper-lab\"\n lab_name: \"Paper Conservation Laboratory\"\n conservation_specialties:\n - \"Paper conservation\"\n - \"Book binding restoration\"\n serves_institutions:\n - \"Rijksmuseum\"\n - \"Van Gogh Museum\"\n```\n\ \n**OPTIONALITY**:\n\nThis slot is OPTIONAL. Basic classification via `auxiliary_place_type`\nis sufficient for many use cases. Use `specialized_place` when:\n- You need type-specific attributes (e.g., storage conditions)\n- Further classification is needed (e.g., research_center_type)\n- Cross-referencing specialized resources\n" - range: ReconstructedEntity + range: string # uriorcurie + # range: ReconstructedEntity slot_uri: hc:specializedPlace annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/specifies_or_specified.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/specifies_or_specified.yaml index f25b5f6886..a49a3121c7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/specifies_or_specified.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/specifies_or_specified.yaml @@ -46,7 +46,7 @@ slots: - Formal specifications and criteria ' - # range: Any + range: string # uriorcurie multivalued: true required: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/staff_role.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/staff_role.yaml index 18b7617987..7593b6607f 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/staff_role.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/staff_role.yaml @@ -3,7 +3,6 @@ name: staff_role title: Staff Role imports: - linkml:types -- ../classes/StaffRole slots: staff_role: slot_uri: schema:roleName @@ -43,7 +42,8 @@ slots: See: modules/classes/StaffRole.yaml, modules/classes/StaffRoles.yaml ' - range: StaffRole + range: string # uriorcurie + # range: StaffRole exact_mappings: - org:role - schema:roleName diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/standards_applied.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/standards_applied.yaml index cb4bed902a..16f5d42a63 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/standards_applied.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/standards_applied.yaml @@ -29,7 +29,8 @@ slots: Dublin Core: conformsTo for standards compliance. ' - range: StorageStandardEnum + range: string # uriorcurie + # range: StorageStandardEnum multivalued: true slot_uri: hc:standardsApplied annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/standards_compliance.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/standards_compliance.yaml index c1712208fe..278a27ae37 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/standards_compliance.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/standards_compliance.yaml @@ -24,7 +24,8 @@ slots: Reference to StorageStandardEnum values. ' - range: StorageStandardEnum + range: string # uriorcurie + # range: StorageStandardEnum multivalued: true slot_uri: hc:standardsCompliance annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/start_of_the_start.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/start_of_the_start.yaml index 0bfb4448ed..1e764c13c8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/start_of_the_start.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/start_of_the_start.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Timestamp slots: start_of_the_start: slot_uri: crm:P82a_begin_of_the_begin @@ -43,7 +42,8 @@ slots: This slot created per slot_fixes.yaml revision requirements. ' - range: Timestamp + range: string # uriorcurie + # range: Timestamp exact_mappings: - crm:P82a_begin_of_the_begin aliases: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/starts_or_started_at_location.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/starts_or_started_at_location.yaml index 3f10e2dcce..75495c9bb5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/starts_or_started_at_location.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/starts_or_started_at_location.yaml @@ -15,7 +15,6 @@ prefixes: default_prefix: hc imports: - linkml:types -- ../classes/Location slots: starts_or_started_at_location: slot_uri: prov:atLocation @@ -50,10 +49,11 @@ slots: **Range**: Location class (structured location with name and coordinates) ' - range: Location + range: string # uriorcurie + # range: Location required: false multivalued: false - inlined: true + inlined: false # Fixed invalid inline for primitive type related_mappings: - crm:P27_moved_from - schema:fromLocation diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/statement_currency.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/statement_currency.yaml index a507425143..064df19dc5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/statement_currency.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/statement_currency.yaml @@ -8,7 +8,7 @@ prefixes: linkml: https://w3id.org/linkml/ schema: http://schema.org/ hc: https://nde.nl/ontology/hc/ -default_range: string +# default_range: string slots: statement_currency: slot_uri: hc:statement_currency diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/statement_description.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/statement_description.yaml index a9a62563e9..cdde988fbc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/statement_description.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/statement_description.yaml @@ -8,7 +8,7 @@ prefixes: linkml: https://w3id.org/linkml/ schema: http://schema.org/ hc: https://nde.nl/ontology/hc/ -default_range: string +# default_range: string slots: statement_description: slot_uri: hc:statement_description diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/statement_name.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/statement_name.yaml index 783c35428d..dbe5403a53 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/statement_name.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/statement_name.yaml @@ -8,7 +8,7 @@ prefixes: linkml: https://w3id.org/linkml/ schema: http://schema.org/ hc: https://nde.nl/ontology/hc/ -default_range: string +# default_range: string slots: statement_name: slot_uri: hc:statement_name diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/statement_type.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/statement_type.yaml index e719111793..f7585605c6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/statement_type.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/statement_type.yaml @@ -8,7 +8,7 @@ prefixes: linkml: https://w3id.org/linkml/ schema: http://schema.org/ hc: https://nde.nl/ontology/hc/ -default_range: string +# default_range: string slots: statement_type: slot_uri: hc:statement_type diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/states_or_stated.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/states_or_stated.yaml index 524dd4ecfd..0744d2a2af 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/states_or_stated.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/states_or_stated.yaml @@ -4,11 +4,11 @@ title: States or Stated description: The quantity or value stated by this entity. imports: - linkml:types -- ../classes/Quantity slots: states_or_stated: slot_uri: schema:value - range: Quantity + range: string # uriorcurie + # range: Quantity multivalued: true annotations: custodian_types: '["*"]' diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/stores_or_stored.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/stores_or_stored.yaml index 5f7737ca34..36be33997b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/stores_or_stored.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/stores_or_stored.yaml @@ -21,7 +21,7 @@ slots: slot_uri: crm:P55_has_former_or_current_keeper description: "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\n\ migration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n" - range: uriorcurie + range: string # uriorcurie required: false multivalued: true exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/supersedes_or_superseded.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/supersedes_or_superseded.yaml index 0f896b10e0..b06f653170 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/supersedes_or_superseded.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/supersedes_or_superseded.yaml @@ -17,7 +17,7 @@ imports: slots: supersedes_or_superseded: slot_uri: hc:supersedesOrSuperseded - range: uriorcurie + range: string # uriorcurie description: 'Entity that this one supersedes, or that supersedes this one. Use when a new version corrects or updates a previous one. Direction is determined by context - the slot represents the relationship in either direction. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/takes_or_took_comission.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/takes_or_took_comission.yaml index cdf4653981..3e66d3f12a 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/takes_or_took_comission.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/takes_or_took_comission.yaml @@ -13,14 +13,14 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/CommissionRate default_prefix: hc slots: takes_or_took_comission: slot_uri: schema:priceComponent description: "Commission rate taken on sales transactions.\n\n**PURPOSE**:\n\nLinks a service (like art sales) to its commission structure.\nUsed for modeling gallery commission on artwork sales.\n\n**RiC-O NAMING** (Rule 39):\n\nUses \"takes_or_took_\" prefix indicating temporal relationship - \ncommission rates may change over time.\n\n**MIGRATION NOTE**:\n\nCreated from migration of `commission_rate` slot per slot_fixes.yaml.\nProvides structured commission representation via CommissionRate class.\n\n**NOTE**: Spelling \"comission\" matches revision specification per Rule 57.\n" - range: CommissionRate - inlined: true + range: string # uriorcurie + # range: CommissionRate + inlined: false # Fixed invalid inline for primitive type close_mappings: - schema:priceComponent examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/takes_or_took_place_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/takes_or_took_place_at.yaml index 64eee69d8a..49a125d5ac 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/takes_or_took_place_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/takes_or_took_place_at.yaml @@ -20,7 +20,7 @@ slots: takes_or_took_place_at: slot_uri: crm:P7_took_place_at description: "Location where an event takes or took place.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"takes_or_took\" phrasing indicates the location may be:\n- Current (ongoing events)\n- Historical (past events)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P7_took_place_at` - CIDOC-CRM event location\n - Domain: E4_Period (includes E5_Event)\n - Range: E53_Place\n\n**Usage**:\nLinks events to place references (CustodianPlace, GeoSpatialPlace, or generic Location).\nClass-level slot_usage narrows the range to specific place types as needed.\n\n**Examples**:\n- Merger event signed at headquarters \u2192 CustodianPlace\n- Natural disaster affecting region \u2192 GeoSpatialPlace\n- Exhibition opening \u2192 Location (generic)\n" - range: uriorcurie + range: string # uriorcurie required: false multivalued: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/temporal_extent.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/temporal_extent.yaml index 5a1f7fd9dd..76d8762b6b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/temporal_extent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/temporal_extent.yaml @@ -2,11 +2,11 @@ id: https://nde.nl/ontology/hc/slot/temporal_extent name: temporal_extent_slot imports: - linkml:types -- ../classes/TimeSpan slots: temporal_extent: slot_uri: crm:P4_has_time-span - range: TimeSpan + range: string # uriorcurie + # range: TimeSpan description: 'Temporal extent of reconstruction activity (start/end times with fuzzy boundaries). CIDOC-CRM: P4_has_time-span links Activity to TimeSpan. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/uses_or_used.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/uses_or_used.yaml index 787ed3cfc6..b6802aeaa5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/uses_or_used.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/uses_or_used.yaml @@ -41,7 +41,7 @@ slots: - Metadata standards (Dublin Core, MARC21, EAD) ' - range: uriorcurie + range: string # uriorcurie multivalued: true required: false exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/uses_or_used_technique.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/uses_or_used_technique.yaml index d0b321f525..a7c19178d6 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/uses_or_used_technique.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/uses_or_used_technique.yaml @@ -46,7 +46,7 @@ default_prefix: hc slots: uses_or_used_technique: slot_uri: crm:P32_used_general_technique - range: uriorcurie + range: string # uriorcurie multivalued: true description: 'Techniques used in an activity such as conservation treatment, production, or research. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/warrants_or_warranted.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/warrants_or_warranted.yaml index 43938fcf27..424ec9ddfc 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/warrants_or_warranted.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/warrants_or_warranted.yaml @@ -14,13 +14,13 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types -- ../classes/Claim default_prefix: hc slots: warrants_or_warranted: - range: Claim + range: string # uriorcurie + # range: Claim multivalued: true - inlined_as_list: true + inlined_as_list: false # Fixed invalid inline for primitive type slot_uri: hc:warrantsOrWarranted description: "Claims that warrant (support/justify) this entity or are warranted by it.\n\nFrom argumentation theory (Toulmin model):\n- Claims provide evidence that WARRANTS conclusions\n- A claim can be WARRANTED BY supporting evidence\n\nThis slot captures the bidirectional relationship between claims\nand the entities they support or are supported by.\n\n**Usage Patterns**:\n- WebEnrichment.warrants_or_warranted \u2192 WebClaim instances\n- ResearchSource.warrants_or_warranted \u2192 Claim instances\n- PersonProfile.warrants_or_warranted \u2192 PersonWebClaim instances\n\n**MIGRATION NOTE (2026-01-19)**:\nReplaces `claim` slot per slot_fixes.yaml (Rule 53/56).\nUses RiC-O temporal naming convention (warrants_or_warranted).\n" exact_mappings: diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/was_acquired_through.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/was_acquired_through.yaml index c94ff4e7e3..96908b6f24 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/was_acquired_through.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/was_acquired_through.yaml @@ -8,7 +8,7 @@ prefixes: linkml: https://w3id.org/linkml/ schema: http://schema.org/ hc: https://nde.nl/ontology/hc/ -default_range: string +# default_range: string slots: was_acquired_through: slot_uri: hc:was_acquired_through diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/was_fetched_at.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/was_fetched_at.yaml index 688f895285..5ffc44890b 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/was_fetched_at.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/was_fetched_at.yaml @@ -8,7 +8,7 @@ prefixes: linkml: https://w3id.org/linkml/ schema: http://schema.org/ hc: https://nde.nl/ontology/hc/ -default_range: string +# default_range: string slots: was_fetched_at: slot_uri: hc:was_fetched_at diff --git a/frontend/public/schemas/20251121/linkml/schema.json b/frontend/public/schemas/20251121/linkml/schema.json index 29eb6db5ee..e69de29bb2 100644 --- a/frontend/public/schemas/20251121/linkml/schema.json +++ b/frontend/public/schemas/20251121/linkml/schema.json @@ -1,139114 +0,0 @@ -{ - "$defs": { - "AATIdentifier": { - "additionalProperties": false, - "description": "Art & Architecture Thesaurus (Getty).", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "AAT", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "AAT ID", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "AATIdentifier", - "type": "object" - }, - "ANBI": { - "additionalProperties": false, - "description": "Algemeen Nut Beogende Instelling (General Public Benefit Institution).\n\nDutch tax status allowing donors to deduct donations from taxable income.\nHeritage institutions with ANBI status receive tax-free donations.\n\n**Benefits**:\n- Donors: 100% income tax deduction\n- Institution: No gift tax on donations received\n- Institution: No inheritance tax on bequests\n\n**Requirements**:\n- At least 90% of activities serve public benefit\n- No profit distribution to individuals\n- Published RSIN number and annual reports\n\n**Regulatory Body**: Belastingdienst", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ANBI", - "type": "object" - }, - "APIEndpoint": { - "additionalProperties": false, - "description": "Programmatic interface separate from main API. Developer tools,\nspecialized data access, experimental APIs.\n\n**PURPOSE**: Provide programmatic access to heritage data through\ndedicated API endpoints.\n\n**CHARACTERISTICS**:\n- RESTful or GraphQL\n- Authentication\n- Rate limiting\n- Documentation\n\n**EXAMPLES**: Collection APIs, search APIs, IIIF endpoints", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AUXILIARY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "APIEndpoint", - "type": "object" - }, - "APIEndpoint__identifier_optional": { - "additionalProperties": false, - "description": "Programmatic interface separate from main API. Developer tools,\nspecialized data access, experimental APIs.\n\n**PURPOSE**: Provide programmatic access to heritage data through\ndedicated API endpoints.\n\n**CHARACTERISTICS**:\n- RESTful or GraphQL\n- Authentication\n- Rate limiting\n- Documentation\n\n**EXAMPLES**: Collection APIs, search APIs, IIIF endpoints", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AUXILIARY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_name" - ], - "title": "APIEndpoint", - "type": "object" - }, - "APIProtocol": { - "additionalProperties": false, - "description": "API standard or protocol for data exchange.\nExamples: REST, GraphQL, SPARQL, OAI-PMH, IIIF", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "APIProtocol", - "type": "object" - }, - "AVEquipment": { - "additionalProperties": false, - "description": "AV Equipment.", - "properties": { - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AVEquipment", - "type": "object" - }, - "Abbreviation": { - "additionalProperties": false, - "description": "Label type for abbreviations and acronyms.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_code" - ], - "title": "Abbreviation", - "type": "object" - }, - "AbbreviationVariant": { - "additionalProperties": false, - "description": "Abbreviated form or acronym of a term.\n\n**Use Cases**:\n- Role abbreviations (\"Dir.\" for \"Director\")\n- Department abbreviations\n- Standard acronyms\n\n**Example**:\n```yaml\nhas_or_had_type:\n - has_or_had_label: \"Dir.\"\n has_or_had_type: AbbreviationVariant\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "AbbreviationVariant", - "type": "object" - }, - "AcademicArchive": { - "additionalProperties": false, - "description": "Archive of a higher education institution (university, college, polytechnic).", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "AcademicArchive", - "type": "object" - }, - "AcademicArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections of academic and higher education institutional records.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "description": "Structured scope definitions for AcademicArchiveRecordSetType. Formally documents what types of record sets are classified under this type. ", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AcademicArchiveRecordSetType", - "type": "object" - }, - "AcademicStudentRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for student records organized as archival series.\n\n**Definition**:\nRecords documenting the academic careers and activities of students, typically \norganized as series within a larger university fonds. Subject to retention \nschedules and privacy regulations (FERPA in US, GDPR in EU, AVG in NL).\n\n**Typical Contents**:\n- Enrollment and registration records\n- Academic transcripts and grade records\n- Graduation records and diploma registers\n- Disciplinary records\n- Financial aid records\n- Student organization records\n\n**Privacy Considerations**:\nAccess restrictions typically apply due to personally identifiable information.\nHistorical student records (typically 75+ years) may have fewer restrictions.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the series organizational principle as defined by rico-rst:Series\n(organizational level within the university fonds).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "description": "Structured scope definitions for AcademicArchiveRecordSetType. Formally documents what types of record sets are classified under this type. ", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "privacy_note": { - "const": "Subject to educational records privacy laws (FERPA, GDPR, AVG). Access restrictions typically apply for records less than 75 years old.", - "description": "Notes about privacy restrictions or access limitations.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the series principle. Typically a series within the university administration fonds or registrar's office fonds.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "AcademicStudentRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"faculty records\", \"research records\", \"administrative policy\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"enrollment records\", \"academic transcripts\", \"graduation records\", \"disciplinary records\", \"financial aid records\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AcademicStudentRecordSeries", - "type": "object" - }, - "AcademicYear": { - "additionalProperties": false, - "description": "A year period used by educational institutions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AcademicYear", - "type": "object" - }, - "Access": { - "additionalProperties": false, - "description": "Structured access information for heritage collections, services, or facilities.\n**Purpose**:\nReplaces simple string descriptions of access conditions with structured\ndata capturing access types, eligible users, conditions, and restrictions.\n**Key Properties**:\n- `has_or_had_type`: Type of access (PUBLIC, BY_APPOINTMENT, RESTRICTED, etc.)\n- `has_or_had_user_category`: Who can access (public, students, faculty, researchers)\n- `condition_of_access`: Conditions or requirements for access\n- `has_or_had_description`: Free-text description\n- `temporal_extent`: When this access policy applies\n**Access Types**:\n- PUBLIC: Open to general public\n- BY_APPOINTMENT: Requires advance appointment\n- ACADEMIC: Restricted to academic community\n- RESEARCHER: Restricted to credentialed researchers\n- MEMBER: Requires membership\n- RESTRICTED: Limited access with specific conditions\n- CLOSED: Not currently accessible\n- DIGITAL_ONLY: Available only in digital form\n**Ontological Alignment**:\n- **Primary**: `dcterms:RightsStatement` - Dublin Core rights statement\n- **Close**: `schema:publicAccess` - Schema.org access indicator\n- **Related**: `crm:E30_Right` - CIDOC-CRM rights", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_frequency": { - "anyOf": [ - { - "$ref": "#/$defs/Frequency" - }, - { - "type": "null" - } - ], - "description": "Links to an UpdateFrequency instance representing how often updates occur.\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming indicates that frequency can change over time: - IoT sensors may be reconfigured to different update rates - Data feeds may change from hourly to real-time - Systems may be optimized to reduce update frequency\n**REPLACES**: `update_frequency` (string slot)\n**IMPROVEMENT OVER STRING**: - Structured quantity (numeric value) - Structured time interval (ISO 8601 duration) - Event-driven vs time-based distinction - Machine-readable for analytics\n**USE CASES**: - IoT devices: Sensor update rates - Data feeds: Sync frequencies - APIs: Rate limiting and polling intervals" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/AccessTypeEnum" - }, - "type": "array" - }, - "has_or_had_user_category": { - "description": "Categories of users eligible for access.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_type" - ], - "title": "Access", - "type": "object" - }, - "AccessApplication": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AccessApplication", - "type": "object" - }, - "AccessCondition": { - "additionalProperties": false, - "description": "Condition or requirement for accessing materials.\nIncludes appointment requirements, reading room rules, \nregistration requirements, or other access stipulations.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AccessCondition", - "type": "object" - }, - "AccessInterface": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_url" - ], - "title": "AccessInterface", - "type": "object" - }, - "AccessLevel": { - "additionalProperties": false, - "description": "Access level concept.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AccessLevel", - "type": "object" - }, - "AccessPolicy": { - "additionalProperties": false, - "description": "Access policy defining conditions under which heritage collections can be accessed.\n\n**PURPOSE**:\n\nAccessPolicy captures the access conditions governing a Collection:\n- WHO can access (public, researchers, staff only)\n- HOW access is granted (open, by appointment, with credentials)\n- WHEN access is available (opening hours, embargo periods)\n- WHAT restrictions apply (fragile materials, privacy, cultural sensitivity)\n\n1. **PREMIS**:\n - `premis:RightsStatus` - \"Information about the rights status of an object.\"\n - Links to Collection via premis:rightsStatus\n\n2. **Dublin Core**:\n - `dcterms:accessRights` - \"Information about who may access the resource\n or an indication of its security status.\"\n\n3. **RiC-O**:\n - `rico:hasOrHadAllMembersWithAccessConditions` - Links RecordSet to access\n conditions applying to all members\n\n4. **RightsStatements.org**:\n - Standardized rights statements for cultural heritage\n - E.g., \"In Copyright\", \"No Copyright\", \"Unknown Copyright\"\n\n**ACCESS LEVEL TAXONOMY**:\n\n```\nAccessPolicy (root)\n \u2502\n \u251c\u2500\u2500 OpenAccess\n \u2502 \u251c\u2500\u2500 PUBLIC_OPEN - No restrictions, walk-in access\n \u2502 \u251c\u2500\u2500 PUBLIC_REGISTRATION - Free registration required\n \u2502 \u2514\u2500\u2500 PUBLIC_ONLINE - Digital access freely available\n \u2502\n \u251c\u2500\u2500 RestrictedAccess\n \u2502 \u251c\u2500\u2500 RESEARCHERS_ONLY - Academic researchers with credentials\n \u2502 \u251c\u2500\u2500 BY_APPOINTMENT - Advance booking required\n \u2502 \u251c\u2500\u2500 STAFF_ONLY - Internal access only\n \u2502 \u2514\u2500\u2500 PERMISSION_REQUIRED - Written permission needed\n \u2502\n \u251c\u2500\u2500 ClosedAccess\n \u2502 \u251c\u2500\u2500 TEMPORARILY_CLOSED - Renovation, conservation\n \u2502 \u251c\u2500\u2500 EMBARGOED - Time-limited closure\n \u2502 \u251c\u2500\u2500 PERMANENTLY_CLOSED - Not accessible\n \u2502 \u2514\u2500\u2500 REPATRIATED - Returned to community of origin\n \u2502\n \u2514\u2500\u2500 ConditionalAccess\n \u251c\u2500\u2500 CULTURALLY_SENSITIVE - Indigenous/sacred materials\n \u251c\u2500\u2500 PRIVACY_RESTRICTED - Personal data protection\n \u251c\u2500\u2500 FRAGILE_HANDLING - Special handling required\n \u2514\u2500\u2500 LEGAL_RESTRICTION - Copyright, legal constraints\n```\n\n**USE CASES**:\n\n1. **Archive Open Access**:\n ```yaml\n AccessPolicy:\n policy_id: \"hc:access-policy/nationaal-archief-open\"\n access_level: \"PUBLIC_OPEN\"\n access_description: \"Open to all visitors during reading room hours\"\n conditions: \"Valid ID required for registration\"\n ```\n\n2. **Restricted Research Materials**:\n ```yaml\n AccessPolicy:\n policy_id: \"hc:access-policy/university-special-collections\"\n access_level: \"RESEARCHERS_ONLY\"\n access_description: \"Academic researchers with institutional affiliation\"\n conditions: \"Letter of introduction required from supervising institution\"\n requires_appointment: true\n ```\n\n3. **Embargoed Collection**:\n ```yaml\n AccessPolicy:\n policy_id: \"hc:access-policy/donor-embargo-2050\"\n access_level: \"EMBARGOED\"\n access_description: \"Closed until 2050 per donor agreement\"\n embargo_end_date: \"2050-01-01\"\n embargo_reason: \"Donor privacy restrictions\"\n ```\n\n4. **Culturally Sensitive**:\n ```yaml\n AccessPolicy:\n policy_id: \"hc:access-policy/indigenous-protocols\"\n access_level: \"CULTURALLY_SENSITIVE\"\n access_description: \"Access governed by Traditional Knowledge protocols\"\n conditions: \"Consultation with originating community required\"\n cultural_protocol_url: \"https://localcontexts.org/tk-labels/\"\n ```\n\n**RELATIONSHIP TO DIM ARCHIVE**:\n\nDimArchive (Dark archive / Preservation-only storage) uses AccessPolicy to express:\n- Materials stored for preservation, not current access\n- Access restricted until triggering conditions (time, event)\n- \"Gray literature\" or un-catalogued backlogs awaiting processing", - "properties": { - "credentials_required": { - "description": "Type of credentials required for access.\n\nValues:\n- NONE: No credentials needed\n- INSTITUTIONAL: Affiliation with research institution\n- PROFESSIONAL: Professional membership (archivist, librarian)\n- ACADEMIC: Academic degree or enrollment\n- GOVERNMENT: Government clearance\n", - "type": [ - "string", - "null" - ] - }, - "cultural_protocol_url": { - "description": "URL to cultural protocol (for CULTURALLY_SENSITIVE materials).\n\nE.g., Local Contexts Traditional Knowledge labels.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_embargo_end_date": { - "description": "The date when an embargo or restriction ends.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "has_or_had_embargo_reason": { - "description": "The reason for an embargo or restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_level": { - "$ref": "#/$defs/AccessLevel", - "description": "Level or degree associated with an entity.\nGeneric slot for expressing levels of various kinds: - Approximation/uncertainty levels (EXACT, APPROXIMATE, ESTIMATED, etc.) - Arrangement levels in archival description - Severity levels - Confidence levels\nClass-specific slot_usage should narrow the range appropriately." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "imposes_or_imposed": { - "description": "Relates an entity (like a Requirement or Policy) to a constraint or condition it imposes (e.g., GeographicExtent, Embargo).\nMIGRATED from `eligible_country` (via ApplicantRequirement) and `embargo_*` slots.", - "items": { - "$ref": "#/$defs/Fee" - }, - "type": [ - "array", - "null" - ] - }, - "legal_basis": { - "description": "Legal basis for access restriction.\n\nPREMIS: statute for legal foundation.\n", - "type": [ - "string", - "null" - ] - }, - "policy_id": { - "description": "Unique identifier for a policy entity.\n\nUsed by:\n- AccessPolicy: access restrictions and permissions\n- StorageConditionPolicy: environmental conditions for storage\n- Other policy-related classes\n", - "type": "string" - }, - "policy_name": { - "description": "Human-readable name for a policy entity.\n\nExamples:\n- \"Restricted Access Policy\"\n- \"Climate-Controlled Storage Requirements\"\n- \"Public Domain Access\"\n", - "type": "string" - }, - "poses_or_posed_condition": { - "description": "Conditions, requirements, or constraints that apply to something.\n\nThis slot captures access conditions, use restrictions, or other requirements\nthat must be met. Uses RiC-O temporal pattern for conditions that may\nchange over time.\n\n**SEMANTIC DISTINCTION**:\n- `poses_or_posed_condition`: Requirements/restrictions to access or use something\n- `has_or_had_condition`: Physical/preservation state of an object\n\n**Migration (2026-01-22)**:\n- `condition` \u2192 `poses_or_posed_condition` + `Condition` class\n- Per slot_fixes.yaml (Rule 53)\n", - "items": { - "$ref": "#/$defs/Condition" - }, - "type": [ - "array", - "null" - ] - }, - "registration_required": { - "description": "Whether registration is required (even for free access).\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_appointment": { - "description": "Whether researchers must book an appointment in advance.\n\nSpecial collections rooms often require appointments.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_or_required": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/Appointment__identifier_optional" - }, - { - "type": "null" - } - ] - }, - "description": "Generic predicate indicating something is/was required.\n\nFollows RiC-O temporal naming convention (has_or_had, is_or_was, requires_or_required)\nto indicate the requirement relationship may be current or historical.\n\n**Usage**:\n- AccessPolicy requires_or_required Appointment\n- Collection requires_or_required SpecialHandling\n- ReadingRoom requires_or_required Registration\n\nThis slot provides the predicate; range is specified in class slot_usage\nto narrow to specific requirement types (Appointment, Credential, etc.)\n", - "type": [ - "object", - "null" - ] - }, - "review_date": { - "description": "Date when access policy should be reviewed.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "rights_statement": { - "description": "Rights statement text (from RightsStatements.org or similar).\n", - "type": [ - "string", - "null" - ] - }, - "rights_statement_url": { - "description": "URL to standardized rights statement (RightsStatements.org).\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_level", - "policy_id", - "policy_name" - ], - "title": "AccessPolicy", - "type": "object" - }, - "AccessTypeEnum": { - "description": "Types of access to collections or services", - "enum": [ - "ACADEMIC", - "BY_APPOINTMENT", - "CLOSED", - "DIGITAL_ONLY", - "MEMBER", - "MIXED", - "PUBLIC", - "RESEARCHER", - "RESTRICTED" - ], - "title": "AccessTypeEnum", - "type": "string" - }, - "AccessibilityInfoClaim": { - "additionalProperties": false, - "description": "Accessibility information for visitors.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "AccessibilityInfoClaim", - "type": "object" - }, - "AccessibilityMotivation": { - "additionalProperties": false, - "description": "Motivation for providing accessibility support.\n\n**DEFINITION**:\n\nAccessibilityMotivation describes annotations created to make\nheritage content accessible to users with disabilities.\n\n**HERITAGE-SPECIFIC MOTIVATION**:\n\nThis extends W3C Web Annotation with heritage accessibility needs.\nNot part of the standard oa: vocabulary but essential for inclusive\nheritage access.\n\n**USE CASES**:\n\n| Use Case | Example |\n|----------|---------|\n| Alt-text | Image descriptions for screen readers |\n| Audio description | Video narration for visually impaired |\n| Closed captions | Text for hearing impaired |\n| Sign language | Video interpretation |\n| Easy read | Simplified text versions |\n\n**HERITAGE CONTEXT**:\n\nHeritage institutions have accessibility obligations:\n- Museum audio guides and touch tours\n- Archive reading room accommodations\n- Library assistive technology support\n- Digital platform WCAG compliance\n\n**WCAG ALIGNMENT**:\n\nSupports Web Content Accessibility Guidelines:\n- WCAG 2.1 Success Criterion 1.1.1 (Non-text Content)\n- WCAG 2.1 Success Criterion 1.2 (Time-based Media)", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "motivation_type_description": { - "description": "Detailed description of an annotation motivation type including purpose, characteristics, and typical use cases.", - "type": [ - "string", - "null" - ] - }, - "motivation_type_id": { - "description": "Unique identifier for an annotation motivation type.", - "type": "string" - }, - "motivation_type_name": { - "const": "accessibility", - "description": "Canonical name for this motivation type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "motivation_type_id", - "motivation_type_name" - ], - "title": "AccessibilityMotivation", - "type": "object" - }, - "AccessibilityService": { - "additionalProperties": false, - "description": "Accessibility services for visitors with disabilities.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AccessibilityService", - "type": "object" - }, - "AccessionEvent": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "$ref": "#/$defs/TimeSpan", - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "temporal_extent" - ], - "title": "AccessionEvent", - "type": "object" - }, - "AccessionNumberIdentifier": { - "additionalProperties": false, - "description": "Accession number assigned upon acquisition.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "ACCESSION_NUMBER", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Accession Number", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "AccessionNumberIdentifier", - "type": "object" - }, - "Accumulation": { - "additionalProperties": false, - "description": "The relation/period during which the records were accumulated.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "Accumulation", - "type": "object" - }, - "AcquisitionEvent": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_method": { - "description": "A method associated with an activity, process, or entity.\n\n**USAGE**:\nUsed for:\n- HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod\n- Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod\n- API interaction methods\n\n**BROADENED RANGE**:\nRange broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55.\n", - "items": {}, - "type": [ - "array", - "null" - ] - }, - "has_or_had_origin": { - "$ref": "#/$defs/Entity", - "description": "Origin location, source, or starting point. MIGRATED from from_location per Rule 53. Follows RiC-O naming convention." - }, - "has_or_had_provenance": { - "description": "Provenance information for this data element.\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\nBroadened from ProvenanceBlock to uriorcurie to resolve OWL ambiguous type warnings. This allows classes to narrow via slot_usage to: - `ProvenanceBlock` for comprehensive provenance tracking - `SourceDocument` for source document references - String URIs for simple provenance references\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming follows RiC-O convention indicating that provenance associations can change over time: - Additional provenance may be added as data is enriched - Provenance may be updated when verification occurs - Historical provenance preserved through versioning\n**REPLACES**: - `all_data_real` (auto-generated stub, string range) - `is_or_was_real` (RealnessStatus typed class) - `has_all_data_real_flag` (boolean flag, no provenance) - `has_or_had_observation_source_document` (bespoke slot, Rule 55)\n**EXAMPLE**: ```yaml has_or_had_provenance:\n data_source: \"public_linkedin_profile\"\n extraction_date: \"2025-01-14T12:00:00Z\"\n confidence_score: 0.95\n note: \"Verified production data\"\n```", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_origin" - ], - "title": "AcquisitionEvent", - "type": "object" - }, - "AcquisitionMethod": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AcquisitionMethod", - "type": "object" - }, - "ActiveRecordsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Current/active records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "CurrentArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by CurrentArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ActiveRecordsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ActiveRecordsFonds", - "type": "object" - }, - "ActivistPapersCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Activist personal papers.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "LGBTArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by LGBTArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ActivistPapersCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ActivistPapersCollection", - "type": "object" - }, - "Activity": { - "additionalProperties": false, - "description": "Base class for activities performed by heritage custodians.\n\n**DEFINITION**:\n\nAn Activity represents a discrete or ongoing action undertaken by a heritage\ncustodian. This is the base class for all activity instances in the ontology.\n\n**ONTOLOGICAL ALIGNMENT**:\n\n| Ontology | Class | Use Case |\n|----------|-------|----------|\n| PROV-O | prov:Activity | Primary - provenance tracking |\n| CIDOC-CRM | crm:E7_Activity | Cultural heritage domain |\n| RiC-O | rico:Activity | Archival activities |\n| Schema.org | schema:Action | Web semantics |\n\n**KEY RELATIONSHIPS**:\n\n```\nActivity\n \u2502\n \u251c\u2500\u2500 has_or_had_activity_type \u2192 ActivityType (classification)\n \u2502 \u2514\u2500\u2500 CurationActivityType, ConservationActivityType, etc.\n \u2502\n \u251c\u2500\u2500 has_timespan \u2192 TimeSpan (temporal extent)\n \u2502 \u2514\u2500\u2500 start_date, end_date, fuzzy bounds\n \u2502\n \u251c\u2500\u2500 is_or_was_succeeded_by \u2192 Activity (succession)\n \u2502\n \u2514\u2500\u2500 preceding_activity \u2192 Activity (inverse succession)\n```\n\n**SPECIALIZATION**:\n\nThis base class is extended by domain-specific activity classes:\n- CurationActivity - Collection management (existing, to be refactored)\n- ConservationActivity - Preservation work\n- ExhibitionActivity - Exhibition planning and execution\n- DigitizationActivity - Digital transformation projects\n\n**PROVENANCE (PROV-O)**:\n\nActivities generate provenance information:\n- `prov:Activity` - The activity itself\n- `prov:wasAssociatedWith` - Responsible agents\n- `prov:used` - Entities processed\n- `prov:generated` - Entities created\n- `prov:atTime` - Temporal extent", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_status": { - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_succeeded_by": { - "description": "The activity, event, or entity that succeeds (follows) this one.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this is an\ninverse relationship - \"A isOrWasSucceededBy B\" means B follows A.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `rico:isOrWasSuccessorOf` - RiC-O predicate for\n succession relationships in archival contexts\n- **Close**: `crm:P134_continued` - CIDOC-CRM for temporal continuation\n- **Related**: `prov:wasInformedBy` - PROV-O for activity dependencies\n- **Related**: `schema:followup` - Schema.org for follow-up actions\n\n**Use Cases**:\n- Link activity phases: Phase 1 \u2192 Phase 2 \u2192 Phase 3\n- Track project continuation: 2024 inventory \u2192 2025 inventory\n- Document workflow: condition survey \u2192 conservation treatment\n\n**Inverse**:\nThe inverse relationship is `is_or_was_preceded_by` (or `preceding_activity`)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "note": { - "description": "Optional notes about the extraction process.\nMay reference raw source files or explain any issues.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "preceding_activity": { - "description": "CurationActivity that preceded and informed this one.\n\nPROV-O: wasInformedBy for dependency relationship.\n\nCreates sequential chain of activities.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "Activity", - "type": "object" - }, - "ActivityTypes": { - "additionalProperties": false, - "description": "Activity types container.", - "title": "ActivityTypes", - "type": "object" - }, - "Actor": { - "additionalProperties": false, - "description": "Involved actor.", - "properties": { - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_role": { - "description": "Role of an entity in a context (author role, agent role, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's role may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:roleName` - Schema.org role name\n- **Exact**: `org:role` - W3C Org role\n- **Close**: `prov:hadRole` - PROV-O role in activity\n\n**Usage**:\nFor authors: role in creating a work (AUTHOR, EDITOR, TRANSLATOR)\nFor agents: role in an activity or event\nFor participants: role in a project or organization\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow enum or class values.\nClasses may narrow via slot_usage to specific Role enums or classes.\n", - "type": [ - "string", - "null" - ] - } - }, - "title": "Actor", - "type": "object" - }, - "Address": { - "additionalProperties": false, - "description": "Physical or postal address for heritage custodians and related entities.\n**ONTOLOGY ALIGNMENT**:\nThis class aligns with multiple established address ontologies:\n| Ontology | Class | Notes |\n|----------|-------|-------|\n| **vCard** | `vcard:Address` | RFC6350 ADR property components |\n| **Schema.org** | `schema:PostalAddress` | Web semantics |\n| **LOCN** | `locn:Address` | EU Location Core Vocabulary |\n| **GLEIF** | `gleif_base:PhysicalAddress` | Legal entity addresses |\n**COMPONENT STRUCTURE**:\nAn address consists of hierarchical components:\n```\nAddress\n\u251c\u2500\u2500 has_or_had_section (e.g., \"1\", \"221B\", \"25-27\")\n\u251c\u2500\u2500 has_or_had_label (street name as Label, e.g., \"Museumstraat\")\n\u251c\u2500\u2500 postal_code (e.g., \"1071 XX\")\n\u251c\u2500\u2500 locality (e.g., \"Amsterdam\")\n\u251c\u2500\u2500 region (e.g., \"Noord-Holland\", \"NL-NH\")\n\u251c\u2500\u2500 country_name (e.g., \"Netherlands\", \"NL\")\n\u2514\u2500\u2500 has_or_had_label (formatted address as Label)\n```\nNOTE: street_name slot migrated to has_or_had_label + Label (2026-01-17, Rule 53/56)\nNOTE: street_address slot removed - was redundant string; use house_number + has_or_had_label (2026-01-17, Rule 53/56)\n**ADDRESS TYPES FOR HERITAGE CUSTODIANS**:\n| Type | Use Case |\n|------|----------|\n| `HEADQUARTERS` | Main organizational address |\n| `LEGAL` | Registered legal/business address |\n| `VISITING` | Public visitor entrance |\n| `MAILING` | Correspondence/postal address |\n| `STORAGE` | Depot, warehouse, off-site storage |\n| `BRANCH` | Branch office location |\n**USAGE EXAMPLES**:\n```yaml\n# Simple address with formatted string\nhas_or_had_address:\n - address_formatted: \"Museumstraat 1, 1071 XX Amsterdam, Netherlands\"\n address_type: HEADQUARTERS\n# Structured address with components\nhas_or_had_address:\n - has_or_had_label:\n - has_or_had_label: \"Museumstraat\"\n language: \"nl\"\n has_or_had_section:\n - has_or_had_value: \"1\"\n postal_code: \"1071 XX\"\n locality: \"Amsterdam\"\n region: \"Noord-Holland\"\n country_name: \"NL\"\n address_type: HEADQUARTERS\n latitude: 52.3600\n longitude: 4.8852\n geonames_id: 2759794\n```\n**RELATIONSHIP TO OTHER CLASSES**:\n- `AuxiliaryPlace`: Uses Address for structured address data\n- `CustodianPlace`: May reference Address for place location\n- `ContactPoint`: Uses Address for contact location\n- `Settlement`/`Subregion`/`Country`: Hierarchical geographic entities\n**PROVENANCE**:\nAddress data may be extracted from various sources (websites, Google Maps, \nregistries). Track provenance with:\n- `was_derived_from`: Link to source observation\n- `is_or_was_generated_by`: Link to extraction activity", - "properties": { - "country_name": { - "description": "Country name or ISO 3166-1 country code.\n\nvCard: country-name - \"The country name associated with the address of \nthe object\"\n\nPrefer ISO 3166-1 alpha-2 codes for machine processing (NL, US, GB).\nUse full name for human-readable addresses.\n\nFor structured reference, use Country class.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_section": { - "description": "Section or unit within an organization.", - "items": { - "$ref": "#/$defs/HouseNumber" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "type": [ - "string", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_located_in": { - "description": "links an entity to a place where it is or was located.\n\n**TEMPORAL SEMANTICS** (RiC-O style):\n\nThe \"is_or_was\" naming indicates that location can change over time.\n\n**BROADENED RANGE (Rule 55)**:\nRange broadened to `Any` (from City) to support multiple location types:\n- City / Settlement\n- Region / Province (e.g. EcclesiasticalProvince)\n- Country\n- Physical Site\n\n**DISTINCTION FROM is_or_was_located_within**:\n\n- `is_or_was_located_in`: Entity is AT a place (city/settlement level)\n- `is_or_was_located_within`: Entity is CONTAINED IN a larger place (hierarchical)\n\n**REPLACES**:\n\n- `city` (string slot) - Migrated to structured City class\n\n**USE CASES**:\n\n- Address city component (structured)\n- Auxiliary place city location\n- Any entity requiring city-level location\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "latitude": { - "description": "Geographic latitude (WGS84 coordinate).\n\nSchema.org: latitude for geographic positioning.\n", - "type": [ - "number", - "null" - ] - }, - "locality": { - "description": "City, town, or other locality name.\n\nvCard: locality - \"The locality (e.g. city or town) associated with \nthe address of the object\"\n\nAliases: city, town, village, municipal area.\n\nFor unambiguous identification, use Settlement class with GeoNames ID.\n", - "type": [ - "string", - "null" - ] - }, - "longitude": { - "description": "Geographic longitude (WGS84 coordinate).\n\nSchema.org: longitude for geographic positioning.\n", - "type": [ - "number", - "null" - ] - }, - "postal_code": { - "description": "Postal/ZIP code for this auxiliary place.\n\nvCard: postal-code for postal codes.\nAlso aligns with W3C Location locn:postCode.\n", - "type": [ - "string", - "null" - ] - }, - "region": { - "description": "State, province, region, or other first-level administrative subdivision.\n\nvCard: region - \"The region (e.g. state or province) associated with the \naddress of the object\"\n\nUse official name or ISO 3166-2 subdivision code (e.g., \"NL-NH\" for \nNoord-Holland, Netherlands).\n\nFor structured reference, use Subregion class.\n", - "type": [ - "string", - "null" - ] - } - }, - "title": "Address", - "type": "object" - }, - "AddressClaim": { - "additionalProperties": false, - "description": "Physical address (complete).\nExpected in: contact page, footer, structured data", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "AddressClaim", - "type": "object" - }, - "AddressType": { - "additionalProperties": false, - "description": "Classification type for Address purposes in heritage custodian contexts.\n\n**DEFINITION**:\n\nAddressType provides a SKOS-based classification hierarchy for categorizing\ndifferent types of addresses based on their purpose or function. This enables:\n- Rich metadata (descriptions, use cases)\n- Hierarchical relationships (broader/narrower types)\n- Extensibility (new types without enum modification)\n- Semantic alignment with vCard, GLEIF, and Schema.org ontologies\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **vCard** | `vcard:Type` | RFC6350 type codes (Home, Work) |\n| **GLEIF** | `gleif_base:hasAddressLegal`, `gleif_base:hasAddressHeadquarters` | Legal entity addresses |\n| **CIDOC-CRM** | `crm:E55_Type` | General type classification |\n| **SKOS** | `skos:Concept` | Controlled vocabulary concept |\n\n**ADDRESS TYPES FOR HERITAGE CUSTODIANS**:\n\n| Type | Use Case |\n|------|----------|\n| `HEADQUARTERS` | Main organizational address |\n| `LEGAL` | Registered legal/business address (KvK, Chamber of Commerce) |\n| `VISITING` | Public visitor entrance address |\n| `MAILING` | Correspondence/postal address |\n| `STORAGE` | Depot, warehouse, off-site storage facility |\n| `BRANCH` | Branch office location |\n| `READING_ROOM` | Public reading/research room entrance |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nAddress (physical address)\n \u2502\n \u2514\u2500\u2500 has_or_had_type \u2192 AddressType (THIS CLASS)\n \u251c\u2500\u2500 has_or_had_hypernym \u2192 AddressType (parent in hierarchy)\n \u251c\u2500\u2500 has_or_had_hyponym \u2192 AddressType[] (children)\n \u2514\u2500\u2500 has_or_had_description (text)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the address_type string slot with a proper class hierarchy.\nOld pattern: `address_type: HEADQUARTERS` (string)\nNew pattern: `has_or_had_type: AddressType` (object reference)", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/AddressType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/address-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/AddressType" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label" - ], - "title": "AddressType", - "type": "object" - }, - "AdministrativeBoundary": { - "additionalProperties": false, - "description": "Country, state, region, etc. (GeoNames class A)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AdministrativeBoundary", - "type": "object" - }, - "AdministrativeContent": { - "additionalProperties": false, - "description": "Administrative and governmental records.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "ADMINISTRATIVE", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Administrative Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "AdministrativeContent", - "type": "object" - }, - "AdministrativeCorrespondenceSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Official correspondence.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PublicArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PublicArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "AdministrativeCorrespondenceSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AdministrativeCorrespondenceSeries", - "type": "object" - }, - "AdministrativeExpenses": { - "additionalProperties": false, - "description": "General management and administrative costs.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AdministrativeExpenses", - "type": "object" - }, - "AdministrativeLevel": { - "additionalProperties": false, - "description": "A level or tier within an administrative or government hierarchy.\n\n**Examples**:\n- National/Federal\n- State/Provincial\n- Regional\n- Municipal/Local\n\n**Ontological Alignment**:\n- `skos:Concept`: Concept in a hierarchy scheme.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "AdministrativeLevel", - "type": "object" - }, - "AdministrativeOffice": { - "additionalProperties": false, - "description": "Non-public administrative building or office space of a heritage custodian.\n**DEFINITION**:\nAn AdministrativeOffice is a secondary physical location where a heritage custodian performs back-office, administrative, or support functions that do not directly serve the public. These locations typically house staff performing finance, HR, IT, management, or other operational activities.\n**W3C ORG ALIGNMENT**:\n`org:Site` - \"An office or other premise at which the organization is located.\"\nAdministrativeOffice specializes org:Site for non-public administrative spaces: - Financial/accounting departments - Human resources offices - IT infrastructure locations - Executive/management offices\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n| Type | Public Access | Primary Function | |------|---------------|------------------| | BranchOffice | Yes | Public service delivery | | **AdministrativeOffice** | No | Back-office operations | | ResearchCenter | Limited | Research/conservation | | Storage | No | Collection storage |\n**TYPICAL CHARACTERISTICS**:\n- **Staff-only access**: No public visitors - **Administrative functions**: Finance, HR, IT, management - **Separate from collections**: No collection materials stored - **Cost center**: Often in lower-cost location than main building\n**USE CASES**:\n1. **Separate Administrative Building**:\n - Museum finance department in office park\n - Archive IT/digitization support center\n\n2. **Executive Offices**:\n - Foundation board meeting space\n - Director's office separate from main building\n\n3. **Support Services**:\n - Facilities management office\n - Marketing/communications department\n\n**Example - Administrative Annex**: ```yaml AdministrativeOffice:\n has_admin_office_identifier: \"https://nde.nl/ontology/hc/aux/rijksmuseum-admin-zuidas\"\n has_admin_office_name: \"Rijksmuseum Administrative Offices - Zuidas\"\n has_admin_office_description: |\n Administrative support offices housing finance, HR, and IT departments.\n Staff access only. Located in Zuidas business district for cost efficiency.\n has_or_had_function:\n - function_category: ADMINISTRATIVE\n function_name: \"Finance and accounting\"\n - function_category: ADMINISTRATIVE\n function_name: \"Human resources\"\n - function_category: SUPPORT\n function_name: \"Information technology\"\n - function_category: ADMINISTRATIVE\n function_name: \"Legal affairs\"\n has_or_had_access_restriction: \"Staff badge required\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_function": { - "description": "Links an entity (e.g., AdministrativeOffice, OrganizationalUnit) to its organizational functions.\n**USAGE**:\n```yaml administrative_office:\n has_or_had_function:\n - function_category: ADMINISTRATIVE\n function_name: \"Finance and Accounting\"\n description: \"Financial operations and reporting\"\n - function_category: ADMINISTRATIVE\n function_name: \"Human Resources\"\n description: \"Staff management and recruitment\"\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC slot following slot_fixes.yaml revision. Do NOT create bespoke slots like `has_administrative_function` or `has_program_function`. Instead, use this single slot with FunctionType instances that have a `function_category` classification.\n**REPLACES**:\n- `administrative_functions` (deprecated stub) - `has_or_had_administrative_function` (bespoke, should not have been created)\n**ONTOLOGY ALIGNMENT**:\n- `org:purpose` - \"Indicates the purpose of this Organization\" - Maps to organizational function/role patterns in W3C ORG ontology", - "items": { - "$ref": "#/$defs/FunctionType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_staff": { - "items": { - "$ref": "#/$defs/Staff" - }, - "type": [ - "array", - "null" - ] - }, - "is_leased": { - "description": "Whether this administrative office is leased (TRUE) or owned (FALSE).\n\nHC Ontology: Custom property for space tenure status.\n\nAdministrative offices are often leased in commercial buildings\nrather than owned by the heritage organization. This boolean flag\nindicates tenure type:\n- TRUE: Space is leased from a third party (rental agreement)\n- FALSE: Space is owned by the heritage custodian organization\n\nNote: No standard ontology property exists for boolean tenure status.\nSchema.org `owns` expects an object, not a boolean value.\n", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "lease_expiry": { - "description": "Expiry date of lease agreement, if applicable.\n\nSchema.org: validThrough for temporal validity.\n\nOnly relevant if is_leased is TRUE.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AdministrativeOffice", - "type": "object" - }, - "AdmissionFee": { - "additionalProperties": false, - "description": "Admission fee.", - "title": "AdmissionFee", - "type": "object" - }, - "AdmissionInfoClaim": { - "additionalProperties": false, - "description": "Admission prices or policies.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "AdmissionInfoClaim", - "type": "object" - }, - "AdvertisingRadioArchive": { - "additionalProperties": false, - "description": "Sound archive specializing in advertising radio productions and commercials.\n\n**Wikidata**: Q60658673\n\n**Scope**:\nAdvertising radio archives preserve:\n- Radio commercials and jingles\n- Advertising campaigns for radio broadcast\n- Production materials (scripts, recordings, masters)\n- Historical radio advertising content\n\n**Related Types**:\n- SoundArchive (Q2230431) - Broader audio collection type\n- RadioArchive (Q109326271) - General radio broadcast archives\n- MediaArchive (Q116809817) - Broader media preservation", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AdvertisingRadioArchive", - "type": "object" - }, - "AdvertisingRadioArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections of advertising radio productions and commercials within heritage institutions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AdvertisingRadioArchiveRecordSetType", - "type": "object" - }, - "AestheticSignificance": { - "additionalProperties": false, - "description": "Aesthetic or artistic importance.\n\n**Aspects**:\n- Artistic merit\n- Architectural significance\n- Design innovation\n- Visual/sensory appeal\n\n**Use Cases**:\n- Art collections\n- Architectural heritage\n- Design archives\n\n**Example**:\n```yaml\nhas_or_had_significance:\n - has_or_had_type: AestheticSignificance\n has_or_had_description: \"Iconic Art Deco building, architectural landmark\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "AestheticSignificance", - "type": "object" - }, - "Age": { - "additionalProperties": false, - "description": "Represents an age or age range.\n\n**Examples**:\n- \"18 years\"\n- \"25-35 years\"\n\n**Ontological Alignment**:\n- `schema:QuantitativeValue`: Allows specifying value, minValue, maxValue, and unitCode.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "has_or_had_quantity" - ], - "title": "Age", - "type": "object" - }, - "AgencyAdministrativeFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Government agency operational records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "GovernmentArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by GovernmentArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "AgencyAdministrativeFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AgencyAdministrativeFonds", - "type": "object" - }, - "Agenda": { - "additionalProperties": false, - "description": "Agenda.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Agenda", - "type": "object" - }, - "Agent": { - "additionalProperties": false, - "description": "An agent (person, organization, or software) that performs actions.\n\n**RULE 53 MIGRATION**:\nReplaces simple string slots with a structured agent model:\n- `is_or_was_acquired_by` \u2192 Agent (this class)\n- Supports typed agents (person, organization, software)\n\n**USAGE**:\n```yaml\nis_or_was_acquired_by:\n - agent_name: \"Dr. Jane Smith\"\n agent_type: person\n has_or_had_identifier:\n - identifier_scheme: ORCID\n identifier_value: \"0000-0001-2345-6789\"\n```\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `prov:Agent` - PROV-O agent\n- **Close**: `foaf:Agent` - FOAF agent\n- **Close**: `schema:Person` / `schema:Organization` - Schema.org agents\n- **Close**: `dcterms:Agent` - Dublin Core agent\n\n**Use Cases**:\n- Specimen collectors (field biologists)\n- Artwork donors/sellers\n- Archive depositors\n- Record creators", - "properties": { - "agent_name": { - "description": "Name of the agent (person or organization name)", - "type": "string" - }, - "agent_role": { - "description": "Role of the agent in the action (collector, donor, creator, etc.)\n", - "type": [ - "string", - "null" - ] - }, - "agent_type": { - "description": "Type of agent: person, organization, software, group\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "agent_name" - ], - "title": "Agent", - "type": "object" - }, - "AgentTypeEnum": { - "description": "Types of agents that can perform actions, create observations, or be responsible\nfor activities in heritage custodian contexts. Based on FOAF, PROV-O, CIDOC-CRM E39 Actor,\nW3C Organization Ontology, CPOV, and PiCo ontologies.\n\n**Scope**: This enum is for PROVENANCE tracking (who performed data operations),\nNOT for heritage custodian classification. See CustodianType class hierarchy for the\n19-type GLAMORCUBESFIXPHDNT taxonomy of heritage institution types.", - "enum": [ - "PERSON", - "GROUP", - "ORGANIZATION", - "FORMAL_ORGANIZATION", - "PUBLIC_ORGANIZATION", - "ORGANIZATIONAL_UNIT", - "ORGANIZATIONAL_COLLABORATION", - "SOFTWARE" - ], - "title": "AgentTypeEnum", - "type": "string" - }, - "AggregatedOnlineDatabase": { - "additionalProperties": false, - "description": "Database that aggregates data from multiple sources and makes it\ncoherently available online.\n\n**PURPOSE**: Provide unified access to data aggregated from multiple\ncontributing institutions or systems.\n\n**CHARACTERISTICS**:\n- Multi-source data integration\n- Coherent data model\n- Online accessibility\n- Regular synchronization\n\n**EXAMPLES**: Union catalogs, federated databases, data hubs", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q110272188" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AGGREGATOR", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "AggregatedOnlineDatabase", - "type": "object" - }, - "Aggregator": { - "additionalProperties": false, - "description": "Provider that collects and stores data from other places.\n\n**PURPOSE**: Aggregate metadata and/or content from multiple heritage\ninstitutions to provide unified discovery and access.\n\n**CHARACTERISTICS**:\n- Harvests from multiple sources\n- Metadata normalization\n- Cross-collection search\n- Links back to source institutions\n\n**EXAMPLES**: Europeana, DPLA, Deutsche Digitale Bibliothek", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q393351" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AGGREGATOR", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "Aggregator", - "type": "object" - }, - "Agreement": { - "additionalProperties": false, - "description": "A formal agreement, contract, or treaty between parties.\n\n**Examples**:\n- Loan Agreement\n- Service Agreement\n- Memorandum of Understanding\n\n**Ontological Alignment**:\n- `schema:Contract`: A generic agreement.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_signed_on": { - "description": "The date when an agreement, contract, or document was signed.\n\n**Temporal Semantics** (RiC-O Pattern):\n\"isOrWas\" indicates the signing event in the past.\n\n**Ontological Alignment**:\n- `schema:dateCreated`: The date on which the CreativeWork was created or the item was added to a DataFeed.\n\n**Range**:\n- Can be a simple date string.\n- Can be a structured date object if needed.\n", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "Agreement", - "type": "object" - }, - "AirChanges": { - "additionalProperties": false, - "description": "Represents the rate of air changes in a space.\n\n**Ontological Alignment**:\n- `schema:QuantitativeValue`: Allows specifying value and unit.", - "properties": { - "has_or_had_quantity": { - "items": { - "type": "number" - }, - "type": "array" - }, - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": "string" - } - }, - "required": [ - "has_or_had_quantity", - "has_or_had_unit" - ], - "title": "AirChanges", - "type": "object" - }, - "AirQualityMeasurement": { - "additionalProperties": false, - "description": "General air quality measurement type for monitoring pollutants and particulates.\nMay include PM2.5, PM10, or composite air quality indices.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_measurement_unit": { - "anyOf": [ - { - "$ref": "#/$defs/MeasureUnit" - }, - { - "type": "null" - } - ], - "description": "The unit of measurement for a quantity value. Uses RiC-O temporal naming pattern to indicate the unit may be current or historical (e.g., if measurement standards changed over time).\n**QUDT**: qudt:unit - \"The unit of measure used to express the value of a Quantity.\"\n**USE CASES**: - Visitor counts: unit = \"visitors\", \"visitors/year\" - View counts: unit = \"views\", \"views/day\" - Collection sizes: unit = \"items\", \"objects\", \"linear meters\" - Area: unit = \"m\u00b2\", \"ha\", \"km\u00b2\" - Currency: unit = \"EUR\", \"USD\", \"GBP\"" - }, - "has_or_had_name": { - "const": "Air Quality", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "AirQualityMeasurement", - "type": "object" - }, - "Alignment": { - "additionalProperties": false, - "description": "Positioning or alignment information for content elements. Captures alignment, position values, and units.", - "properties": { - "has_or_had_alignment": { - "description": "Alignment or positioning information for content elements.\nFollows RiC-O temporal naming convention (Rule 39).\n\n**USE CASES**:\n- Caption/subtitle positioning (top, bottom, center)\n- Text alignment (left, right, center, justify)\n- Visual element positioning in layouts\n\n**MODELING**:\nUses Alignment class for structured representation including:\n- Horizontal alignment (left, center, right)\n- Vertical alignment (top, middle, bottom)\n- Custom positioning coordinates\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Alignment", - "type": "object" - }, - "AllocationAgency": { - "additionalProperties": false, - "description": "An organization that allocates identifiers within a specific geographic area \nand/or domain of heritage institutions.\n\n**Key Distinction from RegistrationAuthority:**\n\n- **RegistrationAuthority**: Maintains the GLOBAL registry for a standard\n - Example: Danish Agency for Culture and Palaces maintains global ISIL registry\n - Example: ISNI International Agency (WIPO) maintains global ISNI database\n\n- **AllocationAgency**: Allocates identifiers LOCALLY within constraints\n - Example: Koninklijke Bibliotheek allocates ISIL for Dutch public libraries\n - Example: OCLC allocates ISIL for Dutch academic libraries\n - Example: Nationaal Archief allocates ISIL for Dutch archives\n\n**Multi-Dimensional Scope:**\n\nAllocationAgencies have both:\n1. **Geographic scope**: Which country/region they serve\n2. **Domain scope**: Which types of institutions they serve\n\nThis allows multiple agencies per country, each serving different domains:\n- NL public libraries \u2192 KB\n- NL academic libraries \u2192 OCLC\n- NL archives \u2192 Nationaal Archief\n\n**Relationship to Standard:**\n\nAn AllocationAgency allocates for one or more Standards:\n- AllocationAgency.allocates_for \u2192 Standard[]\n- Standard can have multiple AllocationAgencies (one per country/domain)\n\n**Examples:**\n\n| Agency | Country | Domain | Standard |\n|--------|---------|--------|----------|\n| Koninklijke Bibliotheek | NL | Public libraries | ISIL |\n| OCLC | NL | Academic libraries | ISIL |\n| Nationaal Archief | NL | Archives | ISIL |\n| British Library | GB | All | ISIL |\n| Library of Congress | US | All | ISIL |\n| OCLC | Global | Academic | VIAF |\n| Deutsche Nationalbibliothek | DE | All | ISNI |\n\n**Ontology Alignment:**\n\n- org:FormalOrganization - W3C Organization Ontology\n- Extends gleif_base:RegistrationAuthority concept (but for allocation, not registration)", - "properties": { - "agency_description": { - "description": "Description of the agency's allocation services and scope", - "type": [ - "string", - "null" - ] - }, - "allocates_for": { - "description": "Standards for which this agency allocates identifiers.\n\nMost agencies allocate for a single standard, but some handle multiple.\n\nExamples:\n- KB: [ISIL]\n- DNB: [ISIL, ISNI]\n- OCLC: [ISIL, VIAF]\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "allocation_domain": { - "description": "Types of institutions this agency allocates identifiers for.\n\nMultiple values allowed for agencies serving multiple domains.\n\nExamples:\n- KB: [LIBRARY_PUBLIC]\n- OCLC: [LIBRARY_ACADEMIC, LIBRARY_RESEARCH]\n- Nationaal Archief: [ARCHIVE]\n- British Library: [LIBRARY_PUBLIC, LIBRARY_ACADEMIC, ARCHIVE] (all types)\n", - "items": { - "$ref": "#/$defs/AllocationDomainEnum" - }, - "type": "array" - }, - "allocation_end_date": { - "description": "Date when this agency stopped allocating (if no longer active).\n\nNull if still active.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "allocation_policy_url": { - "description": "URL to the allocation policy documentation.\n\nDescribes eligibility, process, requirements for obtaining identifiers.\n", - "type": [ - "string", - "null" - ] - }, - "allocation_prefix": { - "description": "Prefix used by this agency when allocating identifiers.\n\nFor ISIL, this is typically the country code.\n\nExamples:\n- Netherlands ISIL: \"NL-\"\n- Germany ISIL: \"DE-\"\n- UK ISIL: \"UK-\" or \"GB-\" (both used historically)\n", - "type": [ - "string", - "null" - ] - }, - "allocation_start_date": { - "description": "Date when this agency started allocating identifiers.\n\nFormat: ISO 8601 date\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "country_scope": { - "description": "Geographic area(s) where this agency allocates identifiers.\n\nUsually a single country, but can be multiple countries or subregions.\n\nExamples:\n- [NL] for Koninklijke Bibliotheek\n- [GB] for British Library\n- [US] for Library of Congress\n- [DE-BY, DE-BW] for regional German agency\n", - "items": { - "$ref": "#/$defs/Country" - }, - "type": "array" - }, - "has_or_had_abbreviation": { - "description": "Common abbreviation.\n\nExamples: \"KB\", \"NA\", \"BL\", \"LOC\", \"BnF\", \"DNB\"\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "id": { - "description": "Unique identifier for this allocation agency.\n\nRecommended format: {country}-{abbreviation} or {abbreviation}\n\nExamples: \"nl-kb\", \"nl-oclc\", \"nl-na\", \"gb-bl\", \"us-loc\"\n", - "type": "string" - }, - "is_active": { - "description": "Whether this agency is currently allocating identifiers", - "type": "boolean" - }, - "name": { - "description": "Official full name of the allocation agency.\n\nExamples:\n- \"Koninklijke Bibliotheek\"\n- \"Nationaal Archief\"\n- \"British Library\"\n- \"Library of Congress\"\n", - "type": "string" - }, - "name_local": { - "description": "Name in local language (if different from English name).\n\nExamples:\n- \"Koninklijke Bibliotheek\" (Dutch)\n- \"Deutsche Nationalbibliothek\" (German)\n- \"Biblioth\u00e8que nationale de France\" (French)\n", - "type": [ - "string", - "null" - ] - }, - "parent_registration_authority": { - "description": "The registration authority to which this agency reports allocations.\n\nAllocationAgencies report their allocations to the global RegistrationAuthority.\n\nExamples:\n- KB (NL ISIL) \u2192 Danish Agency for Culture and Palaces\n- DNB (DE ISNI) \u2192 ISNI International Agency\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "subregion_scope": { - "description": "Subregion-level geographic scope (if more specific than country).\n\nFor agencies that only serve specific regions within a country.\n\nExamples:\n- Staatsarchiv M\u00fcnchen: [DE-BY] (Bavaria only)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "website": { - "description": "Official website of the allocation agency.\n\nPreferably the page about identifier allocation services.\n\nNote: slot_uri changed from schema:url to hc:hasWebsite to resolve OWL ambiguous type warning. schema:url is typically a DatatypeProperty but range: uri in LinkML can be ambiguous.\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "name", - "country_scope", - "allocation_domain", - "allocates_for", - "is_active" - ], - "title": "AllocationAgency", - "type": "object" - }, - "AllocationDomainEnum": { - "description": "Types of heritage institutions that an AllocationAgency can serve.\n\nBased on GLAMORCUBESFIXPHDNT taxonomy but focused on allocation domains.", - "enum": [ - "LIBRARY_PUBLIC", - "LIBRARY_ACADEMIC", - "LIBRARY_RESEARCH", - "LIBRARY_NATIONAL", - "ARCHIVE", - "MUSEUM", - "GALLERY", - "HERITAGE_SOCIETY", - "RESEARCH_ORGANIZATION", - "EDUCATION_PROVIDER", - "RELIGIOUS_INSTITUTION", - "GOVERNMENT_AGENCY", - "ALL" - ], - "title": "AllocationDomainEnum", - "type": "string" - }, - "AllocationEvent": { - "additionalProperties": false, - "description": "An event representing the allocation of an identifier.\n\n**Ontological Alignment**:\n- `prov:Activity`: An activity that occurred over a period of time and acted upon or with entities.", - "properties": { - "temporal_extent": { - "$ref": "#/$defs/TimeSpan", - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "temporal_extent" - ], - "title": "AllocationEvent", - "type": "object" - }, - "Alpha2Code": { - "additionalProperties": false, - "description": "ISO 3166-1 alpha-2 country code (two-letter code).\n\n**DEFINITION**:\n\nA two-letter country code as defined by ISO 3166-1 alpha-2 standard.\nUsed for representing countries and dependent territories.\n\n**EXAMPLES**:\n- NL = Netherlands\n- BE = Belgium\n- DE = Germany\n- US = United States\n\n**ONTOLOGY ALIGNMENT**:\n- SKOS Concept: Codes are concepts in ISO 3166-1 vocabulary\n- Schema.org: addressCountry can use alpha-2 codes", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "pattern": "^[A-Z]{2}$", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code" - ], - "title": "Alpha2Code", - "type": "object" - }, - "Alpha3Code": { - "additionalProperties": false, - "description": "ISO 3166-1 alpha-3 country code (three-letter code).\n\n**DEFINITION**:\n\nA three-letter country code as defined by ISO 3166-1 alpha-3 standard.\nUsed for representing countries and dependent territories with more\nrecognizable abbreviations.\n\n**EXAMPLES**:\n- NLD = Netherlands\n- BEL = Belgium\n- DEU = Germany\n- USA = United States\n\n**ONTOLOGY ALIGNMENT**:\n- SKOS Concept: Codes are concepts in ISO 3166-1 vocabulary", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code" - ], - "title": "Alpha3Code", - "type": "object" - }, - "AlphabeticalArrangement": { - "additionalProperties": false, - "description": "Arranged alphabetically by name or title.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AlphabeticalArrangement", - "type": "object" - }, - "AlpineGardenSubtype": { - "additionalProperties": false, - "description": "Garden specialized in alpine and high-altitude plants.\nOften includes rock gardens and specialized microclimate areas.\n\n**Wikidata**: Q1429180", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AlpineGardenSubtype", - "type": "object" - }, - "AlternativeName": { - "additionalProperties": false, - "description": "Alternative name or alias for the entity.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_code" - ], - "title": "AlternativeName", - "type": "object" - }, - "Altitude": { - "additionalProperties": false, - "description": "The altitude of a place.", - "properties": { - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Altitude", - "type": "object" - }, - "AmbientStorageEnvironment": { - "additionalProperties": false, - "description": "Storage with minimal climate control. **PURPOSE**: Basic shelter storage where active HVAC is not available or cost-prohibitive. Building provides buffering from outdoor extremes. **CONDITIONS**: - Follow ambient environment - Building provides basic buffering - Seasonal fluctuations expected **MAY BE SUITABLE FOR**: - Large industrial objects - Stone and masonry objects - Agricultural equipment - Vehicles and transport **NOT SUITABLE FOR**: - Paper-based materials - Photographs and film - Textiles and organics - Temperature-sensitive materials **WARNING**: Not suitable for sensitive heritage materials. Use only when specialized storage unavailable.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "AMBIENT", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard": { - "description": "Reference to applicable ISO or EN standard for this environmental zone type.\n\nFormat: Standard identifier (e.g., \"ISO 11799\", \"ISO 18911\", \"EN 16893\")\n\nCommon preservation standards:\n- ISO 11799: Document storage requirements\n- ISO 18911: Film storage practices\n- ISO 18934: Multiple media archives storage\n- EN 16893: Heritage collection storage buildings\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "max_annual_light_exposure": { - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "requires_dark_storage": { - "description": "Whether dark (zero light) storage is required for this environmental zone.\n\nBased on ISO preservation standards:\n- Film storage (ISO 18911): Dark storage mandatory\n- Photographic (ISO 18920): Dark storage for extended-term\n- UK Archives (BS 4971): 0 lux for closed storage\n\nDark storage essential for:\n- Film negatives (especially color and early nitrate/acetate)\n- Daguerreotypes and early photographic processes\n- Cyanotypes and blueprint materials\n- Some magnetic media (tape)\n- Highly fugitive inks and dyes\n\nAccess provided through reading rooms or digitization requests.\nCumulative light damage is completely prevented.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_dust_free": { - "description": "Whether a dust-free or dust-controlled environment is required for this zone.\n\nBased on ISO preservation standards:\n- Magnetic tape (ISO 18923): Dust-free mandatory\n- Optical media (ISO 18938): Cleanroom for masters\n- Archives (ISO 11799): Dust control required\n\nISO 14644-1 Cleanliness Classes:\n- Class 8: General archive/museum (HEPA filtered)\n- Class 7: AV media storage (positive pressure)\n- Class 5: Digital master storage (cleanroom)\n\nDust-free essential for:\n- Magnetic tapes and audiovisual media\n- Optical discs (CD, DVD, Blu-ray)\n- Fine art and paintings (surface abrasion)\n- Photographic materials (scratches, embedded particles)\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_esd_protection": { - "description": "Whether electrostatic discharge (ESD) protection is required for this zone.\n\nBased on ISO/IEC standards:\n- Magnetic tape (ISO 18923): ESD protection required\n- Optical media (ISO 18938): ESD-safe handling mandatory\n- Electronics (IEC 61340-5-1): ESD control program\n\nESD protection measures include:\n- Conductive/dissipative flooring\n- Humidity control (40-60% RH reduces static)\n- ESD-safe packaging and equipment\n- Personnel grounding (wrist straps)\n\nESD protection essential for:\n- Hard drives and SSDs\n- LTO and other magnetic tapes\n- Optical media (CD, DVD, Blu-ray masters)\n- Electronic components and circuit boards\n- Born-digital heritage collections\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_uv_filter": { - "description": "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \u00b5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label", - "has_or_had_description" - ], - "title": "AmbientStorageEnvironment", - "type": "object" - }, - "AmbiguousStatus": { - "additionalProperties": false, - "description": "Conflicting evidence about institutional function. Multiple sources describe the institution differently (e.g., museum vs archive).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AmbiguousStatus", - "type": "object" - }, - "AmendmentEvent": { - "additionalProperties": false, - "description": "An event where a document or agreement was amended.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "AmendmentEvent", - "type": "object" - }, - "AnalyticalEquipment": { - "additionalProperties": false, - "description": "Scientific equipment for material analysis.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AnalyticalEquipment", - "type": "object" - }, - "AnbiPublicationUrlClaim": { - "additionalProperties": false, - "description": "ANBI publication link (Dutch charity tax status requirement).\nANBI = Algemeen Nut Beogende Instelling (public benefit institution).\nRequired for Dutch non-profits to maintain tax-exempt status.\nExpected in: footer, /anbi/, /over-ons/.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "AnbiPublicationUrlClaim", - "type": "object" - }, - "Animal": { - "additionalProperties": false, - "description": "An animal.\n\n**Ontological Alignment**:\n- `schema:Animal`: Generic animal class.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/Species" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Animal", - "type": "object" - }, - "AnimalSoundArchive": { - "additionalProperties": false, - "description": "Archive specializing in animal sound recordings for research and preservation.\n\n**Wikidata**: Q18574935\n\n**Scope**:\nAnimal sound archives (Tierstimmenarchive) preserve:\n- Bioacoustic recordings of wildlife\n- Species identification recordings\n- Environmental soundscapes with animal vocalizations\n- Scientific research recordings\n- Educational materials for species identification\n\n**Scientific Context**:\nThese archives support:\n- Biodiversity monitoring and conservation\n- Species identification and taxonomy\n- Behavioral ecology research\n- Environmental impact assessment\n- Educational outreach\n\n**Related Types**:\n- SoundArchive (Q2230431) - Broader audio collection type\n- ScientificArchive (Q27032095) - Research-focused archives\n\n**Notable Examples**:\n- Tierstimmenarchiv (Museum f\u00fcr Naturkunde Berlin)\n- Macaulay Library (Cornell Lab of Ornithology)\n- British Library Sound Archive wildlife collection", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AnimalSoundArchive", - "type": "object" - }, - "AnimalSoundArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections of animal sound archive materials within heritage institutions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AnimalSoundArchiveRecordSetType", - "type": "object" - }, - "AnnexCreationEvent": { - "additionalProperties": false, - "description": "Annex creation event.", - "properties": { - "has_or_had_reason": { - "description": "Reason for an event or state.", - "items": { - "$ref": "#/$defs/Reason" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "AnnexCreationEvent", - "type": "object" - }, - "AnnotationTypeEnum": { - "description": "Types of video annotation based on analysis method.", - "enum": [ - "SCENE_DETECTION", - "OBJECT_DETECTION", - "OCR", - "ACTION_RECOGNITION", - "SEMANTIC_SEGMENTATION", - "POSE_ESTIMATION", - "EMOTION_RECOGNITION", - "MULTIMODAL", - "CAPTIONING", - "CUSTOM" - ], - "title": "AnnotationTypeEnum", - "type": "string" - }, - "AnnualReportUrlClaim": { - "additionalProperties": false, - "description": "Link to annual report PDF (jaarverslag).\nExpected in: /over-ons/jaarverslagen/, /organisatie/jaarverslagen/.\nDutch: jaarverslag, publieksjaarverslag.\nEnglish: annual report.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "AnnualReportUrlClaim", - "type": "object" - }, - "Any": { - "additionalProperties": false, - "description": "A generic class representing any entity or literal. Used as a root or wildcard range.", - "title": "Any", - "type": "object" - }, - "ApiServicePresence": { - "additionalProperties": false, - "description": "Programmatic API access to data/services.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ApiServicePresence", - "type": "object" - }, - "AppellationTypeEnum": { - "description": "Types of appellations/names (CIDOC-CRM E55_Type)", - "enum": [ - "OFFICIAL", - "VERNACULAR", - "HISTORICAL", - "TRANSLATION", - "ABBREVIATION", - "ALTERNATIVE" - ], - "title": "AppellationTypeEnum", - "type": "string" - }, - "Appointment": { - "additionalProperties": false, - "description": "Models an appointment or reservation requirement as a structured entity.\n\n**PURPOSE**:\nHeritage institutions often require appointments for:\n- Special collections access\n- Reading room reservations \n- Guided tours of sensitive materials\n- Conservation viewing requests\n\nBy modeling appointments as entities (not just boolean flags), we can capture:\n- Lead time requirements (24h, 48h, 1 week in advance)\n- Booking methods (email, phone, online form)\n- Confirmation requirements\n- Cancellation policies\n- Temporal validity (when appointments are required)\n\n**ONTOLOGY ALIGNMENT**:\n- schema:Reservation - \"A reservation for an event, service, or product\"\n- rico:conditionsOfAccess - Links to RiC-O access condition patterns\n\n**REPLACES**:\n- appointment_required (boolean) - Now modeled as structured entity\n- requires_appointment (boolean) - Preserved for backward compatibility", - "properties": { - "appointment_id": { - "description": "Unique identifier for this appointment requirement type", - "type": [ - "string", - "null" - ] - }, - "appointment_required": { - "description": "Whether appointment is mandatory (true) or recommended (false).\nPreserves backward compatibility with boolean appointment_required field.\n", - "type": [ - "boolean", - "null" - ] - }, - "booking_contact": { - "description": "Contact information for making appointments", - "type": [ - "string", - "null" - ] - }, - "booking_method": { - "description": "How appointments can be made", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "cancellation_notice_hours": { - "description": "Hours in advance cancellation must be made", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "confirmation_required": { - "description": "Whether confirmation of appointment is required before visit", - "type": [ - "boolean", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "lead_time_hours": { - "description": "Minimum hours in advance that appointment must be booked.\nE.g., 24 = appointment must be made at least 24 hours before.\n", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "appointment_id" - ], - "title": "Appointment", - "type": "object" - }, - "AppointmentRequired": { - "additionalProperties": false, - "description": "Requires advance appointment to access materials. Common for archives and special collections.", - "title": "AppointmentRequired", - "type": "object" - }, - "Appointment__identifier_optional": { - "additionalProperties": false, - "description": "Models an appointment or reservation requirement as a structured entity.\n\n**PURPOSE**:\nHeritage institutions often require appointments for:\n- Special collections access\n- Reading room reservations \n- Guided tours of sensitive materials\n- Conservation viewing requests\n\nBy modeling appointments as entities (not just boolean flags), we can capture:\n- Lead time requirements (24h, 48h, 1 week in advance)\n- Booking methods (email, phone, online form)\n- Confirmation requirements\n- Cancellation policies\n- Temporal validity (when appointments are required)\n\n**ONTOLOGY ALIGNMENT**:\n- schema:Reservation - \"A reservation for an event, service, or product\"\n- rico:conditionsOfAccess - Links to RiC-O access condition patterns\n\n**REPLACES**:\n- appointment_required (boolean) - Now modeled as structured entity\n- requires_appointment (boolean) - Preserved for backward compatibility", - "properties": { - "appointment_id": { - "description": "Unique identifier for this appointment requirement type", - "type": [ - "string", - "null" - ] - }, - "appointment_required": { - "description": "Whether appointment is mandatory (true) or recommended (false).\nPreserves backward compatibility with boolean appointment_required field.\n", - "type": [ - "boolean", - "null" - ] - }, - "booking_contact": { - "description": "Contact information for making appointments", - "type": [ - "string", - "null" - ] - }, - "booking_method": { - "description": "How appointments can be made", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "cancellation_notice_hours": { - "description": "Hours in advance cancellation must be made", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "confirmation_required": { - "description": "Whether confirmation of appointment is required before visit", - "type": [ - "boolean", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "lead_time_hours": { - "description": "Minimum hours in advance that appointment must be booked.\nE.g., 24 = appointment must be made at least 24 hours before.\n", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [], - "title": "Appointment", - "type": "object" - }, - "AppraisalPolicy": { - "additionalProperties": false, - "description": "A policy governing the appraisal of records or collections.\n\n**Ontological Alignment**:\n- `odrl:Policy`: Policy representing rules.\n- `rico:Rule`: Rule governing management.", - "properties": { - "is_or_was_effective_at": { - "description": "The date or timestamp when a policy, status, or entity became effective.\nMIGRATED from `effective_date`, `status_effective_date`, `policy_effective_date` per Rule 53. Follows RiC-O temporal naming convention.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "is_or_was_expired_at": { - "description": "The date or timestamp when a policy, status, or entity expired or ceased to be effective.\nMIGRATED from `policy_effective_to` per Rule 53. Follows RiC-O temporal naming convention.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "note": { - "description": "Optional notes about the extraction process.\nMay reference raw source files or explain any issues.\n", - "type": [ - "string", - "null" - ] - }, - "policy_description": { - "description": "Full description of the policy including rationale, scope, and any special considerations.\nMaps to dcterms:description for policy document descriptions.", - "type": [ - "string", - "null" - ] - }, - "policy_id": { - "description": "Unique identifier for a policy entity.\n\nUsed by:\n- AccessPolicy: access restrictions and permissions\n- StorageConditionPolicy: environmental conditions for storage\n- Other policy-related classes\n", - "type": [ - "string", - "null" - ] - }, - "policy_name": { - "description": "Human-readable name for a policy entity.\n\nExamples:\n- \"Restricted Access Policy\"\n- \"Climate-Controlled Storage Requirements\"\n- \"Public Domain Access\"\n", - "type": "string" - } - }, - "required": [ - "policy_id", - "policy_name" - ], - "title": "AppraisalPolicy", - "type": "object" - }, - "AppreciationEvent": { - "additionalProperties": false, - "description": "Appreciation or engagement event for digital content.\n\n**PURPOSE**:\n\nStructured representation of appreciation metrics (likes, favorites,\nupvotes, reactions) for digital content such as videos, comments, and posts.\nReplaces simple integer counts with rich event data.\n\n**DESIGN RATIONALE**:\n\nCreated per slot_fixes.yaml migration from `comment_like_count` integer\nto structured `is_or_was_appreciated` + `AppreciationEvent` with\n`has_or_had_quantity` + `Quantity` for metric representation.\n\n**APPRECIATION TYPES**:\n\n| Type | Description | Platforms |\n|------|-------------|-----------|\n| like | Standard like/thumbs up | YouTube, Facebook, Instagram |\n| favorite | Favorite/bookmark | Twitter, YouTube |\n| upvote | Upvote/positive rating | Reddit, StackOverflow |\n| reaction | Emoji reaction | Facebook, Slack |\n| share | Share/repost | All platforms |\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Usage |\n|----------|----------------|-------|\n| **Activity Streams** | `as:Like` | Social appreciation activity |\n| **Schema.org** | `schema:InteractionCounter` | Engagement metrics |\n| **PROV-O** | `prov:Activity` | Event modeling |\n\n**EXAMPLE**:\n\n```yaml\nis_or_was_appreciated:\n - appreciation_type: like\n has_or_had_quantity:\n numeric_value: 42\n has_or_had_unit:\n unit_label: \"likes\"\n temporal_extent:\n begin_of_the_begin: \"2025-01-14T10:00:00Z\"\n```", - "properties": { - "appreciation_count": { - "description": "Simple count of appreciations (shorthand for has_or_had_quantity.numeric_value).\nUse has_or_had_quantity for structured representation with unit.\n", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "appreciation_type": { - "description": "Type of appreciation (like, favorite, upvote, reaction, share).\n", - "type": "string" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "appreciation_type" - ], - "title": "AppreciationEvent", - "type": "object" - }, - "Approver": { - "additionalProperties": false, - "description": "An agent (person or organization) that approves or authorized something.\n**DEFINITION**:\nApprover represents the agent responsible for approving decisions, policies, budgets, or other organizational actions. This replaces simple string fields like `approved_by` with a structured class that can link to person or organization entities.\n**ONTOLOGY ALIGNMENT**:\n- PROV-O: `prov:Agent` - entity that bears responsibility - FOAF: `foaf:Agent` - agent (person or organization) - Schema.org: `schema:Person` or `schema:Organization`\n**USE CASES**:\n1. **Budget Approval**: Who approved the budget allocation 2. **Policy Approval**: Who authorized the policy 3. **Decision Records**: Documenting approval chains", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Approver", - "type": "object" - }, - "ApproximationLevelEnum": { - "description": "Levels of approximation/uncertainty for values.", - "enum": [ - "EXACT", - "APPROXIMATE", - "ESTIMATED", - "UNCERTAIN", - "UNKNOWN" - ], - "title": "ApproximationLevelEnum", - "type": "string" - }, - "ApproximationStatus": { - "additionalProperties": false, - "description": "Status indicating the level of approximation or uncertainty for a value.\n**PURPOSE**:\nApproximationStatus captures structured uncertainty information for values like dates, quantities, and measurements where precision varies. This replaces simple boolean \"approximate: true/false\" with richer modeling.\n**UNCERTAINTY LEVELS**:\n| Level | Label | Description | Example | |-------|-------|-------------|---------| | EXACT | Exact | Known with certainty | \"1880-03-15\" | | APPROXIMATE | Approximate | Close but not exact | \"circa 1880\" | | ESTIMATED | Estimated | Calculated/inferred | \"estimated 1875-1885\" | | UNCERTAIN | Uncertain | Significant doubt | \"possibly 19th century\" | | UNKNOWN | Unknown | Cannot be determined | \"date unknown\" |\n**CIDOC-CRM ALIGNMENT**:\nCIDOC-CRM models time-span precision through E52_Time-Span with fuzzy boundaries. ApproximationStatus provides a complementary vocabulary for expressing certainty levels.\n**USE CASES**:\n1. **Date Uncertainty**: Founding dates known only to decade 2. **Quantity Estimates**: Collection size approximations 3. **Location Precision**: Address known only to city level 4. **Historical Events**: Uncertain timing of organizational changes\n**EXAMPLE**:\n```yaml event_date: \"1880\" is_or_was_approximate:\n has_or_had_level: APPROXIMATE # was: approximation_level\n has_or_had_label: \"circa 1880\"\n has_or_had_description: \"Founding date known only to year from secondary sources\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_level": { - "description": "Level or degree associated with an entity.\nGeneric slot for expressing levels of various kinds: - Approximation/uncertainty levels (EXACT, APPROXIMATE, ESTIMATED, etc.) - Arrangement levels in archival description - Severity levels - Confidence levels\nClass-specific slot_usage should narrow the range appropriately.", - "type": "string" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_level" - ], - "title": "ApproximationStatus", - "type": "object" - }, - "AquaticInstitutionClassification": { - "additionalProperties": false, - "description": "Institution primarily focused on aquatic life collections.\nIncludes public aquariums, oceanariums, marine research facilities.\n\n**Wikidata Base**: Q2281788 (public aquarium)\n\n**Scope**:\n- Marine life exhibits\n- Freshwater collections\n- Marine mammal programs\n- Ocean conservation", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AquaticInstitutionClassification", - "type": "object" - }, - "AqueousCleaning": { - "additionalProperties": false, - "description": "Cleaning using water-based solutions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AqueousCleaning", - "type": "object" - }, - "ArboretumSubtype": { - "additionalProperties": false, - "description": "Specialized tree and woody plant collection.\nFocus on dendrology and forest plant conservation.\n\n**Wikidata**: Q167951\n**Examples**: Arnold Arboretum, Westonbirt Arboretum", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArboretumSubtype", - "type": "object" - }, - "ArchaeologicalPortal": { - "additionalProperties": false, - "description": "Portal aggregating archaeological data, fieldwork documentation, site records, and excavation reports. **PURPOSE**: Enable archaeological research by providing unified access to excavation data, site documentation, artifact catalogs, and 3D models. **CHARACTERISTICS**: - Excavation and fieldwork documentation - Site records and gazetteers - Artifact catalogs and typologies - 3D models and virtual reconstructions - Spatial data and GIS integration **METADATA STANDARDS**: - CIDOC-CRM - Dublin Core - AO-CAT (Archaeology Online Catalog) - CARARE schema **EXAMPLES**: - ARIADNE (EU research infrastructure) - CARARE (Europeana archaeology) - Archaeology Data Service (UK) - tDAR (Digital Archaeological Record, US) - DANS archaeology collections (NL)", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "$ref": "#/$defs/MetadataStandard" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "DOMAIN_SPECIFIC", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "archaeology" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "ArchaeologicalPortal", - "type": "object" - }, - "Archdiocese": { - "additionalProperties": false, - "description": "An archdiocese.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Archdiocese", - "type": "object" - }, - "ArchiefDescriptionClaim": { - "additionalProperties": false, - "description": "Description of archive/archief holdings.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ArchiefDescriptionClaim", - "type": "object" - }, - "ArchiefUrlClaim": { - "additionalProperties": false, - "description": "URL to archive/archief section.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ArchiefUrlClaim", - "type": "object" - }, - "Architect": { - "additionalProperties": false, - "description": "An architect or architectural firm.\n\n**Ontological Alignment**:\n- `schema:Person` (or Organization)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "Architect", - "type": "object" - }, - "ArchitectPapersCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Architect personal papers.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ArchitecturalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ArchitecturalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ArchitectPapersCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArchitectPapersCollection", - "type": "object" - }, - "ArchitecturalArchive": { - "additionalProperties": false, - "description": "Archive that safeguards architectural heritage through preservation of \narchitectural drawings, plans, models, and related documentation.\n\n**Wikidata**: Q121409581\n\n**Scope**:\nArchitectural archives preserve:\n- Architectural drawings and blueprints\n- Building plans and specifications\n- Scale models and maquettes\n- Photographs of buildings and construction\n- Correspondence and contracts\n- Architects' personal papers (Nachlass)\n- Design competitions documentation\n\n**Related Types**:\n- ArchivesForBuildingRecords (Q136027937) - Public building permits/records\n- ArtArchive (Q27032254) - Broader art documentation\n\n**Notable Examples**:\n- Canadian Centre for Architecture (CCA)\n- Deutsches Architekturmuseum archives\n- RIBA Architecture Library and Collections\n- Het Nieuwe Instituut (Netherlands)\n\n**Dual-Class Pattern**:\nThis class represents the CUSTODIAN type (the archive organization).\nFor the collection type, see `ArchitecturalRecordSetType` (rico:RecordSetType).\n\n**Ontological Alignment**:\n- **SKOS**: skos:Concept with skos:broader Q166118 (archive)\n- **Schema.org**: schema:ArchiveOrganization\n- **RiC-O**: rico:CorporateBody (as agent)\n\n**Multilingual Labels**:\n- de: Architekturarchiv\n- fr: archives architecturales\n- nl: architectonisch archief", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArchitecturalArchive", - "type": "object" - }, - "ArchitecturalArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections of architectural archive materials within heritage institutions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArchitecturalArchiveRecordSetType", - "type": "object" - }, - "ArchitecturalCollectionContent": { - "additionalProperties": false, - "description": "Architectural materials: Building fragments, archaeological remains,\narchitectural drawings, building records.", - "properties": { - "has_or_had_label": {}, - "type_definition": { - "description": "Definition of this collection content type", - "type": [ - "string", - "null" - ] - } - }, - "title": "ArchitecturalCollectionContent", - "type": "object" - }, - "ArchitecturalDrawingCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Architectural plans and drawings.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ArchitecturalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ArchitecturalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ArchitecturalDrawingCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArchitecturalDrawingCollection", - "type": "object" - }, - "ArchitecturalStyle": { - "additionalProperties": false, - "description": "An architectural style.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ArchitecturalStyle", - "type": "object" - }, - "ArchivalClaim": { - "additionalProperties": false, - "description": "Claim types specific to archival holdings.\nIncludes archive and image bank (beeldbank) claims.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ArchivalClaim", - "type": "object" - }, - "ArchivalCollectionContent": { - "additionalProperties": false, - "description": "Archival materials: Parish registers, administrative records, correspondence,\nhistorical documents, manuscript collections.", - "properties": { - "has_or_had_label": {}, - "type_definition": { - "description": "Definition of this collection content type", - "type": [ - "string", - "null" - ] - } - }, - "title": "ArchivalCollectionContent", - "type": "object" - }, - "ArchivalFunction": { - "additionalProperties": false, - "description": "Archival function: arrangement and description, finding aids, reference services, records management.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "ArchivalFunction", - "type": "object" - }, - "ArchivalPortal": { - "additionalProperties": false, - "description": "Portal specializing in archival finding aids and descriptions. **PURPOSE**: Provide unified discovery of archival collections across multiple archive institutions using standardized archival description. **CHARACTERISTICS**: - Aggregates EAD/EAC-CPF metadata from archives - Hierarchical collection descriptions (fonds, series, files) - Provenance-based organization - Access conditions and restrictions **METADATA STANDARDS**: - EAD (Encoded Archival Description) - EAC-CPF (Encoded Archival Context - Corporate bodies, Persons, Families) - RiC-O (Records in Contexts Ontology) - ISAD(G), ISAAR(CPF) **EXAMPLES**: - Archieven.nl (Netherlands) - Archives Portal Europe - Archivportal-D (Germany) - ArchivesSpace (open-source platform)", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "$ref": "#/$defs/MetadataStandard" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "DOMAIN_SPECIFIC", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "archives" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "ArchivalPortal", - "type": "object" - }, - "ArchivalRepository": { - "additionalProperties": false, - "description": "Digital repository specifically designed for archival purposes with\nlong-term preservation capabilities.\n\n**PURPOSE**: Ensure long-term preservation and access to digital archival\nmaterials with appropriate metadata standards and preservation strategies.\n\n**CHARACTERISTICS**:\n- OAIS compliance\n- Format migration capabilities\n- Integrity verification (checksums)\n- Archival metadata standards (EAD, PREMIS)\n\n**EXAMPLES**: Archivematica instances, Preservica, DPN", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q66656823" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "REPOSITORY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "ArchivalRepository", - "type": "object" - }, - "ArchivalStatus": { - "additionalProperties": false, - "description": "The processing status of an archival record set (e.g. Unprocessed, In Arrangement, Described).\n\n**Ontological Alignment**:\n- `skos:Concept`: Concept in a status scheme.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_code" - ], - "title": "ArchivalStatus", - "type": "object" - }, - "ArchiveAssociation": { - "additionalProperties": false, - "description": "Booster, history, and heritage societies that support archival institutions\nthrough advocacy, fundraising, volunteer programs, and public engagement.\n\n**Wikidata**: Q130427366\n\n**IMPORTANT: This is a HeritageSocietyType, NOT an ArchiveOrganizationType**\n\nArchive associations are HERITAGE SOCIETIES (membership organizations) that \nsupport archives, not archives themselves. The key distinction:\n- **ArchiveOrganizationType**: Actual archive institutions holding records\n- **HeritageSocietyType (this class)**: Volunteer/membership organizations supporting archives\n\n**Scope**:\nArchive associations (Archivvereine) provide:\n- Advocacy for archival institutions\n- Fundraising and donor cultivation\n- Volunteer recruitment and coordination\n- Public programming and outreach\n- Membership programs\n- Publication of newsletters and journals\n- Support for acquisitions and preservation\n\n**Organizational Role**:\nThese are typically:\n- \"Friends of the Archives\" organizations\n- Historical societies supporting local archives\n- Professional associations for archivists\n- Advocacy groups for archival funding\n\n**Heritage Society Focus**:\nUse `society_focus` slot to describe the archive(s) supported.\nUse `has_or_had_activity` to document advocacy and outreach activities.\n\n**Related Types**:\n- HeritageSocietyType - Parent class for heritage support organizations\n- Archive (Q166118) - The institutions they support (NOT the same thing)\n\n**Primary Type**: \nMaps to 'S' (COLLECTING_SOCIETY) in GLAMORCUBESFIXPHDNT taxonomy,\nNOT 'A' (ARCHIVE) - these are support organizations, not archives themselves.\n\n**Ontological Alignment**:\n- **SKOS**: skos:Concept with skos:broader HeritageSocietyType\n- **Schema.org**: schema:Organization, schema:NGO\n- **RiC-O**: rico:CorporateBody (as agent)\n\n**Multilingual Labels**:\n- de: Archivverein\n- fr: Association des amis des archives", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_activity": { - "description": "Activities associated with this entity (custodian, collection, person, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity may have been associated with activities that\nare now concluded.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P9_consists_of` - CIDOC-CRM predicate for\n compositional relationships between activities/events\n- **Close**: `prov:wasAssociatedWith` - PROV-O predicate linking entities\n to activities they participated in\n- **Related**: `rico:hasOrHadActivity` - RiC-O predicate for record-keeping\n activities\n- **Related**: `schema:potentialAction` - Schema.org for actions associated\n with an entity\n\n**Range**:\nValues are instances of `Activity` class or its subclasses:\n- CurationActivity - Collection management activities\n- ConservationActivity - Preservation and conservation\n- CommercialActivity - Commercial operations\n- ResearchActivity - Research and documentation\n- EducationalActivity - Educational programs\n- ExhibitionActivity - Exhibition-related activities\n\n**Use Cases**:\n- Link custodian to curation activities (inventories, digitization)\n- Link collection to conservation activities\n- Link person to research activities\n- Track activity history over time\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "items": { - "$ref": "#/$defs/CollectionScope" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/Program" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "is_or_was_published_at": { - "description": "Publications produced by the society, modeled as structured publication events. MIGRATED from publication_activity (string list) per Rule 53/56 (2026-01-18). Each PublicationEvent captures: - has_or_had_label: Publication name/description (e.g., \"Quarterly journal 'Oud-Leiden'\") - temporal_extent: When the publication started/continues (using CIDOC-CRM TimeSpan) Publication Types Covered: - Periodicals: Journals, newsletters, yearbooks - Monographs: Research publications, exhibition catalogs, collection catalogs - Digital: Websites, blogs, podcasts, social media Examples: - \"Quarterly journal 'Oud-Leiden' (founded 1925) with local history articles\" - \"Annual numismatic journal + monthly newsletter; all digitized back to 1950\" - \"Bi-monthly newsletter; occasional monographs on local history\" ", - "items": { - "$ref": "#/$defs/PublicationEvent" - }, - "type": [ - "array", - "null" - ] - }, - "membership_size": { - "description": "Number of members and membership structure. Size Categories: - Small (1-50 members): Local heemkundekringen, village history societies - Medium (51-500 members): Regional societies, specialized collecting clubs - Large (501-5,000 members): National genealogical societies, major numismatic clubs - Very large (5,000+ members): International societies, major learned societies Membership Types: - Individual members: Regular dues-paying members - Family memberships: Household memberships - Institutional members: Libraries, museums, universities - Honorary members: Recognized experts or long-serving members - Student members: Reduced-rate memberships for students - Life members: One-time payment for lifetime membership Membership Benefits: - Publications: Journals, newsletters, yearbooks - Events: Lectures, field trips, annual meetings - Library access: Society library or reading room - Research support: Access to collections, databases - Networking: Connecting with fellow enthusiasts Membership Demographics: - Age distribution (often skews older for heritage societies) - Geographic distribution (local, regional, national, international) - Expertise levels (amateur enthusiasts to professional scholars) Growth Trends: - Declining membership (common in many heritage societies) - Aging membership (challenges for succession) - Digital membership (remote members via online access) Examples: - \"120 members (mostly local residents of Leiden and environs)\" - \"450 members across Netherlands and Belgium (Dutch-speaking numismatists)\" - \"8,000 members worldwide (largest genealogical society in US)\" - \"75 members (declining from peak of 150 in 1980s)\" This field captures the community scale and member engagement. ", - "type": [ - "string", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "society_focus": { - "description": "Primary focus area or specialty of the heritage society. Local Heritage (Heemkundekringen): - Local history: Village/town/neighborhood history - Regional heritage: Provincial or regional cultural traditions - Community archives: Preserving local records and photographs - Dialect preservation: Local language and oral traditions - Built heritage: Historic buildings, monuments, streetscapes Specialized Collecting: - Numismatics: Coins, medals, banknotes, tokens - Philately: Stamps, postal history, covers, cancellations - Ephemera: Trade cards, postcards, advertising, labels - Transportation: Railway history, automotive, aviation, maritime - Military history: Uniforms, medals, equipment, battles - Industrial heritage: Tools, machinery, company records Genealogical Research: - Family history: Tracing lineages, family trees - Vital records: Birth, marriage, death records - Immigration research: Passenger lists, naturalization records - Ethnic heritage: Preserving immigrant community histories Archaeological/Antiquarian: - Archaeological surveys: Local excavations, finds recording - Antiquarian studies: Historical objects, curiosities - Architectural history: Building documentation, conservation advocacy Thematic Heritage: - Agricultural heritage: Farming tools, rural life - Maritime heritage: Shipwrecks, fishing, coastal communities - Religious heritage: Church history, religious artifacts - Literary heritage: Authors, manuscripts, book collecting Examples: - \"Local history of Leiden and surroundings (heemkundekring)\" - \"Dutch numismatics: coins and medals from 1500-present\" - \"Family history and genealogy of New England families\" - \"Railway heritage of the Netherlands: rolling stock, stations, memorabilia\" This field defines the heritage domain the society preserves and studies. ", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "society_focus", - "has_or_had_label" - ], - "title": "ArchiveAssociation", - "type": "object" - }, - "ArchiveCMS": { - "additionalProperties": false, - "description": "Systems for archival description and records management.\n\n**TYPICAL FEATURES**:\n- Hierarchical description (fonds, series, files, items)\n- ISAD(G) compliance\n- EAD export\n- Access restrictions management\n- Finding aid generation\n\n**EXAMPLES**:\n- ArchivesSpace\n- MAIS-Flexis (De Ree)\n- Calm (Axiell)\n- AtoM (Access to Memory)\n- Archivist's Toolkit (legacy)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/CMSType" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ArchiveCMS", - "type": "object" - }, - "ArchiveNetwork": { - "additionalProperties": false, - "description": "Consortium or network of archives cooperating for shared services,\nresource sharing, and coordinated collection development.\n\n**Wikidata**: Q96636857\n\n**Geographic Restriction**: France only\n\nThis type is ONLY valid for French archive networks. The `applicable_countries`\nslot MUST contain \"FR\". Validation rules enforce this geographic constraint.\n\nThe concept of \"Archivverbund\" (archive network) as a formal consortium \nis primarily a French organizational pattern. Use this type ONLY for \nFrench archive networks.\n\nFor other countries, use:\n- EncompassingBody for general consortium/network patterns\n- JointArchives for archives with shared holdings\n\n**Scope**:\nArchive networks (Archivverb\u00fcnde) provide:\n- Shared cataloging and discovery systems\n- Coordinated collection development\n- Joint digitization projects\n- Shared preservation infrastructure\n- Professional development and training\n- Advocacy and policy coordination\n- Inter-institutional loan and access programs\n\n**Organizational Structure**:\nArchive networks typically:\n- Have formal membership agreements\n- Maintain shared technical infrastructure\n- Coordinate collection policies to avoid duplication\n- Provide unified access points for researchers\n- Share costs for expensive preservation activities\n\n**Related Types**:\n- EncompassingBody - Broader organizational umbrella concept\n- JointArchives (Q117442301) - Archives with shared holdings\n\n**Linkage to EncompassingBody**:\nArchive networks function as encompassing bodies for member archives.\nUse `encompassing_body_link` slot to connect to EncompassingBody class.\n\n**Notable Examples** (France):\n- Archives Portal Europe network (French participation)\n- Regional archival consortia in France\n\n**Ontological Alignment**:\n- **SKOS**: skos:Concept with skos:broader Q166118 (archive)\n- **Schema.org**: schema:Organization\n- **RiC-O**: rico:CorporateBody (as agent)\n- **ORG**: org:Organization (consortium)\n\n**Multilingual Labels**:\n- de: Archivverbund\n- fr: r\u00e9seau d'archives\n- it: rete di archivi", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "is_or_was_applicable_in": { - "description": "The location or context where something is applicable.", - "items": { - "$ref": "#/$defs/Country" - }, - "maxItems": 1, - "minItems": 1, - "type": "array" - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "is_or_was_applicable_in", - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArchiveNetwork", - "type": "object" - }, - "ArchiveOfInternationalOrganization": { - "additionalProperties": false, - "description": "Archive of an inter-governmental organization or international umbrella \norganization, preserving records of global significance.\n\n**Wikidata**: Q27031014\n\n**Scope**:\nInternational organization archives preserve:\n- Treaty documents and international agreements\n- Conference proceedings and resolutions\n- Correspondence between member states\n- Administrative records of international bodies\n- Reports and publications\n- Photographs and audiovisual documentation\n\n**Organizational Context**:\nThese archives are typically:\n- Part of UN system organizations (UNESCO, WHO, ILO, etc.)\n- European Union institutions (EU Commission, Parliament, etc.)\n- International NGO umbrella organizations\n- Regional intergovernmental bodies (AU, ASEAN, OAS, etc.)\n- International professional associations\n\n**Notable Examples**:\n- United Nations Archives and Records Management\n- UNESCO Archives\n- European Union Historical Archives (Florence)\n- League of Nations Archives (Geneva)\n- NATO Archives\n\n**Related Types**:\n- GovernmentArchive (Q119712417) - National government archives\n- PublicArchive (Q27031009) - Public sector archives\n\n**Dual-Class Pattern**:\nThis class represents the CUSTODIAN type (the archive organization).\nFor the collection type, see `InternationalOrganizationRecordSetType` (rico:RecordSetType).\n\n**Ontological Alignment**:\n- **SKOS**: skos:Concept with skos:broader Q166118 (archive)\n- **Schema.org**: schema:ArchiveOrganization\n- **RiC-O**: rico:CorporateBody (as agent)\n- **CPOV**: Aligns with EU Core Public Organisation Vocabulary\n\n**Multilingual Labels**:\n- de: Archiv einer internationalen Organisation\n- fr: archives d'une organisation internationale", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArchiveOfInternationalOrganization", - "type": "object" - }, - "ArchiveOfInternationalOrganizationRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by ArchiveOfInternationalOrganization custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArchiveOfInternationalOrganizationRecordSetType", - "type": "object" - }, - "ArchiveOrganizationType": { - "additionalProperties": false, - "description": "Specialized custodian type for archive organizations - institutions that preserve and provide access to historical documents, records, and other archival materials.\n\n**Wikidata Base Concept**: Q166118 (archive)", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArchiveOrganizationType", - "type": "object" - }, - "ArchiveProcessingStatusEnum": { - "description": "Status of operational archive processing toward integration into \nCustodianCollection (formal heritage collection).\n\n**LIFECYCLE FLOW**:\n```\nCustodianAdministration (ACTIVE - in daily use)\n \u2193 (retention period ends, no longer active)\nCustodianArchive (UNPROCESSED - backlog)\n \u2193 (appraisal, arrangement, description)\nCustodianArchive (IN_PROCESSING)\n \u2193 (processing complete)\nCustodianArchive (PROCESSED_PENDING_TRANSFER)\n \u2193 (physically/logically transferred)\nCustodianCollection (integrated into formal collection)\n```\n\n**TEMPORAL REALITY**:\nProcessing backlogs can span DECADES. A national archive may have\n30-50 years of unprocessed government records awaiting arrangement\nand description before they become part of the searchable collection.\n\n**RiC-O ALIGNMENT**:\n- rico:Activity for processing activities\n- rico:RecordResource lifecycle states\n- rico:hasAccumulationDate for when records were accumulated", - "enum": [ - "UNPROCESSED", - "IN_APPRAISAL", - "IN_ARRANGEMENT", - "IN_DESCRIPTION", - "IN_PRESERVATION", - "PROCESSED_PENDING_TRANSFER", - "TRANSFERRED_TO_COLLECTION", - "PARTIALLY_PROCESSED", - "ON_HOLD", - "DEACCESSIONED" - ], - "title": "ArchiveProcessingStatusEnum", - "type": "string" - }, - "ArchiveReference": { - "additionalProperties": false, - "description": "Reference to an archive collection or institution. Used for key_archives (main archives for a topic) and related_archives (external archives with related holdings).", - "properties": { - "contains_or_contained": { - "description": "Generic containment relationship (temporal). Indicates that this entity contains or has contained the referenced entity.", - "items": { - "anyOf": [ - { - "$ref": "#/$defs/PageSection" - }, - { - "$ref": "#/$defs/PageLink" - } - ] - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_level": { - "description": "Level or degree associated with an entity.\nGeneric slot for expressing levels of various kinds: - Approximation/uncertainty levels (EXACT, APPROXIMATE, ESTIMATED, etc.) - Arrangement levels in archival description - Severity levels - Confidence levels\nClass-specific slot_usage should narrow the range appropriately.", - "maximum": 6, - "minimum": 1, - "type": [ - "integer", - "null" - ] - }, - "has_or_had_provenance_path": { - "items": { - "$ref": "#/$defs/XPath" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "list_item": { - "description": "List items (bulleted/numbered) in this section", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "section_id": { - "description": "Unique identifier for this section", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "ArchiveReference", - "type": "object" - }, - "ArchiveScope": { - "additionalProperties": false, - "description": "Archive scope.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ArchiveScope", - "type": "object" - }, - "ArchiveSearchTemplate": { - "additionalProperties": false, - "description": "Template type for archival institution queries.\n\n**Relevant Queries**:\n- Finding aids and archival descriptions\n- Records management systems\n- Archival collections and fonds\n- EAD/RiC-O metadata", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ArchiveSearchTemplate", - "type": "object" - }, - "ArchiveStandardStorageEnvironment": { - "additionalProperties": false, - "description": "Standard archive storage environment for paper-based materials.\n\n**PURPOSE**: Provide stable environmental conditions for long-term\npreservation of paper-based archival and library materials.\n\n**RECOMMENDED CONDITIONS (ISO 11799:2015, Annex C)**:\n- Temperature: 16-20\u00b0C (target 18\u00b0C)\n- Relative humidity: 45-55% (target 50%), never exceed 60%\n- Light: < 50 lux for reading areas, UV filtered\n- Air quality: Filtered, pollutant-free\n- Fluctuation limits: \u00b12\u00b0C/day, \u00b15% RH/day\n\n**SUITABLE MATERIALS**:\n- Paper documents and manuscripts\n- Parchment and vellum\n- Printed materials\n- Photographs (general storage)\n- Maps and drawings\n\n**STANDARD REFERENCES**:\n- ISO 11799:2015 - Document storage requirements for archive/library materials\n- EN 16893:2018 - Conservation of cultural heritage - Storage specifications\n- BS 4971:2017 - Conservation and care of archive/library collections\n\n**HC PRESET**: hc:StandardArchiveEnvironment", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "ARCHIVE_STANDARD", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard": { - "description": "Reference to applicable ISO or EN standard for this environmental zone type.\n\nFormat: Standard identifier (e.g., \"ISO 11799\", \"ISO 18911\", \"EN 16893\")\n\nCommon preservation standards:\n- ISO 11799: Document storage requirements\n- ISO 18911: Film storage practices\n- ISO 18934: Multiple media archives storage\n- EN 16893: Heritage collection storage buildings\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "max_annual_light_exposure": { - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "const": 50, - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "requires_dark_storage": { - "description": "Whether dark (zero light) storage is required for this environmental zone.\n\nBased on ISO preservation standards:\n- Film storage (ISO 18911): Dark storage mandatory\n- Photographic (ISO 18920): Dark storage for extended-term\n- UK Archives (BS 4971): 0 lux for closed storage\n\nDark storage essential for:\n- Film negatives (especially color and early nitrate/acetate)\n- Daguerreotypes and early photographic processes\n- Cyanotypes and blueprint materials\n- Some magnetic media (tape)\n- Highly fugitive inks and dyes\n\nAccess provided through reading rooms or digitization requests.\nCumulative light damage is completely prevented.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_dust_free": { - "description": "Whether a dust-free or dust-controlled environment is required for this zone.\n\nBased on ISO preservation standards:\n- Magnetic tape (ISO 18923): Dust-free mandatory\n- Optical media (ISO 18938): Cleanroom for masters\n- Archives (ISO 11799): Dust control required\n\nISO 14644-1 Cleanliness Classes:\n- Class 8: General archive/museum (HEPA filtered)\n- Class 7: AV media storage (positive pressure)\n- Class 5: Digital master storage (cleanroom)\n\nDust-free essential for:\n- Magnetic tapes and audiovisual media\n- Optical discs (CD, DVD, Blu-ray)\n- Fine art and paintings (surface abrasion)\n- Photographic materials (scratches, embedded particles)\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_esd_protection": { - "description": "Whether electrostatic discharge (ESD) protection is required for this zone.\n\nBased on ISO/IEC standards:\n- Magnetic tape (ISO 18923): ESD protection required\n- Optical media (ISO 18938): ESD-safe handling mandatory\n- Electronics (IEC 61340-5-1): ESD control program\n\nESD protection measures include:\n- Conductive/dissipative flooring\n- Humidity control (40-60% RH reduces static)\n- ESD-safe packaging and equipment\n- Personnel grounding (wrist straps)\n\nESD protection essential for:\n- Hard drives and SSDs\n- LTO and other magnetic tapes\n- Optical media (CD, DVD, Blu-ray masters)\n- Electronic components and circuit boards\n- Born-digital heritage collections\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_uv_filter": { - "description": "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \u00b5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label", - "has_or_had_description" - ], - "title": "ArchiveStandardStorageEnvironment", - "type": "object" - }, - "ArchivedWebsitePresence": { - "additionalProperties": false, - "description": "Historical/archived website preserved in web archive.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ArchivedWebsitePresence", - "type": "object" - }, - "ArchivesDomain": { - "additionalProperties": false, - "description": "Archives and records domain", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ArchivesDomain", - "type": "object" - }, - "ArchivesForBuildingRecords": { - "additionalProperties": false, - "description": "Public archives specializing in building records, construction documents, and architectural permits. **Wikidata**: Q136027937 **Scope**: Building records archives (Bauaktenarchive) preserve: - Building permits and applications - Construction drawings and blueprints - Inspection reports and certificates - Zoning and planning documents - Structural engineering reports - Historical building surveys - Demolition records **Administrative Context**: These archives typically: - Are part of municipal or regional government - Serve building departments and planning offices - Support property research and due diligence - Document urban development history - Provide evidence for heritage designation **Related Types**: - ArchitecturalArchive (Q121409581) - Broader architectural documentation - MunicipalArchive (Q604177) - Local government archives - LocalGovernmentArchive (Q118281267) - Local administrative records **User Groups**: - Property owners and developers - Architects and engineers - Historic preservation officers - Urban planners and researchers - Insurance companies", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArchivesForBuildingRecords", - "type": "object" - }, - "ArchivesForBuildingRecordsRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by ArchivesForBuildingRecords custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArchivesForBuildingRecordsRecordSetType", - "type": "object" - }, - "ArchivesManagementSystem": { - "additionalProperties": false, - "description": "Archives Management System for managing archival collections following\narchival standards (ISAD(G), EAD, DACS).\n\nExamples: ArchivesSpace, Atom (Access to Memory), Archivematica, CALM", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "const": "Archives Management System", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "ArchivesManagementSystem", - "type": "object" - }, - "ArchivesPortal": { - "additionalProperties": false, - "description": "Web portal for archives aggregating finding aids and archival descriptions.\n\n**PURPOSE**: Provide unified discovery of archival collections across\nmultiple archive institutions.\n\n**CHARACTERISTICS**:\n- EAD/EAC-CPF aggregation\n- Hierarchical navigation\n- Cross-archive search\n- Links to holding institutions\n\n**EXAMPLES**: Archives Portal Europe, Archieven.nl, Archivportal-D", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q635985" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AGGREGATOR", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "ArchivesPortal", - "type": "object" - }, - "ArchivesRegionales": { - "additionalProperties": false, - "description": "Regional archives in France (archives r\u00e9gionales), preserving records\nat the regional administrative level.\n\n**Wikidata**: Q2860567\n\n**Geographic Restriction**: France only\n\n**Scope**:\nFrench regional archives preserve:\n- Regional council records and deliberations\n- Regional planning and development documents\n- Economic development agency records\n- Cultural affairs documentation\n- Education and training records (regional level)\n- Environmental and spatial planning documents\n\n**Administrative Context**:\nIn the French archival system:\n- Archives nationales (national level)\n- Archives r\u00e9gionales (regional level) \u2190 This type\n- Archives d\u00e9partementales (departmental level)\n- Archives communales (municipal level)\n\n**Related Types**:\n- DepartmentalArchives (Q2860456) - Departmental level in France\n- RegionalArchive (Q27032392) - Generic regional archive type\n- PublicArchivesInFrance (Q2421452) - French public archives", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArchivesRegionales", - "type": "object" - }, - "ArchivesRegionalesRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by ArchivesRegionales custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArchivesRegionalesRecordSetType", - "type": "object" - }, - "ArchivingPlan": { - "additionalProperties": false, - "description": "A plan detailing archiving activities and timelines.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "ArchivingPlan", - "type": "object" - }, - "Archivist": { - "additionalProperties": false, - "description": "Archivist managing archival collections, appraisal, arrangement, and description.\n\n**Official Title vs De Facto Work**:\nBeyond formal archival functions, archivists often engage in outreach,\ndigital preservation, oral history, community engagement, and teaching.\n\n**Common Variants**:\n- Senior Archivist\n- Processing Archivist\n- Reference Archivist\n- Digital Archivist\n- Archival Manager\n- Head of Archives\n- University Archivist\n- Corporate Archivist\n\n**Typical Domains**: Archives, libraries with special collections, corporate archives\n\n**Typical Responsibilities**:\n- Appraisal and accessioning\n- Arrangement and description (EAD, ISAD(G))\n- Reference services and research support\n- Outreach and exhibitions\n- Digital preservation (for digital archivists)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Archivist", - "type": "object" - }, - "Area": { - "additionalProperties": false, - "description": "A measurement of spatial extent (area) with value, unit, and metadata.\nCaptures area measurements for heritage facilities including outdoor sites, buildings, rooms, and storage areas. Supports multiple units (m\u00b2, hectares, acres) with explicit unit specification.\n**TEMPORAL ASPECT**: Areas can change over time (building extensions, site acquisitions). The measurement_date captures when the area was measured.\n**ESTIMATION SUPPORT**: Heritage facilities often have estimated areas, especially for historic buildings. The is_estimate flag indicates uncertainty.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_unit": { - "$ref": "#/$defs/MeasureUnit", - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage." - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "number" - }, - "type": "array" - }, - "is_estimate": { - "description": "Is Estimate for heritage custodian entities.\n", - "type": [ - "boolean", - "null" - ] - }, - "measurement_date": { - "description": "Measurement Date for heritage custodian entities.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "measurement_method": { - "description": "Measurement Method for heritage custodian entities.\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "has_or_had_value", - "has_or_had_unit" - ], - "title": "Area", - "type": "object" - }, - "AreaFeature": { - "additionalProperties": false, - "description": "Parks, area, etc. (GeoNames class L)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AreaFeature", - "type": "object" - }, - "ArmedConflict": { - "additionalProperties": false, - "description": "War, military operations, or armed insurgency affecting heritage.\nExamples: Gaza War 2023, Syrian Civil War, Iraq War.", - "title": "ArmedConflict", - "type": "object" - }, - "Arrangement": { - "additionalProperties": false, - "description": "The arrangement of a collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_level": { - "description": "Level or degree associated with an entity.\nGeneric slot for expressing levels of various kinds: - Approximation/uncertainty levels (EXACT, APPROXIMATE, ESTIMATED, etc.) - Arrangement levels in archival description - Severity levels - Confidence levels\nClass-specific slot_usage should narrow the range appropriately.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Arrangement", - "type": "object" - }, - "ArrangementType": { - "additionalProperties": false, - "description": "Type of arrangement.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ArrangementType", - "type": "object" - }, - "ArtArchive": { - "additionalProperties": false, - "description": "Specialized archive preserving documentation related to art, artists,\nart movements, galleries, and the art market.\n\n**Wikidata**: Q27032254\n\n**Scope**:\nArt archives (Kunstarchive) preserve:\n- Artist papers and correspondence\n- Gallery and dealer records\n- Exhibition documentation (catalogs, invitations, reviews)\n- Art criticism and publications\n- Photographs of artworks and installations\n- Auction house records\n- Art movement manifestos and ephemera\n- Studio and workshop documentation\n\n**Collection Types**:\n- Personal papers of artists\n- Institutional records of art organizations\n- Documentation of art historical events\n- Provenance research materials\n- Conservation and restoration records\n\n**Related Types**:\n- ArchitecturalArchive (Q121409581) - Architectural documentation\n- PerformingArtsArchive (Q27030945) - Performance-based arts\n- PhotoArchive (Q27032363) - Photographic collections\n\n**Notable Examples**:\n- Archives of American Art (Smithsonian)\n- Getty Research Institute Special Collections\n- Tate Archive (London)\n- Archiv der Akademie der K\u00fcnste (Berlin)", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArtArchive", - "type": "object" - }, - "ArtArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by ArtArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArtArchiveRecordSetType", - "type": "object" - }, - "ArtCollectionContent": { - "additionalProperties": false, - "description": "Art collections: Icons, paintings, sculpture, stained glass,\nreligious imagery, decorative arts.", - "properties": { - "has_or_had_label": {}, - "type_definition": { - "description": "Definition of this collection content type", - "type": [ - "string", - "null" - ] - } - }, - "title": "ArtCollectionContent", - "type": "object" - }, - "ArtDealer": { - "additionalProperties": false, - "description": "An art dealer or gallery involved in the sale or transfer of art objects.\n\n**MIGRATION NOTE** (2026-01-24):\nCreated per slot_fixes.yaml migration from `dealer_name` string\nto structured ArtDealer class per Rule 53.\n\n**Purpose**:\nProvides structured representation for art dealers including:\n- The dealer's name (via has_or_had_name)\n- Future extensibility for dealer location, active dates, etc.\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `crm:E39_Actor` - CIDOC-CRM Actor class\n- **Close**: `foaf:Agent`, `schema:Organization` - Agent/organization classes\n\n**Use Cases**:\n- Provenance events involving art sales (DEALER_SALE type)\n- Tracking art market participants in heritage provenance research\n- Linking objects to dealers who handled them\n\n**Pattern**:\n```yaml\nis_or_was_associated_with:\n - has_or_had_name:\n has_or_had_label: \"Duveen Brothers\"\n```", - "properties": { - "has_or_had_name": { - "anyOf": [ - { - "$ref": "#/$defs/Name" - }, - { - "type": "null" - } - ], - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n" - } - }, - "title": "ArtDealer", - "type": "object" - }, - "ArtSaleService": { - "additionalProperties": false, - "description": "Service for selling artworks, typically offered by commercial galleries.\n\n**PURPOSE**:\n\nModels art sales activities including commission structures,\nmarket type (primary/secondary), and artist representation.\n\n**DESIGN RATIONALE**:\n\nCreated per slot_fixes.yaml migration from `commission_rate` string\nto structured `has_or_had_service` + `ArtSaleService` with nested\ncommission details.\n\n**USE CASES**:\n\n- Commercial gallery primary market sales (representing artists)\n- Secondary market resales (consignment)\n- Auction house sales (different commission model)\n\n**MARKET TYPES**:\n\n- **Primary market**: First sale of artwork by artist (40-50% commission)\n- **Secondary market**: Resale of previously sold works (10-20% commission)", - "properties": { - "artist_representation": { - "description": "Whether this service involves exclusive artist representation.\n", - "type": [ - "boolean", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "market_type": { - "description": "Type of art market (primary or secondary).\n", - "type": [ - "string", - "null" - ] - }, - "price": { - "type": [ - "string", - "null" - ] - }, - "sales_activity": { - "description": "Whether active sales are conducted (vs exhibition-only).\n", - "type": "boolean" - }, - "takes_or_took_comission": { - "anyOf": [ - { - "$ref": "#/$defs/CommissionRate" - }, - { - "type": "null" - } - ], - "description": "Commission rate taken on sales transactions.\n\n**PURPOSE**:\n\nLinks a service (like art sales) to its commission structure.\nUsed for modeling gallery commission on artwork sales.\n\n**RiC-O NAMING** (Rule 39):\n\nUses \"takes_or_took_\" prefix indicating temporal relationship - \ncommission rates may change over time.\n\n**MIGRATION NOTE**:\n\nCreated from migration of `commission_rate` slot per slot_fixes.yaml.\nProvides structured commission representation via CommissionRate class.\n\n**NOTE**: Spelling \"comission\" matches revision specification per Rule 57.\n" - } - }, - "required": [ - "sales_activity" - ], - "title": "ArtSaleService", - "type": "object" - }, - "ArtStorageEnvironment": { - "additionalProperties": false, - "description": "Climate-controlled storage for paintings and fine art.\n\n**PURPOSE**: Provide stable environmental conditions for art objects,\nemphasizing minimal fluctuations to prevent material stress.\n\n**RECOMMENDED CONDITIONS (EN 16893:2018)**:\n- Temperature: 18-22\u00b0C (target 20\u00b0C)\n- Relative humidity: 45-55% (target 50%)\n- Light: Varies by medium (< 50 lux for works on paper)\n- Stability: Minimal fluctuations critical\n\n**EN 16893:2018 STABILITY REQUIREMENTS**:\n- Daily fluctuation: < 2\u00b0C, < 5% RH\n- Seasonal drift: gradual, controlled\n- ASHRAE Class A or B recommended for museums\n\n**SUITABLE MATERIALS**:\n- Oil paintings\n- Works on paper (drawings, watercolors)\n- Sculptures (various materials)\n- Mixed media artworks\n- Contemporary art installations\n\n**SPECIAL REQUIREMENTS**:\n- Stability more important than exact values\n- Daily fluctuation: < 2\u00b0C, < 5% RH\n- Vibration-free storage\n- UV filtering for light-sensitive media\n\n**STANDARD REFERENCES**:\n- EN 16893:2018 - Conservation of cultural heritage - Storage specifications", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "ART_STORAGE", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard": { - "description": "Reference to applicable ISO or EN standard for this environmental zone type.\n\nFormat: Standard identifier (e.g., \"ISO 11799\", \"ISO 18911\", \"EN 16893\")\n\nCommon preservation standards:\n- ISO 11799: Document storage requirements\n- ISO 18911: Film storage practices\n- ISO 18934: Multiple media archives storage\n- EN 16893: Heritage collection storage buildings\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "max_annual_light_exposure": { - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "requires_dark_storage": { - "description": "Whether dark (zero light) storage is required for this environmental zone.\n\nBased on ISO preservation standards:\n- Film storage (ISO 18911): Dark storage mandatory\n- Photographic (ISO 18920): Dark storage for extended-term\n- UK Archives (BS 4971): 0 lux for closed storage\n\nDark storage essential for:\n- Film negatives (especially color and early nitrate/acetate)\n- Daguerreotypes and early photographic processes\n- Cyanotypes and blueprint materials\n- Some magnetic media (tape)\n- Highly fugitive inks and dyes\n\nAccess provided through reading rooms or digitization requests.\nCumulative light damage is completely prevented.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_dust_free": { - "description": "Whether a dust-free or dust-controlled environment is required for this zone.\n\nBased on ISO preservation standards:\n- Magnetic tape (ISO 18923): Dust-free mandatory\n- Optical media (ISO 18938): Cleanroom for masters\n- Archives (ISO 11799): Dust control required\n\nISO 14644-1 Cleanliness Classes:\n- Class 8: General archive/museum (HEPA filtered)\n- Class 7: AV media storage (positive pressure)\n- Class 5: Digital master storage (cleanroom)\n\nDust-free essential for:\n- Magnetic tapes and audiovisual media\n- Optical discs (CD, DVD, Blu-ray)\n- Fine art and paintings (surface abrasion)\n- Photographic materials (scratches, embedded particles)\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_esd_protection": { - "description": "Whether electrostatic discharge (ESD) protection is required for this zone.\n\nBased on ISO/IEC standards:\n- Magnetic tape (ISO 18923): ESD protection required\n- Optical media (ISO 18938): ESD-safe handling mandatory\n- Electronics (IEC 61340-5-1): ESD control program\n\nESD protection measures include:\n- Conductive/dissipative flooring\n- Humidity control (40-60% RH reduces static)\n- ESD-safe packaging and equipment\n- Personnel grounding (wrist straps)\n\nESD protection essential for:\n- Hard drives and SSDs\n- LTO and other magnetic tapes\n- Optical media (CD, DVD, Blu-ray masters)\n- Electronic components and circuit boards\n- Born-digital heritage collections\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_uv_filter": { - "description": "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \u00b5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label", - "has_or_had_description" - ], - "title": "ArtStorageEnvironment", - "type": "object" - }, - "ArticlePost": { - "additionalProperties": false, - "description": "Long-form written content including blog posts and newsletters.\n\n**Activity Streams Mapping**: `as:Article`\n**Schema.org Mapping**: `schema:Article`, `schema:BlogPosting`\n\n**Platforms**:\n- Medium\n- Substack\n- LinkedIn Articles\n- Institutional blogs\n- WordPress\n- Ghost\n\n**Characteristics**:\n- Long-form text (1000+ words typical)\n- Rich formatting (headers, images, embeds)\n- SEO optimized\n- Newsletter distribution (Substack)\n- Comments and responses\n- Publication-style layout\n\n**Heritage Use Cases**:\n\n| Use Case | Description | Length |\n|----------|-------------|--------|\n| Collection deep-dives | In-depth object analysis | 2000-5000 words |\n| Research findings | Academic-style writeups | 3000-10000 words |\n| Conservation stories | Detailed restoration narratives | 1500-3000 words |\n| Exhibition essays | Curatorial perspectives | 2000-4000 words |\n| Newsletter updates | Regular subscriber content | 500-1500 words |\n| Behind-the-scenes | Long-form narratives | 1000-2000 words |\n\n**Metadata Captured**:\n- Reading time\n- Word count\n- Publication date\n- Author/byline\n- Tags/topics\n- Featured image", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "post_type_activity_streams_type": { - "const": "as:Article", - "description": "Activity Streams 2.0 type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_category": { - "const": "ARTICLE", - "description": "High-level category for grouping related post types.\nValues: VIDEO, SHORT_VIDEO, IMAGE, TEXT, STORY, LIVE_STREAM,\nAUDIO, ARTICLE, THREAD, CAROUSEL, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "post_type_description": { - "description": "Detailed description of this post type including purpose,\ncharacteristics, and typical use cases in heritage context.\n", - "type": [ - "string", - "null" - ] - }, - "post_type_ephemeral": { - "description": "Whether this post type is ephemeral (disappears after time).", - "type": [ - "boolean", - "null" - ] - }, - "post_type_heritage_use_case": { - "description": "Typical use cases for heritage institutions creating this content type.\n\nExamples for Video:\n- Virtual exhibition tours\n- Conservation process documentation\n- Curator interviews\n- Historical documentary content\n- Educational lectures\n\nExamples for Short Video:\n- Artifact spotlights\n- Behind-the-scenes moments\n- Quick conservation tips\n- Event teasers\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_id": { - "description": "Unique identifier for this post type", - "type": "string" - }, - "post_type_max_duration": { - "description": "Maximum duration for this post type (e.g., video length).", - "type": [ - "string", - "null" - ] - }, - "post_type_media_format": { - "description": "Supported media formats for this post type.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_name": { - "description": "Canonical name for this post type.\nUsed for display and content categorization.\n\nExamples: \"Video\", \"Short Video\", \"Image Post\", \"Story\", \"Live Stream\"\n", - "type": "string" - }, - "post_type_schema_org_type": { - "const": "schema:Article", - "description": "Schema.org type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_supported_platform": { - "description": "Platforms that support this post type.", - "items": { - "enum": [ - "Medium", - "Substack", - "LinkedIn", - "WordPress" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "post_type_id", - "post_type_name" - ], - "title": "ArticlePost", - "type": "object" - }, - "ArticlesOfAssociation": { - "additionalProperties": false, - "description": "Founding legal document (articles of association, statuten, akte van oprichting)\nthat establishes a heritage custodian organization.\n\n**WHAT ARE ARTICLES OF ASSOCIATION?**\n\nArticles of Association (also known as statutes, charter, bylaws, or deed of\nincorporation depending on jurisdiction) are the foundational legal document\nthat establishes an organization's:\n\n- Legal name and registered office\n- Purpose/objects (doelstelling)\n- Governance structure (board composition, voting)\n- Membership rules (for associations)\n- Capital structure (for companies)\n- Amendment procedures\n- Dissolution procedures\n\n**TERMINOLOGY BY JURISDICTION**:\n\n| Country | Term | Notes |\n|---------|------|-------|\n| Netherlands | Statuten, Akte van oprichting | Notarial deed required |\n| Germany | Satzung, Gesellschaftsvertrag | Varies by legal form |\n| UK | Articles of Association | Memorandum + Articles |\n| USA | Articles of Incorporation, Bylaws | State-specific |\n| France | Statuts | Association loi 1901 |\n\n**CRITICAL TEMPORAL PARADOX**:\n\nFor legal forms that REQUIRE articles at registration (e.g., Dutch stichting, BV),\nthe articles EXIST BEFORE the organization officially exists:\n\n```\nTimeline:\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nT\u2081: Notary drafts articles \u2190 Articles exist, organization does NOT\nT\u2082: Notary executes deed \u2190 Articles finalized, organization still doesn't exist\nT\u2083: Registration with KvK \u2190 Organization comes into legal existence\nT\u2084: First day of operations \u2190 Organization now has CustodianAdministration\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n```\n\n**IMPLICATION**: Articles that predate the organization can NEVER have been\npart of CustodianAdministration. They enter the records lifecycle at ACTIVE\nstage only AFTER the organization exists (T\u2083 onwards).\n\n**Pre-existence stage**: Use RecordsLifecycleStageEnum.PRE_EXISTENCE for\narticles during T\u2081-T\u2082 period.\n\n**JURISDICTION DETERMINES REQUIREMENT**:\n\nNot all legal forms require articles at registration:\n\n| Legal Form | Articles Required at Registration? |\n|------------|-----------------------------------|\n| Dutch Stichting (foundation) | YES - notarial deed mandatory |\n| Dutch BV (private company) | YES - notarial deed mandatory |\n| Dutch Vereniging (association) | Depends - formal vs informal |\n| Dutch VOF (partnership) | NO - partnership agreement sufficient |\n| Dutch Maatschap (partnership) | NO - partnership agreement sufficient |\n| Dutch Eenmanszaak (sole prop) | NO - not applicable |\n| UK CIO (charity) | YES - constitution required |\n| UK Company Limited by Guarantee | YES - articles required |\n| US 501(c)(3) | YES - articles of incorporation |\n\n**RECORDS LIFECYCLE INTEGRATION**:\n\nArticles of Association follow a modified three-tier lifecycle:\n\n```\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 PRE_EXISTENCE (Before organization exists) \u2502\n\u2502 - Drafted and executed by notary \u2502\n\u2502 - Held by notary, founders, or registration authority \u2502\n\u2502 - Organization does NOT exist yet \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2193\n (Organization registered,\n comes into legal existence)\n \u2193\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 ACTIVE (CustodianAdministration) \u2502\n\u2502 - Current version of articles \u2502\n\u2502 - Referenced for governance decisions \u2502\n\u2502 - Required for regulatory filings \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2193\n (Articles amended,\n superseded version)\n \u2193\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 INACTIVE (CustodianArchive) \u2502\n\u2502 - Superseded versions \u2502\n\u2502 - Retained for legal/historical reference \u2502\n\u2502 - Amendment history \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2193\n (Historical significance,\n founding documentation)\n \u2193\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 HERITAGE (CustodianCollection) \u2502\n\u2502 - Original founding articles (notarial deed) \u2502\n\u2502 - Historical amendments of significance \u2502\n\u2502 - Part of institutional heritage collection \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n- **RiC-O**: rico:Record for archival record concept\n- **PROV-O**: prov:Entity with generation provenance\n- **LKIF-Core**: lkif-legal:Legal_Document for legal document classification\n- **Schema.org**: schema:LegislationObject conceptually similar", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_format": { - "description": "The format or file type of a resource or service response.\n\n**USAGE**:\nUsed for:\n- Response formats from APIs (JSON, XML, RDF)\n- File formats for documents (PDF, DOCX, TXT)\n- Media formats (JPEG, MP3, MP4)\n- Transcript formats (VTT, SRT, plain text)\n- Subtitle formats (WebVTT, SRT, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property\n- **Close**: `dct:format` - Dublin Core format\n- **Close**: `schema:encodingFormat` - Schema.org encoding format\n\n**Range**: `uriorcurie` (Rule 54)\nBroadened range to accept URI/CURIE references to format specifications.\nThis allows linking to IANA media types, format registries, or internal\nformat classes while resolving OWL ambiguous type warnings.\n\nClasses can narrow to specific format enums/classes via slot_usage.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_status": { - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_title": { - "description": "The title or name of a resource.\n\n**RiC-O Temporal Pattern**:\nUses `hasOrHad*` pattern to indicate titles can change over time.\nResources may have different titles at different points in their lifecycle.\n\n**USE CASES**:\n\n1. Dataset titles\n2. Document titles\n3. Collection titles\n4. Work titles\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `dct:title` - Dublin Core title\n- **Close**: `schema:name` - Schema.org name\n- **Close**: `rdfs:label` - RDF Schema label\n\nCreated as part of dataset_title migration per slot_fixes.yaml (Rule 53).\n", - "type": "string" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/DocumentType" - }, - "type": "array" - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_version": { - "description": "Version number or identifier of an entity.\n\n**USAGE**:\nUsed for:\n- Software versions\n- Document versions\n- Schema versions\n", - "type": [ - "string", - "null" - ] - }, - "is_current_version": { - "description": "Indicates whether this is the current/active version of articles.\n\nOnly ONE version should be current at any time.\n\nWhen articles are amended:\n1. Set is_current_version = false on old version\n2. Set superseded_by on old version\n3. Create new version with is_current_version = true\n4. Set supersedes on new version\n", - "type": "boolean" - }, - "is_or_was_amended_through": { - "description": "The event through which the entity was amended.", - "items": { - "$ref": "#/$defs/AmendmentEvent" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_archived_in": { - "anyOf": [ - { - "$ref": "#/$defs/CustodianArchive" - }, - { - "type": "null" - } - ], - "description": "CustodianArchive where superseded articles are stored.\n\n**RiC-O**: rico:isOrWasIncludedIn for archival inclusion.\n\nOnly applicable when current_archival_stage = INACTIVE.\n\n**NOT applicable for PRE_EXISTENCE stage** (no archive exists yet).\n" - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_effective_at": { - "description": "The date or timestamp when a policy, status, or entity became effective.\nMIGRATED from `effective_date`, `status_effective_date`, `policy_effective_date` per Rule 53. Follows RiC-O temporal naming convention.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_included_in": { - "description": "Links an entity to a collection, set, or aggregation that includes/included it.\n\n**RiC-O Alignment**: `rico:isOrWasIncludedIn`\n\n**USAGE**:\n- Heritage items included in collections\n- Records included in record sets\n- Objects included in holdings\n- Documents included in archives\n\n**Temporal Semantics** (RiC-O style):\n- \"is included\" = currently included\n- \"was included\" = previously included but no longer\n- Covers full temporal lifecycle of inclusion relationship\n", - "items": { - "$ref": "#/$defs/CustodianCollection" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_signed_at": { - "$ref": "#/$defs/Timestamp", - "description": "Timestamp when the entity was signed or executed." - }, - "jurisdiction": { - "description": "Legal/administrative jurisdiction where entity operates or is registered.\n\ngleif_base:hasCoverageArea - \"Indicates a geographic region in which \nsome service is provided, or to which some policy applies\"\n\nExamples:\n- Netherlands (national): KvK jurisdiction\n- Bavaria (subnational): Amtsgericht M\u00fcnchen jurisdiction\n- European Union (supranational): SE registration jurisdiction\n", - "type": [ - "string", - "null" - ] - }, - "language": { - "description": "Primary language of content on this profile.\n\nDublin Core: language for content language.\n\nISO 639-1 language code (e.g., \"en\", \"nl\", \"de\").\n\nSome institutions maintain separate profiles for different languages.\n", - "pattern": "^[a-z]{2}$", - "type": [ - "string", - "null" - ] - }, - "legal_form": { - "description": "Specific legal form based on ISO 20275 Entity Legal Forms (ELF) codes.\nLinks to LegalForm class with jurisdiction-specific legal form details.\n\nROV: orgType for legal form classification.\nW3C Org: classification links to gleif_elf:EntityLegalForm SKOS Concept.\n\nRequired for ORGANIZATION entities, not applicable for PERSON.\nValues MUST be valid ELF codes from /data/ontology/2023-09-28-elf-code-list-v1.5.csv.\n", - "type": [ - "string", - "null" - ] - }, - "notarial_deed_number": { - "description": "Registration number of the notarial deed.\n\nFormat varies by jurisdiction and notary office.\n", - "type": [ - "string", - "null" - ] - }, - "notary_name": { - "description": "Name of the notary who executed the deed.\nOntology mapping: foaf:name is the FOAF property for a person's name. Required for notarial deeds (Dutch stichting, BV, etc.).", - "type": [ - "string", - "null" - ] - }, - "notary_office": { - "description": "Location/office of the notary (city or full address).\n", - "type": [ - "string", - "null" - ] - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "refers_to_legal_status": { - "$ref": "#/$defs/CustodianLegalStatus", - "description": "The legal entity that these articles establish/govern.\n\n**RiC-O**: rico:documents for documentation relationship.\n\nArticlesOfAssociation DOCUMENTS CustodianLegalStatus.\n\n**Note**: Even during PRE_EXISTENCE, this links to the (future)\nCustodianLegalStatus that will be created upon registration.\n" - }, - "registered_office_clause": { - "description": "The registered office clause (statutaire zetel) from the articles.\n\nThis is the legal domicile, not necessarily the physical address.\n", - "type": [ - "string", - "null" - ] - }, - "requires_articles_at_registration": { - "description": "Whether this organization's legal form requires articles at registration.\n\n**Derived from LegalForm and Jurisdiction**.\n\nIf TRUE:\n- Articles MUST exist before organization exists\n- PRE_EXISTENCE stage applies\n- Articles can NEVER have been CustodianAdministration initially\n\nIf FALSE:\n- Articles may be created after organization exists\n- Normal lifecycle (ACTIVE \u2192 INACTIVE \u2192 HERITAGE) applies\n\n**Examples**:\n- Dutch Stichting: TRUE (notarial deed required)\n- Dutch VOF: FALSE (partnership agreement, not \"articles\")\n- UK CIO: TRUE (constitution required)\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "supersedes_or_superseded": { - "description": "Entity that this one supersedes, or that supersedes this one.\nUse when a new version corrects or updates a previous one. Direction is determined by context - the slot represents the relationship in either direction.\nPROV-O: wasRevisionOf for updated versions.\nMigrated from bespoke `supersede` slot per Rule 53/56 (2026-01-17). Original slot_uri (hc:supersedes) preserved in exact_mappings.", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_title", - "has_or_had_type", - "is_or_was_signed_at", - "is_current_version", - "refers_to_custodian", - "refers_to_legal_status" - ], - "title": "ArticlesOfAssociation", - "type": "object" - }, - "ArtisanSupplier": { - "additionalProperties": false, - "description": "Local artisan or craftsperson providing handmade items.\nExamples: Local jewelry makers, traditional crafters", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ArtisanSupplier", - "type": "object" - }, - "Artist": { - "additionalProperties": false, - "description": "Artist.", - "properties": { - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": [ - "string", - "null" - ] - } - }, - "title": "Artist", - "type": "object" - }, - "ArtistCommunity": { - "additionalProperties": false, - "description": "Artists and creative practitioners.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ArtistCommunity", - "type": "object" - }, - "ArtistInResidence": { - "additionalProperties": false, - "description": "Artist in residence creating new work inspired by collections.\n\n**Official Title vs De Facto Work**:\nMay engage in public programming, community engagement,\nand education alongside artistic practice.\n\n**Common Variants**:\n- Resident Artist\n- Creative Fellow\n- Artist Fellow\n\n**Typical Domains**: Museums, galleries with residency programs\n\n**Typical Responsibilities**:\n- Artistic creation inspired by collections\n- Public engagement and workshops\n- Exhibition of new work\n- Documentation of process", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "ArtistInResidence", - "type": "object" - }, - "ArtistPapersCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Artist personal papers and sketches.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ArtArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ArtArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ArtistPapersCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArtistPapersCollection", - "type": "object" - }, - "ArtistRunSpace": { - "additionalProperties": false, - "description": "A gallery run by artists.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_model": { - "description": "Model or structure description (business model, organizational model, etc.). Uses schema:businessFunction for business model descriptions.\nClasses narrow this slot via slot_usage for domain-specific descriptions: - CommercialOrganizationType \u2192 business model (funding/revenue structure)", - "type": [ - "string", - "null" - ] - }, - "has_or_had_objective": { - "description": "The objective of an action or measure.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_service": { - "description": "A service offered by an entity.\n\n**USAGE**:\nUsed for:\n- Visitor services (guided tours, audio guides)\n- Research services\n- Conservation services\n", - "items": { - "$ref": "#/$defs/Service" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string" - }, - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "represents_or_represented": { - "description": "Represents an artist or entity.", - "items": { - "$ref": "#/$defs/Artist" - }, - "type": [ - "array", - "null" - ] - }, - "sales_activity": { - "description": "Whether the gallery actively sells artworks to collectors.\nTrue = artwork sales (primary or secondary market)\nFalse = exhibition-only (no sales activity)\n\nDistinction from commercial_operation:\n- commercial_operation: business model (for-profit vs. nonprofit)\n- sales_activity: transactional activity (sells artworks or not)\n\nA gallery can be commercial_operation=true but sales_activity=false\n(e.g., art consultancy that doesn't hold inventory).\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ArtistRunSpace", - "type": "object" - }, - "ArtisticContent": { - "additionalProperties": false, - "description": "Artistic works including drawings, prints, paintings.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "ARTISTIC", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Artistic Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "ArtisticContent", - "type": "object" - }, - "AspectRatio": { - "additionalProperties": false, - "description": "Aspect ratio specification.", - "properties": { - "has_or_had_degree": { - "description": "The aspect ratio string (e.g., \"16:9\").", - "type": [ - "string", - "null" - ] - } - }, - "title": "AspectRatio", - "type": "object" - }, - "Asserter": { - "additionalProperties": false, - "description": "An agent (person, organization, or system) responsible for making an assertion about a heritage entity.\n**PROV-O ALIGNMENT**:\nMaps to `prov:Agent` - \"An agent is something that bears some form of responsibility for an activity taking place, for the existence of an entity, or for another agent's activity.\"\n**TYPES OF ASSERTERS**:\n| Type | Description | Example | |------|-------------|---------| | HUMAN_ANALYST | Expert making judgment | \"jane.doe@nde.nl\" | | AUTOMATED_SYSTEM | Software system | \"primary-presence-classifier/1.0\" | | AI_AGENT | AI/ML model | \"claude-opus-4\", \"opencode-claude-sonnet-4\" | | ORGANIZATION | Institution | \"Noord-Hollands Archief\" |\n**USE CASES**:\n1. **Attribution Tracking**: Who made this assertion about primary presence? 2. **Provenance Chain**: Trace assertions back to their source agent. 3. **Quality Assessment**: Different asserters may have different reliability. 4. **Accountability**: Identify responsible party for each assertion.\n**EXAMPLE**:\n```yaml Asserter:\n has_or_had_identifier: https://nde.nl/ontology/hc/asserter/claude-opus-4\n has_or_had_label: Claude Opus 4\n has_or_had_type: AI_AGENT\n has_or_had_description: Anthropic Claude AI model used for assertion generation\n has_or_had_version: \"claude-opus-4-20250514\"\n```", - "properties": { - "has_or_had_contact_point": { - "description": "Contact point information (person, department, or contact details) associated with an entity. May include name, title, email, phone, or other contact information.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/AsserterTypeEnum" - }, - "type": "array" - }, - "has_or_had_version": { - "description": "Version number or identifier of an entity.\n\n**USAGE**:\nUsed for:\n- Software versions\n- Document versions\n- Schema versions\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label", - "has_or_had_type" - ], - "title": "Asserter", - "type": "object" - }, - "AsserterTypeEnum": { - "description": "Type of agent making an assertion.", - "enum": [ - "HUMAN_ANALYST", - "AUTOMATED_SYSTEM", - "AI_AGENT", - "ORGANIZATION", - "UNKNOWN" - ], - "title": "AsserterTypeEnum", - "type": "string" - }, - "AssessmentCategory": { - "additionalProperties": false, - "description": "Assessment category concept.", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AssessmentCategory", - "type": "object" - }, - "AssessmentCategoryType": { - "additionalProperties": false, - "description": "Assessment category type.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AssessmentCategoryType", - "type": "object" - }, - "Asset": { - "additionalProperties": false, - "description": "Asset value.", - "properties": { - "has_or_had_currency": { - "anyOf": [ - { - "$ref": "#/$defs/Currency" - }, - { - "type": "null" - } - ], - "description": "Currency associated with monetary values. Uses RiC-O temporal naming pattern to indicate the currency may be current or historical.\n**Schema.org**: schema:currency for currency designation.\n**ISO 4217**: Standard currency codes (EUR, USD, GBP, etc.)\nCan represent the currency for budgets, financial statements, acquisition costs, and other monetary amounts." - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Asset", - "type": "object" - }, - "AssociationArchive": { - "additionalProperties": false, - "description": "Archive preserving records of associations, societies, clubs, and\nother membership-based organizations.\n\n**Wikidata**: Q27030820\n\n**IMPORTANT: Parent Organization Constraint**\n\nAssociationArchive is an archive that holds records OF an association/society.\nThe parent custodian (the association whose records are archived) should \ntypically be a HeritageSocietyType. Use `parent_society` slot to link to \nthe heritage society that created/owns these archival records.\n\n**Scope**:\nAssociation archives (Verbandsarchive) preserve:\n- Founding documents and bylaws\n- Membership records and registers\n- Meeting minutes and proceedings\n- Correspondence and communications\n- Publications and newsletters\n- Event documentation\n- Financial records\n- Photographs and memorabilia\n\n**Types of Associations**:\n- Professional associations and trade bodies\n- Social and cultural clubs\n- Sports organizations\n- Alumni associations\n- Charitable organizations\n- Advocacy and interest groups\n\n**Parent Organization Link**:\nUse `parent_society` slot to link to the HeritageSocietyType whose \nrecords this archive preserves. The parent society MUST be a heritage \nsociety (S type in GLAMORCUBESFIXPHDNT taxonomy).\n\n**Related Types**:\n- FoundationArchive (Q27030827) - Archives of foundations\n- TradeUnionArchive (Q66604802) - Labor organization archives\n- Vereinsarchiv (Q130758889) - German club/society archives\n- HeritageSocietyType - Parent organization type (whose records are archived)", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "parent_society": { - "description": "Links an AssociationArchive to the HeritageSocietyType whose records \nit preserves.\n\n**Semantic Meaning**:\n\nThis slot captures the relationship between an archive (the custodian)\nand the society/association that created/owns the archival records.\nThe parent society is the provenance agent - the organization whose\nactivities generated the records now held by the archive.\n\n**Use Case**:\n\nAn AssociationArchive holds records OF a heritage society. The archive\nis the custodian; the society is the provenance agent whose activities\nare documented in the records.\n\n**Constraints**:\n- Range MUST be HeritageSocietyType (S-type in GLAMORCUBESFIXPHDNT)\n- Captures \"records OF\" relationship, not \"operated BY\" relationship", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AssociationArchive", - "type": "object" - }, - "AtomFeed": { - "additionalProperties": false, - "description": "Classification for Atom feed endpoints.\n\n**Protocol**: Atom Syndication Format\n**Purpose**: Content syndication and updates\n**Standard**: https://www.rfc-editor.org/rfc/rfc4287\n\n**Heritage Sector Usage**:\n\nAtom feeds used for:\n- New acquisitions announcements\n- Collection update notifications\n- Blog/news syndication\n- Activity streams", - "properties": { - "has_or_had_description": { - "description": "Description of what this endpoint type represents.\n\nSKOS: definition for the meaning of the concept.\n\nShould explain:\n- What protocol/standard this type implements\n- Primary use cases\n- Target audience (harvesters, researchers, developers)\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_format": { - "description": "The format or file type of a resource or service response.\n\n**USAGE**:\nUsed for:\n- Response formats from APIs (JSON, XML, RDF)\n- File formats for documents (PDF, DOCX, TXT)\n- Media formats (JPEG, MP3, MP4)\n- Transcript formats (VTT, SRT, plain text)\n- Subtitle formats (WebVTT, SRT, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property\n- **Close**: `dct:format` - Dublin Core format\n- **Close**: `schema:encodingFormat` - Schema.org encoding format\n\n**Range**: `uriorcurie` (Rule 54)\nBroadened range to accept URI/CURIE references to format specifications.\nThis allows linking to IANA media types, format registries, or internal\nformat classes while resolving OWL ambiguous type warnings.\n\nClasses can narrow to specific format enums/classes via slot_usage.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Unique identifier for this endpoint type.\n\nFormat: URI within the NDE Heritage Custodian ontology namespace.\n\nExample: \"https://nde.nl/ontology/hc/endpoint-type/oai-pmh\"\n", - "type": "string" - }, - "has_or_had_method": { - "description": "A method associated with an activity, process, or entity.\n\n**USAGE**:\nUsed for:\n- HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod\n- Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod\n- API interaction methods\n\n**BROADENED RANGE**:\nRange broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "heritage_sector_usage": { - "description": "Description of how this endpoint type is used in the heritage sector.\n\nSKOS: scopeNote for usage context.\n\nShould explain:\n- Primary use cases in GLAM institutions\n- Which institution types commonly use this\n- Integration with aggregators (Europeana, DPLA, etc.)\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_used_in": { - "description": "The context in which something is used.", - "items": { - "$ref": "#/$defs/HeritageSector" - }, - "type": [ - "array", - "null" - ] - }, - "narrower_type": { - "description": "Child/narrower endpoint types in the hierarchy.\n\nSKOS: narrower for hierarchical relationship.\n\nExample: DataServiceEndpointType narrower includes OAIPMHEndpointType\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "protocol_name": { - "description": "Name of the protocol or standard this endpoint type implements.\n\nDublin Core: conformsTo for standard compliance.\n\nExamples:\n- \"OAI-PMH\" (Open Archives Initiative Protocol for Metadata Harvesting)\n- \"IIIF Image API\" (International Image Interoperability Framework)\n- \"SPARQL\" (SPARQL Protocol and RDF Query Language)\n- \"REST\" (Representational State Transfer)\n- \"SRU\" (Search/Retrieve via URL)\n", - "type": "string" - }, - "protocol_version": { - "description": "Version of the protocol this endpoint type supports.\n\nSchema.org: version for protocol version.\n\nExamples:\n- \"2.0\" (OAI-PMH)\n- \"3.0\" (IIIF Image API)\n- \"1.1\" (SPARQL)\n", - "type": [ - "string", - "null" - ] - }, - "related_types": { - "description": "Related endpoint types (non-hierarchical relationship).\n\nSKOS: related for associative relationships.\n\nExamples:\n- OAIPMHEndpointType related to AtomFeedType (both for syndication)\n- IIIFImageAPIType related to IIIFPresentationAPIType (same family)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specification_url": { - "description": "URL to the official specification document for this protocol.\n\nSchema.org: documentation for specification reference.\n\nExamples:\n- \"http://www.openarchives.org/OAI/openarchivesprotocol.html\" (OAI-PMH)\n- \"https://iiif.io/api/image/3.0/\" (IIIF Image API 3.0)\n- \"https://www.w3.org/TR/sparql11-protocol/\" (SPARQL 1.1)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "type_name": { - "description": "Human-readable name for this endpoint type.\n\nSKOS: prefLabel for preferred human-readable name.\n\nExamples:\n- \"OAI-PMH Endpoint\"\n- \"Search API\"\n- \"IIIF Image Server\"\n- \"SPARQL Endpoint\"\n", - "type": "string" - } - }, - "required": [ - "has_or_had_identifier", - "type_name", - "protocol_name" - ], - "title": "AtomFeed", - "type": "object" - }, - "AuctionHouse": { - "additionalProperties": false, - "description": "An auction house.", - "properties": { - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": [ - "string", - "null" - ] - } - }, - "title": "AuctionHouse", - "type": "object" - }, - "AuctionSaleCatalog": { - "additionalProperties": false, - "description": "Auction sale catalog.", - "properties": { - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": [ - "string", - "null" - ] - } - }, - "title": "AuctionSaleCatalog", - "type": "object" - }, - "AudioContent": { - "additionalProperties": false, - "description": "Sound recordings of any type.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "AUDIO", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Audio Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "AudioContent", - "type": "object" - }, - "AudioEventTypeEnum": { - "description": "Types of audio events detected in video.", - "enum": [ - "SPEECH", - "MUSIC", - "SILENCE", - "SOUND_EVENT", - "NOISE", - "MIXED" - ], - "title": "AudioEventTypeEnum", - "type": "string" - }, - "AudioPost": { - "additionalProperties": false, - "description": "Audio-only content including podcasts, music, and audio guides.\n\n**Activity Streams Mapping**: `as:Audio`\n**Schema.org Mapping**: `schema:AudioObject`, `schema:PodcastEpisode`\n\n**Platforms**:\n- Spotify (podcasts and music)\n- Apple Podcasts\n- SoundCloud\n- Audible\n- Stitcher\n- Google Podcasts (discontinued 2024)\n\n**Content Types**:\n\n| Type | Description | Typical Duration |\n|------|-------------|------------------|\n| Podcast episode | Regular series content | 20-60 min |\n| Audio guide | Exhibition companion | 30-90 min |\n| Oral history | Recorded interviews | 15-60 min |\n| Music/sound art | Audio artworks | Varies |\n| Audio description | Accessibility content | Per-item |\n\n**Heritage Use Cases**:\n\n| Use Case | Description | Distribution |\n|----------|-------------|--------------|\n| Museum podcasts | Collection stories, interviews | Spotify, Apple |\n| Audio guides | Self-guided tours | Institutional app |\n| Oral histories | Community voice recordings | SoundCloud, archive |\n| Accessibility | Description for blind visitors | Institutional |\n| Sound archives | Historical recordings | SoundCloud, Spotify |\n\n**Metadata Captured**:\n- Duration\n- Episode number (for series)\n- Show/series name\n- Transcript availability\n- Guest information", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "post_type_activity_streams_type": { - "const": "as:Audio", - "description": "Activity Streams 2.0 type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_category": { - "const": "AUDIO", - "description": "High-level category for grouping related post types.\nValues: VIDEO, SHORT_VIDEO, IMAGE, TEXT, STORY, LIVE_STREAM,\nAUDIO, ARTICLE, THREAD, CAROUSEL, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "post_type_description": { - "description": "Detailed description of this post type including purpose,\ncharacteristics, and typical use cases in heritage context.\n", - "type": [ - "string", - "null" - ] - }, - "post_type_ephemeral": { - "description": "Whether this post type is ephemeral (disappears after time).", - "type": [ - "boolean", - "null" - ] - }, - "post_type_heritage_use_case": { - "description": "Typical use cases for heritage institutions creating this content type.\n\nExamples for Video:\n- Virtual exhibition tours\n- Conservation process documentation\n- Curator interviews\n- Historical documentary content\n- Educational lectures\n\nExamples for Short Video:\n- Artifact spotlights\n- Behind-the-scenes moments\n- Quick conservation tips\n- Event teasers\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_id": { - "description": "Unique identifier for this post type", - "type": "string" - }, - "post_type_max_duration": { - "description": "Maximum duration for this post type (e.g., video length).", - "type": [ - "string", - "null" - ] - }, - "post_type_media_format": { - "description": "Supported media formats for this post type.", - "items": { - "enum": [ - "audio/mpeg", - "audio/mp4", - "audio/wav", - "audio/ogg" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_name": { - "description": "Canonical name for this post type.\nUsed for display and content categorization.\n\nExamples: \"Video\", \"Short Video\", \"Image Post\", \"Story\", \"Live Stream\"\n", - "type": "string" - }, - "post_type_schema_org_type": { - "const": "schema:AudioObject", - "description": "Schema.org type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_supported_platform": { - "description": "Platforms that support this post type.", - "items": { - "enum": [ - "Spotify", - "SoundCloud", - "ApplePodcasts", - "Audible" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "post_type_id", - "post_type_name" - ], - "title": "AudioPost", - "type": "object" - }, - "AudioRecordingCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Sound recordings.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "SoundArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by SoundArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "AudioRecordingCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AudioRecordingCollection", - "type": "object" - }, - "AudiovisualArchive": { - "additionalProperties": false, - "description": "Archive specializing in audio-visual materials including film, video,\nsound recordings, and multimedia content.\n\n**Wikidata**: Q27030766\n\n**Scope**:\nAudiovisual archives preserve:\n- Film and video recordings\n- Sound recordings (music, spoken word, oral history)\n- Multimedia productions\n- Broadcast materials (television, radio)\n- Born-digital audiovisual content\n- Related documentation (scripts, production files)\n\n**Preservation Challenges**:\n- Format obsolescence (VHS, Betamax, reel-to-reel, etc.)\n- Physical degradation (vinegar syndrome, sticky shed)\n- Digital preservation requirements\n- Large storage requirements\n- Specialized playback equipment\n\n**Related Types**:\n- FilmArchive (Q726929) - Motion picture focus\n- SoundArchive (Q2230431) - Audio recordings focus\n- TelevisionArchive (Q109326243) - TV broadcast focus\n- RadioArchive (Q109326271) - Radio broadcast focus\n- MediaArchive (Q116809817) - Broader media preservation\n\n**Notable Examples**:\n- Nederlands Instituut voor Beeld en Geluid\n- Library of Congress National Audio-Visual Conservation Center\n- British Film Institute National Archive\n- INA (Institut national de l'audiovisuel, France)", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AudiovisualArchive", - "type": "object" - }, - "AudiovisualArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by AudiovisualArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AudiovisualArchiveRecordSetType", - "type": "object" - }, - "AudiovisualCollectionContent": { - "additionalProperties": false, - "description": "Audiovisual materials: Film, video, sound recordings,\noral histories, multimedia.", - "properties": { - "has_or_had_label": {}, - "type_definition": { - "description": "Definition of this collection content type", - "type": [ - "string", - "null" - ] - } - }, - "title": "AudiovisualCollectionContent", - "type": "object" - }, - "AudiovisualContent": { - "additionalProperties": false, - "description": "Combined audio and visual media.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "AUDIOVISUAL", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Audiovisual Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "AudiovisualContent", - "type": "object" - }, - "AudiovisualProductionFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Media production records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "AudiovisualArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by AudiovisualArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "AudiovisualProductionFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AudiovisualProductionFonds", - "type": "object" - }, - "AudiovisualRecordingCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for AV recordings.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "AudiovisualArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by AudiovisualArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "AudiovisualRecordingCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AudiovisualRecordingCollection", - "type": "object" - }, - "AudiovisualStorageEnvironment": { - "additionalProperties": false, - "description": "Storage for audiovisual materials (non-film).\n\n**PURPOSE**: Provide appropriate conditions for magnetic and\noptical audiovisual media.\n\n**RECOMMENDED CONDITIONS (ISO 18934:2011)**:\n- Temperature: 18-20\u00b0C (stable)\n- Relative humidity: 40-50% (target 45%)\n- Light: Not critical (enclosed storage)\n- Environment: Dust-free essential\n\n**ISO 18934:2011 MACRO-ENVIRONMENTS**:\n- Macro-environment I: 21\u00b0C, 50% RH (room/office)\n- Macro-environment II: 10\u00b0C, 30% RH (cool/extended)\n- Covers mixed media including AV materials\n\n**SUITABLE MATERIALS**:\n- Magnetic tapes (audio, video)\n- Optical discs (CD, DVD, Blu-ray)\n- Vinyl records\n- Wax cylinders\n\n**SPECIAL REQUIREMENTS**:\n- Dust-free environment essential\n- Avoid magnetic fields\n- Vertical storage for tapes\n- Regular playback for tape maintenance\n\n**STANDARD REFERENCES**:\n- ISO 18934:2011 - Multiple media archives - Storage environment", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "AUDIOVISUAL", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard": { - "description": "Reference to applicable ISO or EN standard for this environmental zone type.\n\nFormat: Standard identifier (e.g., \"ISO 11799\", \"ISO 18911\", \"EN 16893\")\n\nCommon preservation standards:\n- ISO 11799: Document storage requirements\n- ISO 18911: Film storage practices\n- ISO 18934: Multiple media archives storage\n- EN 16893: Heritage collection storage buildings\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "max_annual_light_exposure": { - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "requires_dark_storage": { - "description": "Whether dark (zero light) storage is required for this environmental zone.\n\nBased on ISO preservation standards:\n- Film storage (ISO 18911): Dark storage mandatory\n- Photographic (ISO 18920): Dark storage for extended-term\n- UK Archives (BS 4971): 0 lux for closed storage\n\nDark storage essential for:\n- Film negatives (especially color and early nitrate/acetate)\n- Daguerreotypes and early photographic processes\n- Cyanotypes and blueprint materials\n- Some magnetic media (tape)\n- Highly fugitive inks and dyes\n\nAccess provided through reading rooms or digitization requests.\nCumulative light damage is completely prevented.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_dust_free": { - "description": "Whether a dust-free or dust-controlled environment is required for this zone.\n\nBased on ISO preservation standards:\n- Magnetic tape (ISO 18923): Dust-free mandatory\n- Optical media (ISO 18938): Cleanroom for masters\n- Archives (ISO 11799): Dust control required\n\nISO 14644-1 Cleanliness Classes:\n- Class 8: General archive/museum (HEPA filtered)\n- Class 7: AV media storage (positive pressure)\n- Class 5: Digital master storage (cleanroom)\n\nDust-free essential for:\n- Magnetic tapes and audiovisual media\n- Optical discs (CD, DVD, Blu-ray)\n- Fine art and paintings (surface abrasion)\n- Photographic materials (scratches, embedded particles)\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_esd_protection": { - "description": "Whether electrostatic discharge (ESD) protection is required for this zone.\n\nBased on ISO/IEC standards:\n- Magnetic tape (ISO 18923): ESD protection required\n- Optical media (ISO 18938): ESD-safe handling mandatory\n- Electronics (IEC 61340-5-1): ESD control program\n\nESD protection measures include:\n- Conductive/dissipative flooring\n- Humidity control (40-60% RH reduces static)\n- ESD-safe packaging and equipment\n- Personnel grounding (wrist straps)\n\nESD protection essential for:\n- Hard drives and SSDs\n- LTO and other magnetic tapes\n- Optical media (CD, DVD, Blu-ray masters)\n- Electronic components and circuit boards\n- Born-digital heritage collections\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_uv_filter": { - "description": "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \u00b5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label", - "has_or_had_description" - ], - "title": "AudiovisualStorageEnvironment", - "type": "object" - }, - "Audit": { - "additionalProperties": false, - "description": "Audit event.", - "properties": { - "draws_or_drew_opinion": { - "anyOf": [ - { - "$ref": "#/$defs/AuditOpinion" - }, - { - "type": "null" - } - ], - "description": "The opinion or conclusion drawn from an activity (e.g. audit)." - }, - "is_or_was_conducted_by": { - "anyOf": [ - { - "$ref": "#/$defs/Agent" - }, - { - "type": "null" - } - ], - "description": "The agent or organization that conducted the event (e.g., auction, assessment)." - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "Audit", - "type": "object" - }, - "AuditOpinion": { - "additionalProperties": false, - "description": "Audit opinion.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AuditOpinion", - "type": "object" - }, - "AuditStatus": { - "additionalProperties": false, - "description": "Audit status.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AuditStatus", - "type": "object" - }, - "AuditStatusType": { - "additionalProperties": false, - "description": "Audit status type.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AuditStatusType", - "type": "object" - }, - "AuditedStatus": { - "additionalProperties": false, - "description": "Financial statement has been audited.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AuditedStatus", - "type": "object" - }, - "Auditor": { - "additionalProperties": false, - "description": "Auditor entity.", - "properties": { - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": [ - "string", - "null" - ] - } - }, - "title": "Auditor", - "type": "object" - }, - "AuthenticationMethodEnum": { - "description": "Authentication methods for accessing API endpoints.", - "enum": [ - "NONE", - "API_KEY", - "API_KEY_HEADER", - "API_KEY_QUERY", - "OAUTH2", - "OAUTH1", - "BASIC", - "BEARER_TOKEN", - "IP_WHITELIST", - "INSTITUTIONAL", - "CLIENT_CERTIFICATE", - "DIGEST" - ], - "title": "AuthenticationMethodEnum", - "type": "string" - }, - "Author": { - "additionalProperties": false, - "description": "Person or organization that authored/created a creative work.\n**PURPOSE**:\nAuthor models the creator(s) of works produced by heritage custodians, such as exhibition catalogs, research publications, finding aids, and reports. Replaces simple string author lists with structured data.\n**ONTOLOGY ALIGNMENT**:\n| Ontology | Class/Property | Usage | |----------|----------------|-------| | **Schema.org** | `schema:Person`, `schema:author` | Primary class and property | | **Dublin Core** | `dcterms:creator` | Creator relationship | | **BIBFRAME** | `bf:Contribution`, `bf:Agent` | Bibliographic contributions | | **FOAF** | `foaf:Person`, `foaf:name` | Personal information | | **RiC-O** | `rico:Agent` | Archival agent modeling |\n**AUTHOR TYPES**:\nAuthors may be: - **Individual persons**: Named authors with affiliations - **Organizations**: Corporate authors (e.g., \"Rijksmuseum Staff\") - **Anonymous**: Works with unknown authorship - **Collective**: Group authorships\n**ROLES**:\nBeyond simple \"author\", works may have multiple contributor types: - Author (primary creator) - Editor - Compiler - Translator - Illustrator - Contributor\n**EXAMPLE**:\n```yaml has_or_had_author:\n - has_or_had_name: \"Jan de Vries\"\n has_or_had_role: AUTHOR\n is_or_was_affiliated_with: \"Rijksmuseum Amsterdam\"\n - has_or_had_name: \"Maria van Dijk\"\n has_or_had_role: EDITOR\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - }, - "has_or_had_role": { - "$ref": "#/$defs/AuthorRoleEnum", - "description": "Role of an entity in a context (author role, agent role, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's role may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:roleName` - Schema.org role name\n- **Exact**: `org:role` - W3C Org role\n- **Close**: `prov:hadRole` - PROV-O role in activity\n\n**Usage**:\nFor authors: role in creating a work (AUTHOR, EDITOR, TRANSLATOR)\nFor agents: role in an activity or event\nFor participants: role in a project or organization\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow enum or class values.\nClasses may narrow via slot_usage to specific Role enums or classes.\n" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_or_was_affiliated_with": { - "description": "Links an entity to an organization it is affiliated with.\n\n**USAGE**:\nUsed for:\n- Unit affiliations\n- Organizational memberships\n- Departmental relationships\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "Author", - "type": "object" - }, - "AuthorPapersCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Author and writer personal papers.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "LiteraryArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by LiteraryArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "AuthorPapersCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AuthorPapersCollection", - "type": "object" - }, - "AuthorRoleEnum": { - "description": "Roles that individuals or organizations may have in creating works. Based on BIBFRAME contributor roles and Dublin Core terms.", - "enum": [ - "AUTHOR", - "EDITOR", - "COMPILER", - "TRANSLATOR", - "ILLUSTRATOR", - "CONTRIBUTOR", - "PHOTOGRAPHER", - "DESIGNER", - "REVIEWER", - "ANONYMOUS", - "CORPORATE" - ], - "title": "AuthorRoleEnum", - "type": "string" - }, - "AuthorityData": { - "additionalProperties": false, - "description": "Authority file data.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AuthorityData", - "type": "object" - }, - "AuthorityEntityTypeEnum": { - "description": "Types of entities covered in authority files", - "enum": [ - "PERSON", - "CORPORATE_BODY", - "GEOGRAPHIC", - "WORK", - "SUBJECT", - "EVENT", - "FAMILY" - ], - "title": "AuthorityEntityTypeEnum", - "type": "string" - }, - "AuthorityFile": { - "additionalProperties": false, - "description": "A managed vocabulary or dataset containing authority records (Entities).\n**Ontology Alignment**: - **Primary**: `void:Dataset` (Dataset of entities) - **Close**: `skos:ConceptScheme`", - "properties": { - "contains_or_contained": { - "description": "Generic containment relationship (temporal). Indicates that this entity contains or has contained the referenced entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AuthorityFile", - "type": "object" - }, - "AuthorityRecordFormatEnum": { - "description": "Formats for authority records contributed to consortium services", - "enum": [ - "MARC21_AUTHORITY", - "UNIMARC_AUTHORITY", - "RDF", - "PROPRIETARY" - ], - "title": "AuthorityRecordFormatEnum", - "type": "string" - }, - "AutoGeneration": { - "additionalProperties": false, - "description": "Represents automatic generation or creation of content by a system or algorithm.\n**DEFINITION**:\nAutoGeneration models the automatic creation of content such as subtitles, chapters, transcripts, or metadata by AI/ML systems, platform algorithms, or automated processes. This replaces simple boolean flags like `auto_generated` with a structured class that can capture the generation method and provenance.\n**ONTOLOGY ALIGNMENT**:\n- PROV-O: `prov:Activity` - an activity that generates entities - PROV-O: `prov:wasGeneratedBy` - links to generating activity - Schema.org: `schema:CreateAction` - creation action\n**GENERATION METHODS**:\n- ASR (Automatic Speech Recognition): Speech-to-text for subtitles - Scene Detection: AI-based video chapter generation - NLP: Natural language processing for metadata extraction - OCR: Optical character recognition for text extraction\n**USE CASES**:\n1. **Auto-Subtitles**: YouTube auto-generated captions 2. **Auto-Chapters**: AI-detected video chapters 3. **Auto-Transcripts**: ASR-generated transcripts 4. **Auto-Metadata**: ML-extracted metadata", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "AutoGeneration", - "type": "object" - }, - "AuxiliaryDigitalPlatform": { - "additionalProperties": false, - "description": "Subordinate or project-based digital platform associated with a heritage custodian.\n\n**CRITICAL DISTINCTION - THREE-TIER DIGITAL PLATFORM MODEL**:\n\n1. **DigitalPlatform** (main digital entry point):\n - Primary web presence of the custodian\n - Main website, primary API, flagship digital platform\n - Like CustodianPlace is the preferred place reference\n - Examples: rijksmuseum.nl, europeana.eu, nationaalarchief.nl\n \n2. **AuxiliaryDigitalPlatform** (subordinate platforms) - THIS CLASS:\n - Secondary digital properties: project sites, exhibition microsites\n - Like CustodianAppellation is to CustodianName\n - Examples: project websites, temporary exhibition portals, specialized tools\n \n3. **DigitalPlatformType** (custodian type classification):\n - For digital-FIRST custodians (no physical building)\n - Applied at Custodian.custodian_type level\n - Examples: Europeana (aggregation platform), Internet Archive\n\n**DCAT ALIGNMENT**:\n\n`dcat:Catalog` - \"A curated collection of metadata about datasets\"\n\nKey properties:\n- `dcat:dataset` - links to datasets/collections\n- `dcat:service` - data services provided\n- `dcterms:isPartOf` - links to parent catalog\n\n**RELATIONSHIP TO DIGITALPLATFORM**:\n\nAuxiliaryDigitalPlatform represents SUBORDINATE digital presence\nDigitalPlatform represents PRIMARY digital entry point\n\n```\nCustodian (hub)\n \u2502\n \u2514\u2500\u2500 digital_platform \u2192 DigitalPlatform (main digital entry)\n \u2514\u2500\u2500 auxiliary_platforms \u2192 AuxiliaryDigitalPlatform (project sites)\n```\n\n**USE CASES**:\n\n1. **Project Websites**:\n - Rijksmuseum \u2192 Rijksstudio API (separate from main website)\n - National Archives \u2192 WW2 Portal (thematic project)\n\n2. **Exhibition Microsites**:\n - Temporary exhibition with dedicated website\n - Virtual tour for specific collection\n\n3. **Specialized Tools/Apps**:\n - Mobile app (separate from responsive website)\n - Collection browser tool\n - Crowdsourcing platform\n\n4. **Legacy/Archived Platforms**:\n - Previous website versions\n - Deprecated APIs still in use\n\n5. **Grant-Funded Projects**:\n - EU-funded digitization project portal\n - Research project data portal\n\n6. **Educational Platforms**:\n - Teacher resources portal\n - Student learning modules\n - Workshop booking system\n\n**Example - Rijksmuseum Auxiliary Platforms**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address: \"https://www.rijksmuseum.nl/\"\n auxiliary_platforms:\n - platform_name: \"Rijksstudio\"\n auxiliary_platform_type: PROJECT_WEBSITE\n platform_url: \"https://www.rijksmuseum.nl/nl/rijksstudio\"\n platform_purpose: \"Personal collection creation and high-res image downloads\"\n - platform_name: \"Rijksmuseum Data API\"\n auxiliary_platform_type: API_ENDPOINT\n platform_url: \"https://data.rijksmuseum.nl/\"\n platform_purpose: \"Developer access to collection metadata and images\"\n - platform_name: \"Night Watch Experience\"\n auxiliary_platform_type: EXHIBITION_MICROSITE\n platform_url: \"https://www.rijksmuseum.nl/en/stories/operation-night-watch\"\n platform_purpose: \"Interactive exploration of Night Watch research project\"\n```\n\n**TEMPORAL VALIDITY**:\n\nAuxiliary platforms often have finite lifespans:\n- Exhibition microsite: opens with exhibition, archived after closure\n- Project portal: funded period, then deprecated or integrated\n- Legacy platforms: valid_to when replaced by new system", - "properties": { - "has_or_had_documentation": { - "description": "Links to documentation resources for a service, API, platform, or system.\n**SEMANTIC PATTERN**:\nThis slot follows the RiC-O temporal predicate pattern (has_or_had_*) to indicate that documentation may change over time (versioned docs, deprecated documentation, etc.).\n**REPLACES**:\n- `api_documentation` - URL to API documentation - Other domain-specific documentation URL slots\n**RANGE OPTIONS**:\n- uri: Simple URL to documentation - Documentation: Structured documentation with metadata\nClasses should use slot_usage to specify appropriate range.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_endpoint": { - "description": "The data service endpoint.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_technological_infrastructure": { - "description": "Technical infrastructure components, systems, and technologies used by a digital platform.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - platforms may have changed technology stacks over time.\n\n**MIGRATION from technology_stack**:\nThis slot replaces the simple string-based `technology_stack` slot with a\nstructured TechnologicalInfrastructure class that provides:\n- Type classification (framework, language, database, API protocol, service)\n- Versioning information\n- Component relationships (includes_or_included)\n- Full provenance tracking\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadTechnologicalInfrastructure`\n- **Close**: `schema:softwareVersion` - Schema.org for software/version info\n- **Close**: `doap:programming-language` - DOAP vocabulary for software projects\n- **Related**: `spdx:relationshipType_DEPENDS_ON` - Software Bill of Materials\n\n**Usage Examples**:\n```yaml\nauxiliary_platform:\n has_or_had_technological_infrastructure:\n - has_or_had_type: Framework\n has_or_had_label: React\n has_or_had_description: Frontend JavaScript framework\n - has_or_had_type: BackendStack\n has_or_had_label: Python/Django\n has_or_had_description: Backend web framework\n - has_or_had_type: Database\n has_or_had_label: PostgreSQL\n has_or_had_description: Primary relational database\n```\n", - "items": { - "$ref": "#/$defs/TechnologicalInfrastructure" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_auxiliary_of_platform": { - "$ref": "#/$defs/DigitalPlatform", - "description": "Link back to the DigitalPlatform that this is an auxiliary of.\n\nDublin Core: isPartOf links part to whole.\n\nLike CustodianAppellation.variant_of_name \u2192 CustodianName,\nthis links AuxiliaryDigitalPlatform \u2192 DigitalPlatform (main platform).\n" - }, - "is_or_was_archived_at": { - "description": "Location or URL where content was archived or preserved.\n**SEMANTIC PATTERN**:\nThis slot follows the RiC-O temporal predicate pattern (is_or_was_*) to indicate that archival location may change over time or refer to historical archival events.\n**REPLACES**:\n- `archived_at` - URL to archived version (e.g., Wayback Machine) - `was_archived_at` - Similar pattern\n**USE CASES**:\n1. **Web Archival**: Link to Internet Archive/Wayback Machine snapshots 2. **Platform Preservation**: Where deprecated platforms are preserved 3. **Content Snapshots**: Historical versions of web content", - "type": [ - "string", - "null" - ] - }, - "is_or_was_based_on": { - "description": "Entity or resource this item is or was based on (temporal relationship).\n\n**Semantic Pattern**: RiC-O temporal naming convention (Rule 39)\n- \"is_or_was\" indicates the relationship may be current or historical\n- Supports temporal modeling where dependencies change over time\n\n**PROV-O Alignment**:\nprov:wasDerivedFrom - \"A derivation is a transformation of an entity into another\"\n\n**Use Cases**:\n1. **CMS Detection**: Platform is_or_was_based_on a detected CMS\n2. **Software Dependencies**: Application based on framework/library\n3. **Content Derivation**: Document based on template/source\n4. **Infrastructure**: Service based on platform/technology\n\n**Temporal Semantics**:\n- Current: \"This platform IS based on WordPress 6.4\"\n- Historical: \"This platform WAS based on Drupal 7 (now migrated)\"\n- Use temporal_extent for precise validity periods\n\n**Examples**:\n```yaml\nAuxiliaryDigitalPlatform:\n platform_name: Museum Blog\n is_or_was_based_on:\n cms_name: WordPress\n cms_version: \"6.4\"\n detected_at: \"2026-01-19T12:00:00Z\"\n```\n\n**Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53).\nReplaces boolean cms_detected with structured CMS reference.\n", - "items": { - "$ref": "#/$defs/CMS" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "linked_data": { - "description": "Does this platform provide linked open data (RDF)?\n\nDublin Core: conformsTo indicates LOD compliance.\n\nLinked data features:\n- RDF triples (Turtle, JSON-LD, N-Triples)\n- SPARQL endpoint\n- Dereferenceable URIs\n- Linked to external vocabularies (Wikidata, Getty, etc.)\n\nBoolean true/false or null if unknown.\n", - "type": [ - "boolean", - "null" - ] - }, - "platform_description": { - "description": "Detailed description of this auxiliary platform.\nMaps to dcterms:description (aligns with Dublin Core abstract for longer descriptions).\nInclude: - Full functionality description - Target audience - Technical requirements - Relationship to main platform", - "type": [ - "string", - "null" - ] - }, - "platform_name": { - "description": "Human-readable name of the social media platform.\n\nFOAF: accountServiceHomepage for service provider identification.\n\nUse when platform_type is OTHER or for disambiguation.\n\nExamples: \"Instagram\", \"X (formerly Twitter)\", \"Mastodon (glammr.us)\"\n", - "type": "string" - }, - "platform_purpose": { - "description": "Brief description of what this platform provides/enables.\n\nDublin Core: description for purpose statement.\n\nFocus on user benefit and functionality.\n", - "type": [ - "string", - "null" - ] - }, - "platform_url": { - "description": "URL of this auxiliary digital platform. Mapped to schema:url as the standard property for web addresses.\n\nThis is the entry point URL for the platform.\n", - "pattern": "^https?://", - "type": "string" - }, - "receives_or_received": { - "description": "Indicates that an entity receives or received something (e.g., funding, award, material). MIGRATED from funding_source per Rule 53. Follows RiC-O naming convention.", - "items": { - "$ref": "#/$defs/FundingSource" - }, - "type": [ - "array", - "null" - ] - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "related_project": { - "description": "Related projects (predecessors, successors, or parallel initiatives).\n\nUse for:\n- Predecessor: Previous year's version (Versnellen 2023 \u2192 Versnellen 2024)\n- Successor: Next phase of multi-year program\n- Parallel: Related but independent initiatives\n\nURI references to other Project entities.\n", - "type": [ - "string", - "null" - ] - }, - "serves_finding_aid": { - "description": "Finding aids hosted/served by this digital platform.\n\n**INVERSE RELATIONSHIP**:\n- Forward: FindingAid.served_by \u2192 DigitalPlatform/WebPortal (finding aid is served by platform)\n- Inverse: DigitalPlatform.serves_finding_aids \u2192 FindingAid[] (platform serves finding aids)\n\n**USE CASES**:\n1. \"What finding aids are available on this platform?\" \u2192 Follow serves_finding_aids\n2. \"Which platforms host EAD finding aids?\" \u2192 Query platforms with EAD-format finding aids\n3. Platform inventory: Map all finding aids served by each digital infrastructure\n\n**EXAMPLES**:\n- Archieven.nl serves 1000+ EAD finding aids\n- Archives Portal Europe serves finding aids from 30+ European countries\n- National Archives website serves collection guides and inventories\n\n**NOTE**: References FindingAid instances by URI. For full objects, \ndereference or query the FindingAid directly.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_identifier", - "is_auxiliary_of_platform", - "platform_name", - "platform_url", - "refers_to_custodian" - ], - "title": "AuxiliaryDigitalPlatform", - "type": "object" - }, - "AuxiliaryDigitalPlatformTypeEnum": { - "description": "Types of secondary or subordinate digital platforms for heritage custodians.\n\nThese represent digital properties beyond the main website, including project\nsites, exhibition microsites, specialized APIs, mobile apps, etc.\n\nAligns with DCAT dcat:Catalog concept for secondary data catalogs/services.", - "enum": [ - "PROJECT_WEBSITE", - "EXHIBITION_MICROSITE", - "API_ENDPOINT", - "MOBILE_APP", - "COLLECTION_BROWSER", - "CROWDSOURCING_PLATFORM", - "EDUCATIONAL_PORTAL", - "DATA_PORTAL", - "LEGACY_PLATFORM", - "VIRTUAL_TOUR", - "BLOG_NEWS", - "SOCIAL_MEDIA", - "PODCAST_CHANNEL", - "BOOKING_SYSTEM", - "WEBSHOP", - "NEWSLETTER" - ], - "title": "AuxiliaryDigitalPlatformTypeEnum", - "type": "string" - }, - "AuxiliaryPlace": { - "additionalProperties": false, - "description": "Secondary or subordinate physical location associated with a heritage custodian.\n\n**CRITICAL DISTINCTION - THREE-TIER PLACE MODEL**:\n\n1. **CustodianPlace** (preferred place reference):\n - Main/primary place designation for the custodian\n - Like CustodianName is the preferred emic label\n - Examples: \"Rijksmuseum\" (main building), \"National Archives\" (headquarters)\n \n2. **AuxiliaryPlace** (subordinate places) - THIS CLASS:\n - Secondary locations: branch offices, storage facilities, regional sites\n - Like CustodianAppellation is to CustodianName\n - Examples: Depot Amersfoort (off-site storage), Regional office Noord-Holland\n \n3. **FeaturePlace** (feature type classification):\n - Classifies the TYPE of physical feature (museum building, warehouse, etc.)\n - Applies to both CustodianPlace and AuxiliaryPlace\n\n**W3C ORG ALIGNMENT**:\n\n`org:Site` - \"An office or other premise at which the organization is located. \nMany organizations are spread across multiple sites and many sites will host \nmultiple locations. In most cases a Site will be a physical location.\"\n\nKey properties:\n- `org:siteOf` - links site to organization (inverse of org:hasSite)\n- `org:siteAddress` - locn:Address for physical address\n- `locn:geometry` - geometric representation (lat/lon)\n\n**RELATIONSHIP TO ORGANIZATIONBRANCH**:\n\nAuxiliaryPlace represents PHYSICAL LOCATION (where)\nOrganizationBranch represents ORGANIZATIONAL UNIT (what operates there)\n\n```\nCustodian (hub)\n \u251c\u2500\u2500 place_designation \u2192 CustodianPlace (main place)\n \u2502 \u2514\u2500\u2500 auxiliary_places \u2192 AuxiliaryPlace (subordinate sites)\n \u2502 \u2514\u2500\u2500 hosts_branch \u2192 OrganizationBranch (org unit at site)\n \u2502 \u2514\u2500\u2500 has_operational_unit \u2192 OrganizationalStructure (teams)\n \u2502\n \u2514\u2500\u2500 organizational_structure \u2192 OrganizationalStructure (informal units)\n \u2514\u2500\u2500 located_at \u2192 AuxiliaryPlace (optional physical location)\n```\n\n**USE CASES**:\n\n1. **Off-site Storage Facilities**:\n - Museum depot in Amersfoort (Rijksmuseum)\n - Archive annexes and document centers\n\n2. **Branch Libraries/Offices**:\n - University library branches at satellite campuses\n - Regional archive offices (Noord-Holland, Zuid-Holland)\n\n3. **Research Centers**:\n - Conservation lab in separate building\n - Digitization center at different address\n\n4. **Historic Buildings Under Same Custodian**:\n - Mauritshuis manages multiple historic houses\n - Abbey with multiple monastic buildings\n\n5. **Temporary Locations**:\n - Exhibition pavilions\n - Pop-up museums/archives\n - Storage during renovation\n\n**Example - Rijksmuseum with Multiple Sites**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n place_designation:\n place_name: \"Rijksmuseum\" # Main building on Museumplein\n auxiliary_places:\n - place_name: \"Depot Amersfoort\"\n auxiliary_place_type: STORAGE_FACILITY\n street_address: \"Euterpelaan 25, Amersfoort\"\n - place_name: \"Rijksmuseum Schiphol\"\n auxiliary_place_type: BRANCH_OFFICE\n street_address: \"Schiphol Airport, Lounge 2\"\n hosts_branch:\n has_or_had_label: \"Schiphol Exhibition Space\"\n```\n\n**TEMPORAL VALIDITY**:\n\nAuxiliary places can open/close independently:\n- Storage facility opened 1995, closed 2010 (moved to new location)\n- Branch office valid_from 2000, valid_to null (still active)\n\nTrack with valid_from/valid_to or temporal_extent (for fuzzy dates).", - "properties": { - "country": { - "anyOf": [ - { - "$ref": "#/$defs/Country" - }, - { - "type": "null" - } - ], - "description": "Country where this place is located (OPTIONAL).\n\nLinks to Country class with ISO 3166-1 codes.\n\nSchema.org: addressCountry uses ISO 3166-1 alpha-2 codes.\n\nUse when:\n- Place name is ambiguous across countries (\"Victoria Museum\" exists in multiple countries)\n- Feature types are country-specific (e.g., \"cultural heritage of Peru\")\n- Generating country-conditional enums\n\nExamples:\n- \"Rijksmuseum\" \u2192 country.alpha_2 = \"NL\"\n- \"cultural heritage of Peru\" \u2192 country.alpha_2 = \"PE\"\n" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_geographic_subdivision": { - "description": "Geographic subdivision within a country (state, province, region, department, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity may have been located in different subdivisions\nover time (e.g., due to boundary changes, administrative reorganization).\n\n**Geographic Hierarchy**:\nCountry \u2192 GeographicSubdivision (this slot) \u2192 Settlement\n\n**Identifier Format**:\nISO 3166-2 codes: {country_alpha2}-{subdivision_code}\nExamples: US-PA (Pennsylvania), ID-BA (Bali), DE-BY (Bavaria), NL-LI (Limburg)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `lcc_cr:isSubregionOf` - OMG Languages Countries and Codes\n- **Exact**: `schema:addressRegion` - Schema.org administrative region\n- **Close**: `locn:adminUnitL2` - INSPIRE administrative unit level 2\n- **Close**: `gn:A.ADM1` - GeoNames first-order administrative division\n\n**Use Cases**:\n- Place is located in a specific subdivision (e.g., \"Pittsburgh museum\" \u2192 US-PA)\n- Feature types are region-specific (e.g., \"sacred shrine (Bali)\" \u2192 ID-BA)\n- Legal jurisdiction at subnational level (e.g., Bavarian archive law)\n- Generating GHCID region codes\n\n**Range**: `uriorcurie` (Rule 55) - Allows both:\n- URI references to Subregion class instances\n- Direct ISO 3166-2 code CURIEs\n\n**Migration Note** (2026-01-17):\nReplaces domain-specific `subregion` slot per slot_fixes.yaml revision.\nProvides generic predicate name applicable across geographic contexts.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_geometry": { - "description": "Indicates the geometry associated with an entity. MIGRATED from geometry_type/geometry_wkt per Rule 53. Follows GeoSPARQL naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_location": { - "description": "The location of an entity.", - "items": { - "$ref": "#/$defs/GeoSpatialPlace" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/PlaceType" - }, - "type": "array" - }, - "is_or_was_branch_of": { - "$ref": "#/$defs/CustodianPlace", - "description": "Indicates that this place/site is a branch or auxiliary location of a main organization or place.\n" - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_located_in": { - "description": "links an entity to a place where it is or was located.\n\n**TEMPORAL SEMANTICS** (RiC-O style):\n\nThe \"is_or_was\" naming indicates that location can change over time.\n\n**BROADENED RANGE (Rule 55)**:\nRange broadened to `Any` (from City) to support multiple location types:\n- City / Settlement\n- Region / Province (e.g. EcclesiasticalProvince)\n- Country\n- Physical Site\n\n**DISTINCTION FROM is_or_was_located_within**:\n\n- `is_or_was_located_in`: Entity is AT a place (city/settlement level)\n- `is_or_was_located_within`: Entity is CONTAINED IN a larger place (hierarchical)\n\n**REPLACES**:\n\n- `city` (string slot) - Migrated to structured City class\n\n**USE CASES**:\n\n- Address city component (structured)\n- Auxiliary place city location\n- Any entity requiring city-level location\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_location_of": { - "description": "Indicates that this place serves as the location for an entity (e.g., an organization or branch).\n\n**MIGRATED** from hosts_branch (Rule 53).\n\nInverse of is_or_was_located_at.", - "items": { - "$ref": "#/$defs/OrganizationBranch" - }, - "type": [ - "array", - "null" - ] - }, - "postal_code": { - "description": "Postal/ZIP code for this auxiliary place.\n\nvCard: postal-code for postal codes.\nAlso aligns with W3C Location locn:postCode.\n", - "type": [ - "string", - "null" - ] - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "settlement": { - "description": "City/town where this place is located (OPTIONAL).\n\nLinks to Settlement class with GeoNames numeric identifiers.\n\nGeoNames ID resolves ambiguity: 41 \"Springfield\"s in USA have different IDs.\n\nSchema.org: location for settlement reference.\n\nUse when:\n- Place is in a specific city (e.g., \"Amsterdam museum\" \u2192 GeoNames 2759794)\n- Feature types are city-specific (e.g., \"City of Pittsburgh historic designation\")\n- Maximum geographic precision needed\n\nExamples:\n- \"Amsterdam museum\" \u2192 settlement.geonames_id = 2759794\n- \"Pittsburgh designation\" \u2192 settlement.geonames_id = 5206379\n- \"Rio museum\" \u2192 settlement.geonames_id = 3451190\n\nNOTE: settlement must be within the specified country and subregion (if provided).\n\nGeoNames lookup: https://www.geonames.org/{geonames_id}/\n", - "type": [ - "string", - "null" - ] - }, - "specialized_place": { - "anyOf": [ - { - "$ref": "#/$defs/ReconstructedEntity" - }, - { - "type": "null" - } - ], - "description": "Link to a specialized place class instance for type-specific data.\n\n**CLASS-BASED TYPING SYSTEM**:\n\nWhile `auxiliary_place_type` provides basic classification via enum,\n`specialized_place` allows linking to a fully-typed specialized class\ninstance with type-specific slots and further classification enums.\n\n**Available Specialized Classes**:\n\n| has_auxiliary_place_type | specialized_place class | Type-specific features |\n|---------------------|------------------------|----------------------|\n| BRANCH_OFFICE | BranchOffice | service_types, parent_branch |\n| STORAGE_FACILITY | Storage | storage_conditions, climate_zones |\n| RESEARCH_CENTER | ResearchCenter | research_center_type enum |\n| EXHIBITION_SPACE | ExhibitionSpace | exhibition_space_type, linked gallery/museum types |\n| HISTORIC_BUILDING | HistoricBuilding | construction_date, heritage_designation, feature_type |\n| TEMPORARY_LOCATION | TemporaryLocation | reason enum, planned_end_date |\n| ADMINISTRATIVE_OFFICE | AdministrativeOffice | departments_hosted |\n| EDUCATION_CENTER | EducationCenter | education_provider_type |\n| CONSERVATION_LAB | ConservationLab | conservation_specialties |\n| READING_ROOM | ReadingRoom | reading_room_type enum, capacity |\n| READING_ROOM_ANNEX | ReadingRoomAnnex | has_annex_reason enum, primary_reading_room |\n| WAREHOUSE | Warehouse | warehouse_type enum, total_capacity |\n| OUTDOOR_SITE | OutdoorSite | outdoor_site_type enum, bio/feature types |\n| RETAIL_SPACE | GiftShop | shop_types, product_categories |\n| CAFE_RESTAURANT | CateringPlace | catering_type enum, taste_scent_type |\n\n**EXAMPLE**:\n\n```yaml\nauxiliary_place_type: CONSERVATION_LAB\nspecialized_place:\n conservation_lab_id: \"https://nde.nl/hc/lab/rijksmuseum-paper-lab\"\n lab_name: \"Paper Conservation Laboratory\"\n conservation_specialties:\n - \"Paper conservation\"\n - \"Book binding restoration\"\n serves_institutions:\n - \"Rijksmuseum\"\n - \"Van Gogh Museum\"\n```\n\n**OPTIONALITY**:\n\nThis slot is OPTIONAL. Basic classification via `auxiliary_place_type`\nis sufficient for many use cases. Use `specialized_place` when:\n- You need type-specific attributes (e.g., storage conditions)\n- Further classification is needed (e.g., research_center_type)\n- Cross-referencing specialized resources\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_type", - "is_or_was_branch_of", - "has_or_had_label", - "refers_to_custodian" - ], - "title": "AuxiliaryPlace", - "type": "object" - }, - "AuxiliaryPlaceTypeEnum": { - "description": "Types of secondary or subordinate physical locations for heritage custodians.\n\nThese represent physical sites beyond the main headquarters where custodians\noperate, including storage facilities, branch offices, research centers, etc.\n\nAligns with W3C ORG org:Site concept for organizational premises.\n\n**CLASS-BASED TYPING**:\n\nEach enum value references a specialized class that provides:\n- Detailed slots specific to that place type\n- Type-specific enums for further classification\n- Appropriate ontology mappings (CIDOC-CRM, Schema.org, etc.)\n\nWhen creating an AuxiliaryPlace with a specific type, the corresponding\nspecialized class can be used for richer modeling.", - "enum": [ - "BRANCH_OFFICE", - "STORAGE_FACILITY", - "RESEARCH_CENTER", - "EXHIBITION_SPACE", - "HISTORIC_BUILDING", - "TEMPORARY_LOCATION", - "ADMINISTRATIVE_OFFICE", - "EDUCATION_CENTER", - "CONSERVATION_LAB", - "READING_ROOM", - "READING_ROOM_ANNEX", - "WAREHOUSE", - "OUTDOOR_SITE", - "RETAIL_SPACE", - "CAFE_RESTAURANT" - ], - "title": "AuxiliaryPlaceTypeEnum", - "type": "string" - }, - "AuxiliaryPlatform": { - "additionalProperties": false, - "description": "An auxiliary or secondary digital platform.\n\n**USAGE**:\nUsed for:\n- Secondary websites\n- Project microsites\n- Legacy platforms", - "properties": { - "platform_name": { - "description": "Name of the platform", - "type": [ - "string", - "null" - ] - }, - "platform_type": { - "description": "Type of auxiliary platform", - "type": [ - "string", - "null" - ] - }, - "platform_url": { - "description": "URL of the platform", - "type": [ - "string", - "null" - ] - }, - "relationship": { - "description": "Relationship to main platform (LEGACY, MICROSITE, PROJECT)", - "type": [ - "string", - "null" - ] - } - }, - "title": "AuxiliaryPlatform", - "type": "object" - }, - "AvailabilityStatus": { - "additionalProperties": false, - "description": "Represents the availability state of a resource, service, or feature.\n**DEFINITION**:\nAvailabilityStatus models whether something (API, service, feature, resource) is currently available for use. This replaces domain-specific boolean flags like `api_available` with a structured class that can capture temporal validity and descriptive context.\n**ONTOLOGY ALIGNMENT**:\n- Schema.org: `schema:Availability` - availability of a product/service - DCAT: `dcat:DataService` availability patterns - DCTERMS: `dcterms:available` - date resource became available\n**USE CASES**:\n1. **API Availability**: Whether a CMS provides API access 2. **Service Availability**: Whether a digital platform is operational 3. **Feature Availability**: Whether specific features are enabled\n**TEMPORAL VALIDITY**:\nAvailability can change over time: - API available from 2015-01-01 to 2020-12-31 (deprecated) - Service temporarily unavailable during maintenance", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "AvailabilityStatus", - "type": "object" - }, - "AviarySubtype": { - "additionalProperties": false, - "description": "Specialized bird collection and exhibit facility.\nEnclosed structures for bird observation.\n\n**Wikidata**: Q618451", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "AviarySubtype", - "type": "object" - }, - "BackendDeveloper": { - "additionalProperties": false, - "description": "Backend developer building server-side applications and APIs.\n\n**Official Title vs De Facto Work**:\nIn heritage context, often works on collections APIs, data services,\nand integrations with heritage standards.\n\n**Common Variants**:\n- Server Developer\n- API Developer\n- Python Developer\n- Java Developer\n\n**Typical Domains**: Heritage institutions with digital teams\n\n**Typical Responsibilities**:\n- API development\n- Database integration\n- Server-side logic\n- Authentication/authorization\n- Performance optimization", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "BackendDeveloper", - "type": "object" - }, - "BackendFramework": { - "additionalProperties": false, - "description": "Server-side web framework.\nExamples: Django, Rails, Spring Boot, Express, FastAPI", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "BackendFramework", - "type": "object" - }, - "BackupStatus": { - "additionalProperties": false, - "description": "Represents the current backup and disaster recovery status for a heritage custodian.\n\n**DEFINITION**:\n\nBackupStatus captures the current state of backup configurations including:\n- The type(s) of backup being used (via has_or_had_type \u2192 BackupType)\n- Status description (free text details)\n- Temporal validity (when this status was recorded/changed)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **PROV-O** | `prov:Entity` | Primary - entity with provenance |\n| **PREMIS** | `premis:fixity` | Related - data integrity |\n| **SKOS** | `skos:Concept` | For type classification |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nCustodianAdministration\n \u2502\n \u2514\u2500\u2500 has_or_had_status \u2192 BackupStatus (THIS CLASS)\n \u2502\n \u251c\u2500\u2500 has_or_had_type \u2192 BackupType (type hierarchy)\n \u251c\u2500\u2500 has_or_had_description (free text details)\n \u2514\u2500\u2500 begin_of_the_begin / end_of_the_end (validity period)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the backup_status string slot.\nOld pattern: `backup_status: \"Daily backup to Azure, replicated to secondary site\"`\nNew pattern: `has_or_had_status: BackupStatus` with structured type and description", - "properties": { - "begin_of_the_begin": { - "anyOf": [ - { - "$ref": "#/$defs/Timestamp" - }, - { - "type": "string" - }, - { - "format": "date-time", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Earliest possible start time of temporal extent (CIDOC-CRM E52_Time-Span).\n\n**CIDOC-CRM Pattern**:\nP82a defines the earliest possible time the time span could have started.\nUsed with P81a (end_of_the_begin) to express uncertainty about start time.\n\n**Example**: \"Founded between 1800-1805\"\n- begin_of_the_begin: 1800-01-01 (earliest possible founding)\n- end_of_the_begin: 1805-12-31 (latest possible founding)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `time:hasBeginning` (OWL Time ObjectProperty)\n- **Close**: `crm:P82a_begin_of_the_begin` - CIDOC-CRM fuzzy bound (note: expects literal)\n- **Related**: `prov:startedAtTime` - PROV-O activity start\n- **Narrow**: `schema:startDate` - Schema.org start date\n\n**Range**: Any - supports both Timestamp class and string datetime values\n" - }, - "end_of_the_end": { - "anyOf": [ - { - "$ref": "#/$defs/Timestamp" - }, - { - "type": "string" - }, - { - "format": "date-time", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Latest possible end time of temporal extent (CIDOC-CRM E52_Time-Span).\n\n**CIDOC-CRM Pattern**:\nP82b defines the latest possible time the time span could have ended.\nUsed with P81b (begin_of_the_end) to express uncertainty about end time.\n\n**Example**: \"Closed between 1950-1955\"\n- begin_of_the_end: 1950-01-01 (earliest possible closure)\n- end_of_the_end: 1955-12-31 (latest possible closure)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `time:hasEnd` (OWL Time ObjectProperty)\n- **Close**: `crm:P82b_end_of_the_end` - CIDOC-CRM fuzzy bound (note: expects literal)\n- **Related**: `prov:endedAtTime` - PROV-O activity end\n- **Narrow**: `schema:endDate` - Schema.org end date\n\n**Range**: Any - supports both Timestamp class and string datetime values\n" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/backup-status/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier" - ], - "title": "BackupStatus", - "type": "object" - }, - "BackupType": { - "additionalProperties": false, - "description": "Classification type for backup and disaster recovery strategies in heritage custodian contexts.\n\n**DEFINITION**:\n\nBackupType provides a SKOS-based classification hierarchy for categorizing\ndifferent types of backup strategies, frequencies, and storage locations\nused by heritage institutions for data protection.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **SKOS** | `skos:Concept` | Primary - controlled vocabulary concept |\n| **PREMIS** | `premis:fixity` | Related - data integrity verification |\n| **DQV** | `dqv:QualityMeasurement` | Data quality measurement |\n| **Dublin Core** | `dcterms:isReferencedBy` | Backup documentation |\n\n**BACKUP TYPE CATEGORIES** (from slot definition):\n\n| Category | Description |\n|----------|-------------|\n| **FREQUENCY** | How often backups occur (daily, weekly, continuous) |\n| **STRATEGY** | Backup approach (full, incremental, differential) |\n| **LOCATION** | Where backups are stored (on-site, off-site, cloud) |\n| **MEDIUM** | Storage medium (disk, tape, cloud, paper) |\n| **STATUS** | Current state (active, inactive, not backed up) |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nCustodianAdministration\n \u2502\n \u2514\u2500\u2500 has_or_had_status \u2192 BackupStatus (status class)\n \u2502\n \u2514\u2500\u2500 has_or_had_type \u2192 BackupType (THIS CLASS)\n \u251c\u2500\u2500 has_or_had_hypernym \u2192 BackupType (parent)\n \u2514\u2500\u2500 has_or_had_description (strategy details)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the backup_status string slot with a proper class hierarchy.\nOld pattern: `backup_status: \"Daily backup to Azure\"` (string)\nNew pattern: `has_or_had_status: BackupStatus` \u2192 `has_or_had_type: BackupType` (object reference)", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/BackupType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/backup-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label" - ], - "title": "BackupType", - "type": "object" - }, - "BankArchive": { - "additionalProperties": false, - "description": "Archive preserving records of banking institutions, documenting\nfinancial history and banking operations.\n\n**Wikidata**: Q52718263\n\n**Scope**:\nBank archives (Bankarchive) preserve:\n- Corporate governance records (board minutes, reports)\n- Customer records (historical, anonymized)\n- Loan and mortgage documentation\n- Correspondence and contracts\n- Marketing and advertising materials\n- Photographs of buildings, staff, events\n- Publications (annual reports, newsletters)\n- Numismatic collections (banknotes, coins)\n\n**Historical Significance**:\nBank archives document:\n- Economic development and financial history\n- Business and commercial practices\n- Architectural heritage (historic bank buildings)\n- Social history (banking access, community development)\n\n**Related Types**:\n- CompanyArchives (Q10605195) - Corporate archives broadly\n- EconomicArchive (Q27032167) - Economic history focus\n\n**Privacy Considerations**:\nBank archives often have:\n- Extended closure periods for personal data\n- Anonymization requirements\n- Legal retention requirements\n- Sensitive commercial information\n\n**Notable Examples**:\n- HSBC Group Archives (London)\n- Deutsche Bank Historical Archive\n- Rothschild Archive (London)\n- Archives historiques de la Soci\u00e9t\u00e9 G\u00e9n\u00e9rale", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "BankArchive", - "type": "object" - }, - "BankArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by BankArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "BankArchiveRecordSetType", - "type": "object" - }, - "BankingRecordsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Banking institution records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "BankArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by BankArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "BankingRecordsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "BankingRecordsFonds", - "type": "object" - }, - "BayNumber": { - "additionalProperties": false, - "description": "An identifier for a storage bay or section within a row/aisle of a storage facility.\n\n**DEFINITION**:\n\nBayNumber represents a discrete location identifier within a storage system.\nIn heritage storage facilities, storage is typically organized hierarchically:\n\n```\nStorage Facility\n \u2514\u2500\u2500 Zone (environmental control)\n \u2514\u2500\u2500 Row/Aisle (physical corridor)\n \u2514\u2500\u2500 Bay/Section (THIS CLASS - vertical unit in row)\n \u2514\u2500\u2500 Shelf (horizontal level within bay)\n \u2514\u2500\u2500 Storage Unit (box, drawer, etc.)\n```\n\n**TYPICAL VALUES**:\n\n| Format | Example | Description |\n|--------|---------|-------------|\n| Numeric | \"3\", \"12\" | Sequential bay numbers |\n| Alphabetic | \"A\", \"C\", \"AA\" | Lettered bays |\n| Mixed | \"3A\", \"B2\" | Combined formats |\n| Descriptive | \"North-3\" | Location-based |\n\n**HERITAGE USE CASES**:\n\n| Institution Type | Bay Naming Convention |\n|------------------|----------------------|\n| Archives | Sequential numeric (1, 2, 3...) |\n| Museums | Alphanumeric by collection area |\n| Libraries | By call number range |\n| Natural history | By specimen type |\n\n**PROVENANCE**:\n\nCreated as part of slot migration (Rule 53) from deprecated\n`bay_number` slot to generic `has_or_had_identifier` pattern.", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "BayNumber", - "type": "object" - }, - "BeeldbankDescribedPhotosClaim": { - "additionalProperties": false, - "description": "Number of described photos in image bank.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "BeeldbankDescribedPhotosClaim", - "type": "object" - }, - "BeeldbankDescriptionClaim": { - "additionalProperties": false, - "description": "Description of image bank/beeldbank.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "BeeldbankDescriptionClaim", - "type": "object" - }, - "BeeldbankTotalPhotosClaim": { - "additionalProperties": false, - "description": "Total photos in image bank (beeldbank).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "BeeldbankTotalPhotosClaim", - "type": "object" - }, - "BeeldbankUrlClaim": { - "additionalProperties": false, - "description": "URL to image bank/beeldbank section.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "BeeldbankUrlClaim", - "type": "object" - }, - "BelgianTaxShelter": { - "additionalProperties": false, - "description": "Belgian tax deduction for donations to approved cultural institutions.\n\n**Benefits**:\n- 45% tax reduction on donations\n- Minimum donation: \u20ac40\n- Maximum: 10% of net income (max \u20ac392,200)\n\n**Eligibility**:\n- Institution must be approved by Finance Ministry\n- Annual approval required\n\n**Regulatory Body**: SPF Finances", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "BelgianTaxShelter", - "type": "object" - }, - "BibliographicDatabasePlatform": { - "additionalProperties": false, - "description": "Database providing an authoritative source of bibliographic information.\n\n**PURPOSE**: Provide comprehensive bibliographic data for scholarly\ncitation, library cataloging, and research discovery.\n\n**CHARACTERISTICS**:\n- Authoritative bibliographic records\n- Citation indexing\n- Subject classification\n- Author authority control\n\n**EXAMPLES**: Web of Science, Scopus, PubMed, WorldCat", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q1789476" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AGGREGATOR", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "BibliographicDatabasePlatform", - "type": "object" - }, - "BindingType": { - "additionalProperties": false, - "description": "Classification type for book binding methods in heritage custodian contexts.\n\n**DEFINITION**:\n\nBindingType provides a SKOS-based classification hierarchy for categorizing\ndifferent types of book bindings based on method, material, and style.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **BIBFRAME** | `bf:Binding` | Primary - binding method for published resources |\n| **AAT** | `aat:300211468` | Getty bindings concept hierarchy |\n| **CIDOC-CRM** | `crm:E55_Type` | General type classification |\n| **SKOS** | `skos:Concept` | Controlled vocabulary concept |\n\n**BINDING TYPES** (from slot definition):\n\n| Type | Description |\n|------|-------------|\n| `FULL_LEATHER` | Entire cover in leather |\n| `HALF_LEATHER` | Spine and corners in leather |\n| `QUARTER_LEATHER` | Spine only in leather |\n| `CLOTH` | Cloth binding covers |\n| `PAPER_BOARDS` | Paper-covered boards |\n| `LIMP_VELLUM` | Flexible vellum cover |\n| `CASE_BINDING` | Modern hardcover case |\n| `PAMPHLET_BINDING` | Simple pamphlet stitch |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nInformationCarrier / ExhibitionCatalog\n \u2502\n \u2514\u2500\u2500 has_or_had_type \u2192 BindingType (THIS CLASS)\n \u251c\u2500\u2500 has_or_had_hypernym \u2192 BindingType (parent)\n \u2514\u2500\u2500 has_or_had_description (method details)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the binding_type string slot with a proper class hierarchy.\nOld pattern: `binding_type: \"Full leather\"` (string)\nNew pattern: `has_or_had_type: BindingType` (object reference)", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/BindingType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/binding-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label" - ], - "title": "BindingType", - "type": "object" - }, - "BioCustodianType": { - "additionalProperties": false, - "description": "Specialized custodian type for biological and zoological institutions - organizations\nthat maintain living collections of plants, animals, or aquatic life for purposes of\nconservation, research, education, and public exhibition. Includes botanical gardens,\nzoological parks, aquariums, arboreta, and specialized biological facilities.\n\n**Wikidata Base Concepts**:\n- Q167346 (botanical garden) - Living plant collections with taxonomic labeling\n- Q43501 (zoo) - Collections of wild animal species for study, conservation, exhibition\n- Q2281788 (public aquarium) - Institutions exhibiting live aquatic animals and plants\n\n**Primary GLAMORCUBESFIXPHDNT Category**: BOTANICAL_ZOO (B)\n\n**Scope**:\nBiological custodians are distinguished by their:\n- Living collections (plants, animals, aquatic life) vs. preserved specimens\n- Conservation and breeding programs for endangered species\n- Scientific research on taxonomy, ecology, animal behavior, plant science\n- Public education through living exhibits and interpretive programs\n- Integration of cultural heritage (historic gardens, zoo architecture, seed banks)\n\n**Key BioCustodian Subtypes** (1,393 Wikidata entities extracted):\n\n**By Collection Type**:\n\n**Botanical Institutions** (Q167346 base):\n- **Botanical gardens** (Q167346) - Comprehensive plant collections with scientific labeling\n - Examples: Hortus botanicus Leiden (1590), Royal Botanic Gardens Kew (1840)\n- **Arboreta** (Q167951) - Specialized tree and woody plant collections\n - Examples: Arnold Arboretum (Harvard), Westonbirt Arboretum (UK)\n- **Historic gardens** (Q1107656) - Gardens with cultural heritage significance\n - Examples: Keukenhof (NL), Versailles gardens (FR)\n- **Seed banks** (Q1639542) - Repositories preserving plant genetic diversity\n - Examples: Svalbard Global Seed Vault, Millennium Seed Bank (Kew)\n- **Herbaria** (institutional) - Living plant collections vs. pressed specimens\n - Note: Dried herbaria are RESEARCH_CENTER (R), living are BioCustodian (B)\n- **Alpine gardens** (Q4734362) - Specialized high-altitude plant collections\n- **Cactus gardens** (Q5016280) - Succulent and desert plant specialists\n- **Rose gardens** (Q2467557) - Specialized rose cultivar collections\n- **Poison gardens** (Q1107656 subtype) - Educational toxic plant collections\n - Example: Alnwick Poison Garden (UK)\n\n**Zoological Institutions** (Q43501 base):\n- **Zoological parks/zoos** (Q43501) - Comprehensive wild animal collections\n - Examples: Artis (Amsterdam, 1838), San Diego Zoo (1916)\n- **Wildlife parks** (Q3363934) - Open-range naturalistic exhibits\n - Examples: Blijdorp (Rotterdam), Safaripark Beekse Bergen (NL)\n- **Safari parks** (Q1544761) - Drive-through animal exhibits\n- **Petting zoos** (Q2302474) - Interactive domestic animal exhibits\n- **Rescue centers** (Q7314895) - Wildlife rehabilitation facilities\n- **Conservation breeding centers** - Endangered species propagation\n - Example: Rotterdam Zoo gorilla breeding program\n- **Living museums** (with animal exhibits) - Cultural + zoological heritage\n - Example: Zuiderzeemuseum with historic livestock breeds\n\n**Aquatic Institutions** (Q2281788 base):\n- **Public aquariums** (Q2281788) - Marine and freshwater life exhibits\n - Examples: Burgers' Zoo Ocean (Arnhem), Artis Aquarium (Amsterdam)\n- **Oceanariums** (Q3348580) - Large-scale marine mammal facilities\n - Examples: SeaWorld facilities, Oceanogr\u00e0fic Valencia (ES)\n- **Marine research aquariums** - Combined research + exhibition\n- **Touch pools/tide pool exhibits** - Interactive aquatic education\n\n**Specialized BioCustodians**:\n- **Butterfly houses** (Q2501028) - Enclosed tropical butterfly exhibits\n - Example: Vlindertuin Vlindorado (NL)\n- **Insectariums** (Q1664720) - Insect collections and exhibits\n- **Aviaries** (Q618451) - Specialized bird collections\n- **Reptile houses** (Q1345229) - Herpetological collections\n- **Primate centers** (Q7243594) - Specialized primate research/conservation\n\n**Hybrid Institutions**:\n- **Zoo + botanical garden combinations** - Integrated animal/plant collections\n - Example: Burgers' Zoo (Arnhem) with tropical plant collections\n- **Natural history museums with living collections** - Integrated dead/living\n - Maps to MIXED (X) type when both museum (M) and bio (B) functions\n\n**Geographic and Cultural Types**:\n- **National botanical gardens** - State-operated botanical institutions\n - Example: Hortus botanicus Leiden (university), Keukenhof (commercial)\n- **University botanical gardens** - Academic research + teaching collections\n - Example: Utrecht Botanic Gardens (Utrecht University)\n- **Private botanical collections** - Estate gardens open to public\n- **Children's farms** (kinderboerderij, NL) - Educational petting farms\n - Example: Kinderboerderij De Werf (Amsterdam)\n\n**Dutch Examples** (BioCustodian types in NL):\n- **Artis (Natura Artis Magistra)** - Zoological garden + aquarium (Amsterdam, 1838)\n- **Hortus botanicus Leiden** - University botanical garden (1590, oldest in NL)\n- **Keukenhof** - Commercial bulb gardens (Lisse)\n- **Burgers' Zoo** - Safari park + rainforest exhibit (Arnhem)\n- **Blijdorp (Diergaarde Blijdorp)** - Zoo + oceanarium (Rotterdam)\n- **Ouwehands Dierenpark** - Zoo + panda research center (Rhenen)\n- **Safaripark Beekse Bergen** - Drive-through wildlife park (Hilvarenbeek)\n\n**International Examples**:\n- **Royal Botanic Gardens, Kew** (UK) - World heritage botanical garden + herbarium\n- **San Diego Zoo** (US) - Conservation-focused zoo with 12,000+ animals\n- **Singapore Botanic Gardens** - UNESCO heritage site, tropical plant research\n- **Berlin Zoologischer Garten** (DE) - Historic zoo (1844) + aquarium\n- **Jardin des Plantes** (FR) - Botanical garden + natural history museum (Paris, 1626)\n\n**Distinction from Other Types**:\n- vs. MUSEUM (M): BioCustodians maintain **living collections**, museums preserve dead specimens\n- vs. RESEARCH_CENTER (R): Primary mission is **public exhibition + conservation**, not pure research\n - Exception: Research centers with living collections (herbaria) are RESEARCH_CENTER (R)\n- vs. FEATURE (F): BioCustodians are **institutions managing collections**, not just landscape features\n- vs. EDUCATION_PROVIDER (E): BioCustodians are **collection-focused**, not degree-granting institutions\n - Universities with botanical gardens map to EDUCATION_PROVIDER (E) with BioCustodian aspect\n\n**Conservation and Research Functions**:\nBioCustodians play critical roles in:\n- **Ex-situ conservation**: Breeding endangered species outside natural habitats\n- **Seed preservation**: Long-term plant genetic diversity storage\n- **Taxonomic research**: Identifying, cataloging, and documenting species\n- **Behavioral studies**: Animal cognition, social behavior, welfare research\n- **Reintroduction programs**: Breeding for wild population restoration\n - Example: European bison reintroduction (Rotterdam Zoo)\n- **Climate adaptation research**: Plant responses to environmental change\n\n**Heritage Significance**:\nMany BioCustodians have cultural heritage value:\n- Historic garden architecture and landscape design\n- Heritage plant varieties and heirloom cultivars\n- Historic animal buildings (elephant houses, aviaries)\n- Seed libraries preserving agricultural biodiversity\n- Living collections of endangered cultural landscapes\n\n**Ontological Alignment**:\n- **SKOS**: `skos:Concept` + `skos:broader` Q167346/Q43501/Q2281788\n- **Schema.org**: \n - `schema:Zoo` (for zoos and wildlife parks)\n - `schema:Garden` (for botanical gardens and arboreta)\n - `schema:Aquarium` (for aquariums and oceanariums)\n - `schema:TouristAttraction` (public access institutions)\n- **Darwin Core**: `dwc:PreservedSpecimen` (for living collections in databases)\n- **TDWG Standards**: Biodiversity Information Standards for specimen data\n\n**RDF Serialization Example**:\n```turtle\n@prefix hc: .\n@prefix skos: .\n@prefix schema: .\n@prefix wd: .\n@prefix dwc: .\n\n# Artis Zoo (Amsterdam)\n\n a schema:Zoo, schema:TouristAttraction ;\n hc:custodian_type hc:BioCustodianType ;\n hc:wikidata_entity wd:Q732311 ; # Artis (zoo)\n hc:specimen_type \"mammals\", \"birds\", \"reptiles\", \"amphibians\", \"fish\", \"invertebrates\" ;\n hc:collection_size \"More than 900 species, approximately 8,700 animals\" ;\n hc:living_collections true ;\n hc:research_programs \"Amphibian conservation\", \"Primate behavior\", \"Marine biology\" ;\n hc:public_education \"Educational programs for schools\", \"Zoo academy\", \"Keeper talks\" ;\n hc:conservation_breeding \"European breeding programs (EEP) for endangered species\" ;\n skos:prefLabel \"Natura Artis Magistra\"@nl ;\n skos:altLabel \"Artis\"@nl, \"Artis Royal Zoo\"@en ;\n schema:foundingDate \"1838-05-01\" ;\n schema:url .\n\n# Hortus botanicus Leiden\n\n a schema:Garden, schema:TouristAttraction ;\n hc:custodian_type hc:BioCustodianType ;\n hc:wikidata_entity wd:Q2468128 ; # Hortus botanicus Leiden\n hc:specimen_type \"vascular plants\", \"non-vascular plants\", \"fungi\" ;\n hc:collection_size \"More than 10,000 plant species\" ;\n hc:living_collections true ;\n hc:research_programs \"Plant taxonomy\", \"Tropical plant conservation\", \"Historic cultivar preservation\" ;\n hc:public_education \"Guided tours\", \"Plant identification workshops\", \"School programs\" ;\n hc:conservation_breeding \"Rare tropical plants\", \"Dutch heritage vegetables\" ;\n skos:prefLabel \"Hortus botanicus Leiden\"@nl ;\n schema:foundingDate \"1590\" ;\n schema:url .\n```\n\n**Provenance**:\nThis classification supports multi-aspect modeling: BioCustodians can simultaneously\nbe PLACES (historic gardens), LEGAL ENTITIES (foundations, universities), and CUSTODIANS\n(managing both living and preserved collections) with independent temporal lifecycles.\n\n**See Also**:\n- Schema.org Zoo: `schema:Zoo`\n- Schema.org Garden: `schema:Garden`\n- Darwin Core: `dwc:PreservedSpecimen`\n- TDWG Standards: https://www.tdwg.org/standards/", - "properties": { - "conservation_breeding": { - "description": "Description of captive breeding programs for endangered species conservation.\nFree-text field documenting breeding initiatives, species involved, and\nconservation goals.\n\n**Types of Breeding Programs**:\n\n**Regional Breeding Programs**:\n- **EEP (European Endangered Species Programme)** - Coordinated EU zoo breeding\n - Example: \"EEP coordinator for Bornean orangutan\"\n- **SSP (Species Survival Plan)** - AZA coordinated breeding (North America)\n - Example: \"SSP participant for California condor\"\n- **Global Species Management Plans (GSMP)** - International coordination\n\n**Conservation Objectives**:\n- \"Genetic diversity management\" - Maintaining healthy populations\n- \"Reintroduction stock production\" - Breeding for wild release\n- \"Insurance populations\" - Backup for critically endangered species\n- \"Captive breeding before extinction\" - Last-resort conservation\n\n**Notable Programs**:\n- \"Giant panda breeding program\" - Reproductive research + captive propagation\n- \"Przewalski's horse reintroduction\" - Successfully returned to Mongolia\n- \"California condor recovery\" - From 27 birds (1987) to 500+ (2023)\n- \"Black-footed ferret breeding\" - Cloning + traditional breeding\n- \"Scimitar-horned oryx restoration\" - Extinct in wild, reintroduced from captive stock\n\n**Botanical Breeding**:\n- \"Seed bank deposits\" - Long-term genetic preservation\n- \"Rare plant propagation\" - Cultivating endangered species\n- \"Heirloom variety preservation\" - Heritage crops and ornamentals\n- \"Tissue culture programs\" - Clonal propagation of rare plants\n\n**Examples**:\n- Rotterdam Zoo: \"European breeding programs (EEP) for gorillas, Asian elephants, red pandas\"\n- San Diego Zoo: \"Frozen Zoo genetic bank, giant panda breeding, California condor recovery\"\n- Kew Gardens: \"Millennium Seed Bank with 2.4 billion seeds from 40,000 species\"\n- Chester Zoo: \"Islands conservation breeding for Sumatran tigers, Sulawesi crested macaques\"\n\n**Success Metrics**:\n- Number of successful births/propagations per year\n- Percentage of offspring surviving to adulthood\n- Number of individuals reintroduced to wild\n- Genetic diversity maintained (measured by mean kinship)\n\n**Ontology Alignment**:\n- Related to IUCN Red List conservation status\n- Maps to `schema:Project` with conservation purpose\n- Related to Darwin Core occurrence records\n", - "type": [ - "string", - "null" - ] - }, - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hyponym": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/BioCustodianSubtype__identifier_optional" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ] - }, - "description": "Specific subtype from the BioCustodianSubtype class hierarchy (20 biological collection types). Each subtype links to a Wikidata entity describing a specific type of biological custodian. Subtypes include: BotanicalGardenSubtype, ZoologicalGardenSubtype, PublicAquariumSubtype, etc.", - "type": [ - "object", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^(https://nde\\.nl/ontology/hc/type/[a-z-]+/[QP][0-9]+|Q[0-9]+)$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "living_collection": { - "description": "Boolean indicating whether the institution maintains living specimens\n(true) vs. only preserved/dead specimens (false).\n\n**TRUE when institution maintains**:\n- Live animals in enclosures, exhibits, or aquariums\n- Living plants in gardens, greenhouses, or conservatories\n- Active growth, breeding, or cultivation programs\n- Ongoing care, feeding, and husbandry\n\n**FALSE when institution has**:\n- Only preserved specimens (taxidermy, dried plants, pickled animals)\n- No active husbandry or horticultural programs\n- Static displays without living organisms\n\n**Mixed Collections** (MIXED type X):\nWhen institutions maintain BOTH living and preserved collections:\n- Natural history museums with live insect colonies (TRUE for living aspect)\n- Botanical gardens with herbarium collections (TRUE for living aspect)\n- Zoos with taxidermy educational displays (TRUE - living is primary)\n\n**Examples**:\n- Artis (zoo): TRUE - Living animal collection with active care\n- Hortus Leiden: TRUE - Living plant collection in greenhouses\n- Naturalis (natural history museum): FALSE - Preserved specimens only\n- Kew Gardens: TRUE - Living plants (herbarium is separate collection)\n\n**Distinction**:\nThis field separates BioCustodian (B) from Museum (M) and Research Center (R)\nwhen dealing with biological specimens.\n\n**Ontology Alignment**:\n- Related to `schema:additionalProperty` \"living status\"\n- Darwin Core field: Not directly mapped (implied by collection type)\n", - "type": "boolean" - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "research_program": { - "description": "Active research programs, conservation projects, or scientific initiatives\nconducted by the institution. Multi-valued field capturing all major programs.\n\n**Conservation Research**:\n- \"Endangered species breeding programs\" - Ex-situ conservation\n- \"Reintroduction programs\" - Releasing captive-bred animals to wild\n- \"Habitat restoration research\" - Ecosystem recovery studies\n- \"Climate change adaptation\" - Species response to warming\n\n**Behavioral and Welfare Research**:\n- \"Animal cognition studies\" - Intelligence, problem-solving\n- \"Enrichment program development\" - Animal welfare improvements\n- \"Social behavior research\" - Group dynamics, communication\n- \"Animal welfare assessment\" - Health and wellbeing metrics\n\n**Taxonomic and Systematic Research**:\n- \"Plant taxonomy and classification\" - Naming and organizing species\n- \"DNA barcoding projects\" - Genetic identification\n- \"Phylogenetic studies\" - Evolutionary relationships\n- \"New species discovery\" - Field expeditions, specimen analysis\n\n**Horticultural and Agricultural Research**:\n- \"Crop wild relatives conservation\" - Preserving genetic diversity\n- \"Heirloom variety preservation\" - Historic cultivars\n- \"Propagation technique development\" - Cultivation methods\n- \"Invasive species control\" - Prevention and management\n\n**Biomedical and Applied Research**:\n- \"Veterinary medicine research\" - Animal health studies\n- \"Reproductive biology\" - Assisted reproduction techniques\n- \"Disease ecology\" - Wildlife pathogen studies\n- \"Bioprospecting\" - Discovering useful compounds from organisms\n\n**Examples**:\n- Artis: [\"Amphibian conservation\", \"Primate behavior\", \"Marine invertebrate ecology\"]\n- Kew Gardens: [\"Plant taxonomy\", \"Seed bank preservation\", \"Medicinal plant research\"]\n- San Diego Zoo: [\"Giant panda reproduction\", \"California condor reintroduction\"]\n- Burgers' Zoo: [\"Tropical rainforest ecology\", \"Coral reef restoration\"]\n\n**Ontology Alignment**:\n- Maps to `schema:ResearchProject` in Schema.org\n- Related to VIVO ontology research activity classes\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "specimen_type": { - "description": "Categories of living specimens maintained in the collection.\nMulti-valued field capturing all taxonomic groups represented.\n\n**For Botanical Institutions**:\n- \"vascular plants\" - Ferns, gymnosperms, angiosperms\n- \"non-vascular plants\" - Mosses, liverworts, hornworts\n- \"algae\" - Aquatic photosynthetic organisms\n- \"fungi\" - Mushrooms, molds, lichens\n- \"cultivars\" - Named plant varieties (roses, tulips, etc.)\n\n**For Zoological Institutions**:\n- \"mammals\" - Primates, carnivores, ungulates, marine mammals\n- \"birds\" - Raptors, waterfowl, passerines, flightless birds\n- \"reptiles\" - Snakes, lizards, turtles, crocodilians\n- \"amphibians\" - Frogs, salamanders, caecilians\n- \"fish\" - Freshwater, marine, cartilaginous, bony fish\n- \"invertebrates\" - Insects, arachnids, mollusks, crustaceans\n\n**For Aquariums**:\n- \"marine fish\" - Saltwater fish species\n- \"freshwater fish\" - River and lake species\n- \"corals\" - Reef-building cnidarians\n- \"marine mammals\" - Dolphins, seals, sea lions\n- \"sharks and rays\" - Cartilaginous fish\n- \"jellyfish\" - Cnidarian medusae\n\n**Specialized Collections**:\n- \"butterflies\" - Lepidoptera (butterfly houses)\n- \"primates only\" - Specialized primate centers\n- \"raptors\" - Birds of prey (falconry centers)\n- \"carnivorous plants\" - Insectivorous botanical specialists\n- \"succulents\" - Cactus and succulent gardens\n\n**Examples**:\n- Artis (zoo): [\"mammals\", \"birds\", \"reptiles\", \"amphibians\", \"fish\", \"invertebrates\"]\n- Hortus Leiden: [\"vascular plants\", \"non-vascular plants\", \"cultivars\"]\n- Burgers' Ocean: [\"marine fish\", \"corals\", \"sharks and rays\"]\n- Vlindorado: [\"butterflies\", \"tropical plants\"]\n\n**Ontology Alignment**:\n- Maps to Darwin Core `dwc:taxonRank` and `dwc:scientificName`\n- Maps to `schema:additionalType` for Schema.org\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "living_collection", - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "BioCustodianType", - "type": "object" - }, - "BioacousticRecordingCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Animal and nature sound recordings.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "AnimalSoundArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by AnimalSoundArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "BioacousticRecordingCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "BioacousticRecordingCollection", - "type": "object" - }, - "BirthDate": { - "additionalProperties": false, - "description": "Structured representation of a person's birth date with support for uncertainty, incomplete dates, and provenance tracking.\n**PURPOSE**:\nBirthDate replaces simple string birth_date slots to provide: - EDTF (Extended Date/Time Format) support for uncertain/incomplete dates - Provenance tracking for inferred dates (Rule 45) - Confidence scoring - Source preservation (original format from documents)\n**EDTF NOTATION** (Rule 44):\n| Pattern | Meaning | Example | |---------|---------|---------| | `YYYY` | Year only | `1970` | | `YYYY-MM` | Year and month | `1970-08` | | `YYYY-MM-DD` | Full date | `1970-08-15` | | `YYYX` | Decade | `197X` (1970s) | | `YYXX` | Century | `19XX` (1900s) | | `YYYY~` | Approximate | `1985~` (circa 1985) | | `YYYY?` | Uncertain | `1985?` (possibly 1985) | | `XXXX` | Unknown | Must have search provenance |\n**INFERRED DATA** (Rule 45):\nWhen birth date is inferred (e.g., from earliest education date): - Store in `inferred_birth_date` with full inference chain - Set `is_inferred: true` - Document inference method and sources\n**ONTOLOGY ALIGNMENT**:\n| Ontology | Mapping | Usage | |----------|---------|-------| | **Schema.org** | `schema:Date` | Primary class | | **CIDOC-CRM** | `crm:E52_Time-Span` | Temporal extent | | **PiCo** | Birth date observation | Source fidelity | | **TIME** | `time:Instant` | Point in time |\n**EXAMPLE**:\n```yaml has_or_had_date_of_birth:\n temporal_extent:\n has_or_had_notation: \"1970-08-15\"\n begin_of_the_begin: \"1970-08-15T00:00:00Z\"\n end_of_the_end: \"1970-08-15T23:59:59Z\"\n is_inferred: false\n```", - "properties": { - "has_or_had_reference": { - "description": "Source reference for the birth date information. MIGRATED 2026-01-22: Replaces birth_source_text with structured Reference. Reference.citation_text preserves original verbatim source text.", - "items": { - "$ref": "#/$defs/Reference" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "inference_provenance": { - "description": "Inference Provenance for heritage custodian entities.\n", - "type": [ - "string", - "null" - ] - }, - "is_inferred": { - "description": "Is Inferred for heritage custodian entities.\n", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Generation event containing confidence score for birth date determination. MIGRATED 2026-01-19: Replaces confidence slot with structured pattern.", - "items": { - "$ref": "#/$defs/GenerationEvent" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "$ref": "#/$defs/TimeSpan", - "description": "CIDOC-CRM TimeSpan representation with EDTF notation preservation. MIGRATED 2026-01-22: Replaces birth_edtf and birth_iso_date per slot_fixes.yaml feedback.\n**STRUCTURE**: - has_or_had_notation: Original EDTF string (e.g., \"1970-08-15\", \"197X\", \"1970~\") - begin_of_the_begin: Earliest possible start (ISO 8601) - end_of_the_end: Latest possible end (ISO 8601)\n**EXAMPLES**:\nFull date \"1970-08-15\": - has_or_had_notation: \"1970-08-15\" - begin_of_the_begin: \"1970-08-15T00:00:00Z\" - end_of_the_end: \"1970-08-15T23:59:59Z\"\nDecade \"197X\": - has_or_had_notation: \"197X\" - begin_of_the_begin: \"1970-01-01T00:00:00Z\" - end_of_the_end: \"1979-12-31T23:59:59Z\"" - } - }, - "required": [ - "temporal_extent" - ], - "title": "BirthDate", - "type": "object" - }, - "BirthDateConfidenceEnum": { - "description": "Confidence levels for birth date values.", - "enum": [ - "HIGH", - "MEDIUM", - "LOW", - "VERY_LOW" - ], - "title": "BirthDateConfidenceEnum", - "type": "string" - }, - "BirthPlace": { - "additionalProperties": false, - "description": "Structured representation of a person's place of birth with support for historical place names, modern equivalents, and geographic identifiers.\n**PURPOSE**:\nBirthPlace replaces simple string birth_place slots to provide: - Historical place name preservation - Modern place name linkage - Geographic identifier integration (GeoNames, Wikidata) - Coordinate storage for mapping applications\n**HISTORICAL VS. MODERN NAMES**:\nMany birth places used historical names that have since changed: - \"Batavia\" \u2192 \"Jakarta\" - \"Bombay\" \u2192 \"Mumbai\" - \"Leningrad\" \u2192 \"St. Petersburg\" - \"Saigon\" \u2192 \"Ho Chi Minh City\"\nBirthPlace preserves the source name while linking to modern identifiers.\n**GEOGRAPHIC RESOLUTION**:\nPer AGENTS.md Rule on GeoNames as authoritative source: - `geonames_id`: Links to GeoNames for standardization - `has_or_had_identifier`: Links to Wikidata for additional context - `coordinates`: Lat/lon for mapping\n**ONTOLOGY ALIGNMENT**:\n| Ontology | Mapping | Usage | |----------|---------|-------| | **Schema.org** | `schema:Place` | Primary class | | **CIDOC-CRM** | `crm:E53_Place` | Place entity | | **GeoNames** | `gn:Feature` | Geographic feature |\n**EXAMPLE**:\n```yaml has_or_had_place_of_birth:\n place_name: \"Batavia\"\n modern_place_name: \"Jakarta\"\n country_code: \"ID\"\n geonames_id: 1642911\n has_or_had_identifier:\n qid: \"Q3630\"\n```", - "properties": { - "coordinates": { - "description": "Coordinates for heritage custodian entities.\n", - "type": [ - "string", - "null" - ] - }, - "country_code": { - "description": "Country Code for heritage custodian entities.\n", - "pattern": "^[A-Z]{2}$", - "type": [ - "string", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "modern_place_name": { - "description": "Modern Place Name for heritage custodian entities.\n", - "type": [ - "string", - "null" - ] - }, - "place_name": { - "description": "Nominal place designation (REQUIRED).\n\nCIDOC-CRM: P87_is_identified_by links E1_CRM_Entity to E41_Appellation.\n\nThis is the NOMINAL NAME of the place, not coordinates!\n", - "type": "string" - }, - "place_source_text": { - "description": "Place Source Text for heritage custodian entities.\n", - "type": [ - "string", - "null" - ] - }, - "region_code": { - "description": "Region Code for heritage custodian entities.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "place_name" - ], - "title": "BirthPlace", - "type": "object" - }, - "BishopsPermission": { - "additionalProperties": false, - "description": "Permission from a bishop required to access certain ecclesiastical records. Common for diocesan archives, especially for: - Recent personnel files - Matrimonial dispensation records - Sensitive correspondence", - "title": "BishopsPermission", - "type": "object" - }, - "BlogNews": { - "additionalProperties": false, - "description": "Blog, news section, or content marketing platform separate from\nmain website. May be on different domain or platform.\n\n**PURPOSE**: Publish stories, news, and narrative content about\ncollections, research, and institutional activities.\n\n**CHARACTERISTICS**:\n- Narrative content\n- Regular updates\n- Author attribution\n- Social sharing\n\n**EXAMPLES**: Museum blogs, archive news sections", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "INTERACTIVE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "BlogNews", - "type": "object" - }, - "Bluesky": { - "additionalProperties": false, - "description": "Bluesky Social profile.\n\n**URL patterns**:\n- https://bsky.app/profile/{handle}\n- https://bsky.app/profile/{did}\n\n**Features**:\n- Decentralized social network (AT Protocol)\n- Custom feeds and algorithms\n- Portable identity\n\n**Heritage use cases**:\n- Early adopter communities\n- Decentralized social presence\n- Alternative to X/Twitter", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "MICROBLOGGING", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://bsky.app/profile/{handle}", - "https://bsky.app/profile/{did}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "Bluesky", - "type": "object" - }, - "BoardMember": { - "additionalProperties": false, - "description": "Board member serving on governing board without specific officer role.\n\n**Official Title vs De Facto Work**:\nFormally participates in governance decisions, but often takes on\nspecific portfolio responsibilities or committee leadership.\n\n**Common Variants**:\n- Trustee\n- Director (board member)\n- Bestuurslid (Dutch)\n- Committee Member\n- Council Member\n- Governor\n\n**Typical Domains**: Historical societies, cooperatives, foundations, museums, libraries\n\n**Typical Responsibilities**:\n- Attending board meetings\n- Voting on organizational matters\n- Fiduciary oversight\n- Policy development\n- Strategic planning participation\n- Committee service\n- Representing member/stakeholder interests", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "BoardMember", - "type": "object" - }, - "BookStorageEnvironment": { - "additionalProperties": false, - "description": "Storage for bound volumes and rare books.\n\n**PURPOSE**: Provide climate conditions optimized for bound volumes,\nsimilar to archive standard but accounting for binding materials.\n\n**RECOMMENDED CONDITIONS (ISO 11799:2015)**:\n- Temperature: 16-19\u00b0C (target 18\u00b0C)\n- Relative humidity: 45-55% (target 50%)\n- Light: < 50 lux for rare materials\n- Air quality: Filtered, low pollutants\n\n**ISO 11799:2015 GUIDANCE**:\n- Document storage requirements apply to books\n- Annex C: 16-20\u00b0C, 30-60% RH (never exceed 60%)\n- Leather bindings may benefit from slightly higher RH (50-55%)\n\n**SUITABLE MATERIALS**:\n- Rare books and manuscripts\n- Bound periodicals\n- Leather-bound volumes\n- Vellum bindings\n- Modern library collections\n\n**SPECIAL CONSIDERATIONS**:\n- Similar to archive standard\n- Leather bindings may need slightly higher humidity\n- Avoid extremes that stress bindings\n\n**STANDARD REFERENCES**:\n- ISO 11799:2015 - Document storage requirements (applies to books)\n- BS 4971:2017 - Conservation of archive and library collections", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "BOOK_STORAGE", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard": { - "description": "Reference to applicable ISO or EN standard for this environmental zone type.\n\nFormat: Standard identifier (e.g., \"ISO 11799\", \"ISO 18911\", \"EN 16893\")\n\nCommon preservation standards:\n- ISO 11799: Document storage requirements\n- ISO 18911: Film storage practices\n- ISO 18934: Multiple media archives storage\n- EN 16893: Heritage collection storage buildings\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "max_annual_light_exposure": { - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "const": 50, - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "requires_dark_storage": { - "description": "Whether dark (zero light) storage is required for this environmental zone.\n\nBased on ISO preservation standards:\n- Film storage (ISO 18911): Dark storage mandatory\n- Photographic (ISO 18920): Dark storage for extended-term\n- UK Archives (BS 4971): 0 lux for closed storage\n\nDark storage essential for:\n- Film negatives (especially color and early nitrate/acetate)\n- Daguerreotypes and early photographic processes\n- Cyanotypes and blueprint materials\n- Some magnetic media (tape)\n- Highly fugitive inks and dyes\n\nAccess provided through reading rooms or digitization requests.\nCumulative light damage is completely prevented.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_dust_free": { - "description": "Whether a dust-free or dust-controlled environment is required for this zone.\n\nBased on ISO preservation standards:\n- Magnetic tape (ISO 18923): Dust-free mandatory\n- Optical media (ISO 18938): Cleanroom for masters\n- Archives (ISO 11799): Dust control required\n\nISO 14644-1 Cleanliness Classes:\n- Class 8: General archive/museum (HEPA filtered)\n- Class 7: AV media storage (positive pressure)\n- Class 5: Digital master storage (cleanroom)\n\nDust-free essential for:\n- Magnetic tapes and audiovisual media\n- Optical discs (CD, DVD, Blu-ray)\n- Fine art and paintings (surface abrasion)\n- Photographic materials (scratches, embedded particles)\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_esd_protection": { - "description": "Whether electrostatic discharge (ESD) protection is required for this zone.\n\nBased on ISO/IEC standards:\n- Magnetic tape (ISO 18923): ESD protection required\n- Optical media (ISO 18938): ESD-safe handling mandatory\n- Electronics (IEC 61340-5-1): ESD control program\n\nESD protection measures include:\n- Conductive/dissipative flooring\n- Humidity control (40-60% RH reduces static)\n- ESD-safe packaging and equipment\n- Personnel grounding (wrist straps)\n\nESD protection essential for:\n- Hard drives and SSDs\n- LTO and other magnetic tapes\n- Optical media (CD, DVD, Blu-ray masters)\n- Electronic components and circuit boards\n- Born-digital heritage collections\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_uv_filter": { - "description": "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \u00b5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label", - "has_or_had_description" - ], - "title": "BookStorageEnvironment", - "type": "object" - }, - "BookingSystem": { - "additionalProperties": false, - "description": "Online reservation and ticketing system, may be third-party platform\nor custom solution. Reading room appointments, event tickets.\n\n**PURPOSE**: Enable online booking of visits, events, reading room\nappointments, and other reservation-based services.\n\n**CHARACTERISTICS**:\n- Calendar integration\n- Payment processing\n- Confirmation emails\n- Capacity management\n\n**EXAMPLES**: Eventbrite integrations, museum ticketing systems", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "COMMERCE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "BookingSystem", - "type": "object" - }, - "BotanicalGardenSubtype": { - "additionalProperties": false, - "description": "Standard botanical garden with comprehensive plant collections.\nGardens with scientific labeling, taxonomy focus, and public access.\n\n**Wikidata**: Q167346\n**Examples**: Hortus botanicus Leiden, Royal Botanic Gardens Kew", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "BotanicalGardenSubtype", - "type": "object" - }, - "BotanicalInstitutionClassification": { - "additionalProperties": false, - "description": "Institution primarily focused on plant collections.\nIncludes botanical gardens, arboreta, seed banks, herbaria with living collections.\n\n**Wikidata Base**: Q167346 (botanical garden)\n\n**Scope**:\n- Living plant collections\n- Seed preservation\n- Horticultural research\n- Plant conservation programs", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "BotanicalInstitutionClassification", - "type": "object" - }, - "BoundingBox": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_coordinates": { - "description": "Geographic or planar coordinates.\n\nRange can be `Coordinates` (Geo/LatLon) or `PlanarCoordinates` (X/Y).", - "items": { - "$ref": "#/$defs/PlanarCoordinates", - "anyOf": [ - { - "$ref": "#/$defs/Coordinates" - }, - { - "$ref": "#/$defs/PlanarCoordinates" - } - ] - }, - "type": "array" - }, - "has_or_had_height": { - "description": "Height of a bounding box or object. MIGRATED from height (Rule 53).", - "type": [ - "number", - "null" - ] - }, - "has_or_had_width": { - "description": "Width of a bounding box or object. MIGRATED from width (Rule 53).", - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "has_or_had_coordinates" - ], - "title": "BoundingBox", - "type": "object" - }, - "BoxNumber": { - "additionalProperties": false, - "description": "An identifier for a storage box or its position on a shelf.\n\n**DEFINITION**:\n\nBoxNumber represents the position or identifier of a storage box within \na storage unit hierarchy. Archive boxes are the most common physical \ncontainers for heritage materials, particularly in archives.\n\n```\nShelf\n \u2514\u2500\u2500 Box 1 (THIS CLASS - position on shelf)\n \u2514\u2500\u2500 Box 2\n \u2514\u2500\u2500 Box 3\n ...\n```\n\n**TYPICAL VALUES**:\n\n| Type | Example | Description |\n|------|---------|-------------|\n| Sequential | 1, 2, 3, 12 | Position on shelf left-to-right |\n| Inventory | 145, 2024-0042 | Unique box inventory number |\n| Combined | 12.3 | Bay 12, Box 3 |\n\n**ARCHIVE BOX STANDARDS**:\n\nHeritage institutions typically use acid-free archive boxes conforming to:\n- ISO 16245 (Boxes for documents)\n- ANSI/NISO Z39.77 (Guidelines for materials in archives)\n\n**HERITAGE USE CASES**:\n\n| Material Type | Box Format |\n|---------------|------------|\n| Documents | Standard archive box (legal/letter) |\n| Photographs | Photo storage boxes |\n| Oversized | Flat boxes, tubes |\n| Fragile | Custom padded boxes |\n\n**PROVENANCE**:\n\nCreated as part of slot migration (Rule 53) from deprecated\n`box_number` slot to generic `has_or_had_identifier` pattern.", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "numeric_value": { - "description": "Numeric (integer) value for identifier wrapper classes.\n\nUsed by classes that encapsulate integer-based identifiers:\n- BoxNumber: Storage box position number\n- ShelfNumber: Shelf position within a bay\n- SequenceNumber: Ordering position\n\nFor string-based identifiers, use identifier_value instead.\nFor decimal/percentage values, use rate_value instead.\n", - "minimum": 1, - "type": "integer" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "numeric_value" - ], - "title": "BoxNumber", - "type": "object" - }, - "Branch": { - "additionalProperties": false, - "description": "Branch.", - "properties": { - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": [ - "string", - "null" - ] - } - }, - "title": "Branch", - "type": "object" - }, - "BranchOffice": { - "additionalProperties": false, - "description": "Regional or satellite office of a heritage custodian organization.\n\n**DEFINITION**:\n\nA BranchOffice is a secondary physical location where a heritage custodian\nmaintains operational presence, typically providing services to a specific\ngeographic area or community. Unlike the main headquarters, branch offices\nusually have more limited scope of activities.\n\n**W3C ORG ALIGNMENT**:\n\n`org:Site` - \"An office or other premise at which the organization is located.\"\n\nBranchOffice specializes org:Site for heritage custodian branch locations:\n- Regional archives serving provincial communities\n- Satellite library branches in neighborhoods\n- Museum outposts or study centers\n\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Purpose | Example |\n|------|---------|---------|\n| **BranchOffice** | Service delivery to geographic area | Regional archive office |\n| AdministrativeOffice | Non-public administrative functions | Finance department building |\n| ExhibitionSpace | Display of collections | Gallery annex |\n| ResearchCenter | Research and conservation | Conservation lab |\n\n**TYPICAL CHARACTERISTICS**:\n\n- **Public-facing**: Serves visitors, researchers, patrons\n- **Geographic coverage**: Serves specific region/community\n- **Core services**: Reference, access, programming (subset of main)\n- **Staff presence**: Permanent staff assignment\n- **Collection subset**: May hold locally-relevant materials\n\n**USE CASES**:\n\n1. **Regional Archive Branches**:\n - Noord-Hollands Archief Zaanstreek-Waterland branch\n - Serves researchers in Zaandam area\n - Holds local municipal records\n\n2. **Library Satellite Locations**:\n - University library branch at satellite campus\n - Public library neighborhood branches\n\n3. **Museum Study Centers**:\n - Off-site study/research center for scholars\n - Rijksmuseum Schiphol (airport exhibition space)\n\n**Example - Regional Archive Branch**:\n```yaml\nBranchOffice:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/nha-zaanstreek-branch\"\n has_or_had_label: \"Noord-Hollands Archief - Zaanstreek-Waterland\"\n has_or_had_description: |\n Regional branch serving Zaanstreek-Waterland area.\n Holds municipal records from Zaandam, Wormerland, Purmerend.\n Open to researchers Tuesday-Thursday.\n branch_service_area: \"Zaanstreek-Waterland region\"\n is_public_facing: true\n services_offered:\n - \"Archival research access\"\n - \"Genealogical consultations\"\n - \"Local history reference\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "type": "string" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_service_area": { - "anyOf": [ - { - "$ref": "#/$defs/ServiceArea" - }, - { - "type": "null" - } - ], - "description": "Geographic area or community served by an entity.\nLinks to ServiceArea class which models the \"werkgebied\" (operational territory) of heritage custodians - the geographic area where they provide services and collect materials.\n**RiC-O Alignment**: Follows RiC-O temporal relationship pattern (has/had) for properties that may change over time.\n**Schema.org Alignment**: Maps to schema:areaServed for service coverage.\n**Use Cases**: - Archive branch serving specific municipalities - Library branch serving neighborhood/district - Museum outpost serving regional community\n**MIGRATED from branch_service_area (Rule 53)**: Changed from string to ServiceArea class for richer geographic modeling including boundaries, temporal validity, and administrative hierarchy." - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "is_public_facing": { - "description": "Whether this branch office serves the public directly.\n\nTRUE: Public visitors, researchers, patrons can access\nFALSE: Staff-only administrative location\n\nNote: Use AdministrativeOffice class for staff-only locations.\n", - "type": "boolean" - }, - "operating_hour": { - "description": "Operating hours for this branch office.\n\nSchema.org: openingHours in standard format.\n\nExample formats:\n- \"Tu-Th 09:00-17:00\"\n- \"Mo-Fr 10:00-16:00, Sa 10:00-13:00\"\n", - "type": [ - "string", - "null" - ] - }, - "services_offered": { - "description": "List of services available at this branch office.\n\nSchema.org: hasOfferCatalog for service listings.\n\nTypically a subset of services available at main location.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label", - "is_public_facing" - ], - "title": "BranchOffice", - "type": "object" - }, - "BranchType": { - "additionalProperties": false, - "description": "Classification type for organizational branch units in heritage custodian contexts.\n\n**DEFINITION**:\n\nBranchType provides a SKOS-based classification hierarchy for categorizing\ndifferent types of organizational branches, satellite locations, and\nspecialized units within heritage custodian organizations.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **W3C Org** | `org:OrganizationalUnit` | Primary - unit within larger organization |\n| **W3C Org** | `org:Site` | Physical location of organizational unit |\n| **Schema.org** | `schema:LocalBusiness` | Related for branch offices |\n| **CIDOC-CRM** | `crm:E55_Type` | General type classification |\n\n**BRANCH TYPES** (from slot definition):\n\n| Type | Description |\n|------|-------------|\n| `REGIONAL_OFFICE` | Geographic regional branch |\n| `BRANCH_LIBRARY` | Library at satellite location |\n| `SATELLITE_GALLERY` | Museum exhibition space |\n| `CONSERVATION_LAB` | Specialized conservation facility |\n| `DIGITIZATION_CENTER` | Digital production facility |\n| `RESEARCH_CENTER` | Research/scholarly unit |\n| `EDUCATION_CENTER` | Education/outreach facility |\n| `ADMINISTRATIVE_OFFICE` | Non-public administration |\n| `STORAGE_MANAGEMENT` | Collection storage operations |\n| `EXHIBITION_SPACE` | Exhibition-focused branch |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nOrganizationBranch / ArchiveBranch\n \u2502\n \u2514\u2500\u2500 has_or_had_type \u2192 BranchType (THIS CLASS)\n \u251c\u2500\u2500 has_or_had_hypernym \u2192 BranchType (parent)\n \u2514\u2500\u2500 has_or_had_description (function details)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the branch_type slot with OrganizationBranchTypeEnum.\nOld pattern: `branch_type: OrganizationBranchTypeEnum`\nNew pattern: `has_or_had_type: BranchType` (object reference)", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/BranchType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/branch-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label" - ], - "title": "BranchType", - "type": "object" - }, - "Brewery": { - "additionalProperties": false, - "description": "Business that makes and sells beer.\nIncludes historic breweries, craft breweries preserving traditional methods,\nand monastic breweries with centuries-old brewing traditions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "Brewery", - "type": "object" - }, - "BroadcastCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Broadcast recordings.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "MediaArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by MediaArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "BroadcastCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "BroadcastCollection", - "type": "object" - }, - "BroadcastRecordingFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Radio broadcast recordings.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "RadioArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by RadioArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "BroadcastRecordingFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "BroadcastRecordingFonds", - "type": "object" - }, - "Budget": { - "additionalProperties": false, - "description": "Represents an annual or multi-year BUDGET for a heritage custodian institution.\n\n**CRITICAL DISTINCTION - BUDGET vs. FINANCIAL STATEMENT**:\n\n| Budget | FinancialStatement |\n|--------|-------------------|\n| **PLAN** - intended allocations | **ACTUALS** - what actually happened |\n| Forward-looking | Backward-looking |\n| Approved by governance | Audited/reviewed |\n| May be revised during period | Final (unalterable after close) |\n| Internal planning document | External reporting document |\n\n**WHY MODEL BUDGETS FOR HERITAGE CUSTODIANS?**:\n\nUnderstanding custodian budgets is critical for:\n\n1. **Sustainability Assessment**: Is the institution financially viable?\n2. **Collection Development**: Budget allocations for acquisitions\n3. **Preservation Capacity**: Funding for conservation and digitization\n4. **Staffing Levels**: Personnel budget indicates operational capacity\n5. **Grant Planning**: Understanding baseline funding for grant applications\n6. **Partnership Potential**: Assessing capacity for collaborative projects\n\n**BUDGET TYPES FOR HERITAGE INSTITUTIONS**:\n\n- **Operating Budget**: Day-to-day operations (staff, utilities, supplies)\n- **Capital Budget**: Major investments (building, equipment, systems)\n- **Acquisition Budget**: Collection purchases and donations\n- **Project Budget**: Time-limited initiatives (digitization, exhibitions)\n- **Endowment Draw**: Spending from endowment principal/income\n\n**TEMPORAL PATTERN**:\n\nBudgets typically follow fiscal year cycles:\n- Calendar year (Jan-Dec): Common in private sector\n- Academic year: Universities, education providers\n- Government fiscal year: Varies by country (e.g., Apr-Mar in UK, Oct-Sep in US federal)\n\n**NONPROFIT/FOUNDATION CONTEXT**:\n\nHeritage custodians are predominantly nonprofits:\n- Netherlands: \"stichting\" (foundation), \"vereniging\" (association)\n- USA: 501(c)(3) organizations\n- UK: Charities, CICs\n\nBudget transparency is often legally required for nonprofits (Form 990, ANBI status).\n\n- **FRAPO** (Funding, Research Administration and Projects Ontology):\n - frapo:FundingProgramme for budget allocation\n - frapo:hasFunding for monetary amounts\n- **Schema.org**:\n - schema:MonetaryAmount for currency values\n - schema:Grant for external funding\n- **FIBO** (Financial Industry Business Ontology):\n - Provides sophisticated financial modeling (via Commons Ontology)", - "properties": { - "allocates_or_allocated": { - "description": "Resources or identifiers allocated by this entity.", - "items": { - "$ref": "#/$defs/DigitizationBudget" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_currency": { - "$ref": "#/$defs/Currency", - "description": "Currency associated with monetary values. Uses RiC-O temporal naming pattern to indicate the currency may be current or historical.\n**Schema.org**: schema:currency for currency designation.\n**ISO 4217**: Standard currency codes (EUR, USD, GBP, etc.)\nCan represent the currency for budgets, financial statements, acquisition costs, and other monetary amounts." - }, - "has_or_had_description": { - "description": "Narrative description of this budget document's scope and purpose. MIGRATED from budget_description (2026-01-15) per Rule 53. Maps to dcterms:description for financial planning documentation.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_endowment_draw": { - "description": "Amount drawn from an endowment fund for operating or capital expenses.\nMIGRATED from `endowment_draw` slot.", - "type": [ - "number", - "null" - ] - }, - "has_or_had_label": { - "description": "Name/title for this budget document. MIGRATED from budget_name (2026-01-15) per Rule 53. Maps to dcterms:title as a formal title for a financial planning resource.", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_main_part": { - "anyOf": [ - { - "$ref": "#/$defs/MainPart" - }, - { - "type": "null" - } - ], - "description": "Links to a MainPart representing the principal/primary portion of something.\n**USE CASES**: - Capital budget (primary budget allocation for infrastructure/equipment) - Primary collection holdings - Main organizational unit\n**ONTOLOGY ALIGNMENT**: - slot_uri: schema:hasPart (primary) - Represents a significant/main portion of a larger whole\nMIGRATED 2026-01-22: Created per slot_fixes.yaml revision for capital_budget." - }, - "has_or_had_quantity": { - "items": { - "type": "number" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_status": { - "$ref": "#/$defs/BudgetStatus", - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "innovation_budget": { - "description": "Innovation budget allocation.\n\n**Heritage-specific**: Budget for innovation projects that transform\nhow the institution operates, preserves, or provides access to heritage.\n\nIncludes:\n- Digital transformation initiatives\n- R&D and experimental programs\n- New technology adoption (AI, machine learning, etc.)\n- Process automation and improvement\n- Visitor experience innovation\n- Collection management system upgrades\n- Data infrastructure modernization\n\n**Distinct from digitization_budget**: Innovation focuses on transforming\nprocesses and capabilities, while digitization focuses on creating\ndigital surrogates of physical collections.\n\n**Examples**:\n- AI-powered cataloging systems\n- Virtual/augmented reality experiences\n- Automated conservation monitoring\n- Linked open data infrastructure\n", - "type": [ - "number", - "null" - ] - }, - "internal_funding": { - "description": "Internal/earned revenue included in budget.\n\nSources:\n- Admission fees\n- Merchandise sales\n- Venue rental\n- Licensing fees\n- Membership dues\n", - "type": [ - "number", - "null" - ] - }, - "is_or_was_approved_by": { - "anyOf": [ - { - "$ref": "#/$defs/Approver" - }, - { - "type": "null" - } - ], - "description": "The agent (person or organization) that approved or authorized something.\n**SEMANTIC PATTERN**:\nThis slot follows the RiC-O temporal predicate pattern (is_or_was_*) to indicate that approval is a historical event - something was approved by someone at some point in time.\n**REPLACES**:\n- `approved_by` - Simple string field for approver name\n**RANGE OPTIONS**:\n- string: Simple approver name (backwards compatible) - Approver: Structured approver with identity link\nClasses should use slot_usage to specify appropriate range." - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_documented_by": { - "description": "Indicates that the entity is or was documented by another resource (e.g., a FinancialStatement documenting a Budget).", - "items": { - "$ref": "#/$defs/FinancialStatement" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "managing_unit": { - "anyOf": [ - { - "$ref": "#/$defs/OrganizationalStructure" - }, - { - "type": "null" - } - ], - "description": "Organizational unit (department, division, section) responsible for managing this collection.\n\n**Bidirectional Relationship**:\n- **Forward**: CustodianCollection \u2192 OrganizationalStructure (managing_unit)\n- **Reverse**: OrganizationalStructure \u2192 CustodianCollection (managed_collections)\n\n**Validation**: If provided, temporal consistency is validated:\n- Collection.valid_from >= OrganizationalStructure.valid_from\n- Collection.valid_to <= OrganizationalStructure.valid_to (if unit dissolved)\n\n**Use Cases**:\n1. **Collection Management**: \"Which department manages the Medieval Manuscripts collection?\"\n2. **Staffing Cross-Reference**: \"Who are the curators managing this collection?\"\n - Follow: managing_unit \u2192 OrganizationalStructure \u2192 staff_members \u2192 PersonObservation\n3. **Organizational Change Impact**: Track collection custody through mergers, splits, reorganizations\n\n**Notes**:\n- If managing_unit is null, collection may be managed at institutional level\n- Collections may split across multiple units \u2192 create separate CustodianCollection instances\n- Custody transfers tracked via managing_unit changes + temporal validity\n" - }, - "operating_budget": { - "description": "Operating budget allocation (day-to-day operations).\n\n**FRAPO**: frapo:hasFunding for funding amounts.\n\nTypically includes:\n- Personnel costs\n- Utilities\n- Supplies\n- Maintenance\n- Marketing\n", - "type": [ - "number", - "null" - ] - }, - "personnel_budget": { - "description": "Personnel budget allocation.\n\nIncludes:\n- Salaries and wages\n- Benefits\n- Pension contributions\n- Contract staff\n\nOften 50-70% of operating budget for heritage institutions.\n", - "type": [ - "number", - "null" - ] - }, - "preservation_budget": { - "description": "Conservation and preservation budget.\n\n**Heritage-specific**: Budget for maintaining and conserving\nheritage collections.\n\nIncludes:\n- Conservation treatments\n- Preventive conservation\n- Environmental controls\n- Pest management\n", - "type": [ - "number", - "null" - ] - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "revision_date": { - "description": "Date of most recent revision or update", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "revision_number": { - "description": "Version number if budget has been revised.\n\nInitial budget = 0, first revision = 1, etc.\n", - "type": [ - "integer", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_currency", - "has_or_had_label", - "has_or_had_status", - "has_or_had_type", - "refers_to_custodian" - ], - "title": "Budget", - "type": "object" - }, - "BudgetStatus": { - "additionalProperties": false, - "description": "Status of a budget document throughout its lifecycle.\n\n**DEFINITION**:\n\nBudgetStatus represents the current state of a budget document\nas it moves through the approval and execution lifecycle.\n\n**BUDGET LIFECYCLE STAGES**:\n\n```\nDRAFT \u2192 PROPOSED \u2192 APPROVED \u2192 ACTIVE \u2192 REVISED \u2192 CLOSED\n \u2193 \u2193\n REJECTED SUPERSEDED\n```\n\n**STATUS VALUES**:\n\n| Status | Description | Typical Duration |\n|--------|-------------|------------------|\n| DRAFT | Under development | Weeks/months |\n| PROPOSED | Submitted for approval | Days/weeks |\n| APPROVED | Officially approved | Until fiscal start |\n| ACTIVE | Currently in effect | Fiscal year |\n| REVISED | Modified after approval | Variable |\n| CLOSED | Fiscal period ended | Permanent |\n| REJECTED | Not approved | Terminal |\n| SUPERSEDED | Replaced by revision | Terminal |\n\n**HERITAGE INSTITUTION CONTEXT**:\n\nHeritage institution budgets typically follow these approval paths:\n\n| Institution Type | Approval Authority |\n|------------------|-------------------|\n| Museum (stichting) | Board of Directors |\n| Regional Archive | Provincial Government |\n| National Library | Ministry of Culture |\n| University Collection | University Board |\n\n**PROVENANCE**:\n\nCreated as part of slot migration (Rule 53) from deprecated\n`budget_status` slot to generic `has_or_had_status` pattern.", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_or_was_effective_at": { - "description": "The date or timestamp when a policy, status, or entity became effective.\nMIGRATED from `effective_date`, `status_effective_date`, `policy_effective_date` per Rule 53. Follows RiC-O temporal naming convention." - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "BudgetStatus", - "type": "object" - }, - "BudgetType": { - "additionalProperties": false, - "description": "Classification type for budgets in heritage custodian contexts.\n\n**DEFINITION**:\n\nBudgetType provides a SKOS-based classification hierarchy for categorizing\ndifferent types of organizational budgets based on purpose, scope, and\ntime horizon.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **SKOS** | `skos:Concept` | Primary - controlled vocabulary concept |\n| **CIDOC-CRM** | `crm:E55_Type` | General type classification |\n\n**BUDGET TYPES** (from slot definition):\n\n| Type | Description |\n|------|-------------|\n| `OPERATING` | Day-to-day operations budget |\n| `CAPITAL` | Major investments and infrastructure |\n| `PROJECT` | Time-limited initiative funding |\n| `MULTI_YEAR` | Spanning multiple fiscal years |\n| `CONSOLIDATED` | Institution-wide (all departments) |\n| `DEPARTMENTAL` | Single department/unit budget |\n| `ACQUISITION` | Collection acquisition funding |\n| `CONSERVATION` | Preservation and conservation funding |\n| `EXHIBITION` | Exhibition development funding |\n| `DIGITIZATION` | Digitization project funding |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nBudget / FinancialStatement\n \u2502\n \u2514\u2500\u2500 has_or_had_type \u2192 BudgetType (THIS CLASS)\n \u251c\u2500\u2500 has_or_had_hypernym \u2192 BudgetType (parent)\n \u2514\u2500\u2500 has_or_had_description (scope details)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the budget_type string slot with a proper class hierarchy.\nOld pattern: `budget_type: \"OPERATING\"` (string)\nNew pattern: `has_or_had_type: BudgetType` (object reference)", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/BudgetType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/budget-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label" - ], - "title": "BudgetType", - "type": "object" - }, - "Building": { - "additionalProperties": false, - "description": "Building types (Museum, Mansion, Church, Castle)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Building", - "type": "object" - }, - "BuildingPermitSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Building permit records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ArchivesForBuildingRecords", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ArchivesForBuildingRecords custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "BuildingPermitSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "BuildingPermitSeries", - "type": "object" - }, - "BuildingProjectFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Building project documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ArchitecturalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ArchitecturalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "BuildingProjectFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "BuildingProjectFonds", - "type": "object" - }, - "BusinessCriticality": { - "additionalProperties": false, - "description": "Business criticality level for continuity planning.\nStructured class replacing string-valued business_criticality slot. Enables type classification via has_or_had_type.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "BusinessCriticality", - "type": "object" - }, - "BusinessModel": { - "additionalProperties": false, - "description": "Business model classification for commercial heritage organizations.\nStructured class replacing string-valued business_model slot. Models funding structure, revenue sources, ownership, and operational context.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "BusinessModel", - "type": "object" - }, - "BusinessRecordsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Business and commercial records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "EconomicArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by EconomicArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "BusinessRecordsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "BusinessRecordsFonds", - "type": "object" - }, - "ButterflyHouseSubtype": { - "additionalProperties": false, - "description": "Enclosed tropical butterfly exhibit.\nLive butterfly and moth collections with tropical plants.\n\n**Wikidata**: Q2501028\n**Dutch**: Vlindertuin", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ButterflyHouseSubtype", - "type": "object" - }, - "Bylaws": { - "additionalProperties": false, - "description": "Rulebook or guidelines for an organization.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Bylaws", - "type": "object" - }, - "CMS": { - "additionalProperties": false, - "description": "A detected Content Management System (CMS) on a digital platform.\n**Purpose**: Represents a CMS instance detected through automated discovery\nor manual identification. Used when a platform is_or_was_based_on a CMS.\n**Distinction from CollectionManagementSystem**:\n- **CMS**: Lightweight detection record (what CMS was found)\n- **CollectionManagementSystem**: Full institutional CMS deployment profile\n (configuration, collections managed, custodian relationships)\n**Detection Methods** (from original cms_detected documentation):\n- HTTP response headers (X-Powered-By, Server)\n- HTML meta tags (generator)\n- URL patterns (e.g., /providence/, /omeka/)\n- JavaScript libraries or framework signatures\n- Admin panel detection\n**Use Cases**:\n1. \"What CMS powers this auxiliary platform?\" \u2192 Check is_or_was_based_on\n2. Technical survey: Identify platforms by CMS type\n3. Migration planning: Prioritize platforms by CMS technology\n**Example**:\n```yaml\nAuxiliaryDigitalPlatform:\n platform_name: Heritage Blog\n is_or_was_based_on:\n - cms_name: WordPress\n cms_version: \"6.4.2\"\n cms_type: CustomCMS\n detected_at: \"2026-01-19T12:00:00Z\"\n detection_method: HTTP_HEADER\n```\n**Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53).\nSupports migration from boolean cms_detected to structured CMS reference.", - "properties": { - "cms_name": { - "description": "Name of the Content Management System", - "type": "string" - }, - "detected_at": { - "description": "Timestamp when the CMS was detected", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "detection_method": { - "description": "Method used to detect the CMS (HTTP_HEADER, META_TAG, URL_PATTERN, MANUAL)", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/CMSType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_version": { - "description": "Version number or identifier of an entity.\n\n**USAGE**:\nUsed for:\n- Software versions\n- Document versions\n- Schema versions\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "cms_name" - ], - "title": "CMS", - "type": "object" - }, - "CO2Measurement": { - "additionalProperties": false, - "description": "Carbon dioxide measurement type for monitoring air quality and ventilation.\nStandard unit: parts per million (ppm).\n\nTypical thresholds:\n- Good: <800 ppm\n- Acceptable: 800-1000 ppm\n- Poor: >1000 ppm", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_measurement_unit": { - "anyOf": [ - { - "$ref": "#/$defs/MeasureUnit" - }, - { - "type": "null" - } - ], - "description": "The unit of measurement for a quantity value. Uses RiC-O temporal naming pattern to indicate the unit may be current or historical (e.g., if measurement standards changed over time).\n**QUDT**: qudt:unit - \"The unit of measure used to express the value of a Quantity.\"\n**USE CASES**: - Visitor counts: unit = \"visitors\", \"visitors/year\" - View counts: unit = \"views\", \"views/day\" - Collection sizes: unit = \"items\", \"objects\", \"linear meters\" - Area: unit = \"m\u00b2\", \"ha\", \"km\u00b2\" - Currency: unit = \"EUR\", \"USD\", \"GBP\"" - }, - "has_or_had_name": { - "const": "Carbon Dioxide", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "CO2Measurement", - "type": "object" - }, - "CabinetUnitCapacity": { - "additionalProperties": false, - "description": "Number of cabinet or storage units available.\nUsed for modular cabinet systems.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "CabinetUnitCapacity", - "type": "object" - }, - "CacheValidation": { - "additionalProperties": false, - "description": "A method used to validate if a cached resource is still fresh. Can use ETags, Last-Modified dates, or other mechanisms.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "$ref": "#/$defs/ETag" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "CacheValidation", - "type": "object" - }, - "CadastralAndLandRecordsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for cadastral, land registry, and property records.\n\n**Definition**:\nRecords documenting land ownership, property boundaries, and real estate\ntransactions within the region. Includes historical cadastral maps, land\nregisters, and property transfer documents essential for legal and\ngenealogical research.\n\n**Typical Contents**:\n- Cadastral maps (kadasterkaarten)\n- Land registers (grondboeken)\n- Property transfer deeds\n- Mortgage records\n- Land surveyor records\n- Tithe records (tienden)\n- Feudal land records\n\n**Dutch Context**:\nHistorical kadaster records predate the national Kadaster (founded 1832).\nIncludes Oud-rechterlijke archieven (old judicial archives) containing\nproperty transactions before civil notarial system.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the fonds organizational principle as defined by rico-rst:Fonds\n(cadastral offices typically form discrete fonds with their own provenance).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the fonds principle. Cadastral offices typically form discrete fonds with their own provenance.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CadastralAndLandRecordsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"notarial protocols\", \"civil registry\", \"census records\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"cadastral maps\", \"land registers\", \"property deeds\", \"mortgage records\", \"tithe records\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "CadastralAndLandRecordsFonds", - "type": "object" - }, - "Cafe": { - "additionalProperties": false, - "description": "Establishment that serves coffee and tea.\nIncludes historic coffeehouses, traditional tea rooms,\nand caf\u00e9 cultures with heritage significance.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "Cafe", - "type": "object" - }, - "CafeCatering": { - "additionalProperties": false, - "description": "Casual caf\u00e9 or coffee shop offering beverages, light snacks, and pastries.\nTypically self-service or counter-service with informal seating.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "const": "Caf\u00e9", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "CafeCatering", - "type": "object" - }, - "CalendarSystem": { - "additionalProperties": false, - "description": "A temporal reference system (calendar) used for dating.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "system_code": { - "description": "Code for the calendar system (e.g., gregorian, julian, hebrew, islamic).", - "type": "string" - }, - "system_name": { - "description": "Full name of the calendar system.", - "type": [ - "string", - "null" - ] - }, - "system_uri": { - "description": "URI identifying the calendar system standard.", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "system_code" - ], - "title": "CalendarSystem", - "type": "object" - }, - "CalendarYear": { - "additionalProperties": false, - "description": "A one-year period beginning January 1st.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "CalendarYear", - "type": "object" - }, - "CallCenterWorker": { - "additionalProperties": false, - "description": "Call center worker handling telephone inquiries.\n\n**Official Title vs De Facto Work**:\nMay handle reservations, memberships, complaints,\nand general information beyond basic call handling.\n\n**Common Variants**:\n- Customer Service Representative\n- Reservations Agent\n- Membership Services\n\n**Typical Domains**: Large museums, heritage organizations\n\n**Typical Responsibilities**:\n- Phone inquiry handling\n- Reservation processing\n- Membership services\n- Complaint resolution\n- Information provision", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "CallCenterWorker", - "type": "object" - }, - "CallForApplication": { - "additionalProperties": false, - "description": "A funding call or grant application opportunity issued by a heritage funding\norganisation, inviting heritage custodians to apply for project funding.\n\n**PURPOSE**:\n\nCallForApplication bridges the gap between:\n- **FundingOrganisation** (entities that provide heritage funding)\n- **Heritage Custodians** (institutions seeking funding for projects)\n\nFunding organisations like the European Commission, national heritage funds,\nand private foundations issue regular calls for applications. These calls have\ndefined timeframes, budgets, eligibility criteria, and thematic focus areas.\n\n**KEY RELATIONSHIPS**:\n\n```\nFundingOrganisation (e.g., European Commission)\n \u2502\n \u251c\u2500\u2500 issues \u2500\u2500\u2192 CallForApplication (e.g., \"CL2-2025-HERITAGE-01\")\n \u2502 \u2502\n \u2502 \u251c\u2500\u2500 web_observations \u2500\u2500\u2192 WebObservation[]\n \u2502 \u2502 (provenance tracking)\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500 funded_projects \u2500\u2500\u2192 Project[]\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500 funding_call (inverse)\n \u2502\n \u2514\u2500\u2500 parent_programme: \"Horizon Europe\"\n```\n\n**LIFECYCLE TRACKING**:\n\nCalls progress through defined stages tracked via `call_status`:\n- ANNOUNCED \u2192 OPEN \u2192 CLOSING_SOON \u2192 CLOSED \u2192 UNDER_REVIEW \u2192 RESULTS_PUBLISHED\n- May be CANCELLED or REOPENED under special circumstances\n\n**PROVENANCE TRACKING**:\n\nBecause call information is often extracted from web sources, each\nCallForApplication should link to one or more WebObservation records\ndocumenting when and where the information was retrieved.\n\n**ONTOLOGY ALIGNMENT**:\n\n- **Schema.org**: `schema:Offer` - \"An offer to transfer some rights to an item\n or to provide a service\" (funding is a service/offer to heritage institutions)\n- **Schema.org**: `schema:Grant` - Related class for awarded grants\n- **Schema.org**: `schema:MonetaryGrant` - For actual grant awards\n- **PROV-O**: `prov:Activity` - Call issuance as activity\n- **Dublin Core**: `dcterms:relation` for related calls\n\n**EXAMPLES**:\n\n1. **Horizon Europe CL2 2025 Heritage Calls**\n - issuing_organisation: European Commission\n - parent_programme: Horizon Europe\n - total_budget: \u20ac82.5M\n - application_deadline: 2025-09-16\n - thematic_areas: Cultural heritage preservation, digital heritage\n \n2. **Creative Europe Cooperation Projects 2025**\n - issuing_organisation: EACEA (European Education and Culture Executive Agency)\n - parent_programme: Creative Europe\n - partnership_required: true\n - minimum_partners: 3 (from different EU countries)\n \n3. **National Lottery Heritage Fund UK**\n - issuing_organisation: National Lottery Heritage Fund\n - typical_grant_range: \u00a310K-\u00a310M\n - eligible_countries: [UK, Northern Ireland, Scotland, Wales]\n \n4. **European Heritage Awards 2026**\n - issuing_organisation: Europa Nostra\n - call_type: Awards/Recognition (not direct funding)\n - thematic_areas: Research, Conservation, Education, Engagement", - "properties": { - "is_or_was_due_on": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "The due date or deadline." - }, - "is_or_was_opened_on": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "The opening date." - } - }, - "title": "CallForApplication", - "type": "object" - }, - "CallForApplicationStatusEnum": { - "description": "Lifecycle status of a heritage funding call or grant application window.\n\nFunding calls issued by heritage funding organisations (FundingOrganisation subclass\nof EncompassingBody) have defined lifecycles from announcement through closure.\n\n**Lifecycle Stages**:\n\n1. **ANNOUNCED** - Call publicly announced, application period not yet open\n2. **OPEN** - Application period active, submissions accepted\n3. **CLOSING_SOON** - Application deadline approaching (< 30 days)\n4. **CLOSED** - Application period ended, no new submissions\n5. **UNDER_REVIEW** - Applications being evaluated\n6. **RESULTS_PUBLISHED** - Grant decisions announced\n7. **CANCELLED** - Call cancelled before completion\n8. **REOPENED** - Call reopened after previous closure\n\n**Example - Horizon Europe CL2 2025**:\n```yaml\nCallForApplication:\n call_title: \"Cultural heritage, cultural and creative industries\"\n call_status: OPEN\n application_deadline: \"2025-09-16\"\n # Currently accepting applications\n```\n\n**Status Transitions**:\n```\nANNOUNCED \u2192 OPEN \u2192 CLOSING_SOON \u2192 CLOSED \u2192 UNDER_REVIEW \u2192 RESULTS_PUBLISHED\n \u2193 \u2193\n CANCELLED REOPENED \u2192 OPEN\n```", - "enum": [ - "ANNOUNCED", - "OPEN", - "CLOSING_SOON", - "CLOSED", - "UNDER_REVIEW", - "RESULTS_PUBLISHED", - "CANCELLED", - "REOPENED" - ], - "title": "CallForApplicationStatusEnum", - "type": "string" - }, - "CampaignDocumentationSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Advertising campaign records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "AdvertisingRadioArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by AdvertisingRadioArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CampaignDocumentationSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CampaignDocumentationSeries", - "type": "object" - }, - "CampaignRecordCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Election campaign materials.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PoliticalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PoliticalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CampaignRecordCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CampaignRecordCollection", - "type": "object" - }, - "CampusDocumentationCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for campus life and institutional documentation.\n\n**Definition**:\nMaterials documenting campus life, institutional identity, and university \nculture beyond formal administrative records. Often includes visual materials, \npublications, and ephemera that capture the lived experience of the institution.\n\n**Typical Contents**:\n- Campus photographs and audiovisual materials\n- University publications (yearbooks, newspapers, magazines)\n- Ephemera (programs, posters, invitations)\n- Memorabilia and artifacts\n- Oral histories\n- Event documentation\n- Building and facilities documentation\n\n**Collection Nature**:\nMay be assembled collections (artificial) rather than strictly provenance-based,\nespecially for ephemera and visual materials. Documentation value often takes\nprecedence over strict archival arrangement.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the collection organizational principle as defined by rico-rst:Collection\n(assembled/artificial collection organized by subject or documentation purpose).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "description": "Structured scope definitions for AcademicArchiveRecordSetType. Formally documents what types of record sets are classified under this type. ", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the collection principle. May be assembled collection (artificial) organized by subject or documentation purpose.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CampusDocumentationCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"administrative records\", \"student records\", \"faculty papers\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"photographs\", \"audiovisual materials\", \"publications\", \"ephemera\", \"oral histories\", \"memorabilia\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CampusDocumentationCollection", - "type": "object" - }, - "Cancellation": { - "additionalProperties": false, - "description": "Represents the cancellation event/action.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_rationale": { - "description": "The rationale or justification for a decision or mapping.\n\n**USAGE**:\nUsed for:\n- Mapping rationale (why an entity was mapped to Wikidata)\n- Decision justifications\n- Explanation notes\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:used` (per 2026-01-26 update)\n- **Close**: `skos:note` - SKOS note (DatatypeProperty)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "Cancellation", - "type": "object" - }, - "CanonicalForm": { - "additionalProperties": false, - "description": "Represents the canonical/normalized form of an identifier or value.\n**PURPOSE**:\nWhile original values may vary in format (spaces, prefixes, case), CanonicalForm provides a standardized representation for: - Consistent storage - Deduplication and matching - Database joins and lookups - Cross-system interoperability\n**NORMALIZATION RULES BY STANDARD**:\n| Standard | Original | Canonical | |----------|----------|-----------| | ISNI | \"0000 0001 2146 5765\" | \"0000000121465765\" | | Wikidata | \"http://wikidata.org/entity/Q190804\" | \"Q190804\" | | VIAF | \"viaf.org/viaf/148691498\" | \"148691498\" | | DOI | \"https://doi.org/10.1234/Ex\" | \"10.1234/ex\" | | ISIL | \"NL-AmRMA\" | \"NL-AmRMA\" (already canonical) |\n**ONTOLOGY ALIGNMENT**:\n| Ontology | Mapping | Rationale | |----------|---------|-----------| | SKOS | skos:Concept | Conceptual representation | | Schema.org | schema:PropertyValue | Name-value pair |\nMIGRATED 2026-01-22: Created per slot_fixes.yaml feedback to replace simple canonical_value string with structured class.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "CanonicalForm", - "type": "object" - }, - "CanteenCatering": { - "additionalProperties": false, - "description": "Staff cafeteria or canteen primarily serving employees and staff.\nMay be open to visitors or restricted to staff only.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "const": "Canteen", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "CanteenCatering", - "type": "object" - }, - "CantonalArchive": { - "additionalProperties": false, - "description": "State archives of one of the cantons of Switzerland, preserving cantonal\ngovernment records and historical documentation.\n\n**Wikidata**: Q2860410\n\n**Geographic Restriction**: Switzerland only\n\nThis type is ONLY valid for Swiss cantonal archives. The `applicable_countries`\nslot MUST contain \"CH\". Validation rules enforce this geographic constraint.\n\n**Scope**:\nCantonal archives (Kantonsarchive) preserve:\n- Cantonal government records (Grosser Rat, Regierungsrat)\n- Administrative and judicial records\n- Land registers and cadastral records\n- Civil registry records (historical)\n- Notarial archives\n- Private deposits (families, businesses, associations)\n- Photographs and audiovisual materials\n\n**Swiss Archival System**:\nSwitzerland has a federated archival structure:\n- Schweizerisches Bundesarchiv (federal level)\n- Kantonsarchive (26 cantonal archives) \u2190 This type\n- Gemeindearchive (municipal archives)\n- Burgergemeindearchive (civic community archives)\n\n**Language Considerations**:\nSwiss cantonal archives serve multilingual populations:\n- German-speaking cantons (majority)\n- French-speaking cantons (Romandie)\n- Italian-speaking canton (Ticino)\n- Romansh-speaking areas (Graub\u00fcnden)\n\n**Related Types**:\n- StateArchives (Q52341833) - Generic state-level archives\n- RegionalArchive (Q27032392) - Regional scope archives\n- MunicipalArchive (Q604177) - Local government archives\n\n**Notable Examples**:\n- Staatsarchiv Z\u00fcrich\n- Archives cantonales vaudoises\n- Staatsarchiv Basel-Stadt\n- Archivio di Stato del Cantone Ticino", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CantonalArchive", - "type": "object" - }, - "CantonalArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by CantonalArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CantonalArchiveRecordSetType", - "type": "object" - }, - "CantonalGovernmentFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Cantonal administrative records (Switzerland).\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "CantonalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by CantonalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CantonalGovernmentFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CantonalGovernmentFonds", - "type": "object" - }, - "CantonalLegislationCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Cantonal laws and regulations.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "CantonalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by CantonalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CantonalLegislationCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CantonalLegislationCollection", - "type": "object" - }, - "Capacity": { - "additionalProperties": false, - "description": "Storage or holding capacity measurement for heritage facilities.\n**RULE 53 MIGRATION**:\nThis class consolidates the following bespoke capacity slots: - capacity_cubic_meters \u2192 capacity_value + VOLUME type + m\u00b3 unit - capacity_linear_meters \u2192 capacity_value + SHELF_LENGTH type + m unit - capacity_item \u2192 capacity_value + ITEM_COUNT type + items unit - capacity_description \u2192 has_or_had_description\n**ONTOLOGY ALIGNMENT**:\n- Extends `qudt:Quantity` pattern for measured values - Uses MeasureUnit for structured unit representation - Supports temporal validity via TimeSpan\n**CAPACITY TYPES**:\n| Type | Description | Unit Examples | |------|-------------|---------------| | VOLUME | Cubic capacity | m\u00b3, ft\u00b3 | | SHELF_LENGTH | Linear shelf meters | m, ft | | FLOOR_AREA | Floor space | m\u00b2, ft\u00b2 | | ITEM_COUNT | Number of items | boxes, folders, objects | | WEIGHT | Weight capacity | kg, tons | | SEATING | Seating capacity | seats, persons |\n**EXAMPLES** (MIGRATED 2026-01-22: capacity_value \u2192 has_or_had_quantity):\nArchive depot (linear meters): ```yaml has_or_had_capacity:\n - has_or_had_quantity:\n quantity_value: 8000.0\n has_or_had_unit:\n unit_value: \"linear_meter\"\n has_or_had_type: ShelfLengthCapacity\n has_or_had_description: Total linear meters of shelving capacity\n```\nCold storage (volume): ```yaml has_or_had_capacity:\n - has_or_had_quantity:\n quantity_value: 2500.0\n has_or_had_unit:\n unit_value: \"cubic_meter\"\n has_or_had_type: VolumeCapacity\n```\nArchive box storage (items): ```yaml has_or_had_capacity:\n - has_or_had_quantity:\n quantity_value: 50000\n has_or_had_unit:\n unit_value: \"item\"\n has_or_had_type: ItemCountCapacity\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_measurement_unit": { - "anyOf": [ - { - "$ref": "#/$defs/MeasureUnit" - }, - { - "type": "null" - } - ], - "description": "The unit of measurement for a quantity value. Uses RiC-O temporal naming pattern to indicate the unit may be current or historical (e.g., if measurement standards changed over time).\n**QUDT**: qudt:unit - \"The unit of measure used to express the value of a Quantity.\"\n**USE CASES**: - Visitor counts: unit = \"visitors\", \"visitors/year\" - View counts: unit = \"views\", \"views/day\" - Collection sizes: unit = \"items\", \"objects\", \"linear meters\" - Area: unit = \"m\u00b2\", \"ha\", \"km\u00b2\" - Currency: unit = \"EUR\", \"USD\", \"GBP\"" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - }, - "is_estimate": { - "description": "Is Estimate for heritage custodian entities.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_quantity" - ], - "title": "Capacity", - "type": "object" - }, - "CapacityTypeEnum": { - "description": "Types of storage or holding capacity measurements. Created 2026-01-17 per Rule 53 to support Capacity class.", - "enum": [ - "VOLUME", - "SHELF_LENGTH", - "FLOOR_AREA", - "ITEM_COUNT", - "WEIGHT", - "SEATING", - "DISPLAY_AREA", - "RACK_SLOTS", - "DRAWER_UNITS", - "CABINET_UNITS" - ], - "title": "CapacityTypeEnum", - "type": "string" - }, - "Caption": { - "additionalProperties": false, - "description": "Represents accessibility caption/subtitle information for media content. **PURPOSE**: Caption provides structured representation of video/audio captions for: - WCAG accessibility compliance - Multilingual subtitle support - Caption metadata (language, format, availability) **ONTOLOGY ALIGNMENT**: | Ontology | Mapping | Rationale | |----------|---------|-----------| | Schema.org | schema:caption | Media caption/subtitle | **USE CASES**: - Video captions for hearing accessibility - Subtitles for multilingual content - Closed captions vs. open captions distinction MIGRATED 2026-01-22: Created per slot_fixes.yaml feedback to replace simple caption_available string with structured class.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "language": { - "description": "Primary language of content on this profile.\n\nDublin Core: language for content language.\n\nISO 639-1 language code (e.g., \"en\", \"nl\", \"de\").\n\nSome institutions maintain separate profiles for different languages.\n", - "pattern": "^[a-z]{2}$", - "type": [ - "string", - "null" - ] - } - }, - "title": "Caption", - "type": "object" - }, - "CarouselPost": { - "additionalProperties": false, - "description": "Multi-image or multi-video posts in a swipeable format.\n\n**Activity Streams Mapping**: `as:Collection` of `as:Image` / `as:Video`\n**Schema.org Mapping**: `schema:ImageGallery`\n\n**Platforms and Limits**:\n\n| Platform | Max Items | Media Types |\n|----------|-----------|-------------|\n| Instagram | 10 | Images, Videos, Mixed |\n| LinkedIn | 20 | Images only |\n| Facebook | 10 | Images, Videos |\n| X/Twitter | 4 | Images only |\n\n**Characteristics**:\n- Swipeable/scrollable format\n- Mixed media (images + videos)\n- Single caption for all items\n- Individual alt text per item\n- Higher engagement than single images\n\n**Heritage Use Cases**:\n\n| Use Case | Description | Typical Items |\n|----------|-------------|---------------|\n| Object details | Multiple angles of artifact | 3-5 images |\n| Before/after | Conservation transformation | 2-4 images |\n| Exhibition preview | Multiple room shots | 5-10 images |\n| Collection series | Related objects grouped | 5-10 images |\n| Infographic series | Multi-part educational | 5-10 images |\n| Event recap | Photo collection from event | 8-10 images |\n\n**Engagement Benefits**:\n- Longer time on post\n- Multiple opportunities to engage\n- Story-like sequential viewing\n- Higher save rates", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "post_type_activity_streams_type": { - "const": "as:Collection", - "description": "Activity Streams 2.0 type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_category": { - "const": "CAROUSEL", - "description": "High-level category for grouping related post types.\nValues: VIDEO, SHORT_VIDEO, IMAGE, TEXT, STORY, LIVE_STREAM,\nAUDIO, ARTICLE, THREAD, CAROUSEL, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "post_type_description": { - "description": "Detailed description of this post type including purpose,\ncharacteristics, and typical use cases in heritage context.\n", - "type": [ - "string", - "null" - ] - }, - "post_type_ephemeral": { - "description": "Whether this post type is ephemeral (disappears after time).", - "type": [ - "boolean", - "null" - ] - }, - "post_type_heritage_use_case": { - "description": "Typical use cases for heritage institutions creating this content type.\n\nExamples for Video:\n- Virtual exhibition tours\n- Conservation process documentation\n- Curator interviews\n- Historical documentary content\n- Educational lectures\n\nExamples for Short Video:\n- Artifact spotlights\n- Behind-the-scenes moments\n- Quick conservation tips\n- Event teasers\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_id": { - "description": "Unique identifier for this post type", - "type": "string" - }, - "post_type_max_duration": { - "description": "Maximum duration for this post type (e.g., video length).", - "type": [ - "string", - "null" - ] - }, - "post_type_media_format": { - "description": "Supported media formats for this post type.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_name": { - "description": "Canonical name for this post type.\nUsed for display and content categorization.\n\nExamples: \"Video\", \"Short Video\", \"Image Post\", \"Story\", \"Live Stream\"\n", - "type": "string" - }, - "post_type_schema_org_type": { - "const": "schema:ImageGallery", - "description": "Schema.org type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_supported_platform": { - "description": "Platforms that support this post type.", - "items": { - "enum": [ - "Instagram", - "LinkedIn", - "Facebook", - "XTwitter" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "post_type_id", - "post_type_name" - ], - "title": "CarouselPost", - "type": "object" - }, - "Carrier": { - "additionalProperties": false, - "description": "A physical medium on which information can be recorded or stored.\nModels the physical carrier (codex, scroll, disc, etc.) as distinct from the content it carries. Supports the FRBR/LRM conceptual model distinction between Work/Expression/Manifestation/Item.\n**Type Classification**: Use has_or_had_type with CarrierType subclasses (Rule 0b pattern): - CodexCarrier, ScrollCarrier, SheetCarrier (traditional) - OpticalDiscCarrier, MagneticTapeCarrier (modern media) - DigitalCarrier (born-digital content)\nMIGRATED from carrier_type enum (2026-01-23) per Rule 53.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_type" - ], - "title": "Carrier", - "type": "object" - }, - "CartographicContent": { - "additionalProperties": false, - "description": "Maps, atlases, geographic visualizations.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "CARTOGRAPHIC", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Cartographic Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "CartographicContent", - "type": "object" - }, - "CastingTechnique": { - "additionalProperties": false, - "description": "Shaping material by pouring into a mold.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "CastingTechnique", - "type": "object" - }, - "CatalogRaisonneIdentifier": { - "additionalProperties": false, - "description": "Reference number in a catalogue raisonn\u00e9 (comprehensive catalog of an artist's work). MIGRATED from catalog_raisonne_number slot (2026-01-23) per Rule 53/F26.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "CATALOG_RAISONNE", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Catalogue Raisonn\u00e9 Number", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "CatalogRaisonneIdentifier", - "type": "object" - }, - "CatalogSystem": { - "additionalProperties": false, - "description": "An integrated library system, catalog system, or collection management system\nused by a heritage institution.\n\nCommon systems include:\n- ALMA (Ex Libris) - Cloud-based library services platform\n- Koha - Open-source ILS\n- Sierra (Innovative Interfaces) - ILS for academic/public libraries\n- Aleph (Ex Libris) - Legacy ILS\n- FOLIO - Open-source library platform\n- OCLC WorldShare - Cloud-based library management\n- Adlib/Axiell Collections - Museum collection management\n- The Museum System (TMS) - Art museum collections\n- CollectiveAccess - Open-source collections management", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/CatalogSystemType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_name" - ], - "title": "CatalogSystem", - "type": "object" - }, - "CatalogingStandard": { - "additionalProperties": false, - "description": "A metadata or cataloging standard used for describing heritage collections.\n\nSupports structured representation with:\n- Identifier (short code like \"LIDO\", \"MARC21\")\n- Label (full name)\n- Description (purpose and scope)\n- URL (specification document)\n- Domain (museums, libraries, archives, etc.)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier" - ], - "title": "CatalogingStandard", - "type": "object" - }, - "Category": { - "additionalProperties": false, - "description": "A category or classification term, based on SKOS Concept model.\nCategories represent hierarchical or faceted classifications used to describe the focus, subject, or scope of collections and items.\n**Use cases**: - Collection focus (thematic specialization) - Subject classification (AAT, LCSH, custom vocabularies) - Material classification (medium, format) - Geographic scope (regions, countries) - Temporal scope (periods, eras)\n**Examples**: - \"Dutch Golden Age paintings\" (THEME + TEMPORAL + MATERIAL) - \"Lepidoptera\" (SUBJECT, scientific classification) - \"First edition literature\" (FORMAT + TYPOLOGY)", - "properties": { - "broader_category": { - "description": "Broader (parent) category in hierarchy. E.g., \"Paintings\" is broader than \"Oil paintings\"", - "type": [ - "string", - "null" - ] - }, - "category_description": { - "description": "Description of what this category encompasses.", - "type": [ - "string", - "null" - ] - }, - "category_name": { - "description": "Name of the category.", - "type": "string" - }, - "category_type": { - "description": "Type of category (subject, theme, material, geographic, etc.).", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "narrower_category": { - "description": "Narrower (child) categories. E.g., \"Oil paintings\", \"Watercolors\" are narrower than \"Paintings\"", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "vocabulary_id": { - "description": "Identifier in the source vocabulary (e.g., AAT term ID).", - "type": [ - "string", - "null" - ] - }, - "vocabulary_source": { - "description": "Source vocabulary or thesaurus (AAT, LCSH, custom).", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "category_name" - ], - "title": "Category", - "type": "object" - }, - "CategoryStatus": { - "additionalProperties": false, - "description": "The status classification for a storage condition category assessment.\n\nStatus values follow the StorageConditionStatusEnum:\n- EXCELLENT: Optimal conditions, no concerns\n- GOOD: Acceptable conditions, minor issues\n- FAIR: Some concerns requiring attention\n- POOR: Significant issues requiring remediation\n- CRITICAL: Immediate action required\n- NOT_ASSESSED: Category not evaluated\n- NOT_APPLICABLE: Category does not apply to this storage", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "$ref": "#/$defs/StorageConditionStatusEnum" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_value" - ], - "title": "CategoryStatus", - "type": "object" - }, - "CategoryTypeEnum": { - "description": "Types of categories for classification.", - "enum": [ - "SUBJECT", - "THEME", - "MATERIAL", - "GEOGRAPHIC", - "TEMPORAL", - "CREATOR", - "TYPOLOGY", - "FORMAT", - "GENRE" - ], - "title": "CategoryTypeEnum", - "type": "string" - }, - "Caterer": { - "additionalProperties": false, - "description": "Caterer providing food service for events and daily operations.\n\n**Official Title vs De Facto Work**:\nMay be involved in event planning, venue management,\nand visitor experience beyond food service.\n\n**Common Variants**:\n- Food Service Manager\n- Event Caterer\n- Caf\u00e9 Manager\n\n**Typical Domains**: Museums, galleries with food service\n\n**Typical Responsibilities**:\n- Event catering\n- Caf\u00e9/restaurant operations\n- Menu development\n- Food safety compliance\n- Vendor coordination", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Caterer", - "type": "object" - }, - "CateringFunction": { - "additionalProperties": false, - "description": "Catering function: cafe/restaurant operations, event catering, food service management.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "CateringFunction", - "type": "object" - }, - "CateringPlace": { - "additionalProperties": false, - "description": "Catering facility, caf\u00e9, or restaurant operated at a heritage custodian venue.\n\n**DEFINITION**:\n\nA CateringPlace is a food and beverage facility operated at or by a heritage\ncustodian. This includes museum caf\u00e9s, archive tea rooms, library cafeterias,\nand other dining facilities that serve visitors and staff. May also include\nhistoric restaurants or caf\u00e9s that are themselves heritage institutions.\n\n**SCHEMA.ORG ALIGNMENT**:\n\n`schema:FoodEstablishment` - \"A food-related business.\"\n\nSubclasses include:\n- `schema:CafeOrCoffeeShop` - Caf\u00e9 or coffee shop\n- `schema:Restaurant` - Full-service restaurant\n\n**WIKIDATA TYPE LINKAGE (TasteScentHeritageTypeEnum Subset)**:\n\nFor heritage catering venues with cultural significance, can be classified\nusing TasteScentHeritageTypeEnum (15 types):\n\n- Q11707 (restaurant) - General restaurant\n- Q30022 (caf\u00e9) - Coffee shop/caf\u00e9\n- Q1569167 (tearoom) - Tea room\n- Q5765838 (historic restaurant) - Restaurant with heritage value\n\n**DISTINCTION FROM GiftShop**:\n\n| Type | Primary Function | Products |\n|------|------------------|----------|\n| **CateringPlace** | Food and beverage | Meals, drinks, snacks |\n| GiftShop | Retail merchandise | Souvenirs, books, gifts |\n\n**TYPES OF CATERING PLACES**:\n\n1. **Museum Caf\u00e9**: Casual refreshments for visitors\n2. **Museum Restaurant**: Full-service dining\n3. **Historic Caf\u00e9**: Caf\u00e9 that is itself heritage (e.g., literary caf\u00e9)\n4. **Staff Canteen**: Staff dining facility\n5. **Event Catering**: Function/event catering space\n6. **Terrace/Garden Caf\u00e9**: Outdoor dining\n\n**USE CASES**:\n\n1. **Museum Restaurant**:\n ```yaml\n CateringPlace:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/rijksmuseum-restaurant\"\n has_or_had_label:\n label_text: \"RIJKS Restaurant\"\n catering_type: RESTAURANT\n cuisine_type: \"Modern Dutch fine dining\"\n has_michelin_star: true\n ```\n\n2. **Archive Caf\u00e9**:\n ```yaml\n CateringPlace:\n has_or_had_label:\n label_text: \"Nationaal Archief Caf\u00e9\"\n catering_type: CAFE\n serves_visitors_only: true\n ```\n\n3. **Historic Literary Caf\u00e9**:\n ```yaml\n CateringPlace:\n has_or_had_label:\n label_text: \"Caf\u00e9 Americain\"\n catering_type: HISTORIC_CAFE\n heritage_type_classification: HISTORIC_RESTAURANT\n founded_year: 1902\n ```", - "properties": { - "cuisine_type": { - "description": "Type of cuisine served at the catering facility.\nSchema.org: servesCuisine for cuisine classification.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_accessibility_feature": { - "description": "Accessibility features available in this reading room.\n\nSchema.org: accessibilityFeature for accessibility.\n\nMay include:\n- Wheelchair accessible\n- Adjustable desks\n- Screen magnification\n- Audio assistance\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_price": { - "description": "Price or pricing information associated with an entity.\n\nFollows RiC-O temporal naming convention (Rule 39) to indicate the\nrelationship may be current or historical.\n\nCan represent:\n- Exact prices (admission fees, ticket prices)\n- Price ranges (\u20ac to \u20ac\u20ac\u20ac\u20ac)\n- Price categories (budget, moderate, premium)\n", - "items": { - "$ref": "#/$defs/Price" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_service": { - "description": "A service offered by an entity.\n\n**USAGE**:\nUsed for:\n- Visitor services (guided tours, audio guides)\n- Research services\n- Conservation services\n", - "items": { - "type": "boolean" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/CateringType" - }, - "type": "array" - }, - "is_or_was_classified_as": { - "anyOf": [ - { - "$ref": "#/$defs/HeritageType" - }, - { - "type": "null" - } - ], - "description": "Classification of an entity into a category or type.\n\n**MIGRATED** from heritage_type_classification (Rule 53).\n\nFollows RiC-O naming convention." - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_founded_through": { - "anyOf": [ - { - "$ref": "#/$defs/FoundingEvent" - }, - { - "type": "null" - } - ], - "description": "Links an organization or institution to its founding event.\n\n**USAGE**:\nRepresents the founding/establishment event for:\n- Heritage custodians (museums, archives, libraries)\n- Standards organizations\n- Restaurants/venues with historical significance\n- Any organization with a founding date\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:isOrWasFoundedThrough` - Heritage Custodian property\n- **Close**: `schema:foundingDate` - Schema.org founding date (simpler)\n- **Close**: `prov:wasGeneratedBy` - PROV-O generation event\n- **Related**: `crm:P92i_was_brought_into_existence_by` - CIDOC-CRM existence\n\n**TEMPORAL PATTERN**:\nThe FoundingEvent contains a `temporal_extent` (TimeSpan) with:\n- `begin_of_the_begin`: Earliest possible founding date\n- `end_of_the_begin`: Latest possible founding date (for uncertain dates)\n\n**MIGRATION NOTE**:\nReplaces simple `founded_year` (integer) and `founding_date` (string)\nwith structured FoundingEvent for richer temporal and contextual data.\n" - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "michelin_star": { - "description": "Number of Michelin stars if applicable.\n", - "maximum": 3, - "minimum": 1, - "type": [ - "integer", - "null" - ] - }, - "opening_hour": { - "description": "Operating hours for the physical gift shop.\n\nSchema.org: openingHours in Schema.org format.\n\nFormat: \"Mo-Fr 09:00-17:00, Sa 10:00-18:00, Su 11:00-17:00\"\n\nMay differ from museum hours (shop may close earlier).\n", - "type": [ - "string", - "null" - ] - }, - "operator": { - "description": "Operator of catering facility if outsourced.\n\nMany museum restaurants are run by external caterers.\n", - "type": [ - "string", - "null" - ] - }, - "outdoor_seating_capacity": { - "description": "Outdoor/terrace seating capacity if applicable.\n", - "type": [ - "integer", - "null" - ] - }, - "reservation_required": { - "description": "Whether reservations are required or recommended.\n\nOften required for museum restaurants.\n", - "type": [ - "boolean", - "null" - ] - }, - "seating_capacity": { - "description": "Number of researcher seats available in this reading room.\n\nSchema.org: maximumAttendeeCapacity for capacity.\n", - "type": [ - "integer", - "null" - ] - }, - "serves_staff": { - "description": "Whether facility serves staff (canteen function).\n", - "type": [ - "boolean", - "null" - ] - }, - "serves_visitors_only": { - "description": "Whether facility is for museum/archive visitors only.\nTRUE: Requires museum admission or located inside security.\nFALSE: Accessible without admission.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label", - "has_or_had_type" - ], - "title": "CateringPlace", - "type": "object" - }, - "CathedralArchive": { - "additionalProperties": false, - "description": "Archive of a cathedral, preserving records of the cathedral chapter, liturgical documentation, and ecclesiastical administration. **Wikidata**: Q132201761 **Scope**: Cathedral archives (archivos catedralicios) preserve: - Chapter records and capitular acts - Liturgical books and musical manuscripts - Ecclesiastical correspondence - Property and financial records - Architectural and building documentation - Vestment and treasury inventories - Episcopal documentation (when combined) **Organizational Context**: Cathedral archives are typically: - Maintained by the cathedral chapter (canons) - Separate from diocesan archives (bishop's records) - May be combined with cathedral library - Often contain medieval manuscripts **Related Types**: - DiocesanArchive (Q11906839) - Bishop's/diocese records - ChurchArchive (Q2877653) - General ecclesiastical archives - MonasteryArchive (Q27030561) - Monastic institution records - ParishArchive (Q34544468) - Local parish records **Historical Significance**: Cathedral archives often contain: - Medieval charters and privileges - Early musical notation and polyphony - Illuminated manuscripts - Records of historical events (coronations, councils)", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CathedralArchive", - "type": "object" - }, - "CathedralArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by CathedralArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CathedralArchiveRecordSetType", - "type": "object" - }, - "CauseOfDeath": { - "additionalProperties": false, - "description": "Structured representation of the cause and circumstances of a person's death.\n\n**Purpose**:\nCaptures structured information about how and why a person died:\n- **Type**: Category of death (natural, conflict, accident, etc.)\n- **Location**: Where the death occurred\n- **Description**: Narrative details and context\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `hc:CauseOfDeath` - Heritage Custodian class\n- **Related**: Wikidata P1196 (manner of death) - semantic equivalent\n- **Related**: `schema:causeOfDeath` - Schema.org (MedicalCause context)\n\n**Heritage Sector Context**:\nParticularly important for documenting deaths of heritage workers due to:\n- **CONFLICT**: Armed conflict, airstrikes, military operations\n- **TARGETED_ATTACK**: Violence specifically targeting cultural workers\n- **OCCUPATIONAL**: Hazards from heritage work (conservation chemicals, etc.)\n- **NATURAL**: Age, illness, medical conditions\n- **ACCIDENT**: Non-occupational accidents\n- **PERSECUTION**: Targeting due to identity or beliefs\n\n**Example - Conflict Death**:\n```yaml\nis_or_was_caused_by:\n cause_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on residential building in Gaza City.\n The attack occurred during the 2023-2024 Israeli military operations.\n has_or_had_location:\n city: Gaza City\n country: PS\n```\n\n**Sensitivity Guidelines**:\n- Handle with respect and dignity\n- Verify facts from authoritative sources before documenting\n- Consult with family or institution when possible\n- Follow journalistic standards for reporting deaths\n- Link to source documentation (news reports, institutional records)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_location": { - "description": "The location of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "description": "The category/type of death cause. Uses CauseOfDeathTypeEnum values:\nNATURAL, CONFLICT, TARGETED_ATTACK, OCCUPATIONAL, ACCIDENT, PERSECUTION, UNKNOWN.\n", - "items": { - "$ref": "#/$defs/CauseOfDeathTypeEnum" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "CauseOfDeath", - "type": "object" - }, - "CauseOfDeathTypeEnum": { - "description": "Categories of death causes for heritage workers and cultural professionals.\n\n**Purpose**:\nProvides structured classification of death circumstances, enabling:\n- Statistical analysis of heritage worker deaths\n- Documentation of conflict-related deaths\n- Historical research and commemoration\n\n**Wikidata Alignment**:\nValues align with Wikidata P1196 (manner of death) concepts.", - "enum": [ - "NATURAL", - "CONFLICT", - "TARGETED_ATTACK", - "OCCUPATIONAL", - "ACCIDENT", - "PERSECUTION", - "UNKNOWN" - ], - "title": "CauseOfDeathTypeEnum", - "type": "string" - }, - "CeaseEvent": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "CeaseEvent", - "type": "object" - }, - "CeasingEvent": { - "additionalProperties": false, - "description": "An event marking cessation.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_observed_by": { - "description": "The observation that documented this event or state. MIGRATED from cessation_observed_in (Rule 53).", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "CeasingEvent", - "type": "object" - }, - "CertaintyLevel": { - "additionalProperties": false, - "description": "A structured representation of certainty/confidence level with explanatory notes.\n\n**Purpose**:\nCertaintyLevel encapsulates both the level of certainty (CERTAIN, PROBABLE,\nPOSSIBLE, UNCERTAIN) and any notes explaining the certainty assessment.\nUsed primarily in provenance research to document confidence in ownership\ntransfer claims.\n\n**Ontological Alignment**:\n- **Primary**: `rico:ConfidenceLevel` - RiC-O confidence level\n- **Close**: `crm:P141_assigned` - CIDOC-CRM attribute assignment\n\n**Standard Values for level_value**:\n- CERTAIN: Documentary evidence confirms the claim\n- PROBABLE: Strong circumstantial evidence supports the claim\n- POSSIBLE: Reasonable inference from available context\n- UNCERTAIN: Speculative or unverified claim\n\n**Use Cases**:\n- Provenance event certainty (ProvenanceEvent)\n- Attribution confidence (artwork authorship)\n- Dating confidence (temporal assertions)\n- Identification confidence (person/place identification)\n\n**Replaces** (per slot_fixes.yaml):\n- `certainty_level` (string) \u2192 has_or_had_level with CertaintyLevel class\n- `certainty_note` (string) \u2192 has_or_had_note with Note class (within CertaintyLevel)", - "properties": { - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "level_value": { - "description": "The value of a level (certainty, confidence, severity, arrangement, etc.).\nFor certainty levels, standard values are: - CERTAIN: Documentary evidence confirms - PROBABLE: Strong circumstantial evidence - POSSIBLE: Reasonable inference - UNCERTAIN: Speculative/unverified\nClass-specific slot_usage should document applicable values.", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "level_value" - ], - "title": "CertaintyLevel", - "type": "object" - }, - "Chairperson": { - "additionalProperties": false, - "description": "Chairperson presiding over board meetings and representing the organization.\n\n**Official Title vs De Facto Work**:\nFormally leads board meetings and represents the organization externally,\nbut often heavily involved in strategy, fundraising, and stakeholder relations.\n\n**Common Variants**:\n- Chair\n- President\n- Voorzitter (Dutch)\n- Chairman/Chairwoman\n- Board Chair\n- Presiding Officer\n\n**Typical Domains**: Historical societies, cooperatives, foundations, associations, museum boards\n\n**Typical Responsibilities**:\n- Presiding over board meetings\n- Setting meeting agendas\n- External representation of organization\n- Strategic leadership\n- Liaison with executive staff (if any)\n- Casting vote in case of ties", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Chairperson", - "type": "object" - }, - "ChapterRecordsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Cathedral chapter administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "CathedralArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by CathedralArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ChapterRecordsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ChapterRecordsFonds", - "type": "object" - }, - "ChapterSource": { - "additionalProperties": false, - "description": "Source or method that created video chapters. Specializes Source for video chapter generation provenance.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ChapterSource", - "type": "object" - }, - "ChapterSourceEnum": { - "description": "Source or method that created video chapters.", - "enum": [ - "MANUAL", - "YOUTUBE_AI", - "WHISPER_CHAPTERS", - "SCENE_DETECTION", - "TRANSCRIPT_ANALYSIS", - "THIRD_PARTY", - "IMPORTED", - "UNKNOWN" - ], - "title": "ChapterSourceEnum", - "type": "string" - }, - "CharitableStatus": { - "additionalProperties": false, - "description": "UK registered charity status under Charity Commission.\n\n**Benefits**:\n- Income tax and capital gains tax exemptions\n- Eligible for Gift Aid\n- Business rate relief (80% mandatory, up to 100% discretionary)\n- VAT relief on certain goods\n\n**Regulatory Body**: Charity Commission for England and Wales", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "CharitableStatus", - "type": "object" - }, - "Charter": { - "additionalProperties": false, - "description": "A document granting rights or privileges.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Charter", - "type": "object" - }, - "ChemicalAgentSystem": { - "additionalProperties": false, - "description": "Chemical agent suppression (e.g. FM-200, Novec 1230)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ChemicalAgentSystem", - "type": "object" - }, - "Chocolaterie": { - "additionalProperties": false, - "description": "Food manufacturer specializing in chocolate.\nIncludes artisanal chocolate makers, historic chocolate houses,\nand manufacturers preserving traditional confectionery methods.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "Chocolaterie", - "type": "object" - }, - "ChronologicalArrangement": { - "additionalProperties": false, - "description": "Arranged chronologically by date.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ChronologicalArrangement", - "type": "object" - }, - "ChurchArchive": { - "additionalProperties": false, - "description": "Archive kept by a church or ecclesiastical organization, preserving\nrecords of religious administration and church life.\n\n**Wikidata**: Q2877653\n\n**Note**: There are two Wikidata entries for church archives:\n- Q2877653: General church/ecclesiastical archives (this class)\n- Q64166606: Swedish parish archives specifically\n\n**Scope**:\nChurch archives (Kirchenarchive) preserve:\n- Governing body records (synods, councils, boards)\n- Pastoral correspondence\n- Property and financial records\n- Membership and vital records (historical)\n- Missionary and charitable activity documentation\n- Publications and periodicals\n- Photographs and audiovisual materials\n\n**Organizational Levels**:\nChurch archives exist at multiple levels:\n- Denominational headquarters (national/international)\n- Regional bodies (dioceses, conferences, presbyteries)\n- Local congregations (see ParishArchive)\n\n**Related Types**:\n- CathedralArchive (Q132201761) - Cathedral chapter records\n- DiocesanArchive (Q11906839) - Diocese administration\n- MonasteryArchive (Q27030561) - Monastic institution records\n- ParishArchive (Q34544468) - Local congregation records\n- ReligiousArchive (Q85545753) - Broader religious archives\n\n**Genealogical Value**:\nChurch archives are crucial for:\n- Birth, baptism, marriage, death records\n- Membership and confirmation registers\n- Immigration and emigration documentation\n- Historical vital statistics", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ChurchArchive", - "type": "object" - }, - "ChurchArchiveSweden": { - "additionalProperties": false, - "description": "Swedish church archives (kyrkoarkiv) preserving parish records and\nchurch books specific to the Swedish ecclesiastical system.\n\n**Wikidata**: Q64166606\n\n**Parent Class**: ChurchArchive (Q2877653)\n\n**Geographic Restriction**: Sweden (SE) only.\nThis constraint is enforced via LinkML `rules` with `postconditions`.\n\n**Scope**:\nSwedish church archives preserve:\n- Kyrkob\u00f6cker (church books) - vital records\n- Husf\u00f6rh\u00f6rsl\u00e4ngder (household examination rolls)\n- In- och utflyttningsl\u00e4ngder (migration records)\n- F\u00f6delse-, vigsel-, och d\u00f6dsb\u00f6cker (birth, marriage, death)\n- F\u00f6rsamlingsb\u00f6cker (congregation records)\n- Communion records\n\n**Historical Context**:\nSwedish church archives are notable because:\n- Church of Sweden kept civil registration until 1991\n- Records extend back to 1600s in many parishes\n- Household examination records are unique to Sweden\n- Comprehensive coverage of entire population\n\n**Genealogical Significance**:\nAmong the world's most valuable genealogical sources:\n- Near-complete population records from 17th century\n- Annual household examinations recorded literacy, movement\n- Detailed migration records between parishes\n- Now largely digitized through Arkiv Digital, Riksarkivet\n\n**Related Types**:\n- ChurchArchive (Q2877653) - General church archives (parent class)\n- ParishArchive (Q34544468) - Local parish records\n- Personenstandsarchiv (Q2072394) - German civil registration", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ChurchArchiveSweden", - "type": "object" - }, - "ChurchArchiveSwedenRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by ChurchArchiveSweden custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ChurchArchiveSwedenRecordSetType", - "type": "object" - }, - "ChurchGovernanceFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for church governance and administrative records organized as a fonds.\n\n**Definition**:\nRecords created by church governing bodies (synods, councils, consistories, \nkerkenraden) in the exercise of ecclesiastical governance and administration. \nOrganized according to archival principles of provenance.\n\n**Typical Contents**:\n- Synod/classis minutes and resolutions\n- Consistory/kerkenraad minutes\n- Church council decisions\n- Canonical visitation records\n- Correspondence with ecclesiastical authorities\n- Church law and regulations (kerkorde)\n- Disciplinary records\n- Membership rolls (lidmatenregisters)\n\n**Denominational Variations**:\n- Reformed: Kerkenraad, classis, synode\n- Roman Catholic: Parish council, diocese, bishops' conference\n- Lutheran: Kirchenvorstand, Synode\n- Other Protestant: Consistory, presbytery, conference\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the fonds organizational principle as defined by rico-rst:Fonds\n(provenance-based organization with governance records forming the core fonds).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the fonds principle. Governance records form the core archival fonds of church archives.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ChurchGovernanceFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"parish registers\", \"property records\", \"congregational societies\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"synod minutes\", \"consistory records\", \"church council decisions\", \"visitation records\", \"membership rolls\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "ChurchGovernanceFonds", - "type": "object" - }, - "ChurchPropertyFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for church property and financial records organized as a fonds.\n\n**Definition**:\nRecords documenting the temporal affairs of the church, including property \nownership, financial administration, building construction and maintenance, \nand endowments.\n\n**Typical Contents**:\n- Property deeds and titles (eigendomsakten)\n- Building construction records (bouwdossiers)\n- Maintenance and renovation records\n- Financial accounts (rekeningen)\n- Endowment records (legaten, stichtingen)\n- Rental and lease agreements\n- Insurance records\n- Cemetery administration\n\n**Historical Value**:\nChurch property records document:\n- Architectural history of church buildings\n- Economic history of communities\n- Landholding patterns\n- Charitable endowments and their administration\n\n**Legal Significance**:\nProperty records may still be legally significant for:\n- Ownership disputes\n- Restoration projects\n- Monument designation (monumentenzorg)\n- Cemetery rights\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the fonds organizational principle as defined by rico-rst:Fonds\n(property administration forming a distinct archival fonds).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "legal_note": { - "const": "Property records may retain legal significance for ownership, restoration projects, and monument designation. Original documents often retained for legal purposes.", - "description": "Notes about legal considerations or regulatory requirements.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the fonds principle. Property administration forms a distinct archival fonds, often managed separately from governance records.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ChurchPropertyFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"parish registers\", \"governance records\", \"clergy correspondence\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"property deeds\", \"building records\", \"financial accounts\", \"endowments\", \"cemetery records\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "ChurchPropertyFonds", - "type": "object" - }, - "ChurchRecordsTopic": { - "additionalProperties": false, - "description": "Topic related to church and religious records.\n\nIncludes: baptism records, marriage registers, burial records,\nkerkelijke registers, doop/trouw/begraaf (DTB).", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/TopicType" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/TopicType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ChurchRecordsTopic", - "type": "object" - }, - "City": { - "additionalProperties": false, - "description": "A city or large town settlement.\n\n**RELATIONSHIP TO SETTLEMENT**:\n\nCity is a subclass of Settlement representing urban areas that are\ntypically larger and more administratively significant than villages\nor small towns.\n\n**GeoNames Feature Codes**:\n\nCities typically correspond to GeoNames feature codes:\n- PPL: Populated place (general)\n- PPLA: Seat of first-order administrative division\n- PPLA2: Seat of second-order administrative division\n- PPLC: Capital of a political entity\n- PPLS: Populated places (urban agglomerations)\n\n**USAGE**:\n\nUse City class when:\n- The settlement is known to be a city (not village/hamlet)\n- You need to express city-specific semantics\n- Schema.org City alignment is important\n\nUse Settlement class when:\n- The settlement type is unknown or mixed\n- You want the most general geographic entity\n\n**EXAMPLES**:\n\n```yaml\nis_or_was_located_in:\n - settlement_name: \"Amsterdam\"\n geonames_id: 2759794\n country: \"NL\"\n```", - "properties": { - "country": { - "$ref": "#/$defs/Country", - "description": "Country where this place is located (OPTIONAL).\n\nLinks to Country class with ISO 3166-1 codes.\n\nSchema.org: addressCountry uses ISO 3166-1 alpha-2 codes.\n\nUse when:\n- Place name is ambiguous across countries (\"Victoria Museum\" exists in multiple countries)\n- Feature types are country-specific (e.g., \"cultural heritage of Peru\")\n- Generating country-conditional enums\n\nExamples:\n- \"Rijksmuseum\" \u2192 country.alpha_2 = \"NL\"\n- \"cultural heritage of Peru\" \u2192 country.alpha_2 = \"PE\"\n" - }, - "has_or_had_geographic_subdivision": { - "description": "Geographic subdivision within a country (state, province, region, department, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity may have been located in different subdivisions\nover time (e.g., due to boundary changes, administrative reorganization).\n\n**Geographic Hierarchy**:\nCountry \u2192 GeographicSubdivision (this slot) \u2192 Settlement\n\n**Identifier Format**:\nISO 3166-2 codes: {country_alpha2}-{subdivision_code}\nExamples: US-PA (Pennsylvania), ID-BA (Bali), DE-BY (Bavaria), NL-LI (Limburg)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `lcc_cr:isSubregionOf` - OMG Languages Countries and Codes\n- **Exact**: `schema:addressRegion` - Schema.org administrative region\n- **Close**: `locn:adminUnitL2` - INSPIRE administrative unit level 2\n- **Close**: `gn:A.ADM1` - GeoNames first-order administrative division\n\n**Use Cases**:\n- Place is located in a specific subdivision (e.g., \"Pittsburgh museum\" \u2192 US-PA)\n- Feature types are region-specific (e.g., \"sacred shrine (Bali)\" \u2192 ID-BA)\n- Legal jurisdiction at subnational level (e.g., Bavarian archive law)\n- Generating GHCID region codes\n\n**Range**: `uriorcurie` (Rule 55) - Allows both:\n- URI references to Subregion class instances\n- Direct ISO 3166-2 code CURIEs\n\n**Migration Note** (2026-01-17):\nReplaces domain-specific `subregion` slot per slot_fixes.yaml revision.\nProvides generic predicate name applicable across geographic contexts.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "latitude": { - "description": "Geographic latitude (WGS84 coordinate).\n\nSchema.org: latitude for geographic positioning.\n", - "type": [ - "number", - "null" - ] - }, - "longitude": { - "description": "Geographic longitude (WGS84 coordinate).\n\nSchema.org: longitude for geographic positioning.\n", - "type": [ - "number", - "null" - ] - }, - "settlement_id": { - "description": "Unique identifier for this settlement record. Format: Use GeoNames URI when available (e.g., https://sws.geonames.org/2759794/) or generate from settlement_name + country code. ", - "type": "string" - }, - "settlement_name": { - "description": "Human-readable name of the settlement.\n\nUse the official English name or local language name. For cities with\nmultiple official languages (e.g., Brussels, Bruxelles, Brussel), prefer\nthe English name for consistency.\n\nFormat: City name without country suffix\n\nExamples:\n- \"Amsterdam\" (not \"Amsterdam, Netherlands\")\n- \"Pittsburgh\" (not \"Pittsburgh, PA\")\n- \"Rio de Janeiro\" (not \"Rio de Janeiro, Brazil\")\n- \"Tokyo\" (not \"\u6771\u4eac\")\n\nNote: For programmatic matching, always use geonames_id when available.\nSettlement names can be ambiguous (e.g., 41 \"Springfield\"s in USA).\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "country", - "settlement_name", - "settlement_id" - ], - "title": "City", - "type": "object" - }, - "CityClaim": { - "additionalProperties": false, - "description": "City or municipality name.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "CityClaim", - "type": "object" - }, - "CivicDocumentationCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Civic and community documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PublicArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PublicArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CivicDocumentationCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CivicDocumentationCollection", - "type": "object" - }, - "CivilRegistrySeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for civil registry records organized as archival series.\n\n**Definition**:\nRecords documenting vital events (births, marriages, deaths) and population \nregistration, typically organized as series. Subject to privacy regulations \nwith varying restriction periods (typically 75-100 years for birth records, \n50-75 years for marriage records, 50 years for death records in Netherlands).\n\n**Typical Contents**:\n- Birth registers (geboorteakten)\n- Marriage registers (huwelijksakten)\n- Death registers (overlijdensakten)\n- Population registers (bevolkingsregisters)\n- Civil status declarations\n- Name change records\n- Naturalization records\n\n**Genealogical Value**:\nCivil registry records are primary sources for genealogical research and \nfamily history. They provide standardized documentation of vital events \nfrom the establishment of civil registration (1811 in Netherlands).\n\n**Privacy Considerations**:\nAccess restrictions apply based on record type and age. Netherlands:\n- Birth records: restricted for 100 years\n- Marriage records: restricted for 75 years\n- Death records: restricted for 50 years\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the series organizational principle as defined by rico-rst:Series\n(chronological has_arrangement within register types for civil registry records).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "privacy_note": { - "const": "Subject to vital records privacy laws. Netherlands: birth 100 years, marriage 75 years, death 50 years. Older records typically unrestricted.", - "description": "Notes about privacy restrictions or access limitations.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the series principle. Registers are arranged chronologically by type (births, marriages, deaths).", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CivilRegistrySeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"council records\", \"building permits\", \"court records\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"birth records\", \"marriage records\", \"death records\", \"population registers\", \"naturalization records\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "CivilRegistrySeries", - "type": "object" - }, - "CivilRegistryTopic": { - "additionalProperties": false, - "description": "Topic related to civil registry records.\n\nIncludes: birth certificates, death records, marriage records,\nburgerlijke stand (Dutch civil registration).", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/TopicType" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/TopicType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "CivilRegistryTopic", - "type": "object" - }, - "CivilUnrest": { - "additionalProperties": false, - "description": "Riots, protests, or civil disorder affecting heritage sites.\nExamples: 2020 protests, Arab Spring.", - "title": "CivilUnrest", - "type": "object" - }, - "Claim": { - "additionalProperties": false, - "description": "Base class for assertions or claims made about heritage entities.\n\nA claim represents a statement that warrants (supports or justifies) \nother statements or conclusions. Claims can come from various sources:\n- Web pages (WebClaim subclass)\n- Wikidata (WikidataClaim)\n- Research sources\n- Human annotations\n\n**Argumentation Semantics**:\nThe term \"warrants\" comes from argumentation theory (Toulmin model):\n- Claims provide evidence that WARRANTS (justifies) conclusions\n- A claim can be warranted BY other supporting claims\n\nThis bidirectional relationship is captured by the `warrants_or_warranted` slot.\n\n**Subclasses**:\n- WebClaim: Claims extracted from web pages with XPath provenance\n- WikidataClaim: Claims from Wikidata with property/value structure\n- PersonWebClaim: Claims about persons from web sources\n- CustodianLegalNameClaim: Claims about custodian legal names\n\n**MIGRATION NOTE (2026-01-19)**:\nCreated as base class for claim type hierarchy per slot_fixes.yaml (Rule 53/56).\nReplaces generic `claim` slot with `warrants_or_warranted` slot.", - "title": "Claim", - "type": "object" - }, - "ClaimType": { - "additionalProperties": false, - "description": "Abstract base class for types of claims that can be extracted from web pages.\n\nEach claim type has expected source locations in HTML:\n- full_name: , <h1>, logo text, meta og:title\n- description: <meta name='description'>, about section\n- email: <a href='mailto:...'>, contact page, footer\n- phone: <a href='tel:...'>, contact page\n- address: footer, contact page, JSON-LD structured data\n\n**Type Hierarchy**:\n- ClaimType (abstract base)\n - IdentityClaim (names, descriptions)\n - ContactClaim (email, phone, address)\n - SocialMediaClaim (facebook, twitter, linkedin, etc.)\n - MediaClaim (logo, favicon, images)\n - OperationalClaim (hours, admission, accessibility)\n - CollectionClaim (counts, statistics)\n - OrganizationalClaim (founding, legal form, parent org)\n - DocumentClaim (annual reports, policies)\n - GeographicClaim (address components)\n - ArchivalClaim (archive-specific claims)\n\n**MIGRATION NOTE (2026-01-19)**:\nPromoted from ClaimTypeEnum per slot_fixes.yaml (Rule 0b, 53, 56).\nEnum archived to: modules/enums/archive/ClaimTypeEnum_archived_20260119.yaml", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ClaimType", - "type": "object" - }, - "ClassificationStatus": { - "additionalProperties": false, - "description": "Structured status of a custodian type classification attempt.\nDescribes why classification is unspecified, including: - The type of classification issue (indeterminate, ambiguous, etc.) - Description of the specific situation - Temporal context of when status was assessed\n**CLASSIFICATION STATUS TYPES**:\n| Type | Description | |------|-------------| | IndeterminateStatus | Cannot determine from available evidence | | AmbiguousStatus | Conflicting evidence about institutional function | | TransitionalStatus | Institution changing type, outcome unclear | | NovelStatus | Doesn't fit existing taxonomy categories | | UnderReviewStatus | Classification being researched | | PendingVerificationStatus | Type suspected but needs confirmation |\n**EXAMPLE**:\n```yaml ClassificationStatus:\n has_or_had_type:\n type: AmbiguousStatus\n has_or_had_label: \"Ambiguous\"\n has_or_had_description: \"Sources conflict: museum (website) vs archive (ISIL registry)\"\n temporal_extent:\n begin_of_the_begin: \"2026-01-19T00:00:00Z\"\n```\n**MIGRATION NOTE (2026-01-19)**: Created per slot_fixes.yaml revision for classification_status migration. Replaces simple string with structured class.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_type", - "has_or_had_description" - ], - "title": "ClassificationStatus", - "type": "object" - }, - "ClassifyingMotivation": { - "additionalProperties": false, - "description": "Motivation for categorizing or classifying content.\n\n**DEFINITION**:\n\nClassifyingMotivation describes annotations where the intent is to\nassign the target to a specific category or classification scheme.\n\n**W3C WEB ANNOTATION**:\n\nFrom oa:classifying:\n> The motivation for when the user intends to classify the Target\n> as something.\n\n**USE CASES**:\n\n| Use Case | Example |\n|----------|---------|\n| Subject classification | Assigning LCSH or AAT terms |\n| Genre classification | Labeling artwork as \"Baroque\" |\n| Object type | Classifying as \"painting\", \"sculpture\" |\n| Content rating | Age-appropriate classifications |\n\n**HERITAGE CONTEXT**:\n\nClassification is fundamental to heritage cataloging:\n- Museum object classification (Getty AAT)\n- Archival arrangement and description\n- Library subject cataloging (LCSH, DDC)\n- Iconographic classification (Iconclass)", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "motivation_type_description": { - "description": "Detailed description of an annotation motivation type including purpose, characteristics, and typical use cases.", - "type": [ - "string", - "null" - ] - }, - "motivation_type_id": { - "description": "Unique identifier for an annotation motivation type.", - "type": "string" - }, - "motivation_type_name": { - "const": "classifying", - "description": "Canonical name for this motivation type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "motivation_type_id", - "motivation_type_name" - ], - "title": "ClassifyingMotivation", - "type": "object" - }, - "Classroom": { - "additionalProperties": false, - "description": "A classroom facility at an education center or heritage institution.\n\n**RULE 53 MIGRATION**:\nReplaces the simple `classroom_count` integer slot with a richer facility model:\n- `has_or_had_quantity` \u2192 number of classroom spaces\n- `has_or_had_unit` \u2192 RoomUnit (specifies what is being counted)\n\n**USAGE**:\n```yaml\nhas_or_had_facility:\n - facility_name: \"Classroom Wing\"\n has_or_had_quantity:\n numeric_value: 4\n has_or_had_unit:\n unit_type: CLASSROOM\n```\n\n**CHARACTERISTICS**:\n- Dedicated teaching/learning space\n- Capacity for group instruction\n- May include AV equipment\n- Configurable seating arrangements", - "properties": { - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - }, - "seating_capacity": { - "type": [ - "integer", - "null" - ] - } - }, - "title": "Classroom", - "type": "object" - }, - "Cleaner": { - "additionalProperties": false, - "description": "Cleaner providing facility cleaning services.\n\n**Official Title vs De Facto Work**:\nIn heritage settings, must understand special requirements\nfor cleaning near collections and historic surfaces.\n\n**Common Variants**:\n- Housekeeping Staff\n- Cleaning Technician\n- Custodian\n\n**Typical Domains**: All heritage institutions\n\n**Typical Responsibilities**:\n- Daily cleaning of public and staff areas\n- Special cleaning procedures near collections\n- Event cleanup\n- Waste management", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Cleaner", - "type": "object" - }, - "ClimateArchive": { - "additionalProperties": false, - "description": "Archive that provides information about climatic conditions in the past, preserving paleoclimate data and historical climate records. **Wikidata**: Q1676725 **Scope**: Climate archives (Klimaarchive) preserve: - Instrumental climate records (temperature, precipitation) - Proxy data (tree rings, ice cores, sediments) - Historical weather observations - Ship logs and expedition records - Agricultural and phenological records - Newspaper weather reports **Scientific Context**: Climate archives are essential for: - Paleoclimatology research - Climate change studies - Historical climatology - Environmental history - Long-term weather pattern analysis **Types of Climate Proxy Data**: - Dendrochronology (tree rings) - Ice cores (polar and glacial) - Coral records - Lake and ocean sediments - Speleothems (cave formations) - Historical documents **Related Types**: - ScientificArchive (Q27032095) - Research archives - AnimalSoundArchive (Q18574935) - Environmental recordings **Notable Examples**: - NOAA National Centers for Environmental Information - Climatic Research Unit (CRU) archives - World Data Center for Paleoclimatology", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ClimateArchive", - "type": "object" - }, - "ClimateArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by ClimateArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ClimateArchiveRecordSetType", - "type": "object" - }, - "ClimateControl": { - "additionalProperties": false, - "description": "Climate control system or approach for managing environmental conditions.\n\n**DEFINITION**:\n\nA ClimateControl represents the physical system, equipment, or approach\nused to manage temperature, humidity, air quality, and other environmental\nfactors in heritage facilities.\n\n**GETTY AAT ALIGNMENT**:\n\n`aat:300264752` (climate control systems) - \"Systems for controlling\nenvironmental conditions such as temperature and humidity.\"\n\n**USE CASES**:\n\n1. **Full HVAC System**:\n ```yaml\n ClimateControl:\n has_or_had_label: \"Main Gallery HVAC\"\n has_or_had_type: HVAC\n has_or_had_description:\n description_text: \"Central HVAC with 24/7 monitoring, backup power\"\n ```\n\n2. **Basic Heating**:\n ```yaml\n ClimateControl:\n has_or_had_label: \"Warehouse Heating\"\n has_or_had_type: HEATED\n ```\n\n3. **Dehumidification Only**:\n ```yaml\n ClimateControl:\n has_or_had_label: \"Photo Archive Dehumidifier\"\n has_or_had_type: DEHUMIDIFIED\n ```\n\n**RELATIONSHIP TO ClimateControlType**:\n\n```\nClimateControl\n \u2502\n \u2514\u2500\u2500 has_or_had_type \u2500\u2500\u25ba ClimateControlType\n \u2502\n \u2514\u2500\u2500 (HEATED, HVAC, DEHUMIDIFIED, NONE, etc.)\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_type" - ], - "title": "ClimateControl", - "type": "object" - }, - "ClimateControlPolicy": { - "additionalProperties": false, - "description": "Policy governing climate control systems and environmental conditions.\n\n**DEFINITION**:\n\nA ClimateControlPolicy defines the rules, standards, and requirements\nfor environmental control within heritage facilities. This includes\ntemperature ranges, humidity levels, air quality standards, and\nmonitoring requirements.\n\n**ONTOLOGICAL ALIGNMENT**:\n\n- **Primary** (`class_uri`): `odrl:Policy` - ODRL policy construct\n- **Related**: `crm:E29_Design_or_Procedure` - CIDOC-CRM procedures\n\n**USE CASES**:\n\n1. **Preservation Environment Policy**:\n ```yaml\n ClimateControlPolicy:\n has_or_had_label: \"Archives Preservation Environment Standard\"\n has_or_had_description:\n description_text: \"Temperature 18-22\u00b0C, RH 45-55%, 24/7 monitoring\"\n regulates_or_regulated:\n - ClimateControl: HVAC system for stack areas\n ```\n\n2. **Warehouse Climate Requirements**:\n ```yaml\n ClimateControlPolicy:\n has_or_had_label: \"Logistics Warehouse Climate Requirements\"\n regulates_or_regulated:\n - ClimateControl: Basic heating system\n ```\n\n**RELATIONSHIP TO ClimateControl**:\n\n```\nClimateControlPolicy\n \u2502\n \u251c\u2500\u2500 regulates_or_regulated \u2500\u2500\u25ba ClimateControl\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500 has_or_had_type \u2500\u2500\u25ba ClimateControlType\n \u2502\n \u2514\u2500\u2500 (may regulate multiple systems)\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "regulates_or_regulated": { - "description": "Entity or system that is or was regulated by a policy or control mechanism.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"OrRegulated\" suffix follows RiC-O convention indicating\nthe regulation relationship may be current or historical.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `odrl:target` - ODRL target of policy\n- **Related**: `prov:wasInfluencedBy` - PROV-O influence\n\n**Use Cases**:\n- Climate control policy regulating climate control systems\n- Access policy regulating collection access\n- Preservation policy regulating storage conditions\n\n**Cardinality**:\nMultivalued - policies may regulate multiple entities/systems.\n", - "items": { - "$ref": "#/$defs/ClimateControl" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ClimateControlPolicy", - "type": "object" - }, - "ClimateDataCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Historical climate records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ClimateArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ClimateArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ClimateDataCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ClimateDataCollection", - "type": "object" - }, - "ClippingsCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Newspaper clippings.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "NewspaperClippingsArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by NewspaperClippingsArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ClippingsCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ClippingsCollection", - "type": "object" - }, - "ClosedSpace": { - "additionalProperties": false, - "description": "An abstract space with borders - restricted access digital environment.\n\n**PURPOSE**: Provide restricted-access digital heritage environments\nfor authorized users.\n\n**CHARACTERISTICS**:\n- Access restrictions\n- Authentication required\n- Member-only content\n- Controlled environment\n\n**EXAMPLES**: Member-only archives, restricted research environments", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q78642244" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AUXILIARY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "ClosedSpace", - "type": "object" - }, - "CloudProvider": { - "additionalProperties": false, - "description": "Cloud infrastructure provider.\nExamples: AWS, Azure, Google Cloud, DigitalOcean, Hetzner", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CloudProvider", - "type": "object" - }, - "CoFunding": { - "additionalProperties": false, - "description": "Co-funding or match funding requirement for a funding call or grant.\n\nCo-funding represents the financial contribution that an applicant must\nprovide alongside the grant funding. This may be expressed as:\n- A percentage of total project cost (e.g., 30% co-funding required)\n- A minimum absolute amount (e.g., \u20ac50,000 minimum co-funding)\n- In-kind contributions (staff time, facilities, equipment)\n\n**ONTOLOGY ALIGNMENT**:\n- schema:MonetaryAmount - For monetary co-funding amounts\n- schema:percentageValue - For percentage-based requirements\n\n**MIGRATION NOTE**:\nReplaces simple boolean `co_funding_required` slot with structured class\nthat captures co-funding amount, percentage, and type information.\n\n**USAGE**:\n- CallForApplication requires_or_required CoFunding\n- Grant has_or_had_cofunding CoFunding\n\n**EXAMPLES**:\n- Horizon Europe: 0% co-funding for academic partners (100% funding rate)\n- National Lottery Heritage Fund: 5-50% partnership funding required\n- Creative Europe: 40% co-funding required (60% EU contribution)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_quantity": { - "description": "Quantified co-funding requirements expressed as:\n- Percentage (e.g., 30% of total project cost)\n- Minimum amount (e.g., \u20ac50,000)\n- Maximum amount (e.g., up to \u20ac1,000,000)\n", - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_required": { - "description": "Whether something is or was required (boolean).\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **Schema.org** | `schema:isRequired` | Maps to - boolean requirement |\n\nNote: slot_uri changed from schema:isRequired to hc:isOrWasRequired\nto resolve OWL ambiguous type warning. schema:isRequired may be\nambiguous when used in different contexts.\n\n**USAGE NOTE**:\n\nThis is a simple boolean slot. For structured requirement information\nwith types and temporal validity, use has_or_had_status with RequirementStatus.\n\n**MIGRATION NOTE**:\n\nReplaces domain-specific boolean slots like:\n- booking_required \u2192 is_or_was_required\n- appointment_required \u2192 is_or_was_required\n- registration_required \u2192 is_or_was_required\n", - "type": "boolean" - } - }, - "required": [ - "is_or_was_required" - ], - "title": "CoFunding", - "type": "object" - }, - "Code": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Code", - "type": "object" - }, - "ColdStorageEnvironment": { - "additionalProperties": false, - "description": "Refrigerated storage for temperature-sensitive materials.\n\n**PURPOSE**: Provide low-temperature storage to slow chemical decay\nand prevent vinegar syndrome in film materials.\n\n**RECOMMENDED CONDITIONS (ISO 18911:2010)**:\n- Temperature: -5\u00b0C to +4\u00b0C (target varies by material)\n- Relative humidity: 25-35% (target 30%)\n- Light: Dark storage required\n- Acclimation: Required before access (prevent condensation)\n\n**ISO 18911 STORAGE TIERS**:\n- Cool (10-15\u00b0C): Extends life moderately\n- Cold (-5\u00b0C to +4\u00b0C): Significant life extension\n- Frozen (<-10\u00b0C): Maximum life extension\n\n**SUITABLE MATERIALS**:\n- Film negatives (especially acetate base - vinegar syndrome prevention)\n- Color photographs (chromogenic dye fading)\n- Nitrate film (with appropriate fire safety)\n- Some magnetic media\n\n**CRITICAL**: Materials require acclimation period when removed\nfrom cold storage to prevent condensation damage.\n\n**STANDARD REFERENCES**:\n- ISO 18911:2010 - Processed safety photographic films - Storage practices\n\n**HC PRESET**: hc:ColdStorageEnvironment", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "COLD_STORAGE", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard": { - "description": "Reference to applicable ISO or EN standard for this environmental zone type.\n\nFormat: Standard identifier (e.g., \"ISO 11799\", \"ISO 18911\", \"EN 16893\")\n\nCommon preservation standards:\n- ISO 11799: Document storage requirements\n- ISO 18911: Film storage practices\n- ISO 18934: Multiple media archives storage\n- EN 16893: Heritage collection storage buildings\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "max_annual_light_exposure": { - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "const": 0, - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "requires_dark_storage": { - "description": "Whether dark (zero light) storage is required for this environmental zone.\n\nBased on ISO preservation standards:\n- Film storage (ISO 18911): Dark storage mandatory\n- Photographic (ISO 18920): Dark storage for extended-term\n- UK Archives (BS 4971): 0 lux for closed storage\n\nDark storage essential for:\n- Film negatives (especially color and early nitrate/acetate)\n- Daguerreotypes and early photographic processes\n- Cyanotypes and blueprint materials\n- Some magnetic media (tape)\n- Highly fugitive inks and dyes\n\nAccess provided through reading rooms or digitization requests.\nCumulative light damage is completely prevented.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_dust_free": { - "description": "Whether a dust-free or dust-controlled environment is required for this zone.\n\nBased on ISO preservation standards:\n- Magnetic tape (ISO 18923): Dust-free mandatory\n- Optical media (ISO 18938): Cleanroom for masters\n- Archives (ISO 11799): Dust control required\n\nISO 14644-1 Cleanliness Classes:\n- Class 8: General archive/museum (HEPA filtered)\n- Class 7: AV media storage (positive pressure)\n- Class 5: Digital master storage (cleanroom)\n\nDust-free essential for:\n- Magnetic tapes and audiovisual media\n- Optical discs (CD, DVD, Blu-ray)\n- Fine art and paintings (surface abrasion)\n- Photographic materials (scratches, embedded particles)\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_esd_protection": { - "description": "Whether electrostatic discharge (ESD) protection is required for this zone.\n\nBased on ISO/IEC standards:\n- Magnetic tape (ISO 18923): ESD protection required\n- Optical media (ISO 18938): ESD-safe handling mandatory\n- Electronics (IEC 61340-5-1): ESD control program\n\nESD protection measures include:\n- Conductive/dissipative flooring\n- Humidity control (40-60% RH reduces static)\n- ESD-safe packaging and equipment\n- Personnel grounding (wrist straps)\n\nESD protection essential for:\n- Hard drives and SSDs\n- LTO and other magnetic tapes\n- Optical media (CD, DVD, Blu-ray masters)\n- Electronic components and circuit boards\n- Born-digital heritage collections\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_uv_filter": { - "description": "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \u00b5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label", - "has_or_had_description" - ], - "title": "ColdStorageEnvironment", - "type": "object" - }, - "CollectedMaterialsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Collected/acquired materials.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "CollectingArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by CollectingArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CollectedMaterialsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CollectedMaterialsFonds", - "type": "object" - }, - "CollectingArchives": { - "additionalProperties": false, - "description": "Archive that actively collects materials from multiple external sources rather than preserving records of its own parent organization. **Wikidata**: Q117246276 **CUSTODIAN-ONLY**: This type does NOT have a corresponding rico:RecordSetType class. \"Collecting archive\" describes an institutional behavior/policy, not a collection classification. **Scope**: Collecting archives acquire: - Personal papers and manuscripts - Organizational records from defunct entities - Subject-specific documentation - Materials from multiple provenance sources - Documentary heritage at risk **Distinction from Institutional Archives**: - **Institutional archive**: Preserves records of parent organization - **Collecting archive**: Actively solicits materials from external sources Many archives combine both functions. **Collection Strategies**: - Donation and gift programs - Purchase of manuscripts and papers - Rescue operations for endangered records - Deposit agreements with organizations - Oral history and documentation projects **Related Types**: - InstitutionalArchive (Q124762372) - Single-organization focus - JointArchives (Q117442301) - Multi-entity shared archives - CommunityArchive (Q25105971) - Community-based collecting **Notable Examples**: - Hoover Institution Library & Archives - Harry Ransom Center (UT Austin) - Beinecke Rare Book and Manuscript Library - Deutsches Literaturarchiv Marbach", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CollectingArchives", - "type": "object" - }, - "CollectingArchivesRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by CollectingArchives custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CollectingArchivesRecordSetType", - "type": "object" - }, - "Collection": { - "additionalProperties": false, - "description": "Specific, inventoried heritage holdings with fine-grained cataloguing detail.\n\n**CRITICAL DISTINCTION**:\n\n| CustodianCollection | Collection (THIS CLASS) |\n|---------------------|------------------------|\n| Abstract/nominal reference | Specific, catalogued holdings |\n| Entire collection of a Custodian | Individual fonds, series, or named collections |\n| Vague (\"the museum's collection\") | Precise (\"the Van Gogh correspondence collection\") |\n| Top-level container | Nested within CustodianCollection |\n| crm:E78_Curated_Holding | rico:RecordSet |\n\n1. **RiC-O (Records in Contexts)**:\n - `rico:RecordSet` - \"A record set is a group of record(s), made and/or assembled\n by one or more agent(s), characterized by a common provenance and/or by being\n received/maintained by the same custodian.\"\n - Enables: series, fonds, sub-fonds, sub-series hierarchies\n - Properties: rico:hasRecordSetType, rico:hasExtent, rico:hasTemporalCoverage\n\n2. **CIDOC-CRM**:\n - Close mapping to crm:E78_Curated_Holding (at specific level)\n - crm:E24_Physical_Human-Made_Thing for physical collections\n\n3. **BIBFRAME**:\n - bf:Collection for library special collections\n - bf:Item for individual physical items within\n\n4. **Europeana Data Model**:\n - edm:ProvidedCHO for cultural heritage objects\n - edm:hasView for digital representations\n\n**HIERARCHICAL STRUCTURE**:\n\n```\nCustodian (hub)\n \u2502\n \u2514\u2500\u2500 CustodianCollection (aspect - abstract/nominal)\n \u2502\n \u2514\u2500\u2500 Collection (THIS CLASS - specific holdings)\n \u251c\u2500\u2500 CollectionType (classification)\n \u251c\u2500\u2500 AccessPolicy (access restrictions)\n \u251c\u2500\u2500 has_or_had_sub_collection \u2192 Collection[] (nested hierarchy)\n \u2502 \u2514\u2500\u2500 Collection (sub-fonds, series, etc.)\n \u2514\u2500\u2500 items \u2192 ExhibitedObject[] (individual objects)\n```\n\n**USE CASES**:\n\n1. **Archival Fonds**:\n ```yaml\n Collection:\n collection_name: \"Records of the Dutch East India Company (VOC)\"\n collection_type: FONDS\n record_set_type: rico:Fonds\n extent: \"1,250 linear meters\"\n temporal_coverage: \"1602-1799\"\n provenance: \"Dutch East India Company (VOC)\"\n ```\n\n2. **Museum Named Collection**:\n ```yaml\n Collection:\n collection_name: \"Drucker-Fraser Collection\"\n collection_type: NAMED_COLLECTION\n extent: \"125 artworks\"\n acquisition_method: \"Bequest (1937)\"\n access_policy: OPEN_ACCESS\n ```\n\n3. **Library Special Collection**:\n ```yaml\n Collection:\n collection_name: \"Medieval Manuscripts Collection\"\n collection_type: SPECIAL_COLLECTION\n bf_collection_type: bf:Collection\n extent: \"342 manuscripts, 12th-15th century\"\n temporal_coverage: \"1100-1500\"\n ```\n\n**PROVENANCE TRACKING**:\n\nCollection provenance is tracked through:\n- `provenance_statement` - Narrative provenance description\n- `custodial_history` - Chain of custody\n- `acquisition_method` - How acquired (purchase, donation, transfer, bequest)\n- `acquisition_date` - When acquired\n- `acquisition_source` - From whom acquired\n\n**ACCESS CONTROL**:\n\nCollections link to AccessPolicy for:\n- Open access (publicly available)\n- Restricted access (researchers only)\n- Closed access (temporary closure, embargo)\n- Partial access (portions available)", - "properties": { - "custodial_history": { - "description": "Chain of custody documentation.\n\nRiC-O: history for custodial events.\n\nRecords transfers, ownership changes, and custody events.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_content": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_provenance": { - "anyOf": [ - { - "$ref": "#/$defs/Provenance" - }, - { - "type": "null" - } - ], - "description": "Provenance information for this data element.\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\nBroadened from ProvenanceBlock to uriorcurie to resolve OWL ambiguous type warnings. This allows classes to narrow via slot_usage to: - `ProvenanceBlock` for comprehensive provenance tracking - `SourceDocument` for source document references - String URIs for simple provenance references\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming follows RiC-O convention indicating that provenance associations can change over time: - Additional provenance may be added as data is enriched - Provenance may be updated when verification occurs - Historical provenance preserved through versioning\n**REPLACES**: - `all_data_real` (auto-generated stub, string range) - `is_or_was_real` (RealnessStatus typed class) - `has_all_data_real_flag` (boolean flag, no provenance) - `has_or_had_observation_source_document` (bespoke slot, Rule 55)\n**EXAMPLE**: ```yaml has_or_had_provenance:\n data_source: \"public_linkedin_profile\"\n extraction_date: \"2025-01-14T12:00:00Z\"\n confidence_score: 0.95\n note: \"Verified production data\"\n```" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_acquired_through": { - "items": { - "$ref": "#/$defs/AcquisitionEvent" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_instantiated_by": { - "description": "Links an entity to its instantiated type class.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this relationship\nmay be historical - device types may change or be reclassified over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `rdf:type` - RDF type relationship\n- **Close**: `schema:additionalType` - Schema.org additional type\n\n**Usage**:\nUse with typed class hierarchies (e.g., IoTDevice, DeviceType).\nRange is uriorcurie to allow both class instances and URI references.\n\n**Replaces**: device_type slot per slot_fixes.yaml migration (2026-01-25)\n", - "items": { - "$ref": "#/$defs/DigitalInstantiation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_sub_collection_of": { - "description": "Parent collection in hierarchical arrangement, currently or historically.\n\n**RiC-O**: isOrWasPartOf for part-whole relationships with temporal semantics.\n\nLinks a sub-collection or series to its containing collection.\nUses temporal pattern because collection hierarchies can change:\n- Sub-collection transferred to different parent\n- Collection reorganization\n- Historical provenance tracking\n\n**Example**:\nCeylon Records:\n- Was sub-collection of VOC Archive (until 1948)\n- Is now part of Sri Lanka National Archives\n", - "type": [ - "string", - "null" - ] - }, - "item": { - "description": "Individual ExhibitedObject items within this collection.\n\nRiC-O: hasOrHadConstituent for record-level items within a RecordSet.\n\nLinks to fully-modeled ExhibitedObject entities with:\n- Creator attribution\n- Medium and dimensions\n- Provenance information\n- Conservation history\n- Exhibition history\n\n**Relationship to ExhibitedObject.part_of_collection**:\nThis is the inverse relationship. Collection.items \u2192 ExhibitedObject[]\ncorresponds to ExhibitedObject.part_of_collection \u2192 Collection.\n\n**Use Cases**:\n- Museum: Individual artworks in a named collection\n- Archive: Individual documents/files in a fonds/series\n- Library: Individual rare books in a special collection\n\n**Note**: For large collections, items may be linked by reference (URI)\nrather than inlined, to avoid excessive file sizes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "part_of_custodian_collection": { - "$ref": "#/$defs/CustodianCollection", - "description": "The abstract CustodianCollection this specific Collection belongs to.\n\nLinks specific holdings back to the nominal/abstract collection aspect.\n\nCIDOC-CRM: P46i_forms_part_of for part-whole relationship.\n" - }, - "record_set_type": { - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label", - "is_or_was_categorized_as", - "part_of_custodian_collection" - ], - "title": "Collection", - "type": "object" - }, - "CollectionBrowser": { - "additionalProperties": false, - "description": "Specialized tool for exploring specific collection or dataset.\nRich interface beyond main catalog search.\n\n**PURPOSE**: Provide enhanced browsing and visualization of specific\ncollections with specialized interfaces.\n\n**CHARACTERISTICS**:\n- Rich visualization\n- Faceted browsing\n- Collection-specific features\n- Comparison tools\n\n**EXAMPLES**: Rijksstudio, artwork explorers", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "INTERACTIVE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "CollectionBrowser", - "type": "object" - }, - "CollectionClaim": { - "additionalProperties": false, - "description": "Claim types for collection statistics and information.\nIncludes counts and descriptions of holdings.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "CollectionClaim", - "type": "object" - }, - "CollectionContent": { - "additionalProperties": false, - "description": "Represents content held within a collection, with typed categorization.\n\n**RULE 53 MIGRATION**:\nReplaces the simple `collection_type` string slot with a structured model:\n- `has_or_had_content` \u2192 CollectionContent (this class)\n- `has_or_had_type` \u2192 CollectionContentType (categorization)\n\n**USAGE**:\n```yaml\nhas_or_had_content:\n - content_description: \"Medieval manuscripts and parish registers\"\n has_or_had_type:\n - type_label: Archival\n - type_label: Library\n```\n\n**CHARACTERISTICS**:\n- Supports multiple content types per collection\n- Provides structured categorization\n- Links to CollectionContentType taxonomy", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "CollectionContent", - "type": "object" - }, - "CollectionCountClaim": { - "additionalProperties": false, - "description": "Number of items in collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "CollectionCountClaim", - "type": "object" - }, - "CollectionDiscoveryTemplate": { - "additionalProperties": false, - "description": "Template type for collection exploration queries.\n\n**Relevant Queries**:\n- Collection discovery and browsing\n- Cross-institutional collection searches\n- Collection-level descriptions\n- Aggregator portals (Europeana, DPLA)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "CollectionDiscoveryTemplate", - "type": "object" - }, - "CollectionDocumentationSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Collection documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "MuseumArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by MuseumArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CollectionDocumentationSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CollectionDocumentationSeries", - "type": "object" - }, - "CollectionManagementFunction": { - "additionalProperties": false, - "description": "Collection management function: cataloging, registration, provenance research, deaccessioning, storage management.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "CollectionManagementFunction", - "type": "object" - }, - "CollectionManagementSystem": { - "additionalProperties": false, - "description": "Software system used to manage heritage collections, objects, and metadata.\n\n**Definition**:\nSoftware used by the collections staff of a collecting institution or by \nindividual private collectors to document, manage, and track objects or \nspecimens in their collections.\n\n**CRITICAL DESIGN DECISION**:\n\nCollectionManagementSystem represents the SOFTWARE PRODUCT (e.g., CollectiveAccess,\nMuseumPlus, Adlib, Axiell Collections) that may power one or more DigitalPlatforms.\n\n**Relationship Architecture**:\n\n```\nCollectionManagementSystem (software product)\n \u2502\n \u251c\u2500\u2500 powers \u2192 DigitalPlatform (web interface)\n \u2502 - Rijksmuseum Website (powered by Adlib)\n \u2502 - National Archives Portal (powered by MAIS)\n \u2502\n \u2514\u2500\u2500 manages \u2192 CustodianCollection (collection records)\n - Paintings Collection\n - Archival Fonds\n```\n\n**Distinguishing CMS from DigitalPlatform**:\n\n| CMS | DigitalPlatform |\n|-----|-----------------|\n| Software product | Web interface |\n| Backend system | Frontend portal |\n| Data management | Data presentation |\n| Staff-facing | Public/researcher-facing |\n| Reusable across institutions | Institution-specific |\n\n**Examples of CMS Products**:\n\n- **CollectiveAccess**: Open-source, museums/archives\n- **MuseumPlus**: Zetcom, museum collections\n- **Adlib** (Axiell): Library/museum collections\n- **TMS (The Museum System)**: Gallery Systems\n- **ArchivesSpace**: Open-source, archival description\n- **MAIS-Flexis**: Dutch archival software\n- **Calm**: Axiell, archives\n- **ResourceSpace**: Digital asset management\n- **Omeka S**: Open-source, digital collections\n- **DSpace**: Digital repository\n\n**ONTOLOGY ALIGNMENT (from /data/ontology/)**:\n\n- **Schema.org** (`/data/ontology/schemaorg.owl`): `schema:SoftwareApplication` (primary)\n - CMS is specialized software for collection management\n - Properties: schema:applicationCategory, schema:softwareVersion, schema:creator\n - Related: schema:WebApplication (subclass)\n\n- **CIDOC-CRM** (`/data/ontology/CIDOC_CRM_v7.1.3.rdf`): `crm:E29_Design_or_Procedure`\n - CIDOC-CRM E73_Information_Object defines: \"procedural prescriptions, computer program code\"\n - E29_Design_or_Procedure is a subclass of E73_Information_Object\n - A CMS embodies procedures for managing collections\n - P33_used_specific_technique links activities to CMS\n\n- **DOAP** (`/data/ontology/doap.rdf`): `doap:Project`\n - Description of a Project vocabulary for software projects\n - Properties: doap:name, doap:homepage, doap:license, doap:repository\n - doap:programming-language for implementation languages\n - doap:category for software categorization\n\n- **RiC-O** (`/data/ontology/RiC-O_1-1.rdf`): Related concepts\n - rico:RecordResource for managed records\n - rico:Agent for custodian managing records via CMS\n - rico:Activity for record management activities\n\n**Use Cases**:\n\n1. **Platform Analysis**: \"What CMS powers the Rijksmuseum website?\"\n - Follow: DigitalPlatform.powered_by_cms \u2192 CollectionManagementSystem\n\n2. **Software Survey**: \"How many Dutch museums use CollectiveAccess?\"\n - Query: CMS instances where cms_product = \"CollectiveAccess\"\n\n3. **Collection-CMS Relationship**: \"Which collections are managed by MAIS?\"\n - Follow: CustodianCollection.managed_by_cms \u2192 CollectionManagementSystem\n\n4. **CMS Detection**: \"Does this website have a detectable CMS backend?\"\n - Check: DigitalPlatform.cms_detected flag\n\n**Example**:\n```yaml\nCollectionManagementSystem:\n cms_id: \"https://nde.nl/ontology/hc/cms/collective-access-rm\"\n cms_product_name: \"CollectiveAccess\"\n cms_product_version: \"1.8.0\"\n cms_category: MUSEUM_CMS\n open_source: true\\n license: \\\"GPL-3.0\\\"\\n has_or_had_label: \\\"Whirl-i-Gig\\\" # vendor_name\\n powers_platform:\\n - \\\"https://nde.nl/ontology/hc/platform/some-museum\\\"\\\n \n manages_collection:\n - \"https://nde.nl/ontology/hc/collection/some-collection\"\n```", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/CMSType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_version": { - "description": "Version number or identifier of an entity.\n\n**USAGE**:\nUsed for:\n- Software versions\n- Document versions\n- Schema versions\n", - "items": { - "$ref": "#/$defs/Version" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_available": { - "description": "Indicates whether a resource, service, or feature is or was available.\n**SEMANTIC PATTERN**:\nThis slot follows the RiC-O temporal predicate pattern (is_or_was_*) to indicate that availability may change over time.\n**REPLACES**:\n- `api_available` - Whether a CMS has API access available - Other domain-specific availability boolean flags\n**RANGE OPTIONS**:\n- boolean: Simple true/false availability - AvailabilityStatus: Structured availability with temporal validity\nClasses should use slot_usage to specify appropriate range.", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_deployed_at": { - "description": "Links a system (CMS, software) to its deployment event(s).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this relationship\nmay be historical - a system may have been deployed multiple times at\ndifferent institutions or locations.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:wasGeneratedBy` - PROV-O relationship\n linking entity to the activity that generated/deployed it\n- **Close**: `schema:datePublished` - Schema.org deployment date\n\n**MIGRATED FROM**: `deployment_date` slot\n\nThe revision pattern replaces a simple date with structured DeploymentEvent:\n- DeploymentEvent.temporal_extent \u2192 TimeSpan with fuzzy boundaries\n- Enables tracking multiple deployments over time\n- Captures deployment context (who, where, why)\n", - "items": { - "$ref": "#/$defs/DeploymentEvent" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_used_by": { - "description": "Links an entity to agents or activities that used it.\n\n**USAGE**:\nUsed for:\n- Platform usage by custodians\n- Tool usage\n- Resource consumption\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "license": { - "description": "Software license for this CMS.\n\nDOAP: license for software license information.\n\nUse SPDX identifiers when possible:\n- GPL-3.0: GNU General Public License v3\n- MIT: MIT License\n- Apache-2.0: Apache License 2.0\n- BSD-3-Clause: BSD 3-Clause\n- ECL-2.0: Educational Community License\n- Proprietary: Commercial/proprietary license\n", - "type": [ - "string", - "null" - ] - }, - "linked_data_export": { - "description": "Does this CMS support linked open data export (RDF)?\n\nDublin Core: conformsTo for LOD compliance.\n\nExport formats may include:\n- RDF/XML\n- Turtle\n- JSON-LD\n- N-Triples\n", - "type": [ - "boolean", - "null" - ] - }, - "manages_collection": { - "description": "CustodianCollection(s) managed by this CMS.\n\nCIDOC-CRM: P70_documents - the CMS documents the collection.\n\n**BIDIRECTIONAL RELATIONSHIP**:\n- Forward: CollectionManagementSystem \u2192 CustodianCollection (manages_collection)\n- Reverse: CustodianCollection \u2192 CollectionManagementSystem (managed_by_cms)\n\nMultiple collections may be managed by one CMS deployment:\n- Paintings collection\n- Prints and drawings\n- Archival fonds\n", - "items": { - "$ref": "#/$defs/CustodianCollection" - }, - "type": [ - "array", - "null" - ] - }, - "open_source": { - "description": "Is this CMS open-source software?\n\nBoolean flag. If true, license slot should contain OSI-approved license.\n\nOpen-source CMS examples:\n- CollectiveAccess (GPL-3.0)\n- ArchivesSpace (ECL-2.0)\n- Omeka S (GPL-3.0)\n- DSpace (BSD-3-Clause)\n- Koha (GPL-3.0)\n", - "type": [ - "boolean", - "null" - ] - }, - "powers_platform": { - "description": "DigitalPlatform(s) powered by this CMS deployment.\n\nCIDOC-CRM: P33_used_specific_technique - the CMS is the technique/procedure\nused to power the digital platform.\n\n**BIDIRECTIONAL RELATIONSHIP**:\n- Forward: CollectionManagementSystem \u2192 DigitalPlatform (powers_platform)\n- Reverse: DigitalPlatform \u2192 CollectionManagementSystem (powered_by_cms)\n\nOne CMS deployment may power multiple platforms:\n- Public website\n- Staff intranet\n- Mobile app backend\n- API service\n", - "items": { - "$ref": "#/$defs/DigitalPlatform" - }, - "type": [ - "array", - "null" - ] - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "repository_url": { - "description": "Source code repository URL (for open-source CMS). Mapped to schema:codeRepository as the specific Schema.org property for source code locations.\n\nTypically GitHub, GitLab, or similar.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_identifier", - "refers_to_custodian" - ], - "title": "CollectionManagementSystem", - "type": "object" - }, - "CollectionScope": { - "additionalProperties": false, - "description": "Specialized scope/coverage information for heritage collections.\nCreated per slot_fixes.yaml revision for collection_scope (2026-01-18). Extends base Scope class with collection-specific semantics.\n**SCOPE DIMENSIONS** (inherited from Scope): - **Temporal**: Time period covered (e.g., \"1600-1900\") - **Spatial**: Geographic coverage (e.g., \"Netherlands\", \"Amsterdam\") - **Subject**: Topic/subject areas (e.g., \"Dutch Golden Age painting\") - **Material**: Types of materials (e.g., \"photographs\", \"manuscripts\")\n**COLLECTION-SPECIFIC USAGE**: - Subject scope or thematic focus of collection - Geographic or administrative scope (provincial, municipal, etc.) - Institutional scope (government records, private papers, etc.)\n**EXAMPLES**: - \"17th-century Dutch painting\" - \"Municipal government records, 1578-present\" - \"Medieval manuscripts\" - \"East Asian art\"\n**ONTOLOGY MAPPING**: - class_uri: dct:Coverage (Dublin Core coverage concept) - Specialization for heritage collection domain", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "material_coverage": { - "description": "Types of materials covered.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "scope_description": { - "description": "Human-readable description of the scope.", - "type": [ - "string", - "null" - ] - }, - "scope_type": { - "description": "Type discriminator for scope usage context. Use \"collection_scope\" to indicate this represents a heritage collection scope.", - "type": [ - "string", - "null" - ] - }, - "spatial_coverage": { - "description": "Geographic coverage (e.g., \"Netherlands\", \"Europe\").", - "type": [ - "string", - "null" - ] - }, - "subject_coverage": { - "description": "Subject areas covered.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_coverage_description": { - "description": "Time period covered as free text (e.g., \"1600-1900\", \"Medieval period\"). Use for informal descriptions. For structured temporal data, use the temporal_coverage slot with TimeSpan class.", - "type": [ - "string", - "null" - ] - } - }, - "title": "CollectionScope", - "type": "object" - }, - "CollectionType": { - "additionalProperties": false, - "description": "Classification type for specific Collection instances.\n\nProvides semantic classification distinguishing different kinds of heritage collections:\n- Archival record set types (fonds, series, file, item)\n- Library collection types (special collection, personal papers)\n- Museum collection types (named collection, bequest)\n\n1. **RiC-O (Records in Contexts)**:\n - `rico:RecordSetType` - \"A record set type categorizes record sets according\n to the way they were created, assembled, or used.\"\n - Standard values: Fonds, Series, File, Collection, Item\n\n2. **BIBFRAME**:\n - bf:Collection for library special collections\n - bf:Archival for archival materials\n\n3. **SKOS**:\n - skos:Concept for classification term\n - Hierarchical relationships via skos:broader/narrower\n\n**COLLECTION TYPE TAXONOMY**:\n\n```\nCollectionType (root)\n \u2502\n \u251c\u2500\u2500 ArchivalRecordSetType\n \u2502 \u251c\u2500\u2500 FONDS (Q1643722) - Provenance-based archival unit\n \u2502 \u251c\u2500\u2500 SERIES - Group within fonds\n \u2502 \u251c\u2500\u2500 SUB_SERIES - Subdivision of series\n \u2502 \u251c\u2500\u2500 FILE - Individual folder/dossier\n \u2502 \u2514\u2500\u2500 ITEM - Single document\n \u2502\n \u251c\u2500\u2500 LibraryCollectionType\n \u2502 \u251c\u2500\u2500 SPECIAL_COLLECTION - Named special collection\n \u2502 \u251c\u2500\u2500 PERSONAL_PAPERS - Papers of an individual\n \u2502 \u251c\u2500\u2500 INSTITUTIONAL_RECORDS - Organizational records\n \u2502 \u2514\u2500\u2500 REFERENCE_COLLECTION - Reference materials\n \u2502\n \u251c\u2500\u2500 MuseumCollectionType\n \u2502 \u251c\u2500\u2500 NAMED_COLLECTION - Named collection (donor, subject)\n \u2502 \u251c\u2500\u2500 STUDY_COLLECTION - Research/study materials\n \u2502 \u251c\u2500\u2500 PERMANENT_COLLECTION - Core permanent holdings\n \u2502 \u2514\u2500\u2500 LOAN_COLLECTION - Long-term loans\n \u2502\n \u2514\u2500\u2500 AssembledCollectionType\n \u251c\u2500\u2500 ARTIFICIAL_COLLECTION - Non-provenance assembled\n \u251c\u2500\u2500 THEMATIC_COLLECTION - Subject-based grouping\n \u2514\u2500\u2500 REFERENCE_COLLECTION - Reference aggregation\n```\n\n**RICO RECORD SET TYPE ALIGNMENT**:\n\n| CollectionType | RiC-O Type | Description |\n|----------------|------------|-------------|\n| FONDS | rico:Fonds | Provenance-based archival unit |\n| SERIES | rico:Series | Subdivision of fonds |\n| FILE | rico:File | Individual file/dossier |\n| ITEM | rico:Item | Single record |\n| ARTIFICIAL_COLLECTION | rico:Collection | Non-provenance assemblage |\n\n**USE CASES**:\n\n1. **Archival Classification**:\n ```yaml\n CollectionType:\n has_or_had_identifier: \"hc:collection-type/fonds\"\n type_name: \"Fonds\"\n record_equivalent: \"rico:Fonds\"\n description: \"Provenance-based archival unit\"\n ```\n\n2. **Library Special Collection**:\n ```yaml\n CollectionType:\n has_or_had_identifier: \"hc:collection-type/special-collection\"\n type_name: \"Special Collection\"\n # BIBFRAME mapping at class level via close_mappings: [bf:CollectionType]\n description: \"Named library special collection\"\n ```\n\n3. **Museum Named Collection**:\n ```yaml\n CollectionType:\n has_or_had_identifier: \"hc:collection-type/named-collection\"\n type_name: \"Named Collection\"\n description: \"Collection named for donor or subject\"\n ```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CollectionType", - "type": "object" - }, - "CollectionsManager": { - "additionalProperties": false, - "description": "Collections manager handling registration, cataloging, loans, and storage.\n\n**Official Title vs De Facto Work**:\nFormally focused on collections logistics, but often involved in\ndigitization projects, database development, and policy creation.\n\n**Common Variants**:\n- Collections Registrar\n- Registrar\n- Collections Coordinator\n- Collections Administrator\n\n**Typical Domains**: Museums, galleries\n\n**Typical Responsibilities**:\n- Object registration and documentation\n- Cataloging and database management\n- Loan coordination (incoming/outgoing)\n- Collection storage and inventory\n- Rights and reproductions\n- Insurance and valuation coordination", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "CollectionsManager", - "type": "object" - }, - "CollectiveBargainingSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for collective bargaining records organized as series.\n\n**Definition**:\nRecords documenting collective bargaining negotiations, labor contracts,\nand industrial relations. Typically organized as chronological series\nby industry, employer, or contract period.\n\n**Typical Contents**:\n- Collective labor agreements (CAO's - collectieve arbeidsovereenkomsten)\n- Negotiation records and minutes\n- Position papers and proposals\n- Arbitration and mediation records\n- Wage schedules and benefit documentation\n- Working conditions agreements\n- Grievance procedures\n- Dispute resolution records\n- Industry-wide agreements\n- Company-level contracts\n\n**Contract Types**:\n- Sector-level agreements (bedrijfstak-CAO)\n- Company-level agreements (ondernemings-CAO)\n- Framework agreements\n- Supplementary agreements\n- Works council agreements\n\n**Research Value**:\nCollective bargaining records are essential for:\n- Labor law history\n- Economic history (wage development)\n- Industrial relations research\n- Comparative labor studies\n\n**Dutch Context**:\nKey elements:\n- CAO's (Collectieve Arbeidsovereenkomsten)\n- SER adviezen (Social-Economic Council)\n- Stichting van de Arbeid (Labor Foundation)\n- Loonbeleid (wage policy) documentation\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the series organizational principle as defined by rico-rst:Series\n(chronological has_arrangement by industry sector, employer, or contract period).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "legal_note": { - "const": "Collective labor agreements have legal status and are publicly registered in Netherlands. Historical agreements document evolution of labor law and worker protections.", - "description": "Notes about legal considerations or regulatory requirements.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the series principle as defined by rico-rst:Series. Chronological has_arrangement by industry sector, employer, or contract period.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CollectiveBargainingSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"union governance\", \"strike records\", \"publications\", \"photographs\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"CAOs\", \"negotiations\", \"arbitration\", \"wage agreements\", \"working conditions\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "CollectiveBargainingSeries", - "type": "object" - }, - "ColonialHeritagePortal": { - "additionalProperties": false, - "description": "Portal focused on colonial history collections and provenance research. **PURPOSE**: Support colonial provenance research, restitution claims, and scholarship on colonial-era heritage by aggregating relevant collections and contextual documentation. **CHARACTERISTICS**: - Colonial-era objects, documents, and photographs - Provenance research and documentation - Restitution and repatriation context - Multi-perspective narratives - Links between source and colonial countries **EXAMPLES**: - Colonial Collections (NDE, Netherlands) - Atlas of Mutual Heritage (Netherlands) - Colonial History portal (UK National Archives) - Shared Cultural Heritage programs", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "THEMATIC", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "colonial_heritage", - "provenance_research", - "museums", - "archives" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "ColonialHeritagePortal", - "type": "object" - }, - "ColonialHistoryTopic": { - "additionalProperties": false, - "description": "Topic related to colonial history and heritage.\n\nIncludes: Dutch East Indies, Suriname, Antilles,\ncolonial administration, decolonization.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/TopicType" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/TopicType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ColonialHistoryTopic", - "type": "object" - }, - "ColonialStatus": { - "additionalProperties": false, - "description": "Structured representation of colonial/territorial status for geographic coverage.\n\n**PURPOSE**:\n\nModels colonial territories and their historical status in archival finding aids.\nCaptures both the geographic territory and its colonial relationship over time.\n\n**DESIGN RATIONALE**:\n\nCreated per slot_fixes.yaml migration from simple `colonial` string slot to\nstructured class with temporal and geographic context.\n\nThe revision specifies:\n- `includes_or_included` + `GeoSpatialPlace` for territory geometry\n- `is_or_was_categorized_as` + `ColonialStatus` for categorization\n\n**USE CASES**:\n\n- Dutch East Indies archives (1602-1949)\n- Belgian Congo documentation\n- British Colonial Office records\n- Portuguese overseas territories\n\n**PROVENANCE CONSIDERATIONS**:\n\nColonial status is historically contingent and politically sensitive.\nAlways capture:\n- Time period of colonial relationship\n- Perspective (colonizer vs. colonized)\n- Modern-day geographic equivalent", - "properties": { - "colonizing_power": { - "description": "The colonizing nation or entity.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modern_equivalent": { - "description": "Modern-day country or region corresponding to this colonial territory.\n\nUse ISO 3166-1 alpha-2 codes or full country names.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "status_type": { - "description": "Type of colonial relationship.\n", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - }, - "territory_name": { - "description": "Name of the colonial territory.\n\nUse the historical name as recorded in archival sources.\nModern equivalents should be recorded in notes or linked via GeoSpatialPlace.\n", - "type": "string" - } - }, - "required": [ - "territory_name" - ], - "title": "ColonialStatus", - "type": "object" - }, - "ComarcalAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Comarca (county) administrative records (Spain).\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ComarcalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ComarcalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ComarcalAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ComarcalAdministrationFonds", - "type": "object" - }, - "ComarcalArchive": { - "additionalProperties": false, - "description": "Archive serving a comarca (county-level administrative district),\nprimarily in Catalonia and other regions of Spain.\n\n**Wikidata**: Q21086734\n\n**Geographic Restriction**: Spain (primarily Catalonia)\n\n**Scope**:\nComarcal archives (arxius comarcals) preserve:\n- Comarca council records\n- Municipal records from constituent towns\n- Notarial protocols\n- Historical documents from the district\n- Photographs and audiovisual materials\n- Local history documentation\n\n**Administrative Context**:\nIn Catalonia's archival system:\n- Arxiu Nacional de Catalunya (national)\n- Arxius Hist\u00f2rics Provincials (provincial)\n- Arxius Comarcals (41 comarcal archives) \u2190 This type\n- Arxius Municipals (municipal)\n\n**Services**:\nComarcal archives typically provide:\n- Public access to historical records\n- Genealogical research assistance\n- Local history reference services\n- Document conservation\n- Digitization programs\n\n**Related Types**:\n- MunicipalArchive (Q604177) - City/town archives\n- ProvincialArchive (Q5403345) - Provincial level\n- ProvincialHistoricalArchive (Q21087388) - Provincial historical\n- DistrictArchiveGermany (Q130757255) - German equivalent", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ComarcalArchive", - "type": "object" - }, - "ComarcalArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by ComarcalArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ComarcalArchiveRecordSetType", - "type": "object" - }, - "ComarcalHistoryCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Regional historical documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ComarcalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ComarcalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ComarcalHistoryCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ComarcalHistoryCollection", - "type": "object" - }, - "Comment": { - "additionalProperties": false, - "description": "A comment or annotation on content.\n\n**USAGE**:\nUsed for:\n- Video comments\n- Review comments\n- Annotations", - "properties": { - "comment_date": { - "description": "Date/time the comment was made", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "has_or_had_author": { - "description": "Person or organization that authored/created a work.\nLinks to Author class which models creators of creative works such as catalogs, publications, reports, and other documentary outputs.\n**RiC-O Alignment**: Follows RiC-O temporal relationship pattern (has/had) for properties that may change over time (e.g., posthumous attributions, disputed authorship).\n**Schema.org/Dublin Core Alignment**: Maps to schema:author and dcterms:creator.\n**BIBFRAME Alignment**: Related to bf:contribution for bibliographic works.\n**Use Cases**: - Exhibition catalog authors - Research report authors - Finding aid compilers - Publication contributors\n**MIGRATED from authors (Rule 53)**: Changed from string to Author class for structured authorship modeling including roles, affiliations, and temporal aspects.", - "items": { - "$ref": "#/$defs/Author" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_content": { - "items": { - "type": "string" - }, - "type": "array" - }, - "likes_count": { - "description": "Number of likes on the comment", - "type": [ - "integer", - "null" - ] - } - }, - "required": [ - "has_or_had_content" - ], - "title": "Comment", - "type": "object" - }, - "CommentReply": { - "additionalProperties": false, - "description": "Reply metrics and relationships for comments/posts.\n\n**PURPOSE**:\n\nStructured representation of reply counts and relationships for threaded\ndiscussions. Replaces simple integer counts with rich reply data including\nquantity, temporal tracking, and relationship information.\n\n**DESIGN RATIONALE**:\n\nCreated per slot_fixes.yaml migration from `comment_reply_count` integer\nto structured `has_or_had_reply` + `CommentReply` with `has_or_had_quantity`\n+ `Quantity` for metric representation.\n\n**REPLY CONTEXTS**:\n\n| Context | Description |\n|---------|-------------|\n| YouTube | Comment replies on video comments |\n| Twitter | Reply threads |\n| Facebook | Comment replies on posts |\n| Forum | Threaded discussion replies |\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Usage |\n|----------|----------------|-------|\n| **SIOC** | `sioc:Post`, `sioc:has_reply` | Online community content |\n| **Activity Streams** | `as:Note`, `as:inReplyTo` | Social activity |\n| **Schema.org** | `schema:Comment` | Generic comment modeling |\n\n**EXAMPLE**:\n\n```yaml\nhas_or_had_reply:\n - reply_count: 5\n has_or_had_quantity:\n numeric_value: 5\n has_or_had_unit:\n unit_label: \"replies\"\n temporal_extent:\n begin_of_the_begin: \"2025-01-14T10:00:00Z\"\n```", - "properties": { - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - }, - "reply_count": { - "description": "Simple count of replies (shorthand for has_or_had_quantity.numeric_value).\nUse has_or_had_quantity for structured representation with unit.\n", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "reply_type": { - "description": "Type of reply context (comment_reply, thread_reply, direct_reply).\n", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "CommentReply", - "type": "object" - }, - "CommentingMotivation": { - "additionalProperties": false, - "description": "Motivation for adding commentary.\n\n**DEFINITION**:\n\nCommentingMotivation describes annotations where the intent is to\nadd a comment or opinion about the target resource.\n\n**W3C WEB ANNOTATION**:\n\nFrom oa:commenting:\n> The motivation for when the user intends to comment about the Target.\n\n**USE CASES**:\n\n| Use Case | Example |\n|----------|---------|\n| Scholarly notes | Research observations |\n| Curatorial notes | Internal cataloging notes |\n| User comments | Public-facing comments |\n| Editorial remarks | Publication annotations |\n\n**HERITAGE CONTEXT**:\n\nComments add contextual knowledge:\n- Provenance research notes\n- Conservation observations\n- Scholarly commentary\n- Community engagement features", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "motivation_type_description": { - "description": "Detailed description of an annotation motivation type including purpose, characteristics, and typical use cases.", - "type": [ - "string", - "null" - ] - }, - "motivation_type_id": { - "description": "Unique identifier for an annotation motivation type.", - "type": "string" - }, - "motivation_type_name": { - "const": "commenting", - "description": "Canonical name for this motivation type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "motivation_type_id", - "motivation_type_name" - ], - "title": "CommentingMotivation", - "type": "object" - }, - "CommercialCustodianTypeEnum": { - "description": "", - "enum": [ - "AANDEELHOUDER_BESTUURDE_VENNOOTSCHAP", - "ACADEMIC_PUBLISHER", - "ADMINISTRATIVE_TERRITORIAL_ENTITY_TYPE", - "ADVISORY_BOARD", - "AGRICULTURAL_COOPERATIVE", - "AGRICULTURAL_ORGANIZATION", - "ANIMATION_STUDIO", - "ANONYMOUS_ASSOCIATION", - "ANTIQUARIAN_BOOKSTORE", - "ANTIQUARIAN_SELLER", - "ANTIQUE_SHOP", - "ARCHITECTURAL_FIRM", - "ARCHIVE_OF_AN_INTERNATIONAL_ORGANIZATION", - "ARTHOUSE_CINEMA", - "ARUBA_VRIJGESTELDE_VENNOOTSCHAP", - "ASSOCIATED_COMPANY", - "ASSOCIATION_FOOTBALL_FEDERATION", - "AUCTION_COOPERATIVE", - "AUCTION_HOUSE", - "AUTOMOBILE_MANUFACTURER", - "BANK_BRANCH", - "BESLOTEN_VENNOOTSCHAP", - "BESLOTEN_VENNOOTSCHAP_1", - "BESLOTEN_VENNOOTSCHAP_2", - "BESLOTEN_VENNOOTSCHAP_3", - "BESLOTEN_VENNOOTSCHAP_4", - "BESLOTEN_VENNOOTSCHAP_5", - "BODEGA", - "BOOKSTORE", - "BRANCH", - "BRANCH_OFFICE", - "BREWERY", - "BRICK_AND_MORTAR", - "BUS_COMPANY", - "BUSINESS", - "BUSINESS_AND_PROFESSIONAL_ASSOCIATIONS_UNIONS", - "BUSINESS_GROUP", - "CAF\u00c9", - "CENTRAL_ADMINISTRATION", - "CHAIN", - "CHOCOLATERIE", - "CINEMA_CHAIN", - "CIVIL_COMPANY_IN_THE_FORM_OF_A_COOPERATIVE_COMPANY_WITH_LIMITED_LIABILITY", - "CIVIL_COMPANY_IN_THE_FORM_OF_A_PRIVATE_LIMITED_LIABILITY_COMPANY", - "CIVIL_PARTNERSHIP_IN_THE_FORM_OF_A_GENERAL_PARTNERSHIP", - "CIVIL_PARTNERSHIP_IN_THE_FORM_OF_A_LIMITED_PARTNERSHIP_WITH_SHARES", - "CIVIL_PARTNERSHIP_IN_THE_FORM_OF_AN_AGRICULTURAL_COMPANY_BV_LV", - "COALITION", - "COLONIAL_SOCIETY", - "COMMANDITAIRE_VENNOOTSCHAP", - "COMMANDITAIRE_VENNOOTSCHAP_1", - "COMMANDITAIRE_VENNOOTSCHAP_2", - "COMMANDITAIRE_VENNOOTSCHAP_3", - "COMMANDITAIRE_VENNOOTSCHAP_1_1", - "COMMANDITAIRE_VENNOOTSCHAP_1_2", - "COMMANDITAIRE_VENNOOTSCHAP_1_3", - "COMMANDITAIRE_VENNOOTSCHAP_1_4", - "COMMANDITAIRE_VENNOOTSCHAP_OP_AANDELEN_MET_EEN_BEHERENDE_VENNOOT", - "COMMANDITAIRE_VENNOOTSCHAP_OP_AANDELEN_MET_MEER_DAN_EEN_BEHERENDE_VENNOOT", - "COMMANDITAIRE_VENNOOTSCHAP_MET_MEERDERE_BEHERENDE_VENNOTEN", - "COMMANDITAIRE_VENNOOTSCHAP_MET_\u00c9\u00c9N_BEHEREND_VENNOOT", - "COMMANDITAIRE_VENNOOTSCHAP_OP_AANDELEN", - "COMMANDITAIRE_VENNOOTSCHAP_OP_AANDELEN_1", - "COMMANDITE_COMPANY", - "COMMERCIAL_ART_GALLERY", - "COMMERCIAL_COMPANY", - "COMMERCIAL_COMPANY_IN_FRANCE", - "COMMERCIAL_ORGANIZATION", - "COMMITTEE", - "COMMUNITY", - "COMPANY", - "COMPANY_ARCHIVES", - "COMPANY_OR_ASSOCIATION_WITHOUT_LEGAL_PERSONALITY", - "CONCERN", - "CONGLOMERATE", - "CONSORTIUM", - "CONVENIENCE_STORE", - "COOPERATIVE_COMPANY_WITH_LIMITED_LIABILITY_UNDER_PUBLIC_LAW", - "COOPERATIVE_COMPANY_WITH_UNLIMITED_LIABILITY_WITH_A_SOCIAL_PURPOSE", - "COOPERATIVE_FOR_PRODUCTION", - "COOPERATIVE_SOCIETY_UNDER_PUBLIC_LAW", - "COOPERATIVE_SOCIETY_WITH_LIMITED_LIABILITY_AND_A_SOCIAL_OBJECTIVE", - "COOPERATIVE_WITH_LIMITED_LIABILITIES", - "CORPORATE_GROUP", - "CORPORATION", - "CORPORATION_1", - "CORPORATION_SOLE", - "COUNCIL", - "CO\u00d6PERATIE", - "CO\u00d6PERATIE_1", - "CO\u00d6PERATIE_UITGESLOTEN_VAN_AANSPRAKELIJKHEID", - "CO\u00d6PERATIVE", - "DOO", - "DAIRY_COOPERATIVE", - "DEFUNCT_ORGANIZATION", - "DELAWARE_CORPORATION", - "DEPARTMENT", - "DESIGN_OFFICE", - "DIVISION", - "DRINKING_ESTABLISHMENT", - "DUAL_LISTED_COMPANY", - "DUO_OF_PHOTOGRAPHERS", - "DYAD", - "EATING_OR_DRINKING_ESTABLISHMENT", - "ECONOMIC_AGENT", - "ECONOMIC_ENTITY", - "EENMANSZAAK", - "EENMANSZAAK_1", - "EENMANSZAAK_2", - "EENMANSZAAK_3", - "EENMANSZAAK_4", - "EENMANSZAAK_5", - "EENMANSZAAK_6", - "EENMANSZAAK_MET_MEERDERE_EIGENAREN", - "ENTERPRISE", - "EQUITY_PARTNER", - "ETHNIC_RESTAURANT", - "ETHNIC_THEME_PARK", - "EURO_BV", - "EUROPEAN_COMPANY_SOCIETAS_EUROPAEA", - "EUROPEAN_COOPERATIVE_SOCIETY", - "EUROPEAN_COOPERATIVE_SOCIETY_1", - "EUROPESE_NAAMLOZE_VENNOOTSCHAP_SOCIETAS_EUROPAEA", - "EXECUTIVE_BOARD", - "EXECUTIVE_BOARD_1", - "FAST_FOOD_RESTAURANT", - "FAST_FOOD_RESTAURANT_CHAIN", - "FILM_AND_TELEVISION_PRODUCTION_COMPANY", - "FILM_DISTRIBUTOR", - "FILM_FUND", - "FILM_ORGANIZATION", - "FILM_PRODUCTION_COMPANY", - "FILM_STUDIO", - "FINANCIAL_INSTITUTION", - "FOOD_MANUFACTURER", - "FREELANCER", - "GENERAL_BOOKSTORE", - "GENERAL_LIGHTHOUSE_AUTHORITY", - "GENERAL_PARTNERSHIP", - "GENERAL_PARTNERSHIP_1", - "GENERAL_PARTNERSHIP_2", - "GENERAL_PARTNERSHIP_WITH_A_SOCIAL_PURPOSE", - "GOVERNMENT", - "GOVERNMENT_ADMINISTRATION", - "GRAND_LODGE", - "GROCERY_STORE", - "GROUP_OF_HUMANS", - "GROUP_PURCHASING_ORGANIZATION", - "HOLDING_COMPANY", - "INSTITUTION", - "INSTITUTIONAL_REPOSITORY", - "INSURANCE_COMPANY", - "INTERCITY_BUS_COMPANY", - "INTERCOMMUNALE", - "INTERNATIONAL_ASSOCIATION", - "INTERNATIONAL_ORGANIZATION", - "ISOLATED_HUMAN_GROUP", - "ITALIAN_RESTAURANT", - "JOINT_STOCK_COMPANY", - "JURIDICAL_PERSON_UNDER_FRENCH_LAW", - "JUVENILE_POLITICAL_ORGANIZATION", - "KOMMANDITGESELLSCHAFT", - "LEGAL_PERSONALITY", - "LIMITED_COMPANY", - "LIMITED_LIABILITY_COMPANY_SIMPLE_LIMITED_LIABILITY_COMPANY", - "LIMITED_PARTNERSHIP_WITH_A_SOCIAL_PURPOSE", - "LIMITED_PARTNERSHIP_WITH_SHARES", - "LISTED_COMPANY", - "MAATSCHAP", - "MAATSCHAP_1", - "MAATSCHAP_2", - "MAATSCHAP_3", - "MAIN_ORGANIZATION", - "MAJOR_FILM_STUDIOS", - "MANAGEMENT_COMPANY", - "MANUFACTURER", - "MANUFACTURING_COMPANY", - "MEDIA_COMPANY", - "NAAMLOZE_VENNOOTSCHAP", - "NAAMLOZE_VENNOOTSCHAP_1", - "NAAMLOZE_VENNOOTSCHAP_2", - "NAAMLOZE_VENNOOTSCHAP_3", - "NAAMLOZE_VENNOOTSCHAP_4", - "NAAMLOZE_VENNOOTSCHAP_LIMITED_COMPANY_BY_SHARES", - "NATIONAL_TRADE_UNION_CENTER", - "NATURAL_PERSON", - "NETWORK_ORGANIZATION", - "NON_BANKING_FINANCIAL_COMPANY", - "OPEN_JOINT_STOCK_COMPANY", - "OPENBARE_VENNOOTSCHAP", - "OPENBARE_VENNOOTSCHAP_1", - "ORDINARY_LIMITED_PARTNERSHIP", - "ORDINARY_LIMITED_PARTNERSHIP_WITH_A_SOCIAL_PURPOSE", - "ORGANIZATION", - "ORGANIZATIONAL_SUBDIVISION", - "PANEL", - "PARENT_ORGANIZATIONUNIT", - "PARTNERSCHAFTSGESELLSCHAFT", - "PARTNERSHIP", - "PARTNERSHIP_1", - "PARTNERSHIP_LIMITED_BY_SHARES", - "PERSON_OR_ORGANIZATION", - "PIZZERIA", - "PIZZERIA_CHAIN", - "POLITICAL_ORGANIZATION", - "PORNOGRAPHIC_FILM_DISTRIBUTOR", - "PORNOGRAPHIC_FILM_STUDIO", - "PORNOGRAPHY_COMPANY", - "PRESSURE_GROUP", - "PRINTING_COMPANY", - "PRIVATE_COMPANY", - "PRIVATE_CORPORATION", - "PRIVATE_LIMITED_COMPANY", - "PRIVATE_LIMITED_COMPANY_1", - "PRIVATE_LIMITED_COMPANY_2", - "PRIVATE_LIMITED_COMPANY_UNDER_PUBLIC_LAW", - "PRIVATE_LIMITED_LIABILITY_COMPANY", - "PRIVATE_LIMITED_LIABILITY_COMPANY_WITH_A_SOCIAL_PURPOSE", - "PRIVATELY_HELD_COMPANY", - "PRODUCER_COOPERATIVE", - "PRODUCER_GROUP", - "PRODUCTION_COMPANY", - "PROJECT", - "PROVIDER", - "PUBLIC_COMPANY", - "PUBLIC_ENTERPRISE", - "PUBLIC_JOINT_STOCK_COMPANY", - "PUBLIC_LIMITED_COMPANY", - "PUBLIC_LIMITED_COMPANY_BELGIUM", - "PUBLIC_LIMITED_COMPANY_WITH_A_SOCIAL_OBJECTIVE", - "PUBLIC_LIMITED_COMPANY_GOVERNED_BY_PUBLIC_LAW", - "PUBLIC_LIMITED_LIABILITY_COMPANY", - "PUBLICLY_OWNED_COMPANY", - "PUBLISHING_COMPANY", - "PURCHASING_COOPERATIVE", - "RAILWAY_COMPANY", - "RECORDING_STUDIO", - "REGIONAL_DEVELOPMENT_AGENCY", - "RELIGIOUS_CORPORATION", - "RESTAURANT", - "RESTAURANT_CHAIN", - "RETAIL_CHAIN", - "RETAIL_OUTLET", - "RETAILER", - "SA", - "SELF_EMPLOYED_PERSON", - "SELF_REGULATORY_ORGANIZATION", - "SEPARATE_LEGAL_ENTITY", - "SHOP", - "SINGLE_PERSON_PRIVATE_LIMITED_LIABILITY_COMPANY", - "SINGLE_PERSON_PRIVATE_LIMITED_LIABILITY_COMPANY_WITH_A_SOCIAL_PURPOSE", - "SOCIAL_PURPOSE_COMPANY", - "SOCIAL_STRUCTURE", - "SOCIETAS_EUROPAEA", - "SOCIET\u00c0_PER_AZIONI", - "SOCI\u00c9T\u00c9_DE_DROIT_COMMUN", - "SOCI\u00c9T\u00c9_EN_COMMANDITE", - "SOFTWARE_COMPANY", - "SOLE_PROPRIETORSHIP", - "SPECIALISED_BOOKSTORE", - "SPORT_ASSOCIATION", - "SPORTS_GOVERNING_BODY", - "SPORTS_ORGANIZATION", - "SP\u00d3\u0141KA_AKCYJNA", - "STATE_OWNED_ENTERPRISE", - "STILLE_VENNOOTSCHAP", - "SUBJECT_OF_INTERNATIONAL_LAW", - "SUBSIDIARY_ORGANIZATION", - "SUPRAORGANIZATION", - "SYNDICATE", - "TECHNOLOGY_COMPANY", - "TELEVISION_COMPANY", - "TELEVISION_PRODUCTION_COMPANY", - "TEMPORARY_PARTNERSHIP", - "TEMPORARY_TRADING_COMPANY", - "THEME_PARK", - "TOP_LEVEL_UMBRELLA_ORGANIZATION", - "TRADE_UNION_FEDERATION", - "TRADING_COMPANY", - "TRANSPORT_COMPANY", - "TYPE_FOUNDRY", - "VEHICLE_MANUFACTURER", - "VENDOR", - "VENNOOTSCHAP_MET_BEPERKTE_AANSPRAKELIJKHEID", - "VENNOOTSCHAP_MET_BEPERKTE_AANSPRAKELIJKHEID_1", - "VENNOOTSCHAP_ONDER_EEN_FIRMA", - "VENNOOTSCHAP_ONDER_FIRMA", - "VENNOOTSCHAP_ONDER_FIRMA_1", - "VENNOOTSCHAP_ONDER_FIRMA_2", - "VENNOOTSCHAP_ONDER_FIRMA_3", - "VIDEO_GAME_DISTRIBUTOR", - "VIDEO_GAME_ORGANIZATION", - "VIENNESE_COFFEE_HOUSE", - "WINERY", - "YOUTH_ORGANISATION" - ], - "title": "CommercialCustodianTypeEnum", - "type": "string" - }, - "CommercialCustodianTypes": { - "additionalProperties": false, - "description": "Collection of commercial custodian subtypes from the 295-type Wikidata taxonomy.\n\n**PURPOSE**:\n\nStructured representation of commercial heritage custodian subtypes,\nreplacing the simple enum-valued slot with a class that can hold\nmultiple types with additional metadata.\n\n**DESIGN RATIONALE** (Rule 0b):\n\nFollows the Type/Types naming pattern:\n- `CommercialCustodianType` (singular) - would be abstract base\n- `CommercialCustodianTypes` (plural) - collection of concrete subtypes\n\nCreated per slot_fixes.yaml migration from `commercial_custodian_subtype`\nenum slot to structured `includes_or_included` + `CommercialCustodianTypes`.\n\n**COMMERCIAL CUSTODIAN CATEGORIES**:\n\n| Category | Examples |\n|----------|----------|\n| Auction houses | Christie's, Sotheby's, Bonhams |\n| Art dealers | Gagosian, David Zwirner |\n| Corporate archives | Ford Motor Archives, IBM Archives |\n| Brand museums | Heineken Experience, Guinness Storehouse |\n| Company museums | Mercedes-Benz Museum, BMW Welt |\n\n**WIKIDATA INTEGRATION**:\n\nEach subtype links to a Wikidata Q-number describing the specific\ncommercial organization type, enabling Linked Open Data queries.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "subtype_code": { - "description": "Code for the commercial custodian subtype from CommercialCustodianTypeEnum.\n", - "items": { - "$ref": "#/$defs/CommercialCustodianTypeEnum" - }, - "type": [ - "array", - "null" - ] - }, - "subtype_label": { - "description": "Human-readable label for this subtype.\n", - "type": [ - "string", - "null" - ] - }, - "wikidata_qid": { - "description": "Wikidata Q-number for this commercial custodian type.\n", - "type": [ - "string", - "null" - ] - } - }, - "title": "CommercialCustodianTypes", - "type": "object" - }, - "CommercialGallery": { - "additionalProperties": false, - "description": "A gallery that sells art.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_model": { - "description": "Model or structure description (business model, organizational model, etc.). Uses schema:businessFunction for business model descriptions.\nClasses narrow this slot via slot_usage for domain-specific descriptions: - CommercialOrganizationType \u2192 business model (funding/revenue structure)", - "type": [ - "string", - "null" - ] - }, - "has_or_had_objective": { - "description": "The objective of an action or measure.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_service": { - "description": "A service offered by an entity.\n\n**USAGE**:\nUsed for:\n- Visitor services (guided tours, audio guides)\n- Research services\n- Conservation services\n", - "items": { - "$ref": "#/$defs/Service" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string" - }, - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "represents_or_represented": { - "description": "Represents an artist or entity.", - "items": { - "$ref": "#/$defs/Artist" - }, - "type": [ - "array", - "null" - ] - }, - "sales_activity": { - "description": "Whether the gallery actively sells artworks to collectors.\nTrue = artwork sales (primary or secondary market)\nFalse = exhibition-only (no sales activity)\n\nDistinction from commercial_operation:\n- commercial_operation: business model (for-profit vs. nonprofit)\n- sales_activity: transactional activity (sells artworks or not)\n\nA gallery can be commercial_operation=true but sales_activity=false\n(e.g., art consultancy that doesn't hold inventory).\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CommercialGallery", - "type": "object" - }, - "CommercialOrganizationType": { - "additionalProperties": false, - "description": "Specialized custodian type for for-profit commercial organizations that\nmaintain heritage collections (corporate archives, company museums, brand centers).\n\n**CRITICAL DISTINCTION - Commercial vs. Other Types**:\n\nCommercialOrganizationType is for FOR-PROFIT entities maintaining heritage collections:\n- **Corporate archives**: Business records, product development history\n- **Company museums**: Brand heritage, corporate history exhibitions\n- **Business libraries**: Industry collections, technical documentation\n- **Brand heritage centers**: Marketing-oriented heritage spaces\n\n**Do NOT use CommercialOrganizationType if**:\n- \u274c Non-profit museum about industry/commerce \u2192 Use MuseumType\n- \u274c University business archive \u2192 Use ArchiveOrganizationType + EducationProviderType\n- \u274c Brewery with heritage mission (not-for-profit) \u2192 Use TasteScentHeritageType\n- \u274c Professional association archive \u2192 Use NonProfitType\n\n**Use CommercialOrganizationType for**:\n- \u2705 Heineken Experience (corporate brand museum)\n- \u2705 Ford Motor Company Archive (business archive)\n- \u2705 Coca-Cola World of Coke (brand heritage center)\n- \u2705 Royal Delft factory museum (commercial pottery heritage)\n\n1. **Structural Layer** (W3C Standards):\n - skos:Concept - Thesaurus classification\n - Classification within CustodianType hierarchy\n\n2. **Domain Layer** (Heritage Ontologies):\n - crm:E74_Group - CIDOC-CRM social group\n - foaf:Organization - Organizational entity\n - schema:Corporation - For-profit corporation\n\n3. **Web Layer** (Schema.org):\n - schema:Organization - Organizational entity\n - schema:Corporation - Corporate entity\n - schema:LocalBusiness - Business establishment\n\n**Wikidata Coverage** (50+ commercial heritage custodian entities):\n\nCorporate Archives:\n- Q163740 (corporate archive) - Business records repositories\n- Q7241077 (company archive) - Historical corporate documentation\n- Q105558717 (business history archive) - Industry historical records\n- Q215380 (product development archive) - Technical/design history\n\nCompany Museums:\n- Q5283639 (company museum) - Corporate-operated heritage museums\n- Q105558717 (brand heritage center) - Marketing-oriented heritage spaces\n- Q7241077 (factory museum) - Industrial heritage at production sites\n- Q215380 (corporate visitor center) - Public heritage exhibitions\n\nBusiness Libraries:\n- Q105558717 (corporate library) - Company research collections\n- Q5879427 (industry library) - Sector-specific collections\n- Q215380 (technical documentation center) - Product manuals, standards\n\nBrand Heritage Centers:\n- Q163740 (brand museum) - Marketing heritage experiences\n- Q5283639 (heritage brand center) - Consumer-facing corporate history\n- Q105558717 (brewery visitor center) - Beer/beverage brand heritage\n- Q7241077 (automotive museum) - Car manufacturer collections\n\nIndustry-Specific Examples:\n- Q33506 (brewery museum) - Beer heritage (Heineken, Guinness)\n- Q1551322 (automobile museum) - Car manufacturer museums (Mercedes, BMW)\n- Q5283639 (watch museum) - Horology brand heritage (Omega, Rolex)\n- Q105558717 (fashion archive) - Luxury brand heritage (Dior, Chanel)\n- Q215380 (technology archive) - Tech company collections (IBM, Xerox)\n- Q5879427 (bank archive) - Financial institution history\n- Q163740 (pharmaceutical archive) - Drug company collections\n\n**Key Distinctions from Other Types**:\n\nvs. Museum:\n- CommercialOrganization: FOR-PROFIT, CORPORATE-OWNED heritage collection\n- Museum: NON-PROFIT, PUBLIC-BENEFIT institution\n- Example: Heineken Experience (corporate) vs. Brouwerijmuseum (independent)\n\nvs. Archive:\n- CommercialOrganization: CORPORATE archive within for-profit business\n- Archive: INDEPENDENT archival institution (even if holds business records)\n- Example: Ford Motor archive (corporate) vs. Business archives at university\n\nvs. TasteScentHeritage:\n- CommercialOrganization: HERITAGE is secondary to PROFIT/MARKETING\n- TasteScentHeritage: HERITAGE PRESERVATION is primary mission\n- Example: Commercial brewery museum vs. Monastic brewery (heritage focus)\n\nvs. NonProfit:\n- CommercialOrganization: FOR-PROFIT, SHAREHOLDER-OWNED\n- NonProfit: NON-PROFIT, PUBLIC-BENEFIT mission\n- Example: Corporate foundation museum vs. Independent heritage NGO\n\nvs. EducationProvider:\n- CommercialOrganization: HERITAGE for MARKETING/BRAND purposes\n- EducationProvider: HERITAGE for EDUCATION/RESEARCH purposes\n- Example: Coca-Cola brand center vs. University business school archive\n\n**RDF Serialization Example**:\n\n```turtle\n@prefix hc: <https://nde.nl/ontology/hc/> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix schema: <http://schema.org/> .\n@prefix crm: <http://www.cidoc-crm.org/cidoc-crm/> .\n@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n\nhc:CommercialOrganizationType\n a skos:Concept, hc:CustodianType ;\n skos:prefLabel \"Commercial Organization Type\"@en,\n \"Commerci\u00eble Organisatie Type\"@nl,\n \"Gewerbliche Organisation Typ\"@de,\n \"Type d'Organisation Commerciale\"@fr ;\n skos:definition \"For-profit organizations maintaining heritage collections\"@en ;\n skos:broader hc:CustodianType ;\n skos:narrower hc:CorporateArchive,\n hc:CompanyMuseum,\n hc:BrandHeritageCenter ;\n schema:url <https://nde.nl/ontology/hc/class/commercial-organization-type> .\n\n# Example: Heineken Experience (corporate brand heritage center in Amsterdam)\n<https://w3id.org/heritage/custodian/nl/heineken-experience>\n a schema:Corporation, schema:TouristAttraction, crm:E74_Group, hc:CommercialOrganization ;\n hc:custodian_type hc:CommercialOrganizationType ;\n hc:has_or_had_model \"For-profit brand heritage attraction\", \"Admission fees\", \"Merchandise sales\", \"Brand marketing\" ;\n hc:has_or_had_rationale [ hc:rationale_text \"Brand heritage communication, Consumer engagement, Tourism revenue, Corporate identity\" ] ;\n hc:corporate_integration \"Fully owned by Heineken N.V.\", \"Marketing department\", \"Brand management division\" ;\n hc:public_access \"Daily visitor hours 10:30-19:30\", \"Paid admission\", \"Self-guided tours\", \"Group bookings available\" ;\n hc:heritage_holdings \"Brewing equipment (1867-present)\", \"Advertising materials archive\", \"Bottle/label collections\", \"Corporate photography\" ;\n hc:has_or_had_service [\n a hc:Service ;\n hc:service_name \"Admission tickets\" ;\n hc:price \"\u20ac21\" ;\n hc:has_or_had_type hc:CommercialService\n ], [\n a hc:Service ;\n hc:service_name \"Beer tasting experiences\" ;\n hc:has_or_had_type hc:CommercialService\n ], [\n a hc:Service ;\n hc:service_name \"Gift shop\" ;\n hc:has_or_had_type hc:CommercialService\n ], [\n a hc:Service ;\n hc:service_name \"Event venue rental\" ;\n hc:has_or_had_type hc:CommercialService\n ] ;\n schema:name \"Heineken Experience\" ;\n schema:foundingDate \"1991\" ;\n schema:location \"Stadhouderskade 78, Amsterdam\" ;\n schema:description \"Corporate brand heritage center in original Heineken brewery building (1867), showcasing brewing history and brand development through interactive exhibits and heritage collections\" ;\n schema:url <https://www.heinekenexperience.com/> ;\n foaf:member <https://heinekenexperience.example/staff/curator/001> .\n```", - "properties": { - "collects_or_collected": { - "description": "Links a custodian to what it collects or collected.\n**TEMPORAL SEMANTICS** (RiC-O style): The \"collects_or_collected\" naming follows RiC-O convention indicating that collecting activities may change over time: - Active collecting programs - Historical collecting focus that has changed - Materials previously collected but now deaccessioned\n**USE CASES**: - Commercial organizations: what they collect for heritage purposes - Museums: their collecting scope and purpose - Archives: types of records they acquire\n**REPLACES**: - `collection_purpose` (why commercial organization maintains collections)\n**EXAMPLE**: ```yaml collects_or_collected:\n - collection_type: \"brand_heritage\"\n has_or_had_rationale:\n rationale_text: \"Brand heritage communication\"\n rationale_category: \"marketing\"\n```", - "items": { - "$ref": "#/$defs/Collection" - }, - "type": [ - "array", - "null" - ] - }, - "corporate_integration": { - "description": "How the heritage collection is integrated into the company's organizational structure.\n\nDescribes organizational placement:\n- **Ownership structure**: Subsidiary, division, department, separate foundation\n- **Reporting lines**: Reports to CEO, marketing, legal, facilities, separate board\n- **Staffing**: Full-time heritage staff, marketing staff, volunteer curators\n- **Budget**: Separate budget, marketing budget, corporate overhead, endowment\n- **Governance**: Corporate management, independent board, advisory committee\n- **Strategic alignment**: Brand strategy, legal compliance, community relations\n- **Autonomy level**: Fully integrated vs. operationally independent\n\nCorporate integration indicates heritage collection stability and priorities.\n\nExamples:\n- \"Fully owned by Heineken N.V., Marketing department, Brand management\"\n- \"Separate 501(c)(3) foundation, Independent board, Endowment funded\"\n- \"Corporate records department, Legal division, Compliance mandate\"\n- \"Subsidiary of parent company, Independent management, Profit-sharing\"\n", - "type": "string" - }, - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^(https://nde\\.nl/ontology/hc/type/[a-z-]+/[QP][0-9]+|Q[0-9]+)$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_model": { - "description": "Model or structure description (business model, organizational model, etc.). Uses schema:businessFunction for business model descriptions.\nClasses narrow this slot via slot_usage for domain-specific descriptions: - CommercialOrganizationType \u2192 business model (funding/revenue structure)", - "type": "string" - }, - "has_or_had_rationale": { - "description": "The rationale or justification for a decision or mapping.\n\n**USAGE**:\nUsed for:\n- Mapping rationale (why an entity was mapped to Wikidata)\n- Decision justifications\n- Explanation notes\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:used` (per 2026-01-26 update)\n- **Close**: `skos:note` - SKOS note (DatatypeProperty)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_service": { - "description": "A service offered by an entity.\n\n**USAGE**:\nUsed for:\n- Visitor services (guided tours, audio guides)\n- Research services\n- Conservation services\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/CommercialCustodianTypes" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_model", - "has_or_had_rationale", - "corporate_integration", - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "CommercialOrganizationType", - "type": "object" - }, - "CommercialService": { - "additionalProperties": false, - "description": "Revenue-generating commercial activities offered by heritage institutions.\n\nIncludes:\n- Admissions: Ticket sales, pricing tiers, group rates, annual passes\n- Retail: Gift shop, branded merchandise, reproductions, publications\n- Food/beverage: Museum caf\u00e9, beer tasting, product sampling\n- Events: Corporate events, weddings, private rentals, conferences\n- Experiences: Interactive exhibits, VR experiences, workshops, tastings\n- Licensing: Brand licensing, image rights, reproduction fees\n- Tourism packages: Combined tickets, city passes, tour group partnerships\n- Digital sales: Online shop, virtual experiences, app subscriptions\n\nCreated per slot_fixes.yaml migration for: commercial_activity (2026-01-18)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "CommercialService", - "type": "object" - }, - "CommissionRate": { - "additionalProperties": false, - "description": "Structured representation of a commission rate.\n\n**PURPOSE**:\n\nModels commission percentages with context (market type,\nrate type) replacing simple string representation.\n\n**DESIGN RATIONALE**:\n\nCreated per slot_fixes.yaml migration from `commission_rate` string\nto structured representation with Percentage class.\n\n**ART MARKET STANDARDS**:\n\n- **Primary market**: 40-50% standard (gallery takes half)\n- **Secondary market**: 10-20% (resale commission)\n- **Auction**: 10-25% buyer's premium + seller's commission\n\n**EXAMPLE**:\n\n```yaml\ntakes_or_took_comission:\n rate_type: \"primary_market\"\n has_or_had_percentage:\n percentage_value: 50\n percentage_display: \"50%\"\n```", - "properties": { - "applies_to": { - "description": "What this commission rate applies to.\n", - "type": [ - "string", - "null" - ] - }, - "effective_date": { - "description": "When this commission rate became effective.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "has_or_had_percentage": { - "$ref": "#/$defs/Percentage", - "description": "A percentage value associated with an entity.\n\n**PURPOSE**:\n\nLinks entities to structured percentage representations.\nUsed for commission rates, discounts, completion percentages, etc.\n\n**RiC-O NAMING** (Rule 39):\n\nUses \"has_or_had_\" prefix indicating temporal relationship - \npercentages may change over time.\n\n**MIGRATION NOTE**:\n\nCreated from migration of `commission_rate` slot per slot_fixes.yaml.\nProvides structured percentage via Percentage class.\n" - }, - "rate_description": { - "description": "Human-readable description of the commission structure.\n", - "type": [ - "string", - "null" - ] - }, - "rate_type": { - "description": "Type of commission rate.\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "has_or_had_percentage" - ], - "title": "CommissionRate", - "type": "object" - }, - "CommitteeClaim": { - "additionalProperties": false, - "description": "Committee or board member information.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "CommitteeClaim", - "type": "object" - }, - "CommitteeRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Parliamentary committee documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ParliamentaryArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ParliamentaryArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CommitteeRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CommitteeRecordSeries", - "type": "object" - }, - "CommonsGallery": { - "additionalProperties": false, - "description": "Gallery page at Wikimedia Commons.\n\n**PURPOSE**: Provide curated image galleries on Wikimedia Commons\nfor heritage institutions and collections.\n\n**CHARACTERISTICS**:\n- Wikimedia Commons hosting\n- Open licensing\n- Community contributions\n- Category organization\n\n**EXAMPLES**: Institutional galleries on Wikimedia Commons", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q21167233" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "VIRTUAL_HERITAGE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "CommonsGallery", - "type": "object" - }, - "CommunityArchive": { - "additionalProperties": false, - "description": "Archive created and maintained by individuals and community groups to document their own cultural heritage and lived experiences. **Wikidata**: Q25105971 **Scope**: Community archives (Gemeinschaftsarchive) preserve: - Personal stories and oral histories - Photographs and home movies - Organizational records of community groups - Cultural artifacts and ephemera - Documentation of marginalized communities - Local neighborhood history **Characteristics**: Community archives are distinguished by: - Community ownership and control of materials - Grassroots organization and governance - Documentation of underrepresented groups - Participatory collection development - Often volunteer-driven - May exist outside formal archival institutions **Types of Community Archives**: - Ethnic and immigrant community archives - LGBTQ+ community archives - Labor and working-class archives - Disability community archives - Religious community archives - Neighborhood and local history collections **Related Types**: - LocalHistoryArchive (Q12324798) - Local history focus - FreeArchive (Q635801) - Social movement documentation - LGBTArchive (Q61710689) - LGBTQ+ specific - WomensArchives (Q130217628) - Women's history **Notable Examples**: - Schomburg Center for Research in Black Culture - ONE National Gay & Lesbian Archives - South Asian American Digital Archive (SAADA) - Lesbian Herstory Archives", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CommunityArchive", - "type": "object" - }, - "CommunityArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by CommunityArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CommunityArchiveRecordSetType", - "type": "object" - }, - "CommunityOrganizationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Community organization records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "CommunityArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by CommunityArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CommunityOrganizationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CommunityOrganizationFonds", - "type": "object" - }, - "CommunityPhotographCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Local photographs.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "LocalHistoryArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by LocalHistoryArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CommunityPhotographCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CommunityPhotographCollection", - "type": "object" - }, - "CommunitySignificance": { - "additionalProperties": false, - "description": "Significance to a community, relating to cultural identity and social cohesion.\n\n**Aspects**:\n- Cultural identity (regional/national pride)\n- Social cohesion (shared traditions, festivals)\n- Historical continuity (ancestral links)\n- Sense of place and belonging\n\n**Use Cases**:\n- UNESCO Intangible Cultural Heritage listings\n- Regional food/craft traditions\n- Community festivals and rituals\n\n**Example**:\n```yaml\nhas_or_had_significance:\n - has_or_had_type: CommunitySignificance\n has_or_had_description: \"Belgian Trappist brewing tradition, cultural identity\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "CommunitySignificance", - "type": "object" - }, - "CompanyArchives": { - "additionalProperties": false, - "description": "Organizational entity that keeps or archives fonds of a company,\npreserving corporate records and business heritage.\n\n**Wikidata**: Q10605195\n\n**Scope**:\nCompany archives (Unternehmensarchive) preserve:\n- Corporate governance records (board, shareholders)\n- Financial and accounting records\n- Product development and design documentation\n- Marketing and advertising materials\n- Personnel records (historical)\n- Correspondence and contracts\n- Photographs and audiovisual materials\n- Technical drawings and blueprints\n- Corporate publications\n\n**Organizational Context**:\nCompany archives are typically organized as:\n\n1. **Departments within corporations** (`org:OrganizationalUnit`):\n - Archive department under Records Management division\n - Historical archives team within Communications/PR\n - Technical archives under Engineering department\n \n2. **Branches at corporate facilities** (`org:OrganizationalUnit`):\n - Central archive at headquarters\n - Regional archive at manufacturing sites\n - Research archive at R&D centers\n \n3. **Standalone heritage organizations** (rare):\n - Independent foundation managing corporate heritage\n - Heritage society for defunct companies\n\n**Relationship to Parent Organization**:\n\n| Pattern | Property | Example |\n|---------|----------|---------|\n| Archive as department | `schema:department` / `org:hasUnit` | Philips Archive is department of Philips N.V. |\n| Archive as branch | `org:hasSite` / `org:unitOf` | Shell Archive at The Hague HQ |\n| Archive with parent org | `schema:parentOrganization` | Unilever Historical Archives \u2192 Unilever PLC |\n\n**W3C ORG / Schema.org Alignment**:\n- `schema:parentOrganization` - Links archive to the corporation it belongs to\n- `schema:department` - Corporation links to its archive department\n- `org:unitOf` - Archive is organizational unit of corporation\n- `org:hasUnit` - Corporation has archive as organizational unit\n\n**Business Value**:\nCompany archives support:\n- Legal and regulatory compliance\n- Intellectual property protection\n- Corporate identity and branding\n- Historical marketing campaigns\n- Anniversary and commemorative projects\n- Due diligence for mergers and acquisitions\n\n**Related Types**:\n- BankArchive (Q52718263) - Financial institution archives\n- EconomicArchive (Q27032167) - Economic history focus\n- InstitutionalArchive (Q124762372) - Institutional records\n- Department - Formal departmental structure within organization\n- OrganizationBranch - Physical branch locations of archive\n\n**Professional Body**:\nCompany archivists often belong to:\n- International Council on Archives Section for Business Archives\n- Vereinigung deutscher Wirtschaftsarchivare (VdW)\n- Business Archives Council (UK)", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_branch": { - "items": { - "$ref": "#/$defs/Branch" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_archive_department_of": { - "description": "Parent organization of which this archive is a department.", - "type": [ - "string", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "parent_corporation": { - "description": "The corporate parent organization that owns or controls this entity.\n\nSchema.org: parentOrganization - \"The larger organization that this organization \nis a subOrganization of, if any.\"\n\nUsed for corporate archives, company museums, or heritage institutions\nowned by larger corporate entities.\n", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CompanyArchives", - "type": "object" - }, - "ComplianceStatus": { - "additionalProperties": false, - "description": "Structured representation of compliance status with referenced standards.\n\n**MIGRATION NOTE** (2026-01-22):\nCreated per slot_fixes.yaml migration from `compliance_status` string\nto structured ComplianceStatus class per Rule 53.\n\n**Purpose**:\nProvides structured representation for compliance status including:\n- Status value (COMPLIANT, NON_COMPLIANT, PARTIALLY_COMPLIANT, NOT_ASSESSED)\n- Reference to the standard being assessed against\n- Assessment date and assessor\n- Notes on compliance gaps\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `hc:ComplianceStatus` - Heritage Custodian status\n- **Close**: `dcterms:conformsTo` - Dublin Core conformance\n\n**Status Values**:\n- **COMPLIANT**: Fully meets all requirements of the referenced standard\n- **NON_COMPLIANT**: Does not meet requirements, remediation required\n- **PARTIALLY_COMPLIANT**: Meets some but not all requirements\n- **NOT_ASSESSED**: Compliance has not been formally evaluated\n\n**Use Cases**:\n- Storage condition compliance with preservation standards\n- Building compliance with heritage regulations\n- Data management compliance with archival standards\n\n**Pattern**:\n```yaml\nhas_or_had_status:\n has_or_had_type: COMPLIANT\n standard_reference: \"ISO 11799:2015\"\n assessment_date: \"2024-06-15\"\n```", - "properties": { - "assessment_date": { - "description": "Date of the compliance assessment.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "assessor": { - "description": "Person or organization that performed the assessment.", - "type": [ - "string", - "null" - ] - }, - "compliance_gaps": { - "description": "Specific areas where compliance gaps exist (for PARTIALLY_COMPLIANT status).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "remediation_deadline": { - "description": "Deadline for completing remediation actions.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "remediation_required": { - "description": "Whether remediation action is required.", - "type": [ - "boolean", - "null" - ] - }, - "standard_reference": { - "description": "Reference to the standard being assessed against.\nExamples: \"ISO 11799:2015\", \"BS 5454:2000\", \"PAS 197:2009\"\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "has_or_had_type" - ], - "title": "ComplianceStatus", - "type": "object" - }, - "ComposerPapersCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Composer personal papers.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "MusicArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by MusicArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ComposerPapersCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ComposerPapersCollection", - "type": "object" - }, - "CompressionTypeEnum": { - "description": "Compression types for file downloads.", - "enum": [ - "NONE", - "GZIP", - "ZIP", - "BZIP2", - "XZ" - ], - "title": "CompressionTypeEnum", - "type": "string" - }, - "Concatenation": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Concatenation", - "type": "object" - }, - "Condition": { - "additionalProperties": false, - "description": "The physical or preservation condition of a heritage object or collection.\n\nCondition assessments document the state of preservation, conservation\nneeds, and handling requirements for heritage materials. Used to track\nobject condition over time and plan conservation interventions.\n\nMaps to schema:OfferItemCondition for interoperability with general\nitem condition vocabularies.\n\n**Migration (2026-01-18)**:\n- `condition_description` (inline attribute) \u2192 `has_or_had_description` slot with `Description` range\n- Per slot_fixes.yaml (Rule 53, 56)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Condition", - "type": "object" - }, - "ConditionAssessmentCategory": { - "additionalProperties": false, - "description": "Category for storage condition assessment (e.g. Good, Fair, Poor).", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ConditionAssessmentCategory", - "type": "object" - }, - "ConditionMapping": { - "additionalProperties": false, - "description": "Systematic recording of condition issues on diagrams or photographs.\nDocuments location and extent of damage, losses, and alterations.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ConditionMapping", - "type": "object" - }, - "ConditionPolicy": { - "additionalProperties": false, - "description": "Policy specifying required conditions for heritage materials.\n**DEFINITION**:\nA ConditionPolicy defines normative environmental, handling, or\npreservation conditions that SHOULD be maintained. This contrasts\nwith Condition classes which describe ACTUAL observed states.\n**SUBCLASSES**:\n- **StorageConditionPolicy**: Conditions for storage facilities\n- **DisplayConditionPolicy**: Conditions for exhibition display\n- **TransportConditionPolicy**: Conditions during transit\n- **LoanConditionPolicy**: Conditions required for loans\n**POLICY vs OBSERVATION PATTERN**:\n```\nHeritage Object\n \u2502\n \u251c\u2500\u2500 has_or_had_policy \u2192 ConditionPolicy (what SHOULD be)\n \u2502 \u251c\u2500\u2500 policy_name: \"Conservation-grade storage\"\n \u2502 \u251c\u2500\u2500 temperature_setpoint: 18\u00b0C \u00b12\u00b0C\n \u2502 \u2514\u2500\u2500 humidity_setpoint: 50% \u00b15%\n \u2502\n \u2514\u2500\u2500 has_or_had_condition \u2192 Condition (what IS)\n \u251c\u2500\u2500 temperature: 22\u00b0C \u2717 (exceeds policy)\n \u2514\u2500\u2500 humidity: 48% \u2713 (within policy)\n```\n**USE CASES**:\n1. **Storage Policy**: Climate requirements for archive storage\n2. **Loan Policy**: Conditions required before lending objects\n3. **Display Policy**: Light and climate limits for exhibition\n4. **Handling Policy**: Environmental controls during movement\nCreated as part of condition_policy migration per slot_fixes.yaml (Rule 53).", - "properties": { - "is_or_was_approved_by": { - "description": "The agent (person or organization) that approved or authorized something.\n**SEMANTIC PATTERN**:\nThis slot follows the RiC-O temporal predicate pattern (is_or_was_*) to indicate that approval is a historical event - something was approved by someone at some point in time.\n**REPLACES**:\n- `approved_by` - Simple string field for approver name\n**RANGE OPTIONS**:\n- string: Simple approver name (backwards compatible) - Approver: Structured approver with identity link\nClasses should use slot_usage to specify appropriate range.", - "type": [ - "string", - "null" - ] - }, - "is_or_was_effective_at": { - "description": "The date or timestamp when a policy, status, or entity became effective.\nMIGRATED from `effective_date`, `status_effective_date`, `policy_effective_date` per Rule 53. Follows RiC-O temporal naming convention.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "is_or_was_expired_at": { - "description": "The date or timestamp when a policy, status, or entity expired or ceased to be effective.\nMIGRATED from `policy_effective_to` per Rule 53. Follows RiC-O temporal naming convention.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "note": { - "description": "Optional notes about the extraction process.\nMay reference raw source files or explain any issues.\n", - "type": [ - "string", - "null" - ] - }, - "policy_description": { - "description": "Full description of the policy including rationale, scope, and any special considerations.\nMaps to dcterms:description for policy document descriptions.", - "type": [ - "string", - "null" - ] - }, - "policy_id": { - "description": "Unique identifier for a policy entity.\n\nUsed by:\n- AccessPolicy: access restrictions and permissions\n- StorageConditionPolicy: environmental conditions for storage\n- Other policy-related classes\n", - "type": [ - "string", - "null" - ] - }, - "policy_name": { - "description": "Human-readable name for a policy entity.\n\nExamples:\n- \"Restricted Access Policy\"\n- \"Climate-Controlled Storage Requirements\"\n- \"Public Domain Access\"\n", - "type": "string" - }, - "standards_compliance": { - "description": "Standards this policy is designed to meet.\n\nReference to StorageStandardEnum values.\n", - "items": { - "$ref": "#/$defs/StorageStandardEnum" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "policy_id", - "policy_name" - ], - "title": "ConditionPolicy", - "type": "object" - }, - "ConditionState": { - "additionalProperties": false, - "description": "The physical or preservation state of an object at a specific point in time.\nMaps to CIDOC-CRM E3 Condition State, which describes \"the physical condition\nof an object at a specific time, typically relevant for conservation.\"\n**USE CASES**:\n1. **Conservation Records**: Before/after treatment states\n - `initial_of_the_initial`: Pre-treatment condition\n - `final_of_the_final`: Post-treatment condition\n2. **Condition Assessments**: Periodic condition surveys\n3. **Loan Records**: Condition at departure/return\n**RELATION TO ConditionType**:\n- Uses `has_or_had_type` with `ConditionType` subclasses for classification\n- E.g., ExcellentCondition, GoodCondition, FairCondition, PoorCondition, CriticalCondition\n**TEMPORAL SEMANTICS**:\n- Each ConditionState instance represents a snapshot at a moment in time\n- Multiple states can be tracked for the same object over time\n**Migration (2026-01-22)**:\n- `condition_after` \u2192 `final_of_the_final` + `ConditionState`\n- `condition_before` \u2192 `initial_of_the_initial` + `ConditionState`\n- Per slot_fixes.yaml (Rule 53)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ConditionState", - "type": "object" - }, - "ConditionallyDeductible": { - "additionalProperties": false, - "description": "Tax-deductible only if specific conditions are met.\n\n**Examples**:\n- UK Gift Aid requiring donor declaration\n- Donations requiring donor to itemize deductions\n- Contributions requiring documentation threshold", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ConditionallyDeductible", - "type": "object" - }, - "ConferenceRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Conference proceedings.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ArchiveOfInternationalOrganization", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ArchiveOfInternationalOrganization custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ConferenceRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ConferenceRecordSeries", - "type": "object" - }, - "Confidence": { - "additionalProperties": false, - "description": "A confidence value or score.", - "properties": { - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Confidence", - "type": "object" - }, - "ConfidenceLevel": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n", - "type": "number" - } - }, - "required": [ - "has_or_had_score" - ], - "title": "ConfidenceLevel", - "type": "object" - }, - "ConfidenceMeasure": { - "additionalProperties": false, - "description": "Quantified confidence in a statement or observation.\nPROV-O extension for uncertainty representation.\n\n**Score Range**: 0.0 (uncertain) to 1.0 (certain)\n\n**Use Cases**:\n- NER extraction confidence\n- Fuzzy matching scores\n- Expert assessment certainty\n- Automated vs. manual curation", - "properties": { - "has_or_had_method": { - "description": "A method associated with an activity, process, or entity.\n\n**USAGE**:\nUsed for:\n- HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod\n- Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod\n- API interaction methods\n\n**BROADENED RANGE**:\nRange broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "maximum": 1.0, - "minimum": 0.0, - "type": "number" - }, - "type": "array" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_value" - ], - "title": "ConfidenceMeasure", - "type": "object" - }, - "ConfidenceMethod": { - "additionalProperties": false, - "description": "A method or algorithm used to calculate confidence scores.\n**USAGE**: Documents how confidence values were computed: - Fuzzy string matching algorithms - ML model predictions - Rule-based validation - XPath match verification - Human assessment\n**COMMON METHODS**: | Method | Description | |--------|-------------| | fuzzy_matching | Levenshtein, Jaro-Winkler, etc. | | xpath_validation | XPath match confidence | | llm_classification | LLM-based entity classification | | ml_prediction | Machine learning model output | | human_assessment | Manual quality assessment | | ensemble | Combined multiple methods |", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_type" - ], - "title": "ConfidenceMethod", - "type": "object" - }, - "ConfidenceScore": { - "additionalProperties": false, - "description": "A structured confidence score representing quality/certainty measurements.\n**MIGRATION**: Replaces simple `confidence_score` float slot with structured class: - `has_or_had_score`: The numeric value (0.0-1.0) - `has_or_had_method`: How confidence was calculated - `has_or_had_description`: Explanation of confidence assessment\n**USAGE**: - Process quality assessment (methodology confidence) - Match/similarity confidence (entity resolution) - Extraction confidence (NLP/XPath extraction) - Prediction confidence (ML model outputs)\n**RANGE**: 0.0 (low confidence) to 1.0 (high confidence)\n**ONTOLOGY MAPPING**: - sosa:hasSimpleResult for the score value - prov:value as close mapping", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_method": { - "description": "A method associated with an activity, process, or entity.\n\n**USAGE**:\nUsed for:\n- HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod\n- Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod\n- API interaction methods\n\n**BROADENED RANGE**:\nRange broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n", - "maximum": 1.0, - "minimum": 0.0, - "type": "number" - } - }, - "required": [ - "has_or_had_score" - ], - "title": "ConfidenceScore", - "type": "object" - }, - "ConfidenceThreshold": { - "additionalProperties": false, - "description": "A threshold value used in confidence-based processing or validation.\n\n**DEFINITION**:\n\nConfidenceThreshold captures the minimum (or maximum) confidence level\nrequired for an action or classification to be accepted. Common in:\n- NLP entity extraction pipelines\n- ML classification workflows\n- Automated data validation\n- Quality assurance checks\n\n**THRESHOLD TYPES**:\n\n- **CONFIDENCE**: Minimum confidence score for acceptance (0.0-1.0)\n- **PROBABILITY**: Probability threshold for classification\n- **QUALITY**: Minimum quality score for data acceptance\n- **SIMILARITY**: Minimum similarity score for matching\n\n**EXAMPLE**:\n```yaml\nhas_or_had_threshold:\n - threshold_value: 0.85\n threshold_type: CONFIDENCE\n threshold_description: \"Entity must have \u226585% confidence to be extracted\"\n - threshold_value: 0.70\n threshold_type: SIMILARITY\n threshold_description: \"Name matches require \u226570% similarity\"\n```\n\n**Migration (2026-01-22)**:\nCreated as part of confidence_threshold \u2192 has_or_had_threshold migration\nper slot_fixes.yaml (Rule 53).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "threshold_description": { - "description": "Human-readable description of what this threshold controls", - "type": [ - "string", - "null" - ] - }, - "threshold_operator": { - "description": "Comparison operator (GTE, LTE, GT, LT, EQ)", - "type": [ - "string", - "null" - ] - }, - "threshold_type": { - "description": "Type of threshold (CONFIDENCE, PROBABILITY, QUALITY, SIMILARITY)", - "type": [ - "string", - "null" - ] - }, - "threshold_value": { - "description": "The numeric threshold value (typically 0.0-1.0 for confidence)", - "type": "number" - } - }, - "required": [ - "threshold_value" - ], - "title": "ConfidenceThreshold", - "type": "object" - }, - "ConfidenceValue": { - "additionalProperties": false, - "description": "Confidence value.", - "properties": { - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ConfidenceValue", - "type": "object" - }, - "Conflict": { - "additionalProperties": false, - "description": "A conflict event affecting heritage custodians.\n\n**DEFINITION**:\n\nA Conflict represents an armed conflict, natural disaster, or other\ndestructive event that impacts heritage institutions. This class\ncaptures the CONFLICT ITSELF, while ConflictStatus captures the\nSTATUS of a specific custodian affected by the conflict.\n\n**SEMANTIC PATTERN**:\n\n```\nCustodian\n \u2502\n \u2514\u2500\u2500 is_or_was_involved_in \u2192 Conflict (THIS CLASS)\n \u251c\u2500\u2500 has_or_had_type \u2192 ConflictType (ARMED_CONFLICT, NATURAL_DISASTER, etc.)\n \u251c\u2500\u2500 has_or_had_label: \"Gaza War 2023-2024\"\n \u251c\u2500\u2500 temporal_extent \u2192 TimeSpan (duration of conflict)\n \u2514\u2500\u2500 involvement_status \u2192 ConflictStatus (status of THIS custodian)\n```\n\n**DISTINCTION FROM ConflictStatus**:\n- **Conflict** (THIS CLASS): The conflict event itself (e.g., \"Gaza War 2023\")\n- **ConflictStatus**: The status of a specific custodian (DESTROYED, DAMAGED, etc.)\n\nA single Conflict can affect multiple custodians, each with different statuses.\n\n**CIDOC-CRM ALIGNMENT**:\n- Primary: `crm:E5_Event` - \"comprises occurrences in spacetime that can be\n delimited within a defined extent of the spacetime\"\n- Specialization: `crm:E6_Destruction` when resulting in destruction\n\n**USE CASES**:\n\n1. **Gaza 2023-2024**: Armed conflict affecting 30+ heritage institutions\n2. **Syrian Civil War**: Ongoing conflict affecting museums and archives\n3. **Nepal Earthquake 2015**: Natural disaster affecting heritage sites\n4. **Iraq War**: Looting and destruction of cultural heritage\n\nCreated as part of conflict_status migration per slot_fixes.yaml (Rule 53).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_provenance": { - "anyOf": [ - { - "$ref": "#/$defs/Provenance" - }, - { - "type": "null" - } - ], - "description": "Provenance information for this data element.\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\nBroadened from ProvenanceBlock to uriorcurie to resolve OWL ambiguous type warnings. This allows classes to narrow via slot_usage to: - `ProvenanceBlock` for comprehensive provenance tracking - `SourceDocument` for source document references - String URIs for simple provenance references\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming follows RiC-O convention indicating that provenance associations can change over time: - Additional provenance may be added as data is enriched - Provenance may be updated when verification occurs - Historical provenance preserved through versioning\n**REPLACES**: - `all_data_real` (auto-generated stub, string range) - `is_or_was_real` (RealnessStatus typed class) - `has_all_data_real_flag` (boolean flag, no provenance) - `has_or_had_observation_source_document` (bespoke slot, Rule 55)\n**EXAMPLE**: ```yaml has_or_had_provenance:\n data_source: \"public_linkedin_profile\"\n extraction_date: \"2025-01-14T12:00:00Z\"\n confidence_score: 0.95\n note: \"Verified production data\"\n```" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "involvement_status": { - "anyOf": [ - { - "$ref": "#/$defs/ConflictStatus" - }, - { - "type": "null" - } - ], - "description": "The status of a specific custodian's involvement in this conflict.\nUses ConflictStatus class with DESTROYED, DAMAGED, THREATENED, etc.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_type" - ], - "title": "Conflict", - "type": "object" - }, - "ConflictStatus": { - "additionalProperties": false, - "description": "Represents the status of a heritage custodian affected by armed conflict,\nnatural disaster, or deliberate destruction.\n\n**PURPOSE**:\nDocuments the current condition of heritage institutions impacted by external\nforces beyond normal organizational dissolution. This is critical for:\n- Tracking heritage destruction in conflict zones (Gaza, Syria, Ukraine, Iraq)\n- Monitoring post-disaster recovery efforts\n- Supporting cultural heritage protection advocacy\n- Connecting with international monitoring organizations\n\n**DISTINCTION FROM DISSOLUTION**:\n- Normal dissolution (merger, closure) \u2192 Use `temporal_extent.end_of_the_end`\n- Involuntary destruction (conflict, disaster) \u2192 Use `conflict_status` + `time_of_destruction`\n\n**RELATIONSHIP TO time_of_destruction**:\n- `conflict_status`: Summary status object with description and sources\n- `time_of_destruction`: Detailed TimeSpan with fuzzy temporal bounds\n\n**DATA FLOW**:\n1. Source documents (reports, news) \u2192 `conflict_status` extraction\n2. `conflict_status.destruction_date` \u2192 `time_of_destruction.begin_of_the_end`\n3. Frontend displays both in CustodianTimeline component\n\n**EXAMPLE - Gaza Institution**:\n```yaml\nconflict_status:\n status: destroyed\n destruction_date: \"2023-12-08\"\n reported_date: \"2024-01-15\"\n description: \"Library destroyed by Israeli airstrike during Gaza conflict.\"\n is_rebuilding: false\n sources:\n - \"Librarians and Archivists with Palestine - Gaza Report 2024\"\n```\n\n**FRONTEND DISPLAY**:\n- CustodianTimeline.tsx shows \"\ud83d\udca5 Vernietigd\" or \"\ud83d\udca5 Vernietigd (herbouwend)\"\n- InstitutionInfoPanel.tsx passes destruction data to timeline\n- Color: Dark red for destroyed+defunct, orange for rebuilding\n\n**CIDOC-CRM ALIGNMENT**:\nModels the result of crm:E6_Destruction or crm:E11_Modification events.\nThe causing event is documented in OrganizationalChangeEvent.", - "properties": { - "conflict_description": { - "description": "Human-readable description of the destruction/damage event. Should include: - Type of damage (destroyed, damaged, looted) - Cause (airstrike, fire, looting, natural disaster) - Impact on collections (if known) ", - "type": [ - "string", - "null" - ] - }, - "destruction_date": { - "description": "Date when destruction/damage occurred. For single events, use exact date. For gradual destruction, use start of period. **Note**: For fuzzy temporal bounds, use `time_of_destruction` (TimeSpan). **Renamed**: Was 'date', renamed to 'destruction_date' to avoid collision with built-in 'date' type. ", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "has_or_had_documentation_source": { - "description": "List of sources documenting the destruction/damage. Include report names, news articles, official statements. These are displayed in the frontend for transparency. ", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_rebuilding": { - "description": "Whether the institution is currently being rebuilt or restored.\nWhen true, shows \"\ud83d\udca5 Vernietigd (herbouwend)\" in timeline.\nWhen false or absent, shows \"\ud83d\udca5 Vernietigd\" in timeline.\n", - "type": [ - "boolean", - "null" - ] - }, - "reported_date": { - "description": "Date when the destruction/damage was reported or documented. May differ from `destruction_date` when reports are delayed. Important for provenance tracking. ", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "status": { - "$ref": "#/$defs/ConflictStatusEnum", - "description": "The current status of the institution regarding conflict/disaster impact. Uses ConflictStatusEnum values: DESTROYED, DAMAGED, THREATENED, etc. " - } - }, - "required": [ - "status" - ], - "title": "ConflictStatus", - "type": "object" - }, - "ConflictStatusEnum": { - "description": "Status of heritage custodian affected by armed conflict, natural disaster, \nor deliberate destruction.\n\n**PURPOSE**:\nTracks the current condition of heritage institutions impacted by:\n- Armed conflict (Gaza 2023-2024, Syria, Ukraine, Iraq, Yemen)\n- Natural disasters (earthquakes, floods, fires)\n- Deliberate destruction (heritage crimes, arson)\n- State actions (forced demolition, closure)\n\n**RELATIONSHIP TO time_of_destruction**:\n- `conflict_status`: Summary status (DESTROYED, DAMAGED, etc.)\n- `time_of_destruction`: Detailed temporal evidence (TimeSpan with fuzzy bounds)\n\nBoth should be populated when documenting heritage destruction.\n\n**USE CASES**:\n\n1. **Gaza 2023-2024 Conflict**:\n - 30+ heritage institutions with documented destruction\n - Status: DESTROYED or DAMAGED\n \n2. **Rebuilding Institutions**:\n - Status: DESTROYED with `is_rebuilding: true`\n - Shows \"\ud83d\udca5 Destroyed (rebuilding)\" in UI\n \n3. **Threatened Sites**:\n - Active conflict zones with at-risk institutions\n - Status: THREATENED for monitoring\n\n**CIDOC-CRM ALIGNMENT**:\n- DESTROYED \u2192 crm:E6_Destruction occurred\n- DAMAGED \u2192 crm:E11_Modification (undesired) occurred", - "enum": [ - "DESTROYED", - "DAMAGED", - "THREATENED", - "LOOTED", - "OCCUPIED", - "INACCESSIBLE", - "RECOVERED", - "UNKNOWN" - ], - "title": "ConflictStatusEnum", - "type": "string" - }, - "CongregationalLifeCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for congregational life and community documentation.\n\n**Definition**:\nMaterials documenting the life and activities of the religious community \nbeyond formal governance and sacramental records. Includes organizational \nrecords of church societies, visual materials, and ephemera.\n\n**Typical Contents**:\n- Church society records (vrouwenvereniging, jeugdvereniging)\n- Sunday school records\n- Choir and music records\n- Church publications (kerkbladen)\n- Photographs and audiovisual materials\n- Anniversary and commemorative materials\n- Mission society records\n- Charitable organization records (diaconie)\n- Event programs and ephemera\n\n**Community Value**:\nThese records capture the lived religious experience of communities:\n- Social networks and community bonds\n- Religious education practices\n- Charitable activities\n- Cultural and musical traditions\n- Women's and youth involvement\n\n**RiC-O Alignment**:\nThis is a specialized RecordSetType that typically includes assembled \ncollections organized by society or activity type, alongside organic \nrecords from church organizations.", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the collection principle as defined by rico-rst:Collection. Typically includes assembled collections organized by society or activity type. Documentation value prioritized for ephemera and visual materials.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CongregationalLifeCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"parish registers\", \"governance records\", \"property records\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"society records\", \"sunday school records\", \"photographs\", \"publications\", \"mission records\", \"diaconal records\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "CongregationalLifeCollection", - "type": "object" - }, - "CongregationalRecordsSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Congregation documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ReligiousArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ReligiousArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CongregationalRecordsSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CongregationalRecordsSeries", - "type": "object" - }, - "ConservationEquipment": { - "additionalProperties": false, - "description": "Equipment used for conservation treatments.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ConservationEquipment", - "type": "object" - }, - "ConservationFocusedClassification": { - "additionalProperties": false, - "description": "Institution where conservation is the primary mission.\nBreeding programs, habitat preservation, species recovery.\n\n**Characteristics**:\n- Ex-situ conservation programs\n- Species reintroduction efforts\n- Genetic diversity preservation\n- Endangered species focus", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ConservationFocusedClassification", - "type": "object" - }, - "ConservationFunction": { - "additionalProperties": false, - "description": "Conservation function: object conservation, preventive care, environmental monitoring, conservation research.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "ConservationFunction", - "type": "object" - }, - "ConservationLab": { - "additionalProperties": false, - "description": "Conservation or restoration laboratory of a heritage custodian.\n\n**DEFINITION**:\n\nA ConservationLab is a specialized facility where conservation professionals\nperform preventive conservation, remedial treatment, and restoration of\nheritage materials. These labs require specialized equipment, climate control,\nand safety features for working with collection objects.\n\n**GETTY AAT ALIGNMENT**:\n\n`aat:300263557` (conservation laboratories) - \"Laboratories where objects,\ndocuments, works of art, or specimens are examined, tested, and treated\nfor preservation or restoration.\"\n\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Primary Function | Staff |\n|------|------------------|-------|\n| **ConservationLab** | Object treatment/preservation | Conservators |\n| ResearchCenter | Academic research | Researchers |\n| Storage | Collection housing | Collections staff |\n| AdministrativeOffice | Back-office operations | Admin staff |\n\n**TYPICAL CHARACTERISTICS**:\n\n- **Specialized equipment**: Microscopes, fume hoods, treatment tables\n- **Climate control**: Precise temperature/humidity for materials\n- **Safety features**: Ventilation, chemical storage, fire suppression\n- **Restricted access**: Conservation staff only (has_or_had_riskous materials)\n- **Documentation systems**: Treatment records, imaging equipment\n\n**CONSERVATION SPECIALIZATIONS**:\n\nLabs may specialize in specific material types:\n- Paper/book conservation (archives, libraries)\n- Paintings conservation (museums, galleries)\n- Textile conservation (costume, ethnographic collections)\n- Objects conservation (3D artifacts, sculpture)\n- Photographic conservation (film, prints, negatives)\n- Digital preservation (born-digital materials)\n\n**USE CASES**:\n\n1. **Museum Conservation Department**:\n ```yaml\n ConservationLab:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/rijksmuseum-conservation\"\n has_or_had_label:\n label_text: \"Rijksmuseum Conservation Studio\"\n conservation_specialization:\n - \"Paintings\"\n - \"Works on paper\"\n - \"Furniture\"\n has_imaging_equipment: true\n is_accredited: true\n ```\n\n2. **Archive Paper Conservation**:\n ```yaml\n ConservationLab:\n has_or_had_label:\n label_text: \"Nationaal Archief Restauratie Atelier\"\n conservation_specialization:\n - \"Paper\"\n - \"Parchment\"\n - \"Seals\"\n has_deacidification_facility: true\n ```\n\n**CIDOC-CRM ALIGNMENT**:\n\nConservation activities map to:\n- `crm:E11_Modification` - Physical changes to objects\n- `crm:E14_Condition_Assessment` - Documentation of condition\n- `crm:E79_Part_Addition` / `crm:E80_Part_Removal` - Treatment actions", - "properties": { - "accepts_or_accepted": { - "description": "Generic slot for things an institution accepts or has accepted.\n**TEMPORAL SEMANTICS** (RiC-O style): The \"accepts_or_accepted\" naming indicates policies can change: - Payment methods may be added/removed - External work acceptance policies change - Visiting scholar programs may start/end\n**USE CASES**: - Payment methods accepted (credit cards, cash, digital) - External work (conservation, digitization contracts) - Visiting scholars (research programs)\n**RANGE**: This is a generic slot - use slot_usage in classes to constrain the range to specific types (ExternalWork, PaymentMethod, VisitingScholar).", - "items": { - "$ref": "#/$defs/ExternalWork" - }, - "type": [ - "array", - "null" - ] - }, - "conservation_specialization": { - "description": "Material types or conservation specializations of this lab.\n\nSchema.org: knowsAbout for areas of expertise.\n\nCommon specializations:\n- Paper, Parchment, Books\n- Paintings, Works on paper\n- Textiles, Costume\n- Objects, Sculpture, Ceramics\n- Photographs, Film\n- Metals, Arms and armor\n- Furniture, Woodwork\n- Digital preservation\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_equipment": { - "description": "Equipment associated with a facility or process.", - "items": { - "$ref": "#/$defs/AVEquipment" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_accredited": { - "description": "Whether lab holds professional conservation accreditation.\n\nAccreditation bodies include:\n- AIC (American Institute for Conservation)\n- ICON (Institute of Conservation, UK)\n- VeRes (Dutch Restorers Association)\n", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "safety_certification": { - "description": "Safety certifications held by this laboratory.\n\nMay include:\n- Fire safety certification\n- Hazardous materials handling\n- Occupational health and safety\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ConservationLab", - "type": "object" - }, - "ConservationLabEnvironment": { - "additionalProperties": false, - "description": "Conservation laboratory or treatment area.\n\n**PURPOSE**: Climate-controlled workspace for conservation treatment,\nrather than long-term storage. Conditions may vary based on treatments.\n\n**TYPICAL CONDITIONS (EN 16893:2018)**:\n- Temperature: 18-22\u00b0C (target 20\u00b0C)\n- Relative humidity: 45-55% (target 50%)\n- Light: Task lighting, UV filtered\n- Ventilation: Enhanced for treatment fumes\n\n**EN 16893:2018 WORKSPACE REQUIREMENTS**:\n- Stable conditions for treatment work\n- Adequate ventilation for solvents and adhesives\n- Flexible climate control for specific treatments\n\n**FEATURES**:\n- Fume extraction systems\n- Task lighting (adjustable)\n- Examination equipment\n- Treatment benches\n- Water and drainage access\n\n**STANDARD REFERENCES**:\n- EN 16893:2018 - Conservation of cultural heritage - Storage specifications\n- BS 4971:2017 - Conservation and care of archive/library collections\n\n**NOTE**: This is a workspace, not storage. Objects should not\nremain in lab environment longer than necessary for treatment.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "CONSERVATION_LAB", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard": { - "description": "Reference to applicable ISO or EN standard for this environmental zone type.\n\nFormat: Standard identifier (e.g., \"ISO 11799\", \"ISO 18911\", \"EN 16893\")\n\nCommon preservation standards:\n- ISO 11799: Document storage requirements\n- ISO 18911: Film storage practices\n- ISO 18934: Multiple media archives storage\n- EN 16893: Heritage collection storage buildings\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "max_annual_light_exposure": { - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "requires_dark_storage": { - "description": "Whether dark (zero light) storage is required for this environmental zone.\n\nBased on ISO preservation standards:\n- Film storage (ISO 18911): Dark storage mandatory\n- Photographic (ISO 18920): Dark storage for extended-term\n- UK Archives (BS 4971): 0 lux for closed storage\n\nDark storage essential for:\n- Film negatives (especially color and early nitrate/acetate)\n- Daguerreotypes and early photographic processes\n- Cyanotypes and blueprint materials\n- Some magnetic media (tape)\n- Highly fugitive inks and dyes\n\nAccess provided through reading rooms or digitization requests.\nCumulative light damage is completely prevented.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_dust_free": { - "description": "Whether a dust-free or dust-controlled environment is required for this zone.\n\nBased on ISO preservation standards:\n- Magnetic tape (ISO 18923): Dust-free mandatory\n- Optical media (ISO 18938): Cleanroom for masters\n- Archives (ISO 11799): Dust control required\n\nISO 14644-1 Cleanliness Classes:\n- Class 8: General archive/museum (HEPA filtered)\n- Class 7: AV media storage (positive pressure)\n- Class 5: Digital master storage (cleanroom)\n\nDust-free essential for:\n- Magnetic tapes and audiovisual media\n- Optical discs (CD, DVD, Blu-ray)\n- Fine art and paintings (surface abrasion)\n- Photographic materials (scratches, embedded particles)\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_esd_protection": { - "description": "Whether electrostatic discharge (ESD) protection is required for this zone.\n\nBased on ISO/IEC standards:\n- Magnetic tape (ISO 18923): ESD protection required\n- Optical media (ISO 18938): ESD-safe handling mandatory\n- Electronics (IEC 61340-5-1): ESD control program\n\nESD protection measures include:\n- Conductive/dissipative flooring\n- Humidity control (40-60% RH reduces static)\n- ESD-safe packaging and equipment\n- Personnel grounding (wrist straps)\n\nESD protection essential for:\n- Hard drives and SSDs\n- LTO and other magnetic tapes\n- Optical media (CD, DVD, Blu-ray masters)\n- Electronic components and circuit boards\n- Born-digital heritage collections\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_uv_filter": { - "description": "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \u00b5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label", - "has_or_had_description" - ], - "title": "ConservationLabEnvironment", - "type": "object" - }, - "ConservationRecord": { - "additionalProperties": false, - "description": "A record of condition assessment, conservation treatment, or technical examination\nperformed on a heritage object.\n\nModels THREE types of conservation documentation:\n\n1. **Condition Assessment**: Periodic evaluation of object state\n2. **Treatment Record**: Documentation of conservation intervention\n3. **Technical Examination**: Scientific analysis (imaging, spectroscopy)\n\n**Key Distinction**:\n\n| Concept | Class | Description |\n|---------|-------|-------------|\n| Object metadata | ExhibitedObject | Basic object information |\n| Ownership history | ProvenanceEvent | Custody transfers |\n| **Physical state/treatment** | **ConservationRecord** | **Condition and conservation** |\n| Loan documentation | Loan | Custody for loans |\n\n- **CIDOC-CRM**: crm:E14_Condition_Assessment (for assessments)\n \"The activity of assessing the condition of an object.\"\n- **CIDOC-CRM**: crm:E11_Modification (for treatments)\n \"The action of modifying physical features of an object.\"\n- **Schema.org**: schema:HowTo (treatment procedures)\n\n**SPECTRUM Alignment**:\n\nAligns with SPECTRUM procedures:\n- Object Condition Checking\n- Conservation and Collection Care\n- Risk Management\n\n**Example**:\n\n1994 restoration of \"Girl with a Pearl Earring\":\n- record_type: TREATMENT\n- condition_before: FAIR (yellowed varnish, dirt)\n- condition_after: EXCELLENT\n- treatment_description: Cleaning, varnish removal, retouching\n- conservator: Dr. J\u00f8rgen Wadum", - "properties": { - "conservation_lab": { - "description": "Whether the museum has an in-house conservation laboratory for object preservation.\nTrue = has conservation facilities, False = outsources conservation.\n", - "type": [ - "string", - "null" - ] - }, - "conservation_note": { - "description": "Additional notes about the conservation record.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "conservator": { - "description": "Name(s) of conservator(s) who performed the work.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "conservator_affiliation": { - "description": "Institutional has_or_had_affiliation of the conservator.\n", - "type": [ - "string", - "null" - ] - }, - "cost": { - "description": "Cost of conservation treatment.\n", - "type": [ - "number", - "null" - ] - }, - "cost_currency": { - "description": "Currency code for cost (ISO 4217).\n", - "type": [ - "string", - "null" - ] - }, - "final_of_the_final": { - "anyOf": [ - { - "$ref": "#/$defs/ConditionState" - }, - { - "type": "null" - } - ], - "description": "The state or condition at the end of a process or activity.\n\nCIDOC-CRM pattern for capturing the final state after an event:\n- Conservation treatment \u2192 final condition state\n- Restoration \u2192 final preservation state\n- Processing \u2192 final outcome\n\n**SEMANTIC MEANING**:\nRefers to the state observed at the final moment of a process,\nanalogous to CIDOC-CRM's E3 Condition State with P5 consists of.\n\n**TEMPORAL SEMANTICS**:\n- The state AFTER something has occurred\n- Paired with `initial_of_the_initial` for before/after comparisons\n\n**Migration (2026-01-22)**:\n- `condition_after` \u2192 `final_of_the_final` + `ConditionState`\n- Per slot_fixes.yaml (Rule 53)\n" - }, - "has_or_had_condition": { - "description": "A condition or state associated with an entity.\n\n**USAGE**:\nUsed for:\n- Physical condition of objects\n- Service conditions/requirements\n- Access conditions\n\n**Migration (2026-01-18)**:\nThis slot now replaces `condition_description` per slot_fixes.yaml.\nUse with Condition class which has `has_or_had_description` for textual descriptions.\n", - "items": { - "$ref": "#/$defs/Condition", - "anyOf": [ - { - "$ref": "#/$defs/Condition" - }, - { - "$ref": "#/$defs/EnvironmentalCondition" - } - ] - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_treatment": { - "description": "A treatment or intervention applied to an entity.\n\n**USAGE**:\nUsed for:\n- Conservation treatments\n- Processing descriptions\n- Handling instructions\n", - "items": { - "$ref": "#/$defs/Treatment" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "indicates_or_indicated": { - "anyOf": [ - { - "$ref": "#/$defs/ConservationReview" - }, - { - "type": "null" - } - ], - "description": "Links an entity (e.g., an analysis or enrichment) to what it indicates or signifies.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"indicatesOrIndicated\" naming follows RiC-O convention indicating this relationship\nmay be historical.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:generated` - if the indication is a result\n- **Related**: `schema:result`\n\n**Usage**:\nUsed to link enrichments (like WhatsAppEnrichment) to the assessment result\n(DigitalProfessionalAssessment).\n\n**Pattern**:\n```\nWhatsAppEnrichment\n \u2514\u2500\u2500 indicates_or_indicated \u2192 DigitalProfessionalAssessment\n \u251c\u2500\u2500 estimates_or_estimated \u2192 DigitalConfidence\n \u2514\u2500\u2500 emphasizes_or_emphasized \u2192 DigitalProficiency\n```\n\n**Migrated From** (per slot_fixes.yaml):\n- `digital_professional` \u2192 indicates_or_indicated + DigitalProficiency/Assessment\n\n**Cardinality**:\nSingle or multivalued depending on context.\n" - }, - "initial_of_the_initial": { - "anyOf": [ - { - "$ref": "#/$defs/ConditionState" - }, - { - "type": "null" - } - ], - "description": "The state or condition at the beginning of a process or activity.\n\nCIDOC-CRM pattern for capturing the initial state before an event:\n- Conservation treatment \u2192 initial condition state\n- Restoration \u2192 initial preservation state\n- Processing \u2192 initial state\n\n**SEMANTIC MEANING**:\nRefers to the state observed at the initial moment of a process,\nanalogous to CIDOC-CRM's E3 Condition State with P5 consists of.\n\n**TEMPORAL SEMANTICS**:\n- The state BEFORE something has occurred\n- Paired with `final_of_the_final` for before/after comparisons\n\n**Migration (2026-01-22)**:\n- `condition_before` \u2192 `initial_of_the_initial` + `ConditionState`\n- Per slot_fixes.yaml (Rule 53)\n" - }, - "materials_used": { - "description": "Materials and supplies used in treatment.\nCritical for reversibility and future treatments.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "object_ref": { - "description": "Reference to the object this provenance event concerns.\n\nCIDOC-CRM: P24_transferred_title_of - \"identifies the E18 Physical Thing\nwhose legal ownership was transferred.\"\n", - "type": "string" - }, - "photograph": { - "description": "URLs to conservation photographs (before, during, after treatment).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "recommendation": { - "description": "Recommendations for future care, display, or treatment.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_date": { - "description": "Date the assessment, treatment, or examination was performed.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "record_id": { - "description": "Unique identifier for this conservation record.\nFormat: https://nde.nl/ontology/hc/conservation/{object-slug}-{year}-{seq}\n", - "type": "string" - }, - "record_timespan": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Full temporal extent of the conservation activity.\nUse for treatments spanning multiple dates.\n" - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": "string" - }, - "related_loan": { - "description": "Loan associated with this condition record (for loan condition checks).\n", - "type": [ - "string", - "null" - ] - }, - "report_document": { - "description": "Bibliographic citation for published conservation report or article.\n", - "type": [ - "string", - "null" - ] - }, - "report_url": { - "description": "URL to full conservation report (PDF or web page).\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "uses_or_used_technique": { - "description": "Techniques used in an activity such as conservation treatment, production, or research.\n\nRange is broadened to uriorcurie per Rule 55, allowing slot_usage to narrow\nto structured Technique class instances.\n\nCIDOC-CRM: \"This property identifies the general technique or method, a\nstandardised procedure, employed in carrying out an activity.\"\n", - "items": { - "$ref": "#/$defs/Technique" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "object_ref", - "record_id", - "record_type" - ], - "title": "ConservationRecord", - "type": "object" - }, - "ConservationReview": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "ConservationReview", - "type": "object" - }, - "ConservationService": { - "additionalProperties": false, - "description": "Conservation and restoration services.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ConservationService", - "type": "object" - }, - "ConservationStatusEnum": { - "description": "Condition states for heritage objects used in conservation assessments.\n\nCombines two dimensions:\n1. **Overall Condition Grade**: EXCELLENT \u2192 CRITICAL (5-point scale)\n2. **Stability Assessment**: STABLE, UNSTABLE, DETERIORATING\n3. **Treatment Status**: Workflow states for conservation work\n\n**SPECTRUM Alignment**:\n\nAligns with SPECTRUM Object Condition Checking procedure terminology\nfor recording object condition before and after movement or treatment.\n\n**AIC/AAT Alignment**:\n\nMaps to Getty AAT condition terms and American Institute for\nConservation condition reporting standards.\n\n**Example Assessment Workflow**:\n\n```\nNew acquisition \u2192 Condition assessment: GOOD + STABLE\n \u2193\nLoan request \u2192 Detailed examination: FAIR + STABLE (acceptable for loan)\n \u2193\nPost-loan \u2192 Return inspection: FAIR + STABLE (unchanged)\n```", - "enum": [ - "EXCELLENT", - "GOOD", - "FAIR", - "POOR", - "CRITICAL", - "STABLE", - "UNSTABLE", - "DETERIORATING", - "TREATMENT_REQUIRED", - "UNDER_TREATMENT", - "TREATMENT_COMPLETED", - "EXAMINATION_REQUIRED", - "UNDER_EXAMINATION", - "NOT_EXAMINED", - "CONDITION_UNKNOWN" - ], - "title": "ConservationStatusEnum", - "type": "string" - }, - "Conservator": { - "additionalProperties": false, - "description": "Conservator specializing in preservation and restoration of heritage objects.\n\n**Official Title vs De Facto Work**:\nWhile formally focused on physical treatment of objects, conservators\noften conduct research, train staff, advise on storage, and participate\nin exhibition planning.\n\n**Common Variants**:\n- Senior Conservator\n- Assistant Conservator\n- Head of Conservation\n- Paintings Conservator\n- Paper Conservator\n- Objects Conservator\n- Textile Conservator\n- Photograph Conservator\n- Preventive Conservator\n- Time-Based Media Conservator\n\n**Typical Domains**: Museums, archives, libraries\n\n**Specializations**:\n- Paintings (oils, acrylics, murals)\n- Works on paper (prints, drawings, manuscripts)\n- Objects (sculpture, decorative arts, ethnographic)\n- Textiles (costumes, tapestries, flags)\n- Photographs\n- Time-based media (video, audio, digital art)\n- Preventive (environmental monitoring, IPM)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Conservator", - "type": "object" - }, - "ConsolidationTechnique": { - "additionalProperties": false, - "description": "Techniques for stabilizing friable, flaking, or powdering materials.\nInvolves introducing adhesive to strengthen cohesion.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ConsolidationTechnique", - "type": "object" - }, - "ConsortiumGovernanceRoleEnum": { - "description": "Role a contributing agency plays in consortium governance.\n\nConsortium governance models vary, but typically include:\n- Voting members with equal representation\n- Observers who participate without voting\n- Founding members with special status\n- Associates with limited participation", - "enum": [ - "VOTING_MEMBER", - "OBSERVER", - "FOUNDING_MEMBER", - "ASSOCIATE", - "REGIONAL_REPRESENTATIVE" - ], - "title": "ConsortiumGovernanceRoleEnum", - "type": "string" - }, - "ConstructionDocumentCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Construction documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ArchivesForBuildingRecords", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ArchivesForBuildingRecords custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ConstructionDocumentCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ConstructionDocumentCollection", - "type": "object" - }, - "Consultant": { - "additionalProperties": false, - "description": "Consultant providing external expertise on specific projects.\n\n**Official Title vs De Facto Work**:\nScope varies widely based on engagement - may provide\nstrategic advice, implementation support, or training.\n\n**Common Variants**:\n- Management Consultant\n- Technology Consultant\n- Collections Consultant\n- Project Consultant\n\n**Typical Domains**: All heritage institutions\n\n**Typical Responsibilities**:\n- Expert assessment\n- Recommendations development\n- Implementation support\n- Training delivery\n- Project management", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Consultant", - "type": "object" - }, - "ContactClaim": { - "additionalProperties": false, - "description": "Claim types for contact information.\nIncludes email, phone, and general contact methods.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ContactClaim", - "type": "object" - }, - "ContactDetails": { - "additionalProperties": false, - "description": "Structured contact information for an entity.\n**Ontology Alignment**: - **Primary**: `schema:ContactPoint` - **Close**: `vcard:VCard`", - "properties": { - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ContactDetails", - "type": "object" - }, - "Container": { - "additionalProperties": false, - "description": "Root container class for Heritage Custodian data instances. Provides tree_root for LinkML instance validation.\nThis container supports all primary entity types for batch validation: - Core custodian entities (Custodian, observations, names, legal statuses) - Place and collection aspects (CustodianPlace, CustodianCollection) - Organizational structures (OrganizationalStructure) - Reconstruction activities (ReconstructionActivity) - Registration entities (Jurisdiction, TradeRegister, RegistrationAuthority, RegistrationNumber) - Standards ecosystem (StandardsOrganization, Standard, AllocationAgency, IdentifierFormat)\nOntology mapping rationale: - class_uri is prov:Collection because this is a container aggregating\n multiple heritage custodian entities for validation purposes\n- This is a TECHNICAL class for LinkML validation (tree_root: true)\n and should be EXCLUDED from UML visualizations per Rule 4\n- related_mappings includes schema:Dataset as this aggregates data records", - "properties": { - "allocation_agencies": { - "description": "Collection of allocation agencies (KB, OCLC, Nationaal Archief, etc.).\nAgencies that allocate identifiers locally within geographic/domain scope.\n", - "items": { - "$ref": "#/$defs/AllocationAgency" - }, - "type": [ - "array", - "null" - ] - }, - "collections": { - "description": "Collection of specific, inventoried heritage holdings.\nRepresents SPECIFIC, CATALOGUED holdings within a heritage custodian.\nDistinct from CustodianCollection (abstract/nominal reference).\n", - "items": { - "$ref": "#/$defs/Collection" - }, - "type": [ - "array", - "null" - ] - }, - "countries": { - "description": "Collection of countries (ISO 3166-1).\nUsed for geographic scope of standards and allocation agencies.\n", - "items": { - "$ref": "#/$defs/Country" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_collections": { - "description": "Collection of heritage collections", - "items": { - "$ref": "#/$defs/CustodianCollection" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_identifiers": { - "description": "Collection of custodian identifiers (ISIL, ISNI, Wikidata, VIAF, etc.).\nExternal identifiers with full provenance tracking.\n", - "items": { - "$ref": "#/$defs/CustodianIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_legal_statuses": { - "description": "Collection of custodian legal entities", - "items": { - "$ref": "#/$defs/CustodianLegalStatus" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_places": { - "description": "Collection of custodian place designations", - "items": { - "$ref": "#/$defs/CustodianPlace" - }, - "type": [ - "array", - "null" - ] - }, - "digital_platforms": { - "description": "Collection of digital platforms (websites, portals, repositories).\nPrimary owned digital presence.\n", - "items": { - "$ref": "#/$defs/DigitalPlatform" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_custodian": { - "description": "Collection of custodian hub entities", - "items": { - "$ref": "#/$defs/Custodian" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_custodian_name": { - "description": "Collection of custodian standardized names", - "items": { - "$ref": "#/$defs/CustodianName" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_custodian_observation": { - "description": "Collection of custodian observations", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_finding_aid": { - "description": "Collection of finding aids (inventories, catalogs, guides, indexes, databases).\nReplaces simple finding_aid_url strings with rich metadata objects.\n", - "items": { - "$ref": "#/$defs/FindingAid" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Collection of registration numbers", - "items": { - "$ref": "#/$defs/RegistrationNumber" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_iot_device": { - "description": "Collection of IoT devices (beacons, sensors, kiosks).\nPhysical-digital bridge devices in heritage venues.\n", - "items": { - "$ref": "#/$defs/InternetOfThings" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_reconstruction_activity": { - "description": "Collection of reconstruction activities", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_section": { - "description": "Collection of organizational structure trees", - "items": { - "$ref": "#/$defs/OrganizationalStructure" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_social_media_profile": { - "description": "Collection of social media profiles (Instagram, Facebook, X, etc.).\nThird-party digital presence on external platforms.\n", - "items": { - "$ref": "#/$defs/SocialMediaProfile" - }, - "type": [ - "array", - "null" - ] - }, - "identifier_formats": { - "description": "Collection of identifier format variants.\nFormat variants for standards (ISNI with/without spaces, etc.).\n", - "items": { - "$ref": "#/$defs/IdentifierFormat" - }, - "type": [ - "array", - "null" - ] - }, - "jurisdictions": { - "description": "Collection of legal/administrative jurisdictions", - "items": { - "$ref": "#/$defs/Jurisdiction" - }, - "type": [ - "array", - "null" - ] - }, - "registration_authorities": { - "description": "Collection of registration authorities", - "items": { - "$ref": "#/$defs/RegistrationAuthority" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "standards": { - "description": "Collection of identifier standards (ISIL, ISNI, VIAF, etc.).\nStandards define identifier formats, registration authorities, and lookup URLs.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "standards_organizations": { - "description": "Collection of standards organizations (ISO, W3C, OCLC, etc.).\nOrganizations that define and maintain identifier standards.\n", - "items": { - "$ref": "#/$defs/StandardsOrganization" - }, - "type": [ - "array", - "null" - ] - }, - "subregions": { - "description": "Collection of subregions (ISO 3166-2).\nUsed for subnational geographic scope.\n", - "items": { - "$ref": "#/$defs/Subregion" - }, - "type": [ - "array", - "null" - ] - }, - "trade_registers": { - "description": "Collection of trade/business registers", - "items": { - "$ref": "#/$defs/TradeRegister" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Container", - "type": "object" - }, - "ContainerPlatform": { - "additionalProperties": false, - "description": "Container orchestration platform.\nExamples: Docker, Kubernetes, Podman, Docker Swarm", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ContainerPlatform", - "type": "object" - }, - "Content": { - "additionalProperties": false, - "description": "The intellectual content described by or contained in heritage materials.\n\n**Purpose**:\nCaptures what a collection, document, archive, or other heritage material is ABOUT,\nincluding its temporal coverage, spatial coverage, and subject matter.\n\n**Ontological Alignment**:\n- **RiC-O**: `rico:RecordSetType` for archival content characterization\n- **Dublin Core**: Maps to `dcterms:coverage` (temporal/spatial/topical)\n- **CIDOC-CRM**: Relates to `E73_Information_Object` conceptual content\n\n**Key Slots**:\n\n| Slot | Purpose |\n|------|---------|\n| `temporal_extent` | Time period the content covers (via TimeSpan) |\n| `has_or_had_label` | Content label/title |\n| `has_or_had_description` | Detailed description of content |\n\n**Distinction from temporal_extent**:\n- `temporal_extent` on Content = what time period the CONTENT covers\n- `temporal_extent` on Activity = how long the activity lasted\n\n**Example**:\nA collection of VOC trade records might have Content with:\n- temporal_extent: 1602-1799 (the period covered by the records)\n- has_or_had_label: \"Dutch East India Company Trade Records\"\n- has_or_had_description: \"Shipping manifests, correspondence, and financial records...\"\n\n**Migrated From**: temporal_coverage slot (2026-01-16) per Rule 53/56\n\n**Updated 2026-01-23**: Added has_or_had_type for ContentType per F25 migration", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "Content", - "type": "object" - }, - "ContentDispositionEnum": { - "description": "HTTP Content-Disposition header behavior options.", - "enum": [ - "INLINE", - "ATTACHMENT", - "CONFIGURABLE" - ], - "title": "ContentDispositionEnum", - "type": "string" - }, - "ContentManagementSystem": { - "additionalProperties": false, - "description": "Web content management system.\nExamples: WordPress, Drupal, Typo3, Omeka", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ContentManagementSystem", - "type": "object" - }, - "ContributingAgency": { - "additionalProperties": false, - "description": "An organization that contributes authority data to a consortium-type identifier service. **Primary Use Case: VIAF** VIAF (Virtual International Authority File) is an aggregation service that clusters matching authority records from 37 contributing agencies across 29 countries. Each contributor provides: 1. **Authority records**: MARC21 or UNIMARC authority data 2. **Local identifiers**: Their national authority file IDs 3. **Regular updates**: Periodic batch uploads or OAI-PMH feeds VIAF then: - Clusters matching records using algorithms - Assigns VIAF IDs to each cluster - Links back to all source records **CORRECT MODEL: OCLC is the Organization, VIAF is the Service** The relationship chain: 1. **OCLC** (StandardsOrganization, type: LIBRARY_COOPERATIVE): The operating organization 2. **VIAF** (Standard, type: CONSORTIUM_SERVICE): The service operated by OCLC 3. **VIAF Council** (StandardsOrganization, type: GOVERNANCE_COUNCIL): Advisory body 4. **ContributingAgency**: Members of OCLC that contribute to VIAF **Key Properties:** - `member_of` -> OCLC (the organization, NOT \"VIAF Consortium\") - `contributes_to` -> VIAF (the service) - `governance_role` -> FOUNDING_MEMBER | VOTING_MEMBER (role in VIAF Council) **Dual Role of National Libraries** Many national libraries serve as BOTH: - **ContributingAgency**: Provide authority records (e.g., NTA to VIAF) - **AllocationAgency**: Allocate national identifiers (e.g., ISIL codes) These are conceptually different roles, though often performed by the same organization. **VIAF Contributors (as of 2024)** | Abbreviation | Organization | Country | |--------------|--------------|---------| | LC | Library of Congress | US | | DNB | Deutsche Nationalbibliothek | DE | | BnF | Bibliotheque nationale de France | FR | | NTA | National Library of the Netherlands | NL | | BNE | Biblioteca Nacional de Espana | ES | | ICCU | Istituto Centrale per il Catalogo Unico | IT | | NDL | National Diet Library | JP | | NLA | National Library of Australia | AU | | NLI | National Library of Israel | IL | | SWNL | Swiss National Library | CH | | ... | (37 total contributors) | | **Ontology Alignment** - org:FormalOrganization - W3C Organization Ontology - org:memberOf - Relationship to OCLC (the organization) - prov:Agent - PROV-O (as data contributor) - dcat:Catalog - DCAT (authority file as catalog)", - "properties": { - "contributes_or_contributed": { - "anyOf": [ - { - "$ref": "#/$defs/AuthorityData" - }, - { - "type": "null" - } - ], - "description": "Contributes data or resources." - }, - "contributes_to": { - "description": "Consortium services this agency contributes to.\n\nPrimary: VIAF\nAlso possible: WorldCat, ISNI (via national ISNI agency)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "contribution_start_date": { - "description": "Date when this agency started contributing to the service.\n\n**VIAF:** Launched in 2003; early contributors joined 2003-2012.\n**WorldCat:** OCLC members contributing since 1967.\n**ISNI:** Operational since 2012.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "country": { - "$ref": "#/$defs/Country", - "description": "Country of the contributing agency (ISO 3166-1 alpha-2). Examples: \"US\", \"DE\", \"FR\", \"NL\", \"ES\", \"IT\", \"JP\" " - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_role": { - "anyOf": [ - { - "$ref": "#/$defs/GovernanceRole" - }, - { - "type": "null" - } - ], - "description": "Role of an entity in a context (author role, agent role, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's role may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:roleName` - Schema.org role name\n- **Exact**: `org:role` - W3C Org role\n- **Close**: `prov:hadRole` - PROV-O role in activity\n\n**Usage**:\nFor authors: role in creating a work (AUTHOR, EDITOR, TRANSLATOR)\nFor agents: role in an activity or event\nFor participants: role in a project or organization\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow enum or class values.\nClasses may narrow via slot_usage to specific Role enums or classes.\n" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "type": [ - "string", - "null" - ] - }, - "id": { - "description": "Unique identifier for this contributing agency. Recommended format: lowercase has_or_had_abbreviation matching VIAF contributor code. Examples: \"lc\", \"dnb\", \"bnf\", \"nta\", \"bne\", \"iccu\", \"ndl\" ", - "type": "string" - }, - "is_active": { - "description": "Whether this temporary location is currently active.\n\nTRUE: Currently operational\nFALSE: Closed/ended or not yet started\n\nComputed from actual_start/actual_end dates.\n", - "type": "boolean" - }, - "is_or_was_also_allocation_agency": { - "description": "Indicates entity also serves as an allocation agency (e.g., for ISIL codes). Boolean flag for institutions that can issue identifiers.", - "type": [ - "string", - "null" - ] - }, - "is_or_was_represented_by": { - "description": "The agent that represents or represented this entity.", - "items": { - "$ref": "#/$defs/Agent" - }, - "type": [ - "array", - "null" - ] - }, - "member_of": { - "description": "The organization this entity is a member of.\n\n**Key Conceptual Distinction:**\n\n- Organization is the ORGANIZATION (e.g., OCLC is a StandardsOrganization)\n- Services are SERVICES operated by organizations (e.g., VIAF is a service)\n\nThere is no separate \"VIAF Consortium\" organization. The VIAF Council is an\nadvisory body WITHIN OCLC's governance structure.\n\n**Relationship Chain:**\n\nContributingAgency (e.g., KB/NTA)\n - member_of -> OCLC (organization)\n - contributes_to -> VIAF (service)\n - governance_role -> VOTING_MEMBER (council role)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "name": { - "description": "Full English name of the contributing agency. Examples: - \"Library of Congress\" - \"German National Library\" - \"National Library of France\" - \"National Library of the Netherlands\" ", - "type": "string" - }, - "provides_or_provided": { - "description": "Relates an agent or service to the resource or service it provides.\nMIGRATED from `entity_types_covered` (via ContributingAgency) and `funding_program` (via OfficialInstitutionType).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_format": { - "$ref": "#/$defs/AuthorityRecordFormatEnum", - "description": "Format of authority records contributed.\n\nValues:\n- MARC21_AUTHORITY: MARC21 authority format\n- UNIMARC_AUTHORITY: UNIMARC authority format\n- RDF: RDF/Linked Data\n- PROPRIETARY: Custom format\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "record_format", - "contributes_to", - "is_active", - "id", - "name", - "country" - ], - "title": "ContributingAgency", - "type": "object" - }, - "ConversionRate": { - "additionalProperties": false, - "description": "Structured representation of a conversion rate metric for heritage institutions.\n**WHY A DEDICATED CLASS?**\nConversion rates are more than simple floats - they need: - **Type**: What kind of conversion (visitor-to-purchase, visitor-to-member) - **Value**: The actual percentage (0.35 = 35%) - **Time Period**: When this rate was measured - **Context**: Comparison benchmarks, notes\n**SLOT_FIXES.YAML REVISION** (lines 1646-1669): - Branch 1: has_or_had_type \u2192 ConversionRateType/ConversionRateTypes - Branch 2: temporal_extent \u2192 TimeSpan (measurement period)\n**USE CASES**: - Gift shop performance: 35% visitor-to-purchase conversion - Membership drives: 5% visitor-to-member conversion - Digital engagement: 3% website-to-visit conversion\n**ONTOLOGY MAPPING**: - class_uri: schema:QuantitativeValue (numeric measurement) - Uses schema:interactionStatistic for behavioral metrics", - "properties": { - "benchmark_comparison": { - "description": "How this rate compares to industry benchmarks. Examples: \"Above average\", \"Top quartile\", \"Below benchmark\"", - "type": [ - "string", - "null" - ] - }, - "converted_count": { - "description": "The number of successful conversions (numerator). Required for statistical significance assessment.", - "type": [ - "integer", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "measurement_period_description": { - "description": "Human-readable description of the measurement period. Examples: \"Q1 2025\", \"Calendar Year 2024\", \"Exhibition period\"", - "type": [ - "string", - "null" - ] - }, - "notes": { - "description": "Additional context about this conversion rate measurement. Examples: Special circumstances, data collection methodology.", - "type": [ - "string", - "null" - ] - }, - "rate_percentage": { - "description": "The conversion rate as a percentage (35 = 35%). Calculated field: rate_value \u00d7 100.", - "maximum": 100.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "rate_value": { - "description": "The conversion rate as a decimal (0.35 = 35%). Always expressed as proportion between 0.0 and 1.0.", - "maximum": 1.0, - "minimum": 0.0, - "type": "number" - }, - "sample_size": { - "description": "The number of observations in the denominator (total visitors, emails sent, etc.). Required for statistical significance assessment.", - "type": [ - "integer", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "rate_value" - ], - "title": "ConversionRate", - "type": "object" - }, - "CooledClimateControl": { - "additionalProperties": false, - "description": "Cooling-only climate control - air conditioning without heating.\n\n**TYPICAL USE CASES**:\n- Tropical/warm climate facilities\n- Server rooms with collections databases\n- Cold storage for photographic materials\n\n**CAPABILITIES**:\n- Temperature: Cooling only (may have precise control)\n- Humidity: May be controlled as byproduct of cooling\n- Air quality: Typically filtered", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/ClimateControlType" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "CooledClimateControl", - "type": "object" - }, - "CooperativeManager": { - "additionalProperties": false, - "description": "Manager of a cooperative heritage organization overseeing daily operations.\n\n**Official Title vs De Facto Work**:\nFormally manages operations, but in cooperatives often works closely\nwith member governance and balances member interests with organizational needs.\n\n**Common Variants**:\n- Cooperative Director\n- Co-op Manager\n- Co\u00f6peratiemanager (Dutch)\n- General Manager\n- Operations Manager\n\n**Typical Domains**: Heritage cooperatives, community archives, shared collection facilities\n\n**Typical Responsibilities**:\n- Day-to-day operations management\n- Member coordination and communication\n- Resource allocation among members\n- Financial management\n- Staff supervision\n- Implementing board decisions\n- Maintaining cooperative principles", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "CooperativeManager", - "type": "object" - }, - "Coordinates": { - "additionalProperties": false, - "description": "Geographic coordinates representing a point location with latitude and longitude (and optional precision). Used to locate heritage custodians, events, and other geographically situated entities.\nOntology mapping rationale: - class_uri is geo:Point from WGS84 vocabulary, the standard for representing\n points on Earth with lat/long coordinates\n- close_mappings includes sf:Point from OGC Simple Features as an alternative\n geometry representation\n- related_mappings includes geo:SpatialThing (superclass) and schema:GeoCoordinates\n as Schema.org's coordinate representation", - "properties": { - "latitude": { - "type": "number" - }, - "longitude": { - "type": "number" - }, - "precision": { - "description": "Coordinate precision", - "type": [ - "number", - "null" - ] - }, - "source": { - "description": "Source of the coordinates (e.g., geonames, nominatim, google_maps)", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "latitude", - "longitude" - ], - "title": "Coordinates", - "type": "object" - }, - "CorporateGovernanceFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for corporate governance and executive records organized as a fonds.\n\n**Definition**:\nRecords created by corporate governing bodies (board of directors, shareholders, \nexecutive management) in the exercise of corporate governance and strategic \ndecision-making. Organized according to archival principles of provenance.\n\n**Typical Contents**:\n- Board of directors minutes and resolutions (Raad van Bestuur)\n- Supervisory board records (Raad van Commissarissen)\n- Shareholders meeting records (aandeelhoudersvergaderingen)\n- Executive committee records\n- Corporate strategy documents\n- Merger and acquisition records\n- Articles of incorporation and bylaws (statuten)\n- Stock certificates and ownership records\n\n**Legal Significance**:\nGovernance records have significant legal value for:\n- Corporate compliance\n- Due diligence in M&A\n- Shareholder disputes\n- Historical ownership verification\n\n**Retention Requirements**:\nMany governance records have mandatory retention periods (often 7+ years \nfor financial records, permanent for foundational documents).\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the fonds organizational principle as defined by rico-rst:Fonds\n(provenance-based organization with governance records forming the core fonds).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "legal_note": { - "const": "Governance records have significant legal value. Many have mandatory retention periods. Original documents often retained for legal purposes.", - "description": "Notes about legal considerations or regulatory requirements.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the fonds principle as defined by rico-rst:Fonds. Governance records form the core archival fonds of company archives.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CorporateGovernanceFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"product development\", \"marketing materials\", \"personnel records\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"board minutes\", \"shareholder records\", \"executive records\", \"M&A records\", \"corporate bylaws\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "CorporateGovernanceFonds", - "type": "object" - }, - "CorporatePartnershipsFunction": { - "additionalProperties": false, - "description": "Corporate partnerships function: sponsorships, corporate memberships, venue rentals, brand partnerships.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "CorporatePartnershipsFunction", - "type": "object" - }, - "CorporatePublicationsSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for corporate publications and internal communications.\n\n**Definition**:\nPublications produced by or for the company, including annual reports, \ninternal magazines, newsletters, and commemorative publications.\n\n**Typical Contents**:\n- Annual reports (jaarverslagen)\n- Corporate magazines/house organs (personeelsbladen)\n- Internal newsletters\n- Commemorative/anniversary publications\n- Technical bulletins\n- Customer magazines\n- Press releases\n- Corporate histories\n- Safety bulletins\n\n**Research Value**:\nCorporate publications document:\n- Financial history and performance\n- Corporate culture and values\n- Employee community and social activities\n- Product and service evolution\n- Company responses to external events\n\n**Bibliographic Nature**:\nMany corporate publications are serial publications that benefit from \nbibliographic treatment in addition to archival arrangement.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the series organizational principle as defined by rico-rst:Series\n(publications arranged chronologically by title).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the series principle as defined by rico-rst:Series. Publications arranged chronologically by title. May benefit from bibliographic treatment for serial publications.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CorporatePublicationsSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"governance records\", \"technical documentation\", \"personnel records\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"annual reports\", \"house magazines\", \"newsletters\", \"commemorative publications\", \"press releases\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "CorporatePublicationsSeries", - "type": "object" - }, - "CorrespondenceContent": { - "additionalProperties": false, - "description": "Letters, emails, and other correspondence.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "CORRESPONDENCE", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Correspondence", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "CorrespondenceContent", - "type": "object" - }, - "CouncilGovernanceFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for municipal council and governance records organized as a fonds.\n\n**Definition**:\nRecords created by municipal councils and governing bodies in the exercise \nof legislative and executive functions. Organized according to archival \nprinciples of provenance (respect des fonds).\n\n**Typical Contents**:\n- Council/gemeenteraad minutes and resolutions\n- Ordinances and bylaws (verordeningen)\n- Mayor and aldermen (B&W/college) decisions\n- Committee records\n- Correspondence with higher authorities\n- Election records\n- Civic ceremonies and events documentation\n\n**Historical Value**:\nCouncil records often represent the oldest continuous documentation of \nlocal governance, sometimes dating back centuries (especially in older \nEuropean cities).\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the fonds organizational principle as defined by rico-rst:Fonds\n(respect des fonds / provenance-based organization from municipal council governance).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the fonds principle. The fonds structure reflects provenance from municipal council and governance bodies.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CouncilGovernanceFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"civil registry\", \"building permits\", \"personnel records\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"council minutes\", \"ordinances\", \"resolutions\", \"committee records\", \"election records\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "CouncilGovernanceFonds", - "type": "object" - }, - "Country": { - "additionalProperties": false, - "description": "Country identified by ISO 3166-1 alpha-2 and alpha-3 codes.\n\nThis is a **minimal design** class containing ONLY ISO standardized country codes.\nNo other metadata (names, languages, capitals, regions) is included.\n\nPurpose:\n- Link legal forms to their jurisdiction (legal forms are country-specific)\n- Link custodian places to their country location\n- Enable conditional enum values in FeatureTypeEnum (e.g., \"cultural heritage of Peru\")\n\nDesign rationale:\n- ISO 3166 codes are authoritative, stable, and language-neutral\n- Country names, languages, and other metadata should be resolved via external services\n- Keeps the ontology focused on heritage custodian relationships, not geopolitical data\n\nExternal resolution services:\n- GeoNames API: https://www.geonames.org/\n- UN M49 Standard: https://unstats.un.org/unsd/methodology/m49/\n- ISO 3166 Maintenance Agency: https://www.iso.org/iso-3166-country-codes.html\n\nMIGRATION (2026-01-16): Now uses has_or_had_code with Alpha2Code and Alpha3Code \nclass instances per Rule 56 (semantic consistency over simplicity).", - "properties": { - "has_or_had_code": { - "description": "ISO country codes for this country. Includes:\n- One Alpha2Code instance (2-letter code, e.g., \"NL\")\n- One Alpha3Code instance (3-letter code, e.g., \"NLD\")\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "Country", - "type": "object" - }, - "CreationEvent": { - "additionalProperties": false, - "description": "Event representing the creation of an object, work, or artifact.\n**DEFINITION**:\nCreationEvent models the act of bringing an object into existence,\ncapturing when, where, and by whom it was created.\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`class_uri`): `crm:E65_Creation` - CIDOC-CRM creation event\n- **Close**: `prov:Activity` - PROV-O activity\n- **Close**: `schema:CreateAction` - Schema.org create action\n**USAGE**:\nReplaces simple `date_created` strings with structured event data:\n- Temporal extent (including approximate dates like \"c. 1665\")\n- Creator/artist information\n- Place of creation\n- Creation circumstances\n**Example**:\n```yaml\nis_or_was_created_through:\n temporal_extent:\n begin_of_the_begin: \"1665-01-01\"\n end_of_the_end: \"1665-12-31\"\n display_date: \"c. 1665\"\n has_or_had_creator:\n - agent_name: \"Johannes Vermeer\"\n agent_role: \"artist\"\n has_or_had_place:\n place_name: \"Delft\"\n country: \"NL\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_place": { - "anyOf": [ - { - "$ref": "#/$defs/Place" - }, - { - "type": "null" - } - ], - "description": "Links an entity to its associated place.\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming follows RiC-O convention indicating that place associations may change over time: - Collection events occur at specific locations - Institutions may relocate - Historical associations preserved\n**USE CASES**: - Collection events: where specimen was collected - Events: where event took place - Activities: location of activity\n**REPLACES**: - `collection_location` (structured location for specimens)\n**EXAMPLE**: ```yaml has_or_had_place:\n place_name: \"Mauritius\"\n country: \"MU\"\n latitude: -20.2\n longitude: 57.5\n```" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "CreationEvent", - "type": "object" - }, - "CriticalCondition": { - "additionalProperties": false, - "description": "Critical condition requiring immediate intervention", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "CriticalCondition", - "type": "object" - }, - "CrossDomainAggregator": { - "additionalProperties": false, - "description": "Portal aggregating heritage metadata across archives, libraries, and museums. **PURPOSE**: Provide unified discovery across all heritage sectors (LAM), enabling research and public access that transcends institutional boundaries. **CHARACTERISTICS**: - Cross-domain integration (archives, libraries, museums) - Unified metadata model across sectors - Semantic enrichment and linking - Large-scale aggregation (millions of records) **METADATA STANDARDS**: - EDM (Europeana Data Model) - Dublin Core - Schema.org - Linked Open Data **EXAMPLES**: - Europeana (Europe) - DPLA - Digital Public Library of America (US) - Deutsche Digitale Bibliothek (Germany) - Trove (Australia)", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "$ref": "#/$defs/MetadataStandard" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "CROSS_DOMAIN", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "archives", - "libraries", - "museums", - "cross-domain" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "CrossDomainAggregator", - "type": "object" - }, - "CrossSectionAnalysis": { - "additionalProperties": false, - "description": "Microscopic examination of paint layer cross-sections.\nReveals stratigraphy, pigment particles, layer sequence.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "CrossSectionAnalysis", - "type": "object" - }, - "CrowdsourcingPlatform": { - "additionalProperties": false, - "description": "Platform for user contributions: transcription, tagging, identification,\ngeoreferencing, citizen science.\n\n**PURPOSE**: Engage public participation in heritage data creation\nthrough transcription, tagging, and other contributory activities.\n\n**CHARACTERISTICS**:\n- User contributions\n- Quality control workflows\n- Gamification features\n- Community building\n\n**EXAMPLES**: Zooniverse, FromThePage, Vele Handen", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "INTERACTIVE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "CrowdsourcingPlatform", - "type": "object" - }, - "CulturalANBI": { - "additionalProperties": false, - "description": "Culturele ANBI (Cultural Public Benefit Institution).\n\nEnhanced Dutch tax status for cultural heritage institutions providing\nan additional 25% multiplier on donation deductions.\n\n**Benefits**:\n- Donors: 125% income tax deduction (100% + 25% cultural bonus)\n- Same institutional benefits as standard ANBI\n\n**Eligibility**:\n- Must be registered as ANBI\n- Primary activities in arts, culture, or heritage\n- Museums, archives, libraries, monuments qualify\n\n**Regulatory Body**: Belastingdienst", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "CulturalANBI", - "type": "object" - }, - "CulturalGiftsScheme": { - "additionalProperties": false, - "description": "UK Cultural Gifts Scheme for donations of pre-eminent objects.\n\n**Benefits**:\n- Tax reduction based on value of donated object\n- 30% reduction for individuals, 20% for companies\n- Objects remain in UK public collections\n\n**Eligibility**:\n- Object must be pre-eminent (significant cultural importance)\n- Approved by Arts Council England panel\n- Donor gives up ownership entirely\n\n**Regulatory Body**: Arts Council England / HMRC", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "CulturalGiftsScheme", - "type": "object" - }, - "CulturalHeritageTopic": { - "additionalProperties": false, - "description": "Topic related to cultural heritage and arts.\n\nIncludes: art history, monuments, architecture,\nintangible heritage, cultural traditions.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/TopicType" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/TopicType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "CulturalHeritageTopic", - "type": "object" - }, - "CurationActivity": { - "additionalProperties": false, - "description": "Ongoing collection management activities performed to preserve heritage for access.\n\n**CIDOC-CRM Definition**:\n\nE87_Curation_Activity comprises \"the activities that result in the continuity of\nmanagement and the preservation and evolution of instances of E78 Curated Holding.\"\n\n**INHERITANCE**:\n\nExtends `Activity` base class. Inherits:\n# - has_activity_identifier (required, identifier)\n# - has_activity_name (required)\n# - has_activity_description\n- has_or_had_activity_type \u2192 ActivityType\n- temporal_extent \u2192 TimeSpan\n- is_or_was_succeeded_by, preceding_activity\n- status, note\n\n**KEY DISTINCTION**:\n\n| Concept | Class | Duration | Example |\n|---------|-------|----------|---------|\n| **Curation Activity** | CurationActivity | Ongoing/recurring | Annual inventory |\n| Exhibition | Exhibition | Time-bounded | \"Van Gogh Retrospective\" |\n| Conservation treatment | ConservationRecord | Discrete action | Frame repair |\n| Provenance event | ProvenanceEvent | Point-in-time | Sale at auction |\n\n**RELATIONSHIP TO COLLECTION**:\n\n```\nCollection (rico:RecordSet)\n \u2502\n \u251c\u2500\u2500 items \u2192 ExhibitedObject[]\n \u2502\n \u2514\u2500\u2500 curation_activities \u2192 CurationActivity[] (THIS CLASS)\n \u2502\n \u251c\u2500\u2500 has_or_had_activity_type: CurationActivityType\n \u251c\u2500\u2500 curated_holding: Collection (back-reference)\n \u251c\u2500\u2500 objects_affected: ExhibitedObject[]\n \u251c\u2500\u2500 responsible_actor: PersonObservation\n \u2514\u2500\u2500 has_timespan: TimeSpan\n```\n\n**SPECTRUM ALIGNMENT**:\n\nMaps to SPECTRUM (UK Collections Management Standard) primary procedures:\n\n| SPECTRUM Procedure | CurationActivityTypeEnum |\n|--------------------|--------------------------|\n| Object Entry | ACCESSIONING |\n| Acquisition | ACQUISITION_RESEARCH |\n| Inventory Control | INVENTORY |\n| Cataloguing | CATALOGING |\n| Object Storage | REHOUSING, STORAGE_REORGANIZATION |\n| Location and Movement | RELOCATION |\n| Condition Checking | CONDITION_SURVEY |\n| Collections Care | PREVENTIVE_CONSERVATION |\n| Deaccession and Disposal | DEACCESSIONING |\n| Loans Out/In | OUTGOING_LOAN_MANAGEMENT, INCOMING_LOAN_MANAGEMENT |\n| Valuation | VALUATION |\n| Audit | AUDIT |\n\n**ACTIVITY CATEGORIES**:\n\n1. **Acquisition/Disposal**: Accessioning, deaccessioning, collection review\n2. **Documentation**: Cataloging, inventory, provenance research, rights research\n3. **Physical Management**: Rehousing, relocation, storage reorganization\n4. **Preservation**: Condition surveys, preventive conservation, disaster planning\n5. **Access**: Digitization, photography, interpretation, online publication\n6. **Loans**: Outgoing and incoming loan management\n7. **Administrative**: Collection development, registration, valuation, audit\n8. **Integration**: Database migration, vocabulary alignment, linked data\n\n**PROVENANCE TRACKING (PROV-O)**:\n\nCurationActivity generates provenance information (inherited from Activity):\n- `prov:Activity` - The curation activity itself\n- `prov:wasAssociatedWith` - Responsible actor (staff, contractor)\n- `prov:used` - Objects/collections processed\n- `prov:generated` - Documentation, reports, digital surrogates\n- `prov:atTime` - Activity timespan\n\n**DELIVERABLES**:\n\nActivities typically produce documentation:\n- Accession records (ACCESSIONING)\n- Catalog records (CATALOGING)\n- Condition reports (CONDITION_SURVEY)\n- Finding aids (CATALOGING for archives)\n- Digital surrogates (DIGITIZATION)\n- Valuation reports (VALUATION)\n- Audit reports (AUDIT)", - "properties": { - "curated_holding": { - "description": "The Collection(s) being curated by this activity.\n\nCIDOC-CRM: P147_curated links E87_Curation_Activity to E78_Curated_Holding.\n\nBack-reference from CurationActivity to Collection.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_objective": { - "description": "The objective of an action or measure.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_output": { - "description": "Output produced by a device, service, or process.\n\n**USAGE**:\nRepresents data, signals, or artifacts emitted by:\n- IoT devices (sensor readings, beacon signals)\n- APIs and services (data responses)\n- Processing pipelines (transformed data)\n- Software systems (reports, exports)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadOutput` - Heritage Custodian property\n- **Close**: `sosa:hasResult` - SOSA observation result\n- **Close**: `schema:produces` - Schema.org production relationship\n\n**RANGE**: `OutputData` class\nThe OutputData class captures output specifications including format,\nfrequency, destination, and data characteristics.\n", - "items": { - "$ref": "#/$defs/Documentation" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_status": { - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_allocated_budget": { - "description": "Budget allocated to an entity or activity.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **Schema.org** | `schema:funding` | Primary - monetary allocation |\n| **W3C Org** | `org:Organization` | Related - organizational budget |\n\n**USAGE NOTE**:\n\nFor simple string budget (e.g., \"\u20ac50,000\"), use this slot directly.\nFor structured budget information with types, quantities, and temporal validity,\noverride the range to point to Budget class in slot_usage.\n\n**MIGRATION NOTE**:\n\nReplaces domain-specific budget slots:\n- budget \u2192 is_or_was_allocated_budget\n- digitization_budget \u2192 is_or_was_allocated_budget (with BudgetType)\n- preservation_budget \u2192 is_or_was_allocated_budget (with BudgetType)\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_succeeded_by": { - "description": "The activity, event, or entity that succeeds (follows) this one.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this is an\ninverse relationship - \"A isOrWasSucceededBy B\" means B follows A.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `rico:isOrWasSuccessorOf` - RiC-O predicate for\n succession relationships in archival contexts\n- **Close**: `crm:P134_continued` - CIDOC-CRM for temporal continuation\n- **Related**: `prov:wasInformedBy` - PROV-O for activity dependencies\n- **Related**: `schema:followup` - Schema.org for follow-up actions\n\n**Use Cases**:\n- Link activity phases: Phase 1 \u2192 Phase 2 \u2192 Phase 3\n- Track project continuation: 2024 inventory \u2192 2025 inventory\n- Document workflow: condition survey \u2192 conservation treatment\n\n**Inverse**:\nThe inverse relationship is `is_or_was_preceded_by` (or `preceding_activity`)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_recurring": { - "description": "Whether this activity recurs on a regular schedule.\n\nTrue for activities like annual inventory, quarterly condition checks.\n", - "type": [ - "boolean", - "null" - ] - }, - "note": { - "description": "Optional notes about the extraction process.\nMay reference raw source files or explain any issues.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "objects_added": { - "description": "Objects accessioned into the collection through this activity.\n\nSpecifically for ACCESSIONING activities.\n\nRiC-O: resultsIn for activity outcomes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "objects_affected": { - "description": "ExhibitedObject items processed or examined by this activity.\n\nPROV-O: used for entities consumed/processed by Activity.\n\nFor activities that touch specific objects (condition surveys, \nphotography, rehousing).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "objects_count": { - "description": "Approximate count of objects affected when individual tracking impractical.\n\nUse for large-scale activities (inventory of 10,000 items).\n", - "type": [ - "integer", - "null" - ] - }, - "objects_removed": { - "description": "Objects deaccessioned from the collection through this activity.\n\nSpecifically for DEACCESSIONING activities.\n\nTrack removal reason in activity_description.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "preceding_activity": { - "description": "CurationActivity that preceded and informed this one.\n\nPROV-O: wasInformedBy for dependency relationship.\n\nCreates sequential chain of activities.\n", - "type": [ - "string", - "null" - ] - }, - "priority": { - "description": "Priority level for this activity.\n\nValues: HIGH, MEDIUM, LOW, CRITICAL\n\nUsed for planning and resource allocation.\n", - "type": [ - "string", - "null" - ] - }, - "recurrence_pattern": { - "description": "Pattern for recurring activities.\n\nUse ISO 8601 duration or human-readable description.\n\nExamples: \"P1Y\" (annual), \"P3M\" (quarterly), \"P1M\" (monthly)\n", - "type": [ - "string", - "null" - ] - }, - "responsible_actor": { - "description": "Person(s) responsible for conducting this activity.\n\nPROV-O: wasAssociatedWith links Activity to responsible Agent.\n\nLinks to PersonObservation for staff members, curators, registrars,\nconservators, or external contractors.\n", - "items": { - "$ref": "#/$defs/PersonObservation" - }, - "type": [ - "array", - "null" - ] - }, - "responsible_department": { - "description": "Department or unit responsible for this activity.\n\nText name of internal department (e.g., \"Registration\", \"Conservation\",\n\"Digital Services\", \"Collections Management\").\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "spectrum_procedure": { - "description": "SPECTRUM procedure this activity conforms to.\n\nLinks to SPECTRUM Collections Management Standard procedure names.\n\nSee CurationActivityTypeEnum for SPECTRUM mappings.\n", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CurationActivity", - "type": "object" - }, - "CurationActivityTypeEnum": { - "description": "Types of ongoing curation activities for heritage collection management.\n\n**CIDOC-CRM Context**:\n\nE87_Curation_Activity - \"The continuous activities performed on a \ncurated holding to preserve it for public access.\" Distinguished from\ndiscrete events like exhibitions.\n\n**Key Distinction**:\n\n| Concept | Class | Duration |\n|---------|-------|----------|\n| **Curation Activity** | CurationActivity | Ongoing/recurring |\n| Exhibition | Exhibition | Time-bounded event |\n| Conservation treatment | ConservationRecord | Discrete action |\n\n**Categories**:\n\n1. **Acquisition/Disposal**: Accessioning, deaccessioning\n2. **Documentation**: Cataloging, inventorying, research\n3. **Physical Management**: Rehousing, relocation, storage\n4. **Preservation**: Condition surveys, preventive conservation\n5. **Access**: Digitization, interpretation, outreach\n\n**SPECTRUM Alignment**:\n\nMaps to SPECTRUM primary procedures for museum documentation.", - "enum": [ - "ACCESSIONING", - "ACQUISITION_RESEARCH", - "DEACCESSIONING", - "COLLECTION_REVIEW", - "CATALOGING", - "INVENTORY", - "PROVENANCE_RESEARCH", - "OBJECT_RESEARCH", - "RIGHTS_RESEARCH", - "REHOUSING", - "RELOCATION", - "STORAGE_REORGANIZATION", - "ENVIRONMENTAL_MONITORING", - "CONDITION_SURVEY", - "PREVENTIVE_CONSERVATION", - "DISASTER_PLANNING", - "DIGITIZATION", - "PHOTOGRAPHY", - "INTERPRETATION", - "ONLINE_PUBLICATION", - "OUTGOING_LOAN_MANAGEMENT", - "INCOMING_LOAN_MANAGEMENT", - "COLLECTION_DEVELOPMENT", - "REGISTRATION", - "VALUATION", - "AUDIT", - "DATABASE_MIGRATION", - "VOCABULARY_ALIGNMENT", - "LINKED_DATA_PUBLICATION", - "OTHER" - ], - "title": "CurationActivityTypeEnum", - "type": "string" - }, - "Curator": { - "additionalProperties": false, - "description": "Curator responsible for collections research, acquisition, and exhibitions.\n\n**Official Title vs De Facto Work**:\nThe title \"Curator\" formally designates expertise in collection stewardship,\nbut actual work often extends to grant writing, public speaking, education,\nmarketing, and administrative duties.\n\n**Common Variants**:\n- Senior Curator\n- Assistant Curator\n- Associate Curator\n- Chief Curator\n- Curator of [specific collection area]\n\n**Typical Domains**: Museums, galleries, archives/libraries with special collections\n\n**Typical Responsibilities**:\n- Collection development and acquisition\n- Research and scholarship\n- Exhibition planning and content development\n- Object interpretation and labeling\n- Loan negotiations", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Curator", - "type": "object" - }, - "Currency": { - "additionalProperties": false, - "description": "A currency used for monetary values.\n**SCHEMA.ORG ALIGNMENT**:\nMaps to `schema:Currency` - \"A currency as defined by ISO 4217.\"\n**ISO 4217 STANDARD**:\nISO 4217 defines three-letter currency codes:\n| Code | Currency | Symbol | |------|----------|--------| | EUR | Euro | \u20ac | | USD | US Dollar | $ | | GBP | British Pound | \u00a3 | | JPY | Japanese Yen | \u00a5 | | CHF | Swiss Franc | CHF |\n**WHY NOT JUST USE STRING?**\nSimple string fields like `budget_currency: \"EUR\"` lose important context: - Symbol for display purposes - Full name for accessibility - Historical validity (currencies change over time) - Link to authoritative ISO 4217 standard\nThe Currency class captures this richness while remaining simple for basic use.\n**HISTORICAL CURRENCIES**:\nHeritage institutions often deal with historical currencies: - NLG (Dutch Guilder) - replaced by EUR in 2002 - DEM (German Mark) - replaced by EUR in 2002 - FRF (French Franc) - replaced by EUR in 2002\nThe temporal naming pattern (has_or_had_currency) accommodates this.\n**EXAMPLE**:\n```yaml Currency:\n currency_code: EUR\n currency_name: Euro\n currency_symbol: \u20ac\n```", - "properties": { - "currency_code": { - "description": "Currency Code for heritage custodian entities.\n", - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "currency_symbol": { - "description": "Currency Symbol for heritage custodian entities.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "currency_code" - ], - "title": "Currency", - "type": "object" - }, - "CurrentArchive": { - "additionalProperties": false, - "description": "Archive maintaining records still in active/current use by the creating organization.\n\n**Wikidata**: Q3621648 (current archive / archivo corriente / archivio corrente)\n\n**DEFINITION**:\n\nCurrent Archive (also called \"active archive\" or \"records center\") maintains \nrecords that are still actively used for operational purposes. In the archival \nlifecycle, this represents the first phase:\n\n1. **Current/Active Phase** \u2190 THIS TYPE\n - Records actively used for business operations\n - Frequent retrieval and reference\n - Managed by creating office or central records unit\n\n2. **Semi-current/Intermediate Phase** \u2192 DepositArchive\n - Records no longer actively used but still referenced\n - Stored in intermediate facility\n - Awaiting disposition decision\n\n3. **Non-current/Archival Phase** \u2192 Historical Archive\n - Records with permanent value\n - Transferred to archives\n - Preserved for research/evidence\n\n**MULTILINGUAL LABELS**:\n- archivo corriente (es)\n- archive courante (fr)\n- archivio corrente (it)\n\n**RELATED TYPES**:\n- DepositArchive (Q244904) - intermediate/semi-current records\n- HistoricalArchive (Q3621673) - non-current permanent records\n- RecordsCenter - semi-current storage facility\n\n**RELATIONSHIP TO CustodianArchive**:\n\nCurrentArchive (this class) is a TYPE classification (skos:Concept) for \narchives managing records in the active/current phase of the lifecycle.\n\nCustodianArchive is an INSTANCE class (rico:RecordSet) representing the \nactual operational archives of a heritage custodian awaiting processing.\n\n**Semantic Relationship**:\n- CurrentArchive is a HYPERNYM (broader type) for the concept of active records\n- CustodianArchive records MAY be typed as CurrentArchive when in active use\n- When CustodianArchive.processing_status = \"UNPROCESSED\", records may still\n be in the current/active phase conceptually\n\n**SKOS Alignment**:\n- skos:broader: CurrentArchive \u2192 DepositArchive (lifecycle progression)\n- skos:narrower: CurrentArchive \u2190 specific current archive types\n\n**ONTOLOGICAL ALIGNMENT**:\n- **SKOS**: skos:Concept (type classification)\n- **RiC-O**: rico:RecordSet for active record groups\n- **Wikidata**: Q3621648\n- **ISO 15489**: Records in active use phase", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "creating_organization": { - "description": "Organization that created/creates these records.\nCurrent archives are typically managed by or for the creating body.\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/TransferPolicy__identifier_optional" - }, - { - "type": "null" - } - ] - }, - "description": "Policy associated with an entity.", - "type": [ - "object", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "retention_schedule": { - "description": "Reference to applicable retention schedule (regulatory framework).\n\n**RiC-O**: rico:isOrWasRegulatedBy connects Thing to Rule.\n\nRetention schedules are RULES that regulate how long records\nmust be kept and when they can be transferred to archives.\n\n**Examples**:\n- \"Selectielijst Gemeenten 2017, cat. 4.2\"\n- \"Corporate Retention Schedule RS-2023-001\"\n- \"Archiefwet 1995, art. 5\"\n- \"GDPR Art. 17 (right to erasure)\"\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CurrentArchive", - "type": "object" - }, - "CurrentArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by CurrentArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CurrentArchiveRecordSetType", - "type": "object" - }, - "CurriculumDocumentCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Educational materials.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "SchoolArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by SchoolArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CurriculumDocumentCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CurriculumDocumentCollection", - "type": "object" - }, - "CustodialRecordsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Records held in custody.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "CustodianArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by CustodianArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CustodialRecordsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CustodialRecordsFonds", - "type": "object" - }, - "Custodian": { - "additionalProperties": false, - "description": "An abstract hub class that serves as the central connection point for all information about a heritage custodian entity. The Custodian itself contains minimal information - essentially just its persistent identifier (has_or_had_identifier) - and acts as a node to which all observations (CustodianObservation, CustodianName) and reconstructions (CustodianLegalStatus) attach. This hub pattern allows multiple observations from different sources to be connected to a single logical entity without asserting which observation is \"correct\" or \"primary\". **HUB ARCHITECTURE**: - The Custodian hub is identified by: https://nde.nl/ontology/hc/{abstracted-ghcid} - All observations refer to the hub via refers_to_custodian - All reconstructions refer to the hub via refers_to_custodian - The hub persists while observations and interpretations evolve **CUSTODIAN** is defined broadly to include: - **Individual people** (private collectors, curators, archivists) - **Groups and collectives** (heritage societies, collecting groups, guilds) - **Organizations** (museums, libraries, archives, foundations) - **Governments** (national archives, state museums, municipal collections) - **Corporations** (company archives, corporate museums) - **Religious entities** (churches, monasteries, temples with heritage collections) - **Educational institutions** (university libraries, school archives) - **Any entity exercising custody** over heritage materials - CIDOC-CRM: crm:E39_Actor (primary) - PROV-O: prov:Agent - Schema.org: schema:Person OR schema:Organization - CPOV: cpov:PublicOrganisation (for public sector) - RiC-O: rico:Agent, rico:CorporateBody - FOAF: foaf:Agent, foaf:Person, foaf:Organization - TOOI: tooi:Overheidsorganisatie (Dutch government)", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "has_or_had_collection": { - "description": "Heritage collection(s) associated with this custodian, currently or historically.\n\n**RiC-O Temporal Pattern**: Uses `hasOrHad*` pattern because collections\ncan be transferred between custodians. A museum may have held a collection\nthat was later transferred to another institution (custody transfer).\n\nThis property enables metonymic references: when people refer to a custodian,\nthey often mean its collection. CustodianCollection makes this explicit.\n\n**Examples**:\n- \"The Rijksmuseum has a Rembrandt\" = Collection aspect contains artwork\n- \"The Archives holds parish records\" = Collection aspect includes documents\n- \"The library transferred its rare books to the national archive\" = Past holding\n", - "items": { - "$ref": "#/$defs/CustodianCollection" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_digital_presence": { - "description": "Links an entity to its digital platform or online presence (website, portal, repository).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - websites change, platforms migrate or are decommissioned.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:mainEntityOfPage` - Page about the entity\n- **Close**: `schema:url` - URL of the entity\n- **Close**: `dcat:landingPage` - Web page providing access\n\n**Usage**:\nUse with DigitalPlatform class to describe the platform.\n\n**Replaces**: digital_platform slot per slot_fixes.yaml migration (2026-01-25)\n", - "items": { - "$ref": "#/$defs/DigitalPlatform" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_exhibition": { - "description": "Exhibitions organized or hosted by this custodian.\n\nLinks to Exhibition entities that this institution has produced.\nInverse of Exhibition.organized_by.\n\nUse for:\n- Permanent collection exhibitions\n- Temporary/special exhibitions\n- Traveling exhibitions (when this custodian is a venue)\n- Virtual/online exhibitions\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_facility": { - "description": "A facility or amenity associated with an entity.\n\n**USAGE**:\nUsed for:\n- Visitor facilities (caf\u00e9, shop, parking)\n- Research facilities (reading room, lab)\n- Accessibility facilities (wheelchair access)\n", - "items": { - "$ref": "#/$defs/Facility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_social_media_profile": { - "description": "Social media accounts/profiles maintained by this custodian.\n\nLinks to SocialMediaProfile instances representing third-party\nsocial media accounts (Instagram, Facebook, X/Twitter, YouTube, etc.).\n\n**FOAF Alignment**:\nUses `foaf:account` property which links Agent to OnlineAccount:\n- Domain: foaf:Agent (Custodian)\n- Range: foaf:OnlineAccount (SocialMediaProfile)\n\n**THREE-TIER DIGITAL PRESENCE MODEL**:\n\n```\n1. DigitalPlatform (PRIMARY - owned websites)\n - digital_platform slot\n - Main website, APIs, flagship platforms\n \n2. AuxiliaryDigitalPlatform (SECONDARY - owned project sites)\n - Linked via DigitalPlatform.auxiliary_platforms\n - Exhibition microsites, project-specific tools\n \n3. SocialMediaProfile (THIRD-PARTY - external accounts) - THIS SLOT\n - Accounts on external social media services\n - NOT owned/controlled by custodian\n```\n\n**is_primary_digital_presence Flag**:\n\nEach SocialMediaProfile has a boolean `is_primary_digital_presence`:\n\n- **true**: Social media IS the main digital presence\n - Custodian has no formal website\n - Example: Local heritage society with Facebook only\n \n- **false**: Social media SUPPORTS the main website\n - Custodian has a DigitalPlatform\n - Example: Rijksmuseum Instagram supports rijksmuseum.nl\n\n**Example - Museum with Social Media Supporting Website**:\n```yaml\nCustodian:\n hc_id: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n \n digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address: \"https://www.rijksmuseum.nl/\"\n \n social_media_profiles:\n - platform_type: INSTAGRAM\n account_name: \"rijksmuseum\"\n profile_url: \"https://www.instagram.com/rijksmuseum/\"\n is_primary_digital_presence: false\n follower_count: 1200000\n verified: true\n \n - platform_type: X_TWITTER\n account_name: \"rijksmuseum\"\n profile_url: \"https://x.com/rijksmuseum\"\n is_primary_digital_presence: false\n```\n\n**Example - Local Society with Social Media as Primary**:\n```yaml\nCustodian:\n hc_id: \"https://nde.nl/ontology/hc/nl-dr-nvn-s-hvn\"\n preferred_label: \"Historische Vereniging Nijeveen\"\n \n digital_platform: null # No formal website\n \n social_media_profiles:\n - platform_type: FACEBOOK\n account_name: \"HistorischeVerenigingNijeveen\"\n profile_url: \"https://www.facebook.com/HistorischeVerenigingNijeveen\"\n is_primary_digital_presence: true\n follower_count: 450\n```\n", - "items": { - "$ref": "#/$defs/SocialMediaProfile" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_encompassed_by": { - "description": "Extra-organizational governance bodies that encompass, oversee, or coordinate\nthis custodian, currently or historically.\n\nLinks Custodian to EncompassingBody instances representing\nparent organizations, service networks, or consortia.\n\n**RiC-O Temporal Pattern**: Uses `isOrWas*` pattern because governance\nrelationships change over time:\n- Institutions transferred between ministries\n- Network memberships begin and end\n- Consortia restructured or dissolved\n\n**W3C ORG Ontology**: `org:subOrganizationOf`\n- Domain: org:Organization (Custodian)\n- Range: org:Organization (EncompassingBody)\n- Inverse: `org:hasSubOrganization`\n\n**Three Relationship Types**:\n1. **Umbrella** - Legal parent hierarchy (permanent)\n2. **Network** - Service provision (temporary, centralized)\n3. **Consortium** - Mutual assistance (temporary, peer-to-peer)\n", - "items": { - "$ref": "#/$defs/EncompassingBody" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_involved_in": { - "description": "Events, activities, or situations that an entity was or is involved in.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating\nthe involvement may be historical or current.\n\n**CIDOC-CRM Alignment**:\n- Primary: `crm:P11i_participated_in` - inverse of P11 \"had participant\"\n- Related: `prov:wasInvolvedIn` - PROV-O involvement\n\n**Use Cases**:\n- Heritage custodians involved in armed conflicts\n- Institutions involved in preservation projects\n- Organizations involved in cultural programs\n\n**Range**: Conflict (or subclasses/related event classes)\n\nCreated as part of conflict_status migration per slot_fixes.yaml (Rule 53).\n", - "items": { - "$ref": "#/$defs/Conflict" - }, - "type": [ - "array", - "null" - ] - }, - "legal_status": { - "anyOf": [ - { - "$ref": "#/$defs/CustodianLegalStatus" - }, - { - "type": "null" - } - ], - "description": "The formal legal entity representing this custodian.\n\nLinks to CustodianLegalStatus with:\n- Legal name (as registered)\n- Legal form (ISO 20275 codes)\n- Registration number (KvK, company number, etc.)\n\nMay be null if legal status not yet reconstructed or if custodian\nhas no formal legal registration (informal groups, individuals).\n\nW3C Org: hasRegisteredOrganization for registered legal entity.\nNote: slot_uri changed from gleif:hasLegalForm to hc:hasLegalStatus to resolve OWL ambiguous type warning. gleif:hasLegalForm may have different range expectations in the GLEIF ontology.\n**Range**: `Any` (2026-01-16) - Allows class instances. Classes narrow this to CustodianLegalStatus via slot_usage.\n" - }, - "mission_statement": { - "description": "Mission, vision, goal, value, and motto statements documented for this custodian.\n\nLinks to MissionStatement instances that capture organizational purpose\nwith full provenance (source URL, XPath, content hash, archive link).\n\n**Statement Types**:\n- **mission**: Core purpose (why we exist) - \"missie\" in Dutch\n- **vision**: Aspirational future (what we aim for) - \"visie\" in Dutch\n- **goal**: Specific objectives (what we pursue) - \"doelstelling\" in Dutch\n- **value**: Guiding principles (how we work) - \"kernwaarden\" in Dutch\n- **motto**: Memorable phrase (brand identity) - \"slagzin\" in Dutch\n\n**Why on Custodian (not CustodianLegalStatus)?**:\n\nMission statements express OPERATIONAL purpose, not legal obligations.\nThey may change without legal reorganization, and often reflect\npublic-facing identity rather than formal statutes.\n\n**Provenance Requirements**:\n\nFollowing the WebObservation pattern, every MissionStatement MUST have:\n1. `source_url`: URL where statement was found\n2. `retrieved_on`: When the page was archived\n3. `xpath` or `css_selector`: Location in HTML for verification\n4. `html_file`: Path to archived HTML\n5. `content_hash`: SHA-256 for integrity (recommended)\n\n**Example - Dutch Museum**:\n```yaml\nCustodian:\n hc_id: \"https://nde.nl/ontology/hc/nl-zh-zui-m-lmt\"\n preferred_label: \"Landbouwmuseum Tiengemeten\"\n \n mission_statement:\n - statement_type: mission\n statement_text: \"Waar komt ons voedsel \u00e9cht vandaan.\"\n statement_language: nl\n source_url: \"https://www.landbouwmuseumtiengemeten.nl/het-museum/missie-en-visie\"\n retrieved_on: \"2025-12-29T10:00:00Z\"\n \n - statement_type: vision\n statement_text: |\n Het Landbouwmuseum Tiengemeten voelt zich onderdeel van een\n belangrijke agrarische ontwikkeling, de mechanisatie tussen\n 1920 en 1955. De collectie is relevant en de presentatie\n verbindt generaties.\n statement_language: nl\n source_url: \"https://www.landbouwmuseumtiengemeten.nl/het-museum/missie-en-visie\"\n retrieved_on: \"2025-12-29T10:00:00Z\"\n```\n", - "items": { - "$ref": "#/$defs/MissionStatement" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "organizational_structure": { - "description": "Informal organizational structure - operational departments, teams,\ndivisions, and groups that are NOT formally registered legal entities.\n\n**Key Distinction from GovernanceStructure**:\n- **GovernanceStructure** (on CustodianLegalStatus): FORMAL structure\n from legal registration (e.g., \"National Archives is agency under Ministry OCW\")\n- **OrganizationalStructure** (on Custodian): INFORMAL operational units\n (e.g., \"Digital Preservation Team\", \"Collections Department\")\n\n**W3C ORG Ontology**:\nUses `org:hasUnit` to link custodian to `org:OrganizationalUnit` instances.\n- Domain: org:FormalOrganization\n- Range: org:OrganizationalUnit\n- Definition: \"Indicates a unit which is part of this Organization\"\n\n**Why on Custodian, not CustodianLegalStatus?**:\n- Organizational units are operational/functional, not legal\n- Units can change frequently without legal reorganization\n- Multiple legal entities (branches) may share organizational units\n- Separates formal (legal) from informal (operational) concerns\n\n**Temporal Dynamics**:\nEach OrganizationalStructure has `valid_from`/`valid_to` dates to track\norganizational changes (department creation, mergers, dissolutions).\n\n**Example - National Archives**:\n```yaml\nCustodianLegalStatus:\n governance_structure: # FORMAL (from legal docs)\n structure_type: \"Government agency\"\n governance_body: \"Reports to Ministry OCW\"\n\nCustodian:\n organizational_structure: # INFORMAL (operational)\n - unit_name: \"Digital Preservation Department\"\n unit_type: \"DEPARTMENT\"\n staff_count: 15\n - unit_name: \"Public Services Team\"\n unit_type: \"TEAM\"\n```\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "place_designation": { - "anyOf": [ - { - "$ref": "#/$defs/CustodianPlace" - }, - { - "type": "null" - } - ], - "description": "Nominal place designation used to identify this custodian.\n\nLinks to CustodianPlace with contextual place reference.\n\nCRITICAL: This is NOT geographic coordinates - this is a NOMINAL reference!\n\nExamples:\n- \"het herenhuis in de Schilderswijk\" (neighborhood reference)\n- \"the mansion\" (vague building reference)\n- \"het museum op het Museumplein\" (landmark reference)\n\nMay be null if place designation not yet reconstructed.\n\nCIDOC-CRM: P53_has_former_or_current_location for place associations.\n" - }, - "preferred_label": { - "description": "The primary standardized emic name for this custodian.\nSKOS: prefLabel for the preferred lexical label.\n\nThis is the CANONICAL name - the standardized label accepted by the \ncustodian itself for public representation.\n\nDistinct from:\n- Legal name (formal registered name in CustodianLegalStatus.legal_name)\n- Alternative names (in CustodianName.alternative_names list)\n- Historical names (superseded CustodianNames)\n\nExample: \"Rijksmuseum\" (emic name, not \"Stichting Rijksmuseum\" legal name)\n", - "type": [ - "string", - "null" - ] - }, - "preserves_or_preserved": { - "description": "What is being preserved or maintained by this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"preservesOrPreserved\" naming follows RiC-O convention indicating\nthis relationship may be historical - an entity may have preserved\ndifferent content over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `rico:hasOrHadSubject` - RiC-O subject relationship\n- **Close**: `prov:used` - PROV-O input relationship\n- **Close**: `schema:object` - Schema.org action object\n\n**Usage**:\nThis is a GENERIC slot intended for reuse across multiple classes.\nClasses may narrow the range in slot_usage to reference specific classes\n(e.g., ReasoningContent for LLM context preservation).\n\n**LLM Thinking Context**:\nIn the context of LLM responses, this slot replaces the boolean `clear_thinking`\nslot. Instead of a boolean flag, this slot points to a ReasoningContent object\nthat captures what reasoning is being preserved across turns.\n\n**Range**: `uriorcurie` (Rule 55 - broaden range for class-level narrowing)\n\n**Migrated From**: clear_thinking (2026-01-19)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_identifier" - ], - "title": "Custodian", - "type": "object" - }, - "CustodianAdministration": { - "additionalProperties": false, - "description": "Represents ACTIVE documents, files, data, and records currently in daily use\nby the heritage custodian. These are LIVING records actively referenced,\nmodified, and used in ongoing institutional operations.\n\n**CRITICAL DISTINCTION - NOT ARCHIVES**:\n\nCustodianAdministration is fundamentally DIFFERENT from archives:\n\n| CustodianAdministration | CustodianArchive | CustodianCollection |\n|-------------------------|------------------|---------------------|\n| **ACTIVE** - in daily use | **INACTIVE** - awaiting processing | **HERITAGE** - cultural value |\n| Business tool | Processing backlog | Research resource |\n| Modified regularly | Static (until processed) | Preserved permanently |\n| Managed by business units | Managed by archives | Managed by collections |\n| Current reference value | Future historical value | Proven historical value |\n| Retention period active | Retention period ended | Permanently retained |\n\n**LIFECYCLE POSITION**:\n\n```\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 CustodianAdministration (THIS CLASS) \u2502\n\u2502 \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u2502\n\u2502 ACTIVE records in daily use NOW \u2502\n\u2502 \u2502\n\u2502 Examples: \u2502\n\u2502 - Current year's correspondence \u2502\n\u2502 - Open project files \u2502\n\u2502 - Active personnel records \u2502\n\u2502 - Current financial year invoices \u2502\n\u2502 - Live databases and email \u2502\n\u2502 - Shared drive documents being edited \u2502\n\u2502 - CRM/ERP system data \u2502\n\u2502 - Active vendor contracts \u2502\n\u2502 \u2502\n\u2502 Characteristics: \u2502\n\u2502 - Actively referenced and modified \u2502\n\u2502 - Managed by creating business unit \u2502\n\u2502 - Subject to retention schedule \u2502\n\u2502 - May contain personal data (GDPR active) \u2502\n\u2502 - Business continuity critical \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2193\n (Retention period ends, business use ceases,\n records closed and transferred to archives)\n \u2193\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 CustodianArchive \u2502\n\u2502 (Inactive archives awaiting processing) \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2193\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 CustodianCollection \u2502\n\u2502 (Processed heritage collection) \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n**WHY MODEL THIS?**:\n\nUnderstanding a custodian's active administration is valuable for:\n\n1. **Records Management Planning**: What will become archives in 5-10 years?\n2. **Digital Preservation**: Born-digital records requiring future migration\n3. **Capacity Planning**: Volume of future archival transfers\n4. **Compliance**: GDPR, FOI, audit requirements on active records\n5. **Business Continuity**: Critical records identification\n6. **System Dependencies**: What systems hold institutional memory?\n\n**NOT FOR DETAILED MODELING**:\n\nThis class provides HIGH-LEVEL metadata about administrative record systems.\nIt is NOT intended to catalog individual documents (that's the CMS's job).\n\nModel at the SYSTEM or FUNCTION level:\n- \u2705 \"HR Department Personnel Files System\"\n- \u2705 \"Director's Office Correspondence\" \n- \u2705 \"Financial Administration SAP System\"\n- \u274c Individual invoices, emails, memos (too granular)\n\n**RiC-O ALIGNMENT**:\n\n- **rico:RecordResource**: Base class for record resources\n- **rico:hasCreator**: Creating unit/department\n- **rico:hasOrHadManager**: Unit managing the records\n- **rico:isAssociatedWithActivity**: Business activity generating records", - "properties": { - "contains_or_contained": { - "description": "Generic containment relationship (temporal). Indicates that this entity contains or has contained the referenced entity.", - "items": { - "$ref": "#/$defs/PersonalData" - }, - "type": [ - "array", - "null" - ] - }, - "creating_function": { - "description": "Business function or activity that these records document.\n\n**RiC-O**: rico:documents links RecordResource to Activity.\n\nRecords are created BECAUSE they document business activities.\nThis slot captures WHAT activity/function the records document.\n\n**Examples**:\n- \"Collection acquisition\"\n- \"Exhibition planning\"\n- \"Conservation treatment\"\n- \"Visitor services\"\n- \"Human resource management\"\n- \"Financial administration\"\n- \"Research services\"\n- \"Facilities management\"\n", - "type": [ - "string", - "null" - ] - }, - "estimates_or_estimated": { - "description": "Links an entity to an estimation or confidence assessment derived from it.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"estimatesOrEstimated\" naming follows RiC-O convention indicating this relationship\nmay be historical - estimations may be updated over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:wasDerivedFrom` - derivation from source\n- **Related**: `dqv:hasQualityMeasurement` - linking to quality/confidence metric\n\n**Usage**:\nUsed to link profiles or entities to confidence assessments about specific\nattributes (e.g., digital proficiency confidence).\n\n**Pattern**:\n```\nLinkedInProfile\n \u2514\u2500\u2500 estimates_or_estimated \u2192 DigitalConfidence\n \u251c\u2500\u2500 has_or_had_score: 0.8\n \u2514\u2500\u2500 has_or_had_type: PROFICIENCY_LEVEL\n```\n\n**Migrated From** (per slot_fixes.yaml):\n- `digital_confidence` \u2192 estimates_or_estimated + DigitalConfidence\n\n**Cardinality**:\nMultivalued - an entity may have multiple estimations (e.g., for different attributes).\n", - "items": { - "$ref": "#/$defs/GrowthRate" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_level": { - "description": "Data sensitivity classification level. Standard codes: PUBLIC, INTERNAL, CONFIDENTIAL, STRICTLY_CONFIDENTIAL, PERSONAL_DATA, SPECIAL_CATEGORY", - "type": [ - "string", - "null" - ] - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_roadmap": { - "description": "A roadmap associated with this entity.", - "items": { - "$ref": "#/$defs/Roadmap" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_status": { - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_active_since": { - "description": "Date from which this administrative system has been or was active.\n\n**RiC-O**: rico:hasBeginningDate for temporal start.\n\nFor legacy systems, may be approximate.\nFor new systems, date of implementation.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "managing_unit": { - "anyOf": [ - { - "$ref": "#/$defs/OrganizationalStructure" - }, - { - "type": "null" - } - ], - "description": "Organizational unit (department, division, section) responsible for managing this collection.\n\n**Bidirectional Relationship**:\n- **Forward**: CustodianCollection \u2192 OrganizationalStructure (managing_unit)\n- **Reverse**: OrganizationalStructure \u2192 CustodianCollection (managed_collections)\n\n**Validation**: If provided, temporal consistency is validated:\n- Collection.valid_from >= OrganizationalStructure.valid_from\n- Collection.valid_to <= OrganizationalStructure.valid_to (if unit dissolved)\n\n**Use Cases**:\n1. **Collection Management**: \"Which department manages the Medieval Manuscripts collection?\"\n2. **Staffing Cross-Reference**: \"Who are the curators managing this collection?\"\n - Follow: managing_unit \u2192 OrganizationalStructure \u2192 staff_members \u2192 PersonObservation\n3. **Organizational Change Impact**: Track collection custody through mergers, splits, reorganizations\n\n**Notes**:\n- If managing_unit is null, collection may be managed at institutional level\n- Collections may split across multiple units \u2192 create separate CustodianCollection instances\n- Custody transfers tracked via managing_unit changes + temporal validity\n" - }, - "primary_system": { - "anyOf": [ - { - "$ref": "#/$defs/DigitalPlatform" - }, - { - "type": "null" - } - ], - "description": "Primary digital system where these records are managed.\n\n**Schema.org**: schema:isPartOf for system relationship.\n\nLinks to DigitalPlatform for:\n- Document management systems (SharePoint, M-Files)\n- ERP systems (SAP, Oracle)\n- Email systems (Exchange, Gmail)\n- Line-of-business applications\n- Custom databases\n\nImportant for digital preservation planning.\n" - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "retention_period_year": { - "description": "Retention period in years before transfer to archives.\n\n**Dublin Core**: dcterms:valid for validity period.\n\n**Common periods**:\n- 7 years (financial records, tax)\n- 10 years (contracts, legal)\n- 20 years (personnel files)\n- Permanent (policy, governance)\n- \"Until case closed + 5 years\"\n\n**Note**: May be null for permanent retention.\n", - "type": [ - "integer", - "null" - ] - }, - "retention_schedule": { - "description": "Reference to applicable retention schedule (regulatory framework).\n\n**RiC-O**: rico:isOrWasRegulatedBy connects Thing to Rule.\n\nRetention schedules are RULES that regulate how long records\nmust be kept and when they can be transferred to archives.\n\n**Examples**:\n- \"Selectielijst Gemeenten 2017, cat. 4.2\"\n- \"Corporate Retention Schedule RS-2023-001\"\n- \"Archiefwet 1995, art. 5\"\n- \"GDPR Art. 17 (right to erasure)\"\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_label", - "refers_to_custodian" - ], - "title": "CustodianAdministration", - "type": "object" - }, - "CustodianAppellation": { - "additionalProperties": false, - "description": "An alternative name or label variant for a CustodianName.\nCustodianAppellation represents names that are NOT the most common emic \ndesignator but are still used to refer to the custodian.\n\nCRITICAL: CustodianAppellations are linked to CustodianName (NOT directly to Custodian).\nOnly CustodianIdentifier can identify the Custodian hub.\n\nCIDOC-CRM E41_Appellation: Any identifier expressed as text (names, titles, labels).\nSKOS: altLabel for alternative lexical labels (trading names, colloquial names, abbreviations).\n\n**Use for**: \n- Alternative names and abbreviations (e.g., \"BnF\" for \"Biblioth\u00e8que nationale de France\")\n- Translations and multilingual variants\n- Historical names and spelling variants\n- Colloquial/informal names\n\n**Connection Architecture**:\n- CustodianName (preferred label) \u2192 skos:altLabel \u2192 CustodianAppellation (variants)\n- Enables multiple variant appellations per canonical name\n\n**Enables**:\n- Multilingual name representation (via appellation_language)\n- Name type classification (official, vernacular, historical, translation)\n- Relationship to naming authority\n- Temporal validity (when name was used)", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_or_was_alternative_form_of": { - "anyOf": [ - { - "$ref": "#/$defs/Label" - }, - { - "type": "null" - } - ], - "description": "Links an entity to another entity it is an alternative form of.\n\n**USAGE**:\nUsed for:\n- Name variants\n- Alternative spellings\n- Abbreviations\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "CustodianAppellation", - "type": "object" - }, - "CustodianArchive": { - "additionalProperties": false, - "description": "Represents OPERATIONAL ARCHIVES created by a heritage custodian through its\ndaily activities that are NOT YET integrated into the formal heritage collection\n(CustodianCollection).\n\n**CRITICAL DISTINCTION - THREE-TIER RECORDS LIFECYCLE**:\n\n```\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 CustodianAdministration \u2502\n\u2502 \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u2502\n\u2502 ACTIVE records in daily use \u2502\n\u2502 - Current correspondence, invoices, personnel files \u2502\n\u2502 - Digital files on shared drives \u2502\n\u2502 - Email systems, databases \u2502\n\u2502 - Actively referenced and modified \u2502\n\u2502 - Managed by business units, NOT archives \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2193\n (Retention period ends, \n transferred to archives)\n \u2193\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 CustodianArchive (THIS CLASS) \u2502\n\u2502 \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u2502\n\u2502 INACTIVE records awaiting archival processing \u2502\n\u2502 - Transferred from administration to archives \u2502\n\u2502 - In BACKLOG - may wait DECADES for processing \u2502\n\u2502 - Basic accession-level description only \u2502\n\u2502 - NOT searchable by researchers (no finding aid) \u2502\n\u2502 - Tracked in CMS for inventory purposes \u2502\n\u2502 - May undergo appraisal, arrangement, description \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2193\n (Archival processing complete,\n finding aid created)\n \u2193\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 CustodianCollection \u2502\n\u2502 \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u2502\n\u2502 PROCESSED heritage collection \u2502\n\u2502 - Full finding aid available \u2502\n\u2502 - Searchable by researchers \u2502\n\u2502 - Arranged and described per archival standards \u2502\n\u2502 - Integrated into institution's public collection \u2502\n\u2502 - Managed as cultural heritage \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n**WHY THIS MATTERS**:\n\nArchival institutions (national archives, municipal archives, corporate archives)\ncreate their OWN operational records through daily activities:\n- Correspondence with depositors\n- Acquisition documentation\n- Conservation reports\n- Staff files\n- Financial records\n- Research request logs\n\nThese institutional records are DISTINCT from the heritage collections they manage.\nA national archive managing 17th-century municipal records ALSO has its own\n20th-21st century operational archives that may take decades to process.\n\n**TEMPORAL REALITY**:\n\nProcessing backlogs are measured in DECADES, not months:\n- Large national archives: 30-50 year backlogs common\n- Government transfers: Often 20+ years before processing\n- Corporate archives: Legacy records may wait indefinitely\n\n**RiC-O ALIGNMENT**:\n\n- **rico:RecordSet**: Primary class for archival aggregations\n- **rico:hasAccumulationDate**: When records were accumulated (created/received)\n- **rico:hasAccumulator**: Agent that accumulated the records\n- **rico:Activity**: Processing activities (appraisal, arrangement, description)\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n- **CustodianAdministration**: Active records \u2192 transfers TO CustodianArchive\n- **CustodianCollection**: Processed archives \u2192 CustodianArchive transfers TO this\n- **CollectionManagementSystem**: Tracks CustodianArchive for inventory\n- **Storage**: Physical location of unprocessed archives\n- **OrganizationalStructure**: Unit responsible for processing\n\n**RELATIONSHIP TO LIFECYCLE TYPE CLASSES**:\n\nCustodianArchive (this class) is an INSTANCE class representing actual\noperational archives. It can be TYPED using lifecycle phase classifications:\n\n- **CurrentArchive** (Q3621648): Active records in daily use\n - skos:broaderTransitive links CustodianArchive \u2192 CurrentArchive type\n- **DepositArchive** (Q244904): Intermediate/semi-current records\n- **HistoricalArchive** (Q3621673): Permanent archival records\n\nUse `lifecycle_phase_type` slot to classify by lifecycle position.", - "properties": { - "creating_agency": { - "description": "Office, department, or unit that created these records.\n\n**RiC-O**: rico:hasCreator for provenance.\n\nFor institutional archives, this is typically an internal unit:\n- \"Director's Office\"\n- \"Conservation Department\"\n- \"Acquisition Committee\"\n- \"Human Resources\"\n\nMay link to OrganizationalStructure if modeled.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_accumulation": { - "description": "The accumulation period or event of the records.", - "items": { - "$ref": "#/$defs/Accumulation" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/CustodianType__identifier_optional" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ] - }, - "type": [ - "object", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_accessioned_through": { - "description": "Indicates that a record or object was accessioned through a specific event. MIGRATED from has_accession_date per Rule 53. Follows RiC-O naming convention.", - "items": { - "$ref": "#/$defs/AccessionEvent" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_appended_with": { - "description": "Links to a record set or collection that succeeded or was derived from this one.\n\n**USAGE**:\nUsed for:\n- Linking unprocessed archives (CustodianArchive) to their processed\n successors (CustodianCollection)\n- Tracking record set lineage after archival processing\n- Documenting collection derivation chains\n\n**RICO ALIGNMENT**:\nUses rico:hasSuccessor which indicates that a RecordSet has a successor\nthat was created from or replaced this record set.\n\n**NOTE**: The reverse relationship is rico:isSuccessorOf\n\n**TEMPORAL**:\nUse with temporal_extent to indicate when the succession occurred.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_stored_at": { - "description": "Links an entity to its storage location.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this relationship\nmay be historical - storage locations change over time (relocations, moves).\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `premis:storedAt` - PREMIS property linking \n objects to their storage location\n- **Close**: `crm:P55_has_current_location` - CIDOC-CRM current location\n- **Broad**: `schema:location` - Schema.org general location\n\n**Use Cases**:\n- Storage facility physical location (AuxiliaryPlace)\n- Digital object storage infrastructure\n- Collection item storage assignment\n\n**PREMIS Semantics**:\n\"Information needed to retrieve a physical item from its physical storage \nlocation or a file from the storage system, or to access a bitstream \nwithin a file.\"\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_transferred": { - "description": "Links an entity to a transfer event that affected it.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\ntransfer may be historical.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `rico:isOrWasAffectedBy` - RiC-O affected by\n (entity affected by an event)\n- **Related**: `crm:P30_transferred_custody_of` - CIDOC-CRM custody transfer\n- **Related**: `prov:wasInfluencedBy` - PROV-O influence\n\n**Use Cases**:\n- Collection items transferred between institutions\n- Archive holdings relocated to new facility\n- Custody transfer of heritage materials\n\n**Range**: TransferEvent class (structured transfer with dates, locations, policy)\n\n**Cardinality**:\nMultivalued - entities may have been transferred multiple times.\n", - "items": { - "$ref": "#/$defs/TransferEvent" - }, - "type": [ - "array", - "null" - ] - }, - "lifecycle_phase_type": { - "description": "Links this CustodianArchive INSTANCE to its lifecycle phase TYPE.\n\n**SKOS**: skos:broaderTransitive for instance-to-type relationship.\n\n**Archive Lifecycle Types (Wikidata)**:\n- Q3621648 (CurrentArchive) - Active records phase\n- Q244904 (DepositArchive) - Intermediate/semi-current phase\n- Q3621673 (HistoricalArchive) - Archival/permanent phase\n\n**Usage**:\nClassify this operational archive by its position in the records lifecycle.\nMost CustodianArchive records are in the intermediate phase (awaiting processing).\n\n**Example**:\n- CustodianArchive \"Ministry Records 2010-2020\" \u2192 lifecycle_phase_type \u2192 \n DepositArchive (Q244904) - semi-current, awaiting processing\n", - "type": [ - "string", - "null" - ] - }, - "managing_unit": { - "anyOf": [ - { - "$ref": "#/$defs/OrganizationalStructure" - }, - { - "type": "null" - } - ], - "description": "Organizational unit (department, division, section) responsible for managing this collection.\n\n**Bidirectional Relationship**:\n- **Forward**: CustodianCollection \u2192 OrganizationalStructure (managing_unit)\n- **Reverse**: OrganizationalStructure \u2192 CustodianCollection (managed_collections)\n\n**Validation**: If provided, temporal consistency is validated:\n- Collection.valid_from >= OrganizationalStructure.valid_from\n- Collection.valid_to <= OrganizationalStructure.valid_to (if unit dissolved)\n\n**Use Cases**:\n1. **Collection Management**: \"Which department manages the Medieval Manuscripts collection?\"\n2. **Staffing Cross-Reference**: \"Who are the curators managing this collection?\"\n - Follow: managing_unit \u2192 OrganizationalStructure \u2192 staff_members \u2192 PersonObservation\n3. **Organizational Change Impact**: Track collection custody through mergers, splits, reorganizations\n\n**Notes**:\n- If managing_unit is null, collection may be managed at institutional level\n- Collections may split across multiple units \u2192 create separate CustodianCollection instances\n- Custody transfers tracked via managing_unit changes + temporal validity\n" - }, - "processing_completed_date": { - "description": "Date when archival processing completed.\n\n**PROV-O**: prov:endedAtTime for activity completion.\n\nSet when status changes to PROCESSED_PENDING_TRANSFER.\n\n**Metrics**: (processing_completed_date - accession_date) = processing lag\nThis metric is often measured in YEARS or DECADES.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "processing_priority": { - "description": "Priority level for processing this accession.\n\n**Values**:\n- HIGH: Legal/regulatory requirement, researcher demand, condition issues\n- MEDIUM: Standard processing queue\n- LOW: No immediate need, can wait indefinitely\n- URGENT: Immediate processing required (legal hold, condition emergency)\n\nPriority may change based on:\n- Researcher requests\n- Anniversary/commemorative events\n- Grant funding for specific processing\n- Condition concerns (mold, pests, deterioration)\n", - "type": [ - "string", - "null" - ] - }, - "processing_started_date": { - "description": "Date when archival processing began.\n\n**PROV-O**: prov:startedAtTime for activity start.\n\nNull if status = UNPROCESSED or ON_HOLD.\nSet when status changes to IN_APPRAISAL or later.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "processing_status": { - "$ref": "#/$defs/ArchiveProcessingStatusEnum", - "description": "Current processing status of this operational archive.\n\n**See**: ArchiveProcessingStatusEnum for full status lifecycle.\n\n**Common progression**:\nUNPROCESSED \u2192 IN_APPRAISAL \u2192 IN_ARRANGEMENT \u2192 IN_DESCRIPTION \n\u2192 PROCESSED_PENDING_TRANSFER \u2192 TRANSFERRED_TO_COLLECTION\n" - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_label", - "refers_to_custodian" - ], - "title": "CustodianArchive", - "type": "object" - }, - "CustodianArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by CustodianArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CustodianArchiveRecordSetType", - "type": "object" - }, - "CustodianCollection": { - "additionalProperties": false, - "description": "Represents a heritage collection as a multi-aspect entity with independent temporal lifecycle. Collections are curatedHoldings (CIDOC-CRM E78) with provenance tracking, custody history, and organizational management relationships. Phase 4 (2025-11-22): Added managing_unit bidirectional relationship with OrganizationalStructure. Phase 8 (2025-11-22): Added validation constraints via slot_usage. Phase 9 (2025-11-26): Added PREMIS mappings for digital preservation (digital_surrogates, digitization_status, preservation_level).", - "properties": { - "custody_history": { - "description": "The history of custody, ownership, or stewardship of a collection, object, or record set. Documents transfers of custody, changes in ownership, and the chain of responsible parties over time, following archival provenance principles.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_content": { - "description": "Content held by this collection with typed categorization.\nMIGRATED from:\n- temporal_coverage per slot_fixes.yaml (Rule 53/56, 2026-01-16)\n- collection_type per slot_fixes.yaml (Rule 53, 2026-01-22)\n\nCollectionContent unifies content description with type classification:\n- content_description: Free-text description of the content\n- content_date_range: Temporal coverage (e.g., \"1602-1799\")\n- content_extent: Size/extent of content\n- has_or_had_type \u2192 CollectionContentType: Type classification (Archival, Library, Art, etc.)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label", - "pattern": "^.{1,500}$" - }, - "type": "array" - }, - "has_or_had_provenance": { - "anyOf": [ - { - "$ref": "#/$defs/Provenance" - }, - { - "type": "null" - } - ], - "description": "Provenance information for this data element.\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\nBroadened from ProvenanceBlock to uriorcurie to resolve OWL ambiguous type warnings. This allows classes to narrow via slot_usage to: - `ProvenanceBlock` for comprehensive provenance tracking - `SourceDocument` for source document references - String URIs for simple provenance references\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming follows RiC-O convention indicating that provenance associations can change over time: - Additional provenance may be added as data is enriched - Provenance may be updated when verification occurs - Historical provenance preserved through versioning\n**REPLACES**: - `all_data_real` (auto-generated stub, string range) - `is_or_was_real` (RealnessStatus typed class) - `has_all_data_real_flag` (boolean flag, no provenance) - `has_or_had_observation_source_document` (bespoke slot, Rule 55)\n**EXAMPLE**: ```yaml has_or_had_provenance:\n data_source: \"public_linkedin_profile\"\n extraction_date: \"2025-01-14T12:00:00Z\"\n confidence_score: 0.95\n note: \"Verified production data\"\n```" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/CollectionScope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": "array" - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_instantiated_by": { - "description": "Links an entity to its instantiated type class.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this relationship\nmay be historical - device types may change or be reclassified over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `rdf:type` - RDF type relationship\n- **Close**: `schema:additionalType` - Schema.org additional type\n\n**Usage**:\nUse with typed class hierarchies (e.g., IoTDevice, DeviceType).\nRange is uriorcurie to allow both class instances and URI references.\n\n**Replaces**: device_type slot per slot_fixes.yaml migration (2026-01-25)\n", - "items": { - "$ref": "#/$defs/DigitalInstantiation" - }, - "type": [ - "array", - "null" - ] - }, - "managing_unit": { - "anyOf": [ - { - "$ref": "#/$defs/OrganizationalStructure" - }, - { - "type": "null" - } - ], - "description": "Organizational unit (department, division, section) responsible for managing this collection.\n\n**Bidirectional Relationship**:\n- **Forward**: CustodianCollection \u2192 OrganizationalStructure (managing_unit)\n- **Reverse**: OrganizationalStructure \u2192 CustodianCollection (managed_collections)\n\n**Validation**: If provided, temporal consistency is validated:\n- Collection.valid_from >= OrganizationalStructure.valid_from\n- Collection.valid_to <= OrganizationalStructure.valid_to (if unit dissolved)\n\n**Use Cases**:\n1. **Collection Management**: \"Which department manages the Medieval Manuscripts collection?\"\n2. **Staffing Cross-Reference**: \"Who are the curators managing this collection?\"\n - Follow: managing_unit \u2192 OrganizationalStructure \u2192 staff_members \u2192 PersonObservation\n3. **Organizational Change Impact**: Track collection custody through mergers, splits, reorganizations\n\n**Notes**:\n- If managing_unit is null, collection may be managed at institutional level\n- Collections may split across multiple units \u2192 create separate CustodianCollection instances\n- Custody transfers tracked via managing_unit changes + temporal validity\n" - }, - "preservation_level": { - "description": "Level of digital preservation commitment for this collection.\n\nPREMIS: policy for preservation commitment levels.\nAligns with premis:PreservationPolicy vocabulary.\n\nValues:\n- FULL: Long-term preservation with format migration commitment\n- BIT_LEVEL: Bit preservation only (no format migration)\n- ACCESS_ONLY: Access copies maintained, no preservation guarantee\n- NONE: No formal digital preservation policy\n\nApplies to digital_surrogates and born-digital materials in collection.\n\nFor specific file-level preservation actions, see DigitalPlatform\npreservation slots (fixity_check_date, storage_location).\n", - "type": [ - "string", - "null" - ] - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_label", - "refers_to_custodian", - "is_or_was_derived_from" - ], - "title": "CustodianCollection", - "type": "object" - }, - "CustodianIdentifier": { - "additionalProperties": false, - "description": "An external identifier assigned to a heritage custodian entity by an authority.\nExtends the generic Identifier class with provenance tracking:\n- Which authority allocated the identifier\n- Under what standard it was assigned\n- When it was allocated\n- Canonical/normalized form for matching\nConnected to the Custodian hub via inverse property crm:P48i_is_preferred_identifier_of\n(the Custodian has this Identifier as a preferred identifier).\nCIDOC-CRM E42_Identifier: Formal symbols or reference codes for unique identification.\nCIDOC-CRM P48_has_preferred_identifier: Links E1_CRM_Entity (Custodian) to E42_Identifier.\n**Use for**: \n- External authority identifiers (ISIL, Wikidata, VIAF, KvK, ROR)\n- Registration numbers and codes\n- Persistent identifiers from registries\n**Connection to Hub**:\n- The Custodian hub uses crm:P48_has_preferred_identifier to point to CustodianIdentifier\n- This CustodianIdentifier uses crm:P48i_is_preferred_identifier_of to point back to the Custodian hub\n- Enables multiple identifiers per custodian (from different authorities)\n**Extended Provenance (v2)**:\nThe identifier now tracks its full lineage:\n- has_or_had_standard: Which Standard defines this identifier type (ISIL \u2192 ISO 15511)\n- allocated_by: Which AllocationAgency assigned this specific identifier\n- identifier_format_used: Which format variant is used in identifier_value\n- has_or_had_canonical_form: Normalized form (CanonicalForm) for deduplication and matching\n- allocation_date: When the identifier was assigned\n**Dual-Purpose Identifiers**:\nSome identifiers (ISNI, VIAF) also identify name authority records:\n- has_or_had_secondary_label: Links to the CustodianName record this identifier also identifies (as a Label)\n**Enables**:\n- External identifier management (scheme + value)\n- Cross-reference to authority registries\n- Persistent identifier resolution\n- Inter-dataset linking\n- Full provenance tracking (who allocated, when, under what standard)\n- Name authority linkage (for ISNI, VIAF)", - "properties": { - "has_or_had_scheme": { - "anyOf": [ - { - "$ref": "#/$defs/IdentifierScheme" - }, - { - "type": "null" - } - ], - "description": "Identifier scheme." - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "$ref": "#/$defs/IdentifierValue" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_allocated_by": { - "description": "The AllocationAgency that assigned this specific identifier.\n\nFor locally-allocated identifiers, tracks which agency is responsible.\n\nExamples:\n- Dutch public library ISIL \u2192 KB (Koninklijke Bibliotheek)\n- Dutch academic library ISIL \u2192 OCLC\n- Dutch archive ISIL \u2192 Nationaal Archief\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_allocated_through": { - "anyOf": [ - { - "$ref": "#/$defs/AllocationEvent" - }, - { - "type": "null" - } - ], - "description": "The event (activity) through which an identifier was allocated.\n\n**Temporal Semantics** (RiC-O Pattern):\n\"isOrWas\" indicates the allocation event in the past.\n\n**Ontological Alignment**:\n- `prov:wasGeneratedBy`: Completion of production of a new entity by an activity.\n\n**Range**:\n- `AllocationEvent` class.\n" - } - }, - "title": "CustodianIdentifier", - "type": "object" - }, - "CustodianLegalStatus": { - "additionalProperties": false, - "description": "Formal legal entity representing ONE ASPECT of a heritage custodian - the LEGAL dimension.\n\nCRITICAL: CustodianLegalStatus is ONE OF FIVE possible outputs from ReconstructionActivity:\n1. CustodianLegalStatus - Formal legal entity (PRECISE, registered)\n2. CustodianName - Emic label (ambiguous, contextual)\n3. CustodianPlace - Nominal place designation (not coordinates!)\n4. CustodianCollection - Heritage collections managed by the custodian\n5. DigitalPlatform - Digital systems and platforms operated by the custodian\n\nAll five aspects independently identify the SAME Custodian hub and have independent\ntemporal lifecycles. Each is derived from CustodianObservation(s) via prov:wasDerivedFrom\nand generated by ReconstructionActivity via prov:wasGeneratedBy.\n\n**Characteristics of CustodianLegalStatus**:\n- Precisely defined through legal registration\n- Has formal legal name (as registered)\n- Has legal form (ISO 20275 codes: stichting, association, government agency, etc.)\n- Has registration number (KvK, company number, charity number, etc.)\n- LESS AMBIGUOUS than CustodianName (legal names are formally defined)\n\n**Example Distinction**:\n- CustodianLegalStatus: \"Stichting Rijksmuseum\" (legal entity, KvK 41215422)\n- CustodianName: \"Rijksmuseum\" (emic label, how it presents itself)\n- CustodianPlace: \"het museum op het Museumplein\" (place reference)\n\n**For Legal Entities** (organizations, corporations, governments):\n- MUST have legal registration number and legal form\n- Formal governance structures documented\n\n**For Individuals** (private collectors, curators):\n- May not have legal registration (unless operating as sole proprietor)\n- Identity established through biographical sources\n\nNOTE: Informal groups WITHOUT legal status do NOT get CustodianLegalStatus.\nThey may still have CustodianName or CustodianPlace.\n\nA legal status MUST derive from one or more CustodianObservations \nvia prov:wasDerivedFrom. The reconstruction process (entity resolution, \nreconciliation) MUST be documented via prov:wasGeneratedBy.", - "properties": { - "defines_or_defined": { - "description": "Defines or defined a structure, policy, or role.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_document": { - "description": "A document associated with the entity.", - "items": { - "$ref": "#/$defs/ArticlesOfAssociation" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "$ref": "#/$defs/RegistrationNumber" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_status": { - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n", - "type": "string" - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": "array" - }, - "is_or_was_dissolved_by": { - "description": "Dissolution event for an organization or legal status. MIGRATED from dissolution_date and dissolved_date (2026-01-26).", - "items": { - "$ref": "#/$defs/DissolutionEvent" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": "array" - }, - "is_or_was_responsible_for": { - "description": "Links a legal entity to collections or resources for which it bears formal legal responsibility.\n\n**TEMPORAL SEMANTICS**:\nPer RiC-O and Rule 39, the \"is_or_was\" prefix indicates that:\n- The relationship may be current (active responsibility)\n- The relationship may be historical (past responsibility, now transferred)\n- Temporal validity is tracked via the range class (e.g., Collection.temporal_extent)\n\n**USAGE**:\nUsed for:\n- Legal responsibility for heritage collections\n- Custodial responsibility for archival holdings\n- Formal accountability for cultural property\n\n**RELATIONSHIP TO TOOI**:\n- Forward direction from legal entity to collection\n- Replaces collections_under_responsibility slot\n- Maps to tooi:heeft_informatieobject semantics\n\n**BIDIRECTIONAL PATTERN**:\n- Forward: CustodianLegalStatus \u2192 Collection (is_or_was_responsible_for)\n- Inverse: Collection \u2192 CustodianLegalStatus (is_or_was_held_by or has_or_had_holder)\n", - "items": { - "$ref": "#/$defs/LegalResponsibilityCollection" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_revision_of": { - "anyOf": [ - { - "$ref": "#/$defs/CustodianLegalStatus" - }, - { - "type": "null" - } - ], - "description": "Links an entity to a previous version it revises.\n\n**USAGE**:\nUsed for:\n- Document revisions\n- Record updates\n- Version chains\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: prov:wasRevisionOf (PROV-O revision relationship)\n" - }, - "is_or_was_suborganization_of": { - "anyOf": [ - { - "$ref": "#/$defs/CustodianLegalStatus" - }, - { - "type": "null" - } - ], - "description": "Parent entity in organizational hierarchy, currently or historically.\n\n**RiC-O Temporal Pattern**: Uses `isOrWas*` pattern because organizational\nhierarchies change over time. An institution may have been under one\nministry in the past but transferred to another.\n\n**Example**:\nRijksmuseum:\n- Was under Ministry of OCW (until 2013)\n- Is now an independent foundation (Stichting Rijksmuseum)\n" - }, - "legal_entity_type": { - "description": "High-level legal entity classification distinguishing between natural persons\nand legal persons (organizations).\n\nLinks to LegalEntityType class which provides two top-level categories:\n- PERSON: Natural person (individual with legal rights)\n- ORGANIZATION: Legal person (all organizational forms including corporations, governments)\n\nThis replaces the deprecated entity_type enum which incorrectly mixed\ninformal groups with formal legal entities.\n", - "type": "string" - }, - "legal_form": { - "description": "Specific legal form based on ISO 20275 Entity Legal Forms (ELF) codes.\nLinks to LegalForm class with jurisdiction-specific legal form details.\n\nROV: orgType for legal form classification.\nW3C Org: classification links to gleif_elf:EntityLegalForm SKOS Concept.\n\nRequired for ORGANIZATION entities, not applicable for PERSON.\nValues MUST be valid ELF codes from /data/ontology/2023-09-28-elf-code-list-v1.5.csv.\n", - "type": [ - "string", - "null" - ] - }, - "legal_jurisdiction": { - "description": "Legal jurisdiction where this umbrella organization has authority.\n\nRequired for UmbrellaOrganisation because legal parent-child relationships\nare defined by law within specific jurisdictions.\n\n**Examples:**\n- Ministry of OCW: jurisdiction_type=NATIONAL, country=NL\n- Bavarian State Ministry: jurisdiction_type=SUBNATIONAL, subregion=DE-BY\n- University of Amsterdam: jurisdiction_type=NATIONAL, country=NL\n", - "type": [ - "string", - "null" - ] - }, - "legal_name": { - "description": "Official legal name as registered in legal documents (KvK, company registry, etc.).\nLinks to LegalName class with structured name variants (TOOI pattern).\nThis is DISTINCT from hc:CustodianName (emic operational name).\nExample: LegalName{full_name: \"Stichting Rijksmuseum\", name_without_type: \"Rijksmuseum\"} (legal) \nvs CustodianName{emic_name: \"Rijksmuseum\"} (emic operational).\n", - "type": "string" - }, - "primary_register": { - "description": "Primary trade register where this entity is registered.\nLinks to TradeRegister class.\n\ngleif_base:isRegisteredIn - \"indicates the registry that something is registered in\"\ngleif_ra:BusinessRegistry - \"a registry for registering and maintaining \ninformation about business entities\"\n\nExamples: Netherlands Handelsregister, UK Companies Register, German HRB.\n", - "type": [ - "string", - "null" - ] - }, - "reconstruction_method": { - "description": "Documents the methodology used to create this reconstruction from\navailable observations. May include data sources, algorithms,\neditorial decisions, and confidence levels.\n", - "type": [ - "string", - "null" - ] - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "registration_authority": { - "description": "Primary registration authority for this entity.\nLinks to RegistrationAuthority class.\n\nExamples: Chamber of Commerce, Companies House, Charity Commission, IRS.\n\nThe RegistrationAuthority class includes:\n- name: Official name (e.g., \"Kamer van Koophandel\")\n- abbreviation: Short code (e.g., \"KvK\")\n- jurisdiction: Geographic jurisdiction (country/region)\n- website: Official website\n- registration_types: Types of entities they can register\n", - "type": [ - "string", - "null" - ] - }, - "registration_date": { - "description": "DEPRECATED: Use registration_numbers[].temporal_validity instead.\nTemporal validity is now captured in RegistrationNumber class.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "service_area": { - "description": "Geographic area(s) served by this heritage custodian.\n\n**Dutch Term**: \"Werkgebied\" - the operational territory where the custodian\nprovides services, collects materials, or has jurisdiction.\n\n**Use Cases**:\n\n1. **Archives (Werkgebied)**:\n - Provincial archive: Covers entire province\n - Regional archive: Covers specific municipalities\n - Municipal archive: Covers single city\n\n2. **Libraries (Service District)**:\n - Public library: Defined lending district\n - Academic library: May have national scope\n\n3. **Museums (Collection Scope)**:\n - Regional museum: Collects from specific area\n - National museum: Country-wide collection mandate\n\n**Multiple Service Areas**:\n\nA custodian may have multiple service areas:\n- Current service area (is_historical_boundary = false)\n- Historical service areas (is_historical_boundary = true)\n- Different service areas for different functions\n\n**Example - Noord-Hollands Archief**:\n\n```yaml\nservice_area:\n - service_area_name: \"NHA Provincial Coverage\"\n service_area_type: PROVINCIAL\n covers_subregions:\n - iso_3166_2_code: \"NL-NH\"\n - service_area_name: \"NHA Municipal Records (Haarlem)\"\n service_area_type: MUNICIPAL\n covers_settlements:\n - geonames_id: 2755003\n```", - "items": { - "$ref": "#/$defs/ServiceArea" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "legal_entity_type", - "legal_name", - "has_or_had_status", - "refers_to_custodian", - "is_or_was_derived_from", - "is_or_was_generated_by" - ], - "title": "CustodianLegalStatus", - "type": "object" - }, - "CustodianName": { - "additionalProperties": false, - "description": "Standardized emic (insider) name DERIVED FROM CustodianObservation(s).\n\nCRITICAL: CustodianName is NOT a subclass of CustodianObservation!\n- CustodianObservation = Evidence seen in sources (input)\n- CustodianName = Standardized interpretation (output)\n- Relationship: CustodianName prov:wasDerivedFrom CustodianObservation\n\nCustodianName represents the CANONICAL LABEL - the standardized form\naccepted by the custodian itself for public identification.\n\nIMPORTANT: CustodianName \u2260 Legal Name\n- CustodianName = How custodian presents itself (emic, operational)\n- Legal Name = Formal registered name (in CustodianLegalStatus)\n- Example: \"Rijksmuseum\" (emic) vs \"Stichting Rijksmuseum\" (legal)\n\n===========================================================================\nMANDATORY RULE: Legal Form Terms MUST Be Filtered\n===========================================================================\n\nLegal form designations (Stichting, Foundation, Inc., Ltd., GmbH, etc.)\nMUST ALWAYS be removed from CustodianName, even when the custodian\nself-identifies with them. This is the ONE EXCEPTION to the emic principle.\n\nRATIONALE:\n1. Legal form is METADATA about the entity, not part of its identity\n2. Legal forms change (foundation\u2192corporation) but identity persists\n3. Enables consistent cross-jurisdictional comparison\n4. Prevents duplicate entries (\"X Foundation\" vs \"X\")\n5. Aligns with ISO 20275 (Legal Entity Identifier) principles\n\nEXAMPLES:\n- \"Stichting Rijksmuseum\" \u2192 CustodianName: \"Rijksmuseum\"\n- \"Hidde Nijland Stichting\" \u2192 CustodianName: \"Hidde Nijland\"\n- \"The Getty Foundation\" \u2192 CustodianName: \"The Getty\"\n- \"British Museum Trust Ltd\" \u2192 CustodianName: \"British Museum\"\n- \"Funda\u00e7\u00e3o Biblioteca Nacional\" \u2192 CustodianName: \"Biblioteca Nacional\"\n\nLEGAL FORM TERMS TO FILTER (partial list by jurisdiction):\n- Dutch: Stichting, Vereniging, Co\u00f6peratie, B.V., N.V., V.O.F.\n- English: Foundation, Trust, Inc., Ltd., LLC, Corp., Association\n- German: Stiftung, Verein, e.V., GmbH, AG\n- French: Fondation, Association, S.A., S.A.R.L.\n- Spanish: Fundaci\u00f3n, Asociaci\u00f3n, S.A., S.L.\n- Portuguese: Funda\u00e7\u00e3o, Associa\u00e7\u00e3o, Ltda., S.A.\n- Italian: Fondazione, Associazione, S.p.A., S.r.l.\n\nSee: rules/LEGAL_FORM_FILTERING_RULE.md for comprehensive global list\n\n===========================================================================\nMANDATORY RULE: Special Characters MUST Be Excluded from Abbreviations\n===========================================================================\n\nWhen generating abbreviations for GHCID, special characters and symbols\nMUST be completely removed. Only alphabetic characters (A-Z) are permitted\nin the has_or_had_abbreviation component of the GHCID.\n\nRATIONALE:\n1. URL/URI safety - Special characters require encoding in URIs\n2. Filename safety - Characters like &, /, \\, : are invalid in filenames\n3. Parsing consistency - Avoids delimiter conflicts in data pipelines\n4. Cross-system compatibility - Ensures interoperability with all systems\n5. Human readability - Clean identifiers are easier to communicate\n\nCHARACTERS TO REMOVE (exhaustive list):\n- Ampersand: & (e.g., \"Records & Archives\" \u2192 \"RA\", not \"R&A\")\n- Slash: / (e.g., \"Art/Design Museum\" \u2192 \"ADM\", not \"A/DM\")\n- Backslash: \\\n- Plus: + (e.g., \"Culture+\" \u2192 \"C\")\n- At sign: @\n- Hash/Pound: #\n- Percent: %\n- Dollar: $\n- Asterisk: *\n- Parentheses: ( )\n- Brackets: [ ] { }\n- Pipe: |\n- Colon: :\n- Semicolon: ;\n- Quotation marks: \" ' ` \n- Comma: ,\n- Period: . (unless part of has_or_had_abbreviation like \"U.S.\" \u2192 \"US\")\n- Hyphen: - (skip, do not replace with letter)\n- Underscore: _\n- Equals: =\n- Question mark: ?\n- Exclamation: !\n- Tilde: ~\n- Caret: ^\n- Less/Greater than: < >\n\nEXAMPLES:\n- \"Department of Records & Information Management\" \u2192 \"DRIM\" (not \"DR&IM\")\n- \"Art + Culture Center\" \u2192 \"ACC\" (not \"A+CC\")\n- \"Museum/Gallery Amsterdam\" \u2192 \"MGA\" (not \"M/GA\")\n- \"Heritage@Digital\" \u2192 \"HD\" (not \"H@D\")\n- \"Archives (Historical)\" \u2192 \"AH\" (not \"A(H)\")\n\nSee: rules/ABBREVIATION_SPECIAL_CHAR_RULE.md for complete documentation\n\n===========================================================================\nMANDATORY RULE: Diacritics MUST Be Normalized to ASCII in Abbreviations\n===========================================================================\n\nWhen generating abbreviations for GHCID, diacritics (accented characters)\nMUST be normalized to their ASCII base letter equivalents. Only ASCII\nuppercase letters (A-Z) are permitted in the has_or_had_abbreviation component.\n\nRATIONALE:\n1. URI/URL safety - Non-ASCII requires percent-encoding\n2. Cross-system compatibility - ASCII is universally supported\n3. Parsing consistency - No special character handling needed\n4. Human readability - Easier to type and communicate\n\nDIACRITICS TO NORMALIZE (examples by language):\n- Czech: \u010c\u2192C, \u0158\u2192R, \u0160\u2192S, \u017d\u2192Z, \u011a\u2192E, \u016e\u2192U\n- Polish: \u0141\u2192L, \u0143\u2192N, \u00d3\u2192O, \u015a\u2192S, \u0179\u2192Z, \u017b\u2192Z, \u0104\u2192A, \u0118\u2192E\n- German: \u00c4\u2192A, \u00d6\u2192O, \u00dc\u2192U, \u00df\u2192SS\n- French: \u00c9\u2192E, \u00c8\u2192E, \u00ca\u2192E, \u00c7\u2192C, \u00d4\u2192O\n- Spanish: \u00d1\u2192N, \u00c1\u2192A, \u00c9\u2192E, \u00cd\u2192I, \u00d3\u2192O, \u00da\u2192U\n- Nordic: \u00c5\u2192A, \u00c4\u2192A, \u00d6\u2192O, \u00d8\u2192O, \u00c6\u2192AE\n\nEXAMPLES:\n- \"Vlastiv\u011bdn\u00e9 muzeum\" (Czech) \u2192 \"VM\" (not \"VM\" with h\u00e1\u010dek)\n- \"\u00d6sterreichische Nationalbibliothek\" (German) \u2192 \"ON\"\n- \"Biblioth\u00e8que nationale\" (French) \u2192 \"BN\"\n\nREAL-WORLD EXAMPLE:\n- \u274c WRONG: CZ-VY-TEL-L-VHSPAO\u010cRZS (contains \u010c)\n- \u2705 CORRECT: CZ-VY-TEL-L-VHSPAOCRZS (ASCII only)\n\nIMPLEMENTATION:\n```python\nimport unicodedata\nnormalized = unicodedata.normalize('NFD', text)\nascii_text = ''.join(c for c in normalized if unicodedata.category(c) != 'Mn')\n```\n\nSee: rules/ABBREVIATION_SPECIAL_CHAR_RULE.md for complete documentation\n\nCan be generated by:\n1. ReconstructionActivity (formal entity resolution) - is_or_was_generated_by link\n2. Direct extraction (simple standardization) - no is_or_was_generated_by link", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": "array" - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "name_authority": { - "description": "Authority that authorized this name (board resolution, statute, tradition)", - "type": [ - "string", - "null" - ] - }, - "name_language": { - "description": "The language or locale code (ISO 639-1 or BCP 47) of the emic name.\nExamples: 'nl' for Dutch, 'en' for English, 'pt-BR' for Brazilian Portuguese.\n", - "pattern": "^[a-z]{2}(-[A-Z]{2})?$", - "type": [ - "string", - "null" - ] - }, - "name_validity_period": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal period during which this name was valid (with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links to E52_Time-Span for uncertain validity periods.\n\nUse this when name validity dates are uncertain:\n- \"Name adopted sometime in the 1920s\"\n- \"Name changed around 1950\"\n- \"Name used from approximately 1800 to 1850\"\n\nFor precise dates, use valid_from/valid_to instead.\n" - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "standardized_name": { - "description": "The canonical emic name accepted by custodian itself (REQUIRED)", - "type": "string" - }, - "supersedes_or_superseded": { - "description": "Entity that this one supersedes, or that supersedes this one.\nUse when a new version corrects or updates a previous one. Direction is determined by context - the slot represents the relationship in either direction.\nPROV-O: wasRevisionOf for updated versions.\nMigrated from bespoke `supersede` slot per Rule 53/56 (2026-01-17). Original slot_uri (hc:supersedes) preserved in exact_mappings.", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "refers_to_custodian", - "standardized_name", - "is_or_was_derived_from" - ], - "title": "CustodianName", - "type": "object" - }, - "CustodianNameClaim": { - "additionalProperties": false, - "description": "Official custodian name.\nMay differ from display name in heritage context.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "CustodianNameClaim", - "type": "object" - }, - "CustodianObservation": { - "additionalProperties": false, - "description": "Source-based evidence of a heritage custodian's existence.\n\nCRITICAL: CustodianObservation does NOT directly link to Custodian!\n- Observations are RAW EVIDENCE (input to ReconstructionActivity)\n- Only ReconstructionActivity can determine if custodian is successfully identified\n- Generated outputs (LegalStatus/Name/Place) link to Custodian, not observations\n\nPROV-O Flow:\n CustodianObservation \u2192 prov:used \u2192 ReconstructionActivity\n ReconstructionActivity \u2192 prov:wasGeneratedBy \u2192 CustodianLegalStatus/Name/Place\n CustodianLegalStatus/Name/Place \u2192 refers_to_custodian \u2192 Custodian\n\nObservations can capture BOTH emic (insider) and etic (outsider) perspectives:\n- Emic: \"Rijksmuseum\" (how institution presents itself)\n- Etic: \"The National Museum\" (how outsiders refer to it)", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "$ref": "#/$defs/ConfidenceValue" - }, - "type": [ - "array", - "null" - ] - }, - "observation_context": { - "description": "Context of the observation (e.g., letterhead, website, signage, archival record)", - "type": [ - "string", - "null" - ] - }, - "observation_date": { - "description": "Date when this observation was made.\n\nFor automated systems: timestamp of data collection.\nFor human observers: date of site visit or assessment.\n\nPROV-O: atTime specifies instant at which activity occurred.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "observation_language": { - "anyOf": [ - { - "$ref": "#/$defs/LanguageCode" - }, - { - "type": "null" - } - ], - "description": "Language of observed name (as LanguageCode class reference)" - }, - "observation_source": { - "description": "Source where this staff role information was observed.\n\n**PiCo Pattern**: PersonObservation MUST link to source (evidence-based)\n**PROV-O**: `prov:hadPrimarySource` for provenance tracking\n\n**Source Types**:\n- Staff directory (online or print)\n- Organizational chart\n- Annual report\n- Institutional website\n- Archival personnel records\n- Publication credits\n- Email signature\n\n**Structure**: Reference to SourceDocument with:\n- source_type: \"Staff directory\", \"Annual report\", etc.\n- source_uri: URL if available\n- observation_date: When source was consulted\n\n**Data Quality**: Observation with documented source = higher confidence\n\nNote: slot_uri changed from dcterms:source to hc:observationSource to resolve OWL ambiguous type warning. dcterms:source may have different property type expectations across ontologies.\n**Range**: `Any` (2026-01-16) - Allows string values and SourceDocument class instances.\n", - "type": [ - "string", - "null" - ] - }, - "observed_name": { - "$ref": "#/$defs/CustodianAppellation", - "description": "Name as recorded in the source (emic perspective)" - }, - "refers_or_referred_to": { - "description": "Links an observation or document to the entity it refers to or describes.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"refersOrReferred\" naming follows RiC-O convention indicating this relationship\nmay be historical - observations may reference entities from the past.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:wasDerivedFrom` - PROV-O derivation\n- **Close**: `rico:refersTo` - RiC-O reference relationship\n\n**MIGRATED FROM**: `derived_from_entity` slot\n\nThe revision pattern generalizes the derivation relationship:\n- Can link to EntityReconstruction (reconstructed formal entities)\n- Can link to any entity type (not just CustodianLegalStatus)\n- Enables provenance chain traversal\n", - "items": { - "$ref": "#/$defs/CustodianLegalStatus" - }, - "type": [ - "array", - "null" - ] - }, - "source": { - "description": "Source document where observation was recorded (REQUIRED)", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "observed_name", - "source" - ], - "title": "CustodianObservation", - "type": "object" - }, - "CustodianPlace": { - "additionalProperties": false, - "description": "Nominal place designation used to identify a heritage custodian.\n\nCRITICAL: This is NOT geographic coordinates! This is a NOMINAL REFERENCE\nto a place as a way of identifying the custodian.\n\nCustodianPlace represents how people refer to a custodian through place:\n- \"het herenhuis in de Schilderswijk\" (neighborhood reference)\n- \"the mansion\" (generic building reference)\n- \"Rijksmuseum\" (building name as place, not institution name)\n- \"het museum op het Museumplein\" (landmark reference)\n\n**Relationship to FeaturePlace**:\n\nCustodianPlace provides the NOMINAL REFERENCE (WHERE):\n- \"Rijksmuseum\" (building name used as place identifier)\n\nFeaturePlace classifies the FEATURE TYPE (WHAT TYPE):\n- MUSEUM building type\n\nExample:\n```yaml\nCustodianPlace:\n place_name: \"Rijksmuseum\"\n has_feature_type:\n feature_type: MUSEUM\n feature_description: \"Neo-Gothic museum building (1885)\"\n```\n\n**Distinction from GeoSpatialPlace class**:\n\n| CustodianPlace | GeoSpatialPlace |\n|----------------|-----------------|\n| Nominal reference | Geographic coordinates |\n| \"the mansion in the Schilderswijk\" | lat: 52.0705, lon: 4.2894 |\n| Emic/contextual | Precise/measured |\n| May be ambiguous | Unambiguous |\n| Identifies custodian | Locates custodian |\n| Source: archives, oral history | Source: GPS, cadastral surveys |\n\n**Relationship to GeoSpatialPlace**:\n\nCustodianPlace.has_geospatial_location \u2192 GeoSpatialPlace\n\nA nominal place reference can link to precise geospatial coordinates:\n- CustodianPlace: \"the mansion in the Schilderswijk, Den Haag\"\n- GeoSpatialPlace: lat 52.0705, lon 4.2894, WKT: POINT(4.2894 52.0705)\n\n**Generated by ReconstructionActivity**:\nCustodianPlace is ONE OF THREE possible outputs from ReconstructionActivity:\n1. CustodianLegalStatus - Formal legal entity\n2. CustodianName - Emic label\n3. CustodianPlace - Nominal place designation (THIS CLASS)\n\nAll three aspects independently identify the SAME Custodian hub via refers_to_custodian.", - "properties": { - "country": { - "anyOf": [ - { - "$ref": "#/$defs/Country" - }, - { - "type": "null" - } - ], - "description": "Country where this place is located (OPTIONAL).\n\nLinks to Country class with ISO 3166-1 codes.\n\nSchema.org: addressCountry uses ISO 3166-1 alpha-2 codes.\n\nUse when:\n- Place name is ambiguous across countries (\"Victoria Museum\" exists in multiple countries)\n- Feature types are country-specific (e.g., \"cultural heritage of Peru\")\n- Generating country-conditional enums\n\nExamples:\n- \"Rijksmuseum\" \u2192 country.alpha_2 = \"NL\"\n- \"cultural heritage of Peru\" \u2192 country.alpha_2 = \"PE\"\n" - }, - "has_or_had_auxiliary_entities": { - "description": "Auxiliary or supporting entities associated with the primary entity.\n**SEMANTIC PATTERN**:\nThis slot follows the RiC-O temporal predicate pattern (has_or_had_*) to indicate that auxiliary relationships may change over time.\n**REPLACES**:\n- `auxiliary_places` - Physical locations supporting the main entity - `auxiliary_platforms` - Digital platforms supporting the main entity\n**USE CASES**:\n1. **Storage locations**: Off-site storage, external repositories 2. **Branch facilities**: Satellite offices, reading rooms 3. **Partner platforms**: External discovery services, aggregators", - "items": { - "$ref": "#/$defs/AuxiliaryPlace" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_geographic_subdivision": { - "description": "Geographic subdivision within a country (state, province, region, department, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity may have been located in different subdivisions\nover time (e.g., due to boundary changes, administrative reorganization).\n\n**Geographic Hierarchy**:\nCountry \u2192 GeographicSubdivision (this slot) \u2192 Settlement\n\n**Identifier Format**:\nISO 3166-2 codes: {country_alpha2}-{subdivision_code}\nExamples: US-PA (Pennsylvania), ID-BA (Bali), DE-BY (Bavaria), NL-LI (Limburg)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `lcc_cr:isSubregionOf` - OMG Languages Countries and Codes\n- **Exact**: `schema:addressRegion` - Schema.org administrative region\n- **Close**: `locn:adminUnitL2` - INSPIRE administrative unit level 2\n- **Close**: `gn:A.ADM1` - GeoNames first-order administrative division\n\n**Use Cases**:\n- Place is located in a specific subdivision (e.g., \"Pittsburgh museum\" \u2192 US-PA)\n- Feature types are region-specific (e.g., \"sacred shrine (Bali)\" \u2192 ID-BA)\n- Legal jurisdiction at subnational level (e.g., Bavarian archive law)\n- Generating GHCID region codes\n\n**Range**: `uriorcurie` (Rule 55) - Allows both:\n- URI references to Subregion class instances\n- Direct ISO 3166-2 code CURIEs\n\n**Migration Note** (2026-01-17):\nReplaces domain-specific `subregion` slot per slot_fixes.yaml revision.\nProvides generic predicate name applicable across geographic contexts.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_location": { - "description": "The location of an entity.", - "items": { - "$ref": "#/$defs/GeoSpatialPlace" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "place_language": { - "description": "Language of place name.\n\nDublin Core: language for linguistic context.\n", - "type": [ - "string", - "null" - ] - }, - "place_name": { - "description": "Nominal place designation (REQUIRED).\n\nCIDOC-CRM: P87_is_identified_by links E1_CRM_Entity to E41_Appellation.\n\nThis is the NOMINAL NAME of the place, not coordinates!\n", - "type": "string" - }, - "place_note": { - "description": "Contextual notes about place reference.\n\nSKOS: note for editorial annotations.\n\nUse for:\n- Disambiguation (\"not the other mansion on Voorhout\")\n- Historical context (\"mansion demolished 1950\")\n- Interpretation notes (\"used as place reference, not institution name\")\n", - "type": [ - "string", - "null" - ] - }, - "place_specificity": { - "$ref": "#/$defs/PlaceSpecificityEnum", - "description": "Level of place specificity.\n\nIndicates how precisely the place reference identifies a location:\n- BUILDING: Specific building\n- STREET: Street-level\n- NEIGHBORHOOD: Neighborhood/district\n- CITY: City-level\n- REGION: Regional\n- VAGUE: Unspecified (\"the mansion\")\n" - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "settlement": { - "anyOf": [ - { - "$ref": "#/$defs/Settlement" - }, - { - "type": "null" - } - ], - "description": "City/town where this place is located (OPTIONAL).\n\nLinks to Settlement class with GeoNames numeric identifiers.\n\nGeoNames ID resolves ambiguity: 41 \"Springfield\"s in USA have different IDs.\n\nSchema.org: location for settlement reference.\n\nUse when:\n- Place is in a specific city (e.g., \"Amsterdam museum\" \u2192 GeoNames 2759794)\n- Feature types are city-specific (e.g., \"City of Pittsburgh historic designation\")\n- Maximum geographic precision needed\n\nExamples:\n- \"Amsterdam museum\" \u2192 settlement.geonames_id = 2759794\n- \"Pittsburgh designation\" \u2192 settlement.geonames_id = 5206379\n- \"Rio museum\" \u2192 settlement.geonames_id = 3451190\n\nNOTE: settlement must be within the specified country and subregion (if provided).\n\nGeoNames lookup: https://www.geonames.org/{geonames_id}/\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "place_name", - "refers_to_custodian" - ], - "title": "CustodianPlace", - "type": "object" - }, - "CustomCMS": { - "additionalProperties": false, - "description": "Institution-specific or custom-built collection management systems.\n\n**TYPICAL FEATURES**:\n- Tailored to institutional needs\n- May be legacy systems\n- Often lack standard API/export\n- Proprietary data models\n\n**EXAMPLES**:\n- In-house developed systems\n- Heavily customized commercial systems\n- Legacy database applications\n- Spreadsheet-based systems (transitional)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/CMSType" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "CustomCMS", - "type": "object" - }, - "CustomerAccountSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Account records (historical).\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "BankArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by BankArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CustomerAccountSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CustomerAccountSeries", - "type": "object" - }, - "CzechSpecializedFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Czech specialized archives.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "SpecializedArchivesCzechia", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by SpecializedArchivesCzechia custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CzechSpecializedFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CzechSpecializedFonds", - "type": "object" - }, - "CzechiaRegionalStateFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Czech regional state records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "StateRegionalArchiveCzechia", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by StateRegionalArchiveCzechia custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "CzechiaRegionalStateFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "CzechiaRegionalStateFonds", - "type": "object" - }, - "DOIIdentifier": { - "additionalProperties": false, - "description": "Digital Object Identifier (ISO 26324).", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "DOI", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "DOI", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "DOIIdentifier", - "type": "object" - }, - "DarkArchive": { - "additionalProperties": false, - "description": "Archive preserving materials for future use but with NO CURRENT ACCESS.\n\n**Wikidata**: Q112796578 (Dark Archive)\n\n**DEFINITION**:\n\nDark Archive is a preservation repository where materials are stored with \nNO ACCESS provided to users. The primary purpose is long-term preservation\nrather than current use. Access may be triggered by specific future events.\n\n**ACCESS SPECTRUM** (Light/Dim/Dark classification):\n\n| Type | Access Level | Purpose |\n|------|--------------|---------|\n| Light Archive (Q112815447) | Broadly accessible | Discovery & use |\n| Dim Archive (Q112796779) | Limited access | Selective access |\n| **Dark Archive** | No current access | Preservation only |\n\n**COMMON USE CASES**:\n\n1. **Digital Preservation**\n - Trusted Digital Repositories (TDR)\n - Backup/disaster recovery copies\n - Integrity verification archives\n\n2. **Rights-Restricted Content**\n - Orphan works awaiting rights clearance\n - Embargoed materials\n - Donor restrictions (sealed for X years)\n\n3. **Sensitive Materials**\n - Security-classified records\n - Privacy-protected personal data\n - Legally sealed court records\n\n4. **Format Migration**\n - Source materials preserved after migration\n - Original files kept for verification\n\n**TRIGGER EVENTS** (when dark becomes accessible):\n- Expiration of embargo period\n- Rights clearance obtained\n- Donor permission granted\n- Declassification decision\n- Original system failure (disaster recovery)\n\n**MULTILINGUAL LABELS**:\n- Dark Archive (de) [uses English term]\n\n**RELATED TYPES**:\n- LightArchive (Q112815447) - broadly accessible\n- DimArchive (Q112796779) - limited access\n- ClosedSpace - physical restricted access areas\n\n**ONTOLOGICAL ALIGNMENT**:\n- **SKOS**: skos:Concept (type classification)\n- **PREMIS**: premis:RightsStatus for access restrictions\n- **RiC-O**: rico:RecordSet with access restrictions\n- **Wikidata**: Q112796578\n\n**PREMIS INTEGRATION**:\n\nDark archives typically use PREMIS for preservation metadata:\n- `premis:RightsStatus` to document access restrictions\n- `premis:endDate` for embargo expiration dates\n- `premis:Agent` to identify the responsible custodian", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_embargo_end_date": { - "description": "The date when an embargo or restriction ends.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_purpose": { - "description": "Primary purpose for maintaining this dark archive.\nExamples: disaster recovery, format migration source, rights pending,\ndonor restriction, security classification.\n", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "refers_to_access_policy": { - "description": "Link to AccessPolicy defining the access restrictions.\nRequired for dark archives to document why access is denied.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "refers_to_access_policy", - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DarkArchive", - "type": "object" - }, - "DarkArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by DarkArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DarkArchiveRecordSetType", - "type": "object" - }, - "DataAnalyst": { - "additionalProperties": false, - "description": "Data analyst providing reporting and business intelligence.\n\n**Official Title vs De Facto Work**:\nOften involved in visitor studies, fundraising analytics,\nand operational reporting beyond core analysis.\n\n**Common Variants**:\n- Business Analyst\n- Reporting Analyst\n- Visitor Studies Analyst\n\n**Typical Domains**: All heritage institutions with data needs\n\n**Typical Responsibilities**:\n- Report generation\n- Dashboard development\n- Data visualization\n- KPI tracking\n- Survey analysis", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "DataAnalyst", - "type": "object" - }, - "DataContent": { - "additionalProperties": false, - "description": "Structured data and datasets.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "DATA", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Data Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "DataContent", - "type": "object" - }, - "DataEngineer": { - "additionalProperties": false, - "description": "Data engineer building and maintaining data infrastructure.\n\n**Official Title vs De Facto Work**:\nIn heritage institutions, often works on collections data pipelines,\nAPI development, and linked data infrastructure.\n\n**Common Variants**:\n- Data Infrastructure Engineer\n- ETL Developer\n- Data Pipeline Engineer\n\n**Typical Domains**: Large museums, national institutions, aggregators\n\n**Typical Responsibilities**:\n- Data pipeline development\n- Database architecture\n- API development\n- Data integration\n- Performance optimization", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "DataEngineer", - "type": "object" - }, - "DataFormat": { - "additionalProperties": false, - "description": "Specification of a data format for files, APIs, or data streams.\n**DEFINITION**:\nDataFormat captures format characteristics including type, media type,\nschema references, and encoding specifications.\n**USAGE**:\n- API response formats (JSON, XML, RDF)\n- File formats (CSV, Excel, PDF, TIFF)\n- Streaming protocols (MQTT, WebSocket payloads)\n- Archival formats (METS, EAD, MARC)\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`class_uri`): `hc:DataFormat` - Heritage Custodian class\n- **Close**: `dct:MediaTypeOrExtent` - Dublin Core media type\n- **Close**: `schema:encodingFormat` - Schema.org encoding\n**Common Format Types**:\n| Type | Media Type | Use Case |\n|------|------------|----------|\n| JSON | application/json | API responses, config |\n| XML | application/xml | Legacy APIs, metadata |\n| CSV | text/csv | Data exports, tabular |\n| RDF | application/rdf+xml | Linked data |\n| SensorML | application/xml | Sensor metadata |\n**Example**:\n```yaml\nhas_or_had_format:\n has_or_had_type: JsonFormat\n has_or_had_media_type: \"application/json\"\n has_or_had_encoding: \"UTF-8\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DataFormat", - "type": "object" - }, - "DataLicense": { - "additionalProperties": false, - "description": "A specific data license - the legal instrument that defines how data may be\nused, shared, and redistributed.\n\n**License Categories:**\n\n1. **Creative Commons (CC)** - For creative works and data\n - CC0: Public domain dedication (no rights reserved)\n - CC-BY: Attribution required\n - CC-BY-SA: Attribution + ShareAlike (copyleft)\n - CC-BY-NC: Attribution + Non-Commercial\n - CC-BY-ND: Attribution + No Derivatives\n \n2. **Open Data Commons (ODC)** - Specifically for databases\n - PDDL: Public Domain Dedication and License\n - ODC-BY: Attribution License for databases\n - ODbL: Open Database License (Attribution + ShareAlike)\n \n3. **Government Open Licenses**\n - UK OGL: UK Open Government Licence\n - French Licence Ouverte\n - US Public Domain (government works)\n \n4. **Proprietary** - Closed/restricted access\n - Subscription required\n - Terms of service restrictions\n - No redistribution rights\n\n**Reference**: https://creativecommons.org/licenses/\n\n**Ontology Alignment:**\n\n- cc:License (Creative Commons namespace)\n- dcterms:LicenseDocument (Dublin Core)\n- schema:CreativeWork (for license documents)", - "properties": { - "allows_commercial_use": { - "description": "Whether the license permits commercial use of the data.\n\n- true: Commercial use allowed (CC0, CC-BY, ODC-BY, ODbL)\n- false: Non-commercial only (CC-BY-NC, CC-BY-NC-SA)\n", - "type": "boolean" - }, - "allows_derivatives": { - "description": "Whether the license permits creating derivative works.\n\n- true: Derivatives allowed (most open licenses)\n- false: No derivatives allowed (CC-BY-ND, CC-BY-NC-ND)\n", - "type": "boolean" - }, - "deed_url": { - "description": "URL to the human-readable license summary (the \"deed\").\n\nExamples:\n- https://creativecommons.org/publicdomain/zero/1.0/\n- https://creativecommons.org/licenses/by/4.0/\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_abbreviation": { - "description": "Common has_or_had_abbreviation for the license.\n\nExamples: \"CC0\", \"CC-BY\", \"CC-BY-SA\", \"ODC-BY\", \"ODbL\"\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "id": { - "description": "Unique identifier for this license.\n\nRecommended: Use standard SPDX-style identifiers.\n\nExamples:\n- \"cc0-1.0\" (Creative Commons Zero 1.0)\n- \"cc-by-4.0\" (Creative Commons Attribution 4.0)\n- \"odc-by-1.0\" (Open Data Commons Attribution 1.0)\n- \"proprietary-oclc\" (OCLC proprietary terms)\n", - "type": "string" - }, - "license_description": { - "description": "Human-readable description of what this license permits and requires.\n", - "type": [ - "string", - "null" - ] - }, - "license_jurisdiction": { - "description": "Legal jurisdiction of the license (if jurisdiction-specific).\n\nMost modern licenses (CC 4.0+) are \"international\" (jurisdiction-agnostic).\nEarlier versions (CC 3.0, 2.x) had jurisdiction-specific \"ports\".\n\nExamples:\n- null: International/universal (CC 4.0 licenses)\n- \"NL\": Netherlands-specific ported license\n- \"US\": United States-specific\n", - "type": [ - "string", - "null" - ] - }, - "license_type": { - "$ref": "#/$defs/DataLicenseTypeEnum", - "description": "Classification of this license by its framework/family.\n" - }, - "license_url": { - "description": "URL to the official legal text of the license.\n\nExamples:\n- https://creativecommons.org/publicdomain/zero/1.0/legalcode\n- https://creativecommons.org/licenses/by/4.0/legalcode\n- https://opendatacommons.org/licenses/by/1-0/\n", - "type": "string" - }, - "name": { - "description": "Full official name of the license.\n\nExamples:\n- \"Creative Commons Zero 1.0 Universal\"\n- \"Creative Commons Attribution 4.0 International\"\n- \"Open Data Commons Attribution License 1.0\"\n- \"Open Database License (ODbL) 1.0\"\n", - "type": "string" - }, - "openness_level": { - "$ref": "#/$defs/DataOpennessLevelEnum", - "description": "Degree of openness on a spectrum from fully open to fully closed.\n\nThis is the PRIMARY indicator for data accessibility:\n\n- **FULLY_OPEN**: No restrictions (CC0, PDDL)\n- **OPEN_WITH_ATTRIBUTION**: Attribution required (CC-BY, ODC-BY)\n- **OPEN_SHAREALIKE**: Copyleft requirement (CC-BY-SA, ODbL)\n- **RESTRICTED_NONCOMMERCIAL**: Non-commercial only (CC-BY-NC)\n- **RESTRICTED_NO_DERIVATIVES**: No modifications (CC-BY-ND)\n- **CLOSED_SUBSCRIPTION**: Paid access required\n- **CLOSED_PROPRIETARY**: No reuse rights\n" - }, - "requires_attribution": { - "description": "Whether the license requires attribution to the source.\n\n- true: Attribution required (CC-BY, ODC-BY, ODbL)\n- false: No attribution needed (CC0, PDDL)\n", - "type": "boolean" - }, - "requires_sharealike": { - "description": "Whether derivatives must be shared under the same or compatible license.\n\n- true: ShareAlike/copyleft required (CC-BY-SA, ODbL)\n- false: No ShareAlike requirement (CC0, CC-BY, ODC-BY)\n", - "type": "boolean" - }, - "spdx_identifier": { - "description": "SPDX License Identifier for software license compatibility.\n\nSPDX (Software Package Data Exchange) provides standardized\nidentifiers for licenses used in software and data.\n\nExamples:\n- \"CC0-1.0\"\n- \"CC-BY-4.0\"\n- \"ODbL-1.0\"\n\nReference: https://spdx.org/licenses/\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "steward_organization": { - "description": "Organization that maintains and stewards this license.\n\nExamples:\n- \"Creative Commons\" (for CC licenses)\n- \"Open Knowledge Foundation\" (for ODC licenses)\n- \"UK National Archives\" (for UK OGL)\n", - "type": [ - "string", - "null" - ] - }, - "version": { - "description": "Version number of the license.\n\nExamples:\n- \"1.0\" (CC0 1.0, ODC-BY 1.0)\n- \"4.0\" (CC-BY 4.0 - current version)\n- \"3.0\" (legacy CC licenses)\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "name", - "license_type", - "openness_level", - "license_url", - "allows_commercial_use", - "requires_attribution", - "requires_sharealike", - "allows_derivatives" - ], - "title": "DataLicense", - "type": "object" - }, - "DataLicensePolicy": { - "additionalProperties": false, - "description": "An organization's policy regarding data licensing and openness, representing\nthe principles and practices the organization strives for in sharing data.\n\n**APPLICABLE TO BOTH**:\n\n1. **EncompassingBody** (Cooperative, SocialMovement, Network, Consortium, Umbrella)\n - OCLC (Cooperative): Mixed policy - WorldCat proprietary, VIAF open\n - Wikimedia Foundation (SocialMovement): Strong open advocate - CC0 for Wikidata\n \n2. **Custodian** (Museums, Archives, Libraries, etc.)\n - Rijksmuseum: Open policy - CC0 for high-res images\n - Some private collections: Proprietary - no reuse allowed\n\n**POLICY vs LICENSE**:\n\n- **DataLicensePolicy**: The ASPIRATIONAL stance - what the organization strives for\n- **DataLicense**: The LEGAL instrument - specific license terms (CC0, CC-BY, etc.)\n\nAn organization's policy may include:\n- Default license for all data/content\n- Service-specific licenses (different licenses for different services)\n- Advocacy activities (promoting open data beyond their own data)\n- Endorsement of open data principles (FAIR, Open Definition)\n\n**CRITICAL DISTINCTION: OPEN vs CLOSED**\n\nThis class is essential for understanding the fundamental difference between:\n\n- **OCLC (Cooperative)**: MIXED_POLICY\n - WorldCat: Proprietary (subscription-based)\n - VIAF: ODC-BY (open with attribution)\n - Members pay for services\n \n- **Wikimedia Foundation (Social Movement)**: STRONG_OPEN_ADVOCATE\n - Wikidata: CC0 (public domain)\n - Wikipedia: CC-BY-SA (copyleft)\n - All contributions openly licensed\n - Free access for all\n\n**Ontology Alignment:**\n\n- odrl:Policy (ODRL - Open Digital Rights Language)\n- dcterms:Policy (Dublin Core)\n- schema:DigitalDocument (for policy documents)", - "properties": { - "advocacy_activities": { - "description": "Open data advocacy activities the organization engages in.\n\nThese activities go BEYOND just licensing their own data - they\nrepresent active promotion of open data practices in the broader community.\n\nExamples:\n- \"Open Data Day sponsorship\"\n- \"Creative Commons affiliate network membership\"\n- \"Open Knowledge Foundation partnership\"\n- \"FAIR data training programs\"\n- \"Open GLAM initiative participation\"\n- \"Linked Open Data evangelism\"\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "default_license": { - "description": "The default license applied to data/content unless otherwise specified.\n\nLinks to a DataLicense instance representing the specific legal instrument.\n\nExamples:\n- Wikimedia Foundation: CC0 (for Wikidata)\n- Europeana: CC0 (for metadata)\n- OCLC: Proprietary (for WorldCat)\n- Rijksmuseum: CC0 (for high-res images)\n", - "type": "string" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "id": { - "description": "Unique identifier for this data license policy.\n\nFormat: https://nde.nl/ontology/hc/policy/{organization-slug}\n\nExamples:\n- \"https://nde.nl/ontology/hc/policy/oclc\"\n- \"https://nde.nl/ontology/hc/policy/wikimedia\"\n- \"https://nde.nl/ontology/hc/policy/rijksmuseum\"\n", - "type": "string" - }, - "is_or_was_effective_at": { - "description": "Date when this policy became effective.\n\nUseful for tracking policy evolution over time.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "open_data_principles": { - "description": "Open data principles or frameworks the organization formally endorses.\n\nExamples:\n- \"FAIR Principles\" (Findable, Accessible, Interoperable, Reusable)\n- \"Open Definition\" (Open Knowledge Foundation)\n- \"Sunlight Foundation Open Data Principles\"\n- \"G8 Open Data Charter\"\n- \"Budapest Open Access Initiative\"\n- \"Berlin Declaration on Open Access\"\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "openness_stance": { - "$ref": "#/$defs/OpennessStanceEnum", - "description": "Organization's overall philosophical stance on data openness.\n\nThis captures the ADVOCACY dimension beyond just licensing:\n\n- **STRONG_OPEN_ADVOCATE**: Actively promotes open data (Wikimedia, CC, OKFN)\n- **OPEN_BY_DEFAULT**: Generally open but practical exceptions (Europeana)\n- **MIXED_POLICY**: Some open, some closed (OCLC)\n- **CLOSED_BY_DEFAULT**: Generally closed with some open offerings\n- **FULLY_PROPRIETARY**: All data proprietary\n\nThis is the PRIMARY indicator for comparing organizations.\n" - }, - "policy_description": { - "description": "Narrative description of the organization's data policy philosophy.\n", - "type": [ - "string", - "null" - ] - }, - "policy_name": { - "description": "Name of the data license policy.\n\nExamples:\n- \"OCLC Data Usage Policy\"\n- \"Wikimedia Foundation Open Data Policy\"\n- \"Europeana Licensing Framework\"\n- \"Rijksmuseum Open Access Policy\"\n", - "type": "string" - }, - "policy_url": { - "description": "URL to the organization's official data policy documentation.\n\nExamples:\n- https://www.oclc.org/en/worldcat/community/data-strategy.html\n- https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use\n- https://www.rijksmuseum.nl/en/research/image-requests\n", - "type": [ - "string", - "null" - ] - }, - "service_specific_licenses": { - "description": "Licenses for specific services that differ from the default.\n\nAllows modeling organizations with mixed policies where different\nservices or data types have different licenses.\n\n**Example - OCLC (Cooperative with mixed policy):**\n```yaml\ndefault_license: proprietary-worldcat\nservice_specific_licenses:\n - service_name: \"VIAF\"\n license: odc-by-1.0\n - service_name: \"WorldCat Identities\"\n license: odc-by-1.0\n```\n\n**Example - Wikimedia (Movement with unified open policy):**\n```yaml\ndefault_license: cc0-1.0\nservice_specific_licenses:\n - service_name: \"Wikipedia\"\n license: cc-by-sa-4.0 # Different from default\n - service_name: \"Wikidata\"\n license: cc0-1.0 # Same as default\n```\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "id", - "policy_name", - "default_license", - "openness_stance" - ], - "title": "DataLicensePolicy", - "type": "object" - }, - "DataLicenseTypeEnum": { - "description": "Classification of license types by their framework/family.\n\nDifferent license families are designed for different purposes:\n- Creative Commons: General creative works and data\n- Open Data Commons: Specifically for databases\n- Government: Public sector data", - "enum": [ - "CREATIVE_COMMONS", - "OPEN_DATA_COMMONS", - "PUBLIC_DOMAIN", - "OPEN_SOURCE", - "GOVERNMENT_OPEN", - "PROPRIETARY", - "TERMS_OF_SERVICE" - ], - "title": "DataLicenseTypeEnum", - "type": "string" - }, - "DataManager": { - "additionalProperties": false, - "description": "Data manager handling collections data, metadata, and information systems.\n\n**Official Title vs De Facto Work**:\nOften involved in system selection, staff training, reporting,\nand data governance beyond core data management.\n\n**Common Variants**:\n- Collections Data Manager\n- Metadata Manager\n- Information Manager\n- Collections Information Officer\n- Database Administrator (collections)\n\n**Typical Domains**: Museums, archives, libraries\n\n**Typical Responsibilities**:\n- Collections management system (CMS) administration\n- Data quality and cleanup\n- Metadata standards implementation\n- Data migration and integration\n- Reporting and analytics", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "DataManager", - "type": "object" - }, - "DataOpennessLevelEnum": { - "description": "Spectrum of data openness from fully open to fully closed.\n\nThis is the PRIMARY indicator for comparing data accessibility:\n- Wikimedia Wikidata: FULLY_OPEN (CC0)\n- OCLC VIAF: OPEN_WITH_ATTRIBUTION (ODC-BY)\n- OCLC WorldCat: CLOSED_SUBSCRIPTION", - "enum": [ - "FULLY_OPEN", - "OPEN_WITH_ATTRIBUTION", - "OPEN_SHAREALIKE", - "RESTRICTED_NONCOMMERCIAL", - "RESTRICTED_NO_DERIVATIVES", - "CLOSED_SUBSCRIPTION", - "CLOSED_PROPRIETARY" - ], - "title": "DataOpennessLevelEnum", - "type": "string" - }, - "DataPlatform": { - "additionalProperties": false, - "description": "Software platform used for collecting and managing data, and acting\nas a data delivery point for application and reporting software.\n\n**PURPOSE**: Centralize data management and delivery for heritage\ndata consumers including applications and reports.\n\n**CHARACTERISTICS**:\n- Data collection and storage\n- API-based data delivery\n- Data transformation\n- Analytics support\n\n**EXAMPLES**: Data warehouses, data lakes, API platforms", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q113470369" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "DISCOVERY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "DataPlatform", - "type": "object" - }, - "DataPortalAuxiliary": { - "additionalProperties": false, - "description": "Platform for downloading datasets, bulk exports, open data access.\nMay have different access policies than main platform.\n\n**PURPOSE**: Provide bulk access to heritage datasets for research\nand reuse purposes.\n\n**CHARACTERISTICS**:\n- Dataset downloads\n- Bulk export\n- Data documentation\n- License information\n\n**EXAMPLES**: Research data portals, open data downloads", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AUXILIARY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "DataPortalAuxiliary", - "type": "object" - }, - "DataScientist": { - "additionalProperties": false, - "description": "Data scientist applying statistical and ML methods to heritage data.\n\n**Official Title vs De Facto Work**:\nMay work on visitor analytics, collection analysis, predictive modeling,\nand AI/ML applications for heritage.\n\n**Common Variants**:\n- Research Data Scientist\n- Analytics Scientist\n- Machine Learning Researcher\n\n**Typical Domains**: Large museums, research institutions\n\n**Typical Responsibilities**:\n- Statistical analysis\n- Machine learning model development\n- Visitor behavior analysis\n- Collections analytics\n- Research support", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "DataScientist", - "type": "object" - }, - "DataSensitivityLevel": { - "additionalProperties": false, - "description": "Data sensitivity classification level.\n**Standard Classification Levels**:\n| Level | Short Code | Description | Access | |-------|------------|-------------|--------| | Public | PUBLIC | No restrictions on disclosure | Anyone | | Internal | INTERNAL | For internal use only | Staff only | | Confidential | CONFIDENTIAL | Need-to-know basis | Authorized staff | | Strictly Confidential | STRICTLY_CONFIDENTIAL | Highly restricted | Named individuals | | Personal Data | PERSONAL_DATA | Contains PII (GDPR Article 6) | Data subjects + authorized | | Special Category | SPECIAL_CATEGORY | Sensitive personal data (GDPR Article 9) | Strictly controlled |\n**GDPR Alignment**: - PERSONAL_DATA: Covers GDPR Article 6 personal data - SPECIAL_CATEGORY: Covers GDPR Article 9 special categories (health, religion, \n ethnicity, political opinions, trade union membership, genetic/biometric data,\n sexual orientation)\n\n**Dublin Core**: Maps to dcterms:accessRights for access classification.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label", - "has_or_had_code" - ], - "title": "DataSensitivityLevel", - "type": "object" - }, - "DataServiceProtocolEnum": { - "description": "Protocols and standards implemented by data service endpoints.", - "enum": [ - "OAI_PMH", - "REST", - "SOAP", - "GRAPHQL", - "SPARQL", - "IIIF_IMAGE", - "IIIF_PRESENTATION", - "IIIF_CONTENT_SEARCH", - "IIIF_CHANGE_DISCOVERY", - "IIP", - "ZOOMIFY", - "DEEPZOOM", - "SRU", - "Z39_50", - "ATOM", - "RSS", - "OPENSEARCH", - "WEBDAV", - "FTP" - ], - "title": "DataServiceProtocolEnum", - "type": "string" - }, - "DataTierEnum": { - "description": "Data quality tiers from authoritative to inferred", - "enum": [ - "TIER_1_AUTHORITATIVE", - "TIER_2_VERIFIED", - "TIER_3_CROWD_SOURCED", - "TIER_4_INFERRED" - ], - "title": "DataTierEnum", - "type": "string" - }, - "DataTierSummary": { - "additionalProperties": false, - "description": "Summary of data quality tiers present in an entry. Lists fields by tier: TIER_1_AUTHORITATIVE (registries), TIER_2_VERIFIED (institutional sources), TIER_3_CROWD_SOURCED (Wikidata, OSM), TIER_4_INFERRED (NLP-extracted).\nOntology mapping rationale: - class_uri is dqv:QualityAnnotation from Data Quality Vocabulary\n because this summarizes data quality levels across an entry\n- close_mappings includes prov:Entity as the summary is itself\n a traceable metadata entity\n- related_mappings includes dqv:QualityMeasurement (quality metrics)\n and schema:PropertyValue (tier assignments as property values)", - "properties": { - "TIER_1_AUTHORITATIVE": { - "description": "Field names with data from authoritative registries (e.g., ISIL, KvK)", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "TIER_2_VERIFIED": { - "description": "Field names with data verified against institutional sources", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "TIER_3_CROWD_SOURCED": { - "description": "Field names with data from crowd-sourced platforms (e.g., Wikidata, OSM)", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "TIER_4_INFERRED": { - "description": "Field names with data inferred via NLP or automated extraction", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DataTierSummary", - "type": "object" - }, - "DatabasePlatform": { - "additionalProperties": false, - "description": "Organized collection of data in computing.\n\n**PURPOSE**: Store and provide access to structured data about\nheritage collections, objects, or records.\n\n**CHARACTERISTICS**:\n- Structured data storage\n- Query capabilities\n- Data integrity\n- Scalable storage\n\n**EXAMPLES**: Collection databases, catalog systems, inventories", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q8513" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "DISCOVERY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "DatabasePlatform", - "type": "object" - }, - "DatabaseSystem": { - "additionalProperties": false, - "description": "Database management system technology.\nExamples: PostgreSQL, MySQL, MongoDB, Elasticsearch, Neo4j\nNote: For finding aid classification, use Database from FindingAidTypes.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DatabaseSystem", - "type": "object" - }, - "Dataset": { - "additionalProperties": false, - "description": "A collection of data.", - "properties": { - "can_or_could_be_retrieved_from": { - "description": "Endpoint or location where a resource can be retrieved. MIGRATED from download_endpoint (2026-01-26).", - "items": { - "$ref": "#/$defs/Endpoint" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_title": { - "description": "The title or name of a resource.\n\n**RiC-O Temporal Pattern**:\nUses `hasOrHad*` pattern to indicate titles can change over time.\nResources may have different titles at different points in their lifecycle.\n\n**USE CASES**:\n\n1. Dataset titles\n2. Document titles\n3. Collection titles\n4. Work titles\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `dct:title` - Dublin Core title\n- **Close**: `schema:name` - Schema.org name\n- **Close**: `rdfs:label` - RDF Schema label\n\nCreated as part of dataset_title migration per slot_fixes.yaml (Rule 53).\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_published_by": { - "description": "The Custodian (heritage institution) that published this dataset.\nLinks the dataset to its source institution.\n\nMIGRATED from published_by slot per Rule 53/56 (2026-01-17).\nRenamed to follow RiC-O temporal naming conventions (Rule 39).\n\nNote: Uses Custodian class (not Publisher) because this slot is\nspecifically for datasets published by heritage institutions.\nFor commercial publications, use has_or_had_publisher instead.\n", - "type": [ - "string", - "null" - ] - }, - "linked_data_access": { - "description": "LinkedDataHub providing SPARQL access to this dataset. Named 'linked_data_access' to avoid conflict with shared 'sparql_endpoint' slot which has range: uri. This slot specifically links to a LinkedDataHub entity.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "Dataset", - "type": "object" - }, - "DatasetRegister": { - "additionalProperties": false, - "description": "National or regional registry of heritage datasets published by custodian\ninstitutions, providing discovery and access to structured metadata about\navailable collections and their APIs.\n\n**PURPOSE**: Enable discovery of heritage datasets published by cultural\ninstitutions, track dataset availability over time, and provide entry points\nto LinkedDataHub services and OpenAccessRepository content.\n\n**CHARACTERISTICS**:\n- Registry of datasets (not content aggregator)\n- Dataset-level metadata (not item-level)\n- Links to LinkedDataHub SPARQL endpoints\n- Links to OpenAccessRepository download endpoints\n- Temporal tracking of dataset availability\n- Publisher/custodian attribution\n\n**TEMPORAL SEMANTICS**:\nA dataset's presence in the register is tracked via TimeSpan:\n- `registered_from`: When dataset first appeared in register\n- `registered_until`: When dataset was removed (null if still active)\n- Historical snapshots enable temporal queries\n\n**RELATIONSHIP TO OTHER PORTAL TYPES**:\n- **LinkedDataHub**: DatasetRegister entries may point to LinkedDataHub\n SPARQL endpoints for semantic access\n- **OpenAccessRepository**: DatasetRegister entries may point to\n OpenAccessRepository endpoints for bulk download\n- **NationalAggregator**: DatasetRegister is a specialized NationalAggregator\n focused on dataset metadata rather than item-level aggregation\n\n**METADATA STANDARDS**:\n- DCAT (Data Catalog Vocabulary)\n- Schema.org Dataset\n- Dublin Core\n\n**EXAMPLES**:\n- NDE Dataset Register (https://datasetregister.netwerkdigitaalerfgoed.nl/)\n- data.gov.uk Cultural datasets\n- data.europa.eu Heritage sector", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "$ref": "#/$defs/MetadataStandard" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "REGISTRY", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "dataset_registry", - "open_data", - "heritage_data" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "registers_or_registered": { - "description": "Datasets registered in this catalog/register.", - "items": { - "$ref": "#/$defs/Dataset" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "DatasetRegister", - "type": "object" - }, - "DeceasedStatus": { - "additionalProperties": false, - "description": "Structured representation of a person's death status and circumstances.\n\n**Purpose**:\nCaptures comprehensive information about a person's death, replacing the\nsimple `circumstances_of_death` string with structured data:\n- **Cause**: Why/how the person died (CauseOfDeath class)\n- **Temporal**: When the death occurred (TimeSpan for fuzzy dates)\n- **Narrative**: Detailed description of circumstances\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `schema:DeathEvent` - Schema.org death event\n- **Related**: `crm:E69_Death` - CIDOC-CRM death event\n- **Related**: `prov:End` - PROV-O activity end\n\n**Heritage Sector Context**:\nCritical for documenting:\n- Heritage workers killed during armed conflicts (Gaza, Ukraine, Syria, etc.)\n- Targeted attacks on cultural institutions and their staff\n- Historical figures in the heritage sector\n- Occupational has_or_had_risks and accidents\n\n**Privacy Considerations**:\n- For recently deceased individuals, verify with institution before publishing\n- Public figures and historical staff can generally be documented\n- Follow local privacy laws and institutional policies\n- Handle with respect and dignity\n\n**Example - Conflict Death**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n cause_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n He was a journalist and information professional at Press House.\n has_or_had_location:\n city: Gaza City\n country: PS\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n has_or_had_description: |\n Additional commemorative information and sources documenting\n the death of this heritage worker.\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_caused_by": { - "anyOf": [ - { - "$ref": "#/$defs/CauseOfDeath" - }, - { - "type": "null" - } - ], - "description": "Links an event or status to its cause.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this relationship\nmay be historical - the cause was identified at some point in time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:wasInfluencedBy` - PROV-O influence relationship\n- **Exact**: `crm:P17_was_motivated_by` - CIDOC-CRM motivation relationship\n- **Related**: `schema:causeOf` - Schema.org cause relationship (inverse)\n\n**Usage**:\nGeneric causation slot for linking:\n- DeceasedStatus \u2192 CauseOfDeath (death circumstances)\n- OrganizationalChangeEvent \u2192 Cause (why institution changed)\n- Any event to its motivating factors\n\n**Range**: `uriorcurie` (Rule 55)\nBroadened range allows classes to narrow via slot_usage to specific\ncause classes (CauseOfDeath, ChangeReason, etc.)\n\n**Example - Death Causation**:\n```yaml\nis_or_was_caused_by:\n cause_type: CONFLICT\n has_or_had_description: \"Killed in airstrike during conflict\"\n```\n" - }, - "occurs_or_occurred_at": { - "anyOf": [ - { - "$ref": "#/$defs/Place" - }, - { - "type": "null" - } - ], - "description": "The place where an event occurred. Follows RiC-O temporal naming convention (Rule 39) to indicate the event may be historical.\n**Semantic Distinction**: - `occurs_or_occurred_at` is for **events** (death event, birth event, ceremony) - `has_or_had_location` is for **entities** (organization location, object location)\n**Ontological Alignment**: - Primary: `crm:P7_took_place_at` - CIDOC-CRM event location - Close: `prov:atLocation` - PROV-O activity location - Close: `schema:location` - Schema.org generic location\n**Use Cases**: - Death events (DeceasedStatus) - Birth events - Organizational change events - Provenance events" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "DeceasedStatus", - "type": "object" - }, - "DehumidifiedClimateControl": { - "additionalProperties": false, - "description": "Dehumidification-only climate control - humidity control without\ntemperature control.\n\n**TYPICAL USE CASES**:\n- Photo archives in temperate climates\n- Basement storage areas\n- Areas with mold/mildew concerns\n\n**CAPABILITIES**:\n- Temperature: Uncontrolled (ambient)\n- Humidity: Controlled (typically below 50-60% RH)\n- Air quality: May have basic filtration", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/ClimateControlType" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "DehumidifiedClimateControl", - "type": "object" - }, - "Deliverable": { - "additionalProperties": false, - "description": "A tangible output or result from a project or activity. Captures type, title, URL, and completion status.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_status": { - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "Deliverable", - "type": "object" - }, - "Dendrochronology": { - "additionalProperties": false, - "description": "Dating wood by analysis of tree ring patterns.\nUsed for panel paintings and wooden objects.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Dendrochronology", - "type": "object" - }, - "Department": { - "additionalProperties": false, - "description": "Formal department within a heritage custodian organization.\n\n**DEFINITION**:\n\nDepartment represents a FORMAL organizational unit within a heritage\ninstitution, often with regulatory, legal, or governance significance.\nDepartments typically have:\n- Official mandate or charter\n- Defined responsibilities\n- Budget allocation\n- Reporting structure\n- Staff positions with formal titles\n\n**DISTINCTION FROM OrganizationalStructure**:\n\n| Department | OrganizationalStructure |\n|------------|-------------------------|\n| Formal, often codified | Informal, operational |\n| Legal/regulatory basis | Pragmatic organization |\n| Budget line items | Ad-hoc groupings |\n| Charter/mandate | Flexible scope |\n| \"Archives Department\" | \"Digital Preservation Team\" |\n\nBoth use `org:OrganizationalUnit` but represent different levels of formality.\n\n**ARCHIVE CONTEXT**:\n\nIn archival institutions, \"department\" often refers to:\n- Record groups managed (e.g., \"Colonial Records Department\")\n- Functional areas (e.g., \"Preservation Department\")\n- Public service units (e.g., \"Reference Department\")\n\nArchiveTypeEnum value \"DEPARTMENT\" (Q107679962) maps to this class when\nused to describe archival organizational units.\n\n**Wikidata Alignment**:\n- Q2366457 (department - organizational unit)\n- Q107679962 (archival unit)\n\n**W3C ORG Alignment**:\n\n`org:OrganizationalUnit` - \"An Organization such as a University Support Unit\nwhich is part of some larger FormalOrganization and only has full recognition\nwithin the context of that FormalOrganization.\"\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nCustodian (hub)\n \u2502\n \u251c\u2500\u2500 organizational_structure \u2192 OrganizationalStructure[] (informal)\n \u2502\n \u2514\u2500\u2500 departments \u2192 Department[] (THIS CLASS - formal)\n \u251c\u2500\u2500 department_head \u2192 PersonObservation\n \u251c\u2500\u2500 manages_collections \u2192 Collection[]\n \u251c\u2500\u2500 parent_department \u2192 Department\n \u251c\u2500\u2500 sub_departments \u2192 Department[]\n \u2514\u2500\u2500 located_at \u2192 AuxiliaryPlace\n```\n\n**USE CASES**:\n\n1. **National Archive Department**:\n - department_name: \"Colonial Records Department\"\n - mandate: \"Preserves and provides access to colonial-era government records\"\n - manages_collections: [Colonial Administration Fonds, Trade Company Records]\n \n2. **Museum Department**:\n - department_name: \"Paintings Department\"\n - department_head: \"Dr. Jane Smith, Curator of Dutch Paintings\"\n - manages_collections: [Dutch Golden Age Collection, Flemish Baroque]\n \n3. **Library Department**:\n - department_name: \"Special Collections Department\"\n - mandate: \"Acquires, preserves, and provides access to rare materials\"\n - manages_collections: [Rare Books, Manuscripts, Maps]\n\n**LINK TO ArchiveTypeEnum**:\n\nThe ArchiveTypeEnum value \"DEPARTMENT\" (Q107679962) describes archives\norganized as departments within larger institutions. This class provides\nthe structural representation for such organizational units.", - "properties": { - "contact_point": { - "description": "Contact information for this branch.\n\nvCard: hasEmail for organizational contact.\nAlso compatible with Schema.org contactPoint.\n\nCan be email, phone, or URL.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_staff_member": { - "description": "Staff members (PersonObservation instances) affiliated with this organizational unit.\n\n**W3C ORG Property**: `org:hasMember` - \"Indicates a person who is a member of the subject Organization.\"\n- Domain: org:Organization (OrganizationalStructure)\n- Range: foaf:Agent (PersonObservation)\n- Inverse: `org:memberOf` (PersonObservation.unit_affiliation)\n\n**Bidirectional Relationship**:\n- **Forward**: OrganizationalStructure \u2192 PersonObservation (staff_members)\n- **Reverse**: PersonObservation \u2192 OrganizationalStructure (unit_affiliation)\n- Enables queries from both directions:\n - \"Who works in this department?\" (org unit \u2192 staff)\n - \"Which department does this person work for?\" (staff \u2192 org unit)\n\n**Temporal Consistency**:\nPerson's employment dates should align with organizational unit validity:\n- PersonObservation.role_start_date >= OrganizationalStructure.valid_from\n- PersonObservation.role_end_date <= OrganizationalStructure.valid_to (if unit dissolved)\n\n**Use Cases**:\n1. **Department staffing analysis**: \"How many conservators in Conservation Division?\"\n2. **Expertise location**: \"Which unit has manuscript conservation expertise?\"\n3. **Reorganization impact**: \"Track staff before/after merger event\"\n4. **Contact directory**: \"Find department head for Digital Services\"\n\n**Data Quality**:\n- Complete staff rosters (all positions documented) = high-quality data\n- Partial rosters (only senior staff) = acceptable for historical analysis\n- Empty staff_members (no data) = indicates missing personnel records\n\n**Example - Conservation Division**:\n```yaml\nOrganizationalStructure:\n id: \".../org-unit/rm-conservation-division\"\n unit_name: \"Conservation Division\"\n staff_count: 28 # Total FTE\n has_or_had_staff_member:\n - id: \".../person-obs/.../jane-smith/conservator-2013\"\n person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n role_title: \"Deputy Director, Conservation Division\"\n - id: \".../person-obs/.../john-doe/conservator-2015\"\n person_name: \"John Doe\"\n staff_role: CONSERVATOR\n role_title: \"Senior Objects Conservator\"\n```\n\n**Example - Staff Through Organizational Change**:\n```yaml\n# Before merger (2013-02-28)\nOrganizationalStructure:\n id: \".../org-unit/rm-paintings-conservation\"\n unit_name: \"Paintings Conservation Department\"\n valid_to: \"2013-02-28\"\n has_or_had_staff_member:\n - person_name: \"Dr. Jane Smith\"\n role_end_date: \"2013-02-28\" # Ends with unit dissolution\n\n# After merger (2013-03-01)\nOrganizationalStructure:\n id: \".../org-unit/rm-conservation-division\"\n unit_name: \"Conservation Division\"\n valid_from: \"2013-03-01\"\n has_or_had_staff_member:\n - person_name: \"Dr. Jane Smith\"\n role_start_date: \"2013-03-01\" # Starts with new unit\n affected_by_event: \".../event/rm-conservation-merger-2013\"\n```\n\n**Query Pattern (SPARQL)**:\n```sparql\n# Find all conservators in an institution\nSELECT ?unitName ?personName ?roleTitle WHERE {\n ?custodian hc:organizational_structure ?unit .\n ?unit hc:unit_name ?unitName ;\n hc:staff_members ?person .\n ?person hc:person_name ?personName ;\n hc:staff_role \"CONSERVATOR\" ;\n hc:role_title ?roleTitle .\n}\n```\n", - "items": { - "$ref": "#/$defs/PersonObservation" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/LabelType" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_dissolved_by": { - "description": "Dissolution event for an organization or legal status. MIGRATED from dissolution_date and dissolved_date (2026-01-26).", - "items": { - "$ref": "#/$defs/DissolutionEvent" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_managed_by": { - "anyOf": [ - { - "$ref": "#/$defs/Manager" - }, - { - "type": "null" - } - ], - "description": "Links an entity to the group or organization that manages it.\n\n**USAGE**:\nUsed for:\n- Warehouse management groups\n- Team assignments\n- Organizational responsibility\n" - }, - "located_at": { - "description": "Physical location where this organizational unit operates.\n\n**Range**: `Any` (2026-01-16) - Allows string values and AuxiliaryPlace/Location class instances.\nClasses narrow this to specific location types via slot_usage.\n\nNote: slot_uri changed from org:basedAt to hc:locatedAt\nto resolve OWL ambiguous type warning. org:basedAt may have\ndifferent expectations in the W3C Org ontology.\n\nAlternative: `org:hasSite` - \"Indicates a site at which the Organization \nhas some presence even if only indirect.\"\n\n**Use Cases**:\n\n1. **Departments at Branch Locations**:\n - Conservation Team \u2192 located at Amersfoort Depot\n - Digitization Team \u2192 located at off-site facility\n\n2. **Teams Spanning Multiple Locations**:\n - IT Department \u2192 located at main building AND data center\n - Public Services \u2192 located at main reading room AND annex\n\n3. **Temporary Location Assignments**:\n - Exhibition Team \u2192 temporarily at partner venue\n - Collections \u2192 temporarily at storage during renovation\n\n**Relationship Pattern**:\n\nTwo-way linking between locations and organizational units:\n\n```\nAuxiliaryPlace\n \u2514\u2500\u2500 hosts_branch \u2192 OrganizationBranch\n \u2514\u2500\u2500 has_operational_unit \u2192 OrganizationalStructure\n\nOrganizationalStructure\n \u2514\u2500\u2500 located_at \u2192 AuxiliaryPlace (optional)\n```\n\n**Optional Slot**:\n\nMany organizational units don't have fixed locations:\n- Strategic Planning Committee (meets virtually)\n- Research Fellowship Program (no physical space)\n\nOnly use when organizational unit has identifiable physical location.\n\n**Example - Conservation Division**:\n```yaml\nOrganizationalStructure:\n unit_name: \"Conservation Division\"\n unit_type: DIVISION\n located_at:\n - place_name: \"Conservation Lab - Main Building\"\n - place_name: \"Climate-Controlled Storage - Depot Amersfoort\"\n```", - "items": { - "$ref": "#/$defs/AuxiliaryPlace" - }, - "type": [ - "array", - "null" - ] - }, - "mandate": { - "description": "Formal mandate, charter, or mission statement for the department.\n\nW3C ORG: purpose for organizational purpose statement.\n\nMay reference:\n- Legal basis (law, regulation, decree)\n- Charter document\n- Ministerial order\n- Governance decision\n", - "type": [ - "string", - "null" - ] - }, - "parent_department": { - "description": "Parent department in organizational hierarchy.\n\nW3C ORG: subOrganizationOf for hierarchical relationships.\n\nExample: \"Paper Conservation Lab\" is sub-department of \n\"Conservation Department\"\n", - "type": [ - "string", - "null" - ] - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label", - "has_or_had_identifier", - "refers_to_custodian" - ], - "title": "Department", - "type": "object" - }, - "DepartmentAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Departmental government records (France).\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "DepartmentalArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by DepartmentalArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "DepartmentAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DepartmentAdministrationFonds", - "type": "object" - }, - "DepartmentCode": { - "additionalProperties": false, - "description": "Label type for department identifier codes.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_code" - ], - "title": "DepartmentCode", - "type": "object" - }, - "DepartmentHead": { - "additionalProperties": false, - "description": "Head of department or division (middle management).\n\n**Official Title vs De Facto Work**:\nOften maintains hands-on involvement in departmental work\nwhile managing staff and budgets.\n\n**Common Variants**:\n- Head of [Department]\n- Chief [Role]\n- Division Head\n- Section Head\n- Team Lead\n\n**Typical Domains**: All heritage institutions\n\n**Typical Responsibilities**:\n- Department operations and budgeting\n- Staff supervision and development\n- Strategic planning for department\n- Cross-departmental collaboration", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "DepartmentHead", - "type": "object" - }, - "DepartmentName": { - "additionalProperties": false, - "description": "Label type for department display names.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_code" - ], - "title": "DepartmentName", - "type": "object" - }, - "DepartmentalArchives": { - "additionalProperties": false, - "description": "Departmental archives in France (archives d\u00e9partementales).\n\n**Wikidata**: Q2860456 (archives d\u00e9partementales)\n\n**\u26a0\ufe0f GEOGRAPHIC RESTRICTION: FRANCE ONLY**\n\nThis type applies ONLY to French d\u00e9partement-level archives. For archives\nat comparable administrative levels in other countries, use:\n- DistrictArchiveGermany (Q130757255) for Kreisarchiv\n- ProvincialArchive (Q5403345) for provincial archives\n- RegionalArchive (Q27032392) for other regional archives\n\n**DEFINITION**:\n\nArchives d\u00e9partementales are public archives at the d\u00e9partement level in France.\nThey are the primary repositories for:\n- Pre-revolutionary records (ancien r\u00e9gime documents)\n- Civil registration (\u00e9tat civil) from 1792\n- Notarial archives\n- Cadastral/land records\n- Local government records\n- Regional ecclesiastical records\n\n**FRENCH TERRITORIAL ARCHIVE HIERARCHY**:\n\n```\nArchives nationales (national)\n \u2514\u2500\u2500 Archives r\u00e9gionales (regional)\n \u2514\u2500\u2500 Archives d\u00e9partementales (THIS TYPE)\n \u2514\u2500\u2500 Archives communales (municipal)\n```\n\n**STANDARDIZATION**:\n\nAll 101 d\u00e9partements (96 metropolitan + 5 overseas) have departmental archives.\nThey use standardized classification (s\u00e9rie/sous-s\u00e9rie) based on circulars\nfrom Archives de France.\n\n**COMMON SERIES**:\n- S\u00e9rie A-L: Ancien r\u00e9gime\n- S\u00e9rie M-Z: Post-1790 records\n- S\u00e9rie E: Civil registration (\u00e9tat civil)\n- S\u00e9rie Q: National property (biens nationaux)\n\n**MULTILINGUAL LABELS**:\n- D\u00e9partement-Archiv (de)\n- archivos departamentales (es)\n- archives d\u00e9partementales (fr)\n\n**RELATED TYPES**:\n- ArchivesRegionales (Q2860567) - regional archives (France)\n- PublicArchivesInFrance (Q2421452) - public archives in France\n- MunicipalArchive (Q604177) - communal archives", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_service_area": { - "anyOf": [ - { - "$ref": "#/$defs/ServiceArea" - }, - { - "type": "null" - } - ], - "description": "French d\u00e9partement served by this archive.\nMIGRATED from 'departement_code' and 'departement_name' slots per slot_fixes.yaml (Rule 53).\n\nUses ServiceArea class with:\n- service_area_name: D\u00e9partement name (e.g., \"Bouches-du-Rh\u00f4ne\")\n- has_or_had_identifier: D\u00e9partement code as structured identifier (e.g., \"13\")\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_part_of_archive_series": { - "description": "Main archival series held by this departmental archive.\nBased on standard French classification.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DepartmentalArchives", - "type": "object" - }, - "DepartmentalArchivesRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections of French departmental archive materials within heritage institutions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DepartmentalArchivesRecordSetType", - "type": "object" - }, - "DeploymentEvent": { - "additionalProperties": false, - "description": "Event representing the deployment of a software system (CMS, platform) at an institution.\n\n**Purpose**:\nDeploymentEvent captures the full context of a software deployment:\n- WHEN: Via temporal_extent (TimeSpan with fuzzy boundaries)\n- WHERE: Via refers_to_custodian (target institution)\n- WHAT: Linked from CollectionManagementSystem.is_or_was_deployed_at\n- WHY: Via description (deployment rationale, notes)\n\n**MIGRATED FROM**: `deployment_date` slot\n\nReplaces simple date with structured event that:\n- Supports fuzzy temporal bounds (TimeSpan)\n- Tracks deployment at specific custodians\n- Enables multiple deployment events per system\n- Captures deployment context and rationale\n\n**Ontological Alignment**:\n- **Primary**: `prov:Activity` - PROV-O activity\n- **Close**: `crm:E5_Event` - CIDOC-CRM event\n- **Related**: `schema:Action` - Schema.org action\n\n**Relationship to CollectionManagementSystem**:\n```\nCollectionManagementSystem\n \u2502\n \u2514\u2500\u2500 is_or_was_deployed_at \u2192 DeploymentEvent[]\n \u251c\u2500\u2500 temporal_extent \u2192 TimeSpan\n \u251c\u2500\u2500 refers_to_custodian \u2192 Custodian\n \u2514\u2500\u2500 description \u2192 Description\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "$ref": "#/$defs/TimeSpan", - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "temporal_extent" - ], - "title": "DeploymentEvent", - "type": "object" - }, - "DepositArchive": { - "additionalProperties": false, - "description": "Archive for intermediate/semi-current records awaiting final disposition.\n\n**Wikidata**: Q244904 (deposit archive / Zwischenarchiv / archive interm\u00e9diaire)\n\n**DEFINITION**:\n\nDeposit Archive (also called \"intermediate archive\" or \"records center\")\nmanages records that are:\n- No longer actively used (not current archive)\n- Not yet transferred to permanent archive\n- Awaiting retention period completion or disposition decision\n\n**ARCHIVAL LIFECYCLE POSITION**:\n\n```\nCurrent Archive (active use)\n \u2193\nDEPOSIT ARCHIVE (semi-current) \u2190 THIS TYPE\n \u2193\nHistorical Archive (permanent preservation)\n or\nDestruction (per retention schedule)\n```\n\n**KEY CHARACTERISTICS**:\n\n1. **Custody Without Ownership**: Deposit archives often hold materials \n deposited by other organizations while ownership remains with depositor\n\n2. **Retention Management**: Tracks retention schedules and triggers \n disposition actions (transfer or destruction)\n\n3. **Efficient Storage**: Uses cost-effective storage for semi-current\n records with lower access frequency\n\n4. **Retrieval Services**: Provides retrieval for depositing organizations\n as needed\n\n**SPECIAL LINKAGE: StorageType**\n\nDeposit archives operate specialized storage facilities. This class links\nto StorageType to describe the deposit storage characteristics:\n- operates_storage \u2192 Storage[] \u2192 has_storage_type \u2192 StorageType\n- StorageType code: DEPOSIT_STORAGE\n\n```\nDepositArchive (custodian type)\n \u2502\n \u2514\u2500\u2500 operates_storage \u2192 Storage (facility instance)\n \u2502\n \u2514\u2500\u2500 has_storage_type \u2192 StorageType\n \u2514\u2500\u2500 DEPOSIT_STORAGE\n```\n\n**MULTILINGUAL LABELS**:\n- Zwischenarchiv (de)\n- archivo de dep\u00f3sito (es)\n- archive interm\u00e9diaire (fr)\n\n**RELATED TYPES**:\n- CurrentArchive (Q3621648) - active records (earlier phase)\n- HistoricalArchive (Q3621673) - permanent records (later phase)\n- StorageType.DEPOSIT_STORAGE - storage type for deposit facilities\n\n**ONTOLOGICAL ALIGNMENT**:\n- **SKOS**: skos:Concept (type classification)\n- **RiC-O**: rico:RecordSet for deposited materials\n- **PREMIS**: premis:StorageLocation for storage facilities\n- **Wikidata**: Q244904", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_service": { - "description": "A service offered by an entity.\n\n**USAGE**:\nUsed for:\n- Visitor services (guided tours, audio guides)\n- Research services\n- Conservation services\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "retention_tracking": { - "description": "Whether deposit archive tracks retention schedules for deposited materials.\nTRUE if active retention management, FALSE if passive storage only.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DepositArchive", - "type": "object" - }, - "DepositArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by DepositArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DepositArchiveRecordSetType", - "type": "object" - }, - "DepositedRecordsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Records deposited by external bodies.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "DepositArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by DepositArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "DepositedRecordsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DepositedRecordsFonds", - "type": "object" - }, - "DepositorReturnService": { - "additionalProperties": false, - "description": "Return of records to the depositing organization.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DepositorReturnService", - "type": "object" - }, - "DepotWorker": { - "additionalProperties": false, - "description": "Depot worker handling collection storage and movement.\n\n**Official Title vs De Facto Work**:\nCritical role for collection safety, often involved in\ncondition monitoring and inventory management.\n\n**Common Variants**:\n- Collection Handler\n- Art Handler\n- Storage Technician\n- Warehouse Operative\n\n**Typical Domains**: Museums, archives with storage facilities\n\n**Typical Responsibilities**:\n- Object handling and movement\n- Storage management\n- Inventory assistance\n- Packing and unpacking\n- Transport coordination", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "DepotWorker", - "type": "object" - }, - "DeputyDirector": { - "additionalProperties": false, - "description": "Deputy director or assistant director (senior leadership).\n\n**Official Title vs De Facto Work**:\nMay specialize in specific areas (collections, operations, external affairs)\nwhile also serving as acting director when needed.\n\n**Common Variants**:\n- Assistant Director\n- Associate Director\n- Deputy Director for [area]\n- Vice Director\n\n**Typical Domains**: All heritage institutions\n\n**Typical Responsibilities**:\n- Oversee specific operational areas\n- Support director in leadership duties\n- Act as director in their absence\n- Manage departmental coordination", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "DeputyDirector", - "type": "object" - }, - "DescribingMotivation": { - "additionalProperties": false, - "description": "Motivation for adding descriptive information to content.\n\n**DEFINITION**:\n\nDescribingMotivation describes annotations where the intent is to\nprovide a description of the target resource.\n\n**W3C WEB ANNOTATION**:\n\nFrom oa:describing:\n> The motivation for when the user intends to describe the Target,\n> as opposed to a comment about them.\n\n**USE CASES**:\n\n| Use Case | Example |\n|----------|---------|\n| Physical description | Dimensions, materials, condition |\n| Content description | What is depicted in an artwork |\n| Scene description | Video scene narrative |\n| Alt-text | Image description for accessibility |\n\n**HERITAGE CONTEXT**:\n\nDescription is core to heritage documentation:\n- Museum object cataloging (physical descriptions)\n- Archival finding aid scope and content notes\n- Library bibliographic description\n- Video/audio content summarization", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "motivation_type_description": { - "description": "Detailed description of an annotation motivation type including purpose, characteristics, and typical use cases.", - "type": [ - "string", - "null" - ] - }, - "motivation_type_id": { - "description": "Unique identifier for an annotation motivation type.", - "type": "string" - }, - "motivation_type_name": { - "const": "describing", - "description": "Canonical name for this motivation type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "motivation_type_id", - "motivation_type_name" - ], - "title": "DescribingMotivation", - "type": "object" - }, - "Description": { - "additionalProperties": false, - "description": "A typed description with optional language tagging and type metadata.\n\n**Purpose**:\nDescription provides a reusable class for representing textual descriptions\nacross the heritage custodian schema. Supports typed descriptions (binding,\nbranch, budget, zone, etc.) with language tagging.\n\n**Ontological Alignment**:\n- **Primary**: `dcterms:description` - Dublin Core description\n- **Close**: `skos:definition` - formal definition\n- **Related**: `schema:description` - Schema.org description\n\n**Use Cases**:\n- Binding descriptions for physical carriers\n- Branch/office descriptions for organizational units\n- Budget descriptions for financial records\n- Zone/warehouse descriptions for storage facilities\n- Type descriptions for classification explanations\n\n**Replaces** (per slot_fixes.yaml):\n- `binding_description` (string)\n- `branch_description` (string)\n- `branch_office_description` (string)\n- `budget_description` (string)\n- `zone_description` (string)\n- `warehouse_description` (string)\n- `unit_description` (string)\n- `type_description` (string)", - "properties": { - "description_type": { - "description": "The type or category of description.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `dcterms:type` - nature or genre of resource\n\n**Usage**:\nCategorizes descriptions by their purpose:\n- binding: Physical binding description\n- branch: Organizational branch description\n- budget: Budget/financial description\n- zone: Storage zone description\n- warehouse: Warehouse description\n- unit: Organizational unit description\n- type: Type/category definition\n- general: General purpose description\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_content": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "language": { - "description": "Primary language of content on this profile.\n\nDublin Core: language for content language.\n\nISO 639-1 language code (e.g., \"en\", \"nl\", \"de\").\n\nSome institutions maintain separate profiles for different languages.\n", - "pattern": "^[a-z]{2}$", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_content" - ], - "title": "Description", - "type": "object" - }, - "DescriptionClaim": { - "additionalProperties": false, - "description": "Description or about text for the organization.\nExpected in: <meta name='description'>, about section", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "DescriptionClaim", - "type": "object" - }, - "DetectedEntity": { - "additionalProperties": false, - "description": "Base class for entities detected through automated analysis processes.\n\n**DEFINITION**:\n\nDetectedEntity represents items identified by automated analysis pipelines\n(computer vision, NLP, audio analysis, etc.). Each detected entity captures:\n- What was detected (via has_or_had_type \u2192 specific Type class)\n- Detection confidence (probability score)\n- Temporal/spatial location (timestamps, bounding boxes)\n\n**CRITICAL: DETECTION vs TYPE**\n\n| Aspect | DetectedEntity (This Class) | *Type Classes (Categories) |\n|--------|----------------------------|---------------------------|\n| **Nature** | Detection result | Classification |\n| **Examples** | \"Transition at 00:03:15\" | FADE_IN, CUT, DISSOLVE |\n| **Properties** | Confidence, timestamps | Semantic metadata |\n| **Cardinality** | Many instances per video | ~20-30 types |\n\n**USE CASE - Video Annotation**:\n\n```\nVideoAnnotation\n \u2502\n \u2514\u2500\u2500 has_or_had_detected \u2192 DetectedEntity[]\n \u251c\u2500\u2500 has_or_had_type \u2192 TransitionType (FADE_IN, CUT, etc.)\n \u251c\u2500\u2500 confidence_score \u2192 0.95\n \u251c\u2500\u2500 start_time \u2192 \"00:03:15\"\n \u2514\u2500\u2500 end_time \u2192 \"00:03:17\"\n```\n\n**USE CASE - Text Detection**:\n\n```\nVideoAnnotation\n \u2502\n \u2514\u2500\u2500 has_or_had_detected \u2192 DetectedEntity[]\n \u251c\u2500\u2500 has_or_had_type \u2192 TextType (TITLE, CAPTION, etc.)\n \u251c\u2500\u2500 confidence_score \u2192 0.87\n \u251c\u2500\u2500 has_or_had_geographic_extent \u2192 [x1, y1, x2, y2]\n \u2514\u2500\u2500 has_or_had_label \u2192 \"Museum Tour\"\n```\n\n**ONTOLOGY ALIGNMENT**:\n\n- **PROV-O Entity**: Detected entities are generated by activities\n- **W3C Web Annotation**: Compatible with annotation body/target patterns\n- **CIDOC-CRM E73_Information_Object**: Information derived from sources\n\n**RELATIONSHIP TO SLOTS**:\n\n- `has_or_had_detected`: Links from VideoAnnotation \u2192 DetectedEntity[]\n- `has_or_had_type`: Links DetectedEntity \u2192 TransitionType, TextType, etc.\n- Uses shared slots for identifier, label, confidence", - "properties": { - "has_or_had_geographic_extent": { - "description": "Spatial extent or bounding region for an entity. May represent geographic coordinates (WKT format) or pixel coordinates (array format) depending on context.", - "items": { - "type": "number" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_time_interval": { - "anyOf": [ - { - "$ref": "#/$defs/TimeInterval" - }, - { - "type": "null" - } - ], - "description": "Links to a time interval or duration associated with this entity.\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming indicates that time interval associations can change: - Update frequencies may be revised - Approval times may change with policy updates - Reporting periods may vary - Durations of media content\n**USE CASES**: - Update frequency: How often data is refreshed - Approval time: Expected processing duration - Reporting period: Time period for metrics/revenue - Media duration: Length of video/audio content" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_generated_by": { - "description": "Generation event containing confidence score for entity detection. MIGRATED 2026-01-19: Replaces confidence_score slot with structured pattern.", - "items": { - "$ref": "#/$defs/GenerationEvent" - }, - "type": [ - "array", - "null" - ] - }, - "start_time": { - "description": "Start timestamp for temporal detections (ISO 8601 or HH:MM:SS format). Defined as attribute.", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "has_or_had_type" - ], - "title": "DetectedEntity", - "type": "object" - }, - "DetectedFace": { - "additionalProperties": false, - "description": "Detected face.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DetectedFace", - "type": "object" - }, - "DetectedLandmark": { - "additionalProperties": false, - "description": "Detected landmark.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DetectedLandmark", - "type": "object" - }, - "DetectedLogo": { - "additionalProperties": false, - "description": "Detected logo.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DetectedLogo", - "type": "object" - }, - "DetectedObject": { - "additionalProperties": false, - "description": "Detected object.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DetectedObject", - "type": "object" - }, - "DetectionLevelEnum": { - "description": "Granularity of scene/shot detection", - "enum": [ - "SHOT", - "SCENE", - "BOTH" - ], - "title": "DetectionLevelEnum", - "type": "string" - }, - "DetectionThreshold": { - "additionalProperties": false, - "description": "Configuration for detection thresholds in analysis pipelines.\n\n**DEFINITION**:\n\nDetectionThreshold represents the confidence threshold settings used to filter\ndetection results. CV models output confidence scores; thresholds determine\nwhich detections are included in results.\n\n**Threshold Levels**:\n\n| Threshold | Range | Use Case |\n|-----------|-------|----------|\n| HIGH_PRECISION | 0.9+ | Production display, high confidence |\n| BALANCED | 0.7-0.9 | General use, balance precision/recall |\n| HIGH_RECALL | 0.5-0.7 | Research, review, catch more |\n| RAW | < 0.5 | Unfiltered, needs post-processing |\n\n**Ontological Alignment**:\n- **DQV**: `dqv:QualityMeasurement` - quality metric for data assessment\n- **PROV-O**: Threshold as parameter of detection activity\n\n**Migrated From** (per slot_fixes.yaml):\n- `detection_threshold` (float) now uses:\n - `filters_or_filtered` \u2192 DetectedEntity\n - `has_or_had_treshold` \u2192 DetectionThreshold (this class)\n\n**Usage Pattern**:\n```\nVideoAnnotation\n \u2514\u2500\u2500 filters_or_filtered \u2192 DetectedEntity\n \u2514\u2500\u2500 has_or_had_treshold \u2192 DetectionThreshold\n \u251c\u2500\u2500 threshold_value: 0.5\n \u2514\u2500\u2500 threshold_type: MINIMUM\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "threshold_type": { - "description": "Type of threshold application.\n- MINIMUM: Lower bound for inclusion\n- MAXIMUM: Upper bound (rare)\n- BAND: Range between two values\n", - "type": [ - "string", - "null" - ] - }, - "threshold_value": { - "description": "The numeric threshold value (0.0-1.0).\nDetections with confidence >= threshold_value are included.\n", - "maximum": 1.0, - "minimum": 0.0, - "type": "number" - } - }, - "required": [ - "threshold_value" - ], - "title": "DetectionThreshold", - "type": "object" - }, - "DevOpsEngineer": { - "additionalProperties": false, - "description": "DevOps engineer managing deployment and infrastructure automation.\n\n**Official Title vs De Facto Work**:\nIn heritage context, manages cloud infrastructure,\nCI/CD pipelines, and system reliability.\n\n**Common Variants**:\n- Site Reliability Engineer\n- Platform Engineer\n- Infrastructure Engineer\n\n**Typical Domains**: Heritage institutions with significant digital infrastructure\n\n**Typical Responsibilities**:\n- CI/CD pipeline management\n- Infrastructure as code\n- Monitoring and alerting\n- Cloud infrastructure\n- Security automation", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "DevOpsEngineer", - "type": "object" - }, - "DeviationDirectionEnum": { - "description": "Direction of allowed deviation from a setpoint.", - "enum": [ - "PLUS_MINUS", - "PLUS", - "MINUS" - ], - "title": "DeviationDirectionEnum", - "type": "string" - }, - "DewPointMeasurement": { - "additionalProperties": false, - "description": "Dew point temperature measurement type for assessing condensation risk.\nStandard unit: degrees Celsius (\u00b0C).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_measurement_unit": { - "anyOf": [ - { - "$ref": "#/$defs/MeasureUnit" - }, - { - "type": "null" - } - ], - "description": "The unit of measurement for a quantity value. Uses RiC-O temporal naming pattern to indicate the unit may be current or historical (e.g., if measurement standards changed over time).\n**QUDT**: qudt:unit - \"The unit of measure used to express the value of a Quantity.\"\n**USE CASES**: - Visitor counts: unit = \"visitors\", \"visitors/year\" - View counts: unit = \"views\", \"views/day\" - Collection sizes: unit = \"items\", \"objects\", \"linear meters\" - Area: unit = \"m\u00b2\", \"ha\", \"km\u00b2\" - Currency: unit = \"EUR\", \"USD\", \"GBP\"" - }, - "has_or_had_name": { - "const": "Dew Point", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "DewPointMeasurement", - "type": "object" - }, - "DigitalArchive": { - "additionalProperties": false, - "description": "Information system collecting and providing access to digital resources.\n\n**Wikidata**: Q1224984 (digital archive / digitales Archiv / archivo digital)\n\n**DEFINITION**:\n\nDigital Archive is an information system designed to:\n- Collect digital resources (born-digital or digitized)\n- Preserve them for long-term access\n- Make them available to defined user groups\n\n**TWO INTERPRETATIONS**:\n\n1. **Born-Digital Archive**: Preserves materials created digitally\n - Email archives\n - Digital government records\n - Electronic manuscripts\n - Social media archives\n\n2. **Digitized Archive**: Provides digital access to analog materials\n - Digitized photographs\n - Scanned documents\n - Digital surrogates of physical collections\n\nThis class covers BOTH interpretations.\n\n**SPECIAL LINKAGE: DigitalPlatformType**\n\nDigital archives require digital infrastructure. This class links to\nDigitalPlatformType to describe the platform/system characteristics:\n\n```\nDigitalArchive (custodian type)\n \u2502\n \u2514\u2500\u2500 operates_platform \u2192 DigitalPlatform (instance)\n \u2502\n \u2514\u2500\u2500 platform_type \u2192 DigitalPlatformType\n \u251c\u2500\u2500 DISCOVERY_PORTAL\n \u251c\u2500\u2500 DIGITAL_REPOSITORY\n \u251c\u2500\u2500 COLLECTION_MANAGEMENT\n \u2514\u2500\u2500 (other types)\n```\n\n**PRESERVATION STANDARDS**:\n\nDigital archives typically implement:\n- OAIS (ISO 14721) - Reference model\n- PREMIS - Preservation metadata\n- BagIt - File packaging\n- METS - Metadata encoding\n- Trusted Digital Repository (TDR) certification\n\n**MULTILINGUAL LABELS**:\n- digitales Archiv (de)\n- archivo digital (es)\n- archives num\u00e9riques (fr)\n\n**RELATED TYPES**:\n- WebArchive (Q30047053) - specifically for web content\n- InstitutionalRepository (Q1065413) - academic digital publications\n- DigitalPlatformType - platform classification for infrastructure", - "properties": { - "content_origin": { - "description": "Origin of digital content in this archive.\nValues: born_digital, digitized, mixed\n", - "type": [ - "string", - "null" - ] - }, - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_format": { - "description": "The format or file type of a resource or service response.\n\n**USAGE**:\nUsed for:\n- Response formats from APIs (JSON, XML, RDF)\n- File formats for documents (PDF, DOCX, TXT)\n- Media formats (JPEG, MP3, MP4)\n- Transcript formats (VTT, SRT, plain text)\n- Subtitle formats (WebVTT, SRT, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property\n- **Close**: `dct:format` - Dublin Core format\n- **Close**: `schema:encodingFormat` - Schema.org encoding format\n\n**Range**: `uriorcurie` (Rule 54)\nBroadened range to accept URI/CURIE references to format specifications.\nThis allows linking to IANA media types, format registries, or internal\nformat classes while resolving OWL ambiguous type warnings.\n\nClasses can narrow to specific format enums/classes via slot_usage.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_interface": { - "description": "Indicates an interface or access point for a digital resource. MIGRATED from has_access_interface_url per Rule 53. Follows RiC-O naming convention.", - "items": { - "$ref": "#/$defs/AccessInterface" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_level": { - "description": "Level of digital preservation commitment for this collection.\n\nPREMIS: policy for preservation commitment levels.\nAligns with premis:PreservationPolicy vocabulary.\n\nValues:\n- FULL: Long-term preservation with format migration commitment\n- BIT_LEVEL: Bit preservation only (no format migration)\n- ACCESS_ONLY: Access copies maintained, no preservation guarantee\n- NONE: No formal digital preservation policy\n\nApplies to digital_surrogates and born-digital materials in collection.\n\nFor specific file-level preservation actions, see DigitalPlatform\npreservation slots (fixity_check_date, storage_location).\n", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DigitalArchive", - "type": "object" - }, - "DigitalArchivePlatform": { - "additionalProperties": false, - "description": "Information system whose aim is to collect different digital resources\nand to make them available to a defined group of users.\n\n**PURPOSE**: Preserve and provide access to digital archival materials\nincluding documents, photographs, audiovisual records, and datasets.\n\n**CHARACTERISTICS**:\n- Long-term preservation focus\n- Provenance and context documentation\n- Access control and rights management\n- Hierarchical organization of materials\n\n**EXAMPLES**: Internet Archive, national web archives, institutional digital archives", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q1224984" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "REPOSITORY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "DigitalArchivePlatform", - "type": "object" - }, - "DigitalArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by DigitalArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DigitalArchiveRecordSetType", - "type": "object" - }, - "DigitalAssetManagement": { - "additionalProperties": false, - "description": "Digital asset management systems for media files.\n\n**TYPICAL FEATURES**:\n- Image, video, audio management\n- Metadata extraction\n- Format conversion\n- Rights management\n- Distribution workflows\n\n**EXAMPLES**:\n- ResourceSpace\n- DAMsimple\n- Razuna\n- Pimcore\n- Bynder\n- Canto", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/CMSType" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "DigitalAssetManagement", - "type": "object" - }, - "DigitalCollectionContent": { - "additionalProperties": false, - "description": "Born-digital and digitized materials: Digital archives,\nelectronic records, digital art, web archives.", - "properties": { - "has_or_had_label": {}, - "type_definition": { - "description": "Definition of this collection content type", - "type": [ - "string", - "null" - ] - } - }, - "title": "DigitalCollectionContent", - "type": "object" - }, - "DigitalContentSupplier": { - "additionalProperties": false, - "description": "Supplier of digital products and content.\nExamples: Digital image libraries, audio guide providers", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DigitalContentSupplier", - "type": "object" - }, - "DigitalImageCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Born-digital photography.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PhotoArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PhotoArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "DigitalImageCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DigitalImageCollection", - "type": "object" - }, - "DigitalInstantiation": { - "additionalProperties": false, - "description": "A digital manifestation or surrogate of a heritage entity. MIGRATED from digital_surrogate, digital_surrogate_url, and digitization_status slots (2026-01-25).", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_status": { - "anyOf": [ - { - "$ref": "#/$defs/Status" - }, - { - "type": "null" - } - ], - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n" - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DigitalInstantiation", - "type": "object" - }, - "DigitalLibrary": { - "additionalProperties": false, - "description": "Online database of digital objects stored in electronic media formats\nand accessible via computers.\n\n**PURPOSE**: Provide organized access to digital collections including\nbooks, journals, manuscripts, images, audio, and video materials.\n\n**CHARACTERISTICS**:\n- Structured metadata for discovery\n- Full-text search capabilities\n- Persistent access to digital objects\n- May include both digitized and born-digital content\n\n**EXAMPLES**: Gallica (BnF), HathiTrust, Internet Archive Books", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q212805" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "REPOSITORY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "DigitalLibrary", - "type": "object" - }, - "DigitalLibraryPortal": { - "additionalProperties": false, - "description": "Portal providing direct access to digitized content from a national library or major library network. **PURPOSE**: Offer full-text search and image viewing of digitized books, manuscripts, newspapers, and other library materials at scale. **CHARACTERISTICS**: - Direct access to digitized content - Full-text OCR and search - High-resolution image viewing - IIIF integration - Rights management and access conditions **METADATA STANDARDS**: - Dublin Core - MARC21 - IIIF Presentation API - METS/ALTO **EXAMPLES**: - Gallica (BnF, France) - Polona (National Library of Poland) - Internet Culturale (Italy) - Delpher (Netherlands) - Digital NZ (New Zealand)", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "$ref": "#/$defs/MetadataStandard" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "ACCESS_MODEL", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "digital_libraries", - "libraries" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "DigitalLibraryPortal", - "type": "object" - }, - "DigitalMediaStorageEnvironment": { - "additionalProperties": false, - "description": "Storage for digital storage media.\n\n**PURPOSE**: Provide appropriate conditions for long-term storage\nof digital media carriers.\n\n**RECOMMENDED CONDITIONS**:\n- Temperature: 18-22\u00b0C (stable, avoid fluctuations)\n- Relative humidity: 35-45% (target 40%)\n- Light: Not critical (enclosed storage)\n- ESD protection: Required\n\n**SUITABLE MATERIALS**:\n- Hard drives (HDD)\n- Solid state drives (SSD)\n- LTO and data tapes\n- Optical media (archival grade)\n- Flash storage media\n\n**SPECIAL REQUIREMENTS**:\n- Electrostatic discharge (ESD) protection required\n- Avoid magnetic fields\n- Regular integrity verification\n- Migration planning for obsolescence", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "DIGITAL_MEDIA", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard": { - "description": "Reference to applicable ISO or EN standard for this environmental zone type.\n\nFormat: Standard identifier (e.g., \"ISO 11799\", \"ISO 18911\", \"EN 16893\")\n\nCommon preservation standards:\n- ISO 11799: Document storage requirements\n- ISO 18911: Film storage practices\n- ISO 18934: Multiple media archives storage\n- EN 16893: Heritage collection storage buildings\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "max_annual_light_exposure": { - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "requires_dark_storage": { - "description": "Whether dark (zero light) storage is required for this environmental zone.\n\nBased on ISO preservation standards:\n- Film storage (ISO 18911): Dark storage mandatory\n- Photographic (ISO 18920): Dark storage for extended-term\n- UK Archives (BS 4971): 0 lux for closed storage\n\nDark storage essential for:\n- Film negatives (especially color and early nitrate/acetate)\n- Daguerreotypes and early photographic processes\n- Cyanotypes and blueprint materials\n- Some magnetic media (tape)\n- Highly fugitive inks and dyes\n\nAccess provided through reading rooms or digitization requests.\nCumulative light damage is completely prevented.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_dust_free": { - "description": "Whether a dust-free or dust-controlled environment is required for this zone.\n\nBased on ISO preservation standards:\n- Magnetic tape (ISO 18923): Dust-free mandatory\n- Optical media (ISO 18938): Cleanroom for masters\n- Archives (ISO 11799): Dust control required\n\nISO 14644-1 Cleanliness Classes:\n- Class 8: General archive/museum (HEPA filtered)\n- Class 7: AV media storage (positive pressure)\n- Class 5: Digital master storage (cleanroom)\n\nDust-free essential for:\n- Magnetic tapes and audiovisual media\n- Optical discs (CD, DVD, Blu-ray)\n- Fine art and paintings (surface abrasion)\n- Photographic materials (scratches, embedded particles)\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_esd_protection": { - "description": "Whether electrostatic discharge (ESD) protection is required for this zone.\n\nBased on ISO/IEC standards:\n- Magnetic tape (ISO 18923): ESD protection required\n- Optical media (ISO 18938): ESD-safe handling mandatory\n- Electronics (IEC 61340-5-1): ESD control program\n\nESD protection measures include:\n- Conductive/dissipative flooring\n- Humidity control (40-60% RH reduces static)\n- ESD-safe packaging and equipment\n- Personnel grounding (wrist straps)\n\nESD protection essential for:\n- Hard drives and SSDs\n- LTO and other magnetic tapes\n- Optical media (CD, DVD, Blu-ray masters)\n- Electronic components and circuit boards\n- Born-digital heritage collections\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_uv_filter": { - "description": "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \u00b5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label", - "has_or_had_description" - ], - "title": "DigitalMediaStorageEnvironment", - "type": "object" - }, - "DigitalNewsCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Digital news content.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "OnlineNewsArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by OnlineNewsArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "DigitalNewsCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DigitalNewsCollection", - "type": "object" - }, - "DigitalObjectCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Born-digital materials.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "DigitalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by DigitalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "DigitalObjectCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DigitalObjectCollection", - "type": "object" - }, - "DigitalPlatform": { - "additionalProperties": false, - "description": "Digital platform or online system associated with a heritage custodian.\n\n**CRITICAL DISTINCTION**:\n\n**DigitalPlatform CLASS** (this class):\n- Represents the DIGITAL INFRASTRUCTURE of any custodian\n- Used by PHYSICAL institutions (museums, archives, libraries) to represent their websites\n- Used by DIGITAL-FIRST institutions to represent their primary platform\n- Examples: Rijksmuseum website, museum online catalog, archive digital portal\n\n**DigitalPlatformType** (custodian type):\n- Classification for DIGITAL-FIRST custodians (online-only, no physical building)\n- Example: Europeana (aggregation platform), Internet Archive (born-digital)\n\n**Decision Rules**:\n\n1. **Physical Institution with Website**:\n - Custodian.custodian_type = MUSEUM/ARCHIVE/LIBRARY (not DIGITAL_PLATFORM)\n - Custodian.digital_platform \u2192 DigitalPlatform instance (this class)\n - Example: Rijksmuseum (MUSEUM) has Rijksstudio (DigitalPlatform)\n\n2. **Digital-First Institution**:\n - Custodian.custodian_type = DIGITAL_PLATFORM (DigitalPlatformType)\n - Custodian.digital_platform \u2192 DigitalPlatform instance (primary platform)\n - Example: Europeana (DIGITAL_PLATFORM) operates at https://europeana.eu/\n\n**Relationship to Custodian Hub**:\n\nDigitalPlatform is DIRECTLY connected to Custodian via refers_to_custodian,\njust like CustodianPlace, CustodianName, and CustodianLegalStatus.\n\nThis allows modeling:\n- Multiple digital platforms per custodian (website + API + mobile app)\n- Platform evolution over time (temporal validity)\n- Platform features and technical capabilities\n- Access points for digital heritage\n\n- Schema.org: schema:WebSite (primary), schema:WebApplication\n- DCAT: dcat:Catalog (for aggregation platforms), dcat:DataService (for APIs)\n- FOAF: foaf:homepage, foaf:Document\n- CIDOC-CRM: crm:E73_Information_Object (digital objects)\n\n**Example - Physical Museum with Digital Platform**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n custodian_type: MUSEUM # Physical institution\n digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address: \"https://www.rijksmuseum.nl/\"\n platform_type: DISCOVERY_PORTAL\n iiif_support: true\n linked_data: true\n```\n\n**Example - Digital-First Platform**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/eu-europeana\"\n preferred_label: \"Europeana\"\n custodian_type: DIGITAL_PLATFORM # Digital-first\n digital_platform:\n - platform_name: \"Europeana Platform\"\n homepage_web_address: \"https://www.europeana.eu/\"\n platform_type: AGGREGATION_PLATFORM\n api_endpoint: \"https://api.europeana.eu/\"\n iiif_support: true\n linked_data: true\n programming_languages: [\"Java\", \"Python\", \"JavaScript\"]\n```", - "properties": { - "data_standards": { - "description": "Data standards used (can be string or list)", - "type": [ - "string", - "null" - ] - }, - "digital_collections": { - "description": "Description of digital collections available", - "type": [ - "string", - "null" - ] - }, - "enrichment_source": { - "description": "Source of enrichment data (kien_registry, KB Netherlands Library Network, manual_curation, web_research, website_scrape_and_google_maps, etc.)", - "type": [ - "string", - "null" - ] - }, - "enrichment_timestamp": { - "description": "Timestamp of enrichment extraction", - "type": [ - "string", - "null" - ] - }, - "has_or_had_auxiliary_entities": { - "description": "Auxiliary or supporting entities associated with the primary entity.\n**SEMANTIC PATTERN**:\nThis slot follows the RiC-O temporal predicate pattern (has_or_had_*) to indicate that auxiliary relationships may change over time.\n**REPLACES**:\n- `auxiliary_places` - Physical locations supporting the main entity - `auxiliary_platforms` - Digital platforms supporting the main entity\n**USE CASES**:\n1. **Storage locations**: Off-site storage, external repositories 2. **Branch facilities**: Satellite offices, reading rooms 3. **Partner platforms**: External discovery services, aggregators", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_endpoint": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/APIEndpoint__identifier_optional" - }, - { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - } - ] - }, - "description": "The data service endpoint.", - "type": [ - "object", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "inventory_web_address": { - "description": "URLs for archival inventories, finding aids, or collection catalogs.\n\nDCAT: landingPage for human-readable collection descriptions.\n\nExamples:\n- \"https://www.nationaalarchief.nl/onderzoeken/index\" (National Archives inventories)\n- \"https://archief.amsterdam/inventarissen\" (Amsterdam City Archives inventories)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_checked_through": { - "description": "Indicates that a resource was checked or verified through a specific process or event. MIGRATED from fixity_check_date per Rule 53. Follows RiC-O naming convention.", - "items": { - "$ref": "#/$defs/FixityVerification" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_stored_at": { - "anyOf": [ - { - "$ref": "#/$defs/StorageLocation" - }, - { - "type": "null" - } - ], - "description": "Links an entity to its storage location.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this relationship\nmay be historical - storage locations change over time (relocations, moves).\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `premis:storedAt` - PREMIS property linking \n objects to their storage location\n- **Close**: `crm:P55_has_current_location` - CIDOC-CRM current location\n- **Broad**: `schema:location` - Schema.org general location\n\n**Use Cases**:\n- Storage facility physical location (AuxiliaryPlace)\n- Digital object storage infrastructure\n- Collection item storage assignment\n\n**PREMIS Semantics**:\n\"Information needed to retrieve a physical item from its physical storage \nlocation or a file from the storage system, or to access a bitstream \nwithin a file.\"\n" - }, - "linked_data": { - "description": "Does this platform provide linked open data (RDF)?\n\nDublin Core: conformsTo indicates LOD compliance.\n\nLinked data features:\n- RDF triples (Turtle, JSON-LD, N-Triples)\n- SPARQL endpoint\n- Dereferenceable URIs\n- Linked to external vocabularies (Wikidata, Getty, etc.)\n\nBoolean true/false or null if unknown.\n", - "type": [ - "boolean", - "null" - ] - }, - "metadata_standard": { - "description": "Metadata standards implemented by this platform.\n\nDublin Core: conformsTo for standard compliance.\n\nExamples:\n- \"Dublin Core\"\n- \"MARC21\"\n- \"EAD (Encoded Archival Description)\"\n- \"LIDO\"\n- \"MODS\"\n- \"EDM (Europeana Data Model)\"\n- \"Schema.org\"\n- \"CIDOC-CRM\"\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "oai_pmh_endpoint": { - "description": "OAI-PMH endpoint URL for metadata harvesting.\n\nDCAT: endpointURL for OAI-PMH service.\n\nSupports Open Archives Initiative Protocol for Metadata Harvesting.\n\nExamples:\n- \"https://www.europeana.eu/oai\" (Europeana OAI-PMH)\n- \"https://repository.example.edu/oai\" (Institutional repository OAI-PMH)\n", - "type": [ - "string", - "null" - ] - }, - "platform_category": { - "description": "Category of platform (can be string or list)", - "type": [ - "string", - "null" - ] - }, - "platform_id": { - "description": "Unique identifier for this digital platform instance. Mapped to dcterms:identifier as the standard property for resource identifiers.\nFormat: URI following NDE Heritage Custodian ontology conventions.\n", - "type": [ - "string", - "null" - ] - }, - "platform_name": { - "description": "Human-readable name of the social media platform.\n\nFOAF: accountServiceHomepage for service provider identification.\n\nUse when platform_type is OTHER or for disambiguation.\n\nExamples: \"Instagram\", \"X (formerly Twitter)\", \"Mastodon (glammr.us)\"\n", - "type": [ - "string", - "null" - ] - }, - "platform_type": { - "description": "Type of digital platform using DigitalPlatformType class hierarchy.\n\n**Class-based Type System** (replaces DigitalPlatformTypeEnum):\n\nPlatform types are organized into 8 high-level categories:\n- REPOSITORY: Digital archives, libraries, institutional repositories\n- AGGREGATOR: Aggregation and harvesting platforms \n- DISCOVERY: Search portals, catalogs, discovery interfaces\n- VIRTUAL_HERITAGE: 3D, VR/AR, immersive experiences\n- RESEARCH: Research data platforms, annotation tools\n- INTERACTIVE: Crowdsourcing, social, user contribution\n- COMMERCE: Licensing, print-on-demand, e-commerce\n- AUXILIARY: APIs, mobile apps, specialized tools\n\nEach category contains multiple concrete subclasses with Wikidata mappings.\nSee DigitalPlatformTypes.yaml for 69 concrete platform types.\n\nA platform may have multiple types (e.g., digital archive + aggregator).\n", - "type": [ - "string", - "null" - ] - }, - "platform_url": { - "description": "URL of the platform (enrichment data field)", - "type": [ - "string", - "null" - ] - }, - "preservation_level": { - "description": "Level of digital preservation commitment for this collection.\n\nPREMIS: policy for preservation commitment levels.\nAligns with premis:PreservationPolicy vocabulary.\n\nValues:\n- FULL: Long-term preservation with format migration commitment\n- BIT_LEVEL: Bit preservation only (no format migration)\n- ACCESS_ONLY: Access copies maintained, no preservation guarantee\n- NONE: No formal digital preservation policy\n\nApplies to digital_surrogates and born-digital materials in collection.\n\nFor specific file-level preservation actions, see DigitalPlatform\npreservation slots (fixity_check_date, storage_location).\n", - "type": [ - "string", - "null" - ] - }, - "provenance": { - "description": "Provenance information for this platform record", - "type": [ - "string", - "null" - ] - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": [ - "string", - "null" - ] - }, - "repository_software": { - "description": "Repository or content management software powering this platform.\n\nDOAP: repository for software/system identification.\n(DOAP = Description of a Project, W3C vocabulary for software projects)\n\nExamples:\n- \"DSpace 7.x\"\n- \"Fedora Commons 6.x\"\n- \"CollectiveAccess\"\n- \"ResourceSpace\"\n- \"Omeka S\"\n- \"Custom-built\"\n", - "type": [ - "string", - "null" - ] - }, - "serves_finding_aid": { - "description": "Finding aids hosted/served by this digital platform.\n\n**INVERSE RELATIONSHIP**:\n- Forward: FindingAid.served_by \u2192 DigitalPlatform/WebPortal (finding aid is served by platform)\n- Inverse: DigitalPlatform.serves_finding_aids \u2192 FindingAid[] (platform serves finding aids)\n\n**USE CASES**:\n1. \"What finding aids are available on this platform?\" \u2192 Follow serves_finding_aids\n2. \"Which platforms host EAD finding aids?\" \u2192 Query platforms with EAD-format finding aids\n3. Platform inventory: Map all finding aids served by each digital infrastructure\n\n**EXAMPLES**:\n- Archieven.nl serves 1000+ EAD finding aids\n- Archives Portal Europe serves finding aids from 30+ European countries\n- National Archives website serves collection guides and inventories\n\n**NOTE**: References FindingAid instances by URI. For full objects, \ndereference or query the FindingAid directly.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "source_method": { - "description": "Method used to extract data (automated_extraction, manual, etc.)", - "type": [ - "string", - "null" - ] - }, - "sparql_endpoint": { - "description": "SPARQL endpoint URL for linked data queries.\n\nDCAT: endpointURL for SPARQL service.\n\nIndicates platform supports RDF triple queries.\n\nExamples:\n- \"https://api.europeana.eu/sparql\" (Europeana SPARQL)\n- \"https://data.collectienederland.nl/sparql\" (Collectie Nederland SPARQL)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "sustainability_model": { - "description": "Sustainability/funding model", - "type": [ - "string", - "null" - ] - }, - "technology_stack": { - "description": "Technology stack description", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - }, - "user_services": { - "description": "User services offered", - "type": [ - "string", - "null" - ] - } - }, - "title": "DigitalPlatform", - "type": "object" - }, - "DigitalPlatformTemplate": { - "additionalProperties": false, - "description": "Template type for digital systems queries.\n\n**Relevant Queries**:\n- Collection management systems\n- Digital repositories and portals\n- API and integration information\n- Digital preservation systems", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "DigitalPlatformTemplate", - "type": "object" - }, - "DigitalPresence": { - "additionalProperties": false, - "description": "Represents a digital presence being asserted about (e.g. as primary).\nWrapper that links a specific presence instance (URI) to its type classification.\n\n**MIGRATION SOURCE**: Created from digital_presence_type slot migration (Rule 53, 2026-01-25).\n\n**Pattern**: Replaces `digital_presence_type` slot on assertion with structured object:\n- `has_or_had_identifier`: URI of the presence (SocialMediaProfile, Website, etc.)\n- `has_or_had_type`: Classification (DigitalPresenceType)", - "properties": { - "has_or_had_identifier": { - "description": "URI of the digital presence instance (e.g. hc:social-media/fb).", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/DigitalPresenceType" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_type" - ], - "title": "DigitalPresence", - "type": "object" - }, - "DigitalPresenceTypeEnum": { - "description": "Types of digital presence.", - "enum": [ - "WEBSITE", - "WEB_APPLICATION", - "DISCOVERY_PORTAL", - "DIGITAL_REPOSITORY", - "PROJECT_WEBSITE", - "EXHIBITION_MICROSITE", - "MOBILE_APP", - "SOCIAL_MEDIA", - "MESSAGING_SERVICE", - "IOT_BEACON", - "IOT_KIOSK", - "IOT_SENSOR" - ], - "title": "DigitalPresenceTypeEnum", - "type": "string" - }, - "DigitalPreservationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Digital preservation records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "DarkArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by DarkArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "DigitalPreservationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DigitalPreservationFonds", - "type": "object" - }, - "DigitalPreservationSpecialist": { - "additionalProperties": false, - "description": "Specialist in long-term preservation of digital collections.\n\n**Official Title vs De Facto Work**:\nOften involved in policy development, vendor management, training,\nand advocacy for digital preservation resources.\n\n**Common Variants**:\n- Digital Preservation Manager\n- Digital Archivist (preservation focus)\n- Digital Preservation Officer\n- Digital Curator\n\n**Typical Domains**: Archives, libraries, museums with born-digital collections\n\n**Typical Responsibilities**:\n- Digital preservation strategies (OAIS, PREMIS)\n- File format migration and emulation\n- Fixity checking and integrity monitoring\n- Digital repository management (Archivematica, Preservica)\n- Metadata for preservation (PREMIS, METS)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "DigitalPreservationSpecialist", - "type": "object" - }, - "DigitalPreservationSystem": { - "additionalProperties": false, - "description": "Digital Preservation System for long-term preservation of digital objects\nfollowing standards like OAIS (Open Archival Information System).\n\nExamples: Archivematica, Preservica, Rosetta, DSpace (preservation mode)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "const": "Digital Preservation System", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "DigitalPreservationSystem", - "type": "object" - }, - "DigitalRepository": { - "additionalProperties": false, - "description": "Digital repository systems for long-term preservation and access.\n\n**TYPICAL FEATURES**:\n- Long-term preservation\n- OAI-PMH harvesting\n- DOI/Handle assignment\n- Bitstream management\n- OAIS compliance\n\n**EXAMPLES**:\n- DSpace\n- Fedora (Flexible Extensible Digital Object Repository Architecture)\n- EPrints\n- Islandora (Drupal + Fedora)\n- Samvera (formerly Hydra)\n- Preservica", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/CMSType" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "DigitalRepository", - "type": "object" - }, - "DigitalRepositoryPresence": { - "additionalProperties": false, - "description": "Digital object repository for preservation and access.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "DigitalRepositoryPresence", - "type": "object" - }, - "DigitalRepositorySystem": { - "additionalProperties": false, - "description": "Digital repository or preservation system.\nExamples: Fedora Commons, DSpace, Islandora, Archivematica", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DigitalRepositorySystem", - "type": "object" - }, - "DigitallyInaccessibleCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Materials with access challenges.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "DimArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by DimArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "DigitallyInaccessibleCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DigitallyInaccessibleCollection", - "type": "object" - }, - "DigitizationBudget": { - "additionalProperties": false, - "description": "Budget allocated for digitization.", - "properties": { - "has_or_had_quantity": { - "items": { - "$ref": "#/$defs/Quantity" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - } - }, - "title": "DigitizationBudget", - "type": "object" - }, - "DigitizationCondition": { - "additionalProperties": false, - "description": "Condition or requirement for digitizing materials.\nIncludes quality standards, metadata requirements,\nor restrictions on derivative works.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DigitizationCondition", - "type": "object" - }, - "DigitizationEquipment": { - "additionalProperties": false, - "description": "Equipment used for digitization and imaging.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DigitizationEquipment", - "type": "object" - }, - "DigitizationFunction": { - "additionalProperties": false, - "description": "Digitization function: scanning, photography, metadata creation, digital asset management, online access.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "DigitizationFunction", - "type": "object" - }, - "DigitizationSpecialist": { - "additionalProperties": false, - "description": "Specialist in digitization workflows, imaging, and quality control.\n\n**Official Title vs De Facto Work**:\nOften extends into metadata creation, project management, vendor relations,\nand equipment procurement.\n\n**Common Variants**:\n- Digitization Manager\n- Imaging Technician\n- Scanning Specialist\n- Mass Digitization Coordinator\n- Digitization Project Manager\n\n**Typical Domains**: Archives, libraries, museums\n\n**Typical Responsibilities**:\n- Digitization project planning and execution\n- Imaging standards and quality control\n- Equipment operation (scanners, cameras, lighting)\n- File management and metadata creation\n- Vendor management for outsourced digitization", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "DigitizationSpecialist", - "type": "object" - }, - "DigitizedCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Digitized materials.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "DigitalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by DigitalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "DigitizedCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DigitizedCollection", - "type": "object" - }, - "DimArchives": { - "additionalProperties": false, - "description": "Archive with LIMITED access - between broadly accessible and fully closed.\n\n**Wikidata**: Q112796779 (Dim Archive)\n\n**DEFINITION**:\n\nDim Archive provides access to materials but with significant restrictions\nthat limit who can access, when, or under what conditions. This is the\nmiddle position in the Light/Dim/Dark access spectrum.\n\n**ACCESS SPECTRUM**:\n\n| Type | Access Level | Characteristics |\n|------|--------------|-----------------|\n| Light Archive (Q112815447) | Broadly accessible | Open to public/researchers |\n| **Dim Archive** | Limited access | Restricted by criteria |\n| Dark Archive (Q112796578) | No current access | Preservation only |\n\n**RESTRICTION TYPES** (reasons for \"dim\" access):\n\n1. **User-Based Restrictions**\n - Researchers only (credentials required)\n - Institutional affiliates only\n - Nationality restrictions\n - Security clearance required\n\n2. **Content-Based Restrictions**\n - Privacy-sensitive materials (personal data)\n - Confidential business information\n - Culturally sensitive materials\n - Copyright restrictions (reading room only)\n\n3. **Process-Based Restrictions**\n - Appointment required\n - Approval/application process\n - Fee-based access\n - Supervised access only\n\n4. **Format-Based Restrictions**\n - Physical access only (no digital)\n - Specific reading room required\n - No reproduction allowed\n - Watermarked copies only\n\n**SPECIAL LINKAGE: AccessPolicy \u2192 Collection**\n\nDim archives use AccessPolicy to document restrictions. AccessPolicy\napplies to Collection instances:\n\n```\nDimArchives (custodian type)\n \u2502\n \u2514\u2500\u2500 manages \u2192 Collection (holdings)\n \u2502\n \u2514\u2500\u2500 has_access_policy \u2192 AccessPolicy\n \u251c\u2500\u2500 access_level: RESTRICTED\n \u251c\u2500\u2500 restriction_reason: (text)\n \u251c\u2500\u2500 eligible_users: (criteria)\n \u2514\u2500\u2500 access_process: (procedure)\n```\n\n**MULTILINGUAL LABELS**:\n- Dim Archive (de) [uses English term]\n\n**RELATED TYPES**:\n- LightArchive (Q112815447) - broadly accessible\n- DarkArchive (Q112796578) - no current access\n- AccessPolicy - policy class for restriction documentation", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "grants_or_granted_access_through": { - "description": "Indicates that an entity grants or granted access through a specific application or mechanism. MIGRATED from has_access_application_url per Rule 53. Follows RiC-O naming convention.", - "items": { - "$ref": "#/$defs/AccessApplication" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_time_interval": { - "anyOf": [ - { - "$ref": "#/$defs/TimeInterval" - }, - { - "type": "null" - } - ], - "description": "Links to a time interval or duration associated with this entity.\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming indicates that time interval associations can change: - Update frequencies may be revised - Approval times may change with policy updates - Reporting periods may vary - Durations of media content\n**USE CASES**: - Update frequency: How often data is refreshed - Approval time: Expected processing duration - Reporting period: Time period for metrics/revenue - Media duration: Length of video/audio content" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "restriction_category": { - "description": "Categories of restrictions applied in this dim archive.\nExamples: user_based, content_based, process_based, format_based\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DimArchives", - "type": "object" - }, - "DimArchivesRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by DimArchives custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DimArchivesRecordSetType", - "type": "object" - }, - "DiocesanAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Diocesan administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "DiocesanArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by DiocesanArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "DiocesanAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DiocesanAdministrationFonds", - "type": "object" - }, - "DiocesanArchive": { - "additionalProperties": false, - "description": "Archive of a bishopric (diocese) - ecclesiastical administrative unit.\n\n**Wikidata**: Q11906839 (diocesan archive / Bisch\u00f6fliches Archiv)\n\n**DEFINITION**:\n\nDiocesan Archive preserves records created by or relating to a Catholic\nor Anglican diocese (bishopric). Holdings typically include:\n\n- Episcopal correspondence and decrees\n- Diocesan administrative records\n- Personnel files (clergy appointments, ordinations)\n- Parish records (copies or originals)\n- Matrimonial dispensation records\n- Visitation records\n- Financial/property records of the diocese\n\n**ECCLESIASTICAL HIERARCHY**:\n\n```\nVatican Archives (central)\n \u251c\u2500\u2500 Archdioceses \u2192 Archdiocesan Archives\n \u2502 \u2514\u2500\u2500 Dioceses \u2192 DIOCESAN ARCHIVE (THIS TYPE)\n \u2502 \u2514\u2500\u2500 Parishes \u2192 Parish Archives\n \u2514\u2500\u2500 Religious Orders \u2192 Order Archives\n```\n\n**HISTORICAL SIGNIFICANCE**:\n\nDiocesan archives are critical sources for:\n- Genealogical research (baptismal, marriage records)\n- Local history (diocese often predates civil administration)\n- Ecclesiastical history and church-state relations\n- Medieval and early modern studies\n\n**MULTILINGUAL LABELS**:\n- Bisch\u00f6fliches Archiv (de)\n- archivo diocesano (es)\n- archives dioc\u00e9saines (fr)\n\n**RELATED TYPES**:\n- ChurchArchive (Q2877653) - general church archives\n- ParishArchive (Q34544468) - parish-level records\n- CathedralArchive (Q132201761) - cathedral chapter records\n- MonasteryArchive (Q27030561) - religious order archives\n\n**ACCESS CONSIDERATIONS**:\n\nDiocesan archives often have restrictions:\n- Recent personnel files may be sealed\n- Matrimonial records may require dispensation\n- Some materials subject to canon law access rules\n- Research may require bishop's permission", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_part_of": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/Organization__identifier_optional" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ] - }, - "anyOf": [ - { - "type": "string" - }, - { - "$ref": "#/$defs/Archdiocese" - }, - { - "type": "null" - } - ], - "description": "Indicates that this entity is or was part of another entity.\n\n**USAGE**:\nRepresents part-whole relationships for:\n- Archives as part of dioceses (DiocesanArchive \u2192 Diocese)\n- Collections as part of institutions\n- Organizational units as part of parent organizations\n- Geographic regions as part of larger regions\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `rico:isOrWasPartOf` - RiC-O part-of relationship\n- **Close**: `schema:isPartOf` - Schema.org containment\n- **Close**: `dcterms:isPartOf` - Dublin Core part-of\n\n**TEMPORAL SEMANTICS**:\nThe \"is_or_was\" pattern (RiC-O convention) indicates that:\n- The relationship may be current (\"is part of\")\n- The relationship may be historical (\"was part of\")\n- Temporal extent can be captured via associated TimeSpan\n\n**INVERSE**: `has_or_had_part`\n", - "type": [ - "object", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "originates_or_originated_from": { - "description": "The entity (organization, place, or person) from which this entity originated or was derived.\nUsed to link a Custodian (like a Diocesan Archive) to its originating body (the Diocese).\nMIGRATED from `ecclesiastical_province` (partial) and other origin slots.", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "requires_or_required": { - "description": "Generic predicate indicating something is/was required.\n\nFollows RiC-O temporal naming convention (has_or_had, is_or_was, requires_or_required)\nto indicate the requirement relationship may be current or historical.\n\n**Usage**:\n- AccessPolicy requires_or_required Appointment\n- Collection requires_or_required SpecialHandling\n- ReadingRoom requires_or_required Registration\n\nThis slot provides the predicate; range is specified in class slot_usage\nto narrow to specific requirement types (Appointment, Credential, etc.)\n", - "items": { - "$ref": "#/$defs/Permission" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DiocesanArchive", - "type": "object" - }, - "DiocesanArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by DiocesanArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DiocesanArchiveRecordSetType", - "type": "object" - }, - "Diocese": { - "additionalProperties": false, - "description": "Represents an ecclesiastical diocese (bishopric) - an administrative unit\nof the Catholic, Anglican, or other episcopal churches.\n\n**USAGE**:\nCaptures structured information about dioceses that heritage custodians\n(particularly diocesan archives) are part of.\n\n**WIKIDATA**: Q131896 (diocese)\n\n**ECCLESIASTICAL HIERARCHY**:\n```\nVatican / Holy See\n \u251c\u2500\u2500 Ecclesiastical Province\n \u2502 \u2514\u2500\u2500 Archdiocese (metropolitan see)\n \u2502 \u2514\u2500\u2500 DIOCESE (suffragan see) \u2190 THIS CLASS\n \u2502 \u2514\u2500\u2500 Parish\n \u2514\u2500\u2500 Religious Orders\n```\n\n**HISTORICAL SIGNIFICANCE**:\nMany European dioceses were established in medieval times and often\npredate civil administrative divisions. Their founding dates are\nsignificant for understanding ecclesiastical history.\n\n**MIGRATION NOTE**:\nCreated per slot_fixes.yaml revision (Rule 53, 2026-01-22).\nReplaces simple `founding_date_diocese` (date) with structured class\ncapturing diocese identity and founding event.", - "properties": { - "archdiocese_name": { - "description": "Name of the metropolitan archdiocese this diocese belongs to.\n", - "type": [ - "string", - "null" - ] - }, - "denomination": { - "description": "Religious denomination (Catholic, Anglican, Orthodox, etc.)\n", - "type": [ - "string", - "null" - ] - }, - "diocese_id": { - "description": "Unique identifier for this diocese.\nRecommended: Use Wikidata ID or institutional URI.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_founded_through": { - "anyOf": [ - { - "$ref": "#/$defs/FoundingEvent" - }, - { - "type": "null" - } - ], - "description": "Links an organization or institution to its founding event.\n\n**USAGE**:\nRepresents the founding/establishment event for:\n- Heritage custodians (museums, archives, libraries)\n- Standards organizations\n- Restaurants/venues with historical significance\n- Any organization with a founding date\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:isOrWasFoundedThrough` - Heritage Custodian property\n- **Close**: `schema:foundingDate` - Schema.org founding date (simpler)\n- **Close**: `prov:wasGeneratedBy` - PROV-O generation event\n- **Related**: `crm:P92i_was_brought_into_existence_by` - CIDOC-CRM existence\n\n**TEMPORAL PATTERN**:\nThe FoundingEvent contains a `temporal_extent` (TimeSpan) with:\n- `begin_of_the_begin`: Earliest possible founding date\n- `end_of_the_begin`: Latest possible founding date (for uncertain dates)\n\n**MIGRATION NOTE**:\nReplaces simple `founded_year` (integer) and `founding_date` (string)\nwith structured FoundingEvent for richer temporal and contextual data.\n" - }, - "is_or_was_located_in": { - "description": "links an entity to a place where it is or was located.\n\n**TEMPORAL SEMANTICS** (RiC-O style):\n\nThe \"is_or_was\" naming indicates that location can change over time.\n\n**BROADENED RANGE (Rule 55)**:\nRange broadened to `Any` (from City) to support multiple location types:\n- City / Settlement\n- Region / Province (e.g. EcclesiasticalProvince)\n- Country\n- Physical Site\n\n**DISTINCTION FROM is_or_was_located_within**:\n\n- `is_or_was_located_in`: Entity is AT a place (city/settlement level)\n- `is_or_was_located_within`: Entity is CONTAINED IN a larger place (hierarchical)\n\n**REPLACES**:\n\n- `city` (string slot) - Migrated to structured City class\n\n**USE CASES**:\n\n- Address city component (structured)\n- Auxiliary place city location\n- Any entity requiring city-level location\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label", - "diocese_id" - ], - "title": "Diocese", - "type": "object" - }, - "DiplomaticCorrespondenceCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for International relations and diplomatic records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "NationalArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by NationalArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "DiplomaticCorrespondenceCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DiplomaticCorrespondenceCollection", - "type": "object" - }, - "DiplomaticSignificance": { - "additionalProperties": false, - "description": "Cultural diplomacy and international representation.\n\n**Aspects**:\n- National heritage representation\n- Soft power\n- International recognition\n- Cultural exchange\n\n**Use Cases**:\n- National collections\n- Cultural embassies\n- International exhibitions\n\n**Example**:\n```yaml\nhas_or_had_significance:\n - has_or_had_type: DiplomaticSignificance\n has_or_had_description: \"French parfumerie tradition, cultural diplomacy\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "DiplomaticSignificance", - "type": "object" - }, - "Director": { - "additionalProperties": false, - "description": "Executive director or institutional director (top leadership).\n\n**Official Title vs De Facto Work**:\nThe scope depends heavily on institution size. Small institution directors\nmay also handle curatorial, fundraising, HR, and operations directly.\n\n**Common Variants**:\n- Executive Director\n- Museum Director\n- Archive Director\n- Chief Librarian\n- General Director\n- CEO\n\n**Typical Domains**: All heritage institutions\n\n**Typical Responsibilities**:\n- Strategic planning and vision\n- Board relations and governance\n- Fundraising and development\n- External relations and advocacy\n- Overall organizational leadership", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Director", - "type": "object" - }, - "DisciplinaryRepository": { - "additionalProperties": false, - "description": "Online archive containing works or data associated with these works\nof scholars in a particular subject area.\n\n**PURPOSE**: Provide disciplinary communities with dedicated repository\nservices for their research outputs.\n\n**CHARACTERISTICS**:\n- Subject-specific focus\n- Community standards\n- Disciplinary metadata\n- Peer community engagement\n\n**EXAMPLES**: arXiv (physics/math), PubMed Central (biomedical), SSRN (social sciences)", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q5281480" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "RESEARCH", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "DisciplinaryRepository", - "type": "object" - }, - "DiscoveryLayer": { - "additionalProperties": false, - "description": "Discovery interface for digital collections.\nExamples: Blacklight, VuFind, Primo, Summon", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DiscoveryLayer", - "type": "object" - }, - "DiscoveryMotivation": { - "additionalProperties": false, - "description": "Motivation for enabling search and discovery.\n\n**DEFINITION**:\n\nDiscoveryMotivation describes annotations created specifically to\nimprove the findability and discoverability of heritage content.\n\n**HERITAGE-SPECIFIC MOTIVATION**:\n\nThis extends W3C Web Annotation with heritage discovery needs.\nFocus is on making collections searchable and browsable.\n\n**USE CASES**:\n\n| Use Case | Example |\n|----------|---------|\n| SEO metadata | Schema.org structured data |\n| Faceted search | Filter-enabling metadata |\n| Full-text indexing | OCR text for search |\n| Named entity extraction | People, places, dates |\n| AI-generated descriptions | ML-powered metadata |\n\n**HERITAGE CONTEXT**:\n\nDiscovery is essential for heritage access:\n- Collection portal search optimization\n- Aggregator metadata enhancement (Europeana)\n- Cross-collection discovery\n- Semantic search enablement\n\n**SCHEMA.ORG ALIGNMENT**:\n\nSupports structured data for search engines:\n- schema:WebPage, schema:CollectionPage\n- schema:Breadcrumb navigation\n- schema:SearchAction configuration", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "motivation_type_description": { - "description": "Detailed description of an annotation motivation type including purpose, characteristics, and typical use cases.", - "type": [ - "string", - "null" - ] - }, - "motivation_type_id": { - "description": "Unique identifier for an annotation motivation type.", - "type": "string" - }, - "motivation_type_name": { - "const": "discovery", - "description": "Canonical name for this motivation type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "motivation_type_id", - "motivation_type_name" - ], - "title": "DiscoveryMotivation", - "type": "object" - }, - "DiscoveryPortalPresence": { - "additionalProperties": false, - "description": "Collection discovery and search portal.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "DiscoveryPortalPresence", - "type": "object" - }, - "DiscoverySystem": { - "additionalProperties": false, - "description": "Discovery system or discovery layer providing unified search across\nlibrary catalogs, databases, and digital collections.\n\nExamples: Primo, Summon, EDS, VuFind, Blacklight", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "const": "Discovery System", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "DiscoverySystem", - "type": "object" - }, - "DiscussionForumFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Discussion forum records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "MailingListArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by MailingListArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "DiscussionForumFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DiscussionForumFonds", - "type": "object" - }, - "DismissalEvent": { - "additionalProperties": false, - "description": "Event of dismissal or negative reaction.", - "properties": { - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - } - }, - "title": "DismissalEvent", - "type": "object" - }, - "DisplayAreaCapacity": { - "additionalProperties": false, - "description": "Exhibition or display area capacity.\nUsed for galleries and exhibition halls.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DisplayAreaCapacity", - "type": "object" - }, - "DisplayLocation": { - "additionalProperties": false, - "description": "Location within a venue for display.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DisplayLocation", - "type": "object" - }, - "DisplayName": { - "additionalProperties": false, - "description": "Label type for public-facing display names.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_code" - ], - "title": "DisplayName", - "type": "object" - }, - "DispositionService": { - "additionalProperties": false, - "description": "Service for record disposition.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DispositionService", - "type": "object" - }, - "DissolutionEvent": { - "additionalProperties": false, - "description": "Dissolution or closure event.", - "properties": { - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "DissolutionEvent", - "type": "object" - }, - "DistributedRecordsCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Distributed custody records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PostcustodialArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PostcustodialArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "DistributedRecordsCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DistributedRecordsCollection", - "type": "object" - }, - "DistrictArchiveGermany": { - "additionalProperties": false, - "description": "Archive type specific to Germany at the Kreis (district) level.\nThese archives serve administrative districts (Landkreise) and \npreserve records of district-level government and administration.\n\n**Wikidata**: Q130757255\n\n**German term**: Kreisarchiv\n\n**Geographic Restriction**: Germany (DE) only.\nThis constraint is enforced via LinkML `rules` with `postconditions`.\n\n**Scope**:\nKreisarchive preserve:\n- District government records (Kreistag, Landrat)\n- Administrative files from Landkreis authorities\n- Historical district documentation\n- Civil registry records (transferred from municipalities)\n- Building permits and planning documents\n- Maps and cadastral records\n\n**Administrative Context**:\nIn the German archival system:\n- Bundesarchiv (federal level)\n- Landesarchive (state/Land level)\n- Kreisarchive (district level) \u2190 This type\n- Stadtarchive/Gemeindearchive (municipal level)\n\n**Related Types**:\n- MunicipalArchive (Q604177) - City/town level\n- RegionalArchive (Q27032392) - Regional scope\n- GovernmentArchive - Government records\n\n**Dual-Class Pattern**:\nThis class represents the CUSTODIAN type (the archive organization).\nFor the collection type, see `DistrictArchiveGermanyRecordSetType`.\n\n**Multilingual Labels**:\n- de: Kreisarchiv\n- en: District Archive (Germany)", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DistrictArchiveGermany", - "type": "object" - }, - "DistrictArchiveGermanyRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by DistrictArchiveGermany custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DistrictArchiveGermanyRecordSetType", - "type": "object" - }, - "DistritalArchive": { - "additionalProperties": false, - "description": "District archives in Portugal (Arquivo Distrital). These archives serve as the primary archival institution at the district (distrito) administrative level in Portugal. They preserve records of regional administration, notarial records, parish registers, and other historical documentation for their respective districts. German term: Bezirksarchiv (Portugal).", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DistritalArchive", - "type": "object" - }, - "DistritalArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by DistritalArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DistritalArchiveRecordSetType", - "type": "object" - }, - "DistritoAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for District administrative records (Portugal/Spain).\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "DistritalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by DistritalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "DistritoAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DistritoAdministrationFonds", - "type": "object" - }, - "DocumentClaim": { - "additionalProperties": false, - "description": "Claim types for organizational documents.\nIncludes reports, policies, and financial statements.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "DocumentClaim", - "type": "object" - }, - "DocumentDatabase": { - "additionalProperties": false, - "description": "NoSQL document-oriented database.\nExamples: MongoDB, CouchDB, RavenDB", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DocumentDatabase", - "type": "object" - }, - "DocumentFormat": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DocumentFormat", - "type": "object" - }, - "DocumentRepository": { - "additionalProperties": false, - "description": "Digital archive of documents; database of digital research outputs.\n\n**PURPOSE**: Store and provide access to research documents, publications,\ntheses, reports, and other scholarly outputs.\n\n**CHARACTERISTICS**:\n- Self-deposit by authors\n- Metadata harvesting via OAI-PMH\n- Persistent identifiers (DOIs, handles)\n- Open access focus\n\n**EXAMPLES**: DSpace repositories, EPrints instances, Zenodo", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q1235234" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "REPOSITORY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "DocumentRepository", - "type": "object" - }, - "DocumentaryFilmCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for documentary and non-fiction films.\n\n**Definition**:\nCollections of non-fiction films documenting real events, people, and \nphenomena. Includes traditional documentaries, industrial films, \neducational films, and ethnographic films.\n\n**Typical Contents**:\n- Documentary films (documentaires)\n- Industrial/sponsored films (bedrijfsfilms)\n- Educational films (onderwijsfilms)\n- Ethnographic films\n- Scientific films\n- Travel films\n- Government information films (voorlichtingsfilms)\n- Home movies (amateur films with documentary value)\n\n**Research Value**:\nDocumentary films are primary sources for:\n- Historical events and social conditions\n- Industrial history and work practices\n- Educational practices\n- Cultural and ethnographic studies\n- Scientific and medical history\n\n**Organization Patterns**:\n- By subject/topic\n- By commissioning organization\n- By filmmaker/production company\n- By period\n- By geographic region\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the collection organizational principle as defined by rico-rst:Collection\n(assembled collections organized by subject, sponsor, or filmmaker).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the collection principle as defined by rico-rst:Collection. Assembled collections organized by subject, commissioning organization, or filmmaker.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "DocumentaryFilmCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"feature films\", \"newsreels\", \"production records\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"documentaries\", \"industrial films\", \"educational films\", \"ethnographic films\", \"government films\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "DocumentaryFilmCollection", - "type": "object" - }, - "Documentation": { - "additionalProperties": false, - "description": "Documentation resource for a service, API, platform, or system.\n**DEFINITION**:\nDocumentation represents technical documentation resources such as API documentation, user guides, developer references, or system manuals. This replaces domain-specific slots like `api_documentation` with a structured class that can capture multiple documentation resources with different types and purposes.\n**ONTOLOGY ALIGNMENT**:\n- Schema.org: `schema:TechArticle` - technical documentation - DOAP: `doap:homepage`, `doap:wiki` - project documentation - FOAF: `foaf:Document` - generic document - DCTERMS: `dcterms:references` - documentation references\n**DOCUMENTATION TYPES**:\n- API Reference: Endpoint specifications, parameters, responses - User Guide: End-user instructions and tutorials - Developer Guide: Integration and development instructions - System Manual: Technical specifications and architecture\n**USE CASES**:\n1. **API Documentation**: Link to REST API reference docs 2. **Integration Guides**: How to integrate with the platform 3. **User Manuals**: End-user documentation for staff", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_identifier" - ], - "title": "Documentation", - "type": "object" - }, - "DocumentationSource": { - "additionalProperties": false, - "description": "Documentation source.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DocumentationSource", - "type": "object" - }, - "Domain": { - "additionalProperties": false, - "description": "A subject domain or knowledge area covered by a heritage custodian's collections. Domains represent broad thematic areas such as Art History, Archaeology, Natural History, Local History, or specialized fields like Numismatics or Maritime History. Used to categorize collection focus and expertise. Maps to skos:Concept - a unit of thought in a knowledge organization system.", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Domain", - "type": "object" - }, - "DonatedPapersCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Donated papers.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "CollectingArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by CollectingArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "DonatedPapersCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "DonatedPapersCollection", - "type": "object" - }, - "DonationScheme": { - "additionalProperties": false, - "description": "A donation or giving scheme offered by a heritage custodian institution.\n\n**PURPOSE**:\n\nDonationScheme provides structured representation of the various ways\nindividuals and organizations can financially support heritage institutions.\nThese range from simple one-time donations to complex membership programs,\nadoption schemes, patron circles, and legacy giving vehicles.\n\n**HERITAGE SECTOR CONTEXT**:\n\nDonation schemes are critical for heritage institution sustainability:\n\n- **Museums**: Friends schemes, patron circles, acquisition fund drives\n- **Libraries**: Adopt-a-book programs, conservation appeals\n- **Archives**: \"Adopt history\" programs, preservation sponsorships\n- **Galleries**: Artist support funds, exhibition sponsorships\n- **Historical societies**: Heritage membership, research fellowships\n- **Botanical gardens**: Plant and animal adoption programs\n\n**MULTILINGUAL TERMINOLOGY**:\n\n\"Friends\" scheme terminology varies by country:\n- Dutch: Museumvriend, Vrienden van het museum\n- German: F\u00f6rderverein, Freundeskreis\n- French: Amis du mus\u00e9e, Soci\u00e9t\u00e9 des amis\n- Spanish: Amigos del museo\n- Italian: Amici del museo\n\n**PROVENANCE CHAIN**:\n\n```\nHeritageCustodian\n \u2502\n \u251c\u2500\u2500 offers_donation_schemes \u2500\u2500\u2192 DonationScheme[]\n \u2502 \u2502\n \u2502 \u251c\u2500\u2500 scheme_type: MEMBERSHIP_FRIENDS\n \u2502 \u251c\u2500\u2500 scheme_name: \"Rijksmuseum Vrienden\"\n \u2502 \u251c\u2500\u2500 minimum_amount: 60\n \u2502 \u251c\u2500\u2500 currency: \"EUR\"\n \u2502 \u251c\u2500\u2500 payment_frequency: \"annually\"\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500 observed_in \u2500\u2500\u2192 WebObservation\n \u2502 \u2502\n \u2502 \u251c\u2500\u2500 source_url: https://rijksmuseum.nl/steun\n \u2502 \u251c\u2500\u2500 retrieved_on: 2026-01-01T10:00:00Z\n \u2502 \u2514\u2500\u2500 extraction_confidence: 0.95\n \u2502\n \u2514\u2500\u2500 web_observations \u2500\u2500\u2192 WebObservation[] (general custodian provenance)\n```\n\n**ONTOLOGY ALIGNMENT**:\n\n- **Schema.org**: `schema:DonateAction` - Action of donating to organization\n- **Schema.org**: `schema:Offer` - Scheme as offer with price specification\n- **W3C Org**: `org:Membership` - For membership-type schemes\n- **Dublin Core**: `dcterms:isPartOf` - Scheme belongs to institution\n- **PROV-O**: `prov:wasDerivedFrom` - Links scheme to observation\n\n**TAX INCENTIVE SCHEMES**:\n\nMany countries provide tax benefits for cultural donations:\n\n| Country | Scheme | Benefit |\n|---------|--------|---------|\n| Netherlands | ANBI | 100% deductible |\n| Netherlands | Cultural ANBI | 125% deductible (extra 25%) |\n| UK | Gift Aid | 25% tax reclaim for charity |\n| UK | Cultural Gifts Scheme | Tax relief on objects donated |\n| USA | 501(c)(3) | Itemized deduction |\n| Germany | Gemeinn\u00fctzigkeit | Tax deductible |\n| France | M\u00e9c\u00e9nat culturel | 60% tax reduction |\n\n**SCHEME CATEGORIES**:\n\nSchemes are classified via DonationSchemeTypeEnum into eight categories:\n\n1. **MEMBERSHIP_*** - Recurring membership/subscription\n - Friends, Young Friends, Family, Corporate, Research Fellow\n \n2. **PATRON_*** - High-value donor circles\n - Circle, Benefactor, Founders Circle, Life, National\n \n3. **ADOPTION_*** - Object sponsorship\n - Book, Artifact, Archive Collection, Artwork, Animal, Plant\n \n4. **LEGACY_*** - Planned/estate giving\n - Bequest, Charitable Trust, Endowment, Named Fund\n \n5. **DONATION_*** - Direct monetary gifts\n - One-off, Recurring, Appeal, Project, Tax Incentive\n \n6. **INKIND_*** - Non-monetary contributions\n - Object, Artwork, Archive, Library Collection, Expertise, Volunteer\n \n7. **SPONSORSHIP_*** - Corporate/event support\n - Exhibition, Gallery, Event, Program, Digitization, Conservation\n \n8. **CROWDFUNDING_*** - Campaign-based collective funding\n - Acquisition, Conservation, Building, Exhibition\n\n**EXTRACTION PATTERN**:\n\nWhen extracting donation schemes from institutional websites:\n\n1. Create WebObservation for the support/donate page\n2. For each scheme found:\n - Create DonationScheme with observed_in \u2192 WebObservation\n - Classify using DonationSchemeTypeEnum\n - Extract financial details (amounts, currency, frequency)\n - List benefits provided to donors\n - Note tax deductibility and applicable schemes\n - Assign extraction_confidence based on clarity\n\n**EXAMPLES**:\n\nSee class examples section for detailed instances.", - "properties": { - "currency": { - "description": "ISO 4217 currency code for the amount fields.\nRequired if minimum_amount or maximum_amount is specified.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_benefit": { - "description": "Benefit(s) associated with an entity such as a donation scheme or membership.\nGeneric slot for expressing benefits provided to participants, donors, or members. Class-specific slot_usage should narrow the range to appropriate benefit class (e.g., Benefit, MembershipBenefit).\nFollows RiC-O temporal naming convention (has_or_had_*) to indicate benefits that exist currently or existed in the past.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_or_was_tax_deductible": { - "anyOf": [ - { - "$ref": "#/$defs/TaxDeductibility" - }, - { - "type": "null" - } - ], - "description": "Tax deductibility status of donations to a scheme or institution.\n\n**MIGRATION**: Replaces boolean `tax_deductible` slot with structured\nTaxDeductibility class per slot_fixes.yaml revision.\n\n**SEMANTIC PATTERN**:\n\nUses RiC-O temporal naming (is_or_was_*) to capture that tax\ndeductibility status may change over time as regulations evolve.\n\n**RELATIONSHIP TO regulated_by_scheme**:\n\nThis slot provides the simple yes/no/partial deductibility status,\nwhile `regulated_by_scheme` provides the detailed tax scheme\ninformation (jurisdiction, percentages, regulatory bodies).\n\n```\nDonationScheme\n \u2502\n \u251c\u2500\u2500 is_or_was_tax_deductible \u2500\u2500\u2192 TaxDeductibility\n \u2502 \u2514\u2500\u2500 status: FULLY_DEDUCTIBLE\n \u2502 \u2514\u2500\u2500 jurisdiction: NL\n \u2502\n \u2514\u2500\u2500 regulated_by_scheme \u2500\u2500\u2192 TaxScheme[]\n \u2514\u2500\u2500 has_or_had_type: CulturalANBI\n \u2514\u2500\u2500 offers_or_offered: [{ has_or_had_percentage: 125 }]\n```\n\n**HERITAGE SECTOR CONTEXT**:\n\nTax deductibility varies by:\n- Donor jurisdiction (where donor pays taxes)\n- Institution jurisdiction (where institution is registered)\n- Donation type (cash, securities, objects)\n- Donation amount (thresholds may apply)\n" - }, - "maximum_amount": { - "description": "Maximum amount for this scheme tier (if applicable).\nHelps distinguish between tiered patron levels.\n", - "type": [ - "number", - "null" - ] - }, - "minimum_amount": { - "description": "Minimum donation amount required to participate in this scheme.\nFor tiered schemes, use the entry-level amount.\n", - "type": [ - "number", - "null" - ] - }, - "observed_in": { - "description": "WebObservation documenting where this entity was found.\n\n**PROVENANCE PATTERN**:\n\nLinks extracted entities to their source WebObservation, enabling:\n- Verification of extracted data against original source\n- Temporal tracking (when was this information observed?)\n- Source URL preservation\n- Extraction confidence documentation\n\n**Example Usage**:\n```yaml\nDonationScheme:\n scheme_id: \"https://nde.nl/ontology/hc/donation-scheme/rijksmuseum/vrienden\"\n scheme_name: \"Rijksmuseum Vrienden\"\n observed_in: \"https://nde.nl/ontology/hc/observation/web/2026-01-01/rijksmuseum-support\"\n\nWebObservation:\n observation_id: \"https://nde.nl/ontology/hc/observation/web/2026-01-01/rijksmuseum-support\"\n source_url: \"https://www.rijksmuseum.nl/nl/steun-het-rijksmuseum\"\n retrieved_on: \"2026-01-01T10:00:00Z\"\n```\n\n**Classes Using This Slot**:\n- DonationScheme - donation/membership programs\n- FundingRequirement - grant eligibility criteria\n- Other extracted entities with web provenance", - "type": "string" - }, - "offered_by": { - "description": "Heritage custodian that offers this donation scheme.\nLinks to HeritageCustodian entity.\n", - "type": "string" - }, - "payment_frequency": { - "description": "How often payment is made for recurring schemes.\nUse standardized values for queryability.\n", - "type": [ - "string", - "null" - ] - }, - "regulated_by_scheme": { - "description": "Tax or regulatory scheme(s) that govern an entity's fiscal treatment.\n\nThis generic slot connects entities (donation schemes, custodians, etc.)\nto formal regulatory frameworks that provide tax benefits, compliance\nrequirements, or legal status.\n\n**MIGRATION**: Replaces `tax_scheme` per slot_fixes.yaml revision.\nThe structured TaxScheme class provides:\n- Typed classification via TaxSchemeType hierarchy\n- Jurisdictional metadata\n- Tax benefit percentages\n- Regulatory body references\n\n**HERITAGE SECTOR CONTEXT**:\n\nHeritage institutions operate under various tax regimes:\n- Netherlands: ANBI (general), Cultural ANBI (125% deduction)\n- UK: Gift Aid, Cultural Gifts Scheme\n- USA: 501(c)(3), 501(c)(4)\n- Germany: Gemeinn\u00fctzigkeit\n- France: M\u00e9c\u00e9nat culturel\n\n**USAGE PATTERN**:\n\n```yaml\ndonation_scheme:\n regulated_by_scheme:\n - scheme_type: CULTURAL_ANBI\n jurisdiction: NL\n # MIGRATED 2026-01-24: deduction_percentage \u2192 offers_or_offered (Rule 53)\n offers_or_offered:\n - has_or_had_percentage:\n percentage_value: 125\n regulatory_body: Belastingdienst\n```\n\n**ONTOLOGY ALIGNMENT**:\n\n- schema:GovernmentService - Tax schemes as government services\n- org:Organization - Regulatory bodies as organizations\n- schema:Legislation - Legal basis for schemes\n", - "items": { - "$ref": "#/$defs/TaxScheme" - }, - "type": [ - "array", - "null" - ] - }, - "scheme_description": { - "description": "Description of the scheme including purpose, requirements, and process. Extract from institutional website or promotional materials.\nMaps to dcterms:description for scheme/program descriptions.", - "type": [ - "string", - "null" - ] - }, - "scheme_id": { - "description": "Unique identifier for this donation scheme. Mapped to dcterms:identifier as the standard property for resource identifiers.\nFormat: https://nde.nl/ontology/hc/donation-scheme/{custodian-slug}/{scheme-slug}\n", - "pattern": "^https://nde\\.nl/ontology/hc/donation-scheme/[a-z0-9-]+/[a-z0-9-]+$", - "type": "string" - }, - "scheme_name": { - "description": "Human-readable name of the donation scheme as presented by institution.\nOntology mapping: skos:prefLabel is the standard SKOS property for preferred human-readable labels. Preserve original language and branding.", - "type": "string" - }, - "scheme_type": { - "$ref": "#/$defs/DonationSchemeTypeEnum", - "description": "Category of donation scheme from DonationSchemeTypeEnum.\n\nEnables filtering and comparison of schemes across institutions.\nSee enum documentation for full category list with ~50 types.\n" - }, - "scheme_url": { - "description": "URL to the donation scheme webpage on institutional website. Mapped to schema:url as the standard property for web addresses.\nPrimary source for extraction and verification.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "observed_in", - "offered_by", - "scheme_id", - "scheme_name", - "scheme_type" - ], - "title": "DonationScheme", - "type": "object" - }, - "DonationSchemeTypeEnum": { - "description": "Categories of donation and giving schemes offered by heritage institutions.\n\nThis enumeration classifies the various ways individuals and organizations\ncan financially support heritage custodians (museums, libraries, archives,\ngalleries, historical societies, etc.).\n\n**STRUCTURE**:\n\nDonation schemes are organized into eight main categories:\n\n1. **MEMBERSHIP_*** - Recurring membership/subscription schemes\n2. **PATRON_*** - High-value patron and benefactor circles\n3. **ADOPTION_*** - Object/item adoption/sponsorship programs\n4. **LEGACY_*** - Planned giving and estate gifts\n5. **DONATION_*** - One-time and recurring monetary donations\n6. **INKIND_*** - Non-monetary gifts (objects, services, expertise)\n7. **SPONSORSHIP_*** - Corporate and event sponsorship\n8. **CROWDFUNDING_*** - Campaign-based collective funding\n\n**HERITAGE SECTOR COVERAGE**:\n\nThese schemes are observed across all GLAMORCUBESFIXPHDNT institution types:\n- **Museums**: Friends schemes, patron circles, adopt-an-artifact\n- **Libraries**: Adopt-a-book, patron programs, conservation appeals\n- **Archives**: Friends of the archive, \"adopt history\" programs\n- **Galleries**: Patron circles, acquisition fund memberships\n- **Historical societies**: Heritage memberships, research sponsorships\n- **Research centers**: Fellows programs, research fund donations\n\n**MULTILINGUAL TERMS**:\n\nCommon translations for \"Friends\" scheme:\n- Dutch: Museumvriend, Vrienden van het museum\n- German: F\u00f6rderverein, Freundeskreis\n- French: Amis du mus\u00e9e, Soci\u00e9t\u00e9 des amis\n- Spanish: Amigos del museo\n- Italian: Amici del museo", - "enum": [ - "MEMBERSHIP_FRIENDS", - "MEMBERSHIP_YOUNG_FRIENDS", - "MEMBERSHIP_FAMILY", - "MEMBERSHIP_STUDENT", - "MEMBERSHIP_SENIOR", - "MEMBERSHIP_CORPORATE", - "MEMBERSHIP_INTERNATIONAL", - "MEMBERSHIP_RESEARCH_FELLOW", - "PATRON_CIRCLE", - "PATRON_BENEFACTOR", - "PATRON_FOUNDERS_CIRCLE", - "PATRON_LIFE", - "PATRON_NATIONAL", - "ADOPTION_BOOK", - "ADOPTION_ARTIFACT", - "ADOPTION_ARCHIVE_COLLECTION", - "ADOPTION_ARTWORK", - "ADOPTION_ANIMAL", - "ADOPTION_PLANT", - "ADOPTION_SEAT", - "ADOPTION_DESK", - "LEGACY_BEQUEST", - "LEGACY_CHARITABLE_TRUST", - "LEGACY_ENDOWMENT", - "LEGACY_NAMED_FUND", - "LEGACY_RETIREMENT_ASSETS", - "LEGACY_LIFE_INSURANCE", - "DONATION_ONEOFF", - "DONATION_RECURRING", - "DONATION_APPEAL", - "DONATION_PROJECT", - "DONATION_TAX_INCENTIVE", - "INKIND_OBJECT", - "INKIND_ARTWORK", - "INKIND_ARCHIVE", - "INKIND_LIBRARY_COLLECTION", - "INKIND_EXPERTISE", - "INKIND_VOLUNTEER", - "SPONSORSHIP_EXHIBITION", - "SPONSORSHIP_GALLERY", - "SPONSORSHIP_EVENT", - "SPONSORSHIP_PROGRAM", - "SPONSORSHIP_DIGITIZATION", - "SPONSORSHIP_CONSERVATION", - "CROWDFUNDING_ACQUISITION", - "CROWDFUNDING_CONSERVATION", - "CROWDFUNDING_BUILDING", - "CROWDFUNDING_EXHIBITION", - "OTHER" - ], - "title": "DonationSchemeTypeEnum", - "type": "string" - }, - "DonationUrlClaim": { - "additionalProperties": false, - "description": "URL for donation/support page.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "DonationUrlClaim", - "type": "object" - }, - "Drawer": { - "additionalProperties": false, - "description": "Storage drawer.", - "properties": { - "has_or_had_identifier": { - "items": { - "$ref": "#/$defs/DrawerNumber" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Drawer", - "type": "object" - }, - "DrawerNumber": { - "additionalProperties": false, - "description": "Number identifying a drawer.", - "properties": { - "has_or_had_scheme": { - "anyOf": [ - { - "$ref": "#/$defs/IdentifierScheme" - }, - { - "type": "null" - } - ], - "description": "Identifier scheme." - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "$ref": "#/$defs/IdentifierValue" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DrawerNumber", - "type": "object" - }, - "DrawerUnitCapacity": { - "additionalProperties": false, - "description": "Number of drawer units available.\nUsed for flat file storage and specimen collections.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "DrawerUnitCapacity", - "type": "object" - }, - "DrinkingEstablishment": { - "additionalProperties": false, - "description": "Business whose primary function is serving beverages for consumption on premises.\nIncludes caf\u00e9s, tea houses, inns, and other beverage-focused establishments.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "DrinkingEstablishment", - "type": "object" - }, - "DualClassLink": { - "additionalProperties": false, - "description": "", - "title": "DualClassLink", - "type": "object" - }, - "EADDownload": { - "additionalProperties": false, - "description": "EAD (Encoded Archival Description) finding aid download endpoint.\n\n**Purpose:**\n\nModels endpoints that provide EAD XML downloads for archival finding aids.\nEAD is the international standard for encoding archival descriptive information.\n\n**EAD Versions:**\n\n- **EAD3** (2015): Current standard, aligned with ISAD(G), RiC-CM\n- **EAD 2002**: Previous version, still widely used\n- **EAD 1.0** (1998): Original version, legacy\n\n**EAD Structure:**\n\nAn EAD document contains:\n- **<eadheader>** / **<control>**: Finding aid metadata\n- **<archdesc>**: Archival description\n - **<did>**: Descriptive identification (title, dates, extent)\n - **<bioghist>**: Biographical/historical note\n - **<scopecontent>**: Scope and content\n - **<arrangement>**: Arrangement\n - **<accessrestrict>**: Access restrictions\n - **<userestrict>**: Use restrictions\n - **<dsc>**: Description of subordinate components (hierarchy)\n\n**Example - Nationaal Archief EAD Download:**\n\n```yaml\nead_download:\n endpoint_name: \"Nationaal Archief EAD Download\"\n base_url: \"https://www.nationaalarchief.nl/onderzoeken/archief/\"\n url_pattern: \"{base_url}{archive_code}/download/ead\"\n ead_version: EAD_2002\n archive_code_format: \"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+$\"\n includes_dao_links: true\n includes_index: true\n compression: none\n example_url: \"https://www.nationaalarchief.nl/onderzoeken/archief/2.04.87/download/ead\"\n```\n\n**Use Cases:**\n\n1. **Finding aid harvesting**: Aggregate archival descriptions\n2. **Data migration**: Move descriptions between systems\n3. **Preservation**: Archive finding aids as XML\n4. **Integration**: Import into archival management systems\n\n**See Also:**\n\n- EAD3: https://www.loc.gov/ead/\n- ISAD(G): https://www.ica.org/en/isadg-general-international-standard-archival-description-second-edition", - "properties": { - "archive_code_examples": { - "description": "Example archive codes for reference.\n\nExample: [\"2.04.87\", \"2.21.281.02\", \"4.MST\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "archive_code_format": { - "description": "Regex pattern for archive/fonds codes used in URLs.\n\nDutch Nationaal Archief uses: \"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+$\" (e.g., 2.04.87)\n\nExample: \"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+$\"\n", - "type": [ - "string", - "null" - ] - }, - "authentication_method": { - "$ref": "#/$defs/AuthenticationMethodEnum", - "description": "Authentication method required (if is_or_was_required is true).\n\nValues from AuthenticationMethodEnum:\n- NONE: No authentication\n- API_KEY: API key in header or query parameter\n- OAUTH2: OAuth 2.0\n- BASIC: HTTP Basic Authentication\n- IP_WHITELIST: IP address whitelist\n- INSTITUTIONAL: Institutional login (Shibboleth, etc.)\n" - }, - "base_url": { - "description": "Base URL for EAD downloads.\n\nIndividual finding aids accessed by appending archive code.\n\nExample: \"https://www.nationaalarchief.nl/onderzoeken/archief/\"\n", - "type": "string" - }, - "batch_download_available": { - "description": "Whether batch download of multiple finding aids is available.\n\nMay provide ZIP archive or OAI-PMH harvesting.\n", - "type": [ - "boolean", - "null" - ] - }, - "compression": { - "$ref": "#/$defs/CompressionTypeEnum", - "description": "Compression applied to downloads.\n\nValues:\n- NONE: Plain XML\n- GZIP: Gzip compressed\n- ZIP: ZIP archive\n" - }, - "cors_enabled": { - "description": "Whether CORS (Cross-Origin Resource Sharing) is enabled.\n\nImportant for browser-based JavaScript applications:\n- true: Cross-origin requests allowed\n- false: Same-origin only\n- null: Unknown\n", - "type": [ - "boolean", - "null" - ] - }, - "default_namespace": { - "description": "Default XML namespace for EAD elements.\n\nEAD3: \"http://ead3.archivists.org/schema/\"\nEAD 2002: \"urn:isbn:1-931666-22-9\"\n", - "type": [ - "string", - "null" - ] - }, - "discovery_provenance": { - "description": "Provenance information about how this endpoint was discovered.\n\nShould include:\n- Discovery date\n- Discovery method (documentation, web scrape, API testing)\n- Verification status\n\nFree-text or structured provenance note.\n", - "type": [ - "string", - "null" - ] - }, - "documentation_url": { - "description": "URL to human-readable documentation.\n\nThis is separate from endpoint_description_url which is machine-readable.\n\nExamples:\n- \"https://pro.europeana.eu/resources/apis/record\"\n- \"https://www.nationaalarchief.nl/onderzoeken/handleiding/api\"\n", - "type": [ - "string", - "null" - ] - }, - "ead_schema_url": { - "description": "URL to EAD schema (XSD or RNG) used for validation.\n\nExample: \"https://www.loc.gov/ead/ead3.xsd\"\n", - "type": [ - "string", - "null" - ] - }, - "ead_version": { - "$ref": "#/$defs/EADVersionEnum", - "description": "EAD version used in downloaded files.\n\nValues:\n- EAD3: Current standard (2015)\n- EAD_2002: Previous version, widely used\n- EAD_1_0: Original version (legacy)\n" - }, - "encoding": { - "description": "Character encoding of EAD output.\n\nShould be UTF-8 for modern systems.\n\nExample: \"UTF-8\"\n", - "type": [ - "string", - "null" - ] - }, - "endpoint_description_url": { - "description": "URL to machine-readable API documentation.\n\nDCAT: dcat:endpointDescription - \"A description of the service end-point\"\n\nMay be:\n- OpenAPI/Swagger specification (JSON/YAML)\n- OAI-PMH Identify response\n- WSDL document\n- Human-readable documentation page\n\nExamples:\n- \"https://api.example.org/openapi.json\"\n- \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh?verb=Identify\"\n", - "type": [ - "string", - "null" - ] - }, - "endpoint_id": { - "description": "Unique identifier for this data service endpoint.\n\nRecommended format: URI combining platform ID and service type.\n\nExample: \"https://nde.nl/ontology/hc/endpoint/nationaalarchief-oai-pmh\"\n", - "type": "string" - }, - "endpoint_name": { - "description": "Human-readable name for this endpoint.\nExamples: - \"Nationaal Archief OAI-PMH Endpoint\" - \"Heritage Search API\" - \"Image Server (IIP)\"", - "type": "string" - }, - "endpoint_type": { - "description": "Classification of this endpoint from the DataServiceEndpointType taxonomy.\n\n**Instance vs Type Architecture:**\n\nThis slot links an INSTANCE (DataServiceEndpoint) to its TYPE classification\n(DataServiceEndpointType), following the same architectural pattern as\nCustodian/CustodianType.\n\n```\nDataServiceEndpoint (INSTANCE) DataServiceEndpointType (TYPE)\n\u251c\u2500\u2500 endpoint_url \u251c\u2500\u2500 protocol_name\n\u251c\u2500\u2500 status \u251c\u2500\u2500 protocol_version\n\u251c\u2500\u2500 is_or_was_required \u251c\u2500\u2500 specification_url\n\u2514\u2500\u2500 endpoint_type \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba\u2514\u2500\u2500 has_or_had_format\n```\n\n**Why Both `protocol` and `endpoint_type`?**\n\n- `protocol` (enum): Simple string classification for quick filtering\n- `endpoint_type` (class reference): Rich type metadata with SKOS hierarchy,\n specification URLs, and semantic relationships\n\n**Example:**\n\n```yaml\ndata_service_endpoint:\n endpoint_id: \"https://nde.nl/hc/endpoint/na-oai-pmh\"\n endpoint_url: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh\"\n protocol: OAI_PMH # Simple enum (DataServiceProtocolEnum)\n endpoint_type: OAIPMHEndpointType # Rich type (DataServiceEndpointType subclass)\n```\n\nThis pattern mirrors:\n- `custodian_type` enum + `CustodianType` class on `Custodian`\n- `platform_type` enum + `DigitalPlatformType` class on `DigitalPlatform`\n", - "type": [ - "string", - "null" - ] - }, - "example_url": { - "description": "Example URL for EAD download.\n\nExample: \"https://www.nationaalarchief.nl/onderzoeken/archief/2.04.87/download/ead\"\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_url": { - "description": "Base URL of the service endpoint. DCAT: dcat:endpointURL - \"The root location or primary endpoint of the service\" MIGRATED 2026-01-26: Replaces endpoint_url slot.", - "type": "string" - }, - "includes_controlaccess": { - "description": "Whether EAD includes <controlaccess> elements.\n\nControlled access terms (subjects, names, genres, functions).\n", - "type": [ - "boolean", - "null" - ] - }, - "includes_dao_links": { - "description": "Whether EAD includes <dao> (digital archival object) links.\n\n<dao> elements link to digitized content (images, documents).\nEssential for integration with digital content delivery.\n", - "type": [ - "boolean", - "null" - ] - }, - "includes_dtd_declaration": { - "description": "Whether XML includes DOCTYPE declaration referencing DTD.\n\nLegacy EAD often includes DTD reference.\nModern practice uses XSD validation.\n", - "type": [ - "boolean", - "null" - ] - }, - "includes_index": { - "description": "Whether EAD includes <index> elements.\n\nIndex provides structured access points (names, subjects, places).\n", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_required": { - "description": "Whether something is or was required (boolean).\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **Schema.org** | `schema:isRequired` | Maps to - boolean requirement |\n\nNote: slot_uri changed from schema:isRequired to hc:isOrWasRequired\nto resolve OWL ambiguous type warning. schema:isRequired may be\nambiguous when used in different contexts.\n\n**USAGE NOTE**:\n\nThis is a simple boolean slot. For structured requirement information\nwith types and temporal validity, use has_or_had_status with RequirementStatus.\n\n**MIGRATION NOTE**:\n\nReplaces domain-specific boolean slots like:\n- booking_required \u2192 is_or_was_required\n- appointment_required \u2192 is_or_was_required\n- registration_required \u2192 is_or_was_required\n", - "type": [ - "boolean", - "null" - ] - }, - "isad_g_compliant": { - "description": "Whether EAD output follows ISAD(G) description standard.\n\nISAD(G) = General International Standard Archival Description\n", - "type": [ - "boolean", - "null" - ] - }, - "language_of_description": { - "description": "Primary language of finding aid descriptions.\n\nISO 639-1 code.\n\nExample: \"nl\" (Dutch)\n", - "type": [ - "string", - "null" - ] - }, - "last_verified": { - "description": "Date when this endpoint was last verified to be operational.\n\nISO 8601 date format.\n\nExample: \"2025-12-14\"\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "max_hierarchy_depth": { - "description": "Maximum depth of component hierarchy in downloaded EADs.\n\nSome systems limit depth for performance.\n\nExample: 12\n", - "type": [ - "integer", - "null" - ] - }, - "multilevel_description": { - "description": "Whether EAD supports multi-level hierarchical description.\n\nUses <dsc> (description of subordinate components) with nested\n<c> (component) elements for series, files, items.\n", - "type": [ - "boolean", - "null" - ] - }, - "namespace_aware": { - "description": "Whether EAD uses XML namespaces.\n\nEAD3 uses namespace: urn:isbn:1-931666-22-9 (changed to LOC namespace)\nEAD 2002 may be namespace-aware or not.\n", - "type": [ - "boolean", - "null" - ] - }, - "rate_limit": { - "description": "Rate limit description if applicable.\n\nFree-text description of rate limiting policy.\n\nExamples:\n- \"100 requests per minute\"\n- \"1000 requests per day per API key\"\n- \"No limit\"\n- \"Unknown\"\n", - "type": [ - "string", - "null" - ] - }, - "response_format": { - "description": "MIME types of response formats supported by this endpoint.\n\nExamples:\n- [\"application/json\"]\n- [\"application/xml\", \"text/xml\"]\n- [\"image/jpeg\", \"image/png\", \"image/tiff\"]\n- [\"application/ld+json\", \"text/turtle\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "serves_dataset": { - "description": "Dataset(s) that this service provides access to.\n\nDCAT: dcat:servesDataset - \"A collection of data that this data service can distribute\"\n\nReferences to DCAT Dataset identifiers or descriptions.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "status": { - "$ref": "#/$defs/EndpointStatusEnum", - "description": "Operational status of the endpoint.\n\nValues from EndpointStatusEnum:\n- ACTIVE: Endpoint is operational\n- DEPRECATED: Endpoint works but will be removed\n- BETA: Endpoint in testing/beta\n- OFFLINE: Endpoint currently unavailable\n- UNKNOWN: Status not verified\n" - }, - "supports_partial_download": { - "description": "Whether partial EAD download is supported.\n\nSome systems allow downloading specific components rather\nthan entire finding aid.\n", - "type": [ - "boolean", - "null" - ] - }, - "transform_options": { - "description": "Output transformation options available.\n\nSome systems offer XSLT-transformed output (HTML, PDF).\n\nExample: [\"EAD\", \"HTML\", \"PDF\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "url_pattern": { - "description": "URL pattern for constructing EAD download requests.\n\nUse {placeholders} for dynamic parts:\n- {archive_code}: Archive/fonds identifier\n- {format}: Output format (ead, xml)\n\nExample: \"{base_url}{archive_code}/download/ead\"\n", - "type": [ - "string", - "null" - ] - }, - "version": { - "description": "Version of the API or service.\n\nExamples:\n- \"v2\"\n- \"1.0.0\"\n- \"2023-01\"\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "base_url", - "ead_version", - "has_or_had_url", - "endpoint_id", - "endpoint_name" - ], - "title": "EADDownload", - "type": "object" - }, - "EADIdentifier": { - "additionalProperties": false, - "description": "Encoded Archival Description identifier.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "EAD_ID", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "EAD ID", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "EADIdentifier", - "type": "object" - }, - "EADVersionEnum": { - "description": "Versions of the EAD (Encoded Archival Description) standard.", - "enum": [ - "EAD3", - "EAD_2002", - "EAD_1_0", - "UNKNOWN" - ], - "title": "EADVersionEnum", - "type": "string" - }, - "EArkiv": { - "additionalProperties": false, - "description": "Function to archive digital information, particularly in Nordic\narchival contexts.\n\n**PURPOSE**: Provide electronic archiving functionality for government\nand institutional records in digital form.\n\n**CHARACTERISTICS**:\n- Nordic archival standards compliance\n- Government records management\n- Long-term digital preservation\n- Regulatory compliance\n\n**EXAMPLES**: Swedish eArkiv implementations, Norwegian digital archive systems", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q114351452" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "REPOSITORY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "EArkiv", - "type": "object" - }, - "EBook": { - "additionalProperties": false, - "description": "A digital book or publication in electronic format.\nUsed to represent the electronic manifestation of an ExhibitionCatalog or Book.\n**Ontology Alignment**: - **Primary**: `schema:EBook` - **Close**: `bf:Electronic` (BIBFRAME Carrier)", - "properties": { - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_url" - ], - "title": "EBook", - "type": "object" - }, - "EService": { - "additionalProperties": false, - "description": "Service that makes use of information and communications technology.\n\n**PURPOSE**: Deliver heritage services electronically including\nreference, lending, and access services.\n\n**CHARACTERISTICS**:\n- Electronic service delivery\n- User authentication\n- Transaction processing\n- Service tracking\n\n**EXAMPLES**: Online reference services, e-lending, digital reading rooms", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q1273271" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "INTERACTIVE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "EService", - "type": "object" - }, - "ETag": { - "additionalProperties": false, - "description": "Represents an HTTP ETag (Entity Tag) value used for web cache validation. The ETag value is stored in `has_or_had_label` or `has_or_had_identifier`.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ETag", - "type": "object" - }, - "EatingOrDrinkingEstablishment": { - "additionalProperties": false, - "description": "Combined eating or drinking establishment.\nBroad category encompassing various food and beverage service establishments.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "EatingOrDrinkingEstablishment", - "type": "object" - }, - "EcclesiasticalProvince": { - "additionalProperties": false, - "description": "An ecclesiastical province is a large jurisdiction of religious government, consisting of several dioceses (one archdiocese and several suffragan dioceses).\n**Usage**: Used to model the hierarchical location of a Diocese.\n**Ontology Alignment**: - **Primary**: `org:Organization` (Administrative unit) - **Close**: `schema:Organization`", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "EcclesiasticalProvince", - "type": "object" - }, - "EconomicArchive": { - "additionalProperties": false, - "description": "Archive documenting the economic history of a country, region, or sector. Economic archives collect and preserve records related to business, commerce, industry, trade, banking, and economic policy. They serve as primary sources for economic historians and researchers studying commercial and industrial development.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "EconomicArchive", - "type": "object" - }, - "EconomicArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by EconomicArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "EconomicArchiveRecordSetType", - "type": "object" - }, - "EconomicHistoryTopic": { - "additionalProperties": false, - "description": "Topic related to economic and trade history.\n\nIncludes: business archives, trade records, guilds,\neconomic development, industry.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/TopicType" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/TopicType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "EconomicHistoryTopic", - "type": "object" - }, - "EconomicSignificance": { - "additionalProperties": false, - "description": "Economic importance and impact.\n\n**Aspects**:\n- Tourism revenue\n- Local employment\n- Heritage economy contribution\n- Export value\n\n**Use Cases**:\n- Tourism impact assessment\n- Heritage-based business justification\n- Regional economic planning\n\n**Example**:\n```yaml\nhas_or_had_significance:\n - has_or_had_type: EconomicSignificance\n has_or_had_description: \"Islay whisky tourism, 50,000 visitors/year\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "EconomicSignificance", - "type": "object" - }, - "Edition": { - "additionalProperties": false, - "description": "Information relating to the edition of a work or event.\nUsed to capture edition numbers (e.g. \"25th edition\") and statements (e.g. \"Revised and expanded edition\").\n**Ontology Alignment**: - **Primary**: `bf:Edition` - **Close**: `schema:bookEdition` (as property, promoted to class here)", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Edition", - "type": "object" - }, - "Editor": { - "additionalProperties": false, - "description": "A person or organization responsible for editing a publication or work. **Ontology Alignment**: - **Primary**: `schema:Person` or `schema:Organization` (Role-based) - **Close**: `bibo:Editor`", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_role": { - "description": "Role of an entity in a context (author role, agent role, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's role may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:roleName` - Schema.org role name\n- **Exact**: `org:role` - W3C Org role\n- **Close**: `prov:hadRole` - PROV-O role in activity\n\n**Usage**:\nFor authors: role in creating a work (AUTHOR, EDITOR, TRANSLATOR)\nFor agents: role in an activity or event\nFor participants: role in a project or organization\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow enum or class values.\nClasses may narrow via slot_usage to specific Role enums or classes.\n", - "type": [ - "string", - "null" - ] - } - }, - "title": "Editor", - "type": "object" - }, - "EditorialRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Editorial records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PressArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PressArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "EditorialRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "EditorialRecordSeries", - "type": "object" - }, - "EducationCenter": { - "additionalProperties": false, - "description": "Education center, learning facility, or educational programming space\noperated by a heritage custodian.\n\n**DEFINITION**:\n\nAn EducationCenter is a dedicated space for educational activities,\nworkshops, school programs, and public learning initiatives operated\nby a heritage custodian. Distinguished from ResearchCenter (academic\nresearch) by focus on public education and lifelong learning.\n\n**SCHEMA.ORG ALIGNMENT**:\n\n`schema:EducationalOrganization` - \"An educational organization.\"\n\n**WIKIDATA TYPE LINKAGE (EducationProviderTypeEnum Subset)**:\n\nEducation centers can be classified using relevant types from \nEducationProviderTypeEnum (208 types). Relevant education facility types:\n\n- Q3914 (school) - General educational facility\n- Q1376987 (education center)\n- Q9842 (primary school) - For youth programs\n- Q159334 (adult education) - For adult learning\n- Q578023 (resource center) - Learning resource facility\n- Q7315155 (research department) - If combined with research\n\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Primary Focus | Audience |\n|------|---------------|----------|\n| **EducationCenter** | Public learning | Schools, families, adults |\n| ResearchCenter | Academic research | Scholars, researchers |\n| ReadingRoom | Collection access | Researchers |\n| ExhibitionSpace | Display | General public |\n\n**TYPICAL CHARACTERISTICS**:\n\n- **Classroom spaces**: Dedicated teaching rooms\n- **Workshop facilities**: Hands-on activity areas\n- **AV equipment**: Presentation technology\n- **Educational materials**: Teaching resources\n- **Flexible spaces**: Adaptable for different programs\n\n**USE CASES**:\n\n1. **Museum Education Department**:\n ```yaml\n EducationCenter:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/rijksmuseum-education\"\n has_or_had_label:\n label_text: \"Rijksmuseum Educatie Centrum\"\n education_type_classification: EDUCATION_CENTER\n target_audiences:\n - \"Primary schools\"\n - \"Secondary schools\"\n - \"Families\"\n - \"Adults\"\n ```\n\n2. **Archive Learning Center**:\n ```yaml\n EducationCenter:\n has_or_had_label:\n label_text: \"Nationaal Archief Leercentrum\"\n education_type_classification: RESOURCE_CENTER\n programs_offered:\n - \"Genealogy workshops\"\n - \"Historical research skills\"\n - \"Teacher training\"\n ```", - "properties": { - "has_or_had_accessibility_feature": { - "description": "Accessibility features available in this reading room.\n\nSchema.org: accessibilityFeature for accessibility.\n\nMay include:\n- Wheelchair accessible\n- Adjustable desks\n- Screen magnification\n- Audio assistance\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_contact_details": { - "description": "Contact details associated with an entity.\n\n**USAGE**:\nUsed for:\n- WhatsApp profiles\n- Phone contacts\n- Email addresses\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_equipment": { - "description": "Equipment associated with a facility or process.", - "items": { - "$ref": "#/$defs/AVEquipment" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_facility": { - "description": "A facility or amenity associated with an entity.\n\n**USAGE**:\nUsed for:\n- Visitor facilities (caf\u00e9, shop, parking)\n- Research facilities (reading room, lab)\n- Accessibility facilities (wheelchair access)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/EducationFacilityType" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_required": { - "description": "Whether something is or was required (boolean).\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **Schema.org** | `schema:isRequired` | Maps to - boolean requirement |\n\nNote: slot_uri changed from schema:isRequired to hc:isOrWasRequired\nto resolve OWL ambiguous type warning. schema:isRequired may be\nambiguous when used in different contexts.\n\n**USAGE NOTE**:\n\nThis is a simple boolean slot. For structured requirement information\nwith types and temporal validity, use has_or_had_status with RequirementStatus.\n\n**MIGRATION NOTE**:\n\nReplaces domain-specific boolean slots like:\n- booking_required \u2192 is_or_was_required\n- appointment_required \u2192 is_or_was_required\n- registration_required \u2192 is_or_was_required\n", - "type": [ - "boolean", - "null" - ] - }, - "max_group_size": { - "description": "Maximum group size that can be accommodated.\n\nSchema.org: maximumAttendeeCapacity for capacity.\n", - "type": [ - "integer", - "null" - ] - }, - "provides_or_provided": { - "description": "Relates an agent or service to the resource or service it provides.\nMIGRATED from `entity_types_covered` (via ContributingAgency) and `funding_program` (via OfficialInstitutionType).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "serves_or_served": { - "description": "The user community or audience served by an entity.\n\n**USAGE**:\nUsed for:\n- Target user communities\n- Audience types\n- Stakeholder groups\n", - "items": { - "$ref": "#/$defs/UserCommunity" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "EducationCenter", - "type": "object" - }, - "EducationFacilityType": { - "additionalProperties": false, - "description": "Type classification for an education facility (e.g. Education Center, Resource Center).\n**Ontology Alignment**: - **Primary**: `skos:Concept` (Taxonomy term) - **Close**: `schema:definedTerm`", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "EducationFacilityType", - "type": "object" - }, - "EducationFocusedClassification": { - "additionalProperties": false, - "description": "Institution where public education is the primary mission.\nEmphasis on visitor experience and learning programs.\n\n**Characteristics**:\n- School programs\n- Interpretive exhibits\n- Outreach activities\n- Interactive experiences", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "EducationFocusedClassification", - "type": "object" - }, - "EducationFunction": { - "additionalProperties": false, - "description": "Education function: school programs, public programming, docent training, curriculum development, outreach.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "EducationFunction", - "type": "object" - }, - "EducationLevel": { - "additionalProperties": false, - "description": "Level of education provided (e.g. Higher Education, Secondary Education).\n**Ontology Alignment**: - **Primary**: `schema:DefinedTerm` (schema:educationalLevel) - **Close**: `skos:Concept`", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "EducationLevel", - "type": "object" - }, - "EducationProviderSubtype": { - "additionalProperties": false, - "description": "Specific subtype of education provider (e.g. Research University, Art School).\n**Ontology Alignment**: - **Primary**: `skos:Concept` - **Close**: `schema:EducationalOrganization` (subtypes)", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "EducationProviderSubtype", - "type": "object" - }, - "EducationProviderType": { - "additionalProperties": false, - "description": "Education providers (universities, colleges, schools) that maintain heritage collections\nas part of their educational mission. Collections support teaching, research, and student\nlearning activities.\n\nOntology Alignment:\n- SKOS: skos:Concept (classification term in GLAM taxonomy)\n- Schema.org: \n - schema:EducationalOrganization (general educational institution)\n - schema:CollegeOrUniversity (degree-granting institution)\n - schema:School (primary/secondary education)\n- VIVO: vivo:University, vivo:College (academic ontology)\n- AIISO: aiiso:Institution (academic institution ontology)\n\nKey Distinctions:\n- From MUSEUM (M): Education providers are degree-granting institutions with teaching collections,\n not standalone exhibition spaces. Universities with museums map to Education Provider (E).\n- From LIBRARY (L): University libraries are part of educational institutions and map to E,\n not standalone public/national libraries (which map to L).\n- From ARCHIVE (A): University archives managing institutional records map to E when part of\n educational organization. Standalone national/regional archives map to A.\n- From RESEARCH_CENTER (R): Pure research institutes without degree programs map to R.\n Universities conduct research but primarily grant degrees, so map to E.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_academic_program": { - "description": "Academic programs, departments, or faculties offering instruction, especially those connected to heritage collections. Humanities and Arts: - Art history, fine arts, design - History, archaeology, anthropology - Literature, languages, classics - Musicology, theater arts, dance - Philosophy, theology, religious studies Sciences: - Natural history, biology, ecology - Geology, paleontology, mineralogy - Physics, chemistry, astronomy - Medicine, anatomy, pharmacology Social Sciences: - Sociology, political science - Economics, business administration - Education, pedagogy - Law, criminology Professional Schools: - Medical school (anatomy collections, medical history) - Law school (legal archives, rare books) - Veterinary school (specimen collections) - Architecture school (model collections, drawings) - Engineering school (technical collections) Examples: - \"Department of Art History with teaching museum\" - \"Medical school with anatomical collection\" - \"Music conservatory with instrument collection\" - \"Architecture faculty with architectural model collection\" This field maps to AIISO and VIVO ontologies: - aiiso:Programme (academic program) - vivo:AcademicDepartment (university department) - schema:educationalProgramMode (program delivery) ", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_accreditation": { - "description": "Accreditation status of the educational institution and its programs. Institutional Accreditation: - Regional accreditation (US): WASC, MSCHE, NEASC, HLC, SACSCOC, NWCCU - National accreditation bodies (by country) - International recognition: UNESCO, Bologna Process (Europe) Programmatic Accreditation: - Museum studies: American Alliance of Museums (AAM) accreditation - Library science: ALA (American Library Association) accreditation - Archives: Society of American Archivists (SAA) standards - Art programs: NASAD (National Association of Schools of Art and Design) - Music programs: NASM (National Association of Schools of Music) Professional Body Recognition: - Medical: LCME (Liaison Committee on Medical Education) - Law: ABA (American Bar Association) - Veterinary: AVMA (American Veterinary Medical Association) - Engineering: ABET (Accreditation Board for Engineering and Technology) Heritage Collection Standards: - AAM museum accreditation (for university museums) - SAA guidelines for university archives - ACRL (Association of College & Research Libraries) standards for academic libraries Dutch/European Accreditation: - NVAO (Nederlands-Vlaamse Accreditatieorganisatie) - Netherlands/Flanders - EQAR (European Quality Assurance Register) - European higher education Research Quality Assessment: - Carnegie Classification (US research universities) - REF (Research Excellence Framework) - UK - Standard Evaluation Protocol (SEP) - Netherlands Examples: - \"NVAO accredited university; AAM accredited university museum\" - \"HLC institutional accreditation; NASAD accredited art program\" - \"Carnegie R1 research university; SAA guidelines-compliant archives\" This field documents formal quality assurance and professional recognition. ", - "type": [ - "string", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hyponym": { - "description": "Specific subtype of education provider (e.g. Research University, Art School). MIGRATED from education_provider_subtype per Rule 53 (2026-01-25). Uses EducationProviderSubtype class. ", - "items": { - "$ref": "#/$defs/EducationProviderSubtype" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^(https://nde\\.nl/ontology/hc/type/[a-z-]+/[QP][0-9]+|Q[0-9]+)$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_level": { - "description": "Level(s) of education provided by the institution. MIGRATED from education_level per Rule 53 (2026-01-25). Uses EducationLevel class for structured levels. Primary/Secondary Education: - Primary school / Elementary school - Secondary school / High school / Gymnasium - Vocational school / Trade school - Art school / Music school (non-degree) Higher Education: - Undergraduate (Bachelor's degree programs) - Graduate (Master's degree programs) - Doctoral (PhD programs) - Professional (Law, Medicine, Veterinary, etc.) - Postdoctoral (research fellowships) Specialized Training: - Certificate programs - Diploma programs - Continuing education / Lifelong learning - Teacher training / Pedagogy programs Mixed Levels: - Community college (Associate + Bachelor's) - Comprehensive university (Undergraduate through Doctoral) - University college (Limited degree programs) This field maps to Schema.org properties: - schema:educationalLevel (formal education level) - schema:educationalCredentialAwarded (degree types) ", - "items": { - "$ref": "#/$defs/EducationLevel" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "offers_or_offered_access": { - "description": "Access offerings for heritage collections, especially concerning student and faculty use. Uses structured Access class to capture access type, eligible users, conditions, and restrictions. Education providers typically offer multiple access types for different user groups.", - "items": { - "$ref": "#/$defs/Access" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "student_service": { - "description": "Services and programs provided to students interacting with heritage collections. Curricular Integration Services: - Course-integrated instruction: Librarians/curators teaching in courses - Object-based learning sessions: Hands-on workshops with collection items - Research consultations: One-on-one guidance for student research projects - Class visits: Guided tours tailored to course topics - Lab instruction: Supervised use of specimens in laboratory settings Research Support: - Thesis/dissertation support: Extended access for graduate research - Research workshops: Training in archival research, material analysis - Digitization services: Scanning materials for student projects - Citation guidance: Proper citation of archival/museum materials Skill Development: - Practicum placements: Students working in collections (museum studies, archives) - Internships: Semester-long professional experience programs - Work-study positions: Student employment in collections - Volunteer programs: Non-credit volunteer opportunities - Training workshops: Conservation, cataloging, digitization skills Learning Spaces: - Study rooms: Quiet spaces in libraries/archives - Reading rooms: Manuscript and rare book reading rooms - Studio access: Art students accessing collection for study/reproduction - Makerspaces: Digital humanities labs with collection digitization equipment Online/Digital Services: - LibGuides: Subject-specific collection guides for students - Research tutorials: Online modules for using special collections - Virtual exhibitions: Curated online exhibits for classes - Digital scholarship support: Tools for working with digitized collections Student Exhibition Opportunities: - Student curator programs: Students curating exhibitions - Senior thesis exhibitions: Art students displaying thesis work - Research symposia: Presenting research using collections Examples: - \"Course-integrated instruction sessions; undergraduate research fellowships; internship program\" - \"Graduate research consultations; dissertation digitization services; practicum placements\" - \"Object-based learning workshops; student exhibition opportunities; work-study positions\" This field highlights the pedagogical support infrastructure for student engagement. ", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "teaching_collection": { - "description": "Description of collections specifically maintained for educational purposes and integrated into teaching programs. Object-Based Learning Collections: - Study collections: Duplicate specimens for student handling - Loan kits: Portable collections for classroom use - Demonstration collections: Items for lecture demonstrations - Lab specimens: Biological, geological, archaeological materials for lab work Visual Learning Materials: - Slide libraries: Historical photography and art reproduction slides - Cast collections: Plaster casts of sculptures, architectural elements - Model collections: Architectural models, anatomical models, molecular models - Replica collections: Archaeological replicas, historical reproductions Hands-On Training: - Dissection specimens: Anatomical teaching materials (medical/veterinary schools) - Herbarium sheets: Botanical specimens for plant identification training - Rock and mineral kits: Geology teaching collections - Archaeological type collections: Reference materials for artifact identification Specialized Teaching Collections: - Art teaching collection: Works for art history object study - Musical instrument collection: Instruments for musicology and performance - Rare book study collection: Hands-on bibliography training - Archives practicum materials: Archival materials for conservation training Collection Types by Discipline: - Medical: Anatomical specimens, pathology slides, medical instruments - Natural Sciences: Herbaria, zoological specimens, fossils, minerals - Humanities: Rare books, manuscripts, art objects, archaeological artifacts - Social Sciences: Ethnographic objects, oral histories, ephemera - Engineering: Technical drawings, patent models, historical instruments Examples: - \"Anatomical teaching collection of 5,000 specimens for medical students\" - \"Art history study collection with 500 paintings, sculptures for object-based learning\" - \"Herbarium with 100,000 sheets used in botany courses\" - \"Archaeological reference collection for artifact identification training\" This field emphasizes the pedagogical function of university collections. ", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "EducationProviderType", - "type": "object" - }, - "EducationProviderTypeEnum": { - "description": "", - "enum": [ - "TYPE_1942", - "ACADEMIC_DEPARTMENT", - "ACADEMIC_INSTITUTION", - "ACADEMISCHE_WERKPLAATS", - "ACADEMY_OF_FINE_ARTS", - "ACADEMY_OF_FINE_ARTS_1", - "ACADEMY_OF_SCIENCES", - "AGRICULTURAL_UNIVERSITIES_IN_INDIA", - "AIR_FORCE_ACADEMY", - "ANCIENT_UNIVERSITY", - "ANIMATION_SCHOOL", - "ANTROPOLOGIINSTITUT", - "ART_ACADEMY", - "ART_COLLEGE", - "ART_SCHOOL", - "ART_SCHOOL_FOR_CHILDREN_AND_YOUTH", - "ARTS_COLLEGE", - "ARTS_HIGH_SCHOOL", - "AUDUBON_CENTER", - "BALLET_SCHOOL", - "BIJBELSCHOOL", - "BUSINESS_SCHOOL", - "BYZANTINE_UNIVERSITY", - "CATHOLIC_THEOLOGICAL_FACULTY", - "CATHOLIC_UNIVERSITY", - "CHILD_SAMBA_SCHOOLS_OF_RIO_DE_JANEIRO", - "CHILDRENS_ART_SCHOOL", - "CHILDRENS_MUSIC_SCHOOL", - "CHINESE_OPERA_SCHOOL", - "CLOSED_SPACE", - "COLLEGE_OF_MUSIC", - "COLLEGE_OF_MUSIC_1", - "COLLEGE_OF_THE_UNIVERSITY_OF_OXFORD", - "COLLEGIATE_UNIVERSITY", - "CONSERVATOIRE_DE_MUSIQUE_DANSE_ET_ART_DRAMATIQUE_EN_FRANCE", - "CONSERVATORIES_WITH_REGIONAL_COVERAGE", - "CONSERVATORY", - "CONSERVATORY_OF_COMMUNAL_RELEVANCE", - "CONSERVATORY_OF_DEPARTMENTAL_RELEVANCE", - "CONSERVATORY_OF_INTERCOMMUNAL_RELEVANCE", - "CONVITTO_NAZIONALE", - "DAMENAKADEMIEN_M\u00dcNCHEN_UND_BERLIN_UND_MALERINNENSCHULE_KARLSRUHE", - "DANCE_STUDIO", - "DEMONSTRATION_FOREST", - "DENTAL_SCHOOL", - "DESIGN_SCHOOL", - "DESIGNH\u00d6GSKOLA", - "DFG_GRADUIERTENSCHULE", - "DIVISION_OF_AN_EDUCATIONAL_INSTITUTION", - "DOMSINGSCHULE", - "DRAWING_ACADEMY", - "DUALE_HOCHSCHULE", - "ECCLESIASTICAL_UNIVERSITY", - "EDUCATIONAL_ORGANIZATION", - "ENGINEERING_COLLEGE", - "ESCOLA_SUPERIOR_PRIVADA", - "ESCOLES_LOCALS_DE_COMER\u00c7", - "FACHHOCHSCHULE_F\u00dcR_\u00d6FFENTLICHE_VERWALTUNG", - "FACULTY_OF_AGRICULTURE", - "FACULTY_OF_BUSINESS_ADMINISTRATION", - "FACULTY_OF_ECONOMICS", - "FACULTY_OF_HUMAN_SCIENCES", - "FACULTY_OF_MUSIC", - "FACULTY_OF_PHARMACY", - "FACULTY_OF_SCIENCE", - "FACULTY_OF_VETERINARY_MEDICINE", - "FAKULTA_VYSOKEJ_\u0160KOLY", - "FEDERAL_UNIVERSITY", - "FILM_ACADEMY", - "GESAMTHOCHSCHULE", - "GIRLS_SCHOOL", - "GOVERNMENT_GIRLS_LOWER_SECONDARY_SCHOOL", - "GRAND_\u00c9TABLISSEMENT", - "GRANDE_\u00c9COLE", - "GROUP_OF_COLLEGES_OF_SCIENCE_AND_TECHNOLOGY", - "HAUS_DES_WALDES", - "HOGER_LABORATORIUMONDERWIJS", - "HOGERE_ZEEVAARTSCHOOL", - "H\u00d6HERE_LEHRANSTALT_F\u00dcR_WIRTSCHAFTLICHE_BERUFE", - "IMPERIAL_UNIVERSITIES_OF_JAPAN", - "INDIAN_INSTITUTES_OF_MANAGEMENT", - "INNOVATIONSKONTOR", - "INSTITUI\u00c7\u00c3O_COMUNIT\u00c1RIA_DE_ENSINO_SUPERIOR", - "INSTITUT_KEGURUAN_DAN_ILMU_PENDIDIKAN", - "INSTITUT_TECHNIQUE_AGRICOLE", - "INSTITUTE_OF_SCIENCE_AND_TECHNOLOGY", - "INSTITUTE_OF_TECHNOLOGY", - "INSTITUTE_OF_TECHNOLOGY_1", - "INSTITUTS_DE_FORMATION_DAIDES_SOIGNANTS", - "INTERNATIONAL_UNIVERSITY", - "IN\u00c9_PRACOVISKO_VYSOKEJ_\u0160KOLYFAKULTY", - "ISLAMIC_UNIVERSITY", - "ITALIAN_ART_SCHOOLS_OF_THE_RENAISSANCE", - "JAPANESE_MUSIC_SCHOOL", - "JESUIT_UNIVERSITY", - "JEZUIT_SEMINARY", - "KONFESSIONELLE_UNIVERSIT\u00c4T", - "KUSTODIE", - "LANGUAGE_REGULATOR", - "LAW_SCHOOL", - "LIAUDIES_KONSERVATORIJA", - "LIBERAL_ARTS_COLLEGE", - "LICEO_MUSICALE_E_COREUTICO", - "MEDICAL_UNIVERSITY", - "MEDIENZENTRUM", - "MILITARY_ACADEMY", - "MILITARY_UNIVERSITY", - "MILITARY_UNIVERSITY_ACADEMY", - "MUNICIPAL_MUSIC_SCHOOL", - "MUSIC_SCHOOL", - "MUSIKFACHSCHULE", - "MUSIKH\u00d6GSKOLOR_I_SVERIGE", - "MUSIKH\u00d6GSKOLOR_I_SVERIGE_1", - "NATIONAL_ACADEMY", - "NATIONAL_ART_ACADEMY", - "NATIONAL_POLYTECHNIC_INSTITUTES", - "NATIONAL_UNIVERSITY", - "NATURE_CENTER", - "NAVAL_ACADEMY", - "NEZAMIYEH", - "NUHO", - "OPEN_UNIVERSITY", - "PAINTING_ACADEMY_CHINA", - "PEDAGOGICK\u00dd_INSTITUT", - "PERFORMING_ARTS_SCHOOL", - "PHARMACY_SCHOOL", - "PHOTOGRAPHY_SCHOOL", - "POLYTECHNIC", - "PONTIFICAL_UNIVERSITY", - "PRIMARY_ART_SCHOOL", - "PRIVATE_ACTING_SCHOOL", - "PRIVATE_UNIVERSITY", - "PROFESSIONAL_CONSERVATORY_OF_MUSIC", - "PSEUDODEROMECUS_FAIRMAIREI", - "PUBLIC_RESEARCH_UNIVERSITY", - "PUBLIC_SCIENTIFIC_CULTURAL_OR_PROFESSIONAL_ESTABLISHMENT", - "PUBLIC_SPACE", - "PUBLIC_UNIVERSITY", - "PUBLIC_BENEFIT_CORPORATION", - "QUANTIFYING_THE_UKS_CARBON_DIOXIDE_FLUX_AN_ATMOSPHERIC_INVERSE_MODELLING_APPROACH_USING_A_REGIONAL_MEASUREMENT_NETWORK", - "REGIONAL_RESOURCE_CENTERS_FOR_FILM_AND_VIDEO", - "RESEARCH_UNIVERSITY", - "RIJKSUNIVERSITEIT", - "ROMAN_COLLEGE", - "SAMBA_SCHOOL", - "SCHOOL_ARCHIVE", - "SCHOOL_OF_COMPUTER_SCIENCE", - "SCHOOL_OF_EDUCATION", - "SCHOOL_OF_PAINTING", - "SCIENTIFIC_FACILITY", - "SECONDARY_AGRICULTURAL_SCHOOL", - "SECONDARY_ART_SCHOOL", - "SECONDARY_MEDICAL_SCHOOLS", - "SECONDARY_PEDAGOGICAL_SCHOOLS", - "SECONDARY_TECHNICAL_SCHOOL", - "SEMINARY", - "SENIORENAKADEMIE", - "SENIORENUNIVERSIT\u00c4T", - "SINGING_SCHOOL", - "SOCIAL_SPACE", - "SOCIALE_HOGESCHOOL", - "SOCIALH\u00d6GSKOLA", - "SPECIALIZED_SECONDARY_SCHOOL", - "SPRACHLERNZENTRUM", - "STAFF_COLLEGE", - "STATE_TRADE_SCHOOL_AUSTRIA", - "SUFI_LODGE", - "TANGO_ACADEMY", - "TEACHER_CENTRE", - "TECHNICAL_SCHOOL", - "TECHNICAL_UNIVERSITY", - "TEKNISK_H\u00d6GSKOLA_I_SVERIGE", - "TEOLLISUUSKOULU", - "UNIVERSITY", - "UNIVERSITY_ARCHIVE", - "UNIVERSITY_COLLEGE", - "UNIVERSITY_IN_BRITISH_COLUMBIA", - "UNIVERSITY_IN_CANADA", - "UNIVERSITY_IN_FRANCE", - "UNIVERSITY_IN_QUEBEC", - "UNIVERSITY_LABORATORY", - "UNIVERSITY_OF_MARXISM_LENINISM", - "VIRTUAL_UNIVERSITY", - "WOMENS_COLLEGE", - "WOMENS_COLLEGE_IN_THE_UNITED_STATES", - "\u00c9COLE_G\u00c9N\u00c9RALISTE", - "\u00c9COLE_SUP\u00c9RIEURE_SP\u00c9CIALIS\u00c9E_EN_SUISSE", - "\u00c9COLES_DARTS_ET_M\u00c9TIERS_DU_QU\u00c9BEC", - "\u0391\u039d\u038f\u03a4\u0391\u03a4\u039f_\u03a3\u03a4\u03a1\u0391\u03a4\u0399\u03a9\u03a4\u0399\u039a\u038c_\u0395\u039a\u03a0\u0391\u0399\u0394\u0395\u03a5\u03a4\u0399\u039a\u038c_\u038a\u0394\u03a1\u03a5\u039c\u0391", - "\u0423\u041d\u0418\u0412\u0415\u0420\u0421\u0418\u0422\u0415\u0422_\u041c\u0410\u0420\u041a\u0421\u0418\u0417\u041c\u0410_\u041b\u0415\u041d\u0418\u041d\u0418\u0417\u041c\u0410_\u041f\u0420\u0418_\u041c\u041e\u0421\u041a\u041e\u0412\u0421\u041a\u041e\u041c_\u0413\u041e\u0420\u041a\u041e\u041c\u0415_\u041a\u041f\u0421\u0421", - "\u30ca\u30f3\u30d0\u30fc\u30b9\u30af\u30fc\u30eb", - "\u53e3\u8154\u4fdd\u5065\u5b66\u79d1", - "\u56fd\u7acb\u77ed\u671f\u5927\u5b66", - "\u5973\u5b50\u9ad8\u7b49\u5e2b\u7bc4\u5b66\u6821", - "\u5b9f\u79d1\u9ad8\u7b49\u5973\u5b66\u6821", - "\u5de1\u67fb\u6559\u7fd2\u6240", - "\u5e2b\u7bc4\u5b66\u6821", - "\u65e5\u672c\u306e\u533b\u5b66\u6821", - "\u682a\u5f0f\u4f1a\u793e\u7acb\u5927\u5b66", - "\u6b6f\u79d1\u885b\u751f\u5b66\u79d1", - "\u7701\u90e8\u5171\u5efa\u5927\u5b66", - "\u770b\u8b77\u5e2b\u5b66\u6821", - "\u770b\u8b77\u5e2b\u990a\u6210\u6240", - "\u7f8e\u8853\u7814\u7a76\u6240", - "\u82b8\u8853\u7cfb\u65e7\u5236\u5c02\u9580\u5b66\u6821", - "\u96fb\u6ce2\u5de5\u696d\u9ad8\u7b49\u5c02\u9580\u5b66\u6821", - "\ub300\ud55c\ubbfc\uad6d\uc758_\uc758\ud559\uc804\ubb38\ub300\ud559\uc6d0", - "\uc911\uc559\ub300\ud559" - ], - "title": "EducationProviderTypeEnum", - "type": "string" - }, - "EducationalCommunity": { - "additionalProperties": false, - "description": "Students and educators.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "EducationalCommunity", - "type": "object" - }, - "EducationalPortal": { - "additionalProperties": false, - "description": "Learning resources, lesson plans, educational games, teacher materials.\nMay be separate platform or subdomain.\n\n**PURPOSE**: Provide educational resources based on heritage collections\nfor schools, teachers, and lifelong learners.\n\n**CHARACTERISTICS**:\n- Curriculum-aligned content\n- Teacher resources\n- Student activities\n- Age-appropriate materials\n\n**EXAMPLES**: Museum education portals, archive learning resources", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "INTERACTIVE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "EducationalPortal", - "type": "object" - }, - "EducationalService": { - "additionalProperties": false, - "description": "Educational and learning services.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "EducationalService", - "type": "object" - }, - "Educator": { - "additionalProperties": false, - "description": "Educator designing and delivering educational programs.\n\n**Official Title vs De Facto Work**:\nOften involved in exhibition development, accessibility initiatives,\ncommunity partnerships, and digital content creation.\n\n**Common Variants**:\n- Museum Educator\n- Education Officer\n- Public Programs Coordinator\n- Learning Facilitator\n- Schools Coordinator\n- Gallery Educator\n\n**Typical Domains**: Museums, archives, libraries\n\n**Typical Responsibilities**:\n- School program development and delivery\n- Teacher professional development\n- Family programs and activities\n- Curriculum alignment\n- Educational materials creation", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Educator", - "type": "object" - }, - "EmailAddress": { - "additionalProperties": false, - "description": "An email address.\n**Ontology Alignment**: - **Primary**: `schema:email` (property promoted to class for structure if needed, or just value) - **Close**: `vcard:Email`", - "properties": { - "has_or_had_label": { - "items": { - "pattern": "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "EmailAddress", - "type": "object" - }, - "EmailArchiveCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Email list archives.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "MailingListArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by MailingListArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "EmailArchiveCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "EmailArchiveCollection", - "type": "object" - }, - "EmailClaim": { - "additionalProperties": false, - "description": "Contact email address.\nExpected in: <a href='mailto:...'>, contact page, footer", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "EmailClaim", - "type": "object" - }, - "EmailToClickConversion": { - "additionalProperties": false, - "description": "Conversion rate measuring email recipients who click through.\n**INDUSTRY BENCHMARKS** (Museum sector): - Average: 2-4% - Well-targeted: 5-10%\n**CALCULATION**: (Clicks / Emails Delivered) \u00d7 100", - "properties": { - "conversion_source_population": { - "description": "The group being measured (denominator) in a conversion rate calculation.\n\nThis identifies the total population from which conversions are measured.\n", - "type": [ - "string", - "null" - ] - }, - "conversion_target_action": { - "description": "The action being measured (numerator) in a conversion rate calculation.\n\nThis identifies what action constitutes a \"conversion\" from the source population.\n", - "type": [ - "string", - "null" - ] - }, - "conversion_type_label": { - "description": "Human-readable label for this conversion rate type.\n\nExamples: \"Visitor to Purchase\", \"Email to Click\", \"Online to Physical Visit\"\n", - "type": "string" - }, - "industry_benchmark_high": { - "description": "High end of the industry benchmark range for this metric.\n\nExpressed as a decimal (e.g., 0.40 = 40%).\nUsed with industry_benchmark_low to define the typical performance range.\n", - "type": [ - "number", - "null" - ] - }, - "industry_benchmark_low": { - "description": "Low end of the industry benchmark range for this metric.\n\nExpressed as a decimal (e.g., 0.15 = 15%).\nUsed with industry_benchmark_high to define the typical performance range.\n", - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "conversion_type_label" - ], - "title": "EmailToClickConversion", - "type": "object" - }, - "EmicLabel": { - "additionalProperties": false, - "description": "Emic (insider) name used by the community or entity itself. MIGRATED from emic_name slot (Rule 53).", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_code" - ], - "title": "EmicLabel", - "type": "object" - }, - "EmployeeBenefitsExpenses": { - "additionalProperties": false, - "description": "Costs of employee benefits (pensions, insurance).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "EmployeeBenefitsExpenses", - "type": "object" - }, - "EncompassingBodyTypeEnum": { - "description": "Type of encompassing body that governs, coordinates, or provides services to\nheritage custodian organizations. Six types reflect different governance models:\nlegal hierarchy (umbrella), service provision (network), peer collaboration (consortium),\nmember-owned cooperative (cooperative), value-driven movement (social movement),\nand grant-giving funding bodies (funding body).\n\n**Six Governance Models**:\n\n1. **UMBRELLA** - Legal parent organizations (permanent hierarchical structure)\n2. **NETWORK** - Service provider networks (temporary agreements, centralized services)\n3. **CONSORTIUM** - Mutual assistance bodies (temporary agreements, peer-to-peer)\n4. **COOPERATIVE** - Member-owned organizations (permanent, member governance)\n5. **SOCIAL_MOVEMENT** - Value-driven movements (ideological, open participation)\n6. **FUNDING_BODY** - Grant-giving organizations (provide financial resources to custodians)\n\n**Decision Tree for Classification**:\n```\nIs the relationship defined in legal documents (statutes, laws, articles)?\n YES \u2192 UMBRELLA (legal parent-child)\n NO \u2192 Continue...\n\nIs it a member-OWNED organization with member governance?\n YES \u2192 COOPERATIVE (OCLC, credit unions)\n NO \u2192 Continue...\n\nIs it a value-driven movement with open participation?\n YES \u2192 SOCIAL_MOVEMENT (Wikimedia, Creative Commons)\n NO \u2192 Continue...\n\nDoes the body provide GRANTS or FUNDING to heritage custodians?\n YES \u2192 FUNDING_BODY (Mondriaan Fund, ERC, Creative Europe)\n NO \u2192 Continue...\n\nDoes the body provide centralized services TO members?\n YES \u2192 NETWORK (service provider)\n NO \u2192 Continue...\n\nDo members provide services TO EACH OTHER (peer-to-peer)?\n YES \u2192 CONSORTIUM (mutual assistance)\n```\n\n**CRITICAL: Data Openness Correlation**:\n\n- **COOPERATIVE** (OCLC): Typically MIXED or CLOSED data policy\n - Members contribute data, organization controls access\n - Business model may depend on subscription revenue\n \n- **SOCIAL_MOVEMENT** (Wikimedia): Typically FULLY OPEN data policy\n - Ideological commitment to open access\n - Data openness is core value, not business decision", - "enum": [ - "UMBRELLA", - "NETWORK", - "CONSORTIUM", - "COOPERATIVE", - "SOCIAL_MOVEMENT", - "FUNDING_BODY" - ], - "title": "EncompassingBodyTypeEnum", - "type": "string" - }, - "Endpoint": { - "additionalProperties": false, - "description": "Distribution or access point.", - "properties": { - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Endpoint", - "type": "object" - }, - "EndpointStatusEnum": { - "description": "Operational status of an API endpoint.", - "enum": [ - "ACTIVE", - "DEPRECATED", - "BETA", - "ALPHA", - "OFFLINE", - "MAINTENANCE", - "UNKNOWN" - ], - "title": "EndpointStatusEnum", - "type": "string" - }, - "EngagementMetric": { - "additionalProperties": false, - "description": "Structured representation of an engagement metric (e.g. Rate, Likes, Shares).\n**Ontology Alignment**: - **Primary**: `schema:InteractionCounter`", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "number" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "EngagementMetric", - "type": "object" - }, - "EnrichmentMethod": { - "additionalProperties": false, - "description": "The method used for data enrichment (e.g. \"WhatsApp API Extraction\", \"Manual Verification\").\n**Ontology Alignment**: - **Primary**: `prov:Plan` (subclass of prov:Entity) - **Close**: `schema:Action` (instrument)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "EnrichmentMethod", - "type": "object" - }, - "EnrichmentProvenance": { - "additionalProperties": false, - "description": "Nested provenance tracking for individual enrichment sources within a custodian record. Contains entries keyed by enrichment type (e.g., wikidata_enrichment, google_maps_enrichment) with content hashes, verification timestamps, and derivation sources.\nOntology mapping rationale: - class_uri is prov:Bundle because this bundles multiple provenance\n statements about different enrichment activities\n- close_mappings includes prov:Collection as this is a collection of\n provenance entries", - "properties": { - "google_maps_enrichment": { - "anyOf": [ - { - "$ref": "#/$defs/EnrichmentProvenanceEntry" - }, - { - "type": "null" - } - ], - "description": "Provenance for Google Maps enrichment data" - }, - "logo_enrichment": { - "anyOf": [ - { - "$ref": "#/$defs/EnrichmentProvenanceEntry" - }, - { - "type": "null" - } - ], - "description": "Provenance for logo/favicon enrichment data" - }, - "museum_register_enrichment": { - "anyOf": [ - { - "$ref": "#/$defs/EnrichmentProvenanceEntry" - }, - { - "type": "null" - } - ], - "description": "Provenance for Dutch Museum Register enrichment data" - }, - "web_enrichment": { - "anyOf": [ - { - "$ref": "#/$defs/EnrichmentProvenanceEntry" - }, - { - "type": "null" - } - ], - "description": "Provenance for web scraping enrichment data" - }, - "wikidata_enrichment": { - "anyOf": [ - { - "$ref": "#/$defs/EnrichmentProvenanceEntry" - }, - { - "type": "null" - } - ], - "description": "Provenance for Wikidata enrichment data" - }, - "youtube_enrichment": { - "anyOf": [ - { - "$ref": "#/$defs/EnrichmentProvenanceEntry" - }, - { - "type": "null" - } - ], - "description": "Provenance for YouTube enrichment data" - } - }, - "title": "EnrichmentProvenance", - "type": "object" - }, - "EnrichmentProvenanceEntry": { - "additionalProperties": false, - "description": "A single enrichment provenance entry containing content hash for integrity verification, verification timestamp, and derivation source. Implements W3C PROV-O and W3C SRI (Subresource Integrity) patterns.\nOntology mapping rationale: - class_uri is prov:Entity because this represents an entity with\n provenance metadata (derivation, generation time)\n- close_mappings includes prov:Derivation as this tracks where\n the enrichment was derived from", - "properties": { - "content_hash": { - "description": "SHA-256 content hash for integrity verification following W3C SRI (Subresource Integrity) format (e.g., sha256-C6WLNCLHslf75jqQ...)", - "type": [ - "string", - "null" - ] - }, - "verified_at": { - "description": "When this enrichment was last verified", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "wasDerivedFrom": { - "description": "Source URI from which the enrichment was derived", - "type": [ - "string", - "null" - ] - }, - "wasGeneratedBy": { - "description": "Activity or process that generated this enrichment", - "type": [ - "string", - "null" - ] - } - }, - "title": "EnrichmentProvenanceEntry", - "type": "object" - }, - "EnterpriseArchitect": { - "additionalProperties": false, - "description": "Enterprise has_or_had_architect designing organizational IT architecture.\n\n**Official Title vs De Facto Work**:\nIn heritage context, focuses on integrating collections, operations,\nand public-facing systems into coherent architecture.\n\n**Common Variants**:\n- Solutions Architect\n- IT Architect\n- Systems Architect\n\n**Typical Domains**: Large heritage institutions, aggregators\n\n**Typical Responsibilities**:\n- IT strategy and roadmap\n- System integration design\n- Technology standards\n- Vendor evaluation\n- Architecture governance", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "EnterpriseArchitect", - "type": "object" - }, - "Entity": { - "additionalProperties": false, - "description": "A generic entity in the provenance model.\n\n**USAGE**:\nUsed for:\n- Generic entity references\n- Provenance entity tracking\n- Abstract entity representation", - "properties": { - "has_or_had_label": { - "description": "Name of the entity", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "description": "Type of entity", - "type": [ - "string", - "null" - ] - }, - "has_or_had_uri": { - "description": "URI of the entity", - "type": [ - "string", - "null" - ] - } - }, - "title": "Entity", - "type": "object" - }, - "EntityType": { - "additionalProperties": false, - "description": "Classification of an Entity (e.g. Person, Place, Organization).\n**Ontology Alignment**: - **Primary**: `skos:Concept` - **Close**: `rdfs:Class`", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "EntityType", - "type": "object" - }, - "EntityTypeEnum": { - "description": "Types of formal entities that can serve as heritage custodians,\nbased on their organizational and legal structure.", - "enum": [ - "INDIVIDUAL", - "GROUP", - "ORGANIZATION", - "GOVERNMENT", - "CORPORATION" - ], - "title": "EntityTypeEnum", - "type": "string" - }, - "EnvironmentalCondition": { - "additionalProperties": false, - "description": "Environmental condition observation.", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "EnvironmentalCondition", - "type": "object" - }, - "EnvironmentalRequirement": { - "additionalProperties": false, - "description": "A requirement for environmental conditions (e.g. Temperature range, RH range).\n**Ontology Alignment**: - **Primary**: `schema:PropertyValue` - **Close**: `dcterms:requires`", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "EnvironmentalRequirement", - "type": "object" - }, - "EnvironmentalZone": { - "additionalProperties": false, - "description": "A climate-controlled area within a storage facility with specific environmental parameters (temperature, relative humidity, light levels, air quality). DEFINITION: An EnvironmentalZone represents a physically distinct area within a storage facility that maintains specific environmental conditions. Different collection types require different zones based on their material composition and preservation requirements. Examples include climate-controlled archive rooms (18C, 50% RH), cold storage vaults for film (-5C to +4C), photographic materials storage (15C, 35% RH), textile storage (stable RH, low light), and general collection storage (ambient controlled). Wikidata Alignment: Q1759899 (climate control). HC Ontology Extension (hc-storage.ttl): Primary class hc:EnvironmentalZone (subclass of crm:E27_Site). Provides environmental preset instances including hc:StandardArchiveEnvironment (18C, 50% RH, 50 lux), hc:PhotographicMaterialsEnvironment (15C, 35% RH), hc:ColdStorageEnvironment (-5C, 30% RH), hc:TextileStorageEnvironment (18C, 50% RH, 15000 lux-hours/year). Key HC properties: hc:hasStorageSection (links zone to storage units), hc:hasEnvironmentalRequirement (links to climate specs), hc:meetsRequirement (indicates compliance), hc:hasEnvironmentalObservation (links to sensor readings), hc:monitoredByPlatform (links to sensor systems). SOSA/SSN Integration: Environmental zones can be monitored using sensor networks where Zone is a sosa:FeatureOfInterest, Observations are hc:StorageEnvironmentObservation, and Sensors are hosted on hc:EnvironmentalSensorPlatform. CIDOC-CRM Alignment (v7.1.3): Base class crm:E27_Site - Zones are physical locations. StorageFacility has_section EnvironmentalZone which has_section StorageUnit.", - "properties": { - "allows_or_allowed": { - "description": "Generic slot for expressing what activities, equipment, or behaviors are permitted in a heritage custodian facility (past or present).\n**SEMANTICS**:\nUses RiC-O temporal pattern (is_or_was / has_or_had / allows_or_allowed) to capture policies that may change over time. A reading room that \"allowed photography\" in 2020 may have changed policy by 2025.\n**USAGE PATTERN**:\nThe range should be a typed class representing the permitted activity: - `Laptop` - laptop use permission - `Photography` - photography permission - Future: `Food`, `Beverages`, `MobilePhone`, etc.\n**EXAMPLES**:\n```yaml ReadingRoom:\n allows_or_allowed:\n - permitted_item: Laptop\n is_permitted: true\n conditions: \"Must be silent, no external keyboards\"\n - permitted_item: Photography \n is_permitted: true\n conditions: \"Personal research use only, no flash\"\n```", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "contains_or_contained_contains_unit": { - "description": "Storage units contained within this zone.\n\nHC Ontology: `hc:hasStorageSection`\n", - "items": { - "$ref": "#/$defs/StorageUnit" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_tolerance": { - "description": "Tolerance range for a value.", - "type": [ - "number", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "max_annual_light_exposure": { - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "monitoring_platform": { - "description": "Name/description of the sensor platform monitoring this zone.\n\nHC Ontology: `hc:monitoredByPlatform` (subproperty of sosa:isFeatureOfInterestOf)\n\nExamples: Hanwell, Meaco, EBI dataloggers\n", - "type": [ - "string", - "null" - ] - }, - "monitoring_platform_url": { - "description": "URL for accessing monitoring dashboard or API.\n", - "type": [ - "string", - "null" - ] - }, - "observation": { - "description": "Environmental observations recorded for this zone.\n\nHC Ontology: `hc:hasEnvironmentalObservation`\n\nLinks to StorageCondition instances representing actual\nmeasured conditions at specific points in time.\n", - "items": { - "$ref": "#/$defs/StorageCondition" - }, - "type": [ - "array", - "null" - ] - }, - "part_of_facility": { - "description": "The parent storage facility containing this zone.\n\nHC Ontology: `hc:isStorageSectionOf`\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "part_of_facility", - "has_or_had_identifier", - "has_or_had_label", - "has_or_had_type" - ], - "title": "EnvironmentalZone", - "type": "object" - }, - "EphemeraCollectionContent": { - "additionalProperties": false, - "description": "Ephemeral materials: Bulletins, programs, pamphlets, photographs,\npostcards, tickets, posters.", - "properties": { - "has_or_had_label": {}, - "type_definition": { - "description": "Definition of this collection content type", - "type": [ - "string", - "null" - ] - } - }, - "title": "EphemeraCollectionContent", - "type": "object" - }, - "EpiscopalCorrespondenceCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Bishop's correspondence.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "DiocesanArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by DiocesanArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "EpiscopalCorrespondenceCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "EpiscopalCorrespondenceCollection", - "type": "object" - }, - "Equipment": { - "additionalProperties": false, - "description": "Physical equipment or device.\n**Ontology Alignment**: - **Primary**: `sosa:Platform` (Device host) - **Close**: `schema:Product`", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Equipment", - "type": "object" - }, - "EquipmentType": { - "additionalProperties": false, - "description": "Type classification for equipment (e.g. Imaging Equipment, Lab Equipment).\n**Ontology Alignment**: - **Primary**: `skos:Concept` - **Close**: `schema:definedTerm`", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "EquipmentType", - "type": "object" - }, - "Essay": { - "additionalProperties": false, - "description": "Essay text.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Essay", - "type": "object" - }, - "EstablishmentEvent": { - "additionalProperties": false, - "description": "The event of establishing an organization, department, or entity.\n**Ontology Alignment**: - **Primary**: `org:ChangeEvent` (Organizational change) - **Close**: `schema:foundingDate` (as event)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "$ref": "#/$defs/TimeSpan", - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "temporal_extent" - ], - "title": "EstablishmentEvent", - "type": "object" - }, - "EstateDocumentSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Estate management records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "HouseArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by HouseArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "EstateDocumentSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "EstateDocumentSeries", - "type": "object" - }, - "EstateRecordsSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Estate management records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "NobilityArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by NobilityArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "EstateRecordsSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "EstateRecordsSeries", - "type": "object" - }, - "EstimationMethod": { - "additionalProperties": false, - "description": "Describes the specific technique used to estimate a value (e.g., visual inspection, sampling, extrapolation).\nUsed in conjunction with `is_or_was_based_on` to provide provenance for estimated quantities.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "EstimationMethod", - "type": "object" - }, - "EthnicRestaurant": { - "additionalProperties": false, - "description": "Restaurant that serves ethnic cuisine.\nPreserves and presents culinary traditions from specific cultures or regions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "EthnicRestaurant", - "type": "object" - }, - "Event": { - "additionalProperties": false, - "description": "An abstract hub class representing temporal phenomena - things that happen\nand involve actors, places, and temporal extents.\n\n**HUB ARCHITECTURE**:\n\nThe Event class follows the hub pattern established by Custodian:\n- Minimal hub with persistent identifier (event_id)\n- Links to temporal extent (TimeSpan) via temporal_extent\n- Links to actors (Custodian, Person) via involved_actors\n- Links to place via took_place_at\n- Categorized by hypernym_event_type (generic) and domain-specific type\n\n**INHERITANCE HIERARCHY**:\n\n```\nEvent (this class - abstract)\n\u251c\u2500\u2500 OrganizationalChangeEvent (existing - organizational changes)\n\u251c\u2500\u2500 IntangibleHeritageEvent (future - ICH-related events)\n\u251c\u2500\u2500 CollectionEvent (future - accession, deaccession, loan)\n\u2514\u2500\u2500 PersonEvent (future - birth, death, career milestones)\n```\n\n**CIDOC-CRM ALIGNMENT**:\n\nMaps to crm:E5_Event which is defined as:\n\"This class comprises distinct, delimited and coherent processes and states, \neither deliberately or spontaneously caused by E39 Actors, that result in \nchanges in E18 Physical Things.\"\n\nKey relationships:\n- crm:P4_has_time-span \u2192 TimeSpan (when)\n- crm:P7_took_place_at \u2192 Place (where)\n- crm:P11_had_participant \u2192 Actor (who)\n- crm:P2_has_type \u2192 EventTypeEnum (what kind)\n\n**RELATIONSHIP TO EXISTING OrganizationalChangeEvent**:\n\nOrganizationalChangeEvent already exists and maps to crm:E5_Event.\nThis Event class provides:\n1. Shared base properties (temporal_extent, involved_actors, took_place_at)\n2. Generic event typing (hypernym_event_type)\n3. Foundation for other event types\n\nFuture migration: OrganizationalChangeEvent can inherit from Event.\n\n**RELATIONSHIP TO ACTORS**:\n\nEvents link to actors bidirectionally:\n- Event \u2192 involved_actors \u2192 Custodian/Person (who participated)\n- Custodian \u2192 organizational_change_events \u2192 Event (what events affected org)\n- Person \u2192 is_or_was_affected_by_event \u2192 Event (what events affected person)\n\n**EXAMPLE - Merger Event**:\n```yaml\nEvent:\n event_id: \"https://nde.nl/ontology/hc/event/nha-merger-2001\"\n event_label: \"Noord-Hollands Archief Merger\"\n hypernym_event_type: TRANSFORMATION\n temporal_extent:\n begin_of_the_begin: \"2001-01-01\"\n end_of_the_end: \"2001-01-01\"\n took_place_at: \"https://nde.nl/ontology/hc/place/nl-nh-haa\"\n involved_actors:\n - \"https://nde.nl/ontology/hc/nl-nh-haa-a-gah\"\n - \"https://nde.nl/ontology/hc/nl-nh-haa-a-ranh\"\n has_or_had_description: |\n Merger of Gemeentearchief Haarlem (founded 1910) and\n Rijksarchief in Noord-Holland (founded 1802) to form\n Noord-Hollands Archief.\n confidence_score: 0.95\n documentation_source:\n - \"https://noord-hollandsarchief.nl/over-ons/geschiedenis\"\n```\n\n**EXAMPLE - Destruction Event**:\n```yaml\nEvent:\n event_id: \"https://nde.nl/ontology/hc/event/gaza-library-destruction-2024\"\n event_label: \"Gaza Public Library Destruction\"\n hypernym_event_type: DESTRUCTION\n temporal_extent:\n begin_of_the_begin: \"2024-01-15\"\n end_of_the_end: \"2024-01-15\"\n took_place_at: \"https://nde.nl/ontology/hc/place/ps-gz-gaz\"\n has_or_had_description: |\n Gaza Public Library destroyed during military operations.\n confidence_score: 0.85\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_documentation": { - "description": "Links to documentation resources for a service, API, platform, or system.\n**SEMANTIC PATTERN**:\nThis slot follows the RiC-O temporal predicate pattern (has_or_had_*) to indicate that documentation may change over time (versioned docs, deprecated documentation, etc.).\n**REPLACES**:\n- `api_documentation` - URL to API documentation - Other domain-specific documentation URL slots\n**RANGE OPTIONS**:\n- uri: Simple URL to documentation - Documentation: Structured documentation with metadata\nClasses should use slot_usage to specify appropriate range.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "$ref": "#/$defs/EventType", - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "involves_or_involved": { - "description": "Actor involved in the event.", - "items": { - "$ref": "#/$defs/Actor" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Generation event containing confidence score for this event. MIGRATED 2026-01-19: Replaces confidence_score slot with structured pattern.", - "items": { - "$ref": "#/$defs/GenerationEvent" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "takes_or_took_place_at": { - "description": "Location where an event takes or took place.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"takes_or_took\" phrasing indicates the location may be:\n- Current (ongoing events)\n- Historical (past events)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P7_took_place_at` - CIDOC-CRM event location\n - Domain: E4_Period (includes E5_Event)\n - Range: E53_Place\n\n**Usage**:\nLinks events to place references (CustodianPlace, GeoSpatialPlace, or generic Location).\nClass-level slot_usage narrows the range to specific place types as needed.\n\n**Examples**:\n- Merger event signed at headquarters \u2192 CustodianPlace\n- Natural disaster affecting region \u2192 GeoSpatialPlace\n- Exhibition opening \u2192 Location (generic)\n", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label", - "has_or_had_hypernym" - ], - "title": "Event", - "type": "object" - }, - "EventCatering": { - "additionalProperties": false, - "description": "Function and event catering space for private events, receptions,\ncorporate functions, and special occasions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "const": "Event Catering", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "EventCatering", - "type": "object" - }, - "EventClaim": { - "additionalProperties": false, - "description": "Claim types for event information.\nIncludes upcoming events and activities.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "EventClaim", - "type": "object" - }, - "EventCoordinator": { - "additionalProperties": false, - "description": "Coordinator organizing events, programs, and activities for the organization.\n\n**Official Title vs De Facto Work**:\nFormally coordinates events, but often involved in marketing,\nvolunteer management, venue logistics, and sponsorship.\n\n**Common Variants**:\n- Events Manager\n- Programs Coordinator\n- Activiteitenco\u00f6rdinator (Dutch)\n- Program Officer\n- Special Events Coordinator\n\n**Typical Domains**: Historical societies, museums, heritage organizations, libraries\n\n**Typical Responsibilities**:\n- Event planning and execution\n- Venue coordination\n- Speaker/presenter coordination\n- Volunteer coordination for events\n- Event promotion\n- Budget management for events\n- Post-event evaluation", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "EventCoordinator", - "type": "object" - }, - "EventStatusEnum": { - "description": "Status of a heritage event occurrence.\n\nAligned with Schema.org EventStatusType vocabulary for web discoverability.", - "enum": [ - "SCHEDULED", - "CANCELLED", - "POSTPONED", - "RESCHEDULED", - "MOVED_ONLINE", - "COMPLETED", - "IN_PROGRESS" - ], - "title": "EventStatusEnum", - "type": "string" - }, - "EventType": { - "additionalProperties": false, - "description": "A type or category of event.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "EventType", - "type": "object" - }, - "ExaminationMethod": { - "additionalProperties": false, - "description": "Examination method.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ExaminationMethod", - "type": "object" - }, - "Example": { - "additionalProperties": false, - "description": "Provides concrete examples to illustrate a definition or type.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "Example", - "type": "object" - }, - "ExcellentCondition": { - "additionalProperties": false, - "description": "Excellent physical condition with no significant deterioration", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ExcellentCondition", - "type": "object" - }, - "ExecutiveFunction": { - "additionalProperties": false, - "description": "Executive management function: strategic planning, board relations, organizational leadership, policy development.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "ExecutiveFunction", - "type": "object" - }, - "ExhibitedObject": { - "additionalProperties": false, - "description": "An individual artwork, artifact, document, or specimen that may be displayed\nin heritage exhibitions.\n\nModels the OBJECT (physical or conceptual item), linking creators, custodians,\nmaterials, and exhibition history.\n\n**Key Distinction**:\n\n| Concept | Class | Example |\n|---------|-------|---------|\n| Heritage institution | Custodian | \"Mauritshuis\" |\n| Curated display | Exhibition | \"Vermeer 2023\" |\n| **Individual object** | **ExhibitedObject** | **\"Girl with a Pearl Earring\"** |\n| Collection grouping | Collection | \"Vermeer Collection\" |\n\n**When to Use ExhibitedObject**:\n\nUse for individual items that can be displayed or loaned:\n- Paintings, sculptures, drawings, prints\n- Archival documents, manuscripts, photographs\n- Archaeological artifacts, ethnographic objects\n- Natural history specimens, scientific instruments\n- Digital artworks, installations\n\n- **CIDOC-CRM**: crm:E22_Human-Made_Object (primary - cultural heritage standard)\n \"Physical objects purposefully created by human activity.\"\n- **Schema.org**: schema:VisualArtwork (web discoverability for visual art)\n- **CIDOC-CRM**: crm:E19_Physical_Object (broader physical objects)\n- **Schema.org**: schema:ArchiveComponent (for archival materials)\n- **RiC-O**: rico:RecordResource (for archival records)\n\n**Relationship to Other Classes**:\n\n```\nCustodian (institution)\n \u2502\n \u2502\u2500\u2500 current_keeper (who holds the object now)\n v\nExhibitedObject (this class)\n \u2502\n \u2502\u2500\u2500 exhibited_in \u2192 Exhibition[] (where object was/is shown)\n \u2502\u2500\u2500 creation_timespan \u2192 TimeSpan (when object was created)\n \u2502\u2500\u2500 creator \u2192 (artist/maker information)\n \u2502\u2500\u2500 conservation_records \u2192 ConservationRecord[] (condition/treatments)\n \u2502\u2500\u2500 provenance_events \u2192 ProvenanceEvent[] (ownership history)\n \u2502\u2500\u2500 loan_history \u2192 Loan[] (loan records)\n v\nCollection (grouping of related objects)\n```\n\n**Provenance Tracking**:\n\nExhibitedObject includes multiple provenance mechanisms:\n\n- `provenance_text`: Narrative ownership history (simple string)\n- `previous_owners`: List of previous owners (simple strings)\n- `provenance_events`: Full provenance as structured events with:\n - Event types (PURCHASE, AUCTION, BEQUEST, CONFISCATION, RESTITUTION)\n - Temporal data (date, timespan)\n - Parties (seller, buyer, source, recipient)\n - Nazi-era flags for Washington Principles compliance\n- `acquisition_info`: How/when acquired by current keeper\n\n**Conservation Records**:\n\n- `condition_notes`: Current condition (simple string)\n- `conservation_history`: Treatment history (simple strings)\n- `conservation_records`: Full conservation documentation with:\n - Condition assessments (EXCELLENT to CRITICAL)\n - Treatment records (cleaning, restoration, repair)\n - Technical examinations (X-ray, IR reflectography)\n - Pre/post-loan condition checks\n\n**Loan History**:\n\n- `loan_history`: Complete loan records with:\n - Lender and borrower institutions\n - Loan dates and status (REQUESTED through RETURNED)\n - Insurance valuations and coverage\n - Condition reports and courier details\n\n**Example**:\n\nJohannes Vermeer's \"Girl with a Pearl Earring\":\n- object_id: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring\n- object_name: \"Girl with a Pearl Earring\"\n- object_type: PAINTING\n- creator: \"Johannes Vermeer\"\n- date_created: c. 1665\n- current_keeper: Mauritshuis\n- exhibited_in: [Vermeer 2023, various traveling exhibitions]", - "properties": { - "conservation_history": { - "description": "History of conservation treatments.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "creation_place": { - "anyOf": [ - { - "$ref": "#/$defs/CustodianPlace" - }, - { - "type": "null" - } - ], - "description": "Location where the object was created.\n" - }, - "creation_timespan": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Full temporal extent of creation with CIDOC-CRM fuzzy boundaries.\n\nUse for scholarly precision with uncertain dates:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible completion\n- end_of_the_end: Latest possible completion\n" - }, - "creator": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "creator_role": { - "description": "Role of each creator (artist, workshop, attributed to, circle of, etc.).\nCorresponds with creator list by position.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "current_keeper": { - "description": "Custodian institution currently holding this object.\n\nCIDOC-CRM: P50_has_current_keeper - \"identifies the E39 Actor that \nhad custody of an instance of E18 Physical Thing at the time of validity.\"\n", - "type": [ - "string", - "null" - ] - }, - "current_location": { - "anyOf": [ - { - "$ref": "#/$defs/CustodianPlace" - }, - { - "type": "null" - } - ], - "description": "Current physical location of the object.\nMay differ from permanent_location if on loan or traveling.\n" - }, - "has_or_had_identifier": { - "description": "External identifiers for this exhibited object.\n\nMIGRATED 2026-01-15: Replaces wikidata_id slot per Rule 53.\nMIGRATED 2026-01-23: Also includes catalog raisonn\u00e9 numbers per Rule 53/F26.\n\nUse has_or_had_type with IdentifierType subclasses to specify identifier type.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_provenance": { - "anyOf": [ - { - "$ref": "#/$defs/Provenance" - }, - { - "type": "null" - } - ], - "description": "Provenance information for this data element.\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\nBroadened from ProvenanceBlock to uriorcurie to resolve OWL ambiguous type warnings. This allows classes to narrow via slot_usage to: - `ProvenanceBlock` for comprehensive provenance tracking - `SourceDocument` for source document references - String URIs for simple provenance references\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming follows RiC-O convention indicating that provenance associations can change over time: - Additional provenance may be added as data is enriched - Provenance may be updated when verification occurs - Historical provenance preserved through versioning\n**REPLACES**: - `all_data_real` (auto-generated stub, string range) - `is_or_was_real` (RealnessStatus typed class) - `has_all_data_real_flag` (boolean flag, no provenance) - `has_or_had_observation_source_document` (bespoke slot, Rule 55)\n**EXAMPLE**: ```yaml has_or_had_provenance:\n data_source: \"public_linkedin_profile\"\n extraction_date: \"2025-01-14T12:00:00Z\"\n confidence_score: 0.95\n note: \"Verified production data\"\n```" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_size": { - "description": "The size or dimensions of an entity. MIGRATED from dimension slot (2026-01-26).", - "items": { - "$ref": "#/$defs/Size" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_subject": { - "description": "Subject matter, theme, or topic depicted, described, or associated with an entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity may have different subject associations over time\n(e.g., reattribution of artwork subject, reinterpretation of archival content).\n\n**Use Cases**:\n- **Artwork subjects**: Themes depicted in paintings, sculptures, photographs\n- **Archival subjects**: Topics covered in document collections\n- **Collection subjects**: Thematic focus of a collection\n- **Exhibition subjects**: Themes explored in an exhibition\n\n**Controlled Vocabularies** (Recommended):\n- **AAT** (Getty Art & Architecture Thesaurus): Art and artifact subjects\n- **Iconclass**: Iconographic classification (e.g., \"31A221 - portrait of a woman\")\n- **LCSH** (Library of Congress Subject Headings): General subjects\n- **UNESCO Thesaurus**: Cultural heritage subjects\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:about` - Schema.org subject property\n- **Exact**: `dcterms:subject` - Dublin Core subject\n- **Close**: `crm:P62_depicts` - CIDOC-CRM visual depiction\n- **Close**: `skos:broader/narrower` - SKOS conceptual relationships\n\n**Range**: `uriorcurie` (Rule 55) - Allows both:\n- Direct string values for simple subjects\n- URI references to Subject class instances or controlled vocabulary terms\n\n**Migration Note** (2026-01-17):\nReplaces domain-specific `subject_depicted` slot per slot_fixes.yaml revision.\nProvides generic predicate name applicable across heritage object contexts.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "inscription": { - "description": "Text inscribed on the object (signatures, dates, dedications).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "inventory_number": { - "description": "Additional inventory or catalog numbers.\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_acquired_through": { - "items": { - "$ref": "#/$defs/AcquisitionEvent" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_created_through": { - "anyOf": [ - { - "$ref": "#/$defs/CreationEvent" - }, - { - "type": "null" - } - ], - "description": "Event through which an entity was created." - }, - "is_or_was_exhibited_at": { - "description": "The exhibition or location where the object was displayed.", - "items": { - "$ref": "#/$defs/ExhibitionLocation" - }, - "type": [ - "array", - "null" - ] - }, - "loan_history": { - "description": "History of loans involving this object.\n\nIncludes both:\n- Outgoing loans (when this object's keeper lends it)\n- Incoming loans (when this object is borrowed from elsewhere)\n\nEach loan record includes:\n- Lender and borrower institutions\n- Loan dates and status\n- Insurance valuations\n- Condition reports\n- Courier and transport details\n\nLoans are referenced (not inlined) as they link multiple objects\nand institutions.\n", - "items": { - "$ref": "#/$defs/Loan" - }, - "type": [ - "array", - "null" - ] - }, - "medium": { - "description": "Materials and techniques used to create the object.\nUse standard art historical terminology.\n", - "type": [ - "string", - "null" - ] - }, - "object_alternate_name": { - "description": "Alternative titles, historical names, or translations.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "object_description": { - "description": "Detailed description of the object, its significance, and context.\n", - "type": [ - "string", - "null" - ] - }, - "object_id": { - "description": "Unique identifier for this object.\nFormat: https://nde.nl/ontology/hc/object/{institution-slug}-{object-slug}\n", - "type": "string" - }, - "object_name": { - "description": "Primary title or name of the object.\nUse the most commonly recognized title.\n", - "type": "string" - }, - "object_type": { - "$ref": "#/$defs/ExhibitedObjectTypeEnum", - "description": "Classification of object by type/medium.\n\nValues: PAINTING, SCULPTURE, DRAWING, PRINT, PHOTOGRAPH, CERAMIC,\nTEXTILE, FURNITURE, DOCUMENT, MANUSCRIPT, RARE_BOOK, MAP,\nARCHAEOLOGICAL_ARTIFACT, NATURAL_HISTORY_SPECIMEN, etc.\n" - }, - "part_of_collection": { - "description": "Collection(s) to which this object belongs.\n", - "type": [ - "string", - "null" - ] - }, - "permanent_location": { - "description": "Usual permanent location (gallery, room, case) within institution.\nUse for standard display location when not on loan.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "object_id", - "object_name", - "object_type" - ], - "title": "ExhibitedObject", - "type": "object" - }, - "ExhibitedObjectTypeEnum": { - "description": "Categorizes types of objects displayed in heritage exhibitions.\n\n**Coverage**:\n- Fine arts (paintings, sculptures, prints, drawings)\n- Decorative arts (ceramics, textiles, furniture)\n- Archival materials (documents, photographs, manuscripts)\n- Library materials (books, maps, ephemera)\n- Natural history specimens\n- Archaeological artifacts\n- Digital/media arts\n\n**Ontology Alignment**:\n- AAT: Getty Art & Architecture Thesaurus concepts\n- Schema.org: schema:VisualArtwork subtypes\n- CIDOC-CRM: crm:E22_Human-Made_Object subtypes", - "enum": [ - "PAINTING", - "SCULPTURE", - "DRAWING", - "PRINT", - "PHOTOGRAPH", - "CERAMIC", - "TEXTILE", - "FURNITURE", - "METALWORK", - "GLASSWORK", - "DOCUMENT", - "MANUSCRIPT", - "RARE_BOOK", - "MAP", - "EPHEMERA", - "ARCHAEOLOGICAL_ARTIFACT", - "ETHNOGRAPHIC_OBJECT", - "NATURAL_HISTORY_SPECIMEN", - "SCIENTIFIC_INSTRUMENT", - "VIDEO_ART", - "INSTALLATION", - "DIGITAL_ARTWORK", - "SOUND_ART", - "MIXED_MEDIA", - "COSTUME", - "ARCHITECTURAL_ELEMENT", - "NUMISMATIC_OBJECT", - "OTHER" - ], - "title": "ExhibitedObjectTypeEnum", - "type": "string" - }, - "Exhibition": { - "additionalProperties": false, - "description": "A curated display of objects, artworks, documents, or cultural materials\norganized by a heritage custodian institution.\n\nModels the EXHIBITION (organized event), linking organizing institutions\nto temporal extents, featured objects, and published catalogs.\n\n**Key Distinction**:\n\n| Concept | Class | Example |\n|---------|-------|---------|\n| Heritage institution | Custodian | \"Rijksmuseum\" |\n| **Curated display** | **Exhibition** | **\"Vermeer\" exhibition** |\n| Individual object | ExhibitedObject | \"Girl with a Pearl Earring\" |\n| Publication | ExhibitionCatalog | \"Vermeer (2023) exhibition catalog\" |\n| Event occurrence | IntangibleHeritageEvent | \"Pride Amsterdam 2024\" |\n\n**When to Use Exhibition**:\n\nUse for curated displays organized by heritage institutions:\n- Museum exhibitions (permanent, temporary, traveling)\n- Archive exhibitions (document displays, historical materials)\n- Library special collections exhibitions\n- Gallery shows (solo, group, retrospectives)\n- Virtual/online exhibitions\n\n- **Schema.org**: schema:ExhibitionEvent (primary - web discoverability)\n \"Event type: Exhibition event, e.g. at a museum, library, archive, tradeshow, ...\"\n- **CIDOC-CRM**: crm:E7_Activity (deliberate actions by actors)\n- **CIDOC-CRM**: crm:E5_Event (historical event)\n- **Schema.org**: schema:Event (parent class for all events)\n\n**Relationship to Other Classes**:\n\n```\nCustodian (organizing institution)\n |\n |--- organized_by (inverse: exhibitions)\n v\nExhibition (curated display)\n |\n |--- exhibition_timespan --> TimeSpan (CIDOC-CRM temporal extent)\n |--- featured_objects --> ExhibitedObject[] (artworks, artifacts)\n |--- exhibition_catalogs --> ExhibitionCatalog[] (publications)\n```\n\n**Temporal Modeling**:\n\nExhibitions have temporal bounds that can be modeled at two levels:\n\n1. **Simple dates**: Use `start_date` and `end_date` for precise dates\n2. **Fuzzy boundaries**: Use `exhibition_timespan` \u2192 TimeSpan for CIDOC-CRM\n fuzzy temporal modeling (begin_of_the_begin, end_of_the_end, etc.)\n\n**Example**:\n\nThe \"Vermeer\" exhibition at Rijksmuseum (Feb 10 - Jun 4, 2023):\n- exhibition_id: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023\n- exhibition_name: \"Vermeer\"\n- organized_by: [Rijksmuseum, Mauritshuis] (joint organization)\n- start_date: 2023-02-10\n- end_date: 2023-06-04\n- exhibition_type: BLOCKBUSTER\n- has_or_had_quantity: (visitor count)\n- featured_objects: [Girl with a Pearl Earring, The Milkmaid, View of Delft]\n- exhibition_catalogs: [Vermeer (2023) catalog]", - "properties": { - "curated_by": { - "description": "Name(s) of curator(s) responsible for the exhibition.\nUse full names where known.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "exhibits_or_exhibited": { - "description": "Exhibits an object.", - "items": { - "$ref": "#/$defs/FeaturedObject" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_documentation": { - "description": "Links to documentation resources for a service, API, platform, or system.\n**SEMANTIC PATTERN**:\nThis slot follows the RiC-O temporal predicate pattern (has_or_had_*) to indicate that documentation may change over time (versioned docs, deprecated documentation, etc.).\n**REPLACES**:\n- `api_documentation` - URL to API documentation - Other domain-specific documentation URL slots\n**RANGE OPTIONS**:\n- uri: Simple URL to documentation - Documentation: Structured documentation with metadata\nClasses should use slot_usage to specify appropriate range.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_organizer": { - "description": "Entity that organizes or organized an event, exhibition, program, or activity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an event's organizers change over time or the event is completed.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:organizer` - Schema.org organizer\n- **Close**: `schema:contributor` - contributor to event\n- **Related**: `prov:wasAssociatedWith` - PROV-O association\n\n**Usage**:\n- Primary organizer: main institution organizing an exhibition\n- Co-organizer: partner institutions with organizational role\n- Sponsor-organizer: sponsors with curatorial/organizational input\n\n**Pattern**:\nUses Organizer class to capture both the organizing entity and their role.\nThis replaces simple uriorcurie references to allow role discrimination.\n\n**Range**: `uriorcurie` (Rule 55) - broadened for flexibility.\nClasses narrow via slot_usage to Organizer class.\n", - "items": { - "$ref": "#/$defs/Organizer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_quantity": { - "description": "Visitor count for the exhibition. RULE 53: Replaces deprecated visitor_count integer slot with structured Quantity class.", - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_status": { - "$ref": "#/$defs/EventStatusEnum", - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/ExhibitionTypeEnum" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_venue": { - "description": "A venue associated with an event or exhibition.\n\n**USAGE**:\nUsed for:\n- Traveling exhibition venues\n- Event locations\n- Performance venues\n", - "items": { - "$ref": "#/$defs/Venue" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_cataloged_in": { - "description": "The catalog or finding aid where the item is described.", - "items": { - "$ref": "#/$defs/ExhibitionCatalog" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_located_in": { - "description": "links an entity to a place where it is or was located.\n\n**TEMPORAL SEMANTICS** (RiC-O style):\n\nThe \"is_or_was\" naming indicates that location can change over time.\n\n**BROADENED RANGE (Rule 55)**:\nRange broadened to `Any` (from City) to support multiple location types:\n- City / Settlement\n- Region / Province (e.g. EcclesiasticalProvince)\n- Country\n- Physical Site\n\n**DISTINCTION FROM is_or_was_located_within**:\n\n- `is_or_was_located_in`: Entity is AT a place (city/settlement level)\n- `is_or_was_located_within`: Entity is CONTAINED IN a larger place (hierarchical)\n\n**REPLACES**:\n\n- `city` (string slot) - Migrated to structured City class\n\n**USE CASES**:\n\n- Address city component (structured)\n- Auxiliary place city location\n- Any entity requiring city-level location\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organized_by": { - "description": "Primary Custodian organization(s) that organized this exhibition.\n\nLinks to heritage custodian entities (museums, archives, libraries, galleries).\nFor joint exhibitions, list all organizing institutions.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "Exhibition", - "type": "object" - }, - "ExhibitionCatalog": { - "additionalProperties": false, - "description": "A publication documenting an exhibition, including scholarly essays, \nobject entries, and illustrations.\n\nExhibition catalogs serve as permanent scholarly record of temporary exhibitions\nand are valuable research resources in their own right.\n\n**Types of Exhibition Catalogs**:\n\n| Type | Description | Example |\n|------|-------------|---------|\n| PRINT_CATALOG | Traditional printed book | Hardcover exhibition catalog |\n| DIGITAL_CATALOG | Online/downloadable publication | PDF or web-based catalog |\n| COLLECTION_CATALOG | Permanent collection catalog | Museum handbook |\n| BROCHURE | Brief exhibition guide | Gallery handout |\n| CHECKLIST | List of exhibited works | Exhibition checklist |\n\n**Ontology Alignment**:\n\n- **Schema.org**: schema:Book (primary - web discoverability)\n- **BIBFRAME**: bf:Work + bf:Instance (bibliographic modeling)\n- **CIDOC-CRM**: crm:E31_Document (document with propositions)\n- **BIBO**: bibo:Document (bibliographic ontology)\n\n**Relationship to Other Classes**:\n\n```\nExhibition (curated display)\n \u2502\n \u2502\u2500\u2500 exhibition_catalogs (documentation)\n v\nExhibitionCatalog (this class)\n \u2502\n \u2502\u2500\u2500 documents \u2192 ExhibitedObject[] (catalog entries)\n \u2502\u2500\u2500 authored_by \u2192 (scholars, curators)\n v\nPublisher/Institution\n```\n\n**Example**:\n\nThe \"Vermeer\" exhibition catalog (Rijksmuseum, 2023):\n- has_or_had_identifier: https://nde.nl/ontology/hc/catalog/rijksmuseum-vermeer-2023\n- has_or_had_label: \"Vermeer\"\n- is_or_was_associated_with: Vermeer exhibition 2023\n- isbn: 978-9491714962\n- pages: 320", - "properties": { - "contains_or_contained": { - "description": "Generic containment relationship (temporal). Indicates that this entity contains or has contained the referenced entity.", - "items": { - "$ref": "#/$defs/Essay" - }, - "type": [ - "array", - "null" - ] - }, - "contributor": { - "description": "Additional contributors (essayists, researchers, translators).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_publisher": { - "description": "The publisher of a publication or document.\n\nMIGRATED from publisher slot per Rule 53/56 (2026-01-17).\nUses Publisher class for structured representation including:\n- Publisher name\n- Publisher type (commercial, institutional, self-published)\n- Location\n- Identifiers (ISNI, Wikidata)\n", - "items": { - "$ref": "#/$defs/Publisher" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "description": "Type classification for the catalog. Supports multiple type facets: - Catalog format type: PRINT_CATALOG, DIGITAL_CATALOG, HYBRID_CATALOG - Binding type: BindingType class (hc:HardcoverBinding, hc:PaperbackBinding, etc.) MIGRATED from catalog_type (2026-01-17) and binding (2026-01-15) per Rule 53/56. Uses multivalued to support both format and binding classification simultaneously.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_edited_by": { - "description": "Relates a work to an editor who contributed to it.\nMIGRATED from `editor` slot.", - "items": { - "$ref": "#/$defs/Editor" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_indexed": { - "description": "Links an entity to its index, table of contents, or navigation structure.\n\n**USAGE**:\nUsed for:\n- Table of contents in catalogs and publications\n- Chapter/section listings\n- Navigation indices\n- Subject indices\n\n**Range**: `uriorcurie` per Rule 55 - allows slot_usage to narrow to Index class.\n\nMIGRATED from table_of_content slot per slot_fixes.yaml (Rule 53/56, 2026-01-16).\n", - "items": { - "$ref": "#/$defs/Index" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_instantiated_as": { - "description": "Relates a work (like a book or catalog) to its specific instantiation or manifestation (e.g., an eBook, a specific print edition).\nMaps to BIBFRAME `bf:hasInstance` or generic instantiation relationships.", - "items": { - "$ref": "#/$defs/EBook" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_published_at": { - "anyOf": [ - { - "$ref": "#/$defs/PublicationEvent" - }, - { - "type": "null" - } - ], - "description": "Publication event for content/document.\n\nMIGRATED from published_at slot per Rule 53/56 (2026-01-17).\nRenamed to follow RiC-O temporal naming conventions (Rule 39).\n\nUses PublicationEvent class for structured representation including:\n- Temporal extent (precise or fuzzy via TimeSpan)\n- Optional event label (e.g., \"First Edition\")\n- Event identifier for tracking\n\n**For simple timestamps**: Create PublicationEvent with all four\nTimeSpan boundaries set to the same instant.\n" - }, - "isbn": { - "description": "International Standard Book Number (ISBN) for publications.\nAccepts both ISBN-10 and ISBN-13 formats.\n", - "pattern": "^(97[89])?[0-9]{9}[0-9X]$", - "type": [ - "string", - "null" - ] - }, - "isbn_13": { - "description": "ISBN-13 specifically.\n", - "type": [ - "string", - "null" - ] - }, - "issn": { - "description": "International Standard Serial Number for periodicals.\n", - "type": [ - "string", - "null" - ] - }, - "language": { - "description": "Primary language of content on this profile.\n\nDublin Core: language for content language.\n\nISO 639-1 language code (e.g., \"en\", \"nl\", \"de\").\n\nSome institutions maintain separate profiles for different languages.\n", - "items": { - "pattern": "^[a-z]{2}$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "library_catalog_url": { - "description": "URL to library catalog record (WorldCat, institutional catalogs).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "page": { - "description": "Number of pages in the catalog.\n", - "type": [ - "integer", - "null" - ] - }, - "pdf_url": { - "description": "URL to downloadable PDF version.\n", - "type": [ - "string", - "null" - ] - }, - "price": { - "description": "Price value (numeric or formatted string with currency)", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "ExhibitionCatalog", - "type": "object" - }, - "ExhibitionDocumentationCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Exhibition records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ArtArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ArtArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ExhibitionDocumentationCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ExhibitionDocumentationCollection", - "type": "object" - }, - "ExhibitionFocusedClassification": { - "additionalProperties": false, - "description": "Institution where public exhibition is the primary mission.\nFocus on visitor attraction and display quality.\n\n**Characteristics**:\n- Entertainment value\n- Spectacular exhibits\n- Tourism orientation\n- Commercial operation", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ExhibitionFocusedClassification", - "type": "object" - }, - "ExhibitionFunction": { - "additionalProperties": false, - "description": "Exhibition function: exhibition planning, design, installation, loan coordination, traveling exhibitions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "ExhibitionFunction", - "type": "object" - }, - "ExhibitionLocation": { - "additionalProperties": false, - "description": "Specifies where an object was exhibited, potentially including specific gallery/room/case details within the exhibition.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "ExhibitionLocation", - "type": "object" - }, - "ExhibitionManagementSystem": { - "additionalProperties": false, - "description": "Exhibition Management System for planning, organizing, and tracking\nmuseum exhibitions, loans, and installation.\n\nExamples: Gallery Systems, ExhibitDay, MuseumPlus", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "const": "Exhibition Management System", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "ExhibitionManagementSystem", - "type": "object" - }, - "ExhibitionMicrosite": { - "additionalProperties": false, - "description": "Temporary website for specific exhibition or event. Has defined\nvalid_from/valid_to matching exhibition dates.\n\n**PURPOSE**: Provide dedicated online presence for temporary\nexhibitions with exhibition-specific content.\n\n**CHARACTERISTICS**:\n- Exhibition-focused\n- Temporary duration\n- Rich media content\n- Virtual exhibition features\n\n**EXAMPLES**: Special exhibition websites, event microsites", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AUXILIARY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "ExhibitionMicrosite", - "type": "object" - }, - "ExhibitionMicrositePresence": { - "additionalProperties": false, - "description": "Temporary exhibition website/portal.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ExhibitionMicrositePresence", - "type": "object" - }, - "ExhibitionRecordCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Exhibition records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "MuseumArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by MuseumArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ExhibitionRecordCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ExhibitionRecordCollection", - "type": "object" - }, - "ExhibitionSpace": { - "additionalProperties": false, - "description": "Exhibition space, gallery, or display area operated by a heritage custodian\nat a location separate from the main facility.\n\n**DEFINITION**:\n\nAn ExhibitionSpace is a dedicated area for displaying collections or\nexhibitions at a secondary location. This may be a satellite gallery,\nexhibition pavilion, temporary exhibition venue, or partner venue where\nthe heritage custodian presents its collections.\n\n**GETTY AAT ALIGNMENT**:\n\n`aat:300005768` (exhibition spaces) - \"Spaces designed and equipped for\nthe display and viewing of objects, artworks, or specimens.\"\n\n**WIKIDATA TYPE LINKAGE**:\n\nThis class can be further classified using either:\n\n1. **MuseumTypeEnum** (187 types) - For museum-style exhibition spaces:\n - Q207694 (art museum)\n - Q17431399 (history museum)\n - Q2087181 (science museum)\n \n2. **GalleryTypeEnum** (78 types) - For gallery-style exhibition spaces:\n - Q1007870 (art gallery)\n - Q1060829 (exhibition hall)\n - Q856584 (kunsthalle)\n\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Primary Function | Public Access |\n|------|------------------|---------------|\n| **ExhibitionSpace** | Display collections | Yes - public viewing |\n| Storage | Store collections | No - staff only |\n| BranchOffice | Service delivery | Yes - services |\n| ResearchCenter | Academic research | Limited |\n\n**TYPES OF EXHIBITION SPACES**:\n\n1. **Satellite Gallery**: Permanent secondary exhibition venue\n2. **Exhibition Pavilion**: Purpose-built exhibition structure\n3. **Partner Venue**: Space in another institution\n4. **Pop-up Gallery**: Temporary exhibition venue\n5. **Outdoor Exhibition**: Open-air display area\n6. **Project Space**: Experimental/contemporary art space\n\n**USE CASES**:\n\n1. **Museum Satellite Gallery**:\n ```yaml\n ExhibitionSpace:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/rijksmuseum-schiphol-gallery\"\n has_or_had_label:\n label_text: \"Rijksmuseum Schiphol\"\n museum_type_classification: ART_MUSEUM\n exhibition_type: SATELLITE_GALLERY\n has_or_had_area:\n quantity_value: 200\n ```\n\n2. **Contemporary Art Project Space**:\n ```yaml\n ExhibitionSpace:\n has_or_had_label:\n label_text: \"Stedelijk Museum Project Space\"\n gallery_type_classification: PROJECT_SPACE\n exhibition_type: PROJECT_SPACE\n focuses_on_contemporary: true\n ```", - "properties": { - "current_exhibition": { - "description": "Current or most recent exhibition at this space.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_area": { - "description": "Area measurement associated with an entity (site, building, room, etc.).\nGeneric slot for capturing spatial extent measurements. The range should be narrowed to Area class which includes value, unit, and temporal context.", - "items": { - "$ref": "#/$defs/Area" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_capacity": { - "description": "The storage or holding capacity of an entity.\nRULE 53 MIGRATION: This generic slot consolidates: - capacity_cubic_meters (volume capacity in m\u00b3) - capacity_linear_meters (shelf/storage length in linear meters) - capacity_item (item count capacity) - capacity_description (textual capacity description)\nUses Capacity class which wraps Quantity for structured measurements with units, temporal validity, and descriptions.\n**ONTOLOGY ALIGNMENT**: - schema:floorSize (close - physical space) - qudt:Quantity (related - measured values) - premis:StorageLocation (related - storage capacity)\n**EXAMPLES**:\nArchive depot:\n has_or_had_capacity:\n capacity_value: 8000\n has_or_had_measurement_unit:\n has_or_had_type: LINEAR_METER\n has_or_had_symbol: \"m\"\n capacity_type: SHELF_LENGTH\n\nMuseum storage:\n has_or_had_capacity:\n capacity_value: 2500\n has_or_had_measurement_unit:\n has_or_had_type: CUBIC_METER\n has_or_had_symbol: \"m\u00b3\"\n capacity_type: VOLUME\n\nArchive box capacity:\n has_or_had_capacity:\n capacity_value: 50000\n has_or_had_measurement_unit:\n has_or_had_type: ITEM\n has_or_had_symbol: \"boxes\"\n capacity_type: ITEM_COUNT", - "items": { - "$ref": "#/$defs/Capacity" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_fee": { - "items": { - "$ref": "#/$defs/AdmissionFee" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_schedule": { - "description": "Schedule associated with the entity (e.g., exhibition rotation, maintenance). MIGRATED from exhibition_schedule per Rule 53. Follows RiC-O naming convention.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string" - }, - { - "type": "string" - }, - { - "type": "string" - }, - { - "$ref": "#/$defs/ExhibitionSpaceTypeEnum" - } - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_accessible": { - "description": "Whether exhibition space is wheelchair/mobility accessible.\n", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "is_permanent": { - "description": "Whether this is a permanent exhibition space or temporary.\n\nTRUE: Ongoing/permanent venue\nFALSE: Temporary/pop-up venue\n", - "type": [ - "boolean", - "null" - ] - }, - "museum_type_classification": { - "$ref": "#/$defs/MuseumTypeEnum", - "description": "Optional museum type classification from MuseumTypeEnum.\n\nUse when exhibition space functions as museum-style venue.\nLinks to Wikidata-sourced museum types (187 types).\n\nExamples:\n- ART_MUSEUM (Q207694)\n- HISTORY_MUSEUM (Q17431399)\n- SCIENCE_MUSEUM (Q2087181)\n" - }, - "opening_hour": { - "description": "Operating hours for the physical gift shop.\n\nSchema.org: openingHours in Schema.org format.\n\nFormat: \"Mo-Fr 09:00-17:00, Sa 10:00-18:00, Su 11:00-17:00\"\n\nMay differ from museum hours (shop may close earlier).\n", - "type": [ - "string", - "null" - ] - }, - "partner_institution": { - "description": "Partner institution if exhibition space is in shared/partner venue.\n\nOnly relevant for PARTNER_VENUE exhibition type.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ExhibitionSpace", - "type": "object" - }, - "ExhibitionSpaceTypeEnum": { - "description": "Types of auxiliary exhibition spaces operated by heritage custodians.\n\nUsed by ExhibitionSpace class to classify secondary exhibition venues\nsuch as satellite galleries, partner venues, and project spaces.", - "enum": [ - "SATELLITE_GALLERY", - "EXHIBITION_PAVILION", - "PARTNER_VENUE", - "POP_UP_GALLERY", - "OUTDOOR_EXHIBITION", - "PROJECT_SPACE", - "STUDY_GALLERY" - ], - "title": "ExhibitionSpaceTypeEnum", - "type": "string" - }, - "ExhibitionTypeEnum": { - "description": "Categorizes exhibitions by their temporal nature and format.\n\n**Use Cases**:\n- Museums: Permanent collection displays, temporary exhibitions, traveling shows\n- Archives: Document exhibitions, historical displays\n- Libraries: Special collections exhibitions, author retrospectives\n- Galleries: Solo shows, group exhibitions, art fairs\n\n**Ontology Alignment**:\n- AAT: Uses Getty Art & Architecture Thesaurus concepts where available\n- Schema.org: Aligned with schema:ExhibitionEvent subtypes", - "enum": [ - "PERMANENT", - "TEMPORARY", - "TRAVELING", - "VIRTUAL", - "HYBRID", - "POP_UP", - "RETROSPECTIVE", - "SOLO", - "GROUP", - "LOAN", - "ARCHIVAL", - "COMMEMORATIVE", - "SITE_SPECIFIC", - "BLOCKBUSTER" - ], - "title": "ExhibitionTypeEnum", - "type": "string" - }, - "Expense": { - "additionalProperties": false, - "description": "Expense amount.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_quantity": { - "items": { - "$ref": "#/$defs/Quantity" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Expense", - "type": "object" - }, - "ExpenseTypeEnum": { - "description": "Types of expenses incurred by an organization.", - "enum": [ - "PERSONNEL", - "OPERATIONAL", - "MAINTENANCE", - "ACQUISITION", - "PROGRAMMING", - "MARKETING", - "FUNDRAISING", - "ADMINISTRATIVE", - "OTHER" - ], - "title": "ExpenseTypeEnum", - "type": "string" - }, - "Expenses": { - "additionalProperties": false, - "description": "Represents a categorized expense/expenditure for a heritage custodian. **FUNCTIONAL EXPENSE CLASSIFICATION (Nonprofit-Specific)**: Heritage custodians (predominantly nonprofits) must classify expenses by function: | Type | Description | Examples | |------|-------------|----------| | PROGRAM | Mission-related | Exhibitions, conservation, education | | ADMINISTRATIVE | Overhead | Executive, finance, HR, facilities | | FUNDRAISING | Donor relations | Events, grants, marketing | | INNOVATION | R&D | New programs, technology | **USAGE**: The `has_or_had_expenses` slot links entities to Expenses instances. Since 2026-01-22, uses `has_or_had_quantity` instead of separate amount/currency: ```yaml financial_statement:\n has_or_had_expenses:\n - expense_type: ADMINISTRATIVE\n has_or_had_quantity:\n quantity_value: 10000000.0\n quantity_type: BUDGET_AMOUNT\n has_or_had_measurement_unit:\n unit_symbol: EUR\n unit_type: CURRENCY\n description: \"Management and general expenses FY2023\"\n - expense_type: PROGRAM\n has_or_had_quantity:\n quantity_value: 62000000.0\n quantity_type: BUDGET_AMOUNT\n has_or_had_measurement_unit:\n unit_symbol: EUR\n unit_type: CURRENCY\n description: \"Program service expenses FY2023\"\n``` **ONTOLOGY ALIGNMENT**: - No standard ontology has a direct \"expense\" predicate - Uses FRAPO (Funding, Research Administration and Projects Ontology) patterns - Aligns with schema:MonetaryAmount for monetary values", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/ExpenseTypeEnum" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_type", - "has_or_had_quantity" - ], - "title": "Expenses", - "type": "object" - }, - "ExpertiseArea": { - "additionalProperties": false, - "description": "A domain of expertise.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "ExpertiseArea", - "type": "object" - }, - "Extension": { - "additionalProperties": false, - "description": "An extension of a loan or agreement.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "Extension", - "type": "object" - }, - "ExternalFunding": { - "additionalProperties": false, - "description": "Funding from external sources.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "ExternalFunding", - "type": "object" - }, - "ExternalResourceTypeEnum": { - "description": "Types of external resources linked from finding aids.", - "enum": [ - "database", - "organization", - "portal", - "archive", - "library", - "museum", - "website", - "api", - "reference", - "research_institute", - "aggregator" - ], - "title": "ExternalResourceTypeEnum", - "type": "string" - }, - "ExternalWork": { - "additionalProperties": false, - "description": "External work or services that an institution accepts or commissions.\n**EXAMPLES**: - Conservation work from external specialists - Digitization services - Research collaborations - Restoration projects\nUsed with `accepts_or_accepted` slot to indicate what types of external work an institution will accept or commission.", - "properties": { - "requirements": { - "description": "Requirements or qualifications for external work providers.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "work_type": { - "description": "Type of external work (e.g., \"conservation\", \"digitization\", \"restoration\").", - "type": "string" - } - }, - "required": [ - "work_type" - ], - "title": "ExternalWork", - "type": "object" - }, - "ExtractionMetadata": { - "additionalProperties": false, - "description": "Provenance metadata for data extraction activities.\n\nRecords how, when, and by what agent data was extracted from \nexternal sources (LinkedIn, web scraping, APIs).\n\n**PROV-O Alignment**:\n- ExtractionMetadata IS a prov:Activity (the extraction process)\n- The extracted data IS the prov:Entity (output of the activity)\n- is_or_was_retrieved_by IS the prov:Agent (software/AI that performed extraction)\n- has_or_had_source/has_or_had_url IS prov:used (input to the activity)\n\n**Use Cases**:\n- LinkedIn profile extractions via Exa API\n- Web scraping provenance\n- Staff list parsing provenance\n- Connection network extraction\n\n**Example JSON Structure**:\n```json\n{\n \"extraction_metadata\": {\n \"has_or_had_source\": \"/path/to/source.json\",\n \"has_or_had_identifier\": \"org_staff_0001_name\",\n \"retrieval_timestamp\": \"2025-12-12T22:00:00Z\",\n \"has_or_had_method\": \"exa_crawling_exa\",\n \"is_or_was_retrieved_by\": \"claude-opus-4.5\",\n \"has_or_had_url\": \"https://www.linkedin.com/in/...\",\n \"has_or_had_expense\": 0.001\n }\n}\n```", - "properties": { - "has_or_had_expense": { - "description": "Expense incurred.", - "items": { - "minimum": 0.0, - "type": "number" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "pattern": "^[a-z0-9-]+_staff_[a-z0-9-_]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_method": { - "description": "A method associated with an activity, process, or entity.\n\n**USAGE**:\nUsed for:\n- HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod\n- Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod\n- API interaction methods\n\n**BROADENED RANGE**:\nRange broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55.\n", - "items": { - "$ref": "#/$defs/ProfileExtractionMethodEnum" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_source": { - "description": "The source or origin from which something was derived, generated, or obtained. Follows RiC-O temporal naming convention (Rule 39) to indicate that sources may change over time.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "pattern": "^https://www\\.linkedin\\.com/in/[a-z0-9-]+/?$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_retrieved_by": { - "description": "Agent that performed the retrieval activity.", - "type": [ - "string", - "null" - ] - }, - "llm_response": { - "anyOf": [ - { - "$ref": "#/$defs/LLMResponse" - }, - { - "type": "null" - } - ], - "description": "Full LLM response provenance including reasoning_content.\n\nCaptures GLM 4.7 Thinking Modes (Interleaved, Preserved, Turn-level)\nfor extractions that use LLM processing.\n\n**PROV-O Alignment**:\n- The LLMResponse IS a sub-activity (prov:qualifiedGeneration)\n- Provides detailed audit trail of LLM inference for the extraction\n\n**Use Cases**:\n- LinkedIn profile extraction with GLM 4.7 reasoning\n- Web content extraction with chain-of-thought logging\n- Staff list processing with schema conformity validation\n\n**When to Include**:\n- extraction_method is exa_crawling_glm47\n- Any extraction involving LLM processing\n- When reasoning_content provides valuable audit trail\n" - }, - "retrieval_timestamp": { - "description": "Timestamp when this content data was retrieved from the platform.\n\nPROV-O: atTime for observation timestamp.\n\nCritical for understanding data freshness, especially for metrics.\n", - "format": "date-time", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "retrieval_timestamp", - "has_or_had_method" - ], - "title": "ExtractionMetadata", - "type": "object" - }, - "ExtractionMethod": { - "additionalProperties": false, - "description": "A method or technique used to extract data from a source.\n\nExtraction methods define HOW data was obtained, providing\ntransparency and reproducibility for claim provenance.\n\n**Common Extraction Methods**:\n- `xpath_exact_match`: XPath query with exact text match\n- `xpath_fuzzy_match`: XPath query with fuzzy text matching\n- `text_search`: Full-text search within document\n- `css_selector`: CSS selector for element location\n- `json_ld_parse`: Parsing structured JSON-LD data\n- `regex_pattern`: Regular expression pattern matching\n- `nlp_ner`: Named Entity Recognition via NLP\n- `manual_annotation`: Human annotator extraction\n\n**Ontology Mapping Rationale**:\n- class_uri is prov:SoftwareAgent because extraction methods\n are typically software-based agents that perform extraction\n- close_mappings includes nif:Context as NIF models text\n extraction contexts and methods\n\n**MIGRATION NOTE (2026-01-19)**:\nCreated per slot_fixes.yaml revision for claim_extraction_method\nslot migration (Rule 53/56).", - "properties": { - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ExtractionMethod", - "type": "object" - }, - "ExtractionPipelineStageEnum": { - "description": "The four stages of the entity extraction pipeline, following the\nGLAM-NER Unified Entity Annotation Convention v1.7.0.\n\nReference: docs/convention/schema/20251202/entity_annotation_rules_v1.6.0_unified.yaml", - "enum": [ - "entity_recognition", - "layout_analysis", - "entity_resolution", - "entity_linking" - ], - "title": "ExtractionPipelineStageEnum", - "type": "string" - }, - "FTIRSpectroscopy": { - "additionalProperties": false, - "description": "Fourier-transform infrared spectroscopy for molecular identification.\nIdentifies organic binders, coatings, and adhesives.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "FTIRSpectroscopy", - "type": "object" - }, - "FabricRecordsSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Building and fabric maintenance records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "CathedralArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by CathedralArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "FabricRecordsSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FabricRecordsSeries", - "type": "object" - }, - "Facebook": { - "additionalProperties": false, - "description": "Facebook profile or page.\n\n**URL patterns**:\n- https://www.facebook.com/{page_name}\n- https://www.facebook.com/profile.php?id={id}\n- https://fb.com/{page_name}\n\n**Features**:\n- Events, Groups, Marketplace, Stories, Reels\n- Business pages for institutions\n- Community building and engagement\n\n**Heritage use cases**:\n- Event announcements (exhibitions, lectures)\n- Community groups for specific topics\n- Long-form posts and photo albums", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "GENERAL_SOCIAL", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://www.facebook.com/{page_name}", - "https://www.facebook.com/profile.php?id={id}", - "https://fb.com/{page_name}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "Facebook", - "type": "object" - }, - "FacebookClaim": { - "additionalProperties": false, - "description": "Facebook page URL.", - "title": "FacebookClaim", - "type": "object" - }, - "FacilitiesFunction": { - "additionalProperties": false, - "description": "Facilities management function: building operations, space planning, maintenance coordination, vendor management.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "FacilitiesFunction", - "type": "object" - }, - "FacilitiesManager": { - "additionalProperties": false, - "description": "Facilities manager overseeing buildings, climate control, and security.\n\n**Official Title vs De Facto Work**:\nOften involved in sustainability initiatives, capital projects,\nand emergency planning beyond day-to-day facilities.\n\n**Common Variants**:\n- Building Manager\n- Operations Manager\n- Technical Manager\n- Facilities Director\n\n**Typical Domains**: All heritage institutions with physical facilities\n\n**Typical Responsibilities**:\n- Building maintenance and repairs\n- Climate control and environmental monitoring\n- Security systems\n- Space planning and renovations\n- Health and safety compliance", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "FacilitiesManager", - "type": "object" - }, - "Facility": { - "additionalProperties": false, - "description": "A facility or amenity at an institution.\n\n**USAGE**:\nUsed for:\n- Visitor facilities (caf\u00e9, shop, parking)\n- Research facilities (reading room, lab)\n- Accessibility facilities", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Facility", - "type": "object" - }, - "FacultyPaperCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for faculty papers and personal archives.\n\n**Definition**:\nPersonal papers of faculty members documenting their academic careers, research \nactivities, teaching, and professional service. These are typically acquired as \ndonations or bequests, distinct from official university records.\n\n**Typical Contents**:\n- Research documentation and notes\n- Correspondence (professional and personal)\n- Lecture notes and course materials\n- Manuscripts and drafts\n- Conference papers and presentations\n- Professional organization records\n- Photographs and audiovisual materials\n\n**Provenance**:\nUnlike administrative fonds, faculty papers are personal archives with the \nindividual faculty member as creator/accumulator. The university acquires \ncustody but respects original order where it exists.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the fonds organizational principle as defined by rico-rst:Fonds\n(personal papers fonds with the faculty member as creator/accumulator).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "description": "Structured scope definitions for AcademicArchiveRecordSetType. Formally documents what types of record sets are classified under this type. ", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the fonds principle. Personal archives with individual faculty member as creator/accumulator.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "FacultyPaperCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"official university records\", \"student records\", \"administrative files\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"research documentation\", \"correspondence\", \"lecture notes\", \"manuscripts\", \"conference papers\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FacultyPaperCollection", - "type": "object" - }, - "FacultyPapersCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Faculty personal papers.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "UniversityArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by UniversityArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "FacultyPapersCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FacultyPapersCollection", - "type": "object" - }, - "FairCondition": { - "additionalProperties": false, - "description": "Fair physical condition with moderate deterioration", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "FairCondition", - "type": "object" - }, - "FamilyPapersCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Family papers.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "HouseArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by HouseArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "FamilyPapersCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FamilyPapersCollection", - "type": "object" - }, - "FastFoodRestaurant": { - "additionalProperties": false, - "description": "Type of restaurant focused on quick service.\nHistoric fast food establishments may preserve early quick-service traditions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "FastFoodRestaurant", - "type": "object" - }, - "FastFoodRestaurantChain": { - "additionalProperties": false, - "description": "Type of restaurant chain focused on quick service.\nHistoric chains may document evolution of fast food culture.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "FastFoodRestaurantChain", - "type": "object" - }, - "FaviconUrlClaim": { - "additionalProperties": false, - "description": "Website favicon URL.\nExpected in: <link rel='icon'>, <link rel='shortcut icon'>.\nUsually: /favicon.ico, /favicon.png", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "FaviconUrlClaim", - "type": "object" - }, - "FeatureCustodianType": { - "additionalProperties": false, - "description": "Specialized custodian type for organizations managing physical heritage features\n(monuments, landmarks, memorials, historic sites, landscape features).\n\n1. **Structural Layer** (W3C Standards):\n - skos:Concept - Thesaurus classification\n - Classification within CustodianType hierarchy\n\n2. **Domain Layer** (Heritage Ontologies):\n - crm:E39_Actor - CIDOC-CRM actor managing cultural heritage\n - crm:E18_Physical_Thing - Entity responsible for physical objects\n - schema:TouristAttraction - Organizations managing visitor sites\n\n3. **Web Layer** (Schema.org):\n - schema:Organization - Generic organization type\n - schema:Place - For organizations closely tied to physical locations\n - schema:CivicStructure - For public heritage feature managers\n\n**Relationship to FeaturePlace**:\n- FeaturePlace: The physical heritage feature itself (monument, building, site)\n- FeatureCustodian: Organization managing/preserving that feature\n- Link via manages_feature slot (organization \u2192 physical feature)\n\n**Wikidata Coverage** (50+ feature management entities):\n\nCore Management Organizations:\n- Q2912172 (heritage trust) - Organizations preserving heritage sites\n- Q5633421 (site manager) - Entities operating historic sites\n- Q1301371 (monument fund) - Foundations maintaining monuments\n- Q7241077 (preservation society) - Groups preserving landmarks\n\nMonument Management:\n- Q4989906 (monument custodian) - Organizations managing monuments\n- Q5003624 (memorial management) - Entities maintaining memorials\n- Q860861 (sculpture conservator) - Organizations preserving sculptures\n\nLandmark Operations:\n- Q39715 (lighthouse authority) - Agencies managing lighthouses\n- Q12280 (bridge authority) - Organizations maintaining historic bridges\n- Q44539 (temple management) - Entities operating heritage temples\n\nSite Preservation:\n- Q839954 (archaeological site manager) - Organizations managing excavations\n- Q5686 (fortification conservator) - Entities preserving historic forts\n- Q23413 (castle management) - Organizations operating historic castles\n\nLandscape Conservancies:\n- Q22698 (park authority) - Agencies managing heritage parks\n- Q39614 (cemetery trust) - Organizations maintaining historic cemeteries\n- Q1107656 (garden conservancy) - Entities preserving historic gardens\n\nUNESCO World Heritage:\n- Q9259 (World Heritage Site managers) - Organizations managing UNESCO sites\n- International heritage site operations\n\nPublic Infrastructure Heritage:\n- Q474 (railway heritage operator) - Organizations preserving historic railways\n- Q44782 (port authority heritage) - Entities managing historic ports\n- Q11446 (ship preservation society) - Organizations maintaining historic vessels\n\nReligious Heritage Management:\n- Q16970 (parish church trust) - Organizations managing historic churches\n- Q44539 (temple conservation) - Entities preserving religious sites\n- Q32815 (mosque heritage committee) - Organizations maintaining historic mosques\n\n**Key Distinctions from Other Types**:\n\nvs. Museum:\n- FeatureCustodian: Manages OUTDOOR/IN-SITU heritage features (cannot be relocated)\n- Museum: Houses INDOOR/MOVABLE collections (can be relocated)\n- Example: Eiffel Tower management \u2260 Museum (Eiffel Tower cannot move to museum)\n\nvs. OfficialInstitution:\n- FeatureCustodian: Manages SPECIFIC physical features (single monument, site)\n- OfficialInstitution: Provides OVERSIGHT/POLICY for heritage sector\n- Example: National Park Service (policy) vs. Liberty Bell site manager (feature)\n\nvs. HeritageSociety:\n- FeatureCustodian: PROFESSIONAL management of physical features\n- HeritageSociety: VOLUNTEER-BASED membership organization\n- Example: English Heritage (1,500 staff) vs. local heritage society (volunteers)\n\nvs. NonProfit:\n- FeatureCustodian: Primary mission = FEATURE PRESERVATION/ACCESS\n- NonProfit: Primary mission = ADVOCACY/EDUCATION (not site management)\n- Example: Landmark trust (owns sites) vs. heritage advocacy group (lobbies)\n\nvs. BioCustodian:\n- FeatureCustodianType: NON-LIVING heritage features (monuments, buildings)\n- BioCustodianType: LIVING collections (plants, animals)\n- Example: Historic garden trust (landscape) vs. Botanical garden (living plants)\n\n**RDF Serialization Example**:\n\n```turtle\n@prefix hc: <https://nde.nl/ontology/hc/> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix schema: <http://schema.org/> .\n@prefix crm: <http://www.cidoc-crm.org/cidoc-crm/> .\n\nhc:FeatureCustodianType\n a skos:Concept, hc:CustodianType ;\n skos:prefLabel \"Feature Custodian Type\"@en,\n \"Monumentenbeheerder Type\"@nl,\n \"Denkmalpfleger Typ\"@de,\n \"Type de Gestionnaire de Monument\"@fr ;\n skos:definition \"Organizations managing physical heritage features\"@en ;\n skos:broader hc:CustodianType ;\n skos:narrower hc:MonumentManager,\n hc:LandmarkOperator,\n hc:SitePreservationTrust ;\n schema:url <https://nde.nl/ontology/hc/class/feature-custodian-type> .\n\n# Example: English Heritage (manages 400+ monuments in England)\n<https://w3id.org/heritage/custodian/gb/english-heritage>\n a schema:Organization, crm:E39_Actor, hc:FeatureCustodian ;\n hc:custodian_type hc:FeatureCustodianType ;\n hc:manages_or_managed \"Monument\", \"Castle\", \"Historic house\", \"Abbey\", \"Fort\" ;\n hc:site_portfolio \"400+ historic sites and monuments across England\" ;\n hc:visitor_services \"On-site interpretation\", \"Guided tours\", \"Events\", \"Gift shops\", \"Caf\u00e9s\" ;\n hc:conservation_activities \"Monument preservation\", \"Structural repairs\", \"Archaeological research\" ;\n hc:access_management \"Ticketing\", \"Opening hours\", \"Accessibility programs\", \"Education visits\" ;\n hc:is_or_was_managed_by \"Charitable trust ownership and management\" ;\n schema:foundingDate \"1983-04-01\" ;\n schema:legalName \"English Heritage Trust\" ;\n schema:url <https://www.english-heritage.org.uk/> ;\n hc:manages_feature <https://w3id.org/heritage/feature/gb/stonehenge>,\n <https://w3id.org/heritage/feature/gb/dover-castle> .\n```", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_activity": { - "description": "Activities associated with this entity (custodian, collection, person, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity may have been associated with activities that\nare now concluded.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P9_consists_of` - CIDOC-CRM predicate for\n compositional relationships between activities/events\n- **Close**: `prov:wasAssociatedWith` - PROV-O predicate linking entities\n to activities they participated in\n- **Related**: `rico:hasOrHadActivity` - RiC-O predicate for record-keeping\n activities\n- **Related**: `schema:potentialAction` - Schema.org for actions associated\n with an entity\n\n**Range**:\nValues are instances of `Activity` class or its subclasses:\n- CurationActivity - Collection management activities\n- ConservationActivity - Preservation and conservation\n- CommercialActivity - Commercial operations\n- ResearchActivity - Research and documentation\n- EducationalActivity - Educational programs\n- ExhibitionActivity - Exhibition-related activities\n\n**Use Cases**:\n- Link custodian to curation activities (inventories, digitization)\n- Link collection to conservation activities\n- Link person to research activities\n- Track activity history over time\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^(https://nde\\.nl/ontology/hc/type/[a-z-]+/[QP][0-9]+|Q[0-9]+)$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_service": { - "description": "A service offered by an entity.\n\n**USAGE**:\nUsed for:\n- Visitor services (guided tours, audio guides)\n- Research services\n- Conservation services\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "is_or_was_managed_by": { - "description": "Links an entity to the group or organization that manages it.\n\n**USAGE**:\nUsed for:\n- Warehouse management groups\n- Team assignments\n- Organizational responsibility\n", - "type": "string" - }, - "manages_or_managed": { - "description": "Manages a resource or collection.", - "items": { - "type": "string" - }, - "type": "array" - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "site_portfolio": { - "description": "Scope and scale of physical features under management.\n\nDescribes the extent of the custodian's responsibilities:\n- Number of sites/monuments managed\n- Geographic distribution (single site vs. regional/national network)\n- Type diversity (specialized vs. multi-type portfolio)\n- Management model (ownership vs. stewardship vs. advisory)\n\nHelps understand organizational capacity and scope.\n\nExamples:\n- \"Single monument (Eiffel Tower)\" - Focused management\n- \"400+ monuments across England\" - Large national network\n- \"12 historic windmills in Utrecht province\" - Regional cluster\n- \"UNESCO World Heritage Site complex (Angkor Wat)\" - Multi-feature site\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_activity", - "manages_or_managed", - "site_portfolio", - "is_or_was_managed_by", - "has_or_had_service", - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "FeatureCustodianType", - "type": "object" - }, - "FeatureFilmCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for theatrical feature films and fiction films.\n\n**Definition**:\nCollections of narrative/fiction films intended for theatrical release,\nincluding feature-length fiction films, short fiction films, and art films.\nOrganized as assembled collections by various criteria (country, period, \ngenre, studio).\n\n**Typical Contents**:\n- Feature-length narrative films (speelfilms)\n- Short fiction films\n- Art films and experimental cinema\n- Silent films\n- Foreign films with subtitles/dubbing\n- Different versions (theatrical, director's cut, censored)\n- Multiple format copies (35mm, 16mm, digital)\n\n**Organization Patterns**:\n- By country/national cinema\n- By period/decade\n- By genre (drama, comedy, thriller)\n- By studio/production company\n- By filmmaker (director, cinematographer)\n\n**Preservation Priorities**:\nFilm archives prioritize unique or rare prints, original negatives,\nand films at risk of decay or format obsolescence.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the collection organizational principle as defined by rico-rst:Collection\n(assembled collections organized by theme, period, or origin).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "preservation_note": { - "const": "Priority given to unique prints, original negatives, and at-risk materials. Multiple format copies (35mm, 16mm, digital) may be retained for preservation and access purposes.", - "description": "Notes about preservation requirements or considerations.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the collection principle as defined by rico-rst:Collection. Assembled collections organized by country, period, genre, studio, or filmmaker.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "FeatureFilmCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"documentaries\", \"newsreels\", \"production records\", \"promotional materials\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"feature films\", \"short fiction\", \"art films\", \"silent films\", \"foreign films\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "FeatureFilmCollection", - "type": "object" - }, - "FeaturePlace": { - "additionalProperties": false, - "description": "Physical feature type classification for nominal place references.\n\nCRITICAL: This is NOT a separate place - it CLASSIFIES the CustodianPlace.\n\n**Relationship to CustodianPlace**:\n\nCustodianPlace provides a NOMINAL REFERENCE to where a custodian is located:\n- \"Rijksmuseum\" (building name as place reference)\n- \"het herenhuis in de Schilderswijk\" (mansion in a neighborhood)\n- \"de kerk op het Damrak\" (church on a street)\n\nFeaturePlace provides the FEATURE TYPE of that same place:\n- \"Rijksmuseum\" \u2192 FeaturePlace: MUSEUM (building type)\n- \"het herenhuis\" \u2192 FeaturePlace: MANSION (building type)\n- \"de kerk\" \u2192 FeaturePlace: PARISH_CHURCH (building type)\n\n**Key Distinction**:\n\n| CustodianPlace | FeaturePlace |\n|----------------|--------------|\n| WHERE (nominal reference) | WHAT TYPE (classification) |\n| \"Rijksmuseum\" as place name | MUSEUM building type |\n| \"het herenhuis in Schilderswijk\" | MANSION building type |\n| Emic reference | Typological classification |\n| crm:E53_Place | crm:E27_Site |\n\n**Example Integration**:\n```yaml\nCustodianPlace:\n place_name: \"Rijksmuseum\"\n place_language: \"nl\"\n place_specificity: BUILDING\n has_feature_type: # \u2190 Link to FeaturePlace\n feature_type: MUSEUM\n feature_name: \"Rijksmuseum building\"\n feature_description: \"Monumental museum building designed by P.J.H. Cuypers (1885)\"\n```\n\n**Use Cases**:\n- Classify building types (mansion, church, castle, palace)\n- Identify monument types (memorial, sculpture, statue)\n- Categorize landscape features (park, cemetery, garden)\n- Specify infrastructure types (bridge, canal, fortification)\n\n**Institution Type**: Corresponds to 'F' (FEATURES) in GLAMORCUBESFIXPHDNT taxonomy\n\n**Generated by ReconstructionActivity**:\nFeaturePlace is generated when physical feature types are identified for\nnominal place references (e.g., classifying \"the building\" as a MANSION).", - "properties": { - "classifies_or_classified": { - "$ref": "#/$defs/CustodianPlace", - "description": "Indicates that an entity provides a classification or typing for another entity.\n**Temporal Semantics**: Uses RiC-O-style \"classifies_or_classified\" to express that the classification relationship may be current or historical - entities may be reclassified over time.\n**Common Use Cases**: - FeaturePlace classifies CustodianPlace (building type classification) - TypeSpecimen classifies Taxon (nomenclatural classification) - HeritageDesignation classifies HeritageSite (protection status)\n**CIDOC-CRM Alignment**: Maps to crm:P2_has_type / crm:P2i_is_type_of pattern where one entity provides typological information about another.\n**Example**: ```yaml FeaturePlace:\n feature_type: MUSEUM\n classifies_or_classified:\n id: https://nde.nl/ontology/hc/place/rijksmuseum-location\n place_name: \"Rijksmuseum\"\n```" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": "array" - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "classifies_or_classified", - "is_or_was_derived_from" - ], - "title": "FeaturePlace", - "type": "object" - }, - "FeatureTypeEnum": { - "description": "Types of physical landscape features with heritage significance.\nThese represent physical places, structures, or features that have heritage value: - Monuments and memorials - Historic buildings (mansions, churches, castles) - Landscape features (parks, gardens, cemeteries) - Heritage sites and protected areas - Archaeological sites\nEach feature type is mapped to formal ontology classes from: - CIDOC-CRM (cultural heritage standard) - DBpedia (linked data) - Schema.org (web semantics)\nThis corresponds to Institution Type 'F' (FEATURES) in the GLAMORCUBESFIXPHDNT taxonomy.\nSource: Wikidata hyponyms of heritage-related place types Total: 298 feature types", - "enum": [ - "MANSION", - "VACATION_PROPERTY", - "BUITENPLAATS", - "URBAN_SETTLEMENT", - "TOWN", - "PARISH_CHURCH", - "SEWERAGE_PUMPING_STATION", - "ARTIFICIAL_OBJECT", - "PHYSICAL_OBJECT", - "ARTIFICIAL_PHYSICAL_OBJECT", - "PHYSICAL_STRUCTURE", - "ARTIFICIAL_PHYSICAL_STRUCTURE", - "INFRASTRUCTURE", - "TRANSPORT_INFRASTRUCTURE", - "CIVIL_ENGINEERING_CONSTRUCTION", - "HYDRAULIC_STRUCTURE", - "PUMPING_STATION", - "STEAMDRIVEN_PUMPING_STATION", - "OFFICE_BUILDING", - "ADMINISTRATIVE_BUILDING", - "BUILDING_OF_PUBLIC_ADMINISTRATION", - "RESIDENTIAL_BUILDING", - "CLERGY_HOUSE", - "SECULAR_BUILDING", - "RELIGIOUS_COMPLEX", - "MONASTERY", - "RAIL_NETWORK", - "RAIL_INFRASTRUCTURE", - "THOROUGHFARE", - "RAILWAY_LINE", - "SACRED_SHRINE_BALI", - "MEOTO_IWA", - "ABBOT", - "SOLOSMASTHANA", - "SACRED_GROVE", - "SIGNIFICANT_PLACE", - "LOCATION_OF_WORSHIP", - "SACRED_MOUNTAIN", - "LUAKINI", - "ANCIENT_GREEK_TEMPLE", - "CALVARY", - "HUMAN_GEOGRAPHIC_TERRITORIAL_ENTITY", - "LOCATION_OF_DISCOVERY", - "ARCHAEOLOGICAL_SITE", - "ANCIENT_GREEK_ARCHAEOLOGICAL_SITE", - "HIERON", - "PLOUTONION", - "V\u00c9", - "UTAKI", - "MENOKO", - "V\u00c4KRA_HIIS", - "SHALGRAM", - "SOVIJ", - "ALKA", - "FIXED_CONSTRUCTION", - "MARAE", - "REIJ\u014c", - "SACRED_NATURAL_SITE", - "HIIS", - "K\u00dcLLIYE", - "HISTORIC_GEOGRAPHICAL_OBJECT", - "HISTORIC_BUILDING", - "SHIKINAI_SHOSHA", - "S\u014cJA", - "GOKOKU_SHRINE", - "SUFI_LODGE", - "UNRANKED_JAPANESE_SHRINE", - "CHOKUSAISHA", - "CONGREGATIONAL_MOSQUE", - "INARI_SHRINE", - "MOSQUE", - "TENMANG\u016a_WORSHIP", - "TOMB_SPACE", - "GRAVE", - "QUBBA", - "NATIONAL_SHRINE", - "SETSUMATSUSHA", - "TREE_SHRINE", - "CI_SHRINE", - "ANCESTRAL_SHRINE", - "CHAPEL_SHRINE", - "SHIKINAI_SUBSHRINE", - "SHIKINAI_SUPERSHRINE", - "SHRINE_RECEIVING_TSUKINAMI_SAI_AND_NIINAME_SAI_AND_AINAME_SAI_OFFERINGS", - "KAMO_SHRINE_WORSHIP", - "LANDMARK", - "ARCHITECTURAL_LANDMARK", - "CULTURAL_PROPERTY", - "TOMB", - "IMAMZADEH", - "VENUE", - "TEMPLE", - "CHURCH_BUILDING", - "CHAPEL", - "HERMITAGE_CHURCH", - "MUNAKATA_SHRINE", - "ENGISHIKI_SEAT", - "ENGISHIKI_SUBSHRINE", - "BEKKAKU_KANPEISHA", - "KANPEI_SH\u014cSHA", - "KANPEI_CH\u016aSHA", - "KANPEI_TAISHA", - "KOKUHEI_SH\u014cSHA", - "KOKUHEI_CH\u016aSHA", - "KOKUHEI_TAISHA", - "KOKUHEI_SHA", - "KANPEI_SHA", - "KANPEI_SHA_ENGISHIKI_JINMYOCHO", - "KOKUHEI_SHA_ENGISHIKI_JINMYOCHO", - "SHIKINAI_TAISHA", - "TAISHA", - "MY\u014cJIN_TAISHA", - "SHIKINAISHA", - "BEPPYO_SHRINE", - "REGIONAL_ICHINOMIYA", - "ROKU_NO_MIYA", - "GO_NO_MIYA", - "SHI_NO_MIYA", - "SAN_NO_MIYA", - "NI_NO_MIYA", - "X_NO_MIYA", - "ICHINOMIYA", - "ITSUKUSHIMA_SHRINE", - "PILGRIMAGE_CHURCH", - "PILGRIMAGE_SITE", - "CATHOLIC_PILGRIMAGE_CHURCH", - "CATHOLIC_CHURCH_BUILDING", - "SANCTUARY", - "SMALL_MONUMENT", - "WAYSIDE_SHRINE", - "COLUMN_SHRINE", - "STRUCTURE_OF_WORSHIP", - "SACRED_PLACE", - "DARGAH", - "TOMBSTONE", - "RELIGIOUS_SITE", - "RELIGIOUS_BUILDING", - "SHRINE", - "PUBLIC_BUILDING", - "FUNERAL_BUILDING", - "SEPULCHRAL_MONUMENT", - "FUNERARY_STRUCTURE", - "MAUSOLEUM", - "MAZAR", - "KRAMAT", - "ESTATE", - "SCULPTURE", - "BUILDING_COMPLEX", - "MEMORIAL_COMPLEX", - "LOCATION_OF_AN_EVENT", - "LOCATION_OF_BURIAL", - "CEMETERY", - "WAR_CEMETERY", - "MEMORIAL_CEMETERY", - "GROUP_OF_STRUCTURES_OR_BUILDINGS", - "CONSTRUCTION_SITE", - "FACTORY", - "WATERCRAFT_MAINTENANCE_FACILITY", - "INDUSTRIAL_ZONE", - "SHIPYARD", - "CAUTIONARY_MEMORIAL", - "AGRICULTURAL_STRUCTURE", - "DWELLING", - "RESIDENTIAL_PROPERTY", - "BUILDING", - "HOUSE", - "COTTAGE", - "RECREATIONAL_SHELTER", - "HUT", - "WILDERNESS_HUT", - "FOLLY", - "COUNTRY_HOUSE", - "MAISON_DE_PLAISANCE", - "HUNTING_LODGE", - "FARM", - "FENCE", - "MANOR_HOUSE", - "CH\u00c2TEAU", - "ARCHITECTURAL_STRUCTURE", - "POLICE_STATION", - "STORAGE_ROOM", - "STORAGE", - "STORAGE_OF_CULTURAL_HERITAGE_OBJECTS", - "HERITAGE_RAILWAY", - "MILL_BUILDING", - "STELLINGMILL", - "WINDMILL", - "FARMHOUSE", - "CLOSED_SPACE", - "OPEN_SPACE", - "PUBLIC_SPACE", - "SOCIAL_SPACE", - "PHYSICAL_SOCIAL_SPACE", - "PHYSICAL_PUBLIC_SPACE", - "URBAN_GREEN_SPACE", - "NATURAL_GEOGRAPHIC_OBJECT", - "GEOGRAPHICAL_FEATURE", - "ARTIFICIAL_GEOGRAPHIC_ENTITY", - "ARTIFICIAL_GEOGRAPHIC_OBJECT", - "COURTHOUSE", - "ARCHITECTURAL_ENSEMBLE", - "EXTERMINATION_CAMP", - "NAZI_CONCENTRATION_CAMP", - "PALACE", - "MONUMENTAL_SCULPTURE", - "COLOSSAL_STATUE", - "STATUE", - "MONUMENT", - "MEMORY_SPACE", - "MEMORIAL", - "WAR_MEMORIAL", - "MUSEUMED_CHURCH", - "HERITAGE_FARM", - "WRITER'S_HOME", - "ARTIST'S_HOME", - "ECOTOURISM_VISITOR_CENTER", - "NATIONAL_PARK_SERVICE_VISITOR_CENTER", - "VISITOR_CENTER", - "ETHNIC_THEME_PARK", - "NATIONAL_PARK_CENTRE", - "TOURIST_INFORMATION_POINT", - "TRAIN_STATION_MUSEUM", - "TRAVELING_CARNIVAL", - "SHOW_MINE", - "RAILWAY_PARK", - "STUDIO_HOUSE", - "ARTIST'S_HOUSE", - "ARCHAEOLOGICAL_PARK", - "FUDOKI_NO_OKA", - "CITY_OF_PITTSBURGH_HISTORIC_DESIGNATION", - "HISTORICAL_MONUMENT_IVORY_COAST", - "URBAN_MONUMENT_ZONE", - "STATE_HISTORIC_SITE_IN_THE_UNITED_STATES", - "PROTECTED_FEATURE", - "NATURAL_HERITAGE_OF_NAMIBIA", - "NATIONAL_TREASURE_OF_FRANCE", - "NATIONAL_TREASURE", - "MIXED_HERITAGE_SITE", - "HISTORIC_GROUPING", - "HERITAGE_SITE_IN_THE_UNITED_STATES", - "HERITAGE_DISTRICT_IN_THE_NETHERLANDS", - "BELEMNITES_GRAVEYARD", - "AREA_OF_NATIONAL_INTEREST_FOR_CULTURAL_HERITAGE", - "WORLD_HERITAGE_IN_DANGER", - "WORLD_HERITAGE_TENTATIVE_LIST_ENTRY", - "WORLD_HERITAGE_SITES_IN_UGANDA", - "WORLD_HERITAGE_SITE_NATURAL_OR_MIXED", - "WORLD_HERITAGE_MIXED_SITE", - "VILLAGE_HERITAGE_SITE", - "UNESCO_WORLD_CULTURAL_HERITAGE_SITE", - "UNESCO_BUILDING_SITE_IN_CHINA", - "TREE_MONUMENT", - "SCENIC_DISTRICTS", - "PROTECTED_TOWNS_AND_VILLAGES_IN_LIMBURG", - "NEW_MEXICO_HISTORIC_SITE", - "NATIONAL_MONUMENT_OF_THE_UNITED_STATES", - "NATIONAL_BATTLEFIELD_PARK", - "NATIONAL_MILITARY_PARK", - "BATTLEFIELD", - "NATIONAL_BATTLEFIELD", - "FLORIDA_UNDERWATER_ARCHAEOLOGICAL_PRESERVE", - "LIST_OF_CITY_OF_PITTSBURGH_HISTORIC_DESIGNATIONS", - "VILLAGE_CONSERVATION_ZONE_VPZ", - "SIGNIFICANT_LANDSCAPE_ELEMENT_IN_THE_CZECH_REPUBLIC", - "SIGNIFICANT_LANDSCAPE_ELEMENT", - "Q131986995", - "MEETING_PLACE_AT_CHURCH", - "LABYRINTH_CITY", - "COMMEMORATIVE_PLAQUE", - "BLUE_PLAQUE", - "BLUE_PLAQUES_IN_NORWAY", - "Q111694442", - "MEDIEVAL_CHURCH_IN_NORWAY", - "AQUEDUCT", - "Q110444043", - "METAL_OBELISK_TOMBSTONE", - "TOMBSTONE_WITH_SCULPTURE", - "METAL_CHAPEL", - "OBELISK_TOMBSTONE", - "METAL_TOMBSTONE", - "CAST_IRON_FENCE", - "WROUGHT_IRON_FENCE", - "LIME_KILN", - "DAULEKAN_CEMETERY", - "CHAMBER_GRAVE", - "NATURAL_MONUMENT_IN_GERMANY", - "NATURAL_MONUMENT_IN_TYROL_STATE", - "WORLD_HERITAGE_SITE", - "TENTATIVE_WORLD_HERITAGE_SITE", - "IUGS_HERITAGE_STONE", - "NATIONAL_MEMORIAL_OF_THE_UNITED_STATES", - "PART_OF_UNESCO_WORLD_HERITAGE_SITE", - "PRESIDENTIAL_MEMORIAL_IN_THE_UNITED_STATES", - "CULTURAL_HERITAGE_OF_PERU" - ], - "title": "FeatureTypeEnum", - "type": "string" - }, - "FeaturedCard": { - "additionalProperties": false, - "description": "A featured content card (often with image/icon). Common on archive websites to highlight important sub-guides or resources.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_image": { - "description": "Links to an Image representing visual content.\n**USE CASES**: - Card thumbnail images - Collection preview images - Institutional logos - Digital object representations\n**ONTOLOGY ALIGNMENT**: - slot_uri: schema:image (primary) - Also maps to foaf:depiction\nMIGRATED 2026-01-22: Created per slot_fixes.yaml revision for card_image_url.", - "items": { - "$ref": "#/$defs/Image" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_provenance_path": { - "items": { - "$ref": "#/$defs/XPath" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "FeaturedCard", - "type": "object" - }, - "FeaturedObject": { - "additionalProperties": false, - "description": "Featured object.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "FeaturedObject", - "type": "object" - }, - "Fee": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "has_or_had_quantity" - ], - "title": "Fee", - "type": "object" - }, - "FeministPapersCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Feminist movement papers.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "WomensArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by WomensArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "FeministPapersCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FeministPapersCollection", - "type": "object" - }, - "FieldRecordingSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Field research audio.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "AnimalSoundArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by AnimalSoundArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "FieldRecordingSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FieldRecordingSeries", - "type": "object" - }, - "File": { - "additionalProperties": false, - "description": "An organized unit of documents grouped together for current use or archival arrangement.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "File", - "type": "object" - }, - "FileAPI": { - "additionalProperties": false, - "description": "File/asset retrieval API for downloading digital content.\n\n**Purpose:**\n\nModels endpoints that provide direct access to digital files\n(images, documents, audio, video, 3D models) stored in heritage repositories.\n\n**Distinction from Image Servers:**\n\n- **FileAPI**: Downloads original or derivative files as-is\n- **IIPImageServer**: Dynamic image delivery with zooming, tiling, region extraction\n\nUse FileAPI when you need:\n- Original/master files\n- Fixed-resolution derivatives\n- Non-image files (PDFs, audio, video, office documents)\n\n**Example - Nationaal Archief File API:**\n\n```yaml\nfile_api:\n endpoint_name: \"Nationaal Archief File API\"\n base_url: \"https://service.archief.nl/gaf/api/file/v1/\"\n url_pattern: \"{base_url}{uuid}/{level}/{format}\"\n version: \"v1\"\n supported_levels:\n - MASTER\n - HIGH\n - MEDIUM\n - LOW\n - THUMBNAIL\n has_or_had_format: # was: supported_format - migrated 2026-01-16\n - image/jpeg\n - image/png\n - application/pdf\n max_file_size_mb: 500\n supports_range_requests: true\n example_url: \"https://service.archief.nl/gaf/api/file/v1/12345678.../high/jpeg\"\n```\n\n**Use Cases:**\n\n1. **Download master files**: Archival-quality preservation copies\n2. **Generate derivatives**: Request specific size/format\n3. **Batch harvesting**: Download all files for a record\n4. **Streaming**: Audio/video delivery\n\n**See Also:**\n\n- Content-Disposition header for filename hints\n- HTTP Range requests (RFC 7233) for partial downloads", - "properties": { - "authentication_method": { - "$ref": "#/$defs/AuthenticationMethodEnum", - "description": "Authentication method required (if is_or_was_required is true).\n\nValues from AuthenticationMethodEnum:\n- NONE: No authentication\n- API_KEY: API key in header or query parameter\n- OAUTH2: OAuth 2.0\n- BASIC: HTTP Basic Authentication\n- IP_WHITELIST: IP address whitelist\n- INSTITUTIONAL: Institutional login (Shibboleth, etc.)\n" - }, - "base_url": { - "description": "Base URL for file retrieval.\n\nIndividual files are accessed by appending identifiers.\n\nExample: \"https://service.archief.nl/gaf/api/file/v1/\"\n", - "type": "string" - }, - "batch_download_format": { - "description": "Format for batch downloads.\n\nExample: \"application/zip\"\n", - "type": [ - "string", - "null" - ] - }, - "content_disposition": { - "description": "Content-Disposition header behavior.\n\nValues:\n- INLINE: Browser displays content\n- ATTACHMENT: Browser downloads file\n- CONFIGURABLE: Client can request either\n", - "type": [ - "string", - "null" - ] - }, - "cors_enabled": { - "description": "Whether CORS (Cross-Origin Resource Sharing) is enabled.\n\nImportant for browser-based JavaScript applications:\n- true: Cross-origin requests allowed\n- false: Same-origin only\n- null: Unknown\n", - "type": [ - "boolean", - "null" - ] - }, - "discovery_provenance": { - "description": "Provenance information about how this endpoint was discovered.\n\nShould include:\n- Discovery date\n- Discovery method (documentation, web scrape, API testing)\n- Verification status\n\nFree-text or structured provenance note.\n", - "type": [ - "string", - "null" - ] - }, - "documentation_url": { - "description": "URL to human-readable documentation.\n\nThis is separate from endpoint_description_url which is machine-readable.\n\nExamples:\n- \"https://pro.europeana.eu/resources/apis/record\"\n- \"https://www.nationaalarchief.nl/onderzoeken/handleiding/api\"\n", - "type": [ - "string", - "null" - ] - }, - "endpoint_description_url": { - "description": "URL to machine-readable API documentation.\n\nDCAT: dcat:endpointDescription - \"A description of the service end-point\"\n\nMay be:\n- OpenAPI/Swagger specification (JSON/YAML)\n- OAI-PMH Identify response\n- WSDL document\n- Human-readable documentation page\n\nExamples:\n- \"https://api.example.org/openapi.json\"\n- \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh?verb=Identify\"\n", - "type": [ - "string", - "null" - ] - }, - "endpoint_id": { - "description": "Unique identifier for this data service endpoint.\n\nRecommended format: URI combining platform ID and service type.\n\nExample: \"https://nde.nl/ontology/hc/endpoint/nationaalarchief-oai-pmh\"\n", - "type": "string" - }, - "endpoint_name": { - "description": "Human-readable name for this endpoint.\nExamples: - \"Nationaal Archief OAI-PMH Endpoint\" - \"Heritage Search API\" - \"Image Server (IIP)\"", - "type": "string" - }, - "endpoint_type": { - "description": "Classification of this endpoint from the DataServiceEndpointType taxonomy.\n\n**Instance vs Type Architecture:**\n\nThis slot links an INSTANCE (DataServiceEndpoint) to its TYPE classification\n(DataServiceEndpointType), following the same architectural pattern as\nCustodian/CustodianType.\n\n```\nDataServiceEndpoint (INSTANCE) DataServiceEndpointType (TYPE)\n\u251c\u2500\u2500 endpoint_url \u251c\u2500\u2500 protocol_name\n\u251c\u2500\u2500 status \u251c\u2500\u2500 protocol_version\n\u251c\u2500\u2500 is_or_was_required \u251c\u2500\u2500 specification_url\n\u2514\u2500\u2500 endpoint_type \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba\u2514\u2500\u2500 has_or_had_format\n```\n\n**Why Both `protocol` and `endpoint_type`?**\n\n- `protocol` (enum): Simple string classification for quick filtering\n- `endpoint_type` (class reference): Rich type metadata with SKOS hierarchy,\n specification URLs, and semantic relationships\n\n**Example:**\n\n```yaml\ndata_service_endpoint:\n endpoint_id: \"https://nde.nl/hc/endpoint/na-oai-pmh\"\n endpoint_url: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh\"\n protocol: OAI_PMH # Simple enum (DataServiceProtocolEnum)\n endpoint_type: OAIPMHEndpointType # Rich type (DataServiceEndpointType subclass)\n```\n\nThis pattern mirrors:\n- `custodian_type` enum + `CustodianType` class on `Custodian`\n- `platform_type` enum + `DigitalPlatformType` class on `DigitalPlatform`\n", - "type": [ - "string", - "null" - ] - }, - "example_url": { - "description": "Example URL for file download.\n\nExample: \"https://service.archief.nl/gaf/api/file/v1/12345678.../high/jpeg\"\n", - "type": [ - "string", - "null" - ] - }, - "filename_in_url": { - "description": "Whether original filename is included in URL.\n\nSome APIs include filename for better download naming:\n/api/file/v1/uuid/original.tif\n", - "type": [ - "boolean", - "null" - ] - }, - "has_or_had_access_restriction": { - "description": "Access restrictions on file downloads.\n\nExamples:\n- \"Public access to all levels\"\n- \"Master files require authentication\"\n- \"Some collections IP-restricted\"\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_format": { - "description": "File formats (MIME types) available for download.\n\nMay vary by content type and level.\n\nExample:\n- Images: [\"image/jpeg\", \"image/png\", \"image/tiff\"]\n- Documents: [\"application/pdf\", \"application/xml\"]\n- Audio: [\"audio/mpeg\", \"audio/wav\"]\n- Video: [\"video/mp4\", \"video/webm\"]\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_url": { - "description": "Base URL of the service endpoint. DCAT: dcat:endpointURL - \"The root location or primary endpoint of the service\" MIGRATED 2026-01-26: Replaces endpoint_url slot.", - "type": "string" - }, - "identifier_type": { - "description": "Type of identifier used to request files.\n\nValues: UUID, HANDLE, DOI, ARK, LOCAL_ID, FILENAME\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_required": { - "description": "Whether something is or was required (boolean).\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **Schema.org** | `schema:isRequired` | Maps to - boolean requirement |\n\nNote: slot_uri changed from schema:isRequired to hc:isOrWasRequired\nto resolve OWL ambiguous type warning. schema:isRequired may be\nambiguous when used in different contexts.\n\n**USAGE NOTE**:\n\nThis is a simple boolean slot. For structured requirement information\nwith types and temporal validity, use has_or_had_status with RequirementStatus.\n\n**MIGRATION NOTE**:\n\nReplaces domain-specific boolean slots like:\n- booking_required \u2192 is_or_was_required\n- appointment_required \u2192 is_or_was_required\n- registration_required \u2192 is_or_was_required\n", - "type": [ - "boolean", - "null" - ] - }, - "last_verified": { - "description": "Date when this endpoint was last verified to be operational.\n\nISO 8601 date format.\n\nExample: \"2025-12-14\"\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "max_file_size_mb": { - "description": "Maximum file size available for download (in MB).\n\nLarger files may require special access or batch delivery.\n\nExample: 500\n", - "type": [ - "integer", - "null" - ] - }, - "rate_limit": { - "description": "Rate limit description if applicable.\n\nFree-text description of rate limiting policy.\n\nExamples:\n- \"100 requests per minute\"\n- \"1000 requests per day per API key\"\n- \"No limit\"\n- \"Unknown\"\n", - "type": [ - "string", - "null" - ] - }, - "response_format": { - "description": "MIME types of response formats supported by this endpoint.\n\nExamples:\n- [\"application/json\"]\n- [\"application/xml\", \"text/xml\"]\n- [\"image/jpeg\", \"image/png\", \"image/tiff\"]\n- [\"application/ld+json\", \"text/turtle\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "serves_dataset": { - "description": "Dataset(s) that this service provides access to.\n\nDCAT: dcat:servesDataset - \"A collection of data that this data service can distribute\"\n\nReferences to DCAT Dataset identifiers or descriptions.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "status": { - "$ref": "#/$defs/EndpointStatusEnum", - "description": "Operational status of the endpoint.\n\nValues from EndpointStatusEnum:\n- ACTIVE: Endpoint is operational\n- DEPRECATED: Endpoint works but will be removed\n- BETA: Endpoint in testing/beta\n- OFFLINE: Endpoint currently unavailable\n- UNKNOWN: Status not verified\n" - }, - "supported_levels": { - "description": "Quality/resolution levels available.\n\nCommon levels:\n- MASTER/ORIGINAL: Archival master file\n- HIGH: High-resolution derivative\n- MEDIUM: Medium resolution (web-suitable)\n- LOW: Low resolution (fast loading)\n- THUMBNAIL: Small preview image\n\nExample: [\"MASTER\", \"HIGH\", \"MEDIUM\", \"LOW\", \"THUMBNAIL\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "supports_batch_download": { - "description": "Whether batch/bulk download is supported.\n\nMay provide ZIP archives or async batch jobs.\n", - "type": [ - "boolean", - "null" - ] - }, - "supports_range_requests": { - "description": "Whether HTTP Range requests are supported (RFC 7233).\n\nEnables:\n- Resumable downloads\n- Partial content retrieval\n- Streaming\n\nCheck for Accept-Ranges: bytes header.\n", - "type": [ - "boolean", - "null" - ] - }, - "supports_streaming": { - "description": "Whether the API supports media streaming.\n\nRelevant for audio/video content.\nEnables progressive playback without full download.\n", - "type": [ - "boolean", - "null" - ] - }, - "thumbnail_dimensions": { - "description": "Dimensions of thumbnail images (if thumbnail level available).\n\nFormat: \"WIDTHxHEIGHT\"\n\nExample: \"150x150\"\n", - "type": [ - "string", - "null" - ] - }, - "typical_file_size_mb": { - "description": "Typical file size for most downloads (in MB).\n\nHelps clients estimate download times.\n\nExample: 10\n", - "type": [ - "integer", - "null" - ] - }, - "url_pattern": { - "description": "URL pattern for constructing file requests.\n\nUse {placeholders} for dynamic parts:\n- {uuid}: File identifier\n- {level}: Quality level (master, high, low, thumbnail)\n- {format}: File format (jpeg, png, pdf)\n\nExample: \"{base_url}{uuid}/{level}/{format}\"\n", - "type": [ - "string", - "null" - ] - }, - "version": { - "description": "Version of the API or service.\n\nExamples:\n- \"v2\"\n- \"1.0.0\"\n- \"2023-01\"\n", - "type": [ - "string", - "null" - ] - }, - "watermark_applied": { - "description": "Whether watermarks are applied to downloaded files.\n\nMay vary by access level or file type.\n", - "type": [ - "boolean", - "null" - ] - } - }, - "required": [ - "base_url", - "has_or_had_format", - "has_or_had_url", - "endpoint_id", - "endpoint_name" - ], - "title": "FileAPI", - "type": "object" - }, - "FileLocation": { - "additionalProperties": false, - "description": "A file location.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "FileLocation", - "type": "object" - }, - "FilePath": { - "additionalProperties": false, - "description": "Path to a file.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "FilePath", - "type": "object" - }, - "FilmArchive": { - "additionalProperties": false, - "description": "Archive that safeguards film heritage. Film archives collect, preserve, restore, and provide access to motion pictures, including feature films, documentaries, newsreels, and other moving image materials. They often also maintain related materials such as scripts, production documents, posters, and equipment. Film archives play a crucial role in preserving cultural heritage in moving image form.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FilmArchive", - "type": "object" - }, - "FilmContent": { - "additionalProperties": false, - "description": "Motion picture films.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "FILM", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Film Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "FilmContent", - "type": "object" - }, - "FilmPromoCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for film promotional and publicity materials.\n\n**Definition**:\nMaterials created to promote and publicize films, including posters, \nphotographs, press kits, and trailers. Often organized as assembled \ncollections by film title or distributor.\n\n**Typical Contents**:\n- Film posters (affiches, filmposters)\n- Production stills and publicity photographs\n- Lobby cards\n- Press kits and press books\n- Trailers and teasers\n- Programs and brochures\n- Press clippings\n- Advertising materials\n- Star portraits\n- Promotional merchandise\n\n**Visual Heritage Value**:\nFilm promotional materials are significant for:\n- Graphic design and poster art history\n- Marketing and advertising history\n- Star system and celebrity culture\n- Visual representation of films\n- National and international distribution patterns\n\n**Collection Patterns**:\nOften organized by:\n- Film title\n- Distributor/studio\n- Designer/photographer\n- Country of origin\n- Period\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the collection organizational principle as defined by rico-rst:Collection\n(assembled collections organized by film, studio, or material type).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the collection principle as defined by rico-rst:Collection. Assembled collections organized by film title, studio, designer, or material type.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "FilmPromoCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"completed films\", \"production records\", \"newsreels\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"posters\", \"stills\", \"press kits\", \"trailers\", \"lobby cards\", \"advertising\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "FilmPromoCollection", - "type": "object" - }, - "FinanceFunction": { - "additionalProperties": false, - "description": "Finance and accounting function: budgeting, financial reporting, accounts payable/receivable, audit coordination, treasury management.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "FinanceFunction", - "type": "object" - }, - "FinancialDocumentYearClaim": { - "additionalProperties": false, - "description": "Fiscal year for a financial document (extracted from filename/context).\nExtracted from PDF filename or link text.\nFormat: YYYY (e.g., 2024).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "FinancialDocumentYearClaim", - "type": "object" - }, - "FinancialStatement": { - "additionalProperties": false, - "description": "Represents a financial report that DOCUMENTS and TESTIFIES to the financial\nperformance of a heritage custodian against a Budget.\n\n**CRITICAL DISTINCTION - STATEMENT vs. BUDGET**:\n\n| FinancialStatement | Budget |\n|-------------------|--------|\n| **ACTUALS** - what happened | **PLAN** - intended allocations |\n| Backward-looking (historical) | Forward-looking (prospective) |\n| Audited/reviewed by third party | Approved by governance |\n| Final and unalterable | May be revised during period |\n| External reporting document | Internal planning document |\n| Legal/compliance requirement | Management tool |\n\n**FINANCIAL STATEMENT TYPES**:\n\nHeritage custodians (predominantly nonprofits) produce specialized financial statements:\n\n1. **ANNUAL_REPORT**: Comprehensive year-end report combining narrative and financials\n - Required for many nonprofits (ANBI in NL, 990 in US)\n - Includes mission activities, impact metrics, governance\n\n2. **FORM_990** (US nonprofits): IRS tax filing for 501(c)(3) organizations\n - Publicly available via ProPublica, GuideStar\n - Details revenue, expenses, officer compensation\n\n3. **STATEMENT_OF_FINANCIAL_POSITION** (Balance Sheet):\n - Assets, liabilities, net assets at a point in time\n - Nonprofit version uses \"net assets\" not \"equity\"\n\n4. **STATEMENT_OF_ACTIVITIES** (Income Statement):\n - Revenue and expenses for a period\n - Shows change in net assets\n\n5. **STATEMENT_OF_CASH_FLOWS**:\n - Cash inflows and outflows\n - Operating, investing, financing activities\n\n6. **STATEMENT_OF_FUNCTIONAL_EXPENSES**:\n - Nonprofit-specific: Program vs. administrative vs. fundraising\n - Required for Form 990, optional for GAAP\n\n7. **QUARTERLY_REPORT**: Interim financial statements\n\n8. **AUDIT_REPORT**: Independent auditor's opinion\n\n**THREE-TIER RECORDS LIFECYCLE INTEGRATION**:\n\nFinancialStatement documents move through the records lifecycle:\n\n```\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 CustodianAdministration (ACTIVE) \u2502\n\u2502 - Current year's financial working papers \u2502\n\u2502 - Draft financial statements \u2502\n\u2502 - Audit workpapers (during audit) \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2193\n (Financial statements finalized,\n audit completed, retention begins)\n \u2193\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 CustodianArchive (INACTIVE) \u2502\n\u2502 - Prior year financial statements (7-year retention typical) \u2502\n\u2502 - Audit reports and correspondence \u2502\n\u2502 - Form 990s (permanent retention) \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2193\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 CustodianCollection (HERITAGE) \u2502\n\u2502 - Historical financial records (if significant) \u2502\n\u2502 - Founding-era financial documents \u2502\n\u2502 - Records of major donors/gifts \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n**RELATIONSHIP TO BUDGET**:\n\n- **documents_budget**: Links FinancialStatement \u2192 Budget\n - FinancialStatement TESTIFIES to Budget performance\n - Budget variance analysis compares actuals to plan\n\n- **Budget.documented_by**: Inverse relationship (Budget \u2192 FinancialStatement)\n\n- **Schema.org**: schema:Report for report documents\n- **RiC-O**: rico:RecordResource for archival records\n- **PROV-O**: prov:Entity with generation provenance\n- **FRAPO**: frapo:Funding for monetary values\n- **FRBR**: frbr:Work for expression/manifestation of report", - "properties": { - "has_or_had_expense": { - "description": "Expense incurred.", - "items": { - "type": "number" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_revenue": { - "description": "Structured revenue data with amount, currency, and time period. Replaces simple decimal total_revenue field with rich Revenue class. Rule 53: Branch 1 = Currency, Branch 2 = TimeInterval.", - "items": { - "$ref": "#/$defs/Revenue" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "states_or_stated": { - "items": { - "$ref": "#/$defs/Quantity" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "FinancialStatement", - "type": "object" - }, - "FinancialStatementTypeEnum": { - "description": "Types of financial statements and reports produced by heritage custodian\ninstitutions. Focuses on nonprofit/foundation reporting requirements\ncommon to museums, libraries, archives, and other heritage organizations.\n\n**CATEGORY OVERVIEW**:\n\n1. **Comprehensive Reports**: Annual reports combining narrative + financials\n2. **Core Financial Statements**: Standard accounting statements (GAAP/IFRS)\n3. **Regulatory Filings**: Government-mandated disclosures\n4. **Audit Documents**: Independent verification\n5. **Interim Reports**: Quarterly/periodic reporting", - "enum": [ - "ANNUAL_REPORT", - "STATEMENT_OF_FINANCIAL_POSITION", - "STATEMENT_OF_ACTIVITIES", - "STATEMENT_OF_CASH_FLOWS", - "STATEMENT_OF_FUNCTIONAL_EXPENSES", - "FORM_990", - "FORM_990_PF", - "FORM_990_EZ", - "ANBI_PUBLICATION", - "CHARITY_ANNUAL_RETURN", - "AUDIT_REPORT", - "REVIEW_REPORT", - "COMPILATION_REPORT", - "QUARTERLY_REPORT", - "INTERIM_REPORT", - "GRANT_FINANCIAL_REPORT", - "ENDOWMENT_REPORT", - "SINGLE_AUDIT" - ], - "title": "FinancialStatementTypeEnum", - "type": "string" - }, - "FinancialStatementUrlClaim": { - "additionalProperties": false, - "description": "Link to annual financial statement document (jaarstukken, jaarrekening).\nExpected in: /organisatie/jaarverslagen/, /over-ons/documenten/.\nDutch: jaarstukken, jaarrekening.\nEnglish: financial statements, annual accounts.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "FinancialStatementUrlClaim", - "type": "object" - }, - "FinancialTransactionSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Financial records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "BankArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by BankArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "FinancialTransactionSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FinancialTransactionSeries", - "type": "object" - }, - "FindingAid": { - "additionalProperties": false, - "description": "A finding aid - a descriptive tool that establishes intellectual and physical control over heritage materials by describing them and facilitating access. **DEFINITION** (RiC-O): \"A finding aid is a set of descriptions that identifies, locates, summarizes, and indexes materials in a record-holding organization, typically archives, libraries, or museums.\" This class captures the descriptive metadata for finding aids produced by heritage custodians to facilitate access to their collections. It supports: - Multilingual titles and descriptions (nl, en, etc.) - Classification via FindingAidType hierarchy - Custodian linkage via GHCID, ISIL, Wikidata - Topic/subject indexing - Temporal and geographic coverage - References to sub-guides and external resources - Key archives and related archives - Related guides within the repository - Provenance tracking for web-harvested data - Page structure with web claims and XPath provenance - RiC-O: rico:FindingAid - Dublin Core: dcterms:BibliographicResource - Schema.org: schema:CreativeWork - CIDOC-CRM: crm:E31_Document - BIBFRAME: bf:Work **EXAMPLE FILES**: See data/custodian/findingaid/NL-ZH-DHA-A-NA/guide/repository_guide/metadata/", - "properties": { - "contains_or_contained": { - "description": "Generic containment relationship (temporal). Indicates that this entity contains or has contained the referenced entity.", - "items": {}, - "type": [ - "array", - "null" - ] - }, - "creator": { - "type": [ - "string", - "null" - ] - }, - "custodian": { - "$ref": "#/$defs/Custodian", - "description": "Heritage custodian that created/maintains this finding aid" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_format": { - "description": "The format or file type of a resource or service response.\n\n**USAGE**:\nUsed for:\n- Response formats from APIs (JSON, XML, RDF)\n- File formats for documents (PDF, DOCX, TXT)\n- Media formats (JPEG, MP3, MP4)\n- Transcript formats (VTT, SRT, plain text)\n- Subtitle formats (WebVTT, SRT, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property\n- **Close**: `dct:format` - Dublin Core format\n- **Close**: `schema:encodingFormat` - Schema.org encoding format\n\n**Range**: `uriorcurie` (Rule 54)\nBroadened range to accept URI/CURIE references to format specifications.\nThis allows linking to IANA media types, format registries, or internal\nformat classes while resolving OWL ambiguous type warnings.\n\nClasses can narrow to specific format enums/classes via slot_usage.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_geographic_extent": { - "description": "Spatial extent or bounding region for an entity. May represent geographic coordinates (WKT format) or pixel coordinates (array format) depending on context.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_period": { - "description": "Named periods within coverage (uses TemporalPeriod class)", - "items": { - "$ref": "#/$defs/TemporalPeriod" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "isbn": { - "description": "International Standard Book Number (ISBN) for publications.\nAccepts both ISBN-10 and ISBN-13 formats.\n", - "pattern": "^(97[89])?[0-9]{9}[0-9X]$", - "type": [ - "string", - "null" - ] - }, - "language": { - "description": "Primary language of content on this profile.\n\nDublin Core: language for content language.\n\nISO 639-1 language code (e.g., \"en\", \"nl\", \"de\").\n\nSome institutions maintain separate profiles for different languages.\n", - "pattern": "^[a-z]{2}$", - "type": [ - "string", - "null" - ] - }, - "note": { - "description": "Optional notes about the extraction process.\nMay reference raw source files or explain any issues.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "start": { - "description": "Start of temporal coverage", - "type": "string" - } - }, - "required": [ - "custodian", - "start" - ], - "title": "FindingAid", - "type": "object" - }, - "FindingAidIdentifier": { - "additionalProperties": false, - "description": "Finding aid or archival guide identifier.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "FINDING_AID_ID", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Finding Aid ID", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "FindingAidIdentifier", - "type": "object" - }, - "FinishReasonEnum": { - "description": "Reasons why the LLM stopped generating output.\nStandardized across providers.", - "enum": [ - "stop", - "length", - "tool_calls", - "content_filter", - "error" - ], - "title": "FinishReasonEnum", - "type": "string" - }, - "FireSuppressionSystem": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_type" - ], - "title": "FireSuppressionSystem", - "type": "object" - }, - "FiscalYear": { - "additionalProperties": false, - "description": "A one-year period used for financial reporting and budgeting.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "FiscalYear", - "type": "object" - }, - "FixityVerification": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "FixityVerification", - "type": "object" - }, - "Flickr": { - "additionalProperties": false, - "description": "Flickr profile/photostream.\n\n**URL patterns**:\n- https://www.flickr.com/photos/{username}\n- https://flickr.com/people/{username}\n\n**Features**:\n- High-resolution photo hosting\n- Creative Commons licensing\n- Groups and communities\n- Albums and collections\n- Pro storage options\n\n**Heritage use cases**:\n- High-quality collection images (often CC licensed)\n- Photography communities\n- Integration with Wikimedia Commons\n- Long-term image archiving", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "IMAGE_FOCUSED", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://www.flickr.com/photos/{username}", - "https://flickr.com/people/{username}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "Flickr", - "type": "object" - }, - "FloorAreaCapacity": { - "additionalProperties": false, - "description": "Floor space area capacity (e.g., square meters).\nUsed for storage rooms, galleries, and exhibition spaces.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "FloorAreaCapacity", - "type": "object" - }, - "Fonds": { - "additionalProperties": false, - "description": "The whole of the records created and/or accumulated and used by a single agent.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Fonds", - "type": "object" - }, - "FondsNumberIdentifier": { - "additionalProperties": false, - "description": "Archival fonds or collection number.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "FONDS_NUMBER", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Fonds Number", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "FondsNumberIdentifier", - "type": "object" - }, - "FoodManufacturer": { - "additionalProperties": false, - "description": "Company that produces foods.\nIncludes traditional food manufacturers, artisanal producers,\nand companies preserving heritage food production methods.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "FoodManufacturer", - "type": "object" - }, - "FormatScope": { - "additionalProperties": false, - "description": "Format scope dimension covering file formats and data standards.\n\n**Examples**:\n- \"JPEG/TIFF\" (image formats)\n- \"Dublin Core\" (metadata standard)\n- \"EAD\" (archival encoding)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this scope type. Can include:\n- Type URI (e.g., https://nde.nl/ontology/hc/scope-type/temporal)\n- Wikidata Q-number (e.g., Q186408)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "FormatScope", - "type": "object" - }, - "FoundationAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Foundation administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "FoundationArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by FoundationArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "FoundationAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FoundationAdministrationFonds", - "type": "object" - }, - "FoundationArchive": { - "additionalProperties": false, - "description": "Archive of a foundation (Stiftung, fundaci\u00f3n, fondation). Foundation archives preserve records documenting the activities, governance, and history of charitable, cultural, or educational foundations. They may include founding documents, board minutes, grant records, correspondence, and documentation of foundation-supported projects and programs.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FoundationArchive", - "type": "object" - }, - "FoundationArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by FoundationArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FoundationArchiveRecordSetType", - "type": "object" - }, - "FoundedClaim": { - "additionalProperties": false, - "description": "Founding year or date.\nAlternative format to founding_date.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "FoundedClaim", - "type": "object" - }, - "FoundingDateClaim": { - "additionalProperties": false, - "description": "When organization was founded.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "FoundingDateClaim", - "type": "object" - }, - "FoundingEvent": { - "additionalProperties": false, - "description": "Represents the founding or establishment event of an organization.\n\n**USAGE**:\nCaptures structured founding information for:\n- Heritage custodians (museums, archives, libraries)\n- Standards organizations\n- Historic restaurants and venues\n- Any organization with establishment history\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`class_uri`): `crm:E63_Beginning_of_Existence` - CIDOC-CRM\n- **Close**: `schema:Event` - Schema.org event\n- **Close**: `prov:Activity` - PROV-O activity\n\n**TEMPORAL PATTERN**:\nUses CIDOC-CRM E52_Time-Span pattern for fuzzy temporal bounds:\n- Known year: `begin_of_the_begin` = \"YYYY-01-01\", `end_of_the_begin` = \"YYYY-12-31\"\n- Known exact date: all four bounds equal\n- Unknown year range: set `begin_of_the_begin` to earliest, `end_of_the_begin` to latest\n\n**MIGRATION NOTE**:\nCreated per slot_fixes.yaml revision (Rule 53, 2026-01-22).\nReplaces simple `founded_year` (integer) and `founding_date` (string).", - "properties": { - "founded_by": { - "description": "Person(s) or organization(s) who founded this entity.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "founding_description": { - "description": "Textual description of the founding event and circumstances.\n", - "type": [ - "string", - "null" - ] - }, - "founding_location": { - "description": "Location where the founding took place (if different from current location).\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Unique identifier for this founding event.\nMIGRATED from founding_event_id per Rule 53 (2026-01-26).\nRecommended format: URI combining organization ID and \"founding\".\n", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "$ref": "#/$defs/TimeSpan", - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "temporal_extent", - "has_or_had_identifier" - ], - "title": "FoundingEvent", - "type": "object" - }, - "Framework": { - "additionalProperties": false, - "description": "Web application framework - frontend or backend.\nExamples: React, Vue, Angular, Django, Rails, Spring, Express", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "Framework", - "type": "object" - }, - "FreeArchive": { - "additionalProperties": false, - "description": "Archive that preserves documents on the history of social movements. Free archives (Freie Archive) are typically independent, non-governmental institutions that document grassroots movements, activism, alternative culture, and marginalized communities. They operate outside traditional archival institutions and often have connections to the movements they document. Common in German-speaking countries and Italy.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FreeArchive", - "type": "object" - }, - "FreeArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by FreeArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FreeArchiveRecordSetType", - "type": "object" - }, - "FrenchPrivateArchives": { - "additionalProperties": false, - "description": "Non-public archives in France (archives priv\u00e9es en France). This category encompasses archives held by private individuals, families, businesses, associations, and other non-governmental entities in France. French archival law distinguishes between public archives (archives publiques) and private archives (archives priv\u00e9es), with specific regulations governing each category. Private archives may be classified as historical monuments (classement) or registered (inscription) if they have historical significance.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FrenchPrivateArchives", - "type": "object" - }, - "FrenchPrivateArchivesRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by FrenchPrivateArchives custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FrenchPrivateArchivesRecordSetType", - "type": "object" - }, - "FrenchPrivateFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for French private archives.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "FrenchPrivateArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by FrenchPrivateArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "FrenchPrivateFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FrenchPrivateFonds", - "type": "object" - }, - "FrenchPublicFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for French public sector records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PublicArchivesInFrance", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PublicArchivesInFrance custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "FrenchPublicFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FrenchPublicFonds", - "type": "object" - }, - "Frequency": { - "additionalProperties": false, - "description": "Frequency definition.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Frequency", - "type": "object" - }, - "FrontendDeveloper": { - "additionalProperties": false, - "description": "Frontend developer creating user interfaces for digital platforms.\n\n**Official Title vs De Facto Work**:\nIn heritage context, often works on collection portals, exhibition\ninteractives, and public-facing applications.\n\n**Common Variants**:\n- UI Developer\n- Web Developer\n- JavaScript Developer\n- React Developer\n\n**Typical Domains**: Heritage institutions with digital teams\n\n**Typical Responsibilities**:\n- User interface development\n- Responsive design\n- Accessibility implementation\n- Performance optimization\n- Cross-browser testing", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "FrontendDeveloper", - "type": "object" - }, - "FrontendFramework": { - "additionalProperties": false, - "description": "Client-side JavaScript/TypeScript framework.\nExamples: React, Vue, Angular, Svelte, Next.js", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "FrontendFramework", - "type": "object" - }, - "FrozenStorageEnvironment": { - "additionalProperties": false, - "description": "Deep freeze storage for long-term preservation of highly sensitive materials.\n\n**PURPOSE**: Provide frozen storage conditions to virtually halt chemical\ndecay processes for maximum preservation lifespan.\n\n**RECOMMENDED CONDITIONS (ISO 18911:2010)**:\n- Temperature: -18\u00b0C to -25\u00b0C\n- Relative humidity: 25-35% (target 30%)\n- Light: Dark storage required\n- Packaging: Moisture-proof enclosures essential\n\n**ISO 18911 FROZEN STORAGE**:\n- Maximum life extension for safety film (100+ years)\n- Virtually halts all chemical decay processes\n- Requires frost-free freezers or vapor-proof packaging\n\n**SUITABLE MATERIALS**:\n- Color film (maximum preservation - dye stability)\n- Digital magnetic media (archival LTO tapes)\n- Biological specimens\n- DNA samples\n- Some textiles for pest treatment (anoxia alternative)\n\n**CRITICAL**: Proper packaging essential to prevent frost damage.\nExtended acclimation period (24-48 hours) required before access.\n\n**STANDARD REFERENCES**:\n- ISO 18911:2010 - Processed safety photographic films - Storage practices", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "FROZEN_STORAGE", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard": { - "description": "Reference to applicable ISO or EN standard for this environmental zone type.\n\nFormat: Standard identifier (e.g., \"ISO 11799\", \"ISO 18911\", \"EN 16893\")\n\nCommon preservation standards:\n- ISO 11799: Document storage requirements\n- ISO 18911: Film storage practices\n- ISO 18934: Multiple media archives storage\n- EN 16893: Heritage collection storage buildings\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "max_annual_light_exposure": { - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "const": 0, - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "requires_dark_storage": { - "description": "Whether dark (zero light) storage is required for this environmental zone.\n\nBased on ISO preservation standards:\n- Film storage (ISO 18911): Dark storage mandatory\n- Photographic (ISO 18920): Dark storage for extended-term\n- UK Archives (BS 4971): 0 lux for closed storage\n\nDark storage essential for:\n- Film negatives (especially color and early nitrate/acetate)\n- Daguerreotypes and early photographic processes\n- Cyanotypes and blueprint materials\n- Some magnetic media (tape)\n- Highly fugitive inks and dyes\n\nAccess provided through reading rooms or digitization requests.\nCumulative light damage is completely prevented.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_dust_free": { - "description": "Whether a dust-free or dust-controlled environment is required for this zone.\n\nBased on ISO preservation standards:\n- Magnetic tape (ISO 18923): Dust-free mandatory\n- Optical media (ISO 18938): Cleanroom for masters\n- Archives (ISO 11799): Dust control required\n\nISO 14644-1 Cleanliness Classes:\n- Class 8: General archive/museum (HEPA filtered)\n- Class 7: AV media storage (positive pressure)\n- Class 5: Digital master storage (cleanroom)\n\nDust-free essential for:\n- Magnetic tapes and audiovisual media\n- Optical discs (CD, DVD, Blu-ray)\n- Fine art and paintings (surface abrasion)\n- Photographic materials (scratches, embedded particles)\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_esd_protection": { - "description": "Whether electrostatic discharge (ESD) protection is required for this zone.\n\nBased on ISO/IEC standards:\n- Magnetic tape (ISO 18923): ESD protection required\n- Optical media (ISO 18938): ESD-safe handling mandatory\n- Electronics (IEC 61340-5-1): ESD control program\n\nESD protection measures include:\n- Conductive/dissipative flooring\n- Humidity control (40-60% RH reduces static)\n- ESD-safe packaging and equipment\n- Personnel grounding (wrist straps)\n\nESD protection essential for:\n- Hard drives and SSDs\n- LTO and other magnetic tapes\n- Optical media (CD, DVD, Blu-ray masters)\n- Electronic components and circuit boards\n- Born-digital heritage collections\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_uv_filter": { - "description": "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \u00b5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label", - "has_or_had_description" - ], - "title": "FrozenStorageEnvironment", - "type": "object" - }, - "FullNameClaim": { - "additionalProperties": false, - "description": "Official full name of the organization.\nExpected in: <title>, <h1>, logo text, meta og:title", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "FullNameClaim", - "type": "object" - }, - "FullyDeductible": { - "additionalProperties": false, - "description": "100% of the donation is tax-deductible.\n\nThe donor can deduct the full donation amount from their taxable income,\nsubject to any percentage limits set by their tax jurisdiction.\n\n**Examples**:\n- Donation to Dutch ANBI (Algemeen Nut Beogende Instelling)\n- Donation to US 501(c)(3) organization\n- Donation to UK registered charity", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "FullyDeductible", - "type": "object" - }, - "FunctionCategory": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "FunctionCategory", - "type": "object" - }, - "FunctionTypeEnum": { - "description": "Classification of organizational functions for heritage custodians. Based on W3C ORG org:purpose patterns and nonprofit organizational structure.", - "enum": [ - "ADMINISTRATIVE", - "PROGRAM", - "SUPPORT", - "DEVELOPMENT", - "COMMUNICATIONS", - "OTHER" - ], - "title": "FunctionTypeEnum", - "type": "string" - }, - "Funding": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_currency": { - "anyOf": [ - { - "$ref": "#/$defs/Currency" - }, - { - "type": "null" - } - ], - "description": "Currency associated with monetary values. Uses RiC-O temporal naming pattern to indicate the currency may be current or historical.\n**Schema.org**: schema:currency for currency designation.\n**ISO 4217**: Standard currency codes (EUR, USD, GBP, etc.)\nCan represent the currency for budgets, financial statements, acquisition costs, and other monetary amounts." - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_quantity" - ], - "title": "Funding", - "type": "object" - }, - "FundingAgenda": { - "additionalProperties": false, - "description": "A strategic research or funding agenda that defines priorities, themes, and\nobjectives guiding funding allocation by one or more funding organisations.\n\n**PURPOSE**:\n\nFundingAgenda represents the strategic layer ABOVE individual funding calls:\n\n```\nFundingAgenda (e.g., Dutch Research Agenda NWA)\n \u2502\n \u251c\u2500\u2500 thematic_routes (25 interdisciplinary routes)\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500 \"Cultural Identity\" route\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500 shapes \u2192 CallForApplication topics\n \u2502\n \u2514\u2500\u2500 implementing_organisations\n \u2502\n \u2514\u2500\u2500 NWO (issues calls aligned with NWA)\n```\n\n**KEY RELATIONSHIPS**:\n\n1. **Governed by**: A high-level body (government, consortium) that created the agenda\n - `governing_body` \u2192 EncompassingBody (e.g., Dutch government, European Commission)\n\n2. **Implemented by**: Funding organisations that translate agenda into calls\n - `implementing_organisations` \u2192 FundingOrganisation[] (e.g., NWO, ERC)\n\n3. **Contains thematic routes**: Major themes or priority areas\n - `thematic_routes` \u2192 ThematicRoute[] (nested class)\n\n4. **Guides calls**: Funding calls align with agenda priorities (indirect relationship)\n - CallForApplication.parent_programme references agenda themes\n - Calls cite agenda objectives in their descriptions\n\n**TEMPORAL DIMENSION**:\n\nAgendas have defined validity periods:\n- Multi-year frameworks (EU 7-year cycles: 2021-2027)\n- Ongoing national agendas (NWA - indefinite)\n- Strategic periods (Arts Council 10-year strategy)\n\n**EXAMPLES**:\n\n1. **Dutch Research Agenda (Nationale Wetenschapsagenda, NWA)**\n - Established 2015 by Dutch science sector\n - 25 thematic routes covering all research domains\n - Heritage-relevant routes: \"Cultural Identity\", \"Creative Industry\"\n - Implemented by: NWO, KNAW, universities\n - URL: https://www.nwo.nl/en/researchprogrammes/dutch-research-agenda-nwa\n \n2. **Horizon Europe Strategic Plan 2021-2024**\n - EU research framework priorities\n - 6 clusters including CL2 \"Culture, Creativity and Inclusive Society\"\n - 5 EU Missions including \"Adaptation to Climate Change\" (heritage impact)\n - Implemented by: European Commission, REA, EACEA\n \n3. **Creative Europe Strategic Objectives 2021-2027**\n - EU cultural and creative sectors programme\n - Objectives: diversity, competitiveness, cooperation\n - Implemented by: EACEA\n \n4. **Arts Council England \"Let's Create\" 2020-2030**\n - 10-year strategy for arts and culture\n - Investment Principles guide funding decisions\n - Implemented by: Arts Council England\n\n**ONTOLOGY ALIGNMENT**:\n\n- **Schema.org**: `schema:FundingScheme` - \"Combines organizational, project and \n policy aspects of grant-based funding that sets guidelines, principles and \n mechanisms to support other kinds of projects\"\n- **Dublin Core**: `dcterms:Policy` - Policy documents\n- **W3C ORG**: `org:purpose` - Organizational purpose statements\n- **SKOS**: ConceptScheme for thematic routes (hierarchical themes)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/agenda/[a-z0-9-]+/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_investment": { - "anyOf": [ - { - "$ref": "#/$defs/Quantity" - }, - { - "type": "null" - } - ], - "description": "Investment amount or value.\n\n**USAGE**:\nUsed for:\n- Total investments\n- Capital investments\n- Financial holdings\n" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_governed_by": { - "description": "The organisation or body that governs or governed this entity or agenda.", - "items": { - "$ref": "#/$defs/GoverningBody" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_implemented_by": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/Organization__identifier_optional" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ] - }, - "description": "The organization that implemented the project/measure.", - "type": [ - "object", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Heritage" - }, - "type": [ - "array", - "null" - ] - }, - "related_agenda": { - "description": "Related agendas - predecessors, successors, or complementary frameworks.\n\nHelps understand the policy landscape and evolution of priorities.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_identifier" - ], - "title": "FundingAgenda", - "type": "object" - }, - "FundingCall": { - "additionalProperties": false, - "description": "", - "properties": { - "is_or_was_due_on": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "The due date or deadline." - }, - "is_or_was_opened_on": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "The opening date." - } - }, - "title": "FundingCall", - "type": "object" - }, - "FundingRate": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_rate": { - "description": "Indicates a rate, percentage, or ratio associated with an entity. MIGRATED from funding_rate per Rule 53. Follows RiC-O naming convention.", - "type": [ - "string", - "null" - ] - }, - "maximal_of_maximal": { - "anyOf": [ - { - "$ref": "#/$defs/Quantity" - }, - { - "type": "null" - } - ], - "description": "Upper bound value of a range (CIDOC-CRM pattern for dimensional ranges).\n\n**CIDOC-CRM Alignment**:\nMaps to P90b_has_upper_value_limit which defines the highest value that\na dimension may have within an instance of E54 Dimension.\n\n**USE CASE - Grant Ranges**:\nFor grant funding ranges like \"\u20ac100K-\u20ac500K\":\n- minimal_of_minimal: Quantity(100000, EUR)\n- maximal_of_maximal: Quantity(500000, EUR)\n\n**TEMPORAL CONTEXT**:\nNamed \"maximal_of_maximal\" (not just \"maximum\") to acknowledge that the\nupper bound itself may have uncertainty - this is the maximum of the maximum.\n" - } - }, - "title": "FundingRate", - "type": "object" - }, - "FundingRequirement": { - "additionalProperties": false, - "description": "A requirement or criterion that applicants must meet to be eligible for\na funding call. Each requirement is tracked with provenance linking to\nthe source document where it was stated.\n\n**PURPOSE**:\n\nFundingRequirement provides structured, machine-readable representation\nof funding call eligibility criteria. Instead of storing requirements as\nfree-text lists in CallForApplication, each requirement becomes a\ntrackable entity with:\n\n- **Classification**: Categorized by FundingRequirementTypeEnum\n- **Provenance**: Linked to WebObservation documenting source\n- **Values**: Machine-readable value + human-readable text\n- **Temporality**: Valid date range for time-scoped requirements\n\n**PROVENANCE CHAIN**:\n\n```\nCallForApplication\n \u2502\n \u251c\u2500\u2500 requirements \u2500\u2500\u2192 FundingRequirement[]\n \u2502 \u2502\n \u2502 \u251c\u2500\u2500 requirement_type: PARTNERSHIP_MINIMUM_PARTNERS\n \u2502 \u251c\u2500\u2500 requirement_text: \"At least 3 partners from 3 EU countries\"\n \u2502 \u251c\u2500\u2500 requirement_value: \"3\"\n \u2502 \u251c\u2500\u2500 requirement_unit: \"partners\"\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500 observed_in \u2500\u2500\u2192 WebObservation\n \u2502 \u2502\n \u2502 \u251c\u2500\u2500 source_url: https://ec.europa.eu/...\n \u2502 \u251c\u2500\u2500 retrieved_on: 2025-11-29T10:30:00Z\n \u2502 \u2514\u2500\u2500 extraction_confidence: 0.95\n \u2502\n \u2514\u2500\u2500 web_observations \u2500\u2500\u2192 WebObservation[] (general call provenance)\n```\n\n**ONTOLOGY ALIGNMENT**:\n\n- **Dublin Core**: `dcterms:Standard` - \"A reference point against which\n other things can be evaluated\" (requirements are standards for eligibility)\n- **Dublin Core**: `dcterms:requires` - Relates call to requirement\n- **Dublin Core**: `dcterms:conformsTo` - Applicants must conform to requirements\n- **Schema.org**: `schema:eligibleRegion` - For geographic requirements\n- **Schema.org**: `schema:eligibleQuantity` - For numeric constraints\n- **PROV-O**: `prov:wasDerivedFrom` - Links requirement to observation\n\n**REQUIREMENT CATEGORIES**:\n\nRequirements are classified into six main categories via FundingRequirementTypeEnum:\n\n1. **Eligibility** (ELIGIBILITY_*): Who can apply\n - Geographic: EU Member States, Associated Countries\n - Organizational: Non-profit, public body, SME\n - Heritage type: Museums, archives, libraries\n - Experience: Track record, previous projects\n\n2. **Financial** (FINANCIAL_*): Budget and funding\n - Co-funding: Match funding percentages\n - Budget limits: Minimum/maximum grant size\n - Funding rate: Percentage of eligible costs\n - Eligible costs: What can be funded\n\n3. **Partnership** (PARTNERSHIP_*): Consortium requirements\n - Minimum partners: Number required\n - Country diversity: Geographic spread\n - Sector mix: Organisation types needed\n - Coordinator: Lead partner constraints\n\n4. **Thematic** (THEMATIC_*): Topic and scope\n - Focus area: Required research/action themes\n - Heritage scope: Types of heritage addressed\n - Geographic scope: Where activities occur\n\n5. **Technical** (TECHNICAL_*): Outputs and approach\n - Deliverables: Required outputs\n - Open access: Publication requirements\n - Duration: Project length constraints\n - Methodology: Required approaches\n\n6. **Administrative** (ADMINISTRATIVE_*): Process requirements\n - Registration: Portal accounts needed\n - Documentation: Supporting documents\n - Language: Submission language\n - Format: Templates and page limits\n\n**TEMPORAL TRACKING**:\n\nRequirements can change between call publications. The `supersedes` field\nlinks to previous versions, and `valid_from`/`valid_to` scope applicability:\n\n```\nFundingRequirement (current)\n \u2502\n \u251c\u2500\u2500 valid_from: 2025-01-15\n \u251c\u2500\u2500 requirement_value: \"3\" (minimum partners)\n \u2502\n \u2514\u2500\u2500 supersedes \u2500\u2500\u2192 FundingRequirement (previous)\n \u2502\n \u251c\u2500\u2500 valid_from: 2024-01-15\n \u251c\u2500\u2500 valid_to: 2025-01-14\n \u2514\u2500\u2500 requirement_value: \"4\" (was 4 partners)\n```\n\n**EXTRACTION PATTERN**:\n\nWhen extracting requirements from web sources:\n\n1. Create WebObservation for the source page\n2. For each requirement found:\n - Create FundingRequirement with observed_in \u2192 WebObservation\n - Classify using FundingRequirementTypeEnum\n - Extract machine-readable value and unit\n - Record source_section for traceability\n - Assign extraction_confidence based on clarity\n\n**EXAMPLES**:\n\n1. **Partnership Requirement**\n - requirement_type: PARTNERSHIP_MINIMUM_PARTNERS\n - requirement_text: \"Minimum 3 independent legal entities from 3 different EU Member States\"\n - requirement_value: \"3\"\n - requirement_unit: \"partners\"\n - is_mandatory: true\n \n2. **Financial Requirement**\n - requirement_type: FINANCIAL_COFUNDING\n - requirement_text: \"Co-funding of minimum 25% from non-EU sources required\"\n - requirement_value: \"25\"\n - requirement_unit: \"percent\"\n - is_mandatory: true\n \n3. **Open Access Requirement**\n - requirement_type: TECHNICAL_OPEN_ACCESS\n - requirement_text: \"All peer-reviewed publications must be open access (Plan S compliant)\"\n - requirement_value: \"immediate\"\n - is_mandatory: true", - "properties": { - "applies_or_applied_to": { - "description": "The entity (call, opportunity, context) that this applies (or applied) to. Uses RiC-O style temporal naming to indicate the relationship may be current or historical.\nMigrated from applies_or_applied_to_call per Rule 53/56 (2026-01-17). Removing domain-specific suffix enables reuse across contexts.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_mandatory": { - "description": "Whether this requirement is mandatory for eligibility (true)\nor preferred/optional (false).\n\nDefaults to true - most requirements are mandatory.\n", - "type": [ - "boolean", - "null" - ] - }, - "observed_in": { - "description": "WebObservation documenting where this entity was found.\n\n**PROVENANCE PATTERN**:\n\nLinks extracted entities to their source WebObservation, enabling:\n- Verification of extracted data against original source\n- Temporal tracking (when was this information observed?)\n- Source URL preservation\n- Extraction confidence documentation\n\n**Example Usage**:\n```yaml\nDonationScheme:\n scheme_id: \"https://nde.nl/ontology/hc/donation-scheme/rijksmuseum/vrienden\"\n scheme_name: \"Rijksmuseum Vrienden\"\n observed_in: \"https://nde.nl/ontology/hc/observation/web/2026-01-01/rijksmuseum-support\"\n\nWebObservation:\n observation_id: \"https://nde.nl/ontology/hc/observation/web/2026-01-01/rijksmuseum-support\"\n source_url: \"https://www.rijksmuseum.nl/nl/steun-het-rijksmuseum\"\n retrieved_on: \"2026-01-01T10:00:00Z\"\n```\n\n**Classes Using This Slot**:\n- DonationScheme - donation/membership programs\n- FundingRequirement - grant eligibility criteria\n- Other extracted entities with web provenance", - "type": "string" - }, - "requirement_id": { - "description": "Unique identifier for this funding requirement.\nFormat: https://nde.nl/ontology/hc/requirement/{call-slug}/{requirement-slug}\n", - "pattern": "^https://nde\\.nl/ontology/hc/requirement/[a-z0-9-]+/[a-z0-9-]+$", - "type": "string" - }, - "requirement_text": { - "description": "Human-readable text of the requirement as stated in the source.\nShould preserve original wording for accuracy and citation.\n", - "type": "string" - }, - "requirement_type": { - "$ref": "#/$defs/FundingRequirementTypeEnum", - "description": "Category of requirement from FundingRequirementTypeEnum.\n\nEnables filtering and matching of requirements across calls.\nSee enum documentation for full category list.\n" - }, - "requirement_unit": { - "description": "Unit of measurement for requirement_value.\nEnables interpretation of numeric values.\n", - "type": [ - "string", - "null" - ] - }, - "requirement_value": { - "description": "Machine-readable value extracted from requirement.\n\nUsed with requirement_unit for structured queries.\nFormat depends on requirement type:\n- Numeric: \"3\", \"25\", \"500000\"\n- Boolean: \"true\", \"false\"\n- Coded: \"eu-member-states\", \"open-access\"\n", - "type": [ - "string", - "null" - ] - }, - "source_section": { - "description": "Section heading or location in source document where requirement was found.\nAids verification and citation.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "supersedes_or_superseded": { - "description": "Entity that this one supersedes, or that supersedes this one.\nUse when a new version corrects or updates a previous one. Direction is determined by context - the slot represents the relationship in either direction.\nPROV-O: wasRevisionOf for updated versions.\nMigrated from bespoke `supersede` slot per Rule 53/56 (2026-01-17). Original slot_uri (hc:supersedes) preserved in exact_mappings.", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "observed_in", - "requirement_id", - "requirement_text", - "has_or_had_type" - ], - "title": "FundingRequirement", - "type": "object" - }, - "FundingRequirementTypeEnum": { - "description": "Categories of requirements/criteria for funding calls.\n\nUsed by FundingRequirement.requirement_type to classify eligibility\ncriteria, financial conditions, partnership requirements, and other\nconstraints that applicants must meet.\n\n**STRUCTURE**:\n\nRequirements are organized into six main categories:\n\n1. **ELIGIBILITY_*** - Who can apply (legal status, geography, type)\n2. **FINANCIAL_*** - Money matters (co-funding, budgets, rates)\n3. **PARTNERSHIP_*** - Consortium requirements\n4. **THEMATIC_*** - Topic and heritage type focus\n5. **TECHNICAL_*** - Deliverables and outputs\n6. **ADMINISTRATIVE_*** - Registration and documentation\n\n**PROVENANCE**:\n\nEach requirement should link to a WebObservation documenting\nwhere the requirement was found (call page, guidelines PDF, FAQ).", - "enum": [ - "ELIGIBILITY_GEOGRAPHIC", - "ELIGIBILITY_ORGANIZATIONAL", - "ELIGIBILITY_HERITAGE_TYPE", - "ELIGIBILITY_EXPERIENCE", - "ELIGIBILITY_REGISTRATION", - "FINANCIAL_COFUNDING", - "FINANCIAL_BUDGET_MINIMUM", - "FINANCIAL_BUDGET_MAXIMUM", - "FINANCIAL_RATE", - "FINANCIAL_ELIGIBLE_COSTS", - "PARTNERSHIP_MINIMUM_PARTNERS", - "PARTNERSHIP_COUNTRY_DIVERSITY", - "PARTNERSHIP_SECTOR_MIX", - "PARTNERSHIP_COORDINATOR", - "THEMATIC_FOCUS_AREA", - "THEMATIC_HERITAGE_SCOPE", - "THEMATIC_GEOGRAPHIC_SCOPE", - "THEMATIC_TIMELINE", - "TECHNICAL_DELIVERABLES", - "TECHNICAL_OPEN_ACCESS", - "TECHNICAL_DURATION", - "TECHNICAL_METHODOLOGY", - "ADMINISTRATIVE_REGISTRATION", - "ADMINISTRATIVE_DOCUMENTATION", - "ADMINISTRATIVE_LANGUAGE", - "ADMINISTRATIVE_FORMAT", - "OTHER" - ], - "title": "FundingRequirementTypeEnum", - "type": "string" - }, - "FundingSource": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "FundingSource", - "type": "object" - }, - "FundraisingExpenses": { - "additionalProperties": false, - "description": "Costs incurred to raise funds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "FundraisingExpenses", - "type": "object" - }, - "FundraisingFunction": { - "additionalProperties": false, - "description": "Fundraising function: annual fund, major gifts, donor cultivation, fundraising events.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "FundraisingFunction", - "type": "object" - }, - "GLEIFIdentifier": { - "additionalProperties": false, - "description": "A code identifying a registration authority in the GLEIF system.", - "properties": { - "has_or_had_scheme": { - "anyOf": [ - { - "$ref": "#/$defs/IdentifierScheme" - }, - { - "type": "null" - } - ], - "description": "Identifier scheme." - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "$ref": "#/$defs/IdentifierValue" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "GLEIFIdentifier", - "type": "object" - }, - "GNDIdentifier": { - "additionalProperties": false, - "description": "Gemeinsame Normdatei (German authority file).", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "GND", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "GND ID", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "GNDIdentifier", - "type": "object" - }, - "GalleryRecordsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Art gallery records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ArtArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ArtArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "GalleryRecordsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "GalleryRecordsFonds", - "type": "object" - }, - "GalleryType": { - "additionalProperties": false, - "description": "Specialized custodian type for art galleries - institutions that exhibit\nand sometimes sell visual artworks, providing public access to contemporary\nor historical art through temporary or rotating exhibitions.\n\n**Wikidata Base Concept**: Q1007870 (art gallery)\n\n**Scope**:\nGalleries are distinguished by their focus on:\n- Exhibition-oriented (not collection-based like museums)\n- Contemporary or recent art (not historical artifacts)\n- Temporary exhibitions (rotating shows, not permanent displays)\n- Artist representation (commercial) or kunsthalle model (non-commercial)\n- Visual arts (paintings, sculptures, photography, installations)\n\n**Key Gallery Subtypes** (78+ extracted from Wikidata):\n\n**By Business Model**:\n- Commercial art galleries (Q56856618) - For-profit, sell artworks, represent artists\n- Noncommercial art galleries (Q67165238) - Exhibition-only, no sales\n- Kunsthalle (Q1475403) - German model, temporary exhibitions, no permanent collection\n- Vanity galleries (Q17111940) - Charge artists for exhibition space\n- National galleries (Q3844310) - State-run, representative of nation\n\n**By Subject Specialization**:\n- Photography galleries (Q114023739) - Photographic art exhibitions\n- Photo galleries (Q12303444) - Physical or digital photograph collections\n- Photography centres (Q11900212) - Dedicated photography venues\n- Phototh\u00e8ques (Q135926044) - Photographic heritage preservation\n- Sculpture gardens (Q1759852) - Outdoor sculpture exhibitions\n- Jewellery galleries (Q117072343) - Jewelry and decorative arts\n- Design galleries (Q127346204) - Design and applied arts\n- Map galleries (Q125501487) - Cartographic art exhibitions\n- Print rooms (Q445396) - Prints, drawings, watercolors, photographs\n\n**By Organizational Model**:\n- Artist-run centres (Q4801243) - Managed and directed by artists\n- Artist-run initiatives (Q3325736) - Gallery operated by artists\n- Artist-run spaces (Q4034417) - Organizations initiated by artists\n- Artist cooperatives (Q4801240) - Jointly owned by artist members\n- Canadian artist-run centres (Q16020664) - Canada-specific model (1960s+)\n\n**By Art Period Focus**:\n- Contemporary art galleries (Q16038801) - Current/recent art\n- Modern art galleries (Q3757717) - Modernist period (late 19th-20th century)\n- Contemporary arts centres (Q2945053) - Focus on contemporary practice\n- National centres for contemporary art (Q109017987) - State contemporary art venues\n\n**By Venue Type**:\n- Alternative exhibition spaces (Q16002704) - Non-traditional venues\n- Arts venues (Q15090615) - Places for artistic works display/performance\n- Arts centers (Q2190251) - Community centers for arts\n- Cast collections (Q29380643) - Plaster cast galleries (educational)\n- Plaster cast galleries (Q3768550) - Sculpture reproduction collections\n\n**By Artist Association**:\n- Artist museums (Q1747681) - Dedicated to particular artist\n- Artist houses (Q1797122) - Buildings with artist work rooms\n- Art colonies (Q1558054) - Places where artists live and interact\n- Art communes (Q4797182) - Communal living focused on art creation\n- Studio houses (Q2699076) - Residential spaces with studio facilities\n\n**Online & Digital**:\n- Online art galleries (Q7094057) - Digital exhibition platforms\n- Galeries Fnac (Q109038036) - French retail chain photo galleries (1970s+)\n\n**Specialized Formats**:\n- Pinacotheca (Q740437) - Public art gallery (classical term)\n- Print rooms (Q445396) - Graphic arts collections\n- Photograph collections (Q130486108) - Photography collections\n\n**French Model**:\n- Scientific, technical, and industrial culture centers (Q2946053) - Popular science venues\n\n**Cultural Context**:\n- Arts and Culture Centres (Q4801491) - Newfoundland & Labrador system (Canada)\n- Houses of culture (Q5061188) - Cultural institutions in socialist/social democratic contexts\n- Houses of literature (Q27908105) - Cultural institutions for written art\n- Centrum Beeldende Kunst (Q2104985) - Dutch visual arts centers\n\n**Supporting Organizations**:\n- Not-for-profit arts organizations (Q7062022) - Nonprofit arts foundations\n- Art institutions (Q20897549) - Organizations dedicated to art\n- Cultural institutions (Q3152824) - Preservation/promotion of culture\n\n**Commercial vs. Non-Commercial Distinction**:\n\n**Commercial Galleries**:\n- Represent artists (exclusive or non-exclusive contracts)\n- Sell artworks (earn commission on sales)\n- Participate in art fairs\n- Primary market (new works) or secondary market (resale)\n\n**Non-Commercial Galleries** (Kunsthalle model):\n- No permanent collection\n- Exhibition-only mission\n- Public or nonprofit funding\n- Educational/cultural programming\n- No artwork sales\n\n**RDF Serialization Example**:\n```turtle\n:Custodian_KunsthalRotterdam\n org:classification :GalleryType_Kunsthalle_Q1475403 .\n\n:GalleryType_Kunsthalle_Q1475403\n a glamtype:GalleryType, crm:E55_Type, skos:Concept ;\n skos:prefLabel \"Kunsthalle\"@en, \"kunsthalle\"@nl, \"Kunsthalle\"@de ;\n skos:broader :GalleryType_ArtGallery_Q1007870 ;\n schema:additionalType <http://www.wikidata.org/entity/Q1475403> ;\n glamtype:glamorcubesfixphdnt_code \"GALLERY\" ;\n glamtype:has_or_had_objective false ;\n glamtype:exhibition_focus \"contemporary art\" ;\n glamtype:sales_activity false ;\n glamtype:exhibition_model \"temporary rotating exhibitions\" .\n```\n\n**Domain-Specific Properties**:\nThis class adds gallery-specific metadata beyond base CustodianType:\n- `has_or_had_objective` - Structured profit objective (commercial/nonprofit/mixed)\n- `artist_representation` - Artists represented by gallery (for commercial galleries)\n- `exhibition_focus` - Type of art exhibited (contemporary, modern, photography, etc.)\n- `sales_activity` - Whether gallery sells artworks (not just exhibits)\n- `exhibition_model` - Exhibition strategy (temporary, rotating, curated shows)\n- `has_or_had_service` - Art sales service with commission structure (ArtSaleService)\n\n**Getty AAT Integration**:\nThe Getty Art & Architecture Thesaurus provides standardized vocabulary:\n- aat:300005768 - art galleries (institutions)\n- aat:300240057 - commercial galleries\n- aat:300240058 - nonprofit galleries\n- aat:300005741 - kunsthalles\n\n**Art Market Context**:\nCommercial galleries operate in the art market ecosystem:\n- **Primary market**: Representing living artists, first sales\n- **Secondary market**: Resale of works by established artists\n- **Art fairs**: Participation in international art fairs (Basel, Frieze, etc.)\n- **Auction houses**: Different from galleries (auction vs. consignment model)\n\n**Data Population**:\nGallery subtypes extracted from 78 Wikidata entities with type='G'\nin `data/wikidata/GLAMORCUBEPSXHFN/hyponyms_curated_full.yaml`.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_model": { - "description": "Model or structure description (business model, organizational model, etc.). Uses schema:businessFunction for business model descriptions.\nClasses narrow this slot via slot_usage for domain-specific descriptions: - CommercialOrganizationType \u2192 business model (funding/revenue structure)", - "type": [ - "string", - "null" - ] - }, - "has_or_had_objective": { - "description": "The objective of an action or measure.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_service": { - "description": "A service offered by an entity.\n\n**USAGE**:\nUsed for:\n- Visitor services (guided tours, audio guides)\n- Research services\n- Conservation services\n", - "items": { - "$ref": "#/$defs/Service" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string" - }, - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "represents_or_represented": { - "description": "Represents an artist or entity.", - "items": { - "$ref": "#/$defs/Artist" - }, - "type": [ - "array", - "null" - ] - }, - "sales_activity": { - "description": "Whether the gallery actively sells artworks to collectors.\nTrue = artwork sales (primary or secondary market)\nFalse = exhibition-only (no sales activity)\n\nDistinction from commercial_operation:\n- commercial_operation: business model (for-profit vs. nonprofit)\n- sales_activity: transactional activity (sells artworks or not)\n\nA gallery can be commercial_operation=true but sales_activity=false\n(e.g., art consultancy that doesn't hold inventory).\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "GalleryType", - "type": "object" - }, - "GalleryTypeEnum": { - "description": "", - "enum": [ - "ALTERNATIVE_EXHIBITION_SPACE", - "ART_COLLECTION", - "ART_COLONY", - "ART_COMMUNE", - "ART_GALLERIES_IN_OOSTEND", - "ART_GALLERY", - "ART_GALLERY_1", - "ART_INSTITUTION", - "ART_MUSEUM", - "ARTIST_COLLECTIVE", - "ARTIST_COOPERATIVE", - "ARTIST_COOPERATIVE_1", - "ARTIST_MUSEUM", - "ARTISTS_HOUSE", - "ARTIST_RUN_CENTRE", - "ARTIST_RUN_INITIATIVE", - "ARTIST_RUN_INITIATIVE_1", - "ARTIST_RUN_SPACE", - "ARTS_AND_CULTURE_CENTRE", - "ARTS_CENTER", - "ARTS_CENTER_1", - "ARTS_CENTER_2", - "ARTS_VENUE", - "BRANCH", - "BRANCH_OFFICE", - "BURIED_CULTURAL_PROPERTY_CENTER", - "CANADIAN_ARTIST_RUN_CENTRE", - "CAST_COLLECTION", - "CAST_COLLECTION_1", - "CENTRUM_BEELDENDE_KUNST", - "CLOSED_SPACE", - "COMMERCIAL_ART_GALLERY", - "CONTEMPORARY_ART_GALLERY", - "CONTEMPORARY_ARTS_CENTRE", - "CULTURAL_INSTITUTION", - "DEPARTMENT", - "DESIGN_GALLERY", - "DIVISION", - "DUO_OF_PHOTOGRAPHERS", - "GALERIES_FNAC", - "GLAM", - "GROUP_OF_HUMANS", - "HOUSE_OF_CULTURE", - "HOUSE_OF_LITERATURE", - "INSTITUTION", - "ISOLATED_HUMAN_GROUP", - "JEWELLERY_GALLERY", - "KUNSTHALLE", - "KUSTODIE", - "LOCAL_HERITAGE_INSTITUTION_IN_SWEDEN", - "MAP_GALLERY", - "MEMORY_INSTITUTION", - "MODERN_ART_GALLERY", - "NATIONAL_CENTRE_FOR_CONTEMPORARY_ART", - "NATIONAL_GALLERY", - "NONCOMMERCIAL_ART_GALLERY", - "NOT_FOR_PROFIT_ARTS_ORGANIZATION", - "ONLINE_ART_GALLERY", - "ORGANIZATION", - "ORGANIZATIONAL_SUBDIVISION", - "PARENT_ORGANIZATIONUNIT", - "PERSON_OR_ORGANIZATION", - "PHOTO_GALLERY", - "PHOTOGRAPH_COLLECTION", - "PHOTOGRAPHIC_ART_GALLERY", - "PHOTOGRAPHY_CENTRE", - "PHOTOTHEQUE", - "PINACOTHECA", - "PLASTER_CAST_GALLERY", - "PRINT_ROOM", - "PUBLIC_SPACE", - "PUBLISHING_COMPANY", - "SCIENTIFIC_TECHNIC_AND_INDUSTRIAL_CULTURE_CENTER", - "SCULPTURE_GARDEN", - "SOCIAL_SPACE", - "STUDIO_HOUSE", - "SUBSIDIARY_ORGANIZATION", - "VANITY_GALLERY" - ], - "title": "GalleryTypeEnum", - "type": "string" - }, - "Gardener": { - "additionalProperties": false, - "description": "Gardener maintaining grounds and gardens.\n\n**Official Title vs De Facto Work**:\nIn heritage settings, may care for historic gardens,\nheritage plantings, and outdoor exhibition spaces.\n\n**Common Variants**:\n- Groundskeeper\n- Horticulturist\n- Landscape Manager\n- Garden Curator\n\n**Typical Domains**: Heritage sites with grounds, historic houses, botanical gardens\n\n**Typical Responsibilities**:\n- Garden maintenance\n- Historic planting preservation\n- Landscape management\n- Outdoor event support\n- Seasonal displays", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Gardener", - "type": "object" - }, - "Gemeinnuetzigkeit": { - "additionalProperties": false, - "description": "German charitable status (Gemeinn\u00fctzigkeit).\n\n**Benefits**:\n- Organization exempt from corporate income tax\n- Donors can deduct donations (up to 20% of income)\n- Enhanced deduction for cultural institutions\n\n**Requirements**:\n- Serve public benefit exclusively\n- Non-profit operation\n- Assets used only for stated purposes\n\n**Regulatory Body**: Finanzamt (local tax office)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Gemeinnuetzigkeit", - "type": "object" - }, - "Gender": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Gender", - "type": "object" - }, - "GenealogicalPortal": { - "additionalProperties": false, - "description": "Portal aggregating civil registration, parish records, and genealogical sources from multiple archives. **PURPOSE**: Enable family history research by providing unified access to vital records, census data, and genealogical sources across institutions. **CHARACTERISTICS**: - Civil registration (births, marriages, deaths) - Parish records (baptisms, confirmations, burials) - Census and population records - Name indexes and transcriptions - Family tree integration **EXAMPLES**: - OpenArchieven.nl (Netherlands) - FamilySearch (LDS - global) - Ancestry (commercial - global) - FindMyPast (UK/Ireland focus) - WieWasWie (Netherlands)", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "DOMAIN_SPECIFIC", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "genealogy", - "archives" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "GenealogicalPortal", - "type": "object" - }, - "Genealogist": { - "additionalProperties": false, - "description": "Genealogist specializing in family history and lineage research.\n\n**Official Title vs De Facto Work**:\nFormally focused on genealogical research, but often helps members\nwith research techniques, manages genealogical collections, and\nconducts workshops.\n\n**Common Variants**:\n- Family History Researcher\n- Genealogical Researcher\n- Genealogiemedewerker (Dutch)\n- Lineage Researcher\n\n**Typical Domains**: Historical societies, genealogical societies, archives, libraries\n\n**Typical Responsibilities**:\n- Genealogical research services\n- Family history documentation\n- Maintaining genealogical databases\n- Teaching research methods\n- Assisting patron research\n- Indexing vital records", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Genealogist", - "type": "object" - }, - "GenealogyCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Genealogical documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "NobilityArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by NobilityArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "GenealogyCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "GenealogyCollection", - "type": "object" - }, - "GenealogyCommunity": { - "additionalProperties": false, - "description": "Family history and genealogy researchers.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "GenealogyCommunity", - "type": "object" - }, - "GenealogyDatabase": { - "additionalProperties": false, - "description": "Database of lineages for genealogical research.\n\n**PURPOSE**: Support family history research with searchable records\nof births, marriages, deaths, and family relationships.\n\n**CHARACTERISTICS**:\n- Vital records indexing\n- Family tree integration\n- DNA matching (some platforms)\n- Historical record transcription\n\n**EXAMPLES**: FamilySearch, Ancestry, MyHeritage", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q33270056" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "RESEARCH", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "GenealogyDatabase", - "type": "object" - }, - "GenealogyTopic": { - "additionalProperties": false, - "description": "Topic related to genealogical research and family history.\n\nIncludes: ancestry, family trees, descent lines, lineage research.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/TopicType" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/TopicType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "GenealogyTopic", - "type": "object" - }, - "GeneralHeritageTemplate": { - "additionalProperties": false, - "description": "Fallback template type for unclassified heritage queries.\n\n**Purpose**:\nUsed when a query doesn't fit specific templates.\nActs as catch-all for general heritage institution questions.\n\n**Relevant Queries**:\n- General heritage institution information\n- Cross-domain queries\n- Exploratory research", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "GeneralHeritageTemplate", - "type": "object" - }, - "GeneralStorageEnvironment": { - "additionalProperties": false, - "description": "General collection storage with basic climate control.\n\n**PURPOSE**: Provide basic environmental control suitable for\nmixed collections without specialized requirements.\n\n**CONDITIONS (ISO 11799:2015 basic guidance)**:\n- Temperature: 18-22\u00b0C (target 20\u00b0C)\n- Relative humidity: 45-55% (target 50%)\n- Light: General office-level lighting acceptable\n\n**ISO 11799:2015 CONTEXT**:\n- Basic parameters align with document storage standard\n- Suitable for less sensitive materials\n- Not recommended for high-value or sensitive items\n\n**SUITABLE FOR**:\n- Mixed collections without special needs\n- Low-risk materials\n- Temporary holding areas\n- Processing spaces\n\n**NOT SUITABLE FOR**:\n- Photographic materials\n- Film and magnetic media\n- Textiles and organic materials\n- Rare or valuable items\n\n**STANDARD REFERENCES**:\n- ISO 11799:2015 - Document storage (basic parameters)", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "GENERAL", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard": { - "description": "Reference to applicable ISO or EN standard for this environmental zone type.\n\nFormat: Standard identifier (e.g., \"ISO 11799\", \"ISO 18911\", \"EN 16893\")\n\nCommon preservation standards:\n- ISO 11799: Document storage requirements\n- ISO 18911: Film storage practices\n- ISO 18934: Multiple media archives storage\n- EN 16893: Heritage collection storage buildings\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "max_annual_light_exposure": { - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "requires_dark_storage": { - "description": "Whether dark (zero light) storage is required for this environmental zone.\n\nBased on ISO preservation standards:\n- Film storage (ISO 18911): Dark storage mandatory\n- Photographic (ISO 18920): Dark storage for extended-term\n- UK Archives (BS 4971): 0 lux for closed storage\n\nDark storage essential for:\n- Film negatives (especially color and early nitrate/acetate)\n- Daguerreotypes and early photographic processes\n- Cyanotypes and blueprint materials\n- Some magnetic media (tape)\n- Highly fugitive inks and dyes\n\nAccess provided through reading rooms or digitization requests.\nCumulative light damage is completely prevented.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_dust_free": { - "description": "Whether a dust-free or dust-controlled environment is required for this zone.\n\nBased on ISO preservation standards:\n- Magnetic tape (ISO 18923): Dust-free mandatory\n- Optical media (ISO 18938): Cleanroom for masters\n- Archives (ISO 11799): Dust control required\n\nISO 14644-1 Cleanliness Classes:\n- Class 8: General archive/museum (HEPA filtered)\n- Class 7: AV media storage (positive pressure)\n- Class 5: Digital master storage (cleanroom)\n\nDust-free essential for:\n- Magnetic tapes and audiovisual media\n- Optical discs (CD, DVD, Blu-ray)\n- Fine art and paintings (surface abrasion)\n- Photographic materials (scratches, embedded particles)\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_esd_protection": { - "description": "Whether electrostatic discharge (ESD) protection is required for this zone.\n\nBased on ISO/IEC standards:\n- Magnetic tape (ISO 18923): ESD protection required\n- Optical media (ISO 18938): ESD-safe handling mandatory\n- Electronics (IEC 61340-5-1): ESD control program\n\nESD protection measures include:\n- Conductive/dissipative flooring\n- Humidity control (40-60% RH reduces static)\n- ESD-safe packaging and equipment\n- Personnel grounding (wrist straps)\n\nESD protection essential for:\n- Hard drives and SSDs\n- LTO and other magnetic tapes\n- Optical media (CD, DVD, Blu-ray masters)\n- Electronic components and circuit boards\n- Born-digital heritage collections\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_uv_filter": { - "description": "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \u00b5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label", - "has_or_had_description" - ], - "title": "GeneralStorageEnvironment", - "type": "object" - }, - "GenerationEvent": { - "additionalProperties": false, - "description": "An event representing the generation or creation of an entity.\n**USAGE**: Used for tracking when and how something was generated, including: - Video chapter generation (manual, AI, imported) - Content extraction events - Automated processing activities - Confidence scoring for generated content\n**STRUCTURE**: - temporal_extent: When the generation occurred (TimeSpan) - has_or_had_provenance: Who/what performed the generation (Provenance) - has_or_had_description: Details about the generation process - has_or_had_score: Confidence score for the generated content (ConfidenceScore)\n**ONTOLOGY ALIGNMENT**: - Maps to prov:Generation (PROV-O generation event) - Also maps to schema:CreateAction (Schema.org action)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_provenance": { - "anyOf": [ - { - "$ref": "#/$defs/Provenance" - }, - { - "type": "null" - } - ], - "description": "Provenance information for this data element.\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\nBroadened from ProvenanceBlock to uriorcurie to resolve OWL ambiguous type warnings. This allows classes to narrow via slot_usage to: - `ProvenanceBlock` for comprehensive provenance tracking - `SourceDocument` for source document references - String URIs for simple provenance references\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming follows RiC-O convention indicating that provenance associations can change over time: - Additional provenance may be added as data is enriched - Provenance may be updated when verification occurs - Historical provenance preserved through versioning\n**REPLACES**: - `all_data_real` (auto-generated stub, string range) - `is_or_was_real` (RealnessStatus typed class) - `has_all_data_real_flag` (boolean flag, no provenance) - `has_or_had_observation_source_document` (bespoke slot, Rule 55)\n**EXAMPLE**: ```yaml has_or_had_provenance:\n data_source: \"public_linkedin_profile\"\n extraction_date: \"2025-01-14T12:00:00Z\"\n confidence_score: 0.95\n note: \"Verified production data\"\n```" - }, - "has_or_had_score": { - "anyOf": [ - { - "$ref": "#/$defs/ConfidenceScore" - }, - { - "type": "null" - } - ], - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "GenerationEvent", - "type": "object" - }, - "GenerationMethodEnum": { - "description": "Methods for generating video-derived text content.\n\nStandardized values for provenance tracking.", - "enum": [ - "ASR_AUTOMATIC", - "ASR_ENHANCED", - "MANUAL_TRANSCRIPTION", - "MANUAL_CORRECTION", - "CV_AUTOMATIC", - "CV_ENHANCED", - "MULTIMODAL", - "OCR", - "PLATFORM_PROVIDED", - "HYBRID", - "UNKNOWN" - ], - "title": "GenerationMethodEnum", - "type": "string" - }, - "GeoFeature": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_type", - "has_or_had_code" - ], - "title": "GeoFeature", - "type": "object" - }, - "GeoSpatialPlace": { - "additionalProperties": false, - "description": "Geospatial location with coordinates, geometry, and projections.\n\nCRITICAL DISTINCTION FROM CustodianPlace:\n\n| Aspect | CustodianPlace | GeoSpatialPlace |\n|--------|----------------|-----------------|\n| Nature | Nominal reference | Geospatial data |\n| Content | \"het herenhuis in de Schilderswijk\" | lat: 52.0705, lon: 4.2894 |\n| Purpose | Identify custodian by place name | Locate custodian precisely |\n| Ambiguity | May be vague (\"the mansion\") | Precise, measurable |\n| Source | Archival documents, oral history | GPS, cadastral surveys, geocoding |\n\n**TOOI Ontology Alignment**:\n\nThis class follows the TOOI pattern for geospatial data:\n- `tooi:BestuurlijkeRuimte` is a subclass of `geosparql:Feature` and `prov:Entity`\n- `tooi:BestuurlijkeRuimte-hasGeometry` \u2192 `geosparql:Geometry`\n- `tooi:RegistratieveRuimte` for administrative boundaries\n- `tooi:JuridischeRuimte` for legal jurisdiction boundaries\n\nLike TOOI, we separate:\n- **geosparql:Feature** (this class): The real-world place with location data\n- **geosparql:Geometry**: The mathematical representation (WKT, GeoJSON)\n\n**Use Cases**:\n\n1. **Building-level precision**: Museum building footprint (Polygon)\n2. **City-level approximation**: Heritage institution centroid (Point)\n3. **Administrative boundaries**: Archive jurisdiction area (MultiPolygon)\n4. **Historical boundaries**: Pre-merger municipal territory (Polygon + temporal_extent)\n\n**Relationship to CustodianPlace**:\n\nCustodianPlace.has_geospatial_location \u2192 GeoSpatialPlace\n\nA nominal place reference (\"Rijksmuseum\") links to its geospatial location\n(lat: 52.3600, lon: 4.8852, geometry: building footprint polygon).\n\n**Relationship to AuxiliaryPlace**:\n\nAuxiliaryPlace.has_geospatial_location \u2192 GeoSpatialPlace\n\nSecondary/subordinate locations (branch offices, storage depots, reading rooms)\ncan also link to precise geospatial coordinates. This enables:\n- Mapping all custodian locations (primary + auxiliary)\n- Spatial queries across an organization's entire footprint\n- Building footprints for off-site storage facilities\n- Historical boundary tracking for branch offices\n\n**Relationship to OrganizationalChangeEvent**:\n\nOrganizational changes may affect geographic location:\n- RELOCATION: New GeoSpatialPlace, old one gets temporal_extent.end_of_the_end\n- MERGER: Multiple locations \u2192 single primary + auxiliary locations\n- SPLIT: One location \u2192 multiple successor locations", - "properties": { - "coordinate_reference_system": { - "description": "Coordinate Reference System identifier.\nDefault: EPSG:4326 (WGS84).\n\nCommon CRS codes:\n- EPSG:4326 - WGS84 (GPS coordinates)\n- EPSG:28992 - Amersfoort / RD New (Dutch national grid)\n- EPSG:3857 - Web Mercator (web maps)\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_altitude": { - "anyOf": [ - { - "$ref": "#/$defs/Altitude" - }, - { - "type": "null" - } - ], - "description": "The altitude of a place." - }, - "has_or_had_coordinates": { - "description": "Geographic or planar coordinates.\n\nRange can be `Coordinates` (Geo/LatLon) or `PlanarCoordinates` (X/Y).", - "items": { - "$ref": "#/$defs/Coordinates", - "anyOf": [ - { - "$ref": "#/$defs/Coordinates" - }, - { - "$ref": "#/$defs/PlanarCoordinates" - } - ] - }, - "type": "array" - }, - "has_or_had_geofeature": { - "description": "Links a geospatial place to a geographic feature classification. MIGRATED from feature_class/feature_code per Rule 53. Follows RiC-O naming convention.", - "items": { - "$ref": "#/$defs/GeoFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_geographic_extent": { - "description": "Spatial extent or bounding region for an entity. May represent geographic coordinates (WKT format) or pixel coordinates (array format) depending on context.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_geometry": { - "description": "Indicates the geometry associated with an entity. MIGRATED from geometry_type/geometry_wkt per Rule 53. Follows GeoSPARQL naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Cadastral identifiers for this geospatial place. MIGRATION NOTE (2026-01-14): Replaces cadastral_id per slot_fixes.yaml. Use Identifier with identifier_scheme='cadastral' for parcel IDs. Netherlands: Kadaster perceelnummer format {gemeente}-{sectie}-{perceelnummer}", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "osm_id": { - "description": "OpenStreetMap identifier (node, way, or relation).\nFormat: {type}/{id} (e.g., \"way/123456789\")\n\nUse for:\n- Building footprints\n- Street-level detail\n- Community-verified boundaries\n", - "type": [ - "string", - "null" - ] - }, - "spatial_resolution": { - "description": "Level of spatial detail.\n\nValues:\n- BUILDING: Individual building footprint\n- PARCEL: Cadastral parcel\n- STREET: Street address level\n- NEIGHBORHOOD: Neighborhood/district\n- CITY: City/municipality centroid\n- REGION: Province/state level\n- COUNTRY: Country centroid\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_coordinates" - ], - "title": "GeoSpatialPlace", - "type": "object" - }, - "GeographicClaim": { - "additionalProperties": false, - "description": "Claim types for geographic/address components.\nMore granular than AddressClaim.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "GeographicClaim", - "type": "object" - }, - "GeographicExtent": { - "additionalProperties": false, - "description": "Geographic area covered by the finding aid's materials. Supports primary areas, secondary/related areas, and migration patterns.", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "inbound_from": { - "description": "Migration origin countries/regions (for migration guides)", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/GeoSpatialPlace" - }, - "type": [ - "array", - "null" - ] - }, - "international": { - "description": "International scope descriptions", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/ColonialStatus" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_located_in": { - "description": "links an entity to a place where it is or was located.\n\n**TEMPORAL SEMANTICS** (RiC-O style):\n\nThe \"is_or_was\" naming indicates that location can change over time.\n\n**BROADENED RANGE (Rule 55)**:\nRange broadened to `Any` (from City) to support multiple location types:\n- City / Settlement\n- Region / Province (e.g. EcclesiasticalProvince)\n- Country\n- Physical Site\n\n**DISTINCTION FROM is_or_was_located_within**:\n\n- `is_or_was_located_in`: Entity is AT a place (city/settlement level)\n- `is_or_was_located_within`: Entity is CONTAINED IN a larger place (hierarchical)\n\n**REPLACES**:\n\n- `city` (string slot) - Migrated to structured City class\n\n**USE CASES**:\n\n- Address city component (structured)\n- Auxiliary place city location\n- Any entity requiring city-level location\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "major_city": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "outbound_to": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "primary": { - "description": "Primary geographic areas covered", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "related": { - "description": "Related geographic areas (e.g., for WWII - Germany, Japan)", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "scope": { - "description": "Description of geographic scope", - "type": [ - "string", - "null" - ] - }, - "secondary": { - "description": "Secondary geographic areas (less prominent coverage)", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "GeographicExtent", - "type": "object" - }, - "GeographicScope": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "GeographicScope", - "type": "object" - }, - "GeographicScopeClaim": { - "additionalProperties": false, - "description": "Geographic area served by the organization.\nExamples: local, regional, national, international.\nSpecific areas: gemeente, provincie, regio.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "GeographicScopeClaim", - "type": "object" - }, - "Geometry": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_format": { - "description": "The format or file type of a resource or service response.\n\n**USAGE**:\nUsed for:\n- Response formats from APIs (JSON, XML, RDF)\n- File formats for documents (PDF, DOCX, TXT)\n- Media formats (JPEG, MP3, MP4)\n- Transcript formats (VTT, SRT, plain text)\n- Subtitle formats (WebVTT, SRT, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property\n- **Close**: `dct:format` - Dublin Core format\n- **Close**: `schema:encodingFormat` - Schema.org encoding format\n\n**Range**: `uriorcurie` (Rule 54)\nBroadened range to accept URI/CURIE references to format specifications.\nThis allows linking to IANA media types, format registries, or internal\nformat classes while resolving OWL ambiguous type warnings.\n\nClasses can narrow to specific format enums/classes via slot_usage.\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_type", - "has_or_had_format" - ], - "title": "Geometry", - "type": "object" - }, - "GeometryTypeEnum": { - "description": "OGC Simple Features geometry types", - "enum": [ - "POINT", - "LINESTRING", - "POLYGON", - "MULTIPOINT", - "MULTILINESTRING", - "MULTIPOLYGON", - "GEOMETRYCOLLECTION" - ], - "title": "GeometryTypeEnum", - "type": "string" - }, - "GeospatialDataCollection": { - "additionalProperties": false, - "description": "Special repository containing geospatial data collections.\n\n**PURPOSE**: Curate and provide access to thematic geospatial data\ncollections for research purposes.\n\n**CHARACTERISTICS**:\n- Curated spatial datasets\n- Thematic organization\n- Research data management\n- Citation support\n\n**EXAMPLES**: Archaeological survey data, historical boundary datasets", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q124418301" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "RESEARCH", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "GeospatialDataCollection", - "type": "object" - }, - "GeospatialDataRepository": { - "additionalProperties": false, - "description": "Repository specifically designed for geospatial data.\n\n**PURPOSE**: Store and provide access to geospatial datasets with\nappropriate metadata and access services.\n\n**CHARACTERISTICS**:\n- Geospatial metadata standards\n- OGC services (WMS, WFS)\n- Data download\n- Preview mapping\n\n**EXAMPLES**: National geodata portals, INSPIRE data nodes", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q124368518" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "RESEARCH", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "GeospatialDataRepository", - "type": "object" - }, - "GeospatialInformationRepository": { - "additionalProperties": false, - "description": "Repository for geospatial information resources.\n\n**PURPOSE**: Provide access to geographic information including\nmaps, spatial data, and location-based content.\n\n**CHARACTERISTICS**:\n- Geographic information\n- Location metadata\n- Spatial relationships\n- Place name authorities\n\n**EXAMPLES**: GeoNames, Getty TGN integrations", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q124368239" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "RESEARCH", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "GeospatialInformationRepository", - "type": "object" - }, - "GeospatialRepository": { - "additionalProperties": false, - "description": "Repository with geospatial content.\n\n**PURPOSE**: Provide access to geographic and spatial data for\nheritage research and visualization.\n\n**CHARACTERISTICS**:\n- GIS data formats\n- Coordinate reference systems\n- Spatial search\n- Map visualization\n\n**EXAMPLES**: Historical GIS repositories, archaeological spatial data", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q124368261" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "RESEARCH", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "GeospatialRepository", - "type": "object" - }, - "GiftAid": { - "additionalProperties": false, - "description": "UK Gift Aid scheme allowing charities to reclaim basic rate tax\non donations from UK taxpayers.\n\n**Benefits**:\n- Charity reclaims 25p for every \u00a31 donated\n- Higher-rate taxpayers claim additional relief\n- Works with one-time and regular donations\n\n**Requirements**:\n- Donor must be UK taxpayer\n- Donor signs Gift Aid declaration\n- Charity must be registered with HMRC\n\n**Regulatory Body**: HMRC", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "GiftAid", - "type": "object" - }, - "GiftShop": { - "additionalProperties": false, - "description": "Retail operation associated with a heritage custodian for selling merchandise,\nreproductions, books, and heritage-related products.\n\n**PURPOSE AND SCOPE**:\n\nMuseum gift shops, archive bookshops, and library retail spaces are important\nrevenue-generating operations that also serve educational and cultural missions:\n\n- **Revenue generation**: Support institutional operations through merchandise sales\n- **Mission extension**: Offer products related to collections and exhibitions\n- **Visitor experience**: Complete the visit with memorable takeaways\n- **Brand communication**: Extend institutional identity through products\n- **Educational outreach**: Books, educational materials, replicas for learning\n\n**PHYSICAL vs. DIGITAL PRESENCE**:\n\nGift shops can exist in multiple forms:\n\n1. **Physical shop** (on-site): Located within museum/archive building\n - Links to AuxiliaryPlace (physical location)\n - Has opening_hours, accepts_or_accepted (PaymentMethod)\n \n2. **Physical shop** (separate): Stand-alone retail location\n - Links to AuxiliaryPlace with type RETAIL_SPACE\n - May have separate street address, hours\n \n3. **Online shop** (e-commerce): Web-based retail platform\n - Links to AuxiliaryDigitalPlatform with type WEBSHOP\n - Has platform_url, shipping policies\n \n4. **Hybrid**: Both physical and online presence\n - Multiple links to AuxiliaryPlace AND AuxiliaryDigitalPlatform\n\n**SCHEMA.ORG ALIGNMENT**:\n\n`schema:Store` - \"A retail good store.\"\n\nKey properties:\n- `schema:openingHours` - Operating hours\n- `schema:acceptedPaymentMethod` - Payment options\n- `schema:priceRange` - Price level indication\n- `schema:currenciesAccepted` - Currency codes\n\n**GoodRelations Integration**:\n\nFor detailed product/offer modeling, GiftShop can link to:\n- `gr:Offering` - Specific product offers\n- `gr:BusinessEntity` - Shop as business entity\n- `gr:PaymentMethod` - Payment options\n\n**RELATIONSHIP TO CUSTODIAN HUB**:\n\n```\nCustodian (hub)\n \u251c\u2500\u2500 gift_shop \u2192 GiftShop (retail operations)\n \u2502 \u251c\u2500\u2500 physical_location \u2192 AuxiliaryPlace (shop location)\n \u2502 \u251c\u2500\u2500 online_shop \u2192 AuxiliaryDigitalPlatform (e-commerce)\n \u2502 \u251c\u2500\u2500 product_categories \u2192 ProductCategoryEnum[]\n \u2502 \u2514\u2500\u2500 revenue_data \u2192 Annual sales, visitor conversion\n \u2502\n \u2514\u2500\u2500 commercial_activities (broader commercial operations)\n```\n\n**USE CASES**:\n\n1. **Museum Shop** (Rijksmuseum):\n - Physical shop in museum foyer\n - Online shop at rijksmuseumshop.nl\n - Products: Reproductions, books, design objects\n \n2. **Archive Bookshop** (National Archives):\n - Small shop near reading room\n - Publications, finding aids, historical maps\n \n3. **Library Retail** (British Library):\n - Multiple retail spaces (shop, cafe, bookshop)\n - Extensive publication program\n \n4. **Pop-up Shop** (Exhibition):\n - Temporary retail for special exhibition\n - Exhibition catalog, themed merchandise\n\n**Example - Rijksmuseum Gift Shop**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n gift_shop:\n - has_or_had_identifier: \"https://nde.nl/ontology/hc/gift-shop/rijksmuseum-shop\" # was: shop_id\n has_or_had_label: # was: shop_name\n label_text: \"Rijksmuseum Shop\"\n shop_type: MUSEUM_SHOP\n has_or_had_description: # was: shop_description\n description_text: |\n Award-winning museum shop offering reproductions, design objects,\n books, and exclusive Rijksmuseum merchandise.\n physical_location:\n - place_name: \"Rijksmuseum Shop - Main Hall\"\n auxiliary_place_type: RETAIL_SPACE\n street_address: \"Museumstraat 1, Amsterdam\"\n online_shop:\n - platform_name: \"Rijksmuseum Online Shop\"\n platform_url: \"https://www.rijksmuseumshop.nl/\"\n auxiliary_platform_type: WEBSHOP\n product_categories:\n - REPRODUCTIONS\n - BOOKS\n - DESIGN_OBJECTS\n - JEWELRY\n - HOME_DECOR\n price_currency: EUR\n accepts_payment_methods:\n - CASH\n - CREDIT_CARD\n - DEBIT_CARD\n - MOBILE_PAYMENT\n opening_hours: \"09:00-18:00\"\n```\n\n**TEMPORAL VALIDITY**:\n\nGift shops can open/close independently of the main institution:\n- New shop location opened 2013 after renovation\n- Temporary pop-up during exhibition\n- Online shop launched 2010\n\nTrack with valid_from/valid_to dates.", - "properties": { - "accepts_or_accepted": { - "description": "Generic slot for things an institution accepts or has accepted.\n**TEMPORAL SEMANTICS** (RiC-O style): The \"accepts_or_accepted\" naming indicates policies can change: - Payment methods may be added/removed - External work acceptance policies change - Visiting scholar programs may start/end\n**USE CASES**: - Payment methods accepted (credit cards, cash, digital) - External work (conservation, digitization contracts) - Visiting scholars (research programs)\n**RANGE**: This is a generic slot - use slot_usage in classes to constrain the range to specific types (ExternalWork, PaymentMethod, VisitingScholar).", - "items": { - "$ref": "#/$defs/PaymentMethod" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_range": { - "description": "Links to a GrantRange instance representing a structured value range.\n\n**TEMPORAL SEMANTICS** (RiC-O style):\nThe \"has_or_had\" naming indicates that ranges can change over time:\n- Funding limits adjusted annually\n- Budget allocation varies by program year\n- Policy changes modify grant parameters\n\n**REPLACES**: `typical_grant_range` (string slot)\n\n**IMPROVEMENT OVER STRING**:\n- Structured min/max bounds\n- Currency-aware amounts\n- Comparable across programs\n- Machine-readable for analytics\n\n**CIDOC-CRM Alignment**:\nUses P43 has dimension as the primary predicate since ranges are\na form of dimensional measurement on entities.\n", - "items": { - "$ref": "#/$defs/PriceRange" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_revenue": { - "description": "The revenue or income of an organization or business.\n\n**Temporal Semantics** (RiC-O Pattern):\n\"hasOrHad\" indicates revenue from a past or present period.\n\n**Ontological Alignment**:\n- `schema:revenue`: The total amount of money received by the business before any expenses are deducted.\n\n**Range**:\n- `Revenue` class (which maps to `schema:MonetaryAmount`).\n", - "items": { - "$ref": "#/$defs/Revenue" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_supplier": { - "description": "Supplier relationship for an organization or commercial operation.\n\n**USAGE**:\nUsed for modeling business relationships with suppliers:\n- Merchandise suppliers for gift shops\n- Print-on-demand partners\n- Publication distributors\n- Service providers\n- Licensing partners\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadSupplier` - Heritage Custodian property\n- **Close**: `schema:supplier` - Schema.org supplier relationship\n- **Close**: `gr:hasBrand` - GoodRelations brand/supplier\n- **Related**: `org:linkedTo` - W3C Org general organizational link\n\n**TEMPORAL SEMANTICS** (Rule 39):\nThe \"hasOrHad\" pattern indicates this relationship may have temporal validity.\nSupplier relationships can change over time - contracts end, new partnerships form.\n\n**MIGRATION NOTE**:\nCreated to replace bespoke `supplier_relationship` slot per Rule 53/56.\nProvides structured Supplier class instead of plain string values.\n", - "items": { - "$ref": "#/$defs/Supplier" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "managed_by": { - "description": "Management structure for the gift shop.\n\nOptions:\n- In-house: Managed by museum/archive staff\n- Outsourced: Third-party retail operator\n- Franchise: Licensed operation\n- Partnership: Joint venture with retail partner\n\nInclude operator name if outsourced.\n", - "type": [ - "string", - "null" - ] - }, - "online_shop": { - "description": "Online e-commerce platform(s) for this gift shop.\n\nLinks to AuxiliaryDigitalPlatform instances with type WEBSHOP.\n\nSchema.org: url for web presence.\n\nMay be null for physical-only retail operations.\n", - "items": { - "$ref": "#/$defs/AuxiliaryDigitalPlatform" - }, - "type": [ - "array", - "null" - ] - }, - "opening_hour": { - "description": "Operating hours for the physical gift shop.\n\nSchema.org: openingHours in Schema.org format.\n\nFormat: \"Mo-Fr 09:00-17:00, Sa 10:00-18:00, Su 11:00-17:00\"\n\nMay differ from museum hours (shop may close earlier).\n", - "type": [ - "string", - "null" - ] - }, - "physical_location": { - "description": "Physical retail location(s) for this gift shop.\n\nLinks to AuxiliaryPlace instances representing:\n- On-site shop within museum building\n- Separate retail space at different address\n- Multiple locations (branch shops)\n\nSchema.org: location for physical presence.\n\nMay be null for online-only retail operations.\n", - "items": { - "$ref": "#/$defs/AuxiliaryPlace" - }, - "type": [ - "array", - "null" - ] - }, - "price_currency": { - "description": "Primary currency accepted (ISO 4217 code).\n\nSchema.org: priceCurrency for currency specification.\n\nExamples: EUR, USD, GBP, JPY\n", - "pattern": "^[A-Z]{3}$", - "type": "string" - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "shop_type": { - "$ref": "#/$defs/GiftShopTypeEnum", - "description": "Type of gift shop using GiftShopTypeEnum classification.\n\nTypes include:\n- MUSEUM_SHOP: General museum merchandise\n- BOOKSHOP: Primarily books and publications\n- DESIGN_STORE: Design objects and reproductions\n- SPECIALTY_SHOP: Themed or collection-specific\n- POP_UP: Temporary retail for exhibitions\n- KIOSK: Small-format retail point\n\nDublin Core: type for classification.\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "square_meters": { - "description": "Retail floor space in square meters.\n\nSchema.org: floorSize for area measurement.\n\nIndicator of shop scale and capacity.\n", - "type": [ - "number", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "price_currency", - "refers_to_custodian", - "has_or_had_identifier", - "has_or_had_label", - "shop_type" - ], - "title": "GiftShop", - "type": "object" - }, - "GiftShopTypeEnum": { - "description": "Types of retail operations for heritage custodians.\n\nClassifies the primary focus and format of the gift shop.\n\nAligns with Schema.org schema:Store and subtypes.", - "enum": [ - "MUSEUM_SHOP", - "BOOKSHOP", - "DESIGN_STORE", - "SPECIALTY_SHOP", - "POP_UP", - "KIOSK", - "ONLINE_ONLY", - "CAFE_SHOP", - "CHILDREN_SHOP", - "PUBLICATION_CENTER" - ], - "title": "GiftShopTypeEnum", - "type": "string" - }, - "GlazingTechnique": { - "additionalProperties": false, - "description": "Application of vitreous coating to ceramics.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "GlazingTechnique", - "type": "object" - }, - "GluePasteLining": { - "additionalProperties": false, - "description": "Traditional lining using animal glue and flour paste.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "GluePasteLining", - "type": "object" - }, - "GoodCondition": { - "additionalProperties": false, - "description": "Good physical condition with minor wear or aging", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "GoodCondition", - "type": "object" - }, - "GovernanceAuthority": { - "additionalProperties": false, - "description": "The authority that exercises governance over the entity or institution.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": [ - "string", - "null" - ] - } - }, - "title": "GovernanceAuthority", - "type": "object" - }, - "GovernanceModelEnum": { - "description": "How the identifier system is governed and decisions are made.", - "enum": [ - "ISO_TC", - "COUNCIL", - "SINGLE_AUTHORITY", - "COMMUNITY_CONSENSUS", - "MEMBERSHIP_BOARD", - "PROPRIETARY", - "GOVERNMENT", - "ACADEMIC", - "INTERGOVERNMENTAL", - "COMMUNITY", - "INDUSTRY_BODY" - ], - "title": "GovernanceModelEnum", - "type": "string" - }, - "GovernanceRole": { - "additionalProperties": false, - "description": "A role within a governance structure (e.g., Voting Member, Observer).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "GovernanceRole", - "type": "object" - }, - "GovernanceStructure": { - "additionalProperties": false, - "description": "Organizational governance structure including departments, branches, and units.\nUsed to model the internal structure of complex organizations.\n\nMaps to:\n- org:hasUnit (W3C Organization Ontology)\n- org:OrganizationalUnit", - "properties": { - "governance_body": { - "description": "Top-level governance body (board, trustees, council).\nNote: Range references CustodianLegalStatus (circular dependency handled at runtime).\n", - "type": [ - "string", - "null" - ] - }, - "governance_description": { - "description": "Description of the governance structure and its characteristics", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "id": { - "description": "Unique identifier for the governance structure", - "type": "string" - }, - "organizational_units": { - "description": "List of organizational units within the structure.\nNote: Range references CustodianLegalStatus (circular dependency handled at runtime).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "structure_type": { - "description": "Type of governance structure.\nExamples: \"hierarchical\", \"matrix\", \"flat\", \"network\"\n", - "type": "string" - } - }, - "required": [ - "id", - "structure_type" - ], - "title": "GovernanceStructure", - "type": "object" - }, - "GoverningBody": { - "additionalProperties": false, - "description": "The organisation or body that established and governs this agenda or entity.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": [ - "string", - "null" - ] - } - }, - "title": "GoverningBody", - "type": "object" - }, - "GovernmentAdministrationTopic": { - "additionalProperties": false, - "description": "Topic related to government and public administration.\n\nIncludes: municipal records, provincial archives,\ngovernmental correspondence, policy documents.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/TopicType" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/TopicType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "GovernmentAdministrationTopic", - "type": "object" - }, - "GovernmentAdministrativeFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Government ministry and agency administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "NationalArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by NationalArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "GovernmentAdministrativeFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "GovernmentAdministrativeFonds", - "type": "object" - }, - "GovernmentArchive": { - "additionalProperties": false, - "description": "Official archive of a government. Government archives preserve records created or received by governmental bodies in the course of their activities. They document the functions, policies, decisions, and operations of the state at various levels (national, regional, local). Government archives are typically public institutions with legal mandates to preserve and provide access to official records.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "GovernmentArchive", - "type": "object" - }, - "GovernmentArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by GovernmentArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "GovernmentArchiveRecordSetType", - "type": "object" - }, - "GovernmentHierarchy": { - "additionalProperties": false, - "description": "A structural unit or level within a government hierarchy.\nUsed to model the administrative context of official institutions.\n\n**Structure**:\n- Links to AdministrativeLevel via has_or_had_tier.\n- Can be used with is_or_was_part_of to place an institution in the hierarchy.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_tier": { - "$ref": "#/$defs/AdministrativeLevel", - "description": "The tier, level, or classification within a hierarchy.\n\n**Temporal Semantics** (RiC-O Pattern):\n\"hasOrHad\" indicates the tier assignment may change over time (e.g., reclassification).\n\n**Ontological Alignment**:\n- `org:classification`: Classifies an organization or unit (e.g., into a level).\n\n**Usage**:\nUsed in GovernmentHierarchy to link to AdministrativeLevel.\n" - } - }, - "required": [ - "has_or_had_tier" - ], - "title": "GovernmentHierarchy", - "type": "object" - }, - "GrantRange": { - "additionalProperties": false, - "description": "Structured representation of a funding or grant amount range.\n\n**PURPOSE**:\nReplaces string-based grant ranges like \"\u20ac100K-\u20ac500K\" with structured data\nenabling comparison, filtering, and currency-aware analytics.\n\n**STRUCTURE** (per slot_fixes.yaml):\n- `minimal_of_minimal` \u2192 Quantity (branch 1): Lower bound with amount and currency\n- `maximal_of_maximal` \u2192 Quantity (branch 2): Upper bound with amount and currency\n\n**CIDOC-CRM Alignment**:\nMaps to E54_Dimension which represents quantifiable properties,\nusing P90a/P90b for lower/upper value limits.\n\n**USE CASES**:\n- Heritage grant programs (Mondriaan Fund, EU Creative Europe)\n- Digitization funding ranges\n- Conservation project budgets\n- Research grant parameters\n\n**EXAMPLE** - Creative Europe Grant:\n```yaml\nhas_or_had_range:\n - minimal_of_minimal:\n quantity_value: 60000\n has_or_had_measurement_unit:\n unit_label: \"EUR\"\n maximal_of_maximal:\n quantity_value: 200000\n has_or_had_measurement_unit:\n unit_label: \"EUR\"\n range_description: \"Small-scale cooperation projects\"\n```", - "properties": { - "maximal_of_maximal": { - "description": "Upper bound value of a range (CIDOC-CRM pattern for dimensional ranges).\n\n**CIDOC-CRM Alignment**:\nMaps to P90b_has_upper_value_limit which defines the highest value that\na dimension may have within an instance of E54 Dimension.\n\n**USE CASE - Grant Ranges**:\nFor grant funding ranges like \"\u20ac100K-\u20ac500K\":\n- minimal_of_minimal: Quantity(100000, EUR)\n- maximal_of_maximal: Quantity(500000, EUR)\n\n**TEMPORAL CONTEXT**:\nNamed \"maximal_of_maximal\" (not just \"maximum\") to acknowledge that the\nupper bound itself may have uncertainty - this is the maximum of the maximum.\n", - "type": [ - "integer", - "null" - ] - }, - "minimal_of_minimal": { - "description": "Lower bound value of a range (CIDOC-CRM pattern for dimensional ranges).\n\n**CIDOC-CRM Alignment**:\nMaps to P90a_has_lower_value_limit which defines the lowest value that\na dimension may have within an instance of E54 Dimension.\n\n**USE CASE - Grant Ranges**:\nFor grant funding ranges like \"\u20ac100K-\u20ac500K\":\n- minimal_of_minimal: Quantity(100000, EUR)\n- maximal_of_maximal: Quantity(500000, EUR)\n\n**TEMPORAL CONTEXT**:\nNamed \"minimal_of_minimal\" (not just \"minimum\") to acknowledge that the\nlower bound itself may have uncertainty - this is the minimum of the minimum.\n", - "type": [ - "integer", - "null" - ] - }, - "range_currency": { - "description": "ISO 4217 currency code for the range (convenience field).\nShould match currency in minimal_of_minimal/maximal_of_maximal Quantities.\n", - "pattern": "^[A-Z]{3}$", - "type": [ - "string", - "null" - ] - }, - "range_description": { - "description": "Human-readable description of what this range represents.", - "type": [ - "string", - "null" - ] - }, - "range_notes": { - "description": "Additional notes about range applicability or conditions.", - "type": [ - "string", - "null" - ] - } - }, - "title": "GrantRange", - "type": "object" - }, - "GrantRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Grant and funding records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "FoundationArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by FoundationArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "GrantRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "GrantRecordSeries", - "type": "object" - }, - "GrantsFunction": { - "additionalProperties": false, - "description": "Grants function: grant writing, foundation relations, grant reporting, compliance.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "GrantsFunction", - "type": "object" - }, - "GraphDatabase": { - "additionalProperties": false, - "description": "Graph database for relationship-heavy data.\nExamples: Neo4j, Amazon Neptune, JanusGraph, Blazegraph", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "GraphDatabase", - "type": "object" - }, - "GraphQLAPI": { - "additionalProperties": false, - "description": "GraphQL query language API.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "GraphQLAPI", - "type": "object" - }, - "GraphQLEndpoint": { - "additionalProperties": false, - "description": "Classification for GraphQL API endpoints.\n\n**Protocol**: GraphQL\n**Purpose**: Flexible query language for APIs\n**Standard**: https://graphql.org/\n\n**Heritage Sector Usage**:\n\nGraphQL adoption growing in heritage sector:\n- Flexible data retrieval (request exactly what you need)\n- Single endpoint for complex queries\n- Strong typing and introspection\n\n**Examples**: Some modern museum APIs, Europeana experiments", - "properties": { - "has_or_had_description": { - "description": "Description of what this endpoint type represents.\n\nSKOS: definition for the meaning of the concept.\n\nShould explain:\n- What protocol/standard this type implements\n- Primary use cases\n- Target audience (harvesters, researchers, developers)\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_format": { - "description": "The format or file type of a resource or service response.\n\n**USAGE**:\nUsed for:\n- Response formats from APIs (JSON, XML, RDF)\n- File formats for documents (PDF, DOCX, TXT)\n- Media formats (JPEG, MP3, MP4)\n- Transcript formats (VTT, SRT, plain text)\n- Subtitle formats (WebVTT, SRT, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property\n- **Close**: `dct:format` - Dublin Core format\n- **Close**: `schema:encodingFormat` - Schema.org encoding format\n\n**Range**: `uriorcurie` (Rule 54)\nBroadened range to accept URI/CURIE references to format specifications.\nThis allows linking to IANA media types, format registries, or internal\nformat classes while resolving OWL ambiguous type warnings.\n\nClasses can narrow to specific format enums/classes via slot_usage.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Unique identifier for this endpoint type.\n\nFormat: URI within the NDE Heritage Custodian ontology namespace.\n\nExample: \"https://nde.nl/ontology/hc/endpoint-type/oai-pmh\"\n", - "type": "string" - }, - "has_or_had_method": { - "description": "A method associated with an activity, process, or entity.\n\n**USAGE**:\nUsed for:\n- HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod\n- Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod\n- API interaction methods\n\n**BROADENED RANGE**:\nRange broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "heritage_sector_usage": { - "description": "Description of how this endpoint type is used in the heritage sector.\n\nSKOS: scopeNote for usage context.\n\nShould explain:\n- Primary use cases in GLAM institutions\n- Which institution types commonly use this\n- Integration with aggregators (Europeana, DPLA, etc.)\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_used_in": { - "description": "The context in which something is used.", - "items": { - "$ref": "#/$defs/HeritageSector" - }, - "type": [ - "array", - "null" - ] - }, - "narrower_type": { - "description": "Child/narrower endpoint types in the hierarchy.\n\nSKOS: narrower for hierarchical relationship.\n\nExample: DataServiceEndpointType narrower includes OAIPMHEndpointType\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "protocol_name": { - "description": "Name of the protocol or standard this endpoint type implements.\n\nDublin Core: conformsTo for standard compliance.\n\nExamples:\n- \"OAI-PMH\" (Open Archives Initiative Protocol for Metadata Harvesting)\n- \"IIIF Image API\" (International Image Interoperability Framework)\n- \"SPARQL\" (SPARQL Protocol and RDF Query Language)\n- \"REST\" (Representational State Transfer)\n- \"SRU\" (Search/Retrieve via URL)\n", - "type": "string" - }, - "protocol_version": { - "description": "Version of the protocol this endpoint type supports.\n\nSchema.org: version for protocol version.\n\nExamples:\n- \"2.0\" (OAI-PMH)\n- \"3.0\" (IIIF Image API)\n- \"1.1\" (SPARQL)\n", - "type": [ - "string", - "null" - ] - }, - "related_types": { - "description": "Related endpoint types (non-hierarchical relationship).\n\nSKOS: related for associative relationships.\n\nExamples:\n- OAIPMHEndpointType related to AtomFeedType (both for syndication)\n- IIIFImageAPIType related to IIIFPresentationAPIType (same family)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specification_url": { - "description": "URL to the official specification document for this protocol.\n\nSchema.org: documentation for specification reference.\n\nExamples:\n- \"http://www.openarchives.org/OAI/openarchivesprotocol.html\" (OAI-PMH)\n- \"https://iiif.io/api/image/3.0/\" (IIIF Image API 3.0)\n- \"https://www.w3.org/TR/sparql11-protocol/\" (SPARQL 1.1)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "type_name": { - "description": "Human-readable name for this endpoint type.\n\nSKOS: prefLabel for preferred human-readable name.\n\nExamples:\n- \"OAI-PMH Endpoint\"\n- \"Search API\"\n- \"IIIF Image Server\"\n- \"SPARQL Endpoint\"\n", - "type": "string" - } - }, - "required": [ - "has_or_had_identifier", - "type_name", - "protocol_name" - ], - "title": "GraphQLEndpoint", - "type": "object" - }, - "Group": { - "additionalProperties": false, - "description": "An organizational group or team.\n\n**USAGE**:\nUsed for:\n- Management groups\n- Teams\n- Departments\n- Committees", - "properties": { - "group_name": { - "description": "Name of the group", - "type": "string" - }, - "group_type": { - "description": "Type of group (TEAM, DEPARTMENT, COMMITTEE)", - "type": [ - "string", - "null" - ] - }, - "member_count": { - "description": "Number of members", - "type": [ - "integer", - "null" - ] - } - }, - "required": [ - "group_name" - ], - "title": "Group", - "type": "object" - }, - "GroupAgent": { - "additionalProperties": false, - "description": "Agent type for informal groups or collectives.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_code" - ], - "title": "GroupAgent", - "type": "object" - }, - "GrowthRate": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "GrowthRate", - "type": "object" - }, - "HALCAdm1Code": { - "additionalProperties": false, - "description": "HALC administrative level 1 code.", - "properties": { - "has_or_had_scheme": { - "anyOf": [ - { - "$ref": "#/$defs/IdentifierScheme" - }, - { - "type": "null" - } - ], - "description": "Identifier scheme." - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "$ref": "#/$defs/IdentifierValue" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "HALCAdm1Code", - "type": "object" - }, - "HALCAdm2Name": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "HALCAdm2Name", - "type": "object" - }, - "HTTPMethod": { - "additionalProperties": false, - "description": "Represents an HTTP request method supported by a heritage institution's API or web service. Common methods include GET (retrieve), POST (create), PUT (update), DELETE (remove), and PATCH (partial update).", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "HTTPMethod", - "type": "object" - }, - "HTTPMethodEnum": { - "description": "HTTP methods supported for API requests.", - "enum": [ - "GET", - "POST", - "BOTH" - ], - "title": "HTTPMethodEnum", - "type": "string" - }, - "HTTPStatusCode": { - "additionalProperties": false, - "description": "An HTTP status code.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "HTTPStatusCode", - "type": "object" - }, - "HVACClimateControl": { - "additionalProperties": false, - "description": "Full HVAC - heating, ventilation, and air conditioning with temperature\nand typically humidity control.\n\n**TYPICAL USE CASES**:\n- Museum collection storage\n- Archive repositories\n- Special collections libraries\n- Conservation labs\n\n**CAPABILITIES**:\n- Temperature: Precise control (typically \u00b11-2\u00b0C)\n- Humidity: Controlled (typically \u00b13-5% RH)\n- Air quality: Filtered, controlled air changes", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/ClimateControlType" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "HVACClimateControl", - "type": "object" - }, - "HandsOnFacility": { - "additionalProperties": false, - "description": "Hands-on facility.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "HandsOnFacility", - "type": "object" - }, - "HeatedClimateControl": { - "additionalProperties": false, - "description": "Heating-only climate control - prevents freezing, no cooling or humidity control.\n\n**TYPICAL USE CASES**:\n- Warehouses in cold climates\n- Unheated outbuildings needing freeze protection\n- Basic storage areas without preservation requirements\n\n**CAPABILITIES**:\n- Temperature: Above freezing (typically 10-15\u00b0C minimum)\n- Humidity: Uncontrolled\n- Air quality: Uncontrolled", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/ClimateControlType" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "HeatedClimateControl", - "type": "object" - }, - "Heritage": { - "additionalProperties": false, - "description": "The domain of heritage (Cultural, Natural, Intangible).\n\nUsed to tag organizations, projects, or activities as heritage-related.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Heritage", - "type": "object" - }, - "HeritageDomain": { - "additionalProperties": false, - "description": "Cultural heritage domain", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "HeritageDomain", - "type": "object" - }, - "HeritageForm": { - "additionalProperties": false, - "description": "A form of heritage.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "HeritageForm", - "type": "object" - }, - "HeritagePractice": { - "additionalProperties": false, - "description": "A heritage practice.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "HeritagePractice", - "type": "object" - }, - "HeritageSector": { - "additionalProperties": false, - "description": "A specific sector within cultural heritage.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "HeritageSector", - "type": "object" - }, - "HeritageSocietyType": { - "additionalProperties": false, - "description": "Heritage societies, historical associations, and collecting societies that preserve\nspecialized or local heritage through volunteer engagement, collecting, research, and\ncommunity education.\n\nOntology Alignment:\n- SKOS: skos:Concept (classification term in GLAM taxonomy)\n- Schema.org:\n - schema:Organization (general organization type)\n - schema:NGO (non-profit, non-governmental organization)\n - schema:SportsOrganization (adapted for hobby/collecting organizations)\n- FOAF: foaf:Organization (Friend of a Friend ontology for membership networks)\n\nKey Distinctions:\n- From MUSEUM (M): Heritage societies are volunteer-driven membership organizations with\n small collections, not professional museums with paid curatorial staff and large exhibitions.\n- From ARCHIVE (A): Heritage societies may maintain small archives, but are volunteer-based\n and community-focused, not professional archival institutions with trained archivists.\n- From RESEARCH_CENTER (R): Societies conduct amateur research (genealogy, local history),\n not professional academic research with peer-reviewed publications.\n- From NGO (N): Heritage societies are NGOs, but classified as S (Society) when focused on\n collecting or heritage preservation with membership structure.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_activity": { - "description": "Activities associated with this entity (custodian, collection, person, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity may have been associated with activities that\nare now concluded.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P9_consists_of` - CIDOC-CRM predicate for\n compositional relationships between activities/events\n- **Close**: `prov:wasAssociatedWith` - PROV-O predicate linking entities\n to activities they participated in\n- **Related**: `rico:hasOrHadActivity` - RiC-O predicate for record-keeping\n activities\n- **Related**: `schema:potentialAction` - Schema.org for actions associated\n with an entity\n\n**Range**:\nValues are instances of `Activity` class or its subclasses:\n- CurationActivity - Collection management activities\n- ConservationActivity - Preservation and conservation\n- CommercialActivity - Commercial operations\n- ResearchActivity - Research and documentation\n- EducationalActivity - Educational programs\n- ExhibitionActivity - Exhibition-related activities\n\n**Use Cases**:\n- Link custodian to curation activities (inventories, digitization)\n- Link collection to conservation activities\n- Link person to research activities\n- Track activity history over time\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^(https://nde\\.nl/ontology/hc/type/[a-z-]+/[QP][0-9]+|Q[0-9]+)$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "items": { - "$ref": "#/$defs/CollectionScope" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/Program" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "is_or_was_published_at": { - "description": "Publications produced by the society, modeled as structured publication events. MIGRATED from publication_activity (string list) per Rule 53/56 (2026-01-18). Each PublicationEvent captures: - has_or_had_label: Publication name/description (e.g., \"Quarterly journal 'Oud-Leiden'\") - temporal_extent: When the publication started/continues (using CIDOC-CRM TimeSpan) Publication Types Covered: - Periodicals: Journals, newsletters, yearbooks - Monographs: Research publications, exhibition catalogs, collection catalogs - Digital: Websites, blogs, podcasts, social media Examples: - \"Quarterly journal 'Oud-Leiden' (founded 1925) with local history articles\" - \"Annual numismatic journal + monthly newsletter; all digitized back to 1950\" - \"Bi-monthly newsletter; occasional monographs on local history\" ", - "items": { - "$ref": "#/$defs/PublicationEvent" - }, - "type": [ - "array", - "null" - ] - }, - "membership_size": { - "description": "Number of members and membership structure. Size Categories: - Small (1-50 members): Local heemkundekringen, village history societies - Medium (51-500 members): Regional societies, specialized collecting clubs - Large (501-5,000 members): National genealogical societies, major numismatic clubs - Very large (5,000+ members): International societies, major learned societies Membership Types: - Individual members: Regular dues-paying members - Family memberships: Household memberships - Institutional members: Libraries, museums, universities - Honorary members: Recognized experts or long-serving members - Student members: Reduced-rate memberships for students - Life members: One-time payment for lifetime membership Membership Benefits: - Publications: Journals, newsletters, yearbooks - Events: Lectures, field trips, annual meetings - Library access: Society library or reading room - Research support: Access to collections, databases - Networking: Connecting with fellow enthusiasts Membership Demographics: - Age distribution (often skews older for heritage societies) - Geographic distribution (local, regional, national, international) - Expertise levels (amateur enthusiasts to professional scholars) Growth Trends: - Declining membership (common in many heritage societies) - Aging membership (challenges for succession) - Digital membership (remote members via online access) Examples: - \"120 members (mostly local residents of Leiden and environs)\" - \"450 members across Netherlands and Belgium (Dutch-speaking numismatists)\" - \"8,000 members worldwide (largest genealogical society in US)\" - \"75 members (declining from peak of 150 in 1980s)\" This field captures the community scale and member engagement. ", - "type": [ - "string", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "society_focus": { - "description": "Primary focus area or specialty of the heritage society. Local Heritage (Heemkundekringen): - Local history: Village/town/neighborhood history - Regional heritage: Provincial or regional cultural traditions - Community archives: Preserving local records and photographs - Dialect preservation: Local language and oral traditions - Built heritage: Historic buildings, monuments, streetscapes Specialized Collecting: - Numismatics: Coins, medals, banknotes, tokens - Philately: Stamps, postal history, covers, cancellations - Ephemera: Trade cards, postcards, advertising, labels - Transportation: Railway history, automotive, aviation, maritime - Military history: Uniforms, medals, equipment, battles - Industrial heritage: Tools, machinery, company records Genealogical Research: - Family history: Tracing lineages, family trees - Vital records: Birth, marriage, death records - Immigration research: Passenger lists, naturalization records - Ethnic heritage: Preserving immigrant community histories Archaeological/Antiquarian: - Archaeological surveys: Local excavations, finds recording - Antiquarian studies: Historical objects, curiosities - Architectural history: Building documentation, conservation advocacy Thematic Heritage: - Agricultural heritage: Farming tools, rural life - Maritime heritage: Shipwrecks, fishing, coastal communities - Religious heritage: Church history, religious artifacts - Literary heritage: Authors, manuscripts, book collecting Examples: - \"Local history of Leiden and surroundings (heemkundekring)\" - \"Dutch numismatics: coins and medals from 1500-present\" - \"Family history and genealogy of New England families\" - \"Railway heritage of the Netherlands: rolling stock, stations, memorabilia\" This field defines the heritage domain the society preserves and studies. ", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "HeritageSocietyType", - "type": "object" - }, - "HeritageSocietyTypeEnum": { - "description": "", - "enum": [ - "ADVOCACY_GROUP", - "AMATEUR_FILM_CLUB", - "ARCHAEOLOGICAL_SOCIETY", - "ARCHIVE_ASSOCIATION", - "ASSOCIATION", - "BODEGA", - "CHARITABLE_ORGANIZATION", - "CLOSED_SPACE", - "CLUB", - "COLONIAL_SOCIETY", - "CONVENIENCE_STORE", - "COOPERATIVE", - "COOPERATIVE_SOCIETY", - "CULTURAL_ASSOCIATION", - "FILM_SOCIETY", - "GENEALOGICAL_SOCIETY", - "GROCERY_STORE", - "HERALDIC_SOCIETY", - "HERITAGE_SOCIETY", - "HISTORICAL_SOCIETY", - "HISTORICAL_SOCIETY_1", - "HISTORICAL_SOCIETY_MUSEUM", - "HISTORY_WORKSHOP", - "JURIDICAL_PERSON", - "LEARNED_SOCIETY", - "LINEAGE_SOCIETY", - "LOCAL_HERITAGE_ASSOCIATION_IN_SWEDEN", - "MEMBERSHIP_ORGANIZATION", - "ORGANIZATION", - "PUBLIC_SPACE", - "REGIONAL_ARTS_BOARD", - "SOCIAL_ORGANIZATION", - "SOCIAL_SPACE", - "SPECIAL_INTEREST_GROUP", - "VOLUNTARY_ASSOCIATION", - "VOLUNTARY_ASSOCIATION_1" - ], - "title": "HeritageSocietyTypeEnum", - "type": "string" - }, - "HeritageStatus": { - "additionalProperties": false, - "description": "Official designation status.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "HeritageStatus", - "type": "object" - }, - "HeritageType": { - "additionalProperties": false, - "description": "Heritage classification concept.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "HeritageType", - "type": "object" - }, - "HeritageTypeEnum": { - "description": "Single-letter heritage sector classification codes for person data.\nUsed to classify individuals' professional relevance to heritage sectors.", - "enum": [ - "G", - "L", - "A", - "M", - "O", - "R", - "C", - "U", - "B", - "E", - "S", - "F", - "I", - "X", - "P", - "H", - "D", - "N", - "T" - ], - "title": "HeritageTypeEnum", - "type": "string" - }, - "HighDetectionLevel": { - "additionalProperties": false, - "description": "High confidence detection level (0.9+ confidence).\n\n**Use Case**: Production display, public-facing content.\n\nHigh confidence detections have been verified to high accuracy standards\nand are suitable for automated display without human review.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "HIGH", - "pattern": "^[A-Z_]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "High Confidence", - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "HighDetectionLevel", - "type": "object" - }, - "Historian": { - "additionalProperties": false, - "description": "Historian conducting historical research and documentation for the organization.\n\n**Official Title vs De Facto Work**:\nFormally focused on historical research, but often involved in publications,\npublic lectures, exhibition development, and educational programming.\n\n**Common Variants**:\n- Local Historian\n- Society Historian\n- House Historian\n- Streekhistoricus (Dutch)\n- Research Historian\n\n**Typical Domains**: Historical societies, heritage associations, local history groups, house museums\n\n**Typical Responsibilities**:\n- Conducting historical research\n- Writing articles and publications\n- Answering research inquiries\n- Documenting local/regional history\n- Contributing to exhibitions\n- Mentoring volunteer researchers", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Historian", - "type": "object" - }, - "HistoricBuilding": { - "additionalProperties": false, - "description": "Historic building owned, managed, or stewarded by a heritage custodian.\n\n**DEFINITION**:\n\nA HistoricBuilding is a building of historical, architectural, or cultural\nsignificance that is owned or managed by a heritage custodian as a secondary\nproperty. This may be a historic house museum, heritage property, monument,\nor protected building separate from the custodian's main facility.\n\n**GETTY AAT ALIGNMENT**:\n\n`aat:300005425` (historic buildings) - \"Buildings that are historically\nsignificant, typically old, and often protected or preserved.\"\n\n**WIKIDATA TYPE LINKAGE (FeatureTypeEnum Subset)**:\n\nHistoric buildings can be classified using relevant types from FeatureTypeEnum\n(298 types). Relevant building-related types include:\n\n- Q35112 (monument)\n- Q811979 (architectural structure)\n- Q4989906 (monument)\n- Q1081138 (historic house museum)\n- Q3947 (house)\n- Q16560 (palace)\n- Q23413 (castle)\n- Q44539 (temple)\n- Q317557 (manor house)\n\n**DISTINCTION FROM CustodianPlace**:\n\n| Property | CustodianPlace | HistoricBuilding |\n|----------|----------------|------------------|\n| **Role** | Main headquarters | Secondary property |\n| **Operations** | Primary operations | May be separate from operations |\n| **Visitation** | Primary visitor destination | May be separate attraction |\n\n**USE CASES**:\n\n1. **Historic House Museum Property**:\n ```yaml\n HistoricBuilding:\n historic_building_id: \"https://nde.nl/ontology/hc/aux/mauritshuis-johan-de-witt\"\n historic_building_name: \"Johan de Witthuis\"\n feature_type_classification: HISTORIC_HOUSE_MUSEUM\n construction_date: \"1650\"\n architectural_style: \"Dutch Golden Age\"\n ```\n\n2. **Heritage Foundation Property**:\n ```yaml\n HistoricBuilding:\n historic_building_name: \"Kasteel Amerongen\"\n feature_type_classification: CASTLE\n heritage_status: \"Rijksmonument\"\n monument_number: \"521814\"\n ```\n\n3. **Abbey Buildings**:\n ```yaml\n HistoricBuilding:\n historic_building_name: \"Klooster Ter Apel - Gasthuis\"\n feature_type_classification: MONASTERY\n construction_date: \"1465\"\n is_part_of_complex: true\n ```", - "properties": { - "construction_date": { - "description": "Date or year of construction.\n\nSchema.org: dateCreated for creation date.\n\nMay be:\n- Exact year: \"1650\"\n- Approximate: \"ca. 1650\"\n- Range: \"1648-1652\"\n- Century: \"17th century\"\n", - "type": [ - "string", - "null" - ] - }, - "construction_date_precision": { - "description": "Precision of the construction date.\n\nCIDOC-CRM: P82_at_some_time_within for temporal precision.\n\nValues: EXACT, APPROXIMATE, DECADE, CENTURY\n", - "type": [ - "string", - "null" - ] - }, - "current_use": { - "description": "Current use of the historic building.\n\nMay differ from original use:\n- Museum/exhibition\n- Offices\n- Events/rentals\n- Residential\n- Mixed use\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_area": { - "description": "Area measurement associated with an entity (site, building, room, etc.).\nGeneric slot for capturing spatial extent measurements. The range should be narrowed to Area class which includes value, unit, and temporal context.", - "items": { - "$ref": "#/$defs/Area" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_condition": { - "description": "A condition or state associated with an entity.\n\n**USAGE**:\nUsed for:\n- Physical condition of objects\n- Service conditions/requirements\n- Access conditions\n\n**Migration (2026-01-18)**:\nThis slot now replaces `condition_description` per slot_fixes.yaml.\nUse with Condition class which has `has_or_had_description` for textual descriptions.\n", - "items": { - "$ref": "#/$defs/Condition" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_opening_hour": { - "description": "Opening hours specification for an entity.\n\n**USAGE**:\nUsed for:\n- Visiting hours\n- Research room hours\n- Service availability\n", - "items": { - "$ref": "#/$defs/OpeningHour" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_status": { - "anyOf": [ - { - "$ref": "#/$defs/HeritageStatus" - }, - { - "type": "null" - } - ], - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n" - }, - "has_or_had_style": { - "description": "The style of the entity.", - "items": { - "$ref": "#/$defs/ArchitecturalStyle" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/FeatureType", - "anyOf": [ - { - "$ref": "#/$defs/Building" - } - ] - }, - "type": "array" - }, - "is_open_to_public": { - "description": "Whether building is open to public visitors.\n\nSome historic buildings are:\n- Fully open (museum house)\n- Partially open (guided tours only)\n- Closed (administrative use, private)\n", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_designed_by": { - "description": "The agent (person or organization) who designed the entity.\n\n**Temporal Semantics** (RiC-O Pattern):\n\"isOrWas\" indicates the design activity in the past.\n\n**Ontological Alignment**:\n- `schema:creator`: The creator/author of this CreativeWork.\n\n**Range**:\n- `Architect` (or `Agent`, `Person`, `Organization`).\n", - "items": { - "$ref": "#/$defs/Architect" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "is_part_of_complex": { - "description": "Whether this building is part of a larger complex/ensemble.\n\ne.g., Abbey with multiple buildings, palace complex, castle grounds.\n", - "type": [ - "boolean", - "null" - ] - }, - "monument_number": { - "description": "Monument registry number.\n\nFor Dutch Rijksmonumenten, this is the monumentnummer.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label", - "has_or_had_type" - ], - "title": "HistoricBuilding", - "type": "object" - }, - "HistoricCafeCatering": { - "additionalProperties": false, - "description": "Heritage caf\u00e9 with cultural or historical significance.\nOften a protected monument or literary landmark in its own right.\nExamples: Caf\u00e9 Americain, Caf\u00e9 de Flore, Caf\u00e9 Central.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "const": "Historic Caf\u00e9", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "HistoricCafeCatering", - "type": "object" - }, - "HistoricGardenSubtype": { - "additionalProperties": false, - "description": "Garden with cultural heritage significance.\nHistoric landscape design, heritage plant varieties.\n\n**Wikidata**: Q1107656\n**Examples**: Keukenhof, Versailles gardens", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "HistoricGardenSubtype", - "type": "object" - }, - "HistoricalArchive": { - "additionalProperties": false, - "description": "Historical archive (archivo hist\u00f3rico, archive historique). An archive that specifically focuses on preserving records of historical value, typically older materials that have passed beyond active administrative use. Historical archives may be independent institutions or divisions within larger archival systems. They emphasize long-term preservation and scholarly access to historical documentation.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "HistoricalArchive", - "type": "object" - }, - "HistoricalArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by HistoricalArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "HistoricalArchiveRecordSetType", - "type": "object" - }, - "HistoricalDocumentFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Historical documents.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "HistoricalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by HistoricalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "HistoricalDocumentFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "HistoricalDocumentFonds", - "type": "object" - }, - "HistoricalManuscriptCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Historical manuscripts.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "HistoricalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by HistoricalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "HistoricalManuscriptCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "HistoricalManuscriptCollection", - "type": "object" - }, - "HistoricalRegion": { - "additionalProperties": false, - "description": "A geographic region that existed in the past (e.g., Duchy of Burgundy, Prussia, Austria-Hungary).\n\n**MIGRATED** from historical_region slot (2026-01-28).\n\n**USE CASE**:\nFinding aids often refer to regions that no longer exist or whose boundaries have changed.\nThis class allows capturing the historical name, type, and temporal extent of such regions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_located_in": { - "description": "links an entity to a place where it is or was located.\n\n**TEMPORAL SEMANTICS** (RiC-O style):\n\nThe \"is_or_was\" naming indicates that location can change over time.\n\n**BROADENED RANGE (Rule 55)**:\nRange broadened to `Any` (from City) to support multiple location types:\n- City / Settlement\n- Region / Province (e.g. EcclesiasticalProvince)\n- Country\n- Physical Site\n\n**DISTINCTION FROM is_or_was_located_within**:\n\n- `is_or_was_located_in`: Entity is AT a place (city/settlement level)\n- `is_or_was_located_within`: Entity is CONTAINED IN a larger place (hierarchical)\n\n**REPLACES**:\n\n- `city` (string slot) - Migrated to structured City class\n\n**USE CASES**:\n\n- Address city component (structured)\n- Auxiliary place city location\n- Any entity requiring city-level location\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "HistoricalRegion", - "type": "object" - }, - "HistoricalSignificance": { - "additionalProperties": false, - "description": "Historical importance and relevance.\n\n**Aspects**:\n- Historical continuity\n- Documentary evidence\n- Period representation\n- Historical events association\n\n**Use Cases**:\n- Heritage listing justification\n- Historical interpretation\n- Archives and documentary heritage\n\n**Example**:\n```yaml\nhas_or_had_significance:\n - has_or_had_type: HistoricalSignificance\n has_or_had_description: \"Founded 1253, continuous brewing tradition\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "HistoricalSignificance", - "type": "object" - }, - "HistoricalVariant": { - "additionalProperties": false, - "description": "Historical or archaic term no longer in common use.\n\n**Use Cases**:\n- Obsolete job titles\n- Historical terminology\n- Legacy classifications\n\n**Example**:\n```yaml\nhas_or_had_type:\n - has_or_had_label: \"Assistant Keeper\"\n has_or_had_type: HistoricalVariant\n has_or_had_description: \"Victorian-era title\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "HistoricalVariant", - "type": "object" - }, - "HolySacredSiteType": { - "additionalProperties": false, - "description": "Specialized custodian type for religious institutions and sacred sites managing\nheritage collections (archives, libraries, artifacts, liturgical objects, art).\n\n**CRITICAL DISTINCTION - Religious Site vs. Religious Heritage Museum**:\n\n**HolySacredSite** (this type):\n- PRIMARY function = ACTIVE WORSHIP (religious practice)\n- SECONDARY function = Heritage collection (supports religious mission)\n- Example: Vatican Apostolic Archive (papal archive supporting Church operations)\n- Example: Canterbury Cathedral Library (church library for clergy and scholars)\n\n**Museum** (MuseumType, not this type):\n- PRIMARY function = PUBLIC EXHIBITION (heritage presentation)\n- SECONDARY function = Religious theme (subject matter)\n- Example: Museum Catharijneconvent (secular museum about religious art)\n- Example: Bible Museum Amsterdam (educational museum, not worship site)\n\n**Decision Rule**: Is the site's PRIMARY function active religious worship?\n- YES \u2192 HolySacredSiteType\n- NO \u2192 MuseumType (with religious theme)\n\n1. **Structural Layer** (W3C Standards):\n - skos:Concept - Thesaurus classification\n - Classification within CustodianType hierarchy\n\n2. **Domain Layer** (Heritage Ontologies):\n - crm:E39_Actor - CIDOC-CRM actor (religious institution)\n - schema:PlaceOfWorship - Religious site entity\n - schema:ArchiveOrganization - For sites with archival collections\n\n3. **Web Layer** (Schema.org):\n - schema:Organization - Generic organization type\n - schema:Church / schema:Mosque / schema:Temple / schema:Synagogue - Specific types\n - schema:ReligiousOrganization - Religious entity classification\n\n**Wikidata Coverage** (70+ religious heritage custodian entities):\n\nChristian Heritage Sites:\n- Q16970 (church) - Christian worship buildings with archives/libraries\n- Q44613 (monastery) - Monastic communities with manuscript collections\n- Q2977 (cathedral) - Episcopal churches with treasuries/archives\n- Q515 (abbey) - Religious communities with historical libraries\n- Q44539 (convent) - Female religious communities with collections\n- Q56242215 (parish church archive) - Local church historical records\n\nIslamic Heritage Sites:\n- Q32815 (mosque) - Islamic worship sites with manuscript libraries\n- Q5874 (madrasa) - Islamic educational institutions with collections\n- Q4468076 (zawiya) - Sufi lodges with spiritual texts\n- Q215380 (Islamic library) - Mosque-attached manuscript collections\n\nJewish Heritage Sites:\n- Q34627 (synagogue) - Jewish worship sites with Torah scrolls/archives\n- Q1128637 (yeshiva) - Jewish religious schools with Talmudic libraries\n- Q2179958 (geniza) - Jewish document repositories\n- Q215380 (synagogue archive) - Community historical records\n\nBuddhist Heritage Sites:\n- Q44539 (temple) - Buddhist worship sites with sutra collections\n- Q44613 (monastery) - Monastic communities with Buddhist texts\n- Q1457 (pagoda) - Buddhist structures with relic collections\n- Q215380 (temple library) - Buddhist manuscript collections\n\nHindu Heritage Sites:\n- Q44539 (temple) - Hindu worship sites with Sanskrit manuscripts\n- Q5870 (ashram) - Hindu spiritual communities with libraries\n- Q215380 (temple archive) - Hindu community records\n\nMulti-Faith Heritage:\n- Q1370598 (religious archive) - Interfaith archival institutions\n- Q5638360 (religious library) - Multi-denominational collections\n- Q839954 (pilgrimage site) - Sacred sites with votive collections\n\nVatican and Papal Collections:\n- Q213322 (Vatican Apostolic Archive) - Papal historical archive\n- Q213333 (Vatican Apostolic Library) - Papal manuscript library\n- Q2943 (Vatican Museums) - [NOTE: This is MuseumType, not HolySacredSite]\n\nSikh Heritage Sites:\n- Q33881 (gurdwara) - Sikh worship sites with historical manuscripts\n- Q5190359 (Sikh archive) - Gurdwara community records\n\n**Key Distinctions from Other Types**:\n\nvs. Museum:\n- HolySacredSite: ACTIVE WORSHIP site with collections supporting religious mission\n- Museum: PUBLIC EXHIBITION institution (secular, even if religious theme)\n- Example: Canterbury Cathedral (worship) vs. Museum Catharijneconvent (museum about religion)\n\nvs. Archive:\n- HolySacredSite: RELIGIOUS INSTITUTION with archival holdings\n- Archive: SECULAR/GOVERNMENT archive (even if holds church records)\n- Example: Parish church archive vs. Diocesan archive (transferred to state archive)\n\nvs. Library:\n- HolySacredSite: RELIGIOUS LIBRARY for clergy/scholars (theological focus)\n- Library: PUBLIC/ACADEMIC library (secular lending institution)\n- Example: Monastery library vs. Theology faculty library at university\n\nvs. IntangibleHeritageGroup:\n- HolySacredSite: INSTITUTIONALIZED religion with physical collections\n- IntangibleHeritageGroup: LIVING PRACTICES and community traditions\n- Example: Cathedral with archives vs. Folk religion practitioners\n\nvs. FeatureCustodian:\n- HolySacredSite: Religious institution MANAGING heritage collections\n- FeatureCustodian: Organization managing PHYSICAL monument (building itself)\n- Example: Church clergy (managing archives) vs. Monument trust (managing building)\n\n**Collection Types in Religious Heritage**:\n\n1. **Archival Collections**:\n - Parish registers (baptisms, marriages, deaths)\n - Church administrative records\n - Correspondence (bishops, clergy, parishioners)\n - Property deeds and financial records\n - Ecclesiastical court records\n\n2. **Library Collections**:\n - Sacred texts (Bibles, Qurans, Torahs, Sutras)\n - Theological treatises and commentaries\n - Liturgical books (missals, prayer books, hymnals)\n - Medieval manuscripts and illuminations\n - Religious history and philosophy\n\n3. **Artifact Collections**:\n - Liturgical vessels (chalices, patens, thuribles)\n - Vestments and textiles (chasubles, altar cloths)\n - Religious art (icons, statues, paintings, stained glass)\n - Relics and reliquaries\n - Votive offerings and ex-votos\n\n4. **Architectural Heritage**:\n - Historic building fabric (original construction)\n - Architectural fragments (capitals, columns, screens)\n - Building archives (construction documents, plans)\n - Archaeological remains (crypts, foundations)\n\n**Access and Stewardship Challenges**:\n\nReligious heritage collections face unique issues:\n- **Sacred vs. Cultural**: Items may be sacred objects, not just cultural heritage\n- **Active Use**: Collections still in liturgical use (not just preservation)\n- **Restricted Access**: Security, sacredness, or privacy concerns\n- **Volunteer Management**: Often maintained by clergy/volunteers, not professionals\n- **Secularization**: Church closures transfer collections to secular archives\n- **Interfaith Sensitivity**: Respectful representation of diverse traditions\n\n**RDF Serialization Example**:\n\n```turtle\n@prefix hc: <https://nde.nl/ontology/hc/> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix schema: <http://schema.org/> .\n@prefix crm: <http://www.cidoc-crm.org/cidoc-crm/> .\n\nhc:HolySacredSiteType\n a skos:Concept, hc:CustodianType ;\n skos:prefLabel \"Holy/Sacred Site Type\"@en,\n \"Religieuze Erfgoedlocatie Type\"@nl,\n \"Religi\u00f6se St\u00e4tte Typ\"@de,\n \"Type de Site Sacr\u00e9\"@fr ;\n skos:definition \"Religious institutions managing heritage collections\"@en ;\n skos:broader hc:CustodianType ;\n skos:narrower hc:ChurchArchive,\n hc:MonasteryLibrary,\n hc:TempleCollection ;\n schema:url <https://nde.nl/ontology/hc/class/holy-sacred-site-type> .\n\n# Example: Vatican Apostolic Archive (papal archive)\n<https://w3id.org/heritage/custodian/va/vatican-apostolic-archive>\n a schema:PlaceOfWorship, schema:ArchiveOrganization, crm:E39_Actor, hc:HolySacredSite ;\n hc:custodian_type hc:HolySacredSiteType ;\n hc:religious_tradition \"Roman Catholic Christianity\" ;\n hc:has_or_had_content [ hc:content_description \"Archival records, Papal documents, Medieval manuscripts, Correspondence\" ] ;\n hc:religious_function \"Support papal governance\", \"Document Church history\", \"Preserve canon law\" ;\n hc:access_policy \"Restricted access by appointment\", \"Scholars and researchers only\", \"No browsing\" ;\n hc:is_or_was_managed_by \"Prefect of Vatican Apostolic Archive\", \"Papal administrative authority\" ;\n hc:secularization_status \"Active religious institution, No secularization\" ;\n schema:name \"Vatican Apostolic Archive\"@en, \"Archivum Apostolicum Vaticanum\"@la ;\n schema:alternateName \"Vatican Secret Archives (former name until 2019)\" ;\n schema:foundingDate \"1612\" ;\n schema:location \"Vatican City\" ;\n schema:description \"Central repository for papal and Vatican documents, holding over 85 km of shelving with records dating back to the 8th century\" ;\n schema:url <https://www.archiviosegretovaticano.va/> .\n```", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_content": { - "items": { - "$ref": "#/$defs/CollectionContent" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/HolySiteType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^(https://nde\\.nl/ontology/hc/type/[a-z-]+/[QP][0-9]+|Q[0-9]+)$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "is_or_was_managed_by": { - "description": "Links an entity to the group or organization that manages it.\n\n**USAGE**:\nUsed for:\n- Warehouse management groups\n- Team assignments\n- Organizational responsibility\n", - "type": "string" - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "religious_function": { - "description": "How heritage collections support the religious mission of the site.\n\nDescribes operational integration of collections with religious practice:\n- **Liturgical support**: Active use in worship services\n- **Theological education**: Resources for clergy training\n- **Pastoral care**: Materials supporting ministry\n- **Canon law**: Legal documentation for Church governance\n- **Community identity**: Records of parish/congregation history\n- **Spiritual formation**: Devotional texts and objects\n- **Pilgrimage**: Relics and sites for religious tourism\n- **Interfaith dialogue**: Resources for ecumenical work\n\nDistinguishes religious heritage from secular museum collections.\n\nExamples:\n- \"Support papal governance, Document Church history, Preserve canon law\"\n- \"Clergy education, Sermon preparation, Liturgical reference\"\n- \"Torah study, Bar/Bat Mitzvah preparation, Community genealogy\"\n- \"Monastic devotion, Manuscript illumination, Spiritual reading\"\n", - "type": "string" - }, - "religious_tradition": { - "description": "Religious tradition or denomination of the site.\n\nSpecifies faith community and theological tradition:\n- Major traditions: Christianity, Islam, Judaism, Buddhism, Hinduism, Sikhism, etc.\n- Christian denominations: Roman Catholic, Orthodox, Protestant, Anglican, etc.\n- Islamic traditions: Sunni, Shia, Sufi, etc.\n- Buddhist traditions: Theravada, Mahayana, Vajrayana, Zen, etc.\n- Hindu traditions: Vaishnavism, Shaivism, Shaktism, etc.\n- Indigenous/Traditional religions\n- Interfaith or multi-tradition sites\n\nImportant for understanding collection context and sensitivity.\n\nExamples:\n- \"Roman Catholic Christianity\"\n- \"Sunni Islam, Hanafi school\"\n- \"Theravada Buddhism\"\n- \"Orthodox Judaism, Ashkenazi tradition\"\n- \"Hindu, Shaivite tradition\"\n", - "type": "string" - }, - "secularization_status": { - "description": "Whether the religious site remains active or has undergone secularization.\n\nDescribes current operational status:\n- **Active religious institution**: Ongoing worship, No secularization\n- **Partially secularized**: Worship continues, Collections transferred\n- **Fully secularized**: Deconsecrated, Converted to museum/cultural center\n- **Closed/Redundant**: Building closed, Collections at risk or relocated\n- **Shared use**: Religious + cultural functions (church concerts, exhibitions)\n- **State ownership**: Government owns building, Religious community uses it\n\nCritical for understanding collection stability and access prospects.\n\nSecularization trends:\n- Netherlands: 2-3 churches close per week (2010s)\n- Germany: Protestant church closures increase\n- UK: Church of England \"redundant churches\" program\n- Collections often transferred to diocesan or state archives\n\nExamples:\n- \"Active religious institution, No secularization\"\n- \"Partially secularized, Collections transferred to diocesan archive 2015\"\n- \"Deconsecrated 2008, Converted to museum/concert hall\"\n- \"Building sold to foundation, Religious community retains collection access\"\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_policy", - "has_or_had_content", - "religious_function", - "religious_tradition", - "secularization_status", - "is_or_was_managed_by", - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "HolySacredSiteType", - "type": "object" - }, - "HolySiteType": { - "additionalProperties": false, - "description": "Classification of a holy or sacred site type (e.g., Church, Mosque, Synagogue).\n\n**MIGRATED** from holy_site_subtype slot (2026-01-28) per Rule 53.\n\n**Purpose**:\nProvides structured classification for religious heritage sites beyond the top-level 'H' code.\nLinks to Wikidata entities for semantic grounding.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "HolySiteType", - "type": "object" - }, - "HolySiteTypeEnum": { - "description": "", - "enum": [ - "ABBOT", - "ADMINISTRATIVE_TERRITORIAL_ENTITY_TYPE", - "ALKA_BALTIC_RELIGION", - "ANCESTRAL_SHRINE", - "ANCIENT_GREEK_TEMPLE", - "APOSTOLIC_SEE", - "BEKKAKU_KANPEISHA", - "BEPPYO_SHRINE", - "CALVARY", - "CATHOLIC_CHURCH_BUILDING", - "CATHOLIC_ECCLESIASTICAL_DISTRICT", - "CATHOLIC_ORGANIZATION", - "CATHOLIC_PARTICULAR_CHURCH_SUI_IURIS", - "CATHOLIC_PILGRIMAGE_CHURCH", - "CHAPEL", - "CHAPEL_SHRINE", - "CHOKUSAISHA", - "CHRISTIAN_CHURCH", - "CHRISTIAN_DENOMINATION", - "CHRISTIAN_ORGANIZATION", - "CHURCH_BUILDING", - "CHURCH_CONGREGATION", - "CI_SHRINE", - "CLERGY_HOUSE", - "COLUMN_SHRINE", - "COMMUNITY", - "CONFESSIONAL_COMMUNITY", - "CONGREGATION", - "CONGREGATIONAL_MOSQUE", - "CONTEMPLATIVE_ORDER", - "CURIA", - "DARGAH", - "DIOCESE", - "DIOCESE_OF_THE_CATHOLIC_CHURCH", - "ECCLESIASTICAL_DISTRICT", - "ECCLESIASTICAL_PROVINCE", - "ENGISHIKI_SEAT", - "ENGISHIKI_SUBSHRINE", - "EPISCOPAL_SEE", - "ETHNIC_GROUP", - "EXECUTIVE_BOARD", - "GENERAL_CURIA", - "GO_NO_MIYA", - "GOKOKU_SHRINE", - "HERMITAGE_CHURCH", - "HIERON", - "HIIS", - "HISTORIC_CHURCH", - "ICHINOMIYA", - "IMAMZADEH", - "INARI_SHRINE", - "ITSUKUSHIMA_SHRINE", - "KAMO_SHRINE_WORSHIP", - "KANPEI_CH\u016aSHA", - "KANPEI_SH\u014cSHA", - "KANPEI_TAISHA", - "KANPEI_SHA", - "KANPEI_SHA_ENGISHIKI_JINMYOCHO", - "KOKUHEI_CH\u016aSHA", - "KOKUHEI_SH\u014cSHA", - "KOKUHEI_TAISHA", - "KOKUHEI_SHA", - "KOKUHEI_SHA_ENGISHIKI_JINMYOCHO", - "KRAMAT", - "K\u00dcLLIYE", - "LIFESTANCE_ORGANISATION", - "LOCATION_OF_WORSHIP", - "LUAKINI", - "MARAE", - "MAZAR", - "MEDIEVAL_CHURCH_IN_NORWAY", - "MENOKO", - "MEOTO_IWA", - "MINORITY_GROUP", - "MONASTERY", - "MONASTIC_ORDER", - "MOSQUE", - "MUNAKATA_SHRINE", - "MY\u014cJIN_TAISHA", - "NATIONAL_SHRINE", - "NI_NO_MIYA", - "NIK\u0100YA", - "ORDER", - "PARISH", - "PARISH_CHURCH", - "PILGRIMAGE_CHURCH", - "PILGRIMAGE_SITE", - "PLOUTONION", - "PROSTIKYRKJE", - "PROVINCE_OF_A_RELIGIOUS_ORDER", - "QUBBA", - "REGIONAL_ICHINOMIYA", - "REIJ\u014c", - "RELIGIOUS_ADMINISTRATIVE_ENTITY", - "RELIGIOUS_ADMINISTRATIVE_TERRITORIAL_ENTITY", - "RELIGIOUS_BUILDING", - "RELIGIOUS_COMMUNITY", - "RELIGIOUS_COMPLEX", - "RELIGIOUS_CORPORATION", - "RELIGIOUS_GROUP", - "RELIGIOUS_ORDER", - "RELIGIOUS_ORGANIZATION", - "RELIGIOUS_SITE", - "ROKU_NO_MIYA", - "ROMAN_CATHOLIC_ECCLESIASTICAL_PROVINCE", - "SACRED_GROVE", - "SACRED_MOUNTAIN", - "SACRED_NATURAL_SITE", - "SACRED_PLACE", - "SACRED_SHRINE_BALI", - "SAN_NO_MIYA", - "SANCTUARY", - "SANCTUARY_1", - "SETSUMATSUSHA", - "SHALGRAM", - "SHI_NO_MIYA", - "SHIKINAI_SHOSHA", - "SHIKINAI_SUBSHRINE", - "SHIKINAI_SUPERSHRINE", - "SHIKINAI_TAISHA", - "SHIKINAISHA", - "SHINTO_SHRINE", - "SHRINE", - "SHRINE_RECEIVING_TSUKINAMI_SAI_AND_NIINAME_SAI_AND_AINAME_SAI_OFFERINGS", - "SIGNIFICANT_PLACE", - "SMALL_MONUMENT", - "SOLOSMASTHANA", - "SOVIJ", - "STRUCTURE_OF_WORSHIP", - "SUFI_LODGE", - "S\u014cJA", - "TAISHA", - "TEMPLE", - "TENMANG\u016a_WORSHIP", - "TOMB", - "TREASURE_HALL", - "TREE_SHRINE", - "UNRANKED", - "UTAKI", - "VENUE", - "V\u00c4KRA_HIIS", - "V\u00c9", - "WAYSIDE_SHRINE", - "X_NO_MIYA" - ], - "title": "HolySiteTypeEnum", - "type": "string" - }, - "HospitalAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for hospital administration records organized as fonds.\n\n**Definition**:\nRecords created by hospital governance and administrative functions,\ndocumenting institutional management, policy, finances, and operations.\nOrganized by provenance (creating administrative unit) following archival principles.\n\n**Typical Contents**:\n- Board minutes and resolutions (bestuursstukken)\n- Annual reports (jaarverslagen)\n- Financial records (financiele administratie)\n- Personnel administration\n- Building and facilities records\n- Policy documents and regulations\n- Correspondence files\n- Committee records\n- Accreditation documentation\n- Quality assurance records\n\n**Governance Structures**:\nHospital administration records reflect different governance models:\n- Public hospitals (government oversight)\n- Religious/charitable hospitals (stichtingen)\n- University hospitals (academic governance)\n- Private hospitals (corporate governance)\n\n**Historical Value**:\nHospital administration fonds are primary sources for:\n- History of healthcare institutions\n- Medical policy development\n- Healthcare economics\n- Social history of medicine\n\n**Dutch Context**:\nKey administrative record types:\n- Reglementen (bylaws and regulations)\n- Notulen (minutes)\n- Begrotingen (budgets)\n- Personeelsdossiers (staff files)\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the fonds organizational principle as defined by rico-rst:Fonds\n(provenance-based organization by creating administrative unit).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the fonds principle as defined by rico-rst:Fonds. Provenance-based organization by creating administrative unit (board, department, committee).", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "HospitalAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"patient records\", \"medical research\", \"nursing records\", \"clinical documentation\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"board minutes\", \"annual reports\", \"financial records\", \"personnel files\", \"policy documents\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "HospitalAdministrationFonds", - "type": "object" - }, - "HospitalArchive": { - "additionalProperties": false, - "description": "Hospital archive (Krankenhausarchiv, archivo hospitalario, archives hospitali\u00e8res). Archives that preserve records created by hospitals and healthcare institutions. These may include administrative records, patient records (subject to privacy regulations), medical research documentation, photographs, and institutional histories. Hospital archives are valuable for medical history, genealogy, and understanding the evolution of healthcare practices.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "HospitalArchive", - "type": "object" - }, - "Host": { - "additionalProperties": false, - "description": "Host providing visitor welcome and orientation services.\n\n**Official Title vs De Facto Work**:\nOften involved in event hosting, VIP services,\nand accessibility support beyond basic hosting.\n\n**Common Variants**:\n- Gallery Host\n- Visitor Host\n- Event Host\n- Floor Host\n\n**Typical Domains**: Museums, galleries, heritage sites\n\n**Typical Responsibilities**:\n- Visitor welcome\n- Gallery orientation\n- Accessibility assistance\n- Event hosting\n- Crowd management", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Host", - "type": "object" - }, - "HouseArchive": { - "additionalProperties": false, - "description": "Archive containing documents and letters that concern a family. House archives (Familienarchive) preserve records documenting the history, activities, and relationships of a family over generations. They typically include correspondence, legal documents, financial records, photographs, and personal papers. Often associated with noble or prominent families, but may also document ordinary families.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "HouseArchive", - "type": "object" - }, - "HouseArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by HouseArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "HouseArchiveRecordSetType", - "type": "object" - }, - "HouseNumber": { - "additionalProperties": false, - "description": "A house number.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "HouseNumber", - "type": "object" - }, - "HouseRecordsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Historic house records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "HouseArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by HouseArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "HouseRecordsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "HouseRecordsFonds", - "type": "object" - }, - "HumanResourcesFunction": { - "additionalProperties": false, - "description": "Human resources function: recruitment, employee relations, compensation, benefits administration, training and development.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "HumanResourcesFunction", - "type": "object" - }, - "HumanResourcesWorker": { - "additionalProperties": false, - "description": "Human resources worker managing personnel administration.\n\n**Official Title vs De Facto Work**:\nOften handles recruitment, training, employee relations,\nand organizational development.\n\n**Common Variants**:\n- HR Manager\n- HR Officer\n- Personnel Administrator\n- HR Business Partner\n\n**Typical Domains**: All heritage institutions\n\n**Typical Responsibilities**:\n- Recruitment and hiring\n- Employee administration\n- Training coordination\n- Performance management\n- Policy development", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "HumanResourcesWorker", - "type": "object" - }, - "HumidityMeasurement": { - "additionalProperties": false, - "description": "Relative humidity measurement type for monitoring moisture in storage environments.\nStandard unit: percentage relative humidity (% RH).\n\nTypical conservation ranges:\n- Archives/libraries: 45-55% RH\n- Museums (general): 45-55% RH\n- Metals: 30-40% RH\n- Photographs: 30-40% RH", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_measurement_unit": { - "anyOf": [ - { - "$ref": "#/$defs/MeasureUnit" - }, - { - "type": "null" - } - ], - "description": "The unit of measurement for a quantity value. Uses RiC-O temporal naming pattern to indicate the unit may be current or historical (e.g., if measurement standards changed over time).\n**QUDT**: qudt:unit - \"The unit of measure used to express the value of a Quantity.\"\n**USE CASES**: - Visitor counts: unit = \"visitors\", \"visitors/year\" - View counts: unit = \"views\", \"views/day\" - Collection sizes: unit = \"items\", \"objects\", \"linear meters\" - Area: unit = \"m\u00b2\", \"ha\", \"km\u00b2\" - Currency: unit = \"EUR\", \"USD\", \"GBP\"" - }, - "has_or_had_name": { - "const": "Relative Humidity", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "HumidityMeasurement", - "type": "object" - }, - "HumidityTolerance": { - "additionalProperties": false, - "description": "Allowed humidity fluctuation (+/-).", - "properties": { - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "number" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_value" - ], - "title": "HumidityTolerance", - "type": "object" - }, - "HybridCollectionClassification": { - "additionalProperties": false, - "description": "Institution with both living and preserved collections.\nIntegrated research and exhibition programs.\n\n**Examples**:\n- Natural history museums with living exhibits\n- Research gardens with herbaria", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "HybridCollectionClassification", - "type": "object" - }, - "HydrographicFeature": { - "additionalProperties": false, - "description": "Stream, lake, etc. (GeoNames class H)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "HydrographicFeature", - "type": "object" - }, - "Hypernym": { - "additionalProperties": false, - "description": "A broader/parent concept in a classification hierarchy.\n**SEMANTIC DEFINITION**: A hypernym (also superordinate or umbrella term) is a concept whose semantic field is more inclusive than that of another concept. For example, \"vehicle\" is a hypernym of \"car\", \"truck\", and \"bicycle\".\n**SKOS ALIGNMENT**: In SKOS vocabulary, hypernym relationships are expressed via: - `skos:broader` - links a concept to its hypernym - `skos:narrower` - inverse, links hypernym to hyponyms - `skos:broaderTransitive` - transitive closure of broader\n**HERITAGE DOMAIN USAGE**: - Collection types: \"Archives\" is hypernym of \"Municipal Archives\" - Institution types: \"Museum\" is hypernym of \"Art Museum\" - Subject classification: \"Art\" is hypernym of \"Painting\"\n**RELATED CONCEPTS**: - **Hyponym**: The inverse - a more specific concept (child) - **Meronym**: Part-of relationship (different from is-a) - **Holonym**: Whole-of relationship (inverse of meronym)\n**ONTOLOGY MAPPING**: - class_uri: skos:Concept (as hypernym IS a concept) - exact_mappings: skos:broader target concept", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "hypernym_scheme": { - "description": "The vocabulary or ontology scheme this hypernym belongs to.", - "type": [ - "string", - "null" - ] - }, - "hypernym_uri": { - "description": "URI reference to the broader/parent concept. This is the primary identifier for the hypernym in linked data.", - "type": [ - "string", - "null" - ] - } - }, - "title": "Hypernym", - "type": "object" - }, - "Hyponym": { - "additionalProperties": false, - "description": "Narrower concept/instance.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Hyponym", - "type": "object" - }, - "Hypothesis": { - "additionalProperties": false, - "description": "A hypothesis or working assertion about uncertain or ambiguous data.\n**USE CASE**: Institution Type Hypotheses When an institution's type cannot be definitively determined, multiple type hypotheses can be recorded with supporting/contradicting evidence and confidence levels.\n**STRUCTURE**: - Asserted value (the hypothesis) - Confidence level - Supporting evidence - Contradicting evidence - Alternative interpretations\n**ONTOLOGY MAPPING**: - class_uri: skos:Concept (the hypothesis is a conceptual assertion) - Related to prov:Entity (what is being hypothesized about)", - "properties": { - "alternative_interpretation": { - "description": "Alternative interpretation of the same evidence. Example: \"Could also be interpreted as gallery based on art focus\"", - "type": [ - "string", - "null" - ] - }, - "asserted_value": { - "description": "The hypothesized value or assertion. Example: \"MUSEUM\", \"ARCHIVE\", \"COLLECTING_SOCIETY\"", - "type": "string" - }, - "confidence_level": { - "description": "Qualitative confidence level for this hypothesis. Values: \"high\", \"medium\", \"low\", \"very_low\"", - "type": [ - "string", - "null" - ] - }, - "contradicting_evidence": { - "description": "Evidence contradicting this hypothesis. Example: \"No physical location mentioned\"", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "note": { - "description": "General notes about this hypothesis.", - "type": [ - "string", - "null" - ] - }, - "supporting_evidence": { - "description": "Evidence supporting this hypothesis. Example: \"Uses term 'exhibitions' in description\"", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "asserted_value" - ], - "title": "Hypothesis", - "type": "object" - }, - "HypsographicFeature": { - "additionalProperties": false, - "description": "Mountain, hill, rock (GeoNames class T)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "HypsographicFeature", - "type": "object" - }, - "ICHSafeguarding": { - "additionalProperties": false, - "description": "ICH safeguarding measure.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_objective": { - "description": "The objective of an action or measure.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ICHSafeguarding", - "type": "object" - }, - "ICHViabilityStatusEnum": { - "description": "Current viability/health status of an intangible cultural heritage form.\n\nBased on UNESCO ICH assessment criteria for evaluating heritage viability.\nFactors include: practitioner numbers, transmission success, community \nengagement, institutional support, and external threats.", - "enum": [ - "THRIVING", - "STABLE", - "VULNERABLE", - "ENDANGERED", - "CRITICALLY_ENDANGERED", - "DORMANT", - "REVIVING", - "UNKNOWN" - ], - "title": "ICHViabilityStatusEnum", - "type": "string" - }, - "IIIFAggregator": { - "additionalProperties": false, - "description": "Portal aggregating IIIF manifests from multiple institutions for unified image viewing and annotation. **PURPOSE**: Enable deep zoom viewing, comparison, and annotation of heritage images across institutional boundaries using IIIF standards. **CHARACTERISTICS**: - IIIF manifest aggregation - Deep zoom image viewing - Annotation and transcription - Multi-institution image comparison - Interoperability across viewers **TECHNICAL FEATURES**: - IIIF Presentation API - IIIF Image API - IIIF Content Search API - IIIF Authentication API **EXAMPLES**: - IIIF Discovery (IIIF Consortium) - Mirador viewer instances - Universal Viewer deployments - Manuscript portal aggregators", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "TECHNICAL_INFRASTRUCTURE", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "images", - "visual_heritage" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "IIIFAggregator", - "type": "object" - }, - "IIIFComplianceLevelEnum": { - "description": "IIIF Image API compliance levels.\n\nHigher levels support more features.", - "enum": [ - "LEVEL_0", - "LEVEL_1", - "LEVEL_2" - ], - "title": "IIIFComplianceLevelEnum", - "type": "string" - }, - "IIIFEndpoint": { - "additionalProperties": false, - "description": "IIIF (International Image Interoperability Framework) API.\nIncludes Image API, Presentation API, Content Search API.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "IIIFEndpoint", - "type": "object" - }, - "IIIFImageAPI": { - "additionalProperties": false, - "description": "Classification for IIIF Image API endpoints.\n\n**Protocol**: IIIF Image API\n**Purpose**: Standardized image manipulation and delivery\n**Standard**: https://iiif.io/api/image/\n\n**Heritage Sector Usage**:\n\nIIIF Image API enables interoperable image access:\n- Region extraction\n- Size scaling\n- Rotation\n- Format conversion\n- Quality selection\n\n**Widely adopted** by museums, libraries, archives worldwide.\n\n**Versions**: 2.1, 3.0", - "properties": { - "has_or_had_description": { - "description": "Description of what this endpoint type represents.\n\nSKOS: definition for the meaning of the concept.\n\nShould explain:\n- What protocol/standard this type implements\n- Primary use cases\n- Target audience (harvesters, researchers, developers)\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_format": { - "description": "The format or file type of a resource or service response.\n\n**USAGE**:\nUsed for:\n- Response formats from APIs (JSON, XML, RDF)\n- File formats for documents (PDF, DOCX, TXT)\n- Media formats (JPEG, MP3, MP4)\n- Transcript formats (VTT, SRT, plain text)\n- Subtitle formats (WebVTT, SRT, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property\n- **Close**: `dct:format` - Dublin Core format\n- **Close**: `schema:encodingFormat` - Schema.org encoding format\n\n**Range**: `uriorcurie` (Rule 54)\nBroadened range to accept URI/CURIE references to format specifications.\nThis allows linking to IANA media types, format registries, or internal\nformat classes while resolving OWL ambiguous type warnings.\n\nClasses can narrow to specific format enums/classes via slot_usage.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Unique identifier for this endpoint type.\n\nFormat: URI within the NDE Heritage Custodian ontology namespace.\n\nExample: \"https://nde.nl/ontology/hc/endpoint-type/oai-pmh\"\n", - "type": "string" - }, - "has_or_had_method": { - "description": "A method associated with an activity, process, or entity.\n\n**USAGE**:\nUsed for:\n- HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod\n- Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod\n- API interaction methods\n\n**BROADENED RANGE**:\nRange broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "heritage_sector_usage": { - "description": "Description of how this endpoint type is used in the heritage sector.\n\nSKOS: scopeNote for usage context.\n\nShould explain:\n- Primary use cases in GLAM institutions\n- Which institution types commonly use this\n- Integration with aggregators (Europeana, DPLA, etc.)\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_used_in": { - "description": "The context in which something is used.", - "items": { - "$ref": "#/$defs/HeritageSector" - }, - "type": [ - "array", - "null" - ] - }, - "narrower_type": { - "description": "Child/narrower endpoint types in the hierarchy.\n\nSKOS: narrower for hierarchical relationship.\n\nExample: DataServiceEndpointType narrower includes OAIPMHEndpointType\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "protocol_name": { - "description": "Name of the protocol or standard this endpoint type implements.\n\nDublin Core: conformsTo for standard compliance.\n\nExamples:\n- \"OAI-PMH\" (Open Archives Initiative Protocol for Metadata Harvesting)\n- \"IIIF Image API\" (International Image Interoperability Framework)\n- \"SPARQL\" (SPARQL Protocol and RDF Query Language)\n- \"REST\" (Representational State Transfer)\n- \"SRU\" (Search/Retrieve via URL)\n", - "type": "string" - }, - "protocol_version": { - "description": "Version of the protocol this endpoint type supports.\n\nSchema.org: version for protocol version.\n\nExamples:\n- \"2.0\" (OAI-PMH)\n- \"3.0\" (IIIF Image API)\n- \"1.1\" (SPARQL)\n", - "type": [ - "string", - "null" - ] - }, - "related_types": { - "description": "Related endpoint types (non-hierarchical relationship).\n\nSKOS: related for associative relationships.\n\nExamples:\n- OAIPMHEndpointType related to AtomFeedType (both for syndication)\n- IIIFImageAPIType related to IIIFPresentationAPIType (same family)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specification_url": { - "description": "URL to the official specification document for this protocol.\n\nSchema.org: documentation for specification reference.\n\nExamples:\n- \"http://www.openarchives.org/OAI/openarchivesprotocol.html\" (OAI-PMH)\n- \"https://iiif.io/api/image/3.0/\" (IIIF Image API 3.0)\n- \"https://www.w3.org/TR/sparql11-protocol/\" (SPARQL 1.1)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "type_name": { - "description": "Human-readable name for this endpoint type.\n\nSKOS: prefLabel for preferred human-readable name.\n\nExamples:\n- \"OAI-PMH Endpoint\"\n- \"Search API\"\n- \"IIIF Image Server\"\n- \"SPARQL Endpoint\"\n", - "type": "string" - } - }, - "required": [ - "has_or_had_identifier", - "type_name", - "protocol_name" - ], - "title": "IIIFImageAPI", - "type": "object" - }, - "IIIFPresentationAPI": { - "additionalProperties": false, - "description": "Classification for IIIF Presentation API endpoints.\n\n**Protocol**: IIIF Presentation API\n**Purpose**: Describe structure and layout of digital objects\n**Standard**: https://iiif.io/api/presentation/\n\n**Heritage Sector Usage**:\n\nIIIF Presentation API delivers manifests describing:\n- Multi-page documents (books, manuscripts)\n- Image sequences\n- Annotations\n- Structural metadata\n\n**Viewers**: Mirador, Universal Viewer, Tify\n\n**Versions**: 2.1, 3.0", - "properties": { - "has_or_had_description": { - "description": "Description of what this endpoint type represents.\n\nSKOS: definition for the meaning of the concept.\n\nShould explain:\n- What protocol/standard this type implements\n- Primary use cases\n- Target audience (harvesters, researchers, developers)\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_format": { - "description": "The format or file type of a resource or service response.\n\n**USAGE**:\nUsed for:\n- Response formats from APIs (JSON, XML, RDF)\n- File formats for documents (PDF, DOCX, TXT)\n- Media formats (JPEG, MP3, MP4)\n- Transcript formats (VTT, SRT, plain text)\n- Subtitle formats (WebVTT, SRT, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property\n- **Close**: `dct:format` - Dublin Core format\n- **Close**: `schema:encodingFormat` - Schema.org encoding format\n\n**Range**: `uriorcurie` (Rule 54)\nBroadened range to accept URI/CURIE references to format specifications.\nThis allows linking to IANA media types, format registries, or internal\nformat classes while resolving OWL ambiguous type warnings.\n\nClasses can narrow to specific format enums/classes via slot_usage.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Unique identifier for this endpoint type.\n\nFormat: URI within the NDE Heritage Custodian ontology namespace.\n\nExample: \"https://nde.nl/ontology/hc/endpoint-type/oai-pmh\"\n", - "type": "string" - }, - "has_or_had_method": { - "description": "A method associated with an activity, process, or entity.\n\n**USAGE**:\nUsed for:\n- HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod\n- Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod\n- API interaction methods\n\n**BROADENED RANGE**:\nRange broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "heritage_sector_usage": { - "description": "Description of how this endpoint type is used in the heritage sector.\n\nSKOS: scopeNote for usage context.\n\nShould explain:\n- Primary use cases in GLAM institutions\n- Which institution types commonly use this\n- Integration with aggregators (Europeana, DPLA, etc.)\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_used_in": { - "description": "The context in which something is used.", - "items": { - "$ref": "#/$defs/HeritageSector" - }, - "type": [ - "array", - "null" - ] - }, - "narrower_type": { - "description": "Child/narrower endpoint types in the hierarchy.\n\nSKOS: narrower for hierarchical relationship.\n\nExample: DataServiceEndpointType narrower includes OAIPMHEndpointType\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "protocol_name": { - "description": "Name of the protocol or standard this endpoint type implements.\n\nDublin Core: conformsTo for standard compliance.\n\nExamples:\n- \"OAI-PMH\" (Open Archives Initiative Protocol for Metadata Harvesting)\n- \"IIIF Image API\" (International Image Interoperability Framework)\n- \"SPARQL\" (SPARQL Protocol and RDF Query Language)\n- \"REST\" (Representational State Transfer)\n- \"SRU\" (Search/Retrieve via URL)\n", - "type": "string" - }, - "protocol_version": { - "description": "Version of the protocol this endpoint type supports.\n\nSchema.org: version for protocol version.\n\nExamples:\n- \"2.0\" (OAI-PMH)\n- \"3.0\" (IIIF Image API)\n- \"1.1\" (SPARQL)\n", - "type": [ - "string", - "null" - ] - }, - "related_types": { - "description": "Related endpoint types (non-hierarchical relationship).\n\nSKOS: related for associative relationships.\n\nExamples:\n- OAIPMHEndpointType related to AtomFeedType (both for syndication)\n- IIIFImageAPIType related to IIIFPresentationAPIType (same family)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specification_url": { - "description": "URL to the official specification document for this protocol.\n\nSchema.org: documentation for specification reference.\n\nExamples:\n- \"http://www.openarchives.org/OAI/openarchivesprotocol.html\" (OAI-PMH)\n- \"https://iiif.io/api/image/3.0/\" (IIIF Image API 3.0)\n- \"https://www.w3.org/TR/sparql11-protocol/\" (SPARQL 1.1)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "type_name": { - "description": "Human-readable name for this endpoint type.\n\nSKOS: prefLabel for preferred human-readable name.\n\nExamples:\n- \"OAI-PMH Endpoint\"\n- \"Search API\"\n- \"IIIF Image Server\"\n- \"SPARQL Endpoint\"\n", - "type": "string" - } - }, - "required": [ - "has_or_had_identifier", - "type_name", - "protocol_name" - ], - "title": "IIIFPresentationAPI", - "type": "object" - }, - "IIPImageServer": { - "additionalProperties": false, - "description": "Tiled image server endpoint for dynamic high-resolution image delivery.\n\n**Purpose:**\n\nModels image server endpoints that provide:\n- Deep zoom for high-resolution images\n- Tile-based delivery for smooth navigation\n- On-the-fly image manipulation (rotation, cropping, format conversion)\n- Efficient delivery of gigapixel images\n\n**Supported Protocols:**\n\n| Protocol | Description | Use Case |\n|----------|-------------|----------|\n| **IIP** | Internet Imaging Protocol | Legacy, widely deployed |\n| **IIIF Image** | International Image Interoperability Framework | Modern standard, interoperable |\n| **Zoomify** | Zoomify tile format | Common in heritage sector |\n| **DeepZoom** | Microsoft Deep Zoom | Seadragon viewers |\n\n**Example - Nationaal Archief IIP Server:**\n\n```yaml\niip_image_server:\n endpoint_name: \"Nationaal Archief Image Server\"\n base_url: \"https://service.archief.nl/iipsrv\"\n server_software: \"IIPImage\"\n supported_protocols:\n - IIP\n - Zoomify\n - IIIF_IMAGE\n iiif_compliance_level: LEVEL_1\n max_image_dimension: 10000\n supported_output_formats:\n - image/jpeg\n - image/png\n supports_region_extraction: true\n supports_rotation: true\n supports_quality_selection: true\n```\n\n**IIIF Image API Features:**\n\nIIIF Image API URL structure:\n`{scheme}://{server}{/prefix}/{identifier}/{region}/{size}/{rotation}/{quality}.{format}`\n\n- **region**: full, square, x,y,w,h, pct:x,y,w,h\n- **size**: full, max, w,, ,h, pct:n, w,h, !w,h\n- **rotation**: 0-360, with optional mirror (!)\n- **quality**: default, color, gray, bitonal\n- **format**: jpg, png, gif, webp, tif\n\n**See Also:**\n\n- IIIF Image API: https://iiif.io/api/image/\n- IIPImage Server: https://iipimage.sourceforge.io/", - "properties": { - "authentication_method": { - "$ref": "#/$defs/AuthenticationMethodEnum", - "description": "Authentication method required (if is_or_was_required is true).\n\nValues from AuthenticationMethodEnum:\n- NONE: No authentication\n- API_KEY: API key in header or query parameter\n- OAUTH2: OAuth 2.0\n- BASIC: HTTP Basic Authentication\n- IP_WHITELIST: IP address whitelist\n- INSTITUTIONAL: Institutional login (Shibboleth, etc.)\n" - }, - "base_url": { - "description": "Base URL of the image server.\n\nExample: \"https://service.archief.nl/iipsrv\"\n", - "type": "string" - }, - "cors_enabled": { - "description": "Whether CORS is enabled for browser access.\n\nEssential for JavaScript-based viewers.\n", - "type": [ - "boolean", - "null" - ] - }, - "discovery_provenance": { - "description": "Provenance information about how this endpoint was discovered.\n\nShould include:\n- Discovery date\n- Discovery method (documentation, web scrape, API testing)\n- Verification status\n\nFree-text or structured provenance note.\n", - "type": [ - "string", - "null" - ] - }, - "documentation_url": { - "description": "URL to human-readable documentation.\n\nThis is separate from endpoint_description_url which is machine-readable.\n\nExamples:\n- \"https://pro.europeana.eu/resources/apis/record\"\n- \"https://www.nationaalarchief.nl/onderzoeken/handleiding/api\"\n", - "type": [ - "string", - "null" - ] - }, - "endpoint_description_url": { - "description": "URL to machine-readable API documentation.\n\nDCAT: dcat:endpointDescription - \"A description of the service end-point\"\n\nMay be:\n- OpenAPI/Swagger specification (JSON/YAML)\n- OAI-PMH Identify response\n- WSDL document\n- Human-readable documentation page\n\nExamples:\n- \"https://api.example.org/openapi.json\"\n- \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh?verb=Identify\"\n", - "type": [ - "string", - "null" - ] - }, - "endpoint_id": { - "description": "Unique identifier for this data service endpoint.\n\nRecommended format: URI combining platform ID and service type.\n\nExample: \"https://nde.nl/ontology/hc/endpoint/nationaalarchief-oai-pmh\"\n", - "type": "string" - }, - "endpoint_name": { - "description": "Human-readable name for this endpoint.\nExamples: - \"Nationaal Archief OAI-PMH Endpoint\" - \"Heritage Search API\" - \"Image Server (IIP)\"", - "type": "string" - }, - "endpoint_type": { - "description": "Classification of this endpoint from the DataServiceEndpointType taxonomy.\n\n**Instance vs Type Architecture:**\n\nThis slot links an INSTANCE (DataServiceEndpoint) to its TYPE classification\n(DataServiceEndpointType), following the same architectural pattern as\nCustodian/CustodianType.\n\n```\nDataServiceEndpoint (INSTANCE) DataServiceEndpointType (TYPE)\n\u251c\u2500\u2500 endpoint_url \u251c\u2500\u2500 protocol_name\n\u251c\u2500\u2500 status \u251c\u2500\u2500 protocol_version\n\u251c\u2500\u2500 is_or_was_required \u251c\u2500\u2500 specification_url\n\u2514\u2500\u2500 endpoint_type \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba\u2514\u2500\u2500 has_or_had_format\n```\n\n**Why Both `protocol` and `endpoint_type`?**\n\n- `protocol` (enum): Simple string classification for quick filtering\n- `endpoint_type` (class reference): Rich type metadata with SKOS hierarchy,\n specification URLs, and semantic relationships\n\n**Example:**\n\n```yaml\ndata_service_endpoint:\n endpoint_id: \"https://nde.nl/hc/endpoint/na-oai-pmh\"\n endpoint_url: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh\"\n protocol: OAI_PMH # Simple enum (DataServiceProtocolEnum)\n endpoint_type: OAIPMHEndpointType # Rich type (DataServiceEndpointType subclass)\n```\n\nThis pattern mirrors:\n- `custodian_type` enum + `CustodianType` class on `Custodian`\n- `platform_type` enum + `DigitalPlatformType` class on `DigitalPlatform`\n", - "type": [ - "string", - "null" - ] - }, - "example_iiif_url": { - "description": "Example IIIF Image API URL.\n\nExample: \"https://service.archief.nl/iiif/2/uuid:12345/full/1000,/0/default.jpg\"\n", - "type": [ - "string", - "null" - ] - }, - "example_iip_url": { - "description": "Example IIP request URL.\n\nExample: \"https://service.archief.nl/iipsrv?FIF=/path/image.tif&WID=1000&CVT=jpeg\"\n", - "type": [ - "string", - "null" - ] - }, - "fcgi_path": { - "description": "FastCGI path for IIPImage servers.\n\nCommon: \"/iipsrv/iipsrv.fcgi\" or \"/fcgi-bin/iipsrv.fcgi\"\n\nExample: \"/iipsrv/iipsrv.fcgi\"\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_url": { - "description": "Base URL of the service endpoint. DCAT: dcat:endpointURL - \"The root location or primary endpoint of the service\" MIGRATED 2026-01-26: Replaces endpoint_url slot.", - "type": "string" - }, - "iiif_compliance_level": { - "$ref": "#/$defs/IIIFComplianceLevelEnum", - "description": "IIIF Image API compliance level (if IIIF enabled).\n\nLevels define mandatory features:\n- LEVEL_0: Basic (fixed sizes only)\n- LEVEL_1: Region, size, rotation\n- LEVEL_2: Full Image API features\n\nExample: LEVEL_1\n" - }, - "iiif_context_url": { - "description": "IIIF context URL for JSON-LD.\n\nExample: \"http://iiif.io/api/image/3/context.json\"\n", - "type": [ - "string", - "null" - ] - }, - "iiif_image_api_version": { - "description": "IIIF Image API version supported (if IIIF enabled).\n\nCurrent version: 3.0\nLegacy versions: 2.1, 2.0, 1.1, 1.0\n\nExample: \"3.0\"\n", - "type": [ - "string", - "null" - ] - }, - "image_identifier_pattern": { - "description": "Pattern for image identifiers.\n\nIIPImage uses FIF parameter with filesystem path.\nIIIF uses URL-encoded identifiers.\n\nExample (IIP): \"FIF=/path/to/{archive}/{uuid}.tif\"\nExample (IIIF): \"{base_url}/iiif/{identifier}\"\n", - "type": [ - "string", - "null" - ] - }, - "info_json_url_pattern": { - "description": "URL pattern for retrieving IIIF info.json.\n\nExample: \"{base_url}/iiif/{identifier}/info.json\"\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_required": { - "description": "Whether something is or was required (boolean).\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **Schema.org** | `schema:isRequired` | Maps to - boolean requirement |\n\nNote: slot_uri changed from schema:isRequired to hc:isOrWasRequired\nto resolve OWL ambiguous type warning. schema:isRequired may be\nambiguous when used in different contexts.\n\n**USAGE NOTE**:\n\nThis is a simple boolean slot. For structured requirement information\nwith types and temporal validity, use has_or_had_status with RequirementStatus.\n\n**MIGRATION NOTE**:\n\nReplaces domain-specific boolean slots like:\n- booking_required \u2192 is_or_was_required\n- appointment_required \u2192 is_or_was_required\n- registration_required \u2192 is_or_was_required\n", - "type": [ - "boolean", - "null" - ] - }, - "last_verified": { - "description": "Date when this endpoint was last verified to be operational.\n\nISO 8601 date format.\n\nExample: \"2025-12-14\"\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "max_area": { - "description": "Maximum total pixel area that can be served in one request.\n\nPrevents server overload on very large images.\n\nExample: 100000000 (100 megapixels)\n", - "type": [ - "integer", - "null" - ] - }, - "max_image_dimension": { - "description": "Maximum image dimension (width or height) that can be served.\n\nLarger images may be available but capped in delivery.\n\nExample: 10000\n", - "type": [ - "integer", - "null" - ] - }, - "rate_limit": { - "description": "Rate limit description if applicable.\n\nFree-text description of rate limiting policy.\n\nExamples:\n- \"100 requests per minute\"\n- \"1000 requests per day per API key\"\n- \"No limit\"\n- \"Unknown\"\n", - "type": [ - "string", - "null" - ] - }, - "response_format": { - "description": "MIME types of response formats supported by this endpoint.\n\nExamples:\n- [\"application/json\"]\n- [\"application/xml\", \"text/xml\"]\n- [\"image/jpeg\", \"image/png\", \"image/tiff\"]\n- [\"application/ld+json\", \"text/turtle\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "server_software": { - "description": "Image server software in use.\n\nCommon software:\n- IIPImage: Open-source, supports IIP, IIIF, Zoomify\n- Loris: Python IIIF image server\n- Cantaloupe: Java IIIF server\n- Digilib: Java image server\n- RAIS: Rust IIIF server\n\nExample: \"IIPImage\"\n", - "type": [ - "string", - "null" - ] - }, - "server_version": { - "description": "Version of the image server software.\n\nExample: \"1.1\"\n", - "type": [ - "string", - "null" - ] - }, - "serves_dataset": { - "description": "Dataset(s) that this service provides access to.\n\nDCAT: dcat:servesDataset - \"A collection of data that this data service can distribute\"\n\nReferences to DCAT Dataset identifiers or descriptions.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "status": { - "$ref": "#/$defs/EndpointStatusEnum", - "description": "Operational status of the endpoint.\n\nValues from EndpointStatusEnum:\n- ACTIVE: Endpoint is operational\n- DEPRECATED: Endpoint works but will be removed\n- BETA: Endpoint in testing/beta\n- OFFLINE: Endpoint currently unavailable\n- UNKNOWN: Status not verified\n" - }, - "supported_input_formats": { - "description": "Source image formats the server can read.\n\nCommon: TIFF, JPEG 2000, Pyramid TIFF\n\nExample: [\"image/tiff\", \"image/jp2\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "supported_output_formats": { - "description": "Output formats the server can deliver.\n\nExample: [\"image/jpeg\", \"image/png\", \"image/webp\"]\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "supported_protocols": { - "description": "Image delivery protocols supported.\n\nValues from DataServiceProtocolEnum:\n- IIP: Internet Imaging Protocol\n- IIIF_IMAGE: IIIF Image API\n- ZOOMIFY: Zoomify tiles\n- DEEPZOOM: Microsoft Deep Zoom\n\nExample: [\"IIP\", \"IIIF_IMAGE\", \"ZOOMIFY\"]\n", - "items": { - "$ref": "#/$defs/ImageProtocolEnum" - }, - "type": "array" - }, - "supported_qualities": { - "description": "Quality modes supported.\n\nExample: [\"default\", \"color\", \"gray\", \"bitonal\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "supports_info_json": { - "description": "Whether the server provides IIIF info.json for images.\n\ninfo.json contains image metadata (dimensions, tiles, features).\n", - "type": [ - "boolean", - "null" - ] - }, - "supports_mirroring": { - "description": "Whether the server supports horizontal mirroring.\n\nIIIF: ! prefix on rotation (e.g., !0 for mirror only)\n", - "type": [ - "boolean", - "null" - ] - }, - "supports_quality_selection": { - "description": "Whether the server supports quality/color mode selection.\n\nIIIF qualities: default, color, gray, bitonal\n", - "type": [ - "boolean", - "null" - ] - }, - "supports_region_extraction": { - "description": "Whether the server supports extracting arbitrary image regions.\n\nIIIF: region parameter (x,y,w,h or pct:x,y,w,h)\nIIP: RGN parameter\n", - "type": [ - "boolean", - "null" - ] - }, - "supports_rotation": { - "description": "Whether the server supports image rotation.\n\nIIIF supports 0-360 degrees and mirroring.\n", - "type": [ - "boolean", - "null" - ] - }, - "tile_size": { - "description": "Default tile size in pixels.\n\nMost servers use 256 or 512 pixel tiles.\n\nExample: 512\n", - "type": [ - "integer", - "null" - ] - }, - "version": { - "description": "Version of the API or service.\n\nExamples:\n- \"v2\"\n- \"1.0.0\"\n- \"2023-01\"\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "base_url", - "supported_protocols", - "supported_output_formats", - "has_or_had_url", - "endpoint_id", - "endpoint_name" - ], - "title": "IIPImageServer", - "type": "object" - }, - "ISBNIdentifier": { - "additionalProperties": false, - "description": "International Standard Book Number (ISO 2108).", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "ISBN", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "ISBN", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "ISBNIdentifier", - "type": "object" - }, - "ISILIdentifier": { - "additionalProperties": false, - "description": "International Standard Identifier for Libraries and Related Organizations (ISO 15511).", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "ISIL", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "ISIL Code", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "ISILIdentifier", - "type": "object" - }, - "ISNIIdentifier": { - "additionalProperties": false, - "description": "International Standard Name Identifier (ISO 27729).", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "ISNI", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "ISNI", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "ISNIIdentifier", - "type": "object" - }, - "ISSNIdentifier": { - "additionalProperties": false, - "description": "International Standard Serial Number (ISO 3297).", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "ISSN", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "ISSN", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "ISSNIdentifier", - "type": "object" - }, - "ITSpecialist": { - "additionalProperties": false, - "description": "IT specialist managing technical infrastructure and systems.\n\n**Official Title vs De Facto Work**:\nIn heritage institutions, often involved in digital preservation,\ncollections systems, and specialized heritage technology.\n\n**Common Variants**:\n- Systems Administrator\n- IT Manager\n- Technology Specialist\n- Network Administrator\n- IT Director\n\n**Typical Domains**: All heritage institutions\n\n**Typical Responsibilities**:\n- Network and server infrastructure\n- Software and hardware support\n- Database administration\n- Cybersecurity\n- User support", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "ITSpecialist", - "type": "object" - }, - "IcelandicRegionalFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Icelandic regional administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "RegionalArchivesInIceland", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by RegionalArchivesInIceland custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "IcelandicRegionalFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "IcelandicRegionalFonds", - "type": "object" - }, - "IconographicArchives": { - "additionalProperties": false, - "description": "Archives containing predominantly pictorial materials. Iconographic archives specialize in collecting and preserving images including prints, drawings, photographs, posters, and other visual materials. They serve as important resources for art historical research, visual culture studies, and iconographic analysis.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "IconographicArchives", - "type": "object" - }, - "IconographicArchivesRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by IconographicArchives custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "IconographicArchivesRecordSetType", - "type": "object" - }, - "Identifier": { - "additionalProperties": false, - "description": "A generic identifier consisting of a scheme and value pair.\n**Purpose**:\nBase identifier class for any entity (not just heritage custodians).\nUsed when a simple scheme + value identifier is needed.\n**For heritage custodian identifiers**: Use `CustodianIdentifier` which\nextends this class with provenance tracking (allocation agency, standard, etc.)\n**Schema.org Alignment**:\nMaps to schema:PropertyValue which represents a property-value pair.\n- propertyID \u2192 identifier_scheme\n- value \u2192 identifier_value", - "properties": { - "has_or_had_scheme": { - "anyOf": [ - { - "$ref": "#/$defs/IdentifierScheme" - }, - { - "type": "null" - } - ], - "description": "Identifier scheme." - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "$ref": "#/$defs/IdentifierValue" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Identifier", - "type": "object" - }, - "IdentifierDomainEnum": { - "description": "Classification of what entities an identifier applies to", - "enum": [ - "ORGANIZATION", - "HERITAGE_INSTITUTION", - "PERSON", - "WORK", - "NAME_AUTHORITY", - "RESEARCH_ORG", - "LEGAL_ENTITY", - "COLLECTION", - "PLACE", - "BUILDING", - "HERITAGE_SITE", - "OBJECT", - "UNIVERSAL", - "SOCIAL_MEDIA", - "DIGITAL_OBJECT", - "INTANGIBLE_HERITAGE", - "SUBJECT_TERM", - "PRODUCT" - ], - "title": "IdentifierDomainEnum", - "type": "string" - }, - "IdentifierFormat": { - "additionalProperties": false, - "description": "Identifier format.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "IdentifierFormat", - "type": "object" - }, - "IdentifierLookupTemplate": { - "additionalProperties": false, - "description": "Template type for identifier resolution queries.\n\n**Relevant Queries**:\n- ISIL code lookups\n- Wikidata entity resolution\n- GHCID resolution\n- Cross-reference identifier mapping", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "IdentifierLookupTemplate", - "type": "object" - }, - "IdentifierScheme": { - "additionalProperties": false, - "description": "Identifier scheme.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "IdentifierScheme", - "type": "object" - }, - "IdentifierValue": { - "additionalProperties": false, - "description": "Identifier value.", - "properties": { - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "IdentifierValue", - "type": "object" - }, - "IdentifyingMotivation": { - "additionalProperties": false, - "description": "Motivation for identifying depicted entities.\n\n**DEFINITION**:\n\nIdentifyingMotivation describes annotations where the intent is to\nassign an identity to what is being depicted or described.\n\n**W3C WEB ANNOTATION**:\n\nFrom oa:identifying:\n> The motivation for when the user intends to assign an identity to\n> the Target or identify what is being depicted or described.\n\n**USE CASES**:\n\n| Use Case | Example |\n|----------|---------|\n| Person identification | Identifying portrait subjects |\n| Place identification | Geolocating depicted locations |\n| Object identification | Linking to collection records |\n| Entity recognition | Named entity extraction |\n\n**HERITAGE CONTEXT**:\n\nIdentification links heritage content to entities:\n- Portrait subject identification\n| - Artwork attribution (artist identification)\n- Depicted location identification\n- Object-to-record linking (computer vision)", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "motivation_type_description": { - "description": "Detailed description of an annotation motivation type including purpose, characteristics, and typical use cases.", - "type": [ - "string", - "null" - ] - }, - "motivation_type_id": { - "description": "Unique identifier for an annotation motivation type.", - "type": "string" - }, - "motivation_type_name": { - "const": "identifying", - "description": "Canonical name for this motivation type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "motivation_type_id", - "motivation_type_name" - ], - "title": "IdentifyingMotivation", - "type": "object" - }, - "IdentityClaim": { - "additionalProperties": false, - "description": "Claim types for organization identity information.\nIncludes names, descriptions, and identity verification claims.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "IdentityClaim", - "type": "object" - }, - "Image": { - "additionalProperties": false, - "description": "Represents a visual image with URL and metadata. **PURPOSE**: Image provides structured representation for visual content including: - Thumbnail images for cards/previews - Collection representative images - Institutional logos and branding - Digital object reproductions **ONTOLOGY ALIGNMENT**: | Ontology | Mapping | Rationale | |----------|---------|-----------| | Schema.org | schema:ImageObject | Primary class for images | | FOAF | foaf:Image | Alternative image class | **USE CASES**: - Card preview thumbnails (card_image_url migration) - Collection highlight images - Object photographs MIGRATED 2026-01-22: Created per slot_fixes.yaml revision for card_image_url.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_url" - ], - "title": "Image", - "type": "object" - }, - "ImagePost": { - "additionalProperties": false, - "description": "Static image content including photographs, graphics, and artwork scans.\n\n**Activity Streams Mapping**: `as:Image`\n**Schema.org Mapping**: `schema:ImageObject`\n\n**Platforms**:\n- Instagram (primary image platform)\n- Pinterest (discovery and curation)\n- Flickr (high-resolution, Creative Commons)\n- Facebook\n- X/Twitter\n- LinkedIn\n\n**Image Specifications by Platform**:\n\n| Platform | Optimal Size | Aspect Ratios |\n|----------|--------------|---------------|\n| Instagram | 1080x1080 | 1:1, 4:5, 1.91:1 |\n| Pinterest | 1000x1500 | 2:3 (vertical) |\n| Flickr | Original resolution | Any |\n| X/Twitter | 1200x675 | 16:9 |\n| Facebook | 1200x630 | 1.91:1 |\n\n**Heritage Use Cases**:\n\n| Use Case | Description | Platform Focus |\n|----------|-------------|----------------|\n| Collection highlights | Featured artworks/artifacts | Instagram, Pinterest |\n| Exhibition photos | Installation and opening shots | All platforms |\n| Archival scans | Historical documents and photos | Flickr, Instagram |\n| Infographics | Educational visual content | Pinterest, Instagram |\n| Before/after | Conservation progress | Instagram, Facebook |\n| Detail shots | Close-up of artwork features | Instagram, Flickr |\n\n**Metadata Captured**:\n- Dimensions (width, height)\n- Alt text / accessibility description\n- Location tags\n- Object references (linked to collection database)\n- Copyright and licensing", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "post_type_activity_streams_type": { - "const": "as:Image", - "description": "Activity Streams 2.0 type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_category": { - "const": "IMAGE", - "description": "High-level category for grouping related post types.\nValues: VIDEO, SHORT_VIDEO, IMAGE, TEXT, STORY, LIVE_STREAM,\nAUDIO, ARTICLE, THREAD, CAROUSEL, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "post_type_description": { - "description": "Detailed description of this post type including purpose,\ncharacteristics, and typical use cases in heritage context.\n", - "type": [ - "string", - "null" - ] - }, - "post_type_ephemeral": { - "description": "Whether this post type is ephemeral (disappears after time).", - "type": [ - "boolean", - "null" - ] - }, - "post_type_heritage_use_case": { - "description": "Typical use cases for heritage institutions creating this content type.\n\nExamples for Video:\n- Virtual exhibition tours\n- Conservation process documentation\n- Curator interviews\n- Historical documentary content\n- Educational lectures\n\nExamples for Short Video:\n- Artifact spotlights\n- Behind-the-scenes moments\n- Quick conservation tips\n- Event teasers\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_id": { - "description": "Unique identifier for this post type", - "type": "string" - }, - "post_type_max_duration": { - "description": "Maximum duration for this post type (e.g., video length).", - "type": [ - "string", - "null" - ] - }, - "post_type_media_format": { - "description": "Supported media formats for this post type.", - "items": { - "enum": [ - "image/jpeg", - "image/png", - "image/webp", - "image/gif" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_name": { - "description": "Canonical name for this post type.\nUsed for display and content categorization.\n\nExamples: \"Video\", \"Short Video\", \"Image Post\", \"Story\", \"Live Stream\"\n", - "type": "string" - }, - "post_type_schema_org_type": { - "const": "schema:ImageObject", - "description": "Schema.org type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_supported_platform": { - "description": "Platforms that support this post type.", - "items": { - "enum": [ - "Instagram", - "Pinterest", - "Flickr", - "Facebook", - "XTwitter", - "LinkedIn" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "post_type_id", - "post_type_name" - ], - "title": "ImagePost", - "type": "object" - }, - "ImageProtocolEnum": { - "description": "Image delivery protocols supported by image servers.", - "enum": [ - "IIP", - "IIIF_IMAGE", - "ZOOMIFY", - "DEEPZOOM", - "DJATOKA" - ], - "title": "ImageProtocolEnum", - "type": "string" - }, - "ImagingEquipment": { - "additionalProperties": false, - "description": "specialized imaging equipment (multispectral, RTI).", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ImagingEquipment", - "type": "object" - }, - "IndeterminateStatus": { - "additionalProperties": false, - "description": "Classification cannot be determined from available evidence. Used when research has been attempted but evidence is insufficient.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "IndeterminateStatus", - "type": "object" - }, - "Index": { - "additionalProperties": false, - "description": "A structured representation of an index, table of contents, or navigation structure. **USAGE**: Replaces simple string-based `table_of_content` slot per Rule 53/56 to enable: - Hierarchical entry structures (chapters, sections, subsections) - Page/location references - Multiple index types (TOC, subject index, name index) - Provenance tracking **INDEX TYPES**: - TableOfContents: Chapter/section listings for publications - SubjectIndex: Alphabetical subject listings - NameIndex: Author/person name listings - ChronologicalIndex: Date-ordered entries - TopicalIndex: Thematic groupings **HERITAGE CONTEXT**: Indices in exhibition catalogs, collection guides, archival finding aids, and other heritage publications.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Index", - "type": "object" - }, - "IndexEntry": { - "additionalProperties": false, - "description": "A single entry in an index.", - "title": "IndexEntry", - "type": "object" - }, - "InertGasSystem": { - "additionalProperties": false, - "description": "Inert gas suppression (e.g. Argonite, Inergen)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "InertGasSystem", - "type": "object" - }, - "InfillingTechnique": { - "additionalProperties": false, - "description": "Filling losses in paint layer, ground, or support.\nCreates level surface for inpainting.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "InfillingTechnique", - "type": "object" - }, - "InformalVariant": { - "additionalProperties": false, - "description": "Informal, colloquial, or casual term.\n\n**Use Cases**:\n- Casual job references\n- Colloquial terminology\n- Internal nicknames\n\n**Example**:\n```yaml\nhas_or_had_type:\n - has_or_had_label: \"Art person\"\n has_or_had_type: InformalVariant\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "InformalVariant", - "type": "object" - }, - "InformationTechnologyFunction": { - "additionalProperties": false, - "description": "Information technology function: infrastructure, software systems, user support, cybersecurity, digital preservation.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "InformationTechnologyFunction", - "type": "object" - }, - "InfraredReflectography": { - "additionalProperties": false, - "description": "Imaging in near-infrared to penetrate paint layers.\nReveals underdrawing and pentimenti.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "InfraredReflectography", - "type": "object" - }, - "InfrastructureService": { - "additionalProperties": false, - "description": "Cloud or infrastructure service.\nExamples: AWS, Azure, GCP, Docker, Kubernetes", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "InfrastructureService", - "type": "object" - }, - "IngestionFramework": { - "additionalProperties": false, - "description": "Data ingestion and ETL framework.\nExamples: Apache Airflow, Metis, Luigi, Prefect", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "IngestionFramework", - "type": "object" - }, - "InnovationExpenses": { - "additionalProperties": false, - "description": "Costs related to R&D and innovation.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "InnovationExpenses", - "type": "object" - }, - "InsectariumSubtype": { - "additionalProperties": false, - "description": "Facility specializing in insect collections and exhibits.\nMay include live and preserved specimens.\n\n**Wikidata**: Q1664720", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "InsectariumSubtype", - "type": "object" - }, - "Instagram": { - "additionalProperties": false, - "description": "Instagram profile.\n\n**URL patterns**:\n- https://www.instagram.com/{username}\n- https://instagr.am/{username}\n\n**Features**:\n- Photo and video sharing\n- Stories (24h ephemeral content)\n- Reels (short video)\n- IGTV (long-form video)\n- Shopping (for museum shops)\n\n**Heritage use cases**:\n- Visual storytelling with collection highlights\n- Behind-the-scenes conservation work\n- Exhibition previews\n- User-generated content campaigns", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "IMAGE_FOCUSED", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://www.instagram.com/{username}", - "https://instagr.am/{username}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "Instagram", - "type": "object" - }, - "InstagramClaim": { - "additionalProperties": false, - "description": "Instagram profile URL.", - "title": "InstagramClaim", - "type": "object" - }, - "InstitutionAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Institutional administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "InstitutionalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by InstitutionalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "InstitutionAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "InstitutionAdministrationFonds", - "type": "object" - }, - "InstitutionalAffiliation": { - "additionalProperties": false, - "description": "Requires affiliation with an accredited research institution. Common for university archives and research libraries.", - "title": "InstitutionalAffiliation", - "type": "object" - }, - "InstitutionalArchive": { - "additionalProperties": false, - "description": "Repository that holds records created or received by its parent institution. Institutional archives serve their creating organization by preserving records that document institutional history, operations, governance, and achievements. They differ from collecting archives in that their primary mandate is to preserve their parent organization's records rather than to acquire materials from external sources.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "InstitutionalArchive", - "type": "object" - }, - "InstitutionalArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by InstitutionalArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "InstitutionalArchiveRecordSetType", - "type": "object" - }, - "InstitutionalFunction": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "InstitutionalFunction", - "type": "object" - }, - "InstitutionalRepository": { - "additionalProperties": false, - "description": "Institutional Repository for managing and providing access to scholarly\noutputs, research data, and institutional publications.\n\nExamples: DSpace, EPrints, Fedora, Islandora, Samvera", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "const": "Institutional Repository", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "InstitutionalRepository", - "type": "object" - }, - "InstitutionalScope": { - "additionalProperties": false, - "description": "Organizational/sectoral scope dimension covering sectors and governance levels.\n\n**Examples**:\n- \"Cultural heritage sector\" (sector)\n- \"National level\" (governance level)\n- \"Academic institutions\" (institutional type)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this scope type. Can include:\n- Type URI (e.g., https://nde.nl/ontology/hc/scope-type/temporal)\n- Wikidata Q-number (e.g., Q186408)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "InstitutionalScope", - "type": "object" - }, - "InstitutionalWebsite": { - "additionalProperties": false, - "description": "Official website of a heritage institution.\n\n**PURPOSE**: Serve as the primary online presence for a heritage\ninstitution, providing information and access to services.\n\n**CHARACTERISTICS**:\n- Official institutional branding\n- Collection access\n- Visitor services\n- News and events\n\n**EXAMPLES**: rijksmuseum.nl, loc.gov, bnf.fr", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q35127" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "DISCOVERY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "InstitutionalWebsite", - "type": "object" - }, - "IntangibleHeritageEvent": { - "additionalProperties": false, - "description": "A specific occurrence or instance of an intangible heritage celebration,\nfestival, ritual, or commemorative event.\n\nModels the EVENT (temporal occurrence), not the heritage form itself.\n\n**Key Distinction**:\n\n| Concept | Class | Example |\n|---------|-------|---------|\n| Heritage tradition | IntangibleHeritageForm | \"Pride Amsterdam\" |\n| **Specific occurrence** | **IntangibleHeritageEvent** | **\"Pride Amsterdam 2024\"** |\n| Specific performance | IntangibleHeritagePerformance | \"DJ set at Pride 2024\" |\n\n**When to Use IntangibleHeritageEvent**:\n\nUse for annually recurring or periodic heritage events:\n- Annual festivals (Pride, Carnaval, Koningsdag)\n- Commemorations (1 aprilviering Brielle, Leidens Ontzet)\n- Seasonal celebrations (Sint Maarten, Vreugdevuur Scheveningen)\n- Community rituals (Aflegrituals, Cramignon dances)\n\n- **Schema.org**: schema:Event (primary - web discoverability)\n- **CIDOC-CRM**: crm:E7_Activity (temporal period of activity)\n- **CIDOC-CRM**: crm:E5_Event (historical event conceptualization)\n- **Schema.org**: schema:Festival (for festival-type events)\n\n**Relationship to Other Classes**:\n\n```\nIntangibleHeritageForm (abstract tradition)\n |\n |--- instance_of\n v\nIntangibleHeritageEvent (specific occurrence)\n |\n |--- organized_by\n v\nCustodian (organizing institution)\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_documentation": { - "description": "Links to documentation resources for a service, API, platform, or system.\n**SEMANTIC PATTERN**:\nThis slot follows the RiC-O temporal predicate pattern (has_or_had_*) to indicate that documentation may change over time (versioned docs, deprecated documentation, etc.).\n**REPLACES**:\n- `api_documentation` - URL to API documentation - Other domain-specific documentation URL slots\n**RANGE OPTIONS**:\n- uri: Simple URL to documentation - Documentation: Structured documentation with metadata\nClasses should use slot_usage to specify appropriate range.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_edition": { - "description": "Relates an entity (Work, Event) to its Edition information.\nMIGRATED from `edition_number` and `edition_statement` (via class promotion).", - "items": { - "$ref": "#/$defs/Edition" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_status": { - "$ref": "#/$defs/EventStatusEnum", - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "instance_of": { - "description": "The heritage form this event is an instance/occurrence of.\n\nLinks this specific event to its abstract heritage tradition.\n", - "type": "string" - }, - "is_or_was_cancelled_by": { - "anyOf": [ - { - "$ref": "#/$defs/Cancellation" - }, - { - "type": "null" - } - ], - "description": "The cancellation event or details that invalidated/cancelled this entity." - }, - "is_or_was_located_in": { - "description": "links an entity to a place where it is or was located.\n\n**TEMPORAL SEMANTICS** (RiC-O style):\n\nThe \"is_or_was\" naming indicates that location can change over time.\n\n**BROADENED RANGE (Rule 55)**:\nRange broadened to `Any` (from City) to support multiple location types:\n- City / Settlement\n- Region / Province (e.g. EcclesiasticalProvince)\n- Country\n- Physical Site\n\n**DISTINCTION FROM is_or_was_located_within**:\n\n- `is_or_was_located_in`: Entity is AT a place (city/settlement level)\n- `is_or_was_located_within`: Entity is CONTAINED IN a larger place (hierarchical)\n\n**REPLACES**:\n\n- `city` (string slot) - Migrated to structured City class\n\n**USE CASES**:\n\n- Address city component (structured)\n- Auxiliary place city location\n- Any entity requiring city-level location\n", - "items": { - "$ref": "#/$defs/Venue" - }, - "type": [ - "array", - "null" - ] - }, - "organized_by": { - "description": "Primary Custodian organization(s) that organized this exhibition.\n\nLinks to heritage custodian entities (museums, archives, libraries, galleries).\nFor joint exhibitions, list all organizing institutions.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "participant_count": { - "description": "Number of active participants (performers, parade participants, etc.).\nDistinct from audience/spectator count.\n", - "type": [ - "integer", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_label", - "instance_of" - ], - "title": "IntangibleHeritageEvent", - "type": "object" - }, - "IntangibleHeritageForm": { - "additionalProperties": false, - "description": "A recognized intangible cultural heritage practice, tradition, or expression.\n\nModels the heritage form ITSELF, not its specific occurrences (events/performances).\nExamples: Pride Amsterdam, Divali, 1 aprilviering Brielle, Bloemencorso Bollenstreek.\n\n**UNESCO 2003 Convention Definition**:\n\nIntangible cultural heritage includes:\n- Oral traditions and expressions (including language as vehicle of ICH)\n- Performing arts\n- Social practices, rituals, and festive events\n- Knowledge and practices concerning nature and the universe\n- Traditional craftsmanship\n\n**Dutch Context (KIEN)**:\n\nKIEN (Kenniscentrum Immaterieel Erfgoed Nederland) maintains the Dutch National\nInventory of Intangible Cultural Heritage. Heritage forms are registered after\ncommunity nomination and expert review.\n\n**Key Distinctions**:\n\n| Concept | Class | Example |\n|---------|-------|---------|\n| Heritage form (abstract) | IntangibleHeritageForm | \"Pride Amsterdam\" (the tradition) |\n| Specific occurrence | IntangibleHeritageEvent | \"Pride Amsterdam 2024\" |\n| Specific performance | IntangibleHeritagePerformance | \"Gamelan performance at X\" |\n| Organization that preserves | Custodian (type I) | \"Stichting Amsterdam Gay Pride\" |\n\n- **CIDOC-CRM**: crm:E28_Conceptual_Object (intangible concept)\n- **CIDOC-CRM**: crm:E55_Type (as categorization of heritage)\n- **Schema.org**: schema:Intangible (web semantics)\n- **SKOS**: skos:Concept (for taxonomy/thesaurus purposes)\n\n**Relationship to Custodians**:\n\nIntangibleHeritageForm is linked to Custodian via:\n- `safeguarded_by`: Custodians who preserve this heritage form\n- Inverse: Custodian.safeguards \u2192 IntangibleHeritageForm", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "$ref": "#/$defs/WikiDataIdentifier" - } - ], - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/GeographicScope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_status": { - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/UNESCODomain" - }, - "type": "array" - }, - "is_or_was_related_to": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_threatened_by": { - "description": "Factors that threaten or threatened the viability of a heritage form.\n\n**USAGE**:\nUsed for intangible cultural heritage documentation per UNESCO conventions.\n\n**COMMON THREATS**:\n- Urbanization and modernization\n- Globalization and cultural homogenization\n- Loss of practitioners (aging, lack of transmission)\n- Lack of funding and institutional support\n- Climate change and environmental degradation\n- Political instability and conflict\n- Economic pressures and commercialization\n\n**RiC-O TEMPORAL SEMANTICS**:\nThe \"or was\" indicates threats may be historical (now mitigated) or ongoing.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "kien_registration_date": { - "description": "Date when this heritage form was added to the Dutch National\nInventory of Intangible Cultural Heritage (maintained by KIEN).\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "kien_url": { - "description": "URL to the heritage form's page on the KIEN website.\nFormat: https://www.immaterieelerfgoed.nl/nl/{slug}\n", - "type": [ - "string", - "null" - ] - }, - "origin_location": { - "description": "Location where this heritage form originated.\n", - "type": [ - "string", - "null" - ] - }, - "origin_period": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Time period when this heritage form originated or first appeared.\n" - }, - "safeguarded_by": { - "description": "Heritage custodian organizations that safeguard this intangible heritage form.\n\nWe use this to link IntangibleHeritageForm \u2192 Custodian\n\n**Usage**:\n\n- Links IntangibleHeritageForm to the Custodian entities that preserve it\n- Custodians with `institution_type = I` (Intangible Heritage Group) are typical safeguarders\n\n**Examples**:\n- Pride Amsterdam is safeguarded_by Stichting Amsterdam Gay Pride\n- Traditional Dutch baking is safeguarded_by Bakkerij van Maanen", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "safeguarding_measure": { - "description": "Actions taken to ensure viability and transmission of this heritage.\n\nPer UNESCO, measures include: identification, documentation, research,\npreservation, protection, promotion, enhancement, transmission, revitalization.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label", - "is_or_was_categorized_as" - ], - "title": "IntangibleHeritageForm", - "type": "object" - }, - "IntangibleHeritageGroupType": { - "additionalProperties": false, - "description": "Specialized custodian type for organizations preserving intangible cultural heritage\n(oral traditions, performing arts, social practices, rituals, traditional craftsmanship).\n\n1. **Structural Layer** (W3C Standards):\n - skos:Concept - Thesaurus classification\n - Classification within CustodianType hierarchy\n\n2. **Domain Layer** (Heritage Ontologies):\n - crm:E74_Group - CIDOC-CRM social group (practitioners community)\n - crm:E28_Conceptual_Object - Intangible cultural practices\n - schema:PerformingGroup - For performing arts organizations\n\n3. **Web Layer** (Schema.org):\n - schema:Organization - Generic organization type\n - schema:PerformingArtsTheater - For performance venues\n - schema:CreativeWork - For cultural productions\n\n**UNESCO Intangible Cultural Heritage Domains**:\n\nPer UNESCO 2003 Convention, ICH manifests in five domains:\n\n1. **Oral Traditions and Expressions** (language as vehicle of ICH):\n - Storytelling traditions\n - Epic poetry and ballads\n - Folk narratives and legends\n - Indigenous languages\n\n2. **Performing Arts**:\n - Traditional music (folk, ritual, ceremonial)\n - Traditional dance (social, religious, ceremonial)\n - Traditional theater\n - Musical instrument making\n\n3. **Social Practices, Rituals, and Festive Events**:\n - Community festivals\n - Religious ceremonies\n - Life-cycle rituals (birth, marriage, death)\n - Seasonal celebrations\n\n4. **Knowledge and Practices Concerning Nature and the Universe**:\n - Traditional ecological knowledge\n - Indigenous land management\n - Traditional medicine\n - Astronomical knowledge systems\n\n5. **Traditional Craftsmanship**:\n - Textile arts (weaving, embroidery, dyeing)\n - Pottery and ceramics\n - Metalworking and blacksmithing\n - Woodcarving and carpentry\n - Traditional food preparation\n\n**Wikidata Coverage** (60+ intangible heritage entities):\n\nPerforming Arts Organizations:\n- Q215380 (UNESCO intangible cultural heritage element) - Recognized practices\n- Q1062726 (folklore group) - Traditional performance ensembles\n- Q3249551 (folk dance group) - Traditional dance companies\n- Q1344 (opera company) - Traditional opera preservation\n- Q215380 (gamelan ensemble) - Indonesian traditional music\n\nTraditional Crafts Guilds:\n- Q188712 (guild) - Traditional craft associations\n- Q1062726 (weavers guild) - Textile craft organizations\n- Q5878274 (traditional pottery workshop) - Ceramic heritage\n- Q104844 (blacksmith guild) - Metalworking traditions\n\nOral Tradition Organizations:\n- Q2643318 (storytelling society) - Narrative tradition preservation\n- Q1437093 (folk music society) - Traditional music documentation\n- Q215380 (epic poetry society) - Oral literature preservation\n\nFestival and Ritual Organizations:\n- Q132241 (carnival society) - Festival tradition preservation\n- Q5638360 (ritual performance group) - Ceremonial practice maintenance\n- Q215380 (feast day committee) - Annual celebration organizations\n\nIndigenous Knowledge Keepers:\n- Q215969 (indigenous cultural organization) - Traditional knowledge preservation\n- Q5738 (tribal elders council) - Cultural authority and transmission\n- Q215380 (traditional medicine practitioners) - Healing knowledge systems\n\nLanguage Revitalization Groups:\n- Q34770 (language preservation society) - Endangered language maintenance\n- Q33742 (indigenous language organization) - Native language revival\n\n**Key Distinctions from Other Types**:\n\nvs. HeritageSociety:\n- IntangibleHeritageGroup: Preserves LIVING PRACTICES (performance, ritual, craft)\n- HeritageSociety: Documents PAST HISTORY (archival, research, publication)\n- Example: Folk dance troupe (living tradition) vs. Local history society (documentation)\n\nvs. EducationProvider:\n- IntangibleHeritageGroup: COMMUNITY TRANSMISSION within cultural context\n- EducationProvider: FORMAL INSTRUCTION in academic setting\n- Example: Master-apprentice craft training vs. University craft design course\n\nvs. Museum:\n- IntangibleHeritageGroup: PRACTICE PRESERVATION (embodied knowledge)\n- Museum: OBJECT PRESERVATION (material artifacts)\n- Example: Traditional pottery workshop vs. Ceramics museum collection\n\nvs. PerformingArtsVenue:\n- IntangibleHeritageGroup: TRADITION BEARERS (practitioners community)\n- PerformingArtsVenue: PRESENTATION SPACE (hosting various performances)\n- Example: Balinese gamelan ensemble vs. Concert hall\n\nvs. NonProfit:\n- IntangibleHeritageGroup: PRIMARY mission = CULTURAL PRACTICE maintenance\n- NonProfit: PRIMARY mission = ADVOCACY/SERVICES (not practice itself)\n- Example: Traditional dance company vs. Arts advocacy organization\n\n**RDF Serialization Example**:\n\n```turtle\n@prefix hc: <https://nde.nl/ontology/hc/> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix schema: <http://schema.org/> .\n@prefix crm: <http://www.cidoc-crm.org/cidoc-crm/> .\n\nhc:IntangibleHeritageGroupType\n a skos:Concept, hc:CustodianType ;\n skos:prefLabel \"Intangible Heritage Group Type\"@en,\n \"Immaterieel Erfgoed Groep Type\"@nl,\n \"Immaterielles Kulturerbe Gruppe Typ\"@de,\n \"Type de Groupe de Patrimoine Immat\u00e9riel\"@fr ;\n skos:definition \"Organizations preserving intangible cultural heritage\"@en ;\n skos:broader hc:CustodianType ;\n skos:narrower hc:PerformingArtsGroup,\n hc:TraditionalCraftsGuild,\n hc:OralTraditionSociety ;\n schema:url <https://nde.nl/ontology/hc/class/intangible-heritage-group-type> .\n\n# Example: Balinese Gamelan Ensemble (traditional music performance group)\n<https://w3id.org/heritage/custodian/id/gamelan-gong-kebyar-bali>\n a schema:PerformingGroup, crm:E74_Group, hc:IntangibleHeritageGroup ;\n hc:custodian_type hc:IntangibleHeritageGroupType ;\n hc:ich_domain \"Performing arts - Traditional music\" ;\n hc:transmission_methods \"Master-apprentice training\", \"Community rehearsals\", \"Ceremonial performances\" ;\n hc:practitioner_community \"30 active musicians\", \"15 apprentices\", \"3 master teachers\" ;\n hc:performance_repertoire \"Gong Kebyar style\", \"Ceremonial music (odalan)\", \"Contemporary compositions\" ;\n hc:cultural_context \"Balinese Hindu temple ceremonies\", \"Community festivals\", \"Tourist performances\" ;\n hc:safeguarding_measures \"Youth training program\", \"Instrument maintenance\", \"Repertoire documentation\" ;\n schema:foundingDate \"1968\" ;\n schema:location \"Ubud, Bali, Indonesia\" ;\n schema:description \"Traditional Balinese gamelan ensemble preserving and performing gong kebyar music for temple ceremonies and cultural events\" .\n```", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "cultural_context": { - "description": "Social, religious, and community contexts in which intangible heritage is practiced.\n\nDescribes the living ecosystem of the tradition:\n- Religious/spiritual context (temple ceremonies, church festivals, indigenous rituals)\n- Community function (social cohesion, identity expression, conflict resolution)\n- Economic dimension (tourism, commercial sales, gift exchange, livelihood)\n- Political significance (resistance, cultural autonomy, national identity)\n- Lifecycle integration (births, weddings, funerals, initiations)\n- Seasonal calendars (agricultural cycles, celestial events, historical commemorations)\n- Diaspora contexts (heritage maintenance in migration, transnational practice)\n\nCritical for understanding why ICH matters to communities.\n\nExamples:\n- \"Balinese Hindu temple ceremonies, Community festivals, Tourist performances\"\n- \"Wedding gifts, Market sales, Cultural pride, Income generation\"\n- \"Easter processions, Summer village festivals, Migrant community gatherings\"\n", - "type": "string" - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^(https://nde\\.nl/ontology/hc/type/[a-z-]+/[QP][0-9]+|Q[0-9]+)$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_objective": { - "description": "The objective of an action or measure.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "intangible_heritage_subtype": { - "description": "Specific subtype from the IntangibleHeritageTypeEnum taxonomy (82 intangible heritage types).\nEach value links to a Wikidata entity describing a specific type.\n", - "items": { - "$ref": "#/$defs/IntangibleHeritageTypeEnum" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "performance_repertoire": { - "description": "Scope and content of the intangible heritage tradition maintained.\n\nFor performing arts:\n- Repertoire breadth (number of pieces, styles, genres)\n- Temporal range (ancient, historical, contemporary)\n- Contextual uses (ceremonial, social, entertainment, commercial)\n- Innovation vs. preservation (strict tradition vs. creative adaptation)\n\nFor traditional crafts:\n- Product types (textiles, pottery, metalwork, etc.)\n- Techniques preserved (weaving methods, firing techniques, etc.)\n- Design vocabulary (patterns, motifs, color systems)\n- Material knowledge (traditional vs. modern materials)\n\nFor social practices:\n- Ritual calendar (annual, seasonal, life-cycle events)\n- Ceremonial forms (processions, offerings, feast structures)\n- Social roles (participants, organizers, ritual specialists)\n\nExamples:\n- \"Gong Kebyar style, Ceremonial music (odalan), Contemporary compositions\"\n- \"Traditional Ikat patterns, Natural dye techniques, Contemporary adaptations\"\n- \"Annual Carnival parade, Summer solstice ritual, Harvest thanksgiving\"\n", - "type": "string" - }, - "practitioner_community": { - "description": "Composition and size of the community practicing this intangible heritage.\n\nDescribes who carries the living tradition:\n- Number of active practitioners (core bearers of knowledge)\n- Age demographics (generational distribution, succession planning)\n- Skill levels (masters, journeymen, apprentices, novices)\n- Geographic distribution (local, regional, diaspora)\n- Gender participation (male, female, mixed, gendered roles)\n- Ethnic/linguistic has_or_had_affiliation (indigenous, minority, majority culture)\n- Professionalization (full-time, part-time, volunteer, amateur)\n\nHelps assess tradition vitality and sustainability.\n\nExamples:\n- \"30 active musicians, 15 apprentices, 3 master teachers\"\n- \"8 elder weavers (ages 60-85), 12 mid-career (ages 35-55), 20 learners\"\n- \"25 dancers, predominantly female, ages 15-40, full-time professional\"\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "transmits_or_transmitted_through": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "cultural_context", - "performance_repertoire", - "practitioner_community", - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "IntangibleHeritageGroupType", - "type": "object" - }, - "IntangibleHeritageTypeEnum": { - "description": "", - "enum": [ - "ADVOCACY_GROUP", - "ARTISTIC_DUO", - "ARTISTS_HOUSE", - "ARTIST_RUN_CENTRE", - "ARTS_VENUE", - "ART_COLONY", - "ART_COMMUNE", - "ASSOCIATION_FOOTBALL_FEDERATION", - "BOARD_GAME_FEDERATION", - "CABARET_DUO", - "CHAMBER_OF_RHETORIC", - "CHESS_FEDERATION", - "CHILD_SAMBA_SCHOOLS_OF_RIO_DE_JANEIRO", - "CHITALISHTE", - "CLOSED_SPACE", - "CLUB", - "COMEDY_TRIO", - "COMEDY_TROUPE", - "COMMUNITY", - "COMPARSA", - "COMPARSA_1", - "CONCERT_HALL", - "COOPERATIVE_FOR_PRODUCTION", - "CREW", - "CREW_1", - "CULTURAL_BUILDING", - "CULTURAL_CENTER", - "CULTURAL_FACILITY", - "CULTURAL_INSTITUTION", - "DANCE_ORGANIZATION", - "DEMOGROUP", - "DRESDNER_SEZESSION", - "DYAD", - "ETHNIC_GROUP", - "EVENT_VENUE", - "EXTINCT_HUMAN_GROUP", - "GHARANA", - "GROUP_OF_HUMANS", - "GROUP_OR_CLASS_OF_PEOPLE", - "HOUSE_OF_CULTURE", - "INDIVIDUAL_SPORTS_FEDERATION", - "INTERNATIONAL_SPORT_GOVERNING_BODY", - "ISOLATED_HUMAN_GROUP", - "JURIDICAL_PERSON", - "KABARETTGRUPPE", - "KVN_TEAM", - "LOCAL_HERITAGE_INSTITUTION_IN_SWEDEN", - "MEMBERSHIP_ORGANIZATION", - "MEMORY_INSTITUTION", - "MIND_SPORTS_FEDERATION", - "MINORITY_GROUP", - "MUNICIPAL_ARTS_CENTRE", - "MUSICAL_ENSEMBLE", - "MUSIC_ORGANIZATION", - "MUSIC_VENUE", - "PARODISTAS", - "PATIENT_GROUP", - "PERFORMING_ARTS_BUILDING", - "PERFORMING_ARTS_GROUP", - "PERSON_OR_ORGANIZATION", - "PHYSICAL_SOCIAL_SPACE", - "PRIVATE_ACTING_SCHOOL", - "PROJECT", - "PUBLIC_SPACE", - "RECORDING_STUDIO", - "RELIGIOUS_GROUP", - "SCIENTIFIC_TECHNIC_AND_INDUSTRIAL_CULTURE_CENTER", - "SIBLING_GROUP", - "SOCIAL_GROUP", - "SOCIAL_ORGANIZATION", - "SOCIAL_SPACE", - "SOCIAL_STRUCTURE", - "SPECIAL_INTEREST_GROUP", - "SPORTS_GOVERNING_BODY", - "SPORTS_ORGANIZATION", - "THEATRE_COMEDY_GROUP", - "TRAVELING_CARNIVAL", - "TRAVELLING_MENAGERIE", - "VENUE", - "VOLUNTARY_ASSOCIATION", - "WINERY", - "WRITING_CREW", - "NL_4_EN_5_MEI", - "NL_AAISYKJE", - "NL_ABRAHAMDAG_IN_OOSTERHOUT", - "NL_ACHT_VAN_CHAAM", - "NL_AFRO_SURINAAMSE_AFLEGRITUELEN", - "NL_AIRBORNE_WANDELTOCHT", - "NL_ALKMAARS_KAASDRAGERS_GILDE", - "NL_ALKMAARS_ONTZET", - "NL_ALLERZIELEN", - "NL_AMBACHT_VAN_DIAMANTBEWERKER", - "NL_AMBACHT_VAN_HANDMATIG_KLOMPEN_MAKEN", - "NL_ANANSI_VERTELTRADITIE", - "NL_ANGISA_BINDEN_EN_KOTO_MAKEN", - "NL_BEIAARDCULTUUR", - "NL_BESCHERMING_VAN_HET_HEILIG_SACRAMENT_DOOR_DE_SCHUTTERSBROEDERSCHAP_SINT_SEBASTIANUS_KERKRADE", - "NL_BEUGELEN", - "NL_BIDWEG_VAN_DE_STERRE_DER_ZEE", - "NL_BIJENHOUDEN", - "NL_BLOEMENCORSO_BOLLENSTREEK", - "NL_BLOEMENCORSO_EELDE", - "NL_BLOEMENCORSO_LICHTENVOORDE", - "NL_BLOEMENCORSO_VALKENSWAARD", - "NL_BLOEMENCORSO_VOLLENHOVE", - "NL_BLOEMENCORSO_ZUNDERT", - "NL_BOERENKAAS_MAKEN", - "NL_BONAKEN", - "NL_BOVENSTEMZINGEN_BIJ_PSALMEN_IN_GENEMUIDEN", - "NL_BOXMEERSE_VAART", - "NL_BRABANTSEDAG_IN_HEEZE", - "NL_BRABANTSE_ORGELCULTUUR", - "NL_BRABANTS_WORSTENBROODJE", - "NL_BRIELSE_MASKERADE_IN_BRIELLE", - "NL_BRUINE_VLOOT", - "NL_BURGEMEESTER_EN_PAASVUUR_BUURTSCHAP_NEDERLAND_IN_STEENWIJKERLAND", - "NL_BUURTSPRAAK_EDE_EN_VELDHUIZEN", - "NL_CARBIDSCHIETEN_IN_DRENTHE", - "NL_CARNAVAL_IN_NOORDOOST_TWENTE", - "NL_CHANOEKA", - "NL_CHINEES_INDISCHE_RESTAURANTCULTUUR", - "NL_CIRCUSCULTUUR", - "NL_CLUSTER_KORTEBAANDRAVERIJEN", - "NL_CORSOKOEPEL", - "NL_CORSO_SINT_JANSKLOOSTER", - "NL_CRAMIGNON", - "NL_CULTUUR_VAN_HET_PIJPROKEN", - "NL_DECORATIEVE_SCHILDERTECHNIEKEN", - "NL_DE_MARRONCULTUUR", - "NL_DE_OPRECHTE_DALFSER_MOPTRADITIE", - "NL_DRAAKSTEKEN_IN_BEESEL", - "NL_DRENTSE_BOERMARKEN", - "NL_DRENTSE_GESCHEPERDE_SCHAAPSKUDDES", - "NL_DRIEKONINGENZINGEN_IN_MIDDEN_BRABANT", - "NL_DRUKKUNST", - "NL_ELSTER_PAARDENMARKT", - "NL_FANFAREORKEST", - "NL_FIERLJEPPEN", - "NL_FIJNDISTILLATIE_VAN_GENEVER_EN_LIKEUR_IN_AMSTERDAM", - "NL_FRIES_HOUTSNIJWERK_IN_DE_KNIPE", - "NL_FRUITCORSO_TIEL", - "NL_GOEDEDOELENLOTERIJ", - "NL_GONDELVAART_GIETHOORN", - "NL_GONDELVAART_OP_WIELEN_IN_DROGEHAM", - "NL_GOORS_SCHOOL_EN_VOLKSFEEST", - "NL_GOUDSE_KLEIPIJP_MAKEN", - "NL_GREGORIAANSE_ZANG_DOOR_IN_HONOREM_DEI", - "NL_GROLSE_WANTEN_BREIEN", - "NL_GRONINGER_EIERBAL", - "NL_GRONINGS_ONTZET", - "NL_GROTE_ZWAAGSE_CARNAVALSOPTOCHT", - "NL_HANDSCHRIFT", - "NL_HARDDRAVERIJ_VAN_MEDEMBLIK", - "NL_HARING_UITREIKING_IN_NIEKERK", - "NL_HEERLIJKHEDEN_SINOUTSKERKE_EN_BAARSDORP", - "NL_HEGGENVLECHTEN", - "NL_HEILIG_BLOED_PROCESSIE_BOXTEL", - "NL_HENNA_KUNST", - "NL_HET_ADOPTEREN_VAN_AMERIKAANSE_OORLOGSGRAVEN_IN_MARGRATEN", - "NL_HET_AMBACHT_VAN_MOLENAAR8", - "NL_HINDELOOPER_CULTUUR", - "NL_HOEDEN_MAKEN", - "NL_HOLI_PHAGWA", - "NL_HOORNSE_KERMIS_EN_LAPPENDAG", - "NL_HOUTDORP_RIJSSEN", - "NL_INDISCHE_RIJSTTAFEL", - "NL_INDISCH_KOKEN_EN_DE_INDISCHE_RIJSTTAFELTRADITIE", - "NL_JAS_DE_KEISTAMPER", - "NL_KAHA_DI_\u00d2RGEL", - "NL_KATOENDRUKKEN_EN_BLOCKPRINTEN", - "NL_KERMISCULTUUR", - "NL_KETIKOTI", - "NL_KINDERPOSTZEGELACTIE", - "NL_KOEIEMART_IN_WOERDEN", - "NL_KONINGSDAG", - "NL_KOPRO_BEKI", - "NL_KORTEBAANDRAVERIJ_HOOFDDORP", - "NL_KORTEBAANDRAVERIJ_IN_STOMPWIJK", - "NL_KRULBOLLEN_IN_ZEEUWS_VLAANDEREN", - "NL_LEIDENS_ONTZET", - "NL_LEVENDE_NEDERLANDSE_FOLKLOREDANS", - "NL_MAASHEGGENVLECHTEN", - "NL_MACHINAAL_KLOMPEN_MAKEN", - "NL_MARKER_BORDUREN", - "NL_MATTH\u00c4USPASSION_IN_GROTE_KERK_NAARDEN", - "NL_MEIERBLIS", - "NL_MELKBUSSCHIETEN_IN_KAMPEN", - "NL_MENRIT_OP_HEMELVAARTSDAG_IN_DE_ALBLASSERWAARD", - "NL_METWORSTRENNEN_IN_BOXMEER", - "NL_MIDWINTERHOORNBLAZEN_IN_GELDERLAND_EN_OVERIJSSEL", - "NL_MIDWINTERHOORN_BOUWEN_IN_GELDERLAND_EN_OVERIJSSEL", - "NL_MORSE_ALS_COMMUNICATIEMIDDEL", - "NL_MOUTWIJN_STOKEN_IN_SCHIEDAM", - "NL_NACHTWACHT_VAN_OOTMARSUM", - "NL_NIJMEEGSE_VIERDAAGSE", - "NL_NOABERSCHAP_IN_DE_LOKALE_UITVAART", - "NL_NOORD_BRABANTSE_SCHUTTERSGILDEN", - "NL_OOGSTDANKFEESTEN_IN_BERG_AAN_DE_MAAS", - "NL_OUD_LIMBURGS_SCHUTTERSFEEST", - "NL_OUWE_SUNDERKLAAS", - "NL_PAARDENMARKT_VALKENBURG", - "NL_PAARDENMARKT_VIANEN", - "NL_PAASGEBRUIKEN_IN_DENEKAMP", - "NL_PAASVUUR_ESPELO", - "NL_PAPIERKNIPKUNST", - "NL_PAPIERSCHEPPEN_IN_DOESBURG", - "NL_PAPIERSCHEPPEN_IN_ROTTERDAM", - "NL_PAPIERSCHEPPEN_IN_UTRECHT", - "NL_PASSIESPELEN_TEGELEN", - "NL_PENCAK_SILAT_EN_SILAT", - "NL_PERKAMENT_MAKEN_IN_WIERDEN", - "NL_PINKSTERBRUIDJES_IN_BORNE", - "NL_PINKSTERKERMIS_BANHOLT", - "NL_PINKSTERRIJDEN_IN_VOLENHOVE", - "NL_PLATEELSCHILDEREN_IN_GOUDA", - "NL_POASKEARLS_IN_OOTMARSUM", - "NL_POSTDUIVENSPORT", - "NL_PRIJSDANSEN_IN_NIEUW_VOSSEMEER", - "NL_REPARATIE_OVERNAADS_GEBOUWDE_HOUTEN_VLETTEN", - "NL_RIVIERVISSERIJ", - "NL_SALLANDSE_BOTTERMARKT", - "NL_SCHAAPHERDER_MET_OUDE_LANDSCHAAP_RASSEN", - "NL_SCHAATSEN_OP_NATUURIJS", - "NL_SCHOONRIJDEN_OP_DE_SCHAATS", - "NL_SCHUTTERSBOGENROUTE_DIDAM", - "NL_SHANTIES_ZINGEN", - "NL_SIGAREN_MAKEN_IN_IJSSELMUIDEN", - "NL_SINTERKLAASFEEST", - "NL_SINT_BRIGIDA_DENHALEN_IN_NOORBEEK", - "NL_SINT_JACOBUS_PAARDENMARKT_IN_ALBLASSERDAM", - "NL_SINT_JANSTROSSENWIJDING_IN_LEENDERSTRIJP", - "NL_SINT_MAARTENVIERING_IN_UTRECHT", - "NL_SINT_PITERFEEST_IN_GROUW", - "NL_SJAASBERGERGANK_IN_VALKENBURG", - "NL_SKS_KAMPIOENSCHAP_SK\u00dbTJESILEN", - "NL_SLIPJACHT", - "NL_SLURPEN_VAN_DE_PAPEDA", - "NL_SMEDEN_IN_ANDELST", - "NL_SNERTKOKEN", - "NL_SNUIFREDER", - "NL_STAPHORSTER_STIPWERK", - "NL_STOELENMATTEN_IN_BAKEL", - "NL_STOELENMATTEN_IN_ZUNDERT", - "NL_STOETBOMENTRADITIE", - "NL_STOKEN_VAN_LIMBURGSE_STROOP", - "NL_STRAATEXPLOITATIE_VAN_DRAAIORGELS", - "NL_STRAORIJDEN", - "NL_STRONTWEEK", - "NL_SURINAAMS_JAVAANSE_GAMELANTRADITIE", - "NL_TAMBOER_VAN_HOOGEVEEN", - "NL_TAMB\u00da", - "NL_THUISBEVALLEN", - "NL_TIELSE_KERMISKOEK", - "NL_TILDUIVEN_IN_DEN_HAAG", - "NL_TRADITIES_STADSGILDE_STE_CATHARINA_WEERT", - "NL_TRADITIONELE_BEVLOEIING_VAN_GRASLAND", - "NL_UITRUKKEN_VAN_DE_DIEPENHEIMSE_SCHUTTERIJ", - "NL_VALKERIJ", - "NL_VARSITY", - "NL_VENDELEN_IN_GELDERLAND", - "NL_VLECHTEN_VAN_GEBRUIKSVOORWERPEN", - "NL_VOLKSFEEST_WINTERSWIJK", - "NL_VONDELCARROUSEL", - "NL_VOORSCHOTENSE_PAARDENDAGEN", - "NL_VREUGDEVUUR_DUINDORP", - "NL_VREUGDEVUUR_SCHEVENINGEN_NOORDERSTRAND", - "NL_VREUGDEVUUR_VOORBURG_WEST", - "NL_VUURWERK_JAARWISSELING_IN_NEDERLAND", - "NL_WATERWONEN", - "NL_WECKEN_IN_RODEN", - "NL_WEERVISSERIJ", - "NL_WEVEN", - "NL_WOONWAGENCULTUUR", - "NL_ZOMERCARNAVAL_ROTTERDAM" - ], - "title": "IntangibleHeritageTypeEnum", - "type": "string" - }, - "IntegratedLibrarySystem": { - "additionalProperties": false, - "description": "Integrated Library System (ILS) - comprehensive software for library operations\nincluding cataloging, circulation, acquisitions, and patron management.\n\nExamples: ALMA, Koha, Sierra, Aleph, Voyager, Symphony, Millennium", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "const": "Integrated Library System", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "IntegratedLibrarySystem", - "type": "object" - }, - "IntegratingResource": { - "additionalProperties": false, - "description": "A resource added to or changed over time by means of updates\nincorporated into the whole without remaining discrete.\n\n**PURPOSE**: Provide continuously updated heritage information that\nevolves over time without maintaining separate versions.\n\n**CHARACTERISTICS**:\n- Continuous updates\n- Integrated changes\n- Current state focus\n- No discrete editions\n\n**EXAMPLES**: Updating databases, loose-leaf services, websites", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q108637623" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "DISCOVERY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "IntegratingResource", - "type": "object" - }, - "InternalCode": { - "additionalProperties": false, - "description": "Label type for internal reference codes.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_code" - ], - "title": "InternalCode", - "type": "object" - }, - "InternalCodeIdentifier": { - "additionalProperties": false, - "description": "Internal system code or database ID.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "INTERNAL_CODE", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Internal Code", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "InternalCodeIdentifier", - "type": "object" - }, - "InternationalDelegate": { - "additionalProperties": false, - "description": "International delegate representing institution in global forums.\n\n**Official Title vs De Facto Work**:\nMay participate in standards development, international\npartnerships, and diplomatic cultural exchange.\n\n**Common Variants**:\n- International Relations Officer\n- Cultural Attach\u00e9\n- International Programs Manager\n- Global Partnerships Director\n\n**Typical Domains**: National institutions, international organizations\n\n**Typical Responsibilities**:\n- International representation\n- Standards body participation\n- Partnership development\n- Cultural diplomacy\n- Knowledge exchange", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "InternationalDelegate", - "type": "object" - }, - "InternationalOrgFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for International organization records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ArchiveOfInternationalOrganization", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ArchiveOfInternationalOrganization custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "InternationalOrgFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "InternationalOrgFonds", - "type": "object" - }, - "InternetOfThings": { - "additionalProperties": false, - "description": "Physical device with digital connectivity used by a heritage custodian\nto enhance visitor experience, monitor conditions, or provide services.\n\n**WHY IOT CLASS?**\n\nModern heritage institutions increasingly deploy IoT devices:\n- **Beacons**: Location-based triggers for mobile apps\n- **Kiosks**: Interactive information terminals\n- **Sensors**: Environmental monitoring (climate, light, visitor counts)\n- **Displays**: Digital signage, interactive screens\n\nThese are a form of DIGITAL PRESENCE that bridges physical and digital worlds.\n\n**RELATIONSHIP TO OTHER DIGITAL PRESENCE TYPES**:\n\n```\nDigital Presence Hierarchy:\n\nDigitalPlatform (PRIMARY - websites)\n \u2502\n \u2514\u2500\u2500 AuxiliaryDigitalPlatform (SECONDARY - project sites)\n\nSocialMediaProfile (THIRD-PARTY - external platforms)\n\nInternetOfThings (PHYSICAL-DIGITAL - in-venue devices) \u2190 THIS CLASS\n```\n\n**SOSA/SSN ALIGNMENT**:\n\nW3C Semantic Sensor Network (SSN) and Sensor, Observation, Sample, \nand Actuator (SOSA) ontologies provide the semantic foundation:\n\n- `sosa:Platform` - Entity hosting sensors/systems (building, room, beacon)\n- `sosa:Sensor` - Device that observes properties\n- `sosa:Observation` - Act of observing a property\n- `ssn:System` - System comprising multiple components\n\n**USE CASES**:\n\n1. **Visitor Experience Enhancement**:\n - Bluetooth beacons trigger app content near artworks\n - NFC tags on object labels for detailed information\n - Interactive kiosks for self-guided exploration\n \n2. **Environmental Monitoring**:\n - Climate sensors (temperature, humidity) for conservation\n - Light level sensors to protect sensitive materials\n - Air quality monitoring in storage areas\n \n3. **Visitor Analytics**:\n - People counters at entrances\n - Heat maps of gallery traffic\n - Dwell time sensors near exhibits\n \n4. **Digital Signage**:\n - Rotating information displays\n - Exhibition schedules\n - Wayfinding screens\n\n**EXAMPLE - Museum with IoT Devices**:\n\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n iot_devices:\n - device_id: \".../iot/rijksmuseum-beacon-gallery-1\"\n device_name: \"Gallery of Honour Beacon Network\"\n device_type: IOT_BEACON\n device_count: 24\n coverage_area: \"Gallery of Honour (main wing)\"\n purpose: \"Proximity triggers for mobile app content\"\n \n - device_id: \".../iot/rijksmuseum-climate-monitor\"\n device_name: \"Conservation Climate Monitoring\"\n device_type: IOT_SENSOR\n device_count: 150\n coverage_area: \"All galleries and storage\"\n purpose: \"Temperature and humidity monitoring for preservation\"\n publishes_to: \"https://dashboard.rijksmuseum.nl/climate\"\n```\n\n**TEMPORAL CONSIDERATIONS**:\n\nIoT devices have installation/decommissioning dates:\n- Beacons may be temporary for exhibitions\n- Sensors may be upgraded/replaced\n- Kiosks may be moved between venues\n\n**NOT INCLUDED**:\n\n- Smartphones/tablets (user devices, not custodian-owned)\n- Standard IT infrastructure (servers, networking)\n- Security cameras (unless part of heritage experience)", - "properties": { - "connectivity_type": { - "description": "Type of connectivity used by the device.\n\nValues:\n- BLUETOOTH_LE: Bluetooth Low Energy (beacons)\n- WIFI: WiFi network connection\n- ETHERNET: Wired network connection\n- LORAWAN: Long-range low-power IoT network\n- NFC: Near-field communication\n- ZIGBEE: Zigbee mesh network\n- CELLULAR: 4G/5G cellular connection\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "coverage_area": { - "description": "Physical area covered by this device or device network.\n\nSchema.org: areaServed for geographic coverage.\n\nCan be room names, zones, or descriptions.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_endpoint": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/APIEndpoint__identifier_optional" - }, - { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - } - ] - }, - "description": "The data service endpoint.", - "type": [ - "object", - "null" - ] - }, - "has_or_had_frequency": { - "anyOf": [ - { - "$ref": "#/$defs/UpdateFrequency" - }, - { - "type": "null" - } - ], - "description": "Links to an UpdateFrequency instance representing how often updates occur.\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming indicates that frequency can change over time: - IoT sensors may be reconfigured to different update rates - Data feeds may change from hourly to real-time - Systems may be optimized to reduce update frequency\n**REPLACES**: `update_frequency` (string slot)\n**IMPROVEMENT OVER STRING**: - Structured quantity (numeric value) - Structured time interval (ISO 8601 duration) - Event-driven vs time-based distinction - Machine-readable for analytics\n**USE CASES**: - IoT devices: Sensor update rates - Data feeds: Sync frequencies - APIs: Rate limiting and polling intervals" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_model": { - "description": "Model or structure description (business model, organizational model, etc.). Uses schema:businessFunction for business model descriptions.\nClasses narrow this slot via slot_usage for domain-specific descriptions: - CommercialOrganizationType \u2192 business model (funding/revenue structure)", - "type": [ - "string", - "null" - ] - }, - "has_or_had_output": { - "description": "Output produced by a device, service, or process.\n\n**USAGE**:\nRepresents data, signals, or artifacts emitted by:\n- IoT devices (sensor readings, beacon signals)\n- APIs and services (data responses)\n- Processing pipelines (transformed data)\n- Software systems (reports, exports)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadOutput` - Heritage Custodian property\n- **Close**: `sosa:hasResult` - SOSA observation result\n- **Close**: `schema:produces` - Schema.org production relationship\n\n**RANGE**: `OutputData` class\nThe OutputData class captures output specifications including format,\nfrequency, destination, and data characteristics.\n", - "items": { - "$ref": "#/$defs/OutputData" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_specification": { - "description": "Technical specifications associated with an entity.\n\n**USAGE**:\nUsed for:\n- IoT device technical specs (range, connectivity, power)\n- Equipment specifications\n- System requirements\n- Hardware/software specifications\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: schema:additionalProperty\n- close_mappings: dcterms:conformsTo\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "installation_date": { - "description": "Date when the device was installed.\n\nSchema.org: dateCreated for installation date.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "installed_at_place": { - "anyOf": [ - { - "$ref": "#/$defs/CustodianPlace" - }, - { - "type": "null" - } - ], - "description": "CustodianPlace where this device is installed.\n\nLinks to CustodianPlace for precise location.\n\nSchema.org: location for physical location.\n" - }, - "is_or_was_created_by": { - "anyOf": [ - { - "$ref": "#/$defs/Manufacturer" - }, - { - "type": "null" - } - ], - "description": "Links an entity to its creator, manufacturer, or producer.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this relationship\nmay be historical - manufacturers change names, merge, or go out of business.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:wasAttributedTo` - PROV-O agent attribution\n- **Close**: `schema:manufacturer` - Schema.org manufacturer\n- **Close**: `crm:P108_was_produced_by` - CIDOC-CRM production relationship\n\n**Usage**:\nUse with Manufacturer class for structured manufacturer information.\nRange is uriorcurie to allow both class instances and URI references.\n\n**Replaces**: device_manufacturer slot per slot_fixes.yaml migration (2026-01-25)\n" - }, - "is_or_was_decommissioned_at": { - "anyOf": [ - { - "$ref": "#/$defs/Timestamp" - }, - { - "type": "null" - } - ], - "description": "Timestamp when an entity was or will be decommissioned.\n\n**Purpose**:\nRecords the date/time when an IoT device, system, or other entity\nwas taken out of service or is scheduled for decommissioning.\nNULL if still operational.\n\n**Temporal Semantics** (Rule 39 - RiC-O style):\nThe \"is_or_was_\" prefix indicates this timestamp applies to both:\n- Past events: device was decommissioned on this date\n- Future events: device is scheduled to be decommissioned\n\n**Use Cases**:\n- IoT device lifecycle management\n- Equipment retirement tracking\n- System sunset planning\n- Infrastructure decommissioning records\n\n**Replaces**: decommission_date (per slot_fixes.yaml)\n" - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_instantiated_by": { - "$ref": "#/$defs/IoTDevice", - "description": "Links an entity to its instantiated type class.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this relationship\nmay be historical - device types may change or be reclassified over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `rdf:type` - RDF type relationship\n- **Close**: `schema:additionalType` - Schema.org additional type\n\n**Usage**:\nUse with typed class hierarchies (e.g., IoTDevice, DeviceType).\nRange is uriorcurie to allow both class instances and URI references.\n\n**Replaces**: device_type slot per slot_fixes.yaml migration (2026-01-25)\n" - }, - "maintenance_schedule": { - "description": "Maintenance schedule for the device.\n\nExamples:\n- \"Monthly battery check\"\n- \"Quarterly calibration\"\n- \"Annual hardware inspection\"\n", - "type": [ - "string", - "null" - ] - }, - "operational_status": { - "description": "Current operational status of the device.\n\nValues:\n- ACTIVE: Currently operational\n- MAINTENANCE: Under maintenance\n- OFFLINE: Not currently functional\n- DECOMMISSIONED: Permanently retired\n- PLANNED: Not yet installed\n\nSchema.org: status for current status.\n", - "type": [ - "string", - "null" - ] - }, - "power_source": { - "description": "Power source for the device.\n\nValues:\n- BATTERY: Battery-powered\n- MAINS: Mains electricity\n- POE: Power over Ethernet\n- SOLAR: Solar-powered\n- USB: USB-powered\n", - "type": [ - "string", - "null" - ] - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label", - "is_or_was_instantiated_by", - "refers_to_custodian" - ], - "title": "InternetOfThings", - "type": "object" - }, - "InventoryNumberIdentifier": { - "additionalProperties": false, - "description": "Museum or collection inventory number.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "INVENTORY_NUMBER", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Inventory Number", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "InventoryNumberIdentifier", - "type": "object" - }, - "IoTActuator": { - "additionalProperties": false, - "description": "Device that performs actions (e.g., HVAC controls, lighting).\n\n**Use Cases**:\n- Climate control (HVAC) for conservation\n- Automated lighting systems\n- Security systems", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "IoTActuator", - "type": "object" - }, - "IoTBeacon": { - "additionalProperties": false, - "description": "Bluetooth beacon or proximity device for location-based triggers.\n\n**Use Cases**:\n- Proximity triggers for mobile app content near artworks\n- Indoor navigation and wayfinding\n- Visitor tracking and analytics\n\n**Replaces**: IOT_BEACON value from DigitalPresenceTypeEnum", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "IoTBeacon", - "type": "object" - }, - "IoTBeaconPresence": { - "additionalProperties": false, - "description": "Bluetooth/NFC beacon for location-based services.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "IoTBeaconPresence", - "type": "object" - }, - "IoTDevice": { - "additionalProperties": false, - "description": "IoT device.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "IoTDevice", - "type": "object" - }, - "IoTDisplay": { - "additionalProperties": false, - "description": "Digital signage or display device.\n\n**Use Cases**:\n- Rotating information displays\n- Exhibition schedules\n- Digital labels for artworks\n\n**Replaces**: IOT_DISPLAY value from DigitalPresenceTypeEnum (if existed)", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "IoTDisplay", - "type": "object" - }, - "IoTKiosk": { - "additionalProperties": false, - "description": "Interactive information terminal or kiosk device.\n\n**Use Cases**:\n- Self-service collection search for visitors\n- Wayfinding and orientation\n- Ticketing and information display\n\n**Replaces**: IOT_KIOSK value from DigitalPresenceTypeEnum", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "IoTKiosk", - "type": "object" - }, - "IoTKioskPresence": { - "additionalProperties": false, - "description": "Interactive kiosk or touch screen display.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "IoTKioskPresence", - "type": "object" - }, - "IoTSensor": { - "additionalProperties": false, - "description": "Environmental or measurement sensor device.\n\n**Use Cases**:\n- Climate monitoring (temperature, humidity) for conservation\n- Light level sensors for protection of sensitive materials\n- Air quality monitoring in storage areas\n- Visitor counting\n\n**Replaces**: IOT_SENSOR value from DigitalPresenceTypeEnum", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "IoTSensor", - "type": "object" - }, - "IoTSensorPresence": { - "additionalProperties": false, - "description": "Environmental or monitoring sensor.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "IoTSensorPresence", - "type": "object" - }, - "IsilCodeClaim": { - "additionalProperties": false, - "description": "ISIL identifier.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "IsilCodeClaim", - "type": "object" - }, - "ItalianRestaurant": { - "additionalProperties": false, - "description": "Restaurant serving Italian cuisine.\nIncludes trattorias, osterias, and establishments preserving\nregional Italian culinary traditions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ItalianRestaurant", - "type": "object" - }, - "Item": { - "additionalProperties": false, - "description": "The smallest intellectually indivisible unit of archival material.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Item", - "type": "object" - }, - "ItemCountCapacity": { - "additionalProperties": false, - "description": "Number of items that can be stored.\nUsed for boxes, folders, objects, artworks.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ItemCountCapacity", - "type": "object" - }, - "Janitor": { - "additionalProperties": false, - "description": "Janitor providing building maintenance and minor repairs.\n\n**Official Title vs De Facto Work**:\nMay assist with exhibition installation, event setup,\nand emergency response beyond routine maintenance.\n\n**Common Variants**:\n- Building Superintendent\n- Maintenance Worker\n- Handyman\n- Caretaker\n\n**Typical Domains**: All heritage institutions with physical facilities\n\n**Typical Responsibilities**:\n- Minor repairs and maintenance\n- Equipment maintenance\n- Groundskeeping (in some cases)\n- Setup assistance for events", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Janitor", - "type": "object" - }, - "JointArchives": { - "additionalProperties": false, - "description": "Archive containing records of two or more entities. Joint archives are collaborative archival institutions that serve multiple organizations, often resulting from mergers, partnerships, or shared service arrangements. They may preserve records from multiple municipalities, institutions, or organizations under a unified archival program.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "JointArchives", - "type": "object" - }, - "JointArchivesRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by JointArchives custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "JointArchivesRecordSetType", - "type": "object" - }, - "JournalNameClaim": { - "additionalProperties": false, - "description": "Name of journal or periodical published.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "JournalNameClaim", - "type": "object" - }, - "JournalistCommunity": { - "additionalProperties": false, - "description": "Journalists and media professionals.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "JournalistCommunity", - "type": "object" - }, - "JournalistPapersCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Journalist papers.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PressArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PressArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "JournalistPapersCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "JournalistPapersCollection", - "type": "object" - }, - "JudicialRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Court records and legal documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "StateArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by StateArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "JudicialRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "JudicialRecordSeries", - "type": "object" - }, - "Jurisdiction": { - "additionalProperties": false, - "description": "A distinct area subject to a government and set of laws.\n\n**CRITICAL DISTINCTION: Jurisdiction vs ServiceArea**\n\nJurisdiction and ServiceArea are fundamentally different concepts:\n\n| Aspect | Jurisdiction | ServiceArea |\n|--------|--------------|-------------|\n| **Definition** | Geographic area where specific LAWS AND POLICIES apply | Geographic area where a SPECIFIC custodian operates (\"werkgebied\") |\n| **Scope** | Legal framework scope | Operational territory |\n| **Sharing** | SHARED by multiple custodians operating under same legal framework | UNIQUE to each custodian |\n| **Example** | Dutch national law creates a jurisdiction for all municipal archives in NL | Each municipal archive has its own municipality as service area |\n\n**Key Example**:\n\nA national law (e.g., Archiefwet) creates a JURISDICTION covering the entire Netherlands.\nALL Dutch municipal archives operate within this SAME jurisdiction - they share it!\nBut each municipal archive has a DIFFERENT ServiceArea (werkgebied) - typically\ntheir own municipality or region.\n\n- Noord-Hollands Archief: Jurisdiction = NL (Dutch national law), ServiceArea = Haarlem + surrounding municipalities\n- Gemeentearchief Amsterdam: Jurisdiction = NL (same!), ServiceArea = Amsterdam municipality\n- Regionaal Archief Tilburg: Jurisdiction = NL (same!), ServiceArea = Tilburg region\n\nAll three share the SAME jurisdiction but have DIFFERENT service areas.\n\n**Purpose of Jurisdiction**:\n\nJurisdictions define the LEGAL scope of registration authorities and trade registers.\nUnlike pure geographic classes (Country, Subregion, Settlement), Jurisdiction captures\nthe legal framework applicable to organizations - which laws govern their registration,\ndissolution, governance, and archival obligations.\n\n**Ontology Alignment:**\n\n- lcc_cr:GeographicRegion - OMG Languages Countries and Codes (used by GLEIF)\n- gleif_base:hasLegalJurisdiction - links entities to their jurisdiction of registration\n- gleif_base:hasCoverageArea - geographic scope of registration authorities\n\n**Types of Jurisdiction:**\n\n1. **National Jurisdiction**: Entire country (e.g., Netherlands, Japan)\n - Maps to Country class\n - Most common for trade registers\n\n2. **Subnational Jurisdiction**: State, province, region (e.g., Bavaria, New York)\n - Maps to Subregion class\n - Common for federal systems (USA, Germany, Canada, Australia)\n\n3. **Municipal Jurisdiction**: City-level (e.g., City of London, Hong Kong)\n - Maps to Settlement class\n - For city-states and special administrative regions\n\n4. **Supranational Jurisdiction**: Multi-country (e.g., European Union, OHADA)\n - Represented via supranational identifier\n - Relevant for EU-wide legal forms (SE, SCE, EEIG)\n\n**GLEIF Integration:**\n\nThis class aligns with GLEIF ontology concepts:\n- gleif_base:hasLegalJurisdiction - jurisdiction where entity is registered\n- gleif_base:hasCoverageArea - geographic scope of registration authority\n\n**Examples:**\n\n- Netherlands (national): authority=KvK, covers all NL legal entities\n- Bavaria (subnational): Handelsregister M\u00fcnchen, covers Bavarian businesses\n- Hong Kong (special region): Companies Registry, covers HK companies\n- European Union (supranational): European Company (SE) registration\n\nSee also:\n- TradeRegister: Business registers operating within a jurisdiction\n- RegistrationAuthority: Organizations maintaining registers\n- LegalForm: Legal forms valid within specific jurisdictions\n- **ServiceArea**: The operational territory (\"werkgebied\") of a specific custodian - NOT to be confused with Jurisdiction!", - "properties": { - "country": { - "anyOf": [ - { - "$ref": "#/$defs/Country" - }, - { - "type": "null" - } - ], - "description": "Country where this place is located (OPTIONAL).\n\nLinks to Country class with ISO 3166-1 codes.\n\nSchema.org: addressCountry uses ISO 3166-1 alpha-2 codes.\n\nUse when:\n- Place name is ambiguous across countries (\"Victoria Museum\" exists in multiple countries)\n- Feature types are country-specific (e.g., \"cultural heritage of Peru\")\n- Generating country-conditional enums\n\nExamples:\n- \"Rijksmuseum\" \u2192 country.alpha_2 = \"NL\"\n- \"cultural heritage of Peru\" \u2192 country.alpha_2 = \"PE\"\n" - }, - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_geographic_subdivision": { - "description": "Geographic subdivision within a country (state, province, region, department, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity may have been located in different subdivisions\nover time (e.g., due to boundary changes, administrative reorganization).\n\n**Geographic Hierarchy**:\nCountry \u2192 GeographicSubdivision (this slot) \u2192 Settlement\n\n**Identifier Format**:\nISO 3166-2 codes: {country_alpha2}-{subdivision_code}\nExamples: US-PA (Pennsylvania), ID-BA (Bali), DE-BY (Bavaria), NL-LI (Limburg)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `lcc_cr:isSubregionOf` - OMG Languages Countries and Codes\n- **Exact**: `schema:addressRegion` - Schema.org administrative region\n- **Close**: `locn:adminUnitL2` - INSPIRE administrative unit level 2\n- **Close**: `gn:A.ADM1` - GeoNames first-order administrative division\n\n**Use Cases**:\n- Place is located in a specific subdivision (e.g., \"Pittsburgh museum\" \u2192 US-PA)\n- Feature types are region-specific (e.g., \"sacred shrine (Bali)\" \u2192 ID-BA)\n- Legal jurisdiction at subnational level (e.g., Bavarian archive law)\n- Generating GHCID region codes\n\n**Range**: `uriorcurie` (Rule 55) - Allows both:\n- URI references to Subregion class instances\n- Direct ISO 3166-2 code CURIEs\n\n**Migration Note** (2026-01-17):\nReplaces domain-specific `subregion` slot per slot_fixes.yaml revision.\nProvides generic predicate name applicable across geographic contexts.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "jurisdiction_id": { - "description": "Unique identifier for this jurisdiction.\n\nRecommended format: ISO-based hierarchical identifier\n\nExamples:\n- \"NL\" (Netherlands national)\n- \"DE-BY\" (Bavaria subnational)\n- \"HK\" (Hong Kong municipal/special region)\n- \"EU\" (European Union supranational)\n", - "type": "string" - }, - "jurisdiction_type": { - "$ref": "#/$defs/JurisdictionTypeEnum", - "description": "Classification of jurisdiction level.\n\nValues:\n- NATIONAL: Country-level jurisdiction (most common)\n- SUBNATIONAL: State/province/region level\n- MUNICIPAL: City/municipality level\n- SUPRANATIONAL: Multi-country jurisdiction (EU, OHADA)\n\nThis determines which geographic slot is required:\n- NATIONAL: country required\n- SUBNATIONAL: country + subregion required\n- MUNICIPAL: country + settlement required (subregion optional)\n- SUPRANATIONAL: supranational_code required\n" - }, - "legal_system_type": { - "$ref": "#/$defs/LegalSystemTypeEnum", - "description": "Type of legal system in this jurisdiction.\n\nValues:\n- CIVIL_LAW: Continental European tradition (Germany, Netherlands, Japan)\n- COMMON_LAW: English tradition (UK, USA, Australia)\n- MIXED: Combination (South Africa, Louisiana, Quebec)\n- RELIGIOUS: Based on religious law (some Middle Eastern jurisdictions)\n- CUSTOMARY: Based on local custom\n\nThis affects which legal forms are available and how entities are registered.\n" - }, - "settlement": { - "description": "City/town where this place is located (OPTIONAL).\n\nLinks to Settlement class with GeoNames numeric identifiers.\n\nGeoNames ID resolves ambiguity: 41 \"Springfield\"s in USA have different IDs.\n\nSchema.org: location for settlement reference.\n\nUse when:\n- Place is in a specific city (e.g., \"Amsterdam museum\" \u2192 GeoNames 2759794)\n- Feature types are city-specific (e.g., \"City of Pittsburgh historic designation\")\n- Maximum geographic precision needed\n\nExamples:\n- \"Amsterdam museum\" \u2192 settlement.geonames_id = 2759794\n- \"Pittsburgh designation\" \u2192 settlement.geonames_id = 5206379\n- \"Rio museum\" \u2192 settlement.geonames_id = 3451190\n\nNOTE: settlement must be within the specified country and subregion (if provided).\n\nGeoNames lookup: https://www.geonames.org/{geonames_id}/\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "jurisdiction_id", - "jurisdiction_type" - ], - "title": "Jurisdiction", - "type": "object" - }, - "JurisdictionDependent": { - "additionalProperties": false, - "description": "Deductibility varies based on the donor's tax jurisdiction.\n\nCommon for international donations where deductibility depends\non tax treaties and donor's country of residence.\n\n**Examples**:\n- US donor to European museum (may require US friends organization)\n- Cross-border donations within EU\n- Donations to organizations with multiple country registrations", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "JurisdictionDependent", - "type": "object" - }, - "JurisdictionTypeEnum": { - "description": "Classification of jurisdiction levels", - "enum": [ - "NATIONAL", - "SUBNATIONAL", - "MUNICIPAL", - "SUPRANATIONAL" - ], - "title": "JurisdictionTypeEnum", - "type": "string" - }, - "JusticeTopic": { - "additionalProperties": false, - "description": "Topic related to justice and legal history.\n\nIncludes: court records, criminal cases, legal proceedings,\nrechtbanken, justitie.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/TopicType" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/TopicType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "JusticeTopic", - "type": "object" - }, - "KeyDate": { - "additionalProperties": false, - "description": "Key date.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "KeyDate", - "type": "object" - }, - "KeyPeriod": { - "additionalProperties": false, - "description": "Key period.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "KeyPeriod", - "type": "object" - }, - "KreisAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for District (Kreis) administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "DistrictArchiveGermany", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by DistrictArchiveGermany custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "KreisAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "KreisAdministrationFonds", - "type": "object" - }, - "Kunsthalle": { - "additionalProperties": false, - "description": "An art exhibition space without a permanent collection.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_model": { - "description": "Model or structure description (business model, organizational model, etc.). Uses schema:businessFunction for business model descriptions.\nClasses narrow this slot via slot_usage for domain-specific descriptions: - CommercialOrganizationType \u2192 business model (funding/revenue structure)", - "type": [ - "string", - "null" - ] - }, - "has_or_had_objective": { - "description": "The objective of an action or measure.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_service": { - "description": "A service offered by an entity.\n\n**USAGE**:\nUsed for:\n- Visitor services (guided tours, audio guides)\n- Research services\n- Conservation services\n", - "items": { - "$ref": "#/$defs/Service" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string" - }, - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "represents_or_represented": { - "description": "Represents an artist or entity.", - "items": { - "$ref": "#/$defs/Artist" - }, - "type": [ - "array", - "null" - ] - }, - "sales_activity": { - "description": "Whether the gallery actively sells artworks to collectors.\nTrue = artwork sales (primary or secondary market)\nFalse = exhibition-only (no sales activity)\n\nDistinction from commercial_operation:\n- commercial_operation: business model (for-profit vs. nonprofit)\n- sales_activity: transactional activity (sells artworks or not)\n\nA gallery can be commercial_operation=true but sales_activity=false\n(e.g., art consultancy that doesn't hold inventory).\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "Kunsthalle", - "type": "object" - }, - "KvKIdentifier": { - "additionalProperties": false, - "description": "Dutch Chamber of Commerce (Kamer van Koophandel) registration number.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "KVK", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "KvK Number", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "KvKIdentifier", - "type": "object" - }, - "KvkNumberClaim": { - "additionalProperties": false, - "description": "Dutch Chamber of Commerce number.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "KvkNumberClaim", - "type": "object" - }, - "LEIIdentifier": { - "additionalProperties": false, - "description": "Legal Entity Identifier (ISO 17442).", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "LEI", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "LEI", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "LEIIdentifier", - "type": "object" - }, - "LGBTArchive": { - "additionalProperties": false, - "description": "Archive related to LGBT (Lesbian, Gay, Bisexual, Transgender) topics. LGBT archives collect and preserve materials documenting the history, culture, activism, and experiences of LGBT communities. They may include organizational records, personal papers, periodicals, photographs, oral histories, and ephemera. These archives often emerged from community activism and continue to serve both scholarly research and community memory.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LGBTArchive", - "type": "object" - }, - "LGBTArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by LGBTArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LGBTArchiveRecordSetType", - "type": "object" - }, - "LGBTOrganizationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for LGBT organization records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "LGBTArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by LGBTArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "LGBTOrganizationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LGBTOrganizationFonds", - "type": "object" - }, - "LINE": { - "additionalProperties": false, - "description": "LINE official account (Japanese/Asian messaging platform).\n\n**Features**:\n- Messaging and stickers\n- Official accounts\n- Timeline posts\n- LINE Pay integration\n\n**Heritage use cases**:\n- Japanese visitor engagement\n- Event notifications\n- Ticketing integration", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "MESSAGING", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "LINE", - "type": "object" - }, - "LLMProviderEnum": { - "description": "Enumeration of LLM providers/platforms supported by DSPy integration.\nUsed for routing, cost tracking, and provider-specific behavior.", - "enum": [ - "zai", - "anthropic", - "openai", - "huggingface", - "groq", - "together", - "local" - ], - "title": "LLMProviderEnum", - "type": "string" - }, - "LLMResponse": { - "additionalProperties": false, - "description": "Provenance metadata for LLM API responses, including GLM 4.7 Thinking Modes.\n\nCaptures complete response metadata from LLM providers (ZhipuAI GLM, Anthropic,\nOpenAI, etc.) for traceability and analysis. The key innovation is capturing\n`reasoning_content` - the chain-of-thought reasoning that GLM 4.7 exposes\nthrough its three thinking modes.\n\n**GLM 4.7 Thinking Modes** (https://docs.z.ai/guides/capabilities/thinking-mode):\n\n1. **Interleaved Thinking** (default, since GLM-4.5):\n - Model thinks between tool calls and after receiving tool results\n - Enables complex, step-by-step reasoning with tool chaining\n - Returns `reasoning_content` alongside `content` in every response\n\n2. **Preserved Thinking** (new in GLM-4.7):\n - Retains reasoning_content from previous assistant turns in context\n - Preserves reasoning continuity across multi-turn conversations\n - Improves model performance and increases cache hit rates\n - **Enabled by default on Coding Plan endpoint**\n - Requires returning EXACT, UNMODIFIED reasoning_content back to API\n - Set via: `preserves_or_preserved` with `is_preserved: true` (preserve previous reasoning)\n\n3. **Turn-level Thinking** (new in GLM-4.7):\n - Control reasoning computation on a per-turn basis\n - Enable/disable thinking independently for each request in a session\n - Useful for balancing speed (simple queries) vs accuracy (complex tasks)\n - Set via: `\"thinking\": {\"type\": \"enabled\"}` or `\"thinking\": {\"type\": \"disabled\"}`\n\n**Critical Implementation Note for Preserved Thinking**:\nWhen using Preserved Thinking with tool calls, thinking blocks MUST be:\n1. Explicitly preserved in the messages array\n2. Returned together with tool results\n3. Kept in EXACT original sequence (no reordering/editing)\n\n**PROV-O Alignment**:\n- LLMResponse IS a prov:Activity (the inference process)\n- content IS prov:Entity (the generated output)\n- model/provider IS prov:Agent (the AI system)\n- reasoning_content documents the prov:Plan (how the agent reasoned)\n- prompt (input) IS prov:used (input to the activity)\n\n**Use Cases**:\n- DSPy RAG responses with reasoning traces\n- Heritage institution extraction provenance\n- LinkML schema conformity validation\n- Ontology mapping decision logs\n- Multi-turn agent conversations with preserved context", - "properties": { - "consumes_or_consumed": { - "description": "Resources consumed by an entity or activity.\n\n**USAGE**:\nUsed for:\n- Token consumption (LLM APIs)\n- Resource usage metrics\n- Consumption tracking\n", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "content": { - "description": "The final LLM response text (message.content from API response).\nPROV-O: prov:generated - the entity produced by this activity.\n\nThis is the primary output shown to users and used for downstream processing.\n", - "type": "string" - }, - "cost_usd": { - "description": "Estimated cost in USD for this LLM call.\n\nFor Z.AI Coding Plan: $0.00 (free tier for GLM models)\nFor other providers: calculated from token counts and pricing\n", - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": "string" - }, - "has_or_had_mode": { - "anyOf": [ - { - "$ref": "#/$defs/ThinkingMode" - }, - { - "type": "null" - } - ], - "description": "The operational mode or configuration of an entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity may have operated in different modes over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:actionOption` - Schema.org option for actions\n- **Close**: `crm:P2_has_type` - CIDOC-CRM predicate for typing entities\n\n**Usage**:\nThis is a GENERIC slot intended for reuse across multiple classes.\nClasses may narrow the range in slot_usage to reference specific Mode classes\n(e.g., ThinkingMode, OperationalMode, etc.).\n\n**Range**: `uriorcurie` (Rule 55 - broaden range for class-level narrowing)\n\n**Migrated From**: thinking_mode (2026-01-16)\n" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_token": { - "description": "Token data associated with an entity (e.g., LLM token counts, cached tokens). Generic slot following RiC-O temporal naming convention. UPDATED v1.1.0: Range changed to Token class per full Rule 53/56 compliance.", - "items": { - "$ref": "#/$defs/Token" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_ceased_by": { - "description": "Indicates that an activity or process was ceased/terminated by a specific event or condition. MIGRATED from finish_reason per Rule 53. Follows RiC-O naming convention.", - "items": { - "$ref": "#/$defs/CeaseEvent" - }, - "type": [ - "array", - "null" - ] - }, - "latency_ms": { - "description": "Response latency in milliseconds (time from request to response).\nMeasured client-side (includes network time).\n", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "model": { - "description": "The LLM model identifier from the API response.\nPROV-O: Part of prov:wasAssociatedWith - identifies the specific model version.\n\nCommon values:\n- glm-4.7: ZhipuAI GLM 4.7 (with Interleaved Thinking)\n- glm-4.6: ZhipuAI GLM 4.6\n- claude-3-opus-20240229: Anthropic Claude Opus\n- gpt-4-turbo: OpenAI GPT-4 Turbo\n", - "type": "string" - }, - "preserves_or_preserved": { - "description": "What is being preserved or maintained by this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"preservesOrPreserved\" naming follows RiC-O convention indicating\nthis relationship may be historical - an entity may have preserved\ndifferent content over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `rico:hasOrHadSubject` - RiC-O subject relationship\n- **Close**: `prov:used` - PROV-O input relationship\n- **Close**: `schema:object` - Schema.org action object\n\n**Usage**:\nThis is a GENERIC slot intended for reuse across multiple classes.\nClasses may narrow the range in slot_usage to reference specific classes\n(e.g., ReasoningContent for LLM context preservation).\n\n**LLM Thinking Context**:\nIn the context of LLM responses, this slot replaces the boolean `clear_thinking`\nslot. Instead of a boolean flag, this slot points to a ReasoningContent object\nthat captures what reasoning is being preserved across turns.\n\n**Range**: `uriorcurie` (Rule 55 - broaden range for class-level narrowing)\n\n**Migrated From**: clear_thinking (2026-01-19)\n", - "items": { - "$ref": "#/$defs/ReasoningContent" - }, - "type": [ - "array", - "null" - ] - }, - "reasoning_content": { - "description": "Interleaved Thinking - the model's chain-of-thought reasoning.\nPROV-O: prov:hadPlan - documents HOW the agent reasoned.\n\n**GLM 4.7 Interleaved Thinking**:\nGLM 4.7 returns `reasoning_content` in every response, exposing the\nmodel's step-by-step reasoning process. This enables:\n\n1. **Schema Validation**: Model reasons about LinkML constraints before generating output\n2. **Ontology Mapping**: Explicit reasoning about CIDOC-CRM, CPOV, TOOI class mappings\n3. **RDF Quality**: Chain-of-thought validates triple construction\n4. **Transparency**: Full audit trail of extraction decisions\n\nMay be null for providers that don't expose reasoning (Claude, GPT-4).\n", - "type": [ - "string", - "null" - ] - }, - "request_id": { - "description": "Unique request ID from the LLM provider API (for tracing/debugging).\nEnables correlation with provider logs for troubleshooting.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "content", - "created", - "model" - ], - "title": "LLMResponse", - "type": "object" - }, - "Label": { - "additionalProperties": false, - "description": "A human-readable label for an entity, with optional language tagging.\n\n**Purpose**:\nLabel provides a reusable class for representing named/labeled references\nacross the heritage custodian schema. Used when an identifier or reference\nalso identifies a secondary named entity (e.g., name authority records).\n\n**Ontological Alignment**:\n- **Primary**: `rdfs:Resource` - generic resource with label\n- **Close**: `skos:Concept` - labeled concept in controlled vocabulary\n\n**Use Cases**:\n- Dual-purpose identifiers (ISNI, VIAF) that identify both an entity\n and its name authority record\n- Secondary labels/references for complex relationships\n- Language-tagged names and labels\n\n**Enables**:\n- Multilingual label representation (via language slot)\n- Typed labels with explicit language codes\n- Reusable labeled references across schema", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "type": [ - "string", - "null" - ] - }, - "language": { - "description": "Primary language of content on this profile.\n\nDublin Core: language for content language.\n\nISO 639-1 language code (e.g., \"en\", \"nl\", \"de\").\n\nSome institutions maintain separate profiles for different languages.\n", - "pattern": "^[a-z]{2}$", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "Label", - "type": "object" - }, - "LaborPublicationsCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for labor movement publications and printed materials.\n\n**Definition**:\nCollections of publications produced by or for the labor movement,\nincluding newspapers, magazines, pamphlets, and propaganda materials.\nDocuments workers' communication, education, and political organizing.\n\n**Typical Contents**:\n- Union newspapers and magazines (vakbondskranten)\n- Industry journals\n- Political pamphlets and brochures\n- Educational materials (vormingsmateriaal)\n- Election materials\n- Congress publications\n- Anniversary publications\n- May Day publications\n- International labor publications\n- Theoretical journals\n- Workers' almanacs and yearbooks\n\n**Publication Types**:\n- Regular periodicals\n- Special issues\n- One-time publications\n- Leaflets and flyers\n- Posters\n- Membership bulletins\n\n**Content Themes**:\n- Workers' rights and conditions\n- Political commentary\n- International solidarity\n- Union news and announcements\n- Educational content\n- Cultural contributions\n\n**Dutch Context**:\nNotable publications:\n- Het Vrije Volk (historical)\n- De Vakbeweging\n- FNV Magazine\n- CNV Informatie\n- Industry-specific publications\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the collection organizational principle as defined by rico-rst:Collection\n(assembled publications organized by title, publisher, or subject).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "preservation_note": { - "const": "Historical labor publications often printed on acidic paper requiring preservation intervention. Digitization projects increasingly making these collections accessible online.", - "description": "Notes about preservation requirements or considerations.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the collection principle as defined by rico-rst:Collection. Assembled publications organized by title, publisher, union, or subject matter.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "LaborPublicationsCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"administrative records\", \"contracts\", \"photographs (separate)\", \"personal papers\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"newspapers\", \"magazines\", \"pamphlets\", \"educational materials\", \"propaganda\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "LaborPublicationsCollection", - "type": "object" - }, - "LaboratoryRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Laboratory notebooks and data.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ScientificArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ScientificArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "LaboratoryRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LaboratoryRecordSeries", - "type": "object" - }, - "LandRecordsSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Property and land registry records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "StateArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by StateArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "LandRecordsSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LandRecordsSeries", - "type": "object" - }, - "LandscapeFeature": { - "additionalProperties": false, - "description": "Landscape features (Garden, Park, Cemetery)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "LandscapeFeature", - "type": "object" - }, - "Language": { - "additionalProperties": false, - "description": "A language with ISO codes and optional text content.\n\n**Purpose**:\nRepresents a language entity that can identify the language of text content.\nUsed for language-tagged text where the language code and content are bundled together.\n\n**Use Cases**:\n1. Language identification only (just codes, no content)\n2. Language-tagged text (codes + text_content for multilingual data)\n\n**Migration Support**:\nThis class supports migration from language-specific text slots (fr, de, en, nl)\nto a unified `has_or_had_language` + `Language` pattern per slot_fixes.yaml.\n\n**Ontological Alignment**:\n- **Primary**: `dct:LinguisticSystem` - Dublin Core linguistic system\n- **Close**: `schema:Language` - Schema.org language", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_iso_639_1": { - "description": "ISO 639-1 two-letter language code.", - "items": { - "pattern": "^[a-z]{2}$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_iso_639_3": { - "description": "ISO 639-3 three-letter language code.", - "items": { - "pattern": "^[a-z]{3}$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "description": "Human-readable name of the language (e.g., \"English\", \"Dutch\", \"French\"). Parsed from raw string, not authoritative. Use ISO codes for formal identification.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_text": { - "description": "Text content in this language. Used when bundling language identification with the actual text content.", - "items": { - "$ref": "#/$defs/Text" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Language", - "type": "object" - }, - "LanguageCode": { - "additionalProperties": false, - "description": "ISO 639-1 two-letter language code.\nDublin Core: LinguisticSystem for language representation.\n\n**Examples**: \"nl\", \"en\", \"fr\", \"de\", \"es\"", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "language_code": { - "description": "ISO 639-1 two-letter language code.\nDerived from language_name lookup.\n", - "pattern": "^[a-z]{2}$", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "language_code" - ], - "title": "LanguageCode", - "type": "object" - }, - "LanguageProficiency": { - "additionalProperties": false, - "description": "A language skill with proficiency level.\n\nModels language abilities as extracted from LinkedIn profiles,\nwith both raw string and parsed components.\n\n**Schema.org Alignment**:\n- Represents schema:knowsLanguage relation\n- Language is schema:Language\n\n**Use Cases**:\n- LinkedIn profile language sections\n- Multilingual staff identification\n- Heritage institution language capabilities\n\n**Example JSON Values**:\n```json\n[\n \"English - Native or bilingual\",\n \"Dutch - Native or bilingual\",\n \"French - Professional working proficiency\"\n]\n```\n\n**LinkedIn Proficiency Levels**:\n- Native or bilingual proficiency\n- Full professional proficiency \n- Professional working proficiency\n- Limited working proficiency\n- Elementary proficiency", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "language_code": { - "description": "ISO 639-1 two-letter language code.\nDerived from language_name lookup.\n", - "pattern": "^[a-z]{2}$", - "type": [ - "string", - "null" - ] - }, - "language_name": { - "description": "Language name (parsed from raw string).\n", - "type": [ - "string", - "null" - ] - }, - "language_raw": { - "description": "Raw language string as extracted from LinkedIn.\nFormat: \"Language - Proficiency level\"\nPreserved for provenance.\n", - "type": [ - "string", - "null" - ] - }, - "proficiency_level": { - "$ref": "#/$defs/LanguageProficiencyEnum", - "description": "Proficiency level as parsed from LinkedIn.\nUses LanguageProficiencyEnum values.\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "LanguageProficiency", - "type": "object" - }, - "LanguageProficiencyEnum": { - "description": "LinkedIn language proficiency levels.\nBased on LinkedIn's standard proficiency descriptions.", - "enum": [ - "NATIVE_BILINGUAL", - "FULL_PROFESSIONAL", - "PROFESSIONAL_WORKING", - "LIMITED_WORKING", - "ELEMENTARY", - "UNKNOWN" - ], - "title": "LanguageProficiencyEnum", - "type": "string" - }, - "Laptop": { - "additionalProperties": false, - "description": "Permission specification for laptop use in reading rooms or study areas. **DEFINITION**: A policy specification indicating whether researchers may use personal laptops when consulting materials in reading rooms. **SCHEMA.ORG ALIGNMENT**: Maps to `schema:LocationFeatureSpecification` as it describes an amenity or feature availability at a location (the reading room). **TYPICAL CONDITIONS**: - Silent operation required - No external keyboards/mice - Power outlets available - WiFi access included/separate **TEMPORAL SEMANTICS**: Laptop policies may change over time: - Pre-2010: Many archives prohibited laptops - 2010s: Most became laptop-friendly - COVID era: Some restrictions due to spacing **EXAMPLE**: ```yaml allows_or_allowed:\n - permitted_item: Laptop\n is_permitted: true\n conditions:\n - \"Silent operation required\"\n - \"No external keyboards\"\n valid_from: \"2015-01-01\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_permitted": { - "description": "Is Permitted for heritage custodian entities.\n", - "type": "boolean" - }, - "poses_or_posed_condition": { - "description": "Conditions, requirements, or constraints that apply to something.\n\nThis slot captures access conditions, use restrictions, or other requirements\nthat must be met. Uses RiC-O temporal pattern for conditions that may\nchange over time.\n\n**SEMANTIC DISTINCTION**:\n- `poses_or_posed_condition`: Requirements/restrictions to access or use something\n- `has_or_had_condition`: Physical/preservation state of an object\n\n**Migration (2026-01-22)**:\n- `condition` \u2192 `poses_or_posed_condition` + `Condition` class\n- Per slot_fixes.yaml (Rule 53)\n", - "items": { - "$ref": "#/$defs/Condition" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_permitted" - ], - "title": "Laptop", - "type": "object" - }, - "LaserCleaning": { - "additionalProperties": false, - "description": "Ablation of surface deposits using focused laser energy.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "LaserCleaning", - "type": "object" - }, - "Lawyer": { - "additionalProperties": false, - "description": "Lawyer providing in-house or external legal services.\n\n**Official Title vs De Facto Work**:\nIn heritage context, often specializes in cultural property,\nIP, employment, or nonprofit law.\n\n**Common Variants**:\n- General Counsel\n- In-House Counsel\n- Cultural Property Lawyer\n- Art Lawyer\n\n**Typical Domains**: Large heritage institutions\n\n**Typical Responsibilities**:\n- Legal representation\n- Contract negotiation\n- Litigation management\n- Risk management\n- Regulatory compliance", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Lawyer", - "type": "object" - }, - "LearningPlatformPresence": { - "additionalProperties": false, - "description": "Learning management system or educational platform.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "LearningPlatformPresence", - "type": "object" - }, - "LegacyPlatform": { - "additionalProperties": false, - "description": "Deprecated but maintained platform, old website version, sunset service.\nNo longer actively developed but still accessible.\n\n**PURPOSE**: Maintain access to historical platform versions for\ncontinuity and reference purposes.\n\n**CHARACTERISTICS**:\n- No active development\n- Maintained for access\n- Redirect to successors\n- Historical reference\n\n**EXAMPLES**: Old website archives, deprecated API versions", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AUXILIARY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "LegacyPlatform", - "type": "object" - }, - "LegacyPortal": { - "additionalProperties": false, - "description": "Historical portal that is no longer actively maintained but may still\ncontain unique data or serve as redirect to successor platforms.\n\n**PURPOSE**: Document historical aggregation efforts and provide transition\npaths to successor platforms while preserving unique identifiers and links.\n\n**CRITICAL TEMPORAL SEMANTICS**:\nThe \"legacy\" status of a portal is NOT determined by the user's query time\n(i.e., \"now\" when someone looks at the data). Instead, legacy status is\ndetermined by the TimeSpan of a CustodianObservation that documents the\nportal's cessation.\n\nThis distinction is semantically important because:\n1. The user's vantage point (query time) is OUTSIDE the semantic context\n of the ontology - it is meta-level information\n2. A CustodianObservation records evidence from a specific point in time\n3. The observation's TimeSpan establishes WHEN the portal was observed\n to have ceased operations\n4. Legacy status is thus observation-relative, not user-relative\n\n**EXAMPLE**:\n- Portal X observed as active in CustodianObservation A (TimeSpan: 2020-01-01)\n- Portal X observed as ceased in CustodianObservation B (TimeSpan: 2023-06-15)\n- The legacy status is tied to observation B's TimeSpan (2023-06-15)\n- Whether a user queries this in 2023 or 2030 does not change the semantic\n content - the cessation was observed on 2023-06-15\n\n**CHARACTERISTICS**:\n- No longer actively maintained (as of observation TimeSpan)\n- May contain unique historical data\n- Redirects to successor platforms\n- Preserved for link persistence\n- Documentation of historical context\n\n**SUCCESSOR TRACKING**:\nUse `is_or_was_superseded_by` slot to link to replacement portal(s):\n- One-to-one succession (portal replaced by single successor)\n- One-to-many succession (portal split into multiple successors)\n- Many-to-one succession (multiple portals merged into one)\n\n**USE CASES**:\n- Superseded regional portals\n- Merged aggregation services\n- Discontinued projects\n- Archived web platforms", - "properties": { - "ceases_or_ceased_through": { - "description": "The event through which an entity ceases or ceased to exist/operate. MIGRATED from cessation_observed_in (Rule 53).", - "items": { - "$ref": "#/$defs/CeasingEvent" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_superseded_by": { - "description": "Reference to an entity that supersedes, replaces, or succeeds this one.\n\n**TEMPORAL SEMANTICS** (RiC-O naming convention):\nThe \"is_or_was\" prefix indicates this relationship may be:\n- Current (active supersession)\n- Historical (past supersession in a chain)\n\n**USAGE**:\nUsed to track version chains and replacement relationships:\n- Finding aid versions (v1 \u2192 v2 \u2192 v3)\n- Assertion updates (old assertion \u2192 new assertion)\n- Document versions (original \u2192 amended)\n\n**PROVENANCE PATTERN**:\nFor temporal tracking, combine with `temporal_extent` to record\nWHEN the supersession occurred:\n```yaml\nis_or_was_superseded_by: https://example.org/finding-aid/v2\ntemporal_extent:\n end_of_the_end: \"2025-06-15\" # Date when superseded\n```\n\n**MIGRATED FROM**: superseded_by (2026-01-16)\n- Original slot_uri preserved in exact_mappings\n- Changed from range:uri to range:uriorcurie per Rule 55\n- Renamed per Rule 39 (RiC-O temporal naming)\n\nDublin Core: isReplacedBy - \"A related resource that supplants, \ndisplaces, or supersedes the described resource.\"\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_category": { - "const": "LIFECYCLE", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "LegacyPortal", - "type": "object" - }, - "LegalConsultant": { - "additionalProperties": false, - "description": "Legal consultant providing external legal expertise.\n\n**Official Title vs De Facto Work**:\nMay advise on contracts, IP, provenance, repatriation,\nand compliance matters.\n\n**Common Variants**:\n- Legal Advisor\n- External Counsel\n- IP Consultant\n\n**Typical Domains**: Heritage institutions with legal needs\n\n**Typical Responsibilities**:\n- Contract review\n- Legal risk assessment\n- Compliance advice\n- Provenance research support\n- Policy development", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "LegalConsultant", - "type": "object" - }, - "LegalContent": { - "additionalProperties": false, - "description": "Legal documents, laws, contracts, court records.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "LEGAL", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Legal Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "LegalContent", - "type": "object" - }, - "LegalEntityType": { - "additionalProperties": false, - "description": "Top-level legal entity classification distinguishing between natural persons\nand legal persons (organizations, corporations, government bodies).\n\nMaps to:\n- org:classification (W3C Organization Ontology)\n- schema:additionalType (Schema.org)\n- tooi:organisatiesoort (TOOI for Dutch entities)", - "properties": { - "code": { - "description": "Short code for the entity type:\n- PERSON: Natural person (individual)\n- ORGANIZATION: Legal person (all organizational forms)\n", - "pattern": "^(PERSON|ORGANIZATION)$", - "type": "string" - }, - "definition": { - "description": "Formal definition of the legal entity type", - "type": "string" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "id": { - "description": "Unique identifier for the legal entity type", - "type": "string" - }, - "label": { - "description": "Human-readable label for the entity type", - "type": "string" - }, - "ontology_mapping": { - "description": "Mapping to base ontology classes:\n- PERSON \u2192 crm:E21_Person, foaf:Person\n- ORGANIZATION \u2192 org:Organization, cpov:PublicOrganisation\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "id", - "code", - "label", - "definition" - ], - "title": "LegalEntityType", - "type": "object" - }, - "LegalForm": { - "additionalProperties": false, - "description": "Legal form of an organization as recognized by law.\nBased on ISO 20275 Entity Legal Forms (ELF) standard.\n\nMaps to:\n- rov:orgType (Registered Organizations Vocabulary)\n- gleif:hasLegalForm (GLEIF ontology)\n- tooi:rechtsvorm (TOOI for Dutch entities)", - "properties": { - "elf_code": { - "description": "ISO 20275 Entity Legal Form code (4 alphanumeric characters).\nExamples: 8888 (Stichting), RJFM (Public Limited Company)\n", - "pattern": "^[A-Z0-9]{4}$", - "type": "string" - }, - "has_or_had_abbreviation": { - "description": "Common has_or_had_abbreviation of the legal form.\nExamples: \"BV\", \"GmbH\", \"LLC\"\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_country": { - "$ref": "#/$defs/Country", - "description": "Country jurisdiction for this legal form.\n\nLinks to Country class with ISO 3166-1 codes.\n\nLegal forms are jurisdiction-specific - a \"Stichting\" in Netherlands (NL)\nhas different legal meaning than a \"Fundaci\u00f3n\" in Spain (ES).\n\nSchema.org: addressCountry indicates jurisdiction.\n\nExamples:\n- Dutch Stichting \u2192 country.alpha_2 = \"NL\"\n- German GmbH \u2192 country.alpha_2 = \"DE\"\n- French Association \u2192 country.alpha_2 = \"FR\"\n" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "id": { - "description": "Unique identifier for the legal form", - "type": "string" - }, - "legal_entity_type": { - "description": "Reference to the high-level LegalEntityType.\nLinks to either PERSON or ORGANIZATION.\n", - "type": "string" - }, - "local_name": { - "description": "Name of the legal form in the local language.\nExamples: \"Stichting\", \"Gesellschaft mit beschr\u00e4nkter Haftung\"\n", - "type": "string" - }, - "parent_form": { - "description": "Parent legal form in the hierarchy.\nExample: \"Limited Company\" may have subtypes like \"Public Limited Company\"\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "transliterated_name": { - "description": "Transliterated name for non-Latin scripts.\nUsed for legal forms from countries using non-Latin alphabets.\n", - "type": [ - "string", - "null" - ] - }, - "valid_from": { - "description": "Date when this legal form code became valid", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "valid_to": { - "description": "Date when this legal form code ceased to be valid (if applicable)", - "format": "date", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "elf_code", - "has_or_had_country", - "local_name", - "legal_entity_type" - ], - "title": "LegalForm", - "type": "object" - }, - "LegalFormClaim": { - "additionalProperties": false, - "description": "Legal form/structure of the organization.\nDutch: stichting, vereniging, vof, bv, nv.\nEnglish: foundation, association, LLC, corporation.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "LegalFormClaim", - "type": "object" - }, - "LegalFunction": { - "additionalProperties": false, - "description": "Legal and compliance function: contracts, intellectual property, regulatory compliance, risk management, governance.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "LegalFunction", - "type": "object" - }, - "LegalName": { - "additionalProperties": false, - "description": "Legal name of an entity as officially registered.\n\nFollowing TOOI pattern, provides three name variants:\n1. Name including organizational type (e.g., \"Gemeente 's-Gravenhage\")\n2. Name excluding organizational type (e.g., \"'s-Gravenhage\")\n3. Alphabetically ordered variant (e.g., \"Gravenhage\")\n\nMaps to:\n- rov:legalName (Registered Organizations Vocabulary)\n- tooi:officieleNaamInclSoort (TOOI full name)\n- tooi:officieleNaamExclSoort (TOOI name without type)\n- tooi:alfabetischeVolgorde (TOOI alphabetical ordering)", - "properties": { - "alphabetical_name": { - "description": "Name variant for alphabetical ordering (articles moved to end).\nExample: \"Gravenhage, 's\" instead of \"'s-Gravenhage\"\n", - "type": [ - "string", - "null" - ] - }, - "display_name": { - "description": "Preferred display name for user interfaces.\nMay differ from legal name for readability.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_label": { - "description": "Complete legal name including organizational type.\nExample: \"Stichting Rijksmuseum Amsterdam\"\n", - "type": "string" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "id": { - "description": "Unique identifier for this legal name record", - "type": "string" - }, - "language": { - "description": "Language of the legal name (ISO 639-1 code).\nExample: \"nl\" for Dutch, \"en\" for English\n", - "pattern": "^[a-z]{2}$", - "type": [ - "string", - "null" - ] - }, - "name_without_type": { - "description": "Legal name excluding organizational type prefix/suffix.\nExample: \"Rijksmuseum Amsterdam\"\n", - "type": [ - "string", - "null" - ] - }, - "script": { - "description": "Script used for the name (ISO 15924 code).\nExample: \"Latn\" for Latin, \"Cyrl\" for Cyrillic\n", - "pattern": "^[A-Z][a-z]{3}$", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_validity": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Time period during which this legal name is/was valid.\nOrganizations may change legal names through mergers, rebranding, etc.\n" - } - }, - "required": [ - "id", - "has_or_had_label" - ], - "title": "LegalName", - "type": "object" - }, - "LegalNameClaim": { - "additionalProperties": false, - "description": "Full legal/registered name of the organization.\nMay differ from display name.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "LegalNameClaim", - "type": "object" - }, - "LegalResponsibilityCollection": { - "additionalProperties": false, - "description": "Specialized subclass of CustodianCollection representing information objects (informatieobjecten)\nunder the legal responsibility of a heritage custodian organization.\n\n**TOOI Ontology Alignment**:\n- Follows TOOI pattern: tooi:Informatieobject with tooi:verantwoordelijke property\n- tooi:verantwoordelijke: \"Overheidsorganisatie die de wettelijke verantwoordelijkheid draagt \n voor de inhoud (strekking) van het informatieobject\" (Organization with legal responsibility \n for the content/purport of the information object)\n- Maps information objects to legally responsible organizations\n\n**Definition from TOOI**:\n- Informatieobject: \"Een resource waarvan de essenti\u00eble karakteristieken medegedeeld kunnen \n worden in een bericht\" (A resource whose essential characteristics can be communicated in a message)\n- Subclass of prov:Entity and dcat:Resource\n\n**Key Distinctions**:\n- **LegalResponsibilityCollection**: Collections with FORMAL LEGAL ACCOUNTABILITY\n - Must have identifiable legal custodian (via CustodianLegalStatus)\n - Legal responsibility documented through registration, statute, or regulation\n - Example: Government archives legally mandated to preserve records\n\n- **CustodianCollection** (parent class): General heritage collections\n - May or may not have formal legal responsibility relationship\n - Includes both legally mandated and voluntarily maintained collections\n - Example: Private collection donated to museum (no legal mandate)\n\n**Use Cases**:\n1. **Government Archives**: Collections legally mandated by archival laws\n - Example: National archives responsible for government records (Archiefwet 1995)\n\n2. **Public Museums**: Collections under legal custody of government agencies\n - Example: Rijksmuseum collection under formal responsibility of Dutch state\n\n3. **University Libraries**: Collections legally held by educational institutions\n - Example: University library with statutory responsibility for holdings\n\n4. **Heritage Registers**: Legally designated monument collections\n - Example: Municipal monument register required by Heritage Act\n\n**Temporal Dimension**:\nLegal responsibility can change over time through:\n- Custody transfers (collections moving between legal entities)\n- Organizational mergers/splits (responsibility transferred to successor entities)\n- Statutory changes (new laws assigning responsibility)\n- Deaccessioning (legal responsibility terminated)\n\nTrack responsibility changes via:\n- `responsible_legal_entity` with temporal validity (valid_from/valid_to)\n- Multiple LegalResponsibilityCollection instances for different time periods\n- custody_history documenting transfers\n\n**Examples**:\n\n```yaml\n# Example 1: Government Archive Collection\nLegalResponsibilityCollection:\n id: \"https://nde.nl/ontology/hc/collection/nha-government-records\"\n collection_name: \"Noord-Hollands Archief - Provinciaal Archief\"\n collection_type: [\"archival_records\"]\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/nha-organization\"\n legal_responsibility_basis: \"Archiefwet 1995 (Dutch Archives Act)\"\n valid_from: \"2001-01-01\" # When NHA legally took custody\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-haa-a-nha\"\n\n# Example 2: Museum Collection Under State Responsibility\nLegalResponsibilityCollection:\n id: \"https://nde.nl/ontology/hc/collection/rm-national-collection\"\n collection_name: \"Rijksmuseum National Art Collection\"\n collection_type: [\"museum_objects\"]\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n legal_responsibility_basis: \"Erfgoedwet (Heritage Act) + Foundation statute\"\n valid_from: \"1885-07-01\" # Founding date\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n\n# Example 3: Custody Transfer (Before)\nLegalResponsibilityCollection:\n id: \"https://nde.nl/ontology/hc/collection/haarlem-municipal-archive-pre-2001\"\n collection_name: \"Gemeentearchief Haarlem Municipal Records\"\n collection_type: [\"archival_records\"]\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/haarlem-municipality-1990s\"\n legal_responsibility_basis: \"Municipal charter + Archiefwet\"\n valid_from: \"1910-01-01\"\n valid_to: \"2001-01-01\" # Custody ended when NHA formed\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-haa-a-gemeentearchief\"\n\n# Example 3: Custody Transfer (After)\nLegalResponsibilityCollection:\n id: \"https://nde.nl/ontology/hc/collection/haarlem-municipal-archive-post-2001\"\n collection_name: \"Gemeentearchief Haarlem Municipal Records\"\n collection_type: [\"archival_records\"]\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/nha-organization\"\n legal_responsibility_basis: \"NHA merger agreement + Archiefwet\"\n valid_from: \"2001-01-01\"\n custody_history:\n - transfer_date: \"2001-01-01\"\n from_entity: \"https://nde.nl/ontology/hc/legal/haarlem-municipality-1990s\"\n to_entity: \"https://nde.nl/ontology/hc/legal/nha-organization\"\n transfer_reason: \"Merger of Gemeentearchief Haarlem into Noord-Hollands Archief\"\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-haa-a-nha\"\n```\n\n**Distinction from managing_unit**:\n- `responsible_legal_entity`: TOP-LEVEL legal accountability (CustodianLegalStatus)\n - Who is LEGALLY responsible? (foundation, government agency, etc.)\n - Established through statute, registration, or regulation\n \n- `managing_unit`: OPERATIONAL management (OrganizationalStructure)\n - Which department/division manages day-to-day operations?\n - Internal organizational structure\n\nExample:\n- `responsible_legal_entity`: Stichting Rijksmuseum (legal foundation)\n- `managing_unit`: Paintings Department (internal unit)\n\n**SPARQL Query Pattern**:\n```sparql\n# Find legal entity responsible for a collection\nPREFIX tooi: <https://identifier.overheid.nl/tooi/def/ont/>\nPREFIX hc: <https://nde.nl/ontology/hc/class/>\n\nSELECT ?collection ?collection_name ?legal_entity ?legal_name\nWHERE {\n ?collection a hc:LegalResponsibilityCollection ;\n hc:collection_name ?collection_name ;\n tooi:verantwoordelijke ?legal_entity .\n \n ?legal_entity hc:legal_name/hc:full_name ?legal_name .\n}\n```", - "properties": { - "custody_history": { - "description": "The history of custody, ownership, or stewardship of a collection, object, or record set. Documents transfers of custody, changes in ownership, and the chain of responsible parties over time, following archival provenance principles.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_content": { - "description": "Content held by this collection with typed categorization.\nMIGRATED from:\n- temporal_coverage per slot_fixes.yaml (Rule 53/56, 2026-01-16)\n- collection_type per slot_fixes.yaml (Rule 53, 2026-01-22)\n\nCollectionContent unifies content description with type classification:\n- content_description: Free-text description of the content\n- content_date_range: Temporal coverage (e.g., \"1602-1799\")\n- content_extent: Size/extent of content\n- has_or_had_type \u2192 CollectionContentType: Type classification (Archival, Library, Art, etc.)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label", - "pattern": "^.{1,500}$" - }, - "type": "array" - }, - "has_or_had_provenance": { - "anyOf": [ - { - "$ref": "#/$defs/Provenance" - }, - { - "type": "null" - } - ], - "description": "Provenance information for this data element.\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\nBroadened from ProvenanceBlock to uriorcurie to resolve OWL ambiguous type warnings. This allows classes to narrow via slot_usage to: - `ProvenanceBlock` for comprehensive provenance tracking - `SourceDocument` for source document references - String URIs for simple provenance references\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming follows RiC-O convention indicating that provenance associations can change over time: - Additional provenance may be added as data is enriched - Provenance may be updated when verification occurs - Historical provenance preserved through versioning\n**REPLACES**: - `all_data_real` (auto-generated stub, string range) - `is_or_was_real` (RealnessStatus typed class) - `has_all_data_real_flag` (boolean flag, no provenance) - `has_or_had_observation_source_document` (bespoke slot, Rule 55)\n**EXAMPLE**: ```yaml has_or_had_provenance:\n data_source: \"public_linkedin_profile\"\n extraction_date: \"2025-01-14T12:00:00Z\"\n confidence_score: 0.95\n note: \"Verified production data\"\n```" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/CollectionScope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": "array" - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_instantiated_by": { - "description": "Links an entity to its instantiated type class.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this relationship\nmay be historical - device types may change or be reclassified over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `rdf:type` - RDF type relationship\n- **Close**: `schema:additionalType` - Schema.org additional type\n\n**Usage**:\nUse with typed class hierarchies (e.g., IoTDevice, DeviceType).\nRange is uriorcurie to allow both class instances and URI references.\n\n**Replaces**: device_type slot per slot_fixes.yaml migration (2026-01-25)\n", - "items": { - "$ref": "#/$defs/DigitalInstantiation" - }, - "type": [ - "array", - "null" - ] - }, - "legal_responsibility_basis": { - "description": "Legal basis establishing the organization's responsibility for this collection.\n\nDocuments the statutory, regulatory, or contractual foundation for legal accountability.\n\n**Examples**:\n- \"Archiefwet 1995 (Dutch Archives Act)\"\n- \"Erfgoedwet (Heritage Act) + Foundation statute\"\n- \"Municipal charter Article 5.2: Archive custody responsibilities\"\n- \"Donation deed dated 1923-05-15: Wallace Collection trust agreement\"\n- \"UNESCO Convention on Intangible Cultural Heritage (2003)\"\n\n**Use Cases**:\n1. **Statutory Responsibility**: Government archives legally mandated by law\n2. **Contractual Responsibility**: Museum collections held under trust agreements\n3. **Regulatory Responsibility**: University archives required by accreditation\n4. **International Responsibility**: UNESCO World Heritage site management obligations\n\n**Related Properties**:\n- legal_responsibility_basis: WHAT establishes responsibility? (statute, contract, regulation)\n- responsible_legal_entity: WHO is responsible? (legal entity)\n- valid_from/valid_to: WHEN is responsibility valid? (temporal extent)\n", - "type": "string" - }, - "legal_responsibility_end_date": { - "description": "Date when legal responsibility for this collection ended (if applicable).\n\n**Scenarios**:\n- **Custody Transfer**: Responsibility transferred to another legal entity\n- **Collection Deaccessioned**: Collection sold, destroyed, or dispersed\n- **Entity Dissolution**: Responsible entity dissolved (responsibility must transfer)\n- **Statutory Change**: Law changed, responsibility removed or transferred\n\n**Requirements**:\n- If legal_responsibility_end_date is set, MUST document transfer in custody_history\n- If responsible_legal_entity dissolved, MUST set end date <= dissolution_date\n\n**Relation to valid_to**:\n- `valid_to`: When collection CEASED TO EXIST as heritage materials\n- `legal_responsibility_end_date`: When LEGAL ACCOUNTABILITY ended\n\nExample:\n```yaml\nvalid_to: null # Collection still exists\nlegal_responsibility_end_date: \"2001-01-01\" # But responsibility transferred\n\ncustody_history:\n - transfer_date: \"2001-01-01\"\n from_entity: \".../legal/haarlem-municipality\"\n to_entity: \".../legal/nha-organization\"\n transfer_reason: \"Merger of Gemeentearchief into NHA\"\n```\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "legal_responsibility_start_date": { - "description": "Date when legal responsibility for this collection began.\n\nMay differ from collection.valid_from (when collection itself was created).\n\n**Scenarios**:\n- **Founding Collection**: Start date = collection creation date\n - Example: National archive founded 1802, collection starts 1802\n\n- **Custody Transfer**: Start date = transfer date (\u2260 collection creation)\n - Example: Collection created 1600s, legal responsibility transferred to NHA in 2001\n\n- **Statutory Change**: Start date = law effective date\n - Example: New law in 2010 assigns responsibility for existing 1800s collection\n\n**Relation to valid_from**:\n- `valid_from`: When collection EXISTED as heritage materials\n- `legal_responsibility_start_date`: When LEGAL ACCOUNTABILITY began\n\nThese may be different! Example:\n```yaml\ntemporal_coverage: \"1600-01-01/1800-12-31\" # Materials date from 17th-18th centuries\nvalid_from: \"1910-01-01\" # Formally accessioned as collection in 1910\nlegal_responsibility_start_date: \"2001-01-01\" # Legal responsibility transferred in 2001\n```\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "managing_unit": { - "anyOf": [ - { - "$ref": "#/$defs/OrganizationalStructure" - }, - { - "type": "null" - } - ], - "description": "Organizational unit (department, division, section) responsible for managing this collection.\n\n**Bidirectional Relationship**:\n- **Forward**: CustodianCollection \u2192 OrganizationalStructure (managing_unit)\n- **Reverse**: OrganizationalStructure \u2192 CustodianCollection (managed_collections)\n\n**Validation**: If provided, temporal consistency is validated:\n- Collection.valid_from >= OrganizationalStructure.valid_from\n- Collection.valid_to <= OrganizationalStructure.valid_to (if unit dissolved)\n\n**Use Cases**:\n1. **Collection Management**: \"Which department manages the Medieval Manuscripts collection?\"\n2. **Staffing Cross-Reference**: \"Who are the curators managing this collection?\"\n - Follow: managing_unit \u2192 OrganizationalStructure \u2192 staff_members \u2192 PersonObservation\n3. **Organizational Change Impact**: Track collection custody through mergers, splits, reorganizations\n\n**Notes**:\n- If managing_unit is null, collection may be managed at institutional level\n- Collections may split across multiple units \u2192 create separate CustodianCollection instances\n- Custody transfers tracked via managing_unit changes + temporal validity\n" - }, - "preservation_level": { - "description": "Level of digital preservation commitment for this collection.\n\nPREMIS: policy for preservation commitment levels.\nAligns with premis:PreservationPolicy vocabulary.\n\nValues:\n- FULL: Long-term preservation with format migration commitment\n- BIT_LEVEL: Bit preservation only (no format migration)\n- ACCESS_ONLY: Access copies maintained, no preservation guarantee\n- NONE: No formal digital preservation policy\n\nApplies to digital_surrogates and born-digital materials in collection.\n\nFor specific file-level preservation actions, see DigitalPlatform\npreservation slots (fixity_check_date, storage_location).\n", - "type": [ - "string", - "null" - ] - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "responsible_legal_entity": { - "$ref": "#/$defs/CustodianLegalStatus", - "description": "Custodian legal entity that bears LEGAL RESPONSIBILITY for this collection.\n\n**TOOI Definition**: \"Overheidsorganisatie die de wettelijke verantwoordelijkheid \ndraagt voor de inhoud (strekking) van het informatieobject\"\n\nMaps information objects (collections) to the legal entity (organization or person)\nthat has formal legal accountability for their custody, preservation, and management.\n\n**Requirements**:\n- MUST reference a CustodianLegalStatus instance (formal legal entity)\n- Legal entity MUST have registration_numbers (unless natural person)\n- Legal responsibility MUST be documented (see legal_responsibility_basis)\n\n**Temporal Consistency**:\n- Collection valid_from MUST be >= legal_entity.registration_date\n- Collection valid_to MUST be <= legal_entity.dissolution_date (if dissolved)\n- During custody transfers, create NEW LegalResponsibilityCollection instance\n\n**Bidirectional Relationship**:\n- **Forward**: LegalResponsibilityCollection \u2192 CustodianLegalStatus (responsible_legal_entity)\n- **Reverse**: CustodianLegalStatus \u2192 LegalResponsibilityCollection (collections_under_responsibility)\n\n**Distinction from refers_to_custodian**:\n- `responsible_legal_entity`: Points to LEGAL ASPECT (CustodianLegalStatus)\n- `refers_to_custodian`: Points to HUB (Custodian)\n\nBoth link to the SAME custodian but different aspects:\n```yaml\nLegalResponsibilityCollection:\n responsible_legal_entity: \".../legal/rijksmuseum-foundation\" # Legal aspect\n refers_to_custodian: \".../custodian/nl-nh-ams-m-rm-q190804\" # Hub\n```\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "legal_responsibility_basis", - "responsible_legal_entity", - "has_or_had_label", - "refers_to_custodian", - "is_or_was_derived_from" - ], - "title": "LegalResponsibilityCollection", - "type": "object" - }, - "LegalStatus": { - "additionalProperties": false, - "description": "Legal status of an organization (active, dissolved, suspended, etc.).\n\n**Ontology Alignment:**\n\n- gleif_base:RegistrationStatus - \"A lifecycle stage indicating the status of a \n given registration of something, such as a business or legal entity.\"\n- gleif_base:EntityStatus - ACTIVE or INACTIVE (GLEIF enumeration)\n\nStatus definitions vary by jurisdiction and legal framework.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "id": { - "description": "Unique identifier for the legal status", - "type": "string" - }, - "jurisdiction": { - "description": "Legal jurisdiction where this status is defined.\n\ngleif_base:hasLegalJurisdiction - \"The jurisdiction of legal formation \nand registration of the entity\"\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "status_code": { - "description": "Standardized status code.\n\ngleif_base:hasTag - \"Has a unique combination of alphanumeric characters \ncorresponding to the identifier\"\n\nExamples: \"ACTIVE\", \"DISSOLVED\", \"SUSPENDED\", \"MERGED\"\n\nGLEIF defines: ACTIVE, INACTIVE\n", - "pattern": "^[A-Z_]+$", - "type": "string" - }, - "status_description": { - "description": "Detailed description of what this status means legally", - "type": [ - "string", - "null" - ] - }, - "temporal_validity": { - "$ref": "#/$defs/TimeSpan", - "description": "Time period during which this status applies" - } - }, - "required": [ - "id", - "status_code", - "temporal_validity" - ], - "title": "LegalStatus", - "type": "object" - }, - "LegalStatusEnum": { - "description": "Legal status of custodian (aligned with GLEIF EntityStatus)", - "enum": [ - "ACTIVE", - "DISSOLVED", - "MERGED", - "SUSPENDED", - "BANKRUPTCY", - "LIQUIDATION", - "UNKNOWN" - ], - "title": "LegalStatusEnum", - "type": "string" - }, - "LegalSystemTypeEnum": { - "description": "Classification of legal systems", - "enum": [ - "CIVIL_LAW", - "COMMON_LAW", - "MIXED", - "RELIGIOUS", - "CUSTOMARY" - ], - "title": "LegalSystemTypeEnum", - "type": "string" - }, - "LegislativeDraftCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Bill drafts and legislative history.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ParliamentaryArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ParliamentaryArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "LegislativeDraftCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LegislativeDraftCollection", - "type": "object" - }, - "LegislativeRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Parliamentary and legislative documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "NationalArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by NationalArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "LegislativeRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LegislativeRecordSeries", - "type": "object" - }, - "Librarian": { - "additionalProperties": false, - "description": "Librarian managing library collections, cataloging, and reference services.\n\n**Official Title vs De Facto Work**:\nModern librarians often extend beyond traditional roles into data literacy,\ndigital humanities, makerspace facilitation, and community programming.\n\n**Common Variants**:\n- Reference Librarian\n- Cataloging Librarian\n- Special Collections Librarian\n- Digital Services Librarian\n- Metadata Librarian\n- Research Librarian\n- Subject Librarian\n- Systems Librarian\n\n**Typical Domains**: Libraries (all types)\n\n**Specializations**:\n- Reference and research support\n- Cataloging and metadata (MARC, RDA, BIBFRAME)\n- Special collections and rare books\n- Digital services and repositories\n- Subject specialization (art, history, science)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Librarian", - "type": "object" - }, - "LibraryCMS": { - "additionalProperties": false, - "description": "Integrated library systems (ILS) and library service platforms.\n\n**TYPICAL FEATURES**:\n- Cataloging (MARC21, RDA)\n- Circulation management\n- Acquisitions\n- Serials management\n- OPAC (public catalog)\n- Interlibrary loan\n\n**EXAMPLES**:\n- Alma (Ex Libris)\n- Koha (open-source)\n- WorldShare (OCLC)\n- Folio (open-source)\n- Sierra (III)\n- Symphony (SirsiDynix)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/CMSType" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "LibraryCMS", - "type": "object" - }, - "LibraryCollectionContent": { - "additionalProperties": false, - "description": "Library materials: Sacred texts, theological works, manuscripts,\nprinted books, periodicals, rare books.", - "properties": { - "has_or_had_label": {}, - "type_definition": { - "description": "Definition of this collection content type", - "type": [ - "string", - "null" - ] - } - }, - "title": "LibraryCollectionContent", - "type": "object" - }, - "LibraryDomain": { - "additionalProperties": false, - "description": "Library and bibliographic domain", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "LibraryDomain", - "type": "object" - }, - "LibraryFunction": { - "additionalProperties": false, - "description": "Library function: cataloging, circulation, reference services, collection development, interlibrary loan.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "LibraryFunction", - "type": "object" - }, - "LibrarySearchTemplate": { - "additionalProperties": false, - "description": "Template type for library and bibliographic queries.\n\n**Relevant Queries**:\n- Public and academic libraries\n- Bibliographic metadata (MARC, BIBFRAME)\n- Catalog systems\n- Special collections", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "LibrarySearchTemplate", - "type": "object" - }, - "LibraryServicesPlattform": { - "additionalProperties": false, - "description": "Library Services Platform (LSP) - next-generation cloud-based library management\ncombining ILS functionality with electronic resource management.\n\nExamples: ALMA, FOLIO, OCLC WorldShare, Sierra DNA", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "const": "Library Services Platform", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "LibraryServicesPlattform", - "type": "object" - }, - "LibraryType": { - "additionalProperties": false, - "description": "Specialized custodian type for libraries - institutions that collect, organize,\npreserve, and provide access to information resources (books, journals, digital\nmaterials) for reading, reference, research, and learning.\n\n**Wikidata Base Concept**: Q7075 (library)\n\n**Scope**:\nLibraries are distinguished by their focus on:\n- Published materials (books, journals, digital resources)\n- Systematic organization (catalogs, classification systems)\n- Information access and lending services\n- Reader services and information literacy programs\n- Mass-produced items (not unique artifacts)\n\n**Key Library Subtypes** (60+ extracted from Wikidata):\n\n**By Administrative Level**:\n- National libraries (Q22806) - Comprehensive national collections\n- State/regional libraries - Provincial or state-level libraries\n- Municipal libraries - City or town public libraries\n- Library branches (Q11396180) - Local branch of library organization\n\n**By Function & Audience**:\n- Research libraries (Q1438040) - Scholarly research support\n- Public libraries - Community lending libraries\n- Academic libraries - University/college libraries\n- Special libraries - Subject-specific or corporate libraries\n\n**By Subject Specialization**:\n- Music libraries (Q2061246) - Music scores, recordings, literature\n- Photo libraries (Q1574516) - Photography collections\n- Map libraries (Q124416055) - Cartographic materials (Chinese context)\n- Film libraries - Cinema and video collections\n- Patent libraries - Technical and patent documentation\n\n**By Collection Format**:\n- Digital libraries (Q212805) - Online database of digital objects\n- Online libraries (Q12328550) - Digital library services\n- Virtual specialist libraries (Q2527949) - Subject-specific virtual collections\n- Traditional libraries - Physical book collections\n\n**Dutch-Specific Types**:\n- WSF libraries (Q1994819) - Dutch public libraries with research function\n (Wetenschappelijke en Speciale Functies - Scientific and Special Functions)\n- Provincial libraries - Regional library systems in Netherlands\n\n**Special Collection Libraries**:\n- Photograph collections (Q130486108) - Historic photo archives in library context\n- Personal libraries (Q106402388) - Private book collections\n- Manuscript libraries - Rare manuscripts and codices\n- Archive-libraries - Combined archive and library functions\n\n**Organizational Structures**:\n- Parent library organizations (Q1956113) - Central library with branches\n- Branch offices (Q1880737) - Local service points\n- Library departments (Q2366457) - Specialized divisions within library\n- Library consortia - Cooperative library networks\n\n**Cultural Context**:\n- Chitalishte (Q1638962) - Bulgarian public institutions combining library,\n cultural center, and community functions\n- Memory institutions (Q1497649) - Libraries as heritage custodians\n\n**RDF Serialization Example**:\n```turtle\n:Custodian_KoninklijkeBibliotheek\n org:classification :LibraryType_NationalLibrary_Q22806 .\n\n:LibraryType_NationalLibrary_Q22806\n a glamtype:LibraryType, crm:E55_Type, skos:Concept ;\n skos:prefLabel \"National Library\"@en, \"nationale bibliotheek\"@nl ;\n skos:broader :LibraryType_Library_Q7075 ;\n schema:additionalType <http://www.wikidata.org/entity/Q22806> ;\n glamtype:glamorcubesfixphdnt_code \"LIBRARY\" ;\n glamtype:lending_policy \"reference-only\" ;\n glamtype:uses_or_used [ a glamtype:CatalogSystem ; glamtype:has_or_had_name \"ALMA\" ] ;\n glamtype:special_collections [\"incunabula\", \"manuscripts\", \"maps\"] ;\n glamtype:interlibrary_loan true ;\n glamtype:cataloging_standard \"RDA\" .\n```\n\n**Domain-Specific Properties**:\nThis class adds library-specific metadata beyond base CustodianType:\n- `lending_policy` - Circulation rules (open, restricted, reference-only, digital-only, membership-required)\n- `uses_or_used` (was: catalog_system) - Integrated library system (ALMA, Sierra, Koha, Aleph, etc.)\n- `special_collections` - Notable collections (rare books, manuscripts, archives, maps, music)\n- `membership_required` - Whether library requires membership for access\n- `interlibrary_loan` - Whether participates in interlibrary loan networks\n- `cataloging_standard` - Metadata standards used (MARC21, RDA, Dublin Core, BIBFRAME)\n\n**Integration with BIBFRAME**:\nBIBFRAME (Bibliographic Framework) is the Library of Congress initiative for\nbibliographic description:\n- bf:Organization - Library as organizational entity\n- bf:Work - Intellectual content held by library\n- bf:Instance - Physical/digital manifestations in library\n- bf:Item - Specific holdings with call numbers\n\n**Cataloging Standards**:\n- MARC21 - Machine-Readable Cataloging (legacy standard)\n- RDA - Resource Description and Access (modern cataloging rules)\n- Dublin Core - Simple metadata for digital libraries\n- BIBFRAME - Linked data for bibliographic resources\n- FRBR - Functional Requirements for Bibliographic Records\n\n**Library Services**:\n- Circulation - Lending and returns\n- Reference - Information assistance\n- Interlibrary loan - Resource sharing between libraries\n- Digital repositories - Online access to digitized materials\n- Information literacy instruction - User education programs\n\n**Data Population**:\nLibrary subtypes extracted from 60 Wikidata entities with type='L'\nin `data/wikidata/GLAMORCUBEPSXHFN/hyponyms_curated_full.yaml`.", - "properties": { - "complies_or_complied_with": { - "description": "Standard, specification, or guideline that this entity conforms to.\nUses RiC-O temporal naming convention to indicate conformance may be \ncurrent (complies) or historical (complied).\n\nCREATED 2026-01-17 per Rule 53/56: Generic slot for standards conformance.\n", - "items": { - "$ref": "#/$defs/CatalogingStandard" - }, - "type": [ - "array", - "null" - ] - }, - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "interlibrary_loan": { - "description": "Whether library participates in interlibrary loan (ILL) networks for\nresource sharing with other libraries.\nTrue = participates in ILL (can borrow from/lend to other libraries)\nFalse = does not participate in ILL\n", - "type": [ - "boolean", - "null" - ] - }, - "lending_policy": { - "description": "The circulation policy for library materials.\nValues: open (public lending), restricted (limited access), reference-only (on-site use only),\ndigital-only (online access), membership-required (must join to borrow).\n", - "type": [ - "string", - "null" - ] - }, - "library_subtype": { - "description": "Specific subtype from the LibraryTypeEnum taxonomy (61 library types).\nEach value links to a Wikidata entity describing a specific type.\n", - "items": { - "$ref": "#/$defs/LibraryTypeEnum" - }, - "type": [ - "array", - "null" - ] - }, - "membership_required": { - "description": "Whether library access or borrowing requires paid or registered membership.\nTrue = must join/pay to use library services\nFalse = open to all (may still need free registration for borrowing)\n", - "type": [ - "boolean", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "special_collection": { - "description": "Notable or specialized collections held by the library.\nExamples: rare books, manuscripts, incunabula, maps, music scores, archives,\nphotographs, genealogy, local history, special subjects (e.g., art books,\ntechnical literature, children's literature).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "uses_or_used": { - "description": "A system, tool, software, methodology, or resource that the entity uses or used.\nThis is a generic temporal relationship following RiC-O naming conventions.\n\nExamples:\n- Library catalog systems (ALMA, Koha, Sierra)\n- Collection management systems (Adlib, TMS, CollectiveAccess)\n- Digital preservation systems (Archivematica, Preservica)\n- Metadata standards (Dublin Core, MARC21, EAD)\n", - "items": { - "$ref": "#/$defs/CatalogSystem" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LibraryType", - "type": "object" - }, - "LibraryTypeEnum": { - "description": "", - "enum": [ - "ACADEMIC_LIBRARY", - "AERIAL_IMAGE_LIBRARY", - "ARCHIVAL_LIBRARY", - "BRANCH", - "BRANCH_OFFICE", - "CHINESE_MAP_LIBRARY", - "CHITALISHTE", - "CLOSED_SPACE", - "CULTURAL_INSTITUTION", - "DATA_LIBRARY", - "DEPARTMENT", - "DIGITAL_LIBRARY", - "DIVISION", - "ELECTRONIC_FILM_LIBRARY", - "GLAM", - "GOVERNMENT_LIBRARY", - "HOUSE_OF_LITERATURE", - "HOUSE_OF_LITERATURE_1", - "INSTITUTION", - "LIBRARY_BRANCH", - "LIBRARY_NETWORK", - "LOCAL_HERITAGE_INSTITUTION_IN_SWEDEN", - "LOCATION_LIBRARY", - "MAP_CENTER", - "MAP_LIBRARY", - "MEMORY_INSTITUTION", - "MPX_MICROSOFT_PROJECT_EXCHANGE_FILE_FORMAT", - "MUNICIPAL_ARTS_CENTRE", - "MUSIC_LIBRARY", - "MUSICAL_INSTRUMENT_LIBRARY", - "NATIONAL_LIBRARY", - "NATIONAL_TREASURE", - "NATIONAL_TREASURE_OF_FRANCE", - "ONLINE_LIBRARY", - "ORGANIZATION", - "ORGANIZATIONAL_SUBDIVISION", - "PARENT_ORGANIZATIONUNIT", - "PERSON_OR_ORGANIZATION", - "PERSONAL_COLLECTION", - "PHOTO_LIBRARY", - "PHOTOGRAPH_COLLECTION", - "PRINT_ROOM", - "PUBLIC_LIBRARY", - "PUBLIC_SPACE", - "Q707560", - "RARE_BOOK_LIBRARY", - "RESEARCH_LIBRARY", - "SCIENCE_FICTION_LIBRARIES_AND_MUSEUMS", - "SCIENTIFIC_LIBRARY", - "SCIENTIFIC_TECHNIC_AND_INDUSTRIAL_CULTURE_CENTER", - "SLIDE_LIBRARY", - "SOCIAL_SPACE", - "SPECIAL_COLLECTION", - "SUBSIDIARY_ORGANIZATION", - "SUFI_LODGE", - "TENTATIVE_WORLD_HERITAGE_SITE", - "VID\u00c9OTH\u00c8QUE", - "VIRTUAL_MAP_LIBRARY", - "VIRTUAL_SPECIALIST_LIBRARY", - "WORLD_HERITAGE_SITE", - "WSF_LIBRARY" - ], - "title": "LibraryTypeEnum", - "type": "string" - }, - "LibraryUnionCatalog": { - "additionalProperties": false, - "description": "Union catalog aggregating bibliographic records from multiple libraries. **PURPOSE**: Provide unified search across library holdings, enable interlibrary loan, and support cataloging through shared records. **CHARACTERISTICS**: - Aggregates bibliographic records (books, serials, media) - Authority control for authors, subjects, titles - Holdings information across participating libraries - Copy cataloging and record sharing **METADATA STANDARDS**: - MARC21 (Machine-Readable Cataloging) - Dublin Core - BIBFRAME (Bibliographic Framework) - RDA (Resource Description and Access) **EXAMPLES**: - WorldCat (OCLC - global) - GBV - Gemeinsamer Bibliotheksverbund (Germany) - SUDOC (France) - COPAC (UK) - NCC (Netherlands)", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "$ref": "#/$defs/MetadataStandard" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "DOMAIN_SPECIFIC", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "libraries" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "LibraryUnionCatalog", - "type": "object" - }, - "LicenseHolder": { - "additionalProperties": false, - "description": "Entity holding exclusive licensing rights for merchandise.\nExamples: Exclusive brand licensees, IP rights holders", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "LicenseHolder", - "type": "object" - }, - "LightArchives": { - "additionalProperties": false, - "description": "Repository whose holdings are broadly accessible. Light archives contrast with \"dark archives\" by providing open or minimally restricted access to their holdings. The term emphasizes accessibility and transparency in archival practice, where materials are readily available for research and public use rather than being preserved primarily for security or preservation purposes.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LightArchives", - "type": "object" - }, - "LightArchivesRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by LightArchives custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LightArchivesRecordSetType", - "type": "object" - }, - "LightLevelMeasurement": { - "additionalProperties": false, - "description": "Light level measurement type for monitoring illumination in display and storage areas.\nStandard unit: lux (lx).\n\nTypical conservation limits:\n- Light-sensitive materials (textiles, works on paper): 50 lux max\n- Medium sensitivity (oil paintings): 150-200 lux max\n- Low sensitivity (stone, ceramics): 300 lux max", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_measurement_unit": { - "anyOf": [ - { - "$ref": "#/$defs/MeasureUnit" - }, - { - "type": "null" - } - ], - "description": "The unit of measurement for a quantity value. Uses RiC-O temporal naming pattern to indicate the unit may be current or historical (e.g., if measurement standards changed over time).\n**QUDT**: qudt:unit - \"The unit of measure used to express the value of a Quantity.\"\n**USE CASES**: - Visitor counts: unit = \"visitors\", \"visitors/year\" - View counts: unit = \"views\", \"views/day\" - Collection sizes: unit = \"items\", \"objects\", \"linear meters\" - Area: unit = \"m\u00b2\", \"ha\", \"km\u00b2\" - Currency: unit = \"EUR\", \"USD\", \"GBP\"" - }, - "has_or_had_name": { - "const": "Light Level", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "LightLevelMeasurement", - "type": "object" - }, - "LineString": { - "additionalProperties": false, - "description": "A line string geometry.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "LineString", - "type": "object" - }, - "LinguisticScope": { - "additionalProperties": false, - "description": "Language scope dimension covering languages, scripts, and dialects.\n\n**Examples**:\n- \"Dutch\" (language)\n- \"Arabic script\" (writing system)\n- \"Low Saxon\" (dialect/regional language)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this scope type. Can include:\n- Type URI (e.g., https://nde.nl/ontology/hc/scope-type/temporal)\n- Wikidata Q-number (e.g., Q186408)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "LinguisticScope", - "type": "object" - }, - "LinkTypeEnum": { - "description": "Types of hyperlinks extracted from pages.", - "enum": [ - "internal", - "external", - "anchor", - "download", - "sub_guide", - "featured" - ], - "title": "LinkTypeEnum", - "type": "string" - }, - "LinkedDataEndpoint": { - "additionalProperties": false, - "description": "Linked data endpoint.", - "properties": { - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "LinkedDataEndpoint", - "type": "object" - }, - "LinkedDataHub": { - "additionalProperties": false, - "description": "Portal providing SPARQL endpoint and linked data access to heritage metadata. **PURPOSE**: Enable semantic web integration and machine-readable access to heritage data through linked data technologies. **CHARACTERISTICS**: - SPARQL endpoints for querying - RDF and JSON-LD serialization - Vocabulary alignment and linking - Knowledge graph integration - Entity reconciliation services **TECHNICAL FEATURES**: - SPARQL 1.1 query language - JSON-LD context and framing - RDF dumps and bulk download - REST API for entity lookup **EXAMPLES**: - NDE Termennetwerk (Netherlands) - Wikidata SPARQL endpoint - Getty Vocabularies (AAT, TGN, ULAN) - data.bnf.fr (BnF, France)", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "TECHNICAL_INFRASTRUCTURE", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "linked_data", - "vocabularies", - "knowledge_graphs" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "LinkedDataHub", - "type": "object" - }, - "LinkedDataPlatform": { - "additionalProperties": false, - "description": "Linked Data Platform for publishing and managing linked open data\nabout collections, using semantic web technologies.\n\nExamples: Wikibase, ResearchSpace, Metaphacts, Neptune", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "const": "Linked Data Platform", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "LinkedDataPlatform", - "type": "object" - }, - "LinkedDataSpecialist": { - "additionalProperties": false, - "description": "Linked data specialist managing semantic web and LOD initiatives.\n\n**Official Title vs De Facto Work**:\nCritical for heritage data interoperability, often involved in\nontology development, vocabulary management, and data publishing.\n\n**Common Variants**:\n- Semantic Web Developer\n- Knowledge Graph Engineer\n- Ontologist\n- Metadata Architect\n\n**Typical Domains**: Heritage institutions publishing linked data\n\n**Typical Responsibilities**:\n- Ontology development and maintenance\n- Vocabulary management\n- SPARQL endpoint management\n- RDF data modeling\n- Linked data publishing\n- Alignment with heritage standards (CIDOC-CRM, EDM, etc.)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "LinkedDataSpecialist", - "type": "object" - }, - "LinkedIn": { - "additionalProperties": false, - "description": "LinkedIn company page or profile.\n\n**URL patterns**:\n- https://www.linkedin.com/company/{company_name}\n- https://www.linkedin.com/in/{username}\n\n**Features**:\n- Professional networking\n- Job postings\n- Articles and thought leadership\n- Events\n\n**Heritage use cases**:\n- Professional networking with cultural sector\n- Job announcements (curators, conservators)\n- Thought leadership on heritage topics\n- Partnerships and collaborations", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "PROFESSIONAL", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://www.linkedin.com/company/{company_name}", - "https://www.linkedin.com/in/{username}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "LinkedIn", - "type": "object" - }, - "LinkedInClaim": { - "additionalProperties": false, - "description": "LinkedIn page URL.", - "title": "LinkedInClaim", - "type": "object" - }, - "LinkingMotivation": { - "additionalProperties": false, - "description": "Motivation for linking to external resources.\n\n**DEFINITION**:\n\nLinkingMotivation describes annotations where the intent is to\ncreate a link between the target and a related resource.\n\n**W3C WEB ANNOTATION**:\n\nFrom oa:linking:\n> The motivation for when the user intends to link to a resource\n> related to the Target.\n\n**USE CASES**:\n\n| Use Case | Example |\n|----------|---------|\n| See also links | Related collection items |\n| Authority links | Links to Wikidata/VIAF |\n| Reference links | Citations and sources |\n| IIIF links | Manifest and canvas links |\n\n**HERITAGE CONTEXT**:\n\nLinking enables Linked Open Data:\n- Authority file linking (VIAF, ISNI, Wikidata)\n- Collection cross-references\n- Digital object linking (IIIF)\n- Bibliographic references", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "motivation_type_description": { - "description": "Detailed description of an annotation motivation type including purpose, characteristics, and typical use cases.", - "type": [ - "string", - "null" - ] - }, - "motivation_type_id": { - "description": "Unique identifier for an annotation motivation type.", - "type": "string" - }, - "motivation_type_name": { - "const": "linking", - "description": "Canonical name for this motivation type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "motivation_type_id", - "motivation_type_name" - ], - "title": "LinkingMotivation", - "type": "object" - }, - "LiteraryArchive": { - "additionalProperties": false, - "description": "Archive for literary works. Literary archives collect and preserve materials related to authors, literary movements, and the production of literature. Holdings typically include manuscripts, drafts, correspondence, personal papers, and documentation of publishing history. They serve literary scholars, biographers, and researchers studying the creative process and literary history.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LiteraryArchive", - "type": "object" - }, - "LiteraryArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by LiteraryArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LiteraryArchiveRecordSetType", - "type": "object" - }, - "LiteraryContent": { - "additionalProperties": false, - "description": "Literary works including novels, poetry, drama.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "LITERARY", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Literary Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "LiteraryContent", - "type": "object" - }, - "LiteraryManuscriptCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Literary manuscripts.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "LiteraryArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by LiteraryArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "LiteraryManuscriptCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LiteraryManuscriptCollection", - "type": "object" - }, - "LiturgicalCollectionContent": { - "additionalProperties": false, - "description": "Liturgical objects: Vessels, vestments, ritual implements,\nceremonial items, religious artifacts.", - "properties": { - "has_or_had_label": {}, - "type_definition": { - "description": "Definition of this collection content type", - "type": [ - "string", - "null" - ] - } - }, - "title": "LiturgicalCollectionContent", - "type": "object" - }, - "LiturgicalDocumentCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Liturgical and ceremonial records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "CathedralArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by CathedralArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "LiturgicalDocumentCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LiturgicalDocumentCollection", - "type": "object" - }, - "LiveBroadcastStatusEnum": { - "description": "Live broadcast status values for video content.\n\nBased on YouTube API liveBroadcastContent values.", - "enum": [ - "none", - "live", - "upcoming" - ], - "title": "LiveBroadcastStatusEnum", - "type": "string" - }, - "LiveStreamPost": { - "additionalProperties": false, - "description": "Real-time video broadcasting with audience interaction.\n\n**Activity Streams Mapping**: `as:Video` (with live flag)\n**Schema.org Mapping**: `schema:VideoObject` (with `isLiveBroadcast: true`)\n\n**Platforms**:\n- YouTube Live\n- Instagram Live\n- Facebook Live\n- Twitch\n- LinkedIn Live\n- TikTok Live\n\n**Characteristics**:\n- Real-time broadcasting\n- Live chat interaction\n- Can be archived as standard video\n- Notifications to followers\n- Multi-guest capabilities\n- Screen sharing (some platforms)\n\n**Heritage Use Cases**:\n\n| Use Case | Description | Interaction |\n|----------|-------------|-------------|\n| Exhibition openings | Virtual attendance | Live Q&A |\n| Curator talks | Gallery walkthroughs | Real-time questions |\n| Conservation | Live restoration work | Expert commentary |\n| Panel discussions | Multi-speaker events | Audience questions |\n| Behind-the-scenes | Storage tours | Exclusive access |\n| Collection reveals | New acquisition announcements | First look |\n\n**Post-Broadcast**:\n- Most platforms archive as regular video\n- Can be edited and republished\n- Live chat preserved (some platforms)", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "post_type_activity_streams_type": { - "const": "as:Video", - "description": "Activity Streams 2.0 type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_category": { - "const": "LIVE_STREAM", - "description": "High-level category for grouping related post types.\nValues: VIDEO, SHORT_VIDEO, IMAGE, TEXT, STORY, LIVE_STREAM,\nAUDIO, ARTICLE, THREAD, CAROUSEL, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "post_type_description": { - "description": "Detailed description of this post type including purpose,\ncharacteristics, and typical use cases in heritage context.\n", - "type": [ - "string", - "null" - ] - }, - "post_type_ephemeral": { - "description": "Whether this post type is ephemeral (disappears after time).", - "type": [ - "boolean", - "null" - ] - }, - "post_type_heritage_use_case": { - "description": "Typical use cases for heritage institutions creating this content type.\n\nExamples for Video:\n- Virtual exhibition tours\n- Conservation process documentation\n- Curator interviews\n- Historical documentary content\n- Educational lectures\n\nExamples for Short Video:\n- Artifact spotlights\n- Behind-the-scenes moments\n- Quick conservation tips\n- Event teasers\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_id": { - "description": "Unique identifier for this post type", - "type": "string" - }, - "post_type_max_duration": { - "description": "Maximum duration for this post type (e.g., video length).", - "type": [ - "string", - "null" - ] - }, - "post_type_media_format": { - "description": "Supported media formats for this post type.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_name": { - "description": "Canonical name for this post type.\nUsed for display and content categorization.\n\nExamples: \"Video\", \"Short Video\", \"Image Post\", \"Story\", \"Live Stream\"\n", - "type": "string" - }, - "post_type_schema_org_type": { - "const": "schema:VideoObject", - "description": "Schema.org type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_supported_platform": { - "description": "Platforms that support this post type.", - "items": { - "enum": [ - "YouTube", - "Instagram", - "Facebook", - "Twitch", - "LinkedIn", - "TikTok" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "post_type_id", - "post_type_name" - ], - "title": "LiveStreamPost", - "type": "object" - }, - "LivingCollectionClassification": { - "additionalProperties": false, - "description": "Institution maintaining exclusively living collections.\nNo or minimal preserved specimen holdings.\n\n**Key Characteristic**: Active husbandry, breeding, horticulture", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LivingCollectionClassification", - "type": "object" - }, - "Loan": { - "additionalProperties": false, - "description": "A loan of one or more objects from a lending institution to a borrowing institution.\n\nModels the TEMPORARY TRANSFER OF CUSTODY, not ownership transfer (see ProvenanceEvent\nfor ownership changes).\n\n**Key Distinction**:\n\n| Concept | Class | Description |\n|---------|-------|-------------|\n| Permanent ownership change | ProvenanceEvent | Sale, gift, bequest |\n| **Temporary custody transfer** | **Loan** | **Exhibition loan, study loan** |\n| Object condition | ConservationRecord | Condition assessments |\n\n**Loan Types**:\n\n- **Exhibition Loan**: Object loaned for public display in an exhibition\n- **Study Loan**: Object loaned for research or scholarly examination\n- **Long-term Loan**: Extended loan (typically 1+ years) for permanent display\n- **Institutional Transfer**: Inter-departmental or inter-branch transfer\n\n- **CIDOC-CRM**: crm:E10_Transfer_of_Custody (primary)\n \"The handing over of physical custody of an object from one party to another.\"\n- **Schema.org**: schema:BorrowAction / schema:LendAction (borrower/lender actions)\n- **SPECTRUM**: Loans Out / Loans In procedures\n\n**SPECTRUM Alignment**:\n\nThis class models both:\n- **Loans Out**: When the custodian is the lender\n- **Loans In**: When the custodian is the borrower\n\n**Relationship to Other Classes**:\n\n```\nCustodian (lender)\n \u2502\n \u2502\u2500\u2500 lends objects via Loan\n v\nLoan (this class)\n \u2502\n \u2502\u2500\u2500 loaned_objects \u2192 ExhibitedObject[]\n \u2502\u2500\u2500 borrower \u2192 Custodian\n \u2502\u2500\u2500 exhibition_ref \u2192 Exhibition (optional)\n v\nCustodian (borrower)\n```\n\n**Example**:\n\nMauritshuis loans \"Girl with a Pearl Earring\" to Rijksmuseum for Vermeer 2023:\n- loan_id: https://nde.nl/ontology/hc/loan/mauritshuis-rijksmuseum-vermeer-2023-001\n- loaned_objects: [mauritshuis-girl-pearl-earring]\n- lender: Mauritshuis\n- custody_received_by: Rijksmuseum\n- loan_status: CLOSED\n- loan_start_date: 2023-02-10\n- loan_end_date: 2023-06-04\n- exhibition_ref: Vermeer 2023", - "properties": { - "is_or_was_approved_on": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "The approval date." - }, - "is_or_was_based_on": { - "description": "Entity or resource this item is or was based on (temporal relationship).\n\n**Semantic Pattern**: RiC-O temporal naming convention (Rule 39)\n- \"is_or_was\" indicates the relationship may be current or historical\n- Supports temporal modeling where dependencies change over time\n\n**PROV-O Alignment**:\nprov:wasDerivedFrom - \"A derivation is a transformation of an entity into another\"\n\n**Use Cases**:\n1. **CMS Detection**: Platform is_or_was_based_on a detected CMS\n2. **Software Dependencies**: Application based on framework/library\n3. **Content Derivation**: Document based on template/source\n4. **Infrastructure**: Service based on platform/technology\n\n**Temporal Semantics**:\n- Current: \"This platform IS based on WordPress 6.4\"\n- Historical: \"This platform WAS based on Drupal 7 (now migrated)\"\n- Use temporal_extent for precise validity periods\n\n**Examples**:\n```yaml\nAuxiliaryDigitalPlatform:\n platform_name: Museum Blog\n is_or_was_based_on:\n cms_name: WordPress\n cms_version: \"6.4\"\n detected_at: \"2026-01-19T12:00:00Z\"\n```\n\n**Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53).\nReplaces boolean cms_detected with structured CMS reference.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "Loan", - "type": "object" - }, - "LoanCondition": { - "additionalProperties": false, - "description": "Condition or requirement for borrowing/lending materials.\nIncludes insurance requirements, environmental conditions,\ncourier requirements, or exhibition restrictions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "LoanCondition", - "type": "object" - }, - "LoanService": { - "additionalProperties": false, - "description": "Loan services for exhibitions or research.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "LoanService", - "type": "object" - }, - "LoanStatusEnum": { - "description": "Lifecycle states for object loans between heritage institutions.\n\nModels the progression of a loan from initial request through\nreturn and documentation.\n\n**Loan Lifecycle Flow**:\n\n```\nREQUESTED \u2192 UNDER_REVIEW \u2192 APPROVED \u2192 AGREEMENT_PENDING \u2192 \nCONDITION_REPORT_PENDING \u2192 IN_TRANSIT_OUTBOUND \u2192 ON_LOAN \u2192 \nRETURN_REQUESTED \u2192 IN_TRANSIT_RETURN \u2192 RETURNED \u2192 CLOSED\n\nAlternative paths:\n- REQUESTED \u2192 DECLINED (loan denied)\n- ON_LOAN \u2192 EXTENDED (loan period extended)\n- Any state \u2192 CANCELLED (loan cancelled)\n```\n\n**SPECTRUM Alignment**:\n\nThis enum aligns with SPECTRUM Procedure:\n- Loans Out (outgoing loans)\n- Loans In (incoming loans)\n- Object Entry/Exit for transit states", - "enum": [ - "REQUESTED", - "UNDER_REVIEW", - "APPROVED", - "DECLINED", - "AGREEMENT_PENDING", - "CONDITION_REPORT_PENDING", - "IN_TRANSIT_OUTBOUND", - "ON_LOAN", - "EXTENDED", - "RETURN_REQUESTED", - "IN_TRANSIT_RETURN", - "RETURNED", - "CLOSED", - "CANCELLED", - "OVERDUE", - "DISPUTED" - ], - "title": "LoanStatusEnum", - "type": "string" - }, - "LocalAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Local authority administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "LocalGovernmentArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by LocalGovernmentArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "LocalAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LocalAdministrationFonds", - "type": "object" - }, - "LocalCollectionIdentifier": { - "additionalProperties": false, - "description": "Local collection or institutional identifier.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "LOCAL_COLLECTION", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Local Collection ID", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "LocalCollectionIdentifier", - "type": "object" - }, - "LocalEventDocumentation": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Local event documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "CommunityArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by CommunityArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "LocalEventDocumentation", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LocalEventDocumentation", - "type": "object" - }, - "LocalGovernanceSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for District governance documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "DistrictArchiveGermany", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by DistrictArchiveGermany custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "LocalGovernanceSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LocalGovernanceSeries", - "type": "object" - }, - "LocalGovernmentArchive": { - "additionalProperties": false, - "description": "Archive of records belonging to a local government. Local government archives preserve records created by municipal, county, or other local governmental bodies. They document local administration, public services, planning, taxation, and community governance. These archives are essential for understanding local history and for citizens exercising rights related to government records.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LocalGovernmentArchive", - "type": "object" - }, - "LocalGovernmentArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by LocalGovernmentArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LocalGovernmentArchiveRecordSetType", - "type": "object" - }, - "LocalHeritageInstitutionInSweden": { - "additionalProperties": false, - "description": "A Swedish type of local history and cultural heritage museums\n(hembygdsg\u00e5rd).\n\n**PURPOSE**: Digital presence of Swedish local heritage museums\npreserving regional history and traditions.\n\n**CHARACTERISTICS**:\n- Local history focus\n- Community-based\n- Traditional buildings\n- Regional identity\n\n**EXAMPLES**: Swedish hembygdsg\u00e5rdar digital presences", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q10520688" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AUXILIARY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "LocalHeritageInstitutionInSweden", - "type": "object" - }, - "LocalHistoryArchive": { - "additionalProperties": false, - "description": "Archive dealing with local history. Local history archives collect and preserve materials documenting the history of a specific locality such as a town, village, neighborhood, or small region. They may include official records, photographs, maps, newspapers, oral histories, and ephemera. Often maintained by local historical societies, libraries, or municipal governments.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LocalHistoryArchive", - "type": "object" - }, - "LocalHistoryArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by LocalHistoryArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LocalHistoryArchiveRecordSetType", - "type": "object" - }, - "LocalHistoryCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for local history documentation and community heritage.\n\n**Definition**:\nMaterials documenting the history, culture, and community life of the \nmunicipality beyond formal administrative records. Often includes visual \nmaterials, publications, and ephemera that capture the lived experience \nof the community.\n\n**Typical Contents**:\n- Historical photographs and postcards\n- Local newspapers and periodicals (krantenknipsels)\n- Oral histories and interviews\n- Community organization records\n- Event documentation\n- Commemorative publications\n- Local business ephemera\n- Maps and prints (not official planning documents)\n- Personal and family collections\n\n**Collection Nature**:\nOften assembled collections (artificial) rather than strictly provenance-based,\nespecially for ephemera and visual materials. Documentation value often takes\nprecedence over strict archival arrangement.\n\n**Community Engagement**:\nMunicipal archives often actively collect local history materials through:\n- Donation programs\n- Oral history projects\n- Photo scanning initiatives\n- Partnerships with local historical societies (heemkundekringen)\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the collection organizational principle as defined by rico-rst:Collection\n(assembled/artificial collection organized by subject or community interest).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the collection principle. Assembled collection organized by subject or community interest. Documentation value prioritized over strict provenance.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "LocalHistoryCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"official administrative records\", \"civil registry\", \"building permits\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"photographs\", \"newspapers\", \"oral histories\", \"ephemera\", \"community records\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "LocalHistoryCollection", - "type": "object" - }, - "LocalHistoryFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Local history materials.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "LocalHistoryArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by LocalHistoryArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "LocalHistoryFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LocalHistoryFonds", - "type": "object" - }, - "LocalHistoryTopic": { - "additionalProperties": false, - "description": "Topic related to local and regional history.\n\nIncludes: municipal history, regional heritage,\nstreekgeschiedenis, plaatselijke historie.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/TopicType" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/TopicType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "LocalHistoryTopic", - "type": "object" - }, - "LocalNewspaperCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Local newspaper archives.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "LocalHistoryArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by LocalHistoryArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "LocalNewspaperCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LocalNewspaperCollection", - "type": "object" - }, - "LocalTaxRecordsSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Local taxation records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "LocalGovernmentArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by LocalGovernmentArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "LocalTaxRecordsSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "LocalTaxRecordsSeries", - "type": "object" - }, - "Location": { - "additionalProperties": false, - "description": "Generic geographic location representation.\n\n**Purpose**:\nLocation provides a reusable class for representing geographic\nlocations with name and optional coordinates.\n\n**Ontological Alignment**:\n- **Primary**: `schema:Place` - Schema.org Place\n- **Exact**: `locn:Location` - LOCN (W3C Location) location\n- **Related**: `wgs84:Point` - WGS84 geo point (for coordinates)\n\n**Use Cases**:\n- Transfer event locations (origin/destination)\n- Institution physical locations\n- Collection storage locations", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "latitude": { - "description": "Geographic latitude (WGS84 coordinate).\n\nSchema.org: latitude for geographic positioning.\n", - "type": [ - "number", - "null" - ] - }, - "location_name": { - "description": "Human-readable name for a geographic location.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name\n- **Exact**: `rdfs:label` - RDF Schema label\n- **Related**: `locn:geographicName` - LOCN geographic name\n\n**Usage**:\nPrimary identifier for Location instances. Should be\nhuman-readable and unambiguous where possible.\n\n**Examples**:\n- \"Rijksmuseum Amsterdam\"\n- \"Noord-Hollands Archief, Haarlem\"\n- \"Depot Boerhaave, Leiden\"\n", - "type": "string" - }, - "longitude": { - "description": "Geographic longitude (WGS84 coordinate).\n\nSchema.org: longitude for geographic positioning.\n", - "type": [ - "number", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "location_name" - ], - "title": "Location", - "type": "object" - }, - "LocationBrowseTemplate": { - "additionalProperties": false, - "description": "Template type for geographic browsing queries.\n\n**Relevant Queries**:\n- Heritage institutions by location\n- Geographic distribution\n- Regional heritage landscapes\n- Address and coordinate lookups", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "LocationBrowseTemplate", - "type": "object" - }, - "LogoUrlClaim": { - "additionalProperties": false, - "description": "Organization logo image URL.\nExpected in: <img> in header/nav, og:image meta tag.\nLook for: logo, brand, emblem, icon in class/id/alt attributes.\nPriority: SVG > PNG > JPG for quality.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "LogoUrlClaim", - "type": "object" - }, - "Looting": { - "additionalProperties": false, - "description": "Systematic theft of cultural objects during conflict.\nExamples: Iraq National Museum 2003.", - "title": "Looting", - "type": "object" - }, - "LowDetectionLevel": { - "additionalProperties": false, - "description": "Low confidence detection level (0.5-0.7 confidence).\n\n**Use Case**: Research, exhaustive analysis, recall-focused.\n\nLow confidence detections prioritize recall over precision.\nSuitable for research workflows where missing items is more costly\nthan including false positives.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "LOW", - "pattern": "^[A-Z_]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Low Confidence", - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "LowDetectionLevel", - "type": "object" - }, - "METSAPI": { - "additionalProperties": false, - "description": "METS (Metadata Encoding and Transmission Standard) document retrieval API.\n\n**Purpose:**\n\nModels endpoints that provide access to METS documents describing\nthe structure and metadata of digital objects in heritage collections.\n\nMETS is a Library of Congress standard widely used in digital preservation\nand repository systems.\n\n**METS Structure:**\n\nA METS document contains:\n- **metsHdr**: Header with creation/modification metadata\n- **dmdSec**: Descriptive metadata (Dublin Core, MODS, EAD, etc.)\n- **amdSec**: Administrative metadata (technical, rights, provenance)\n- **fileSec**: File inventory with technical properties\n- **structMap**: Logical/physical structure of the object\n- **structLink**: Links between structural divisions\n- **behaviorSec**: Executable behaviors\n\n**Example - Nationaal Archief METS API:**\n\n```yaml\nmets_api:\n endpoint_name: \"Nationaal Archief METS API\"\n base_url: \"https://service.archief.nl/gaf/api/mets/v1/\"\n url_pattern: \"{base_url}{uuid}\"\n mets_profile: NATIONAAL_ARCHIEF\n version: \"v1\"\n descriptive_metadata_schemas:\n - Dublin Core\n - EAD\n rights_metadata_available: true\n structural_metadata_available: true\n file_inventory_included: true\n example_url: \"https://service.archief.nl/gaf/api/mets/v1/12345678-1234-1234-1234-123456789012\"\n```\n\n**Use Cases:**\n\n1. **Digital preservation**: Validate object integrity\n2. **Viewer integration**: Build multi-page viewers from structural metadata\n3. **Migration**: Transfer objects between repository systems\n4. **Audit**: Track provenance and rights\n\n**See Also:**\n\n- METS Standard: https://www.loc.gov/standards/mets/\n- METS Primer: https://www.loc.gov/standards/mets/METSPrimer.pdf", - "properties": { - "administrative_metadata_sections": { - "description": "Administrative metadata sections included.\n\nMETS defines:\n- techMD: Technical metadata (file formats, dimensions)\n- rightsMD: Rights/permissions\n- sourceMD: Source/provenance\n- digiprovMD: Digital provenance (PREMIS events)\n\nExample: [\"techMD\", \"rightsMD\", \"digiprovMD\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "authentication_method": { - "$ref": "#/$defs/AuthenticationMethodEnum", - "description": "Authentication method required (if is_or_was_required is true).\n\nValues from AuthenticationMethodEnum:\n- NONE: No authentication\n- API_KEY: API key in header or query parameter\n- OAUTH2: OAuth 2.0\n- BASIC: HTTP Basic Authentication\n- IP_WHITELIST: IP address whitelist\n- INSTITUTIONAL: Institutional login (Shibboleth, etc.)\n" - }, - "base_url": { - "description": "Base URL for METS document retrieval.\n\nIndividual documents are accessed by appending an identifier.\n\nExample: \"https://service.archief.nl/gaf/api/mets/v1/\"\n", - "type": "string" - }, - "checksum_algorithms": { - "description": "Checksum algorithms used in file inventory.\n\nFor integrity verification.\n\nExample: [\"MD5\", \"SHA-256\", \"SHA-512\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "cors_enabled": { - "description": "Whether CORS (Cross-Origin Resource Sharing) is enabled.\n\nImportant for browser-based JavaScript applications:\n- true: Cross-origin requests allowed\n- false: Same-origin only\n- null: Unknown\n", - "type": [ - "boolean", - "null" - ] - }, - "descriptive_metadata_schemas": { - "description": "Descriptive metadata schemas embedded in dmdSec.\n\nCommon schemas:\n- Dublin Core (oai_dc)\n- MODS\n- EAD (for archival description)\n- MARCXML\n- VRA Core (visual resources)\n\nExample: [\"Dublin Core\", \"EAD\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "discovery_provenance": { - "description": "Provenance information about how this endpoint was discovered.\n\nShould include:\n- Discovery date\n- Discovery method (documentation, web scrape, API testing)\n- Verification status\n\nFree-text or structured provenance note.\n", - "type": [ - "string", - "null" - ] - }, - "documentation_url": { - "description": "URL to human-readable documentation.\n\nThis is separate from endpoint_description_url which is machine-readable.\n\nExamples:\n- \"https://pro.europeana.eu/resources/apis/record\"\n- \"https://www.nationaalarchief.nl/onderzoeken/handleiding/api\"\n", - "type": [ - "string", - "null" - ] - }, - "endpoint_description_url": { - "description": "URL to machine-readable API documentation.\n\nDCAT: dcat:endpointDescription - \"A description of the service end-point\"\n\nMay be:\n- OpenAPI/Swagger specification (JSON/YAML)\n- OAI-PMH Identify response\n- WSDL document\n- Human-readable documentation page\n\nExamples:\n- \"https://api.example.org/openapi.json\"\n- \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh?verb=Identify\"\n", - "type": [ - "string", - "null" - ] - }, - "endpoint_id": { - "description": "Unique identifier for this data service endpoint.\n\nRecommended format: URI combining platform ID and service type.\n\nExample: \"https://nde.nl/ontology/hc/endpoint/nationaalarchief-oai-pmh\"\n", - "type": "string" - }, - "endpoint_name": { - "description": "Human-readable name for this endpoint.\nExamples: - \"Nationaal Archief OAI-PMH Endpoint\" - \"Heritage Search API\" - \"Image Server (IIP)\"", - "type": "string" - }, - "endpoint_type": { - "description": "Classification of this endpoint from the DataServiceEndpointType taxonomy.\n\n**Instance vs Type Architecture:**\n\nThis slot links an INSTANCE (DataServiceEndpoint) to its TYPE classification\n(DataServiceEndpointType), following the same architectural pattern as\nCustodian/CustodianType.\n\n```\nDataServiceEndpoint (INSTANCE) DataServiceEndpointType (TYPE)\n\u251c\u2500\u2500 endpoint_url \u251c\u2500\u2500 protocol_name\n\u251c\u2500\u2500 status \u251c\u2500\u2500 protocol_version\n\u251c\u2500\u2500 is_or_was_required \u251c\u2500\u2500 specification_url\n\u2514\u2500\u2500 endpoint_type \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba\u2514\u2500\u2500 has_or_had_format\n```\n\n**Why Both `protocol` and `endpoint_type`?**\n\n- `protocol` (enum): Simple string classification for quick filtering\n- `endpoint_type` (class reference): Rich type metadata with SKOS hierarchy,\n specification URLs, and semantic relationships\n\n**Example:**\n\n```yaml\ndata_service_endpoint:\n endpoint_id: \"https://nde.nl/hc/endpoint/na-oai-pmh\"\n endpoint_url: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh\"\n protocol: OAI_PMH # Simple enum (DataServiceProtocolEnum)\n endpoint_type: OAIPMHEndpointType # Rich type (DataServiceEndpointType subclass)\n```\n\nThis pattern mirrors:\n- `custodian_type` enum + `CustodianType` class on `Custodian`\n- `platform_type` enum + `DigitalPlatformType` class on `DigitalPlatform`\n", - "type": [ - "string", - "null" - ] - }, - "example_url": { - "description": "Example URL for retrieving a METS document.\n\nExample: \"https://service.archief.nl/gaf/api/mets/v1/12345678-1234-1234-1234-123456789012\"\n", - "type": [ - "string", - "null" - ] - }, - "file_inventory_included": { - "description": "Whether file inventory (fileSec) is included.\n\nFile section lists all files with locations, sizes, checksums.\n", - "type": [ - "boolean", - "null" - ] - }, - "file_location_resolvable": { - "description": "Whether file URLs in fileSec are directly resolvable.\n\nIf true, file URLs can be used to download content.\nIf false, files may require authentication or be internal references.\n", - "type": [ - "boolean", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_url": { - "description": "Base URL of the service endpoint. DCAT: dcat:endpointURL - \"The root location or primary endpoint of the service\" MIGRATED 2026-01-26: Replaces endpoint_url slot.", - "type": "string" - }, - "identifier_type": { - "$ref": "#/$defs/METSIdentifierTypeEnum", - "description": "Type of identifier used to request METS documents.\n\nValues: UUID, HANDLE, DOI, ARK, LOCAL_ID\n\nExample: UUID\n" - }, - "is_or_was_required": { - "description": "Whether something is or was required (boolean).\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **Schema.org** | `schema:isRequired` | Maps to - boolean requirement |\n\nNote: slot_uri changed from schema:isRequired to hc:isOrWasRequired\nto resolve OWL ambiguous type warning. schema:isRequired may be\nambiguous when used in different contexts.\n\n**USAGE NOTE**:\n\nThis is a simple boolean slot. For structured requirement information\nwith types and temporal validity, use has_or_had_status with RequirementStatus.\n\n**MIGRATION NOTE**:\n\nReplaces domain-specific boolean slots like:\n- booking_required \u2192 is_or_was_required\n- appointment_required \u2192 is_or_was_required\n- registration_required \u2192 is_or_was_required\n", - "type": [ - "boolean", - "null" - ] - }, - "last_verified": { - "description": "Date when this endpoint was last verified to be operational.\n\nISO 8601 date format.\n\nExample: \"2025-12-14\"\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "mets_profile": { - "description": "METS profile implemented by this API.\n\nMETS profiles constrain the standard for specific use cases.\n\nExamples:\n- NATIONAAL_ARCHIEF: Dutch National Archive profile\n- BHL: Biodiversity Heritage Library profile\n- FEDORA: Fedora repository profile\n- NDNP: National Digital Newspaper Program\n", - "type": [ - "string", - "null" - ] - }, - "mets_schema_version": { - "description": "METS schema version used.\n\nCurrent version: 1.12.1\n\nExample: \"1.12.1\"\n", - "type": [ - "string", - "null" - ] - }, - "rate_limit": { - "description": "Rate limit description if applicable.\n\nFree-text description of rate limiting policy.\n\nExamples:\n- \"100 requests per minute\"\n- \"1000 requests per day per API key\"\n- \"No limit\"\n- \"Unknown\"\n", - "type": [ - "string", - "null" - ] - }, - "response_format": { - "description": "MIME types of response formats supported by this endpoint.\n\nExamples:\n- [\"application/json\"]\n- [\"application/xml\", \"text/xml\"]\n- [\"image/jpeg\", \"image/png\", \"image/tiff\"]\n- [\"application/ld+json\", \"text/turtle\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "rights_metadata_available": { - "description": "Whether rights metadata (rightsMD) is included.\n\nImportant for access control and reuse decisions.\n", - "type": [ - "boolean", - "null" - ] - }, - "serves_dataset": { - "description": "Dataset(s) that this service provides access to.\n\nDCAT: dcat:servesDataset - \"A collection of data that this data service can distribute\"\n\nReferences to DCAT Dataset identifiers or descriptions.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "status": { - "$ref": "#/$defs/EndpointStatusEnum", - "description": "Operational status of the endpoint.\n\nValues from EndpointStatusEnum:\n- ACTIVE: Endpoint is operational\n- DEPRECATED: Endpoint works but will be removed\n- BETA: Endpoint in testing/beta\n- OFFLINE: Endpoint currently unavailable\n- UNKNOWN: Status not verified\n" - }, - "structural_metadata_available": { - "description": "Whether structural metadata (structMap) is included.\n\nStructural maps define how components relate to form the object\n(pages in a book, frames in a film, etc.).\n", - "type": [ - "boolean", - "null" - ] - }, - "structure_map_types": { - "description": "Types of structural maps included.\n\nCommon types:\n- LOGICAL: Intellectual structure (chapters, sections)\n- PHYSICAL: Physical organization (pages, leaves)\n- MIXED: Combination of logical and physical\n\nExample: [\"LOGICAL\", \"PHYSICAL\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "supports_validation": { - "description": "Whether the API validates METS against schema/profile.\n\nWell-formed METS should validate against XSD schema.\n", - "type": [ - "boolean", - "null" - ] - }, - "technical_metadata_standard": { - "description": "Standard used for technical metadata.\n\nCommon standards:\n- PREMIS: PREservation Metadata\n- MIX: NISO Metadata for Images in XML\n- textMD: Technical metadata for text\n- AudioMD/VideoMD: AV technical metadata\n\nExample: \"PREMIS\"\n", - "type": [ - "string", - "null" - ] - }, - "url_pattern": { - "description": "URL pattern for constructing METS document requests.\n\nUse {placeholders} for dynamic parts.\n\nExamples:\n- \"{base_url}{uuid}\" \u2192 https://service.archief.nl/gaf/api/mets/v1/12345678-...\n- \"{base_url}?id={identifier}\" \u2192 https://example.org/mets?id=doc123\n", - "type": [ - "string", - "null" - ] - }, - "version": { - "description": "Version of the API or service.\n\nExamples:\n- \"v2\"\n- \"1.0.0\"\n- \"2023-01\"\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "base_url", - "has_or_had_url", - "endpoint_id", - "endpoint_name" - ], - "title": "METSAPI", - "type": "object" - }, - "METSIdentifierTypeEnum": { - "description": "Types of identifiers used to request METS documents.", - "enum": [ - "UUID", - "HANDLE", - "DOI", - "ARK", - "URN", - "LOCAL_ID", - "INVENTORY_NUMBER" - ], - "title": "METSIdentifierTypeEnum", - "type": "string" - }, - "MLEngineer": { - "additionalProperties": false, - "description": "Machine learning engineer developing ML models and systems.\n\n**Official Title vs De Facto Work**:\nIn heritage context, may work on image recognition,\nNLP for collections, recommendation systems.\n\n**Common Variants**:\n- AI Engineer\n- Deep Learning Engineer\n- Applied ML Engineer\n\n**Typical Domains**: Large heritage institutions with AI initiatives\n\n**Typical Responsibilities**:\n- Model development\n- Training pipeline development\n- Model optimization\n- Integration with applications\n- Performance evaluation", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "MLEngineer", - "type": "object" - }, - "MLOpsEngineer": { - "additionalProperties": false, - "description": "MLOps engineer managing machine learning operations.\n\n**Official Title vs De Facto Work**:\nIn heritage context, may work on AI/ML applications\nfor collections, visitor analytics, and automation.\n\n**Common Variants**:\n- ML Engineer\n- AI Operations Engineer\n- Machine Learning Platform Engineer\n\n**Typical Domains**: Large heritage institutions with AI/ML initiatives\n\n**Typical Responsibilities**:\n- ML model deployment\n- Model monitoring\n- Feature engineering pipelines\n- Model versioning\n- Infrastructure for ML", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "MLOpsEngineer", - "type": "object" - }, - "MacroPhotography": { - "additionalProperties": false, - "description": "Close-up photography to document surface details.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "MacroPhotography", - "type": "object" - }, - "MailingListArchive": { - "additionalProperties": false, - "description": "Archive of mailing list communications. Mailing list archives preserve the messages exchanged through email distribution lists, documenting online discussions, community conversations, and collaborative work. They are important sources for studying digital communication history, online communities, and the development of technical projects.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "platform_type_id", - "platform_type_name", - "has_or_had_label" - ], - "title": "MailingListArchive", - "type": "object" - }, - "MailingListArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by MailingListArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MailingListArchiveRecordSetType", - "type": "object" - }, - "MainPart": { - "additionalProperties": false, - "description": "Represents a principal/primary portion of something with quantified value.\n**PURPOSE**:\nMainPart provides structured representation for primary allocations such as: - Capital budget (principal budget for infrastructure/equipment) - Primary funding amount - Main portion of a larger whole\n**ONTOLOGY ALIGNMENT**:\n| Ontology | Mapping | Rationale | |----------|---------|-----------| | Schema.org | schema:QuantitativeValue | Quantified value |\n**USE CASES**: - Capital budget allocation in institutional budgets - Primary collection value - Main funding allocation\nMIGRATED 2026-01-22: Created per slot_fixes.yaml revision for capital_budget. Replaces simple decimal capital_budget with structured class.", - "properties": { - "currency_code": { - "type": [ - "string", - "null" - ] - }, - "has_or_had_quantity": { - "description": "The quantified value of this main part. For capital budget: Quantity.quantity_value = amount, currency in metadata.", - "items": { - "type": "integer" - }, - "type": "array" - }, - "part_type": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "has_or_had_quantity" - ], - "title": "MainPart", - "type": "object" - }, - "MaintenanceFunction": { - "additionalProperties": false, - "description": "Maintenance function: building maintenance, HVAC, cleaning, grounds keeping, equipment repair.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "MaintenanceFunction", - "type": "object" - }, - "Manager": { - "additionalProperties": false, - "description": "A person or role responsible for managing an organizational unit.\nCaptures name, title, and contact information for department heads.", - "properties": { - "has_or_had_email": { - "description": "Email address associated with an entity. MIGRATED from contact_email, admin_email, and email_address (2026-01-26).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - }, - "has_or_had_title": { - "description": "The title or name of a resource.\n\n**RiC-O Temporal Pattern**:\nUses `hasOrHad*` pattern to indicate titles can change over time.\nResources may have different titles at different points in their lifecycle.\n\n**USE CASES**:\n\n1. Dataset titles\n2. Document titles\n3. Collection titles\n4. Work titles\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `dct:title` - Dublin Core title\n- **Close**: `schema:name` - Schema.org name\n- **Close**: `rdfs:label` - RDF Schema label\n\nCreated as part of dataset_title migration per slot_fixes.yaml (Rule 53).\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "has_or_had_name" - ], - "title": "Manager", - "type": "object" - }, - "Mandate": { - "additionalProperties": false, - "description": "A formal mandate or responsibility.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Mandate", - "type": "object" - }, - "Manufacturer": { - "additionalProperties": false, - "description": "Represents a manufacturer or producer of devices, equipment, or products.\n\n**MIGRATION SOURCE**: Created from device_manufacturer slot migration (Rule 53, 2026-01-25).\n\n**Pattern**: Simple string manufacturer name replaced with structured class:\n- has_or_had_label: Manufacturer name (String or Label)\n- has_or_had_url: Manufacturer website (URL)\n- has_or_had_identifier: Unique identifier\n\n**Ontological Alignment**:\n- **Primary**: `schema:Organization` - Schema.org organization\n- **Close**: `org:Organization` - W3C ORG organization\n- **Related**: `prov:Agent` - PROV-O agent responsible for production\n\n**Use Cases**:\n- IoT device manufacturers (Estimote, Sensirion, Samsung)\n- Equipment vendors\n- Technology providers\n\n**Relationship to InternetOfThings**:\n```\nInternetOfThings\n \u2514\u2500\u2500 is_or_was_created_by \u2192 Manufacturer\n \u251c\u2500\u2500 has_or_had_label \u2192 \"Estimote\"\n \u2514\u2500\u2500 has_or_had_url \u2192 URL\n```", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "Manufacturer", - "type": "object" - }, - "MapSpecialist": { - "additionalProperties": false, - "description": "Map specialist with expertise in cartographic collections.\n\n**Official Title vs De Facto Work**:\nMay be involved in GIS applications, digital cartography,\nand spatial data management beyond traditional map librarianship.\n\n**Common Variants**:\n- Map Librarian\n- Cartographic Specialist\n- GIS Librarian\n- Map Curator\n\n**Typical Domains**: Libraries, archives, geographic institutions\n\n**Typical Responsibilities**:\n- Map cataloging and description\n- Reference services for maps\n- Collection development\n- Digitization projects\n- GIS support", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "MapSpecialist", - "type": "object" - }, - "MarketingArchiveCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for marketing, advertising, and brand heritage materials.\n\n**Definition**:\nMaterials documenting the company's marketing activities, advertising campaigns, \nbrand development, and public communications. Often includes rich visual \nmaterials and ephemera.\n\n**Typical Contents**:\n- Advertising campaigns (print, radio, television, digital)\n- Brand guidelines and style guides\n- Packaging designs\n- Promotional materials (brochures, catalogs, flyers)\n- Trade fair and exhibition materials\n- Press releases and media coverage\n- Sponsorship records\n- Market research reports\n- Customer communications\n\n**Brand Heritage Value**:\nMarketing archives are essential for:\n- Brand continuity and evolution\n- Anniversary and commemorative projects\n- Trademark protection (proof of use)\n- Nostalgic marketing campaigns\n- Corporate identity management\n\n**Visual Content**:\nMarketing archives typically contain rich visual materials:\n- Photography and film\n- Graphic design originals\n- Packaging samples\n- Point-of-sale materials\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the collection organizational principle as defined by rico-rst:Collection\n(assembled collections organized by campaign, product line, or media type).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the collection principle as defined by rico-rst:Collection. Typically assembled collection organized by campaign, product line, or media type. Visual materials often predominate.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "MarketingArchiveCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"governance records\", \"technical documentation\", \"personnel records\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"advertising\", \"brand materials\", \"packaging\", \"promotional materials\", \"market research\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "MarketingArchiveCollection", - "type": "object" - }, - "MarketingFunction": { - "additionalProperties": false, - "description": "Marketing function: advertising, digital marketing, audience research, brand management.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "MarketingFunction", - "type": "object" - }, - "Mastodon": { - "additionalProperties": false, - "description": "Mastodon profile (any instance).\n\n**URL patterns**:\n- https://{instance}/@{username}\n- https://{instance}/users/{username}\n\n**Features**:\n- Decentralized (federated instances)\n- ActivityPub protocol\n- Community-moderated\n- No advertising\n\n**Heritage use cases**:\n- Open source community engagement\n- GLAM-specific instances (e.g., glammr.us)\n- Academic and research communities\n- Values-aligned social presence", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "MICROBLOGGING", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://{instance}/@{username}", - "https://{instance}/users/{username}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "Mastodon", - "type": "object" - }, - "Material": { - "additionalProperties": false, - "description": "Represents a physical material or substance, typically used to categorize\nwhat types of heritage objects a storage environment is designed to preserve.\n\n**DEFINITION**:\n\nMaterial represents the physical substance from which heritage objects are made.\nThis class enables structured representation of target materials for storage\nenvironments, replacing simple string lists with semantically rich entities.\n\n**CIDOC-CRM ALIGNMENT**:\n\nMaps to `crm:E57_Material` - \"A type of material of which things can be made.\"\nE57_Material provides vocabulary for describing the physical composition of\nheritage objects and the environmental requirements for their preservation.\n\n**USE CASES**:\n\n1. **Storage Environment Classification**:\n - EnvironmentalZoneType specifies which materials it's designed for\n - StorageType indicates suitable material types\n \n2. **Preservation Requirements**:\n - Different materials have different climate requirements\n - Paper vs. film vs. textiles have distinct needs\n \n3. **Collection Categorization**:\n - Materials provide another facet for classifying collections\n - Enables material-specific search and discovery\n\n**EXAMPLES**:\n\n- Paper, parchment, vellum (archival materials)\n- Nitrate film, acetate film, polyester film (photographic)\n- Wool, silk, cotton, linen (textiles)\n- Bronze, iron, silver (metals)\n- Oil paint, acrylic, tempera (art materials)\n\n**MIGRATION NOTE (2026-01-16)**:\n\nThis class replaces simple string-based `target_material` slot per Rule 53/56.\nProvides structured representation with type classification, Wikidata alignment,\nand extensibility for future material-specific properties.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/material/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "Material", - "type": "object" - }, - "MaterialScope": { - "additionalProperties": false, - "description": "Material type scope dimension covering media types and object categories.\n\n**Examples**:\n- \"Photographs\" (visual material)\n- \"Manuscripts\" (documentary material)\n- \"Audio recordings\" (sound material)\n- \"3D objects\" (physical objects)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this scope type. Can include:\n- Type URI (e.g., https://nde.nl/ontology/hc/scope-type/temporal)\n- Wikidata Q-number (e.g., Q186408)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "MaterialScope", - "type": "object" - }, - "Material__identifier_optional": { - "additionalProperties": false, - "description": "Represents a physical material or substance, typically used to categorize\nwhat types of heritage objects a storage environment is designed to preserve.\n\n**DEFINITION**:\n\nMaterial represents the physical substance from which heritage objects are made.\nThis class enables structured representation of target materials for storage\nenvironments, replacing simple string lists with semantically rich entities.\n\n**CIDOC-CRM ALIGNMENT**:\n\nMaps to `crm:E57_Material` - \"A type of material of which things can be made.\"\nE57_Material provides vocabulary for describing the physical composition of\nheritage objects and the environmental requirements for their preservation.\n\n**USE CASES**:\n\n1. **Storage Environment Classification**:\n - EnvironmentalZoneType specifies which materials it's designed for\n - StorageType indicates suitable material types\n \n2. **Preservation Requirements**:\n - Different materials have different climate requirements\n - Paper vs. film vs. textiles have distinct needs\n \n3. **Collection Categorization**:\n - Materials provide another facet for classifying collections\n - Enables material-specific search and discovery\n\n**EXAMPLES**:\n\n- Paper, parchment, vellum (archival materials)\n- Nitrate film, acetate film, polyester film (photographic)\n- Wool, silk, cotton, linen (textiles)\n- Bronze, iron, silver (metals)\n- Oil paint, acrylic, tempera (art materials)\n\n**MIGRATION NOTE (2026-01-16)**:\n\nThis class replaces simple string-based `target_material` slot per Rule 53/56.\nProvides structured representation with type classification, Wikidata alignment,\nand extensibility for future material-specific properties.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/material/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "Material", - "type": "object" - }, - "MeanValue": { - "additionalProperties": false, - "description": "Mean value wrapper.", - "properties": { - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "MeanValue", - "type": "object" - }, - "MeasureUnit": { - "additionalProperties": false, - "description": "A unit of measurement for expressing quantities.\nCaptures the unit type (from MeasureUnitEnum), symbol, and optional conversion factors. Used as the range for has_or_had_unit slot.\n**EXAMPLES**: - Hectare (ha) for outdoor site area - Square meter (m\u00b2) for building floor area - Linear meter (m) for archival shelf extent", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_symbol": { - "description": "A symbolic representation associated with an entity.\n\n**USAGE**:\nUsed for standardized symbols such as:\n- Unit symbols (e.g., \"ha\" for hectare, \"m\u00b2\" for square meter)\n- Currency symbols (e.g., \"\u20ac\", \"$\")\n- Chemical symbols\n- Mathematical notation symbols\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: qudt:symbol (QUDT symbol for units)\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/MeasureUnitEnum" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_type" - ], - "title": "MeasureUnit", - "type": "object" - }, - "MeasureUnitEnum": { - "description": "Standard measurement units for heritage custodian facility metrics.\nCovers area (m\u00b2, hectares, acres), length (m, km, linear meters), and related quantities for buildings, sites, and collections.", - "enum": [ - "SQUARE_METER", - "SQUARE_KILOMETER", - "HECTARE", - "ACRE", - "SQUARE_FOOT", - "METER", - "KILOMETER", - "LINEAR_METER", - "FOOT", - "RUNNING_METER", - "SHELF_METER", - "VISITOR", - "VIEW", - "ITEM", - "FTE", - "HEADCOUNT", - "OBJECT", - "FACE", - "COMMENT", - "LIKE", - "DISLIKE", - "FAVORITE", - "UNKNOWN" - ], - "title": "MeasureUnitEnum", - "type": "string" - }, - "Measurement": { - "additionalProperties": false, - "description": "A measurement observation capturing a specific value, its type, and unit.\n\nUsed for:\n- Storage condition monitoring (temperature, humidity)\n- Environmental assessments (light levels, UV radiation)\n- Conservation observations (pest counts, air quality)", - "properties": { - "has_or_had_measurement_type": { - "anyOf": [ - { - "$ref": "#/$defs/MeasurementType" - }, - { - "type": "null" - } - ], - "description": "The type or category of a measurement (e.g., temperature, humidity, \nlight level, air quality).\n\nFollows RiC-O temporal naming convention (Rule 39) to indicate the\nrelationship may be current or historical.\n" - }, - "has_or_had_measurement_unit": { - "anyOf": [ - { - "$ref": "#/$defs/MeasureUnit" - }, - { - "type": "null" - } - ], - "description": "The unit of measurement for a quantity value. Uses RiC-O temporal naming pattern to indicate the unit may be current or historical (e.g., if measurement standards changed over time).\n**QUDT**: qudt:unit - \"The unit of measure used to express the value of a Quantity.\"\n**USE CASES**: - Visitor counts: unit = \"visitors\", \"visitors/year\" - View counts: unit = \"views\", \"views/day\" - Collection sizes: unit = \"items\", \"objects\", \"linear meters\" - Area: unit = \"m\u00b2\", \"ha\", \"km\u00b2\" - Currency: unit = \"EUR\", \"USD\", \"GBP\"" - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_value" - ], - "title": "Measurement", - "type": "object" - }, - "MecenatCulturel": { - "additionalProperties": false, - "description": "French cultural patronage scheme (M\u00e9c\u00e9nat culturel).\n\n**Benefits**:\n- Individuals: 66% tax reduction (up to 20% of taxable income)\n- Companies: 60% tax reduction (up to 0.5% of turnover)\n- Enhanced rates for national treasures\n\n**Eligible Institutions**:\n- Museums, libraries, archives\n- Monuments historiques\n- Cultural associations\n\n**Regulatory Body**: Direction g\u00e9n\u00e9rale des Finances publiques", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "MecenatCulturel", - "type": "object" - }, - "MechanicalCleaning": { - "additionalProperties": false, - "description": "Physical removal of deposits using tools (scalpels, brushes, erasers).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "MechanicalCleaning", - "type": "object" - }, - "MediaArchive": { - "additionalProperties": false, - "description": "Archive preserving media content across various formats. Media archives collect and preserve audio, video, photographic, and other media materials. They may serve broadcasters, production companies, or cultural heritage institutions. Media archives face particular challenges around format obsolescence, rights management, and the preservation of time-based media.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MediaArchive", - "type": "object" - }, - "MediaArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by MediaArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MediaArchiveRecordSetType", - "type": "object" - }, - "MediaClaim": { - "additionalProperties": false, - "description": "Claim types for media assets.\nIncludes logos, favicons, and social sharing images.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "MediaClaim", - "type": "object" - }, - "MediaObject": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "MediaObject", - "type": "object" - }, - "MediaProductionFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Media company records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "MediaArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by MediaArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "MediaProductionFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MediaProductionFonds", - "type": "object" - }, - "MediaSegment": { - "additionalProperties": false, - "description": "", - "properties": { - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "MediaSegment", - "type": "object" - }, - "MedicalPhotographyCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for medical photography and imaging documentation.\n\n**Definition**:\nCollections of photographs, images, and visual documentation created \nfor medical, educational, and institutional purposes. Includes clinical\nphotography, facility documentation, and historical photographs.\n\n**Typical Contents**:\n- Clinical photography (dermatology, surgery, pathology)\n- Medical illustrations\n- X-rays and radiological images (historical)\n- Surgical documentation photographs\n- Building and facility photographs\n- Staff portraits and group photos\n- Event documentation\n- Equipment and technology photographs\n- Teaching slides and visual aids\n- Patient photographs (historical, with consent issues)\n\n**Historical Formats**:\n- Glass plate negatives\n- Lantern slides (teaching)\n- Photographic prints\n- 35mm slides\n- Digital images\n\n**Privacy and Ethics**:\nMedical photography raises significant privacy concerns:\n- Patient consent requirements\n- De-identification protocols\n- Historical photographs with identifiable patients\n- Sensitive clinical imagery\n\n**Research and Education Value**:\nMedical photography collections support:\n- Medical history research\n- History of diagnostic techniques\n- Teaching and education\n- Documentary evidence\n- Institutional history\n\n**Dutch Context**:\nKey elements:\n- Medische fotografie\n- Rontgenfoto's (historical X-rays)\n- Anatomische preparaten (related documentation)\n- Onderwijsdia's (teaching slides)\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the collection organizational principle as defined by rico-rst:Collection\n(assembled visual documentation organized by subject, department, or format).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "preservation_note": { - "const": "Historical photographic materials require specialized preservation. Glass plates, nitrate film, and early color materials particularly vulnerable. Digitization priorities based on condition and content.", - "description": "Notes about preservation requirements or considerations.", - "type": [ - "string", - "null" - ] - }, - "privacy_note": { - "const": "SENSITIVE. Clinical photographs may contain identifiable patients. Historical collections require ethical review for access and use. De-identification protocols essential for research use.", - "description": "Notes about privacy restrictions or access limitations.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the collection principle as defined by rico-rst:Collection. Assembled visual documentation organized by subject, department, format, or time period.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "MedicalPhotographyCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"textual patient records\", \"administrative documents\", \"research data\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"clinical photography\", \"X-rays\", \"teaching slides\", \"facility photos\", \"staff portraits\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "MedicalPhotographyCollection", - "type": "object" - }, - "MedicalResearchCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for medical research documentation.\n\n**Definition**:\nCollections documenting clinical research, medical trials, and scientific\ninvestigations conducted at hospitals and medical centers. Combines\nofficial research records with collected data and publications.\n\n**Typical Contents**:\n- Clinical trial protocols\n- Research data sets\n- Ethics committee approvals (METC)\n- Informed consent documentation\n- Research correspondence\n- Laboratory notebooks\n- Statistical analyses\n- Publications and manuscripts\n- Grant documentation\n- Patent filings\n\n**Research Types**:\n- Clinical trials (interventional studies)\n- Observational studies\n- Case studies\n- Basic research (laboratory)\n- Translational research\n- Epidemiological studies\n\n**Data Management**:\nMedical research collections require:\n- Data integrity documentation\n- Audit trails\n- Long-term preservation plans\n- De-identification protocols\n- Reproducibility documentation\n\n**Regulatory Context**:\nResearch records subject to:\n- Good Clinical Practice (GCP) guidelines\n- FDA/EMA regulatory requirements\n- Research ethics regulations\n- Data retention requirements (typically 15-25 years)\n\n**Dutch Context**:\nKey elements:\n- METC goedkeuringen (ethics approvals)\n- WMO (Medical Research Act) documentation\n- CCMO registrations\n- NWO/ZonMw grant records\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the collection organizational principle as defined by rico-rst:Collection\n(assembled research documentation organized by project, grant, or research area).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the collection principle as defined by rico-rst:Collection. Assembled research documentation organized by project, grant, or research area.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "MedicalResearchCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"routine patient care\", \"administrative records\", \"nursing education\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"clinical trials\", \"research protocols\", \"ethics approvals\", \"data sets\", \"publications\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "MedicalResearchCollection", - "type": "object" - }, - "Medium": { - "additionalProperties": false, - "description": "Medium publication or profile.\n\n**URL patterns**:\n- https://medium.com/@{username}\n- https://{publication}.medium.com\n\n**Features**:\n- Long-form articles\n- Publications and collections\n- Partner program\n- Reading lists\n\n**Heritage use cases**:\n- Thought leadership articles\n- Research publications\n- Curator essays\n- Exhibition context", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "PUBLISHING", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://medium.com/@{username}", - "https://{publication}.medium.com" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "Medium", - "type": "object" - }, - "MediumDetectionLevel": { - "additionalProperties": false, - "description": "Medium confidence detection level (0.7-0.9 confidence).\n\n**Use Case**: General use, review queue.\n\nMedium confidence detections may need spot-checking but are generally\nreliable for most applications.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "MEDIUM", - "pattern": "^[A-Z_]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Medium Confidence", - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "MediumDetectionLevel", - "type": "object" - }, - "MembershipCoordinator": { - "additionalProperties": false, - "description": "Coordinator managing membership administration and engagement.\n\n**Official Title vs De Facto Work**:\nFormally handles membership, but often involved in events,\ncommunications, fundraising, and community building.\n\n**Common Variants**:\n- Membership Secretary\n- Membership Officer\n- Ledenadministrateur (Dutch)\n- Member Services Coordinator\n- Community Coordinator\n\n**Typical Domains**: Historical societies, heritage associations, museum friends groups\n\n**Typical Responsibilities**:\n- Membership administration and records\n- New member onboarding\n- Membership renewals and retention\n- Member communications\n- Benefits coordination\n- Volunteer recruitment\n- Community engagement events", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "MembershipCoordinator", - "type": "object" - }, - "MembershipFunction": { - "additionalProperties": false, - "description": "Membership function: member recruitment, retention, benefits, member events, member communications.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "MembershipFunction", - "type": "object" - }, - "MembershipRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Party membership records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PartyArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PartyArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "MembershipRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MembershipRecordSeries", - "type": "object" - }, - "MemorandumOfAssociation": { - "additionalProperties": false, - "description": "Legal document setting up a company.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "MemorandumOfAssociation", - "type": "object" - }, - "MemoryInstitution": { - "additionalProperties": false, - "description": "Institution which has curatorial care over a collection and whose\nmission it is to preserve the collection for future generations.\n\n**PURPOSE**: Digital presence of memory institutions preserving\ncultural heritage for future generations.\n\n**CHARACTERISTICS**:\n- Preservation mission\n- Collection stewardship\n- Public access\n- Educational programs\n\n**EXAMPLES**: Archives, libraries, museums (digital presence)", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q1497649" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AUXILIARY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "MemoryInstitution", - "type": "object" - }, - "MessagingServicePresence": { - "additionalProperties": false, - "description": "Messaging/chat service presence.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "MessagingServicePresence", - "type": "object" - }, - "MetadataStandard": { - "additionalProperties": false, - "description": "A formal metadata standard used by heritage custodians for describing collections.\n\nExamples include Dublin Core, MARC21, EAD (Encoded Archival Description),\nLIDO, CIDOC-CRM, Schema.org, and domain-specific standards like SPECTRUM\nfor museum collections or ISAD(G) for archival description.\n\nMaps to dcterms:Standard - a reference point for comparing or evaluating.", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "MetadataStandard", - "type": "object" - }, - "MetalObjectStorageEnvironment": { - "additionalProperties": false, - "description": "Low-humidity storage for metal objects.\n\n**PURPOSE**: Provide low-humidity conditions to prevent corrosion\nand oxidation of metal artifacts.\n\n**RECOMMENDED CONDITIONS**:\n- Temperature: 15-25\u00b0C (flexible)\n- Relative humidity: < 35% (critical)\n- Light: Not critical for most metals\n- Air quality: Low pollutants, especially sulfur\n\n**SUITABLE MATERIALS**:\n- Archaeological metals\n- Coins and medals\n- Weapons and armor\n- Industrial machinery\n- Scientific instruments\n- Jewelry and metalwork\n\n**CRITICAL**: Low humidity essential for corrosion prevention.\nIron/steel especially vulnerable above 40% RH.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "METAL_OBJECTS", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard": { - "description": "Reference to applicable ISO or EN standard for this environmental zone type.\n\nFormat: Standard identifier (e.g., \"ISO 11799\", \"ISO 18911\", \"EN 16893\")\n\nCommon preservation standards:\n- ISO 11799: Document storage requirements\n- ISO 18911: Film storage practices\n- ISO 18934: Multiple media archives storage\n- EN 16893: Heritage collection storage buildings\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "max_annual_light_exposure": { - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "requires_dark_storage": { - "description": "Whether dark (zero light) storage is required for this environmental zone.\n\nBased on ISO preservation standards:\n- Film storage (ISO 18911): Dark storage mandatory\n- Photographic (ISO 18920): Dark storage for extended-term\n- UK Archives (BS 4971): 0 lux for closed storage\n\nDark storage essential for:\n- Film negatives (especially color and early nitrate/acetate)\n- Daguerreotypes and early photographic processes\n- Cyanotypes and blueprint materials\n- Some magnetic media (tape)\n- Highly fugitive inks and dyes\n\nAccess provided through reading rooms or digitization requests.\nCumulative light damage is completely prevented.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_dust_free": { - "description": "Whether a dust-free or dust-controlled environment is required for this zone.\n\nBased on ISO preservation standards:\n- Magnetic tape (ISO 18923): Dust-free mandatory\n- Optical media (ISO 18938): Cleanroom for masters\n- Archives (ISO 11799): Dust control required\n\nISO 14644-1 Cleanliness Classes:\n- Class 8: General archive/museum (HEPA filtered)\n- Class 7: AV media storage (positive pressure)\n- Class 5: Digital master storage (cleanroom)\n\nDust-free essential for:\n- Magnetic tapes and audiovisual media\n- Optical discs (CD, DVD, Blu-ray)\n- Fine art and paintings (surface abrasion)\n- Photographic materials (scratches, embedded particles)\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_esd_protection": { - "description": "Whether electrostatic discharge (ESD) protection is required for this zone.\n\nBased on ISO/IEC standards:\n- Magnetic tape (ISO 18923): ESD protection required\n- Optical media (ISO 18938): ESD-safe handling mandatory\n- Electronics (IEC 61340-5-1): ESD control program\n\nESD protection measures include:\n- Conductive/dissipative flooring\n- Humidity control (40-60% RH reduces static)\n- ESD-safe packaging and equipment\n- Personnel grounding (wrist straps)\n\nESD protection essential for:\n- Hard drives and SSDs\n- LTO and other magnetic tapes\n- Optical media (CD, DVD, Blu-ray masters)\n- Electronic components and circuit boards\n- Born-digital heritage collections\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_uv_filter": { - "description": "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \u00b5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label", - "has_or_had_description" - ], - "title": "MetalObjectStorageEnvironment", - "type": "object" - }, - "MetaversePresence": { - "additionalProperties": false, - "description": "Presence in metaverse or virtual world platform.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "MetaversePresence", - "type": "object" - }, - "MeteorologicalObservationSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Weather observation records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ClimateArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ClimateArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "MeteorologicalObservationSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MeteorologicalObservationSeries", - "type": "object" - }, - "Methodology": { - "additionalProperties": false, - "description": "Describes the methodology, technique, or algorithm used to derive a measurement.\n**PROV-O ALIGNMENT**:\nMaps to `prov:Plan` which represents \"a set of actions or steps intended by one or more agents to achieve some goals.\" In measurement contexts, this describes HOW a value was computed or derived.\n**WHY METHODOLOGY MATTERS**:\nTwo measurements of \"unique objects\" could use different methodologies:\n| Methodology | Description | Accuracy | |-------------|-------------|----------| | ENTITY_RESOLUTION | Deduplication via feature matching | High | | TRACKING | Object tracking across frames | Medium | | MANUAL_COUNT | Human counting | Variable | | SAMPLING | Statistical sampling | Estimated |\nWithout methodology, two measurements cannot be meaningfully compared.\n**HERITAGE USE CASES**:\n- **Video annotation**: How unique faces/objects were counted (entity resolution) - **Collection inventories**: How item counts were derived (physical vs. digital) - **Visitor statistics**: How attendance was measured (counters, tickets, samples) - **Digitization metrics**: How completeness was assessed\n**EXAMPLE**:\n```yaml has_or_had_methodology:\n methodology_type: ENTITY_RESOLUTION\n has_or_had_label: \"RetinaFace + ArcFace clustering\"\n has_or_had_description: >-\n Faces detected using RetinaFace model, then clustered\n using ArcFace embeddings with cosine similarity threshold 0.6\n to identify unique individuals.\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "description": "Human-readable name for the methodology or algorithm. MIGRATED: Now serves both methodology name AND algorithm_name (Rule 53/56).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_threshold": { - "description": "Threshold value(s) that apply or applied to something.\n\n**USE CASES**:\n- Confidence thresholds for NLP/ML processing\n- Quality thresholds for data validation\n- Acceptance thresholds for automated workflows\n\n**TEMPORAL SEMANTICS** (RiC-O Pattern):\nThe \"hasOrHad\" naming indicates thresholds may change over time\nas methodology evolves or requirements change.\n\n**Migration (2026-01-22)**:\n- `confidence_threshold` \u2192 `has_or_had_threshold` + `ConfidenceThreshold`\n- Per slot_fixes.yaml (Rule 53)\n", - "items": { - "$ref": "#/$defs/ConfidenceThreshold" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_version": { - "description": "Version number or identifier of an entity.\n\n**USAGE**:\nUsed for:\n- Software versions\n- Document versions\n- Schema versions\n", - "type": [ - "string", - "null" - ] - }, - "methodology_type": { - "$ref": "#/$defs/MethodologyTypeEnum", - "description": "Methodology Type for heritage custodian entities.\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "Methodology", - "type": "object" - }, - "MethodologyTypeEnum": { - "description": "Types of methodologies used to derive measurements or observations.\n**PRIMARY USE CASE**: Video annotation unique counts\nWhen counting unique objects or faces in video, different methodologies produce different results. This enum captures the approach used.", - "enum": [ - "ENTITY_RESOLUTION", - "OBJECT_TRACKING", - "MANUAL_COUNT", - "STATISTICAL_SAMPLING", - "AUTOMATED_DETECTION", - "HYBRID", - "UNKNOWN" - ], - "title": "MethodologyTypeEnum", - "type": "string" - }, - "MigrationTopic": { - "additionalProperties": false, - "description": "Topic related to migration and population movement.\n\nIncludes: emigration, immigration, diaspora, refugees,\ncolonial migration, labor migration.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/TopicType" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/TopicType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "MigrationTopic", - "type": "object" - }, - "MilitaryArchive": { - "additionalProperties": false, - "description": "Archive for documents regarding military topics. Military archives preserve records of armed forces, defense ministries, and military operations. Holdings typically include personnel records, operational documents, maps, photographs, and materials documenting military history. Access may be restricted for national security or privacy reasons, with materials often declassified after specified periods.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MilitaryArchive", - "type": "object" - }, - "MilitaryMapsCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for military maps and cartographic materials.\n\n**Definition**:\nCollections of maps, charts, and cartographic materials created or \ncollected for military purposes. Includes strategic maps, tactical \nmaps, fortification plans, and survey maps.\n\n**Typical Contents**:\n- Strategic and tactical maps\n- Battle plans and sketches (gevechtsschetsen)\n- Fortification plans (vestingplannen)\n- Survey maps (meetkundige kaarten)\n- Aerial photographs (luchtfoto's)\n- Navigation charts\n- Terrain models and relief maps\n- Troop disposition maps\n- Supply route maps\n- Enemy territory maps\n\n**Historical Map Types**:\n- Manuscript campaign maps\n- Printed military atlases\n- Situation maps (from war diaries)\n- Intelligence maps (enemy positions)\n- Engineering/construction plans\n\n**Special Formats**:\nMilitary map collections often include:\n- Oversize materials requiring special storage\n- Fragile manuscript maps\n- Annotated maps with operational markings\n- Series maps with grid systems\n\n**Research Value**:\nMilitary maps are valuable for:\n- Battle reconstruction\n- Historical geography\n- Cartographic history\n- Landscape archaeology\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the collection organizational principle as defined by rico-rst:Collection\n(assembled cartographic collections organized by geographic area, campaign, or type).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "preservation_note": { - "const": "Military maps often require special preservation due to oversize format, fragile materials, and unique operational annotations.", - "description": "Notes about preservation requirements or considerations.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the collection principle as defined by rico-rst:Collection. Assembled cartographic collections organized by geographic area, campaign, map type, or series.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "MilitaryMapsCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"operational orders (text)\", \"personnel records\", \"unit histories\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"strategic maps\", \"battle plans\", \"fortification plans\", \"survey maps\", \"aerial photos\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "MilitaryMapsCollection", - "type": "object" - }, - "MilitaryOperationsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for military operations and command records organized as fonds.\n\n**Definition**:\nRecords created by military commands, headquarters, and operational units\ndocumenting military campaigns, strategic planning, and combat operations.\nOrganized by provenance (creating command structure) following archival principles.\n\n**Typical Contents**:\n- Operational orders and directives (operatiebevelen)\n- Campaign records (veldtochtarchieven)\n- War diaries (oorlogsdagboeken)\n- After-action reports\n- Intelligence reports\n- Communications logs\n- Staff studies and plans\n- Logistics and supply records\n- Casualty reports (verlieslijsten)\n\n**Command Levels**:\nRecords may originate from different command levels:\n- Theater/army group level\n- Army/corps level\n- Division/brigade level\n- Regiment/battalion level\n\n**Historical Value**:\nMilitary operations records are primary sources for:\n- Military history and strategy studies\n- Battle reconstructions\n- Command decision analysis\n- Casualty research\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the fonds organizational principle as defined by rico-rst:Fonds\n(provenance-based organization by creating command).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the fonds principle as defined by rico-rst:Fonds. Provenance-based organization by creating command (theater, army, division, regiment, etc.).", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "MilitaryOperationsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"personnel records\", \"unit histories\", \"maps (as separate collection)\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"operational orders\", \"war diaries\", \"after-action reports\", \"intelligence\", \"casualty reports\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "MilitaryOperationsFonds", - "type": "object" - }, - "MilitaryPersonnelSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for military personnel records organized as series.\n\n**Definition**:\nRecords documenting the service of individual military personnel, \nincluding enlistment, service history, promotions, decorations, and \ndischarge. Typically organized as series by service branch and period.\n\n**Typical Contents**:\n- Service records (stamboeken, militaire staten van dienst)\n- Enlistment/conscription records (inschrijvingsregisters)\n- Muster rolls\n- Promotion records\n- Decoration citations (onderscheidingen)\n- Discharge papers\n- Pension records\n- Medical records (dienst medische dossiers)\n- Court martial records\n\n**Genealogical Value**:\nMilitary personnel records are crucial for:\n- Family history research\n- Veterans' benefits verification\n- Commemorative projects\n- Casualty identification\n\n**Privacy Considerations**:\nPersonnel records contain sensitive personal information. Access \nrestrictions typically apply for records less than 75-100 years old.\nGDPR/AVG considerations for recent records.\n\n**Dutch Context**:\nKey series include:\n- Stamboeken (service registers)\n- Militieregisters (militia/conscription registers)\n- Rang- en stamboeken marine (Navy service records)\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the series organizational principle as defined by rico-rst:Series\n(chronological has_arrangement by service branch, period, or alphabetically by name).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "privacy_note": { - "const": "Personnel records contain sensitive personal information. Access restrictions apply (typically 75-100 year closure). GDPR/AVG considerations for recent records.", - "description": "Notes about privacy restrictions or access limitations.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the series principle as defined by rico-rst:Series. Chronological has_arrangement by service branch, period, or alphabetically by servicemember name.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "MilitaryPersonnelSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"operational records\", \"unit histories\", \"veterans commemorations\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"service records\", \"enlistment\", \"promotions\", \"decorations\", \"discharge\", \"pensions\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "MilitaryPersonnelSeries", - "type": "object" - }, - "MimeticInpainting": { - "additionalProperties": false, - "description": "Inpainting that closely imitates surrounding original paint.\nAlso called deceptive or illusionistic retouching.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "MimeticInpainting", - "type": "object" - }, - "MinimalProcessingCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Minimally processed materials.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "LightArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by LightArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "MinimalProcessingCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MinimalProcessingCollection", - "type": "object" - }, - "MissionStatement": { - "additionalProperties": false, - "description": "A structured record of an organizational purpose statement (mission, vision,\ngoals, values, or motto) extracted from a heritage custodian's website with\nfull provenance documentation.\n\n**PURPOSE**:\n\nHeritage custodians publish mission and vision statements that articulate:\n- Why they exist (mission)\n- What future state they aspire to (vision)\n- What specific outcomes they pursue (goals)\n- What principles guide their work (values)\n- Memorable phrases encapsulating their purpose (mottos)\n\nThese statements are valuable for:\n- Understanding organizational identity and purpose\n- Comparing institutions within and across sectors\n- Tracking organizational evolution over time\n- Research on heritage sector discourse and priorities\n\n**PROVENANCE REQUIREMENTS**:\n\nFollowing the WebObservation pattern, every MissionStatement MUST have:\n\n1. **Source documentation**: source_url + retrieved_on\n2. **Location evidence**: xpath OR css_selector + html_file\n3. **Integrity verification**: content_hash (SHA-256)\n4. **Archive link**: has_archive_memento_uri (recommended)\n\nStatements without verifiable provenance are rejected.\n\n**ONTOLOGY ALIGNMENT**:\n\nW3C Organization Ontology `org:purpose`:\n- \"Indicates the purpose of this Organization\"\n- \"There can be many purposes at different levels of abstraction\"\n- \"It is recommended that the purpose be denoted by a controlled term\"\n\nWe extend this by:\n- Distinguishing statement types (mission, vision, goal, value, motto)\n- Adding temporal tracking (effective_date, supersedes)\n- Full provenance chain (source_url, xpath, content_hash, archive)\n\n**MULTILINGUAL SUPPORT**:\n\nHeritage custodians publish statements in their native language.\nFor Dutch institutions, statements are typically in Dutch.\nThe statement_language field captures the ISO 639-1 code,\nand statement_summary can provide English translation.\n\n**TEMPORAL TRACKING**:\n\nOrganizations revise their mission statements over time.\nThe `supersedes` field links to previous statements,\nenabling tracking of how organizational purpose evolves.\n\n**EXAMPLES**:\n\n1. **Dutch Agricultural Museum Mission**\n - statement_type: mission\n - has_or_had_text: \"Waar komt ons voedsel \u00e9cht vandaan.\"\n - statement_language: nl\n - source_url: https://www.landbouwmuseumtiengemeten.nl/het-museum/missie-en-visie\n \n2. **Rijksmuseum Vision**\n - statement_type: vision\n - has_or_had_text: \"Het Rijksmuseum verbindt mensen met kunst en geschiedenis.\"\n - statement_language: nl\n - statement_summary: \"The Rijksmuseum connects people with art and history.\"", - "properties": { - "content_hash": { - "description": "SHA-256 hash of content for integrity verification.\n\n**PURPOSE**:\nEnables verification that content has not changed since observation.\nUsed for deduplication and change detection.\n\n**FORMAT OPTIONS**:\n- SRI format: sha256-{base64_hash} (for web content)\n- Hex format: {64_hex_chars} (for file content)\n\n**USAGE**:\n- WebObservation: Hash of retrieved HTML/content\n- MissionStatement: Hash of statement text\n- Any content requiring integrity verification\n", - "type": [ - "string", - "null" - ] - }, - "css_selector": { - "description": "CSS selector pointing to the element in HTML. Alternative to xpath for element identification.", - "type": [ - "string", - "null" - ] - }, - "describes_or_described": { - "description": "Describes an entity or process.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_language": { - "description": "Language information for an entity.\n\n**Use Cases**:\n1. **Language Proficiency**: When tracking language skills (e.g., person profiles)\n - Use LanguageProficiency class with language_name, code, and level\n2. **Language-Tagged Text**: When storing multilingual text content\n - Use Language class with iso_639_1, language_name, and text_content\n3. **Content Language**: Language of the resource content (migrated from content_language)\n - Use Language class\n\n**Migration Support**:\nThis slot replaces language-specific text slots (fr, de, en, nl) and content_language\nwith a unified pattern per slot_fixes.yaml revisions:\n- `content_language` \u2192 has_or_had_language with Language\n- `fr` (French text) \u2192 has_or_had_language with Language(iso_639_1=\"fr\")\n- `de` (German text) \u2192 has_or_had_language with Language(iso_639_1=\"de\")\n- `en` (English text) \u2192 has_or_had_language with Language(iso_639_1=\"en\")\n- `nl` (Dutch text) \u2192 has_or_had_language with Language(iso_639_1=\"nl\")\n\n**Example - Language-Tagged Text**:\n```yaml\nhas_or_had_language:\n - iso_639_1: \"fr\"\n language_name: \"French\"\n text_content: \"archives universitaires\"\n - iso_639_1: \"en\"\n language_name: \"English\"\n text_content: \"university archives\"\n```\n\n**Example - Language Proficiency**:\n```yaml\nhas_or_had_language:\n - language_name: \"French\"\n language_code: \"fr\"\n proficiency_level: \"fluent\"\n```\n", - "items": { - "anyOf": [ - { - "$ref": "#/$defs/LanguageProficiency" - }, - { - "$ref": "#/$defs/Language" - } - ] - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_provenance_path": { - "items": { - "$ref": "#/$defs/XPath" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_summary": { - "items": { - "$ref": "#/$defs/Summary" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_text": { - "items": { - "$ref": "#/$defs/Text" - }, - "type": "array" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_effective_at": { - "description": "The date or timestamp when a policy, status, or entity became effective.\nMIGRATED from `effective_date`, `status_effective_date`, `policy_effective_date` per Rule 53. Follows RiC-O temporal naming convention." - }, - "page_section": { - "description": "Section or heading on the web page where statement was found.\nExamples: \"Onze Missie\", \"Vision Statement\", \"About Us\"\n", - "type": [ - "string", - "null" - ] - }, - "retrieved_on": { - "description": "Timestamp when the web page was retrieved/archived.\n\npav:retrievedOn - \"The date this resource was retrieved from the source\"\n\nISO 8601 format with timezone (UTC preferred).\n\nExamples:\n- \"2025-11-29T12:28:00Z\" (UTC)\n- \"2025-11-29T10:30:00+01:00\" (with timezone offset)\n", - "format": "date-time", - "type": "string" - }, - "source_url": { - "description": "URL of the web page this data was retrieved from.\n\npav:retrievedFrom - \"The URI from which the resource was retrieved.\"\n\nThis is a key provenance field that enables verification of extracted data\nby linking back to the original source web page.\n\nExamples:\n- https://historischeverenigingnijeveen.nl/ (institution homepage)\n- https://ec.europa.eu/info/funding-tenders/... (EU funding portal)\n- https://www.heritagefund.org.uk/funding/... (UK heritage fund)\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "supersedes_or_superseded": { - "description": "Entity that this one supersedes, or that supersedes this one.\nUse when a new version corrects or updates a previous one. Direction is determined by context - the slot represents the relationship in either direction.\nPROV-O: wasRevisionOf for updated versions.\nMigrated from bespoke `supersede` slot per Rule 53/56 (2026-01-17). Original slot_uri (hc:supersedes) preserved in exact_mappings.", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "retrieved_on", - "source_url", - "has_or_had_text", - "has_or_had_type" - ], - "title": "MissionStatement", - "type": "object" - }, - "MixedBioInstitutionClassification": { - "additionalProperties": false, - "description": "Institution with significant collections across multiple biological domains.\nCombines botanical, zoological, and/or aquatic collections.\n\n**Examples**:\n- Zoo + botanical garden combinations\n- Nature centers with diverse living collections\n- Integrated biosphere facilities", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MixedBioInstitutionClassification", - "type": "object" - }, - "MixedCMS": { - "additionalProperties": false, - "description": "Multi-domain systems that serve museums, archives, and/or libraries.\n\n**TYPICAL FEATURES**:\n- Flexible data models\n- Multiple metadata standards\n- Cross-domain searching\n- Configurable workflows\n\n**EXAMPLES**:\n- Omeka S (museums, archives, libraries)\n- CollectiveAccess (museums, archives)\n- ArchivesSpace + plugins\n- ResourceSpace with customization", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/CMSType" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "MixedCMS", - "type": "object" - }, - "MixedContent": { - "additionalProperties": false, - "description": "Combination of multiple content types.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "MIXED", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Mixed Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "MixedContent", - "type": "object" - }, - "MixedCustodianType": { - "additionalProperties": false, - "description": "Specialized custodian type for institutions that SIMULTANEOUSLY operate as\nmultiple heritage institution types within a single organizational entity.\n\n**CRITICAL DISTINCTION - Mixed vs. Single-Type Institutions**:\n\nMixedCustodianType applies when an institution:\n- SIMULTANEOUSLY performs functions of MULTIPLE types (not just one primary type)\n- Has INTEGRATED operations across types (not separate departments)\n- Uses combined organizational identity (not separate brands/facilities)\n\n**Design Pattern - Multivalued custodian_type Field**:\n\nInstead of creating a separate MixedCustodianType class, the GLAMORCUBESFIXPHDNT\ntaxonomy uses a MULTIVALUED custodian_type field to represent mixed institutions:\n\n```yaml\n# PREFERRED APPROACH - Multivalued custodian_type\ncustodian_type:\n - MuseumType\n - ArchiveOrganizationType\n - LibraryType\n\n# GHCID uses X code when multiple types:\nghcid: NL-NH-AMS-X-STADSARCHIEF # X = multiple types\n```\n\n**When to Use Mixed Type (X code)**:\n\nUse ONLY when institution genuinely operates as multiple types:\n- \u2705 Combined museum/archive facility (Stadt Archiv + Museum)\n- \u2705 Library with significant museum collections (Library + Museum)\n- \u2705 Archive with public exhibition galleries (Archive + Gallery)\n- \u2705 Heritage center combining research/education/exhibition (Research + Education + Museum)\n\n**When NOT to Use Mixed Type**:\n- \u274c Museum with small reference library \u2192 Use MuseumType (library is ancillary)\n- \u274c Archive that occasionally exhibits \u2192 Use ArchiveOrganizationType (exhibition is secondary)\n- \u274c University with museum + library in separate buildings \u2192 Two separate institutions\n- \u274c Institution changing type over time \u2192 Use single type per time period\n\n1. **Structural Layer** (W3C Standards):\n - skos:Concept - Thesaurus classification\n - Multivalued classification within CustodianType hierarchy\n\n2. **Domain Layer** (Heritage Ontologies):\n - crm:E74_Group - CIDOC-CRM social group\n - foaf:Organization - Organizational entity\n - Multiple schema.org types simultaneously\n\n3. **Web Layer** (Schema.org)**:\n - schema:Organization - Organizational entity\n - schema:Museum + schema:Library + schema:ArchiveOrganization (multiple assertions)\n\n**Wikidata Coverage** (40+ mixed-type heritage entities):\n\nMuseum + Archive Combinations:\n- Q105558717 (museum with archival collections) - Combined facilities\n- Q7241077 (archive with museum galleries) - Exhibition spaces in archives\n- Q215380 (historical society museum-archive) - Collecting societies\n- Q5283639 (city archive-museum) - Municipal combined facilities\n\nLibrary + Museum Combinations:\n- Q163740 (library with museum collections) - Special collections as exhibitions\n- Q5879427 (presidential library-museum) - US presidential libraries\n- Q105558717 (monastery library-treasury) - Religious combined collections\n\nArchive + Library Combinations:\n- Q7241077 (library and archive) - Combined manuscript/book collections\n- Q215380 (national library-archive) - Some national institutions\n- Q5283639 (university special collections) - Rare books + manuscripts\n\nMulti-Function Heritage Centers:\n- Q105558717 (heritage interpretation center) - Education + Exhibition + Archive\n- Q163740 (cultural heritage center) - Museum + Library + Research\n- Q7241077 (regional heritage facility) - Archive + Museum + Education\n- Q5879427 (historic site visitor center) - Education + Exhibition + Research\n\nResearch + Education + Museum:\n- Q105558717 (research museum) - Collections + Research + Teaching\n- Q215380 (natural history collection) - Museum + Research + Education\n- Q5283639 (botanical garden-herbarium) - Living collections + Dried specimens + Research\n\n**Key Distinctions from Other Types**:\n\nvs. Museum (with small library):\n- MixedType: EQUAL WEIGHT to museum AND library functions\n- Museum: Library is ANCILLARY support collection\n- Example: Stadsarchief Amsterdam (archive + museum) vs. Rijksmuseum (museum with reference library)\n\nvs. Archive (with exhibition gallery):\n- MixedType: SIGNIFICANT, ONGOING exhibition program (not just occasional displays)\n- Archive: Exhibition is OCCASIONAL, SUPPLEMENTARY to archival mission\n- Example: Presidential library-museum vs. City archive with reading room display cases\n\nvs. Multiple Separate Institutions:\n- MixedType: SINGLE integrated organizational entity\n- Separate: DISTINCT institutions with separate governance/budgets\n- Example: Combined city archive-museum vs. City museum + city archive in different buildings\n\nvs. Institution Changing Over Time:\n- MixedType: SIMULTANEOUS operation as multiple types\n- Temporal Change: ONE type per time period (use ChangeEvent to track)\n- Example: Ongoing museum-library vs. Museum that became archive in 1985\n\n**RDF Serialization Example**:\n\n```turtle\n@prefix hc: <https://nde.nl/ontology/hc/> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix schema: <http://schema.org/> .\n@prefix crm: <http://www.cidoc-crm.org/cidoc-crm/> .\n\nhc:MixedCustodianType\n a skos:Concept, hc:CustodianType ;\n skos:prefLabel \"Mixed Custodian Type\"@en,\n \"Gemengd Custodian Type\"@nl,\n \"Gemischter Custodian Typ\"@de,\n \"Type de Conservateur Mixte\"@fr ;\n skos:definition \"Institutions operating as multiple heritage types simultaneously\"@en ;\n skos:broader hc:CustodianType ;\n schema:url <https://nde.nl/ontology/hc/class/mixed-custodian-type> .\n\n# Example: Stadsarchief Amsterdam (city archive with significant museum galleries)\n<https://w3id.org/heritage/custodian/nl/stadsarchief-amsterdam>\n a schema:ArchiveOrganization, schema:Museum, crm:E74_Group, hc:MixedCustodianInstitution ;\n hc:custodian_type hc:ArchiveOrganizationType, hc:MuseumType ; # Multivalued\n hc:constituent_types \"Archive (primary)\", \"Museum (significant exhibition program)\" ;\n hc:functional_integration \"Combined archival storage + museum galleries\", \"Unified visitor services\", \"Integrated programming\" ;\n hc:mixed_governance_structure \"Single director\", \"Unified budget\", \"Cross-functional departments (archival + curatorial)\" ;\n hc:service_portfolio \"Archival research services\", \"Public exhibitions\", \"Educational programs\", \"Digitization lab\" ;\n hc:facility_design \"Purpose-built facility (2007)\", \"Climate-controlled archival vaults\", \"Exhibition galleries\", \"Reading rooms\", \"Conservation lab\" ;\n hc:user_communities \"Researchers and genealogists (archive)\", \"General public and tourists (museum)\", \"School groups (education)\" ;\n schema:name \"Stadsarchief Amsterdam\" ;\n schema:alternateName \"Amsterdam City Archives\" ;\n schema:foundingDate \"1914\" ;\n schema:location \"Vijzelstraat 32, Amsterdam\" ;\n schema:description \"Combined city archive and museum, preserving 50+ km of historical records (1275-present) while operating public exhibition galleries showcasing Amsterdam's history\" ;\n schema:url <https://www.amsterdam.nl/stadsarchief/> .\n```", - "properties": { - "constituent_type": { - "description": "Which specific heritage types the institution combines.\n\nLists component institutional functions:\n- **Primary types**: Core institutional functions (e.g., Archive, Museum)\n- **Secondary types**: Significant additional functions (e.g., Library, Gallery)\n- **Relative weighting**: Which type is dominant vs. equal partnership\n- **Historical development**: Did institution start mixed or become mixed?\n\nConstituent types should reflect ACTUAL operational reality, not aspirational mission.\n\nExamples:\n- \"Archive (primary), Museum (significant exhibition program)\"\n- \"Museum (primary), Library (substantial research collections)\"\n- \"Library (primary), Archive (manuscript collections), Gallery (rotating exhibitions)\"\n- \"Museum + Research Center (equal partnership)\"\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "defines_or_defined": { - "description": "Defines or defined a structure, policy, or role.", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^(https://nde\\.nl/ontology/hc/type/[a-z-]+/[QP][0-9]+|Q[0-9]+)$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_service": { - "description": "A service offered by an entity.\n\n**USAGE**:\nUsed for:\n- Visitor services (guided tours, audio guides)\n- Research services\n- Conservation services\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "integrates_or_integrated": { - "description": "Indicates that an entity integrates or integrated another entity (e.g., a function, system). MIGRATED from functional_integration per Rule 53. Follows RiC-O naming convention.", - "items": { - "$ref": "#/$defs/InstitutionalFunction" - }, - "type": "array" - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "serves_or_served": { - "description": "The user community or audience served by an entity.\n\n**USAGE**:\nUsed for:\n- Target user communities\n- Audience types\n- Stakeholder groups\n", - "items": { - "$ref": "#/$defs/UserCommunity" - }, - "type": "array" - }, - "service_portfolio": { - "description": "What services the institution offers across its multiple functions.\n\nEnumerates user-facing services:\n- **Archival services**: Research consultations, document access, reproductions\n- **Museum services**: Exhibitions, guided tours, object loans\n- **Library services**: Reference assistance, borrowing, interlibrary loan\n- **Educational services**: School programs, workshops, lectures\n- **Research services**: Fellowships, research access, scholarly support\n- **Digital services**: Online collections, virtual exhibitions, digital research tools\n- **Public programs**: Events, community engagement, outreach\n- **Conservation services**: Treatment, consultation, preservation training\n\nService portfolio demonstrates whether institution truly operates as mixed type.\n\nExamples:\n- \"Archival research, Public exhibitions, Educational programs, Digitization lab\"\n- \"Museum exhibitions, Library reference, Research fellowships, Conservation lab\"\n- \"Document access, Gallery tours, Lecture series, Online database\"\n- \"Reading room, Exhibition galleries, Education center, Digital portal\"\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "constituent_type", - "integrates_or_integrated", - "defines_or_defined", - "service_portfolio", - "serves_or_served", - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "MixedCustodianType", - "type": "object" - }, - "MobileApp": { - "additionalProperties": false, - "description": "Native or hybrid mobile application for iOS/Android. May be guide app,\ncollection browser, or interactive experience.\n\n**PURPOSE**: Provide heritage services through dedicated mobile\napplications for smartphones and tablets.\n\n**CHARACTERISTICS**:\n- Platform-specific (iOS/Android)\n- Offline capabilities\n- Location services\n- Push notifications\n\n**EXAMPLES**: Museum guide apps, collection browser apps, AR apps", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AUXILIARY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "MobileApp", - "type": "object" - }, - "MobileAppPresence": { - "additionalProperties": false, - "description": "Native or hybrid mobile application.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "MobileAppPresence", - "type": "object" - }, - "Model": { - "additionalProperties": false, - "description": "Represents a product model or design variant.\n\n**MIGRATION SOURCE**: Created from device_model slot migration (Rule 53, 2026-01-25).\n\n**Pattern**: Simple string model name replaced with structured class:\n- has_or_had_label: Model name/designation\n- has_or_had_identifier: Model number or SKU\n\n**Ontological Alignment**:\n- **Primary**: `schema:ProductModel` - Schema.org product model\n\n**Use Cases**:\n- IoT device models (Estimote Proximity Beacon, Sensirion SHT45)\n- Equipment model variants\n- Hardware versions\n\n**Relationship to InternetOfThings**:\n```\nInternetOfThings\n \u2514\u2500\u2500 has_or_had_model \u2192 Model\n \u251c\u2500\u2500 has_or_had_label \u2192 \"Estimote Proximity Beacon\"\n \u2514\u2500\u2500 has_or_had_identifier \u2192 \"EPB-v3.0\"\n```", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "Model", - "type": "object" - }, - "MonasteryArchive": { - "additionalProperties": false, - "description": "Archive of a monastery. Monastery archives preserve records created by monastic communities over centuries, including administrative documents, charters, liturgical records, manuscripts, and documentation of daily monastic life. These archives are invaluable for medieval and early modern history, often containing some of the oldest surviving written records in a region.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MonasteryArchive", - "type": "object" - }, - "MonasteryArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by MonasteryArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MonasteryArchiveRecordSetType", - "type": "object" - }, - "MonasticHeritagePortal": { - "additionalProperties": false, - "description": "Portal aggregating medieval monastic documents, charters, and records. **PURPOSE**: Provide access to medieval diplomatic sources, monastic archives, and religious heritage documentation for scholarly research. **CHARACTERISTICS**: - Medieval charters and diplomatic sources - Monastic and ecclesiastical archives - Transcriptions and digital editions - Diplomatic encoding and analysis - Provenance and institutional history **EXAMPLES**: - Monasterium.net (ICARUS network) - Diplomatica Belgica - Regesta Imperii - Chartae Burgendiae Medii Aevi", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "THEMATIC", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "monastic_heritage", - "medieval_studies", - "diplomatics", - "archives" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "MonasticHeritagePortal", - "type": "object" - }, - "MonasticManuscriptCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Medieval manuscripts and codices.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "MonasteryArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by MonasteryArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "MonasticManuscriptCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MonasticManuscriptCollection", - "type": "object" - }, - "MonasticRecordsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Monastery administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "MonasteryArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by MonasteryArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "MonasticRecordsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MonasticRecordsFonds", - "type": "object" - }, - "Monument": { - "additionalProperties": false, - "description": "Monument types (Memorial, Statue, Sculpture)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Monument", - "type": "object" - }, - "MultiLineString": { - "additionalProperties": false, - "description": "A collection of line strings.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "MultiLineString", - "type": "object" - }, - "MultiPoint": { - "additionalProperties": false, - "description": "A collection of points.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "MultiPoint", - "type": "object" - }, - "MultiPolygon": { - "additionalProperties": false, - "description": "A collection of polygons.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "MultiPolygon", - "type": "object" - }, - "MultimediaContent": { - "additionalProperties": false, - "description": "Interactive multimedia combining multiple formats.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "MULTIMEDIA", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Multimedia Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "MultimediaContent", - "type": "object" - }, - "MunicipalAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for municipal administrative department records organized as fonds.\n\n**Definition**:\nRecords created by municipal administrative departments and services in the \nexecution of public services and local government functions. Organized by \ncreating department according to archival principles.\n\n**Typical Contents**:\n- Public works department records (openbare werken)\n- Finance and taxation records (financien, belastingen)\n- Social services records (sociale zaken)\n- Housing and planning records (volkshuisvesting)\n- Education department records (onderwijs)\n- Public health records (volksgezondheid)\n- Personnel records (personeelszaken)\n- Legal affairs records (juridische zaken)\n\n**Privacy Considerations**:\nPersonnel records and social services records contain sensitive personal \ninformation subject to privacy regulations (AVG/GDPR). Access restrictions \ntypically apply for records less than 75 years old.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the fonds organizational principle as defined by rico-rst:Fonds\n(provenance-based organization with each department forming its own fonds or sub-fonds).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "privacy_note": { - "const": "Personnel and social services records subject to AVG/GDPR. Access restrictions typically apply for records less than 75 years old.", - "description": "Notes about privacy restrictions or access limitations.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the fonds principle. Each department typically forms its own fonds or sub-fonds.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "MunicipalAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"council minutes\", \"civil registry\", \"building permits\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"public works records\", \"finance records\", \"social services records\", \"personnel records\", \"department records\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "MunicipalAdministrationFonds", - "type": "object" - }, - "MunicipalArchive": { - "additionalProperties": false, - "description": "Accumulation of historical records of a town or city. Municipal\narchives (Stadtarchive, Gemeindearchive) preserve records of municipal\ngovernment and administration, documenting local governance, public\nservices, civic life, and community history.\n\n**Holdings** (linked via rico:isOrWasHolderOf):\nMunicipal archives typically hold records classified under these RecordSetTypes:\n- CouncilGovernanceFonds - Council minutes, ordinances, resolutions\n- CivilRegistrySeries - Births, marriages, deaths, population registers\n- MunicipalAdministrationFonds - Departments, services, personnel\n- UrbanPlanningCollection - Maps, building permits, zoning records\n- LocalHistoryCollection - Photographs, ephemera, community documentation", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MunicipalArchive", - "type": "object" - }, - "MunicipalityClaim": { - "additionalProperties": false, - "description": "Municipality/gemeente name.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "MunicipalityClaim", - "type": "object" - }, - "MuseumAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Museum administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "MuseumArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by MuseumArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "MuseumAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MuseumAdministrationFonds", - "type": "object" - }, - "MuseumArchive": { - "additionalProperties": false, - "description": "Archive established by a museum to collect, organize, preserve, and provide access to its organizational records. Museum archives document the history and operations of the museum itself, including exhibition files, acquisition records, correspondence, photographs, and administrative documentation. They serve institutional memory and provenance research.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MuseumArchive", - "type": "object" - }, - "MuseumArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by MuseumArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MuseumArchiveRecordSetType", - "type": "object" - }, - "MuseumCMS": { - "additionalProperties": false, - "description": "Collection management systems designed for museum collections.\n\n**TYPICAL FEATURES**:\n- Object cataloging and registration\n- Provenance tracking\n- Exhibition management\n- Loan management\n- Conservation records\n- SPECTRUM workflow support\n\n**EXAMPLES**:\n- MuseumPlus (Zetcom)\n- TMS - The Museum System (Gallery Systems)\n- CollectiveAccess\n- Adlib (Axiell)\n- EMu (Axiell)\n- PastPerfect", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/CMSType" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "MuseumCMS", - "type": "object" - }, - "MuseumCollectionPortal": { - "additionalProperties": false, - "description": "Portal aggregating museum object metadata from multiple institutions. **PURPOSE**: Provide unified discovery of museum collections, enable research across institutional boundaries, and support public engagement with heritage. **CHARACTERISTICS**: - Aggregates object-level metadata (artworks, artifacts, specimens) - Rich visual content (images, 3D models) - Thematic and collection-based organization - Provenance and exhibition history **METADATA STANDARDS**: - LIDO (Lightweight Information Describing Objects) - CIDOC-CRM (Conceptual Reference Model) - Schema.org - Spectrum **EXAMPLES**: - Collectie Nederland (Netherlands) - Europeana Collections (Europe) - Google Arts & Culture (Global) - Smithsonian Open Access (US)", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "$ref": "#/$defs/MetadataStandard" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "DOMAIN_SPECIFIC", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "museums" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "MuseumCollectionPortal", - "type": "object" - }, - "MuseumDomain": { - "additionalProperties": false, - "description": "Museum and collections domain", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "MuseumDomain", - "type": "object" - }, - "MuseumSearchTemplate": { - "additionalProperties": false, - "description": "Template type for museum and gallery queries.\n\n**Relevant Queries**:\n- Art museums and galleries\n- Natural history museums\n- Science museums\n- Exhibitions and object metadata", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "MuseumSearchTemplate", - "type": "object" - }, - "MuseumType": { - "additionalProperties": false, - "description": "Specialized custodian type for museums - institutions that collect, preserve,\nresearch, and exhibit objects of artistic, cultural, historical, or scientific\nsignificance for public education and enjoyment.\n\n**Wikidata Base Concept**: Q33506 (museum)\n\n**Scope**:\nMuseums are distinguished by their focus on:\n- Object-based collections (artifacts, specimens, artworks)\n- Public exhibitions and interpretation\n- Educational programming\n- Conservation and research\n- Tangible cultural/natural heritage\n\n**Key Museum Subtypes** (187+ extracted from Wikidata):\n\n**By Subject Matter**:\n- Art museums (Q207694) - Fine arts and visual arts\n- History museums (Q588140) - Historical artifacts and narratives\n- Science museums (Q588140) - Scientific phenomena and technology\n- Natural history museums (Q559049) - Biological and geological specimens\n- Anthropology museums (Q57566) - Cultural and ethnic heritage\n- Military museums (Q1520008) - Armed forces and warfare history\n\n**Art Museum Specializations**:\n- Modern art museums (Q108860593) - 20th century art\n- Contemporary art museums (Q108860927) - Current/recent art\n- Folk art museums (Q108861021) - Traditional/vernacular art\n- University art museums (Q111889841) - Academic art collections\n- Single-artist museums (Q107524840) - Dedicated to one artist\n- Private art museums (Q107537774) - Privately owned collections\n\n**Subject-Specific Museums**:\n- Writers' museums (Q10501308) - Literary heritage\n- Comics museums (Q11341528) - Sequential art and graphic novels\n- Chess museums (Q106686551) - Chess history and artifacts\n- Picture book museums (Q11606865) - Children's illustrated books\n- Fortification museums (Q1014837) - Military architecture\n- Hospital museums (Q114650550) - Medical heritage\n\n**Specialized Formats**:\n- Open-air museums (Q588140) - Outdoor historical environments\n- Ecomuseums (Q861259) - Community-based heritage sites\n- Virtual museums (Q3565794) - Digital-only collections\n- Selfie museums (Q104127212) - Instagram-friendly installations\n- Typhlological museums (Q107313856) - Museums for the blind\n\n**By Administrative Level**:\n- National museums (Q2668072) - State-level institutions\n- Regional museums (Q1048268) - Provincial/state museums\n- County museums (Q10571947) - Local government museums (Sweden)\n- University museums (Q3152824) - Academic institution museums\n\n**By Location Type**:\n- Heritage farms (Q111079628) - Historic agricultural sites\n- National military parks (Q100154387) - US military heritage sites\n- National battlefield parks (Q100222740) - US battle sites\n- Forest experience centers (Q106775899) - German forest museums\n\n**Geographic/Cultural Focus**:\n- Local heritage institutions (Q10520688) - Swedish hembygdsg\u00e5rd\n- National centers for contemporary art (Q109017987) - National art centers\n- Buried cultural property centers (Q11425913) - Archaeology museums (Japan)\n\n**RDF Serialization Example**:\n```turtle\n:Custodian_Rijksmuseum\n org:classification :MuseumType_ArtMuseum_Q207694 .\n\n:MuseumType_ArtMuseum_Q207694\n a glamtype:MuseumType, crm:E55_Type, skos:Concept ;\n skos:prefLabel \"Art Museum\"@en, \"kunstmuseum\"@nl ;\n skos:broader :MuseumType_Museum_Q33506 ;\n skos:narrower :MuseumType_ModernArtMuseum_Q108860593 ;\n schema:additionalType <http://www.wikidata.org/entity/Q207694> ;\n glamtype:glamorcubesfixphdnt_code \"MUSEUM\" ;\n glamtype:has_or_had_category [ hc:category_name \"paintings\" ; hc:category_type \"TYPOLOGY\" ] ;\n glamtype:exhibition_program \"rotating exhibitions with permanent collection\" ;\n glamtype:cataloging_standard \"LIDO\" .\n```\n\n**Domain-Specific Properties**:\nThis class adds museum-specific metadata beyond base CustodianType:\n- `has_or_had_category` - Subject areas of collections (art, history, science, etc.) using Category class\n- `exhibition_program` - Exhibition strategy (permanent, rotating, temporary)\n- `visitor_facilities` - Public amenities (cafe, shop, education center, etc.)\n- `cataloging_standard` - Standards used (LIDO, SPECTRUM, CIDOC-CRM, etc.)\n- `conservation_lab` - Whether museum has conservation facilities\n- `research_department` - Whether museum conducts scholarly research\n\n**Integration with CIDOC-CRM**:\nMuseum organizations should reference CIDOC-CRM for detailed object cataloging:\n- crm:E78_Curated_Holding - Museum collections\n- crm:E18_Physical_Thing - Museum objects\n- crm:E7_Activity - Exhibitions and educational activities\n- crm:E39_Actor - Museum as organizational actor\n\n**Integration with LIDO**:\nLIDO (Lightweight Information Describing Objects) is the standard for museum\nobject interchange:\n- lido:legalBodyType - Museum organization type\n- lido:objectClassificationWrap - Object categorization\n- lido:administrativeMetadata - Collection management\n\n**Data Population**:\nMuseum subtypes extracted from 187 Wikidata entities with type='M'\nin `data/wikidata/GLAMORCUBEPSXHFN/hyponyms_curated_full.yaml`.", - "properties": { - "complies_or_complied_with": { - "description": "Standard, specification, or guideline that this entity conforms to.\nUses RiC-O temporal naming convention to indicate conformance may be \ncurrent (complies) or historical (complied).\n\nCREATED 2026-01-17 per Rule 53/56: Generic slot for standards conformance.\n", - "items": { - "$ref": "#/$defs/CatalogingStandard" - }, - "type": [ - "array", - "null" - ] - }, - "conservation_lab": { - "description": "Whether the museum has an in-house conservation laboratory for object preservation.\nTrue = has conservation facilities, False = outsources conservation.\n", - "type": [ - "boolean", - "null" - ] - }, - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_category": { - "description": "Links an entity to its category or classification.\nCategories represent hierarchical or faceted classifications: - Subject categories (art, science, history) - Thematic categories (Dutch Golden Age, WWII, Islamic art) - Material categories (paintings, manuscripts, specimens) - Geographic categories (European, Asian, African) - Temporal categories (Medieval, Renaissance, Contemporary)\nThe Category class enables structured categorization with: - Category name and description - Category type (subject, theme, material, geographic, temporal) - Hierarchical relationships (broader/narrower terms) - Provenance tracking", - "items": { - "$ref": "#/$defs/Category" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_facility": { - "description": "A facility or amenity associated with an entity.\n\n**USAGE**:\nUsed for:\n- Visitor facilities (caf\u00e9, shop, parking)\n- Research facilities (reading room, lab)\n- Accessibility facilities (wheelchair access)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "museum_subtype": { - "description": "Specific museum subtype from the MuseumTypeEnum taxonomy (187 types).\nEach value links to a Wikidata entity describing a specific type of museum.\nExamples: ART_MUSEUM, NATURAL_HISTORY_MUSEUM, SCIENCE_MUSEUM, OPEN_AIR_MUSEUM, etc.\n", - "items": { - "$ref": "#/$defs/MuseumTypeEnum" - }, - "type": [ - "array", - "null" - ] - }, - "research_department": { - "description": "Whether the museum has a dedicated research department conducting scholarly research.\nTrue = active research program, False = primarily exhibition-focused.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MuseumType", - "type": "object" - }, - "MuseumTypeEnum": { - "description": "", - "enum": [ - "ALGEMEEN_NUT_BEOGENDE_INSTELLING", - "ALTERNATIVE_EXHIBITION_SPACE", - "AMSTERDAM_MUSEUM_BUSES", - "APICULTURE_MUSEUM", - "ARCHAEOLOGICAL_MUSEUM", - "ARCHAEOLOGICAL_MUSEUM_IN_FRANCE", - "ARCHAEOLOGICAL_OPEN_AIR_MUSEUM", - "ARCHAEOLOGICAL_PARK", - "ARCHITECTURAL_MUSEUM", - "ART_COLLECTION", - "ART_MUSEUM", - "ARTIST_MUSEUM", - "ARTIST_RUN_SPACE", - "ARTS_VENUE", - "AUTOMOBILE_MUSEUM", - "AUTOMOTIVE_MUSEUM", - "BIOLOGICAL_MUSEUM", - "BIRD_COLLECTIONS", - "BOTANICAL_COLLECTION", - "BOTANICAL_MUSEUM", - "BRANCH", - "BRANCH_1", - "BRANCH_OFFICE", - "BURIED_CULTURAL_PROPERTY_CENTER", - "CALLIGRAPHY_MUSEUM", - "CARRIAGE_MUSEUM", - "CEMETERY_MUSEUM", - "CENTRUM_BEELDENDE_KUNST", - "CERAMICS_MUSEUM", - "CHESS_MUSEUM", - "CHURCH_MUSEUM", - "CIRCUS_MUSEUM", - "CLOSED_SPACE", - "COMICS_MUSEUM", - "COMMERCIAL_ART_GALLERY", - "CONTEMPORARY_ART_MUSEUM", - "CONTEMPORARY_ARTS_CENTRE", - "COUNTY_MUSEUM", - "CULTURAL_INSTITUTION", - "DALI_MUSEUMS", - "DANCE_MUSEUM", - "DEFUNCT_MUSEUM", - "DELFT_MUNICIPAL_MUSEUMS", - "DENTAL_MUSEUM", - "DEPARTMENT", - "DESIGN_MUSEUM", - "DIOCESAN_MUSEUM", - "DIVISION", - "ECONOMUSEUM", - "EGYPTOLOGICAL_MUSEUM", - "ENERGY_MUSEUM", - "ENTOMOLOGICAL_MUSEUM", - "EXOTARIUM", - "EXTERMINATION_CAMP", - "FASHION_MUSEUM", - "FILM_MUSEUM", - "FOLK_ART_MUSEUM", - "FOLK_MUSEUM", - "FOREST_EXPERIENCE_CENTER", - "FORESTRY_MUSEUM", - "FRENCH_NATIONAL_MUSEUM", - "FUDOKI_NO_OKA", - "FURNITURE_MUSEUM", - "GEOLOGICAL_MUSEUM", - "GLAM", - "GLYPTOTHEQUE", - "HAUS_DES_WALDES", - "HERBARIUM", - "HERITAGE_FARM", - "HERPETARIUM", - "HISTORICAL_AND_ETHNOGRAPHIC_MUSEUM", - "HISTORICAL_SOCIETY_MUSEUM", - "HISTORY_MUSEUM", - "HOROLOGICAL_MUSEUM", - "HOSPITAL_MUSEUM", - "HOUSE_OF_CULTURE", - "HOUSE_OF_LITERATURE", - "HOUSE_OF_LITERATURE_1", - "INSECT_COLLECTION", - "INSTITUTION", - "ISTITUTO_MUSEALE_AD_AUTONOMIA_SPECIALE", - "JAZZ_MUSEUM", - "KUNSTHALLE", - "KUSTODIE", - "LAPIDARIUM", - "LITERARY_MUSEUM", - "LOCAL_HERITAGE_INSTITUTION_IN_SWEDEN", - "LOCAL_MUSEUM", - "MANOR_MUSEUM", - "MARITIME_MUSEUM", - "MASONIC_MUSEUM", - "MEDIA_MUSEUM", - "MEMORY_INSTITUTION", - "MILITARY_MUSEUM", - "MINING_PARK", - "MINKA_EN", - "MOSAICS_MUSEUM", - "MUSEUM", - "MUSEUM_ARCHIVE", - "MUSEUM_BUS", - "MUSEUM_ESTATE", - "MUSEUM_FOR_APPLIED_ARTS_INSTITUTION", - "MUSEUM_FRANCHISE", - "MUSEUM_NETWORK", - "MUSEUM_OF_APPRENTICESHIP", - "MUSEUM_OF_ASIAN_ART", - "MUSEUM_OF_CULTURE", - "MUSEUM_OF_DECORATIVE_ARTS", - "MUSEUM_OF_FORTIFICATIONS", - "MUSEUM_OF_MODERN_ART", - "MUSEUM_OF_SACRED_ART", - "MUSEUM_TRAM_LINE", - "MUSEUM_RESERVE", - "MUSEUMED_CHURCH", - "MUSIC_MUSEUM", - "NATIONAL_BATTLEFIELD_PARK", - "NATIONAL_CENTRE_FOR_CONTEMPORARY_ART", - "NATIONAL_MILITARY_PARK", - "NATIONAL_MUSEUM", - "NATIONAL_MUSEUM_OF_WORLD_CULTURES", - "NATIONAL_TREASURE", - "NATIONAL_TREASURE_OF_FRANCE", - "NATURAL_HISTORY_MUSEUM", - "NATURAL_HISTORY_MUSEUM_1", - "NAZI_CONCENTRATION_CAMP", - "NURSERY_MUSEUM", - "ONLINE_ART_GALLERY", - "OPEN_AIR_MUSEUM", - "ORGANIZATION", - "ORGANIZATIONAL_SUBDIVISION", - "PALACE", - "PALEONTOLOGICAL_MUSEUM", - "PARENT_ORGANIZATIONUNIT", - "PATHOLOGICAL_MUSEUM", - "PERSON_OR_ORGANIZATION", - "PHOTOGRAPH_COLLECTION", - "PHOTOGRAPHY_MUSEUM", - "PHOTOTHEQUE", - "PICTURE_BOOK_MUSEUM", - "PINACOTHECA", - "PIONEER_MUSEUM", - "PRINT_ROOM", - "PRIVATE_ART_MUSEUM", - "PROTO_THEQUE", - "PROVINCIAL_MUSEUM_IN_FINLAND", - "PUBLIC_SPACE", - "PUBLIC_BENEFIT_CORPORATION", - "PUPPET_MUSEUM", - "QUADRERIA", - "RAILWAY_MUSEUM", - "RAILWAY_PARK", - "REGIMENTAL_MUSEUM", - "ROCKET_GARDEN", - "SCIENCE_CENTER", - "SCIENCE_FICTION_LIBRARIES_AND_MUSEUMS", - "SCIENCE_MUSEUM", - "SCIENTIFIC_TECHNIC_AND_INDUSTRIAL_CULTURE_CENTER", - "SCULPTURE_GARDEN", - "SCULPTURE_MUSEUM", - "SELFIE_MUSEUM", - "SERVICE", - "SINGLE_ARTIST_MUSEUM", - "SITE", - "SOCIAL_SPACE", - "SUBSIDIARY_ORGANIZATION", - "SUFI_LODGE", - "TAPESTRY_MUSEUM", - "TECHNOLOGY_MUSEUM", - "TEDDY_BEAR_MUSEUM", - "TELECOMMUNICATIONS_MUSEUM", - "TEXTILE_MUSEUM", - "THEATRE_MUSEUM", - "THEME_PARK", - "TRAILSIDE_MUSEUM", - "TRAIN_STATION_MUSEUM", - "TRAMWAY_MUSEUM", - "TRANSPORT_MUSEUM", - "TREASURE_HALL", - "TYPHLOLOGICAL_MUSEUM", - "UNIVERSITY_ART_MUSEUM", - "UNIVERSITY_MUSEUM", - "VIRTUAL_MUSEUM", - "VOLCANOLOGICAL_MUSEUM", - "WAX_MUSEUM", - "WORLD_HERITAGE_SITE", - "WRITERS_MUSEUM", - "ZOOLOGICAL_MUSEUM" - ], - "title": "MuseumTypeEnum", - "type": "string" - }, - "MusicArchive": { - "additionalProperties": false, - "description": "Archive of musical recordings and documents. Music archives collect and preserve materials related to music including recordings, scores, manuscripts, correspondence, photographs, and documentation of musical performances and compositions. They may focus on specific genres, composers, performers, or regional musical traditions.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MusicArchive", - "type": "object" - }, - "MusicArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by MusicArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MusicArchiveRecordSetType", - "type": "object" - }, - "MusicContent": { - "additionalProperties": false, - "description": "Musical recordings and compositions.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "MUSIC", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Music Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "MusicContent", - "type": "object" - }, - "MusicManuscriptCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Musical scores and manuscripts.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "MusicArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by MusicArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "MusicManuscriptCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MusicManuscriptCollection", - "type": "object" - }, - "MusicRecordingCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Music recordings.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "SoundArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by SoundArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "MusicRecordingCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "MusicRecordingCollection", - "type": "object" - }, - "MusicTypeEnum": { - "description": "Types of music presence in audio.", - "enum": [ - "BACKGROUND", - "FEATURED", - "ARCHIVAL", - "LIVE", - "THEME", - "TRANSITION" - ], - "title": "MusicTypeEnum", - "type": "string" - }, - "MusicalCollectionContent": { - "additionalProperties": false, - "description": "Musical heritage: Organs, bells, choir books, instruments,\nsheet music, sound recordings.", - "properties": { - "has_or_had_label": {}, - "type_definition": { - "description": "Definition of this collection content type", - "type": [ - "string", - "null" - ] - } - }, - "title": "MusicalCollectionContent", - "type": "object" - }, - "Name": { - "additionalProperties": false, - "description": "Structured representation of a name associated with an entity.\n\n**MIGRATION NOTE** (2026-01-22):\nCreated per slot_fixes.yaml migration from `common_name` string\nto structured Name class per Rule 53.\n\n**Purpose**:\nProvides structured representation for names including:\n- The name value itself (via has_or_had_label)\n- Name type classification (e.g., common name, scientific name, trade name)\n- Language information\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `schema:name` - Schema.org name\n- **Close**: `skos:prefLabel`, `rdfs:label` - Label predicates\n- **Related**: `dwc:vernacularName` - Darwin Core vernacular name\n\n**Use Cases**:\n- Biological specimens with common/vernacular names in multiple languages\n- Organizations with official names and trading names\n- Places with indigenous and colonial names\n- Products with brand names and generic names\n\n**Pattern**:\n```yaml\nhas_or_had_name:\n - has_or_had_label: \"Dodo\"\n has_or_had_type: CommonName\n has_or_had_language: \"en\"\n - has_or_had_label: \"Dronte\"\n has_or_had_type: CommonName\n has_or_had_language: \"nl\"\n```", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_language": { - "description": "Language information for an entity.\n\n**Use Cases**:\n1. **Language Proficiency**: When tracking language skills (e.g., person profiles)\n - Use LanguageProficiency class with language_name, code, and level\n2. **Language-Tagged Text**: When storing multilingual text content\n - Use Language class with iso_639_1, language_name, and text_content\n3. **Content Language**: Language of the resource content (migrated from content_language)\n - Use Language class\n\n**Migration Support**:\nThis slot replaces language-specific text slots (fr, de, en, nl) and content_language\nwith a unified pattern per slot_fixes.yaml revisions:\n- `content_language` \u2192 has_or_had_language with Language\n- `fr` (French text) \u2192 has_or_had_language with Language(iso_639_1=\"fr\")\n- `de` (German text) \u2192 has_or_had_language with Language(iso_639_1=\"de\")\n- `en` (English text) \u2192 has_or_had_language with Language(iso_639_1=\"en\")\n- `nl` (Dutch text) \u2192 has_or_had_language with Language(iso_639_1=\"nl\")\n\n**Example - Language-Tagged Text**:\n```yaml\nhas_or_had_language:\n - iso_639_1: \"fr\"\n language_name: \"French\"\n text_content: \"archives universitaires\"\n - iso_639_1: \"en\"\n language_name: \"English\"\n text_content: \"university archives\"\n```\n\n**Example - Language Proficiency**:\n```yaml\nhas_or_had_language:\n - language_name: \"French\"\n language_code: \"fr\"\n proficiency_level: \"fluent\"\n```\n", - "items": { - "anyOf": [ - { - "$ref": "#/$defs/LanguageProficiency" - }, - { - "$ref": "#/$defs/Language" - } - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/NameType" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "Name", - "type": "object" - }, - "NameTypeEnum": { - "description": "Classification of name visibility level in LinkedIn data.\nPer AGENTS.md Rule 17.", - "enum": [ - "full", - "abbreviated", - "anonymous" - ], - "title": "NameTypeEnum", - "type": "string" - }, - "NameVerifiedClaim": { - "additionalProperties": false, - "description": "Flag indicating name has been verified against authoritative source.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "NameVerifiedClaim", - "type": "object" - }, - "NationalAggregator": { - "additionalProperties": false, - "description": "National-level portal aggregating metadata from heritage institutions across an entire country. **PURPOSE**: Provide unified discovery and access to a nation's cultural heritage across archives, libraries, and museums. **OPERATORS**: Typically operated by national cultural heritage agencies, ministries of culture, or national libraries. **CHARACTERISTICS**: - Country-wide scope and mandate - Cross-domain integration (archives, libraries, museums) - National-level policies and standards - Government or national institution backing **EXAMPLES**: - NDE Dataset Register (Netherlands) - Deutsche Digitale Bibliothek (Germany) - Gallica/data.bnf.fr (France) - Trove (Australia) - DPLA (United States)", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "GEOGRAPHIC_SCOPE", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "archives", - "libraries", - "museums", - "cross-domain" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "NationalAggregator", - "type": "object" - }, - "NationalArchives": { - "additionalProperties": false, - "description": "Archives of a country. National archives are the principal archival institutions of a nation state, responsible for preserving and providing access to records of the central government and other materials of national importance. They typically have legal mandates for records management and are custodians of a nation's documentary heritage.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "NationalArchives", - "type": "object" - }, - "NationalArchivesRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections of national archival records. **Scope**: Used to classify record sets containing national government materials: - Government administrative fonds - Legislative record series - Diplomatic correspondence collections - National statistics series", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "NationalArchivesRecordSetType", - "type": "object" - }, - "NationalParkSubtype": { - "additionalProperties": false, - "description": "Nationally designated protected area.\nLarge-scale conservation with public access.\n\n**Wikidata**: Q46169", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "NationalParkSubtype", - "type": "object" - }, - "NationalStatisticsSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Census and national statistical records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "NationalArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by NationalArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "NationalStatisticsSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "NationalStatisticsSeries", - "type": "object" - }, - "NaturalDisaster": { - "additionalProperties": false, - "description": "Earthquake, flood, hurricane, wildfire, or other natural events.\nExamples: Nepal Earthquake 2015, Notre-Dame Fire 2019.", - "title": "NaturalDisaster", - "type": "object" - }, - "NaturalHistoryCollectionContent": { - "additionalProperties": false, - "description": "Natural history specimens: Botanical, zoological, geological,\npaleontological collections.", - "properties": { - "has_or_had_label": {}, - "type_definition": { - "description": "Definition of this collection content type", - "type": [ - "string", - "null" - ] - } - }, - "title": "NaturalHistoryCollectionContent", - "type": "object" - }, - "NaturalHistoryStorageEnvironment": { - "additionalProperties": false, - "description": "Storage for natural history specimens.\n\n**PURPOSE**: Provide appropriate conditions for diverse natural\nhistory collections, which may require varied environments.\n\n**CONDITIONS VARY BY SPECIMEN TYPE**:\n- Dry specimens: 20\u00b0C, 45% RH\n- Fluid-preserved: 18\u00b0C, stable\n- Frozen tissue: -80\u00b0C (separate facility)\n- Herbarium sheets: 18\u00b0C, 40-50% RH\n\n**SUITABLE MATERIALS**:\n- Taxidermy specimens\n- Botanical specimens (herbarium)\n- Geological samples\n- Entomology collections\n- Osteological collections\n- Fluid-preserved specimens\n\n**SPECIAL REQUIREMENTS**:\n- Pest management critical (integrated pest management)\n- Separate zones for different specimen types\n- Ethanol/formaldehyde safety for fluid collections", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "NATURAL_HISTORY", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard": { - "description": "Reference to applicable ISO or EN standard for this environmental zone type.\n\nFormat: Standard identifier (e.g., \"ISO 11799\", \"ISO 18911\", \"EN 16893\")\n\nCommon preservation standards:\n- ISO 11799: Document storage requirements\n- ISO 18911: Film storage practices\n- ISO 18934: Multiple media archives storage\n- EN 16893: Heritage collection storage buildings\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "max_annual_light_exposure": { - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "requires_dark_storage": { - "description": "Whether dark (zero light) storage is required for this environmental zone.\n\nBased on ISO preservation standards:\n- Film storage (ISO 18911): Dark storage mandatory\n- Photographic (ISO 18920): Dark storage for extended-term\n- UK Archives (BS 4971): 0 lux for closed storage\n\nDark storage essential for:\n- Film negatives (especially color and early nitrate/acetate)\n- Daguerreotypes and early photographic processes\n- Cyanotypes and blueprint materials\n- Some magnetic media (tape)\n- Highly fugitive inks and dyes\n\nAccess provided through reading rooms or digitization requests.\nCumulative light damage is completely prevented.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_dust_free": { - "description": "Whether a dust-free or dust-controlled environment is required for this zone.\n\nBased on ISO preservation standards:\n- Magnetic tape (ISO 18923): Dust-free mandatory\n- Optical media (ISO 18938): Cleanroom for masters\n- Archives (ISO 11799): Dust control required\n\nISO 14644-1 Cleanliness Classes:\n- Class 8: General archive/museum (HEPA filtered)\n- Class 7: AV media storage (positive pressure)\n- Class 5: Digital master storage (cleanroom)\n\nDust-free essential for:\n- Magnetic tapes and audiovisual media\n- Optical discs (CD, DVD, Blu-ray)\n- Fine art and paintings (surface abrasion)\n- Photographic materials (scratches, embedded particles)\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_esd_protection": { - "description": "Whether electrostatic discharge (ESD) protection is required for this zone.\n\nBased on ISO/IEC standards:\n- Magnetic tape (ISO 18923): ESD protection required\n- Optical media (ISO 18938): ESD-safe handling mandatory\n- Electronics (IEC 61340-5-1): ESD control program\n\nESD protection measures include:\n- Conductive/dissipative flooring\n- Humidity control (40-60% RH reduces static)\n- ESD-safe packaging and equipment\n- Personnel grounding (wrist straps)\n\nESD protection essential for:\n- Hard drives and SSDs\n- LTO and other magnetic tapes\n- Optical media (CD, DVD, Blu-ray masters)\n- Electronic components and circuit boards\n- Born-digital heritage collections\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_uv_filter": { - "description": "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \u00b5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label", - "has_or_had_description" - ], - "title": "NaturalHistoryStorageEnvironment", - "type": "object" - }, - "NatureReserveSubtype": { - "additionalProperties": false, - "description": "Protected natural area for conservation.\nMay have limited public access and research programs.\n\n**Wikidata**: Q179049", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "NatureReserveSubtype", - "type": "object" - }, - "Neglect": { - "additionalProperties": false, - "description": "Abandonment or lack of maintenance leading to deterioration.\nNon-violent but resulting in loss of heritage.", - "title": "Neglect", - "type": "object" - }, - "NetAsset": { - "additionalProperties": false, - "description": "Net asset value", - "properties": { - "currency": { - "type": [ - "string", - "null" - ] - }, - "fiscal_year": { - "type": [ - "integer", - "null" - ] - } - }, - "title": "NetAsset", - "type": "object" - }, - "NewsFootageCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for News broadcast archives.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "TelevisionArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by TelevisionArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "NewsFootageCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "NewsFootageCollection", - "type": "object" - }, - "Newsletter": { - "additionalProperties": false, - "description": "Email newsletter signup and archive. Mailchimp, Campaign Monitor,\nor institutional email marketing.\n\n**PURPOSE**: Distribute heritage news and updates through email\nnewsletters.\n\n**CHARACTERISTICS**:\n- Email distribution\n- Subscriber management\n- Archive access\n- Analytics tracking\n\n**EXAMPLES**: Museum newsletters, archive updates", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AUXILIARY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "Newsletter", - "type": "object" - }, - "NewsletterEditor": { - "additionalProperties": false, - "description": "Editor producing newsletters and regular publications for members.\n\n**Official Title vs De Facto Work**:\nFormally edits publications, but often involved in research,\nwriting, photography, layout, and distribution.\n\n**Common Variants**:\n- Publications Editor\n- Bulletin Editor\n- Redacteur (Dutch)\n- Communications Editor\n- Magazine Editor\n\n**Typical Domains**: Historical societies, heritage associations, museum friends groups\n\n**Typical Responsibilities**:\n- Newsletter production and editing\n- Soliciting and editing articles\n- Layout and design\n- Managing publication schedule\n- Distribution coordination\n- Digital newsletter management\n- Member communication", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "NewsletterEditor", - "type": "object" - }, - "NewspaperClippingsArchive": { - "additionalProperties": false, - "description": "Archive of press clippings, organized by topics. Newspaper clippings archives (Zeitungsausschnittsarchive) systematically collect and organize articles cut from newspapers and periodicals on specific subjects, individuals, or organizations. Before digital databases, these were essential research tools for journalists, researchers, and organizations tracking media coverage.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "NewspaperClippingsArchive", - "type": "object" - }, - "NewspaperClippingsArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by NewspaperClippingsArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "NewspaperClippingsArchiveRecordSetType", - "type": "object" - }, - "NewspaperDigitizationPortal": { - "additionalProperties": false, - "description": "Portal aggregating digitized historical newspapers from multiple institutions. **PURPOSE**: Provide full-text search and browse across digitized newspaper collections, enabling historical research across publications and time periods. **CHARACTERISTICS**: - Digitized historical newspapers - Full-text OCR and search - Temporal and geographic coverage - Title and publication metadata - Page-level and article-level access **EXAMPLES**: - Delpher Kranten (Netherlands) - Chronicling America (Library of Congress, US) - Trove Newspapers (Australia) - British Newspaper Archive (UK) - Europeana Newspapers", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "THEMATIC", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "periodicals", - "libraries" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "NewspaperDigitizationPortal", - "type": "object" - }, - "NewspaperPublicationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Newspaper publisher records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PressArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PressArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "NewspaperPublicationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "NewspaperPublicationFonds", - "type": "object" - }, - "NewsreelSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for newsreels and screen magazines organized as series.\n\n**Definition**:\nSerial film productions presenting news and current events, typically \nexhibited in cinemas before feature films. Includes newsreels, screen \nmagazines, and actualities (early news films).\n\n**Typical Contents**:\n- Newsreels (bioscoopjournaals, journaux cin\u00e9matographiques)\n- Screen magazines (filmmgazines)\n- Actualities (vroege nieuwsfilms)\n- War newsreels\n- Sports reels\n- Monarchy/state event coverage\n- Regional newsreels\n\n**Historical Context**:\nNewsreels were the primary source of visual news before television (ca. 1910-1970).\nThey document major historical events, daily life, and social conditions.\n\n**Notable Dutch Examples**:\n- Polygoon-Profilti (1919-1987)\n- Het Vrije Volk journaal\n- Nederlands Filmjournaal\n\n**Organization**:\nNewsreels are typically organized as series by producer/title, \nwith individual issues arranged chronologically.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the series organizational principle as defined by rico-rst:Series\n(chronological has_arrangement of numbered issues within titled series).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the series principle as defined by rico-rst:Series. Chronological has_arrangement of numbered issues within titled series by producer.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "NewsreelSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"feature films\", \"documentaries\", \"production records\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"newsreels\", \"screen magazines\", \"actualities\", \"war newsreels\", \"sports reels\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "NewsreelSeries", - "type": "object" - }, - "NoClimateControl": { - "additionalProperties": false, - "description": "No climate control - ambient conditions only.\n\n**TYPICAL USE CASES**:\n- Outdoor monuments\n- Unimproved storage spaces\n- Temporary exhibition spaces\n\n**CAPABILITIES**:\n- Temperature: Ambient (uncontrolled)\n- Humidity: Ambient (uncontrolled)\n- Air quality: Ambient (uncontrolled)\n\n**WARNING**:\nNot suitable for sensitive heritage materials.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/ClimateControlType" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "NoClimateControl", - "type": "object" - }, - "NoSystem": { - "additionalProperties": false, - "description": "No fire suppression system present", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "NoSystem", - "type": "object" - }, - "NobilityArchive": { - "additionalProperties": false, - "description": "Collection of historical documents and information about members of the nobility. Nobility archives preserve records documenting noble families, their genealogies, titles, properties, and activities. They may include charters, correspondence, estate records, heraldic materials, and family papers. Often held by noble families themselves or deposited in state or regional archives.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "NobilityArchive", - "type": "object" - }, - "NobilityArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by NobilityArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "NobilityArchiveRecordSetType", - "type": "object" - }, - "NobleFamilyPapersFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Noble family papers.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "NobilityArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by NobilityArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "NobleFamilyPapersFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "NobleFamilyPapersFonds", - "type": "object" - }, - "NonProfitCustodianTypeEnum": { - "description": "", - "enum": [ - "ACADEMIC_PUBLISHER", - "ADMINISTRATIVE_TERRITORIAL_ENTITY_TYPE", - "ADVISORY_BOARD", - "ADVOCACY_GROUP", - "AGRICULTURAL_COOPERATIVE", - "AGRICULTURAL_ORGANIZATION", - "ALGEMEEN_NUT_BEOGENDE_INSTELLING", - "APOSTOLIC_SEE", - "ARCHIVE_OF_AN_INTERNATIONAL_ORGANIZATION", - "ARTHOUSE_CINEMA", - "ARTS_CENTER", - "ARTS_COUNCIL", - "ASSOCIATION_FOOTBALL_FEDERATION", - "AUCTION_COOPERATIVE", - "AUCTION_HOUSE", - "BRANCH", - "BRANCH_OFFICE", - "BUSINESS_AND_PROFESSIONAL_ASSOCIATIONS_UNIONS", - "CATHOLIC_ECCLESIASTICAL_DISTRICT", - "CATHOLIC_ORGANIZATION", - "CATHOLIC_PARTICULAR_CHURCH_SUI_IURIS", - "CENTRAL_ADMINISTRATION", - "CHARITABLE_ORGANIZATION", - "CHRISTIAN_CHURCH", - "CHRISTIAN_DENOMINATION", - "CHRISTIAN_ORGANIZATION", - "CHURCH_CONGREGATION", - "CLUB", - "COALITION", - "COMMITTEE", - "COMMUNITY", - "CONFESSIONAL_COMMUNITY", - "CONGREGATION", - "CONSORTIUM", - "CONTEMPLATIVE_ORDER", - "COOPERATIVE", - "COOPERATIVE_FOR_PRODUCTION", - "COOPERATIVE_SOCIETY", - "CORPORATION_SOLE", - "COUNCIL", - "CO\u00d6PERATIE", - "CO\u00d6PERATIE_1", - "CO\u00d6PERATIE_UITGESLOTEN_VAN_AANSPRAKELIJKHEID", - "CO\u00d6PERATIVE", - "CULTURAL_ASSOCIATION", - "CURIA", - "DAIRY_COOPERATIVE", - "DEFUNCT_ORGANIZATION", - "DEPARTMENT", - "DIOCESE", - "DIOCESE_OF_THE_CATHOLIC_CHURCH", - "DIVISION", - "DUTCH_REGIONAL_ENVIRONMENTAL_PROTECTION_AGENCY", - "DYAD", - "ECCLESIASTICAL_DISTRICT", - "ECCLESIASTICAL_PROVINCE", - "EPISCOPAL_SEE", - "ETHNIC_GROUP", - "EUROPEAN_COOPERATIVE_SOCIETY", - "EXECUTIVE_BOARD", - "FILM_AND_TELEVISION_PRODUCTION_COMPANY", - "FILM_DISTRIBUTOR", - "FILM_FUND", - "FILM_PRODUCTION_COMPANY", - "FILM_STUDIO", - "FOUNDATION", - "GENERAL_CURIA", - "GOVERNMENT", - "GOVERNMENT_ADMINISTRATION", - "GRAND_LODGE", - "GROUP_OF_HUMANS", - "GROUP_PURCHASING_ORGANIZATION", - "GUNTER", - "HISTORIC_CHURCH", - "HISTORICAL_SOCIETY", - "INSTITUTION", - "INSTITUTIONAL_REPOSITORY", - "INTERNATIONAL_ASSOCIATION", - "INTERNATIONAL_ORGANIZATION", - "ISOLATED_HUMAN_GROUP", - "JURIDICAL_PERSON", - "JUVENILE_POLITICAL_ORGANIZATION", - "LABOR_UNION", - "LIBRARY_NETWORK", - "LIFESTANCE_ORGANISATION", - "LISTED_COMPANY", - "MAIN_ORGANIZATION", - "MEDIA_COMPANY", - "MEMBERSHIP_ORGANIZATION", - "MINORITY_GROUP", - "MINORITY_GROUP_1", - "MONASTIC_ORDER", - "NATIONAL_TRADE_UNION_CENTER", - "NETWORK_ORGANIZATION", - "NIK\u0100YA", - "NONPROFIT_ORGANIZATION", - "ORDER", - "ORGANIZATION", - "ORGANIZATIONAL_SUBDIVISION", - "PANEL", - "PARENT_ORGANIZATIONUNIT", - "PARISH", - "PERSON_OR_ORGANIZATION", - "POLITICAL_ORGANIZATION", - "POLITICAL_PARTY", - "POLITICAL_PARTY_WING", - "POLITY", - "PRESSURE_GROUP", - "PRODUCER_COOPERATIVE", - "PRODUCTION_COMPANY", - "PROFESSIONAL_ASSOCIATION", - "PROJECT", - "PROVINCE", - "PROVINCE_OF_A_RELIGIOUS_ORDER", - "PUBLIC_BENEFIT_CORPORATION", - "PURCHASING_COOPERATIVE", - "RECORDING_STUDIO", - "REFLECTION_GROUP", - "RELIGIOUS_ADMINISTRATIVE_ENTITY", - "RELIGIOUS_ADMINISTRATIVE_TERRITORIAL_ENTITY", - "RELIGIOUS_COMMUNITY", - "RELIGIOUS_CORPORATION", - "RELIGIOUS_GROUP", - "RELIGIOUS_ORDER", - "ROMAN_CATHOLIC_ECCLESIASTICAL_PROVINCE", - "SOCIAL_ORGANIZATION", - "SOCIAL_PURPOSE_COMPANY", - "SOCIAL_STRUCTURE", - "SPECIAL_INTEREST_GROUP", - "SPORT_ASSOCIATION", - "SPORTS_GOVERNING_BODY", - "SPORTS_ORGANIZATION", - "STICHTING", - "SUBJECT_OF_INTERNATIONAL_LAW", - "SUBSIDIARY_ORGANIZATION", - "SUPRAORGANIZATION", - "SYNDICATE", - "TELEVISION_COMPANY", - "TELEVISION_PRODUCTION_COMPANY", - "TOP_LEVEL_UMBRELLA_ORGANIZATION", - "TRADE_UNION_FEDERATION", - "UMBRELLA_ORGANIZATION", - "VIDEO_GAME_DISTRIBUTOR", - "VOLUNTARY_ASSOCIATION", - "VOLUNTARY_ASSOCIATION_1", - "WINERY", - "WRITING_CREW", - "YOUTH_ORGANISATION", - "\u30c9\u30a5\u30bf\u30f3\u30af" - ], - "title": "NonProfitCustodianTypeEnum", - "type": "string" - }, - "NonProfitGallery": { - "additionalProperties": false, - "description": "A gallery that operates as a non-profit.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_model": { - "description": "Model or structure description (business model, organizational model, etc.). Uses schema:businessFunction for business model descriptions.\nClasses narrow this slot via slot_usage for domain-specific descriptions: - CommercialOrganizationType \u2192 business model (funding/revenue structure)", - "type": [ - "string", - "null" - ] - }, - "has_or_had_objective": { - "description": "The objective of an action or measure.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_service": { - "description": "A service offered by an entity.\n\n**USAGE**:\nUsed for:\n- Visitor services (guided tours, audio guides)\n- Research services\n- Conservation services\n", - "items": { - "$ref": "#/$defs/Service" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "string" - }, - { - "type": "string" - }, - { - "type": "string" - } - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "represents_or_represented": { - "description": "Represents an artist or entity.", - "items": { - "$ref": "#/$defs/Artist" - }, - "type": [ - "array", - "null" - ] - }, - "sales_activity": { - "description": "Whether the gallery actively sells artworks to collectors.\nTrue = artwork sales (primary or secondary market)\nFalse = exhibition-only (no sales activity)\n\nDistinction from commercial_operation:\n- commercial_operation: business model (for-profit vs. nonprofit)\n- sales_activity: transactional activity (sells artworks or not)\n\nA gallery can be commercial_operation=true but sales_activity=false\n(e.g., art consultancy that doesn't hold inventory).\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "NonProfitGallery", - "type": "object" - }, - "NonProfitType": { - "additionalProperties": false, - "description": "Specialized custodian type for non-profit heritage organizations that don't\nfit other specialized types (not archives, museums, societies, etc.).\n\n**CRITICAL DISTINCTION - NonProfit vs. Other Types**:\n\nNonProfitType is a RESIDUAL category for heritage NGOs that operate as:\n- **Advocacy organizations** (lobbying, policy, awareness campaigns)\n- **Support services** (training, consulting, capacity building)\n- **Grant-making foundations** (funding heritage projects)\n- **Professional associations** (standards, ethics, networking)\n\n**Do NOT use NonProfitType if the organization fits a more specific type**:\n- \u274c Historical society \u2192 Use HeritageSocietyType\n- \u274c Monument trust \u2192 Use FeatureCustodianType\n- \u274c Folklore group \u2192 Use IntangibleHeritageGroupType\n- \u274c Museum/archive/library \u2192 Use MuseumType/ArchiveOrganizationType/LibraryType\n\n1. **Structural Layer** (W3C Standards):\n - skos:Concept - Thesaurus classification\n - Classification within CustodianType hierarchy\n\n2. **Domain Layer** (Heritage Ontologies):\n - crm:E74_Group - CIDOC-CRM social group\n - foaf:Organization - Organizational entity\n - schema:NGO - Non-governmental organization\n\n3. **Web Layer** (Schema.org):\n - schema:Organization - Generic organization\n - schema:NonProfit - Non-profit classification\n - schema:EducationalOrganization - For training/education NGOs\n\n**Wikidata Coverage** (50+ heritage NGO entities):\n\nAdvocacy Organizations:\n- Q163740 (non-profit organization) - General NGO classification\n- Q7241077 (preservation society) - Heritage advocacy groups\n- Q105558717 (heritage advocacy NGO) - Policy and awareness campaigns\n- Q215380 (cultural rights organization) - Cultural heritage rights\n\nGrant-Making Foundations:\n- Q157031 (foundation) - Philanthropic heritage funding\n- Q5879427 (heritage fund) - Grant programs for heritage\n- Q105558717 (cultural endowment) - Sustained heritage funding\n\nProfessional Associations:\n- Q48204 (professional association) - Sector-wide membership bodies\n- Q105558717 (archivists association) - Professional standards and ethics\n- Q215380 (museum professionals network) - Networking and development\n\nCapacity Building Organizations:\n- Q105558717 (heritage training organization) - Skills development\n- Q215380 (technical support NGO) - Consulting and advisory services\n- Q5879427 (heritage capacity building) - Organizational development\n\nEmergency Response:\n- Q105558717 (heritage rescue organization) - Disaster response\n- Q215380 (Blue Shield) - Cultural heritage protection in conflict\n- Q5879427 (heritage at risk program) - Emergency conservation\n\n**Key Distinctions from Other Types**:\n\nvs. HeritageSociety:\n- NonProfit: ADVOCACY/SERVICES (not collecting or practicing heritage)\n- HeritageSociety: COLLECTING + PUBLISHING (operates collections/publications)\n- Example: Heritage advocacy NGO vs. Historical society with museum\n\nvs. FeatureCustodian:\n- NonProfit: Does NOT OWN/MANAGE specific heritage sites\n- FeatureCustodian: OWNS/MANAGES physical monuments/sites\n- Example: Monument advocacy group vs. Monument management trust\n\nvs. OfficialInstitution:\n- NonProfit: NON-GOVERNMENTAL, civil society organization\n- OfficialInstitution: GOVERNMENT agency with statutory authority\n- Example: Heritage NGO vs. National heritage agency\n\nvs. ResearchOrganization:\n- NonProfit: PRIMARY mission = ADVOCACY/SERVICES (research is secondary)\n- ResearchOrganization: PRIMARY mission = RESEARCH (heritage as research focus)\n- Example: Heritage advocacy NGO vs. Heritage research institute\n\nvs. EducationProvider:\n- NonProfit: NON-FORMAL training/workshops (short-term, professional development)\n- EducationProvider: FORMAL education (degrees, accredited programs)\n- Example: Conservation training NGO vs. University conservation program\n\n**RDF Serialization Example**:\n\n```turtle\n@prefix hc: <https://nde.nl/ontology/hc/> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix schema: <http://schema.org/> .\n@prefix crm: <http://www.cidoc-crm.org/cidoc-crm/> .\n@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n\nhc:NonProfitType\n a skos:Concept, hc:CustodianType ;\n skos:prefLabel \"Non-Profit Organization Type\"@en,\n \"Non-Profit Organisatie Type\"@nl,\n \"Gemeinn\u00fctzige Organisation Typ\"@de,\n \"Type d'Organisation \u00e0 But Non Lucratif\"@fr ;\n skos:definition \"Heritage-focused non-profit organizations (advocacy, services, funding)\"@en ;\n skos:broader hc:CustodianType ;\n skos:narrower hc:AdvocacyOrganization,\n hc:GrantMakingFoundation,\n hc:ProfessionalAssociation ;\n schema:url <https://nde.nl/ontology/hc/class/non-profit-type> .\n\n# Example: Europa Nostra (pan-European heritage advocacy network)\n<https://w3id.org/heritage/custodian/eu/europa-nostra>\n a schema:NGO, foaf:Organization, crm:E74_Group, hc:NonProfitOrganization ;\n hc:custodian_type hc:NonProfitType ;\n hc:organizational_mission \"Heritage advocacy, Awareness campaigns, Policy influence\" ;\n hc:program_activities \"7 Most Endangered Programme\", \"European Heritage Awards\", \"Advocacy campaigns\" ;\n hc:geographic_scope \"Pan-European\", \"50+ countries\", \"300+ member organizations\" ;\n hc:has_or_had_beneficiary \"Heritage organizations\", \"Local communities\", \"Policy makers\", \"General public\" ;\n hc:partnership_model \"Membership network\", \"Co-funded programs\", \"Coalition building\" ;\n hc:impact_measurement \"Sites saved from demolition\", \"Policy changes achieved\", \"Public awareness metrics\" ;\n schema:name \"Europa Nostra\" ;\n schema:foundingDate \"1963\" ;\n schema:location \"The Hague, Netherlands\" ;\n schema:description \"Pan-European federation for cultural heritage, advocating for heritage protection and celebrating excellence through awards and campaigns\" ;\n schema:url <https://www.europanostra.org/> ;\n foaf:member <https://heritageorganization.example/member/001> .\n```", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_beneficiary": { - "description": "Who benefits or benefited from the organization's programs and services.\nIdentifies target populations with temporal semantics (RiC-O style naming).\nBeneficiary categories include: - **Heritage organizations**: Museums, archives, libraries, societies - **Heritage professionals**: Conservators, curators, archivists, educators - **Local communities**: Residents near heritage sites, indigenous peoples - **Policy makers**: Government officials, legislators, planners - **Students and researchers**: Academic community, early-career professionals - **General public**: Tourists, volunteers, heritage enthusiasts - **Property owners**: Private owners of heritage buildings - **Emergency responders**: First responders, military, disaster relief\nBeneficiary identification clarifies organizational impact over time.\nExamples: - \"Heritage organizations, Local communities, Policy makers, General public\" - \"Conservation professionals, Students, Heritage property owners\" - \"Museums and libraries, Heritage managers, Volunteers\" - \"Indigenous communities, Cultural rights holders, Traditional practitioners\"", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^(https://nde\\.nl/ontology/hc/type/[a-z-]+/[QP][0-9]+|Q[0-9]+)$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "nonprofit_subtype": { - "description": "Specific subtype from the NonProfitCustodianTypeEnum taxonomy (149 non-profit types).\nEach value links to a Wikidata entity describing a specific type.\n", - "items": { - "$ref": "#/$defs/NonProfitCustodianTypeEnum" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_mission": { - "description": "Primary mission and purpose of the non-profit heritage organization.\n\nDescribes the organization's raison d'\u00eatre:\n- **Advocacy**: Policy influence, legislative change, public awareness\n- **Capacity building**: Training, consulting, technical assistance\n- **Grant-making**: Funding heritage projects, scholarships, awards\n- **Networking**: Connecting professionals, knowledge exchange, partnerships\n- **Standards development**: Best practices, ethics codes, professional standards\n- **Emergency response**: Disaster relief, heritage at risk, conflict protection\n- **Research support**: Commissioned research, publications, knowledge production\n\nMission statement should clarify why the organization exists.\n\nExamples:\n- \"Heritage advocacy, Awareness campaigns, Policy influence\"\n- \"Grant-making for endangered heritage sites worldwide\"\n- \"Professional development for heritage sector workers\"\n- \"Emergency response to heritage disasters and conflicts\"\n", - "type": "string" - }, - "partnership_model": { - "description": "How the organization collaborates with others to achieve its mission.\n\nDescribes partnership structures:\n- **Membership networks**: Federations, coalitions, associations\n- **Co-funding arrangements**: Joint programs with foundations, governments\n- **Coalition building**: Multi-stakeholder alliances, campaigns\n- **Academic partnerships**: Universities, research institutes\n- **Corporate partnerships**: Sponsorships, cause-related marketing\n- **Government cooperation**: Memoranda of understanding, advisory roles\n- **Peer networks**: International federations, knowledge exchange\n\nPartnership models indicate organizational leverage and influence.\n\nExamples:\n- \"Membership network, Co-funded programs, Coalition building\"\n- \"Academic partnerships, Government advisory role, Corporate sponsors\"\n- \"Grassroots coalition, Community-based partnerships, Volunteer networks\"\n- \"International federation, Regional chapters, National coordinators\"\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_beneficiary", - "organizational_mission", - "partnership_model", - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "NonProfitType", - "type": "object" - }, - "NotDeductible": { - "additionalProperties": false, - "description": "The donation provides no tax benefit to the donor.\n\n**Examples**:\n- Museum membership where benefits exceed donation value\n- Donation to organization without tax-exempt status\n- Political contributions in jurisdictions where not deductible", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "NotDeductible", - "type": "object" - }, - "NotableExample": { - "additionalProperties": false, - "description": "A real-world example of a heritage institution of this type.\nProvides concrete instances for understanding the class scope.", - "properties": { - "example_location": { - "description": "Location of the example institution (city, country)", - "type": [ - "string", - "null" - ] - }, - "example_name": { - "description": "Name of the example institution", - "type": "string" - }, - "example_note": { - "description": "Additional note about the example", - "type": [ - "string", - "null" - ] - }, - "example_wikidata_id": { - "description": "Wikidata Q-number for the example institution", - "pattern": "^Q[0-9]+$", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "example_name" - ], - "title": "NotableExample", - "type": "object" - }, - "NotarialActsSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Notarial deeds and contracts.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "NotarialArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by NotarialArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "NotarialActsSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "NotarialActsSeries", - "type": "object" - }, - "NotarialArchive": { - "additionalProperties": false, - "description": "Type of archive housing notarial records. Notarial archives preserve records created by notaries in the course of their official duties, including contracts, wills, property transactions, and other legal instruments. These records are essential for legal history, genealogy, and understanding economic and social relationships in historical societies.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "NotarialArchive", - "type": "object" - }, - "NotarialArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by NotarialArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "NotarialArchiveRecordSetType", - "type": "object" - }, - "NotarialDeed": { - "additionalProperties": false, - "description": "A formal document executed by a notary public.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "NotarialDeed", - "type": "object" - }, - "NotarialProtocolSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for notarial protocols and records organized as series.\n\n**Definition**:\nRecords created by notaries documenting legal transactions, contracts,\nwills, and other notarized documents. Organized chronologically within\neach notary's practice, forming series within regional archive holdings.\n\n**Typical Contents**:\n- Notarial protocols (minuutakten)\n- Wills and testaments\n- Marriage contracts\n- Property transfers and mortgages\n- Business contracts\n- Powers of attorney\n- Inventories and estate records\n\n**Dutch Context**:\nNotarial archives (notarieel archief) are among the most important sources\nfor genealogical and socio-economic history. Records from 1811 onward follow\nFrench notarial system; earlier records vary by region.\n\n**Access Considerations**:\nRecent notarial records may have access restrictions (typically 75 years\nfor wills, 20 years for other documents).\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the series organizational principle as defined by rico-rst:Series\n(notarial protocols are organized chronologically within each notary's records).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "privacy_note": { - "const": "Access restrictions apply to recent records. Wills typically restricted for 75 years; other documents for 20 years. Check regional archive policies.", - "description": "Notes about privacy restrictions or access limitations.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the series principle. Protocols are organized chronologically within each notary's practice.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "NotarialProtocolSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"judicial records\", \"civil registry\", \"church records\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"notarial protocols\", \"wills\", \"marriage contracts\", \"property transfers\", \"estate inventories\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "NotarialProtocolSeries", - "type": "object" - }, - "NotarialRecordsTopic": { - "additionalProperties": false, - "description": "Topic related to notarial archives.\n\nIncludes: wills, contracts, deeds, testaments, notarial acts.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/TopicType" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/TopicType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "NotarialRecordsTopic", - "type": "object" - }, - "Note": { - "additionalProperties": false, - "description": "A typed note with optional provenance metadata.\n\n**Purpose**:\nNote provides a reusable class for representing documentation notes\nacross the heritage custodian schema. Supports typed notes (claim,\nappraisal, arrangement, conservation, extraction, etc.) with language\ntagging and dates.\n\n**Ontological Alignment**:\n- **Primary**: `skos:note` - general note\n- **Close**: `rdfs:comment` - comment on resource\n\n**Use Cases**:\n- Claim notes documenting extraction details\n- Category notes for classification explanations\n- Certainty notes for confidence documentation\n- Conservation notes documenting treatments\n- Extraction notes for pipeline documentation\n- General documentation notes\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string) \u2192 has_or_had_note with Note class\n- `category_note` (string) \u2192 has_or_had_note with Note class\n- `certainty_note` (string) \u2192 has_or_had_note with Note class\n- `conservation_note` (string) \u2192 has_or_had_note with Note class\n- `copy_note` (string) \u2192 has_or_had_note with Note class\n- `event_note` (string) \u2192 has_or_had_note with Note class\n- `extraction_note` (string) \u2192 has_or_had_note with Note class\n- `feature_note` (string) \u2192 has_or_had_note with Note class\n- Other *_note slots per slot_fixes.yaml", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "language": { - "description": "Primary language of content on this profile.\n\nDublin Core: language for content language.\n\nISO 639-1 language code (e.g., \"en\", \"nl\", \"de\").\n\nSome institutions maintain separate profiles for different languages.\n", - "pattern": "^[a-z]{2}$", - "type": [ - "string", - "null" - ] - }, - "note_content": { - "description": "The textual content of a note.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **RDF** | `rdf:value` | Primary - literal value |\n| **SKOS** | `skos:note` | Related - note text |\n", - "type": "string" - }, - "note_date": { - "description": "The date when the note was created or last updated.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **DCTerms** | `dcterms:date` | Primary - date |\n| **Schema.org** | `schema:dateCreated` | Related - creation date |\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "note_type": { - "description": "The type or category of the note.\n\n**Common Types**:\n- appraisal: Retention/destruction decisions\n- arrangement: Physical organization notes\n- conservation: Treatment documentation\n- processing: Archival workflow notes\n- general: General documentation\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **DCTerms** | `dcterms:type` | Primary - nature/genre |\n| **SKOS** | `skos:inScheme` | Related - controlled vocab |\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "note_content" - ], - "title": "Note", - "type": "object" - }, - "NovelStatus": { - "additionalProperties": false, - "description": "Institution doesn't fit existing taxonomy categories. May represent new forms of heritage custodianship not yet modeled.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "NovelStatus", - "type": "object" - }, - "NumericalArrangement": { - "additionalProperties": false, - "description": "Arranged numerically by index or reference code.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "NumericalArrangement", - "type": "object" - }, - "NursingRecordsCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for nursing administration and education records.\n\n**Definition**:\nCollections documenting nursing services, education, and professional\ndevelopment within healthcare institutions. Includes both administrative\nrecords and educational materials.\n\n**Typical Contents**:\n- Nursing school records (verpleegkundigenopleiding)\n- Student registers and transcripts\n- Curriculum documentation\n- Examination records\n- Nursing procedure manuals\n- Staff scheduling records\n- Quality improvement documentation\n- Nursing association records\n- Photographs (class photos, ceremonies)\n- Oral histories with nurses\n\n**Historical Context**:\nNursing archives document:\n- Professionalization of nursing\n- Evolution of nursing education\n- Changes in patient care practices\n- Women's history (majority female profession)\n- Hospital hierarchy and labor relations\n\n**Education Documentation**:\n- Training school curricula\n- Apprenticeship records\n- Certification documentation\n- Continuing education records\n- Specialization training\n\n**Dutch Context**:\nKey elements:\n- Diploma's verpleegkunde\n- Leerlingregisters\n- Opleidingsreglementen\n- Verenigingsarchieven (nursing associations)\n- Foto's van studiejaargroepen\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the collection organizational principle as defined by rico-rst:Collection\n(assembled nursing documentation organized by school, department, or time period).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "privacy_note": { - "const": "Student records contain personal information subject to privacy protection. Historical records (pre-1920) more accessible.", - "description": "Notes about privacy restrictions or access limitations.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the collection principle as defined by rico-rst:Collection. Assembled nursing documentation organized by school, department, or time period.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "NursingRecordsCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"patient care documentation\", \"medical research\", \"administrative records (general)\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"nursing education\", \"student records\", \"curricula\", \"staff records\", \"photographs\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "NursingRecordsCollection", - "type": "object" - }, - "OAIDeletedRecordPolicyEnum": { - "description": "OAI-PMH deleted record support policy.\n\nDetermines how the repository handles records that have been deleted.", - "enum": [ - "False", - "TRANSIENT", - "PERSISTENT" - ], - "title": "OAIDeletedRecordPolicyEnum", - "type": "string" - }, - "OAIGranularityEnum": { - "description": "OAI-PMH datestamp granularity.\n\nDetermines the precision of date/time values used in\nselective harvesting (from/until parameters).", - "enum": [ - "YYYY_MM_DD", - "YYYY_MM_DD_THH_MM_SS_Z" - ], - "title": "OAIGranularityEnum", - "type": "string" - }, - "OAIPMHEndpoint": { - "additionalProperties": false, - "description": "OAI-PMH (Open Archives Initiative Protocol for Metadata Harvesting) endpoint.\n\n**Purpose:**\n\nModels OAI-PMH endpoints for automated metadata harvesting from heritage repositories.\nOAI-PMH is the dominant protocol for metadata aggregation in the GLAM sector.\n\n**Protocol Overview:**\n\nOAI-PMH defines six verbs:\n1. **Identify** - Repository information\n2. **ListMetadataFormats** - Available metadata formats\n3. **ListSets** - Collection/set hierarchy\n4. **ListIdentifiers** - Record identifiers\n5. **ListRecords** - Full records with metadata\n6. **GetRecord** - Single record by identifier\n\n**Example - Nationaal Archief OAI-PMH:**\n\n```yaml\noai_pmh_endpoint:\n endpoint_name: \"Nationaal Archief OAI-PMH\"\n base_url: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh\"\n protocol_version: \"2.0\"\n repository_name: \"Nationaal Archief\"\n admin_email: \"helpdesk@nationaalarchief.nl\"\n earliest_datestamp: \"2010-01-01\"\n deleted_record_policy: NO\n granularity: YYYY_MM_DD\n metadata_prefixes:\n - oai_dc\n - ese\n - edm\n sets:\n - name: \"Fotografische documenten\"\n spec: \"foto\"\n - name: \"Kaarten en tekeningen\"\n spec: \"kaarten\"\n```\n\n**Harvesting Workflow:**\n\n1. Call Identify to get repository info\n2. Call ListMetadataFormats to discover available formats\n3. Call ListSets to understand collection structure\n4. Call ListRecords with resumptionToken for incremental harvesting\n\n**See Also:**\n\n- OAI-PMH Specification: http://www.openarchives.org/OAI/openarchivesprotocol.html\n- Europeana Harvesting: https://pro.europeana.eu/page/harvesting-and-downloads", - "properties": { - "admin_email": { - "description": "Email address of repository administrator.\n\nFrom OAI-PMH Identify response: <adminEmail>\n\nMay be multiple emails.\n\nExample: \"helpdesk@nationaalarchief.nl\"\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "authentication_method": { - "$ref": "#/$defs/AuthenticationMethodEnum", - "description": "Authentication method required (if is_or_was_required is true).\n\nValues from AuthenticationMethodEnum:\n- NONE: No authentication\n- API_KEY: API key in header or query parameter\n- OAUTH2: OAuth 2.0\n- BASIC: HTTP Basic Authentication\n- IP_WHITELIST: IP address whitelist\n- INSTITUTIONAL: Institutional login (Shibboleth, etc.)\n" - }, - "base_url": { - "description": "Base URL for OAI-PMH requests.\n\nAll OAI-PMH verbs are appended as query parameters to this URL.\n\nExample: \n- Base URL: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh\"\n- Identify request: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh?verb=Identify\"\n", - "type": "string" - }, - "batch_size": { - "description": "Typical number of records per response (before resumption token).\n\nNot part of OAI-PMH spec but useful for harvesting optimization.\n\nExample: 100\n", - "type": [ - "integer", - "null" - ] - }, - "compression": { - "description": "Compression methods supported.\n\nFrom OAI-PMH Identify response: <compression>\n\nExamples: [\"gzip\", \"deflate\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "cors_enabled": { - "description": "Whether CORS (Cross-Origin Resource Sharing) is enabled.\n\nImportant for browser-based JavaScript applications:\n- true: Cross-origin requests allowed\n- false: Same-origin only\n- null: Unknown\n", - "type": [ - "boolean", - "null" - ] - }, - "deleted_record_policy": { - "$ref": "#/$defs/OAIDeletedRecordPolicyEnum", - "description": "Policy for reporting deleted records.\n\nFrom OAI-PMH Identify response: <deletedRecord>\n\nValues:\n- NO: Repository does not maintain deleted records\n- PERSISTENT: Deleted records are kept with \"deleted\" status\n- TRANSIENT: Deleted records are kept for some time\n" - }, - "discovery_provenance": { - "description": "Provenance information about how this endpoint was discovered.\n\nShould include:\n- Discovery date\n- Discovery method (documentation, web scrape, API testing)\n- Verification status\n\nFree-text or structured provenance note.\n", - "type": [ - "string", - "null" - ] - }, - "documentation_url": { - "description": "URL to human-readable documentation.\n\nThis is separate from endpoint_description_url which is machine-readable.\n\nExamples:\n- \"https://pro.europeana.eu/resources/apis/record\"\n- \"https://www.nationaalarchief.nl/onderzoeken/handleiding/api\"\n", - "type": [ - "string", - "null" - ] - }, - "earliest_datestamp": { - "description": "Earliest datestamp available in the repository.\n\nFrom OAI-PMH Identify response: <earliestDatestamp>\n\nRecords with dates before this are not available.\n\nFormat: YYYY-MM-DD or YYYY-MM-DDThh:mm:ssZ (depending on granularity)\n\nExample: \"2010-01-01\"\n", - "type": [ - "string", - "null" - ] - }, - "endpoint_description": { - "description": "Repository description from OAI-PMH Identify response.\n\nMay contain structured XML (oai-identifier, eprints, friends, etc.)\nor free-text description.\n", - "type": [ - "string", - "null" - ] - }, - "endpoint_description_url": { - "description": "URL to machine-readable API documentation.\n\nDCAT: dcat:endpointDescription - \"A description of the service end-point\"\n\nMay be:\n- OpenAPI/Swagger specification (JSON/YAML)\n- OAI-PMH Identify response\n- WSDL document\n- Human-readable documentation page\n\nExamples:\n- \"https://api.example.org/openapi.json\"\n- \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh?verb=Identify\"\n", - "type": [ - "string", - "null" - ] - }, - "endpoint_id": { - "description": "Unique identifier for this data service endpoint.\n\nRecommended format: URI combining platform ID and service type.\n\nExample: \"https://nde.nl/ontology/hc/endpoint/nationaalarchief-oai-pmh\"\n", - "type": "string" - }, - "endpoint_name": { - "description": "Human-readable name for this endpoint.\nExamples: - \"Nationaal Archief OAI-PMH Endpoint\" - \"Heritage Search API\" - \"Image Server (IIP)\"", - "type": "string" - }, - "endpoint_type": { - "description": "Classification of this endpoint from the DataServiceEndpointType taxonomy.\n\n**Instance vs Type Architecture:**\n\nThis slot links an INSTANCE (DataServiceEndpoint) to its TYPE classification\n(DataServiceEndpointType), following the same architectural pattern as\nCustodian/CustodianType.\n\n```\nDataServiceEndpoint (INSTANCE) DataServiceEndpointType (TYPE)\n\u251c\u2500\u2500 endpoint_url \u251c\u2500\u2500 protocol_name\n\u251c\u2500\u2500 status \u251c\u2500\u2500 protocol_version\n\u251c\u2500\u2500 is_or_was_required \u251c\u2500\u2500 specification_url\n\u2514\u2500\u2500 endpoint_type \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba\u2514\u2500\u2500 has_or_had_format\n```\n\n**Why Both `protocol` and `endpoint_type`?**\n\n- `protocol` (enum): Simple string classification for quick filtering\n- `endpoint_type` (class reference): Rich type metadata with SKOS hierarchy,\n specification URLs, and semantic relationships\n\n**Example:**\n\n```yaml\ndata_service_endpoint:\n endpoint_id: \"https://nde.nl/hc/endpoint/na-oai-pmh\"\n endpoint_url: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh\"\n protocol: OAI_PMH # Simple enum (DataServiceProtocolEnum)\n endpoint_type: OAIPMHEndpointType # Rich type (DataServiceEndpointType subclass)\n```\n\nThis pattern mirrors:\n- `custodian_type` enum + `CustodianType` class on `Custodian`\n- `platform_type` enum + `DigitalPlatformType` class on `DigitalPlatform`\n", - "type": [ - "string", - "null" - ] - }, - "granularity": { - "$ref": "#/$defs/OAIGranularityEnum", - "description": "Datestamp granularity supported by the repository.\n\nFrom OAI-PMH Identify response: <granularity>\n\nValues:\n- YYYY_MM_DD: Day-level precision (YYYY-MM-DD)\n- YYYY_MM_DD_THH_MM_SS_Z: Second-level precision (YYYY-MM-DDThh:mm:ssZ)\n\nDetermines format for `from` and `until` parameters in selective harvesting.\n" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_url": { - "description": "Base URL of the service endpoint. DCAT: dcat:endpointURL - \"The root location or primary endpoint of the service\" MIGRATED 2026-01-26: Replaces endpoint_url slot.", - "type": "string" - }, - "is_or_was_required": { - "description": "Whether something is or was required (boolean).\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **Schema.org** | `schema:isRequired` | Maps to - boolean requirement |\n\nNote: slot_uri changed from schema:isRequired to hc:isOrWasRequired\nto resolve OWL ambiguous type warning. schema:isRequired may be\nambiguous when used in different contexts.\n\n**USAGE NOTE**:\n\nThis is a simple boolean slot. For structured requirement information\nwith types and temporal validity, use has_or_had_status with RequirementStatus.\n\n**MIGRATION NOTE**:\n\nReplaces domain-specific boolean slots like:\n- booking_required \u2192 is_or_was_required\n- appointment_required \u2192 is_or_was_required\n- registration_required \u2192 is_or_was_required\n", - "type": [ - "boolean", - "null" - ] - }, - "last_harvested": { - "description": "Date when this endpoint was last successfully harvested.\n\nUseful for tracking incremental harvesting.\n\nISO 8601 format.\n\nExample: \"2025-12-01T10:30:00Z\"\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "last_verified": { - "description": "Date when this endpoint was last verified to be operational.\n\nISO 8601 date format.\n\nExample: \"2025-12-14\"\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "metadata_prefixes": { - "description": "Metadata formats (prefixes) supported by this repository.\n\nFrom OAI-PMH ListMetadataFormats response.\n\nCommon prefixes:\n- **oai_dc**: Dublin Core (required by OAI-PMH specification)\n- **ese**: Europeana Semantic Elements\n- **edm**: Europeana Data Model\n- **mods**: MODS (Metadata Object Description Schema)\n- **marc21**: MARC 21\n- **ead**: Encoded Archival Description\n- **lido**: LIDO (museum objects)\n- **dc**: Dublin Core (variant)\n- **qdc**: Qualified Dublin Core\n\nExample: [\"oai_dc\", \"ese\", \"edm\"]\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "protocol_version": { - "description": "OAI-PMH protocol version supported.\n\nCurrent standard is version 2.0 (since 2002).\nEarlier version 1.x is deprecated but may exist in legacy systems.\n\nValues:\n- \"2.0\" (current standard)\n- \"1.1\" (legacy)\n- \"1.0\" (legacy)\n", - "pattern": "^[12]\\.[0-9]+$", - "type": [ - "string", - "null" - ] - }, - "rate_limit": { - "description": "Rate limit description if applicable.\n\nFree-text description of rate limiting policy.\n\nExamples:\n- \"100 requests per minute\"\n- \"1000 requests per day per API key\"\n- \"No limit\"\n- \"Unknown\"\n", - "type": [ - "string", - "null" - ] - }, - "repository_name": { - "description": "Human-readable name of the repository.\n\nFrom OAI-PMH Identify response: <repositoryName>\n\nExample: \"Nationaal Archief\"\n", - "type": [ - "string", - "null" - ] - }, - "response_format": { - "description": "MIME types of response formats supported by this endpoint.\n\nExamples:\n- [\"application/json\"]\n- [\"application/xml\", \"text/xml\"]\n- [\"image/jpeg\", \"image/png\", \"image/tiff\"]\n- [\"application/ld+json\", \"text/turtle\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "sample_identifier": { - "description": "Example identifier format used by this repository.\n\nFrom OAI-PMH Identify response: <sampleIdentifier> (optional in spec)\n\nHelps understand the identifier scheme.\n\nExample: \"oai:nationaalarchief.nl:2.04.87.01\"\n", - "type": [ - "string", - "null" - ] - }, - "serves_dataset": { - "description": "Dataset(s) that this service provides access to.\n\nDCAT: dcat:servesDataset - \"A collection of data that this data service can distribute\"\n\nReferences to DCAT Dataset identifiers or descriptions.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "sets": { - "description": "Sets (collections) available for selective harvesting.\n\nFrom OAI-PMH ListSets response.\n\nStructured as list of set specifications with names.\n\nExample:\n```yaml\nsets:\n - spec: \"foto\"\n name: \"Fotografische documenten\"\n - spec: \"kaarten\" \n name: \"Kaarten en tekeningen\"\n```\n", - "items": { - "$ref": "#/$defs/OAIPMHSet" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "status": { - "$ref": "#/$defs/EndpointStatusEnum", - "description": "Operational status of the endpoint.\n\nValues from EndpointStatusEnum:\n- ACTIVE: Endpoint is operational\n- DEPRECATED: Endpoint works but will be removed\n- BETA: Endpoint in testing/beta\n- OFFLINE: Endpoint currently unavailable\n- UNKNOWN: Status not verified\n" - }, - "supports_resumption_token": { - "description": "Whether the repository supports resumption tokens for large result sets.\n\nRequired by OAI-PMH spec for ListRecords/ListIdentifiers/ListSets.\nMost compliant repositories support this.\n", - "type": [ - "boolean", - "null" - ] - }, - "total_records": { - "description": "Total number of records in the repository (approximate).\n\nFrom completeListSize attribute in OAI-PMH response (optional).\n\nExample: 1500000\n", - "type": [ - "integer", - "null" - ] - }, - "version": { - "description": "Version of the API or service.\n\nExamples:\n- \"v2\"\n- \"1.0.0\"\n- \"2023-01\"\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "base_url", - "metadata_prefixes", - "has_or_had_url", - "endpoint_id", - "endpoint_name" - ], - "title": "OAIPMHEndpoint", - "type": "object" - }, - "OAIPMHHarvester": { - "additionalProperties": false, - "description": "Technical portal that harvests metadata via OAI-PMH protocol from institutional repositories. **PURPOSE**: Aggregate metadata from OAI-PMH-compliant repositories for unified search and discovery. **CHARACTERISTICS**: - OAI-PMH protocol harvesting - Metadata transformation and normalization - Incremental harvesting and updates - Multi-format metadata support - Repository registry **TECHNICAL FEATURES**: - OAI-PMH 2.0 protocol - Dublin Core harvesting - Metadata prefix support - Set-based harvesting **EXAMPLES**: - BASE - Bielefeld Academic Search Engine - OpenAIRE - CORE (UK) - OAIster", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "TECHNICAL_INFRASTRUCTURE", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "repositories", - "open_access", - "scholarly_communication" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "OAIPMHHarvester", - "type": "object" - }, - "OAIPMHProtocol": { - "additionalProperties": false, - "description": "OAI-PMH protocol for metadata harvesting.\nNote: For endpoint classification, use OAIPMHEndpoint class.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "OAIPMHProtocol", - "type": "object" - }, - "OAIPMHSet": { - "additionalProperties": false, - "description": "Represents an OAI-PMH Set (collection) available for selective harvesting.\n\nSets provide hierarchical organization of records, allowing harvesters\nto request records from specific collections.\n\nSet hierarchies use colon separator: \"category:subcategory:item\"", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "name": { - "type": "string" - }, - "record_count": { - "type": [ - "integer", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "name" - ], - "title": "OAIPMHSet", - "type": "object" - }, - "OCLCIdentifier": { - "additionalProperties": false, - "description": "OCLC WorldCat record number.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "OCLC", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "OCLC Number", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "OCLCIdentifier", - "type": "object" - }, - "ORCIDIdentifier": { - "additionalProperties": false, - "description": "Open Researcher and Contributor ID.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "ORCID", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "ORCID", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "ORCIDIdentifier", - "type": "object" - }, - "ObservedName": { - "additionalProperties": false, - "description": "Name as observed in a source document or system. MIGRATED from has_or_had_alternative_observed_name (Rule 53).", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_code" - ], - "title": "ObservedName", - "type": "object" - }, - "Occupation": { - "additionalProperties": false, - "description": "Military or foreign occupation affecting heritage management.\nHeritage may be intact but access/control restricted.", - "title": "Occupation", - "type": "object" - }, - "OceanariumSubtype": { - "additionalProperties": false, - "description": "Large-scale marine mammal and ocean life facility.\nOften includes dolphins, whales, and large marine exhibits.\n\n**Wikidata**: Q3348580\n**Examples**: Oceanogr\u00e0fic Valencia", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "OceanariumSubtype", - "type": "object" - }, - "OfficialInstitutionType": { - "additionalProperties": false, - "description": "Specialized custodian type for official government institutions - public sector\norganizations with formal governmental authority, heritage mandates, or regulatory\nresponsibilities related to cultural heritage preservation, funding, or advocacy.\n\n**Wikidata Base Concept**: Q2659904 (government organization)\n\n**Scope**:\nOfficial institutions are distinguished by their:\n- Formal government authority and legal mandates\n- Heritage preservation or regulatory responsibilities\n- Public sector funding and accountability\n- Policy-making or enforcement powers\n- National, regional, or local government has_or_had_affiliation\n\n**Key Official Institution Subtypes** (50+ heritage-relevant entities):\n\n**By Administrative Level**:\n- National heritage agencies - Top-level cultural heritage authorities\n- State/provincial heritage departments - Regional heritage agencies\n- Municipal cultural departments - Local government heritage offices\n- Federal cultural ministries - National culture/heritage policy bodies\n- Regional archival services - Provincial/state archival agencies\n\n**By Heritage Function**:\n- **Arts Councils** (Q3400795 instance) - Government arts funding bodies\n - Arts Council England, Dutch Council for Culture, Canada Council for the Arts\n- **Monument/Heritage Commissions** - Historic preservation regulatory bodies\n - Monuments boards, heritage listing authorities\n- **Archival Services** (Q10418057 type) - Government archival agencies\n - National Archives services, state archival departments\n- **Cultural Heritage Agencies** - Integrated heritage management\n - Dutch Cultural Heritage Agency (RCE), Historic England\n- **Museum/Library Services** - Government-operated museum/library networks\n - National museum authorities, public library consortia\n\n**By Mandate Type**:\n- **Regulatory Bodies** - Legal enforcement powers\n - Export licensing authorities, heritage permit issuers\n- **Funding Agencies** - Grant-making cultural authorities\n - Arts councils, heritage lottery funds\n- **Advisory Bodies** - Policy advisory councils\n - Heritage advisory committees, cultural policy forums\n- **Aggregation Platforms** - Government heritage portals\n - Network Digital Heritage (NDE), Europeana national aggregators\n\n**By Jurisdiction**:\n- **National Level**: Ministry of Culture equivalents, national heritage services\n- **State/Provincial**: Provincial heritage platforms, regional archival services\n- **Municipal/Local**: City cultural departments, municipal monument offices\n- **Supranational**: UNESCO heritage committees, EU cultural programs\n\n**Dutch Examples** (TOOI-aligned):\n- Rijksdienst voor het Cultureel Erfgoed (RCE) - National heritage agency\n- Nationaal Archief - National archival service\n- Netwerk Digitaal Erfgoed (NDE) - Digital heritage aggregation platform\n- Provinciale archiefdiensten - Provincial archival services (12 provinces)\n- Rijksmuseum - Government-operated national museum\n\n**International Examples**:\n- Historic England - UK heritage regulatory body\n- Library and Archives Canada - Federal archival/library service\n- Smithsonian Institution - US federal museum/research complex\n- Archives nationales (France) - French national archives\n- Bundesdenkmalamt (Austria) - Federal heritage protection office\n\n**Distinction from Other Types**:\n- vs. ARCHIVE (A): Archival services WITH government mandate/authority (not just archival holdings)\n- vs. MUSEUM (M): Government heritage agencies that OVERSEE museums (not operate collections)\n- vs. NGO (N): Public sector (government-operated) vs. private/civil society\n- vs. RESEARCH_CENTER (R): Primary mandate is heritage administration, not research\n\n**RDF Serialization Example**:\n```turtle\n@prefix hc: <https://nde.nl/ontology/hc/> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix cpov: <http://data.europa.eu/m8g/> .\n@prefix tooi: <https://identifier.overheid.nl/tooi/def/ont/> .\n@prefix schema: <http://schema.org/> .\n@prefix wd: <http://www.wikidata.org/entity/> .\n\n# Dutch Cultural Heritage Agency (RCE)\n<https://w3id.org/heritage/custodian/nl/rce>\n a cpov:PublicOrganisation, tooi:Overheidsorganisatie ;\n hc:custodian_type hc:OfficialInstitutionType ;\n hc:wikidata_entity wd:Q18600731 ; # Rijksdienst voor het Cultureel Erfgoed\n hc:administrative_level \"national\" ;\n hc:heritage_mandate \"preservation\", \"regulation\", \"funding\", \"research\" ;\n hc:regulatory_authority true ;\n hc:funding_programs \"Heritage subsidies\", \"Monument grants\" ;\n hc:oversight_jurisdiction \"Netherlands\" ;\n hc:policy_authority \"National heritage policy\" ;\n skos:prefLabel \"Rijksdienst voor het Cultureel Erfgoed\"@nl ;\n skos:altLabel \"RCE\"@nl, \"Cultural Heritage Agency of the Netherlands\"@en ;\n schema:url <https://www.cultureelerfgoed.nl/> .\n```\n\n**Provenance**:\nThis classification supports multi-aspect modeling: official institutions can simultaneously\nbe CUSTODIANS (managing collections), LEGAL ENTITIES (government agencies), and PLACES\n(headquarters buildings) with independent temporal lifecycles.\n\n**See Also**:\n- Dutch TOOI ontology: `/data/ontology/tooiont.ttl`\n- EU CPOV specification: `/data/ontology/core-public-organisation-ap.ttl`\n- Schema.org GovernmentOrganization: `schema:GovernmentOrganization`", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^(https://nde\\.nl/ontology/hc/type/[a-z-]+/[QP][0-9]+|Q[0-9]+)$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_mandate": { - "description": "A formal mandate or responsibility.", - "items": { - "$ref": "#/$defs/Mandate" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "is_or_was_part_of": { - "description": "Indicates that this entity is or was part of another entity.\n\n**USAGE**:\nRepresents part-whole relationships for:\n- Archives as part of dioceses (DiocesanArchive \u2192 Diocese)\n- Collections as part of institutions\n- Organizational units as part of parent organizations\n- Geographic regions as part of larger regions\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `rico:isOrWasPartOf` - RiC-O part-of relationship\n- **Close**: `schema:isPartOf` - Schema.org containment\n- **Close**: `dcterms:isPartOf` - Dublin Core part-of\n\n**TEMPORAL SEMANTICS**:\nThe \"is_or_was\" pattern (RiC-O convention) indicates that:\n- The relationship may be current (\"is part of\")\n- The relationship may be historical (\"was part of\")\n- Temporal extent can be captured via associated TimeSpan\n\n**INVERSE**: `has_or_had_part`\n", - "items": { - "$ref": "#/$defs/GovernmentHierarchy" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "official_institution_subtype": { - "description": "Specific subtype from the OfficialInstitutionTypeEnum taxonomy (165 official institution types).\nEach value links to a Wikidata entity describing a specific type.\n", - "items": { - "$ref": "#/$defs/OfficialInstitutionTypeEnum" - }, - "type": [ - "array", - "null" - ] - }, - "oversight_jurisdiction": { - "description": "The geographic or sectoral scope of authority for this official institution.\nDefines the boundaries of legal, regulatory, or administrative responsibility.\n\n**Geographic Jurisdiction**:\n- Country names (ISO 3166-1 alpha-2): \"NL\", \"GB\", \"FR\", \"DE\"\n- Regions/provinces: \"Bavaria\", \"Catalonia\", \"North Holland\"\n- Municipalities: \"Amsterdam\", \"Berlin\", \"Paris\"\n\n**Sectoral Jurisdiction** (when applicable):\n- \"movable heritage\" - Portable cultural objects\n- \"immovable heritage\" - Buildings, monuments, archaeological sites\n- \"intangible heritage\" - Traditions, practices, oral heritage\n- \"audiovisual heritage\" - Film, sound, broadcast archives\n- \"digital heritage\" - Born-digital and digitized materials\n\n**Examples**:\n- Historic England: \"England\" (geographic)\n- Bundesdenkmalamt (AT): \"Austria\" + \"immovable heritage\" (combined)\n- Centre national du cin\u00e9ma (FR): \"France\" + \"audiovisual heritage\"\n\n**Ontology Alignment**:\n- Maps to `cpov:spatialCoverage` for geographic scope\n- Maps to `schema:areaServed` in Schema.org\n", - "type": [ - "string", - "null" - ] - }, - "policy_authority": { - "description": "Description of the institution's authority to create, influence, or enforce\nheritage-related policies and regulations.\n\n**Policy Authority Types**:\n- \"Primary policy-maker\" - Creates national/regional heritage policy\n- \"Advisory body\" - Provides expert advice to policy-makers\n- \"Standards setter\" - Establishes professional/technical standards\n- \"Implementing agency\" - Executes policies created by others\n- \"None\" - No policy-making role (operational only)\n\n**Examples**:\n- Ministry of Culture (NL): \"Primary policy-maker for national cultural policy\"\n- RCE (NL): \"Standards setter for heritage conservation methods and advisory to Ministry\"\n- Arts Council England: \"Develops funding policy and advises DCMS on arts strategy\"\n- Municipal archives: \"Implements national archival standards at local level\"\n\n**Ontology Alignment**:\n- Maps to `cpov:PublicOrganisation` governance role\n- Related to `org:hasUnit` for policy-making divisions\n", - "type": [ - "string", - "null" - ] - }, - "regulatory_authority": { - "description": "Boolean indicating whether the institution has legal enforcement powers\nrelated to cultural heritage (e.g., issuing permits, enforcing heritage law,\ndesignating protected monuments).\n\n**TRUE when institution can**:\n- Issue heritage protection designations (monument listing)\n- Grant or deny building/renovation permits for heritage sites\n- Enforce heritage protection laws\n- Levy fines for heritage violations\n- Issue export licenses for cultural objects\n\n**FALSE when institution**:\n- Provides only advisory services (no legal authority)\n- Operates grant programs (funding without enforcement)\n- Manages collections without regulatory role\n\n**Examples**:\n- TRUE: Historic England (building consent powers), Austrian Bundesdenkmalamt\n- FALSE: Arts Council England (funding only), NDE (aggregation platform)\n\n**Ontology Alignment**:\n- Maps to `org:hasUnit` with specialized regulatory role\n- Related to `cpov:PublicOrganisation` governance structures\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "OfficialInstitutionType", - "type": "object" - }, - "OfficialInstitutionTypeEnum": { - "description": "", - "enum": [ - "ADMINISTRATIVE_COURT", - "ADMINISTRATIVE_TERRITORIAL_ENTITY", - "ADMINISTRATIVE_TERRITORIAL_ENTITY_TYPE", - "ADVISORY_BOARD", - "ADVISORY_GROUP", - "AGRICULTURAL_COOPERATIVE", - "AGRICULTURAL_ORGANIZATION", - "APPELLATE_COURT", - "ARTS_BOARD", - "ARTS_BOARD_1", - "ARTS_CENTER", - "ASSEMBLY", - "ASSOCIATION_FOOTBALL_FEDERATION", - "AUCTION_COOPERATIVE", - "AUCTION_HOUSE", - "BICAMERAL_LEGISLATURE", - "BRANCH", - "BRANCH_OFFICE", - "BUSINESS_AND_PROFESSIONAL_ASSOCIATIONS_UNIONS", - "CENTRAL_ADMINISTRATION", - "CHAMBER_OF_COMMERCE", - "CHAMBER_OF_COMMERCE_AND_INDUSTRY", - "COALITION", - "COMMITTEE", - "COMMUNITY", - "CONSERVATORY", - "CONSORTIUM", - "COOPERATIVE_FOR_PRODUCTION", - "CORPORATION", - "CORPORATION_SOLE", - "COUNCIL", - "CO\u00d6PERATIE", - "CO\u00d6PERATIE_1", - "CO\u00d6PERATIE_UITGESLOTEN_VAN_AANSPRAKELIJKHEID", - "CO\u00d6PERATIVE", - "DAIRY_COOPERATIVE", - "DEFENCE_MINISTRY", - "DEFUNCT_ORGANIZATION", - "DEPARTMENT", - "DIVISION", - "DUTCH_ADVISORY_BOARD", - "DUTCH_GOVERNMENT_AGENCY", - "DUTCH_MUNICIPAL_COUNCIL", - "DUTCH_REGIONAL_ENVIRONMENTAL_PROTECTION_AGENCY", - "DYAD", - "ECONOMIC_AFFAIRS_MINISTRY", - "ECONOMIC_AGENT", - "ENVIRONMENT_MINISTRY", - "EXECUTIVE_BOARD", - "EXECUTIVE_BRANCH", - "EXECUTIVE_BRANCH_1", - "EXTRAORDINARY_COURT", - "FILM_CLASSIFICATION_BOARD", - "FILM_COMMISSION", - "FINANCE_MINISTRY", - "FOREIGN_AFFAIRS_MINISTRY", - "FOUNDATION", - "GENERAL_LIGHTHOUSE_AUTHORITY", - "GOVERNING_BODY", - "GOVERNMENT", - "GOVERNMENT_ADMINISTRATION", - "GOVERNMENT_AGENCY", - "GOVERNMENT_ARCHIVE", - "GOVERNMENT_ORGANIZATION", - "GRAND_LODGE", - "GROUP_OF_HUMANS", - "GROUP_PURCHASING_ORGANIZATION", - "HIGH_COUNCIL_OF_STATE", - "INFRASTRUCTURE_MINISTRY", - "INSPECTORATE", - "INSTITUTION", - "INTERCOMMUNALE", - "INTERGOVERNMENTAL_ORGANIZATION", - "INTERIOR_MINISTRY", - "INTERNATIONAL_ASSOCIATION", - "INTERNATIONAL_ORGANIZATION", - "INTERNATIONAL_SPORT_GOVERNING_BODY", - "ISOLATED_HUMAN_GROUP", - "JUSTICE_MINISTRY", - "JUVENILE_POLITICAL_ORGANIZATION", - "LEGISLATIVE_HOUSE", - "LEGISLATURE", - "LIAUDIES_KONSERVATORIJA", - "LIBRARY_NETWORK", - "LISTED_COMPANY", - "MAIN_ORGANIZATION", - "MANAGEMENT_COMPANY", - "MANUFACTURER", - "MINISTRY_OF_EDUCATION_AND_CULTURE", - "MINISTRY_OF_HEALTH", - "MINISTRY_OF_SCIENCE", - "MINISTRY_OF_THE_NETHERLANDS", - "MULTICAMERAL_LEGISLATURE", - "MUNICIPAL_ARTS_CENTRE", - "MUNICIPAL_COUNCIL", - "MUNICIPALITY", - "MUNICIPALITY_OF_THE_NETHERLANDS", - "MUSEO_NACIONAL_DE_BELLAS_ARTES", - "NATIONAL_TRADE_UNION_CENTER", - "NETWORK_ORGANIZATION", - "OMBUDSMAN", - "ORDINARY_COURT", - "ORGAN_OF_STATE", - "ORGANIZATION", - "ORGANIZATIONAL_SUBDIVISION", - "PANEL", - "PARENT_ORGANIZATIONUNIT", - "PARLIAMENT", - "PERSON_OR_ORGANIZATION", - "POLICE_STATION", - "POLITICAL_INSTITUTION", - "POLITICAL_ORGANIZATION", - "POLITICAL_PARTY", - "POLITICAL_PARTY_WING", - "POLITY", - "POPULAR_ASSEMBLY", - "PRESSURE_GROUP", - "PRODUCER_COOPERATIVE", - "PROFESSIONAL_ASSOCIATION", - "PROVIDER", - "PROVINCE", - "PROVINCE_OF_THE_NETHERLANDS", - "PUBLIC_AUTHORITY", - "PUBLIC_BODY_OF_THE_NETHERLANDS", - "PUBLIC_FORCE", - "PUBLIC_PROSECUTORS_OFFICE", - "PUBLISHING_COMPANY", - "PURCHASING_COOPERATIVE", - "QUANGO", - "RECHTSPERSOON_MET_WETTELIJKE_TAAK", - "RECORDING_STUDIO", - "REGIONAL_ARTS_BOARD", - "REGISTRATION_AUTHORITY", - "REGULATORY_COLLEGE", - "RELIGIOUS_CORPORATION", - "SELF_REGULATORY_ORGANIZATION", - "SOCIAL_GROUP", - "SOCIAL_PURPOSE_COMPANY", - "SOCIAL_STRUCTURE", - "SPECIALIZED_COURT", - "SPORT_ASSOCIATION", - "SPORTS_GOVERNING_BODY", - "SPORTS_ORGANIZATION", - "STATE_OWNED_ENTERPRISE", - "STATES_GENERAL", - "STATISTICAL_OFFICE_OF_GERMAN_STATES", - "STATISTICAL_SERVICE", - "STATUTORY_AUTHORITY", - "STATUTORY_CORPORATION", - "STICHTING", - "SUBJECT_OF_INTERNATIONAL_LAW", - "SUBSIDIARY_ORGANIZATION", - "SUPRAORGANIZATION", - "SUPREME_COURT", - "THE_CROWN", - "THE_CROWN_1", - "TOP_LEVEL_UMBRELLA_ORGANIZATION", - "TRADE_UNION_FEDERATION", - "UMBRELLA_ORGANIZATION", - "UPPER_HOUSE", - "WATER_BOARD", - "WATER_BOARD_IN_THE_NETHERLANDS", - "WINERY", - "YOUTH_ORGANISATION", - "ZELFSTANDIG_BESTUURSORGAAN" - ], - "title": "OfficialInstitutionTypeEnum", - "type": "string" - }, - "OfficialName": { - "additionalProperties": false, - "description": "Label type for legal/official organization names.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_code" - ], - "title": "OfficialName", - "type": "object" - }, - "OgImageUrlClaim": { - "additionalProperties": false, - "description": "Open Graph image URL (social sharing image).\nExpected in: <meta property='og:image'>.\nOften the logo or a representative image.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "OgImageUrlClaim", - "type": "object" - }, - "OldestMapClaim": { - "additionalProperties": false, - "description": "Reference to oldest map in collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "OldestMapClaim", - "type": "object" - }, - "OnlineAcademicLibrary": { - "additionalProperties": false, - "description": "Online academic library providing scholarly resources and services.\n\n**PURPOSE**: Support academic research and teaching with access to\nscholarly journals, databases, and research materials.\n\n**CHARACTERISTICS**:\n- Scholarly journal access\n- Database subscriptions\n- Research support services\n- Citation management tools\n\n**EXAMPLES**: JSTOR, Project MUSE, university library portals", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q56316865" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "REPOSITORY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "OnlineAcademicLibrary", - "type": "object" - }, - "OnlineArtGallery": { - "additionalProperties": false, - "description": "Online art gallery providing digital access to artworks.\n\n**PURPOSE**: Showcase artworks in digital form with high-resolution\nimages, contextual information, and virtual exhibition features.\n\n**CHARACTERISTICS**:\n- High-resolution artwork images\n- Artist and provenance information\n- Virtual exhibition features\n- Educational content\n\n**EXAMPLES**: Rijksstudio, Google Arts & Culture partner galleries", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q7094057" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "VIRTUAL_HERITAGE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "OnlineArtGallery", - "type": "object" - }, - "OnlineDatabase": { - "additionalProperties": false, - "description": "Database accessible from a network, including from the Internet.\n\n**PURPOSE**: Provide networked access to structured data collections\nwith search and retrieval capabilities.\n\n**CHARACTERISTICS**:\n- Network accessibility\n- Structured data\n- Query interfaces\n- Real-time updates\n\n**EXAMPLES**: Collection management system public interfaces, catalog databases", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q7094076" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "DISCOVERY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "OnlineDatabase", - "type": "object" - }, - "OnlineDigitalMusicalDocumentLibrary": { - "additionalProperties": false, - "description": "Archive of digitized music documents made available online.\n\n**PURPOSE**: Provide access to digitized sheet music, musical manuscripts,\naudio recordings, and music-related documents.\n\n**CHARACTERISTICS**:\n- Digitized sheet music\n- Musical manuscript collections\n- Audio recordings\n- Music metadata standards\n\n**EXAMPLES**: IMSLP, Europeana Music, national music archives", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q59826893" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "REPOSITORY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "OnlineDigitalMusicalDocumentLibrary", - "type": "object" - }, - "OnlineLibrary": { - "additionalProperties": false, - "description": "Digital library service providing online access to library collections\nand services.\n\n**PURPOSE**: Extend library services to online users with digital\nlending, reading rooms, and reference services.\n\n**CHARACTERISTICS**:\n- Digital lending services\n- Online reading rooms\n- Remote access to licensed content\n- Integrated library services\n\n**EXAMPLES**: OverDrive, Libby, university online library portals", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q12328550" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "REPOSITORY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "OnlineLibrary", - "type": "object" - }, - "OnlineNewsArchive": { - "additionalProperties": false, - "description": "Archive of newspapers, magazines, and other periodicals that can be consulted online. Online news archives provide digital access to historical and current news publications, often through searchable databases. They may include digitized historical newspapers or born-digital news content.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "platform_type_id", - "platform_type_name", - "has_or_had_label" - ], - "title": "OnlineNewsArchive", - "type": "object" - }, - "OnlineNewsArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by OnlineNewsArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "OnlineNewsArchiveRecordSetType", - "type": "object" - }, - "OnlineToPhysicalConversion": { - "additionalProperties": false, - "description": "Conversion rate measuring website visitors who subsequently visit physically.\n**INDUSTRY BENCHMARKS**: - Average: 0.5-2% - Strong digital presence: 3-5%\n**CALCULATION**: (Physical Visits from Web / Website Visitors) \u00d7 100", - "properties": { - "conversion_source_population": { - "description": "The group being measured (denominator) in a conversion rate calculation.\n\nThis identifies the total population from which conversions are measured.\n", - "type": [ - "string", - "null" - ] - }, - "conversion_target_action": { - "description": "The action being measured (numerator) in a conversion rate calculation.\n\nThis identifies what action constitutes a \"conversion\" from the source population.\n", - "type": [ - "string", - "null" - ] - }, - "conversion_type_label": { - "description": "Human-readable label for this conversion rate type.\n\nExamples: \"Visitor to Purchase\", \"Email to Click\", \"Online to Physical Visit\"\n", - "type": "string" - }, - "industry_benchmark_high": { - "description": "High end of the industry benchmark range for this metric.\n\nExpressed as a decimal (e.g., 0.40 = 40%).\nUsed with industry_benchmark_low to define the typical performance range.\n", - "type": [ - "number", - "null" - ] - }, - "industry_benchmark_low": { - "description": "Low end of the industry benchmark range for this metric.\n\nExpressed as a decimal (e.g., 0.15 = 15%).\nUsed with industry_benchmark_high to define the typical performance range.\n", - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "conversion_type_label" - ], - "title": "OnlineToPhysicalConversion", - "type": "object" - }, - "OpenAccessCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Open access materials.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "FreeArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by FreeArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "OpenAccessCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "OpenAccessCollection", - "type": "object" - }, - "OpenAccessPortal": { - "additionalProperties": false, - "description": "Portal providing open access to digital objects and metadata, emphasizing public availability and reuse. **PURPOSE**: Maximize public access to heritage materials through open licenses, open data, and community contribution. **CHARACTERISTICS**: - Open access and open licenses (CC0, CC-BY) - Community contribution and editing - Bulk download and API access - Emphasis on reuse and remix - Transparent provenance **EXAMPLES**: - Wikimedia Commons - Internet Archive - HathiTrust (public domain) - Europeana (rights-filtered) - OpenGLAM initiatives", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "ACCESS_MODEL", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "open_access", - "public_domain", - "commons" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "OpenAccessPortal", - "type": "object" - }, - "OpenAccessRepository": { - "additionalProperties": false, - "description": "Freely accessible repository of research publications and data.\n\n**PURPOSE**: Provide open access to scholarly publications, research data,\nand educational resources without subscription barriers.\n\n**CHARACTERISTICS**:\n- Free access to full-text content\n- Open licenses (CC-BY, CC0)\n- OAI-PMH harvesting support\n- Metadata standards compliance\n\n**EXAMPLES**: arXiv, PubMed Central, Zenodo, institutional repositories", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q7096323" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "REPOSITORY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "OpenAccessRepository", - "type": "object" - }, - "OpenDataPortal": { - "additionalProperties": false, - "description": "Website for distributing open data.\n\n**PURPOSE**: Provide access to heritage data in open, reusable formats\nwith clear licensing and documentation.\n\n**CHARACTERISTICS**:\n- Open licenses (CC0, CC-BY)\n- Machine-readable formats\n- API access\n- Dataset documentation\n\n**EXAMPLES**: data.overheid.nl, data.gov.uk cultural datasets", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q27031827" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "DISCOVERY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "OpenDataPortal", - "type": "object" - }, - "OpenGeodataPortal": { - "additionalProperties": false, - "description": "Geoportal offering data as an open data portal.\n\n**PURPOSE**: Provide open access to geographic data with clear\nlicensing for reuse and redistribution.\n\n**CHARACTERISTICS**:\n- Open spatial data\n- INSPIRE compliance\n- API access\n- Bulk download\n\n**EXAMPLES**: National open geodata portals, PDOK (Netherlands)", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q124515090" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "RESEARCH", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "OpenGeodataPortal", - "type": "object" - }, - "OpenSearch": { - "additionalProperties": false, - "description": "Classification for OpenSearch endpoints.\n\n**Protocol**: OpenSearch\n**Purpose**: Federated search description and results\n**Standard**: https://opensearch.org/\n\n**Heritage Sector Usage**:\n\nOpenSearch enables federated search across multiple sources:\n- Browser search integration\n- Cross-repository discovery\n- Search suggestions\n\n**Components**: Description document, RSS/Atom results", - "properties": { - "has_or_had_description": { - "description": "Description of what this endpoint type represents.\n\nSKOS: definition for the meaning of the concept.\n\nShould explain:\n- What protocol/standard this type implements\n- Primary use cases\n- Target audience (harvesters, researchers, developers)\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_format": { - "description": "The format or file type of a resource or service response.\n\n**USAGE**:\nUsed for:\n- Response formats from APIs (JSON, XML, RDF)\n- File formats for documents (PDF, DOCX, TXT)\n- Media formats (JPEG, MP3, MP4)\n- Transcript formats (VTT, SRT, plain text)\n- Subtitle formats (WebVTT, SRT, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property\n- **Close**: `dct:format` - Dublin Core format\n- **Close**: `schema:encodingFormat` - Schema.org encoding format\n\n**Range**: `uriorcurie` (Rule 54)\nBroadened range to accept URI/CURIE references to format specifications.\nThis allows linking to IANA media types, format registries, or internal\nformat classes while resolving OWL ambiguous type warnings.\n\nClasses can narrow to specific format enums/classes via slot_usage.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Unique identifier for this endpoint type.\n\nFormat: URI within the NDE Heritage Custodian ontology namespace.\n\nExample: \"https://nde.nl/ontology/hc/endpoint-type/oai-pmh\"\n", - "type": "string" - }, - "has_or_had_method": { - "description": "A method associated with an activity, process, or entity.\n\n**USAGE**:\nUsed for:\n- HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod\n- Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod\n- API interaction methods\n\n**BROADENED RANGE**:\nRange broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "heritage_sector_usage": { - "description": "Description of how this endpoint type is used in the heritage sector.\n\nSKOS: scopeNote for usage context.\n\nShould explain:\n- Primary use cases in GLAM institutions\n- Which institution types commonly use this\n- Integration with aggregators (Europeana, DPLA, etc.)\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_used_in": { - "description": "The context in which something is used.", - "items": { - "$ref": "#/$defs/HeritageSector" - }, - "type": [ - "array", - "null" - ] - }, - "narrower_type": { - "description": "Child/narrower endpoint types in the hierarchy.\n\nSKOS: narrower for hierarchical relationship.\n\nExample: DataServiceEndpointType narrower includes OAIPMHEndpointType\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "protocol_name": { - "description": "Name of the protocol or standard this endpoint type implements.\n\nDublin Core: conformsTo for standard compliance.\n\nExamples:\n- \"OAI-PMH\" (Open Archives Initiative Protocol for Metadata Harvesting)\n- \"IIIF Image API\" (International Image Interoperability Framework)\n- \"SPARQL\" (SPARQL Protocol and RDF Query Language)\n- \"REST\" (Representational State Transfer)\n- \"SRU\" (Search/Retrieve via URL)\n", - "type": "string" - }, - "protocol_version": { - "description": "Version of the protocol this endpoint type supports.\n\nSchema.org: version for protocol version.\n\nExamples:\n- \"2.0\" (OAI-PMH)\n- \"3.0\" (IIIF Image API)\n- \"1.1\" (SPARQL)\n", - "type": [ - "string", - "null" - ] - }, - "related_types": { - "description": "Related endpoint types (non-hierarchical relationship).\n\nSKOS: related for associative relationships.\n\nExamples:\n- OAIPMHEndpointType related to AtomFeedType (both for syndication)\n- IIIFImageAPIType related to IIIFPresentationAPIType (same family)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specification_url": { - "description": "URL to the official specification document for this protocol.\n\nSchema.org: documentation for specification reference.\n\nExamples:\n- \"http://www.openarchives.org/OAI/openarchivesprotocol.html\" (OAI-PMH)\n- \"https://iiif.io/api/image/3.0/\" (IIIF Image API 3.0)\n- \"https://www.w3.org/TR/sparql11-protocol/\" (SPARQL 1.1)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "type_name": { - "description": "Human-readable name for this endpoint type.\n\nSKOS: prefLabel for preferred human-readable name.\n\nExamples:\n- \"OAI-PMH Endpoint\"\n- \"Search API\"\n- \"IIIF Image Server\"\n- \"SPARQL Endpoint\"\n", - "type": "string" - } - }, - "required": [ - "has_or_had_identifier", - "type_name", - "protocol_name" - ], - "title": "OpenSearch", - "type": "object" - }, - "OpeningHour": { - "additionalProperties": false, - "description": "Opening hours specification for a location or service.\n\n**USAGE**:\nUsed for:\n- Visiting hours\n- Research room hours\n- Service availability", - "properties": { - "closes": { - "description": "Closing time (HH:MM format)", - "type": [ - "string", - "null" - ] - }, - "day_of_week": { - "description": "Day of the week (Monday, Tuesday, etc.)", - "type": [ - "string", - "null" - ] - }, - "opens": { - "description": "Opening time (HH:MM format)", - "type": [ - "string", - "null" - ] - }, - "valid_from": { - "description": "Start date of this schedule", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "valid_through": { - "description": "End date of this schedule", - "format": "date", - "type": [ - "string", - "null" - ] - } - }, - "title": "OpeningHour", - "type": "object" - }, - "OpeningHoursClaim": { - "additionalProperties": false, - "description": "Opening hours / visiting times.\nExpected in: visit page, contact page, structured data", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "OpeningHoursClaim", - "type": "object" - }, - "OpennessStanceEnum": { - "description": "Organization's overall philosophical stance on data openness.\n\nThis captures the ADVOCACY and ASPIRATION dimension beyond just\nthe specific licenses applied. It represents what the organization\nstrives for and promotes in the broader community.", - "enum": [ - "STRONG_OPEN_ADVOCATE", - "OPEN_BY_DEFAULT", - "MIXED_POLICY", - "CLOSED_BY_DEFAULT", - "FULLY_PROPRIETARY" - ], - "title": "OpennessStanceEnum", - "type": "string" - }, - "OperationalClaim": { - "additionalProperties": false, - "description": "Claim types for operational information.\nIncludes hours, admission, and accessibility.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "OperationalClaim", - "type": "object" - }, - "OperationalRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Operational documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "InstitutionalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by InstitutionalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "OperationalRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "OperationalRecordSeries", - "type": "object" - }, - "OperationalUnit": { - "additionalProperties": false, - "description": "Operational unit.", - "properties": { - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": [ - "string", - "null" - ] - } - }, - "title": "OperationalUnit", - "type": "object" - }, - "OpticalMicroscopy": { - "additionalProperties": false, - "description": "Examination using visible light microscopy.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "OpticalMicroscopy", - "type": "object" - }, - "OralHistorian": { - "additionalProperties": false, - "description": "Oral historian collecting and preserving spoken testimonies and memories.\n\n**Official Title vs De Facto Work**:\nFormally conducts interviews, but often involved in transcription,\narchiving, community engagement, and educational use of recordings.\n\n**Common Variants**:\n- Oral History Interviewer\n- Community Historian\n- Testimony Collector\n- Memory Worker\n\n**Typical Domains**: Historical societies, community archives, museums, heritage organizations\n\n**Typical Responsibilities**:\n- Conducting oral history interviews\n- Transcribing and indexing recordings\n- Archiving audio/video recordings\n- Community outreach for narrators\n- Creating finding aids for collections\n- Educational programming using testimonies", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "OralHistorian", - "type": "object" - }, - "OralHistoryCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Community oral histories.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "CommunityArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by CommunityArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "OralHistoryCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "OralHistoryCollection", - "type": "object" - }, - "OralHistorySeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Oral history interviews.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "SoundArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by SoundArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "OralHistorySeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "OralHistorySeries", - "type": "object" - }, - "Organization": { - "additionalProperties": false, - "description": "Social entity established to meet needs or pursue goals. In the heritage context, this is a broad category encompassing any formal organizational structure that may have archival or heritage custodial responsibilities. More specific organization types should be preferred when available.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "Organization", - "type": "object" - }, - "OrganizationAgent": { - "additionalProperties": false, - "description": "Agent type for organizations.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_code" - ], - "title": "OrganizationAgent", - "type": "object" - }, - "OrganizationBranch": { - "additionalProperties": false, - "description": "Formal organizational branch or sub-organization of a heritage custodian\nthat operates at a specific physical location (AuxiliaryPlace).\n\n**CRITICAL DISTINCTION FROM OrganizationalStructure**:\n\n| OrganizationBranch | OrganizationalStructure |\n|-------------------|------------------------|\n| **Formal** branches with administrative status | **Informal** operational units |\n| Tied to PHYSICAL LOCATION (AuxiliaryPlace) | May or may not have fixed location |\n| Semi-autonomous (may have own budget, staff) | Part of main organizational hierarchy |\n| Examples: Regional archive, branch library | Examples: Department, team, division |\n\n**W3C ORG ALIGNMENT**:\n\n`org:OrganizationalUnit` - \"An Organization such as a University Support Unit \nwhich is part of some larger FormalOrganization and only has full recognition \nwithin the context of that FormalOrganization.\"\n\nKey properties:\n- `org:unitOf` - links unit to parent organization\n- `org:hasSite` - links organization to physical site\n- `org:hasSubOrganization` - links to sub-branches\n\n**THREE-TIER ORGANIZATIONAL MODEL**:\n\n1. **Custodian** (hub): The main heritage institution\n2. **OrganizationBranch** (formal sub-organization): \n - Located at AuxiliaryPlace\n - Semi-autonomous branch\n3. **OrganizationalStructure** (informal units):\n - Departments, teams within branch or main org\n - Can be assigned to branch via has_operational_unit\n\n**RELATIONSHIP PATTERN**:\n\n```\nCustodian (hub)\n \u2502\n \u251c\u2500\u2500 place_designation \u2192 CustodianPlace (main headquarters)\n \u2502 \u2514\u2500\u2500 auxiliary_places \u2192 AuxiliaryPlace (branch sites)\n \u2502 \u2514\u2500\u2500 hosts_branch \u2192 OrganizationBranch (THIS CLASS)\n \u2502 \u2514\u2500\u2500 has_operational_unit \u2192 OrganizationalStructure\n \u2502\n \u2514\u2500\u2500 organizational_structure \u2192 OrganizationalStructure (main org units)\n```\n\n**USE CASES**:\n\n1. **Regional Archive Branches**:\n - National Archives \u2192 Regional Office Noord-Holland\n - Regional office has own staff, reading room, collections\n \n2. **University Library Branches**:\n - Main library \u2192 Science Library \u2192 Medical Library\n - Each branch at different campus location\n \n3. **Museum Satellite Galleries**:\n - Main museum \u2192 Contemporary Art Wing (off-site)\n - Separate building, curated exhibitions\n \n4. **Conservation/Research Centers**:\n - Main institution \u2192 Conservation Lab (different building)\n - Specialized facility with own staff\n\n**Example - National Archives Branch**:\n```yaml\nAuxiliaryPlace:\n place_name: \"Regionaal Historisch Centrum Noord-Holland\"\n auxiliary_place_type: BRANCH_OFFICE\n hosts_branch:\n - has_or_had_identifier: \"https://nde.nl/ontology/hc/branch/na-rhc-noord-holland\"\n has_or_had_label: \"RHC Noord-Holland\"\n branch_type: REGIONAL_OFFICE\n has_operational_unit:\n - unit_name: \"Reading Room Services\"\n - unit_name: \"Digitization Team\"\n is_branch_of: \"https://nde.nl/ontology/hc/nl-na\"\n```\n\n**DISTINCTION FROM schema:branchOf**:\n\nSchema.org `branchOf` links commercial branches (e.g., bank branches).\n`org:unitOf` is more appropriate for heritage institutions as it:\n- Models public sector organizational hierarchies\n- Allows for semi-autonomous units\n- Integrates with formal organizational structures", - "properties": { - "contact_point": { - "description": "Contact information for this branch.\n\nvCard: hasEmail for organizational contact.\nAlso compatible with Schema.org contactPoint.\n\nCan be email, phone, or URL.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_branch": { - "items": { - "$ref": "#/$defs/OrganizationBranch" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_head": { - "description": "Person who heads or headed this organizational unit.\n**W3C ORG Alignment**: - `org:headOf` links person TO organization (person \u2192 org) - This slot is the INVERSE: links organization TO person (org \u2192 person) - Semantically: \"This organization has (or had) this person as head\"\n**RiC-O Pattern**: Follows `hasOrHad*` temporal naming convention from Records in Contexts Ontology, indicating the relationship may be current or historical.\n**Usage**: - OrganizationBranch: Branch director or manager - Department: Department head - Team: Team lead\nCREATED: 2026-01-14 from branch_head migration per Rule 53.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "type": "string" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_branch_of": { - "description": "Parent Custodian or OrganizationBranch that this branch belongs to.\n\nW3C ORG: org:unitOf - \"Indicates an Organization of which this Unit is a part\"\n\nCan link to:\n- Custodian (direct branch of main institution)\n- OrganizationBranch (sub-branch of another branch)\n\nEnables hierarchical branch structures:\n- National Archives \u2192 Regional Branch \u2192 Local Office\n", - "type": "string" - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "located_at": { - "description": "Physical location where this organizational unit operates.\n\n**Range**: `Any` (2026-01-16) - Allows string values and AuxiliaryPlace/Location class instances.\nClasses narrow this to specific location types via slot_usage.\n\nNote: slot_uri changed from org:basedAt to hc:locatedAt\nto resolve OWL ambiguous type warning. org:basedAt may have\ndifferent expectations in the W3C Org ontology.\n\nAlternative: `org:hasSite` - \"Indicates a site at which the Organization \nhas some presence even if only indirect.\"\n\n**Use Cases**:\n\n1. **Departments at Branch Locations**:\n - Conservation Team \u2192 located at Amersfoort Depot\n - Digitization Team \u2192 located at off-site facility\n\n2. **Teams Spanning Multiple Locations**:\n - IT Department \u2192 located at main building AND data center\n - Public Services \u2192 located at main reading room AND annex\n\n3. **Temporary Location Assignments**:\n - Exhibition Team \u2192 temporarily at partner venue\n - Collections \u2192 temporarily at storage during renovation\n\n**Relationship Pattern**:\n\nTwo-way linking between locations and organizational units:\n\n```\nAuxiliaryPlace\n \u2514\u2500\u2500 hosts_branch \u2192 OrganizationBranch\n \u2514\u2500\u2500 has_operational_unit \u2192 OrganizationalStructure\n\nOrganizationalStructure\n \u2514\u2500\u2500 located_at \u2192 AuxiliaryPlace (optional)\n```\n\n**Optional Slot**:\n\nMany organizational units don't have fixed locations:\n- Strategic Planning Committee (meets virtually)\n- Research Fellowship Program (no physical space)\n\nOnly use when organizational unit has identifiable physical location.\n\n**Example - Conservation Division**:\n```yaml\nOrganizationalStructure:\n unit_name: \"Conservation Division\"\n unit_type: DIVISION\n located_at:\n - place_name: \"Conservation Lab - Main Building\"\n - place_name: \"Climate-Controlled Storage - Depot Amersfoort\"\n```", - "items": { - "$ref": "#/$defs/AuxiliaryPlace" - }, - "type": [ - "array", - "null" - ] - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label", - "has_or_had_type", - "is_branch_of", - "refers_to_custodian" - ], - "title": "OrganizationBranch", - "type": "object" - }, - "OrganizationBranchTypeEnum": { - "description": "Types of formal organizational branches for heritage custodians.\n\nThese represent formal sub-organizations that operate at physical sites,\nwith some degree of administrative autonomy (own staff, budget, services).\n\nDistinguished from OrganizationalStructure (informal units like departments/teams).\n\nAligns with W3C ORG org:OrganizationalUnit concept.", - "enum": [ - "REGIONAL_OFFICE", - "BRANCH_LIBRARY", - "SATELLITE_GALLERY", - "CONSERVATION_LAB", - "DIGITIZATION_CENTER", - "RESEARCH_CENTER", - "EDUCATION_CENTER", - "ADMINISTRATIVE_OFFICE", - "STORAGE_MANAGEMENT", - "EXHIBITION_SPACE", - "VISITOR_SERVICES", - "COLLECTIONS_CENTER" - ], - "title": "OrganizationBranchTypeEnum", - "type": "string" - }, - "OrganizationUnit": { - "additionalProperties": false, - "description": "An organizational unit or department.\n\n**USAGE**:\nUsed for:\n- Departments\n- Divisions\n- Teams\n- Units", - "properties": { - "parent_organization": { - "description": "Parent organization", - "type": [ - "string", - "null" - ] - }, - "unit_name": { - "description": "Name of the organizational unit", - "type": "string" - }, - "unit_type": { - "description": "Type of unit (DEPARTMENT, DIVISION, TEAM)", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "unit_name" - ], - "title": "OrganizationUnit", - "type": "object" - }, - "Organization__identifier_optional": { - "additionalProperties": false, - "description": "Social entity established to meet needs or pursue goals. In the heritage context, this is a broad category encompassing any formal organizational structure that may have archival or heritage custodial responsibilities. More specific organization types should be preferred when available.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "Organization", - "type": "object" - }, - "OrganizationalChangeEvent": { - "additionalProperties": false, - "description": "An event documenting organizational change in a heritage custodian's structure. Tracks: - Mergers (multiple units combining into one) - Splits (one unit dividing into multiple) - Dissolutions (unit ceasing to exist) - Reorganizations (structural changes, reporting line shifts) - Renamings (unit name changes without functional change) - Transfers (unit moving between parent departments) - Relocations (physical location changes) **Why OrganizationalChangeEvent?**: - Provides structured provenance for organizational history - Documents rationale for changes (budget cuts, strategic reorganization, etc.) - Links dissolved units to successor units - Tracks affected staff, collections, and functions - Records geographic/territorial impacts (jurisdiction changes) **Integration with Place Classes**: | Slot | Class | Purpose | |------|-------|---------| | is_or_was_located_at | CustodianPlace | Where event occurred (board meeting, ceremony) | | from_location | CustodianPlace | Previous location (RELOCATION) | | to_location | CustodianPlace | New location (RELOCATION) | | has_or_had_affected_territory | GeoSpatialPlace | Geographic areas affected (jurisdictions, boundaries) | CustodianPlace provides nominal references (\"the boardroom\"), while GeoSpatialPlace provides precise coordinates (lat/lon, WKT polygons). **TOOI Alignment**: Following TOOI pattern where organizational events (Wijzigingsgebeurtenis) can affect administrative territories (BestuurlijkeRuimte). **Integration with OrganizationalStructure**: - OrganizationalStructure.valid_to date = OrganizationalChangeEvent.event_date (for dissolved units) - OrganizationalStructure.valid_from date = OrganizationalChangeEvent.event_date (for created units) - Change event provides the \"why\" (rationale), temporal validity provides the \"when\" (dates)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_documentation": { - "description": "Links to documentation resources for a service, API, platform, or system.\n**SEMANTIC PATTERN**:\nThis slot follows the RiC-O temporal predicate pattern (has_or_had_*) to indicate that documentation may change over time (versioned docs, deprecated documentation, etc.).\n**REPLACES**:\n- `api_documentation` - URL to API documentation - Other domain-specific documentation URL slots\n**RANGE OPTIONS**:\n- uri: Simple URL to documentation - Documentation: Structured documentation with metadata\nClasses should use slot_usage to specify appropriate range.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_origin": { - "anyOf": [ - { - "$ref": "#/$defs/CustodianPlace" - }, - { - "type": "null" - } - ], - "description": "Origin location, source, or starting point. MIGRATED from from_location per Rule 53. Follows RiC-O naming convention." - }, - "has_or_had_rationale": { - "description": "The rationale or justification for a decision or mapping.\n\n**USAGE**:\nUsed for:\n- Mapping rationale (why an entity was mapped to Wikidata)\n- Decision justifications\n- Explanation notes\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:used` (per 2026-01-26 update)\n- **Close**: `skos:note` - SKOS note (DatatypeProperty)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/OrganizationalChangeEventTypeEnum" - }, - "type": "array" - }, - "is_or_was_transferred_to": { - "anyOf": [ - { - "$ref": "#/$defs/CustodianPlace" - }, - { - "type": "null" - } - ], - "description": "New location after a relocation or transfer event.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"is_or_was\" phrasing indicates the transfer may be:\n- Current (recent/ongoing relocations)\n- Historical (past relocations)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P26_moved_to` - CIDOC-CRM move destination\n - Domain: E9_Move\n - Range: E53_Place\n\n**Usage**:\nLinks relocation/transfer events to the destination location.\nTypically used with a corresponding `is_or_was_transferred_from` slot.\nClass-level slot_usage narrows the range to specific place types.\n\n**Applicable Event Types**:\n- RELOCATION (organizational move)\n- TRANSFER (custody transfer)\n- ACQUISITION (collection acquisition)\n\n**Examples**:\n- Archive moving to new climate-controlled facility\n- Museum relocating from historic building to modern campus\n- Collection transferred to new custodian\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "staff_impact": { - "description": "Description of impact on staff (FTE changes, reassignments, redundancies).\n\nInclude:\n- FTE count changes (before \u2192 after)\n- Staff reassignments between units\n- Redundancies or retirements\n- New hires\n", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "$ref": "#/$defs/TimeSpan", - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "temporal_extent", - "has_or_had_description", - "has_or_had_type" - ], - "title": "OrganizationalChangeEvent", - "type": "object" - }, - "OrganizationalChangeEventCategoryEnum": { - "description": "High-level categorization of organizational change events based on TOOI ontology.\nDistinguishes between existential changes (affecting entity existence) and\nstate changes (preserving entity identity).", - "enum": [ - "EXISTENTIAL", - "STATE" - ], - "title": "OrganizationalChangeEventCategoryEnum", - "type": "string" - }, - "OrganizationalChangeEventTypeEnum": { - "description": "Types of organizational change events in heritage custodian institutions.\n\n**Ontology Alignment**:\n- TOOI (Dutch Government): tooi:Wijzigingsgebeurtenis hierarchy\n - Existential: tooi:ExistentieleWijziging (affects entity existence)\n - State: tooi:Toestandswijziging (preserves entity identity)\n- CIDOC-CRM: crm:E5_Event and subclasses\n- W3C ORG: org:ChangeEvent\n- PROV-O: prov:Activity\n\n**Semantic Patterns** (PROV-O alignment):\n- prov:generated - New entities created by event\n- prov:invalidated - Entities that cease to exist\n- prov:used - Entities that participate but continue", - "enum": [ - "FOUNDING", - "DISSOLUTION", - "MERGER", - "SPLIT", - "SPIN_OFF", - "EXPANSION", - "REORGANIZATION", - "RENAMING", - "TRANSFER", - "REDUCTION" - ], - "title": "OrganizationalChangeEventTypeEnum", - "type": "string" - }, - "OrganizationalChangeTemplate": { - "additionalProperties": false, - "description": "Template type for change event queries.\n\n**Relevant Queries**:\n- Organizational mergers and splits\n- Name changes and rebranding\n- Relocations and closures\n- Historical timeline events", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "OrganizationalChangeTemplate", - "type": "object" - }, - "OrganizationalClaim": { - "additionalProperties": false, - "description": "Claim types for organizational structure and legal information.\nIncludes founding, identifiers, and legal form.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "OrganizationalClaim", - "type": "object" - }, - "OrganizationalStructure": { - "additionalProperties": false, - "description": "Informal organizational structure of a heritage custodian, representing\noperational departments, teams, divisions, or groups that are NOT formally\nregistered as separate legal entities.\n\n**Distinction from GovernanceStructure**:\n- **GovernanceStructure**: Formal structure from legal registration \n (e.g., \"National Archives is agency under Ministry OCW\")\n- **OrganizationalStructure**: Informal/operational units\n (e.g., \"Digital Preservation Team\", \"Public Services Department\")\n\n**W3C ORG Alignment**:\nMaps to `org:OrganizationalUnit` - \"An Organization such as a University \nSupport Unit which is part of some larger FormalOrganization and only has \nfull recognition within the context of that FormalOrganization, it is not \na Legal Entity in its own right.\"\n\n**Scope**:\n- Departments (Collections, Education, Research, IT)\n- Teams (Digital Preservation, Conservation, Cataloging)\n- Programs (Outreach programs, fellowship programs)\n- Working groups (Metadata standards group, acquisitions committee)\n- Service units (Reading room, reference desk, storage facilities)\n\n**NOT in Scope** (use GovernanceStructure instead):\n- Formal sub-organizations with legal registration\n- Legally recognized branches or subsidiaries\n- Governance bodies from articles of incorporation\n\n**Temporal Dynamics**:\nOrganizational units can be created, renamed, merged, or dissolved\nindependently of the custodian's legal status. Track changes with\n`valid_from`/`valid_to` dates.\n\n**Example - National Archives**:\n```yaml\nCustodianLegalStatus:\n governance_structure: # FORMAL (from legal registration)\n structure_type: \"Government agency\"\n governance_body: \"Reports to Ministry of OCW\"\n\nCustodian:\n organizational_structure: # INFORMAL (operational)\n - unit_name: \"Digital Preservation Department\"\n unit_type: \"department\"\n description: \"Manages born-digital archives\"\n - unit_name: \"Public Services Team\"\n unit_type: \"team\"\n description: \"Reading room, reference services\"\n```", - "properties": { - "contact_point": { - "description": "Contact information for this branch.\n\nvCard: hasEmail for organizational contact.\nAlso compatible with Schema.org contactPoint.\n\nCan be email, phone, or URL.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_staff_member": { - "description": "Staff members (PersonObservation instances) affiliated with this organizational unit.\n\n**W3C ORG Property**: `org:hasMember` - \"Indicates a person who is a member of the subject Organization.\"\n- Domain: org:Organization (OrganizationalStructure)\n- Range: foaf:Agent (PersonObservation)\n- Inverse: `org:memberOf` (PersonObservation.unit_affiliation)\n\n**Bidirectional Relationship**:\n- **Forward**: OrganizationalStructure \u2192 PersonObservation (staff_members)\n- **Reverse**: PersonObservation \u2192 OrganizationalStructure (unit_affiliation)\n- Enables queries from both directions:\n - \"Who works in this department?\" (org unit \u2192 staff)\n - \"Which department does this person work for?\" (staff \u2192 org unit)\n\n**Temporal Consistency**:\nPerson's employment dates should align with organizational unit validity:\n- PersonObservation.role_start_date >= OrganizationalStructure.valid_from\n- PersonObservation.role_end_date <= OrganizationalStructure.valid_to (if unit dissolved)\n\n**Use Cases**:\n1. **Department staffing analysis**: \"How many conservators in Conservation Division?\"\n2. **Expertise location**: \"Which unit has manuscript conservation expertise?\"\n3. **Reorganization impact**: \"Track staff before/after merger event\"\n4. **Contact directory**: \"Find department head for Digital Services\"\n\n**Data Quality**:\n- Complete staff rosters (all positions documented) = high-quality data\n- Partial rosters (only senior staff) = acceptable for historical analysis\n- Empty staff_members (no data) = indicates missing personnel records\n\n**Example - Conservation Division**:\n```yaml\nOrganizationalStructure:\n id: \".../org-unit/rm-conservation-division\"\n unit_name: \"Conservation Division\"\n staff_count: 28 # Total FTE\n has_or_had_staff_member:\n - id: \".../person-obs/.../jane-smith/conservator-2013\"\n person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n role_title: \"Deputy Director, Conservation Division\"\n - id: \".../person-obs/.../john-doe/conservator-2015\"\n person_name: \"John Doe\"\n staff_role: CONSERVATOR\n role_title: \"Senior Objects Conservator\"\n```\n\n**Example - Staff Through Organizational Change**:\n```yaml\n# Before merger (2013-02-28)\nOrganizationalStructure:\n id: \".../org-unit/rm-paintings-conservation\"\n unit_name: \"Paintings Conservation Department\"\n valid_to: \"2013-02-28\"\n has_or_had_staff_member:\n - person_name: \"Dr. Jane Smith\"\n role_end_date: \"2013-02-28\" # Ends with unit dissolution\n\n# After merger (2013-03-01)\nOrganizationalStructure:\n id: \".../org-unit/rm-conservation-division\"\n unit_name: \"Conservation Division\"\n valid_from: \"2013-03-01\"\n has_or_had_staff_member:\n - person_name: \"Dr. Jane Smith\"\n role_start_date: \"2013-03-01\" # Starts with new unit\n affected_by_event: \".../event/rm-conservation-merger-2013\"\n```\n\n**Query Pattern (SPARQL)**:\n```sparql\n# Find all conservators in an institution\nSELECT ?unitName ?personName ?roleTitle WHERE {\n ?custodian hc:organizational_structure ?unit .\n ?unit hc:unit_name ?unitName ;\n hc:staff_members ?person .\n ?person hc:person_name ?personName ;\n hc:staff_role \"CONSERVATOR\" ;\n hc:role_title ?roleTitle .\n}\n```\n", - "items": { - "$ref": "#/$defs/PersonObservation" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "located_at": { - "description": "Physical location where this organizational unit operates.\n\n**Range**: `Any` (2026-01-16) - Allows string values and AuxiliaryPlace/Location class instances.\nClasses narrow this to specific location types via slot_usage.\n\nNote: slot_uri changed from org:basedAt to hc:locatedAt\nto resolve OWL ambiguous type warning. org:basedAt may have\ndifferent expectations in the W3C Org ontology.\n\nAlternative: `org:hasSite` - \"Indicates a site at which the Organization \nhas some presence even if only indirect.\"\n\n**Use Cases**:\n\n1. **Departments at Branch Locations**:\n - Conservation Team \u2192 located at Amersfoort Depot\n - Digitization Team \u2192 located at off-site facility\n\n2. **Teams Spanning Multiple Locations**:\n - IT Department \u2192 located at main building AND data center\n - Public Services \u2192 located at main reading room AND annex\n\n3. **Temporary Location Assignments**:\n - Exhibition Team \u2192 temporarily at partner venue\n - Collections \u2192 temporarily at storage during renovation\n\n**Relationship Pattern**:\n\nTwo-way linking between locations and organizational units:\n\n```\nAuxiliaryPlace\n \u2514\u2500\u2500 hosts_branch \u2192 OrganizationBranch\n \u2514\u2500\u2500 has_operational_unit \u2192 OrganizationalStructure\n\nOrganizationalStructure\n \u2514\u2500\u2500 located_at \u2192 AuxiliaryPlace (optional)\n```\n\n**Optional Slot**:\n\nMany organizational units don't have fixed locations:\n- Strategic Planning Committee (meets virtually)\n- Research Fellowship Program (no physical space)\n\nOnly use when organizational unit has identifiable physical location.\n\n**Example - Conservation Division**:\n```yaml\nOrganizationalStructure:\n unit_name: \"Conservation Division\"\n unit_type: DIVISION\n located_at:\n - place_name: \"Conservation Lab - Main Building\"\n - place_name: \"Climate-Controlled Storage - Depot Amersfoort\"\n```", - "items": { - "$ref": "#/$defs/AuxiliaryPlace" - }, - "type": [ - "array", - "null" - ] - }, - "parent_unit": { - "anyOf": [ - { - "$ref": "#/$defs/OrganizationalStructure" - }, - { - "type": "null" - } - ], - "description": "Parent unit in organizational hierarchy.\nAllows nested organizational structures.\n\nExample:\n- \"Conservation Team\" is parent_unit of \"Paper Conservation Lab\"\n- \"Collections Division\" is parent_unit of \"Acquisitions Department\"\n" - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "refers_to_custodian", - "has_or_had_label" - ], - "title": "OrganizationalStructure", - "type": "object" - }, - "OrganizationalUnitTypeEnum": { - "description": "Types of informal organizational units within heritage custodians.\n\nThese are OPERATIONAL/FUNCTIONAL units, not legally registered entities.\nFor formal legal sub-organizations, use CustodianLegalStatus hierarchy.", - "enum": [ - "DEPARTMENT", - "TEAM", - "DIVISION", - "GROUP", - "PROGRAM", - "SERVICE", - "LAB", - "OFFICE", - "UNIT" - ], - "title": "OrganizationalUnitTypeEnum", - "type": "string" - }, - "Organizer": { - "additionalProperties": false, - "description": "An entity that organizes or organized an event, exhibition, program, or activity.\n\n**Purpose**:\nCaptures the organizing entity along with their role, replacing simple\nuriorcurie references like `co_organized_by` or `organized_by`.\n\n**Key Properties**:\n- `organizer_entity`: Reference to the organizing institution (Custodian, Organization)\n- `has_or_had_role`: Role of the organizer (PRIMARY, CO_ORGANIZER, etc.)\n- `organizer_contribution`: Description of organizational contribution\n\n**Pattern**:\nInstead of separate `organized_by` and `co_organized_by` slots with plain URIs,\nuse a single `has_or_had_organizer` slot with Organizer instances that specify roles.\n\n**Example Migration**:\n```yaml\n# OLD (deprecated):\norganized_by:\n - https://nde.nl/ontology/hc/custodian/nl/rijksmuseum\nco_organized_by:\n - https://nde.nl/ontology/hc/custodian/nl/mauritshuis\n\n# NEW (Rule 53):\nhas_or_had_organizer:\n - organizer_entity: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum\n has_or_had_role:\n role_type: PRIMARY\n - organizer_entity: https://nde.nl/ontology/hc/custodian/nl/mauritshuis\n has_or_had_role:\n role_type: CO_ORGANIZER\n```\n\n**Ontological Alignment**:\n- **Primary**: `schema:Organization` (organizer is an organization)\n- **Close**: `org:Organization` (W3C Org vocabulary)\n- **Related**: `prov:Agent` (PROV-O agent in activity)", - "properties": { - "has_or_had_role": { - "anyOf": [ - { - "$ref": "#/$defs/OrganizerRole" - }, - { - "type": "null" - } - ], - "description": "Role of an entity in a context (author role, agent role, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's role may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:roleName` - Schema.org role name\n- **Exact**: `org:role` - W3C Org role\n- **Close**: `prov:hadRole` - PROV-O role in activity\n\n**Usage**:\nFor authors: role in creating a work (AUTHOR, EDITOR, TRANSLATOR)\nFor agents: role in an activity or event\nFor participants: role in a project or organization\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow enum or class values.\nClasses may narrow via slot_usage to specific Role enums or classes.\n" - }, - "organizer_contribution": { - "description": "Description of organizational contribution", - "type": [ - "string", - "null" - ] - }, - "organizer_entity": { - "description": "Reference to the organizing institution", - "type": "string" - } - }, - "required": [ - "organizer_entity" - ], - "title": "Organizer", - "type": "object" - }, - "OrganizerRole": { - "additionalProperties": false, - "description": "Role of an organizer in an event, exhibition, or program.\n\n**Purpose**:\nDistinguishes between different types of organizational involvement:\n- PRIMARY: Main organizing institution\n- CO_ORGANIZER: Partner institution with significant organizational role\n- SPONSOR_ORGANIZER: Sponsor with curatorial/organizational input\n- LENDING_INSTITUTION: Institution lending objects with exhibition involvement\n- HOST_VENUE: Venue hosting a traveling exhibition\n\n**Pattern**:\nUsed with Organizer class to specify the role of an organizing entity.\n\n**Ontological Alignment**:\n- **Primary**: `schema:Role` - Schema.org role\n- **Close**: `prov:Role` - PROV-O role in activity", - "title": "OrganizerRole", - "type": "object" - }, - "OrganizerRoleTypeEnum": { - "description": "Types of organizer roles", - "enum": [ - "PRIMARY", - "CO_ORGANIZER", - "SPONSOR_ORGANIZER", - "LENDING_INSTITUTION", - "HOST_VENUE", - "SUPPORTING_PARTNER", - "ADVISOR" - ], - "title": "OrganizerRoleTypeEnum", - "type": "string" - }, - "OtherConversion": { - "additionalProperties": false, - "description": "Custom or other conversion rate type not covered by standard types. Use this when tracking novel metrics or institution-specific conversions.", - "properties": { - "conversion_source_population": { - "description": "The group being measured (denominator) in a conversion rate calculation.\n\nThis identifies the total population from which conversions are measured.\n", - "type": [ - "string", - "null" - ] - }, - "conversion_target_action": { - "description": "The action being measured (numerator) in a conversion rate calculation.\n\nThis identifies what action constitutes a \"conversion\" from the source population.\n", - "type": [ - "string", - "null" - ] - }, - "conversion_type_label": { - "description": "Human-readable label for this conversion rate type.\n\nExamples: \"Visitor to Purchase\", \"Email to Click\", \"Online to Physical Visit\"\n", - "type": "string" - }, - "industry_benchmark_high": { - "description": "High end of the industry benchmark range for this metric.\n\nExpressed as a decimal (e.g., 0.40 = 40%).\nUsed with industry_benchmark_low to define the typical performance range.\n", - "type": [ - "number", - "null" - ] - }, - "industry_benchmark_low": { - "description": "Low end of the industry benchmark range for this metric.\n\nExpressed as a decimal (e.g., 0.15 = 15%).\nUsed with industry_benchmark_high to define the typical performance range.\n", - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "conversion_type_label" - ], - "title": "OtherConversion", - "type": "object" - }, - "OtherEnvironmentalZone": { - "additionalProperties": false, - "description": "Other environmental zone type not covered by specific categories. **PURPOSE**: Accommodate specialized storage environments that do not fit existing categories. Document specific conditions in zone_description. **USAGE**: - Custom storage configurations - Experimental preservation setups - Specialized material requirements - Transitional or temporary setups **REQUIRED DOCUMENTATION**: - Specific climate parameters - Target materials - Rationale for custom configuration - Monitoring protocols", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "OTHER", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard": { - "description": "Reference to applicable ISO or EN standard for this environmental zone type.\n\nFormat: Standard identifier (e.g., \"ISO 11799\", \"ISO 18911\", \"EN 16893\")\n\nCommon preservation standards:\n- ISO 11799: Document storage requirements\n- ISO 18911: Film storage practices\n- ISO 18934: Multiple media archives storage\n- EN 16893: Heritage collection storage buildings\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "max_annual_light_exposure": { - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "requires_dark_storage": { - "description": "Whether dark (zero light) storage is required for this environmental zone.\n\nBased on ISO preservation standards:\n- Film storage (ISO 18911): Dark storage mandatory\n- Photographic (ISO 18920): Dark storage for extended-term\n- UK Archives (BS 4971): 0 lux for closed storage\n\nDark storage essential for:\n- Film negatives (especially color and early nitrate/acetate)\n- Daguerreotypes and early photographic processes\n- Cyanotypes and blueprint materials\n- Some magnetic media (tape)\n- Highly fugitive inks and dyes\n\nAccess provided through reading rooms or digitization requests.\nCumulative light damage is completely prevented.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_dust_free": { - "description": "Whether a dust-free or dust-controlled environment is required for this zone.\n\nBased on ISO preservation standards:\n- Magnetic tape (ISO 18923): Dust-free mandatory\n- Optical media (ISO 18938): Cleanroom for masters\n- Archives (ISO 11799): Dust control required\n\nISO 14644-1 Cleanliness Classes:\n- Class 8: General archive/museum (HEPA filtered)\n- Class 7: AV media storage (positive pressure)\n- Class 5: Digital master storage (cleanroom)\n\nDust-free essential for:\n- Magnetic tapes and audiovisual media\n- Optical discs (CD, DVD, Blu-ray)\n- Fine art and paintings (surface abrasion)\n- Photographic materials (scratches, embedded particles)\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_esd_protection": { - "description": "Whether electrostatic discharge (ESD) protection is required for this zone.\n\nBased on ISO/IEC standards:\n- Magnetic tape (ISO 18923): ESD protection required\n- Optical media (ISO 18938): ESD-safe handling mandatory\n- Electronics (IEC 61340-5-1): ESD control program\n\nESD protection measures include:\n- Conductive/dissipative flooring\n- Humidity control (40-60% RH reduces static)\n- ESD-safe packaging and equipment\n- Personnel grounding (wrist straps)\n\nESD protection essential for:\n- Hard drives and SSDs\n- LTO and other magnetic tapes\n- Optical media (CD, DVD, Blu-ray masters)\n- Electronic components and circuit boards\n- Born-digital heritage collections\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_uv_filter": { - "description": "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \u00b5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label", - "has_or_had_description" - ], - "title": "OtherEnvironmentalZone", - "type": "object" - }, - "OtherPlatform": { - "additionalProperties": false, - "description": "Other social media platform not listed above.\n\nUse this for:\n- Emerging platforms\n- Regional platforms not covered\n- Specialized community platforms\n\nWhen using OtherPlatform, always include platform_name field\nto identify the specific platform.", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "OTHER", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "OtherPlatform", - "type": "object" - }, - "OtherPost": { - "additionalProperties": false, - "description": "Fallback type for emerging or uncategorized content formats.\n\n**Activity Streams Mapping**: `as:Object` (generic)\n**Schema.org Mapping**: `schema:MediaObject`\n\n**Use Cases**:\n- New platform features not yet classified\n- Experimental content formats\n- Platform-specific content without standard mapping\n- Mixed or hybrid formats\n\n**Examples of Emerging Formats**:\n- AR/VR experiences\n- Interactive polls as standalone content\n- NFT-linked content\n- AI-generated content\n- 360\u00b0 photos\n- Spatial audio\n\n**When to Use**:\nUse OtherPost when content doesn't fit existing categories.\nDocument the specific format in post description for future\nclassification review.", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "post_type_activity_streams_type": { - "const": "as:Object", - "description": "Activity Streams 2.0 type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_category": { - "const": "OTHER", - "description": "High-level category for grouping related post types.\nValues: VIDEO, SHORT_VIDEO, IMAGE, TEXT, STORY, LIVE_STREAM,\nAUDIO, ARTICLE, THREAD, CAROUSEL, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "post_type_description": { - "description": "Detailed description of this post type including purpose,\ncharacteristics, and typical use cases in heritage context.\n", - "type": [ - "string", - "null" - ] - }, - "post_type_ephemeral": { - "description": "Whether this post type is ephemeral (disappears after time).", - "type": [ - "boolean", - "null" - ] - }, - "post_type_heritage_use_case": { - "description": "Typical use cases for heritage institutions creating this content type.\n\nExamples for Video:\n- Virtual exhibition tours\n- Conservation process documentation\n- Curator interviews\n- Historical documentary content\n- Educational lectures\n\nExamples for Short Video:\n- Artifact spotlights\n- Behind-the-scenes moments\n- Quick conservation tips\n- Event teasers\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_id": { - "description": "Unique identifier for this post type", - "type": "string" - }, - "post_type_max_duration": { - "description": "Maximum duration for this post type (e.g., video length).", - "type": [ - "string", - "null" - ] - }, - "post_type_media_format": { - "description": "Supported media formats for this post type.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_name": { - "description": "Canonical name for this post type.\nUsed for display and content categorization.\n\nExamples: \"Video\", \"Short Video\", \"Image Post\", \"Story\", \"Live Stream\"\n", - "type": "string" - }, - "post_type_schema_org_type": { - "const": "schema:MediaObject", - "description": "Schema.org type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_supported_platform": { - "description": "Platforms that support this post type.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "post_type_id", - "post_type_name" - ], - "title": "OtherPost", - "type": "object" - }, - "OutdoorSite": { - "additionalProperties": false, - "description": "Outdoor site, grounds, garden, or natural area managed by a heritage custodian.\n\n**DEFINITION**:\n\nAn OutdoorSite is an outdoor area managed by a heritage custodian as an\nauxiliary property. This may include gardens, sculpture parks, archaeological\nsites, nature reserves, or historic grounds associated with the custodian's\nheritage mission.\n\n**SCHEMA.ORG ALIGNMENT**:\n\n`schema:Park` - \"A park.\" Extended to include gardens, grounds, and outdoor\nheritage sites.\n\n**WIKIDATA TYPE LINKAGE**:\n\nThis class links to TWO enum types:\n\n1. **BioCustodianTypeEnum** (1142 types) - For natural/botanical sites:\n - Q167346 (botanical garden)\n - Q10884 (arboretum)\n - Q43501 (zoo)\n - Q18247357 (zoological garden)\n - Q22746 (park)\n \n2. **FeatureTypeEnum** (298 types) - For landscape/heritage features:\n - Q839954 (archaeological site)\n - Q1107656 (garden)\n - Q22698 (park)\n - Q2867476 (sculpture garden)\n - Q174782 (square/plaza)\n\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Setting | Examples |\n|------|---------|----------|\n| **OutdoorSite** | Exterior/grounds | Gardens, sculpture parks |\n| HistoricBuilding | Interior structure | Historic houses, castles |\n| ExhibitionSpace | Interior gallery | Exhibition halls |\n| Storage | Interior storage | Depots, warehouses |\n\n**TYPES OF OUTDOOR SITES**:\n\n1. **Historic Gardens**: Formal gardens, pleasure grounds\n2. **Sculpture Parks**: Outdoor art installations\n3. **Archaeological Sites**: Excavation sites, ruins\n4. **Botanical Collections**: Arboreta, plant collections\n5. **Nature Reserves**: Managed natural areas\n6. **Castle/Estate Grounds**: Historic landscape parks\n7. **Cemeteries**: Historic burial grounds\n\n**USE CASES**:\n\n1. **Museum Sculpture Garden**:\n ```yaml\n OutdoorSite:\n outdoor_site_id: \"https://nde.nl/ontology/hc/aux/kroller-muller-sculpture\"\n outdoor_site_name: \"Kr\u00f6ller-M\u00fcller Beeldentuin\"\n feature_type_classification: SCULPTURE_GARDEN\n has_or_had_area:\n - area_value: 25.0\n has_or_had_unit:\n unit_type: HECTARE\n unit_symbol: \"ha\"\n has_or_had_artwork_count: 160\n ```\n\n2. **Historic Estate Grounds**:\n ```yaml\n OutdoorSite:\n outdoor_site_name: \"Paleis Het Loo Tuinen\"\n is_or_was_classified_as: BotanicalInstitutionClassification # Type/Types class\n feature_type_classification: FORMAL_GARDEN\n historic_garden_designation: true\n ```\n\n3. **Archaeological Site**:\n ```yaml\n OutdoorSite:\n outdoor_site_name: \"Archeologisch Park Matilo\"\n feature_type_classification: ARCHAEOLOGICAL_SITE\n period_covered: \"Roman period\"\n ```", - "properties": { - "conservation_status": { - "description": "Conservation or protection status (for nature reserves).\n\ne.g., Natura 2000, National Park, Nature Reserve\n", - "type": [ - "string", - "null" - ] - }, - "contains_or_contained": { - "description": "Generic containment relationship (temporal). Indicates that this entity contains or has contained the referenced entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_accessibility_feature": { - "description": "Accessibility features available in this reading room.\n\nSchema.org: accessibilityFeature for accessibility.\n\nMay include:\n- Wheelchair accessible\n- Adjustable desks\n- Screen magnification\n- Audio assistance\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_area": { - "description": "Area measurement associated with an entity (site, building, room, etc.).\nGeneric slot for capturing spatial extent measurements. The range should be narrowed to Area class which includes value, unit, and temporal context.", - "items": { - "$ref": "#/$defs/Area" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_artwork_count": { - "description": "Number of artworks/sculptures on display (for sculpture gardens).\n", - "type": [ - "integer", - "null" - ] - }, - "has_or_had_fee": { - "items": { - "$ref": "#/$defs/AdmissionFee" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/FeatureType", - "anyOf": [ - { - "$ref": "#/$defs/LandscapeFeature" - }, - { - "$ref": "#/$defs/Site" - } - ] - }, - "type": [ - "array", - "null" - ] - }, - "historic_garden_designation": { - "description": "Whether site has historic garden/landscape designation.\n\nDutch: Historische tuin designation, Rijksmonument landscape.\n", - "type": [ - "boolean", - "null" - ] - }, - "is_open_to_public": { - "description": "Whether building is open to public visitors.\n\nSome historic buildings are:\n- Fully open (museum house)\n- Partially open (guided tours only)\n- Closed (administrative use, private)\n", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_classified_as": { - "anyOf": [ - { - "$ref": "#/$defs/BioTypeClassification" - }, - { - "type": "null" - } - ], - "description": "Classification of an entity into a category or type.\n\n**MIGRATED** from heritage_type_classification (Rule 53).\n\nFollows RiC-O naming convention." - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "opening_hour": { - "description": "Operating hours for the physical gift shop.\n\nSchema.org: openingHours in Schema.org format.\n\nFormat: \"Mo-Fr 09:00-17:00, Sa 10:00-18:00, Su 11:00-17:00\"\n\nMay differ from museum hours (shop may close earlier).\n", - "type": [ - "string", - "null" - ] - }, - "outdoor_site_description": { - "description": "Free-text description of this outdoor site.\n\nInclude:\n- Type of outdoor space\n- What can be seen/experienced\n- Historical significance\n- Visitor information\n", - "type": [ - "string", - "null" - ] - }, - "outdoor_site_id": { - "description": "Unique identifier for this outdoor site.\nFormat: URI following NDE Heritage Custodian ontology conventions.\n", - "type": "string" - }, - "outdoor_site_name": { - "description": "Name of this outdoor site.\n\nSKOS: prefLabel for preferred name.\n", - "type": "string" - }, - "outdoor_site_type": { - "$ref": "#/$defs/OutdoorSiteTypeEnum", - "description": "Local classification of outdoor site type.\n\nUsed in addition to enum classifications for quick filtering:\n- SCULPTURE_GARDEN\n- FORMAL_GARDEN\n- LANDSCAPE_PARK\n- ARCHAEOLOGICAL_SITE\n- BOTANICAL_GARDEN\n- NATURE_RESERVE\n- CEMETERY\n- PLAZA_COURTYARD\n" - }, - "period_covered": { - "description": "Historical period represented (for archaeological sites).\n", - "type": [ - "string", - "null" - ] - }, - "plant_species_count": { - "description": "Number of plant species (for botanical sites).\n", - "type": [ - "integer", - "null" - ] - }, - "seasonal_hour": { - "description": "Seasonal variations in opening hours.\n\nMany outdoor sites have different summer/winter hours.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "outdoor_site_id", - "outdoor_site_name", - "outdoor_site_type" - ], - "title": "OutdoorSite", - "type": "object" - }, - "OutdoorSiteTypeEnum": { - "description": "Types of outdoor heritage sites managed by heritage custodians.\n\nUsed by OutdoorSite class to classify outdoor areas such as gardens,\nsculpture parks, archaeological sites, and nature reserves.", - "enum": [ - "SCULPTURE_GARDEN", - "FORMAL_GARDEN", - "LANDSCAPE_PARK", - "ARCHAEOLOGICAL_SITE", - "BOTANICAL_GARDEN", - "NATURE_RESERVE", - "CEMETERY", - "PLAZA_COURTYARD", - "ZOO_GROUNDS" - ], - "title": "OutdoorSiteTypeEnum", - "type": "string" - }, - "Output": { - "additionalProperties": false, - "description": "Activity output.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Output", - "type": "object" - }, - "OutputData": { - "additionalProperties": false, - "description": "Specification of output produced by a device, service, or process.\n\n**DEFINITION**:\nOutputData captures the characteristics of data or signals emitted by\nsystems, including format, structure, destination, and metadata.\n\n**USAGE**:\n- IoT device data (sensor readings, beacon signals)\n- API responses (JSON, XML, RDF)\n- Export files (CSV, Excel, PDF)\n- Streaming data (MQTT, WebSocket)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`class_uri`): `hc:OutputData` - Heritage Custodian class\n- **Close**: `sosa:Result` - SOSA observation result\n- **Close**: `schema:DataDownload` - Schema.org data download\n\n**Example**:\n```yaml\nhas_or_had_output:\n - has_or_had_format:\n has_or_had_type: JsonFormat\n has_or_had_media_type: \"application/json\"\n has_or_had_description: \"Climate sensor readings\"\n destination_url: \"https://analytics.museum.nl/climate\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_format": { - "description": "The format or file type of a resource or service response.\n\n**USAGE**:\nUsed for:\n- Response formats from APIs (JSON, XML, RDF)\n- File formats for documents (PDF, DOCX, TXT)\n- Media formats (JPEG, MP3, MP4)\n- Transcript formats (VTT, SRT, plain text)\n- Subtitle formats (WebVTT, SRT, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property\n- **Close**: `dct:format` - Dublin Core format\n- **Close**: `schema:encodingFormat` - Schema.org encoding format\n\n**Range**: `uriorcurie` (Rule 54)\nBroadened range to accept URI/CURIE references to format specifications.\nThis allows linking to IANA media types, format registries, or internal\nformat classes while resolving OWL ambiguous type warnings.\n\nClasses can narrow to specific format enums/classes via slot_usage.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "OutputData", - "type": "object" - }, - "Overview": { - "additionalProperties": false, - "description": "A comprehensive collection of links and resources. **DEFINITION**: An aggregation of WebLink instances representing all links or resources from a particular source or context. Enables structured representation of comprehensive link collections from web pages or other sources. **DUBLIN CORE ALIGNMENT**: Maps to `dcterms:Collection` as it represents a collection of related resources gathered together for a purpose. **TEMPORAL SEMANTICS**: Overview collections can change over time: - New links may be added - Existing links may be removed or updated - The collection scope may change **RELATIONSHIP TO INCLUDES_OR_INCLUDED**: Uses the generic `includes_or_included` slot to link to WebLink instances, following RiC-O hierarchical patterns. **EXAMPLE**: ```yaml overview:\n id: hc:overview/findingaid-familyhistory-links\n title: \"Family History Research Links\"\n description: \"All links from the family history finding aid page\"\n source_url: https://www.nationaalarchief.nl/onderzoeken/zoekhulpen/familiegeschiedenis\n is_or_was_retrieved_at:\n has_or_had_timestamp: \"2025-01-14\"\n has_or_had_level: day\n includes_or_included:\n - id: hc:link/civil-registry\n url: https://example.org/civil-registry\n link_text: \"Civil Registry\"\n - id: hc:link/notarial-records\n url: https://example.org/notarial\n link_text: \"Notarial Records\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_retrieved_at": { - "anyOf": [ - { - "$ref": "#/$defs/Timestamp" - }, - { - "type": "null" - } - ], - "description": "The datetime when this data was retrieved or fetched from its source.\n\nPROV-O: atTime - \"The time at which an InstantaneousEvent occurred.\"\n" - }, - "link_count": { - "description": "Link Count for heritage custodian entities.\n", - "type": [ - "integer", - "null" - ] - }, - "name": { - "description": "Short name or has_or_had_abbreviation", - "type": [ - "string", - "null" - ] - }, - "source_url": { - "description": "URL of the web page this data was retrieved from.\n\npav:retrievedFrom - \"The URI from which the resource was retrieved.\"\n\nThis is a key provenance field that enables verification of extracted data\nby linking back to the original source web page.\n\nExamples:\n- https://historischeverenigingnijeveen.nl/ (institution homepage)\n- https://ec.europa.eu/info/funding-tenders/... (EU funding portal)\n- https://www.heritagefund.org.uk/funding/... (UK heritage fund)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "Overview", - "type": "object" - }, - "OwnerConsent": { - "additionalProperties": false, - "description": "Requires consent from the owner/donor of the materials. Common for personal papers and donated collections.", - "title": "OwnerConsent", - "type": "object" - }, - "PageLink": { - "additionalProperties": false, - "description": "A hyperlink extracted from a page.", - "properties": { - "has_or_had_provenance_path": { - "items": { - "$ref": "#/$defs/XPath" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_sub_guide": { - "description": "Whether this is a link to a sub-guide", - "type": [ - "boolean", - "null" - ] - }, - "link_context": { - "description": "Parent section or surrounding context", - "type": [ - "string", - "null" - ] - }, - "link_text": { - "description": "Visible text of the link", - "type": "string" - }, - "link_type": { - "$ref": "#/$defs/LinkTypeEnum", - "description": "Type of link" - }, - "link_url": { - "description": "URL of the link", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "link_text", - "link_url" - ], - "title": "PageLink", - "type": "object" - }, - "PageSection": { - "additionalProperties": false, - "description": "", - "title": "PageSection", - "type": "object" - }, - "PaginationMethodEnum": { - "description": "Methods for paginating large result sets.", - "enum": [ - "OFFSET_LIMIT", - "PAGE_NUMBER", - "CURSOR", - "LINK_HEADER", - "SCROLL", - "NONE" - ], - "title": "PaginationMethodEnum", - "type": "string" - }, - "ParentOrganizationClaim": { - "additionalProperties": false, - "description": "Parent organization reference.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ParentOrganizationClaim", - "type": "object" - }, - "ParishAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Parish administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ParishArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ParishArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ParishAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ParishAdministrationFonds", - "type": "object" - }, - "ParishArchive": { - "additionalProperties": false, - "description": "Parish archive (Pfarrarchiv). Archives of religious parishes that preserve records of parish administration, sacramental registers (baptisms, marriages, burials), correspondence, and documentation of parish life. Parish archives are among the most important sources for genealogical research and local religious history.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ParishArchive", - "type": "object" - }, - "ParishArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by ParishArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ParishArchiveRecordSetType", - "type": "object" - }, - "ParishRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Parish records (multiple parishes).\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "DiocesanArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by DiocesanArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ParishRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ParishRecordSeries", - "type": "object" - }, - "ParishRegisterSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for parish registers (vital records) organized as archival series.\n\n**Definition**:\nRecords documenting sacramental events (baptisms, marriages, burials) and \nother vital events in the religious community. These are the ecclesiastical \nequivalent of civil registry records and predate civil registration in most \ncountries.\n\n**Typical Contents**:\n- Baptism registers (doopregisters)\n- Marriage registers (trouwregisters/huwelijksregisters)\n- Burial registers (begraafregisters)\n- Confirmation registers (belijdenisregisters)\n- Communion registers\n- Membership transfer records (attestaties)\n\n**Genealogical Value**:\nParish registers are PRIMARY sources for genealogical research, especially:\n- Pre-1811 (Netherlands): Before civil registration\n- All periods: Supplement civil records with religious context\n- Minority communities: Jewish, Catholic, Dissenter records\n\n**Privacy Considerations**:\nHistorical parish registers are generally accessible. However, more recent \nrecords may have restrictions. Many have been digitized and indexed by \ngenealogical organizations.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the series organizational principle as defined by rico-rst:Series\n(chronological has_arrangement by event type: DTB doop, trouw, begraven).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the series principle. Registers arranged chronologically by event type (DTB: doop, trouw, begraven).", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ParishRegisterSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"church governance\", \"property records\", \"correspondence\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"baptism records\", \"marriage records\", \"burial records\", \"confirmation records\", \"membership transfers\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "ParishRegisterSeries", - "type": "object" - }, - "ParishSpecificRegisterSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for parish-specific baptismal, marriage, burial registers.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.\n\n**Note**: This is parish-specific. For the general church parish registers, see ParishRegisterSeries.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ParishArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ParishArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ParishSpecificRegisterSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ParishSpecificRegisterSeries", - "type": "object" - }, - "ParliamentaryArchives": { - "additionalProperties": false, - "description": "Political archives of parliaments and legislative bodies. Parliamentary archives preserve records documenting the activities of legislative institutions including debates, legislation, committee records, and administrative documentation. They are essential for understanding democratic governance and political history.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ParliamentaryArchives", - "type": "object" - }, - "ParliamentaryArchivesRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by ParliamentaryArchives custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ParliamentaryArchivesRecordSetType", - "type": "object" - }, - "ParliamentaryProceedingsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Parliamentary debates and proceedings.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ParliamentaryArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ParliamentaryArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ParliamentaryProceedingsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ParliamentaryProceedingsFonds", - "type": "object" - }, - "PartiallyDeductible": { - "additionalProperties": false, - "description": "Only a portion of the donation is tax-deductible.\n\nCommon when donor receives benefits (e.g., gala dinner ticket)\nwhere fair market value of benefits must be subtracted.\n\n**Examples**:\n- Gala ticket where meal/entertainment value is subtracted\n- Auction item purchased above fair market value", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "PartiallyDeductible", - "type": "object" - }, - "Participant": { - "additionalProperties": false, - "description": "Participant.", - "properties": { - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": [ - "string", - "null" - ] - } - }, - "title": "Participant", - "type": "object" - }, - "PartyAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Political party administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PartyArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PartyArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PartyAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PartyAdministrationFonds", - "type": "object" - }, - "PartyArchive": { - "additionalProperties": false, - "description": "Subclass of political archive focusing on political parties. Party archives preserve records documenting the activities, organization, and history of political parties. Holdings may include organizational records, campaign materials, correspondence, publications, and personal papers of party leaders.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PartyArchive", - "type": "object" - }, - "PartyArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by PartyArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PartyArchiveRecordSetType", - "type": "object" - }, - "PassiveClimateControl": { - "additionalProperties": false, - "description": "Passive climate control - environmental management through building\ndesign rather than mechanical systems.\n\n**TYPICAL USE CASES**:\n- Historic buildings with thick walls\n- Underground/cave storage\n- Purpose-built passive storage facilities\n\n**CAPABILITIES**:\n- Temperature: Stable but not precisely controlled\n- Humidity: May be naturally stable\n- Air quality: Natural ventilation\n\n**EXAMPLES**:\n- Swiss National Library underground repository\n- Cave archives\n- Historic stone buildings with thermal mass", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/ClimateControlType" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "PassiveClimateControl", - "type": "object" - }, - "PastoralCorrespondenceCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for pastoral correspondence and clergy records.\n\n**Definition**:\nRecords documenting the activities and correspondence of clergy members, \nincluding pastoral care, ecclesiastical correspondence, and personal papers \nof ministers, priests, and other religious leaders.\n\n**Typical Contents**:\n- Clergy correspondence (predikantenarchief)\n- Visitation reports\n- Sermon manuscripts\n- Pastoral care documentation\n- Letters to/from parishioners\n- Correspondence with church authorities\n- Personal papers of clergy\n- Theological writings and notes\n\n**Privacy Considerations**:\nPastoral correspondence may contain sensitive personal information about \nparishioners. Access restrictions may apply, especially for recent records.\nThe seal of confession (biechtgeheim) protects certain communications.\n\n**Historical Value**:\nClergy correspondence provides unique insights into:\n- Religious life and practices\n- Social conditions in communities\n- Theological controversies\n- Personal faith journeys\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype may follow mixed organizational principles: both organic correspondence\nseries and personal papers fonds as defined by rico-rst:Series and rico-rst:Fonds.", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "mixed", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "privacy_note": { - "const": "Pastoral correspondence may contain sensitive personal information. Access restrictions may apply, especially for recent records. Seal of confession (biechtgeheim) protects certain communications.", - "description": "Notes about privacy restrictions or access limitations.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType may follow mixed organizational principles. Includes both organic correspondence series from church administration and personal papers of individual clergy members acquired as donations.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PastoralCorrespondenceCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"parish registers\", \"governance records\", \"property records\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"clergy correspondence\", \"sermon manuscripts\", \"visitation reports\", \"pastoral notes\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "PastoralCorrespondenceCollection", - "type": "object" - }, - "PatientRecordsSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for patient records organized as series.\n\n**Definition**:\nRecords documenting individual patient care episodes, including admission,\ntreatment, and discharge. Typically organized as chronological series\nby year, department, or patient number.\n\n**Typical Contents**:\n- Patient admission records (opnameboeken)\n- Medical histories (ziektegeschiedenissen)\n- Treatment records\n- Surgical records (operatieverslagen)\n- Diagnostic reports\n- Nursing notes\n- Discharge summaries\n- Death registers (overlijdensregisters)\n- Birth registers (geboorteregisters)\n\n**Historical Patient Record Formats**:\n- Pre-20th century: Ledger-based registers\n- Early 20th century: Individual patient folders\n- Mid-20th century: Standardized medical records\n- Late 20th century: Hybrid paper/electronic\n- 21st century: Electronic health records (EHR/EPD)\n\n**Privacy and Access**:\nPatient records are highly sensitive:\n- GDPR/AVG protection for living patients\n- Extended closure periods (typically 100+ years after birth)\n- Medical confidentiality obligations\n- Research access requires ethics approval\n\n**Genealogical Value**:\nHistorical patient records valuable for:\n- Family history research (births, deaths)\n- Medical genealogy\n- Epidemiological research\n- Social history\n\n**Dutch Context**:\nKey series types:\n- Patientenregisters\n- Opname- en ontslagboeken\n- Operatieregisters\n- Kraamboeken (maternity registers)\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the series organizational principle as defined by rico-rst:Series\n(chronological has_arrangement by year, department, or sequential patient number).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "privacy_note": { - "const": "HIGHLY SENSITIVE. Patient records contain protected health information. Access restricted by GDPR/AVG. Extended closure periods (100+ years from birth date). Research requires ethics committee approval.", - "description": "Notes about privacy restrictions or access limitations.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the series principle as defined by rico-rst:Series. Chronological has_arrangement by year, department, or sequential patient number.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PatientRecordsSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"administrative records\", \"research data\", \"nursing education\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"admissions\", \"treatments\", \"surgeries\", \"diagnoses\", \"births\", \"deaths\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "PatientRecordsSeries", - "type": "object" - }, - "Patreon": { - "additionalProperties": false, - "description": "Patreon creator page for membership/patronage.\n\n**URL patterns**:\n- https://www.patreon.com/{creator_name}\n\n**Features**:\n- Membership tiers\n- Exclusive content\n- Community features\n- Merchandise integration\n\n**Heritage use cases**:\n- Membership programs\n- Exclusive content for supporters\n- Crowdfunding preservation projects\n- Behind-the-scenes access", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "MEMBERSHIP", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://www.patreon.com/{creator_name}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "Patreon", - "type": "object" - }, - "PaymentMethod": { - "additionalProperties": false, - "description": "A payment method accepted by an institution for tickets, services, or purchases.\n**EXAMPLES**: - Credit cards (Visa, Mastercard, Amex) - Debit cards (Maestro, V-Pay) - Digital payments (iDEAL, Apple Pay, Google Pay) - Cash - Museum passes (Museumkaart, etc.)\nUsed with `accepts_or_accepted` slot to indicate payment options.", - "properties": { - "method_type": { - "description": "Type of payment method (e.g., \"credit_card\", \"debit_card\", \"digital\", \"cash\").", - "type": "string" - }, - "note": { - "description": "Additional notes about this payment method.", - "type": [ - "string", - "null" - ] - }, - "provider": { - "description": "Payment provider or brand (e.g., \"Visa\", \"iDEAL\", \"Apple Pay\").", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "method_type" - ], - "title": "PaymentMethod", - "type": "object" - }, - "PendingVerificationStatus": { - "additionalProperties": false, - "description": "Type is suspected but needs confirmation. Initial assessment made but awaiting verification.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "PendingVerificationStatus", - "type": "object" - }, - "Percentage": { - "additionalProperties": false, - "description": "Structured representation of a percentage value.\n\n**PURPOSE**:\n\nModels percentage values with optional min/max range and\ndisplay formatting. Replaces unstructured percentage strings.\n\n**DESIGN RATIONALE**:\n\nCreated per slot_fixes.yaml migration from `commission_rate` string\n(e.g., \"50%\", \"40-50%\") to structured Percentage class.\n\n**USE CASES**:\n\n- Commission rates: \"50%\" \u2192 percentage_value: 50\n- Variable rates: \"40-50%\" \u2192 percentage_min: 40, percentage_max: 50\n- Completion: \"75% complete\" \u2192 percentage_value: 75\n- Discount: \"20% off\" \u2192 percentage_value: 20\n\n**EXAMPLE**:\n\n```yaml\nhas_or_had_percentage:\n percentage_value: 50\n percentage_display: \"50%\"\n```", - "properties": { - "percentage_context": { - "description": "Context or meaning of this percentage.\n", - "type": [ - "string", - "null" - ] - }, - "percentage_display": { - "description": "Human-readable display format of the percentage.\nPreserves original formatting from source data.\n", - "pattern": "^[0-9]{1,3}(\\.[0-9]+)?(-[0-9]{1,3}(\\.[0-9]+)?)?%$", - "type": [ - "string", - "null" - ] - }, - "percentage_max": { - "description": "Maximum percentage in a range.\nOnly used when percentage varies (e.g., \"40-50%\").\n", - "maximum": 100, - "minimum": 0, - "type": [ - "number", - "null" - ] - }, - "percentage_min": { - "description": "Minimum percentage in a range.\nOnly used when percentage varies (e.g., \"40-50%\").\n", - "maximum": 100, - "minimum": 0, - "type": [ - "number", - "null" - ] - }, - "percentage_value": { - "description": "The numeric percentage value (0-100).\nFor ranges, this is the typical/default value.\n", - "maximum": 100, - "minimum": 0, - "type": "number" - } - }, - "required": [ - "percentage_value" - ], - "title": "Percentage", - "type": "object" - }, - "PerformanceDocumentationCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Performance documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PerformingArtsArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PerformingArtsArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PerformanceDocumentationCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PerformanceDocumentationCollection", - "type": "object" - }, - "PerformanceRecordingSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Concert and performance recordings.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "MusicArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by MusicArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PerformanceRecordingSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PerformanceRecordingSeries", - "type": "object" - }, - "PerformingArtsArchive": { - "additionalProperties": false, - "description": "Archive for performing arts materials. Performing arts archives collect and preserve materials documenting theater, dance, opera, music performance, and other live performance traditions. Holdings may include programs, scripts, set designs, costumes, photographs, recordings, and personal papers of performers and companies.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PerformingArtsArchive", - "type": "object" - }, - "PerformingArtsArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by PerformingArtsArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PerformingArtsArchiveRecordSetType", - "type": "object" - }, - "PerformingArtsProductionRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Production records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PerformingArtsArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PerformingArtsArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PerformingArtsProductionRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PerformingArtsProductionRecordSeries", - "type": "object" - }, - "PermanentArchiveTransferService": { - "additionalProperties": false, - "description": "Transfer of records to a permanent archive.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "PermanentArchiveTransferService", - "type": "object" - }, - "Permission": { - "additionalProperties": false, - "description": "A permission or authorization requirement for accessing materials.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_type" - ], - "title": "Permission", - "type": "object" - }, - "Person": { - "additionalProperties": false, - "description": "An abstract hub class that serves as the central connection point for all\ninformation about an individual person. The Person itself contains minimal\ninformation - essentially just its persistent identifier (person_id) and\npreferred name - and acts as a node to which all observations attach.\n\nThis hub pattern allows multiple observations from different sources to be\nconnected to a single logical person without asserting which observation\nis \"correct\" or \"primary\".\n\n**HUB ARCHITECTURE**:\n\n```\nPersonObservation \u2500\u2500refers_to_person\u2500\u2500> Person \u2500\u2500participated_in_events\u2500\u2500> Event\n \u2502 \u2191\n \u2502 \u2502\n(source: LinkedIn 2024) (source: Annual Report 2020)\n \u2502 \u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n Multiple observations \u2192 Single hub\n```\n\n- The Person hub is identified by: https://nde.nl/ontology/hc/person/{person-slug}\n- All PersonObservations refer to the hub via refers_to_person\n- The hub persists while observations and interpretations evolve\n\n**DISTINCTION FROM PersonObservation**:\n\n| Aspect | Person (Hub) | PersonObservation |\n|--------|--------------|-------------------|\n| **Purpose** | Abstract identity | Evidence-based data |\n| **Contains** | Minimal: ID, preferred name | Rich: role, affiliation, dates |\n| **Temporal** | Timeless identity | Point-in-time snapshot |\n| **Source** | Canonical | From specific source |\n| **Count** | One per person | Many per person |\n\n**USE CASES**:\n\n1. **Cross-Custodian Career Tracking**:\n Person worked at Rijksmuseum (observation 1), then at Van Gogh Museum (observation 2).\n Both observations link to same Person hub.\n \n2. **Source Reconciliation**:\n LinkedIn says \"Director\", annual report says \"General Director\".\n Both are valid observations of the same Person.\n \n3. **Event Participation**:\n Person participated in merger event, relocation event, etc.\n Events link to Person hub, not individual observations.\n\n**PICO ALIGNMENT**:\n\nThe PiCo (Persons in Context) ontology establishes this hub/observation pattern:\n- `pico:Person`: The abstract identity (hub) - this class\n- `pico:PersonObservation`: Evidence-based data about a person\n\nKey relationships:\n- PersonObservation \u2192 Person via pico:observationOf (refers_to_person)\n- Person \u2192 PersonObservation via pico:hasObservation (inverse)\n\n**CIDOC-CRM ALIGNMENT**:\n\nMaps to crm:E21_Person which is defined as:\n\"This class comprises real persons who live or are assumed to have lived.\"\n\nE21_Person is a subclass of:\n- E39_Actor (shared superclass with organizations)\n- E20_Biological_Object\n\nKey relationships:\n- P48_has_preferred_identifier \u2192 person_id\n- P11i_participated_in \u2192 Event (via participated_in_events)\n\n**RELATIONSHIP TO Custodian**:\n\nPerson and Custodian are parallel hub classes, both subclasses of crm:E39_Actor:\n\n```\ncrm:E39_Actor\n\u251c\u2500\u2500 crm:E21_Person (Person hub)\n\u2502 \u2514\u2500\u2500 PersonObservation refers to Person\n\u2514\u2500\u2500 crm:E74_Group (Custodian hub)\n \u2514\u2500\u2500 CustodianObservation refers to Custodian\n```\n\nA Custodian can BE a Person (private collector), but typically:\n- Person = individual human\n- Custodian = organization/group/institution\n\n**EXAMPLE - Director with Multiple Roles**:\n\n```yaml\nPerson:\n person_id: \"https://nde.nl/ontology/hc/person/taco-dibbits\"\n preferred_name: \"Taco Dibbits\"\n participated_in_events:\n - \"https://nde.nl/ontology/hc/event/dibbits-appointed-director-2020\"\n\n# Observations from different sources:\nPersonObservation: # From LinkedIn\n person_name: \"Taco Dibbits\"\n role_title: \"General Director\"\n unit_affiliation: \"Executive Board\"\n refers_to_person: \"https://nde.nl/ontology/hc/person/taco-dibbits\"\n observation_source: \"LinkedIn profile, 2025-01-15\"\n\nPersonObservation: # From annual report\n person_name: \"T.J.S. Dibbits\"\n role_title: \"Algemeen Directeur\"\n refers_to_person: \"https://nde.nl/ontology/hc/person/taco-dibbits\"\n observation_source: \"Rijksmuseum Jaarverslag 2023\"\n```\n\n**EXAMPLE - Person Across Multiple Institutions**:\n\n```yaml\nPerson:\n person_id: \"https://nde.nl/ontology/hc/person/maria-garcia\"\n preferred_name: \"Maria Garcia\"\n participated_in_events:\n - \"https://nde.nl/ontology/hc/event/garcia-curator-appointment-2015\"\n - \"https://nde.nl/ontology/hc/event/garcia-director-appointment-2022\"\n\nPersonObservation: # Earlier role\n role_title: \"Curator of European Art\"\n unit_affiliation: \"Rijksmuseum\"\n role_start_date: \"2015-03-01\"\n role_end_date: \"2021-12-31\"\n refers_to_person: \"https://nde.nl/ontology/hc/person/maria-garcia\"\n\nPersonObservation: # Current role\n role_title: \"Director\"\n unit_affiliation: \"Mauritshuis\"\n role_start_date: \"2022-01-01\"\n refers_to_person: \"https://nde.nl/ontology/hc/person/maria-garcia\"\n```", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "person_id": { - "description": "The persistent identifier for a Person entity in the NDE Heritage Custodian\nontology. This is the core identifier that serves as the hub connecting\nall observations and reconstructions related to this person.\n\n**FORMAT**:\n```\nhttps://nde.nl/ontology/hc/person/{person-slug}\n```\n\n**NAMING CONVENTION**:\n- Lowercase, hyphenated slug derived from preferred name\n- May include disambiguator (birth year, location, etc.)\n\n**EXAMPLES**:\n```\nhttps://nde.nl/ontology/hc/person/taco-dibbits\nhttps://nde.nl/ontology/hc/person/jan-de-vries-1985\nhttps://nde.nl/ontology/hc/person/maria-garcia-amsterdam\n```\n\n**HUB ARCHITECTURE**:\n\nThe Person hub pattern mirrors the Custodian hub pattern:\n- Person contains minimal data (essentially just person_id)\n- PersonObservation entities attach via refers_to_person\n- Multiple observations can document the same person\n- Person persists while observations evolve\n\n```\nPersonObservation \u2500\u2500refers_to_person\u2500\u2500> Person \u2500\u2500participated_in_events\u2500\u2500> Event\n \u2191 \u2191\n(from source A) (from source B)\nPersonObservation \u2500\u2500refers_to_person\u2500\u2500\u2500\u2518\n```\n\n**PICO ALIGNMENT**:\n- Person hub \u2192 pico:Person\n- PersonObservation \u2192 pico:PersonObservation\n- The distinction between hub (abstract identity) and observation (evidence) is core PICO", - "pattern": "^https://nde\\.nl/ontology/hc/person/[a-z0-9-]+$", - "type": "string" - }, - "preferred_name": { - "description": "The preferred name for this person - the canonical form used for display.\n\nThis is the PREFERRED name, not necessarily the full legal name.\nOther name forms appear in PersonObservation entries.\n\n**EXAMPLES**:\n- \"Taco Dibbits\" (preferred)\n- NOT: \"Taco Jacobus Sergio Dibbits\" (full legal)\n- NOT: \"T.J.S. Dibbits\" (formal abbreviation)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "person_id" - ], - "title": "Person", - "type": "object" - }, - "PersonAgent": { - "additionalProperties": false, - "description": "Agent type for natural persons.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_code" - ], - "title": "PersonAgent", - "type": "object" - }, - "PersonClaimTypeEnum": { - "description": "Types of claims that can be extracted about persons from web pages.\nEach claim type has expected source locations in institutional pages.", - "enum": [ - "full_name", - "given_name", - "family_name", - "role_title", - "department", - "email", - "phone", - "biography", - "specialization", - "education", - "start_date", - "end_date", - "photo_url", - "linkedin_url", - "orcid", - "twitter_handle", - "previous_employer", - "publication", - "award", - "language_proficiency" - ], - "title": "PersonClaimTypeEnum", - "type": "string" - }, - "PersonName": { - "additionalProperties": false, - "description": "Person name.", - "properties": { - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "PersonName", - "type": "object" - }, - "PersonObservation": { - "additionalProperties": false, - "description": "An observation of a person serving in a staff role at a heritage custodian institution,\nas documented in a specific source at a specific point in time.\n\n**PiCo Pattern Adaptation**:\nThe PiCo (Persons in Context) ontology distinguishes between:\n- **PersonObservation**: Data about a person as found in a source (evidence-based)\n- **PersonReconstruction**: Aggregated identity from multiple observations (inferred)\n\nFor heritage custodian staff tracking, we adapt this pattern:\n- **PersonObservation**: Staff role as documented in institutional sources\n (annual reports, org charts, staff directories, archival records)\n- Focus on ROLES and AFFILIATIONS rather than biographical details\n- Temporal validity tracks employment period in specific position\n\n**Key Distinction from General Person Data**:\nThis class models INSTITUTIONAL ROLES, not complete biographical data:\n- Emphasis: Role, title, unit affiliation, employment dates\n- NOT: Full biographical reconstruction (birth, death, family, etc.)\n- Sources: Institutional records (not vital records, census, etc.)\n- PiCo: `pico:PersonObservation` (primary - person data from sources)\n- Schema.org: `schema:Person` (for person identity)\n- Schema.org: `schema:Role` (for organizational role)\n- CIDOC-CRM: `crm:E21_Person` (person as cultural heritage actor)\n- PROV-O: `prov:Agent` (person as responsible agent)\n- FOAF: `foaf:Person` (person in social network)\n\n**Hub Architecture Integration**:\n- PersonObservation refers to Person hub via `refers_to_person` (PICO pattern)\n- PersonObservation refers to OrganizationUnit via `is_or_was_affiliated_with`\n- OrganizationalStructure refers back via `staff_members` (bidirectional)\n- PersonObservation affected by OrganizationalChangeEvent via `affected_by_event`\n- Person hub links to Event via `participated_in_events`\n- Temporal alignment: employment dates vs. organizational unit validity\n\n**Use Cases**:\n1. **Staff directories**: Document current and historical staff roles\n2. **Organizational provenance**: Track who managed departments/collections\n3. **Workforce history**: Analyze staffing patterns over time\n4. **Expertise tracking**: Find conservators, curators by specialization\n5. **Reorganization impact**: Track staff transitions during structural changes\n\n**Example - Conservation Staff**:\n\n```yaml\nPersonObservation:\n person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n role_title: \"Senior Paintings Conservator\"\n is_or_was_affiliated_with: \".../org-unit/rm-conservation-division\"\n role_start_date: \"2013-03-01\"\n role_end_date: null # Still employed\n observation_source:\n source_type: \"Staff directory\"\n source_uri: \"https://rijksmuseum.nl/staff/jane-smith\"\n observation_date: \"2024-11-22\"\n```\n\n**Example - Staff Through Organizational Change**:\n\n```yaml\n# Before merger (2013-02-28)\nPersonObservation:\n person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n role_title: \"Head, Paintings Conservation Department\"\n is_or_was_affiliated_with: \".../org-unit/rm-paintings-conservation\"\n role_start_date: \"2010-01-01\"\n role_end_date: \"2013-02-28\"\n\n# After merger (2013-03-01)\nPersonObservation:\n person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n role_title: \"Deputy Director, Conservation Division\"\n is_or_was_affiliated_with: \".../org-unit/rm-conservation-division\"\n role_start_date: \"2013-03-01\"\n role_end_date: null\n affected_by_event: \".../event/rm-conservation-merger-2013\"\n```", - "properties": { - "has_or_had_age": { - "description": "The age of an entity (person, object, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\n\"hasOrHad\" indicates the age is relative to a specific time or context (e.g., age at death, age at acquisition).\n\n**Ontological Alignment**:\n- `foaf:age`: The age in years of some agent.\n\n**Range**:\n- Can be a simple integer (years) via slot_usage narrowing.\n- Can be an `Age` class for structured representation (e.g. range, unit).\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_affected_by_event": { - "description": "Organizational change event that affected this person's role.\n\n**PROV-O**: `prov:wasInfluencedBy` for entity influenced by activity\n\n**Use Cases**:\n- Person promoted during reorganization\n- Person reassigned due to unit merger\n- Person's role changed after department split\n- Person retained position despite structural changes\n\n**Reference**: Links to OrganizationalChangeEvent.event_id\n\n**Temporal Alignment**:\n- If role_start_date = event_date: Role created by event\n- If role_end_date = event_date: Role ended by event\n\n**Example**: Person starts in new \"Digital Services Division\" on\ndate of reorganization event that created the division.\n\n**Provenance**: Documents WHY role changed (organizational context)\n", - "items": { - "$ref": "#/$defs/OrganizationalChangeEvent" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "PersonObservation", - "type": "object" - }, - "PersonResearchTemplate": { - "additionalProperties": false, - "description": "Template type for staff and personnel queries.\n\n**Relevant Queries**:\n- Heritage professionals and staff\n- Director and curator information\n- Organizational personnel\n- LinkedIn profile extraction", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "PersonResearchTemplate", - "type": "object" - }, - "PersonWebClaim": { - "additionalProperties": false, - "description": "A verifiable claim about a person extracted from a web page with provenance.\n\n**RULE 26 COMPLIANCE: Person Data Provenance**\n\nAll person/staff data associated with heritage custodians MUST have\nweb claim provenance. This includes:\n- Staff names, titles, and roles\n- Contact information (if publicly available)\n- Professional history and education\n- Affiliations and expertise areas\n\n**VERIFIABILITY PRINCIPLE**\n\nLike the base WebClaim class, PersonWebClaim follows the \"XPath or Remove\" principle:\n- Claims from web pages MUST have has_or_had_provenance_path with XPath expression\n- Claims from APIs (LinkedIn via Exa) may omit has_or_had_provenance_path but MUST have source_url\n- Claims without any verifiable source are FABRICATED and must be removed\n\n**SOURCE HIERARCHY**\n\nWhen multiple sources provide the same information:\n1. Official institutional website (highest reliability)\n2. LinkedIn profile (high reliability)\n3. News articles/press releases (medium-high)\n4. Conference programs (medium)\n5. Academic publications (medium)\n6. Third-party databases (lower)\n\nDocument all sources when available; note conflicts.\n\n**CLAIM TYPES**\n\nCommon claim types for heritage institution staff:\n- **full_name**: Complete name as displayed\n- **role_title**: Job title (e.g., \"Senior Curator\")\n- **department**: Organizational unit\n- **email**: Professional contact (only if public)\n- **biography**: Professional bio text\n- **specialization**: Expertise areas\n- **education**: Degrees and institutions\n\n**EXTRACTION WORKFLOW**\n\n1. SCRAPE institutional staff/team pages with FireCrawl\n2. EXTRACT names and roles with XPath locations stored in has_or_had_provenance_path\n3. SEARCH LinkedIn for additional profile data\n4. CREATE PersonWebClaim for each extracted fact\n5. LINK claims to PersonObservation records\n\n**INTEGRATION WITH PERSONOBSERVATION**\n\nPersonObservation (the PiCo-based staff role record) references\nPersonWebClaim instances via the `web_claims` slot:\n\n```yaml\nPersonObservation:\n person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n has_or_had_web_claim:\n - claim_type: full_name\n claim_value: \"Dr. Jane Smith\"\n source_url: https://museum.org/team\n has_or_had_provenance_path:\n expression: /html/body/main/div[2]/h3\n match_score: 1.0\n retrieval_agent: firecrawl\n```\n\n**LINKEDIN PROFILE HANDLING**\n\nFor LinkedIn data, create separate profile files (per Rule 12, Rule 20)\nand reference them:\n\n```yaml\nlinkedin_claims:\n linkedin_url: https://www.linkedin.com/in/jane-smith\n profile_data_path: data/custodian/person/entity/jane-smith_20250115.json\n retrieved_on: \"2025-01-15T10:30:00Z\"\n retrieval_agent: exa_crawling_exa\n```", - "properties": { - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_provenance_path": { - "items": { - "$ref": "#/$defs/XPath" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "person_claim_id": { - "description": "Unique identifier for this person claim", - "type": [ - "string", - "null" - ] - }, - "person_claim_type": { - "$ref": "#/$defs/PersonClaimTypeEnum", - "description": "Type of person claim. See PersonClaimTypeEnum.\n\nCommon claim types:\n- full_name: Complete name\n- role_title: Job title\n- department: Organizational unit\n- email: Contact email (if public)\n- biography: Professional bio\n- specialization: Expertise areas\n" - }, - "person_claim_value": { - "description": "The extracted value. Must be verifiable at the source.\n", - "type": "string" - }, - "person_html_file": { - "description": "Relative path to archived HTML file containing this claim.\nPath is relative to the custodian data directory.\n\nExample: web/NL-NH-AMS-M-RM/rijksmuseum.nl/team.html\n", - "type": [ - "string", - "null" - ] - }, - "retrieval_agent": { - "$ref": "#/$defs/RetrievalAgentEnum", - "description": "Tool used to extract this data.\n\n- firecrawl: Institutional websites (primary)\n- playwright: JS-heavy sites\n- exa_crawling_exa: LinkedIn profiles\n- manual: Last resort\n" - }, - "retrieved_on": { - "description": "Timestamp when the web page was retrieved/archived.\n\npav:retrievedOn - \"The date this resource was retrieved from the source\"\n\nISO 8601 format with timezone (UTC preferred).\n\nExamples:\n- \"2025-11-29T12:28:00Z\" (UTC)\n- \"2025-11-29T10:30:00+01:00\" (with timezone offset)\n", - "format": "date-time", - "type": "string" - }, - "source_url": { - "description": "URL of the web page this data was retrieved from.\n\npav:retrievedFrom - \"The URI from which the resource was retrieved.\"\n\nThis is a key provenance field that enables verification of extracted data\nby linking back to the original source web page.\n\nExamples:\n- https://historischeverenigingnijeveen.nl/ (institution homepage)\n- https://ec.europa.eu/info/funding-tenders/... (EU funding portal)\n- https://www.heritagefund.org.uk/funding/... (UK heritage fund)\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "person_claim_id", - "person_claim_type", - "person_claim_value", - "retrieval_agent", - "retrieved_on", - "source_url" - ], - "title": "PersonWebClaim", - "type": "object" - }, - "PersonalCollectionType": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_category": { - "description": "Links an entity to its category or classification.\nCategories represent hierarchical or faceted classifications: - Subject categories (art, science, history) - Thematic categories (Dutch Golden Age, WWII, Islamic art) - Material categories (paintings, manuscripts, specimens) - Geographic categories (European, Asian, African) - Temporal categories (Medieval, Renaissance, Contemporary)\nThe Category class enables structured categorization with: - Category name and description - Category type (subject, theme, material, geographic, temporal) - Hierarchical relationships (broader/narrower terms) - Provenance tracking", - "items": { - "$ref": "#/$defs/Category" - }, - "type": "array" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_acquired_through": { - "items": { - "$ref": "#/$defs/AcquisitionEvent" - }, - "type": "array" - }, - "legacy_planning": { - "type": [ - "string", - "null" - ] - }, - "personal_collection_subtype": { - "type": [ - "string", - "null" - ] - }, - "preservation_approach": { - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_category", - "has_or_had_quantity", - "preservation_approach", - "is_or_was_acquired_through" - ], - "title": "PersonalCollectionType", - "type": "object" - }, - "PersonalData": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_sensitivity_level": { - "description": "Indicates the sensitivity level of data or materials (e.g., GDPR, confidential). MIGRATED from gdpr_relevant context. Follows RiC-O naming convention.", - "items": { - "$ref": "#/$defs/SensitivityLevel" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_sensitivity_level" - ], - "title": "PersonalData", - "type": "object" - }, - "PersonnelExpenses": { - "additionalProperties": false, - "description": "Costs related to employees (salaries, benefits).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "PersonnelExpenses", - "type": "object" - }, - "PersonnelRecordsSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for personnel and human resources records organized as series.\n\n**Definition**:\nRecords documenting the employment relationship between the company and its \nworkforce, including hiring, employment, training, and separation records.\n\n**Typical Contents**:\n- Personnel files (personeelsdossiers)\n- Employment contracts (arbeidsovereenkomsten)\n- Payroll records (salarisadministratie)\n- Training and development records\n- Performance evaluations\n- Disciplinary records\n- Pension administration\n- Works council records (ondernemingsraad)\n- Health and safety records\n\n**Privacy Considerations**:\nPersonnel records contain sensitive personal information subject to \nprivacy regulations (AVG/GDPR). Access restrictions apply, especially \nfor recent records. Typical retention: 7-10 years after employment ends.\n\n**Historical Personnel Records**:\nHistorical personnel records (typically 75+ years old) may have fewer \nrestrictions and are valuable for:\n- Social history research\n- Company history projects\n- Former employee inquiries\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the series organizational principle as defined by rico-rst:Series\n(personnel records typically arranged alphabetically by employee name within \ndate ranges).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "privacy_note": { - "const": "Subject to AVG/GDPR. Access restrictions apply for records less than 75 years old. Typical retention: 7-10 years after employment ends.", - "description": "Notes about privacy restrictions or access limitations.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the series principle as defined by rico-rst:Series. Personnel records typically arranged alphabetically by employee name within date ranges.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PersonnelRecordsSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"governance records\", \"product development\", \"marketing materials\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"personnel files\", \"employment contracts\", \"payroll records\", \"training records\", \"works council records\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "PersonnelRecordsSeries", - "type": "object" - }, - "PestCountMeasurement": { - "additionalProperties": false, - "description": "Pest monitoring measurement type for tracking insect and rodent activity.\nTypically recorded as count per trap per time period.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_measurement_unit": { - "anyOf": [ - { - "$ref": "#/$defs/MeasureUnit" - }, - { - "type": "null" - } - ], - "description": "The unit of measurement for a quantity value. Uses RiC-O temporal naming pattern to indicate the unit may be current or historical (e.g., if measurement standards changed over time).\n**QUDT**: qudt:unit - \"The unit of measure used to express the value of a Quantity.\"\n**USE CASES**: - Visitor counts: unit = \"visitors\", \"visitors/year\" - View counts: unit = \"views\", \"views/day\" - Collection sizes: unit = \"items\", \"objects\", \"linear meters\" - Area: unit = \"m\u00b2\", \"ha\", \"km\u00b2\" - Currency: unit = \"EUR\", \"USD\", \"GBP\"" - }, - "has_or_had_name": { - "const": "Pest Count", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "PestCountMeasurement", - "type": "object" - }, - "PettingZooSubtype": { - "additionalProperties": false, - "description": "Interactive domestic animal exhibit for children.\nFocus on hands-on animal contact and education.\n\n**Wikidata**: Q2302474\n**Dutch**: Kinderboerderij", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PettingZooSubtype", - "type": "object" - }, - "PhoneClaim": { - "additionalProperties": false, - "description": "Contact phone number.\nExpected in: <a href='tel:...'>, contact page, footer", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "PhoneClaim", - "type": "object" - }, - "PhotoArchive": { - "additionalProperties": false, - "description": "Physical image collection focusing on photographs. Photo archives collect, preserve, and provide access to photographic materials including prints, negatives, slides, and digital images. They may focus on specific subjects, photographers, or geographic regions. Preservation of photographic materials requires specialized environmental controls and handling procedures.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PhotoArchive", - "type": "object" - }, - "PhotoArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by PhotoArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PhotoArchiveRecordSetType", - "type": "object" - }, - "PhotographCollection": { - "additionalProperties": false, - "description": "Digital platform hosting a curated collection of photographs.\n\n**PURPOSE**: Preserve and provide access to photographic heritage\nincluding historical photographs, press images, and art photography.\n\n**CHARACTERISTICS**:\n- High-resolution image access\n- Photographic metadata (EXIF, IPTC)\n- Rights management\n- Thematic or institutional organization\n\n**EXAMPLES**: Getty Images, Flickr Commons, national photo archives", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q130486108" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "REPOSITORY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "PhotographCollection", - "type": "object" - }, - "PhotographerPapersCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Personal papers of photographers.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PhotoArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PhotoArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PhotographerPapersCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PhotographerPapersCollection", - "type": "object" - }, - "PhotographicCollectionContent": { - "additionalProperties": false, - "description": "Photographic materials: Historical photographs, negatives,\nslides, digital images, photo albums.", - "properties": { - "has_or_had_label": {}, - "type_definition": { - "description": "Definition of this collection content type", - "type": [ - "string", - "null" - ] - } - }, - "title": "PhotographicCollectionContent", - "type": "object" - }, - "PhotographicContent": { - "additionalProperties": false, - "description": "Photographs and photographic reproductions.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "PHOTOGRAPHIC", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Photographic Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "PhotographicContent", - "type": "object" - }, - "PhotographicPrintSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Photographic prints and negatives.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PhotoArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PhotoArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PhotographicPrintSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PhotographicPrintSeries", - "type": "object" - }, - "PhotographicStorageEnvironment": { - "additionalProperties": false, - "description": "Storage optimized for photographic materials.\n\n**PURPOSE**: Provide climate conditions specifically designed for\nthe preservation of photographic materials in various formats.\n\n**RECOMMENDED CONDITIONS (ISO 18920:2011, ISO 18934:2011)**:\n- Temperature: 10-18\u00b0C (target 15\u00b0C)\n- Relative humidity: 30-40% (target 35%)\n- Light: < 50 lux, UV filtered (< 75 \u00b5W/lumen)\n- Air quality: Filtered, pollutant-free\n\n**ISO 18920:2011 - REFLECTION PRINTS**:\n- B&W prints: 15-18\u00b0C, 30-40% RH (extend life 10x)\n- Color prints: 2\u00b0C (extend life 20x)\n- Dark storage strongly recommended\n\n**ISO 18934:2011 - MULTIPLE MEDIA**:\n- Macro-environment I: 21\u00b0C, 50% RH (office standard)\n- Macro-environment II: 10\u00b0C, 30% RH (extended storage)\n- Provides guidance for mixed photographic collections\n\n**SUITABLE MATERIALS**:\n- Photographic prints (all processes)\n- Negatives (glass, film)\n- Slides and transparencies\n- Daguerreotypes and ambrotypes\n- Photographic albums\n\n**SPECIAL REQUIREMENTS**:\n- UV filtering essential (< 75 \u00b5W/lumen)\n- Avoid direct light exposure\n- Separate from off-gassing materials\n- Consider cold storage for color materials\n\n**STANDARD REFERENCES**:\n- ISO 18920:2011 - Reflection prints - Storage practices\n- ISO 18934:2011 - Multiple media archives - Storage environment\n\n**HC PRESET**: hc:PhotographicMaterialsEnvironment", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "PHOTOGRAPHIC", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard": { - "description": "Reference to applicable ISO or EN standard for this environmental zone type.\n\nFormat: Standard identifier (e.g., \"ISO 11799\", \"ISO 18911\", \"EN 16893\")\n\nCommon preservation standards:\n- ISO 11799: Document storage requirements\n- ISO 18911: Film storage practices\n- ISO 18934: Multiple media archives storage\n- EN 16893: Heritage collection storage buildings\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "max_annual_light_exposure": { - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "const": 50, - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "requires_dark_storage": { - "description": "Whether dark (zero light) storage is required for this environmental zone.\n\nBased on ISO preservation standards:\n- Film storage (ISO 18911): Dark storage mandatory\n- Photographic (ISO 18920): Dark storage for extended-term\n- UK Archives (BS 4971): 0 lux for closed storage\n\nDark storage essential for:\n- Film negatives (especially color and early nitrate/acetate)\n- Daguerreotypes and early photographic processes\n- Cyanotypes and blueprint materials\n- Some magnetic media (tape)\n- Highly fugitive inks and dyes\n\nAccess provided through reading rooms or digitization requests.\nCumulative light damage is completely prevented.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_dust_free": { - "description": "Whether a dust-free or dust-controlled environment is required for this zone.\n\nBased on ISO preservation standards:\n- Magnetic tape (ISO 18923): Dust-free mandatory\n- Optical media (ISO 18938): Cleanroom for masters\n- Archives (ISO 11799): Dust control required\n\nISO 14644-1 Cleanliness Classes:\n- Class 8: General archive/museum (HEPA filtered)\n- Class 7: AV media storage (positive pressure)\n- Class 5: Digital master storage (cleanroom)\n\nDust-free essential for:\n- Magnetic tapes and audiovisual media\n- Optical discs (CD, DVD, Blu-ray)\n- Fine art and paintings (surface abrasion)\n- Photographic materials (scratches, embedded particles)\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_esd_protection": { - "description": "Whether electrostatic discharge (ESD) protection is required for this zone.\n\nBased on ISO/IEC standards:\n- Magnetic tape (ISO 18923): ESD protection required\n- Optical media (ISO 18938): ESD-safe handling mandatory\n- Electronics (IEC 61340-5-1): ESD control program\n\nESD protection measures include:\n- Conductive/dissipative flooring\n- Humidity control (40-60% RH reduces static)\n- ESD-safe packaging and equipment\n- Personnel grounding (wrist straps)\n\nESD protection essential for:\n- Hard drives and SSDs\n- LTO and other magnetic tapes\n- Optical media (CD, DVD, Blu-ray masters)\n- Electronic components and circuit boards\n- Born-digital heritage collections\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_uv_filter": { - "description": "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \u00b5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label", - "has_or_had_description" - ], - "title": "PhotographicStorageEnvironment", - "type": "object" - }, - "Photography": { - "additionalProperties": false, - "description": "Permission specification for photography in reading rooms or collection areas. **DEFINITION**: A policy specification indicating whether researchers may photograph materials for personal research use when consulting collections. **SCHEMA.ORG ALIGNMENT**: Maps to `schema:LocationFeatureSpecification` as it describes a feature or amenity availability at a location. **TYPICAL CONDITIONS**: - Personal research use only - No flash photography - No tripods - Some materials excluded (fragile, copyright) - Declaration/waiver may be required **COPYRIGHT CONSIDERATIONS**: Photography permissions typically apply to: - Public domain materials - Materials where institution holds rights - Personal research use (fair use/dealing) Materials still under third-party copyright may have different rules. **TEMPORAL SEMANTICS**: Photography policies have evolved significantly: - Pre-2000s: Generally prohibited, had to order copies - 2000s-2010s: Gradual liberalization - 2010s onwards: Many institutions allow free photography **EXAMPLE**: ```yaml allows_or_allowed:\n - permitted_item: Photography\n is_permitted: true\n conditions:\n - \"Personal research use only\"\n - \"No flash\"\n - \"Fragile materials excluded\"\n valid_from: \"2018-01-01\"\n```", - "properties": { - "excludes_or_excluded": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/Material__identifier_optional" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } - ] - }, - "description": "Entities or materials explicitly excluded.", - "type": [ - "object", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_permitted": { - "description": "Is Permitted for heritage custodian entities.\n", - "type": "boolean" - }, - "poses_or_posed_condition": { - "description": "Conditions, requirements, or constraints that apply to something.\n\nThis slot captures access conditions, use restrictions, or other requirements\nthat must be met. Uses RiC-O temporal pattern for conditions that may\nchange over time.\n\n**SEMANTIC DISTINCTION**:\n- `poses_or_posed_condition`: Requirements/restrictions to access or use something\n- `has_or_had_condition`: Physical/preservation state of an object\n\n**Migration (2026-01-22)**:\n- `condition` \u2192 `poses_or_posed_condition` + `Condition` class\n- Per slot_fixes.yaml (Rule 53)\n", - "items": { - "$ref": "#/$defs/Condition" - }, - "type": [ - "array", - "null" - ] - }, - "requires_declaration": { - "description": "Requires Declaration for heritage custodian entities.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_permitted" - ], - "title": "Photography", - "type": "object" - }, - "Pinterest": { - "additionalProperties": false, - "description": "Pinterest profile/board.\n\n**URL patterns**:\n- https://www.pinterest.com/{username}\n- https://www.pinterest.com/{username}/{board_name}\n\n**Features**:\n- Visual discovery and bookmarking\n- Boards for collection curation\n- Pins with links to collection pages\n- Idea pins (multi-page content)\n\n**Heritage use cases**:\n- Visual inspiration boards\n- Collection highlights by theme\n- Art and design discovery\n- Driving traffic to collection website", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "IMAGE_FOCUSED", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://www.pinterest.com/{username}", - "https://www.pinterest.com/{username}/{board_name}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "Pinterest", - "type": "object" - }, - "Pizzeria": { - "additionalProperties": false, - "description": "Restaurant that sells pizza.\nIncludes historic pizzerias, traditional Neapolitan pizza makers,\nand establishments preserving authentic pizza-making traditions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "Pizzeria", - "type": "object" - }, - "PizzeriaChain": { - "additionalProperties": false, - "description": "Restaurant chain which specializes in pizzas.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "PizzeriaChain", - "type": "object" - }, - "Place": { - "additionalProperties": false, - "description": "A geographic or administrative place used for containment relationships.\n**DISTINCTION FROM Location**: - `Location` is for precise physical locations (address, coordinates) - `Place` is for administrative/geographic containment (city within province)\n**USE CASES**: - `within_place`: Institution is within a city/region - `within_auxiliary_place`: Secondary location containment - Administrative hierarchies: settlement \u2192 region \u2192 country\n**ONTOLOGY MAPPING**: - class_uri: schema:Place (generic place concept) - Supports GeoNames integration for standardized place references", - "properties": { - "geonames_id": { - "description": "GeoNames identifier for standardized place reference. Example: 2759794 for Amsterdam.", - "type": [ - "integer", - "null" - ] - }, - "iso_code": { - "description": "ISO code for administrative areas. Examples: \"NL\" (country), \"NL-NH\" (region), \"AMS\" (settlement code).", - "type": [ - "string", - "null" - ] - }, - "parent_place": { - "anyOf": [ - { - "$ref": "#/$defs/Place" - }, - { - "type": "null" - } - ], - "description": "Parent place in the administrative hierarchy. Example: Amsterdam's parent is Noord-Holland." - }, - "place_name": { - "description": "Name of the place (e.g., \"Amsterdam\", \"Noord-Holland\", \"Netherlands\").", - "type": "string" - }, - "place_type": { - "description": "Type of place (e.g., \"settlement\", \"region\", \"country\", \"district\").", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "place_name" - ], - "title": "Place", - "type": "object" - }, - "PlaceSpecificityEnum": { - "description": "Level of specificity for nominal place designations.\n\nUsed in CustodianPlace to indicate how precisely a place reference\nidentifies a location (from vague to building-specific).", - "enum": [ - "BUILDING", - "STREET", - "NEIGHBORHOOD", - "CITY", - "REGION", - "VAGUE" - ], - "title": "PlaceSpecificityEnum", - "type": "string" - }, - "PlaceType": { - "additionalProperties": false, - "description": "Place type.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "PlaceType", - "type": "object" - }, - "PlanarCoordinates": { - "additionalProperties": false, - "description": "2D planar coordinates (x, y) for image regions, bounding boxes, or surfaces.\n\nUsed by BoundingBox to define the origin point.\nCoordinates are typically normalized (0.0-1.0) or in pixels.", - "properties": { - "x": { - "description": "X coordinate (horizontal position/left edge).", - "type": "number" - }, - "y": { - "description": "Y coordinate (vertical position/top edge).", - "type": "number" - } - }, - "required": [ - "x", - "y" - ], - "title": "PlanarCoordinates", - "type": "object" - }, - "PlatformCategoryEnum": { - "description": "High-level categories for social media platform classification", - "enum": [ - "GENERAL_SOCIAL", - "MICROBLOGGING", - "IMAGE_FOCUSED", - "VIDEO_FOCUSED", - "PROFESSIONAL", - "MESSAGING", - "AUDIO", - "PUBLISHING", - "MEMBERSHIP", - "OTHER" - ], - "title": "PlatformCategoryEnum", - "type": "string" - }, - "PlatformType": { - "additionalProperties": false, - "description": "Platform type.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "PlatformType", - "type": "object" - }, - "PlatformTypeCategoryEnum": { - "description": "High-level categories for digital platform type classification", - "enum": [ - "REPOSITORY", - "AGGREGATOR", - "DISCOVERY", - "VIRTUAL_HERITAGE", - "RESEARCH", - "INTERACTIVE", - "COMMERCE", - "AUXILIARY" - ], - "title": "PlatformTypeCategoryEnum", - "type": "string" - }, - "PodcastChannel": { - "additionalProperties": false, - "description": "Audio podcast or video series hosted on dedicated platform.\nSpotify, Apple Podcasts, YouTube, SoundCloud.\n\n**PURPOSE**: Deliver heritage content through audio/video series\nfor on-demand consumption.\n\n**CHARACTERISTICS**:\n- Serial content\n- Audio/video format\n- Subscription model\n- Cross-platform distribution\n\n**EXAMPLES**: Museum podcasts, archive oral history channels", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "INTERACTIVE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "PodcastChannel", - "type": "object" - }, - "Point": { - "additionalProperties": false, - "description": "A single point geometry.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Point", - "type": "object" - }, - "PointillistInpainting": { - "additionalProperties": false, - "description": "Inpainting using small dots of color.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "PointillistInpainting", - "type": "object" - }, - "PolicyDocumentCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Government policy documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "GovernmentArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by GovernmentArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PolicyDocumentCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PolicyDocumentCollection", - "type": "object" - }, - "PolicyDocumentUrlClaim": { - "additionalProperties": false, - "description": "Multi-year policy document link (meerjarenbeleid, beleidsplan).\nDutch: meerjarenbeleid, beleidsplan, strategisch plan.\nEnglish: multi-year policy, strategic plan.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "PolicyDocumentUrlClaim", - "type": "object" - }, - "PoliticalArchive": { - "additionalProperties": false, - "description": "Archive focused on political topics and documentation. Political archives collect and preserve materials documenting political movements, parties, governments, elections, and political figures. They serve as essential resources for understanding political history and contemporary politics.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PoliticalArchive", - "type": "object" - }, - "PoliticalArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by PoliticalArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PoliticalArchiveRecordSetType", - "type": "object" - }, - "PoliticalPartyFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Political party records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PoliticalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PoliticalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PoliticalPartyFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PoliticalPartyFonds", - "type": "object" - }, - "PoliticianPapersCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Politician personal papers.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PoliticalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PoliticalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PoliticianPapersCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PoliticianPapersCollection", - "type": "object" - }, - "Polygon": { - "additionalProperties": false, - "description": "A polygon geometry.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Polygon", - "type": "object" - }, - "PoorCondition": { - "additionalProperties": false, - "description": "Poor physical condition requiring conservation attention", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "PoorCondition", - "type": "object" - }, - "PopulatedPlace": { - "additionalProperties": false, - "description": "City, village, etc. (GeoNames class P)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "PopulatedPlace", - "type": "object" - }, - "PortalCategoryEnum": { - "description": "High-level categories for web portal type classification", - "enum": [ - "GEOGRAPHIC_SCOPE", - "DOMAIN_SPECIFIC", - "CROSS_DOMAIN", - "THEMATIC", - "TECHNICAL_INFRASTRUCTURE", - "ACCESS_MODEL", - "RESEARCH_INFRASTRUCTURE", - "REGISTRY", - "LIFECYCLE" - ], - "title": "PortalCategoryEnum", - "type": "string" - }, - "PostTypeCategoryEnum": { - "description": "High-level categories for social media post type classification", - "enum": [ - "VIDEO", - "SHORT_VIDEO", - "IMAGE", - "TEXT", - "STORY", - "LIVE_STREAM", - "AUDIO", - "ARTICLE", - "THREAD", - "CAROUSEL", - "OTHER" - ], - "title": "PostTypeCategoryEnum", - "type": "string" - }, - "PostalCodeClaim": { - "additionalProperties": false, - "description": "Postal/ZIP code.\nDutch: postcode (e.g., 1234 AB).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "PostalCodeClaim", - "type": "object" - }, - "PostcustodialArchive": { - "additionalProperties": false, - "description": "Archive operating under postcustodial principles. Postcustodial archives do not take physical custody of records but instead provide archival services (description, access, preservation guidance) while records remain with their creators or other custodians. This model is particularly relevant for digital records and distributed archival networks.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PostcustodialArchive", - "type": "object" - }, - "PostcustodialArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by PostcustodialArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PostcustodialArchiveRecordSetType", - "type": "object" - }, - "PrePrintServer": { - "additionalProperties": false, - "description": "Type of open access repository for preprints.\n\n**PURPOSE**: Enable rapid dissemination of research findings before\nformal peer review and publication.\n\n**CHARACTERISTICS**:\n- Rapid publication\n- Pre-peer review\n- Version tracking\n- DOI assignment\n\n**EXAMPLES**: arXiv, bioRxiv, SocArXiv", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q45787211" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "RESEARCH", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "PrePrintServer", - "type": "object" - }, - "PrefectureSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Prefecture administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "DepartmentalArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by DepartmentalArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PrefectureSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PrefectureSeries", - "type": "object" - }, - "PreservationCopyCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Preservation copies.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "DarkArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by DarkArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PreservationCopyCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PreservationCopyCollection", - "type": "object" - }, - "PreservationMethodEnum": { - "description": "Preservation methods used for biological specimens in natural history\ncollections.\n\n**Categories**:\n\n1. **Dry Preservation**: Taxidermy, dried specimens, pinned insects\n2. **Wet Preservation**: Fluid-preserved specimens (ethanol, formalin)\n3. **Frozen/Cryogenic**: Ultra-cold storage for DNA/tissue\n4. **Other Methods**: Casts, fossils, living collections\n\n**Darwin Core Alignment**:\n\nMaps to dwc:preparations - \"A list of preparations and preservation\nmethods for a specimen.\"\n\n**Example Usage**:\n\n```\nTaxidermy mount: TAXIDERMY_MOUNT\nHerbarium sheet: DRIED_PRESSED\nAlcohol jar specimen: FLUID_ETHANOL\nDNA sample: FROZEN_TISSUE\n```", - "enum": [ - "TAXIDERMY_MOUNT", - "TAXIDERMY_STUDY_SKIN", - "DRIED_WHOLE", - "DRIED_PRESSED", - "PINNED", - "CARD_MOUNTED", - "SLIDE_MOUNTED", - "SKELETON", - "SKULL_ONLY", - "SHELL", - "FREEZE_DRIED", - "FLUID_ETHANOL", - "FLUID_FORMALIN", - "FLUID_ISOPROPANOL", - "FLUID_OTHER", - "FROZEN_STANDARD", - "FROZEN_TISSUE", - "CRYOGENIC_LN2", - "CAST_PLASTER", - "CAST_RESIN", - "EMBEDDED_RESIN", - "EMBEDDED_AMBER", - "FOSSIL_UNPREPPED", - "FOSSIL_PREPARED", - "FOSSIL_CONSOLIDATED", - "LIVING", - "SEED_BANK", - "SILICA_GEL", - "CTAB_PRESERVED", - "NOT_PRESERVED", - "UNKNOWN" - ], - "title": "PreservationMethodEnum", - "type": "string" - }, - "PreservationMotivation": { - "additionalProperties": false, - "description": "Motivation for supporting digital preservation.\n\n**DEFINITION**:\n\nPreservationMotivation describes annotations created to support\nthe long-term preservation of digital heritage content.\n\n**HERITAGE-SPECIFIC MOTIVATION**:\n\nThis extends W3C Web Annotation with digital preservation needs.\nFocus is on ensuring content remains accessible over time.\n\n**USE CASES**:\n\n| Use Case | Example |\n|----------|---------|\n| Format documentation | Technical metadata (PREMIS) |\n| Checksum recording | Fixity verification |\n| Migration notes | Format conversion history |\n| Rights documentation | Preservation rights |\n| Significant properties | What must be preserved |\n\n**HERITAGE CONTEXT**:\n\nDigital preservation is a core heritage function:\n- Archive preservation planning\n- Museum digital asset management\n- Library digital preservation programs\n- OAIS compliance documentation\n\n**PREMIS ALIGNMENT**:\n\nSupports PREMIS Data Dictionary:\n- premis:Object (digital objects)\n- premis:Event (preservation actions)\n- premis:Agent (preservation actors)\n- premis:Rights (preservation permissions)", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "motivation_type_description": { - "description": "Detailed description of an annotation motivation type including purpose, characteristics, and typical use cases.", - "type": [ - "string", - "null" - ] - }, - "motivation_type_id": { - "description": "Unique identifier for an annotation motivation type.", - "type": "string" - }, - "motivation_type_name": { - "const": "preservation", - "description": "Canonical name for this motivation type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "motivation_type_id", - "motivation_type_name" - ], - "title": "PreservationMotivation", - "type": "object" - }, - "PreservationRepository": { - "additionalProperties": false, - "description": "Digital repository that takes measures to ensure the long-term\nviability of its contents.\n\n**PURPOSE**: Guarantee long-term access to digital content through\nactive preservation strategies and trustworthy stewardship.\n\n**CHARACTERISTICS**:\n- Trusted Digital Repository certification\n- Active preservation planning\n- Format normalization and migration\n- Geographic redundancy\n\n**EXAMPLES**: HathiTrust, Portico, CLOCKSS", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q117816878" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "REPOSITORY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "PreservationRepository", - "type": "object" - }, - "PreservedCollectionClassification": { - "additionalProperties": false, - "description": "Institution with preserved biological specimens.\nHerbaria, taxidermy collections, spirit collections.\n\n**Note**: This often overlaps with RESEARCH_CENTER (R) type", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PreservedCollectionClassification", - "type": "object" - }, - "PressArchive": { - "additionalProperties": false, - "description": "Collection of press, newspaper materials and content. Press archives collect and preserve newspapers, magazines, press releases, and other media materials. They may serve news organizations, research institutions, or the general public. Holdings may include both print materials and digital content.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PressArchive", - "type": "object" - }, - "PressArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by PressArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PressArchiveRecordSetType", - "type": "object" - }, - "Price": { - "additionalProperties": false, - "description": "Price information including value, currency, and optional range/category.\n\nFor catering and services, price ranges use symbolic notation:\n- \u20ac (budget): Under \u20ac15 per person\n- \u20ac\u20ac (moderate): \u20ac15-30 per person\n- \u20ac\u20ac\u20ac (upscale): \u20ac30-60 per person\n- \u20ac\u20ac\u20ac\u20ac (luxury): Over \u20ac60 per person", - "properties": { - "has_or_had_currency": { - "anyOf": [ - { - "$ref": "#/$defs/Currency" - }, - { - "type": "null" - } - ], - "description": "Currency associated with monetary values. Uses RiC-O temporal naming pattern to indicate the currency may be current or historical.\n**Schema.org**: schema:currency for currency designation.\n**ISO 4217**: Standard currency codes (EUR, USD, GBP, etc.)\nCan represent the currency for budgets, financial statements, acquisition costs, and other monetary amounts." - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/PriceRange" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_value": { - "description": "The price value. Can be:\n- Numeric (e.g., \"15.00\")\n- Symbolic (e.g., \"\u20ac\u20ac\u20ac\")\n- Descriptive (e.g., \"free\", \"donation suggested\")\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Price", - "type": "object" - }, - "PriceRange": { - "additionalProperties": false, - "description": "A price range or category classification.\n\nStandard price range categories:\n- Budget (\u20ac): Under \u20ac15 per person\n- Moderate (\u20ac\u20ac): \u20ac15-30 per person\n- Upscale (\u20ac\u20ac\u20ac): \u20ac30-60 per person\n- Luxury (\u20ac\u20ac\u20ac\u20ac): Over \u20ac60 per person\n- Free: No charge\n- Donation: Suggested donation", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - }, - "has_or_had_symbol": { - "description": "A symbolic representation associated with an entity.\n\n**USAGE**:\nUsed for standardized symbols such as:\n- Unit symbols (e.g., \"ha\" for hectare, \"m\u00b2\" for square meter)\n- Currency symbols (e.g., \"\u20ac\", \"$\")\n- Chemical symbols\n- Mathematical notation symbols\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: qudt:symbol (QUDT symbol for units)\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "has_or_had_name" - ], - "title": "PriceRange", - "type": "object" - }, - "PrideEventCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Pride and event documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "LGBTArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by LGBTArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PrideEventCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PrideEventCollection", - "type": "object" - }, - "PrimaryDigitalPresenceAssertion": { - "additionalProperties": false, - "description": "A temporal assertion about whether a digital presence (SocialMediaProfile,\nDigitalPlatform, AuxiliaryDigitalPlatform, or InternetOfThings) serves as \nthe PRIMARY or MAIN digital presence for a heritage custodian.\n\n**SUPPORTED DIGITAL PRESENCE TYPES**:\n\n1. **DigitalPlatform** - Primary websites, discovery portals, repositories\n2. **AuxiliaryDigitalPlatform** - Project sites, exhibition microsites\n3. **SocialMediaProfile** - Third-party platform accounts (Facebook, Instagram)\n4. **InternetOfThings** - Physical devices with digital connectivity\n\nUse `digital_presence_type` slot to classify which TYPE of presence is\nbeing characterized, using DigitalPresenceTypeEnum values.\n\n**WHY TEMPORAL ASSERTIONS?**\n\nThe \"primary digital presence\" status can change over time:\n\n- 2020: Heritage society has ONLY Facebook \u2192 Facebook is primary (true)\n- 2022: Society launches website \u2192 Facebook becomes secondary (false)\n- 2024: Website abandoned, back to Facebook \u2192 Facebook is primary again (true)\n\nEach change is documented via WebObservation provenance.\n\n**CIDOC-CRM ALIGNMENT**:\n\nMaps to `crm:E13_Attribute_Assignment`:\n- \"Comprises the actions of making assertions about one particular property \n of an object or any single relation between two items or concepts.\"\n- Allows temporal scoping of the assertion\n- Provides provenance for WHO made the assertion and WHEN\n\nKey CRM properties:\n- `P140_assigned_attribute_to` \u2192 The digital presence being characterized\n- `P141_assigned` \u2192 The boolean value (true/false for is_primary)\n- `P4_has_time-span` \u2192 When this assertion is valid\n- `P17_was_motivated_by` \u2192 The WebObservation(s) supporting this assertion\n\n**PROVENANCE CHAIN**:\n\n```\nWebObservation (prov:Activity)\n \u2502\n \u251c\u2500\u2500 observed website/social media \u2192 SourceDocument\n \u2502\n \u2514\u2500\u2500 prov:generated \u2192 PrimaryDigitalPresenceAssertion\n \u2502\n \u251c\u2500\u2500 assertion_value: true/false\n \u251c\u2500\u2500 temporal_extent: TimeSpan\n \u2514\u2500\u2500 about_digital_presence: SocialMediaProfile\n```\n\n**RELATIONSHIP TO SOCIALMEDIACLAIMS**:\n\nThis is similar to how WebClaim works for extracting specific facts:\n- WebClaim: \"The organization name is X\" (extracted from HTML at XPath)\n- PrimaryDigitalPresenceAssertion: \"This is the primary presence\" (inferred from observations)\n\nThe key difference is that primary presence status is INFERRED, not directly stated:\n- Check if custodian has a website (DigitalPlatform)\n- Compare follower counts, engagement, update frequency\n- Observe which URLs are promoted in communications\n\n**TEMPORAL VALIDITY**:\n\nUses TimeSpan (crm:E52_Time-Span) for fuzzy temporal boundaries:\n\n- `begin_of_the_begin`: Earliest possible start of primary status\n- `end_of_the_begin`: Latest possible start of primary status\n- `begin_of_the_end`: Earliest possible end of primary status\n- `end_of_the_end`: Latest possible end of primary status\n\nFor ongoing assertions, leave end bounds as null.\n\n**EXAMPLES**:\n\n1. **Facebook as Only Presence (Clear Primary)**:\n ```yaml\n PrimaryDigitalPresenceAssertion:\n assertion_id: \".../assertion/hvn-facebook-primary-2020\"\n about_digital_presence: \".../social-media/hvn-facebook\"\n assertion_value: true\n assertion_rationale: \"No website exists; Facebook is only digital presence\"\n temporal_extent:\n begin_of_the_begin: \"2015-03-01\" # Facebook page created\n # No end bounds - still primary\n based_on_observations:\n - \".../observation/hvn-website-check-2025-11\" # Confirms no website\n - \".../observation/hvn-facebook-scrape-2025-11\"\n ```\n\n2. **Instagram Supporting Website (Secondary)**:\n ```yaml\n PrimaryDigitalPresenceAssertion:\n assertion_id: \".../assertion/rijksmuseum-instagram-secondary\"\n about_digital_presence: \".../social-media/rijksmuseum-instagram\"\n assertion_value: false\n assertion_rationale: >-\n Website (rijksmuseum.nl) is primary. Instagram supports and promotes\n website content. Instagram bio links to website.\n temporal_extent:\n begin_of_the_begin: \"2012-03-15\" # Instagram account created\n based_on_observations:\n - \".../observation/rijksmuseum-website-2025-11\"\n - \".../observation/rijksmuseum-instagram-2025-11\"\n ```\n\n3. **Status Change (Website Abandoned)**:\n ```yaml\n # Previous assertion (now superseded)\n PrimaryDigitalPresenceAssertion:\n assertion_id: \".../assertion/club-facebook-secondary-2020\"\n about_digital_presence: \".../social-media/club-facebook\"\n assertion_value: false\n temporal_extent:\n begin_of_the_begin: \"2018-01-01\"\n end_of_the_end: \"2023-06-30\" # Website abandoned\n superseded_by: \".../assertion/club-facebook-primary-2023\"\n \n # Current assertion\n PrimaryDigitalPresenceAssertion:\n assertion_id: \".../assertion/club-facebook-primary-2023\"\n about_digital_presence: \".../social-media/club-facebook\"\n assertion_value: true\n assertion_rationale: \"Website no longer maintained; Facebook now primary\"\n temporal_extent:\n begin_of_the_begin: \"2023-07-01\"\n based_on_observations:\n - \".../observation/club-website-404-2023-07\"\n - \".../observation/club-facebook-active-2023-07\"\n ```", - "properties": { - "asserts_or_asserted": { - "anyOf": [ - { - "$ref": "#/$defs/DigitalPresence" - }, - { - "type": "null" - } - ], - "description": "Links a provenance record, assertion, or activity to the entity, hypothesis, or proposition that it asserts or supports.\n**TEMPORAL SEMANTICS** (RiC-O style): The \"asserts_or_asserted\" naming indicates that assertions can change: - New evidence may modify or invalidate hypotheses - Historical assertions preserved for audit trail - Confidence levels may be updated over time\n**USAGE**: - Link Provenance to Hypothesis (prov:generated) - Link PrimaryDigitalPresenceAssertion to DigitalPresence (crm:P140)\n**RANGE**: Generic `uriorcurie` to support multiple assertion targets (Hypothesis, DigitalPresence). Classes should narrow this via slot_usage." - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_rationale": { - "description": "The rationale or justification for a decision or mapping.\n\n**USAGE**:\nUsed for:\n- Mapping rationale (why an entity was mapped to Wikidata)\n- Decision justifications\n- Explanation notes\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:used` (per 2026-01-26 update)\n- **Close**: `skos:note` - SKOS note (DatatypeProperty)\n", - "items": { - "$ref": "#/$defs/Rationale" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_about_digital_presence": { - "description": "The digital presence (SocialMediaProfile, DigitalPlatform, \nAuxiliaryDigitalPlatform, or InternetOfThings) that this assertion characterizes.\n\nCIDOC-CRM: P140_assigned_attribute_to - \"documents the item to which \nan E13 Attribute Assignment assigned an attribute.\"\n\n**Supported Types**:\n- DigitalPlatform URI (e.g., .../platform/rijksmuseum-website)\n- AuxiliaryDigitalPlatform URI (e.g., .../aux-platform/rijksstudio)\n- SocialMediaProfile URI (e.g., .../social-media/hvn-facebook)\n- InternetOfThings URI (e.g., .../iot/museum-beacon-network)\n", - "type": "string" - }, - "is_or_was_asserted_by": { - "anyOf": [ - { - "$ref": "#/$defs/Asserter" - }, - { - "type": "null" - } - ], - "description": "The agent (person, organization, or system) responsible for making an assertion. Uses RiC-O temporal naming pattern to indicate the relationship may be current or historical.\nPROV-O: wasAttributedTo - \"links an entity to an agent that it may have been attributed to.\"\nCan be a human analyst, automated system, or AI agent." - }, - "is_or_was_asserted_on": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ] - }, - "is_or_was_generated_by": { - "description": "Generation event containing confidence score for this assertion. MIGRATED 2026-01-19: Replaces confidence_score slot with structured pattern.", - "items": { - "$ref": "#/$defs/GenerationEvent" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_superseded_by": { - "description": "Reference to an entity that supersedes, replaces, or succeeds this one.\n\n**TEMPORAL SEMANTICS** (RiC-O naming convention):\nThe \"is_or_was\" prefix indicates this relationship may be:\n- Current (active supersession)\n- Historical (past supersession in a chain)\n\n**USAGE**:\nUsed to track version chains and replacement relationships:\n- Finding aid versions (v1 \u2192 v2 \u2192 v3)\n- Assertion updates (old assertion \u2192 new assertion)\n- Document versions (original \u2192 amended)\n\n**PROVENANCE PATTERN**:\nFor temporal tracking, combine with `temporal_extent` to record\nWHEN the supersession occurred:\n```yaml\nis_or_was_superseded_by: https://example.org/finding-aid/v2\ntemporal_extent:\n end_of_the_end: \"2025-06-15\" # Date when superseded\n```\n\n**MIGRATED FROM**: superseded_by (2026-01-16)\n- Original slot_uri preserved in exact_mappings\n- Changed from range:uri to range:uriorcurie per Rule 55\n- Renamed per Rule 39 (RiC-O temporal naming)\n\nDublin Core: isReplacedBy - \"A related resource that supplants, \ndisplaces, or supersedes the described resource.\"\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "supersedes_or_superseded": { - "description": "Entity that this one supersedes, or that supersedes this one.\nUse when a new version corrects or updates a previous one. Direction is determined by context - the slot represents the relationship in either direction.\nPROV-O: wasRevisionOf for updated versions.\nMigrated from bespoke `supersede` slot per Rule 53/56 (2026-01-17). Original slot_uri (hc:supersedes) preserved in exact_mappings.", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_about_digital_presence", - "has_or_had_identifier", - "has_or_had_value" - ], - "title": "PrimaryDigitalPresenceAssertion", - "type": "object" - }, - "PrintCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Prints and engravings.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "IconographicArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by IconographicArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PrintCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PrintCollection", - "type": "object" - }, - "PrintSupplier": { - "additionalProperties": false, - "description": "Supplier providing print-on-demand and art reproduction services.\nExamples: King & McGaw, Artful, Fine Art America", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "PrintSupplier", - "type": "object" - }, - "PrivateBioInstitutionClassification": { - "additionalProperties": false, - "description": "Privately owned biological institution.\nMay be commercial, foundation-operated, or private collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PrivateBioInstitutionClassification", - "type": "object" - }, - "ProcessorAgent": { - "additionalProperties": false, - "description": "Processing agent.", - "properties": { - "has_or_had_name": { - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": [ - "string", - "null" - ] - } - }, - "title": "ProcessorAgent", - "type": "object" - }, - "ProcurementFunction": { - "additionalProperties": false, - "description": "Procurement function: purchasing, supplier management, contract negotiation, inventory management.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "ProcurementFunction", - "type": "object" - }, - "ProductCategoryEnum": { - "description": "Categories of products typically sold in heritage institution gift shops.\n\nAligns with Schema.org schema:Product and subtypes.\nGoodRelations gr:ProductOrService for detailed product modeling.", - "enum": [ - "REPRODUCTIONS", - "BOOKS", - "DESIGN_OBJECTS", - "JEWELRY", - "TEXTILES", - "STATIONERY", - "HOME_DECOR", - "TOYS", - "FOOD", - "SOUVENIRS", - "GIFTS", - "MULTIMEDIA", - "ORIGINAL_ART", - "ANTIQUES", - "PLANTS", - "CRAFT_SUPPLIES", - "ACCESSIBILITY_ITEMS", - "POSTCARDS", - "POSTERS", - "PUZZLES", - "MEMBERSHIP_CARDS", - "MAGNETS", - "CALENDARS", - "MUGS_DRINKWARE", - "UMBRELLAS", - "BAGS_ACCESSORIES", - "EXHIBITION_MERCHANDISE", - "EDUCATIONAL_MATERIALS", - "GIFT_VOUCHERS" - ], - "title": "ProductCategoryEnum", - "type": "string" - }, - "ProductDevelopmentCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for product development and technical records.\n\n**Definition**:\nRecords documenting the research, development, and design of products \nand services. Includes technical documentation, patents, prototypes, \nand R&D project files.\n\n**Typical Contents**:\n- Research and development files\n- Technical drawings and blueprints (technische tekeningen)\n- Patent applications and grants\n- Product specifications\n- Prototype documentation\n- Laboratory notebooks\n- Test reports and quality control\n- Design files (industrial design)\n- Engineering correspondence\n\n**Intellectual Property Value**:\nProduct development records are critical for:\n- Patent prosecution and defense\n- Trade secret documentation\n- Prior art evidence\n- Innovation history\n\n**Heritage Value**:\nTechnical archives document:\n- Evolution of products and technologies\n- Industrial design history\n- Engineering achievements\n- Corporate innovation culture\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype may follow mixed organizational principles: both organic R&D fonds \n(rico-rst:Fonds) and assembled collections (rico-rst:Collection) organized \nby product line or technology.", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "mixed", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType may follow mixed organizational principles. May include both organic R&D fonds and assembled collections organized by product line, technology, or project.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ProductDevelopmentCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"governance records\", \"marketing materials\", \"personnel records\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"R&D files\", \"technical drawings\", \"patents\", \"prototypes\", \"test reports\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "ProductDevelopmentCollection", - "type": "object" - }, - "ProductOwner": { - "additionalProperties": false, - "description": "Product owner managing digital product development priorities.\n\n**Official Title vs De Facto Work**:\nBridges technology and heritage domains, often involved in\nstakeholder management and user research.\n\n**Common Variants**:\n- Digital Product Manager\n- Product Manager\n- Project Owner\n\n**Typical Domains**: Heritage institutions with digital products\n\n**Typical Responsibilities**:\n- Product roadmap management\n- Backlog prioritization\n- Stakeholder coordination\n- User story development\n- Sprint planning", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "ProductOwner", - "type": "object" - }, - "ProductionRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for TV production documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "TelevisionArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by TelevisionArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ProductionRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ProductionRecordSeries", - "type": "object" - }, - "ProductionRecordsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for film production records organized as fonds.\n\n**Definition**:\nRecords created during film production by studios, production companies, \nand individual filmmakers. Organized by provenance (creating entity) \nfollowing archival principles.\n\n**Typical Contents**:\n- Scripts and screenplays (draaiboeken)\n- Shooting schedules and call sheets\n- Production files (productiedossiers)\n- Correspondence with cast and crew\n- Budget and financial records\n- Contracts and rights documentation\n- Location scouting materials\n- Casting records\n- Continuity reports\n- Technical specifications\n\n**Research Value**:\nProduction records document:\n- Creative process and decision-making\n- Film industry business practices\n- Censorship and editorial changes\n- Collaboration between creative personnel\n- Economic history of film production\n\n**Legal Significance**:\nProduction records may document:\n- Rights ownership and licensing\n- Contractual obligations\n- Copyright registration\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the fonds organizational principle as defined by rico-rst:Fonds\n(provenance-based organization by production company or filmmaker).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "legal_note": { - "const": "Production records often document rights ownership, contracts, and copyright. Original documents may be retained for legal purposes.", - "description": "Notes about legal considerations or regulatory requirements.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the fonds principle as defined by rico-rst:Fonds. Provenance-based organization by production company, studio, or individual filmmaker.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ProductionRecordsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"completed films\", \"newsreels\", \"promotional materials\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"scripts\", \"production files\", \"schedules\", \"contracts\", \"correspondence\", \"financial records\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "ProductionRecordsFonds", - "type": "object" - }, - "ProfessionalCommunity": { - "additionalProperties": false, - "description": "Heritage and museum professionals.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ProfessionalCommunity", - "type": "object" - }, - "ProfileExtractionMethodEnum": { - "description": "Enumeration of extraction methods/tools used for person profile data extraction.\nUsed for LinkedIn profiles, web scraping of staff pages, and similar person data sources.", - "enum": [ - "exa_crawling_exa", - "exa_contents", - "exa_crawling_glm47", - "linkedin_html_parser", - "manual", - "firecrawl", - "playwright", - "web_archive", - "institutional_website" - ], - "title": "ProfileExtractionMethodEnum", - "type": "string" - }, - "Profit": { - "additionalProperties": false, - "description": "Structured representation of an organization's profit motive/objective.\n\n**PURPOSE**:\n\nModels whether an organization operates for profit or as nonprofit,\nreplacing simple boolean with structured class for richer metadata.\n\n**DESIGN RATIONALE**:\n\nCreated per slot_fixes.yaml migration from `commercial_operation` boolean\nto structured `has_or_had_objective` + `Profit` for complete objective tracking.\n\n**USE CASES**:\n\n- Commercial galleries: For-profit, sell artworks, earn commission\n- Kunsthalle: Nonprofit, exhibition-only, public funding\n- Mixed models: Partial commercial activities in nonprofit context\n\n**EXAMPLE**:\n\n```yaml\nhas_or_had_objective:\n objective_type: \"for-profit\"\n is_commercial: true\n profit_model: \"Sales commission\"\n tax_status: \"for-profit corporation\"\n```", - "properties": { - "is_commercial": { - "description": "Boolean indicator for commercial operation.\nTrue = operates commercially (generates profit/revenue from sales)\nFalse = non-commercial (exhibition-only, public/grant funded)\n\nMIGRATION NOTE: This preserves the original boolean semantics\nof the deprecated commercial_operation slot.\n", - "type": "boolean" - }, - "objective_type": { - "description": "Type of operational objective (for-profit, nonprofit, mixed).\n", - "type": "string" - }, - "profit_model": { - "description": "Description of how profit/revenue is generated.\n", - "type": [ - "string", - "null" - ] - }, - "tax_status": { - "description": "Legal tax status of the organization.\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "objective_type", - "is_commercial" - ], - "title": "Profit", - "type": "object" - }, - "Program": { - "additionalProperties": false, - "description": "A program or initiative offered by an institution. **USAGE**: Used for: - Volunteer programs - Educational programs - Outreach initiatives", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "participant_count": { - "type": [ - "integer", - "null" - ] - } - }, - "title": "Program", - "type": "object" - }, - "ProgramExpenses": { - "additionalProperties": false, - "description": "Costs directly related to program delivery.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ProgramExpenses", - "type": "object" - }, - "ProgrammingLanguage": { - "additionalProperties": false, - "description": "Programming language used in platform development.\nExamples: Python, JavaScript, TypeScript, Java, Go, Ruby, PHP", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ProgrammingLanguage", - "type": "object" - }, - "Project": { - "additionalProperties": false, - "description": "A time-limited initiative or program run by an EncompassingBody organization\n(typically a NetworkOrganisation) in which heritage Custodians participate.\n\n**PURPOSE**:\n\nProjects bridge the gap between:\n- **EncompassingBody** (organizations that coordinate heritage custodians)\n- **Custodian** (individual heritage institutions)\n\nA NetworkOrganisation like NDE (Netwerk Digitaal Erfgoed) runs multiple projects\nover time. Each project involves participation from member Custodians who\ncontribute resources, expertise, or collections.\n\n**KEY RELATIONSHIPS**:\n\n```\nEncompassingBody (e.g., NDE)\n \u2502\n \u251c\u2500\u2500 projects \u2500\u2500\u2192 Project (e.g., \"Versnellen 2024\")\n \u2502 \u2502\n \u2502 \u251c\u2500\u2500 participating_custodians \u2500\u2500\u2192 Custodian[]\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500 funding_call \u2500\u2500\u2192 CallForApplication\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500 funded_projects (inverse)\n \u2502\n \u2514\u2500\u2500 member_custodians \u2500\u2500\u2192 Custodian[]\n \u2502\n \u2514\u2500\u2500 participated_in_projects \u2500\u2500\u2192 Project[]\n```\n\n**BIDIRECTIONAL NAVIGATION**:\n\n- From EncompassingBody: `encompassing_body.projects` \u2192 all projects run by network\n- From Project: `project.participating_custodians` \u2192 all custodians in project\n- From Custodian: `custodian.participated_in_projects` \u2192 all projects custodian joined\n\n**PROJECT vs ORGANIZATIONAL CHANGE EVENT**:\n\n- **Project**: Time-limited initiative with defined goals, deliverables, funding\n- **OrganizationalChangeEvent**: Structural change in organization (merger, split, etc.)\n\nProjects may TRIGGER organizational change events but are distinct concepts:\n- \"Digitization Partnership 2023\" (Project) \u2192 restructuring of digitization teams (OrganizationalChangeEvent)\n\n**EXAMPLES**:\n\n1. **NDE Versnellen 2024**\n - organizing_body: NDE (NetworkOrganisation)\n - participating_custodians: Amsterdam Museum, KB, Nationaal Archief, etc.\n - objectives: Accelerate digital heritage infrastructure adoption\n - project_url: https://netwerkdigitaalerfgoed.nl/versnellen-2024/\n \n2. **Europeana Aggregation Project**\n - organizing_body: Europeana Foundation (NetworkOrganisation)\n - participating_custodians: National museums across EU\n - objectives: Aggregate and standardize metadata for discovery\n \n3. **OCLC Linked Data Initiative**\n - organizing_body: OCLC (Cooperative)\n - participating_custodians: Member libraries contributing authority data\n - objectives: Expand linked data resources for libraries\n\n**ONTOLOGY ALIGNMENT**:\n\n- **Schema.org**: `schema:Project` - \"An enterprise (potentially combinding people,\n organizations, software, and physical resources) to accomplish a particular goal\"\n- **DOAP**: `doap:Project` - Description of a Project (software-focused but extensible)\n- **PROV-O**: `prov:Activity` - Can model project as activity with agents\n- **Dublin Core**: `dcterms:relation` for project relationships\n\n**TEMPORAL DYNAMICS**:\n\nProjects have defined lifecycles tracked via `project_status`:\n- PROPOSED \u2192 APPROVED \u2192 IN_PROGRESS \u2192 COMPLETED\n- May be ON_HOLD (temporarily paused) or DISCONTINUED (terminated)\n- May be EXTENDED (continued beyond original end date)\n\n**PARTICIPATION PATTERNS**:\n\nCustodians participate in projects through various roles:\n- **Lead partner**: Primary responsibility, often receives main funding\n- **Consortium member**: Equal partnership with shared responsibilities\n- **Subcontractor**: Specific deliverables under contract\n- **Advisory role**: Guidance without direct deliverables\n- **Pilot site**: Testing/validation of project outputs\n\nThese roles can be modeled via a ProjectParticipation class if needed (future extension).", - "properties": { - "has_or_had_budget": { - "description": "Budget allocated to an organization or project.\n\n**USAGE**:\nUsed for:\n- Total annual budget\n- Project budgets\n- Department budgets\n- Grant funding allocations\n\n**Schema.org**: schema:amount for monetary values (see close_mappings).\n\n**RiC-O TEMPORAL SEMANTICS**:\nThe \"or had\" indicates budgets may be historical (past fiscal years).\n", - "items": { - "$ref": "#/$defs/Budget" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/project/[a-z0-9-]+/[a-z0-9-]+$|^https?://.*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_objective": { - "description": "The objective of an action or measure.", - "items": { - "$ref": "#/$defs/Deliverable" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_participated_in": { - "description": "Indicates that an entity participated in an event, project, or funding call. MIGRATED from funding_call per Rule 53. Follows RiC-O naming convention.", - "items": { - "$ref": "#/$defs/FundingCall" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_status": { - "$ref": "#/$defs/ProjectStatusEnum", - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n" - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "keyword": { - "description": "Keywords describing the project scope and topics.\nUsed for discovery and classification.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "objective": { - "description": "Specific, measurable objectives of the project.\nShould be concrete goals that can be evaluated at project end.\n\n**Ontology Note**: Uses `dcterms:abstract` as Schema.org does not have\na `schema:goal` property. Alternative: could use custom `hc:objective`\nor PROV-O plan concepts.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizing_body": { - "description": "The EncompassingBody organization that runs this project.\n\nURI reference to EncompassingBody entity (avoids circular dependency).\nFormat: https://nde.nl/ontology/hc/encompassing-body/{type}/{slug}\n\n**Inverse of EncompassingBody.projects**:\n- EncompassingBody \u2192 projects \u2192 Project[]\n- Project \u2192 organizing_body \u2192 EncompassingBody\n\nTypically a NetworkOrganisation or Consortium, but can be any\nEncompassingBody subclass.\n\n**Ontology Note**: Uses `schema:sponsor` - \"A person or organization\nthat supports a thing through a pledge, promise, or financial contribution.\"\nDomain includes Organization. `schema:organizer` was considered but\nits domain is restricted to Event, not Project.\n", - "type": "string" - }, - "participating_custodian": { - "description": "Heritage custodians participating in this project.\n\nURI references to Custodian entities (avoids circular dependency).\nFormat: https://nde.nl/ontology/hc/{abstracted-ghcid}\n\n**Inverse of Custodian.participated_in_projects**:\n- Project \u2192 participating_custodians \u2192 Custodian[]\n- Custodian \u2192 participated_in_projects \u2192 Project[]\n\n**Navigation Pattern**:\nFrom project, find all participating institutions.\nFrom custodian, find all projects they participated in.\n\n**Ontology Note**: Uses W3C ORG `org:hasMember` - \"Indicates a person\nwho is a member of the subject Organization.\" Since Project is modeled\nas an org:OrganizationalCollaboration (which is an Organization), this\nproperty is valid. Alternative was `schema:participant` but its domain\nis schema:Action, not Organization/Project.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "receives_or_received": { - "description": "Indicates that an entity receives or received something (e.g., funding, award, material). MIGRATED from funding_source per Rule 53. Follows RiC-O naming convention.", - "items": { - "$ref": "#/$defs/FundingSource" - }, - "type": [ - "array", - "null" - ] - }, - "related_project": { - "description": "Related projects (predecessors, successors, or parallel initiatives).\n\nUse for:\n- Predecessor: Previous year's version (Versnellen 2023 \u2192 Versnellen 2024)\n- Successor: Next phase of multi-year program\n- Parallel: Related but independent initiatives\n\nURI references to other Project entities.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "organizing_body", - "has_or_had_identifier", - "has_or_had_label", - "has_or_had_description", - "has_or_had_status" - ], - "title": "Project", - "type": "object" - }, - "ProjectDocumentationCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Project documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "FoundationArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by FoundationArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ProjectDocumentationCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ProjectDocumentationCollection", - "type": "object" - }, - "ProjectPlatform": { - "additionalProperties": false, - "description": "Collaborative enterprise, frequently involving research or design,\nthat is carefully planned to achieve a particular aim.\n\n**PURPOSE**: Document and provide access to heritage project outputs\nand activities.\n\n**CHARACTERISTICS**:\n- Defined objectives\n- Collaborative work\n- Temporal bounds\n- Deliverables focus\n\n**EXAMPLES**: Digitization projects, research collaborations", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q170584" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AUXILIARY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "ProjectPlatform", - "type": "object" - }, - "ProjectStatusEnum": { - "description": "Lifecycle status of a heritage network project or initiative.\n\nProjects run by EncompassingBody organizations (especially NetworkOrganisation)\nhave defined lifecycles from conception through completion or discontinuation.\n\n**Lifecycle Stages**:\n\n1. **PROPOSED** - Project concept submitted for approval\n2. **APPROVED** - Project approved, funding secured, not yet started\n3. **IN_PROGRESS** - Project actively underway\n4. **ON_HOLD** - Temporarily suspended (funding, capacity, external factors)\n5. **COMPLETED** - Project finished, deliverables achieved\n6. **DISCONTINUED** - Project terminated before completion\n7. **EXTENDED** - Project extended beyond original timeline\n\n**Example - NDE Versnellen 2024**:\n```yaml\nProject:\n project_name: \"Versnellen 2024\"\n project_status: IN_PROGRESS\n # Started 2024, active work ongoing\n```\n\n**Status Transitions**:\n```\nPROPOSED \u2192 APPROVED \u2192 IN_PROGRESS \u2192 COMPLETED\n \u2193 \u2193\n (rejected) ON_HOLD \u2192 IN_PROGRESS\n \u2193\n DISCONTINUED\n \nIN_PROGRESS \u2192 EXTENDED \u2192 COMPLETED\n```", - "enum": [ - "PROPOSED", - "APPROVED", - "IN_PROGRESS", - "ON_HOLD", - "COMPLETED", - "DISCONTINUED", - "EXTENDED" - ], - "title": "ProjectStatusEnum", - "type": "string" - }, - "ProjectWebsite": { - "additionalProperties": false, - "description": "Dedicated website for a specific project, research initiative, or\nlong-term program. May have finite lifespan matching project duration.\n\n**PURPOSE**: Provide dedicated online presence for heritage projects\nwith project-specific content and resources.\n\n**CHARACTERISTICS**:\n- Project-focused content\n- Defined lifespan\n- Research outputs\n- Stakeholder communication\n\n**EXAMPLES**: Digitization project portals, research project websites", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AUXILIARY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "ProjectWebsite", - "type": "object" - }, - "ProjectWebsitePresence": { - "additionalProperties": false, - "description": "Project-specific website (grant-funded, thematic).", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ProjectWebsitePresence", - "type": "object" - }, - "PropertyRecordsSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Monastic property and land records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "MonasteryArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by MonasteryArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PropertyRecordsSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PropertyRecordsSeries", - "type": "object" - }, - "ProtocolSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Notarial protocols.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "NotarialArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by NotarialArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ProtocolSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ProtocolSeries", - "type": "object" - }, - "Provenance": { - "additionalProperties": false, - "description": "A single provenance statement describing the origin, lineage, or derivation of a piece of data.\n**DISTINCTION FROM ProvenanceBlock**: - `Provenance` represents a SINGLE provenance statement (one source, one activity) - `ProvenanceBlock` bundles MULTIPLE provenance sources together\nUse `Provenance` when: - Tracking provenance of individual data elements - Recording specific extraction or transformation activities - Linking data to its source agent/entity\n**ONTOLOGY MAPPING**: - class_uri: prov:Activity (the extraction/derivation activity) - Links to prov:Agent via has_or_had_agent - Links to prov:Entity via used (source) and generated (result)", - "properties": { - "extraction_method": { - "description": "Method or process used to extract/derive the data. Examples: \"xpath_extraction\", \"api_query\", \"manual_entry\"", - "type": [ - "string", - "null" - ] - }, - "generated_entity": { - "description": "URI of the entity generated by this provenance activity (prov:generated).", - "type": [ - "string", - "null" - ] - }, - "has_or_had_agent": { - "description": "Has Or Had Agent for heritage custodian entities.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_output": { - "description": "Output produced by a device, service, or process.\n\n**USAGE**:\nRepresents data, signals, or artifacts emitted by:\n- IoT devices (sensor readings, beacon signals)\n- APIs and services (data responses)\n- Processing pipelines (transformed data)\n- Software systems (reports, exports)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadOutput` - Heritage Custodian property\n- **Close**: `sosa:hasResult` - SOSA observation result\n- **Close**: `schema:produces` - Schema.org production relationship\n\n**RANGE**: `OutputData` class\nThe OutputData class captures output specifications including format,\nfrequency, destination, and data characteristics.\n", - "items": { - "$ref": "#/$defs/LLMResponse" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_based_on": { - "description": "Entity or resource this item is or was based on (temporal relationship).\n\n**Semantic Pattern**: RiC-O temporal naming convention (Rule 39)\n- \"is_or_was\" indicates the relationship may be current or historical\n- Supports temporal modeling where dependencies change over time\n\n**PROV-O Alignment**:\nprov:wasDerivedFrom - \"A derivation is a transformation of an entity into another\"\n\n**Use Cases**:\n1. **CMS Detection**: Platform is_or_was_based_on a detected CMS\n2. **Software Dependencies**: Application based on framework/library\n3. **Content Derivation**: Document based on template/source\n4. **Infrastructure**: Service based on platform/technology\n\n**Temporal Semantics**:\n- Current: \"This platform IS based on WordPress 6.4\"\n- Historical: \"This platform WAS based on Drupal 7 (now migrated)\"\n- Use temporal_extent for precise validity periods\n\n**Examples**:\n```yaml\nAuxiliaryDigitalPlatform:\n platform_name: Museum Blog\n is_or_was_based_on:\n cms_name: WordPress\n cms_version: \"6.4\"\n detected_at: \"2026-01-19T12:00:00Z\"\n```\n\n**Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53).\nReplaces boolean cms_detected with structured CMS reference.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_retrieved_by": { - "description": "Agent that performed the retrieval activity.", - "type": [ - "string", - "null" - ] - }, - "is_or_was_retrieved_through": { - "anyOf": [ - { - "$ref": "#/$defs/RetrievalMethod" - }, - { - "type": "null" - } - ], - "description": "Method or plan used for the retrieval activity." - }, - "note": { - "description": "Human-readable note about this provenance statement.", - "type": [ - "string", - "null" - ] - }, - "source_entity": { - "description": "URI of the source entity from which data was derived (prov:used).", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "Provenance", - "type": "object" - }, - "ProvenanceBasedArrangement": { - "additionalProperties": false, - "description": "Arranged according to the provenance or original order (respect des fonds).", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ProvenanceBasedArrangement", - "type": "object" - }, - "ProvenanceBlock": { - "additionalProperties": false, - "description": "Complete provenance tracking for the entry, supporting both nested and flat formats. Contains information about data sources, extraction methods, timestamps, confidence scores, and verification status. This is the primary class for documenting the lineage and quality of data in custodian records.\nOntology mapping rationale: - class_uri is prov:Bundle because this represents a named set of provenance\n descriptions bundled together - it's provenance ABOUT provenance/data\n- close_mappings includes pav:Provenance conceptually as PAV's approach to\n tracking authoring and versioning provenance\n- related_mappings includes prov:Entity (the bundle is itself an entity) and\n prov:Activity (extraction/enrichment are activities with timestamps)", - "properties": { - "is_or_was_generated_by": { - "description": "Generation event containing confidence score for the provenance block. MIGRATED 2026-01-19: Replaces confidence_score slot with structured pattern.", - "items": { - "$ref": "#/$defs/GenerationEvent" - }, - "type": [ - "array", - "null" - ] - }, - "note": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "source_type": { - "anyOf": [ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "type": "string" - }, - "source_url": { - "type": [ - "string", - "null" - ] - }, - "standards_compliance": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ProvenanceBlock", - "type": "object" - }, - "ProvenanceEvent": { - "additionalProperties": false, - "description": "An event representing a change in ownership or custody of a heritage object.\n\nProvenanceEvent models the CHAIN OF OWNERSHIP - who owned the object, when,\nand how ownership transferred between parties.\n\n**Key Distinction**:\n\n| Concept | Class | Description |\n|---------|-------|-------------|\n| **Ownership change** | **ProvenanceEvent** | **Sale, gift, confiscation** |\n| Temporary custody | Loan | Exhibition loan, study loan |\n| Physical condition | ConservationRecord | Condition, treatment |\n\n**Ontology Alignment**:\n\n- **CIDOC-CRM**: crm:E8_Acquisition (primary)\n \"Comprises the actions by which legal ownership of physical objects \n is transferred from one person or institution to another.\"\n- **CIDOC-CRM**: crm:E10_Transfer_of_Custody (for custody without ownership)\n- **PROV-O**: prov:Activity (provenance activity)\n- **Schema.org**: schema:TransferAction\n\n**Provenance Research Standards**:\n\nSupports key provenance research requirements:\n- **Nazi-era provenance**: Washington Principles, Terez\u00edn Declaration\n- **Due diligence**: AAMD guidelines, UNESCO 1970 Convention\n- **Restitution research**: Documentation of forced transfers\n\n**Certainty Levels**:\n\nProvenance events can have varying certainty:\n- **CERTAIN**: Documentary evidence confirms transfer\n- **PROBABLE**: Strong circumstantial evidence\n- **POSSIBLE**: Reasonable inference from context\n- **UNCERTAIN**: Speculative or unverified\n\n**Example Provenance Chain**:\n\n```\n1665: CREATION (Vermeer creates painting)\n \u2193\nc.1665-74: COMMISSION/PURCHASE (van Ruijven acquires)\n \u2193\n1696: AUCTION (Dissius sale, Amsterdam)\n \u2193\n1881: PURCHASE (des Tombe buys for 30 guilders)\n \u2193\n1903: BEQUEST (des Tombe bequeaths to Mauritshuis)\n```", - "properties": { - "changes_or_changed_ownership_from": { - "description": "The previous owner from whom ownership/title was transferred.\n\n**TEMPORAL SEMANTICS** (RiC-O Pattern):\nThe \"changesOrChanged\" naming follows RiC-O convention indicating this \nrelationship may be historical - ownership may have changed multiple times.\n\n**ONTOLOGICAL ALIGNMENT**:\n- **Primary** (`slot_uri`): `crm:P23_transferred_title_from` (CIDOC-CRM)\n - Domain: E8_Acquisition (transfer event)\n - Range: E39_Actor (person, organization, or group)\n - Semantics: Indicates the party who relinquished legal title\n\n**SEMANTIC DISTINCTION**:\nThis slot is for OWNERSHIP TRANSFER (legal title), NOT physical movement.\nFor physical movement origin, use `is_or_was_transferred_from` with `crm:P27_moved_from`.\n\n| Slot | Ontology | Semantics |\n|------|----------|-----------|\n| `changes_or_changed_ownership_from` | crm:P23 | Legal title transfer source |\n| `is_or_was_transferred_from` | crm:P27 | Physical location origin |\n\n**USAGE**:\nTypical in ProvenanceEvent for documenting chain of custody:\n- Null for CREATION events (no previous owner)\n- Identifies seller in PURCHASE/AUCTION events\n- Identifies donor in GIFT/BEQUEST events\n- Identifies victim in CONFISCATION events\n\n**MIGRATION** (2026-01-16, Rule 56):\nReplaces `from_owner` for symmetry with `changes_or_changed_ownership_to`.\n", - "type": [ - "string", - "null" - ] - }, - "changes_or_changed_ownership_to": { - "description": "The new owner to whom ownership/title was transferred.\n\n**TEMPORAL SEMANTICS** (RiC-O Pattern):\nThe \"changesOrChanged\" naming follows RiC-O convention indicating this \nrelationship may be historical - ownership may have changed multiple times.\n\n**ONTOLOGICAL ALIGNMENT**:\n- **Primary** (`slot_uri`): `crm:P22_transferred_title_to` (CIDOC-CRM)\n - Domain: E8_Acquisition (transfer event)\n - Range: E39_Actor (person, organization, or group)\n - Semantics: Indicates the recipient of a legal title transfer\n\n**SEMANTIC DISTINCTION**:\nThis slot is for OWNERSHIP TRANSFER (legal title), NOT physical movement.\nFor physical movement, use `is_or_was_transferred_to` with `crm:P26_moved_to`.\n\n| Slot | Ontology | Semantics |\n|------|----------|-----------|\n| `changes_or_changed_ownership_to` | crm:P22 | Legal title transfer |\n| `is_or_was_transferred_to` | crm:P26 | Physical location change |\n\n**USAGE**:\nTypical in ProvenanceEvent for documenting chain of custody:\n- Acquisitions (purchase, gift, bequest)\n- Deaccessioning (sale, transfer)\n- Loans (temporary custody without ownership change)\n\n**MIGRATION** (2026-01-16, Rule 56):\nReplaces `to_owner` per slot_fixes.yaml feedback.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_provenance": { - "anyOf": [ - { - "$ref": "#/$defs/Provenance" - }, - { - "type": "null" - } - ], - "description": "Provenance information for this data element.\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\nBroadened from ProvenanceBlock to uriorcurie to resolve OWL ambiguous type warnings. This allows classes to narrow via slot_usage to: - `ProvenanceBlock` for comprehensive provenance tracking - `SourceDocument` for source document references - String URIs for simple provenance references\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming follows RiC-O convention indicating that provenance associations can change over time: - Additional provenance may be added as data is enriched - Provenance may be updated when verification occurs - Historical provenance preserved through versioning\n**REPLACES**: - `all_data_real` (auto-generated stub, string range) - `is_or_was_real` (RealnessStatus typed class) - `has_all_data_real_flag` (boolean flag, no provenance) - `has_or_had_observation_source_document` (bespoke slot, Rule 55)\n**EXAMPLE**: ```yaml has_or_had_provenance:\n data_source: \"public_linkedin_profile\"\n extraction_date: \"2025-01-14T12:00:00Z\"\n confidence_score: 0.95\n note: \"Verified production data\"\n```" - }, - "has_or_had_reference": { - "description": "A bibliographic or documentary reference supporting this entity. Temporal: the reference may change over time as new sources are found.", - "items": { - "$ref": "#/$defs/Reference" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/ProvenanceEventTypeEnum" - }, - "type": "array" - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_associated_with": { - "description": "Generic slot expressing a temporal association relationship between entities.\nThis is a GENERIC slot following RiC-O naming conventions (Rule 39). The range should be narrowed via slot_usage in class definitions to the specific entity type being associated (EncompassingBody, Taxon, etc.).\n**ONTOLOGY ALIGNMENT**: - W3C Org: `org:linkedTo` - organizational linkage - PROV-O: `prov:wasAssociatedWith` - activity/agent association - Schema.org: `schema:memberOf` - membership relationships\n**TEMPORAL SEMANTICS**: The \"is_or_was\" pattern indicates this association may be: - Current (is associated with) - Historical (was associated with) - Both (relationship changed over time)\nUse slot_usage to narrow range and add temporal tracking if needed.", - "items": { - "$ref": "#/$defs/ArtDealer" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_conducted_by": { - "anyOf": [ - { - "$ref": "#/$defs/Agent" - }, - { - "type": "null" - } - ], - "description": "The agent or organization that conducted the event (e.g., auction, assessment)." - }, - "lot_number": { - "description": "Auction lot number.\n", - "type": [ - "string", - "null" - ] - }, - "nazi_era_flag": { - "description": "Flag indicating this event occurred during Nazi era (1933-1945)\nor involves objects potentially affected by Nazi-era confiscation.\n\n**CRITICAL for provenance research compliance.**\n", - "type": [ - "boolean", - "null" - ] - }, - "object_ref": { - "description": "Reference to the object this provenance event concerns.\n\nCIDOC-CRM: P24_transferred_title_of - \"identifies the E18 Physical Thing\nwhose legal ownership was transferred.\"\n", - "type": "string" - }, - "price": { - "description": "Price value (numeric or formatted string with currency)", - "type": [ - "number", - "null" - ] - }, - "price_currency": { - "description": "Primary currency accepted (ISO 4217 code).\n\nSchema.org: priceCurrency for currency specification.\n\nExamples: EUR, USD, GBP, JPY\n", - "type": [ - "string", - "null" - ] - }, - "price_text": { - "description": "Price as text, including historical context.\n", - "type": [ - "string", - "null" - ] - }, - "publishes_or_published": { - "description": "The work or document published by an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "requires_research": { - "description": "Flag indicating provenance gap or uncertain transfer requiring\nfurther research.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_type", - "object_ref" - ], - "title": "ProvenanceEvent", - "type": "object" - }, - "ProvenanceEventTypeEnum": { - "description": "Types of ownership and custody transfer events in an object's provenance history.\n\nCovers the full range of ways objects change hands:\n\n1. **Creation Events**: How object came into existence\n2. **Commercial Transactions**: Sales, purchases, auctions\n3. **Non-commercial Transfers**: Gifts, bequests, inheritance\n4. **Forced Transfers**: Confiscation, looting, theft\n5. **Restitution Events**: Return of improperly transferred objects\n6. **Discovery Events**: Archaeological finds, rediscoveries\n7. **Institutional Transfers**: Between museums, government entities\n\n**Provenance Research Standards**:\n\nThis enum supports provenance research standards including:\n- AAMD Object Registry for Nazi-era provenance\n- Washington Conference Principles (1998)\n- Terez\u00edn Declaration (2009)\n- UNESCO 1970 Convention\n\n**Example Provenance Chain**:\n\n```\nCREATION (1665) \u2192 COMMISSION (patron) \u2192 SALE (1696) \u2192 \nPURCHASE (collector) \u2192 BEQUEST (1903) \u2192 museum\n```", - "enum": [ - "CREATION", - "COMMISSION", - "PURCHASE", - "SALE", - "AUCTION", - "DEALER_SALE", - "EXCHANGE", - "GIFT", - "DONATION", - "BEQUEST", - "INHERITANCE", - "CONFISCATION", - "LOOTING", - "THEFT", - "FORCED_SALE", - "SEQUESTRATION", - "RESTITUTION", - "REPATRIATION", - "LEGAL_SETTLEMENT", - "DISCOVERY", - "EXCAVATION", - "REDISCOVERY", - "TRANSFER", - "INSTITUTIONAL_TRANSFER", - "DEPOSIT", - "DEACCESSION", - "UNKNOWN_TRANSFER" - ], - "title": "ProvenanceEventTypeEnum", - "type": "string" - }, - "ProvenancePath": { - "additionalProperties": false, - "description": "A path or chain of provenance.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ProvenancePath", - "type": "object" - }, - "ProvenanceSources": { - "additionalProperties": false, - "description": "Sources organized by type, aggregating multiple source records from different data providers (Google Maps, Wikidata, web archives, etc.) with data tier classification (TIER_1 through TIER_4).\nOntology mapping rationale: - class_uri is prov:Collection because this aggregates multiple provenance\n sources into a typed collection structure\n- close_mappings includes prov:Bundle as it groups related provenance records - related_mappings includes schema:ItemList for list-based organization", - "properties": { - "TIER_1_AUTHORITATIVE": { - "description": "List of TIER_1 authoritative sources", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "TIER_2_VERIFIED": { - "description": "List of TIER_2 verified sources", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "TIER_3_CROWD_SOURCED": { - "description": "List of TIER_3 crowd-sourced sources", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "TIER_4_INFERRED": { - "description": "List of TIER_4 inferred sources", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "exa": { - "description": "Exa AI search source records", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "firecrawl": { - "description": "Firecrawl API source records for web scraping", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "genealogiewerkbalk": { - "description": "Source records from Genealogiewerkbalk heritage platform", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "google_maps": { - "description": "Source records from Google Maps Places API enrichment", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "kien": { - "description": "KIEN intangible heritage registry source records", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "linkedin": { - "description": "LinkedIn source records for institution data", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "linkup_financial": { - "description": "Linkup financial research source records", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "linkup_publications": { - "description": "Linkup publications research source records", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "linkup_timespan": { - "description": "Linkup timespan source records (can be string or structured object)", - "type": [ - "string", - "null" - ] - }, - "linkup_youtube": { - "description": "Linkup YouTube research source records", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "manual_research": { - "description": "Manual research source records", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "museum_register": { - "description": "Museum register source records", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "nan_isil_registry": { - "description": "Nationaal Archief ISIL registry source records", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "original_entry": { - "description": "Source records from the original data entry or CSV import", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "web_archive": { - "description": "Source records from Internet Archive or other web archives", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "web_research": { - "description": "Web research source records (travel directories, MapQuest, TripHobo, etc.)", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "web_scrape": { - "description": "Web scrape source records (scraped website data)", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "web_search": { - "description": "Web search source records (Exa, Google, etc.)", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "website_scrape": { - "description": "Website scrape source records", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "website_source": { - "description": "Website source records (institution website data)", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "whois_research": { - "description": "WHOIS domain research source records", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "wikidata": { - "description": "Source records from Wikidata SPARQL queries", - "items": { - "$ref": "#/$defs/SourceRecord" - }, - "type": [ - "array", - "null" - ] - }, - "youtube": { - "description": "YouTube Data API source records", - "items": { - "$ref": "#/$defs/YoutubeSourceRecord" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ProvenanceSources", - "type": "object" - }, - "ProvinceClaim": { - "additionalProperties": false, - "description": "Province or state.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ProvinceClaim", - "type": "object" - }, - "ProvincialAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Provincial government records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ProvincialArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ProvincialArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ProvincialAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ProvincialAdministrationFonds", - "type": "object" - }, - "ProvincialArchive": { - "additionalProperties": false, - "description": "Archive at the provincial administrative level. Provincial archives preserve records of provincial government and administration, serving as the main archival institution for a province or similar administrative unit. They may hold government records, notarial archives, and other materials of provincial significance.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ProvincialArchive", - "type": "object" - }, - "ProvincialArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by ProvincialArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ProvincialArchiveRecordSetType", - "type": "object" - }, - "ProvincialCourtSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Provincial judicial records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ProvincialArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ProvincialArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ProvincialCourtSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ProvincialCourtSeries", - "type": "object" - }, - "ProvincialHistoricalArchive": { - "additionalProperties": false, - "description": "Provincial historical archive (archivo hist\u00f3rico provincial) in Spain.\nThese archives preserve historical records transferred from notarial\noffices, courts, and other provincial institutions.\n\n**Wikidata**: Q21087388\n\n**Geographic Restriction**: Spain (ES) only.\nThis constraint is enforced via LinkML `rules` with `postconditions`.\n\n**Scope**:\nArchivos hist\u00f3ricos provinciales preserve:\n- Notarial protocols (protocolos notariales)\n- Court records (fondos judiciales)\n- Civil registry records (registro civil hist\u00f3rico)\n- Provincial government historical records\n- Private archives of regional significance\n- Ecclesiastical records (transferred)\n\n**Administrative Context**:\nIn the Spanish archival system:\n- Archivo Hist\u00f3rico Nacional (national)\n- Archivos Hist\u00f3ricos Provinciales (provincial) \u2190 This type\n- Archivos Municipales (municipal)\n- Archivos Comarcales (comarca level, in Catalonia)\n\n**Legal Framework**:\nGoverned by Spanish heritage and archives legislation:\n- Ley del Patrimonio Hist\u00f3rico Espa\u00f1ol (1985)\n- Regional archive laws (Catalonia, Basque Country, etc.)\n\n**Related Types**:\n- ProvincialArchive (Q5403345) - Generic provincial archives\n- ComarcalArchive (Q21086734) - District archives (Catalonia)\n- NotarialArchive - Notarial records specifically\n- HistoricalArchive - Generic historical archives", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ProvincialHistoricalArchive", - "type": "object" - }, - "ProvincialHistoricalArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by ProvincialHistoricalArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ProvincialHistoricalArchiveRecordSetType", - "type": "object" - }, - "ProvincialHistoricalFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Historical provincial records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ProvincialHistoricalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ProvincialHistoricalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ProvincialHistoricalFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ProvincialHistoricalFonds", - "type": "object" - }, - "PublicAquariumSubtype": { - "additionalProperties": false, - "description": "Institution exhibiting live aquatic animals and plants.\nMarine and freshwater life exhibits for public education.\n\n**Wikidata**: Q2281788\n**Examples**: Burgers' Zoo Ocean, Artis Aquarium", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PublicAquariumSubtype", - "type": "object" - }, - "PublicArchive": { - "additionalProperties": false, - "description": "Repository for official documents open to public access. Public archives are archival institutions that serve the general public, typically holding government records and other materials of public interest. They operate under principles of transparency and public access, subject to privacy and security restrictions.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PublicArchive", - "type": "object" - }, - "PublicArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by PublicArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PublicArchiveRecordSetType", - "type": "object" - }, - "PublicArchivesInFrance": { - "additionalProperties": false, - "description": "Type of archives in France under public law. French public archives (archives publiques en France) are defined by French law as archives created or received by public legal entities in the exercise of their activities. They are subject to specific legal requirements regarding preservation, access, and transfer to archival institutions.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PublicArchivesInFrance", - "type": "object" - }, - "PublicArchivesInFranceRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by PublicArchivesInFrance custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PublicArchivesInFranceRecordSetType", - "type": "object" - }, - "PublicBioInstitutionClassification": { - "additionalProperties": false, - "description": "Publicly owned or operated biological institution.\nGovernment-funded, municipal, or state institutions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PublicBioInstitutionClassification", - "type": "object" - }, - "PublicCommunity": { - "additionalProperties": false, - "description": "General public visitors.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "PublicCommunity", - "type": "object" - }, - "PublicEngagementSpecialist": { - "additionalProperties": false, - "description": "Specialist in community engagement, outreach, and accessibility.\n\n**Official Title vs De Facto Work**:\nOften involved in marketing, social media, event management,\nand fundraising beyond core engagement duties.\n\n**Common Variants**:\n- Community Engagement Officer\n- Outreach Coordinator\n- Accessibility Manager\n- Public Programs Manager\n- Visitor Experience Manager\n\n**Typical Domains**: Museums, archives, libraries\n\n**Typical Responsibilities**:\n- Community partnership development\n- Accessibility initiatives (physical, digital, cognitive)\n- Outreach events and programming\n- Stakeholder engagement\n- Diversity, equity, and inclusion programs", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "PublicEngagementSpecialist", - "type": "object" - }, - "PublicRecordsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Records created by public bodies.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PublicArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PublicArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PublicRecordsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PublicRecordsFonds", - "type": "object" - }, - "PublicRelationsFunction": { - "additionalProperties": false, - "description": "Public relations function: media relations, press releases, crisis communications, reputation management.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "PublicRelationsFunction", - "type": "object" - }, - "PublicServiceRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Public service delivery records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "GovernmentArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by GovernmentArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PublicServiceRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PublicServiceRecordSeries", - "type": "object" - }, - "PublicSpace": { - "additionalProperties": false, - "description": "Places for public use in digital form.\n\n**PURPOSE**: Digital representation of public heritage spaces\nenabling virtual access and exploration.\n\n**CHARACTERISTICS**:\n- Public accessibility\n- Community use\n- Cultural significance\n- Virtual representation\n\n**EXAMPLES**: Virtual public spaces, digital commons", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q294440" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AUXILIARY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "PublicSpace", - "type": "object" - }, - "PublicWorksSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Infrastructure and public works documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "LocalGovernmentArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by LocalGovernmentArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PublicWorksSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PublicWorksSeries", - "type": "object" - }, - "PublicationDistributor": { - "additionalProperties": false, - "description": "Distributor for books, catalogs, and publications.\nExamples: Yale University Press, Thames & Hudson", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "PublicationDistributor", - "type": "object" - }, - "PublicationEvent": { - "additionalProperties": false, - "description": "Event of content being published, following CIDOC-CRM activity pattern.\n\nMIGRATED from published_at datetime slot per Rule 53/56 (2026-01-17).\n\n**Why Event Wrapper?**\n- Enables fuzzy temporal boundaries (uncertainty in publication dates)\n- Supports multiple publication events (republications, versions)\n- Links to agents/locations involved in publication\n- Follows ontology best practices (CIDOC-CRM activity modeling)\n\n**USE CASES**:\n- Social media posts: Precise publication timestamp\n- Historical documents: \"Published sometime in 1892\"\n- Archival records: \"Published between 1800-1805\"\n\n**FOR PRECISE TIMESTAMPS**:\nSet all four TimeSpan boundaries to the same instant.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "$ref": "#/$defs/TimeSpan", - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "temporal_extent" - ], - "title": "PublicationEvent", - "type": "object" - }, - "PublicationsFunction": { - "additionalProperties": false, - "description": "Publications function: catalogs, newsletters, annual reports, scholarly publications, exhibition materials.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "PublicationsFunction", - "type": "object" - }, - "PublicationsUrlClaim": { - "additionalProperties": false, - "description": "URL to publications page.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "PublicationsUrlClaim", - "type": "object" - }, - "Publisher": { - "additionalProperties": false, - "description": "A publisher of publications, catalogs, finding aids, or other documents.\n\nSupports structured representation with name, type, location, and identifiers.\nCREATED 2026-01-17 per Rule 53/56: Replaces string-valued publisher slot.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_location": { - "description": "The location of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "Publisher", - "type": "object" - }, - "PublisherRecordsSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Publishing house records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "LiteraryArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by LiteraryArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "PublisherRecordsSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "PublisherRecordsSeries", - "type": "object" - }, - "Quantity": { - "additionalProperties": false, - "description": "A quantified value with an optional unit of measurement and type.\n**QUDT ALIGNMENT**:\nMaps to `qudt:Quantity` - \"A quantitative value expressed as a number and a unit of measurement.\"\n**TYPES OF QUANTITIES**:\n| Type | Description | Example | |------|-------------|---------| | STAFF_COUNT | Number of employees | 42 employees | | COLLECTION_SIZE | Number of items | 1.2 million objects | | VISITOR_COUNT | Annual visitors | 2.5 million/year | | BUDGET_AMOUNT | Financial value | \u20ac15 million | | AREA | Physical space | 10,000 m\u00b2 | | DURATION | Time period | 6 months |\n**USE CASES**:\n1. **Staff Metrics**: Branch staff count, department size, FTE equivalents 2. **Collection Metrics**: Object counts, archive linear meters, digital items 3. **Visitor Metrics**: Annual attendance, daily capacity, peak visitors 4. **Financial Metrics**: Budget, revenue, acquisition costs 5. **Physical Metrics**: Floor area, gallery space, storage capacity\n**WHY NOT JUST USE INTEGER?**\nSimple integer fields like `branch_staff_count: 3` lose important context: - What's the unit? (FTE? headcount? contractors included?) - When was this measured? (provenance) - Is this exact or estimated? - What type of quantity is this?\nThe Quantity class captures this richness while remaining simple for basic use.\n**EXAMPLE**:\n```yaml Quantity:\n quantity_id: https://nde.nl/ontology/hc/quantity/nha-zaanstreek-staff-2025\n quantity_value: 3\n quantity_type: STAFF_COUNT\n has_or_had_measurement_unit:\n has_or_had_type: VISITOR\n has_or_had_symbol: \"visitors\"\n temporal_extent:\n begin_of_the_begin: \"2024-01-01T00:00:00Z\"\n end_of_the_end: \"2024-12-31T23:59:59Z\"\n has_or_had_description: Staff assigned to Zaanstreek-Waterland branch\n```\n**RULE 53 COMPLIANT**: Updated with link_branch slots (has_or_had_measurement_unit, temporal_extent, has_or_had_methodology) per slot_fixes.yaml revision for visitor_count, view_count, unique_object_count, and unique_face_count migrations.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_measurement_unit": { - "anyOf": [ - { - "$ref": "#/$defs/MeasureUnit" - }, - { - "type": "null" - } - ], - "description": "The structured unit of measurement for this quantity. Provides richer semantics than the deprecated quantity_unit string. RULE 53: Branch 1 slot from visitor_count migration." - }, - "has_or_had_methodology": { - "anyOf": [ - { - "$ref": "#/$defs/Methodology" - }, - { - "type": "null" - } - ], - "description": "The methodology used to derive this quantity. Essential for unique counts derived via entity resolution. RULE 53: Branch 2 slot from unique_object_count/unique_face_count migration." - }, - "has_or_had_provenance": { - "description": "Provenance information for this data element.\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\nBroadened from ProvenanceBlock to uriorcurie to resolve OWL ambiguous type warnings. This allows classes to narrow via slot_usage to: - `ProvenanceBlock` for comprehensive provenance tracking - `SourceDocument` for source document references - String URIs for simple provenance references\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming follows RiC-O convention indicating that provenance associations can change over time: - Additional provenance may be added as data is enriched - Provenance may be updated when verification occurs - Historical provenance preserved through versioning\n**REPLACES**: - `all_data_real` (auto-generated stub, string range) - `is_or_was_real` (RealnessStatus typed class) - `has_all_data_real_flag` (boolean flag, no provenance) - `has_or_had_observation_source_document` (bespoke slot, Rule 55)\n**EXAMPLE**: ```yaml has_or_had_provenance:\n data_source: \"public_linkedin_profile\"\n extraction_date: \"2025-01-14T12:00:00Z\"\n confidence_score: 0.95\n note: \"Verified production data\"\n```", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_estimate": { - "description": "Is Estimate for heritage custodian entities.\n", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_based_on": { - "description": "Entity or resource this item is or was based on (temporal relationship).\n\n**Semantic Pattern**: RiC-O temporal naming convention (Rule 39)\n- \"is_or_was\" indicates the relationship may be current or historical\n- Supports temporal modeling where dependencies change over time\n\n**PROV-O Alignment**:\nprov:wasDerivedFrom - \"A derivation is a transformation of an entity into another\"\n\n**Use Cases**:\n1. **CMS Detection**: Platform is_or_was_based_on a detected CMS\n2. **Software Dependencies**: Application based on framework/library\n3. **Content Derivation**: Document based on template/source\n4. **Infrastructure**: Service based on platform/technology\n\n**Temporal Semantics**:\n- Current: \"This platform IS based on WordPress 6.4\"\n- Historical: \"This platform WAS based on Drupal 7 (now migrated)\"\n- Use temporal_extent for precise validity periods\n\n**Examples**:\n```yaml\nAuxiliaryDigitalPlatform:\n platform_name: Museum Blog\n is_or_was_based_on:\n cms_name: WordPress\n cms_version: \"6.4\"\n detected_at: \"2026-01-19T12:00:00Z\"\n```\n\n**Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53).\nReplaces boolean cms_detected with structured CMS reference.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "The time period over which this quantity was measured. CIDOC-CRM temporal modeling with fuzzy boundaries. RULE 53: Branch 2 slot from visitor_count migration." - } - }, - "title": "Quantity", - "type": "object" - }, - "QuantityTypeEnum": { - "description": "Type of quantity being measured.", - "enum": [ - "STAFF_COUNT", - "COLLECTION_SIZE", - "VISITOR_COUNT", - "BUDGET_AMOUNT", - "AREA", - "DURATION", - "LINEAR_EXTENT", - "CAPACITY", - "ENGAGEMENT_COUNT", - "VIEW_COUNT", - "OBJECT_COUNT", - "CLAIM_COUNT", - "CHARACTER_COUNT", - "WORD_COUNT", - "OTHER" - ], - "title": "QuantityTypeEnum", - "type": "string" - }, - "QuarantineEnvironment": { - "additionalProperties": false, - "description": "Isolated area for incoming materials or pest treatment. **PURPOSE**: Provide isolated conditions for materials requiring inspection, treatment, or isolation before entering main storage. **USES**: - New acquisitions awaiting inspection - Materials undergoing pest treatment - Potentially contaminated items - Mold remediation staging - Chemical off-gassing isolation **CONDITIONS**: - Variable based on treatment needs - Often maintained separately from main HVAC - May include freezing capability for pest treatment - Negative air pressure for contamination control **CRITICAL**: Physical isolation from main collections essential.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "QUARANTINE", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard": { - "description": "Reference to applicable ISO or EN standard for this environmental zone type.\n\nFormat: Standard identifier (e.g., \"ISO 11799\", \"ISO 18911\", \"EN 16893\")\n\nCommon preservation standards:\n- ISO 11799: Document storage requirements\n- ISO 18911: Film storage practices\n- ISO 18934: Multiple media archives storage\n- EN 16893: Heritage collection storage buildings\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "max_annual_light_exposure": { - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "requires_dark_storage": { - "description": "Whether dark (zero light) storage is required for this environmental zone.\n\nBased on ISO preservation standards:\n- Film storage (ISO 18911): Dark storage mandatory\n- Photographic (ISO 18920): Dark storage for extended-term\n- UK Archives (BS 4971): 0 lux for closed storage\n\nDark storage essential for:\n- Film negatives (especially color and early nitrate/acetate)\n- Daguerreotypes and early photographic processes\n- Cyanotypes and blueprint materials\n- Some magnetic media (tape)\n- Highly fugitive inks and dyes\n\nAccess provided through reading rooms or digitization requests.\nCumulative light damage is completely prevented.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_dust_free": { - "description": "Whether a dust-free or dust-controlled environment is required for this zone.\n\nBased on ISO preservation standards:\n- Magnetic tape (ISO 18923): Dust-free mandatory\n- Optical media (ISO 18938): Cleanroom for masters\n- Archives (ISO 11799): Dust control required\n\nISO 14644-1 Cleanliness Classes:\n- Class 8: General archive/museum (HEPA filtered)\n- Class 7: AV media storage (positive pressure)\n- Class 5: Digital master storage (cleanroom)\n\nDust-free essential for:\n- Magnetic tapes and audiovisual media\n- Optical discs (CD, DVD, Blu-ray)\n- Fine art and paintings (surface abrasion)\n- Photographic materials (scratches, embedded particles)\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_esd_protection": { - "description": "Whether electrostatic discharge (ESD) protection is required for this zone.\n\nBased on ISO/IEC standards:\n- Magnetic tape (ISO 18923): ESD protection required\n- Optical media (ISO 18938): ESD-safe handling mandatory\n- Electronics (IEC 61340-5-1): ESD control program\n\nESD protection measures include:\n- Conductive/dissipative flooring\n- Humidity control (40-60% RH reduces static)\n- ESD-safe packaging and equipment\n- Personnel grounding (wrist straps)\n\nESD protection essential for:\n- Hard drives and SSDs\n- LTO and other magnetic tapes\n- Optical media (CD, DVD, Blu-ray masters)\n- Electronic components and circuit boards\n- Born-digital heritage collections\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_uv_filter": { - "description": "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \u00b5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label", - "has_or_had_description" - ], - "title": "QuarantineEnvironment", - "type": "object" - }, - "RESTful": { - "additionalProperties": false, - "description": "RESTful API pattern (JSON/XML over HTTP).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RESTful", - "type": "object" - }, - "RORIdentifier": { - "additionalProperties": false, - "description": "Research Organization Registry identifier.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "ROR", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "ROR ID", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "RORIdentifier", - "type": "object" - }, - "RSSFeed": { - "additionalProperties": false, - "description": "Classification for RSS feed endpoints.\n\n**Protocol**: RSS (Really Simple Syndication)\n**Purpose**: Content syndication\n**Versions**: RSS 2.0 most common\n\n**Heritage Sector Usage**:\n\nRSS feeds used for:\n- News and announcements\n- Event listings\n- Exhibition updates\n- Blog syndication", - "properties": { - "has_or_had_description": { - "description": "Description of what this endpoint type represents.\n\nSKOS: definition for the meaning of the concept.\n\nShould explain:\n- What protocol/standard this type implements\n- Primary use cases\n- Target audience (harvesters, researchers, developers)\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_format": { - "description": "The format or file type of a resource or service response.\n\n**USAGE**:\nUsed for:\n- Response formats from APIs (JSON, XML, RDF)\n- File formats for documents (PDF, DOCX, TXT)\n- Media formats (JPEG, MP3, MP4)\n- Transcript formats (VTT, SRT, plain text)\n- Subtitle formats (WebVTT, SRT, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property\n- **Close**: `dct:format` - Dublin Core format\n- **Close**: `schema:encodingFormat` - Schema.org encoding format\n\n**Range**: `uriorcurie` (Rule 54)\nBroadened range to accept URI/CURIE references to format specifications.\nThis allows linking to IANA media types, format registries, or internal\nformat classes while resolving OWL ambiguous type warnings.\n\nClasses can narrow to specific format enums/classes via slot_usage.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Unique identifier for this endpoint type.\n\nFormat: URI within the NDE Heritage Custodian ontology namespace.\n\nExample: \"https://nde.nl/ontology/hc/endpoint-type/oai-pmh\"\n", - "type": "string" - }, - "has_or_had_method": { - "description": "A method associated with an activity, process, or entity.\n\n**USAGE**:\nUsed for:\n- HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod\n- Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod\n- API interaction methods\n\n**BROADENED RANGE**:\nRange broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "heritage_sector_usage": { - "description": "Description of how this endpoint type is used in the heritage sector.\n\nSKOS: scopeNote for usage context.\n\nShould explain:\n- Primary use cases in GLAM institutions\n- Which institution types commonly use this\n- Integration with aggregators (Europeana, DPLA, etc.)\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_used_in": { - "description": "The context in which something is used.", - "items": { - "$ref": "#/$defs/HeritageSector" - }, - "type": [ - "array", - "null" - ] - }, - "narrower_type": { - "description": "Child/narrower endpoint types in the hierarchy.\n\nSKOS: narrower for hierarchical relationship.\n\nExample: DataServiceEndpointType narrower includes OAIPMHEndpointType\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "protocol_name": { - "description": "Name of the protocol or standard this endpoint type implements.\n\nDublin Core: conformsTo for standard compliance.\n\nExamples:\n- \"OAI-PMH\" (Open Archives Initiative Protocol for Metadata Harvesting)\n- \"IIIF Image API\" (International Image Interoperability Framework)\n- \"SPARQL\" (SPARQL Protocol and RDF Query Language)\n- \"REST\" (Representational State Transfer)\n- \"SRU\" (Search/Retrieve via URL)\n", - "type": "string" - }, - "protocol_version": { - "description": "Version of the protocol this endpoint type supports.\n\nSchema.org: version for protocol version.\n\nExamples:\n- \"2.0\" (OAI-PMH)\n- \"3.0\" (IIIF Image API)\n- \"1.1\" (SPARQL)\n", - "type": [ - "string", - "null" - ] - }, - "related_types": { - "description": "Related endpoint types (non-hierarchical relationship).\n\nSKOS: related for associative relationships.\n\nExamples:\n- OAIPMHEndpointType related to AtomFeedType (both for syndication)\n- IIIFImageAPIType related to IIIFPresentationAPIType (same family)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specification_url": { - "description": "URL to the official specification document for this protocol.\n\nSchema.org: documentation for specification reference.\n\nExamples:\n- \"http://www.openarchives.org/OAI/openarchivesprotocol.html\" (OAI-PMH)\n- \"https://iiif.io/api/image/3.0/\" (IIIF Image API 3.0)\n- \"https://www.w3.org/TR/sparql11-protocol/\" (SPARQL 1.1)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "type_name": { - "description": "Human-readable name for this endpoint type.\n\nSKOS: prefLabel for preferred human-readable name.\n\nExamples:\n- \"OAI-PMH Endpoint\"\n- \"Search API\"\n- \"IIIF Image Server\"\n- \"SPARQL Endpoint\"\n", - "type": "string" - } - }, - "required": [ - "has_or_had_identifier", - "type_name", - "protocol_name" - ], - "title": "RSSFeed", - "type": "object" - }, - "RackSlotCapacity": { - "additionalProperties": false, - "description": "Number of rack or shelf slots available.\nUsed for modular storage systems.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "RackSlotCapacity", - "type": "object" - }, - "RadioAdvertisementCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Radio commercial recordings.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "AdvertisingRadioArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by AdvertisingRadioArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "RadioAdvertisementCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RadioAdvertisementCollection", - "type": "object" - }, - "RadioArchive": { - "additionalProperties": false, - "description": "Archive of radio broadcasts and recordings. Radio archives preserve recordings of radio programs, broadcasts, and related documentation. They may be maintained by broadcasting organizations, national sound archives, or specialized institutions. Holdings document the history of radio and serve as sources for cultural and historical research.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RadioArchive", - "type": "object" - }, - "RadioArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by RadioArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RadioArchiveRecordSetType", - "type": "object" - }, - "RadioScriptCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Radio scripts and programming.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "RadioArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by RadioArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "RadioScriptCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RadioScriptCollection", - "type": "object" - }, - "RadiocarbonDating": { - "additionalProperties": false, - "description": "Dating organic materials using carbon-14 decay.\nApplicable to wood, canvas, paper, and organic binders.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "RadiocarbonDating", - "type": "object" - }, - "Radiography": { - "additionalProperties": false, - "description": "X-ray imaging to reveal subsurface structure.\nShows canvas weave, underdrawing, composition changes, damage.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Radiography", - "type": "object" - }, - "RakingLight": { - "additionalProperties": false, - "description": "Photography with light at acute angle to surface.\nReveals texture, impasto, and surface irregularities.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "RakingLight", - "type": "object" - }, - "RamanSpectroscopy": { - "additionalProperties": false, - "description": "Molecular identification using laser-induced Raman scattering.\nIdentifies pigments, binders, and degradation products.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "RamanSpectroscopy", - "type": "object" - }, - "Rationale": { - "additionalProperties": false, - "description": "A rationale or justification for a decision.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_description" - ], - "title": "Rationale", - "type": "object" - }, - "ReadingRoom": { - "additionalProperties": false, - "description": "Reading room or research room at a heritage custodian institution.\n\n**DEFINITION**:\n\nA ReadingRoom is a designated space where researchers, scholars, and the\npublic can access and consult collection materials under supervised\nconditions. Reading rooms are the primary interface between heritage\ncustodians and their users for on-site collection access.\n\n**GETTY AAT ALIGNMENT**:\n\n`aat:300004051` (reading rooms) - \"Rooms in libraries, archives, or other\nbuildings where books, periodicals, or other materials may be read or\nstudied, but not normally borrowed.\"\n\n**DISTINCTION FROM ReadingRoomAnnex**:\n\n| Type | Location | Status |\n|------|----------|--------|\n| **ReadingRoom** | Main building | Primary reading facility |\n| ReadingRoomAnnex | Separate location | Overflow/supplementary |\n\n**TYPICAL CHARACTERISTICS**:\n\n- **Supervised access**: Staff oversight for security\n- **Controlled environment**: Climate control for materials\n- **Research support**: Finding aids, catalogs, reference help\n- **Registration required**: Reader cards, ID verification\n- **Rules of use**: No food/drink, pencils only, handling guidelines\n\n**TYPES OF READING ROOMS**:\n\n1. **General Reading Room**: Primary research space\n2. **Special Collections Reading Room**: Rare/valuable materials\n3. **Microfilm Reading Room**: Microform materials\n4. **Digital Reading Room**: Electronic resources, digitization on demand\n5. **Map Room**: Oversized cartographic materials\n6. **Newspaper Reading Room**: Periodicals and newspapers\n\n**USE CASES**:\n\n1. **Archive Reading Room**:\n ```yaml\n ReadingRoom:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/na-studiezaal\"\n has_or_had_label:\n label_text: \"Nationaal Archief Studiezaal\"\n reading_room_type: \"General\"\n seating_capacity: 80\n requires_registration: true\n allows_photography: true\n ```\n\n2. **Special Collections Room**:\n ```yaml\n ReadingRoom:\n has_or_had_label:\n label_text: \"KB Bijzondere Collecties Leeszaal\"\n reading_room_type: \"Special Collections\"\n seating_capacity: 20\n requires_appointment: true\n has_supervised_handling: true\n ```", - "properties": { - "allows_or_allowed": { - "description": "Generic slot for expressing what activities, equipment, or behaviors are permitted in a heritage custodian facility (past or present).\n**SEMANTICS**:\nUses RiC-O temporal pattern (is_or_was / has_or_had / allows_or_allowed) to capture policies that may change over time. A reading room that \"allowed photography\" in 2020 may have changed policy by 2025.\n**USAGE PATTERN**:\nThe range should be a typed class representing the permitted activity: - `Laptop` - laptop use permission - `Photography` - photography permission - Future: `Food`, `Beverages`, `MobilePhone`, etc.\n**EXAMPLES**:\n```yaml ReadingRoom:\n allows_or_allowed:\n - permitted_item: Laptop\n is_permitted: true\n conditions: \"Must be silent, no external keyboards\"\n - permitted_item: Photography \n is_permitted: true\n conditions: \"Personal research use only, no flash\"\n```", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_locker": { - "description": "Whether reading room provides lockers for personal belongings.\n\nMany reading rooms require bags/coats to be stored in lockers.\n", - "type": [ - "boolean", - "null" - ] - }, - "has_microfilm_reader": { - "description": "Whether reading room has microfilm/microfiche reader equipment.\n", - "type": [ - "boolean", - "null" - ] - }, - "has_or_had_accessibility_feature": { - "description": "Accessibility features available in this reading room.\n\nSchema.org: accessibilityFeature for accessibility.\n\nMay include:\n- Wheelchair accessible\n- Adjustable desks\n- Screen magnification\n- Audio assistance\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_supervised_handling": { - "description": "Whether materials are handled under staff supervision.\n\nRequired for rare, fragile, or high-value materials.\n", - "type": [ - "boolean", - "null" - ] - }, - "has_wifi": { - "description": "Whether reading room has WiFi internet access for researchers.\n", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "opening_hour": { - "description": "Operating hours for the physical gift shop.\n\nSchema.org: openingHours in Schema.org format.\n\nFormat: \"Mo-Fr 09:00-17:00, Sa 10:00-18:00, Su 11:00-17:00\"\n\nMay differ from museum hours (shop may close earlier).\n", - "type": [ - "string", - "null" - ] - }, - "reading_room_type": { - "$ref": "#/$defs/ReadingRoomTypeEnum", - "description": "Type classification of this reading room.\n\nCommon types:\n- General: Primary research space\n- Special Collections: Rare/valuable materials\n- Microfilm: Microform materials\n- Digital: Electronic resources\n- Map Room: Cartographic materials\n- Newspaper: Periodicals\n- Multimedia: AV materials\n" - }, - "requires_appointment": { - "description": "Whether researchers must book an appointment in advance.\n\nSpecial collections rooms often require appointments.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_registration": { - "description": "Whether researchers must register for a reader card before access.\n\nMost archives and special collections require registration.\n", - "type": [ - "boolean", - "null" - ] - }, - "seating_capacity": { - "description": "Number of researcher seats available in this reading room.\n\nSchema.org: maximumAttendeeCapacity for capacity.\n", - "type": [ - "integer", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label", - "reading_room_type" - ], - "title": "ReadingRoom", - "type": "object" - }, - "ReadingRoomAnnex": { - "additionalProperties": false, - "description": "Overflow or supplementary reading room at a separate location from main facility.\n\n**DEFINITION**:\n\nA ReadingRoomAnnex is a secondary research space located separately from\nthe main heritage custodian building. Annexes typically serve overflow\ncapacity, specialized materials, or specific researcher communities.\n\n**DISTINCTION FROM ReadingRoom**:\n\n| Property | ReadingRoom | ReadingRoomAnnex |\n|----------|-------------|------------------|\n| **Location** | Main building | Separate location |\n| **Status** | Primary facility | Supplementary |\n| **Materials** | Main collections | Overflow/specialized |\n| **Permanence** | Permanent | May be temporary |\n\n**TYPICAL REASONS FOR ANNEX**:\n\n1. **Capacity overflow**: Main reading room at capacity\n2. **Specialized materials**: Maps, newspapers, genealogy\n3. **Geographic reach**: Serve researchers in another city\n4. **Renovation**: Temporary reading room during construction\n5. **Partnership**: Shared space with another institution\n\n**USE CASES**:\n\n1. **Overflow Annex**:\n ```yaml\n ReadingRoomAnnex:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/nha-annex-kleine-houtweg\"\n annex_name: \"Noord-Hollands Archief Reading Room Annex\"\n annex_reason: CAPACITY_OVERFLOW\n is_annex_of_reading_room: \"https://nde.nl/ontology/hc/aux/nha-studiezaal\"\n ```\n\n2. **Specialized Materials Annex**:\n ```yaml\n ReadingRoomAnnex:\n annex_name: \"Stadsarchief Kaartenkamer Annex\"\n annex_reason: SPECIALIZED_MATERIALS\n material_specialization: \"Historical maps and atlases\"\n ```\n\n**RELATIONSHIP TO AuxiliaryPlace**:\n\nReadingRoomAnnex is typically located within an AuxiliaryPlace:\n```\nAuxiliaryPlace (physical location)\n \u2514\u2500\u2500 hosts \u2192 ReadingRoomAnnex (function at that location)\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "$ref": "#/$defs/CustodianIdentifier" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_annex_of_reading_room": { - "description": "The main ReadingRoom that this is an annex of.\n\nSchema.org: isPartOf for part-whole relationship.\n\nLinks annex to primary reading room.\n", - "type": "string" - }, - "is_or_was_created_through": { - "description": "Event through which an entity was created.", - "type": "string" - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "is_temporary": { - "description": "Whether this annex is temporary (will close when main room reopens).\n\nRelevant for renovation/construction annexes.\n", - "type": [ - "boolean", - "null" - ] - }, - "material_specialization": { - "description": "What specialized materials this annex serves, if applicable.\n\nOnly relevant if has_annex_reason is SPECIALIZED_MATERIALS.\n", - "type": [ - "string", - "null" - ] - }, - "opening_hour": { - "description": "Operating hours for the physical gift shop.\n\nSchema.org: openingHours in Schema.org format.\n\nFormat: \"Mo-Fr 09:00-17:00, Sa 10:00-18:00, Su 11:00-17:00\"\n\nMay differ from museum hours (shop may close earlier).\n", - "type": [ - "string", - "null" - ] - }, - "planned_closure_date": { - "description": "Planned closure date if this is a temporary annex.\n\nOnly relevant if is_temporary is TRUE.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "requires_separate_registration": { - "description": "Whether researchers need separate registration for this annex.\n\nFALSE: Same reader card as main reading room\nTRUE: Additional registration required\n", - "type": [ - "boolean", - "null" - ] - }, - "seating_capacity": { - "description": "Number of researcher seats available in this reading room.\n\nSchema.org: maximumAttendeeCapacity for capacity.\n", - "type": [ - "integer", - "null" - ] - }, - "shares_catalog_with_main": { - "description": "Whether this annex uses the same catalog/finding aids as main reading room.\n\nTRUE: Same catalog system\nFALSE: Separate catalog (may indicate specialized collection)\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label", - "is_or_was_created_through", - "is_annex_of_reading_room" - ], - "title": "ReadingRoomAnnex", - "type": "object" - }, - "ReadingRoomAnnexReasonEnum": { - "description": "Reasons for establishing a reading room annex", - "enum": [ - "CAPACITY_OVERFLOW", - "SPECIALIZED_MATERIALS", - "GEOGRAPHIC_REACH", - "RENOVATION", - "PARTNERSHIP" - ], - "title": "ReadingRoomAnnexReasonEnum", - "type": "string" - }, - "ReadingRoomTypeEnum": { - "description": "Types of reading rooms at heritage custodian institutions.\n\nUsed by ReadingRoom class to classify research and consultation spaces\nwhere collections are accessed under supervised conditions.", - "enum": [ - "GENERAL", - "SPECIAL_COLLECTIONS", - "MICROFILM", - "DIGITAL", - "MAP_ROOM", - "NEWSPAPER", - "MULTIMEDIA", - "GENEALOGY" - ], - "title": "ReadingRoomTypeEnum", - "type": "string" - }, - "Reason": { - "additionalProperties": false, - "description": "Reason.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Reason", - "type": "object" - }, - "ReasoningContent": { - "additionalProperties": false, - "description": "LLM reasoning content that is preserved across conversation turns.\n\n**DEFINITION**:\n\nReasoningContent represents the chain-of-thought reasoning that LLMs like\nGLM 4.7 expose through their thinking modes. This class captures the\nreasoning_content that should be preserved when using \"Preserved Thinking\"\nmode for multi-turn conversations.\n\n**GLM 4.7 Preserved Thinking** (https://docs.z.ai/guides/capabilities/thinking-mode):\n\nWhen `clear_thinking: false` (Preserved Thinking enabled):\n- Reasoning content from previous turns is retained in context\n- Improves model performance and increases cache hit rates\n- Requires returning EXACT, UNMODIFIED reasoning_content back to API\n\n**Migration from clear_thinking**:\n\nThis class replaces the boolean `clear_thinking` slot with a structured\nrepresentation of what is being preserved:\n\n| Old Pattern | New Pattern |\n|-------------|-------------|\n| `clear_thinking: false` | `preserves_or_preserved: ReasoningContent` with `is_preserved: true` |\n| `clear_thinking: true` | `preserves_or_preserved: ReasoningContent` with `is_preserved: false` |\n\n**PROV-O Alignment**:\n- ReasoningContent IS a prov:Entity (the reasoning output)\n- Links to LLMResponse via preserves_or_preserved slot\n- Enables tracking reasoning provenance across turns\n\n**Use Cases**:\n- Multi-turn agent conversations with preserved context\n- Debugging reasoning chain across API calls\n- Auditing LLM decision-making process\n- Optimizing cache hit rates", - "properties": { - "content_text": { - "description": "The actual reasoning content text (chain-of-thought).\nOptional - may be omitted if only tracking preservation status.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_preserved": { - "description": "Whether this reasoning content is preserved across turns.\n\n- **true**: Preserved Thinking enabled (keep reasoning, better cache hits)\n- **false**: Clear previous reasoning (fresh context each turn)\n\nMaps to the inverse of the old `clear_thinking` boolean:\n- `is_preserved: true` \u2261 `clear_thinking: false`\n- `is_preserved: false` \u2261 `clear_thinking: true`\n", - "type": "boolean" - }, - "token_count": { - "description": "Number of tokens in the reasoning content.\nImportant for context window management.\n", - "type": [ - "integer", - "null" - ] - }, - "turn_number": { - "description": "The conversation turn number this reasoning came from.\nUseful for tracking reasoning provenance across multi-turn conversations.\n", - "type": [ - "integer", - "null" - ] - } - }, - "required": [ - "is_preserved" - ], - "title": "ReasoningContent", - "type": "object" - }, - "Receptionist": { - "additionalProperties": false, - "description": "Receptionist providing front-desk visitor services.\n\n**Official Title vs De Facto Work**:\nOften first point of contact, providing information,\nticketing, and orientation beyond basic reception.\n\n**Common Variants**:\n- Front Desk Staff\n- Visitor Services Associate\n- Welcome Desk Attendant\n\n**Typical Domains**: All heritage institutions with public spaces\n\n**Typical Responsibilities**:\n- Visitor greeting\n- Information provision\n- Phone and email handling\n- Ticketing support\n- Administrative support", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Receptionist", - "type": "object" - }, - "ReconstructionActivity": { - "additionalProperties": false, - "description": "An activity that creates a CustodianLegalStatus by reconciling and \nresolving multiple CustodianObservations into a single entity.\n\nThis documents:\n- Entity resolution method (manual curation, algorithmic matching, etc.)\n- Responsible agent (person, custodian, software)\n- Temporal extent (start/end dates)\n- Provenance and justification", - "properties": { - "generates_or_generated": { - "description": "Generated output.", - "items": { - "$ref": "#/$defs/Output" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "$ref": "#/$defs/ConfidenceValue" - }, - "type": [ - "array", - "null" - ] - }, - "justification": { - "description": "Justification for entity resolution decisions.\nPROV-O: qualifiedAttribution for detailed provenance rationale.\n", - "type": [ - "string", - "null" - ] - }, - "method": { - "description": "Detailed method description for entity resolution.\nDublin Core: description for methodology documentation.\n", - "type": [ - "string", - "null" - ] - }, - "responsible_agent": { - "anyOf": [ - { - "$ref": "#/$defs/ReconstructionAgent" - }, - { - "type": "null" - } - ], - "description": "ReconstructionAgent responsible for reconstruction (REQUIRED).\nPROV-O: wasAssociatedWith links Activity to responsible ReconstructionAgent.\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n", - "items": { - "$ref": "#/$defs/TimeSpan" - }, - "type": "array" - } - }, - "required": [ - "temporal_extent" - ], - "title": "ReconstructionActivity", - "type": "object" - }, - "ReconstructionActivityTypeEnum": { - "description": "Types of reconstruction activities (PROV-O Activity subtypes)", - "enum": [ - "MANUAL_CURATION", - "ALGORITHMIC_MATCHING", - "HYBRID", - "EXPERT_REVIEW" - ], - "title": "ReconstructionActivityTypeEnum", - "type": "string" - }, - "ReconstructionAgent": { - "additionalProperties": false, - "description": "A person, organization, or software agent responsible for creating a \nCustodianLegalStatus (i.e., researchers, curators, data scientists who \nperform entity resolution and reconstruction activities).\n\nOntology alignment:\n- PROV-O: Core provenance agent model\n- FOAF: Social web agent identification\n- RiC-O: Archival domain agent model (ICA standard)\n- CPOV: EU Core Public Organisation Vocabulary (for public sector heritage agents)\n- Schema.org: Web semantics for persons and organizations\n- W3C Org: Organizational structures\n- PiCo: Person observation/reconstruction agents\n- TOOI: Dutch government organizational ontology", - "properties": { - "contact": { - "description": "Contact information (email) for the agent.\n\nOntology mappings:\n- FOAF: mbox for email addresses (standard web practice)\n- Schema.org: email property alternative\n- CPOV: email property from EU Core Public Organisation Vocabulary\n- CPOV: ContactPoint class for more complex contact information\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ReconstructionAgent", - "type": "object" - }, - "RecordCycleStatus": { - "additionalProperties": false, - "description": "The status of a record within its lifecycle.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "RecordCycleStatus", - "type": "object" - }, - "RecordStatus": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "RecordStatus", - "type": "object" - }, - "RecordsLifecycleStageEnum": { - "description": "Three-tier records lifecycle indicating current position of an organizational document.\n\n**LIFECYCLE MODEL**:\n\n```\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 ACTIVE (CustodianAdministration) \u2502\n\u2502 - Records in current use for organizational operations \u2502\n\u2502 - Actively referenced, updated, or legally required \u2502\n\u2502 - Managed by originating department \u2502\n\u2502 - Retention period has NOT expired \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2193\n (Retention period ends,\n no longer active use,\n transferred to records management)\n \u2193\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 INACTIVE (CustodianArchive) \u2502\n\u2502 - Records no longer in active use but retained \u2502\n\u2502 - Subject to retention schedule \u2502\n\u2502 - May be accessed for reference, legal, audit purposes \u2502\n\u2502 - Managed by records management/archive \u2502\n\u2502 - Awaiting disposal or heritage transfer \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2193\n (Historical significance recognized,\n selected for permanent preservation)\n \u2193\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 HERITAGE (CustodianCollection) \u2502\n\u2502 - Records of enduring historical or cultural value \u2502\n\u2502 - Permanent preservation \u2502\n\u2502 - Part of institutional heritage collection \u2502\n\u2502 - May be made accessible to researchers \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n**RiC-O ALIGNMENT**:\n\n- Maps to rico:hasRecordState conceptually\n- Links document instances to CustodianAdministration, CustodianArchive, or CustodianCollection\n\n**EXAMPLES BY DOCUMENT TYPE**:\n\n| Document | ACTIVE | INACTIVE | HERITAGE |\n|----------|--------|----------|----------|\n| Financial Statement | Current year | Prior years (7-year retention) | Founding era financials |\n| Articles of Association | Current version | Prior versions | Original founding articles |\n| Employment Records | Current employees | Terminated (retention period) | Notable historical figures |\n| Board Minutes | Current year | Prior years | Founding board meetings |", - "enum": [ - "ACTIVE", - "INACTIVE", - "HERITAGE", - "PRE_EXISTENCE" - ], - "title": "RecordsLifecycleStageEnum", - "type": "string" - }, - "RecordsManager": { - "additionalProperties": false, - "description": "Records manager handling institutional records management and retention.\n\n**Official Title vs De Facto Work**:\nOften involved in compliance, training, system implementation, and\norganizational change management beyond core records duties.\n\n**Common Variants**:\n- Records Management Specialist\n- Information Governance Officer\n- Records Analyst\n- Records Administrator\n\n**Typical Domains**: Government archives, corporate archives, large institutions\n\n**Typical Responsibilities**:\n- Records retention schedules\n- Institutional records policies\n- Compliance (GDPR, FOI, etc.)\n- Records appraisal and transfer to archives\n- Electronic records management", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "RecordsManager", - "type": "object" - }, - "Reference": { - "additionalProperties": false, - "description": "A bibliographic or documentary reference containing citation text and source metadata.", - "properties": { - "citation_text": { - "description": "Verbatim text from the source document. Preserves original wording for archival/historical research.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "source_date": { - "description": "Date of the source document (when known).", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "source_location": { - "description": "Location or identifier of the source (e.g., archive call number, repository identifier, URL).", - "type": [ - "string", - "null" - ] - }, - "source_type": { - "description": "Type of source document (e.g., parish_register, census, birth_certificate, newspaper, biography).", - "type": [ - "string", - "null" - ] - } - }, - "title": "Reference", - "type": "object" - }, - "RegionalAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Regional government records (France).\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ArchivesRegionales", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ArchivesRegionales custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "RegionalAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RegionalAdministrationFonds", - "type": "object" - }, - "RegionalAggregator": { - "additionalProperties": false, - "description": "Regional or provincial portal aggregating heritage metadata within a\nsubnational region.\n\n**PURPOSE**: Provide discovery and access to regional cultural heritage,\noften with stronger local context than national portals.\n\n**OPERATORS**: Typically operated by provincial/state heritage agencies,\nregional library consortia, or regional cultural foundations.\n\n**CHARACTERISTICS**:\n- Subnational scope (province, state, region)\n- Deep local knowledge and context\n- Regional standards and traditions\n- Close relationships with local institutions\n\n**EXAMPLES**:\n- LEO-BW (Baden-W\u00fcrttemberg, Germany)\n- Bavarikon (Bavaria, Germany)\n- Archivportal Th\u00fcringen (Thuringia, Germany)\n- Delpher (Netherlands - historical regional focus)", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "GEOGRAPHIC_SCOPE", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "RegionalAggregator", - "type": "object" - }, - "RegionalArchive": { - "additionalProperties": false, - "description": "Archive with a regional scope. Regional archives serve geographic regions that may cross administrative boundaries, preserving materials of regional significance. They may focus on particular regions, states, provinces, or cultural areas, complementing national and local archival institutions.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RegionalArchive", - "type": "object" - }, - "RegionalArchivesInIceland": { - "additionalProperties": false, - "description": "Regional archives in Iceland. These archives serve specific regions of Iceland, preserving local government records, parish registers, and other materials of regional significance. They complement the National Archives of Iceland (\u00dej\u00f3\u00f0skjalasafn \u00cdslands) by focusing on regional documentation.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RegionalArchivesInIceland", - "type": "object" - }, - "RegionalArchivesInIcelandRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by RegionalArchivesInIceland custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RegionalArchivesInIcelandRecordSetType", - "type": "object" - }, - "RegionalBusinessFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Regional business records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "RegionalEconomicArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by RegionalEconomicArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "RegionalBusinessFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RegionalBusinessFonds", - "type": "object" - }, - "RegionalEconomicArchive": { - "additionalProperties": false, - "description": "Archive documenting the economic history of a region. Regional economic archives focus on business, industrial, and commercial history within a specific geographic region. They may hold records of regional businesses, trade associations, chambers of commerce, and documentation of regional economic development.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RegionalEconomicArchive", - "type": "object" - }, - "RegionalEconomicArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by RegionalEconomicArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RegionalEconomicArchiveRecordSetType", - "type": "object" - }, - "RegionalGovernanceFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for regional government administrative records organized as a fonds.\n\n**Definition**:\nRecords created or accumulated by regional government bodies (provincial states,\nregional councils, district administrations) in the exercise of governance and\npolicy-making functions. Organized according to archival principles of provenance.\n\n**Typical Contents**:\n- Provincial/state government records\n- Regional council minutes and resolutions\n- Policy and regulatory records\n- Intergovernmental correspondence\n- Regional planning documents\n- Budget and financial administration\n\n**Dutch Context**:\nIncludes records of Provinciale Staten (Provincial States), Gedeputeerde Staten\n(Provincial Executive), and Commissaris van de Koning (King's Commissioner).\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the fonds organizational principle as defined by rico-rst:Fonds\n(respect des fonds / provenance-based organization from regional government bodies).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the fonds principle. The rico-rst:Fonds individual defines the standard archival concept of fonds.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "RegionalGovernanceFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"municipal records\", \"national government\", \"private organizations\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"provincial government\", \"regional council\", \"policy records\", \"intergovernmental correspondence\", \"regional planning\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "RegionalGovernanceFonds", - "type": "object" - }, - "RegionalHistoryCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for regional history documentation collections.\n\n**Definition**:\nAssembled collections documenting regional history, culture, and identity.\nMay include both archival materials and library/museum-type items. Often\ncompiled by historical societies or regional archives to document regional\nheritage beyond official government records.\n\n**Typical Contents**:\n- Regional photographs and postcards\n- Local newspapers and periodicals\n- Regional maps and atlases\n- Oral history recordings\n- Regional publications and pamphlets\n- Ephemera (posters, programs, advertisements)\n- Personal papers of regional significance\n\n**Collection Nature**:\nMay be assembled collections (artificial) organized by subject or format\nrather than strict provenance. Documentation value often takes precedence\nover archival has_arrangement principles.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype typically follow the collection organizational principle as defined by\nrico-rst:Collection (artificial assemblage organized by subject or format\nrather than strict provenance).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType typically follows the collection principle (artificial assemblage). Documentation value prioritized for diverse regional materials.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "RegionalHistoryCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"government records\", \"notarial records\", \"civil registry\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"photographs\", \"newspapers\", \"maps\", \"oral histories\", \"ephemera\", \"personal papers\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "RegionalHistoryCollection", - "type": "object" - }, - "RegionalPlanningCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Regional development documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ProvincialArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ProvincialArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "RegionalPlanningCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RegionalPlanningCollection", - "type": "object" - }, - "RegionalPortal": { - "additionalProperties": false, - "description": "Web portal aggregating regional heritage and scientific information.\n\n**PURPOSE**: Provide unified access to heritage resources within a\nspecific geographic region.\n\n**CHARACTERISTICS**:\n- Regional focus\n- Local heritage institutions\n- Regional history and culture\n- Local language support\n\n**EXAMPLES**: LEO-BW, Bavarikon, provincial heritage portals", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q110279335" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AGGREGATOR", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "RegionalPortal", - "type": "object" - }, - "RegionalStateArchives": { - "additionalProperties": false, - "description": "Regional state archives in Sweden. These archives are part of Riksarkivet (National Archives of Sweden) and serve specific regions of the country. They preserve government records, court records, church archives, and other materials of regional significance, complementing the central national archives.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RegionalStateArchives", - "type": "object" - }, - "RegionalStateArchivesRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by RegionalStateArchives custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RegionalStateArchivesRecordSetType", - "type": "object" - }, - "RegionalStateFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Regional state government records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "RegionalStateArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by RegionalStateArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "RegionalStateFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RegionalStateFonds", - "type": "object" - }, - "RegionalVariant": { - "additionalProperties": false, - "description": "Regional or dialect variation of a term.\n\n**Use Cases**:\n- British vs. American English (\"Curator\" vs. \"Keeper\")\n- Dutch regional variations\n- Country-specific terminology\n\n**Example**:\n```yaml\nhas_or_had_type:\n - has_or_had_label: \"Keeper\"\n has_or_had_type: RegionalVariant\n has_or_had_description: \"British English term\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "RegionalVariant", - "type": "object" - }, - "RegisterTypeEnum": { - "description": "Types of trade registers by entity category", - "enum": [ - "COMMERCIAL", - "FOUNDATION", - "ASSOCIATION", - "CHARITY", - "CULTURAL", - "MIXED" - ], - "title": "RegisterTypeEnum", - "type": "string" - }, - "RegistrationAuthority": { - "additionalProperties": false, - "description": "An organization that maintains the GLOBAL registry for an identifier standard.\n\n**Key Distinction from AllocationAgency:**\n\n- **RegistrationAuthority**: Single authoritative maintainer of the global registry\n - Ensures uniqueness across all identifiers\n - Publishes the authoritative dataset\n - Defines governance and policies\n\n- **AllocationAgency**: Allocates identifiers locally within constraints set by RegistrationAuthority\n - Multiple agencies per standard (one per country/domain)\n - Reports allocations to RegistrationAuthority\n - Follows policies set by RegistrationAuthority\n\n**Examples:**\n\n| Standard | Registration Authority | AllocationAgencies |\n|----------|------------------------|---------------------|\n| ISIL (ISO 15511) | Danish Agency for Culture and Palaces | KB (NL), BL (UK), LOC (US), etc. |\n| ISNI (ISO 27729) | ISNI International Agency (WIPO) | DNB, BnF, OCLC, etc. |\n| VIAF | OCLC | (contributing agencies, not allocators) |\n| Wikidata | Wikimedia Foundation | (community-allocated) |\n| ROR | ROR Steering Group | (community-allocated) |\n\n**ISIL Registration Authority History:**\n\nThe ISIL global registry has been maintained by:\n1. **Before 2019**: Danish Agency for Library and Media (DALM)\n2. **2019-present**: Danish Agency for Culture and Palaces (Slots- og Kulturstyrelsen)\n\nThe registry is published at: https://sigel.info/\n\n**Ontology Alignment:**\n\n- gleif_base:RegistrationAuthority - GLEIF Legal Entity Identifier ontology\n- org:FormalOrganization - W3C Organization Ontology\n- schema:Organization - Schema.org", - "properties": { - "allocation_agencies": { - "description": "Allocation agencies that report to this registration authority.\n\nFor standards with distributed allocation (like ISIL),\nthis lists all national/domain agencies.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "api_url": { - "description": "URL to the API or data service (if available).\n\nExamples:\n- VIAF: https://viaf.org/viaf/search\n- Wikidata: https://www.wikidata.org/w/api.php\n- ISNI: https://isni.org/isni/\n", - "type": [ - "string", - "null" - ] - }, - "authority_description": { - "description": "Description of the registration authority and its role", - "type": [ - "string", - "null" - ] - }, - "country": { - "$ref": "#/$defs/Country", - "description": "Country where the registration authority is based (ISO 3166-1 alpha-2).\n\nExamples:\n- \"DK\" (Danish Agency for Culture and Palaces)\n- \"CH\" (WIPO/ISNI-IA in Geneva)\n- \"US\" (OCLC, Wikimedia Foundation)\n" - }, - "data_license": { - "description": "License for data from this registry.\n\nExamples:\n- VIAF: ODC-BY\n- Wikidata: CC0\n- ISNI: varies\n", - "type": [ - "string", - "null" - ] - }, - "established_year": { - "description": "Year the registration authority was established or took over the registry.\n\nExamples:\n- ISNI-IA: 2010\n- VIAF (OCLC): 2012 (transferred from LOC partnership)\n", - "type": [ - "integer", - "null" - ] - }, - "governance_type": { - "$ref": "#/$defs/RegistrationAuthorityGovernanceEnum", - "description": "Type of governance for the registry.\n\nValues:\n- GOVERNMENT: Government agency (DACP for ISIL)\n- INTERGOVERNMENTAL: UN agency or similar (WIPO for ISNI)\n- NONPROFIT: Non-profit organization (OCLC, Wikimedia)\n- CONSORTIUM: Multi-stakeholder consortium (ROR)\n" - }, - "has_or_had_abbreviation": { - "description": "Common abbreviation.\n\nExamples: \"DACP\", \"ISNI-IA\", \"OCLC\", \"WMF\"\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_url": { - "description": "Official website of the organization (may differ from registry URL).\n", - "type": [ - "string", - "null" - ] - }, - "id": { - "description": "Unique identifier for this registration authority.\n\nRecommended format: lowercase abbreviation.\n\nExamples: \"dacp\", \"isni-ia\", \"oclc\", \"wikimedia\"\n", - "type": "string" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "name": { - "description": "Official full name of the registration authority.\n\nExamples:\n- \"Danish Agency for Culture and Palaces\"\n- \"ISNI International Agency\"\n- \"OCLC\"\n- \"Wikimedia Foundation\"\n", - "type": "string" - }, - "name_local": { - "description": "Name in local language (if different from English name).\n\nExamples:\n- \"Slots- og Kulturstyrelsen\" (Danish)\n- \"Online Computer Library Center\" (full form of OCLC)\n", - "type": [ - "string", - "null" - ] - }, - "predecessor": { - "description": "Previous registration authority (if registry was transferred).\n\nExample: Danish Agency for Library and Media \u2192 Danish Agency for Culture and Palaces\n", - "type": [ - "string", - "null" - ] - }, - "registry_url": { - "description": "URL to the official registry or lookup service.\n\nExamples:\n- ISIL: https://sigel.info/\n- ISNI: https://isni.org/\n- VIAF: https://viaf.org/\n- Wikidata: https://www.wikidata.org/\n", - "type": "string" - }, - "sparql_endpoint": { - "description": "SPARQL endpoint URL (if available for Linked Data).\n\nExamples:\n- Wikidata: https://query.wikidata.org/sparql\n- VIAF: (via OCLC Research)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "standards_maintained": { - "description": "Standards for which this authority maintains the global registry.\n\nMost authorities maintain a single standard, but some handle multiple.\n\nExamples:\n- OCLC: [VIAF, WorldCat, FAST]\n- DACP: [ISIL]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "id", - "name", - "country", - "registry_url", - "governance_type" - ], - "title": "RegistrationAuthority", - "type": "object" - }, - "RegistrationAuthorityGovernanceEnum": { - "description": "Type of governance for a registration authority", - "enum": [ - "GOVERNMENT", - "INTERGOVERNMENTAL", - "NONPROFIT", - "CONSORTIUM", - "COMMERCIAL" - ], - "title": "RegistrationAuthorityGovernanceEnum", - "type": "string" - }, - "RegistrationNumber": { - "additionalProperties": false, - "description": "Registration number.", - "properties": { - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "RegistrationNumber", - "type": "object" - }, - "RegistrationRequired": { - "additionalProperties": false, - "description": "Requires researcher registration/card to access materials.", - "title": "RegistrationRequired", - "type": "object" - }, - "RegistrationSystem": { - "additionalProperties": false, - "description": "Registration System for tracking object movement, conditions,\nand custody within a museum or archive.\n\nExamples: TMS Registration module, CollectionSpace", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "const": "Registration System", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "RegistrationSystem", - "type": "object" - }, - "RelatedType": { - "additionalProperties": false, - "description": "A reference to a related class in the heritage ontology.\nUsed for documenting relationships between types.", - "properties": { - "related_type_name": { - "description": "Name of the related class", - "type": "string" - }, - "related_type_note": { - "description": "Explanation of how this type relates", - "type": [ - "string", - "null" - ] - }, - "related_type_relationship": { - "description": "Nature of the relationship (e.g., \"broader\", \"narrower\", \"related\", \"contrast\")\n", - "type": [ - "string", - "null" - ] - }, - "related_type_wikidata": { - "description": "Wikidata Q-number for the related type", - "pattern": "^Q[0-9]+$", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "related_type_name" - ], - "title": "RelatedType", - "type": "object" - }, - "RelationalDatabase": { - "additionalProperties": false, - "description": "SQL-based relational database.\nExamples: PostgreSQL, MySQL, MariaDB, Oracle, SQL Server", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "RelationalDatabase", - "type": "object" - }, - "RelationshipTypeEnum": { - "description": "Types of relationships between finding aids.", - "enum": [ - "cross_reference", - "parent", - "child", - "see_also", - "predecessor", - "successor" - ], - "title": "RelationshipTypeEnum", - "type": "string" - }, - "RelicsCollectionContent": { - "additionalProperties": false, - "description": "Relics and devotional objects: Saints' relics, holy objects,\npilgrimage souvenirs, votive offerings.", - "properties": { - "has_or_had_label": {}, - "type_definition": { - "description": "Definition of this collection content type", - "type": [ - "string", - "null" - ] - } - }, - "title": "RelicsCollectionContent", - "type": "object" - }, - "ReligiousArchive": { - "additionalProperties": false, - "description": "Accumulation of records of a religious denomination or society. Religious archives preserve records documenting the activities, governance, and history of religious organizations. This broad category encompasses archives of various faith traditions including churches, denominations, religious orders, and faith-based organizations.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ReligiousArchive", - "type": "object" - }, - "ReligiousArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by ReligiousArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ReligiousArchiveRecordSetType", - "type": "object" - }, - "ReligiousContent": { - "additionalProperties": false, - "description": "Religious texts, scriptures, liturgical works.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "RELIGIOUS", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Religious Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "ReligiousContent", - "type": "object" - }, - "ReligiousHistoryTopic": { - "additionalProperties": false, - "description": "Topic related to religious history and institutions.\n\nIncludes: church history, monasteries, religious orders,\necclesiastical administration.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/TopicType" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/TopicType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ReligiousHistoryTopic", - "type": "object" - }, - "ReligiousInstitutionFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Religious organization records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ReligiousArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ReligiousArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ReligiousInstitutionFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ReligiousInstitutionFonds", - "type": "object" - }, - "ReproductionCondition": { - "additionalProperties": false, - "description": "Condition or restriction on reproducing materials.\nIncludes permissions needed, fees, quality requirements,\nor attribution requirements for reproductions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ReproductionCondition", - "type": "object" - }, - "ReproductionService": { - "additionalProperties": false, - "description": "Reproduction and digitization services.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ReproductionService", - "type": "object" - }, - "ReproductionSupplier": { - "additionalProperties": false, - "description": "Supplier providing museum-quality reproductions of artifacts and artworks.\nExamples: Museum Reproductions Ltd, Alva Studios", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ReproductionSupplier", - "type": "object" - }, - "ReptileHouseSubtype": { - "additionalProperties": false, - "description": "Herpetological collection facility.\nReptiles and amphibians in controlled environments.\n\n**Wikidata**: Q1345229", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ReptileHouseSubtype", - "type": "object" - }, - "RequirementStatus": { - "additionalProperties": false, - "description": "Represents the status of a requirement (e.g., booking, registration, appointment).\n\n**DEFINITION**:\n\nRequirementStatus captures structured requirement information including:\n- Whether the requirement is active (is_or_was_required boolean)\n- The type(s) of requirement (via has_or_had_type \u2192 RequirementType)\n- Status description (free text details)\n- Temporal validity (when this requirement was in effect)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **PROV-O** | `prov:Entity` | Primary - entity with provenance |\n| **Schema.org** | `schema:isRequired` | Boolean requirement |\n| **SKOS** | `skos:Concept` | For type classification |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nEducationCenter / ReadingRoom / etc.\n \u2502\n \u2514\u2500\u2500 has_or_had_status \u2192 RequirementStatus (THIS CLASS)\n \u2502\n \u251c\u2500\u2500 is_or_was_required (boolean - is booking required?)\n \u251c\u2500\u2500 has_or_had_type \u2192 RequirementType (what kind of requirement)\n \u251c\u2500\u2500 has_or_had_description (free text details)\n \u2514\u2500\u2500 begin_of_the_begin / end_of_the_end (validity period)\n```\n\n**SLOT MIGRATION** (2026-01-15):\n\nThis class replaces domain-specific boolean slots:\n- booking_required (boolean) \u2192 has_or_had_status: RequirementStatus\n- appointment_required (boolean) \u2192 has_or_had_status: RequirementStatus\n- registration_required (boolean) \u2192 has_or_had_status: RequirementStatus\n\n**SIMPLE VS STRUCTURED USAGE**:\n\nFor simple boolean requirement (just true/false):\n```yaml\nis_or_was_required: true\n```\n\nFor structured requirement with details:\n```yaml\nhas_or_had_status:\n is_or_was_required: true\n has_or_had_type:\n - has_or_had_code: ADVANCE_BOOKING\n has_or_had_description: \"Advance booking required for groups of 10+\"\n```", - "properties": { - "begin_of_the_begin": { - "anyOf": [ - { - "$ref": "#/$defs/Timestamp" - }, - { - "type": "string" - }, - { - "format": "date-time", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Earliest possible start time of temporal extent (CIDOC-CRM E52_Time-Span).\n\n**CIDOC-CRM Pattern**:\nP82a defines the earliest possible time the time span could have started.\nUsed with P81a (end_of_the_begin) to express uncertainty about start time.\n\n**Example**: \"Founded between 1800-1805\"\n- begin_of_the_begin: 1800-01-01 (earliest possible founding)\n- end_of_the_begin: 1805-12-31 (latest possible founding)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `time:hasBeginning` (OWL Time ObjectProperty)\n- **Close**: `crm:P82a_begin_of_the_begin` - CIDOC-CRM fuzzy bound (note: expects literal)\n- **Related**: `prov:startedAtTime` - PROV-O activity start\n- **Narrow**: `schema:startDate` - Schema.org start date\n\n**Range**: Any - supports both Timestamp class and string datetime values\n" - }, - "end_of_the_end": { - "anyOf": [ - { - "$ref": "#/$defs/Timestamp" - }, - { - "type": "string" - }, - { - "format": "date-time", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Latest possible end time of temporal extent (CIDOC-CRM E52_Time-Span).\n\n**CIDOC-CRM Pattern**:\nP82b defines the latest possible time the time span could have ended.\nUsed with P81b (begin_of_the_end) to express uncertainty about end time.\n\n**Example**: \"Closed between 1950-1955\"\n- begin_of_the_end: 1950-01-01 (earliest possible closure)\n- end_of_the_end: 1955-12-31 (latest possible closure)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `time:hasEnd` (OWL Time ObjectProperty)\n- **Close**: `crm:P82b_end_of_the_end` - CIDOC-CRM fuzzy bound (note: expects literal)\n- **Related**: `prov:endedAtTime` - PROV-O activity end\n- **Narrow**: `schema:endDate` - Schema.org end date\n\n**Range**: Any - supports both Timestamp class and string datetime values\n" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/requirement-status/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_required": { - "description": "Whether something is or was required (boolean).\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **Schema.org** | `schema:isRequired` | Maps to - boolean requirement |\n\nNote: slot_uri changed from schema:isRequired to hc:isOrWasRequired\nto resolve OWL ambiguous type warning. schema:isRequired may be\nambiguous when used in different contexts.\n\n**USAGE NOTE**:\n\nThis is a simple boolean slot. For structured requirement information\nwith types and temporal validity, use has_or_had_status with RequirementStatus.\n\n**MIGRATION NOTE**:\n\nReplaces domain-specific boolean slots like:\n- booking_required \u2192 is_or_was_required\n- appointment_required \u2192 is_or_was_required\n- registration_required \u2192 is_or_was_required\n", - "type": "boolean" - } - }, - "required": [ - "has_or_had_identifier", - "is_or_was_required" - ], - "title": "RequirementStatus", - "type": "object" - }, - "RequirementType": { - "additionalProperties": false, - "description": "Classification type for funding call requirements in heritage contexts.\n\n**DEFINITION**:\n\nRequirementType provides a SKOS-based classification hierarchy for categorizing\ndifferent types of requirements that funding calls may impose on applicants.\nThis includes eligibility criteria, financial conditions, partnership requirements,\nthematic focus areas, technical deliverables, and administrative requirements.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **SKOS** | `skos:Concept` | Primary - controlled vocabulary concept |\n| **Schema.org** | `schema:eligibleRegion` | Geographic eligibility |\n| **W3C Org** | `org:Organization` | Organizational eligibility |\n| **Dublin Core** | `dcterms:subject` | Thematic requirements |\n\n**REQUIREMENT CATEGORIES**:\n\n| Category | Prefix | Description |\n|----------|--------|-------------|\n| **Eligibility** | `ELIGIBILITY_` | Who can apply |\n| **Financial** | `FINANCIAL_` | Budget and funding constraints |\n| **Partnership** | `PARTNERSHIP_` | Consortium requirements |\n| **Thematic** | `THEMATIC_` | Topic focus areas |\n| **Technical** | `TECHNICAL_` | Output requirements |\n| **Administrative** | `ADMINISTRATIVE_` | Registration/documentation |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nFundingRequirement\n \u2502\n \u2514\u2500\u2500 has_or_had_type \u2192 RequirementType (THIS CLASS)\n \u251c\u2500\u2500 has_or_had_hypernym \u2192 RequirementType (parent category)\n \u2514\u2500\u2500 has_or_had_description (requirement details)\n```\n\n**ENUM-TO-CLASS MIGRATION** (2026-01-13):\n\nThis class hierarchy replaces FundingRequirementTypeEnum.\nOld pattern: `requirement_type: ELIGIBILITY_GEOGRAPHIC` (enum value)\nNew pattern: `has_or_had_type: RequirementType` (object reference)\nArchived enum: `schemas/20251121/linkml/archive/enums/FundingRequirementTypeEnum.yaml`", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/RequirementType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/requirement-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label" - ], - "title": "RequirementType", - "type": "object" - }, - "ResearchCenter": { - "additionalProperties": false, - "description": "Research center or research facility operated by or affiliated with a heritage custodian.\n\n**DEFINITION**:\n\nA ResearchCenter is a dedicated facility where scholarly research, academic\nstudy, and knowledge production take place in connection with a heritage\ncustodian's mission. Distinguished from ConservationLab (which focuses on\nobject treatment) by its emphasis on academic research and publication.\n\n**SCHEMA.ORG ALIGNMENT**:\n\n`schema:ResearchOrganization` - \"A Research Organization, such as a research\ninstitute or university research group.\"\n\n**WIKIDATA TYPE LINKAGE**:\n\nThis class links to `ResearchCenterTypeEnum` which provides 45 Wikidata-sourced\nresearch organization types including:\n- Q31855 (research institute)\n- Q1542449 (research center)\n- Q7315155 (research department)\n- Q62078547 (digital humanities center)\n- Q16917 (hospital - for medical research)\n\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Primary Focus | Output |\n|------|---------------|--------|\n| **ResearchCenter** | Academic research | Publications, knowledge |\n| ConservationLab | Object treatment | Preserved objects |\n| EducationCenter | Teaching/learning | Trained people |\n| BranchOffice | Service delivery | Public services |\n\n**TYPICAL CHARACTERISTICS**:\n\n- **Academic focus**: Scholarly research and publication\n- **Specialized staff**: Researchers, scholars, curators\n- **Library/archive access**: Research collections\n- **Publication output**: Books, articles, reports\n- **External collaboration**: University partnerships, grants\n\n**USE CASES**:\n\n1. **Museum Research Institute**:\n ```yaml\n ResearchCenter:\n research_center_id: \"https://nde.nl/ontology/hc/aux/rijksmuseum-research\"\n research_center_name: \"Rijksmuseum Research Department\"\n research_center_type: RESEARCH_DEPARTMENT\n research_focus_area:\n - \"Dutch Golden Age painting\"\n - \"Technical art history\"\n - \"Provenance research\"\n ```\n\n2. **Digital Humanities Lab**:\n ```yaml\n ResearchCenter:\n research_center_name: \"KB Digital Humanities Lab\"\n research_center_type: DIGITAL_HUMANITIES_CENTER\n research_focus_area:\n - \"Text mining\"\n - \"Linked open data\"\n - \"Digital preservation\"\n ```\n\n3. **Archive Research Center**:\n ```yaml\n ResearchCenter:\n research_center_name: \"NIOD Research Center\"\n research_center_type: RESEARCH_INSTITUTE\n research_focus_area:\n - \"World War II history\"\n - \"Holocaust studies\"\n - \"Memory and commemoration\"\n ```", - "properties": { - "accepts_or_accepted": { - "description": "Generic slot for things an institution accepts or has accepted.\n**TEMPORAL SEMANTICS** (RiC-O style): The \"accepts_or_accepted\" naming indicates policies can change: - Payment methods may be added/removed - External work acceptance policies change - Visiting scholar programs may start/end\n**USE CASES**: - Payment methods accepted (credit cards, cash, digital) - External work (conservation, digitization contracts) - Visiting scholars (research programs)\n**RANGE**: This is a generic slot - use slot_usage in classes to constrain the range to specific types (ExternalWork, PaymentMethod, VisitingScholar).", - "items": { - "$ref": "#/$defs/VisitingScholar" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_facility": { - "description": "A facility or amenity associated with an entity.\n\n**USAGE**:\nUsed for:\n- Visitor facilities (caf\u00e9, shop, parking)\n- Research facilities (reading room, lab)\n- Accessibility facilities (wheelchair access)\n", - "items": { - "type": "boolean" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "major_research_project": { - "description": "Major ongoing or completed research projects.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "publishes_or_published": { - "description": "The work or document published by an entity.", - "items": { - "type": "boolean" - }, - "type": [ - "array", - "null" - ] - }, - "research_center_type": { - "$ref": "#/$defs/ResearchCenterTypeEnum", - "description": "Type classification of this research center using Wikidata-sourced enum.\n\nLinks to ResearchCenterTypeEnum which includes 45 types such as:\n- RESEARCH_INSTITUTE (Q31855)\n- RESEARCH_CENTER (Q1542449)\n- RESEARCH_DEPARTMENT (Q7315155)\n- DIGITAL_HUMANITIES_CENTER (Q62078547)\n- DOCUMENTATION_CENTER (Q3359432)\n\nSee ResearchCenterTypeEnum for full list with Wikidata mappings.\n" - }, - "research_focus_area": { - "description": "Primary research focus areas or disciplines of this center.\n\nSchema.org: knowsAbout for areas of expertise.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label", - "research_center_type" - ], - "title": "ResearchCenter", - "type": "object" - }, - "ResearchCenterTypeEnum": { - "description": "", - "enum": [ - "ACADEMIC_DEPARTMENT", - "ACADEMISCHE_WERKPLAATS", - "ARCHAEOLOGICAL_STOREHOUSE", - "BIOCENTER", - "CENTRE_DESTUDIS", - "CENTRE_TECHNIQUE_INDUSTRIEL", - "CHINESE_MAP_LIBRARY", - "COMPUTER_LAB", - "CONSERVATION_LABORATORY", - "DENTAL_LABORATORY", - "DFG_GRADUIERTENSCHULE", - "ECONOMIC_RESEARCH_INSTITUTE", - "EXPERIMENTAL_FOREST", - "FILM_DEPARTMENT", - "GEOSPATIAL_DATA_COLLECTION", - "GEOSPATIAL_DATA_REPOSITORY", - "GEOSPATIAL_REPOSITORY", - "HERBARIUM", - "INSTITUTE_OF_THE_RUSSIAN_ACADEMY_OF_SCIENCES", - "JOSEPH_QUESNOT", - "LABORATORY", - "MAP_CENTER", - "MARINE_OBSERVATORIUM", - "NCI_DESIGNATED_CANCER_CENTER", - "OCEANOGRAPHIC_LABORATORY", - "PALEONTOLOGICAL_SITE", - "PUBLIC_HEALTH_LABORATORY", - "REMOTE_LABORATORY", - "RESEARCH_CENTER", - "RESEARCH_INSTITUTE", - "SCHOOL_LABORATORY", - "SCIENTIFIC_ARCHIVE", - "SCIENTIFIC_FACILITY", - "SCIENTIFIC_ORGANIZATION", - "SCIENTIFIC_TECHNIC_AND_INDUSTRIAL_CULTURE_CENTER", - "STUDIEDIENST", - "TROPENINSTITUT", - "UNIVERSITY_LABORATORY", - "WILDERNESS_STUDY_AREA", - "WSF_LIBRARY", - "\u0410\u041a\u0410\u0414\u0415\u041c\u0418\u0418_\u041d\u0410\u0423\u041a_\u0412_\u0420\u041e\u0421\u0421\u0418\u0419\u0421\u041a\u041e\u0419_\u0424\u0415\u0414\u0415\u0420\u0410\u0426\u0418\u0418", - "\u05de\u05db\u05d5\u05df_\u05de\u05d7\u05e7\u05e8_\u05ea\u05d5\u05e8\u05e0\u05d9", - "\u516c\u8a2d\u8a66\u9a13\u7814\u7a76\u6a5f\u95a2", - "\u6b6f\u79d1\u885b\u751f\u5b66\u79d1", - "\u9644\u5c5e\u6a5f\u95a2" - ], - "title": "ResearchCenterTypeEnum", - "type": "string" - }, - "ResearchCommunity": { - "additionalProperties": false, - "description": "Academic and research users.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ResearchCommunity", - "type": "object" - }, - "ResearchDataPortal": { - "additionalProperties": false, - "description": "Portal aggregating research datasets related to cultural heritage, including archaeological data, conservation studies, and heritage science. **PURPOSE**: Enable FAIR data sharing and citation for heritage research, supporting reproducibility and data-driven scholarship. **CHARACTERISTICS**: - Research dataset hosting and citation - DOI assignment and persistent identifiers - FAIR data principles compliance - Discipline-specific metadata - Data management planning support **EXAMPLES**: - DANS EASY (Netherlands) - Zenodo archaeology collections - Figshare - Dryad - 4TU.ResearchData", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "ACCESS_MODEL", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "research_data", - "heritage_science", - "archaeology", - "conservation" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "ResearchDataPortal", - "type": "object" - }, - "ResearchDomain": { - "additionalProperties": false, - "description": "Academic research domain", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ResearchDomain", - "type": "object" - }, - "ResearchFocusedClassification": { - "additionalProperties": false, - "description": "Institution where scientific research is the primary mission.\nMay have limited public access.\n\n**Characteristics**:\n- Taxonomic research\n- Behavioral studies\n- Ecological research\n- Academic affiliations", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ResearchFocusedClassification", - "type": "object" - }, - "ResearchFunction": { - "additionalProperties": false, - "description": "Research function: curatorial research, collection documentation, scholarly publications, academic partnerships.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "ResearchFunction", - "type": "object" - }, - "ResearchInfrastructurePortal": { - "additionalProperties": false, - "description": "Pan-European or international research infrastructure providing tools, services, and data access for digital humanities and heritage research. **PURPOSE**: Support large-scale collaborative research through shared infrastructure, tools, and data services across national boundaries. **CHARACTERISTICS**: - Pan-European or international scope - Research tool and service provision - ERIC (European Research Infrastructure Consortium) or similar status - Cross-national collaboration - Capacity building and training **EXAMPLES**: - DARIAH-EU (digital arts and humanities) - ARIADNE (archaeology) - CLARIN (language resources) - E-RIHS (heritage science) - OPERAS (open scholarly communication)", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "portal_type_category": { - "const": "RESEARCH_INFRASTRUCTURE", - "description": "High-level category for grouping related portal types.\nValues: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC,\nTECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE\n", - "type": [ - "string", - "null" - ] - }, - "portal_type_description": { - "description": "Portal Type Description for heritage custodian entities.", - "type": [ - "string", - "null" - ] - }, - "portal_type_id": { - "description": "Portal Type Id for heritage custodian entities.", - "type": "string" - }, - "portal_type_name": { - "description": "Canonical name for this portal type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "portal_typical_domain": { - "description": "Typical domain patterns for this portal type.", - "items": { - "enum": [ - "research_infrastructure", - "digital_humanities", - "heritage_science" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "portal_type_id", - "portal_type_name" - ], - "title": "ResearchInfrastructurePortal", - "type": "object" - }, - "ResearchMotivation": { - "additionalProperties": false, - "description": "Motivation for supporting research and analysis.\n\n**DEFINITION**:\n\nResearchMotivation describes annotations created specifically to\nsupport scholarly research and analysis of heritage content.\n\n**HERITAGE-SPECIFIC MOTIVATION**:\n\nThis extends W3C Web Annotation with research needs.\nFocus is on enabling scholarly use of heritage collections.\n\n**USE CASES**:\n\n| Use Case | Example |\n|----------|---------|\n| Citation annotation | Scholarly citations |\n| Research notes | Analytical observations |\n| Hypothesis marking | Research questions |\n| Data annotation | Dataset documentation |\n| Computational analysis | ML/AI analysis results |\n\n**HERITAGE CONTEXT**:\n\nHeritage institutions support research:\n- Archive research services\n- Museum scholarly access\n- Library reference services\n- Digital humanities projects\n\n**CRM ALIGNMENT**:\n\nSupports CIDOC-CRM research patterns:\n- crm:E7_Activity (research activities)\n- crm:E13_Attribute_Assignment (scholarly assertions)\n- crm:E65_Creation (research outputs)", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "motivation_type_description": { - "description": "Detailed description of an annotation motivation type including purpose, characteristics, and typical use cases.", - "type": [ - "string", - "null" - ] - }, - "motivation_type_id": { - "description": "Unique identifier for an annotation motivation type.", - "type": "string" - }, - "motivation_type_name": { - "const": "research", - "description": "Canonical name for this motivation type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "motivation_type_id", - "motivation_type_name" - ], - "title": "ResearchMotivation", - "type": "object" - }, - "ResearchOrganizationType": { - "additionalProperties": false, - "description": "Specialized custodian type for research organizations - institutions whose\nprimary purpose is to conduct scientific, scholarly, or cultural research,\noften maintaining collections or data repositories to support their research activities.\n\n**Wikidata Base Concept**: Q31855 (research institute)\n\n**Scope**:\nResearch organizations are distinguished by their focus on:\n- Original research and knowledge production\n- Scientific or scholarly investigation\n- Data collection and analysis\n- Documentation centers and research archives\n- Supporting materials and specimens for research\n\n**Key Research Organization Subtypes** (44+ extracted from Wikidata):\n\n**By Discipline**:\n- Economic research institutes (Q1478378) - Economic analysis and policy\n- Biocenters (Q11150110) - Biological and life sciences research\n- Oceanographic laboratories (Q118391195) - Marine science research\n- Archaeological storehouses (Q99444262) - Artifact storage and research\n- Paleontological sites (Q9096832) - Fossil research locations\n\n**By Research Infrastructure**:\n- Laboratories (Q483242) - Controlled scientific research facilities\n- Conservation laboratories (Q117052196) - Cultural heritage restoration research\n- University laboratories (Q120335186) - Academic research labs\n- Computer labs (Q4130071) - Computing research facilities\n- School laboratories (Q93400123) - Educational research facilities\n- Remote laboratories (Q7312158) - Distributed research infrastructure\n- Public health laboratories (Q7257748) - UK government health research labs\n- Dental laboratories (Q936495) - Dental research and services\n\n**By Collection Type**:\n- Herbaria (Q181916) - Dried plant scientific collections\n- Scientific archives (Q27032095) - Research documentation archives\n- Geospatial repositories (Q124368261) - Geographic data collections\n- Geospatial data repositories (Q124368518) - Spatial data archives\n- Geospatial data collections (Q124418301) - Geographic information systems\n- Map centers (Q124416435) - Cartographic research centers in libraries\n\n**By Institutional Setting**:\n- Research centers (Q7315155) - Dedicated research facilities\n- Academic departments (Q2467461) - University research divisions\n- Film departments (Q1414780) - Cinematic research departments\n- Scientific organizations (Q16519632) - Research-focused organizations\n- Studiedienst (Q3005706) - Belgian/Dutch research services\n- Academische werkplaats (Q120702779) - Dutch academic workshops (practice-research collaboration)\n\n**Specialized Research Facilities**:\n- Scientific facilities (Q119459808) - Equipment/services for science\n- Experimental forests (Q5421159) - Forest research sites\n- Wilderness study areas (Q8001184) - Protected research areas (US)\n- NCI-designated Cancer Centers (Q6953133) - US cancer research institutions\n- Institutes of Russian Academy of Sciences (Q4201890) - Russian research network\n\n**Hybrid Institutions**:\n- WSF libraries (Q1994819) - Dutch public libraries with research function\n- Scientific, technical, and industrial culture centers (Q2945276) - French popular science venues\n- Chinese map libraries (Q124416055) - Map collections with research function\n\n**RDF Serialization Example**:\n```turtle\n:Custodian_RCE_ResearchDepartment\n org:classification :ResearchOrgType_ConservationLab_Q117052196 .\n\n:ResearchOrgType_ConservationLab_Q117052196\n a glamtype:ResearchOrganizationType, crm:E55_Type, skos:Concept ;\n skos:prefLabel \"Conservation Laboratory\"@en, \"restauratieatelier\"@nl ;\n skos:broader :ResearchOrgType_ResearchInstitute_Q31855 ;\n schema:additionalType <http://www.wikidata.org/entity/Q117052196> ;\n glamtype:glamorcubesfixphdnt_code \"RESEARCH_CENTER\" ;\n glamtype:research_focus [\"conservation science\", \"materials analysis\", \"restoration techniques\"] ;\n glamtype:publication_output true ;\n glamtype:data_repository \"https://data.cultureelerfgoed.nl\" ;\n glamtype:research_infrastructure [\"X-ray fluorescence\", \"microscopy lab\", \"climate chamber\"] .\n```\n\n**Domain-Specific Properties**:\nThis class adds research-specific metadata beyond base CustodianType:\n- `research_focus` - Primary research domains (conservation, archaeology, etc.)\n- `publication_output` - Whether organization publishes research findings\n- `data_repository` - URL to research data repository (if available)\n- `research_infrastructure` - Major equipment or facilities\n- `academic_affiliation` - Link to parent university or research network\n- `research_projects` - Active or completed research initiatives\n\n**Integration with VIVO Ontology**:\nVIVO (Vitae Research Ontology) models academic research organizations:\n- vivo:ResearchOrganization - Research entity\n- vivo:Laboratory - Lab facilities\n- vivo:ResearchProject - Research initiatives\n- vivo:Grant - Research funding\n\n**Integration with CERIF**:\nCommon European Research Information Format for research data:\n- cfResOrg - Research organization entity\n- cfProj - Research projects\n- cfFacil - Research facilities\n- cfEquip - Research equipment\n\n**Data Population**:\nResearch organization subtypes extracted from 44 Wikidata entities with type='R'\nin `data/wikidata/GLAMORCUBEPSXHFN/hyponyms_curated_full.yaml`.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "data_repository": { - "description": "URL to the organization's research data repository, if publicly accessible.\nExamples: institutional repositories, data archives, open science platforms.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "research_center_subtype": { - "description": "Specific subtype from the ResearchCenterTypeEnum taxonomy (45 research center types).\nEach value links to a Wikidata entity describing a specific type.\n", - "items": { - "$ref": "#/$defs/ResearchCenterTypeEnum" - }, - "type": [ - "array", - "null" - ] - }, - "research_focus": { - "description": "The primary research domains or disciplines pursued by the organization.\nExamples: conservation science, archaeology, provenance research, materials analysis,\nbotanical taxonomy, biodiversity, marine biology, paleontology, economic policy,\nrestoration techniques, preventive conservation.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "research_infrastructure": { - "description": "Major research equipment, facilities, or infrastructure available.\nExamples: X-ray equipment, microscopes, climate chambers, DNA sequencers,\nspectrometers, computing clusters, field stations, experimental plots.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "research_project": { - "description": "Descriptions of active or completed research projects conducted by the organization.\nCan include project titles, grant numbers, or links to project pages.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ResearchOrganizationType", - "type": "object" - }, - "ResearchProjectFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Scientific research project records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ScientificArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ScientificArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ResearchProjectFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ResearchProjectFonds", - "type": "object" - }, - "ResearchService": { - "additionalProperties": false, - "description": "Research support services (reference, consultations).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ResearchService", - "type": "object" - }, - "Researcher": { - "additionalProperties": false, - "description": "Researcher conducting scholarly research on collections.\n\n**Official Title vs De Facto Work**:\nOften contributes to exhibitions, publications, educational programs,\nand public engagement beyond formal research duties.\n\n**Common Variants**:\n- Research Fellow\n- Postdoctoral Researcher\n- Collections Researcher\n- Research Specialist\n- Research Associate\n\n**Typical Domains**: Museums, archives, libraries (especially those with research mandates)\n\n**Typical Responsibilities**:\n- Original research using collections\n- Publications and presentations\n- Research support for exhibitions\n- Cataloging and documentation research", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Researcher", - "type": "object" - }, - "ResearcherInResidence": { - "additionalProperties": false, - "description": "Researcher in residence - visiting scholar with temporary affiliation.\n\n**Official Title vs De Facto Work**:\nMay engage in teaching, public lectures, mentoring, and institutional\nprojects beyond their primary research.\n\n**Common Variants**:\n- Visiting Researcher\n- Research Fellow in Residence\n- Visiting Scholar\n- Guest Researcher\n\n**Typical Domains**: Museums, archives, libraries with research programs\n\n**Typical Responsibilities**:\n- Independent research using collections\n- Public presentations of research\n- Collaboration with institutional staff\n- Contribution to institutional publications", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "ResearcherInResidence", - "type": "object" - }, - "Resolution": { - "additionalProperties": false, - "description": "Resolution or quality specifications for media content. Captures both quality labels (HD, 4K) and pixel dimensions.", - "properties": { - "has_or_had_height": { - "description": "Height of a bounding box or object. MIGRATED from height (Rule 53).", - "type": [ - "integer", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_width": { - "description": "Width of a bounding box or object. MIGRATED from width (Rule 53).", - "type": [ - "integer", - "null" - ] - } - }, - "title": "Resolution", - "type": "object" - }, - "Responsibility": { - "additionalProperties": false, - "description": "A responsibility or duty assigned to a person or position within a heritage organization.\n\nResponsibilities define the scope of work, authority, and accountability\nfor specific functions such as collection management, conservation,\npublic programming, or administration. Linked to positions and people\nthrough organizational role assignments.\n\nMaps to org:Role from the W3C Organization Ontology.", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Responsibility", - "type": "object" - }, - "Restaurant": { - "additionalProperties": false, - "description": "Single establishment which prepares and serves food, located in building.\nIncludes historic restaurants, heritage eateries, and establishments\npreserving traditional culinary practices.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "Restaurant", - "type": "object" - }, - "RestaurantCatering": { - "additionalProperties": false, - "description": "Full-service restaurant with table service, complete meals, and formal dining.\nMay range from casual dining to fine dining establishments.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "const": "Restaurant", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "RestaurantCatering", - "type": "object" - }, - "RestaurantChain": { - "additionalProperties": false, - "description": "Set of related restaurants in many different locations under shared\ncorporate ownership or franchising agreements.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "RestaurantChain", - "type": "object" - }, - "Restriction": { - "additionalProperties": false, - "description": "An access or use restriction on a resource.\n\n**USAGE**:\nUsed for:\n- Embargo periods (years restricted) with temporal extent\n- Access restrictions\n- Use limitations\n\n**TEMPORAL MODELING**:\nThe temporal_extent slot uses TimeSpan (CIDOC-CRM E52) to model\nwhen the restriction applies, with fuzzy boundary support:\n- begin_of_the_begin: Earliest start of restriction\n- end_of_the_end: Latest end of restriction period", - "properties": { - "restriction_reason": { - "type": [ - "string", - "null" - ] - }, - "restriction_type": { - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "Restriction", - "type": "object" - }, - "RetailFunction": { - "additionalProperties": false, - "description": "Retail function: museum shop operations, merchandise, online sales, product development.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "RetailFunction", - "type": "object" - }, - "RetrievalAgent": { - "additionalProperties": false, - "description": "Software or agent that performed data retrieval/extraction.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "RetrievalAgent", - "type": "object" - }, - "RetrievalAgentEnum": { - "description": "Tools/agents used to retrieve and extract person data.\nMust match the tool that was actually used for extraction.", - "enum": [ - "firecrawl", - "playwright", - "exa_crawling_exa", - "exa_linkedin_search_exa", - "manual" - ], - "title": "RetrievalAgentEnum", - "type": "string" - }, - "RetrievalEvent": { - "additionalProperties": false, - "description": "Event representing the retrieval of data.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "RetrievalEvent", - "type": "object" - }, - "RetrievalMethod": { - "additionalProperties": false, - "description": "Method or plan used for data retrieval.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "RetrievalMethod", - "type": "object" - }, - "ReturnEvent": { - "additionalProperties": false, - "description": "An event documenting the return of loaned item(s) to the lending institution.\n\nMaps to CIDOC-CRM E10 Transfer of Custody, specifically the return leg\nof a loan transaction.\n\n**PURPOSE**:\nCaptures structured information about item returns including:\n- Return date\n- Condition assessment on return (was condition_on_return)\n- Any damage or issues discovered\n- Documentation and reports\n- Receiving officer/agent\n\n**RELATIONSHIP TO LOAN**:\n```\nLoan\n \u251c\u2500\u2500 loaned_items \u2192 Item[]\n \u251c\u2500\u2500 loan_date \u2192 date (outgoing)\n \u2514\u2500\u2500 is_or_was_returned \u2192 ReturnEvent[]\n \u251c\u2500\u2500 return_date \u2192 date (incoming)\n \u251c\u2500\u2500 item_returned \u2192 Item[]\n \u2514\u2500\u2500 has_or_had_condition \u2192 Condition[]\n```\n\n**Migration (2026-01-22)**:\n- `condition_on_return` \u2192 `is_or_was_returned` + `ReturnEvent` + `has_or_had_condition` + `Condition`\n- Per slot_fixes.yaml (Rule 53)", - "properties": { - "damage_description": { - "description": "Description of any damage discovered", - "type": [ - "string", - "null" - ] - }, - "damage_noted": { - "description": "Whether any damage was noted on return", - "type": [ - "boolean", - "null" - ] - }, - "has_or_had_condition": { - "description": "A condition or state associated with an entity.\n\n**USAGE**:\nUsed for:\n- Physical condition of objects\n- Service conditions/requirements\n- Access conditions\n\n**Migration (2026-01-18)**:\nThis slot now replaces `condition_description` per slot_fixes.yaml.\nUse with Condition class which has `has_or_had_description` for textual descriptions.\n", - "items": { - "$ref": "#/$defs/Condition" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "item_returned": { - "description": "The item(s) being returned in a return event.\n\nLinks a ReturnEvent to the specific Item that was returned.\nMay be multivalued for loan returns involving multiple objects.\n\n**RELATIONSHIP TO LOAN**:\n- Loan.loaned_items \u2192 Items loaned out\n- ReturnEvent.item_returned \u2192 Items returned\n- Should match loaned_items for complete returns\n\n**Migration (2026-01-22)**:\nPart of condition_on_return \u2192 ReturnEvent migration per slot_fixes.yaml (Rule 53)\n", - "items": { - "$ref": "#/$defs/Item" - }, - "type": [ - "array", - "null" - ] - }, - "received_by": { - "description": "Person or department who received the returned item(s)", - "type": [ - "string", - "null" - ] - }, - "return_date": { - "description": "Date when the item(s) were returned", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "return_report_url": { - "description": "URL to the return condition report", - "type": [ - "string", - "null" - ] - } - }, - "title": "ReturnEvent", - "type": "object" - }, - "Revenue": { - "additionalProperties": false, - "description": "Revenue.", - "title": "Revenue", - "type": "object" - }, - "ReviewStatus": { - "additionalProperties": false, - "description": "Financial statement has been reviewed but not fully audited.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ReviewStatus", - "type": "object" - }, - "RiskAssessmentCategory": { - "additionalProperties": false, - "description": "Category for risk assessment.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "RiskAssessmentCategory", - "type": "object" - }, - "RoadRailroad": { - "additionalProperties": false, - "description": "Road, railroad, etc. (GeoNames class R)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "RoadRailroad", - "type": "object" - }, - "Roadmap": { - "additionalProperties": false, - "description": "A plan outlining future goals or steps.", - "properties": { - "contains_or_contained": { - "description": "Generic containment relationship (temporal). Indicates that this entity contains or has contained the referenced entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "Roadmap", - "type": "object" - }, - "RoleCategoryEnum": { - "description": "High-level categories for staff role classification", - "enum": [ - "CURATORIAL", - "CONSERVATION", - "ARCHIVAL", - "LIBRARY", - "DIGITAL", - "EDUCATION", - "GOVERNANCE", - "LEADERSHIP", - "RESEARCH", - "TECHNICAL", - "SUPPORT", - "CREATIVE", - "EXTERNAL" - ], - "title": "RoleCategoryEnum", - "type": "string" - }, - "RoomUnit": { - "additionalProperties": false, - "description": "A unit of measurement for counting rooms or spaces in a facility.\n\n**RULE 53 MIGRATION**:\nReplaces simple integer count slots with typed unit specification:\n- `classroom_count: 4` \u2192 `has_or_had_quantity: 4` + `has_or_had_unit: {unit_type: CLASSROOM}`\n\n**ROOM TYPES**:\n- CLASSROOM - Teaching/learning spaces\n- WORKSHOP_SPACE - Hands-on activity areas\n- SEMINAR_ROOM - Discussion/presentation spaces\n- LABORATORY - Scientific/conservation labs\n- STUDIO - Creative/production spaces\n- READING_ROOM - Research/study areas\n- STORAGE_ROOM - Collection storage spaces\n- OFFICE - Administrative spaces\n\n**USAGE PATTERN**:\n```yaml\nhas_or_had_facility:\n - facility_name: \"Education Wing\"\n has_or_had_quantity:\n numeric_value: 4\n has_or_had_unit:\n unit_type: CLASSROOM\n```", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "unit_type": { - "$ref": "#/$defs/RoomUnitTypeEnum", - "description": "The type of room/space being counted.\n" - }, - "unit_uri": { - "description": "Optional URI for the unit in a standard vocabulary (QUDT, OM).", - "type": [ - "string", - "null" - ] - }, - "unit_value": { - "description": "The unit identifier or label (e.g., \"item\", \"species\", \"hectare\").", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "unit_type" - ], - "title": "RoomUnit", - "type": "object" - }, - "RoomUnitTypeEnum": { - "description": "Standard room types for counting heritage facility spaces.\nUsed with RoomUnit class in has_or_had_unit slot for facility counting.", - "enum": [ - "CLASSROOM", - "WORKSHOP_SPACE", - "SEMINAR_ROOM", - "LECTURE_HALL", - "LABORATORY", - "STUDIO", - "READING_ROOM", - "STUDY_CARREL", - "STORAGE_ROOM", - "VAULT", - "OFFICE", - "MEETING_ROOM", - "GALLERY", - "AUDITORIUM", - "RESTROOM", - "CLOAKROOM", - "UNKNOWN" - ], - "title": "RoomUnitTypeEnum", - "type": "string" - }, - "SPARQLEndpoint": { - "additionalProperties": false, - "description": "Classification for SPARQL Protocol endpoints.\n\n**Protocol**: SPARQL 1.1\n**Purpose**: Query RDF triple stores / knowledge graphs\n**Standard**: https://www.w3.org/TR/sparql11-protocol/\n\n**Heritage Sector Usage**:\n\nSPARQL endpoints enable linked data queries:\n- Europeana SPARQL endpoint\n- Wikidata Query Service\n- Getty vocabularies\n- NDE Termennetwerk\n\n**Query Types**: SELECT, CONSTRUCT, ASK, DESCRIBE", - "properties": { - "has_or_had_description": { - "description": "Description of what this endpoint type represents.\n\nSKOS: definition for the meaning of the concept.\n\nShould explain:\n- What protocol/standard this type implements\n- Primary use cases\n- Target audience (harvesters, researchers, developers)\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_format": { - "description": "The format or file type of a resource or service response.\n\n**USAGE**:\nUsed for:\n- Response formats from APIs (JSON, XML, RDF)\n- File formats for documents (PDF, DOCX, TXT)\n- Media formats (JPEG, MP3, MP4)\n- Transcript formats (VTT, SRT, plain text)\n- Subtitle formats (WebVTT, SRT, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property\n- **Close**: `dct:format` - Dublin Core format\n- **Close**: `schema:encodingFormat` - Schema.org encoding format\n\n**Range**: `uriorcurie` (Rule 54)\nBroadened range to accept URI/CURIE references to format specifications.\nThis allows linking to IANA media types, format registries, or internal\nformat classes while resolving OWL ambiguous type warnings.\n\nClasses can narrow to specific format enums/classes via slot_usage.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Unique identifier for this endpoint type.\n\nFormat: URI within the NDE Heritage Custodian ontology namespace.\n\nExample: \"https://nde.nl/ontology/hc/endpoint-type/oai-pmh\"\n", - "type": "string" - }, - "has_or_had_method": { - "description": "A method associated with an activity, process, or entity.\n\n**USAGE**:\nUsed for:\n- HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod\n- Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod\n- API interaction methods\n\n**BROADENED RANGE**:\nRange broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "heritage_sector_usage": { - "description": "Description of how this endpoint type is used in the heritage sector.\n\nSKOS: scopeNote for usage context.\n\nShould explain:\n- Primary use cases in GLAM institutions\n- Which institution types commonly use this\n- Integration with aggregators (Europeana, DPLA, etc.)\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_used_in": { - "description": "The context in which something is used.", - "items": { - "$ref": "#/$defs/HeritageSector" - }, - "type": [ - "array", - "null" - ] - }, - "narrower_type": { - "description": "Child/narrower endpoint types in the hierarchy.\n\nSKOS: narrower for hierarchical relationship.\n\nExample: DataServiceEndpointType narrower includes OAIPMHEndpointType\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "protocol_name": { - "description": "Name of the protocol or standard this endpoint type implements.\n\nDublin Core: conformsTo for standard compliance.\n\nExamples:\n- \"OAI-PMH\" (Open Archives Initiative Protocol for Metadata Harvesting)\n- \"IIIF Image API\" (International Image Interoperability Framework)\n- \"SPARQL\" (SPARQL Protocol and RDF Query Language)\n- \"REST\" (Representational State Transfer)\n- \"SRU\" (Search/Retrieve via URL)\n", - "type": "string" - }, - "protocol_version": { - "description": "Version of the protocol this endpoint type supports.\n\nSchema.org: version for protocol version.\n\nExamples:\n- \"2.0\" (OAI-PMH)\n- \"3.0\" (IIIF Image API)\n- \"1.1\" (SPARQL)\n", - "type": [ - "string", - "null" - ] - }, - "related_types": { - "description": "Related endpoint types (non-hierarchical relationship).\n\nSKOS: related for associative relationships.\n\nExamples:\n- OAIPMHEndpointType related to AtomFeedType (both for syndication)\n- IIIFImageAPIType related to IIIFPresentationAPIType (same family)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specification_url": { - "description": "URL to the official specification document for this protocol.\n\nSchema.org: documentation for specification reference.\n\nExamples:\n- \"http://www.openarchives.org/OAI/openarchivesprotocol.html\" (OAI-PMH)\n- \"https://iiif.io/api/image/3.0/\" (IIIF Image API 3.0)\n- \"https://www.w3.org/TR/sparql11-protocol/\" (SPARQL 1.1)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "type_name": { - "description": "Human-readable name for this endpoint type.\n\nSKOS: prefLabel for preferred human-readable name.\n\nExamples:\n- \"OAI-PMH Endpoint\"\n- \"Search API\"\n- \"IIIF Image Server\"\n- \"SPARQL Endpoint\"\n", - "type": "string" - } - }, - "required": [ - "has_or_had_identifier", - "type_name", - "protocol_name" - ], - "title": "SPARQLEndpoint", - "type": "object" - }, - "SPARQLProtocol": { - "additionalProperties": false, - "description": "SPARQL query protocol for RDF data.\nNote: For endpoint classification, use SPARQLEndpoint from DataServiceEndpointTypes.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SPARQLProtocol", - "type": "object" - }, - "SRUEndpoint": { - "additionalProperties": false, - "description": "Classification for SRU (Search/Retrieve via URL) endpoints.\n\n**Protocol**: SRU/SRW\n**Purpose**: Library search and retrieval\n**Standard**: http://www.loc.gov/standards/sru/\n\n**Heritage Sector Usage**:\n\nSRU is the successor to Z39.50, commonly used by:\n- Library union catalogs (WorldCat, GBV)\n- National library portals\n- Federated library search\n\n**Query Language**: CQL (Contextual Query Language)", - "properties": { - "has_or_had_description": { - "description": "Description of what this endpoint type represents.\n\nSKOS: definition for the meaning of the concept.\n\nShould explain:\n- What protocol/standard this type implements\n- Primary use cases\n- Target audience (harvesters, researchers, developers)\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_format": { - "description": "The format or file type of a resource or service response.\n\n**USAGE**:\nUsed for:\n- Response formats from APIs (JSON, XML, RDF)\n- File formats for documents (PDF, DOCX, TXT)\n- Media formats (JPEG, MP3, MP4)\n- Transcript formats (VTT, SRT, plain text)\n- Subtitle formats (WebVTT, SRT, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property\n- **Close**: `dct:format` - Dublin Core format\n- **Close**: `schema:encodingFormat` - Schema.org encoding format\n\n**Range**: `uriorcurie` (Rule 54)\nBroadened range to accept URI/CURIE references to format specifications.\nThis allows linking to IANA media types, format registries, or internal\nformat classes while resolving OWL ambiguous type warnings.\n\nClasses can narrow to specific format enums/classes via slot_usage.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Unique identifier for this endpoint type.\n\nFormat: URI within the NDE Heritage Custodian ontology namespace.\n\nExample: \"https://nde.nl/ontology/hc/endpoint-type/oai-pmh\"\n", - "type": "string" - }, - "has_or_had_method": { - "description": "A method associated with an activity, process, or entity.\n\n**USAGE**:\nUsed for:\n- HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod\n- Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod\n- API interaction methods\n\n**BROADENED RANGE**:\nRange broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "heritage_sector_usage": { - "description": "Description of how this endpoint type is used in the heritage sector.\n\nSKOS: scopeNote for usage context.\n\nShould explain:\n- Primary use cases in GLAM institutions\n- Which institution types commonly use this\n- Integration with aggregators (Europeana, DPLA, etc.)\n", - "type": [ - "string", - "null" - ] - }, - "is_or_was_used_in": { - "description": "The context in which something is used.", - "items": { - "$ref": "#/$defs/HeritageSector" - }, - "type": [ - "array", - "null" - ] - }, - "narrower_type": { - "description": "Child/narrower endpoint types in the hierarchy.\n\nSKOS: narrower for hierarchical relationship.\n\nExample: DataServiceEndpointType narrower includes OAIPMHEndpointType\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "protocol_name": { - "description": "Name of the protocol or standard this endpoint type implements.\n\nDublin Core: conformsTo for standard compliance.\n\nExamples:\n- \"OAI-PMH\" (Open Archives Initiative Protocol for Metadata Harvesting)\n- \"IIIF Image API\" (International Image Interoperability Framework)\n- \"SPARQL\" (SPARQL Protocol and RDF Query Language)\n- \"REST\" (Representational State Transfer)\n- \"SRU\" (Search/Retrieve via URL)\n", - "type": "string" - }, - "protocol_version": { - "description": "Version of the protocol this endpoint type supports.\n\nSchema.org: version for protocol version.\n\nExamples:\n- \"2.0\" (OAI-PMH)\n- \"3.0\" (IIIF Image API)\n- \"1.1\" (SPARQL)\n", - "type": [ - "string", - "null" - ] - }, - "related_types": { - "description": "Related endpoint types (non-hierarchical relationship).\n\nSKOS: related for associative relationships.\n\nExamples:\n- OAIPMHEndpointType related to AtomFeedType (both for syndication)\n- IIIFImageAPIType related to IIIFPresentationAPIType (same family)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specification_url": { - "description": "URL to the official specification document for this protocol.\n\nSchema.org: documentation for specification reference.\n\nExamples:\n- \"http://www.openarchives.org/OAI/openarchivesprotocol.html\" (OAI-PMH)\n- \"https://iiif.io/api/image/3.0/\" (IIIF Image API 3.0)\n- \"https://www.w3.org/TR/sparql11-protocol/\" (SPARQL 1.1)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "type_name": { - "description": "Human-readable name for this endpoint type.\n\nSKOS: prefLabel for preferred human-readable name.\n\nExamples:\n- \"OAI-PMH Endpoint\"\n- \"Search API\"\n- \"IIIF Image Server\"\n- \"SPARQL Endpoint\"\n", - "type": "string" - } - }, - "required": [ - "has_or_had_identifier", - "type_name", - "protocol_name" - ], - "title": "SRUEndpoint", - "type": "object" - }, - "SacramentalRecordCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Sacramental documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ParishArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ParishArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "SacramentalRecordCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SacramentalRecordCollection", - "type": "object" - }, - "SafariParkSubtype": { - "additionalProperties": false, - "description": "Drive-through wildlife park with African-style exhibits.\nVisitors observe animals from vehicles.\n\n**Wikidata**: Q1544761\n**Examples**: Safaripark Beekse Bergen, Longleat Safari Park", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SafariParkSubtype", - "type": "object" - }, - "Sanctions": { - "additionalProperties": false, - "description": "Economic sanctions affecting heritage institution operations.\nMay prevent restoration, acquisition, or international cooperation.", - "title": "Sanctions", - "type": "object" - }, - "ScanningElectronMicroscopy": { - "additionalProperties": false, - "description": "High-resolution imaging using electron beam.\nReveals surface topography and elemental composition (with EDS).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ScanningElectronMicroscopy", - "type": "object" - }, - "SceneTypeEnum": { - "description": "Types of scenes in heritage videos", - "enum": [ - "INTERIOR", - "EXTERIOR", - "CLOSEUP", - "WIDE_SHOT", - "INTERVIEW", - "ARCHIVAL", - "ANIMATION", - "TITLE_CARD", - "B_ROLL", - "DEMONSTRATION", - "TOUR" - ], - "title": "SceneTypeEnum", - "type": "string" - }, - "Schema": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Schema", - "type": "object" - }, - "SchoolAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for School administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "SchoolArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by SchoolArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "SchoolAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SchoolAdministrationFonds", - "type": "object" - }, - "SchoolArchive": { - "additionalProperties": false, - "description": "Archive of a school or educational institution. School archives preserve records documenting the history and administration of schools, including student records, faculty papers, curriculum materials, photographs, and institutional publications. They serve institutional memory and educational history research.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SchoolArchive", - "type": "object" - }, - "SchoolArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by SchoolArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SchoolArchiveRecordSetType", - "type": "object" - }, - "SchoolStudentRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Pupil records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "SchoolArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by SchoolArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "SchoolStudentRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SchoolStudentRecordSeries", - "type": "object" - }, - "ScientificArchive": { - "additionalProperties": false, - "description": "Archive created for academic purposes. Scientific archives (Forschungsarchive) collect and preserve materials related to scientific research, including research data, laboratory notebooks, correspondence, and documentation of scientific projects. They serve the history of science and support reproducibility of research findings.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ScientificArchive", - "type": "object" - }, - "ScientificArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by ScientificArchive custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ScientificArchiveRecordSetType", - "type": "object" - }, - "ScientificCollectionContent": { - "additionalProperties": false, - "description": "Scientific instruments and materials: Laboratory equipment,\nmeasuring devices, scientific models, specimens.", - "properties": { - "has_or_had_label": {}, - "type_definition": { - "description": "Definition of this collection content type", - "type": [ - "string", - "null" - ] - } - }, - "title": "ScientificCollectionContent", - "type": "object" - }, - "ScientificContent": { - "additionalProperties": false, - "description": "Scientific and technical publications.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "SCIENTIFIC", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Scientific Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "ScientificContent", - "type": "object" - }, - "ScientificSignificance": { - "additionalProperties": false, - "description": "Scientific or research importance.\n\n**Aspects**:\n- Research value\n- Type specimens\n- Unique materials\n- Scientific discovery associations\n\n**Use Cases**:\n- Natural history collections\n- Research archives\n- Scientific heritage sites\n\n**Example**:\n```yaml\nhas_or_had_significance:\n - has_or_had_type: ScientificSignificance\n has_or_had_description: \"Type specimen location, taxonomic reference\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ScientificSignificance", - "type": "object" - }, - "ScientificTechnicAndIndustrialCultureCenter": { - "additionalProperties": false, - "description": "Popular science place in France (CCSTI - Centre de culture\nscientifique, technique et industrielle).\n\n**PURPOSE**: Digital presence of French science and technology\ncenters providing public engagement with STEM heritage.\n\n**CHARACTERISTICS**:\n- Science communication\n- Interactive exhibits\n- Public engagement\n- STEM education\n\n**EXAMPLES**: French CCSTI digital platforms", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q2945276" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AUXILIARY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "ScientificTechnicAndIndustrialCultureCenter", - "type": "object" - }, - "ScientistPapersCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Scientist personal papers.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ScientificArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ScientificArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "ScientistPapersCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ScientistPapersCollection", - "type": "object" - }, - "Scope": { - "additionalProperties": false, - "description": "Coverage or scope information for a collection, service, or institution.\n**SCOPE DIMENSIONS**: - **Temporal**: Time period covered (e.g., \"1600-1900\") - **Spatial**: Geographic coverage (e.g., \"Netherlands\", \"Amsterdam\") - **Subject**: Topic/subject areas (e.g., \"Dutch Golden Age painting\") - **Material**: Types of materials (e.g., \"photographs\", \"manuscripts\")\n**ONTOLOGY MAPPING**: - class_uri: dct:Coverage (Dublin Core coverage concept)", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "material_coverage": { - "description": "Types of materials covered.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "scope_description": { - "description": "Human-readable description of the scope.", - "type": [ - "string", - "null" - ] - }, - "spatial_coverage": { - "description": "Geographic coverage (e.g., \"Netherlands\", \"Europe\").", - "type": [ - "string", - "null" - ] - }, - "subject_coverage": { - "description": "Subject areas covered.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_coverage_description": { - "description": "Time period covered as free text (e.g., \"1600-1900\", \"Medieval period\"). Use for informal descriptions. For structured temporal data, use the temporal_coverage slot with TimeSpan class.", - "type": [ - "string", - "null" - ] - } - }, - "title": "Scope", - "type": "object" - }, - "ScrapeMethodEnum": { - "description": "Methods used to extract LinkedIn connection data.\nDetermines data quality and potential limitations.", - "enum": [ - "manual_linkedin_browse", - "linkedin_html_parser", - "exa_search", - "automated_scraper" - ], - "title": "ScrapeMethodEnum", - "type": "string" - }, - "ScrumMaster": { - "additionalProperties": false, - "description": "Scrum master facilitating agile development processes.\n\n**Official Title vs De Facto Work**:\nMay also serve as project manager, coach,\nand cross-functional coordinator.\n\n**Common Variants**:\n- Agile Coach\n- Agile Facilitator\n- Delivery Lead\n\n**Typical Domains**: Heritage institutions with digital teams\n\n**Typical Responsibilities**:\n- Sprint facilitation\n- Impediment removal\n- Process improvement\n- Team coaching\n- Stakeholder communication", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "ScrumMaster", - "type": "object" - }, - "SearchAPI": { - "additionalProperties": false, - "description": "REST/JSON search API endpoint for heritage collection discovery.\n\n**Purpose:**\n\nModels search APIs that provide programmatic access to collection search\nfunctionality. These APIs enable:\n- Custom search interface development\n- Integration with aggregation platforms\n- Automated data discovery\n- Faceted search and filtering\n\n**Common Patterns:**\n\nHeritage search APIs typically support:\n- **Full-text search**: Query across all fields\n- **Field-specific search**: Query specific metadata fields\n- **Faceted search**: Filter by category, date, type, etc.\n- **Pagination**: Navigate large result sets\n- **Sorting**: Order results by relevance, date, etc.\n\n**Example - Nationaal Archief Search API:**\n\n```yaml\nsearch_api:\n endpoint_name: \"Nationaal Archief Search API\"\n endpoint_url: \"https://www.nationaalarchief.nl/onderzoeken/api/zoeken\"\n protocol: REST\n query_parameters:\n - name: \"q\"\n type: \"string\"\n description: \"Full-text search query\"\n - name: \"from\"\n type: \"integer\"\n description: \"Pagination offset\"\n - name: \"size\"\n type: \"integer\"\n description: \"Results per page\"\n pagination_method: OFFSET_LIMIT\n max_results_per_page: 100\n response_format: JSON\n supports_facets: true\n facet_fields: [\"type\", \"periode\", \"archief\"]\n```\n\n**Response Structure:**\n\nMost heritage search APIs return JSON with:\n- `total`: Total number of matching records\n- `results`/`items`/`records`: Array of result objects\n- `facets`: Aggregation counts for filtering\n- `pagination`: Links or cursors for paging\n\n**See Also:**\n\n- OpenSearch: https://opensearch.org/\n- Hydra API vocabulary: https://www.hydra-cg.com/", - "properties": { - "authentication_method": { - "$ref": "#/$defs/AuthenticationMethodEnum", - "description": "Authentication method required (if is_or_was_required is true).\n\nValues from AuthenticationMethodEnum:\n- NONE: No authentication\n- API_KEY: API key in header or query parameter\n- OAUTH2: OAuth 2.0\n- BASIC: HTTP Basic Authentication\n- IP_WHITELIST: IP address whitelist\n- INSTITUTIONAL: Institutional login (Shibboleth, etc.)\n" - }, - "cors_enabled": { - "description": "Whether CORS (Cross-Origin Resource Sharing) is enabled.\n\nImportant for browser-based JavaScript applications:\n- true: Cross-origin requests allowed\n- false: Same-origin only\n- null: Unknown\n", - "type": [ - "boolean", - "null" - ] - }, - "date_filter_format": { - "description": "Expected format for date filters.\n\nExample: \"YYYY-MM-DD\", \"ISO8601\", \"Unix timestamp\"\n", - "type": [ - "string", - "null" - ] - }, - "default_results_per_page": { - "description": "Default number of results returned per page if not specified.\n\nExample: 20\n", - "type": [ - "integer", - "null" - ] - }, - "discovery_provenance": { - "description": "Provenance information about how this endpoint was discovered.\n\nShould include:\n- Discovery date\n- Discovery method (documentation, web scrape, API testing)\n- Verification status\n\nFree-text or structured provenance note.\n", - "type": [ - "string", - "null" - ] - }, - "documentation_url": { - "description": "URL to human-readable documentation.\n\nThis is separate from endpoint_description_url which is machine-readable.\n\nExamples:\n- \"https://pro.europeana.eu/resources/apis/record\"\n- \"https://www.nationaalarchief.nl/onderzoeken/handleiding/api\"\n", - "type": [ - "string", - "null" - ] - }, - "endpoint_description_url": { - "description": "URL to machine-readable API documentation.\n\nDCAT: dcat:endpointDescription - \"A description of the service end-point\"\n\nMay be:\n- OpenAPI/Swagger specification (JSON/YAML)\n- OAI-PMH Identify response\n- WSDL document\n- Human-readable documentation page\n\nExamples:\n- \"https://api.example.org/openapi.json\"\n- \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh?verb=Identify\"\n", - "type": [ - "string", - "null" - ] - }, - "endpoint_id": { - "description": "Unique identifier for this data service endpoint.\n\nRecommended format: URI combining platform ID and service type.\n\nExample: \"https://nde.nl/ontology/hc/endpoint/nationaalarchief-oai-pmh\"\n", - "type": "string" - }, - "endpoint_name": { - "description": "Human-readable name for this endpoint.\nExamples: - \"Nationaal Archief OAI-PMH Endpoint\" - \"Heritage Search API\" - \"Image Server (IIP)\"", - "type": "string" - }, - "endpoint_type": { - "description": "Classification of this endpoint from the DataServiceEndpointType taxonomy.\n\n**Instance vs Type Architecture:**\n\nThis slot links an INSTANCE (DataServiceEndpoint) to its TYPE classification\n(DataServiceEndpointType), following the same architectural pattern as\nCustodian/CustodianType.\n\n```\nDataServiceEndpoint (INSTANCE) DataServiceEndpointType (TYPE)\n\u251c\u2500\u2500 endpoint_url \u251c\u2500\u2500 protocol_name\n\u251c\u2500\u2500 status \u251c\u2500\u2500 protocol_version\n\u251c\u2500\u2500 is_or_was_required \u251c\u2500\u2500 specification_url\n\u2514\u2500\u2500 endpoint_type \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba\u2514\u2500\u2500 has_or_had_format\n```\n\n**Why Both `protocol` and `endpoint_type`?**\n\n- `protocol` (enum): Simple string classification for quick filtering\n- `endpoint_type` (class reference): Rich type metadata with SKOS hierarchy,\n specification URLs, and semantic relationships\n\n**Example:**\n\n```yaml\ndata_service_endpoint:\n endpoint_id: \"https://nde.nl/hc/endpoint/na-oai-pmh\"\n endpoint_url: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh\"\n protocol: OAI_PMH # Simple enum (DataServiceProtocolEnum)\n endpoint_type: OAIPMHEndpointType # Rich type (DataServiceEndpointType subclass)\n```\n\nThis pattern mirrors:\n- `custodian_type` enum + `CustodianType` class on `Custodian`\n- `platform_type` enum + `DigitalPlatformType` class on `DigitalPlatform`\n", - "type": [ - "string", - "null" - ] - }, - "example_query": { - "description": "Example search query demonstrating API usage.\n\nExample: \"/api/zoeken?q=foto&type=image&size=10\"\n", - "type": [ - "string", - "null" - ] - }, - "facet_fields": { - "description": "Fields available for faceted filtering.\n\nExample: [\"type\", \"periode\", \"archief\", \"toegang\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_url": { - "description": "Search endpoint URL.\n\nThe base URL for search requests. Query parameters are appended.\n\nExample: \"https://www.nationaalarchief.nl/onderzoeken/api/zoeken\"\n", - "type": "string" - }, - "http_method": { - "$ref": "#/$defs/HTTPMethodEnum", - "description": "HTTP method(s) supported for search requests.\n\nValues:\n- GET: Query parameters in URL (most common)\n- POST: Query in request body (for complex queries)\n- BOTH: Supports both methods\n" - }, - "is_or_was_required": { - "description": "Whether something is or was required (boolean).\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **Schema.org** | `schema:isRequired` | Maps to - boolean requirement |\n\nNote: slot_uri changed from schema:isRequired to hc:isOrWasRequired\nto resolve OWL ambiguous type warning. schema:isRequired may be\nambiguous when used in different contexts.\n\n**USAGE NOTE**:\n\nThis is a simple boolean slot. For structured requirement information\nwith types and temporal validity, use has_or_had_status with RequirementStatus.\n\n**MIGRATION NOTE**:\n\nReplaces domain-specific boolean slots like:\n- booking_required \u2192 is_or_was_required\n- appointment_required \u2192 is_or_was_required\n- registration_required \u2192 is_or_was_required\n", - "type": [ - "boolean", - "null" - ] - }, - "last_verified": { - "description": "Date when this endpoint was last verified to be operational.\n\nISO 8601 date format.\n\nExample: \"2025-12-14\"\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "max_results_per_page": { - "description": "Maximum number of results per page.\n\nThe API may return fewer results, but never more.\n\nExample: 100\n", - "type": [ - "integer", - "null" - ] - }, - "opensearch_description_url": { - "description": "URL to OpenSearch description document (if applicable).\n\nExample: \"https://example.org/opensearch.xml\"\n", - "type": [ - "string", - "null" - ] - }, - "pagination_method": { - "$ref": "#/$defs/PaginationMethodEnum", - "description": "Pagination method used by this API.\n\nValues:\n- OFFSET_LIMIT: Uses offset/start and limit/size parameters\n- PAGE_NUMBER: Uses page number and page size\n- CURSOR: Uses cursor/token for stateful pagination\n- LINK_HEADER: Uses HTTP Link headers (RFC 5988)\n- NONE: No pagination (returns all results)\n" - }, - "query_parameters": { - "description": "Query parameters supported by this search API.\n\nDocuments the available search parameters, their types, and usage.\n\nExample:\n```yaml\nquery_parameters:\n - name: \"q\"\n type: \"string\"\n required: true\n description: \"Full-text query\"\n - name: \"type\"\n type: \"string\"\n description: \"Filter by record type\"\n```\n", - "items": { - "$ref": "#/$defs/SearchQueryParameter" - }, - "type": [ - "array", - "null" - ] - }, - "rate_limit": { - "description": "Rate limit description if applicable.\n\nFree-text description of rate limiting policy.\n\nExamples:\n- \"100 requests per minute\"\n- \"1000 requests per day per API key\"\n- \"No limit\"\n- \"Unknown\"\n", - "type": [ - "string", - "null" - ] - }, - "response_format": { - "$ref": "#/$defs/SearchResponseFormatEnum", - "description": "Primary response format.\n\nMost modern APIs use JSON.\n\nValues: JSON, XML, JSON_LD, HTML, CSV\n" - }, - "result_schema_url": { - "description": "URL to JSON Schema or documentation describing the result format.\n\nExample: \"https://api.example.org/schema/search-result.json\"\n", - "type": [ - "string", - "null" - ] - }, - "serves_dataset": { - "description": "Dataset(s) that this service provides access to.\n\nDCAT: dcat:servesDataset - \"A collection of data that this data service can distribute\"\n\nReferences to DCAT Dataset identifiers or descriptions.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "sort_fields": { - "description": "Fields available for sorting.\n\nExample: [\"relevance\", \"date\", \"title\", \"created\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "status": { - "$ref": "#/$defs/EndpointStatusEnum", - "description": "Operational status of the endpoint.\n\nValues from EndpointStatusEnum:\n- ACTIVE: Endpoint is operational\n- DEPRECATED: Endpoint works but will be removed\n- BETA: Endpoint in testing/beta\n- OFFLINE: Endpoint currently unavailable\n- UNKNOWN: Status not verified\n" - }, - "supports_boolean_operators": { - "description": "Whether the API supports boolean operators (AND, OR, NOT) in queries.\n", - "type": [ - "boolean", - "null" - ] - }, - "supports_facets": { - "description": "Whether the API supports faceted search.\n\nFaceted search allows filtering by categories (type, date, location, etc.)\nwith counts for each facet value.\n", - "type": [ - "boolean", - "null" - ] - }, - "supports_field_search": { - "description": "Whether the API supports field-specific search (e.g., title:painting).\n", - "type": [ - "boolean", - "null" - ] - }, - "supports_phrase_search": { - "description": "Whether the API supports phrase search (exact match using quotes).\n", - "type": [ - "boolean", - "null" - ] - }, - "supports_sorting": { - "description": "Whether the API supports custom sorting of results.\n", - "type": [ - "boolean", - "null" - ] - }, - "supports_wildcards": { - "description": "Whether the API supports wildcard characters (* or ?).\n", - "type": [ - "boolean", - "null" - ] - }, - "total_records": { - "description": "Total number of searchable records (approximate).\n\nExample: 15000000\n", - "type": [ - "integer", - "null" - ] - }, - "version": { - "description": "Version of the API or service.\n\nExamples:\n- \"v2\"\n- \"1.0.0\"\n- \"2023-01\"\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "has_or_had_url", - "endpoint_id", - "endpoint_name" - ], - "title": "SearchAPI", - "type": "object" - }, - "SearchIndex": { - "additionalProperties": false, - "description": "Full-text search and indexing system.\nExamples: Solr, Elasticsearch, OpenSearch, Meilisearch", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SearchIndex", - "type": "object" - }, - "SearchQueryParameter": { - "additionalProperties": false, - "description": "Describes a query parameter supported by a search API.\n\nDocuments the parameter name, type, whether it's required,\nand its purpose.", - "properties": { - "allowed_values": { - "description": "List of allowed values (for enumerated parameters).\n\nExample: [\"image\", \"document\", \"audio\", \"video\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "default_value": { - "description": "Default value if not specified.\n\nExample: \"10\" for a size parameter\n", - "type": [ - "string", - "null" - ] - }, - "example_value": { - "description": "Example value for this parameter.\n\nExample: \"amsterdam museum\"\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "name": { - "description": "Parameter name as used in the query string.\n\nExample: \"q\", \"type\", \"from\", \"size\"\n", - "type": "string" - }, - "parameter_description": { - "description": "Human-readable description of the parameter.\n\nExample: \"Full-text search query\"\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "type": { - "description": "Data type of the parameter value.\n\nValues: string, integer, boolean, date, array\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "name" - ], - "title": "SearchQueryParameter", - "type": "object" - }, - "SearchResponseFormatEnum": { - "description": "Response formats for search API results.", - "enum": [ - "JSON", - "XML", - "JSON_LD", - "HTML", - "CSV", - "ATOM" - ], - "title": "SearchResponseFormatEnum", - "type": "string" - }, - "SeatingCapacity": { - "additionalProperties": false, - "description": "Seating capacity for venues and event spaces.\nNumber of seats or persons allowed.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "SeatingCapacity", - "type": "object" - }, - "Secretary": { - "additionalProperties": false, - "description": "Secretary managing organizational records, correspondence, and meeting minutes.\n\n**Official Title vs De Facto Work**:\nFormally responsible for records and minutes, but often serves as\norganizational memory and handles significant administrative coordination.\n\n**Common Variants**:\n- Board Secretary\n- Recording Secretary\n- Secretaris (Dutch)\n- Honorary Secretary\n- General Secretary\n- Company Secretary\n\n**Typical Domains**: Historical societies, cooperatives, foundations, associations\n\n**Typical Responsibilities**:\n- Recording and distributing meeting minutes\n- Managing organizational correspondence\n- Maintaining official records and documents\n- Ensuring statutory compliance\n- Coordinating meeting logistics\n- Member communication", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Secretary", - "type": "object" - }, - "Section501c3": { - "additionalProperties": false, - "description": "US 501(c)(3) tax-exempt status for charitable organizations.\n\n**Benefits**:\n- Organization exempt from federal income tax\n- Donors can deduct contributions on federal taxes\n- May be exempt from state/local taxes\n- Eligible for foundation grants\n\n**Requirements**:\n- Organized exclusively for exempt purposes\n- No private inurement\n- Limited lobbying activities\n- No political campaign intervention\n\n**Regulatory Body**: Internal Revenue Service (IRS)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Section501c3", - "type": "object" - }, - "Section501c4": { - "additionalProperties": false, - "description": "US 501(c)(4) social welfare organization status.\n\nDifferent from 501(c)(3) - allows more advocacy but\ndonations are NOT tax-deductible for donors.\n\n**Benefits**:\n- Organization exempt from federal income tax\n- Can engage in unlimited lobbying\n- Can participate in some political activities\n\n**Limitations**:\n- Donor contributions NOT tax-deductible\n- Must primarily benefit community\n\n**Regulatory Body**: Internal Revenue Service (IRS)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Section501c4", - "type": "object" - }, - "SectorOfArchivesInSweden": { - "additionalProperties": false, - "description": "The archival sector in Sweden. This represents the collective system of archival institutions and practices in Sweden, including Riksarkivet (National Archives), regional archives, municipal archives, and private archives. It describes the sector as a whole rather than individual institutions.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SectorOfArchivesInSweden", - "type": "object" - }, - "SectorOfArchivesInSwedenRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by SectorOfArchivesInSweden custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SectorOfArchivesInSwedenRecordSetType", - "type": "object" - }, - "SecureDestructionService": { - "additionalProperties": false, - "description": "Secure destruction of records.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "SecureDestructionService", - "type": "object" - }, - "SecurityArchives": { - "additionalProperties": false, - "description": "Type of archives in Czechia related to security services. Security archives preserve records of security and intelligence services, often from historical regimes. In the Czech context, this includes archives documenting the activities of communist-era security services and their records.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SecurityArchives", - "type": "object" - }, - "SecurityArchivesRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections held by SecurityArchives custodians.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SecurityArchivesRecordSetType", - "type": "object" - }, - "SecurityClearance": { - "additionalProperties": false, - "description": "Requires government or institutional security clearance. Common for government archives with classified materials.", - "title": "SecurityClearance", - "type": "object" - }, - "SecurityFunction": { - "additionalProperties": false, - "description": "Security function: physical security, access control, emergency response, collection protection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "SecurityFunction", - "type": "object" - }, - "SecurityGuard": { - "additionalProperties": false, - "description": "Security guard providing facility and collection security.\n\n**Official Title vs De Facto Work**:\nOften serves as first point of visitor contact, provides wayfinding,\nand may assist with emergency response and crowd management.\n\n**Common Variants**:\n- Gallery Guard\n- Security Officer\n- Museum Guard\n- Warden\n\n**Typical Domains**: Museums, galleries, archives with public spaces\n\n**Typical Responsibilities**:\n- Gallery surveillance\n- Visitor monitoring\n- Emergency response\n- Opening/closing procedures\n- Incident reporting", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "SecurityGuard", - "type": "object" - }, - "SecurityLevel": { - "additionalProperties": false, - "description": "A security classification or level.\n\n**USAGE**:\nUsed for:\n- Warehouse security levels\n- Document classifications\n- Access control tiers", - "properties": { - "access_requirements": { - "description": "Requirements for access at this level", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "level_name": { - "description": "Human-readable security level name", - "type": [ - "string", - "null" - ] - }, - "level_rank": { - "description": "Numeric rank (higher = more secure)", - "type": [ - "integer", - "null" - ] - } - }, - "title": "SecurityLevel", - "type": "object" - }, - "SecurityServiceFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Security/intelligence service records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "SecurityArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by SecurityArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "SecurityServiceFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SecurityServiceFonds", - "type": "object" - }, - "SeedBankSubtype": { - "additionalProperties": false, - "description": "Repository preserving plant genetic diversity through seed storage.\nCritical for ex-situ conservation and biodiversity preservation.\n\n**Wikidata**: Q1639542\n**Examples**: Svalbard Global Seed Vault, Millennium Seed Bank (Kew)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SeedBankSubtype", - "type": "object" - }, - "Segment": { - "additionalProperties": false, - "description": "A segment or region of a resource.\n\n**Ontological Alignment**:\n- `oa:SpecificResource`: A specific part of a resource.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Segment", - "type": "object" - }, - "SensitivityLevel": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "SensitivityLevel", - "type": "object" - }, - "Series": { - "additionalProperties": false, - "description": "Documents arranged in accordance with a filing system or maintained as a unit.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Series", - "type": "object" - }, - "Service": { - "additionalProperties": false, - "description": "A service offered by an institution. **USAGE**: Used for: - Visitor services (guided tours, audio guides) - Research services (reference, reproductions) - Conservation services", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "price": { - "type": [ - "string", - "null" - ] - } - }, - "title": "Service", - "type": "object" - }, - "ServiceArea": { - "additionalProperties": false, - "description": "Geographic area served by a heritage custodian institution.\n\n**Dutch Term**: \"Werkgebied\" - the operational territory of an archive,\nlibrary, or museum where they provide services and collect materials.\n\n**CRITICAL DISTINCTION: ServiceArea vs Jurisdiction**\n\nServiceArea and Jurisdiction are fundamentally different concepts:\n\n| Aspect | ServiceArea | Jurisdiction |\n|--------|-------------|--------------|\n| **Definition** | Geographic area where a SPECIFIC custodian operates (\"werkgebied\") | Geographic area where specific LAWS AND POLICIES apply |\n| **Scope** | Operational territory | Legal framework scope |\n| **Sharing** | UNIQUE to each custodian | SHARED by multiple custodians operating under same legal framework |\n| **Example** | Each municipal archive has its own municipality as service area | Dutch national law creates a jurisdiction for all municipal archives in NL |\n\n**Key Example**:\n\nA national law (e.g., Archiefwet) creates a JURISDICTION covering the entire Netherlands.\nALL Dutch municipal archives operate within this SAME jurisdiction - they share it!\nBut each municipal archive has a DIFFERENT ServiceArea (werkgebied) - typically\ntheir own municipality or region.\n\n- Noord-Hollands Archief: ServiceArea = Haarlem + surrounding municipalities, Jurisdiction = NL (Dutch national law)\n- Gemeentearchief Amsterdam: ServiceArea = Amsterdam municipality, Jurisdiction = NL (same!)\n- Regionaal Archief Tilburg: ServiceArea = Tilburg region, Jurisdiction = NL (same!)\n\nAll three have DIFFERENT service areas but share the SAME jurisdiction.\n\n**Purpose**:\n\nServiceArea captures the geographic jurisdiction/coverage of heritage institutions:\n\n1. **Archives**: The municipalities whose records they manage\n - Provincial archives cover entire province\n - Regional archives cover specific municipalities\n - Municipal archives cover single city\n\n2. **Libraries**: The service district for lending/access\n - Public libraries serve defined municipalities\n - Academic libraries may have national scope\n\n3. **Museums**: Geographic scope of collection mandate\n - Regional museums collect from specific area\n - National museums have country-wide scope\n\n| Ontology | Class/Property | Usage |\n|----------|----------------|-------|\n| **Schema.org** | `schema:areaServed` | Primary property linking Organization \u2192 ServiceArea |\n| **Schema.org** | `schema:AdministrativeArea` | Class for geographic regions under jurisdiction |\n| **TOOI** | `tooi:BestuurlijkeRuimte` | Dutch government pattern for administrative spaces |\n| **TOOI** | `tooi:JuridischeRuimte` | Operational/effect area of legal instruments |\n| **GeoSPARQL** | `geosparql:Feature` | Geospatial representation base class |\n| **W3C Org** | `org:hasSite` | Related concept for organizational presence |\n\n**Relationship to Other Classes**:\n\n```\nCustodianLegalStatus --schema:areaServed--> ServiceArea\n |\n \u251c\u2500\u2500> GeoSpatialPlace (boundary polygon)\n \u251c\u2500\u2500> Country (covered country)\n \u251c\u2500\u2500> Subregion (covered provinces)\n \u2514\u2500\u2500> Settlement (covered cities)\n```\n\n**Historical vs Current Boundaries**:\n\nService areas may change over time due to:\n- Municipal mergers (gemeentelijke herindeling)\n- Archive reorganizations\n- Administrative boundary changes\n\nUse `is_historical_boundary: true` and `temporal_extent` to track historical areas.\n\n**Display Styling**:\n\n| Boundary Type | Border Color | Fill Color | Opacity |\n|---------------|--------------|------------|---------|\n| Current | Blue (#3498db) | Blue (#3498db) | 20% |\n| Historical | Brown (#8b4513) | Goldenrod (#daa520) | 20% |\n\n**Example - Noord-Hollands Archief**:\n\nThe NHA serves multiple municipalities in Noord-Holland province.\nBefore the 2001 merger, Gemeentearchief Haarlem and Rijksarchief Noord-Holland\nhad separate service areas. After merger, the combined service area includes\nboth the city and provincial scope.", - "properties": { - "contains_or_contained_covers_settlement": { - "description": "Specific settlements (cities, towns, villages) covered by this service area.\nLinks to Settlement class with GeoNames identifiers.\n\nUse when:\n- Service area covers specific municipalities (not entire province)\n- Municipal archive serving one or more cities\n- Regional archive with defined list of served settlements\n\nGeoNames IDs disambiguate settlements with same name.\n", - "items": { - "$ref": "#/$defs/Settlement" - }, - "type": [ - "array", - "null" - ] - }, - "cover_or_covered_subregion": { - "description": "Subregion(s) covered by this service area.\nLinks to Subregion class with ISO 3166-2 codes.\n\nA service area may cover:\n- Single subregion (provincial archive covering one province)\n- Multiple subregions (regional archive spanning provinces)\n- Part of a subregion (municipal archive within province)\n", - "items": { - "$ref": "#/$defs/Subregion" - }, - "type": [ - "array", - "null" - ] - }, - "covers_country": { - "anyOf": [ - { - "$ref": "#/$defs/Country" - }, - { - "type": "null" - } - ], - "description": "Country that this service area is within.\nLinks to Country class with ISO 3166-1 codes.\n" - }, - "has_or_had_identifier": { - "items": { - "$ref": "#/$defs/HALCAdm1Code" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/HALCAdm2Name" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_historical_boundary": { - "description": "Indicates if this service area represents a historical boundary\nthat no longer exists in current administrative geography.\n\nUse for:\n- Pre-merger municipal boundaries\n- Historical territories (e.g., HALC data from 1500)\n- Dissolved provinces or regions\n\nWhen true:\n- has_boundary should use historical GeoSpatialPlace data\n- temporal_extent should indicate the period of validity\n- Display styling should indicate historical nature (e.g., brown/sepia)\n", - "type": [ - "boolean", - "null" - ] - }, - "served_by": { - "description": "Provider entity that serves or hosts this resource", - "type": [ - "string", - "null" - ] - }, - "service_area_description": { - "description": "Description of the service area, including historical context if relevant.\n\nMay include:\n- Historical boundaries and changes\n- Relationship to administrative divisions\n- Special notes about service scope\n", - "type": [ - "string", - "null" - ] - }, - "service_area_id": { - "description": "Unique identifier for this service area", - "type": "string" - }, - "service_area_name": { - "description": "Human-readable name for the service area.\n\nExamples:\n- \"Noord-Holland Province\" (provincial archive service area)\n- \"Amsterdam Municipal Libraries Service District\"\n- \"Veluwe Regional Heritage Area\"\n", - "type": "string" - }, - "service_area_type": { - "$ref": "#/$defs/ServiceAreaTypeEnum", - "description": "Classification of the service area type.\n\nTypes include:\n- MUNICIPAL: Single municipality service area\n- PROVINCIAL: Entire province coverage\n- REGIONAL: Multi-municipality regional area\n- HISTORICAL: Historical administrative boundary (no longer current)\n- NATIONAL: Country-wide service area\n- CUSTOM: Non-standard or negotiated service area\n" - }, - "source_dataset": { - "description": "Source dataset for boundary data.\n\nCommon sources:\n- \"CBS Wijken en Buurten\" (Dutch municipality boundaries)\n- \"HALC Historical Boundaries\" (Historical Atlas of Low Countries)\n- \"Kadaster\" (Dutch cadastral authority)\n- \"OpenStreetMap\"\n- \"GADM\" (Global Administrative Areas)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "service_area_id", - "service_area_name" - ], - "title": "ServiceArea", - "type": "object" - }, - "ServiceAreaTypeEnum": { - "description": "Classification of service area types for heritage custodians.\n\nService areas define the geographic jurisdiction or coverage area where\na heritage institution provides services, collects materials, or has\narchival responsibility (\"werkgebied\" in Dutch).\n\n**Usage by Institution Type**:\n\n| Type | Common Usage |\n|------|--------------|\n| **MUNICIPAL** | Municipal archives, city libraries |\n| **PROVINCIAL** | Provincial archives (Rijksarchief in de Provincie) |\n| **REGIONAL** | Regional archives covering multiple municipalities |\n| **HISTORICAL** | Historical boundaries from before administrative changes |\n| **NATIONAL** | National archives, national libraries |\n| **CUSTOM** | Special arrangements, consortia |\n| **ECCLESIASTICAL** | Church archives with diocese/parish boundaries |\n| **WATERBOARD** | Water authority archives (waterschapsarchieven) |", - "enum": [ - "MUNICIPAL", - "PROVINCIAL", - "REGIONAL", - "HISTORICAL", - "NATIONAL", - "CUSTOM", - "ECCLESIASTICAL", - "WATERBOARD" - ], - "title": "ServiceAreaTypeEnum", - "type": "string" - }, - "ServiceLicense": { - "additionalProperties": false, - "description": "A license assignment for a specific service within an organization's policy.\n\nUsed when an organization has different licenses for different services,\nallowing for nuanced modeling of mixed open/closed policies.\n\n**Example - OCLC (Cooperative with mixed policy):**\n- WorldCat: Proprietary (default)\n- VIAF: ODC-BY (open for linked data)\n- WorldCat Identities: ODC-BY\n\n**Example - Wikimedia (Movement with mostly unified policy):**\n- Wikidata: CC0 (default)\n- Wikipedia: CC-BY-SA (different - copyleft for text)\n- Commons: Varies by upload (contributor choice)", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "license_notes": { - "description": "Additional notes about how the license applies to this service.\n\nExamples:\n- \"VIAF data is available under ODC-BY via OCLC Research\"\n- \"API access requires registration but data is freely reusable\"\n- \"High-resolution images require separate agreement\"\n", - "type": [ - "string", - "null" - ] - }, - "service_license": { - "description": "The specific license that applies to this service.\n\nLinks to a DataLicense instance.\n", - "type": "string" - }, - "service_name": { - "description": "Name of the service this license applies to.\n\nExamples: \"VIAF\", \"WorldCat\", \"Wikidata\", \"Wikipedia\", \"Rijksstudio\"\n", - "type": "string" - }, - "service_url": { - "description": "URL of the service.\n\nExamples:\n- https://viaf.org/\n- https://www.worldcat.org/\n- https://www.wikidata.org/\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "service_name", - "service_license" - ], - "title": "ServiceLicense", - "type": "object" - }, - "ServiceOnInternet": { - "additionalProperties": false, - "description": "Technical ability afforded by the Internet.\n\n**PURPOSE**: Provide heritage-related services accessible via\nInternet protocols.\n\n**CHARACTERISTICS**:\n- Internet accessibility\n- Service-oriented architecture\n- API availability\n- Web standards compliance\n\n**EXAMPLES**: Online catalogs, search services, reference services", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q1668024" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "DISCOVERY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "ServiceOnInternet", - "type": "object" - }, - "ServiceProvider": { - "additionalProperties": false, - "description": "Supplier providing services rather than products.\nExamples: Photography services, framing services, packaging", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ServiceProvider", - "type": "object" - }, - "Setpoint": { - "additionalProperties": false, - "description": "An environmental control setpoint specifying a target value, acceptable range,\nand tolerance for a measurable property (temperature, humidity, light, etc.).\n\n**BRICK SCHEMA ALIGNMENT**:\nbrick:Setpoint - \"A point that represents a value used to guide the \noperation of equipment and/or systems\"\n\n**PRESERVATION CONTEXT**:\nSetpoints define target environmental conditions for heritage preservation.\nHVAC systems maintain conditions around setpoints within tolerance bands.\n\n**ISO STANDARD REFERENCES**:\n- ISO 11799:2015 (Archives): 16-18\u00b0C, 30-45% RH\n- ISO 18911:2010 (Cold storage): 0 to +4\u00b0C, 30% RH\n- ISO 18920:2011 (Photographs): 15-18\u00b0C, 30-40% RH\n- BS 4971:2017 (UK Standard): 13-16\u00b0C, 35-60% RH\n- EN 15757:2010 (Climate control): historic climate principle", - "properties": { - "iso_standard_reference": { - "description": "Iso Standard Reference for heritage custodian entities.\n", - "type": [ - "string", - "null" - ] - }, - "setpoint_max": { - "description": "Setpoint Max for heritage custodian entities.\n", - "type": [ - "number", - "null" - ] - }, - "setpoint_min": { - "description": "Setpoint Min for heritage custodian entities.\n", - "type": [ - "number", - "null" - ] - }, - "setpoint_tolerance": { - "description": "Setpoint Tolerance for heritage custodian entities.\n", - "type": [ - "number", - "null" - ] - }, - "setpoint_type": { - "$ref": "#/$defs/SetpointTypeEnum", - "description": "Setpoint Type for heritage custodian entities.\n" - }, - "setpoint_unit": { - "$ref": "#/$defs/MeasureUnitEnum", - "description": "Setpoint Unit for heritage custodian entities.\n" - }, - "setpoint_value": { - "description": "Setpoint Value for heritage custodian entities.\n", - "type": "number" - } - }, - "required": [ - "setpoint_type", - "setpoint_value", - "setpoint_unit" - ], - "title": "Setpoint", - "type": "object" - }, - "SetpointTypeEnum": { - "description": "Types of environmental parameters that can have setpoints.", - "enum": [ - "TEMPERATURE", - "RELATIVE_HUMIDITY", - "LIGHT_LUX", - "UV_LEVEL", - "AIR_CHANGES_PER_HOUR", - "PARTICULATE_COUNT", - "OXYGEN_LEVEL", - "CO2_LEVEL" - ], - "title": "SetpointTypeEnum", - "type": "string" - }, - "Settlement": { - "additionalProperties": false, - "description": "City, town, or municipality identified by GeoNames ID. GeoNames (https://www.geonames.org/) is a geographical database that provides stable identifiers for settlements worldwide. Each settlement has a unique numeric GeoNames ID that persists even if names or boundaries change. Purpose: - Link custodian places to their specific city/town location - Enable city-specific feature types (e.g., \"City of Pittsburgh Historic Designation\") - Provide geographic precision beyond country/subregion level GeoNames ID format: Numeric (e.g., 5206379 for Pittsburgh) Examples: - GeoNames 2759794: Amsterdam, Netherlands - GeoNames 5206379: Pittsburgh, Pennsylvania, USA - GeoNames 3451190: Rio de Janeiro, Brazil - GeoNames 1850147: Tokyo, Japan - GeoNames 2643743: London, United Kingdom Design rationale: - GeoNames IDs are stable, language-neutral identifiers - Avoid ambiguity from duplicate city names (e.g., 41 \"Springfield\"s in USA) - Enable geographic coordinate lookup via GeoNames API - Widely used in heritage data (museum registries, archival systems) External resolution: - GeoNames API: https://www.geonames.org/ - GeoNames RDF: https://sws.geonames.org/{geonames_id}/ - Wikidata integration: Most major cities have Wikidata links Alternative: For settlements without GeoNames ID, use settlement name + country as fallback, but prefer obtaining GeoNames ID for data quality.", - "properties": { - "country": { - "$ref": "#/$defs/Country", - "description": "Country where this place is located (OPTIONAL).\n\nLinks to Country class with ISO 3166-1 codes.\n\nSchema.org: addressCountry uses ISO 3166-1 alpha-2 codes.\n\nUse when:\n- Place name is ambiguous across countries (\"Victoria Museum\" exists in multiple countries)\n- Feature types are country-specific (e.g., \"cultural heritage of Peru\")\n- Generating country-conditional enums\n\nExamples:\n- \"Rijksmuseum\" \u2192 country.alpha_2 = \"NL\"\n- \"cultural heritage of Peru\" \u2192 country.alpha_2 = \"PE\"\n" - }, - "has_or_had_geographic_subdivision": { - "description": "Geographic subdivision within a country (state, province, region, department, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity may have been located in different subdivisions\nover time (e.g., due to boundary changes, administrative reorganization).\n\n**Geographic Hierarchy**:\nCountry \u2192 GeographicSubdivision (this slot) \u2192 Settlement\n\n**Identifier Format**:\nISO 3166-2 codes: {country_alpha2}-{subdivision_code}\nExamples: US-PA (Pennsylvania), ID-BA (Bali), DE-BY (Bavaria), NL-LI (Limburg)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `lcc_cr:isSubregionOf` - OMG Languages Countries and Codes\n- **Exact**: `schema:addressRegion` - Schema.org administrative region\n- **Close**: `locn:adminUnitL2` - INSPIRE administrative unit level 2\n- **Close**: `gn:A.ADM1` - GeoNames first-order administrative division\n\n**Use Cases**:\n- Place is located in a specific subdivision (e.g., \"Pittsburgh museum\" \u2192 US-PA)\n- Feature types are region-specific (e.g., \"sacred shrine (Bali)\" \u2192 ID-BA)\n- Legal jurisdiction at subnational level (e.g., Bavarian archive law)\n- Generating GHCID region codes\n\n**Range**: `uriorcurie` (Rule 55) - Allows both:\n- URI references to Subregion class instances\n- Direct ISO 3166-2 code CURIEs\n\n**Migration Note** (2026-01-17):\nReplaces domain-specific `subregion` slot per slot_fixes.yaml revision.\nProvides generic predicate name applicable across geographic contexts.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "latitude": { - "description": "Geographic latitude (WGS84 coordinate).\n\nSchema.org: latitude for geographic positioning.\n", - "type": [ - "number", - "null" - ] - }, - "longitude": { - "description": "Geographic longitude (WGS84 coordinate).\n\nSchema.org: longitude for geographic positioning.\n", - "type": [ - "number", - "null" - ] - }, - "settlement_id": { - "description": "Unique identifier for this settlement record. Format: Use GeoNames URI when available (e.g., https://sws.geonames.org/2759794/) or generate from settlement_name + country code. ", - "type": "string" - }, - "settlement_name": { - "description": "Human-readable name of the settlement.\n\nUse the official English name or local language name. For cities with\nmultiple official languages (e.g., Brussels, Bruxelles, Brussel), prefer\nthe English name for consistency.\n\nFormat: City name without country suffix\n\nExamples:\n- \"Amsterdam\" (not \"Amsterdam, Netherlands\")\n- \"Pittsburgh\" (not \"Pittsburgh, PA\")\n- \"Rio de Janeiro\" (not \"Rio de Janeiro, Brazil\")\n- \"Tokyo\" (not \"\u6771\u4eac\")\n\nNote: For programmatic matching, always use geonames_id when available.\nSettlement names can be ambiguous (e.g., 41 \"Springfield\"s in USA).\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "country", - "settlement_name", - "settlement_id" - ], - "title": "Settlement", - "type": "object" - }, - "ShadowLibrary": { - "additionalProperties": false, - "description": "Database of content that is a copy of content that is otherwise\nobscured or not accessible because of paywalls or other restrictions.\n\n**PURPOSE**: Provide access to scholarly and educational content\nthat may be behind paywalls or otherwise restricted.\n\n**CHARACTERISTICS**:\n- Copies of paywalled content\n- Operated outside traditional publishing\n- Controversial legal status\n- High usage in resource-limited contexts\n\n**EXAMPLES**: Library Genesis, Sci-Hub, Z-Library", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q21040941" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "REPOSITORY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "ShadowLibrary", - "type": "object" - }, - "SharedRecordsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Joint/shared records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "JointArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by JointArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "SharedRecordsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SharedRecordsFonds", - "type": "object" - }, - "ShelfLengthCapacity": { - "additionalProperties": false, - "description": "Linear shelf or storage length capacity (e.g., linear meters).\nStandard measurement for archive depots.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ShelfLengthCapacity", - "type": "object" - }, - "ShortName": { - "additionalProperties": false, - "description": "Label type for short names or abbreviations.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_code" - ], - "title": "ShortName", - "type": "object" - }, - "ShortNameClaim": { - "additionalProperties": false, - "description": "Abbreviated or short name of the organization.\nExpected in: <h1>, logo, header", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "ShortNameClaim", - "type": "object" - }, - "ShortVideoPost": { - "additionalProperties": false, - "description": "Short-form video content optimized for mobile viewing and discovery.\n\n**Activity Streams Mapping**: `as:Video` (with duration constraint)\n**Schema.org Mapping**: `schema:VideoObject`\n\n**Platforms and Duration Limits**:\n\n| Platform | Format Name | Max Duration |\n|----------|-------------|--------------|\n| TikTok | TikTok | 10 minutes (was 60s, 3min) |\n| YouTube | Shorts | 60 seconds |\n| Instagram | Reels | 90 seconds |\n| Facebook | Reels | 90 seconds |\n| Snapchat | Spotlight | 60 seconds |\n\n**Characteristics**:\n- Vertical format (9:16 aspect ratio)\n- Mobile-first design\n- Sound-on experience\n- Algorithm-driven discovery\n- Looping playback\n- Quick, attention-grabbing content\n\n**Heritage Use Cases**:\n\n| Use Case | Description | Example |\n|----------|-------------|---------|\n| Artifact spotlight | Quick focus on single object | \"Object of the Day\" |\n| Behind-the-scenes | Brief peek at non-public areas | Storage room tour |\n| Conservation tip | Quick preservation advice | \"How to store photos\" |\n| Event teaser | Promote upcoming exhibition | Opening night preview |\n| Fun facts | Surprising collection stories | \"Did you know...\" |\n| Trending sounds | Participate in viral trends | Museum-themed memes |\n\n**Technical Properties**:\n- Resolution: 1080x1920 (vertical)\n- Formats: MP4 (H.264)\n- Auto-captions: Generated by platforms\n- Music/sound: Platform audio libraries", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "post_type_activity_streams_type": { - "const": "as:Video", - "description": "Activity Streams 2.0 type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_category": { - "const": "SHORT_VIDEO", - "description": "High-level category for grouping related post types.\nValues: VIDEO, SHORT_VIDEO, IMAGE, TEXT, STORY, LIVE_STREAM,\nAUDIO, ARTICLE, THREAD, CAROUSEL, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "post_type_description": { - "description": "Detailed description of this post type including purpose,\ncharacteristics, and typical use cases in heritage context.\n", - "type": [ - "string", - "null" - ] - }, - "post_type_ephemeral": { - "description": "Whether this post type is ephemeral (disappears after time).", - "type": [ - "boolean", - "null" - ] - }, - "post_type_heritage_use_case": { - "description": "Typical use cases for heritage institutions creating this content type.\n\nExamples for Video:\n- Virtual exhibition tours\n- Conservation process documentation\n- Curator interviews\n- Historical documentary content\n- Educational lectures\n\nExamples for Short Video:\n- Artifact spotlights\n- Behind-the-scenes moments\n- Quick conservation tips\n- Event teasers\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_id": { - "description": "Unique identifier for this post type", - "type": "string" - }, - "post_type_max_duration": { - "const": "PT90S", - "description": "Maximum duration for this post type (e.g., video length).", - "type": [ - "string", - "null" - ] - }, - "post_type_media_format": { - "description": "Supported media formats for this post type.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_name": { - "description": "Canonical name for this post type.\nUsed for display and content categorization.\n\nExamples: \"Video\", \"Short Video\", \"Image Post\", \"Story\", \"Live Stream\"\n", - "type": "string" - }, - "post_type_schema_org_type": { - "const": "schema:VideoObject", - "description": "Schema.org type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_supported_platform": { - "description": "Platforms that support this post type.", - "items": { - "enum": [ - "TikTok", - "YouTube", - "Instagram", - "Facebook", - "Snapchat" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "post_type_id", - "post_type_name" - ], - "title": "ShortVideoPost", - "type": "object" - }, - "Significance": { - "additionalProperties": false, - "description": "Structured representation of significance or importance.\n\n**MIGRATION NOTE** (2026-01-22):\nCreated per slot_fixes.yaml migration from `community_significance` string\nto structured Significance class per Rule 53.\n\n**Purpose**:\nProvides structured representation for significance including:\n- Type classification (e.g., cultural, economic, historical)\n- Description of the significance\n- Supporting evidence or justification\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `crm:E55_Type` - CIDOC-CRM type (significance as typed concept)\n- **Close**: `dcterms:description` - Dublin Core description\n\n**Use Cases**:\n- Cultural heritage significance (UNESCO recognition)\n- Community importance (identity, social cohesion)\n- Economic impact (tourism, heritage economy)\n- Historical continuity (ancestral links)\n\n**Pattern**:\n```yaml\nhas_or_had_significance:\n - has_or_had_type: CommunitySignificance\n has_or_had_description: \"Belgian cultural identity, Trappist beer heritage\"\n - has_or_had_type: EconomicSignificance\n has_or_had_description: \"Tourism revenue, heritage economy\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/SignificanceType" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_description" - ], - "title": "Significance", - "type": "object" - }, - "Site": { - "additionalProperties": false, - "description": "Site types (Archaeological site, Battlefield)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Site", - "type": "object" - }, - "Size": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - } - }, - "title": "Size", - "type": "object" - }, - "SocialHistoryTopic": { - "additionalProperties": false, - "description": "Topic related to social history and welfare.\n\nIncludes: poverty, healthcare, education history,\nsocial movements, labor history.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/TopicType" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/TopicType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "SocialHistoryTopic", - "type": "object" - }, - "SocialMedia": { - "additionalProperties": false, - "description": "Official social media accounts and channels. Instagram, Twitter,\nFacebook, YouTube, TikTok institutional accounts.\n\n**PURPOSE**: Engage audiences through social media platforms with\nheritage content, news, and community interaction.\n\n**CHARACTERISTICS**:\n- Platform-specific content\n- Audience engagement\n- Real-time communication\n- Community building\n\n**EXAMPLES**: Museum Instagram accounts, archive YouTube channels", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "INTERACTIVE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "SocialMedia", - "type": "object" - }, - "SocialMediaClaim": { - "additionalProperties": false, - "description": "General social media profile links.\nUsed when platform is not specified or for aggregate.", - "title": "SocialMediaClaim", - "type": "object" - }, - "SocialMediaCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Social media archives.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "WebArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by WebArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "SocialMediaCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SocialMediaCollection", - "type": "object" - }, - "SocialMediaFunction": { - "additionalProperties": false, - "description": "Social media function: content creation, community management, analytics, influencer relations.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "SocialMediaFunction", - "type": "object" - }, - "SocialMediaPost": { - "additionalProperties": false, - "description": "Concrete class for social media posts/content items.\n\n**DEFINITION**:\n\nSocialMediaPost represents a discrete piece of content published on a social media\nplatform. This includes videos, images, text posts, stories, carousels, threads,\nand other content types. Each post is published by a SocialMediaProfile (account/channel).\n\n**CRITICAL: MULTIVALUED POST TYPES**:\n\nA single SocialMediaPost can have **multiple** post types via the `post_types` slot.\nThis reflects the reality that social media content often combines formats:\n\n| Post Example | Primary Type | Secondary Types |\n|--------------|--------------|-----------------|\n| Instagram carousel with videos | CarouselPost | ImagePost, VideoPost |\n| Twitter thread with images | ThreadPost | TextPost, ImagePost |\n| YouTube Live archived as video | LiveStreamPost | VideoPost |\n| Podcast with video recording | AudioPost | VideoPost |\n| Story highlight (saved) | StoryPost | ImagePost, VideoPost |\n\n**TYPE ORDERING CONVENTION**:\n- First type in list = primary/dominant format\n- Subsequent types = secondary characteristics\n- Order matters for display and categorization\n\n**CRITICAL: POST vs PROFILE vs PLATFORM**:\n\n| Class | Represents | Example | Cardinality |\n|-------|------------|---------|-------------|\n| SocialMediaPlatformType | Platform category | YouTube | ~25 types |\n| SocialMediaProfile | Account/channel | @rijksmuseum | Thousands |\n| **SocialMediaPost** | Individual content | A video, post | Millions |\n\n**ACTIVITY STREAMS 2.0 ALIGNMENT**:\n\nMaps to `as:Object` from W3C Activity Streams 2.0 vocabulary:\n- as:Object is the base type for content in social media\n- Individual posts may also map to as:Video, as:Image, as:Note based on post_types\n- Enables federation with ActivityPub-based platforms (Mastodon, PeerTube)\n\n**HERITAGE INSTITUTION CONTEXT**:\n\nSocial media content from heritage institutions includes:\n\n1. **Official content** (posted by the institution):\n - Collection highlights (ImagePost)\n - Exhibition announcements (TextPost)\n - Educational videos (VideoPost)\n - Behind-the-scenes content (ShortVideoPost, StoryPost)\n - Event recordings (LiveStreamPost \u2192 VideoPost)\n - Curator interviews (VideoPost, AudioPost)\n - Multi-image collection stories (CarouselPost)\n\n2. **Third-party content** (about the institution):\n - Visitor videos/photos\n - News coverage\n - Academic discussions\n - Review content\n\n3. **User-generated content** (mentions):\n - Tagged posts\n - Check-ins\n - Comments/discussions\n\n**PROVENANCE TRACKING**:\n\nContent items are OBSERVATIONAL data retrieved via:\n- Platform APIs (YouTube Data API, Twitter API, etc.)\n- Web scraping (when API unavailable)\n- Manual archival\n\nEach content record includes:\n- `retrieval_timestamp`: When content was fetched\n- `api_endpoint`: Which API/method was used\n- `metrics_observed_date`: When engagement metrics were recorded\n\n**TEMPORAL CONSIDERATIONS**:\n\\nContent has multiple temporal dimensions:\\n- `is_or_was_published_at`: When originally posted\\n- `is_or_was_last_updated_at`: Last modification\\\n \\ by author\\n- `retrieval_timestamp`: When we fetched it\\n- `metrics_observed_date`: When metrics (views, likes) were\\ recorded\n\nEngagement metrics change constantly; always record observation timestamp.\n\n**SUBCLASSES FOR SPECIALIZED CONTENT**:\n\nWhile SocialMediaPost can represent any content with post_types,\nspecialized subclasses provide additional platform-specific slots:\n\n- **VideoPost**: YouTube, TikTok, Vimeo videos (duration, definition, captions)\n- **ImagePost**: Instagram, Pinterest posts (dimensions, alt_text) [future]\n- **TextPost**: Twitter/X, Mastodon posts (character_count) [future]\n- **StoryPost**: Instagram/Facebook stories (ephemeral, segments) [future]", - "properties": { - "content_category": { - "description": "Category or genre of the content.\n\nSchema.org: genre for content classification.\n\nPlatform-specific category systems:\n- YouTube: Category ID (e.g., \"22\" = People & Blogs)\n- Instagram: N/A\n- TikTok: Category/trend\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_endpoint": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/APIEndpoint__identifier_optional" - }, - { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - } - ] - }, - "description": "The data service endpoint.", - "type": [ - "object", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_official_content": { - "description": "Whether this content was posted by the heritage institution's official account.\n\n- **true**: Posted by the custodian's verified/official account\n- **false**: Third-party content (visitors, media, etc.) about the institution\n\nHelps distinguish official communications from external coverage.\n", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/Tag" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_last_updated_at": { - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "is_or_was_published_at": { - "$ref": "#/$defs/PublicationEvent", - "description": "Publication event for content/document.\n\nMIGRATED from published_at slot per Rule 53/56 (2026-01-17).\nRenamed to follow RiC-O temporal naming conventions (Rule 39).\n\nUses PublicationEvent class for structured representation including:\n- Temporal extent (precise or fuzzy via TimeSpan)\n- Optional event label (e.g., \"First Edition\")\n- Event identifier for tracking\n\n**For simple timestamps**: Create PublicationEvent with all four\nTimeSpan boundaries set to the same instant.\n" - }, - "language": { - "description": "Primary language of content on this profile.\n\nDublin Core: language for content language.\n\nISO 639-1 language code (e.g., \"en\", \"nl\", \"de\").\n\nSome institutions maintain separate profiles for different languages.\n", - "pattern": "^[a-z]{2}$", - "type": [ - "string", - "null" - ] - }, - "platform_type": { - "description": "Type of digital platform using DigitalPlatformType class hierarchy.\n\n**Class-based Type System** (replaces DigitalPlatformTypeEnum):\n\nPlatform types are organized into 8 high-level categories:\n- REPOSITORY: Digital archives, libraries, institutional repositories\n- AGGREGATOR: Aggregation and harvesting platforms \n- DISCOVERY: Search portals, catalogs, discovery interfaces\n- VIRTUAL_HERITAGE: 3D, VR/AR, immersive experiences\n- RESEARCH: Research data platforms, annotation tools\n- INTERACTIVE: Crowdsourcing, social, user contribution\n- COMMERCE: Licensing, print-on-demand, e-commerce\n- AUXILIARY: APIs, mobile apps, specialized tools\n\nEach category contains multiple concrete subclasses with Wikidata mappings.\nSee DigitalPlatformTypes.yaml for 69 concrete platform types.\n\nA platform may have multiple types (e.g., digital archive + aggregator).\n", - "type": "string" - }, - "post_id": { - "description": "Unique identifier for this post. Mapped to dcterms:identifier as the standard property for resource identifiers.\n\nFormat varies by platform:\n- YouTube: Video ID (e.g., \"dQw4w9WgXcQ\")\n- Twitter/X: Tweet ID (numeric string)\n- Instagram: Media ID or shortcode\n\nCombined with platform type, this uniquely identifies content globally.\n", - "type": "string" - }, - "post_url": { - "description": "Canonical URL to access this post on its native platform. Mapped to schema:url as the standard property for web addresses.\n\nURL patterns by platform:\n- YouTube: https://www.youtube.com/watch?v={video_id}\n- Twitter/X: https://x.com/{user}/status/{tweet_id}\n- Instagram: https://www.instagram.com/p/{shortcode}\n- Mastodon: https://{instance}/@{user}/{post_id}\n", - "pattern": "^https?://", - "type": "string" - }, - "posted_by_profile": { - "description": "The social media profile (account/channel) that posted this content.\n\nActivity Streams: attributedTo identifies the actor responsible for the content.\n\nLinks to SocialMediaProfile which in turn links to the Custodian hub.\n", - "type": [ - "string", - "null" - ] - }, - "retrieval_timestamp": { - "description": "Timestamp when this content data was retrieved from the platform.\n\nPROV-O: atTime for observation timestamp.\n\nCritical for understanding data freshness, especially for metrics.\n", - "format": "date-time", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type", - "post_id", - "post_url", - "is_or_was_published_at", - "retrieval_timestamp" - ], - "title": "SocialMediaPost", - "type": "object" - }, - "SocialMediaPresence": { - "additionalProperties": false, - "description": "Social media profile on third-party platform.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "SocialMediaPresence", - "type": "object" - }, - "SocialMediaProfile": { - "additionalProperties": false, - "description": "Represents a social media account or profile maintained by a heritage custodian.\n\n**FOAF ONTOLOGY ALIGNMENT**:\n\nMaps to `foaf:OnlineAccount` - \"An online account.\"\n\nKey FOAF properties used:\n- `foaf:accountName` - Username/handle on the platform\n- `foaf:accountServiceHomepage` - Homepage of the service provider (e.g., https://twitter.com)\n- `foaf:account` - Inverse property linking Agent to OnlineAccount\n\n**RELATIONSHIP TO DIGITAL PLATFORM HIERARCHY**:\n\nSocial media profiles exist in a three-tier digital presence model:\n\n```\n1. DigitalPlatform (PRIMARY digital presence)\n - Main website, primary API, flagship platform\n - Example: rijksmuseum.nl\n - Links to Custodian via refers_to_custodian\n \n2. AuxiliaryDigitalPlatform (SECONDARY digital properties)\n - Project sites, exhibition microsites, specialized tools\n - Example: Rijksstudio, Night Watch Experience\n - Links to DigitalPlatform via is_auxiliary_of\n \n3. SocialMediaProfile (THIRD-PARTY presence) - THIS CLASS\n - Accounts on external social media services\n - Example: @rijksmuseum on Instagram, Facebook, X\n - Links to BOTH Custodian AND optionally DigitalPlatform/AuxiliaryDigitalPlatform\n```\n\n**WHY SOCIAL MEDIA IS DISTINCT FROM AUXILIARY PLATFORMS**:\n\nUnlike AuxiliaryDigitalPlatform (owned/operated digital properties), social media profiles:\n- Are hosted on THIRD-PARTY platforms (not custodian-controlled)\n- Have standardized URL patterns per platform\n- Provide follower/engagement metrics\n- Subject to platform terms of service\n- Can be verified/authenticated by platform\n\n**RELATIONSHIP TO CUSTODIAN vs DIGITAL PLATFORM**:\n\nSocial media profiles can link to:\n\n1. **Custodian directly** (`refers_to_custodian`):\n - When social media is the PRIMARY or ONLY digital presence\n - Example: Small local heritage society with Facebook page as main presence\n \n2. **DigitalPlatform** (`associated_digital_platform`):\n - When social media SUPPORTS the main website\n - Example: Rijksmuseum Instagram supports rijksmuseum.nl\n \n3. **AuxiliaryDigitalPlatform** (`associated_auxiliary_platform`):\n - When social media is for a SPECIFIC project/exhibition\n - Example: Instagram account for a temporary exhibition\n\n**DECISION RULES**:\n\n\"Is social media this custodian's MAIN way to profile itself online?\"\n\n- **YES** \u2192 Link SocialMediaProfile directly to Custodian\n - is_primary_digital_presence: true\n - associated_digital_platform: null\n - Example: Local heritage group with only Facebook\n \n- **NO** \u2192 Link SocialMediaProfile to DigitalPlatform/AuxiliaryDigitalPlatform\n - is_primary_digital_presence: false\n - associated_digital_platform: (main website)\n - Example: Museum Instagram supporting main website\n\n**TEMPORAL VALIDITY**:\n\nSocial media profiles have lifecycles:\n- Account creation date\n- Account deactivation/deletion date\n- Platform migration (e.g., Twitter \u2192 X)\n- Account suspension/recovery\n\n**METRICS AND ANALYTICS**:\n\nSocial media profiles can track:\n- Follower/subscriber count\n- Post count\n- Engagement metrics\n- Verification status\n\nThese metrics are OBSERVATIONAL and should be timestamped.\n\n**Example - Museum with Social Media Supporting Website**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n \n digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address: \"https://www.rijksmuseum.nl/\"\n \n social_media_profiles:\n - platform_type: INSTAGRAM\n account_name: \"rijksmuseum\"\n profile_url: \"https://www.instagram.com/rijksmuseum/\"\n is_primary_digital_presence: false # Website is primary\n associated_digital_platform: \".../platform/rijksmuseum-website\"\n follower_count: 1200000\n verified: true\n \n - platform_type: X_TWITTER\n account_name: \"rijksmuseum\"\n profile_url: \"https://x.com/rijksmuseum\"\n is_primary_digital_presence: false\n associated_digital_platform: \".../platform/rijksmuseum-website\"\n```\n\n**Example - Local Society with Social Media as Primary Presence**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-fr-123-s-hvn\"\n preferred_label: \"Historische Vereniging Nijeveen\"\n \n digital_platform: null # No formal website\n \n social_media_profiles:\n - platform_type: FACEBOOK\n account_name: \"HistorischeVerenigingNijeveen\"\n profile_url: \"https://www.facebook.com/HistorischeVerenigingNijeveen\"\n is_primary_digital_presence: true # Facebook IS their main presence\n associated_digital_platform: null\n follower_count: 450\n```", - "properties": { - "cover_image_url": { - "description": "URL to the cover/header image (if applicable).\n\nSchema.org: image for banner/cover.\n\nNot all platforms have cover images.\n", - "type": [ - "string", - "null" - ] - }, - "created_date": { - "description": "Date when the social media account was created on the platform.\n\nSchema.org: dateCreated for account creation.\n\nNot always available from all platforms.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "has_or_had_engagement_metric": { - "description": "A specific metric tracking engagement with content or a profile.\nMIGRATED from `engagement_rate` (and other metrics). Uses EngagementMetric class for structured data (value + type).", - "items": { - "$ref": "#/$defs/EngagementMetric" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "is_primary_digital_presence": { - "description": "**CURRENT** status indicating whether this social media profile is the \ncustodian's PRIMARY or ONLY digital presence.\n\n**IMPORTANT**: This is a CONVENIENCE field representing the CURRENT status.\nFor temporal history and provenance, use `primary_presence_assertions`.\n\n**Decision Logic**:\n\n- **true**: Social media IS the main way this custodian profiles itself online\n - Custodian has no formal website (digital_platform is null)\n - OR social media reaches significantly more audience than website\n - Example: Local heritage society with Facebook as only presence\n\n- **false** (default): Social media SUPPORTS other digital presence\n - Custodian has a main website (DigitalPlatform)\n - Social media complements/promotes the website\n - Example: Museum Instagram supporting rijksmuseum.nl\n\n**Relationship to primary_presence_assertions**:\n\nThis boolean reflects the MOST RECENT assertion's value. The full \ntemporal history is maintained in `primary_presence_assertions`.\n\nWhen assertions change, this field should be updated to match\nthe current valid assertion.\n\n**Impact on Linking**:\n\n- When true: SocialMediaProfile links directly to Custodian\n- When false: SocialMediaProfile links to DigitalPlatform/AuxiliaryDigitalPlatform\n", - "type": [ - "boolean", - "null" - ] - }, - "language": { - "description": "Primary language of content on this profile.\n\nDublin Core: language for content language.\n\nISO 639-1 language code (e.g., \"en\", \"nl\", \"de\").\n\nSome institutions maintain separate profiles for different languages.\n", - "pattern": "^[a-z]{2}$", - "type": [ - "string", - "null" - ] - }, - "metrics_observed_date": { - "description": "Date when the metrics (follower_count, post_count, etc.) were observed.\n\nPROV-O: atTime for temporal observation.\n\nSocial media metrics change constantly - this timestamp\nindicates when the snapshot was taken.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "platform_name": { - "description": "Human-readable name of the social media platform.\n\nFOAF: accountServiceHomepage for service provider identification.\n\nUse when platform_type is OTHER or for disambiguation.\n\nExamples: \"Instagram\", \"X (formerly Twitter)\", \"Mastodon (glammr.us)\"\n", - "type": [ - "string", - "null" - ] - }, - "platform_type": { - "description": "Type of digital platform using DigitalPlatformType class hierarchy.\n\n**Class-based Type System** (replaces DigitalPlatformTypeEnum):\n\nPlatform types are organized into 8 high-level categories:\n- REPOSITORY: Digital archives, libraries, institutional repositories\n- AGGREGATOR: Aggregation and harvesting platforms \n- DISCOVERY: Search portals, catalogs, discovery interfaces\n- VIRTUAL_HERITAGE: 3D, VR/AR, immersive experiences\n- RESEARCH: Research data platforms, annotation tools\n- INTERACTIVE: Crowdsourcing, social, user contribution\n- COMMERCE: Licensing, print-on-demand, e-commerce\n- AUXILIARY: APIs, mobile apps, specialized tools\n\nEach category contains multiple concrete subclasses with Wikidata mappings.\nSee DigitalPlatformTypes.yaml for 69 concrete platform types.\n\nA platform may have multiple types (e.g., digital archive + aggregator).\n", - "type": "string" - }, - "post_count": { - "description": "Total number of posts/updates on this profile.\n\nSchema.org: interactionCount for content volume.\n\nPlatform terminology:\n- Instagram: posts\n- Twitter/X: posts/tweets\n- YouTube: videos\n- Facebook: posts\n", - "type": [ - "integer", - "null" - ] - }, - "profile_description": { - "description": "Bio or description text from the social media profile. Extracted from the platform's bio/about section.\nMaps to dcterms:description for profile text descriptions.", - "type": [ - "string", - "null" - ] - }, - "profile_image_url": { - "description": "URL to the LinkedIn profile photo.\nShould be the actual CDN URL (media.licdn.com), not overlay page.\nSee AGENTS.md Rule 16 for photo URL requirements.\n", - "type": [ - "string", - "null" - ] - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "social_media_profile_id": { - "description": "Unique identifier for this social media profile instance.\nFormat: URI following NDE Heritage Custodian ontology conventions.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "platform_type", - "refers_to_custodian", - "social_media_profile_id" - ], - "title": "SocialMediaProfile", - "type": "object" - }, - "SocialNetworkMember": { - "additionalProperties": false, - "description": "A member in a social or professional network.\n\n**DEFINITION**:\n\nSocialNetworkMember represents a person who is part of a professional\nnetwork (LinkedIn, ORCID, etc.) in the context of heritage sector\nnetwork analysis.\n\n**RELATIONSHIP TO PersonConnection**:\n\n`PersonConnection` is a subclass/specialization that includes\nadditional metadata about the connection relationship (degree,\nheritage relevance, etc.). `SocialNetworkMember` is the base\nclass for any network member.\n\n**USE CASES**:\n\n1. LinkedIn connection network analysis\n2. Heritage sector professional mapping\n3. Cross-institutional collaboration discovery\n4. Alumni and association network analysis\n\n**SEMANTIC PATTERN**:\n\n```\nConnectionNetwork\n \u2502\n \u2514\u2500\u2500 has_or_had_member \u2192 SocialNetworkMember (THIS CLASS)\n \u251c\u2500\u2500 has_or_had_identifier: LinkedIn URL\n \u251c\u2500\u2500 has_or_had_label: Person name\n \u2514\u2500\u2500 (subclasses add connection-specific metadata)\n```\n\nCreated as part of connection migration per slot_fixes.yaml (Rule 53).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "linkedin_profile_url": { - "description": "LinkedIn profile URL for this person.\n\n**Schema.org**: `schema:sameAs` for linking to same entity on other platforms\n\n**Format**: Full URL (https://www.linkedin.com/in/username)\n\n**Privacy**: Only include if LinkedIn profile is publicly accessible.\n\n**Photo URLs**: For profile photos, use CDN URL (media.licdn.com),\nNOT the overlay page URL (per Rule 16).\n\n**Example**: \"https://www.linkedin.com/in/jane-smith-curator\"\n\n**Semantics**:\n- This URL represents the same person on the LinkedIn platform\n- Use for identity linking and deduplication\n- NOT for data retrieval (use linkedin_profile_path instead)", - "type": [ - "string", - "null" - ] - } - }, - "title": "SocialNetworkMember", - "type": "object" - }, - "SocialSpace": { - "additionalProperties": false, - "description": "Physical or virtual space such as a social center, online social media,\nor other gathering place where people gather and interact.\n\n**PURPOSE**: Digital social spaces for heritage community interaction\nand engagement.\n\n**CHARACTERISTICS**:\n- Social interaction\n- Community building\n- User-generated content\n- Virtual gathering\n\n**EXAMPLES**: Heritage community forums, online discussion spaces", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q4430275" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AUXILIARY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "SocialSpace", - "type": "object" - }, - "SocialToFollowerConversion": { - "additionalProperties": false, - "description": "Conversion rate measuring social media viewers who become followers.\n**INDUSTRY BENCHMARKS**: - Average: 1-3% - Viral content: 5-15%\n**CALCULATION**: (New Followers / Content Views) \u00d7 100", - "properties": { - "conversion_source_population": { - "description": "The group being measured (denominator) in a conversion rate calculation.\n\nThis identifies the total population from which conversions are measured.\n", - "type": [ - "string", - "null" - ] - }, - "conversion_target_action": { - "description": "The action being measured (numerator) in a conversion rate calculation.\n\nThis identifies what action constitutes a \"conversion\" from the source population.\n", - "type": [ - "string", - "null" - ] - }, - "conversion_type_label": { - "description": "Human-readable label for this conversion rate type.\n\nExamples: \"Visitor to Purchase\", \"Email to Click\", \"Online to Physical Visit\"\n", - "type": "string" - }, - "industry_benchmark_high": { - "description": "High end of the industry benchmark range for this metric.\n\nExpressed as a decimal (e.g., 0.40 = 40%).\nUsed with industry_benchmark_low to define the typical performance range.\n", - "type": [ - "number", - "null" - ] - }, - "industry_benchmark_low": { - "description": "Low end of the industry benchmark range for this metric.\n\nExpressed as a decimal (e.g., 0.15 = 15%).\nUsed with industry_benchmark_high to define the typical performance range.\n", - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "conversion_type_label" - ], - "title": "SocialToFollowerConversion", - "type": "object" - }, - "SoftwareAgent": { - "additionalProperties": false, - "description": "Agent type for software agents or automated processes.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_code" - ], - "title": "SoftwareAgent", - "type": "object" - }, - "SolventCleaning": { - "additionalProperties": false, - "description": "Cleaning using organic solvents to remove coatings, adhesives, or deposits.\nCommon solvents include acetone, ethanol, white spirit, and solvent mixtures.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "SolventCleaning", - "type": "object" - }, - "SoundArchive": { - "additionalProperties": false, - "description": "A heritage custodian specialized in collecting, preserving, and providing access to audio recordings and sound materials. Sound archives (also known as phonoth\u00e8ques or fonotecas) hold diverse audio collections including music recordings, oral histories, radio broadcasts, field recordings, and other audio documentation of cultural significance.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SoundArchive", - "type": "object" - }, - "SoundArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections of sound recordings and audio materials within heritage institutions.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SoundArchiveRecordSetType", - "type": "object" - }, - "SoundCloud": { - "additionalProperties": false, - "description": "SoundCloud profile for audio content.\n\n**URL patterns**:\n- https://soundcloud.com/{username}\n\n**Features**:\n- Audio hosting and streaming\n- Playlists and sets\n- Comments on waveforms\n- Embedding\n\n**Heritage use cases**:\n- Audio tours and guides\n- Oral history collections\n- Lecture recordings\n- Music collections", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "AUDIO", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://soundcloud.com/{username}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "SoundCloud", - "type": "object" - }, - "Source": { - "additionalProperties": false, - "description": "A source from which something was derived or generated. Can represent manual creation, automated generation, external services, or imported data. Subclasses may specialize for specific domains.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Source", - "type": "object" - }, - "SourceCommentCount": { - "additionalProperties": false, - "description": "Comment count metadata from an external source (API, web page).\n\n**PURPOSE**:\n\nStructured representation of comment retrieval metadata, tracking\nhow many comments were fetched versus the total available at the source.\nReplaces simple integer count with rich provenance data.\n\n**DESIGN RATIONALE**:\n\nCreated per slot_fixes.yaml migration from `comments_fetched` integer\nto structured `was_fetched_at` + `Timestamp` + `is_or_was_part_of_total`\n+ `SourceCommentCount` for complete retrieval tracking.\n\n**USE CASES**:\n\n- YouTube API: Track fetched comments vs total comment count\n- Social media: Partial comment retrieval with pagination\n- Web scraping: Track scraped vs visible comments\n\n**EXAMPLE**:\n\n```yaml\nis_or_was_part_of_total:\n fetched_count: 100\n total_count: 500\n fetch_complete: false\n was_fetched_at:\n has_or_had_timestamp: \"2025-01-14T10:30:00Z\"\n```", - "properties": { - "fetch_complete": { - "description": "Whether all available items were fetched.\nTrue if fetched_count equals total_count.\n", - "type": [ - "boolean", - "null" - ] - }, - "fetched_count": { - "description": "Number of items actually fetched/retrieved.\n", - "minimum": 0, - "type": "integer" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "source_api": { - "description": "API or source from which data was fetched.\n", - "type": [ - "string", - "null" - ] - }, - "total_count": { - "description": "Total number of items available at the source.\nMay be null if source doesn't provide total.\n", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "was_fetched_at": { - "anyOf": [ - { - "$ref": "#/$defs/Timestamp" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "fetched_count" - ], - "title": "SourceCommentCount", - "type": "object" - }, - "SourceDocument": { - "additionalProperties": false, - "description": "A source document where custodian information was observed.\nCIDOC-CRM E73_Information_Object: Identifiable immaterial items with propositional content.\n\n**Examples**:\n- Archival documents\n- Websites\n- Letterheads\n- Legal statutes\n- Publications\n\n**Properties**:\n- URI/URL of source\n- Document type\n- Publication/creation date\n- Creator/publisher", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "source_creator": { - "description": "Creator or publisher of the source document.\nDublin Core: creator property.\n", - "type": [ - "string", - "null" - ] - }, - "source_date": { - "description": "Date when source document was created.\nDublin Core: created for resource creation date.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "source_type": { - "$ref": "#/$defs/SourceDocumentTypeEnum", - "description": "Type of source document.\nCIDOC-CRM: P2_has_type links to E55_Type.\n" - }, - "source_uri": { - "description": "URI or URL of the source document.\nDublin Core: identifier for resource location.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "source_uri" - ], - "title": "SourceDocument", - "type": "object" - }, - "SourceDocumentTypeEnum": { - "description": "Types of source documents (CIDOC-CRM E55_Type)", - "enum": [ - "ARCHIVAL_DOCUMENT", - "WEBSITE", - "LETTERHEAD", - "STATUTE", - "PUBLICATION", - "DATABASE", - "SIGNAGE" - ], - "title": "SourceDocumentTypeEnum", - "type": "string" - }, - "SourceRecord": { - "additionalProperties": false, - "description": "Individual source record with claims, representing a data extraction from a specific source (API, registry, web scrape, etc.). Contains metadata about the source type, data tier, fetch timestamp, and extracted claims. Used to track provenance of individual data points.\nOntology mapping rationale: - class_uri is prov:Entity because this represents a discrete data entity with\n provenance (when fetched, from where, by what method)\n- close_mappings includes dcat:Distribution as this is similar to a specific\n manifestation/representation of data from a source\n- related_mappings includes pav:retrievedFrom conceptually (the source was retrieved)\n and prov:PrimarySource (the record may be from a primary source)", - "properties": { - "api_endpoint": { - "description": "API endpoint used (alias for has_or_had_api_endpoint for backward compatibility)", - "type": [ - "string", - "null" - ] - }, - "api_version": { - "description": "API version used for the request (e.g., v1, v2)", - "type": [ - "string", - "null" - ] - }, - "archive_path": { - "description": "Path to archived source data file", - "type": [ - "string", - "null" - ] - }, - "claims_extracted": { - "description": "List of claim fields extracted (can be strings or structured objects)", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "data_extracted": { - "description": "List of data types/fields extracted from this source", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "data_tier": { - "$ref": "#/$defs/DataTierEnum", - "description": "Quality tier of this source" - }, - "data_url": { - "description": "Data source URL", - "type": [ - "string", - "null" - ] - }, - "entity_id": { - "description": "Wikidata entity ID (Q-number)", - "type": [ - "string", - "null" - ] - }, - "extraction_method": { - "description": "Method used for data extraction (e.g., docling_pdf_table_extraction, linkup_markdown_extraction)", - "type": [ - "string", - "null" - ] - }, - "extraction_source": { - "description": "List of extraction source methods (e.g., archiveslab_llm_extraction)", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "extraction_timestamp": { - "description": "When extraction was performed (ISO datetime string)", - "type": [ - "string", - "null" - ] - }, - "fetch_timestamp": { - "description": "When data was fetched (ISO datetime string)", - "type": [ - "string", - "null" - ] - }, - "has_or_had_api_endpoint": { - "description": "API endpoint used", - "type": [ - "string", - "null" - ] - }, - "match_method": { - "description": "Method used for matching", - "type": [ - "string", - "null" - ] - }, - "merge_note": { - "description": "Note about merge operations involving this source record", - "type": [ - "string", - "null" - ] - }, - "note": { - "description": "Additional notes about this source record", - "type": [ - "string", - "null" - ] - }, - "notes": { - "description": "Additional notes about the source record extraction", - "type": [ - "string", - "null" - ] - }, - "pdf_count": { - "description": "Number of PDF files processed in this source record", - "type": [ - "integer", - "null" - ] - }, - "place_id": { - "description": "Google Maps place ID", - "type": [ - "string", - "null" - ] - }, - "research_date": { - "description": "Date of research (YYYY-MM-DD format)", - "type": [ - "string", - "null" - ] - }, - "retrieved_at": { - "description": "When data was retrieved (alias for fetch_timestamp)", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "search_queries": { - "description": "Search queries attempted", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "search_query": { - "description": "Search query used to find the source", - "type": [ - "string", - "null" - ] - }, - "search_result": { - "description": "Result of search operation (found, not_found, etc.)", - "type": [ - "string", - "null" - ] - }, - "source_file": { - "description": "Source file name", - "type": [ - "string", - "null" - ] - }, - "source_type": { - "description": "Type identifier (nde_csv_registry, google_maps_api, etc.)", - "type": [ - "string", - "null" - ] - }, - "source_url": { - "description": "Source URL for the data", - "type": [ - "string", - "null" - ] - }, - "source_urls": { - "description": "Multiple source URLs (for sources with multiple pages)", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "url": { - "description": "URL of the source (website URL, etc.)", - "type": [ - "string", - "null" - ] - }, - "wikidata_id": { - "description": "Wikidata entity ID (Q-number) - alternative key to entity_id", - "type": [ - "string", - "null" - ] - } - }, - "title": "SourceRecord", - "type": "object" - }, - "SpatialScope": { - "additionalProperties": false, - "description": "Geographic scope dimension covering countries, regions, cities, and areas.\n\n**Examples**:\n- \"Netherlands\" (country)\n- \"Noord-Holland\" (region/province)\n- \"Amsterdam\" (city)\n- \"Europe\" (continent)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this scope type. Can include:\n- Type URI (e.g., https://nde.nl/ontology/hc/scope-type/temporal)\n- Wikidata Q-number (e.g., Q186408)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "SpatialScope", - "type": "object" - }, - "SpecializedArchive": { - "additionalProperties": false, - "description": "An archive specialized in a specific field, subject area, format, or type of documentation. Specialized archives (Facharchive) focus their collection and preservation activities on particular domains such as architecture, medicine, sports, or other thematic areas, developing deep expertise in their chosen specialization.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SpecializedArchive", - "type": "object" - }, - "SpecializedArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections from archives specialized in specific fields or subject areas.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SpecializedArchiveRecordSetType", - "type": "object" - }, - "SpecializedArchivesCzechia": { - "additionalProperties": false, - "description": "A type of specialized archives specific to the Czech archival system. These archives focus on particular subject areas, formats, or types of documentation within the Czech national archival framework, operating under Czech archival law and regulations.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SpecializedArchivesCzechia", - "type": "object" - }, - "SpecializedArchivesCzechiaRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections from specialized archives within the Czech archival system.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SpecializedArchivesCzechiaRecordSetType", - "type": "object" - }, - "SpecializedCollectionFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Subject-specialized materials.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "SpecializedArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by SpecializedArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "SpecializedCollectionFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SpecializedCollectionFonds", - "type": "object" - }, - "SpecializedDatabase": { - "additionalProperties": false, - "description": "Database that stores specific types of information for specific purposes.\n\n**PURPOSE**: Provide deep, specialized coverage of a particular subject\ndomain, material type, or research area.\n\n**CHARACTERISTICS**:\n- Domain-specific metadata\n- Specialized search and browse\n- Expert curation\n- Deep subject coverage\n\n**EXAMPLES**: RISM (music manuscripts), Grove Art Online, archaeological databases", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q1391125" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AGGREGATOR", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "SpecializedDatabase", - "type": "object" - }, - "Species": { - "additionalProperties": false, - "description": "Species.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Species", - "type": "object" - }, - "SpecificityAnnotation": { - "additionalProperties": false, - "description": "Structured metadata for RAG retrieval specificity scoring.\nDocuments how specific/general a class is for different search templates.\n\n**Scoring Semantics** (LOWER = more broadly relevant):\n- 0.00-0.20: Universal (HeritageCustodian, Location)\n- 0.20-0.40: Broadly useful (Collection, Identifier)\n- 0.40-0.60: Moderately specific (ChangeEvent, PersonProfile)\n- 0.60-0.80: Fairly specific (Archive, Museum, Library)\n- 0.80-1.00: Highly specific (LinkedInConnectionExtraction)", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_agent": { - "description": "Agent (human or AI) that created the specificity annotation.\nUses standard agent identifier format.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_rationale": { - "description": "Explanation for the assigned specificity score.\nDocuments reasoning for the score value.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_score": { - "description": "Specificity score for RAG retrieval filtering (0.0-1.0).\nLOWER scores = more broadly relevant; HIGHER scores = more specific.\n\n**Score Ranges**:\n- 0.00-0.20: Universal (HeritageCustodian, Location)\n- 0.20-0.40: Broadly useful (Collection, Identifier)\n- 0.40-0.60: Moderately specific (ChangeEvent, PersonProfile)\n- 0.60-0.80: Fairly specific (Archive, Museum, Library)\n- 0.80-1.00: Highly specific (LinkedInConnectionExtraction)\n\n**Ontology mapping**: Uses sosa:hasSimpleResult because this is a\ncomputed observation result from RAG relevance algorithms.\n", - "maximum": 1.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "specificity_timestamp": { - "description": "ISO 8601 timestamp when the specificity annotation was created.\nEnables temporal tracking of annotation changes.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - } - }, - "title": "SpecificityAnnotation", - "type": "object" - }, - "SpokenWordContent": { - "additionalProperties": false, - "description": "Spoken word recordings, speeches, oral histories.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "SPOKEN_WORD", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Spoken Word Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "SpokenWordContent", - "type": "object" - }, - "Spokesperson": { - "additionalProperties": false, - "description": "Spokesperson representing the institution to media and public.\n\n**Official Title vs De Facto Work**:\nOften involved in crisis communications, marketing strategy,\nand content creation beyond media relations.\n\n**Common Variants**:\n- Communications Director\n- Press Officer\n- Media Relations Manager\n- PR Manager\n\n**Typical Domains**: All heritage institutions\n\n**Typical Responsibilities**:\n- Media relations\n- Press releases\n- Interview coordination\n- Crisis communications\n- Public statements", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Spokesperson", - "type": "object" - }, - "SpotFeature": { - "additionalProperties": false, - "description": "Spot, building, farm (GeoNames class S)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "SpotFeature", - "type": "object" - }, - "Spotify": { - "additionalProperties": false, - "description": "Spotify artist/creator profile for audio content.\n\n**URL patterns**:\n- https://open.spotify.com/user/{user_id}\n- https://open.spotify.com/show/{podcast_id}\n\n**Features**:\n- Podcasts and audio content\n- Playlists\n- Artist profiles\n\n**Heritage use cases**:\n- Museum podcasts\n- Audio guides (via podcast)\n- Curated playlists for exhibitions\n- Oral history recordings", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "AUDIO", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://open.spotify.com/user/{user_id}", - "https://open.spotify.com/show/{podcast_id}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "Spotify", - "type": "object" - }, - "SprinklerSystem": { - "additionalProperties": false, - "description": "Water sprinkler system (Wet pipe, Dry pipe, Pre-action)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "SprinklerSystem", - "type": "object" - }, - "Staff": { - "additionalProperties": false, - "description": "Staff group or individual.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_quantity": { - "items": { - "$ref": "#/$defs/Quantity" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Staff", - "type": "object" - }, - "Standard": { - "additionalProperties": false, - "description": "A standard that defines an identifier system for heritage institutions or related entities.\n\n**Key Concepts:**\n\n1. **Standard**: The specification itself (ISO 15511, ISO 27729)\n2. **RegistrationAuthority**: Global registry maintainer (OCLC for ISIL, WIPO for ISNI)\n3. **AllocationAgency**: Local allocator by country/domain (National Library of NL for ISIL)\n4. **IdentifierFormat**: Format variants (ISNI with or without spaces)\n\n**Examples:**\n\n- **ISIL** (ISO 15511):\n - defined_by: ISO\n - registration_authority: Danish Agency for Culture and Palaces\n - geographic_scope: Global (160+ countries)\n - formats: \"XX-YYYY\" (country prefix + local code)\n\n- **ISNI** (ISO 27729):\n - defined_by: ISO\n - registration_authority: WIPO (ISNI International Agency)\n - geographic_scope: Global\n - formats: \"0000 0000 0000 0000\" or \"0000000000000000\"\n\n- **Wikidata Q-ID**:\n - defined_by: Wikimedia Foundation (not ISO)\n - registration_authority: Wikimedia Foundation\n - formats: \"Q\" + digits\n\n**Ontology Alignment:**\n\n- skos:ConceptScheme - SKOS concept scheme (identifier systems as schemes)\n- schema:DefinedTermSet - Schema.org defined term set\n- dcterms:Standard - Dublin Core standard reference", - "properties": { - "applicable_schema_types": { - "description": "Schema.org classes that this identifier standard applies to.\n\nThis enables semantic querying like \"which identifiers apply to Museums?\"\n\nExamples:\n- ISIL: [schema:Library, schema:Museum, schema:ArchiveOrganization, \n schema:ResearchOrganization, schema:GovernmentOrganization]\n- ORCID: [schema:Person]\n- ROR: [schema:ResearchOrganization, schema:EducationalOrganization]\n- KvK: [schema:Organization] (all legal entity types)\n\nUses Schema.org class URIs from https://schema.org/\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "canonical_format": { - "anyOf": [ - { - "$ref": "#/$defs/IdentifierFormat" - }, - { - "type": "null" - } - ], - "description": "Reference to the preferred/canonical format for storage.\n\nPoints to one of the formats in the formats list.\n" - }, - "category": { - "description": "Category grouping for this identifier standard.\n\nCategories:\n1. ISO Standards\n2. Authority Files (National Libraries)\n3. Consortium Services\n4. Domain-Specific Art/Cultural Heritage\n5. Archives/Manuscripts\n6. National Quality Standards\n7. Web/Open Data\n8. Religious/Ecclesiastical\n9. Encyclopedias/Reference Works\n10. Architecture/Buildings\n11. Social Media/Web Presence\n12. Commercial/Discovery Platforms\n13. Dutch-Specific\n14. Legal Entity Registries\n15. Japanese Identifiers\n16. Botanical Gardens/Zoos\n17. Higher Education/Research\n18. Numismatic/Philatelic (Collecting)\n19. Monuments/Heritage Sites\n20. Intangible Heritage\n21. Provenance/Art Registry\n22. Persistent Identifiers (Digital)\n23. Heritage NGOs\n24. Religious Heritage\n25. Gastronomy/Culinary Heritage\n", - "type": [ - "string", - "null" - ] - }, - "contributing_agencies": { - "description": "Organizations that contribute data to this identifier system.\n\nONLY applicable for CONSORTIUM_SERVICE type standards.\n\nFor VIAF, this includes 37 national libraries and agencies:\n- Library of Congress (LC)\n- Deutsche Nationalbibliothek (DNB)\n- Biblioth\u00e8que nationale de France (BnF)\n- National Library of the Netherlands (NTA)\n- etc.\n\nContributors are both:\n1. DATA SOURCES: They provide authority records\n2. ALLOCATION AGENCIES: They allocate their own national IDs\n\nSee ContributingAgency class for full modeling.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "country_scope": { - "description": "Geographic areas where this standard applies.\n\nOptions:\n- Empty/null: Global scope (most standards)\n- List of Country: Country-specific standard\n- List of Subregion: Regional standard\n\nExamples:\n- ISIL: Global (used in 160+ countries)\n- KvK number: [NL] (Netherlands only)\n- NUTS codes: [EU member countries]\n", - "items": { - "$ref": "#/$defs/Country" - }, - "type": [ - "array", - "null" - ] - }, - "current_version": { - "description": "Current version of the standard.\n\nExamples:\n- ISO 15511:2019 (3rd edition)\n- ISO 27729:2012 (1st edition)\n", - "type": [ - "string", - "null" - ] - }, - "data_license": { - "description": "License for data from this identifier system.\n\nExamples:\n- VIAF: ODC-BY (Open Data Commons Attribution)\n- ORCID: CC0 (public domain)\n- Wikidata: CC0\n", - "type": [ - "string", - "null" - ] - }, - "defined_by": { - "description": "Standards organization that defines this standard.\n\nExamples:\n- ISIL \u2192 ISO\n- VIAF \u2192 OCLC (in collaboration with national libraries)\n- Wikidata \u2192 Wikimedia Foundation\n", - "type": "string" - }, - "first_published_year": { - "description": "Year the standard was first published.\n\nExamples:\n- ISIL (ISO 15511): 2003\n- ISNI (ISO 27729): 2012\n- VIAF: 2003 (launched)\n", - "type": [ - "integer", - "null" - ] - }, - "formats": { - "description": "Format variants for this identifier standard.\n\nMany standards allow multiple display formats:\n- ISNI: \"0000 0000 0000 0000\" (with spaces) or \"0000000000000000\" (compact)\n- ISIL: \"NL-AmUvA\" (with prefix) or just \"AmUvA\" (local part)\n\nThe canonical_format indicates which is preferred for storage.\n", - "items": { - "$ref": "#/$defs/IdentifierFormat" - }, - "type": [ - "array", - "null" - ] - }, - "glamorcubesfixphdnt_types": { - "description": "GLAMORCUBESFIXPHDNT custodian type codes this standard applies to.\n\nSingle-letter codes:\n- G: Galleries\n- L: Libraries\n- A: Archives\n- M: Museums\n- O: Official institutions\n- R: Research centers\n- C: Corporations\n- U: Unknown\n- B: Botanical gardens/Zoos\n- E: Education providers\n- S: Collecting societies\n- F: Features/Monuments\n- I: Intangible heritage groups\n- X: Mixed\n- P: Personal collections\n- H: Holy sites\n- D: Digital platforms\n- N: NGOs\n- T: Taste/smell heritage\n\nExamples:\n- ISIL: [\"L\", \"A\", \"M\", \"R\", \"O\", \"G\"]\n- BGCI: [\"B\"]\n- UNESCO_WHC: [\"F\", \"H\"]\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "governance_council": { - "description": "The governance body for consortium-type services.\n\nFor VIAF: VIAF Council (every contributor can appoint a voting representative)\nFor ORCID: ORCID Board of Directors\n\nLinks to a StandardsOrganization (or governance subclass).\n", - "type": [ - "string", - "null" - ] - }, - "governance_model": { - "$ref": "#/$defs/GovernanceModelEnum", - "description": "How decisions are made about this identifier system.\n\nValues:\n- ISO_TC: ISO Technical Committee with national body voting\n- COUNCIL: Representative council (VIAF Council)\n- SINGLE_AUTHORITY: Single organization decides (Wikidata)\n- COMMUNITY_CONSENSUS: RFC/vote process (IETF)\n- MEMBERSHIP_BOARD: Elected board (ORCID)\n" - }, - "has_or_had_abbreviation": { - "description": "Common abbreviation/acronym.\n\nExamples: \"ISIL\", \"ISNI\", \"VIAF\", \"ROR\", \"ORCID\"\n", - "type": "string" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "id": { - "description": "Unique identifier for this standard.\n\nRecommended format: lowercase short name.\n\nExamples: \"isil\", \"isni\", \"viaf\", \"wikidata\", \"ror\", \"orcid\"\n", - "type": "string" - }, - "identifier_domain": { - "$ref": "#/$defs/IdentifierDomainEnum", - "description": "What entities this identifier standard applies to.\n\nValues:\n- ORGANIZATION: Libraries, museums, archives (ISIL)\n- PERSON: Authors, creators (ISNI, ORCID)\n- WORK: Publications, creative works (ISBN, DOI)\n- NAME_AUTHORITY: Name records (VIAF)\n- RESEARCH_ORG: Research organizations (ROR)\n- LEGAL_ENTITY: Legal entities (LEI)\n" - }, - "iso_standard_number": { - "description": "ISO standard number if applicable.\n\nExamples:\n- \"ISO 15511\" (ISIL)\n- \"ISO 27729\" (ISNI)\n- \"ISO 2108\" (ISBN)\n- null (Wikidata - not an ISO standard)\n", - "type": [ - "string", - "null" - ] - }, - "lookup_url_template": { - "description": "URL template for looking up identifiers.\n\nUse {id} as placeholder for the identifier value.\n\nExamples:\n- ISIL: \"https://ld.zdb-services.de/resource/organisations/{id}\"\n- ISNI: \"https://isni.org/isni/{id}\"\n- Wikidata: \"https://www.wikidata.org/wiki/{id}\"\n- VIAF: \"https://viaf.org/viaf/{id}\"\n", - "type": [ - "string", - "null" - ] - }, - "name": { - "description": "Full name of the standard.\n\nExamples:\n- \"International Standard Identifier for Libraries and Related Organizations\"\n- \"International Standard Name Identifier\"\n- \"Virtual International Authority File\"\n", - "type": "string" - }, - "registration_authority": { - "description": "Organization that maintains the GLOBAL registry for this standard.\n\nThis is different from AllocationAgency which allocates locally.\n\nExamples:\n- ISIL: Danish Agency for Culture and Palaces\n- ISNI: ISNI International Agency (administered by WIPO)\n- VIAF: OCLC\n", - "type": [ - "string", - "null" - ] - }, - "scope_type": { - "description": "Classification of geographic scope.\n\nValues:\n- GLOBAL: Applies worldwide (ISIL, ISNI, VIAF)\n- NATIONAL: Single country (KvK for NL)\n- REGIONAL: Specific regions (NUTS for EU)\n- DOMAIN_SPECIFIC: Limited to specific institution types\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "standard_description": { - "description": "Description of the standard's purpose and scope", - "type": [ - "string", - "null" - ] - }, - "standard_type": { - "description": "Classification of how this standard/identifier system is governed.\n\nThis is CRITICAL for understanding the authority model:\n\n- **ISO_STANDARD**: Formal ISO standard with TC governance\n - Examples: ISIL (ISO 15511), ISNI (ISO 27729)\n - Has iso_standard_number\n - Governed by ISO Technical Committee\n\n- **CONSORTIUM_SERVICE**: Collaborative aggregation service\n - Examples: VIAF, ORCID, ROR\n - NO ISO number\n - Governed by council/board with contributor representatives\n - has contributing_agencies list\n\n- **PROPRIETARY_SYSTEM**: Single-organization system\n - Examples: Wikidata Q-IDs, GND, LCNAF\n - Controlled by one organization\n\n- **NATIONAL_STANDARD**: Country-specific standard\n - Examples: KvK (NL), Companies House (UK)\n\n- **COMMUNITY_STANDARD**: De facto community standard\n - Examples: DOI (before ISO formalization)\n", - "type": "string" - }, - "website": { - "description": "Official website for the standard or registry.\n\nExamples:\n- https://www.iso.org/standard/57332.html (ISIL)\n- https://isni.org/ (ISNI)\n- https://viaf.org/ (VIAF)\n", - "type": [ - "string", - "null" - ] - }, - "wikidata_id": { - "description": "Wikidata Q-identifier for this standard.\n\nExamples:\n- ISIL: Q470458\n- VIAF: Q54919\n- ORCID: Q51044\n\nEnables linking to Wikidata knowledge graph.\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "name", - "has_or_had_abbreviation", - "defined_by", - "scope_type", - "identifier_domain", - "standard_type" - ], - "title": "Standard", - "type": "object" - }, - "StandardScopeTypeEnum": { - "description": "Classification of geographic scope for standards", - "enum": [ - "GLOBAL", - "NATIONAL", - "REGIONAL", - "DOMAIN_SPECIFIC", - "INSTITUTIONAL" - ], - "title": "StandardScopeTypeEnum", - "type": "string" - }, - "StandardTypeEnum": { - "description": "Classification of how a standard/identifier system is defined and governed.\n\nThis is CRITICAL for understanding the authority model:\n- ISO_STANDARD: Formal ISO/IEC standard with TC governance\n- CONSORTIUM_SERVICE: Collaborative service (VIAF, ORCID)\n- PROPRIETARY_SYSTEM: Single-organization system (Wikidata)", - "enum": [ - "ISO_STANDARD", - "CONSORTIUM_SERVICE", - "PROPRIETARY_SYSTEM", - "NATIONAL_STANDARD", - "COMMUNITY_STANDARD", - "QUALITY_STANDARD", - "COMMERCIAL_SERVICE", - "GOVERNMENT_REGISTRY", - "INTERNATIONAL_TREATY", - "CROWDSOURCED", - "COMMUNITY_NONPROFIT", - "OPEN_STANDARD", - "ACADEMIC_DATABASE", - "CONTROLLED_VOCABULARY", - "QUALITY_CERTIFICATION", - "EXTRACTED_DATA" - ], - "title": "StandardTypeEnum", - "type": "string" - }, - "StandardsOrganization": { - "additionalProperties": false, - "description": "An organization that defines and maintains identifier standards.\n\n**Key Distinction from RegistrationAuthority:**\n\n- StandardsOrganization: DEFINES the standard (rules, format, governance)\n- RegistrationAuthority: MAINTAINS a registry of identifiers following the standard\n\n**Examples:**\n\n- **ISO** (International Organization for Standardization)\n - Defines: ISIL (ISO 15511), ISNI (ISO 27729), VIAF structure\n - Does NOT directly maintain registries\n\n- **ANSI** (American National Standards Institute)\n - US national standards body\n - Defines standards in collaboration with ISO\n\n- **W3C** (World Wide Web Consortium)\n - Defines: URI/URL format, SKOS, RDF\n - Web-focused standards\n\n- **IETF** (Internet Engineering Task Force)\n - Defines: UUID format (RFC 4122), URN (RFC 8141)\n - Internet protocol standards\n\n- **OCLC** (Online Computer Library Center)\n - Defines: WorldCat identifiers\n - Also acts as RegistrationAuthority for some identifiers\n\n- **Museumvereniging** (Netherlands Museums Association)\n - Defines: Museumnorm (Netherlands museum quality standard)\n - Wikidata: Q2335495\n - National association representing Dutch museums\n\n- **Stichting Museumregister Nederland**\n - Maintains: Museumregister Nederland (certified museum list)\n - Wikidata: Q110989623\n - Grants official museum status in Netherlands based on Museumnorm\n\n**Relationship to Standards:**\n\nA StandardsOrganization defines one or more Standard classes via the\ndefined_by inverse relationship:\n- Standard.defined_by \u2192 StandardsOrganization\n\n**Ontology Alignment:**\n\n- org:FormalOrganization - W3C Organization Ontology\n- schema:Organization - Schema.org\n- foaf:Organization - FOAF", - "properties": { - "has_or_had_abbreviation": { - "description": "Common abbreviation/acronym.\n\nExamples: \"ISO\", \"ANSI\", \"W3C\", \"IETF\", \"OCLC\"\n", - "type": "string" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "headquarters_country": { - "description": "Country where headquarters is located (ISO 3166-1 alpha-2).\n\nExamples:\n- ISO: \"CH\" (Geneva, Switzerland)\n- ANSI: \"US\" (Washington DC)\n- W3C: \"US\" (MIT) + \"FR\" (ERCIM) + \"JP\" (Keio)\n", - "pattern": "^[A-Z]{2}$", - "type": [ - "string", - "null" - ] - }, - "headquarters_country_code": { - "description": "Country where the organization is headquartered (ISO 3166-1 alpha-2 code).\n\nFor intergovernmental organizations, use primary headquarters location.\n\nExamples:\n- ISO: CH (Geneva)\n- OCLC: US (Dublin, Ohio)\n- Museumvereniging: NL\n", - "pattern": "^[A-Z]{2}$", - "type": [ - "string", - "null" - ] - }, - "id": { - "description": "Unique identifier for this standards organization.\n\nRecommended format: lowercase acronym or short name.\n\nExamples: \"iso\", \"ansi\", \"w3c\", \"ietf\", \"oclc\"\n", - "type": "string" - }, - "is_or_was_founded_through": { - "anyOf": [ - { - "$ref": "#/$defs/FoundingEvent" - }, - { - "type": "null" - } - ], - "description": "The founding event for this standards organization.\nMigrated from founded_year per slot_fixes.yaml revision.\n\nExamples:\n- ISO: 1947\n- ANSI: 1918\n- W3C: 1994\n- IETF: 1986\n" - }, - "member_countries": { - "description": "Countries that are members of this organization (for intergovernmental orgs).\n\nList of ISO 3166-1 alpha-2 country codes.\n\nExample for ISO: [\"NL\", \"US\", \"JP\", \"DE\", ...] (167 member countries)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "name": { - "description": "Official full name of the standards organization.\n\nExamples:\n- \"International Organization for Standardization\"\n- \"American National Standards Institute\"\n- \"World Wide Web Consortium\"\n", - "type": "string" - }, - "organization_description": { - "description": "Description of the organization's mission and scope", - "type": [ - "string", - "null" - ] - }, - "organization_type": { - "$ref": "#/$defs/StandardsOrganizationTypeEnum", - "description": "Type of standards organization.\n\nValues:\n- INTERGOVERNMENTAL: International government collaboration (ISO, UN)\n- NATIONAL: National standards body (ANSI, DIN, BSI, NEN)\n- INDUSTRY_CONSORTIUM: Industry-led organization (W3C, IETF)\n- LIBRARY_COOPERATIVE: Library/cultural heritage focus (OCLC, IFLA)\n- PROFESSIONAL_ASSOCIATION: Professional body (SAA, ALA)\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "standards_maintained": { - "description": "Standards defined by this organization.\n\nInverse relationship: Standard.defined_by \u2192 StandardsOrganization\n\nNote: This is the inverse side; the forward relationship is on Standard.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "website": { - "description": "Official website URL.\n\nExamples:\n- https://www.iso.org/\n- https://www.ansi.org/\n- https://www.w3.org/\n", - "type": [ - "string", - "null" - ] - }, - "wikidata_id": { - "description": "Wikidata Q-ID for this standards organization.\n\nExamples:\n- ISO: Q15028\n- OCLC: Q190593\n- Museumvereniging: Q2335495\n- Stichting Museumregister Nederland: Q110989623\n", - "pattern": "^Q[0-9]+$", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "name", - "has_or_had_abbreviation", - "organization_type" - ], - "title": "StandardsOrganization", - "type": "object" - }, - "StandardsOrganizationTypeEnum": { - "description": "Classification of standards organization types", - "enum": [ - "INTERGOVERNMENTAL", - "NATIONAL", - "INDUSTRY_CONSORTIUM", - "LIBRARY_COOPERATIVE", - "PROFESSIONAL_ASSOCIATION", - "NATIONAL_MUSEUM_ASSOCIATION", - "CERTIFICATION_BODY", - "GOVERNANCE_COUNCIL" - ], - "title": "StandardsOrganizationTypeEnum", - "type": "string" - }, - "StateArchives": { - "additionalProperties": false, - "description": "An archive operated by and for a state (subnational entity), responsible for preserving records of state government agencies, courts, and other state-level institutions. State archives (Staatsarchive) serve as the official repository for historical records of state administration and governance, distinct from national or federal archives.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "StateArchives", - "type": "object" - }, - "StateArchivesRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections of state government records and administrative documentation.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "StateArchivesRecordSetType", - "type": "object" - }, - "StateArchivesSection": { - "additionalProperties": false, - "description": "A section of a national archive in Italy (sezione di archivio di Stato). These are branch offices or divisions of the Italian state archives system, typically located in smaller cities or towns to provide local access to archival services and preserve records of regional significance within the Italian national archival framework.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "StateArchivesSection", - "type": "object" - }, - "StateArchivesSectionRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections from Italian state archive sections.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "StateArchivesSectionRecordSetType", - "type": "object" - }, - "StateDistrictArchive": { - "additionalProperties": false, - "description": "A type of archive in the Czech Republic operating at the district (okres) level. State district archives (Bezirksarchiv) preserve records from local government, courts, and other administrative bodies within their respective districts, forming part of the Czech national archival network.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "StateDistrictArchive", - "type": "object" - }, - "StateDistrictArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections from Czech state district archives.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "StateDistrictArchiveRecordSetType", - "type": "object" - }, - "StateDistrictFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for State district administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "StateDistrictArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by StateDistrictArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "StateDistrictFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "StateDistrictFonds", - "type": "object" - }, - "StateGovernmentFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for State/provincial government administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "StateArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by StateArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "StateGovernmentFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "StateGovernmentFonds", - "type": "object" - }, - "StateRegionalArchiveCzechia": { - "additionalProperties": false, - "description": "A state regional archive in the Czech Republic, responsible for preserving and providing access to historical records at the regional (kraj) level. These archives supervise district archives within their region and serve as the primary archival authority for regional government records and historical documentation.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "StateRegionalArchiveCzechia", - "type": "object" - }, - "StateRegionalArchiveCzechiaRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections from Czech state regional archives.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "StateRegionalArchiveCzechiaRecordSetType", - "type": "object" - }, - "StateSectionFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for State archives section records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "StateArchivesSection", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by StateArchivesSection custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "StateSectionFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "StateSectionFonds", - "type": "object" - }, - "StatementTypeEnum": { - "description": "Types of organizational purpose statements.\nHeritage custodians often publish distinct mission, vision, and goal statements,\neach serving different communicative functions.", - "enum": [ - "mission", - "vision", - "goal", - "value", - "motto" - ], - "title": "StatementTypeEnum", - "type": "string" - }, - "StationAdministrationSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Radio station records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "RadioArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by RadioArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "StationAdministrationSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "StationAdministrationSeries", - "type": "object" - }, - "StatisticalContent": { - "additionalProperties": false, - "description": "Statistical data and analyses.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "STATISTICAL", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Statistical Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "StatisticalContent", - "type": "object" - }, - "Status": { - "additionalProperties": false, - "description": "Generic status or state representation for various entities.\n\n**Purpose**:\nProvides structured representation of status information,\nparticularly for indicating default/primary states.\n\n**Use Cases**:\n- Default language status (is_default: true)\n- Processing status\n- Availability status\n- Publication status\n\n**Migration Note**:\nCreated per slot_fixes.yaml revision for default_audio_language\nand default_language migrations.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Status", - "type": "object" - }, - "Storage": { - "additionalProperties": false, - "description": "Physical storage facility where heritage collections are preserved.\n\n**DEFINITION**:\n\nA Storage represents a dedicated facility or area for preserving\nheritage materials. This includes archive depots, museum storage\nvaults, library stacks, and specialized storage for different\nmaterial types.\n\n**Wikidata Alignment**:\n- Q1191732 (depot/storage facility)\n- Q1454974 (archive storage)\n- Q1280667 (art storage)\n\n**HC Ontology Extension (hc-storage.ttl)**:\n\nPrimary class: `hc:StorageFacility` (subclass of `crm:E27_Site`)\n\nThe Heritage Custodian storage ontology extension provides specialized\nclasses and properties for heritage storage management:\n\n- `hc:StorageFacility` - Top-level storage facility (THIS CLASS)\n- `hc:StorageUnit` - Individual compartments, shelves, cabinets\n- `hc:EnvironmentalZone` - Climate-controlled areas\n- `hc:StorageAssignment` - Assignment of objects to locations\n- `hc:StorageConditionAssessment` - Environmental assessments\n- `hc:EnvironmentalRequirement` - Climate specifications\n- `hc:StorageCapacitySpecification` - Capacity measurements\n\nKey HC properties used:\n- `hc:hasStorageSection` - Links facility to zones/units (extends P59)\n- `hc:currentlyStores` - Links location to objects (extends P55)\n- `hc:hasEnvironmentalRequirement` - Links to climate specs\n- `hc:hasStorageCapacity` - Links to capacity measurements\n\nSee: `frontend/public/ontology/hc-storage.ttl`\n\n**CIDOC-CRM Alignment (v7.1.3)**:\n\nBase class: `crm:E27_Site` - \"This class comprises pieces of land\nor sea floor. In contrast to the purely geometric notion of E53 Place,\nthis class describes constellations of matter on the surface of the\nEarth or other celestial body, which can be represented by photographs,\npaintings and maps.\"\n\n**Location Predicate Hierarchy**:\n\n| Predicate | Meaning | Use Case |\n|-----------|---------|----------|\n| P53 has former or current location | Any location in history | General location tracking |\n| P54 has current permanent location | Reserved/designated location | Permanent storage assignment |\n| P55 has current location | Actual current location | Where object is NOW |\n\nNote: P55 is a specialization of P53. An object may have a permanent\nlocation (P54) but currently be elsewhere (P55), e.g., on loan.\n\n**PREMIS Alignment**:\n\n`premis:StorageLocation` - \"Information needed to retrieve a physical\nitem from its physical storage location or a file from the storage\nsystem, or to access a bitstream within a file.\"\n\nPREMIS also provides:\n- `premis:StorageMedium` - Physical medium (tape, disk, etc.)\n- `premis:storedAt` - Links objects to storage location\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nCustodian (hub)\n \u2502\n \u251c\u2500\u2500 storage_facilities \u2192 Storage[] (THIS CLASS)\n \u2502 \u251c\u2500\u2500 storage_type (StorageTypeEnum)\n \u2502 \u251c\u2500\u2500 storage_location \u2192 AuxiliaryPlace (physical site)\n \u2502 \u251c\u2500\u2500 stores_collections \u2192 CustodianCollection[]\n \u2502 \u251c\u2500\u2500 storage_conditions \u2192 StorageCondition[]\n \u2502 \u251c\u2500\u2500 has_or_had_policy \u2192 ConditionPolicy/StorageConditionPolicy\n \u2502 \u251c\u2500\u2500 has_section \u2192 Storage[] (subdivisions via P59)\n \u2502 \u251c\u2500\u2500 move_events \u2192 MoveEvent[] (objects moved to/from)\n \u2502 \u2514\u2500\u2500 custody_transfers \u2192 CustodyTransferEvent[]\n \u2502\n \u2514\u2500\u2500 place_designation \u2192 CustodianPlace\n \u2514\u2500\u2500 auxiliary_places \u2192 AuxiliaryPlace[]\n \u2514\u2500\u2500 hosts_storage \u2192 Storage (inverse)\n```\n\n**KEY DISTINCTION**:\n\n- **Storage**: The FUNCTIONAL role of preserving collections\n- **AuxiliaryPlace**: The PHYSICAL location/building\n- **StorageCondition**: The ACTUAL observed state\n- **StorageConditionPolicy**: The INTENDED/designed conditions\n\nA single AuxiliaryPlace may host multiple Storage facilities\n(e.g., climate-controlled art storage + general depot in same building).\n\n**USE CASES**:\n\n1. **Archive Depot**:\n - storage_type: ARCHIVE_DEPOT\n - standards_applied: [ISO_TR_19815_2018, EN_16893_2018]\n - climate control: 18\u00b0C, 50% RH\n \n2. **Cold Storage for Film**:\n - storage_type: COLD_STORAGE\n - standards_applied: [IMAGE_PERMANENCE_INSTITUTE]\n - climate control: -18\u00b0C, 30% RH\n \n3. **Open Study Storage**:\n - storage_type: OPEN_STORAGE\n - accessible to researchers\n - combined storage/study function", - "properties": { - "current_utilization_percent": { - "description": "Current storage utilization as percentage of total capacity.\n\nHelps identify when new storage is needed.\nUpdate date should be tracked in last assessment.\n", - "maximum": 100.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "has_or_had_capacity": { - "description": "The storage or holding capacity of an entity.\nRULE 53 MIGRATION: This generic slot consolidates: - capacity_cubic_meters (volume capacity in m\u00b3) - capacity_linear_meters (shelf/storage length in linear meters) - capacity_item (item count capacity) - capacity_description (textual capacity description)\nUses Capacity class which wraps Quantity for structured measurements with units, temporal validity, and descriptions.\n**ONTOLOGY ALIGNMENT**: - schema:floorSize (close - physical space) - qudt:Quantity (related - measured values) - premis:StorageLocation (related - storage capacity)\n**EXAMPLES**:\nArchive depot:\n has_or_had_capacity:\n capacity_value: 8000\n has_or_had_measurement_unit:\n has_or_had_type: LINEAR_METER\n has_or_had_symbol: \"m\"\n capacity_type: SHELF_LENGTH\n\nMuseum storage:\n has_or_had_capacity:\n capacity_value: 2500\n has_or_had_measurement_unit:\n has_or_had_type: CUBIC_METER\n has_or_had_symbol: \"m\u00b3\"\n capacity_type: VOLUME\n\nArchive box capacity:\n has_or_had_capacity:\n capacity_value: 50000\n has_or_had_measurement_unit:\n has_or_had_type: ITEM\n has_or_had_symbol: \"boxes\"\n capacity_type: ITEM_COUNT", - "items": { - "$ref": "#/$defs/Capacity" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_stored_at": { - "anyOf": [ - { - "$ref": "#/$defs/StorageLocation" - }, - { - "type": "null" - } - ], - "description": "Links an entity to its storage location.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this relationship\nmay be historical - storage locations change over time (relocations, moves).\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `premis:storedAt` - PREMIS property linking \n objects to their storage location\n- **Close**: `crm:P55_has_current_location` - CIDOC-CRM current location\n- **Broad**: `schema:location` - Schema.org general location\n\n**Use Cases**:\n- Storage facility physical location (AuxiliaryPlace)\n- Digital object storage infrastructure\n- Collection item storage assignment\n\n**PREMIS Semantics**:\n\"Information needed to retrieve a physical item from its physical storage \nlocation or a file from the storage system, or to access a bitstream \nwithin a file.\"\n" - }, - "managed_by": { - "description": "Management structure for the gift shop.\n\nOptions:\n- In-house: Managed by museum/archive staff\n- Outsourced: Third-party retail operator\n- Franchise: Licensed operation\n- Partnership: Joint venture with retail partner\n\nInclude operator name if outsourced.\n", - "type": [ - "string", - "null" - ] - }, - "provides_or_provided": { - "description": "Relates an agent or service to the resource or service it provides.\nMIGRATED from `entity_types_covered` (via ContributingAgency) and `funding_program` (via OfficialInstitutionType).", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "refers_to_custodian": { - "description": "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "standards_applied": { - "description": "Storage standards that this facility is designed to meet.\n\nReferences StorageStandardEnum values for ISO, EN, or other\nrecognized standards governing storage conditions.\n\nDublin Core: conformsTo for standards compliance.\n", - "items": { - "$ref": "#/$defs/StorageStandardEnum" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "refers_to_custodian", - "has_or_had_identifier", - "has_or_had_label", - "has_or_had_type" - ], - "title": "Storage", - "type": "object" - }, - "StorageCondition": { - "additionalProperties": false, - "description": "An observation-based report of actual storage conditions.\n\n**DEFINITION**:\n\nStorageCondition represents a specific assessment or observation of\na storage facility's actual state at a point in time. Multiple\nobservations can exist for the same storage facility, from different\nobservers with potentially different findings.\n\n**CRITICAL DISTINCTION**:\n\n- **StorageCondition** (THIS CLASS): What IS - actual observed state\n- **StorageConditionPolicy**: What SHOULD BE - designed/intended conditions\n\nThe gap between policy and observed condition is often significant\nand represents a critical transparency concern.\n\n**PiCo OBSERVATION PATTERN**:\n\nFollowing the Person in Context (PiCo) ontology pattern, observations\nare NOT assertions of truth but reports from specific observers with\ntheir own perspectives and potential biases.\n\nA journalist discovering white ants in a storage facility creates an\nobservation with:\n- observer_type: JOURNALIST\n- condition_status: CRITICAL\n- category: PEST_CONTROL\n- observation_notes: \"White ants discovered in main document depot\"\n\nThis observation exists ALONGSIDE any official self-assessment, without\nrequiring reconciliation of conflicting reports.\n\n**PROV-O ALIGNMENT**:\n\n`prov:Activity` - \"An activity is something that occurs over a period\nof time and acts upon or with entities; it may include consuming,\nprocessing, transforming, modifying, relocating, using, or generating\nentities.\"\n\nThe observation activity:\n- `prov:wasAssociatedWith` \u2192 observer (prov:Agent)\n- `prov:used` \u2192 storage facility being observed\n- `prov:atTime` \u2192 observation timestamp\n- `prov:generated` \u2192 this condition report\n\n**RELATIONSHIP TO STORAGE CLASS**:\n\n```\nStorage\n \u2502\n \u251c\u2500\u2500 storage_conditions[] \u2192 StorageCondition (THIS CLASS)\n \u2502 \u251c\u2500\u2500 Observation 1: Internal staff, 2024-06 \u2192 GOOD\n \u2502 \u251c\u2500\u2500 Observation 2: Journalist, 2024-09 \u2192 CRITICAL (pest issue)\n \u2502 \u2514\u2500\u2500 Observation 3: Government inspector, 2024-10 \u2192 POOR\n \u2502\n \u2514\u2500\u2500 condition_policy \u2192 StorageConditionPolicy (what SHOULD be)\n```\n\n**USE CASES**:\n\n1. **Regular Internal Assessment**:\n - observer_type: INTERNAL_STAFF\n - is_official_assessment: true\n - category_assessments: Temperature=GOOD, Humidity=GOOD\n \n2. **Investigative Journalism**:\n - observer_type: JOURNALIST\n - is_official_assessment: false\n - observation_notes: \"Photographs show water damage in basement storage\"\n - evidence_documentation: [URLs to published article]\n \n3. **Government Inspection**:\n - observer_type: GOVERNMENT_INSPECTOR\n - is_official_assessment: true (regulatory authority)\n - compliance_status: \"NON_COMPLIANT\"\n - remediation_required: true\n \n4. **Automated Monitoring**:\n - observer_type: AUTOMATED_SYSTEM\n - category: TEMPERATURE\n - measurement_value: \"23.5\u00b0C\"\n - threshold_exceeded: true", - "properties": { - "has_or_had_category": { - "description": "Links an entity to its category or classification.\nCategories represent hierarchical or faceted classifications: - Subject categories (art, science, history) - Thematic categories (Dutch Golden Age, WWII, Islamic art) - Material categories (paintings, manuscripts, specimens) - Geographic categories (European, Asian, African) - Temporal categories (Medieval, Renaissance, Contemporary)\nThe Category class enables structured categorization with: - Category name and description - Category type (subject, theme, material, geographic, temporal) - Hierarchical relationships (broader/narrower terms) - Provenance tracking", - "items": { - "$ref": "#/$defs/AssessmentCategory" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_provenance": { - "description": "Provenance information for this data element.\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\nBroadened from ProvenanceBlock to uriorcurie to resolve OWL ambiguous type warnings. This allows classes to narrow via slot_usage to: - `ProvenanceBlock` for comprehensive provenance tracking - `SourceDocument` for source document references - String URIs for simple provenance references\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming follows RiC-O convention indicating that provenance associations can change over time: - Additional provenance may be added as data is enriched - Provenance may be updated when verification occurs - Historical provenance preserved through versioning\n**REPLACES**: - `all_data_real` (auto-generated stub, string range) - `is_or_was_real` (RealnessStatus typed class) - `has_all_data_real_flag` (boolean flag, no provenance) - `has_or_had_observation_source_document` (bespoke slot, Rule 55)\n**EXAMPLE**: ```yaml has_or_had_provenance:\n data_source: \"public_linkedin_profile\"\n extraction_date: \"2025-01-14T12:00:00Z\"\n confidence_score: 0.95\n note: \"Verified production data\"\n```", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_status": { - "anyOf": [ - { - "$ref": "#/$defs/ComplianceStatus" - }, - { - "type": "null" - } - ], - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/StorageConditionCategoryAssessment" - }, - "type": [ - "array", - "null" - ] - }, - "indicates_or_indicated": { - "anyOf": [ - { - "$ref": "#/$defs/ConservationReview" - }, - { - "type": "null" - } - ], - "description": "Links an entity (e.g., an analysis or enrichment) to what it indicates or signifies.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"indicatesOrIndicated\" naming follows RiC-O convention indicating this relationship\nmay be historical.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:generated` - if the indication is a result\n- **Related**: `schema:result`\n\n**Usage**:\nUsed to link enrichments (like WhatsAppEnrichment) to the assessment result\n(DigitalProfessionalAssessment).\n\n**Pattern**:\n```\nWhatsAppEnrichment\n \u2514\u2500\u2500 indicates_or_indicated \u2192 DigitalProfessionalAssessment\n \u251c\u2500\u2500 estimates_or_estimated \u2192 DigitalConfidence\n \u2514\u2500\u2500 emphasizes_or_emphasized \u2192 DigitalProficiency\n```\n\n**Migrated From** (per slot_fixes.yaml):\n- `digital_professional` \u2192 indicates_or_indicated + DigitalProficiency/Assessment\n\n**Cardinality**:\nSingle or multivalued depending on context.\n" - }, - "is_official_assessment": { - "description": "Whether this is an official institutional assessment or external observation.\n\nTRUE = Official self-assessment or authorized inspection.\nFALSE = External/investigative observation not sanctioned by institution.\n\n**Important for interpretation**: Official assessments represent what\nthe institution claims; external observations may contradict this.\n", - "type": "boolean" - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/GenerationEvent" - }, - "type": [ - "array", - "null" - ] - }, - "measurement_data": { - "description": "Structured measurement data from sensors or instruments.\n\nJSON-LD compatible structure for environmental readings:\n- temperature_celsius\n- humidity_percent\n- lux_level\n- particulate_count\n- etc.\n", - "type": [ - "string", - "null" - ] - }, - "observation_date": { - "description": "Date when this observation was made.\n\nFor automated systems: timestamp of data collection.\nFor human observers: date of site visit or assessment.\n\nPROV-O: atTime specifies instant at which activity occurred.\n", - "format": "date", - "type": "string" - }, - "observation_note": { - "description": "Free-text notes documenting the observation.\nMaps to skos:note for observational documentation.\nInclude: - What was observed - Context of the observation - Specific concerns or findings - Recommendations if any", - "type": [ - "string", - "null" - ] - }, - "observation_period": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Time period covered by this observation if not a point-in-time.\n\nUse for assessments covering a period (e.g., quarterly review)\nrather than a single site visit.\n\nCIDOC-CRM: P4_has_time-span for temporal extent.\n" - }, - "observer_affiliation": { - "description": "Organization the observer represents or works for.\n\nFor journalists: newspaper/media outlet.\nFor inspectors: government agency.\nFor consultants: consulting firm.\n\nPROV-O: actedOnBehalfOf indicates delegated authority.\n", - "type": [ - "string", - "null" - ] - }, - "observer_name": { - "description": "Name of the individual or team who made this observation.\nOntology mapping: foaf:name is the FOAF property for a person's name. May be anonymized for whistleblowers or confidential sources.", - "type": [ - "string", - "null" - ] - }, - "observer_type": { - "$ref": "#/$defs/StorageObserverTypeEnum", - "description": "Type of observer who made this assessment.\n\n**CRITICAL**: Determines how to interpret the observation.\n- INTERNAL_STAFF may underreport issues\n- JOURNALIST may have discovered unreported problems\n- GOVERNMENT_INSPECTOR has regulatory authority\n- WHISTLEBLOWER may have insider knowledge\n\nPROV-O: wasAssociatedWith links activity to responsible agent.\n" - }, - "overall_status": { - "$ref": "#/$defs/StorageConditionStatusEnum", - "description": "Overall condition status based on this observation.\n\nAggregate assessment across all categories observed.\nIndividual category assessments may vary.\n\nPREMIS: hasOutcome for preservation action results.\n" - }, - "refers_to_storage": { - "description": "The storage facility being assessed.\n\nLinks this observation to the Storage instance it describes.\n\nPROV-O: used indicates entities used in activity.\n", - "type": "string" - }, - "remediation_note": { - "description": "Notes on required or recommended remediation actions.\nMaps to skos:note for action/recommendation documentation.", - "type": [ - "string", - "null" - ] - }, - "remediation_required": { - "description": "Whether remediation action is required based on this observation.\n\nTRUE = Issues found that require corrective action.\nFALSE = No immediate action needed.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "supersedes_or_superseded": { - "description": "Entity that this one supersedes, or that supersedes this one.\nUse when a new version corrects or updates a previous one. Direction is determined by context - the slot represents the relationship in either direction.\nPROV-O: wasRevisionOf for updated versions.\nMigrated from bespoke `supersede` slot per Rule 53/56 (2026-01-17). Original slot_uri (hc:supersedes) preserved in exact_mappings.", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "is_official_assessment", - "observation_date", - "observer_type", - "overall_status", - "refers_to_storage" - ], - "title": "StorageCondition", - "type": "object" - }, - "StorageConditionCategoryAssessment": { - "additionalProperties": false, - "description": "Individual category assessment within a StorageCondition observation.\n\nAllows granular reporting of different condition categories with\nindependent status levels.", - "properties": { - "has_or_had_category": { - "description": "Links an entity to its category or classification.\nCategories represent hierarchical or faceted classifications: - Subject categories (art, science, history) - Thematic categories (Dutch Golden Age, WWII, Islamic art) - Material categories (paintings, manuscripts, specimens) - Geographic categories (European, Asian, African) - Temporal categories (Medieval, Renaissance, Contemporary)\nThe Category class enables structured categorization with: - Category name and description - Category type (subject, theme, material, geographic, temporal) - Hierarchical relationships (broader/narrower terms) - Provenance tracking", - "items": { - "$ref": "#/$defs/AssessmentCategory" - }, - "type": "array" - }, - "has_or_had_measurement": { - "description": "A measurement observation associated with this entity.\n\nFollows RiC-O temporal naming convention (Rule 39) to indicate the\nrelationship may be current or historical.\n\nReplaces category_measurement (simple string) with structured\nMeasurement class per Rule 53/56.\n", - "items": { - "$ref": "#/$defs/Measurement" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_status": { - "$ref": "#/$defs/CategoryStatus", - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_category", - "has_or_had_status" - ], - "title": "StorageConditionCategoryAssessment", - "type": "object" - }, - "StorageConditionCategoryEnum": { - "description": "Categories of storage conditions that can be assessed independently.\nEach category may have different status levels.\n\nBased on ISO/TR 19815:2018 environmental management framework\nand EN 16893:2018 building specifications.", - "enum": [ - "TEMPERATURE", - "HUMIDITY", - "LIGHT", - "AIR_QUALITY", - "PEST_CONTROL", - "FIRE_SAFETY", - "FLOOD_WATER", - "SECURITY", - "STRUCTURAL", - "SPACE_CAPACITY" - ], - "title": "StorageConditionCategoryEnum", - "type": "string" - }, - "StorageConditionPolicy": { - "additionalProperties": false, - "description": "Policy defining target storage conditions for a facility or zone.\n\n**MIGRATED** humidity and temperature slots to structured classes (Rule 53).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_or_was_approved_by": { - "anyOf": [ - { - "$ref": "#/$defs/Approver" - }, - { - "type": "null" - } - ], - "description": "The agent (person or organization) that approved or authorized something.\n**SEMANTIC PATTERN**:\nThis slot follows the RiC-O temporal predicate pattern (is_or_was_*) to indicate that approval is a historical event - something was approved by someone at some point in time.\n**REPLACES**:\n- `approved_by` - Simple string field for approver name\n**RANGE OPTIONS**:\n- string: Simple approver name (backwards compatible) - Approver: Structured approver with identity link\nClasses should use slot_usage to specify appropriate range." - }, - "is_or_was_effective_at": { - "description": "The date or timestamp when a policy, status, or entity became effective.\nMIGRATED from `effective_date`, `status_effective_date`, `policy_effective_date` per Rule 53. Follows RiC-O temporal naming convention.", - "format": "date", - "type": "string" - }, - "is_or_was_expired_at": { - "description": "The date or timestamp when a policy, status, or entity expired or ceased to be effective.\nMIGRATED from `policy_effective_to` per Rule 53. Follows RiC-O temporal naming convention.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "light_max_lux": { - "description": "Maximum light level in lux for storage areas.\n\nEN 15757:2010 recommends:\n- <50 lux for highly sensitive materials (textiles, works on paper)\n- <150 lux for moderately sensitive (oil paintings)\n- <300 lux for low sensitivity (stone, metal)\n", - "type": [ - "number", - "null" - ] - }, - "note": { - "description": "Optional notes about the extraction process.\nMay reference raw source files or explain any issues.\n", - "type": [ - "string", - "null" - ] - }, - "particulate_max": { - "description": "Maximum particulate count (particles per cubic meter).\n\nHEPA filtration typically required for heritage storage.\n", - "type": [ - "number", - "null" - ] - }, - "pest_management_required": { - "description": "Whether Integrated Pest Management (IPM) program is required.\n\nAll heritage storage should have IPM including:\n- Monitoring traps\n- Quarantine procedures\n- Treatment protocols\n- Regular inspections\n", - "type": [ - "boolean", - "null" - ] - }, - "policy_review_date": { - "description": "Date when policy is due for review.\n\nBest practice: annual policy review.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "requires_or_required": { - "description": "Generic predicate indicating something is/was required.\n\nFollows RiC-O temporal naming convention (has_or_had, is_or_was, requires_or_required)\nto indicate the requirement relationship may be current or historical.\n\n**Usage**:\n- AccessPolicy requires_or_required Appointment\n- Collection requires_or_required SpecialHandling\n- ReadingRoom requires_or_required Registration\n\nThis slot provides the predicate; range is specified in class slot_usage\nto narrow to specific requirement types (Appointment, Credential, etc.)\n", - "items": { - "$ref": "#/$defs/FireSuppressionSystem" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "standards_compliance": { - "description": "Standards this policy is designed to meet.\n\nReference to StorageStandardEnum values.\n", - "items": { - "$ref": "#/$defs/StorageStandardEnum" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "is_or_was_effective_at" - ], - "title": "StorageConditionPolicy", - "type": "object" - }, - "StorageConditionStatusEnum": { - "description": "Status values indicating the actual observed condition of storage\nfacilities. These represent REAL conditions as observed, which may\ndiffer significantly from policy requirements or designed specifications.\n\n**CRITICAL DISTINCTION**:\n- StorageConditionPolicy = What SHOULD be (designed conditions)\n- StorageCondition = What IS (actual observed state)\n\nObservations can come from internal staff, external inspectors,\njournalists, researchers, or any observer with access to the facility.\n\nAligns with PREMIS premis:OutcomeStatus for preservation outcomes.", - "enum": [ - "EXCELLENT", - "GOOD", - "ACCEPTABLE", - "CONCERNING", - "POOR", - "CRITICAL", - "UNKNOWN", - "NOT_APPLICABLE" - ], - "title": "StorageConditionStatusEnum", - "type": "string" - }, - "StorageEquipment": { - "additionalProperties": false, - "description": "Furniture and equipment for collection storage.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "StorageEquipment", - "type": "object" - }, - "StorageLocation": { - "additionalProperties": false, - "description": "A location where heritage materials are stored, either physical or digital.\n\n**PREMIS Alignment**:\n`premis:StorageLocation` - \"Information needed to retrieve a physical \nitem from its physical storage location or a file from the storage \nsystem, or to access a bitstream within a file.\"\n\n**Purpose**:\nStorageLocation provides a unified model for:\n1. **Physical storage** - References to AuxiliaryPlace instances\n (depots, vaults, shelves, cabinets)\n2. **Digital storage** - Cloud infrastructure, repositories, archive services\n (AWS S3, DANS, Internet Archive)\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nStorage (facility)\n \u2514\u2500\u2500 is_or_was_stored_at \u2192 StorageLocation (THIS CLASS)\n \u251c\u2500\u2500 physical_location \u2192 AuxiliaryPlace (for physical)\n \u2514\u2500\u2500 storage_url (for digital infrastructure)\n\nDigitalObject\n \u2514\u2500\u2500 is_or_was_stored_at \u2192 StorageLocation\n \u2514\u2500\u2500 storage_url \u2192 \"s3://bucket/path\"\n```\n\n**Use Cases**:\n\n1. **Physical Collection Storage**:\n - Reference to depot building (AuxiliaryPlace)\n - Shelf/cabinet location identifier\n \n2. **Digital Preservation Infrastructure**:\n - Cloud storage (AWS S3, Azure Blob)\n - Trusted digital repository (DANS, Portico)\n - Third-party preservation service (Internet Archive)\n\n**Slot Migration** (2026-01-15):\nThis class supports the migration of `storage_location` slot to\n`is_or_was_stored_at` with structured StorageLocation range.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "StorageLocation", - "type": "object" - }, - "StorageObserverTypeEnum": { - "description": "Types of observers who assess and report on storage conditions.\n\n**CRITICAL DESIGN PRINCIPLE**:\n\nStorage condition reports are NOT limited to official custodian\nself-assessments. External observers (journalists, researchers,\ninspectors) may discover conditions that differ from what the\ninstitution officially claims.\n\nThis enum enables tracking of WHO made the observation, which is\nessential for:\n- Distinguishing official vs. investigative reports\n- Assessing potential bias in reporting\n- Understanding the context of findings\n- Tracking accountability\n\n**Example Use Case**:\nA journalist discovers white ants in an archive's storage facility.\nThis observation has:\n- observer_type: JOURNALIST\n- observer_affiliation: \"De Volkskrant\"\n- observation_context: \"Investigative report on heritage preservation\"\n- is_official_assessment: false\n\nThis contrasts with:\n- observer_type: INTERNAL_STAFF\n- observer_affiliation: \"National Archives\"\n- is_official_assessment: true\n\nAligns with PROV-O prov:Agent and PiCo observation patterns.", - "enum": [ - "INTERNAL_STAFF", - "EXTERNAL_CONSULTANT", - "GOVERNMENT_INSPECTOR", - "ACCREDITATION_ASSESSOR", - "INSURANCE_ASSESSOR", - "JOURNALIST", - "RESEARCHER", - "VISITING_PROFESSIONAL", - "PUBLIC_VISITOR", - "WHISTLEBLOWER", - "AUTOMATED_SYSTEM", - "UNKNOWN" - ], - "title": "StorageObserverTypeEnum", - "type": "string" - }, - "StorageStandardEnum": { - "description": "International and regional standards governing storage conditions\nfor heritage collections. These standards define requirements for\nbuilding design, environmental control, and preservation practices.\n\nStandards are referenced in:\n- StorageConditionPolicy (what conditions SHOULD be achieved)\n- StorageCondition (how observed conditions compare to standards)\n\n**KEY STANDARDS**:\n\n1. **ISO 82306** - Document storage requirements (general)\n2. **ISO/TR 19815:2018** - Environmental management framework\n3. **EN 16893:2018** - Building specifications (European)\n4. **EN 15757:2010** - Temperature and humidity control\n5. **ISO 9706:2025** - Paper permanence requirements\n6. **ISO 11108** - Archival paper durability\n7. **PAS 198** - UK specification for archive storage", - "enum": [ - "ISO_82306", - "ISO_TR_19815_2018", - "EN_16893_2018", - "EN_15757_2010", - "ISO_9706_2025", - "ISO_11108", - "ISO_20494", - "PAS_198_2012", - "BS_5454_2000", - "EN_16141_2012", - "ASHRAE_CHAPTER_24", - "IMAGE_PERMANENCE_INSTITUTE", - "NISO_TR01", - "INSTITUTION_SPECIFIC", - "NO_STANDARD_APPLIED" - ], - "title": "StorageStandardEnum", - "type": "string" - }, - "StorageType": { - "additionalProperties": false, - "description": "Classification type for Storage facilities in heritage custodian contexts.\n**DEFINITION**:\nStorageType provides a SKOS-based classification hierarchy for categorizing\ndifferent types of storage facilities. Unlike the flat StorageTypeEnum,\nStorageType enables:\n- Rich metadata (descriptions, preservation requirements, conditions)\n- Hierarchical relationships (broader/narrower types)\n- Extensibility (new types without enum modification)\n- Multiple classification systems (institutional, material-based, function-based)\n**RELATIONSHIP TO StorageTypeEnum**:\nStorageTypeEnum remains for simple validation cases. StorageType provides\nricher semantics when detailed type information is needed.\n**Wikidata Alignment**:\n- Q1191732 (depot/storage facility) - general\n- Q1454974 (archive storage) - archival\n- Q1280667 (art storage) - art/museum\n**SKOS Alignment**:\n`skos:Concept` - \"An idea or notion; a unit of thought.\"\nStorageType instances form a SKOS ConceptScheme with:\n- skos:broader/narrower for hierarchy\n- skos:related for non-hierarchical associations\n- skos:prefLabel/altLabel for naming\n**RELATIONSHIP TO OTHER CLASSES**:\n```\nStorage (facility instance)\n \u2502\n \u2514\u2500\u2500 has_or_had_type \u2192 StorageType (THIS CLASS)\n \u251c\u2500\u2500 has_or_had_hypernym \u2192 StorageType (parent in hierarchy)\n \u251c\u2500\u2500 has_or_had_hyponym \u2192 StorageType[] (children)\n \u251c\u2500\u2500 preservation_requirement (text)\n \u2514\u2500\u2500 has_or_had_condition \u2192 Condition (environment specs)\n```\n**USE CASES**:\n1. **Type Hierarchy**:\n - StorageType: \"Climate-Controlled Storage\"\n - narrower: \"Cold Storage\", \"Art Storage\", \"Textile Storage\"\n2. **Material-Based Classification**:\n - \"Paper Storage\" \u2192 typical_conditions: \"18-20\u00b0C, 45-55% RH\"\n - \"Film Storage\" \u2192 typical_conditions: \"-18\u00b0C, 30% RH\"\n3. **Function-Based Classification**:\n - \"Active Storage\" (frequent access)\n - \"Deep Storage\" (long-term, rare access)\n - \"Quarantine Storage\" (isolation for treatment)\n**LINK TO DepositArchive**:\nDepositArchive custodian types may operate specialized deposit storage.\nDepositArchive \u2192 operates_storage \u2192 Storage \u2192 has_or_had_type \u2192 StorageType\nThe \"DEPOSIT_STORAGE\" StorageType specifically supports deposit archive functions.\n**SLOT MIGRATION** (2026-01-13):\nThis class now uses shared slots instead of domain-specific storage_type_* slots:\n- `has_or_had_identifier` replaces `storage_type_id`\n- `has_or_had_code` replaces `storage_type_code`\n- `has_or_had_label` replaces `storage_type_label`\n- `has_or_had_description` replaces `storage_type_description`\n- `has_or_had_hypernym` replaces `storage_type_broader`\n- `has_or_had_hyponym` replaces `storage_type_narrower`\n- `is_or_was_related_to` replaces `storage_type_related`", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_condition": { - "description": "A condition or state associated with an entity.\n\n**USAGE**:\nUsed for:\n- Physical condition of objects\n- Service conditions/requirements\n- Access conditions\n\n**Migration (2026-01-18)**:\nThis slot now replaces `condition_description` per slot_fixes.yaml.\nUse with Condition class which has `has_or_had_description` for textual descriptions.\n", - "items": { - "$ref": "#/$defs/Condition" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/StorageType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/storage-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_use_case": { - "items": { - "$ref": "#/$defs/UseCase" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/StorageType" - }, - "type": [ - "array", - "null" - ] - }, - "preservation_requirement": { - "description": "Preservation requirements specific to this storage type.\n\nDescribes what materials/objects require this type of storage\nand the preservation rationale.\n\nDublin Core: requires for dependency relationship.\n", - "type": [ - "string", - "null" - ] - }, - "security_level": { - "description": "Security level classification for storage facilities.\n\nCommon values:\n- STANDARD - Basic security measures\n- ENHANCED - Additional access controls\n- HIGH - Restricted access, specialized security\n- MAXIMUM - Highest security, vault-level protection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label" - ], - "title": "StorageType", - "type": "object" - }, - "StorageTypeEnum": { - "description": "Types of storage facilities used by heritage custodians to preserve\ncollections, documents, and artifacts.\n\nAligns with:\n- Wikidata Q1191732 (depot/storage facility)\n- PREMIS premis:StorageLocation (digital/physical storage)\n- CIDOC-CRM E27_Site (physical sites)\n\nStorage facilities may be on-site or off-site, climate-controlled or\nbasic, and serve different preservation requirements.", - "enum": [ - "ARCHIVE_DEPOT", - "ART_STORAGE", - "GENERAL_DEPOT", - "COLD_STORAGE", - "HIGH_SECURITY_VAULT", - "OPEN_STORAGE", - "OFFSITE_STORAGE", - "COMPACT_STORAGE", - "HAZMAT_STORAGE", - "DIGITAL_STORAGE", - "TEXTILE_STORAGE", - "PHOTOGRAPH_STORAGE", - "ARCHAEOLOGICAL_STORAGE", - "NATURAL_HISTORY_STORAGE", - "TEMPORARY_STORAGE" - ], - "title": "StorageTypeEnum", - "type": "string" - }, - "StorageUnit": { - "additionalProperties": false, - "description": "An individual storage compartment, shelf, cabinet, drawer, or other\ndiscrete unit where heritage objects are physically placed.\n\n**DEFINITION**:\n\nStorageUnit represents the lowest level of spatial organization for\nobject storage within a heritage institution. This is where physical\nobjects are actually located. Examples include:\n- Archive boxes on shelves\n- Flat file drawers for maps/prints\n- Museum storage cabinets\n- Hanging racks for textiles\n- Specimen cabinets for natural history\n\n**Wikidata Alignment**:\n- Q1186447 (storage unit)\n- Q854619 (archive box)\n\n**HC Ontology Extension (hc-storage.ttl)**:\n\nPrimary class: `hc:StorageUnit` (subclass of `crm:E27_Site`)\n\nThe HC ontology provides:\n- Named individuals for common storage unit types:\n - `hc:ArchiveBox` - Acid-free boxes for archival materials\n - `hc:FlatFileDrawer` - Drawers for oversized flat materials\n - `hc:HangingRack` - Racks for textiles/paintings\n - `hc:CompactShelving` - Mobile shelving systems\n - `hc:SpecimenCabinet` - Cabinets for specimens/artifacts\n - `hc:ColdStorageVault` - Refrigerated storage\n\nKey HC properties for storage units:\n- `hc:storageUnitIdentifier` - Local ID/barcode\n- `hc:storageUnitType` - Type classification\n- `hc:rowNumber` - Row/aisle identifier\n- `hc:bayNumber` - Bay/section within row\n- `hc:shelfNumber` - Shelf level within bay\n- `hc:isStorageSectionOf` - Link to parent facility/zone\n- `hc:currentlyStores` - Objects in this unit\n\nSee: `frontend/public/ontology/hc-storage.ttl`\n\n**CIDOC-CRM Alignment (v7.1.3)**:\n\nBase class: `crm:E27_Site` - Storage units are physical locations.\n\nHierarchy: Uses P59 has section / P59i is located on or within\nto model the containment relationship:\n```\nStorageFacility\n \u2514\u2500\u2500 P59 has_section \u2192 EnvironmentalZone\n \u2514\u2500\u2500 P59 has_section \u2192 StorageUnit (row/bay/shelf)\n \u2514\u2500\u2500 P55 currently_holds \u2192 E18_Physical_Thing\n```\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nStorage (facility)\n \u2502\n \u251c\u2500\u2500 has_section \u2192 EnvironmentalZone[]\n \u2502 \u2514\u2500\u2500 has_section \u2192 StorageUnit[] (THIS CLASS)\n \u2502 \u251c\u2500\u2500 unit_type (StorageUnitTypeEnum)\n \u2502 \u251c\u2500\u2500 row_number, bay_number, shelf_number\n \u2502 \u251c\u2500\u2500 stores_objects \u2192 HeritageObject[]\n \u2502 \u2514\u2500\u2500 part_of \u2192 EnvironmentalZone | Storage\n \u2502\n \u2514\u2500\u2500 stores_collections \u2192 CustodianCollection[]\n```\n\n**USE CASES**:\n\n1. **Archive Box Location**:\n - unit_type: ARCHIVE_BOX\n - row_number: \"A\", bay_number: \"12\", shelf_number: 3\n - stores_objects: [document_123, document_456]\n \n2. **Flat File Drawer**:\n - unit_type: FLAT_FILE_DRAWER\n - unit_identifier: \"FF-MAP-0042\"\n - stores_objects: [map_1890_netherlands, blueprint_123]\n \n3. **Mobile Shelving Bay**:\n - unit_type: COMPACT_SHELVING\n - row_number: \"12\", bay_number: \"C\"\n - part_of: [depot_a_zone_1]", - "properties": { - "current_item_count": { - "description": "Current number of items stored in this unit.\n", - "type": [ - "integer", - "null" - ] - }, - "has_or_had_capacity": { - "description": "The storage or holding capacity of an entity.\nRULE 53 MIGRATION: This generic slot consolidates: - capacity_cubic_meters (volume capacity in m\u00b3) - capacity_linear_meters (shelf/storage length in linear meters) - capacity_item (item count capacity) - capacity_description (textual capacity description)\nUses Capacity class which wraps Quantity for structured measurements with units, temporal validity, and descriptions.\n**ONTOLOGY ALIGNMENT**: - schema:floorSize (close - physical space) - qudt:Quantity (related - measured values) - premis:StorageLocation (related - storage capacity)\n**EXAMPLES**:\nArchive depot:\n has_or_had_capacity:\n capacity_value: 8000\n has_or_had_measurement_unit:\n has_or_had_type: LINEAR_METER\n has_or_had_symbol: \"m\"\n capacity_type: SHELF_LENGTH\n\nMuseum storage:\n has_or_had_capacity:\n capacity_value: 2500\n has_or_had_measurement_unit:\n has_or_had_type: CUBIC_METER\n has_or_had_symbol: \"m\u00b3\"\n capacity_type: VOLUME\n\nArchive box capacity:\n has_or_had_capacity:\n capacity_value: 50000\n has_or_had_measurement_unit:\n has_or_had_type: ITEM\n has_or_had_symbol: \"boxes\"\n capacity_type: ITEM_COUNT", - "items": { - "$ref": "#/$defs/Capacity" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_drawer": { - "description": "Drawer within a storage unit. MIGRATED from drawer_number (2026-01-26).", - "items": { - "$ref": "#/$defs/Drawer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/StorageUnitTypeEnum" - }, - "type": "array" - }, - "part_of_storage": { - "description": "The parent storage facility containing this unit.\n\nHC Ontology: `hc:isStorageSectionOf` (inverse of `hc:hasStorageSection`)\n", - "type": [ - "string", - "null" - ] - }, - "part_of_zone": { - "description": "The environmental zone containing this unit.\n\nHC Ontology: `hc:isStorageSectionOf` (inverse of `hc:hasStorageSection`)\n", - "type": [ - "string", - "null" - ] - }, - "row_number": { - "description": "Row or aisle identifier within the storage area.\n\nHC Ontology: `hc:rowNumber`\n", - "type": [ - "string", - "null" - ] - }, - "shelf_number": { - "description": "Shelf level within a bay (often numbered from bottom).\n\nHC Ontology: `hc:shelfNumber`\n", - "type": [ - "integer", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/HeritageObject" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_type" - ], - "title": "StorageUnit", - "type": "object" - }, - "StorageUnitTypeEnum": { - "description": "Types of individual storage units used in heritage storage facilities.\n\nMaps to HC ontology named individuals (hc:ArchiveBox, etc.) and\nAAT/Wikidata concepts where available.", - "enum": [ - "ARCHIVE_BOX", - "FLAT_FILE_DRAWER", - "HANGING_RACK", - "COMPACT_SHELVING", - "SPECIMEN_CABINET", - "COLD_STORAGE_VAULT", - "STANDARD_SHELF", - "DRAWER_CABINET", - "PAINTING_RACK", - "ROLLED_STORAGE", - "PALLET", - "CRATE", - "SOLANDER_BOX", - "PORTFOLIO", - "TRAY", - "OTHER" - ], - "title": "StorageUnitTypeEnum", - "type": "string" - }, - "StoryPost": { - "additionalProperties": false, - "description": "Ephemeral content that auto-deletes after 24 hours (typically).\n\n**Activity Streams Mapping**: `as:Note` (with ephemeral flag)\n**Schema.org Mapping**: `schema:SocialMediaPosting`\n\n**Platforms**:\n- Instagram Stories (most popular)\n- Facebook Stories\n- LinkedIn Stories (discontinued 2021)\n- Snapchat (original format)\n- YouTube Stories (discontinued 2023)\n\n**Characteristics**:\n- Vertical format (9:16)\n- Auto-delete after 24 hours\n- Interactive elements (polls, questions, quizzes)\n- Stickers, GIFs, music overlays\n- Swipe-up links (for larger accounts)\n- Highlights: Saved stories that persist\n\n**Heritage Use Cases**:\n\n| Use Case | Description | Engagement |\n|----------|-------------|------------|\n| Daily updates | \"Today at the museum\" | Behind-the-scenes |\n| Event coverage | Real-time exhibition opening | Live feeling |\n| Polls/quizzes | \"Guess the artist\" | Interactive |\n| Countdowns | Exhibition launch timers | Anticipation |\n| Takeovers | Guest curator for a day | Fresh voice |\n| Q&A | \"Ask a conservator\" | Direct engagement |\n\n**Technical Properties**:\n- Duration: 15 seconds per segment\n- Format: Vertical (1080x1920)\n- Can chain multiple segments\n- Mentions and hashtags supported", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "post_type_activity_streams_type": { - "const": "as:Note", - "description": "Activity Streams 2.0 type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_category": { - "const": "STORY", - "description": "High-level category for grouping related post types.\nValues: VIDEO, SHORT_VIDEO, IMAGE, TEXT, STORY, LIVE_STREAM,\nAUDIO, ARTICLE, THREAD, CAROUSEL, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "post_type_description": { - "description": "Detailed description of this post type including purpose,\ncharacteristics, and typical use cases in heritage context.\n", - "type": [ - "string", - "null" - ] - }, - "post_type_ephemeral": { - "description": "Whether this post type is ephemeral (disappears after time).", - "type": [ - "boolean", - "null" - ] - }, - "post_type_heritage_use_case": { - "description": "Typical use cases for heritage institutions creating this content type.\n\nExamples for Video:\n- Virtual exhibition tours\n- Conservation process documentation\n- Curator interviews\n- Historical documentary content\n- Educational lectures\n\nExamples for Short Video:\n- Artifact spotlights\n- Behind-the-scenes moments\n- Quick conservation tips\n- Event teasers\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_id": { - "description": "Unique identifier for this post type", - "type": "string" - }, - "post_type_max_duration": { - "const": "PT15S", - "description": "Maximum duration for this post type (e.g., video length).", - "type": [ - "string", - "null" - ] - }, - "post_type_media_format": { - "description": "Supported media formats for this post type.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_name": { - "description": "Canonical name for this post type.\nUsed for display and content categorization.\n\nExamples: \"Video\", \"Short Video\", \"Image Post\", \"Story\", \"Live Stream\"\n", - "type": "string" - }, - "post_type_schema_org_type": { - "description": "Schema.org type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_supported_platform": { - "description": "Platforms that support this post type.", - "items": { - "enum": [ - "Instagram", - "Facebook", - "Snapchat" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "post_type_id", - "post_type_name" - ], - "title": "StoryPost", - "type": "object" - }, - "StreetAddressClaim": { - "additionalProperties": false, - "description": "Street address (straatnaam + huisnummer).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "StreetAddressClaim", - "type": "object" - }, - "StrikeDocumentationCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for strike and labor action documentation.\n\n**Definition**:\nCollections documenting strikes, lockouts, and other labor actions.\nCombines official records with collected materials documenting worker\nmobilization, negotiations, and outcomes.\n\n**Typical Contents**:\n- Strike notices and declarations\n- Picket line records\n- Negotiation documentation during strikes\n- Strike funds and financial records\n- Solidarity actions documentation\n- Press coverage and media documentation\n- Photographs and films\n- Posters, leaflets, and propaganda\n- Police and government reports\n- Settlement agreements\n- Court documents (injunctions, rulings)\n- Personal testimonies and memoirs\n\n**Types of Labor Actions**:\n- General strikes (algemene stakingen)\n- Industry-wide strikes\n- Wildcat strikes\n- Sit-down strikes (bedrijfsbezettingen)\n- Sympathy strikes\n- Lockouts\n- Work-to-rule actions (stiptheidsacties)\n\n**Historical Significance**:\nStrike documentation records:\n- Worker solidarity and collective action\n- Labor-management conflict\n- Social movement dynamics\n- Political aspects of labor disputes\n- Economic impacts\n\n**Dutch Context**:\nNotable historical strikes:\n- February Strike 1941 (Februaristaking)\n- Dockworkers strikes\n- Transport strikes\n- Mining strikes (Limburg)\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the collection organizational principle as defined by rico-rst:Collection\n(assembled documentation organized by strike/action, industry, or time period).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the collection principle as defined by rico-rst:Collection. Assembled documentation organized by strike event, industry, or time period.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "StrikeDocumentationCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"routine collective bargaining\", \"union administration\", \"ongoing publications\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"strike records\", \"picket documentation\", \"solidarity actions\", \"posters\", \"photographs\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "StrikeDocumentationCollection", - "type": "object" - }, - "StructuralRepairTechnique": { - "additionalProperties": false, - "description": "Techniques for repairing physical damage to object structure.\nIncludes tear mending, crack filling, loss filling.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "StructuralRepairTechnique", - "type": "object" - }, - "StudentRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Student records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "UniversityArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by UniversityArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "StudentRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "StudentRecordSeries", - "type": "object" - }, - "SubGuideReference": { - "additionalProperties": false, - "description": "Reference to a sub-guide or related finding aid within the same repository. Sub-guides are more specific finding aids linked from a repository guide. For example, a \"Family History\" repository guide links to specific sub-guides for \"Civil Registry\", \"Notarial Records\", etc.", - "properties": { - "has_or_had_content": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_access_restricted": { - "type": [ - "boolean", - "null" - ] - }, - "note": { - "description": "Optional notes about the extraction process.\nMay reference raw source files or explain any issues.\n", - "type": [ - "string", - "null" - ] - }, - "slug": { - "description": "URL-friendly slug identifier", - "pattern": "^[a-z0-9-]+$", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "slug", - "has_or_had_label", - "has_or_had_url" - ], - "title": "SubGuideReference", - "type": "object" - }, - "SubGuideTypeEnum": { - "description": "Types of sub-guide references within a repository guide.", - "enum": [ - "sub_guide", - "cross_reference", - "thematic", - "regional" - ], - "title": "SubGuideTypeEnum", - "type": "string" - }, - "SubjectBasedArrangement": { - "additionalProperties": false, - "description": "Arranged by subject matter or topic.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "SubjectBasedArrangement", - "type": "object" - }, - "SubjectFileCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Subject-based clipping files.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "NewspaperClippingsArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by NewspaperClippingsArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "SubjectFileCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SubjectFileCollection", - "type": "object" - }, - "SubjectScope": { - "additionalProperties": false, - "description": "Topic/domain scope dimension covering subjects, themes, and disciplines.\n\n**Examples**:\n- \"Dutch Golden Age painting\" (art historical subject)\n- \"World War II\" (historical theme)\n- \"Maritime history\" (subject area)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this scope type. Can include:\n- Type URI (e.g., https://nde.nl/ontology/hc/scope-type/temporal)\n- Wikidata Q-number (e.g., Q186408)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "SubjectScope", - "type": "object" - }, - "Subregion": { - "additionalProperties": false, - "description": "Geographic subdivision within a country, identified by ISO 3166-2 code.\n\nISO 3166-2 defines codes for principal subdivisions of countries (states,\nprovinces, regions, departments, etc.). Each subdivision has a unique code\ncombining the country's alpha-2 code with a subdivision identifier.\n\nPurpose:\n- Link custodian places to their specific regional location (e.g., museums in Bavaria)\n- Link legal entities to their registration jurisdiction (e.g., stichting in Limburg)\n- Enable region-specific feature types (e.g., \"sacred shrine\" specific to Bali)\n\nFormat: {country_alpha2}-{subdivision_code}\n\nExamples:\n- US-PA: Pennsylvania, United States\n- ID-BA: Bali, Indonesia\n- DE-BY: Bavaria (Bayern), Germany\n- NL-LI: Limburg, Netherlands\n- AU-NSW: New South Wales, Australia\n- CA-ON: Ontario, Canada\n\nDesign rationale:\n- ISO 3166-2 codes are internationally standardized\n- Stable identifiers not dependent on language or spelling variations\n- Widely used in official datasets (government registries, GeoNames, etc.)\n- Aligns with existing Country class (ISO 3166-1)\n\nExternal resolution:\n- ISO 3166-2 Maintenance Agency: https://www.iso.org/iso-3166-country-codes.html\n- GeoNames API: https://www.geonames.org/ (subdivision names and metadata)\n- UN M49 Standard: https://unstats.un.org/unsd/methodology/m49/\n\nHistorical entities:\n- For historical subdivisions (e.g., \"Czechoslovakia\", \"Soviet Union\"), use\n the ISO code that was valid during the entity's existence\n- Document temporal validity in CustodianPlace.temporal_coverage", - "properties": { - "country": { - "$ref": "#/$defs/Country", - "description": "Country where this place is located (OPTIONAL).\n\nLinks to Country class with ISO 3166-1 codes.\n\nSchema.org: addressCountry uses ISO 3166-1 alpha-2 codes.\n\nUse when:\n- Place name is ambiguous across countries (\"Victoria Museum\" exists in multiple countries)\n- Feature types are country-specific (e.g., \"cultural heritage of Peru\")\n- Generating country-conditional enums\n\nExamples:\n- \"Rijksmuseum\" \u2192 country.alpha_2 = \"NL\"\n- \"cultural heritage of Peru\" \u2192 country.alpha_2 = \"PE\"\n" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "iso_3166_2_code": { - "description": "ISO 3166-2 subdivision code.\n\nFormat: {country_alpha2}-{subdivision_code}\n- First 2 letters: ISO 3166-1 alpha-2 country code\n- Hyphen separator\n- Subdivision code (1-3 alphanumeric characters, varies by country)\n\nExamples:\n- \"US-PA\": Pennsylvania (US state)\n- \"ID-BA\": Bali (Indonesian province)\n- \"DE-BY\": Bayern/Bavaria (German Land)\n- \"NL-LI\": Limburg (Dutch province)\n- \"CA-ON\": Ontario (Canadian province)\n- \"AU-NSW\": New South Wales (Australian state)\n- \"IN-KL\": Kerala (Indian state)\n- \"ES-AN\": Andaluc\u00eda/Andalusia (Spanish autonomous community)\n\nReference: https://en.wikipedia.org/wiki/ISO_3166-2\n", - "pattern": "^[A-Z]{2}-[A-Z0-9]{1,3}$", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "country", - "iso_3166_2_code" - ], - "title": "Subregion", - "type": "object" - }, - "Substack": { - "additionalProperties": false, - "description": "Substack newsletter/publication.\n\n**URL patterns**:\n- https://{publication}.substack.com\n- https://substack.com/@{username}\n\n**Features**:\n- Newsletter publishing\n- Paid subscriptions\n- Podcasts and video\n- Community notes\n\n**Heritage use cases**:\n- In-depth articles and research\n- Behind-the-scenes content\n- Curator perspectives\n- Membership engagement", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "PUBLISHING", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://{publication}.substack.com", - "https://substack.com/@{username}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "Substack", - "type": "object" - }, - "SubtitleFormatEnum": { - "description": "Subtitle/caption file formats.\n\nEach format has different capabilities for timing precision,\nstyling, positioning, and metadata.", - "enum": [ - "SRT", - "VTT", - "TTML", - "SBV", - "ASS", - "STL", - "CAP", - "SAMI", - "LRC", - "JSON", - "UNKNOWN" - ], - "title": "SubtitleFormatEnum", - "type": "string" - }, - "SubtitlePositionEnum": { - "description": "Default caption display position on video.\n\nMay be overridden by format-specific positioning (VTT, TTML, ASS).", - "enum": [ - "BOTTOM", - "TOP", - "MIDDLE", - "LEFT", - "RIGHT" - ], - "title": "SubtitlePositionEnum", - "type": "string" - }, - "Summary": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_text": { - "items": { - "$ref": "#/$defs/Text" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Summary", - "type": "object" - }, - "Supplier": { - "additionalProperties": false, - "description": "Business entity that supplies goods or services to a heritage custodian.\n\n**PURPOSE**:\nModels supplier relationships for commercial operations (gift shops, cafes, etc.)\nin a structured way that captures:\n- Supplier identity and contact\n- Type of supplier (print, reproduction, service, etc.)\n- Products/services provided\n- Temporal validity of relationship\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`class_uri`): `schema:Organization` - Schema.org organization\n- **Close**: `gr:BusinessEntity` - GoodRelations business entity\n- **Related**: `org:Organization` - W3C Org organization\n\n**USAGE**:\n```yaml\nhas_or_had_supplier:\n - has_or_had_identifier: \"hc:supplier/king-mcgaw\"\n has_or_had_label:\n label_text: \"King & McGaw\"\n has_or_had_type:\n has_or_had_label: \"Print Supplier\"\n has_or_had_description:\n description_text: \"Fine art print supplier for museum reproductions\"\n temporal_extent:\n begin_of_the_begin: \"2018-01-01\"\n```\n\n**MIGRATION NOTE**:\nReplaces plain string values from `supplier_relationship` slot.\nProvides structured data with type classification and temporal tracking.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "Supplier", - "type": "object" - }, - "SupplierType": { - "additionalProperties": false, - "description": "Abstract base class for supplier type taxonomy.\n\n**PURPOSE**:\nClassifies types of suppliers in business relationships with heritage custodians.\n\n**USAGE**:\nConcrete subclasses defined in SupplierTypes.yaml:\n- PrintSupplier (print-on-demand, art prints)\n- ReproductionSupplier (museum reproductions)\n- PublicationDistributor (books, catalogs)\n- ArtisanSupplier (local crafts, handmade items)\n- LicenseHolder (exclusive merchandise rights)\n- ServiceProvider (photography, framing, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- `skos:Concept` - Taxonomy/classification concept\n- `gr:BusinessEntity` - GoodRelations business classification\n\n**NAMING CONVENTION (Rule 0b)**:\n- `SupplierType.yaml` - This abstract base class\n- `SupplierTypes.yaml` - Concrete subclasses", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "SupplierType", - "type": "object" - }, - "SurveillanceRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Surveillance documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "SecurityArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by SecurityArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "SurveillanceRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SurveillanceRecordSeries", - "type": "object" - }, - "SwedishChurchPropertyFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Swedish Church property records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.\n\n**Note**: This is a Swedish-specific variant. For the general church property fonds type, see ChurchPropertyFonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ChurchArchiveSweden", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ChurchArchiveSweden custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "SwedishChurchPropertyFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SwedishChurchPropertyFonds", - "type": "object" - }, - "SwedishParishRecordSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Swedish parish records (kyrkoarkiv).\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ChurchArchiveSweden", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ChurchArchiveSweden custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "SwedishParishRecordSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SwedishParishRecordSeries", - "type": "object" - }, - "SwedishSectorFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Swedish sector archives.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "SectorOfArchivesInSweden", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by SectorOfArchivesInSweden custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "SwedishSectorFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "SwedishSectorFonds", - "type": "object" - }, - "SynonymVariant": { - "additionalProperties": false, - "description": "Synonym or alternative term with equivalent meaning.\n\n**Use Cases**:\n- Role title synonyms (\"Curator\" / \"Keeper\" / \"Conservator\")\n- Technical synonyms\n- Cross-cultural equivalents\n\n**Example**:\n```yaml\nhas_or_had_type:\n - has_or_had_label: \"Keeper\"\n has_or_had_type: SynonymVariant\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "SynonymVariant", - "type": "object" - }, - "TGNIdentifier": { - "additionalProperties": false, - "description": "Thesaurus of Geographic Names (Getty).", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "TGN", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "TGN ID", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "TGNIdentifier", - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "description": "A structured representation of a tag, keyword, hashtag, or classification term.\n\n**USAGE**:\nReplaces simple string-based `tag` slot per Rule 53/56 to enable:\n- Rich metadata (platform-specific tag types, hashtag prefixes)\n- Provenance tracking (who assigned the tag, when)\n- Taxonomy links (SKOS broader/narrower relationships)\n- Multilingual labels\n\n**PLATFORM-SPECIFIC EXAMPLES**:\n- YouTube: Video tags (author-defined keywords)\n- Twitter/X: Hashtags (#heritage, #museum)\n- Instagram: Hashtags from caption\n- Mastodon: Hashtags from post content\n\n**HERITAGE CONTEXT**:\nTags from heritage institution social media content, collection items,\nor organizational metadata.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "Tag", - "type": "object" - }, - "TaggingMotivation": { - "additionalProperties": false, - "description": "Motivation for adding tags or keywords.\n\n**DEFINITION**:\n\nTaggingMotivation describes annotations where the intent is to\nassociate a tag or keyword with the target resource.\n\n**W3C WEB ANNOTATION**:\n\nFrom oa:tagging:\n> The motivation for when the user intends to associate a tag with\n> the Target.\n\n**USE CASES**:\n\n| Use Case | Example |\n|----------|---------|\n| Keyword tagging | User-generated tags |\n| Folksonomy | Community tagging |\n| Social tagging | Hashtags on social media |\n| Crowdsourced tags | Volunteer tagging projects |\n\n**HERITAGE CONTEXT**:\n\nTagging complements formal classification:\n- Crowdsourced transcription projects\n- Social tagging of collections\n- User-generated content enrichment\n- Folksonomies alongside controlled vocabularies", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "motivation_type_description": { - "description": "Detailed description of an annotation motivation type including purpose, characteristics, and typical use cases.", - "type": [ - "string", - "null" - ] - }, - "motivation_type_id": { - "description": "Unique identifier for an annotation motivation type.", - "type": "string" - }, - "motivation_type_name": { - "const": "tagging", - "description": "Canonical name for this motivation type.\nUsed for display and cross-referencing.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "motivation_type_id", - "motivation_type_name" - ], - "title": "TaggingMotivation", - "type": "object" - }, - "TasteScentHeritageType": { - "additionalProperties": false, - "description": "Specialized custodian type for institutions actively preserving culinary traditions,\nperfume formulations, brewing/distilling techniques, and other sensory heritage.\n\n**CRITICAL DISTINCTION - Taste/Scent Heritage vs. Food/Beverage Museums**:\n\nTasteScentHeritageType institutions:\n- ACTIVELY PRACTICE traditional recipes/formulations (not just exhibit)\n- PRESERVE intangible knowledge (techniques, recipes, sensory skills)\n- PRODUCE heritage foods/beverages/perfumes using historical methods\n- TRANSMIT craft knowledge through apprenticeship/demonstration\n\n**Do NOT use TasteScentHeritageType for**:\n- \u274c Food museums exhibiting artifacts \u2192 Use MuseumType\n- \u274c Restaurants without heritage mission \u2192 Not a heritage custodian\n- \u274c Commercial wineries/breweries \u2192 Use CommercialOrganizationType\n- \u274c Culinary schools \u2192 Use EducationProviderType\n\n**Use TasteScentHeritageType for**:\n- \u2705 Historic breweries/distilleries preserving traditional recipes\n- \u2705 Perfume houses maintaining historical formulation archives\n- \u2705 Artisanal food producers using ancestral techniques\n- \u2705 Traditional spice merchants preserving blending knowledge\n- \u2705 Heritage kitchens demonstrating historical cooking methods\n- \u2705 Monastic breweries/wineries continuing centuries-old practices\n\n1. **Structural Layer** (W3C Standards):\n - skos:Concept - Thesaurus classification\n - Classification within CustodianType hierarchy\n\n2. **Domain Layer** (Heritage Ontologies):\n - crm:E74_Group - CIDOC-CRM social group (for organizations)\n - crm:E55_Type - Sensory heritage classification\n - foaf:Organization - Organizational entity\n\n3. **Web Layer** (Schema.org):\n - schema:Organization - Organizational entity\n - schema:FoodEstablishment - Culinary heritage sites\n - schema:LocalBusiness - Artisanal producers\n\n**Wikidata Coverage** (35+ taste/scent heritage entities):\n\nHistoric Breweries and Distilleries:\n- Q131734 (brewery) - Beer production facilities preserving traditional methods\n- Q131734 (craft brewery) - Small-scale traditional brewing\n- Q93301 (distillery) - Spirits production with heritage recipes\n- Q105558717 (monastic brewery) - Religious institutions with centuries-old brewing traditions\n- Q1551322 (historic distillery) - Heritage whisky, gin, or rum production\n\nPerfume Houses and Fragrance Archives:\n- Q5283639 (perfume manufacturer) - Historic perfume houses\n- Q105558717 (perfumery museum-workshop) - Active fragrance creation sites\n- Q7241077 (fragrance archive) - Collections of historic scent formulations\n- Q215380 (essential oil distillery) - Traditional aromatic extraction\n\nArtisanal Food Producers:\n- Q5879427 (traditional cheese maker) - Ancestral dairy techniques\n- Q105558717 (heritage bakery) - Historic bread/pastry traditions\n- Q215380 (traditional sausage maker) - Ancestral meat preservation\n- Q163740 (artisanal chocolate maker) - Historic confectionery methods\n- Q5283639 (traditional pickle maker) - Fermentation heritage\n\nSpice Merchants and Blenders:\n- Q105558717 (historic spice house) - Traditional spice trade businesses\n- Q7241077 (spice blending archive) - Preserved spice blend recipes\n- Q215380 (traditional tea blender) - Historic tea formulations\n- Q5879427 (coffee roasting heritage) - Traditional roasting techniques\n\nHeritage Kitchens and Cooking Sites:\n- Q105558717 (historic kitchen museum) - Operating historic cooking facilities\n- Q215380 (traditional cookery school) - Living heritage transmission\n- Q5283639 (heritage restaurant) - Restaurants preserving ancestral recipes\n- Q163740 (monastic kitchen) - Religious culinary traditions\n\nTraditional Beverage Producers:\n- Q105558717 (traditional winemaker) - Ancestral viticulture/winemaking\n- Q7241077 (heritage cider producer) - Traditional fermentation methods\n- Q215380 (traditional sake brewery) - Japanese brewing heritage\n- Q5879427 (heritage liqueur producer) - Historic spirit infusion\n\n**Key Distinctions from Other Types**:\n\nvs. Museum:\n- TasteScentHeritage: ACTIVE PRACTICE of traditional recipes/techniques\n- Museum: PASSIVE EXHIBITION of culinary artifacts/history\n- Example: Functioning historic brewery vs. Beer museum with exhibits\n\nvs. IntangibleHeritageGroup:\n- TasteScentHeritage: PRODUCES tangible products (food, beverages, perfumes)\n- IntangibleHeritageGroup: PERFORMS intangible practices (music, dance, rituals)\n- Example: Brewery making traditional beer vs. Folk music ensemble\n\nvs. CommercialOrganization:\n- TasteScentHeritage: HERITAGE PRESERVATION is primary mission\n- CommercialOrganization: PROFIT is primary mission (heritage is secondary)\n- Example: Monastic brewery preserving tradition vs. Commercial craft brewery\n\nvs. EducationProvider:\n- TasteScentHeritage: DEMONSTRATES and TRANSMITS through apprenticeship\n- EducationProvider: TEACHES through formal curriculum and certification\n- Example: Heritage kitchen with cooking demos vs. Culinary school\n\nvs. HolySacredSite:\n- TasteScentHeritage: PRIMARY focus = CULINARY/OLFACTORY heritage\n- HolySacredSite: PRIMARY focus = RELIGIOUS function (food/drink is secondary)\n- Example: Monastic brewery (heritage focus) vs. Church with historic wine cellar\n\n**RDF Serialization Example**:\n\n```turtle\n@prefix hc: <https://nde.nl/ontology/hc/> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix schema: <http://schema.org/> .\n@prefix crm: <http://www.cidoc-crm.org/cidoc-crm/> .\n@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n\nhc:TasteScentHeritageType\n a skos:Concept, hc:CustodianType ;\n skos:prefLabel \"Taste and Scent Heritage Type\"@en,\n \"Smaak en Geur Erfgoed Type\"@nl,\n \"Geschmacks- und Duft-Erbe Typ\"@de,\n \"Type de Patrimoine Gustatif et Olfactif\"@fr ;\n skos:definition \"Institutions preserving culinary and olfactory heritage through active practice\"@en ;\n skos:broader hc:CustodianType ;\n skos:narrower hc:HistoricBrewery,\n hc:PerfumeHouse,\n hc:ArtisanalFoodProducer ;\n schema:url <https://nde.nl/ontology/hc/class/taste-scent-heritage-type> .\n\n# Example: Westvleteren Brewery (Trappist monastery preserving 19th-century brewing tradition)\n<https://w3id.org/heritage/custodian/be/westvleteren>\n a schema:FoodEstablishment, foaf:Organization, crm:E74_Group, hc:TasteScentHeritageInstitution ;\n hc:custodian_type hc:TasteScentHeritageType ;\n hc:heritage_practice \"Traditional Trappist beer brewing using 1838 recipe\" ;\n hc:sensory_heritage_domain \"Taste (beer), Scent (brewing aromas), Intangible knowledge (monastic brewing methods)\" ;\n hc:preservation_method \"Oral tradition among monks\", \"Handwritten brewing logs\", \"Apprenticeship of new brewmasters\" ;\n hc:traditional_products \"Westvleteren 12 (quadrupel)\", \"Westvleteren 8 (dubbel)\", \"Westvleteren Blonde\" ;\n hc:knowledge_transmission \"Monastic apprenticeship\", \"Direct demonstration\", \"No written recipe publication\" ;\n hc:community_significance \"UNESCO-recognized Trappist brewing tradition\", \"Cultural identity of Belgian monasticism\", \"Pilgrimage site for beer heritage\" ;\n schema:name \"Brouwerij Westvleteren (Sint-Sixtusabdij)\" ;\n schema:foundingDate \"1838\" ;\n schema:location \"Westvleteren, Belgium\" ;\n schema:description \"Trappist monastery brewery producing traditional Belgian beer using 19th-century methods, maintaining ancestral brewing knowledge through monastic oral tradition\" ;\n schema:url <https://www.sintsixtus.be/> ;\n foaf:based_near <http://sws.geonames.org/2785141/> .\n```", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/TasteScentSubType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^(https://nde\\.nl/ontology/hc/type/[a-z-]+/[QP][0-9]+|Q[0-9]+)$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_significance": { - "description": "Significance or importance of an entity to a community, culture, or domain.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - significance can change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P17i_was_motivation_for` - CIDOC-CRM motivation\n- **Close**: `dcterms:description` - Dublin Core description\n- **Related**: `schema:significance` - Schema.org (informal)\n\n**Use Cases**:\n- Cultural heritage significance\n- Community importance\n- Historical relevance\n- Economic/social impact\n\n**Example**:\n```yaml\nhas_or_had_significance:\n - has_or_had_type: CommunitySignificance\n has_or_had_description: \"UNESCO-recognized Trappist tradition, Belgian cultural identity\"\n```\n", - "items": { - "$ref": "#/$defs/Significance" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/TraditionalProductType" - }, - "type": "array" - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "knowledge_transmission": { - "description": "How culinary/olfactory expertise is taught and passed to next generation.\n\nDescribes transmission mechanisms:\n- **Formal apprenticeship**: Structured training programs, certification\n- **Informal mentorship**: Master-apprentice relationships, family succession\n- **Demonstration programs**: Public cooking/brewing/perfume-making events\n- **Educational partnerships**: Collaboration with culinary schools, universities\n- **Documentation projects**: Video recording, oral history, recipe archiving\n- **Professional networks**: Guild memberships, trade associations, peer learning\n- **Intergenerational transfer**: Family recipes, succession within communities\n- **Embodied learning**: Learning by doing, sensory skill development\n\nKnowledge transmission ensures heritage continuity.\n\nExamples:\n- \"Monastic apprenticeship, Direct demonstration, No written recipe publication\"\n- \"Apprentice perfumer program (3 years), Nose training, Formula access after 10 years\"\n- \"Family succession, Public cheese-making demos, Protected PDO training\"\n- \"Master distiller mentorship, Distillery tours, Whisky academy courses\"\n", - "type": "string" - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_method": { - "description": "How the culinary/olfactory heritage knowledge is documented and transmitted.\n\nDescribes preservation strategies:\n- **Oral tradition**: Recipe knowledge passed verbally master-to-apprentice\n- **Handwritten records**: Historic brewing logs, perfume formulas, recipe books\n- **Apprenticeship**: Hands-on training, direct demonstration, embodied learning\n- **Production continuity**: Unbroken chain of production across generations\n- **Archival collections**: Historic recipe manuscripts, ingredient inventories\n- **Sensory training**: Developing taste/smell expertise (sommeliers, perfumers)\n- **Material culture**: Preservation of traditional tools, vessels, equipment\n- **Protected designation**: PDO/PGI/TSG geographic/traditional labels\n\nPreservation methods ensure intangible knowledge survives.\n\nExamples:\n- \"Oral tradition among monks, Handwritten brewing logs, Apprenticeship\"\n- \"Historic perfume formula archives, Apprentice perfumer training, Nose development\"\n- \"Family recipe manuscripts, Direct demonstration, Protected Gouda PDO status\"\n- \"Distillery logbooks (1823-present), Master distiller mentorship, Copper still preservation\"\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "preserves_or_preserved": { - "description": "What is being preserved or maintained by this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"preservesOrPreserved\" naming follows RiC-O convention indicating\nthis relationship may be historical - an entity may have preserved\ndifferent content over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `rico:hasOrHadSubject` - RiC-O subject relationship\n- **Close**: `prov:used` - PROV-O input relationship\n- **Close**: `schema:object` - Schema.org action object\n\n**Usage**:\nThis is a GENERIC slot intended for reuse across multiple classes.\nClasses may narrow the range in slot_usage to reference specific classes\n(e.g., ReasoningContent for LLM context preservation).\n\n**LLM Thinking Context**:\nIn the context of LLM responses, this slot replaces the boolean `clear_thinking`\nslot. Instead of a boolean flag, this slot points to a ReasoningContent object\nthat captures what reasoning is being preserved across turns.\n\n**Range**: `uriorcurie` (Rule 55 - broaden range for class-level narrowing)\n\n**Migrated From**: clear_thinking (2026-01-19)\n", - "items": { - "$ref": "#/$defs/HeritagePractice" - }, - "type": "array" - }, - "sensory_heritage_domain": { - "description": "Which sensory dimensions constitute the heritage being preserved.\n\nIdentifies sensory modalities and knowledge types:\n- **Taste**: Flavor profiles, ingredient combinations, recipe formulations\n- **Scent**: Aromatic compositions, perfume notes, brewing/cooking aromas\n- **Texture**: Mouthfeel, consistency, artisanal production textures\n- **Visual**: Traditional appearance, color, plating/presentation\n- **Auditory**: Sounds of traditional production (grinding, brewing, distilling)\n- **Intangible knowledge**: Craft techniques, timing, judgment skills\n- **Terroir**: Geographic flavor identity (wine, cheese, spices)\n\nSensory heritage domains clarify what is being preserved beyond tangible products.\n\nExamples:\n- \"Taste (beer), Scent (brewing aromas), Intangible (monastic brewing)\"\n- \"Scent (perfume notes), Intangible (nose expertise), Visual (bottle design)\"\n- \"Taste (cheese flavor), Texture (aging consistency), Intangible (raw milk handling)\"\n- \"Taste (whisky profile), Scent (peat smoke), Intangible (distiller judgment)\"\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_type", - "preserves_or_preserved", - "knowledge_transmission", - "preservation_method", - "sensory_heritage_domain", - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "TasteScentHeritageType", - "type": "object" - }, - "TaxDeductibility": { - "additionalProperties": false, - "description": "Structured representation of tax deductibility status for donations.\n\n**PURPOSE**:\n\nReplaces simple boolean `tax_deductible` flag with structured class\nthat can capture:\n- Deductibility status (full, partial, none, conditional)\n- Jurisdiction-specific variations\n- Conditions and limitations\n- Temporal validity\n\n**MIGRATION**:\n\nReplaces bespoke `tax_deductible` boolean slot per slot_fixes.yaml\nrevision and Rule 53/56.\n\n**DATA MODEL**:\n\n```\nTaxDeductibility\n \u2502\n \u251c\u2500\u2500 has_or_had_type \u2500\u2500\u2192 TaxDeductibilityType (FullyDeductible, etc.)\n \u2502\n \u251c\u2500\u2500 jurisdiction \u2500\u2500\u2192 Jurisdiction class\n \u2502\n \u251c\u2500\u2500 has_or_had_condition \u2500\u2500\u2192 Condition (structured conditions)\n \u2502\n \u2514\u2500\u2500 effective_from / effective_until \u2500\u2500\u2192 dates\n```\n\n**DEDUCTIBILITY STATUSES**:\n\n| Status | Meaning |\n|--------|---------|\n| FULLY_DEDUCTIBLE | 100% of donation is tax-deductible |\n| PARTIALLY_DEDUCTIBLE | Only portion is deductible |\n| NOT_DEDUCTIBLE | No tax benefit for donors |\n| CONDITIONALLY_DEDUCTIBLE | Deductible if conditions met |\n| JURISDICTION_DEPENDENT | Varies by donor's tax jurisdiction |\n\n**HERITAGE SECTOR EXAMPLES**:\n\n- Museum membership: Often NOT deductible (benefits received)\n- Pure donation: FULLY_DEDUCTIBLE in most jurisdictions\n- Gala ticket: PARTIALLY_DEDUCTIBLE (fair market value deducted)\n- International donation: JURISDICTION_DEPENDENT", - "properties": { - "has_or_had_condition": { - "description": "A condition or state associated with an entity.\n\n**USAGE**:\nUsed for:\n- Physical condition of objects\n- Service conditions/requirements\n- Access conditions\n\n**Migration (2026-01-18)**:\nThis slot now replaces `condition_description` per slot_fixes.yaml.\nUse with Condition class which has `has_or_had_description` for textual descriptions.\n", - "items": { - "$ref": "#/$defs/Condition" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_percentage": { - "anyOf": [ - { - "$ref": "#/$defs/Percentage" - }, - { - "type": "null" - } - ], - "description": "A percentage value associated with an entity.\n\n**PURPOSE**:\n\nLinks entities to structured percentage representations.\nUsed for commission rates, discounts, completion percentages, etc.\n\n**RiC-O NAMING** (Rule 39):\n\nUses \"has_or_had_\" prefix indicating temporal relationship - \npercentages may change over time.\n\n**MIGRATION NOTE**:\n\nCreated from migration of `commission_rate` slot per slot_fixes.yaml.\nProvides structured percentage via Percentage class.\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_effective_at": { - "description": "The date or timestamp when a policy, status, or entity became effective.\nMIGRATED from `effective_date`, `status_effective_date`, `policy_effective_date` per Rule 53. Follows RiC-O temporal naming convention.", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "jurisdiction": { - "description": "Legal/administrative jurisdiction where entity operates or is registered.\n\ngleif_base:hasCoverageArea - \"Indicates a geographic region in which \nsome service is provided, or to which some policy applies\"\n\nExamples:\n- Netherlands (national): KvK jurisdiction\n- Bavaria (subnational): Amtsgericht M\u00fcnchen jurisdiction\n- European Union (supranational): SE registration jurisdiction\n", - "type": [ - "string", - "null" - ] - }, - "minimum_donation": { - "description": "Minimum donation amount for tax deductibility to apply.\nCurrency assumed to be the jurisdiction's local currency.\n", - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "has_or_had_type" - ], - "title": "TaxDeductibility", - "type": "object" - }, - "TaxRecordsSeries": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Taxation and fiscal documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the series \norganizational principle as defined by rico-rst:Series.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "series", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Series", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "StateArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by StateArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "TaxRecordsSeries", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "TaxRecordsSeries", - "type": "object" - }, - "TaxScheme": { - "additionalProperties": false, - "description": "A tax or regulatory scheme that governs fiscal treatment of donations\nand charitable activities for heritage institutions.\n\n**PURPOSE**:\n\nTaxScheme provides structured representation of the various tax\nincentive programs that heritage institutions operate under. This\nenables:\n- Accurate documentation of donor tax benefits\n- Cross-jurisdictional comparison of giving incentives\n- Compliance tracking and reporting\n- Historical tracking of scheme changes\n\n**MIGRATION**:\n\nReplaces the bespoke `tax_scheme` slot (string range) with a\nstructured class per slot_fixes.yaml revision and Rule 53/56.\n\n**HERITAGE SECTOR CONTEXT**:\n\nTax schemes significantly impact heritage institution fundraising:\n\n| Country | Scheme | Donor Benefit |\n|---------|--------|---------------|\n| NL | ANBI | 100% deductible |\n| NL | Cultural ANBI | 125% deductible |\n| UK | Gift Aid | 25% charity reclaim |\n| UK | Cultural Gifts | 30% tax reduction |\n| US | 501(c)(3) | Itemized deduction |\n| DE | Gemeinn\u00fctzigkeit | Up to 20% deductible |\n| FR | M\u00e9c\u00e9nat culturel | 66% reduction (individuals) |\n\n**DATA MODEL**:\n\n```\nTaxScheme\n \u2502\n \u251c\u2500\u2500 has_or_had_type \u2500\u2500\u2192 TaxSchemeType (ANBI, GiftAid, etc.)\n \u2502\n \u251c\u2500\u2500 has_or_had_label \u2500\u2500\u2192 \"Culturele ANBI\"\n \u2502\n \u251c\u2500\u2500 jurisdiction \u2500\u2500\u2192 \"NL\"\n \u2502\n \u251c\u2500\u2500 offers_or_offered \u2500\u2500\u2192 TaxDeductibility (with percentage)\n \u2502\n \u251c\u2500\u2500 regulatory_body \u2500\u2500\u2192 \"Belastingdienst\"\n \u2502\n \u2514\u2500\u2500 legal_basis \u2500\u2500\u2192 \"Wet inkomstenbelasting 2001\"\n```\n\n**ONTOLOGY ALIGNMENT**:\n\n- schema:GovernmentService - Tax scheme as government service\n- skos:Concept - Scheme as member of controlled vocabulary\n- org:Organization - Regulatory body reference\n- prov:Entity - Trackable entity with provenance", - "properties": { - "expires_on_expired_at": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Date or time interval when the entity expires." - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_effective_at": { - "description": "The date or timestamp when a policy, status, or entity became effective.\nMIGRATED from `effective_date`, `status_effective_date`, `policy_effective_date` per Rule 53. Follows RiC-O temporal naming convention.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "jurisdiction": { - "description": "Legal/administrative jurisdiction where entity operates or is registered.\n\ngleif_base:hasCoverageArea - \"Indicates a geographic region in which \nsome service is provided, or to which some policy applies\"\n\nExamples:\n- Netherlands (national): KvK jurisdiction\n- Bavaria (subnational): Amtsgericht M\u00fcnchen jurisdiction\n- European Union (supranational): SE registration jurisdiction\n", - "type": "string" - }, - "legal_basis": { - "description": "Legal basis for access restriction.\n\nPREMIS: statute for legal foundation.\n", - "type": [ - "string", - "null" - ] - }, - "offers_or_offered": { - "description": "Links an entity to something it offers or offered.\n\n**PURPOSE**:\n\nGeneric slot for representing what an entity provides, makes available,\nor makes accessible. Follows RiC-O temporal naming convention.\n\n**RiC-O NAMING** (Rule 39):\n\nUses \"offers_or_offered\" pattern indicating temporal relationship -\nwhat is offered may change over time.\n\n**USE CASES**:\n\n- TaxScheme offers_or_offered TaxDeductibility\n- Service offers_or_offered Benefit\n- Institution offers_or_offered Program\n\n**MIGRATION NOTE**:\n\nCreated from migration of `deduction_percentage` slot per slot_fixes.yaml.\nProvides structured link to TaxDeductibility class.\n", - "items": { - "$ref": "#/$defs/TaxDeductibility" - }, - "type": [ - "array", - "null" - ] - }, - "regulatory_body": { - "description": "Name of the government agency or regulatory body administering a scheme,\nlicense, or registration.\n\n**EXAMPLES**:\n- Belastingdienst (Dutch Tax Authority)\n- HMRC (UK tax authority)\n- IRS (US Internal Revenue Service)\n- RCE (Rijksdienst voor het Cultureel Erfgoed)\n- Charity Commission (UK)\n\n**USAGE**:\nUsed with TaxScheme, AccreditationStatus, and similar classes\nto document which authority administers the relevant program.\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "has_or_had_type", - "jurisdiction" - ], - "title": "TaxScheme", - "type": "object" - }, - "TeaRoomCatering": { - "additionalProperties": false, - "description": "Tea room or tea salon specializing in tea service, often with afternoon tea,\nscones, sandwiches, and pastries.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "const": "Tea Room", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "TeaRoomCatering", - "type": "object" - }, - "TearMending": { - "additionalProperties": false, - "description": "Repair of tears in canvas or paper using thread bridges or patches.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "TearMending", - "type": "object" - }, - "TechnicalFeature": { - "additionalProperties": false, - "description": "A technical feature or capability of a platform.", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "TechnicalFeature", - "type": "object" - }, - "TechnicalPhotography": { - "additionalProperties": false, - "description": "Standardized photography for condition documentation.\nIncludes overall views, details, and technical imaging.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "TechnicalPhotography", - "type": "object" - }, - "Technique": { - "additionalProperties": false, - "description": "A technique or method used in a heritage activity.\n\nProvides structured representation of techniques with type classification,\ndescriptions, and the ability to reference sub-techniques.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_type" - ], - "title": "Technique", - "type": "object" - }, - "TechnologicalInfrastructure": { - "additionalProperties": false, - "description": "Structured representation of a technology component used in a digital platform.\n\n**MIGRATION from technology_stack**:\nThis class replaces the simple string-based `technology_stack` slot with a\nstructured model that provides:\n- Type classification via TechnologicalInfrastructureType hierarchy\n- Version tracking\n- Component composition (includes_or_included)\n- Rich descriptions and provenance\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `doap:Project` - DOAP vocabulary for software projects\n- **Close**: `schema:SoftwareApplication` - Schema.org software application\n- **Related**: `spdx:Package` - SPDX Software Bill of Materials\n\n**Example Usage**:\n```yaml\nhas_or_had_technological_infrastructure:\n - has_or_had_identifier: tech-react-frontend\n has_or_had_type: FrontendFramework\n has_or_had_label: React\n has_or_had_version: \"18.2.0\"\n has_or_had_description: Frontend JavaScript library for building user interfaces\n - has_or_had_identifier: tech-django-backend\n has_or_had_type: BackendFramework\n has_or_had_label: Django\n has_or_had_version: \"4.2\"\n has_or_had_description: Python web framework for rapid development\n includes_or_included:\n - Django REST Framework\n - Django ORM\n```\n\n**Use Cases**:\n- Document platform technology stacks for heritage digital platforms\n- Track software versions for preservation and migration planning\n- Model component dependencies\n- Enable technology-based discovery of similar platforms", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_version": { - "description": "Version number or identifier of an entity.\n\n**USAGE**:\nUsed for:\n- Software versions\n- Document versions\n- Schema versions\n", - "type": [ - "string", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_type", - "has_or_had_label" - ], - "title": "TechnologicalInfrastructure", - "type": "object" - }, - "Telegram": { - "additionalProperties": false, - "description": "Telegram channel or group.\n\n**URL patterns**:\n- https://t.me/{username}\n- https://telegram.me/{username}\n\n**Features**:\n- Channels (broadcast)\n- Groups (discussion)\n- Bots and automation\n- File sharing\n\n**Heritage use cases**:\n- News channels\n- Discussion groups\n- Bot-based services (collection lookup)\n- International audience reach", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "MESSAGING", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://t.me/{username}", - "https://telegram.me/{username}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "Telegram", - "type": "object" - }, - "TelevisionArchive": { - "additionalProperties": false, - "description": "A heritage custodian specialized in collecting, preserving, and providing access to television programs, recordings, and broadcasts. Television archives (Fernseharchive) maintain collections of broadcast content, including news programs, documentaries, entertainment shows, and other televisual materials that document broadcast history and cultural production.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "TelevisionArchive", - "type": "object" - }, - "TelevisionArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections of television programs, recordings, and broadcast materials.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "TelevisionArchiveRecordSetType", - "type": "object" - }, - "TelevisionBroadcastFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Television program recordings.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "TelevisionArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by TelevisionArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "TelevisionBroadcastFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "TelevisionBroadcastFonds", - "type": "object" - }, - "TemperatureDeviation": { - "additionalProperties": false, - "description": "Structured specification of allowed temperature deviation/tolerance.\n**DEFINITION**:\nRepresents the acceptable range of temperature variation from a setpoint, typically expressed as \u00b1X degrees Celsius (e.g., \u00b12\u00b0C).\n**ONTOLOGY MAPPING**:\n- class_uri: qudt:Tolerance (QUDT tolerance concept) - close_mapping: brick:Temperature_Deadband (building automation)\n**ISO STANDARD REFERENCE VALUES**:\n| Standard | Context | Typical Tolerance | |----------|---------|-------------------| | ISO 11799:2015 | Archives | \u00b12\u00b0C daily | | ISO 18911:2010 | Cold/Frozen Storage | \u00b12\u00b0C | | BS 4971:2017 | UK Sensitive Materials | \u00b11\u00b0C | | EN 16893:2018 | Museums | \u00b12\u00b0C recommended |\n**PRESERVATION CONTEXT**:\nTemperature fluctuations cause dimensional changes in hygroscopic materials (paper, parchment, leather, textiles). Repeated cycling leads to mechanical fatigue and cumulative damage. Tighter tolerances are critical for mixed media objects (e.g., oil paintings on canvas).\n**WHY NOT JUST FLOAT?**\nSimple float fields like `temperature_tolerance: 2.0` lose important context: - What's the unit? (Celsius? Fahrenheit?) - Is this plus/minus or just plus? - What standard is this based on? - When was this tolerance established?\n**MIGRATION NOTE**:\nThis class replaces the bespoke `temperature_tolerance` slot (float range). Used via the generic `allows_or_allowed` slot per Rule 53/56.\n**EXAMPLE**:\n```yaml EnvironmentalZone:\n allows_or_allowed:\n - deviation_value: 2.0\n deviation_direction: PLUS_MINUS\n has_or_had_measurement_unit:\n has_or_had_type: DEGREE_CELSIUS\n has_or_had_symbol: \"\u00b0C\"\n iso_standard_reference: \"ISO 11799:2015\"\n```", - "properties": { - "deviation_direction": { - "description": "Direction of deviation.\n- PLUS_MINUS: Symmetric tolerance (\u00b12\u00b0C) - most common - PLUS: Only above target allowed (+2\u00b0C) - MINUS: Only below target allowed (-2\u00b0C)", - "type": [ - "string", - "null" - ] - }, - "deviation_value": { - "description": "Numeric value of the allowed deviation (e.g., 2.0 for \u00b12\u00b0C).\nTypical ranges: - 0.5-1.0: Precision cold storage, sensitive materials - 1.0-2.0: Standard archive/museum storage - 2.0-3.0: General storage, less sensitive materials", - "maximum": 5.0, - "minimum": 0.5, - "type": "number" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_measurement_unit": { - "anyOf": [ - { - "$ref": "#/$defs/MeasureUnit" - }, - { - "type": "null" - } - ], - "description": "The unit of measurement for a quantity value. Uses RiC-O temporal naming pattern to indicate the unit may be current or historical (e.g., if measurement standards changed over time).\n**QUDT**: qudt:unit - \"The unit of measure used to express the value of a Quantity.\"\n**USE CASES**: - Visitor counts: unit = \"visitors\", \"visitors/year\" - View counts: unit = \"views\", \"views/day\" - Collection sizes: unit = \"items\", \"objects\", \"linear meters\" - Area: unit = \"m\u00b2\", \"ha\", \"km\u00b2\" - Currency: unit = \"EUR\", \"USD\", \"GBP\"" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard_reference": { - "description": "ISO or other standard this tolerance is based on.", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "deviation_value" - ], - "title": "TemperatureDeviation", - "type": "object" - }, - "TemperatureMeasurement": { - "additionalProperties": false, - "description": "Temperature measurement type for monitoring storage and display environments.\nStandard units: degrees Celsius (\u00b0C) or Fahrenheit (\u00b0F).\n\nTypical conservation ranges:\n- Archives/libraries: 18-22\u00b0C\n- Museums (general): 18-22\u00b0C \n- Cold storage (photographs): 2-8\u00b0C\n- Freezer storage (textiles): -20\u00b0C", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_measurement_unit": { - "anyOf": [ - { - "$ref": "#/$defs/MeasureUnit" - }, - { - "type": "null" - } - ], - "description": "The unit of measurement for a quantity value. Uses RiC-O temporal naming pattern to indicate the unit may be current or historical (e.g., if measurement standards changed over time).\n**QUDT**: qudt:unit - \"The unit of measure used to express the value of a Quantity.\"\n**USE CASES**: - Visitor counts: unit = \"visitors\", \"visitors/year\" - View counts: unit = \"views\", \"views/day\" - Collection sizes: unit = \"items\", \"objects\", \"linear meters\" - Area: unit = \"m\u00b2\", \"ha\", \"km\u00b2\" - Currency: unit = \"EUR\", \"USD\", \"GBP\"" - }, - "has_or_had_name": { - "const": "Temperature", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "TemperatureMeasurement", - "type": "object" - }, - "TemplateSpecificityScore": { - "additionalProperties": false, - "description": "A single template specificity score associating a template type with a numeric value.\n\n**Purpose** (Rule 37):\nEnables context-aware RAG retrieval by assigning relevance scores\n(0.0-1.0) to schema classes for different conversation templates.\n\n**Design Pattern**:\nReplaces the previous `TemplateSpecificityScores` class which had\n10 separate score slots (one per template). The new pattern uses:\n- `has_or_had_type` \u2192 `TemplateSpecificityType` (which template)\n- `has_or_had_score` \u2192 float (the relevance score)\n\n**Benefits**:\n- Extensible: Adding new templates doesn't require new slots\n- Consistent: Follows RiC-O naming conventions (Rule 39)\n- Reusable: Uses generic slots per Rule 38 (slot centralization)\n\n**Score Semantics** (LOWER = more broadly relevant):\n| Score Range | Meaning | Examples |\n|-------------|---------|----------|\n| 0.00-0.20 | Universal | HeritageCustodian, Location |\n| 0.20-0.40 | Broadly useful | Collection, Identifier |\n| 0.40-0.60 | Moderately specific | ChangeEvent, PersonProfile |\n| 0.60-0.80 | Fairly specific | Archive, Museum, Library |\n| 0.80-1.00 | Highly specific | LinkedInConnectionExtraction |\n\n**Migration Notes**:\n- Old: `template_specificity` slot with `TemplateSpecificityScores` class\n- New: `has_or_had_score` slot with `TemplateSpecificityScore` class (multivalued)\n- Old class archived: TemplateSpecificityScores \u2192 archive/", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n", - "maximum": 1.0, - "minimum": 0.0, - "type": "number" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/TemplateSpecificityType" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_type", - "has_or_had_score" - ], - "title": "TemplateSpecificityScore", - "type": "object" - }, - "TemporalPeriod": { - "additionalProperties": false, - "description": "A named historical period with optional start/end dates and description.", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "period": { - "description": "Period as single string (e.g., \"1945-1965\")", - "type": [ - "string", - "null" - ] - }, - "period_description": { - "description": "Description of the period", - "type": [ - "string", - "null" - ] - }, - "period_end": { - "description": "End of period", - "type": [ - "string", - "null" - ] - }, - "period_name": { - "description": "Name of the period", - "type": "string" - }, - "period_start": { - "description": "Start of period", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "period_name" - ], - "title": "TemporalPeriod", - "type": "object" - }, - "TemporalScope": { - "additionalProperties": false, - "description": "Time-based scope dimension covering date ranges, historical periods, and eras.\n\n**Examples**:\n- \"1600-1700\" (date range)\n- \"Medieval period\" (historical period)\n- \"19th century\" (century scope)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this scope type. Can include:\n- Type URI (e.g., https://nde.nl/ontology/hc/scope-type/temporal)\n- Wikidata Q-number (e.g., Q186408)\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "TemporalScope", - "type": "object" - }, - "TemporaryLocation": { - "additionalProperties": false, - "description": "Time-limited or temporary physical location of a heritage custodian.\n\n**DEFINITION**:\n\nA TemporaryLocation is a secondary physical location that is explicitly\nintended to be short-term or time-limited. Unlike permanent auxiliary\nplaces, temporary locations have a planned end date and serve specific\ntransitional purposes.\n\n**W3C ORG ALIGNMENT**:\n\n`org:Site` with explicit temporal boundaries - \"An office or other premise\nat which the organization is located\" for a defined period.\n\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Duration | Intent |\n|------|----------|--------|\n| BranchOffice | Permanent | Ongoing service delivery |\n| Storage | Permanent | Long-term collection storage |\n| **TemporaryLocation** | Time-limited | Transitional purpose |\n| ExhibitionSpace | Varies | May be temporary or permanent |\n\n**TYPICAL REASONS FOR TEMPORARY LOCATIONS**:\n\n1. **Renovation/Construction**:\n - Main building undergoing renovation\n - Collections temporarily relocated\n - Staff moved to interim offices\n\n2. **Emergency/Disaster**:\n - Flood/fire damage to main building\n - Emergency collection storage\n - Temporary public access point\n\n3. **Pop-up Programs**:\n - Traveling exhibitions\n - Community outreach locations\n - Festival/event presence\n\n4. **Pilot Projects**:\n - Testing new service models\n - Exploring new geographic areas\n - Experimental programming\n\n**CIDOC-CRM ALIGNMENT**:\n\n`crm:E7_Activity` with `crm:P4_has_time-span` - Activities that occur\nat specific locations for defined periods.\n\n**USE CASES**:\n\n1. **Renovation Interim Location**:\n ```yaml\n TemporaryLocation:\n temp_location_id: \"https://nde.nl/ontology/hc/aux/stedelijk-temp-2020\"\n temp_location_name: \"Stedelijk Museum Temporary Entrance\"\n temp_location_reason: RENOVATION\n planned_start: \"2020-06-01\"\n planned_end: \"2021-12-31\"\n reason_description: \"Main entrance renovation - temporary access via garden entrance\"\n ```\n\n2. **Pop-up Exhibition**:\n ```yaml\n TemporaryLocation:\n temp_location_name: \"Rijksmuseum Pop-up Groningen\"\n temp_location_reason: POP_UP_PROGRAM\n planned_start: \"2024-07-01\"\n planned_end: \"2024-09-30\"\n reason_description: \"Summer pop-up exhibition in Groninger Forum\"\n ```\n\n3. **Emergency Storage**:\n ```yaml\n TemporaryLocation:\n temp_location_name: \"Emergency Collection Storage - Watersnood\"\n temp_location_reason: EMERGENCY\n temporal_extent:\n begin_of_the_begin: \"2024-01-15\" # Actual start\n planned_end: null # Unknown when main facility will be repaired\n reason_description: \"Emergency relocation due to flooding at main depot\"\n ```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_rationale": { - "description": "The rationale or justification for a decision or mapping.\n\n**USAGE**:\nUsed for:\n- Mapping rationale (why an entity was mapped to Wikidata)\n- Decision justifications\n- Explanation notes\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:used` (per 2026-01-26 update)\n- **Close**: `skos:note` - SKOS note (DatatypeProperty)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "$ref": "#/$defs/TemporaryLocationReasonEnum" - }, - "is_active": { - "description": "Whether this temporary location is currently active.\n\nTRUE: Currently operational\nFALSE: Closed/ended or not yet started\n\nComputed from actual_start/actual_end dates.\n", - "type": "boolean" - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "planned_end": { - "description": "Planned/expected end date of this temporary location.\n\nSchema.org: endDate for temporal end.\n\nNULL if end date unknown (e.g., emergency situations).\nMay differ from actual_end if circumstances changed.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "planned_start": { - "description": "Planned/expected start date of this temporary location.\n\nSchema.org: startDate for temporal start.\n\nMay differ from actual_start if circumstances changed.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "replaces_primary_location": { - "description": "Whether this temporary location replaces the primary/main location.\n\nTRUE: Primary location closed, this serves as main access point\nFALSE: Supplementary to primary location (e.g., pop-up)\n\nImportant for user communication - where to direct visitors.\n", - "type": [ - "boolean", - "null" - ] - }, - "serves_function_of": { - "description": "What function(s) this temporary location serves from the main facility.\n\nList of functions that have been relocated here.\n\nCommon values:\n- \"Public entrance\"\n- \"Reading room\"\n- \"Collection storage\"\n- \"Exhibition space\"\n- \"Staff offices\"\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label", - "has_or_had_type", - "is_active" - ], - "title": "TemporaryLocation", - "type": "object" - }, - "TemporaryLocationReasonEnum": { - "description": "Reasons for establishing a temporary location", - "enum": [ - "RENOVATION", - "CONSTRUCTION", - "EMERGENCY", - "POP_UP_PROGRAM", - "PILOT_PROJECT", - "EVENT_PRESENCE", - "INTERIM_RELOCATION" - ], - "title": "TemporaryLocationReasonEnum", - "type": "string" - }, - "TerraceCatering": { - "additionalProperties": false, - "description": "Outdoor or garden caf\u00e9, typically seasonal, offering refreshments\nin a garden, courtyard, or terrace setting.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_name": { - "const": "Terrace", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "TerraceCatering", - "type": "object" - }, - "TerroirSignificance": { - "additionalProperties": false, - "description": "Geographic/environmental specificity and uniqueness.\n\n**Aspects**:\n- Geographic origin\n- Environmental conditions\n- Place-based character\n- PDO/PGI designations\n\n**Use Cases**:\n- Food and beverage heritage (wine, cheese, spirits)\n- Agricultural heritage\n- Place-based crafts\n\n**Example**:\n```yaml\nhas_or_had_significance:\n - has_or_had_type: TerroirSignificance\n has_or_had_description: \"Gouda PDO, specific to region, traditional methods\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "TerroirSignificance", - "type": "object" - }, - "Terrorism": { - "additionalProperties": false, - "description": "Deliberate targeted attacks on cultural heritage.\nExamples: Palmyra destruction by ISIS, Bamiyan Buddhas.", - "title": "Terrorism", - "type": "object" - }, - "Text": { - "additionalProperties": false, - "description": "", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_provenance": { - "description": "Provenance information for this data element.\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\nBroadened from ProvenanceBlock to uriorcurie to resolve OWL ambiguous type warnings. This allows classes to narrow via slot_usage to: - `ProvenanceBlock` for comprehensive provenance tracking - `SourceDocument` for source document references - String URIs for simple provenance references\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming follows RiC-O convention indicating that provenance associations can change over time: - Additional provenance may be added as data is enriched - Provenance may be updated when verification occurs - Historical provenance preserved through versioning\n**REPLACES**: - `all_data_real` (auto-generated stub, string range) - `is_or_was_real` (RealnessStatus typed class) - `has_all_data_real_flag` (boolean flag, no provenance) - `has_or_had_observation_source_document` (bespoke slot, Rule 55)\n**EXAMPLE**: ```yaml has_or_had_provenance:\n data_source: \"public_linkedin_profile\"\n extraction_date: \"2025-01-14T12:00:00Z\"\n confidence_score: 0.95\n note: \"Verified production data\"\n```", - "type": [ - "string", - "null" - ] - }, - "is_or_was_created_through": { - "description": "Event through which an entity was created.", - "type": [ - "string", - "null" - ] - } - }, - "title": "Text", - "type": "object" - }, - "TextPost": { - "additionalProperties": false, - "description": "Text-based social media posts, typically short-form.\n\n**Activity Streams Mapping**: `as:Note`\n**Schema.org Mapping**: `schema:SocialMediaPosting`\n\n**Platforms and Character Limits**:\n\n| Platform | Character Limit | Notes |\n|----------|-----------------|-------|\n| X/Twitter | 280 (free), 4000 (premium) | Originally 140 |\n| Mastodon | 500 (configurable) | ActivityPub federation |\n| Bluesky | 300 | AT Protocol |\n| LinkedIn | 3000 | Longer-form text |\n| Facebook | 63,206 | Practically unlimited |\n| Threads | 500 | Instagram integration |\n\n**Heritage Use Cases**:\n\n| Use Case | Description | Example |\n|----------|-------------|---------|\n| Announcements | News and updates | \"New exhibition opens Friday!\" |\n| Event reminders | Upcoming activities | \"Join us for #AskACurator\" |\n| Facts and trivia | Collection knowledge | \"This painting took 4 years...\" |\n| Engagement | Questions and polls | \"What's your favorite artwork?\" |\n| Advocacy | Preservation awareness | Heritage at risk alerts |\n| Live updates | Real-time event coverage | Conference live-tweeting |\n\n**Characteristics**:\n- May include attached media (images, videos)\n- Hashtag support for discovery\n- Mention/tagging for engagement\n- Link previews for URL sharing", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "post_type_activity_streams_type": { - "const": "as:Note", - "description": "Activity Streams 2.0 type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_category": { - "const": "TEXT", - "description": "High-level category for grouping related post types.\nValues: VIDEO, SHORT_VIDEO, IMAGE, TEXT, STORY, LIVE_STREAM,\nAUDIO, ARTICLE, THREAD, CAROUSEL, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "post_type_description": { - "description": "Detailed description of this post type including purpose,\ncharacteristics, and typical use cases in heritage context.\n", - "type": [ - "string", - "null" - ] - }, - "post_type_ephemeral": { - "description": "Whether this post type is ephemeral (disappears after time).", - "type": [ - "boolean", - "null" - ] - }, - "post_type_heritage_use_case": { - "description": "Typical use cases for heritage institutions creating this content type.\n\nExamples for Video:\n- Virtual exhibition tours\n- Conservation process documentation\n- Curator interviews\n- Historical documentary content\n- Educational lectures\n\nExamples for Short Video:\n- Artifact spotlights\n- Behind-the-scenes moments\n- Quick conservation tips\n- Event teasers\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_id": { - "description": "Unique identifier for this post type", - "type": "string" - }, - "post_type_max_duration": { - "description": "Maximum duration for this post type (e.g., video length).", - "type": [ - "string", - "null" - ] - }, - "post_type_media_format": { - "description": "Supported media formats for this post type.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_name": { - "description": "Canonical name for this post type.\nUsed for display and content categorization.\n\nExamples: \"Video\", \"Short Video\", \"Image Post\", \"Story\", \"Live Stream\"\n", - "type": "string" - }, - "post_type_schema_org_type": { - "const": "schema:SocialMediaPosting", - "description": "Schema.org type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_supported_platform": { - "description": "Platforms that support this post type.", - "items": { - "enum": [ - "XTwitter", - "Mastodon", - "Bluesky", - "LinkedIn", - "Facebook", - "Threads" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "post_type_id", - "post_type_name" - ], - "title": "TextPost", - "type": "object" - }, - "TextRegion": { - "additionalProperties": false, - "description": "Text region.", - "properties": { - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "TextRegion", - "type": "object" - }, - "TextileCollectionContent": { - "additionalProperties": false, - "description": "Textile materials: Historical garments, tapestries,\nbanners, ecclesiastical vestments, embroidery.", - "properties": { - "has_or_had_label": {}, - "type_definition": { - "description": "Definition of this collection content type", - "type": [ - "string", - "null" - ] - } - }, - "title": "TextileCollectionContent", - "type": "object" - }, - "TextileStorageEnvironment": { - "additionalProperties": false, - "description": "Storage for textile and costume collections.\n\n**PURPOSE**: Provide stable environmental conditions for textile\npreservation, minimizing light damage and dimensional changes.\n\n**RECOMMENDED CONDITIONS (EN 16893:2018)**:\n- Temperature: 15-20\u00b0C (target 18\u00b0C)\n- Relative humidity: 45-55% (target 50%)\n- Light: < 50 lux maximum (textiles are highly photosensitive)\n- Annual light exposure: < 15,000 lux-hours\n- UV: < 75 \u00b5W/lumen\n\n**EN 16893:2018 GUIDANCE**:\n- Stable conditions prevent dimensional stress\n- Light damage is cumulative and irreversible\n- Annual exposure limits more important than instantaneous levels\n\n**SUITABLE MATERIALS**:\n- Historic costumes and clothing\n- Tapestries and woven textiles\n- Flags and banners\n- Embroideries and lace\n- Rugs and carpets\n\n**SPECIAL REQUIREMENTS**:\n- Light levels strictly controlled (category 3 sensitivity)\n- Annual light exposure monitored\n- UV filtering essential\n- Pest management critical (IPM)\n\n**STANDARD REFERENCES**:\n- EN 16893:2018 - Conservation of cultural heritage - Storage specifications\n\n**HC PRESET**: hc:TextileStorageEnvironment", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "TEXTILE", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "pattern": "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_setpoint": { - "description": "Environmental control setpoint(s) for this entity.\n\nCaptures target values, acceptable ranges, and tolerances for\nmeasurable environmental properties (temperature, humidity, light, etc.).\n\nReplaces bespoke slots like temperature_target, temperature_min,\ntemperature_max, target_temperature_celsius, target_relative_humidity\nwith a structured Setpoint class.\n", - "items": { - "$ref": "#/$defs/Setpoint" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "iso_standard": { - "description": "Reference to applicable ISO or EN standard for this environmental zone type.\n\nFormat: Standard identifier (e.g., \"ISO 11799\", \"ISO 18911\", \"EN 16893\")\n\nCommon preservation standards:\n- ISO 11799: Document storage requirements\n- ISO 18911: Film storage practices\n- ISO 18934: Multiple media archives storage\n- EN 16893: Heritage collection storage buildings\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "max_annual_light_exposure": { - "const": 15000, - "description": "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \u00d7 8 hours/day \u00d7 250 days = 100,000 lux-hours (too high!)\n", - "maximum": 500000.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "max_light_lux": { - "const": 50, - "description": "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \u00d7 8 hours = 400 lux \u00d7 1 hour (same damage).\n", - "maximum": 500.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "requires_dark_storage": { - "description": "Whether dark (zero light) storage is required for this environmental zone.\n\nBased on ISO preservation standards:\n- Film storage (ISO 18911): Dark storage mandatory\n- Photographic (ISO 18920): Dark storage for extended-term\n- UK Archives (BS 4971): 0 lux for closed storage\n\nDark storage essential for:\n- Film negatives (especially color and early nitrate/acetate)\n- Daguerreotypes and early photographic processes\n- Cyanotypes and blueprint materials\n- Some magnetic media (tape)\n- Highly fugitive inks and dyes\n\nAccess provided through reading rooms or digitization requests.\nCumulative light damage is completely prevented.\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_dust_free": { - "description": "Whether a dust-free or dust-controlled environment is required for this zone.\n\nBased on ISO preservation standards:\n- Magnetic tape (ISO 18923): Dust-free mandatory\n- Optical media (ISO 18938): Cleanroom for masters\n- Archives (ISO 11799): Dust control required\n\nISO 14644-1 Cleanliness Classes:\n- Class 8: General archive/museum (HEPA filtered)\n- Class 7: AV media storage (positive pressure)\n- Class 5: Digital master storage (cleanroom)\n\nDust-free essential for:\n- Magnetic tapes and audiovisual media\n- Optical discs (CD, DVD, Blu-ray)\n- Fine art and paintings (surface abrasion)\n- Photographic materials (scratches, embedded particles)\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_esd_protection": { - "description": "Whether electrostatic discharge (ESD) protection is required for this zone.\n\nBased on ISO/IEC standards:\n- Magnetic tape (ISO 18923): ESD protection required\n- Optical media (ISO 18938): ESD-safe handling mandatory\n- Electronics (IEC 61340-5-1): ESD control program\n\nESD protection measures include:\n- Conductive/dissipative flooring\n- Humidity control (40-60% RH reduces static)\n- ESD-safe packaging and equipment\n- Personnel grounding (wrist straps)\n\nESD protection essential for:\n- Hard drives and SSDs\n- LTO and other magnetic tapes\n- Optical media (CD, DVD, Blu-ray masters)\n- Electronic components and circuit boards\n- Born-digital heritage collections\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_uv_filter": { - "description": "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \u00b5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n", - "type": [ - "boolean", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "stores_or_stored": { - "description": "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\nmigration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n", - "items": { - "$ref": "#/$defs/Material" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_code", - "has_or_had_label", - "has_or_had_description" - ], - "title": "TextileStorageEnvironment", - "type": "object" - }, - "TextualContent": { - "additionalProperties": false, - "description": "Written or printed textual information.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "TEXTUAL", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Textual Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "TextualContent", - "type": "object" - }, - "TheatreRecordsFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Theatre company records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "PerformingArtsArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by PerformingArtsArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "TheatreRecordsFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "TheatreRecordsFonds", - "type": "object" - }, - "ThematicRoute": { - "additionalProperties": false, - "description": "A thematic area, route, or priority cluster within a funding agenda. ThematicRoute represents a major area of focus that guides research priorities and funding allocation. Routes are typically interdisciplinary and address broad societal challenges. **PURPOSE**: Routes structure the agenda into navigable themes that: - Help researchers identify relevant funding opportunities - Guide funding organisations in designing calls - Enable cross-referencing between agenda priorities and actual calls **NAMING CONVENTIONS**: Different agendas use different terminology: - NWA: \"Routes\" (25 thematic routes) - Horizon Europe: \"Clusters\" (6) and \"Missions\" (5) - Creative Europe: \"Strands\" (3) - National strategies: \"Priority areas\", \"Themes\", \"Pillars\" - **SKOS**: `skos:Concept` - Thematic routes are concepts in a scheme - Can be organised hierarchically (broader/narrower themes) - Can be linked across agendas (similar themes in different frameworks)", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "route_description": { - "description": "Description of what this thematic route covers.\nHelps understand the scope and focus of the route.\n", - "type": [ - "string", - "null" - ] - }, - "route_id": { - "description": "Unique identifier for this thematic route.\nFormat: https://nde.nl/ontology/hc/route/{agenda-slug}/{route-slug}\n", - "pattern": "^https://nde\\.nl/ontology/hc/route/[a-z0-9-]+/[a-z0-9-]+$", - "type": "string" - }, - "route_keyword": { - "description": "Keywords associated with this thematic route.\nUseful for discovery and matching to research topics.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "route_relevance_to_heritage": { - "description": "Explanation of how this route relates to cultural heritage.\n\nMaps to schema:about - indicates what heritage topics this route addresses.\n\nHelps heritage institutions understand relevance:\n- \"Directly relevant\" - explicitly covers heritage\n- \"Indirectly relevant\" - covers adjacent topics (climate, digital)\n- \"Limited relevance\" - heritage as minor application area\n", - "type": [ - "string", - "null" - ] - }, - "route_title": { - "description": "Official title of the thematic route.\nShould match agenda documentation.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "route_id", - "route_title" - ], - "title": "ThematicRoute", - "type": "object" - }, - "ThinkingMode": { - "additionalProperties": false, - "description": "LLM thinking mode configuration for API requests.\n\n**DEFINITION**:\n\nThinkingMode represents the operational mode for LLM reasoning during inference.\nThis class wraps ThinkingModeEnum to provide extensibility and structured metadata.\n\n**GLM 4.7 Thinking Modes** (https://docs.z.ai/guides/capabilities/thinking-mode):\n\n1. **enabled** - Thinking enabled, model reasons before responding\n2. **disabled** - Thinking disabled, faster responses without reasoning_content\n3. **interleaved** - Think between tool calls (default since GLM-4.5)\n4. **preserved** - Retain reasoning across turns (Coding Plan default)\n\n**Ontological Alignment**:\n- Maps to `schema:PropertyValue` for configuration settings\n- Enables future extension with timing, tokens, confidence metadata\n\n**Migration Note**:\nCreated 2026-01-16 to replace bespoke `thinking_mode` slot per Rule 53/56.\nThe enum ThinkingModeEnum is preserved; this class adds structure.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "mode_value": { - "$ref": "#/$defs/ThinkingModeEnum", - "description": "The thinking mode enum value.\nOne of: enabled, disabled, interleaved, preserved.\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "mode_value" - ], - "title": "ThinkingMode", - "type": "object" - }, - "ThinkingModeEnum": { - "description": "GLM 4.7 thinking mode configuration.\nControls how the model reasons during inference.\n\n**Reference**: https://docs.z.ai/guides/capabilities/thinking-mode\n\nGLM 4.7 introduces three distinct thinking modes that can be combined:\n1. Interleaved Thinking (between tool calls)\n2. Preserved Thinking (across conversation turns)\n3. Turn-level Thinking (enable/disable per request)", - "enum": [ - "enabled", - "disabled", - "interleaved", - "preserved" - ], - "title": "ThinkingModeEnum", - "type": "string" - }, - "ThreadPost": { - "additionalProperties": false, - "description": "Multi-post sequences forming a connected narrative.\n\n**Activity Streams Mapping**: `as:Collection` of `as:Note`\n**Schema.org Mapping**: `schema:ItemList` of `schema:SocialMediaPosting`\n\n**Platforms**:\n- X/Twitter (threads)\n- Mastodon (threads)\n- Bluesky (threads)\n- Threads by Meta\n\n**Characteristics**:\n- Multiple connected posts\n- Sequential reading order\n- Often numbered (1/10, 2/10, etc.)\n- Reply-chain structure\n- Can be bookmarked/shared as unit\n- \"Thread reader\" apps for reading\n\n**Heritage Use Cases**:\n\n| Use Case | Description | Typical Length |\n|----------|-------------|----------------|\n| Object stories | Multi-part artifact narratives | 5-15 posts |\n| Exhibition walkthroughs | Room-by-room descriptions | 10-20 posts |\n| Historical timelines | Chronological storytelling | 10-30 posts |\n| Conservation process | Step-by-step documentation | 5-10 posts |\n| Artist biographies | Life story in segments | 10-15 posts |\n| Collection highlights | \"Top 10\" style series | 10-12 posts |\n\n**Engagement Benefits**:\n- Higher engagement than single posts\n- Encourages following for completion\n- Easily shared as complete unit\n- Thread unroller tools for reading", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "post_type_activity_streams_type": { - "const": "as:Collection", - "description": "Activity Streams 2.0 type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_category": { - "const": "THREAD", - "description": "High-level category for grouping related post types.\nValues: VIDEO, SHORT_VIDEO, IMAGE, TEXT, STORY, LIVE_STREAM,\nAUDIO, ARTICLE, THREAD, CAROUSEL, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "post_type_description": { - "description": "Detailed description of this post type including purpose,\ncharacteristics, and typical use cases in heritage context.\n", - "type": [ - "string", - "null" - ] - }, - "post_type_ephemeral": { - "description": "Whether this post type is ephemeral (disappears after time).", - "type": [ - "boolean", - "null" - ] - }, - "post_type_heritage_use_case": { - "description": "Typical use cases for heritage institutions creating this content type.\n\nExamples for Video:\n- Virtual exhibition tours\n- Conservation process documentation\n- Curator interviews\n- Historical documentary content\n- Educational lectures\n\nExamples for Short Video:\n- Artifact spotlights\n- Behind-the-scenes moments\n- Quick conservation tips\n- Event teasers\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_id": { - "description": "Unique identifier for this post type", - "type": "string" - }, - "post_type_max_duration": { - "description": "Maximum duration for this post type (e.g., video length).", - "type": [ - "string", - "null" - ] - }, - "post_type_media_format": { - "description": "Supported media formats for this post type.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_name": { - "description": "Canonical name for this post type.\nUsed for display and content categorization.\n\nExamples: \"Video\", \"Short Video\", \"Image Post\", \"Story\", \"Live Stream\"\n", - "type": "string" - }, - "post_type_schema_org_type": { - "description": "Schema.org type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_supported_platform": { - "description": "Platforms that support this post type.", - "items": { - "enum": [ - "XTwitter", - "Mastodon", - "Bluesky", - "Threads" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "post_type_id", - "post_type_name" - ], - "title": "ThreadPost", - "type": "object" - }, - "Threads": { - "additionalProperties": false, - "description": "Threads by Meta profile.\n\n**URL patterns**:\n- https://www.threads.net/@{username}\n\n**Features**:\n- Text-based social networking\n- Instagram integration\n- ActivityPub federation (planned)\n\n**Heritage use cases**:\n- Alternative to X/Twitter\n- Text-based engagement\n- Cross-posting with Instagram", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "GENERAL_SOCIAL", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://www.threads.net/@{username}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "Threads", - "type": "object" - }, - "Threat": { - "additionalProperties": false, - "description": "A factor that threatens or threatened the viability of heritage.\n\nUsed primarily for intangible cultural heritage documentation per UNESCO conventions,\nbut can also apply to physical heritage sites, collections, or institutions.\n\n**COMMON THREATS**:\n- Urbanization and modernization\n- Globalization and cultural homogenization\n- Loss of practitioners (aging, lack of transmission)\n- Lack of funding and institutional support\n- Climate change and environmental degradation\n- Political instability and conflict\n- Economic pressures and commercialization", - "properties": { - "has_or_had_type": { - "anyOf": [ - { - "$ref": "#/$defs/ThreatType" - }, - { - "type": "null" - } - ] - } - }, - "title": "Threat", - "type": "object" - }, - "ThreeDScanning": { - "additionalProperties": false, - "description": "Digital 3D surface capture using structured light or photogrammetry.\nCreates high-resolution surface models.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ThreeDScanning", - "type": "object" - }, - "Thumbnail": { - "additionalProperties": false, - "description": "Structured thumbnail media reference.\n\n**DEFINITION**:\nA thumbnail is a reduced-size version of an image or video frame,\ntypically used for preview purposes in search results, galleries,\nand navigation interfaces.\n\n**DERIVATION FROM VIDEO** (2026-01-19 migration):\nWhen a thumbnail is extracted from a video, use:\n- `derives_or_derived_from` \u2192 Video (source video reference)\n- `has_or_had_time_interval` \u2192 TimeInterval (frame timestamp)\n\nThis replaces the deprecated `chapter_thumbnail_timestamp` float field\nwith a structured representation that supports:\n- Explicit source video reference (provenance)\n- Precise timestamp with ISO 8601 duration format\n- Multiple timestamp formats (seconds, HH:MM:SS, ISO duration)\n\n**CONSISTENCY PATTERN** (Rule 56):\nUses structured class rather than simple URL for consistency with\nother media reference patterns and extensibility:\n\n| Slot | Class | Purpose |\n|------|-------|---------|\n| has_or_had_image | Image | Full-size images |\n| has_or_had_video | Video | Video resources |\n| has_or_had_audio | Audio | Audio resources |\n| has_or_had_thumbnail | Thumbnail | Preview images |\n\n**EXTENSIBILITY**:\nStructured class enables future metadata:\n- Image dimensions (width, height)\n- Alternative text for accessibility\n- Format (JPEG, PNG, WebP)\n- Generation timestamp\n- Source image/video reference\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary**: `schema:ImageObject` (Schema.org)\n- **Close**: `foaf:Image` (FOAF)\n- **Derivation**: `prov:wasDerivedFrom` (PROV-O)", - "properties": { - "derives_or_derived_from": { - "description": "Entity from which this entity was derived.\n\n**DEFINITION**:\nIndicates a derivation relationship where one entity is created based on,\nor extracted from, another source entity. This follows PROV-O derivation\nsemantics for provenance tracking.\n\n**TEMPORAL SEMANTICS** (Rule 39):\nThe \"derives_or_derived\" naming indicates that derivation relationships\ncan be established at different points in time:\n- A thumbnail may be derived from a video at creation time\n- A transcription may be derived from audio later\n- A derivative work may reference its source\n\n**USE CASES**:\n- Thumbnail derived from Video (specific frame extraction)\n- Transcript derived from Audio recording\n- Cropped image derived from original photograph\n- Summary derived from full document\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary**: `prov:wasDerivedFrom` (W3C PROV-O)\n- **Close**: `schema:isBasedOn` (Schema.org)\n", - "items": { - "$ref": "#/$defs/Video" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_time_interval": { - "anyOf": [ - { - "$ref": "#/$defs/TimeInterval" - }, - { - "type": "null" - } - ], - "description": "Timestamp in the source video from which this thumbnail was extracted.\nCaptures the frame time as a duration from video start.\n\n**MIGRATION NOTE**: Replaces deprecated `chapter_thumbnail_timestamp` float.\nThe float value (seconds) should be converted to ISO 8601 duration format.\n\nExample conversions:\n- 122.5 seconds \u2192 PT2M2.5S (2 minutes, 2.5 seconds)\n- 3600 seconds \u2192 PT1H (1 hour)\n" - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_url" - ], - "title": "Thumbnail", - "type": "object" - }, - "TicketToReturnConversion": { - "additionalProperties": false, - "description": "Conversion rate measuring ticket buyers who return for another visit.\n**INDUSTRY BENCHMARKS**: - Average: 20-30% - Strong loyalty programs: 40-60%\n**CALCULATION**: (Return Visitors / Total Ticket Buyers) \u00d7 100", - "properties": { - "conversion_source_population": { - "description": "The group being measured (denominator) in a conversion rate calculation.\n\nThis identifies the total population from which conversions are measured.\n", - "type": [ - "string", - "null" - ] - }, - "conversion_target_action": { - "description": "The action being measured (numerator) in a conversion rate calculation.\n\nThis identifies what action constitutes a \"conversion\" from the source population.\n", - "type": [ - "string", - "null" - ] - }, - "conversion_type_label": { - "description": "Human-readable label for this conversion rate type.\n\nExamples: \"Visitor to Purchase\", \"Email to Click\", \"Online to Physical Visit\"\n", - "type": "string" - }, - "industry_benchmark_high": { - "description": "High end of the industry benchmark range for this metric.\n\nExpressed as a decimal (e.g., 0.40 = 40%).\nUsed with industry_benchmark_low to define the typical performance range.\n", - "type": [ - "number", - "null" - ] - }, - "industry_benchmark_low": { - "description": "Low end of the industry benchmark range for this metric.\n\nExpressed as a decimal (e.g., 0.15 = 15%).\nUsed with industry_benchmark_high to define the typical performance range.\n", - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "conversion_type_label" - ], - "title": "TicketToReturnConversion", - "type": "object" - }, - "TikTok": { - "additionalProperties": false, - "description": "TikTok profile.\n\n**URL patterns**:\n- https://www.tiktok.com/@{username}\n\n**Features**:\n- Short-form vertical video\n- Duets and stitches\n- Live streaming\n- Sound/music integration\n\n**Heritage use cases**:\n- Reaching younger audiences\n- Quick, engaging content about collections\n- Trend participation and cultural relevance\n- Behind-the-scenes glimpses", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "VIDEO_FOCUSED", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://www.tiktok.com/@{username}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "TikTok", - "type": "object" - }, - "TimeInterval": { - "additionalProperties": false, - "description": "A duration or interval of time, representing a period rather than a point.\n**DISTINCTION FROM TimeSpan**: - `TimeSpan` represents a bounded period with begin/end points (CIDOC-CRM E52) - `TimeInterval` represents a duration/interval (e.g., \"2 weeks\", \"quarterly\")\n**USE CASES**: - Update frequency: \"updated weekly\" - Approval time: \"typically 2-3 business days\" - Reporting period: \"annual revenue for fiscal year\"\n**ONTOLOGY MAPPING**: - class_uri: time:Duration (W3C Time Ontology) - Supports ISO 8601 duration format (P1Y, P2M, P3D, PT4H)", - "properties": { - "days": { - "description": "Number of days in the interval.", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "duration_description": { - "description": "Human-readable description of the duration. Examples: \"weekly\", \"monthly\", \"annual\", \"2-3 business days\"", - "type": [ - "string", - "null" - ] - }, - "duration_value": { - "description": "ISO 8601 duration string (e.g., P1Y, P2M, P7D, PT24H). P = period, Y = years, M = months, D = days, T = time separator, H = hours", - "type": [ - "string", - "null" - ] - }, - "hours": { - "description": "Number of hours in the interval.", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "minutes": { - "description": "Number of minutes in the interval.", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "months": { - "description": "Number of months in the interval.", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "years": { - "description": "Number of years in the interval.", - "minimum": 0, - "type": [ - "integer", - "null" - ] - } - }, - "title": "TimeInterval", - "type": "object" - }, - "TimeSpan": { - "additionalProperties": false, - "description": "Represents temporal extent with fuzzy boundaries following CIDOC-CRM pattern.\n\nE52_Time-Span models uncertainty in temporal bounds through four properties:\n- P82a (begin_of_the_begin): Earliest possible start time\n- P81a (end_of_the_begin): Latest possible start time\n- P81b (begin_of_the_end): Earliest possible end time\n- P82b (end_of_the_end): Latest possible end time\n\n**Example**: \"Founded sometime between 1800-1805, closed between 1950-1955\"\n- begin_of_the_begin: 1800-01-01 (earliest founding)\n- end_of_the_begin: 1805-12-31 (latest founding)\n- begin_of_the_end: 1950-01-01 (earliest closure)\n- end_of_the_end: 1955-12-31 (latest closure)\n\n**Use Cases**:\n- Custodian founding/dissolution dates with uncertainty\n- Historical event temporal bounds\n- Archival record date ranges\n\n**DO NOT USE FOR**: Database record metadata (use schema:dateCreated/dateModified)", - "properties": { - "begin_of_the_begin": { - "anyOf": [ - { - "$ref": "#/$defs/Timestamp" - }, - { - "type": "string" - }, - { - "format": "date-time", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Earliest possible start time of temporal extent (CIDOC-CRM E52_Time-Span).\n\n**CIDOC-CRM Pattern**:\nP82a defines the earliest possible time the time span could have started.\nUsed with P81a (end_of_the_begin) to express uncertainty about start time.\n\n**Example**: \"Founded between 1800-1805\"\n- begin_of_the_begin: 1800-01-01 (earliest possible founding)\n- end_of_the_begin: 1805-12-31 (latest possible founding)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `time:hasBeginning` (OWL Time ObjectProperty)\n- **Close**: `crm:P82a_begin_of_the_begin` - CIDOC-CRM fuzzy bound (note: expects literal)\n- **Related**: `prov:startedAtTime` - PROV-O activity start\n- **Narrow**: `schema:startDate` - Schema.org start date\n\n**Range**: Any - supports both Timestamp class and string datetime values\n" - }, - "begin_of_the_end": { - "description": "Earliest possible end time of temporal extent (CIDOC-CRM E52_Time-Span).\n\n**CIDOC-CRM Pattern**:\nP81b defines the earliest possible time the time span could have ended.\nUsed with P82b (end_of_the_end) to express uncertainty about end time.\n\n**Example**: \"Closed between 1950-1955\"\n- begin_of_the_end: 1950-01-01 (earliest possible closure)\n- end_of_the_end: 1955-12-31 (latest possible closure)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:beginOfTheEnd` (custom ObjectProperty)\n- **Close**: `crm:P81b_begin_of_the_end` - CIDOC-CRM fuzzy bound (note: expects literal)\n\n**Range**: Any to accept both ISO datetime strings and Timestamp objects\n" - }, - "end_of_the_begin": { - "anyOf": [ - { - "$ref": "#/$defs/Timestamp" - }, - { - "type": "string" - }, - { - "format": "date-time", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Latest possible start time of temporal extent (CIDOC-CRM E52_Time-Span).\n\n**CIDOC-CRM Pattern**:\nP81a defines the latest possible time the time span could have started.\nUsed with P82a (begin_of_the_begin) to express uncertainty about start time.\n\n**Example**: \"Founded between 1800-1805\"\n- begin_of_the_begin: 1800-01-01 (earliest possible founding)\n- end_of_the_begin: 1805-12-31 (latest possible founding)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:endOfTheBegin` (custom ObjectProperty)\n- **Close**: `crm:P81a_end_of_the_begin` - CIDOC-CRM fuzzy bound (note: expects literal)\n\n**Range**: Any to support Timestamp class, ISO 8601 strings, and datetime values\n" - }, - "end_of_the_end": { - "anyOf": [ - { - "$ref": "#/$defs/Timestamp" - }, - { - "type": "string" - }, - { - "format": "date-time", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Latest possible end time of temporal extent (CIDOC-CRM E52_Time-Span).\n\n**CIDOC-CRM Pattern**:\nP82b defines the latest possible time the time span could have ended.\nUsed with P81b (begin_of_the_end) to express uncertainty about end time.\n\n**Example**: \"Closed between 1950-1955\"\n- begin_of_the_end: 1950-01-01 (earliest possible closure)\n- end_of_the_end: 1955-12-31 (latest possible closure)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `time:hasEnd` (OWL Time ObjectProperty)\n- **Close**: `crm:P82b_end_of_the_end` - CIDOC-CRM fuzzy bound (note: expects literal)\n- **Related**: `prov:endedAtTime` - PROV-O activity end\n- **Narrow**: `schema:endDate` - Schema.org end date\n\n**Range**: Any - supports both Timestamp class and string datetime values\n" - }, - "has_or_had_notation": { - "description": "A notation, code, or symbolic representation using a defined scheme.\n**USE CASES**: - EDTF (Extended Date/Time Format) strings for temporal data - Classification codes - Symbolic representations\n**EXAMPLES**: - EDTF: \"1970-08-15\", \"197X\", \"1970~\", \"1970?\" - Classification: \"025.4\", \"NK 2.1\"\n**ONTOLOGY ALIGNMENT**: - slot_uri: skos:notation (primary) - Notation preserves original format/encoding", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "TimeSpan", - "type": "object" - }, - "Timestamp": { - "additionalProperties": false, - "description": "A point in time with optional precision and calendar metadata.\n\n**Purpose**:\nTimestamp provides a reusable class for representing temporal instants\nwith explicit precision indicators. This supports EDTF-style partial\ndates (year-only, year-month, full date, datetime) and calendar system\nannotation for non-Gregorian dates.\n\n**Ontological Alignment**:\n- **Primary**: `time:Instant` - OWL Time instant\n- **Close**: `crm:E61_Time_Primitive` - CIDOC-CRM time primitive\n- **Related**: `xsd:dateTime` - XML Schema dateTime\n\n**Use Cases**:\n- Beginning/ending of time spans (TimeSpan.begin_of_the_begin, etc.)\n- Validity dates (valid_from, valid_to)\n- Update timestamps (updated_at, created_at)\n- Historical dates with varying precision\n\n**Precision Levels**:\n- year: \"1995\" (EDTF: \"1995\")\n- month: \"1995-06\" (EDTF: \"1995-06\")\n- day: \"1995-06-15\" (EDTF: \"1995-06-15\")\n- datetime: \"1995-06-15T10:30:00\" (full precision)\n\n**Replaces** (per slot_fixes.yaml):\n- `valid_to_geo` \u2192 TimeSpan.end_of_the_end: Timestamp\n- `valid_to` \u2192 TimeSpan.end_of_the_end: Timestamp\n- `valid_from_geo` \u2192 TimeSpan.begin_of_the_begin: Timestamp\n- `valid_from` \u2192 TimeSpan.begin_of_the_begin: Timestamp\n- `updated_at` \u2192 is_or_was_last_updated_at: TimeSpan\n- `unesco_inscription_year` \u2192 TimeSpan.begin_of_the_begin: Timestamp", - "properties": { - "complies_or_complied_with": { - "description": "Standard, specification, or guideline that this entity conforms to.\nUses RiC-O temporal naming convention to indicate conformance may be \ncurrent (complies) or historical (complied).\n\nCREATED 2026-01-17 per Rule 53/56: Generic slot for standards conformance.\n", - "items": { - "$ref": "#/$defs/CalendarSystem" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_level": { - "description": "Level or degree associated with an entity.\nGeneric slot for expressing levels of various kinds: - Approximation/uncertainty levels (EXACT, APPROXIMATE, ESTIMATED, etc.) - Arrangement levels in archival description - Severity levels - Confidence levels\nClass-specific slot_usage should narrow the range appropriately.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_timestamp": { - "description": "A timestamp value associated with an entity or event.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"has_or_had\" phrasing indicates the timestamp may be:\n- Current (recent events, active records)\n- Historical (past events, archived records)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `time:inXSDDateTimeStamp` - OWL Time position\n\n**Format**:\nISO 8601 datetime string with flexible precision:\n- \"1995\" = year precision\n- \"1995-06\" = month precision\n- \"1995-06-15\" = day precision\n- \"1995-06-15T10:30:00Z\" = full datetime with timezone\n\n**Usage**:\nGeneric slot for datetime values. Class-level slot_usage provides\nspecific semantics (creation date, archive date, event date, etc.).\n", - "pattern": "^-?\\d{4}(-\\d{2})?(-\\d{2})?(T\\d{2}:\\d{2}(:\\d{2})?(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_timestamp" - ], - "title": "Timestamp", - "type": "object" - }, - "Title": { - "additionalProperties": false, - "description": "A structured title with optional language tag and variant types.\n\n**DEFINITION**:\n\nTitle represents a named designation for a resource. Titles can:\n- Have language tags for multilingual support\n- Have different types (main, alternative, translated, abbreviated)\n- Change over time (use has_or_had_title slot)\n\n**USE CASES**:\n\n1. **Dataset titles**: \"Dutch Heritage Collections 2024\"\n2. **Document titles**: \"Conservation Guidelines for Paper\"\n3. **Collection titles**: \"Van Gogh Letters\"\n4. **Work titles**: \"The Night Watch\"\n\n**TITLE TYPES**:\n\n| Type | Description |\n|------|-------------|\n| main | Primary/official title |\n| alternative | Other names, subtitles |\n| translated | Title in another language |\n| abbreviated | Short form, acronym |\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`class_uri`): `hc:Title` - Heritage Custodian class\n- **Close**: `dct:title` property domain\n\nCreated as part of dataset_title migration per slot_fixes.yaml (Rule 53).", - "properties": { - "has_or_had_language": { - "description": "Language information for an entity.\n\n**Use Cases**:\n1. **Language Proficiency**: When tracking language skills (e.g., person profiles)\n - Use LanguageProficiency class with language_name, code, and level\n2. **Language-Tagged Text**: When storing multilingual text content\n - Use Language class with iso_639_1, language_name, and text_content\n3. **Content Language**: Language of the resource content (migrated from content_language)\n - Use Language class\n\n**Migration Support**:\nThis slot replaces language-specific text slots (fr, de, en, nl) and content_language\nwith a unified pattern per slot_fixes.yaml revisions:\n- `content_language` \u2192 has_or_had_language with Language\n- `fr` (French text) \u2192 has_or_had_language with Language(iso_639_1=\"fr\")\n- `de` (German text) \u2192 has_or_had_language with Language(iso_639_1=\"de\")\n- `en` (English text) \u2192 has_or_had_language with Language(iso_639_1=\"en\")\n- `nl` (Dutch text) \u2192 has_or_had_language with Language(iso_639_1=\"nl\")\n\n**Example - Language-Tagged Text**:\n```yaml\nhas_or_had_language:\n - iso_639_1: \"fr\"\n language_name: \"French\"\n text_content: \"archives universitaires\"\n - iso_639_1: \"en\"\n language_name: \"English\"\n text_content: \"university archives\"\n```\n\n**Example - Language Proficiency**:\n```yaml\nhas_or_had_language:\n - language_name: \"French\"\n language_code: \"fr\"\n proficiency_level: \"fluent\"\n```\n", - "items": { - "anyOf": [ - { - "$ref": "#/$defs/LanguageProficiency" - }, - { - "$ref": "#/$defs/Language" - } - ] - }, - "type": [ - "array", - "null" - ] - }, - "title_text": { - "description": "The actual title text.", - "type": "string" - }, - "title_type": { - "description": "Type of title: main, alternative, translated, abbreviated.\n", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "title_text" - ], - "title": "Title", - "type": "object" - }, - "Token": { - "additionalProperties": false, - "description": "Token count representation for LLM API usage tracking.\n\n**Key Fields**:\n\n| Field | Description | Example |\n|-------|-------------|---------|\n| has_or_had_type | Type of token | CachedToken |\n| has_or_had_quantity | Count value | 50 (cached tokens) |\n\n**Schema.org Alignment**:\n\nMaps to `schema:QuantitativeValue` for numeric values with context.\n\n**Use Cases**:\n\n1. **Cached tokens**: Prompt tokens served from cache (reduced cost)\n2. **Reasoning tokens**: Chain-of-thought tokens (GLM 4.7, o1)\n3. **Input/Output tokens**: Standard prompt/completion counts\n\n**Migration History**:\n\n- v1.0.0: Simple class with token_type attribute\n- v1.1.0: Updated to use has_or_had_type \u2192 TokenType per Rule 53/56\n\n**Example (Cached Tokens)**:\n\n```yaml\nToken:\n has_or_had_type:\n has_or_had_identifier: hc:TokenType/CACHED\n has_or_had_label: Cached Token\n has_or_had_quantity:\n quantity_value: 50\n has_or_had_description: Tokens from provider cache\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Token", - "type": "object" - }, - "Topic": { - "additionalProperties": false, - "description": "A subject topic instance assigned to a heritage resource.\n\n**DEFINITION**:\n\nTopic represents a SPECIFIC subject topic assignment (instance)\nas opposed to TopicType which represents the CATEGORY of topics.\n\n**CRITICAL: TYPE vs INSTANCE**\n\n| Aspect | TopicType | Topic (This Class) |\n|--------|-----------|-------------------|\n| **Nature** | Classification/category | Specific topic instance |\n| **Examples** | GENEALOGY, CIVIL_REGISTRY | \"Civil Registry in Utrecht 1811-1900\" |\n| **Properties** | Category metadata | Specific subject term, scope |\n| **Cardinality** | ~20-50 types | Many instances |\n\n**USAGE**:\n\nTopics are linked to heritage resources (finding aids, collections, etc.)\nvia the is_or_was_categorized_as slot:\n\n```yaml\nfinding_aid:\n is_or_was_categorized_as:\n - has_or_had_type: GenealogyTopic\n has_or_had_label:\n - label_value: \"Genealogy\"\n language_code: \"en\"\n - has_or_had_type: CivilRegistryTopic\n has_or_had_label:\n - label_value: \"Burgerlijke Stand\"\n language_code: \"nl\"\n```\n\n**MIGRATION**:\n\nReplaces bespoke `topic` slot (string list) with structured Topic class.\nOriginal slot: ../slots/topic.yaml (archived 2026-01-15)\n\n**ONTOLOGY ALIGNMENT**:\n\n- SKOS: skos:Concept (subject concept)\n- Dublin Core: dcterms:subject (subject of resource)\n- RiC-O: rico:hasOrHadSubject (subject relationship)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "Topic", - "type": "object" - }, - "TorahDatabase": { - "additionalProperties": false, - "description": "Electronic collection of classic Jewish texts.\n\n**PURPOSE**: Provide searchable access to Torah, Talmud, and other\nJewish religious and scholarly texts.\n\n**CHARACTERISTICS**:\n- Hebrew and Aramaic texts\n- Commentary integration\n- Cross-referencing\n- Study tools\n\n**EXAMPLES**: Sefaria, Bar Ilan Responsa Project, HebrewBooks.org", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q2910253" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "AGGREGATOR", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "TorahDatabase", - "type": "object" - }, - "TourGuide": { - "additionalProperties": false, - "description": "Tour guide leading visitors through exhibitions, sites, or collections.\n\n**Official Title vs De Facto Work**:\nFormally provides guided tours, but often involved in research,\ncontent development, visitor services, and accessibility support.\n\n**Common Variants**:\n- Docent\n- Gallery Guide\n- Museum Guide\n- Gids (Dutch)\n- Interpretive Guide\n- Heritage Guide\n- Walking Tour Leader\n\n**Typical Domains**: Museums, heritage sites, historical societies, historic houses\n\n**Typical Responsibilities**:\n- Conducting guided tours\n- Interpreting collections and sites\n- Answering visitor questions\n- Adapting tours for different audiences\n- Crowd management during tours\n- Contributing to tour content development", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "TourGuide", - "type": "object" - }, - "TrackIdentifier": { - "additionalProperties": false, - "description": "Identifier for audio/music tracks", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform": { - "description": "Platform (Spotify, ISRC, etc.)", - "type": [ - "string", - "null" - ] - } - }, - "title": "TrackIdentifier", - "type": "object" - }, - "TradeDocumentationCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Trade and commerce documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "EconomicArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by EconomicArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "TradeDocumentationCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "TradeDocumentationCollection", - "type": "object" - }, - "TradeRegister": { - "additionalProperties": false, - "description": "Official business or trade register where organizations are formally registered.\n\nA TradeRegister is the **register itself** (the database/system), distinct from \nthe RegistrationAuthority (the organization maintaining it). In many jurisdictions\nthese are tightly coupled (KvK maintains Handelsregister), but conceptually separate.\n\n**Ontology Alignment:**\n\n- gleif_ra:BusinessRegistry - \"a registry for registering and maintaining information \n about business entities\" (subclass of gleif_base:Registry)\n- gleif_base:Registry - \"A system, typically an information system, that records \n the registration of items\"\n\n**Key Distinction:**\n- TradeRegister: The register/database (e.g., \"Handelsregister\", \"Companies Register\")\n- RegistrationAuthority: The organization (e.g., \"Kamer van Koophandel\", \"Companies House\")\n\n**GLEIF Integration:**\n\nGLEIF maintains the Registration Authorities List (RAL) with 1,050+ business registers\nacross 232 jurisdictions worldwide. Each register has a unique RA code.\n\nReference: https://www.gleif.org/en/about-lei/code-lists/registration-authorities-list\n\n**Examples by Country:**\n\n**Netherlands (NL)**:\n- Handelsregister (HR) - General commercial register\n- Maintained by: Kamer van Koophandel (KvK)\n- GLEIF RA Code: RA000439\n\n**Germany (DE)**:\n- Handelsregister (HRB/HRA) - Commercial register\n- Maintained by: Local courts (Amtsgericht)\n- GLEIF RA Codes: RA000385 (Munich), RA000386 (Hamburg), etc.\n\n**United Kingdom (GB)**:\n- Companies Register\n- Maintained by: Companies House\n- GLEIF RA Code: RA000585\n\n**United States (US)**:\n- State-level registers (e.g., Delaware Division of Corporations)\n- GLEIF RA Codes: RA000598 (Delaware), RA000658 (New York), etc.\n\n**Japan (JP)**:\n- \u5546\u696d\u767b\u8a18\u7c3f (Commercial Registration Book)\n- Maintained by: Legal Affairs Bureau (\u6cd5\u52d9\u5c40)\n- GLEIF RA Code: RA000429\n\n**Register Types:**\n\n1. **Commercial Register**: For-profit businesses (GmbH, BV, Ltd, Inc)\n2. **Foundation Register**: Non-profit foundations (Stichting, Stiftung)\n3. **Association Register**: Voluntary associations (Vereniging, Verein)\n4. **Charity Register**: Registered charities (UK Charity Commission)\n5. **Cultural Register**: Heritage institutions (some countries)\n\nSee also:\n- Jurisdiction: Geographic/legal scope of the register\n- RegistrationAuthority: Organization maintaining the register\n- RegistrationNumber: Individual registration issued by this register", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_endpoint": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/APIEndpoint__identifier_optional" - }, - { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - } - ] - }, - "description": "The data service endpoint.", - "type": [ - "object", - "null" - ] - }, - "has_or_had_format": { - "description": "The format or file type of a resource or service response.\n\n**USAGE**:\nUsed for:\n- Response formats from APIs (JSON, XML, RDF)\n- File formats for documents (PDF, DOCX, TXT)\n- Media formats (JPEG, MP3, MP4)\n- Transcript formats (VTT, SRT, plain text)\n- Subtitle formats (WebVTT, SRT, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property\n- **Close**: `dct:format` - Dublin Core format\n- **Close**: `schema:encodingFormat` - Schema.org encoding format\n\n**Range**: `uriorcurie` (Rule 54)\nBroadened range to accept URI/CURIE references to format specifications.\nThis allows linking to IANA media types, format registries, or internal\nformat classes while resolving OWL ambiguous type warnings.\n\nClasses can narrow to specific format enums/classes via slot_usage.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "$ref": "#/$defs/GLEIFIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "type": [ - "string", - "null" - ] - }, - "maintained_by": { - "$ref": "#/$defs/RegistrationAuthority", - "description": "Registration authority that maintains this register.\n\nLinks to RegistrationAuthority class.\n\nExamples:\n- KvK (Kamer van Koophandel) maintains NL Handelsregister\n- Companies House maintains UK Companies Register\n- Local courts (Amtsgericht) maintain German Handelsregister\n" - }, - "register_abbreviation": { - "description": "Common abbreviation for the register.\n\nExamples:\n- \"HR\" (Handelsregister)\n- \"KvK\" (Kamer van Koophandel - technically the authority, but commonly used)\n- \"CH\" (Companies House)\n- \"RCS\" (Registre du commerce et des soci\u00e9t\u00e9s)\n", - "type": [ - "string", - "null" - ] - }, - "register_id": { - "description": "Unique identifier for this trade register.\n\nRecommended format: {country_code}-{register_abbreviation}\n\nExamples:\n- \"NL-HR\" (Netherlands Handelsregister)\n- \"DE-HRB-MUC\" (Germany HRB Munich)\n- \"GB-CH\" (UK Companies House)\n- \"US-DE\" (Delaware Division of Corporations)\n", - "type": "string" - }, - "register_name": { - "description": "Official name of the trade register in English.\n\nExamples:\n- \"Commercial Register\" (Netherlands, Germany)\n- \"Companies Register\" (UK)\n- \"Division of Corporations\" (Delaware)\n- \"Legal Affairs Bureau Commercial Registration\" (Japan)\n", - "type": "string" - }, - "register_name_local": { - "description": "Official name in local language.\n\nExamples:\n- \"Handelsregister\" (Netherlands, Germany)\n- \"Registre du commerce et des soci\u00e9t\u00e9s\" (France)\n- \"\u5546\u696d\u767b\u8a18\u7c3f\" (Japan)\n- \"\u0422\u043e\u0440\u0433\u043e\u0432\u044b\u0439 \u0440\u0435\u0435\u0441\u0442\u0440\" (Russia)\n", - "type": [ - "string", - "null" - ] - }, - "register_type": { - "$ref": "#/$defs/RegisterTypeEnum", - "description": "Type of organizations this register handles.\n\nMany jurisdictions have separate registers for different entity types.\n\nValues:\n- COMMERCIAL: For-profit businesses (default)\n- FOUNDATION: Non-profit foundations\n- ASSOCIATION: Voluntary associations\n- CHARITY: Registered charities\n- CULTURAL: Heritage/cultural institutions\n- MIXED: Multiple entity types in one register\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "maintained_by", - "register_id", - "register_name", - "register_type" - ], - "title": "TradeRegister", - "type": "object" - }, - "TradeUnionArchive": { - "additionalProperties": false, - "description": "An archive formed by the documentation of labor organizations, trade unions, and workers' movements. Trade union archives (Gewerkschaftsarchive) preserve records documenting the history of organized labor, including meeting minutes, correspondence, publications, photographs, and other materials relating to workers' rights, collective bargaining, strikes, and labor activism.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "TradeUnionArchive", - "type": "object" - }, - "TranscriptFormatEnum": { - "description": "Format/structure of transcript text content.\n\nIndicates how the full_text is organized.", - "enum": [ - "PLAIN_TEXT", - "PARAGRAPHED", - "STRUCTURED", - "TIMESTAMPED", - "VERBATIM" - ], - "title": "TranscriptFormatEnum", - "type": "string" - }, - "TransferEvent": { - "additionalProperties": false, - "description": "Event representing transfer of custody, ownership, or physical location.\n**Purpose**:\nTransferEvent models significant transfers in heritage contexts:\n- Collection transfers between institutions\n- Relocation of holdings\n- Custody changes (legal guardianship)\n- Ownership changes\n**Ontological Alignment**:\n- **Primary**: `crm:E10_Transfer_of_Custody` - CIDOC-CRM custody transfer\n- **Close**: `rico:TransferEvent` - RiC-O transfer event\n- **Related**: `prov:Activity` - PROV-O activity (general activity)\n**Key Components**:\n- `temporal_extent`: When the transfer occurred (TimeSpan)\n- `starts_or_started_at_location`: Origin location\n- `ends_or_ended_at_location`: Destination location\n- `has_or_had_policy`: Transfer policy governing the transfer\n- `has_or_had_description`: Narrative description\n**Replaces** (per slot_fixes.yaml):\n- `transfer_to_collection_date` (simple date)\n- `transfer_policy` (simple string)\n- `transfer_location` (simple string)\n- `transfer_location_text` (simple string)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_policy": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/TransferPolicy__identifier_optional" - }, - { - "type": "null" - } - ] - }, - "description": "Policy associated with an entity.", - "type": [ - "object", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "starts_or_started_at_location": { - "anyOf": [ - { - "$ref": "#/$defs/Location" - }, - { - "type": "null" - } - ], - "description": "Origin location where an event or process started.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"startsOrStarted\" naming follows RiC-O convention indicating\nthe location may be historical (where something began).\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:atLocation` - PROV-O location\n- **Related**: `crm:P27_moved_from` - CIDOC-CRM moved from\n- **Related**: `schema:fromLocation` - Schema.org origin\n\n**Use Cases**:\n- Transfer event origin (where materials came from)\n- Journey/movement start location\n- Process initiation location\n\n**Range**: Location class (structured location with name and coordinates)\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "TransferEvent", - "type": "object" - }, - "TransferPolicy": { - "additionalProperties": false, - "description": "Policy governing custody or ownership transfers.\n\n**Purpose**:\nTransferPolicy captures the rules and conditions under which\nheritage materials may be transferred between institutions,\nincluding donor restrictions and legal requirements.\n\n**Ontological Alignment**:\n- **Primary**: `odrl:Policy` - ODRL policy (rights/rules)\n- **Close**: `rico:RecordResourceTransferRule` - RiC-O transfer rule\n- **Related**: `dcterms:RightsStatement` - rights/access statement\n\n**Use Cases**:\n- Donor restrictions on collection transfers\n- Deaccessioning policies\n- Inter-institutional loan agreements\n- Government archive transfer regulations", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_or_was_effective_at": { - "description": "The date or timestamp when a policy, status, or entity became effective.\nMIGRATED from `effective_date`, `status_effective_date`, `policy_effective_date` per Rule 53. Follows RiC-O temporal naming convention.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "is_or_was_expired_at": { - "description": "The date or timestamp when a policy, status, or entity expired or ceased to be effective.\nMIGRATED from `policy_effective_to` per Rule 53. Follows RiC-O temporal naming convention.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "note": { - "description": "Optional notes about the extraction process.\nMay reference raw source files or explain any issues.\n", - "type": [ - "string", - "null" - ] - }, - "policy_description": { - "description": "Full description of the policy including rationale, scope, and any special considerations.\nMaps to dcterms:description for policy document descriptions.", - "type": [ - "string", - "null" - ] - }, - "policy_id": { - "description": "Unique identifier for a policy entity.\n\nUsed by:\n- AccessPolicy: access restrictions and permissions\n- StorageConditionPolicy: environmental conditions for storage\n- Other policy-related classes\n", - "type": [ - "string", - "null" - ] - }, - "policy_name": { - "description": "Human-readable name for a policy entity.\n\nExamples:\n- \"Restricted Access Policy\"\n- \"Climate-Controlled Storage Requirements\"\n- \"Public Domain Access\"\n", - "type": [ - "string", - "null" - ] - }, - "policy_text": { - "description": "Full text content of a policy document.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:text` - Schema.org text content\n- **Related**: `dcterms:description` - Dublin Core description\n\n**Usage**:\nContains the complete policy text. For very long policies,\nthis may contain a summary with reference to full document.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "policy_id" - ], - "title": "TransferPolicy", - "type": "object" - }, - "TransferPolicy__identifier_optional": { - "additionalProperties": false, - "description": "Policy governing custody or ownership transfers.\n\n**Purpose**:\nTransferPolicy captures the rules and conditions under which\nheritage materials may be transferred between institutions,\nincluding donor restrictions and legal requirements.\n\n**Ontological Alignment**:\n- **Primary**: `odrl:Policy` - ODRL policy (rights/rules)\n- **Close**: `rico:RecordResourceTransferRule` - RiC-O transfer rule\n- **Related**: `dcterms:RightsStatement` - rights/access statement\n\n**Use Cases**:\n- Donor restrictions on collection transfers\n- Deaccessioning policies\n- Inter-institutional loan agreements\n- Government archive transfer regulations", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_or_was_effective_at": { - "description": "The date or timestamp when a policy, status, or entity became effective.\nMIGRATED from `effective_date`, `status_effective_date`, `policy_effective_date` per Rule 53. Follows RiC-O temporal naming convention.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "is_or_was_expired_at": { - "description": "The date or timestamp when a policy, status, or entity expired or ceased to be effective.\nMIGRATED from `policy_effective_to` per Rule 53. Follows RiC-O temporal naming convention.", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "note": { - "description": "Optional notes about the extraction process.\nMay reference raw source files or explain any issues.\n", - "type": [ - "string", - "null" - ] - }, - "policy_description": { - "description": "Full description of the policy including rationale, scope, and any special considerations.\nMaps to dcterms:description for policy document descriptions.", - "type": [ - "string", - "null" - ] - }, - "policy_id": { - "description": "Unique identifier for a policy entity.\n\nUsed by:\n- AccessPolicy: access restrictions and permissions\n- StorageConditionPolicy: environmental conditions for storage\n- Other policy-related classes\n", - "type": [ - "string", - "null" - ] - }, - "policy_name": { - "description": "Human-readable name for a policy entity.\n\nExamples:\n- \"Restricted Access Policy\"\n- \"Climate-Controlled Storage Requirements\"\n- \"Public Domain Access\"\n", - "type": [ - "string", - "null" - ] - }, - "policy_text": { - "description": "Full text content of a policy document.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:text` - Schema.org text content\n- **Related**: `dcterms:description` - Dublin Core description\n\n**Usage**:\nContains the complete policy text. For very long policies,\nthis may contain a summary with reference to full document.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [], - "title": "TransferPolicy", - "type": "object" - }, - "TransitionalStatus": { - "additionalProperties": false, - "description": "Institution is changing type, outcome not yet clear. Used during mergers, reorganizations, or transformations.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "TransitionalStatus", - "type": "object" - }, - "TranslationVariant": { - "additionalProperties": false, - "description": "Translation of a term in another language.\n\n**Use Cases**:\n- Multilingual role titles\n- International terminology\n- Cross-language equivalents\n\n**Example**:\n```yaml\nhas_or_had_type:\n - has_or_had_label: \"Conservateur\"\n has_or_had_type: TranslationVariant\n has_or_had_language: \"fr\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "TranslationVariant", - "type": "object" - }, - "Translator": { - "additionalProperties": false, - "description": "Translator providing language translation services.\n\n**Official Title vs De Facto Work**:\nMay handle exhibition labels, publications, website content,\nand audio guides beyond document translation.\n\n**Common Variants**:\n- Linguistic Specialist\n- Localization Specialist\n- Interpreter\n\n**Typical Domains**: International heritage institutions\n\n**Typical Responsibilities**:\n- Document translation\n- Exhibition label translation\n- Website localization\n- Audio guide translation\n- Interpretation services", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Translator", - "type": "object" - }, - "TransnationalGiving": { - "additionalProperties": false, - "description": "Cross-border donation schemes enabling tax-efficient international giving.\n\n**Examples**:\n- Transnational Giving Europe (TGE)\n- CAF America\n- Charities Aid Foundation\n\n**Benefits**:\n- Tax deduction in donor's home country\n- Donation reaches foreign charity\n- Compliant with local tax laws\n\n**Mechanism**:\n- Donation to local partner charity\n- Partner grants to foreign charity\n- Administrative fee typically 5-7%", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "TransnationalGiving", - "type": "object" - }, - "TratteggioInpainting": { - "additionalProperties": false, - "description": "Italian inpainting technique using fine parallel lines.\nDistinguishable from original at close range but integrates at viewing distance.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "TratteggioInpainting", - "type": "object" - }, - "Treasurer": { - "additionalProperties": false, - "description": "Treasurer managing organizational finances and financial reporting.\n\n**Official Title vs De Facto Work**:\nFormally oversees financial matters, but often involved in\nbudgeting, fundraising strategy, and financial planning.\n\n**Common Variants**:\n- Board Treasurer\n- Finance Officer\n- Penningmeester (Dutch)\n- Honorary Treasurer\n- Finance Chair\n\n**Typical Domains**: Historical societies, cooperatives, foundations, associations\n\n**Typical Responsibilities**:\n- Managing organizational finances\n- Financial reporting to board\n- Budget preparation and monitoring\n- Banking and payment oversight\n- Annual financial statements\n- Audit coordination\n- Membership fee administration", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Treasurer", - "type": "object" - }, - "Treatment": { - "additionalProperties": false, - "description": "A conservation or processing treatment applied to an object.\n\n**USAGE**:\nUsed for:\n- Conservation treatments\n- Restoration work\n- Processing activities", - "properties": { - "materials_used": { - "description": "Materials used in treatment", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "treated_by": { - "description": "Conservator or entity that performed treatment", - "type": [ - "string", - "null" - ] - }, - "treatment_date": { - "description": "Date of treatment", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "treatment_description": { - "description": "Description of the treatment", - "type": "string" - }, - "treatment_type": { - "description": "Type of treatment (CONSERVATION, RESTORATION, CLEANING)", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "treatment_description" - ], - "title": "Treatment", - "type": "object" - }, - "TreatyCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for International agreements.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "ArchiveOfInternationalOrganization", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by ArchiveOfInternationalOrganization custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "TreatyCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "TreatyCollection", - "type": "object" - }, - "TripleStore": { - "additionalProperties": false, - "description": "RDF triple store for linked data.\nExamples: Blazegraph, Virtuoso, GraphDB, Jena Fuseki, Oxigraph", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "TripleStore", - "type": "object" - }, - "TrustedDigitalRepository": { - "additionalProperties": false, - "description": "Preservation repository that can prove its reliability over time\nthrough certification and audit.\n\n**PURPOSE**: Provide certified trustworthy preservation services\nwith demonstrated organizational and technical capabilities.\n\n**CHARACTERISTICS**:\n- ISO 16363 / TDR certification\n- Transparent preservation policies\n- Regular audits and assessments\n- Documented succession planning\n\n**EXAMPLES**: CoreTrustSeal certified repositories, ISO 16363 certified repositories", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q112795563" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "REPOSITORY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "TrustedDigitalRepository", - "type": "object" - }, - "Twitch": { - "additionalProperties": false, - "description": "Twitch channel for live streaming.\n\n**URL patterns**:\n- https://www.twitch.tv/{username}\n\n**Features**:\n- Live streaming\n- Chat interaction\n- VOD (video on demand)\n- Community features\n\n**Heritage use cases**:\n- Live virtual tours\n- Conservation livestreams\n- Q&A sessions with curators\n- Gaming and interactive experiences", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "VIDEO_FOCUSED", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://www.twitch.tv/{username}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "Twitch", - "type": "object" - }, - "TwitterClaim": { - "additionalProperties": false, - "description": "Twitter/X profile URL.", - "title": "TwitterClaim", - "type": "object" - }, - "ULANIdentifier": { - "additionalProperties": false, - "description": "Union List of Artist Names (Getty).", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "ULAN", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "ULAN ID", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "ULANIdentifier", - "type": "object" - }, - "UNESCODomain": { - "additionalProperties": false, - "description": "A UNESCO intangible cultural heritage domain classification. Represents the thematic categorization of intangible heritage elements according to the 2003 UNESCO Convention for the Safeguarding of the Intangible Cultural Heritage. Domains include oral traditions, performing arts, social practices, traditional knowledge, and craftsmanship.", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "UNESCODomain", - "type": "object" - }, - "UNESCOICHDomainEnum": { - "description": "The five domains of intangible cultural heritage as defined by \nthe UNESCO 2003 Convention for the Safeguarding of the Intangible \nCultural Heritage.\n\nArticle 2 of the Convention defines ICH as manifesting in these domains.\nHeritage practices may belong to multiple domains simultaneously.", - "enum": [ - "ORAL_TRADITIONS_EXPRESSIONS", - "PERFORMING_ARTS", - "SOCIAL_PRACTICES_RITUALS_FESTIVE_EVENTS", - "KNOWLEDGE_NATURE_UNIVERSE", - "TRADITIONAL_CRAFTSMANSHIP" - ], - "title": "UNESCOICHDomainEnum", - "type": "string" - }, - "UNESCOListStatus": { - "additionalProperties": false, - "description": "Status on a UNESCO heritage list.\n\n**USAGE**:\nUsed for:\n- Intangible Cultural Heritage list status\n- World Heritage list status\n- Memory of the World status", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "inscription_date": { - "description": "Date of inscription on list", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "list_name": { - "description": "Name of the UNESCO list", - "type": [ - "string", - "null" - ] - }, - "status_type": { - "description": "Type of status (INSCRIBED, NOMINATED, WITHDRAWN)", - "type": [ - "string", - "null" - ] - } - }, - "title": "UNESCOListStatus", - "type": "object" - }, - "UNESCOListStatusEnum": { - "description": "Status on UNESCO intangible cultural heritage lists.\n\nUNESCO maintains three lists under the 2003 Convention:\n1. Representative List of ICH of Humanity\n2. List of ICH in Need of Urgent Safeguarding\n3. Register of Good Safeguarding Practices\n\nNULL value = Not inscribed (may be on national inventory only)", - "enum": [ - "REPRESENTATIVE_LIST", - "URGENT_SAFEGUARDING", - "GOOD_SAFEGUARDING_PRACTICES", - "NATIONAL_INVENTORY_ONLY", - "NOMINATED", - "WITHDRAWN" - ], - "title": "UNESCOListStatusEnum", - "type": "string" - }, - "URIIdentifier": { - "additionalProperties": false, - "description": "Uniform Resource Identifier.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "URI", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "URI", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "URIIdentifier", - "type": "object" - }, - "URL": { - "additionalProperties": false, - "description": "Structured representation of a URL with type classification and metadata.\n\n**Purpose**:\nURL provides a reusable class for representing web addresses with\nadditional context about what type of URL it is (website, API, archive, etc.)\nand optional language/locale information.\n\n**Ontological Alignment**:\n- **Primary**: `schema:URL` - Schema.org URL datatype\n- **Close**: `dcterms:URI` - Dublin Core URI\n- **Related**: `prov:Entity` - Provenance entity (for archived URLs)\n\n**Use Cases**:\n- Institution websites: `has_or_had_url` with type \"website\"\n- API endpoints: `has_or_had_url` with type \"api\"\n- Web archive snapshots: `is_or_was_webarchived_at` with archive URL\n- Vendor/supplier sites: `has_or_had_url` with type \"vendor\"\n\n**Replaces** (per slot_fixes.yaml):\n- `website` (simple string URL)\n- `url` (simple string URL)\n- `vendor_url` (simple string URL)\n- `was_archived_at` (simple string URL)", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "language": { - "description": "Primary language of content on this profile.\n\nDublin Core: language for content language.\n\nISO 639-1 language code (e.g., \"en\", \"nl\", \"de\").\n\nSome institutions maintain separate profiles for different languages.\n", - "pattern": "^[a-z]{2}(-[A-Z]{2})?$", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_url" - ], - "title": "URL", - "type": "object" - }, - "URLIdentifier": { - "additionalProperties": false, - "description": "Uniform Resource Locator (web address).", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "URL", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "URL", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "URLIdentifier", - "type": "object" - }, - "UVFluorescence": { - "additionalProperties": false, - "description": "Imaging under ultraviolet light.\nReveals varnish layers, retouching, and some pigments.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "UVFluorescence", - "type": "object" - }, - "UVRadiationMeasurement": { - "additionalProperties": false, - "description": "Ultraviolet radiation measurement type for monitoring harmful UV exposure.\nStandard unit: microwatts per lumen (\u00b5W/lm).\n\nConservation standard: UV should be below 75 \u00b5W/lm for most materials.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_measurement_unit": { - "anyOf": [ - { - "$ref": "#/$defs/MeasureUnit" - }, - { - "type": "null" - } - ], - "description": "The unit of measurement for a quantity value. Uses RiC-O temporal naming pattern to indicate the unit may be current or historical (e.g., if measurement standards changed over time).\n**QUDT**: qudt:unit - \"The unit of measure used to express the value of a Quantity.\"\n**USE CASES**: - Visitor counts: unit = \"visitors\", \"visitors/year\" - View counts: unit = \"views\", \"views/day\" - Collection sizes: unit = \"items\", \"objects\", \"linear meters\" - Area: unit = \"m\u00b2\", \"ha\", \"km\u00b2\" - Currency: unit = \"EUR\", \"USD\", \"GBP\"" - }, - "has_or_had_name": { - "const": "UV Radiation", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "UVRadiationMeasurement", - "type": "object" - }, - "UXDesigner": { - "additionalProperties": false, - "description": "UX designer creating user experiences for digital products.\n\n**Official Title vs De Facto Work**:\nIn heritage context, works on collection portals, apps,\ninteractives, and visitor journey design.\n\n**Common Variants**:\n- UX/UI Designer\n- User Experience Designer\n- Interaction Designer\n- Digital Experience Designer\n\n**Typical Domains**: Heritage institutions with digital products\n\n**Typical Responsibilities**:\n- User research\n- Wireframing and prototyping\n- Usability testing\n- Design systems\n- Accessibility design", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "UXDesigner", - "type": "object" - }, - "UnauditedStatus": { - "additionalProperties": false, - "description": "Financial statement has not been audited.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "UnauditedStatus", - "type": "object" - }, - "UncertainDetectionLevel": { - "additionalProperties": false, - "description": "Uncertain detection level (< 0.5 confidence).\n\n**Use Case**: Flagged items, manual review queue.\n\nUncertain detections should not be used without human verification.\nThese are typically included in raw output for completeness but\nrequire manual curation before any production use.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "UNCERTAIN", - "pattern": "^[A-Z_]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Uncertain", - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "UncertainDetectionLevel", - "type": "object" - }, - "UnderReviewStatus": { - "additionalProperties": false, - "description": "Classification is actively being researched. Expert review or additional research in progress.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "UnderReviewStatus", - "type": "object" - }, - "UnderseaFeature": { - "additionalProperties": false, - "description": "Undersea feature (GeoNames class U)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "UnderseaFeature", - "type": "object" - }, - "UnionAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for trade union administration records organized as fonds.\n\n**Definition**:\nRecords created by trade union governance and administrative functions,\ndocumenting organizational management, membership, finances, and operations.\nOrganized by provenance (creating union body) following archival principles.\n\n**Typical Contents**:\n- Constitution and bylaws (statuten)\n- Congress/conference minutes (congresverslagen)\n- Executive board minutes (bestuursvergaderingen)\n- Membership registers (ledenregisters)\n- Financial records (financiele administratie)\n- Correspondence files\n- Annual reports (jaarverslagen)\n- Election records\n- Affiliation documents (federation memberships)\n- Legal documents (incorporation, mergers)\n\n**Organizational Levels**:\nUnion administration records may originate from:\n- National/international federations\n- Industry-wide unions\n- Local chapters/branches\n- Shop floor committees\n- Works councils (ondernemingsraden)\n\n**Historical Value**:\nUnion administration fonds are primary sources for:\n- History of labor organizations\n- Development of union democracy\n- Workers' collective action\n- Social and economic history\n\n**Dutch Context**:\nKey organizations:\n- FNV (Federatie Nederlandse Vakbeweging)\n- CNV (Christelijk Nationaal Vakverbond)\n- IISG (International Institute of Social History)\n- Historical: NVV, NKV, etc.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the fonds organizational principle as defined by rico-rst:Fonds\n(provenance-based organization by creating union body or administrative unit).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the fonds principle as defined by rico-rst:Fonds. Provenance-based organization by creating union body (federation, national union, local, committee).", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "UnionAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"collective bargaining contracts\", \"strike documentation\", \"publications\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"bylaws\", \"congress minutes\", \"membership records\", \"financial records\", \"correspondence\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "UnionAdministrationFonds", - "type": "object" - }, - "Unit": { - "additionalProperties": false, - "description": "A simple unit of measurement for quantities.\n**PURPOSE**: Lightweight unit class for cases where a simple label suffices. For complex unit definitions with conversion factors, symbols, and dimensional analysis, use MeasureUnit class instead.\n**COMMON UNITS FOR HERITAGE COLLECTIONS**:\n| Unit | Description | Example Usage | |------|-------------|---------------| | item | Individual objects | \"500 items\" | | species | Biological species | \"200 species\" | | specimen | Individual specimens | \"10,000 specimens\" | | volume | Books/bound volumes | \"50,000 volumes\" | | linear_meter | Archival extent | \"500 linear meters\" | | hectare | Site area | \"32 hectares\" | | square_meter | Floor area | \"10,000 m\u00b2\" |\n**QUDT ALIGNMENT**: Maps to `qudt:Unit` for semantic interoperability.\n**RELATIONSHIP TO MeasureUnit**: Unit is a simplified alternative to MeasureUnit. Use Unit when: - Only a text label is needed - No conversion factors required - Simple quantity expressions\nUse MeasureUnit when: - Need unit symbols and codes - Require dimensional analysis - Complex unit conversions needed", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "unit_uri": { - "description": "Optional URI for the unit in a standard vocabulary (QUDT, OM).", - "type": [ - "string", - "null" - ] - }, - "unit_value": { - "description": "The unit identifier or label (e.g., \"item\", \"species\", \"hectare\").", - "type": [ - "string", - "null" - ] - } - }, - "title": "Unit", - "type": "object" - }, - "UnitHistoryCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for military unit histories and regimental records.\n\n**Definition**:\nCollections documenting the history of specific military units, including \nregiments, battalions, squadrons, and ships. Combines official records \nwith collected materials.\n\n**Typical Contents**:\n- Unit histories (regimentsgeschiedenissen)\n- Standing orders and regulations\n- Unit diaries and journals\n- Honor rolls (erelijsten)\n- Commemorative publications\n- Photographs and films\n- Uniforms and insignia documentation\n- Traditions and ceremonies documentation\n- Battle honors and citations\n- Reunion records and veterans' associations\n\n**Regimental System Context**:\nMany armies organize around regimental traditions with:\n- Long institutional memories\n- Distinctive customs and ceremonies\n- Accumulated honors and battle streamers\n- Associated veterans' organizations\n\n**Collection Patterns**:\nUnit history collections often combine:\n- Official records transferred from active duty\n- Donated materials from veterans\n- Collected publications and photographs\n- Oral history recordings\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the collection organizational principle as defined by rico-rst:Collection\n(assembled collections organized by military unit).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the collection principle as defined by rico-rst:Collection. Assembled collections organized by military unit, combining official records with donated materials.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "UnitHistoryCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"operational records (unless unit-specific)\", \"personnel records\", \"strategic maps\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"unit histories\", \"honor rolls\", \"photographs\", \"commemorations\", \"veterans associations\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "UnitHistoryCollection", - "type": "object" - }, - "UnitIdentifier": { - "additionalProperties": false, - "description": "Identifier for storage units within heritage institutions. **DEFINITION**: UnitIdentifier represents unique identifiers assigned to individual storage compartments, shelves, cabinets, or other discrete units. **REPLACED SLOTS**: - unit_id: URI identifier for the storage unit - unit_identifier: Local string identifier (barcode, label) **IDENTIFIER FORMATS**: | Format | Example | Use Case | |--------|---------|----------| | URI | https://nde.nl/ontology/hc/unit/na-depot-a-r12-b3-s4 | Persistent web ID | | Barcode | BOX-2024-00145 | Physical box barcode | | Label | FF-MAPS-042 | Flat file drawer label | | Rack | RACK-TEXT-A12 | Storage rack identifier |", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code" - ], - "title": "UnitIdentifier", - "type": "object" - }, - "UniversityAdministrationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for University administrative records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "UniversityArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by UniversityArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "UniversityAdministrationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "UniversityAdministrationFonds", - "type": "object" - }, - "UniversityAdministrativeFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for university administrative records organized as a fonds.\n\n**Definition**:\nRecords created or accumulated by a university's central administration in the \nexercise of governance, policy-making, and operational functions. Organized \naccording to archival principles of provenance (respect des fonds).\n\n**Typical Contents**:\n- Governance records (board minutes, resolutions, bylaws)\n- Committee records (senate, faculty councils, standing committees)\n- Policy records (institutional policies, procedures, guidelines)\n- Strategic planning documents\n- Accreditation and institutional assessment records\n- Executive correspondence\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the fonds organizational principle as defined by rico-rst:Fonds\n(respect des fonds / provenance-based organization from university central administration).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "description": "Structured scope definitions for AcademicArchiveRecordSetType. Formally documents what types of record sets are classified under this type. ", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the fonds principle. The fonds structure reflects provenance from university central administration.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "UniversityAdministrativeFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"student records\", \"faculty papers\", \"research data\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"governance records\", \"committee records\", \"policy records\", \"strategic planning\", \"accreditation records\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "UniversityAdministrativeFonds", - "type": "object" - }, - "UniversityAffiliatedBioInstitutionClassification": { - "additionalProperties": false, - "description": "Biological institution affiliated with a university.\nTeaching collections, research facilities, student access.\n\n**Examples**:\n- Hortus botanicus Leiden (Leiden University)\n- Utrecht Botanic Gardens (Utrecht University)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "UniversityAffiliatedBioInstitutionClassification", - "type": "object" - }, - "UniversityArchive": { - "additionalProperties": false, - "description": "A collection of historical records of a college or university. University archives (Universit\u00e4tsarchive) preserve the institutional memory of higher education institutions, including administrative records, faculty papers, student records, photographs, publications, and other documentation of academic life and institutional history.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_founded_through": { - "anyOf": [ - { - "$ref": "#/$defs/FoundingEvent" - }, - { - "type": "null" - } - ], - "description": "Links an organization or institution to its founding event.\n\n**USAGE**:\nRepresents the founding/establishment event for:\n- Heritage custodians (museums, archives, libraries)\n- Standards organizations\n- Restaurants/venues with historical significance\n- Any organization with a founding date\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:isOrWasFoundedThrough` - Heritage Custodian property\n- **Close**: `schema:foundingDate` - Schema.org founding date (simpler)\n- **Close**: `prov:wasGeneratedBy` - PROV-O generation event\n- **Related**: `crm:P92i_was_brought_into_existence_by` - CIDOC-CRM existence\n\n**TEMPORAL PATTERN**:\nThe FoundingEvent contains a `temporal_extent` (TimeSpan) with:\n- `begin_of_the_begin`: Earliest possible founding date\n- `end_of_the_begin`: Latest possible founding date (for uncertain dates)\n\n**MIGRATION NOTE**:\nReplaces simple `founded_year` (integer) and `founding_date` (string)\nwith structured FoundingEvent for richer temporal and contextual data.\n" - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "UniversityArchive", - "type": "object" - }, - "UniversityArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections of university and college historical records and institutional documentation.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "UniversityArchiveRecordSetType", - "type": "object" - }, - "UnknownDeductibility": { - "additionalProperties": false, - "description": "Deductibility status has not been determined.\n\nUsed when:\n- Organization's tax status is pending\n- Information not yet collected\n- Status requires legal review", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "UnknownDeductibility", - "type": "object" - }, - "UnspecifiedType": { - "additionalProperties": false, - "description": "Specialized custodian type for institutions where type classification is\nimpossible, ambiguous, or not yet determined based on available evidence.\n\n**CRITICAL DISTINCTION - Unspecified vs. Mixed vs. Other Types**:\n\n**UnspecifiedType** applies when:\n- Type CANNOT BE DETERMINED from available sources (insufficient evidence)\n- Type is AMBIGUOUS (conflicting evidence about institutional function)\n- Type is IN TRANSITION (institution changing but new type not yet clear)\n- Institution DOES NOT FIT existing categories (genuinely novel type)\n\n**Do NOT use UnspecifiedType if**:\n- \u274c Institution clearly fits a type but you haven't classified yet \u2192 Classify it!\n- \u274c Institution operates as multiple types \u2192 Use MixedCustodianType (X code)\n- \u274c You're just unsure \u2192 Research further before defaulting to Unspecified\n\n**UnspecifiedType is a DATA QUALITY FLAG, not a permanent classification.**\n\n**When to Use Unspecified (U code)**:\n\n1. **Insufficient Evidence** - Cannot determine type from available sources:\n - Mentioned in passing without functional description\n - Only name available (e.g., \"Heritage Organization of XYZ\")\n - Historical reference without context\n - Defunct organization with no surviving documentation\n\n2. **Ambiguous Evidence** - Conflicting information about institutional function:\n - Called \"museum\" but operates as archive\n - Described as \"cultural center\" without specifics\n - Multiple sources disagree on type\n - Self-description ambiguous or generic\n\n3. **Transitional Status** - Institution changing type:\n - In process of merger/reorganization\n - Converting from one type to another\n - Temporary closure/restructuring\n - New institution not yet operational\n\n4. **Novel Type** - Genuinely doesn't fit existing categories:\n - Emerging heritage forms (e.g., cryptocurrency heritage)\n - Hybrid types not covered by taxonomy\n - Experimental heritage models\n - Indigenous heritage governance not matching Western categories\n\n1. **Structural Layer** (W3C Standards):\n - skos:Concept - Thesaurus classification\n - prov:Entity - Provenance tracking for data quality\n\n2. **Domain Layer** (Heritage Ontologies):\n - crm:E74_Group - CIDOC-CRM social group (generic organization)\n - schema:Organization - Generic organizational entity\n\n3. **Web Layer** (Schema.org):\n - schema:Organization - Generic organization (no specific type)\n - schema:Thing - Fallback for truly unclassifiable\n\n**Wikidata Coverage** (15+ unspecified heritage entities):\n\nGeneric Heritage Organizations:\n- Q163740 (cultural organization) - Broad heritage category\n- Q7241077 (heritage organization) - Generic heritage entity\n- Q105558717 (cultural institution) - Unspecified cultural entity\n- Q215380 (heritage preservation organization) - Function unclear\n\nDefunct Organizations with Limited Documentation:\n- Q105558717 (historical heritage society - defunct 1920s)\n- Q5879427 (former cultural center - no surviving records)\n- Q215380 (heritage group - mentioned only in newspaper)\n\nTransitional Institutions:\n- Q163740 (institution under reorganization)\n- Q5283639 (merger in progress - final type TBD)\n- Q7241077 (new institution in planning phase)\n\n**Key Distinctions from Other Types**:\n\nvs. MixedCustodianType:\n- UnspecifiedType: Type CANNOT BE DETERMINED (data quality issue)\n- MixedType: Multiple types ARE KNOWN (multivalued custodian_type)\n- Example: \"Heritage Organization of Amsterdam\" (unknown) vs. Stadsarchief (archive + museum)\n\nvs. NonProfitType:\n- UnspecifiedType: FUNCTION unknown (even if non-profit status is clear)\n- NonProfit: FUNCTION known = heritage advocacy/services\n- Example: \"Cultural Foundation X\" (function unclear) vs. Europa Nostra (advocacy)\n\nvs. OfficialInstitution:\n- UnspecifiedType: Government agency but FUNCTION unknown\n- OfficialInstitution: Government REGULATION/POLICY role is clear\n- Example: \"Ministry of Culture Department Y\" (function unclear) vs. National Heritage Agency\n\nvs. All Specific Types:\n- UnspecifiedType: DEFAULT when classification is impossible\n- Specific Types: Use ONLY when evidence supports classification\n- Example: Institution mentioned once without context vs. \"Rijksmuseum\"\n\n**Data Quality Workflow**:\n\nWhen encountering potential UnspecifiedType:\n\n1. **Research first** - Check:\n - Institutional website\n - Wikidata entry\n - Professional directories (e.g., ICOM, ICA, IFLA)\n - Historical sources\n - Contact information\n\n2. **Document uncertainty** - Record in provenance:\n - Why type could not be determined\n - What information would resolve uncertainty\n - When classification was attempted\n - What sources were consulted\n\n3. **Flag for review** - Mark record:\n - needs_verification: true\n - review_reason: \"Insufficient evidence to determine type\"\n - confidence_score: < 0.5\n\n4. **Re-evaluate periodically** - Unspecified is TEMPORARY:\n - Check for new sources (websites, publications)\n - Query heritage networks\n - Request information from institution\n - Update classification when evidence emerges\n\n**RDF Serialization Example**:\n\n```turtle\n@prefix hc: <https://nde.nl/ontology/hc/> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix schema: <http://schema.org/> .\n@prefix prov: <http://www.w3.org/ns/prov#> .\n@prefix dcterms: <http://purl.org/dc/terms/> .\n\nhc:UnspecifiedType\n a skos:Concept, hc:CustodianType ;\n skos:prefLabel \"Unspecified Type\"@en,\n \"Ongespecificeerd Type\"@nl,\n \"Nicht spezifizierter Typ\"@de,\n \"Type Non Sp\u00e9cifi\u00e9\"@fr ;\n skos:definition \"Heritage custodians where type cannot be determined\"@en ;\n skos:broader hc:CustodianType ;\n schema:url <https://nde.nl/ontology/hc/class/unspecified-type> .\n\n# Example: Historical Heritage Society of XYZ (defunct, minimal documentation)\n<https://w3id.org/heritage/custodian/uk/heritage-society-xyz>\n a schema:Organization, prov:Entity, hc:UnspecifiedCustodian ;\n hc:custodian_type hc:UnspecifiedType ;\n hc:classification_status \"Type indeterminate - insufficient evidence\" ;\n hc:evidence_gaps \"Only known from single 1924 newspaper mention\", \"No surviving organizational records\", \"Building demolished 1960\", \"No descendants located\" ;\n hc:type_hypotheses \"Possibly collecting society (mentioned 'archives')\", \"May have operated museum (reference to 'exhibitions')\", \"Could be advocacy group (called 'preservation society')\" ;\n hc:research_attempts \"UK National Archives search (no results)\", \"Local historical society queried (no records)\", \"Regional museum contacted (no information)\", \"Wikidata search (no entity)\" ;\n hc:review_status \"Requires specialist research\", \"Low priority for re-investigation\", \"Consider removing if no evidence emerges\" ;\n hc:data_quality_flags \"needs_verification: true\", \"confidence_score: 0.2\", \"evidence_quality: minimal\" ;\n schema:name \"Historical Heritage Society of XYZ\" ;\n schema:foundingDate \"1924\" ;\n schema:dissolutionDate \"1960\" ;\n schema:location \"XYZ, United Kingdom\" ;\n schema:description \"Defunct heritage organization mentioned in 1924 local newspaper; no surviving documentation or records located despite archival research attempts\" ;\n prov:generatedAtTime \"2025-11-23T...\"^^xsd:dateTime ;\n dcterms:source \"XYZ Gazette, 15 March 1924, p. 3\" .\n```", - "properties": { - "asserts_or_asserted": { - "description": "Links a provenance record, assertion, or activity to the entity, hypothesis, or proposition that it asserts or supports.\n**TEMPORAL SEMANTICS** (RiC-O style): The \"asserts_or_asserted\" naming indicates that assertions can change: - New evidence may modify or invalidate hypotheses - Historical assertions preserved for audit trail - Confidence levels may be updated over time\n**USAGE**: - Link Provenance to Hypothesis (prov:generated) - Link PrimaryDigitalPresenceAssertion to DigitalPresence (crm:P140)\n**RANGE**: Generic `uriorcurie` to support multiple assertion targets (Hypothesis, DigitalPresence). Classes should narrow this via slot_usage.", - "items": { - "$ref": "#/$defs/Hypothesis" - }, - "type": [ - "array", - "null" - ] - }, - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^(https://nde\\.nl/ontology/hc/type/[a-z-]+/[QP][0-9]+|Q[0-9]+)$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_status": { - "$ref": "#/$defs/ClassificationStatus", - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "is_or_was_based_on": { - "description": "Entity or resource this item is or was based on (temporal relationship).\n\n**Semantic Pattern**: RiC-O temporal naming convention (Rule 39)\n- \"is_or_was\" indicates the relationship may be current or historical\n- Supports temporal modeling where dependencies change over time\n\n**PROV-O Alignment**:\nprov:wasDerivedFrom - \"A derivation is a transformation of an entity into another\"\n\n**Use Cases**:\n1. **CMS Detection**: Platform is_or_was_based_on a detected CMS\n2. **Software Dependencies**: Application based on framework/library\n3. **Content Derivation**: Document based on template/source\n4. **Infrastructure**: Service based on platform/technology\n\n**Temporal Semantics**:\n- Current: \"This platform IS based on WordPress 6.4\"\n- Historical: \"This platform WAS based on Drupal 7 (now migrated)\"\n- Use temporal_extent for precise validity periods\n\n**Examples**:\n```yaml\nAuxiliaryDigitalPlatform:\n platform_name: Museum Blog\n is_or_was_based_on:\n cms_name: WordPress\n cms_version: \"6.4\"\n detected_at: \"2026-01-19T12:00:00Z\"\n```\n\n**Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53).\nReplaces boolean cms_detected with structured CMS reference.\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "review_status": { - "description": "Current status and priority for re-evaluating type classification.\n\nGuides data curation:\n- **Priority level**: High/medium/low priority for re-investigation\n- **Review triggers**: What would prompt re-classification attempt\n- **Resource requirements**: Specialist knowledge, funding, access needed\n- **Timeline**: When next review is scheduled\n- **Outcome scenarios**: Keep record, remove if no progress, upgrade confidence\n- **Escalation path**: When to involve external experts\n\nReview status ensures unspecified records don't stagnate.\n\nExamples:\n- \"Requires specialist research, Low priority, Consider removing if no evidence emerges\"\n- \"High priority - institution recently mentioned in journal, Re-investigate within 3 months\"\n- \"Medium priority - waiting for archival collection to be cataloged, Review in 2026\"\n- \"Low priority - defunct since 1920s, minimal heritage significance\"\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_status", - "is_or_was_based_on", - "review_status", - "has_or_had_label", - "has_or_had_identifier" - ], - "title": "UnspecifiedType", - "type": "object" - }, - "UpcomingEventClaim": { - "additionalProperties": false, - "description": "Information about upcoming event.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "UpcomingEventClaim", - "type": "object" - }, - "UpdateFrequency": { - "additionalProperties": false, - "description": "Structured representation of how often a device, system, or data source sends updates or refreshes data.\n**WHY A DEDICATED CLASS?**\nUpdate frequency is more than a simple string - it has: - **Quantity**: How many updates (e.g., \"5\" in \"every 5 minutes\") - **Time Interval**: The period (e.g., \"minutes\" in \"every 5 minutes\") - **Trigger-based**: Some updates are event-driven, not time-based\n**SLOT_FIXES.YAML REVISION** (lines 1893-1910): - Branch 1: has_or_had_quantity \u2192 Quantity (numeric value) - Branch 2: has_or_had_time_interval \u2192 TimeInterval (duration)\n**ONTOLOGY MAPPING**: - class_uri: dcterms:Frequency (Dublin Core) - Dublin Core `accrualPeriodicity` uses Frequency for collection update rates\n**USE CASES**: - IoT sensors: \"Every 5 minutes\", \"Hourly\", \"Real-time\" - Data feeds: \"Daily\", \"Weekly\", \"Monthly\" - Event-driven: \"On proximity trigger\", \"On change\"\n**EXAMPLES**: - Climate sensor: 5 updates per minute - Beacon: On proximity trigger (no time interval) - Database sync: Daily at midnight", - "properties": { - "frequency_description": { - "description": "Human-readable description of the update frequency. Examples: \"Every 5 minutes\", \"Hourly\", \"Real-time\", \"On proximity trigger\"", - "type": [ - "string", - "null" - ] - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_time_interval": { - "anyOf": [ - { - "$ref": "#/$defs/TimeInterval" - }, - { - "type": "null" - } - ], - "description": "Links to a time interval or duration associated with this entity.\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming indicates that time interval associations can change: - Update frequencies may be revised - Approval times may change with policy updates - Reporting periods may vary - Durations of media content\n**USE CASES**: - Update frequency: How often data is refreshed - Approval time: Expected processing duration - Reporting period: Time period for metrics/revenue - Media duration: Length of video/audio content" - }, - "is_event_driven": { - "description": "True if updates are triggered by events rather than time intervals. Examples: beacon proximity triggers, change detection, user actions.", - "type": [ - "boolean", - "null" - ] - }, - "trigger_type": { - "description": "Type of event that triggers updates (when is_event_driven is true). Examples: \"proximity\", \"change\", \"request\", \"threshold\"", - "type": [ - "string", - "null" - ] - } - }, - "title": "UpdateFrequency", - "type": "object" - }, - "UrbanPlanningCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for urban planning and building records.\n\n**Definition**:\nRecords documenting the physical development of the municipality, including \nmaps, building permits, zoning regulations, and urban planning documentation. \nMay include both organic fonds and assembled collections organized by \nsubject or location.\n\n**Typical Contents**:\n- Historical maps and plattegronden\n- Building permits (bouwvergunningen)\n- Building drawings and plans (bouwtekeningen)\n- Zoning plans (bestemmingsplannen)\n- Urban development plans (stedenbouwkundige plannen)\n- Street registers and naming records\n- Land registry extracts (kadastrale gegevens)\n- Demolition records (sloopvergunningen)\n- Monument designation records (monumentenregistratie)\n\n**Research Value**:\nEssential for:\n- Architectural history research\n- Property history and provenance\n- Urban development studies\n- Monument preservation\n- Building renovation projects\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype may follow mixed organizational principles: both fonds (from planning departments)\nand collection (assembled map collections, building permit files by address)\nas defined by rico-rst:Fonds and rico-rst:Collection.", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "mixed", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType may follow mixed organizational principles. Includes both provenance-based fonds from planning departments and assembled collections organized by address or subject.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "UrbanPlanningCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"council minutes\", \"civil registry\", \"personnel records\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"maps\", \"building permits\", \"building plans\", \"zoning records\", \"monument records\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "UrbanPlanningCollection", - "type": "object" - }, - "UseCase": { - "additionalProperties": false, - "description": "Describes a practical application or scenario.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "UseCase", - "type": "object" - }, - "UseCondition": { - "additionalProperties": false, - "description": "Condition or restriction on how materials may be used.\nIncludes photography restrictions, handling requirements,\nreproduction limitations, or citation requirements.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "UseCondition", - "type": "object" - }, - "UserCommunity": { - "additionalProperties": false, - "description": "A user community or audience served by an institution. **USAGE**: Used for: - Target audiences - User groups - Stakeholder communities", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "UserCommunity", - "type": "object" - }, - "VATIdentifier": { - "additionalProperties": false, - "description": "VAT registration number.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "VAT", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "VAT Number", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "VATIdentifier", - "type": "object" - }, - "VIAFIdentifier": { - "additionalProperties": false, - "description": "Virtual International Authority File identifier.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "VIAF", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "VIAF ID", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "VIAFIdentifier", - "type": "object" - }, - "VKontakte": { - "additionalProperties": false, - "description": "VKontakte (VK) profile or community (Russian social network).\n\n**URL patterns**:\n- https://vk.com/{username}\n- https://vk.com/public{group_id}\n\n**Features**:\n- Social networking (similar to Facebook)\n- Music and video hosting\n- Communities and groups\n\n**Heritage use cases**:\n- Russian-speaking audience engagement\n- Tourism from Russian-speaking countries\n- Russian-language content", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "GENERAL_SOCIAL", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://vk.com/{username}", - "https://vk.com/public{group_id}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "VKontakte", - "type": "object" - }, - "VOCMeasurement": { - "additionalProperties": false, - "description": "Volatile organic compounds measurement type for monitoring off-gassing\nfrom materials, paints, adhesives, and storage materials.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_measurement_unit": { - "anyOf": [ - { - "$ref": "#/$defs/MeasureUnit" - }, - { - "type": "null" - } - ], - "description": "The unit of measurement for a quantity value. Uses RiC-O temporal naming pattern to indicate the unit may be current or historical (e.g., if measurement standards changed over time).\n**QUDT**: qudt:unit - \"The unit of measure used to express the value of a Quantity.\"\n**USE CASES**: - Visitor counts: unit = \"visitors\", \"visitors/year\" - View counts: unit = \"views\", \"views/day\" - Collection sizes: unit = \"items\", \"objects\", \"linear meters\" - Area: unit = \"m\u00b2\", \"ha\", \"km\u00b2\" - Currency: unit = \"EUR\", \"USD\", \"GBP\"" - }, - "has_or_had_name": { - "const": "Volatile Organic Compounds", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "VOCMeasurement", - "type": "object" - }, - "VacuumLining": { - "additionalProperties": false, - "description": "Canvas lining using vacuum pressure to ensure adhesion.\nPerformed on heated vacuum table.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "VacuumLining", - "type": "object" - }, - "ValidationStatus": { - "additionalProperties": false, - "description": "A validation status for data or records.\n\n**USAGE**:\nUsed for:\n- Schema validation results\n- Data quality validation\n- Record validation status", - "properties": { - "error_count": { - "description": "Number of validation errors", - "type": [ - "integer", - "null" - ] - }, - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "validation_date": { - "description": "Date/time of validation", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "warning_count": { - "description": "Number of validation warnings", - "type": [ - "integer", - "null" - ] - } - }, - "title": "ValidationStatus", - "type": "object" - }, - "Value": { - "additionalProperties": false, - "description": "Structured value wrapper.", - "properties": { - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "measurement_unit": { - "description": "The unit of measurement (if applicable).", - "type": [ - "string", - "null" - ] - }, - "value_content": { - "description": "The string representation of the value.", - "type": [ - "string", - "null" - ] - }, - "value_type": { - "description": "The data type of the value (e.g., integer, float, boolean).", - "type": [ - "string", - "null" - ] - } - }, - "title": "Value", - "type": "object" - }, - "VarnishingTechnique": { - "additionalProperties": false, - "description": "Application of protective transparent coatings.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "VarnishingTechnique", - "type": "object" - }, - "VegetationFeature": { - "additionalProperties": false, - "description": "Forest, heath, etc. (GeoNames class V)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "VegetationFeature", - "type": "object" - }, - "Ventilation": { - "additionalProperties": false, - "description": "Ventilation system or requirements.\n\n**Ontological Alignment**:\n- `schema:Thing`: Generic entity.", - "properties": { - "requires_or_required": { - "description": "Generic predicate indicating something is/was required.\n\nFollows RiC-O temporal naming convention (has_or_had, is_or_was, requires_or_required)\nto indicate the requirement relationship may be current or historical.\n\n**Usage**:\n- AccessPolicy requires_or_required Appointment\n- Collection requires_or_required SpecialHandling\n- ReadingRoom requires_or_required Registration\n\nThis slot provides the predicate; range is specified in class slot_usage\nto narrow to specific requirement types (Appointment, Credential, etc.)\n", - "items": { - "$ref": "#/$defs/AirChanges" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Ventilation", - "type": "object" - }, - "Venue": { - "additionalProperties": false, - "description": "A physical location where heritage-related events, exhibitions, or activities take place.\n\nVenues include museums, galleries, exhibition halls, conference centers,\nhistoric sites, and other spaces used for cultural programming. Distinct\nfrom the heritage custodian organization itself - a venue is the place,\nwhile the custodian is the organization managing collections.\n\nMaps to schema:Place - a physical location with address and coordinates.", - "properties": { - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "Venue", - "type": "object" - }, - "VerificationStatus": { - "additionalProperties": false, - "description": "Verification status of a record or entity.\n\n**USAGE**:\nUsed for:\n- Data verification status\n- Quality assurance flags\n- Approval status", - "properties": { - "status": { - "description": "Status value (VERIFIED, UNVERIFIED, PENDING, REJECTED)", - "type": "string" - }, - "verification_notes": { - "description": "Notes about the verification", - "type": [ - "string", - "null" - ] - }, - "verified_date": { - "description": "Date of verification", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "verifier": { - "description": "Entity that performed verification", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "status" - ], - "title": "VerificationStatus", - "type": "object" - }, - "VerifiedDetectionLevel": { - "additionalProperties": false, - "description": "Verified detection level (human confirmed).\n\n**Use Case**: Human-verified detections, ground truth.\n\nVerified detections have been manually confirmed by a human reviewer.\nThese override automated confidence scores and serve as ground truth.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "VERIFIED", - "pattern": "^[A-Z_]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Human Verified", - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "VerifiedDetectionLevel", - "type": "object" - }, - "Verifier": { - "additionalProperties": false, - "description": "An agent that verifies or validates data.\n\n**USAGE**:\nUsed for:\n- Data verifiers\n- Quality assurance agents\n- Approval authorities", - "properties": { - "verifier_name": { - "description": "Name of the verifier", - "type": [ - "string", - "null" - ] - }, - "verifier_type": { - "description": "Type of verifier (PERSON, ORGANIZATION, SOFTWARE)", - "type": [ - "string", - "null" - ] - }, - "verifier_uri": { - "description": "URI identifying the verifier", - "type": [ - "string", - "null" - ] - } - }, - "title": "Verifier", - "type": "object" - }, - "Version": { - "additionalProperties": false, - "description": "A version identifier for software, documents, schemas, or other entities.\n**Purpose**: Represents a structured version record with version number,\nrelease date, and semantic versioning components.\n**Semantic Versioning Support**:\n- major_version: Breaking changes\n- minor_version: New features (backwards compatible)\n- patch_version: Bug fixes\n**Use Cases**:\n1. **CMS Product Version**: Version of deployed CMS software\n2. **API Version**: REST API version\n3. **Schema Version**: Ontology/schema version\n4. **Document Version**: Document revision number\n**Example**:\n```yaml\nCollectionManagementSystem:\n cms_name: CollectiveAccess\n has_or_had_version:\n version_string: \"1.8.0\"\n major_version: 1\n minor_version: 8\n patch_version: 0\n release_date: \"2023-06-15\"\n```\n**Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53).\nReplaces simple string cms_product_version with structured Version class.", - "properties": { - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "title": "Version", - "type": "object" - }, - "VeteransDocumentationCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for veterans' affairs and commemoration documentation.\n\n**Definition**:\nMaterials documenting veterans' affairs, war commemorations, memorials, \nand remembrance activities. Includes both official records and collected \ndocumentation.\n\n**Typical Contents**:\n- Veterans' organization records (veteranenverenigingen)\n- War graves documentation\n- Memorial dedication records\n- Commemoration ceremony records\n- Oral history interviews\n- War memoirs and testimonies\n- Repatriation records\n- POW/MIA documentation\n- War victims registers\n- Resistance documentation (verzetsarchieven)\n\n**Commemorative Context**:\nVeterans documentation supports:\n- National remembrance (Nationale Dodenherdenking)\n- War cemetery maintenance\n- Missing persons research\n- Victim recognition programs\n- Educational initiatives\n\n**Dutch Context**:\nKey organizations:\n- Oorlogsgravenstichting (War Graves Foundation)\n- Veteraneninstituut\n- NIOD (Institute for War, Holocaust and Genocide Studies)\n\n**Oral History Component**:\nMany veterans' documentation programs include oral history:\n- Interviews with veterans\n- Eyewitness testimonies\n- Family narratives\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the collection organizational principle as defined by rico-rst:Collection\n(assembled documentation organized by conflict, memorial, or veterans' organization).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the collection principle as defined by rico-rst:Collection. Assembled documentation organized by conflict, memorial project, or veterans' organization.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "VeteransDocumentationCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"operational records\", \"personnel service records\", \"unit histories\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"veterans organizations\", \"war graves\", \"commemorations\", \"oral histories\", \"resistance\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "VeteransDocumentationCollection", - "type": "object" - }, - "ViabilityStatus": { - "additionalProperties": false, - "description": "A viability status assessment.\n\n**USAGE**:\nUsed for:\n- Intangible heritage viability (UNESCO)\n- Organizational viability\n- Collection viability", - "properties": { - "assessment_date": { - "description": "Date of viability assessment", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "assessment_notes": { - "description": "Notes on the assessment", - "type": [ - "string", - "null" - ] - }, - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "ViabilityStatus", - "type": "object" - }, - "VibrationMeasurement": { - "additionalProperties": false, - "description": "Vibration measurement type for monitoring mechanical disturbances\nthat may affect fragile objects.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_measurement_unit": { - "anyOf": [ - { - "$ref": "#/$defs/MeasureUnit" - }, - { - "type": "null" - } - ], - "description": "The unit of measurement for a quantity value. Uses RiC-O temporal naming pattern to indicate the unit may be current or historical (e.g., if measurement standards changed over time).\n**QUDT**: qudt:unit - \"The unit of measure used to express the value of a Quantity.\"\n**USE CASES**: - Visitor counts: unit = \"visitors\", \"visitors/year\" - View counts: unit = \"views\", \"views/day\" - Collection sizes: unit = \"items\", \"objects\", \"linear meters\" - Area: unit = \"m\u00b2\", \"ha\", \"km\u00b2\" - Currency: unit = \"EUR\", \"USD\", \"GBP\"" - }, - "has_or_had_name": { - "const": "Vibration", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "VibrationMeasurement", - "type": "object" - }, - "ViceChairperson": { - "additionalProperties": false, - "description": "Vice chairperson supporting the chair and presiding in their absence.\n\n**Official Title vs De Facto Work**:\nDeputizes for chairperson but often takes on specific portfolios\nor leads committees.\n\n**Common Variants**:\n- Vice Chair\n- Vice President\n- Vice-voorzitter (Dutch)\n- Deputy Chair\n- Second Chair\n\n**Typical Domains**: Historical societies, cooperatives, foundations, associations\n\n**Typical Responsibilities**:\n- Presiding in chair's absence\n- Supporting chairperson in duties\n- Leading specific committees or projects\n- Succession planning\n- Member engagement", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "ViceChairperson", - "type": "object" - }, - "Video": { - "additionalProperties": false, - "description": "Video media resource.\n\n**DEFINITION**:\nRepresents a video file or stream that can be referenced as source\nmaterial for thumbnails, clips, chapters, and annotations. This class\nenables structured representation of video resources with their\nidentifiers and URLs.\n\n**HERITAGE INSTITUTION USE CASES**:\n\n| Content Type | Examples |\n|--------------|----------|\n| Virtual tours | Museum walkthrough videos |\n| Conservation | Restoration process documentation |\n| Interviews | Oral history recordings |\n| Lectures | Educational content, curator talks |\n| Exhibitions | Exhibition documentation videos |\n\n**PLATFORM SUPPORT**:\n\n| Platform | Identifier | URL Pattern |\n|----------|------------|-------------|\n| YouTube | Video ID (11 chars) | youtube.com/watch?v={id} |\n| Vimeo | Video ID (numeric) | vimeo.com/{id} |\n| Wistia | Hashed ID | wistia.com/medias/{id} |\n| Self-hosted | Custom | Institution-specific |\n\n**RELATIONSHIP TO Thumbnail**:\nThumbnails are derived from Videos using the `derives_or_derived_from`\nrelationship, with the specific frame time captured via `has_or_had_time_interval`.\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary**: `schema:VideoObject` (Schema.org)\n- **Close**: `ma:MediaResource` (W3C Media Ontology)", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_url" - ], - "title": "Video", - "type": "object" - }, - "VideoCategoryIdentifier": { - "additionalProperties": false, - "description": "An identifier for a video category.\n\n**USAGE**:\nUsed for:\n- YouTube category IDs\n- Platform category classifications", - "properties": { - "category_name": { - "description": "Human-readable category name", - "type": [ - "string", - "null" - ] - }, - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform": { - "description": "Video platform", - "type": [ - "string", - "null" - ] - } - }, - "title": "VideoCategoryIdentifier", - "type": "object" - }, - "VideoChapter": { - "additionalProperties": false, - "description": "A named chapter or section within a video, defined by temporal boundaries.\n\n**DEFINITION**:\n\nVideoChapter represents a titled segment of video content, typically used for\nnavigation and content organization. Chapters appear in video player interfaces\n(YouTube chapters, Vimeo chapters) allowing viewers to jump to specific sections.\n\n**PLATFORM SUPPORT**:\n\n| Platform | Chapter Support | Auto-Generated | Custom Thumbnails |\n|----------|-----------------|----------------|-------------------|\n| YouTube | Yes (2020+) | Yes | No (keyframe) |\n| Vimeo | Yes | No | Yes |\n| Facebook | Limited | No | No |\n| Wistia | Yes | No | Yes |\n\n**YOUTUBE CHAPTER REQUIREMENTS**:\n\nFor YouTube to recognize chapters:\n- First chapter MUST start at 0:00\n- Minimum 3 chapters required\n- Each chapter must be at least 10 seconds\n- Timestamps in description in `MM:SS` or `HH:MM:SS` format\n\n**HERITAGE INSTITUTION USE CASES**:\n\n| Content Type | Chapter Examples |\n|--------------|------------------|\n| Virtual tour | \"Main Hall\", \"Dutch Masters\", \"Gift Shop\" |\n| Conservation | \"Assessment\", \"Cleaning\", \"Retouching\", \"Varnishing\" |\n| Interview | \"Introduction\", \"Early Career\", \"Major Works\", \"Legacy\" |\n| Exhibition | \"Curator Introduction\", \"Theme 1\", \"Theme 2\", \"Conclusion\" |\n| Lecture | \"Overview\", \"Case Study 1\", \"Case Study 2\", \"Q&A\" |\n\n**AUTO-GENERATED VS MANUAL CHAPTERS**:\n\n| Source | Characteristics | Quality |\n|--------|-----------------|---------|\n| Manual (creator) | Semantic, meaningful titles | High |\n| YouTube AI | Scene-based, generic titles | Variable |\n| Third-party tools | Transcript-based, keyword titles | Medium |\n\nThe `auto_generated` flag distinguishes these sources.\n\n**RELATIONSHIP TO VideoTimeSegment**:\n\nVideoChapter USES VideoTimeSegment for temporal boundaries rather than\nextending it. This composition pattern allows:\n- Reuse of segment validation (start < end)\n- Consistent time representation across schema\n- Separation of structural (chapter) and temporal (segment) concerns\n\n**MEDIA FRAGMENTS URI**:\n\nChapters can be addressed via W3C Media Fragments:\n```\nhttps://youtube.com/watch?v=ABC123#t=120,300\n```\nCorresponds to chapter starting at 2:00, ending at 5:00.\n\n**NESTED CHAPTERS**:\n\nSome platforms support hierarchical chapters (parent/child).\nUse `parent_chapter_id` for nested structure:\n\n```\nChapter 1: Dutch Golden Age\n \u2514\u2500 1.1: Rembrandt\n \u2514\u2500 1.2: Vermeer\nChapter 2: Modern Art\n```", - "properties": { - "end_seconds": { - "description": "MIGRATED from chapter_end_seconds per Rule 53 (2026-01-28). Defined as attribute.", - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "end_time": { - "description": "MIGRATED from chapter_end_time per Rule 53 (2026-01-28). Defined as attribute.", - "pattern": "^PT(\\d+H)?(\\d+M)?(\\d+(\\.\\d+)?S)?$", - "type": [ - "string", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_parent": { - "description": "The parent entity of this entity. MIGRATED from parent_chapter_id (Rule 53).", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_sequence_index": { - "description": "The sequence index or order of an item (e.g. chapter number, page number). MIGRATED from chapter_index (Rule 53).", - "minimum": 0, - "type": "integer" - }, - "has_or_had_source": { - "description": "The source or origin from which something was derived, generated, or obtained. Follows RiC-O temporal naming convention (Rule 39) to indicate that sources may change over time.", - "items": { - "$ref": "#/$defs/ChapterSourceEnum" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_thumbnail": { - "anyOf": [ - { - "$ref": "#/$defs/Thumbnail" - }, - { - "type": "null" - } - ], - "description": "A thumbnail image associated with an entity.\n\n**TEMPORAL SEMANTICS** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this \nrelationship may be historical - thumbnails may change over time.\n\n**ONTOLOGICAL ALIGNMENT**:\n- **Primary** (`slot_uri`): `schema:thumbnailUrl` (Schema.org)\n- **Exact**: `foaf:thumbnail` (FOAF)\n- **Related**: `dcat:thumbnail` (DCAT)\n\n**CONSISTENCY PATTERN** (Rule 56):\nThis slot uses a structured Thumbnail class range for consistency with \nother media reference patterns in the ontology:\n- `has_or_had_image` \u2192 Image class\n- `has_or_had_video` \u2192 Video class \n- `has_or_had_audio` \u2192 Audio class\n- `has_or_had_thumbnail` \u2192 Thumbnail class\n\nEach media class contains:\n- `has_or_had_url` \u2192 URL of the media resource\n- Metadata (dimensions, format, alternative text, etc.)\n\n**MIGRATION** (2026-01-16, Rule 56):\nReplaces `thumbnail_url` per slot_fixes.yaml feedback.\nSimple URI \u2192 Structured Thumbnail class for extensibility.\n" - }, - "is_or_was_created_through": { - "description": "Event through which an entity was created.", - "type": [ - "boolean", - "null" - ] - }, - "nesting_level": { - "description": "Depth level in chapter hierarchy.\n\n- 0: Top-level chapter\n- 1: First-level sub-chapter\n- 2: Second-level sub-chapter\n- etc.\n\nMost platforms only support level 0 (flat chapters).\n", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "start_seconds": { - "description": "MIGRATED from chapter_start_seconds per Rule 53 (2026-01-28). Defined as attribute.", - "minimum": 0.0, - "type": "number" - }, - "start_time": { - "description": "MIGRATED from chapter_start_time per Rule 53 (2026-01-28). Defined as attribute.", - "pattern": "^PT(\\d+H)?(\\d+M)?(\\d+(\\.\\d+)?S)?$", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_sequence_index", - "has_or_had_label", - "start_seconds" - ], - "title": "VideoChapter", - "type": "object" - }, - "VideoComment": { - "additionalProperties": false, - "description": "A comment on a video post. Models user-generated comments with author, text, timestamp, and engagement metrics. Supports nested reply threads.", - "properties": { - "has_or_had_author": { - "description": "Person or organization that authored/created a work.\nLinks to Author class which models creators of creative works such as catalogs, publications, reports, and other documentary outputs.\n**RiC-O Alignment**: Follows RiC-O temporal relationship pattern (has/had) for properties that may change over time (e.g., posthumous attributions, disputed authorship).\n**Schema.org/Dublin Core Alignment**: Maps to schema:author and dcterms:creator.\n**BIBFRAME Alignment**: Related to bf:contribution for bibliographic works.\n**Use Cases**: - Exhibition catalog authors - Research report authors - Finding aid compilers - Publication contributors\n**MIGRATED from authors (Rule 53)**: Changed from string to Author class for structured authorship modeling including roles, affiliations, and temporal aspects.", - "items": { - "$ref": "#/$defs/Author" - }, - "type": "array" - }, - "has_or_had_content": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_reply": { - "description": "Reply or response associated with content (comments, posts, messages).\n\n**PURPOSE**:\n\nCaptures reply/response relationships and metrics for threaded discussions\nusing CommentReply class for structured representation.\n\n**RiC-O NAMING** (Rule 39):\n\nUses \"has_or_had_\" prefix to indicate temporal relationship - the content\nhas replies currently or had replies in the past (e.g., deleted replies).\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Usage |\n|----------|----------|-------|\n| **SIOC** | `sioc:has_reply` | Discussion reply relationship |\n| **Activity Streams** | `as:inReplyTo` (inverse) | Social media replies |\n| **Schema.org** | `schema:comment` | Generic comment relationship |\n\n**MIGRATION NOTE**:\n\nCreated from migration of `comment_reply_count` slot per slot_fixes.yaml.\nReplaces simple integer counts with structured reply data.\n", - "items": { - "$ref": "#/$defs/CommentReply" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_or_was_appreciated": { - "description": "Appreciation or engagement event associated with content.\n\n**PURPOSE**:\n\nCaptures appreciation metrics (likes, favorites, upvotes) for digital content\nin a structured way using AppreciationEvent class.\n\n**RiC-O NAMING** (Rule 39):\n\nUses \"is_or_was_\" prefix to indicate temporal relationship - the content\nis currently appreciated or was appreciated in the past.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Usage |\n|----------|----------|-------|\n| **Activity Streams** | `as:Like` | Social appreciation activity |\n| **Schema.org** | `schema:interactionStatistic` | Engagement metrics |\n\n**MIGRATION NOTE**:\n\nCreated from migration of `comment_like_count` slot per slot_fixes.yaml.\nReplaces simple integer counts with structured appreciation events.\n", - "items": { - "$ref": "#/$defs/AppreciationEvent" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_last_updated_at": { - "anyOf": [ - { - "$ref": "#/$defs/Timestamp" - }, - { - "type": "null" - } - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "$ref": "#/$defs/TimeSpan", - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_author", - "has_or_had_identifier", - "temporal_extent", - "has_or_had_content" - ], - "title": "VideoComment", - "type": "object" - }, - "VideoContent": { - "additionalProperties": false, - "description": "Video recordings.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "VIDEO", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Video Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "VideoContent", - "type": "object" - }, - "VideoFrame": { - "additionalProperties": false, - "description": "A video frame or set of frames analyzed during video processing.\n**PURPOSE**:\nRepresents frames from a video that have been analyzed by computer vision\nor multimodal AI models. Used to track frame-based analysis parameters\nsuch as sample rate (frames per second analyzed) and total frames processed.\n**USE CASES**:\n- Video annotation (object detection, scene analysis)\n- Frame sampling configuration\n- Analysis throughput tracking\n- Computer vision pipeline configuration\n**FRAME SAMPLE RATE**:\nThe sample rate determines how many frames are analyzed per second of video:\n| Sample Rate | Frames/sec | Use Case |\n|-------------|------------|----------|\n| 0.1 fps | 1 every 10s | Overview/thumbnails |\n| 1.0 fps | 1 per second | Standard analysis |\n| 5.0 fps | 5 per second | Detailed analysis |\n| 30.0 fps | Every frame | Exhaustive analysis |\nHigher sample rates capture more detail but increase compute cost.\n**MIGRATION SUPPORT**:\nThis class supports migration from the frame_sample_rate slot per\nslot_fixes.yaml. Use with has_or_had_quantity + Quantity + has_or_had_unit + Unit.", - "properties": { - "has_or_had_quantity": { - "type": [ - "integer", - "null" - ] - }, - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - } - }, - "title": "VideoFrame", - "type": "object" - }, - "VideoOCRAnnotation": { - "additionalProperties": false, - "description": "Annotation for extracting text visible in video frames (OCR). **DEFINITION**: VideoOCRAnnotation captures text that appears on-screen in video: | Text Type | Examples | |-----------|----------| | **Titles** | Opening titles, chapter headings | | **Captions** | Burned-in subtitles, name cards | | **Signs** | Museum signage, room labels | | **Documents** | Letters, manuscripts, books shown | | **Labels** | Artifact labels, exhibition text | | **Graphics** | Infographics, charts, timelines | **OCR vs SUBTITLES**: - **VideoSubtitle**: Text derived from AUDIO (speech-to-text) - **VideoOCRAnnotation**: Text derived from VIDEO (image-to-text) OCR captures text VISIBLE in frames, not spoken. **TEXT DETECTION PIPELINE**: 1. **Detection**: Locate text regions (bounding boxes) 2. **Recognition**: Extract characters from regions 3. **Post-processing**: Correct, normalize, structure **HERITAGE USE CASES**: | Use Case | Value | |----------|-------| | **Name cards** | Identify speakers automatically | | **Document digitization** | Extract text from filmed documents | | **Exhibition text** | Capture interpretive panels | | **Historical signs** | Archive street names, shop signs | | **Handwritten text** | Extract letters, diaries, notes | **LANGUAGE DETECTION**: OCR can detect and extract text in multiple languages: - `text_languages_detected`: Languages found in video - Mixed-language content is common in heritage videos **TEXT REGION TYPES**: | Type | Appearance | |------|------------| | OVERLAY | Digitally added text (titles, lower thirds) | | NATURAL | Text in physical scene (signs, documents) | | HISTORICAL | Archival text (period documents, photos) | | HANDWRITTEN | Manuscript, notes, signatures |", - "properties": { - "analyzes_or_analyzed": { - "anyOf": [ - { - "type": "integer" - }, - { - "$ref": "#/$defs/VideoFrame" - }, - { - "type": "null" - } - ], - "description": "MIGRATED 2026-01-22: Now supports VideoFrame class for frame_sample_rate migration.\n\nFrame analysis information including:\n- Total frames analyzed (integer, legacy pattern)\n- Frame sample rate and analysis parameters (VideoFrame class)\n\nMIGRATED SLOTS:\n- frame_sample_rate \u2192 VideoFrame.has_or_had_quantity with unit \"samples per second\"\n" - }, - "contains_or_contained": { - "description": "Generic containment relationship (temporal). Indicates that this entity contains or has contained the referenced entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "content_title": { - "description": "Title or label for this text content.\nOntology mapping: dcterms:title is the Dublin Core property for the name given to a resource.\nExamples: - \"Rijksmuseum Tour - Full Transcript\" - \"Dutch Subtitles - Auto-generated\" - \"Scene Annotations - CV Model v2.1\"", - "type": [ - "string", - "null" - ] - }, - "filters_or_filtered": { - "anyOf": [ - { - "$ref": "#/$defs/DetectedEntity" - }, - { - "type": "null" - } - ], - "description": "MIGRATED 2026-01-25: Replaces detection_count and detection_threshold slots.\n\nLinks to DetectedEntity which contains:\n- has_or_had_quantity \u2192 Quantity (for detection_count)\n- has_or_had_treshold \u2192 DetectionThreshold (for detection_threshold)\n\n**Migration Pattern**:\n- Old: detection_count: 342, detection_threshold: 0.5\n- New: filters_or_filtered \u2192 DetectedEntity with structured data\n" - }, - "has_or_had_confidence": { - "anyOf": [ - { - "$ref": "#/$defs/Confidence" - }, - { - "type": "null" - } - ], - "description": "The confidence level of an assertion or observation." - }, - "has_or_had_language": { - "description": "Language information for an entity.\n\n**Use Cases**:\n1. **Language Proficiency**: When tracking language skills (e.g., person profiles)\n - Use LanguageProficiency class with language_name, code, and level\n2. **Language-Tagged Text**: When storing multilingual text content\n - Use Language class with iso_639_1, language_name, and text_content\n3. **Content Language**: Language of the resource content (migrated from content_language)\n - Use Language class\n\n**Migration Support**:\nThis slot replaces language-specific text slots (fr, de, en, nl) and content_language\nwith a unified pattern per slot_fixes.yaml revisions:\n- `content_language` \u2192 has_or_had_language with Language\n- `fr` (French text) \u2192 has_or_had_language with Language(iso_639_1=\"fr\")\n- `de` (German text) \u2192 has_or_had_language with Language(iso_639_1=\"de\")\n- `en` (English text) \u2192 has_or_had_language with Language(iso_639_1=\"en\")\n- `nl` (Dutch text) \u2192 has_or_had_language with Language(iso_639_1=\"nl\")\n\n**Example - Language-Tagged Text**:\n```yaml\nhas_or_had_language:\n - iso_639_1: \"fr\"\n language_name: \"French\"\n text_content: \"archives universitaires\"\n - iso_639_1: \"en\"\n language_name: \"English\"\n text_content: \"university archives\"\n```\n\n**Example - Language Proficiency**:\n```yaml\nhas_or_had_language:\n - language_name: \"French\"\n language_code: \"fr\"\n proficiency_level: \"fluent\"\n```\n", - "items": { - "$ref": "#/$defs/Language", - "anyOf": [ - { - "$ref": "#/$defs/LanguageProficiency" - }, - { - "$ref": "#/$defs/Language" - } - ] - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_rationale": { - "description": "The rationale or justification for a decision or mapping.\n\n**USAGE**:\nUsed for:\n- Mapping rationale (why an entity was mapped to Wikidata)\n- Decision justifications\n- Explanation notes\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:used` (per 2026-01-26 update)\n- **Close**: `skos:note` - SKOS note (DatatypeProperty)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_bounding_box": { - "description": "Whether annotation includes spatial bounding box coordinates.\n\nBounding boxes define rectangular regions in frames where\nobjects/faces/text were detected.\n\nFormat typically: [x, y, width, height] or [x1, y1, x2, y2]\n\n- true: Spatial coordinates available in segment data\n- false: Only temporal information (no spatial)\n", - "type": [ - "boolean", - "null" - ] - }, - "includes_handwriting": { - "description": "Whether handwritten text was detected.\n\nHandwriting OCR is more challenging and typically\nhas lower confidence than printed text.\n\nHeritage relevance: manuscripts, letters, diaries,\nannotations, signatures.\n", - "type": [ - "boolean", - "null" - ] - }, - "includes_segmentation_mask": { - "description": "Whether annotation includes pixel-level segmentation masks.\n\nSegmentation masks provide precise object boundaries\n(more detailed than bounding boxes).\n\n- true: Pixel masks available (typically as separate files)\n- false: No segmentation data\n\nMasks are memory-intensive; often stored externally.\n", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/GenerationEvent" - }, - "type": "array" - }, - "is_or_was_verified_by": { - "anyOf": [ - { - "$ref": "#/$defs/Verifier" - }, - { - "type": "null" - } - ], - "description": "Links an entity to the agent that verified it.\n\n**USAGE**:\nUsed for:\n- Data verification attribution\n- Quality assurance tracking\n- Approval records\n" - }, - "is_verified": { - "description": "Whether content has been verified by a human.\n\n- **true**: Human-reviewed and approved\n- **false**: Not yet verified (default for AI-generated)\n\nCritical for quality assurance in heritage contexts.\n", - "type": [ - "boolean", - "null" - ] - }, - "keyframe_extraction": { - "description": "Whether keyframe extraction was used instead of uniform sampling.\n\n**Keyframe extraction** selects visually distinct frames\n(scene changes, significant motion) rather than uniform intervals.\n\n- true: Keyframes extracted (variable frame selection)\n- false: Uniform sampling at frame_sample_rate\n\nKeyframe extraction is more efficient but may miss content\nbetween scene changes.\n", - "type": [ - "boolean", - "null" - ] - }, - "model_architecture": { - "description": "Architecture type of the CV/ML model used.\n\n**Common Architectures**:\n- CNN: Convolutional Neural Network (ResNet, VGG, EfficientNet)\n- Transformer: Vision Transformer (ViT, Swin, CLIP)\n- Hybrid: Combined architectures (DETR, ConvNeXt)\n- RNN: Recurrent (for temporal analysis)\n- GAN: Generative (for reconstruction tasks)\n\nUseful for understanding model capabilities and limitations.\n", - "type": [ - "string", - "null" - ] - }, - "model_provider": { - "description": "Provider or vendor of the generation model/service.\n\nSchema.org: provider for service provider.\n", - "type": [ - "string", - "null" - ] - }, - "model_task": { - "description": "Specific task the model was trained for.\n\n**Common Tasks**:\n- classification: Image/frame classification\n- detection: Object detection with bounding boxes\n- segmentation: Pixel-level classification\n- captioning: Image/video captioning\n- embedding: Feature extraction for similarity\n\nA model's task determines its output format.\n", - "type": [ - "string", - "null" - ] - }, - "model_version": { - "description": "Version of the model or tool used for generation.\n\nSchema.org: softwareVersion for version tracking.\n\nCritical for reproducibility and quality assessment.\n", - "type": [ - "string", - "null" - ] - }, - "overall_confidence": { - "description": "Overall confidence score for the generated content.\n\nRange: 0.0 (no confidence) to 1.0 (complete certainty)\n\nAggregated from per-segment confidence scores or\nprovided by the generation model.\n\n**Thresholds** (suggested):\n- > 0.9: High quality, production-ready\n- 0.75-0.9: Good, may have minor errors\n- 0.6-0.75: Usable, should be reviewed\n- < 0.6: Low quality, needs significant correction\n\n**Ontology mapping**: Uses sosa:hasSimpleResult because this is an aggregated observation result from AI/ML models acting as sensors.\n", - "maximum": 1.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "processing_duration_seconds": { - "description": "Time taken to generate this content, in seconds.\n\nUseful for performance monitoring and cost estimation.\n", - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "source_video": { - "description": "Reference to the VideoPost from which this content was derived.\n\nPROV-O: wasDerivedFrom links derived content to source.\n\nLinks to the video's unique identifier (post_id).\n", - "type": "string" - }, - "source_video_url": { - "description": "URL of the source video.\n\nConvenience field for direct video access.\nDerived from source_video but stored for quick reference.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_type", - "is_or_was_generated_by", - "source_video" - ], - "title": "VideoOCRAnnotation", - "type": "object" - }, - "VideoObjectAnnotation": { - "additionalProperties": false, - "description": "Annotation for object, face, and entity detection in video.\n\n**DEFINITION**:\n\nVideoObjectAnnotation captures visual entities detected in video frames:\n\n| Detection Type | Examples |\n|----------------|----------|\n| Objects | Paintings, sculptures, artifacts, furniture |\n| Faces | People, staff, visitors |\n| Logos | Institution logos, brand marks |\n| Landmarks | Buildings, monuments, locations |\n| Text regions | Signs, labels (see VideoOCRAnnotation for text extraction) |\n\n**OBJECT DETECTION vs CLASSIFICATION**:\n\n- **Classification**: What is in the frame? (labels only)\n- **Detection**: What + where? (labels + bounding boxes)\n- **Segmentation**: What + precise boundary? (pixel masks)\n\nThis class supports all three via inherited flags.\n\n**HERITAGE-SPECIFIC OBJECT CLASSES**:\n\n| Category | Objects |\n|----------|---------|\n| **Art** | Painting, sculpture, drawing, print, photograph |\n| **Artifacts** | Pottery, jewelry, tools, textiles, furniture |\n| **Documents** | Books, manuscripts, letters, maps |\n| **Architecture** | Columns, arches, facades, interiors |\n| **Natural** | Specimens, fossils, botanical samples |\n\n**FACE DETECTION AND RECOGNITION**:\n\nTwo distinct capabilities:\n- **Detection**: Locate faces (bounding boxes)\n- **Recognition**: Identify who (requires reference database)\n\nHeritage use cases:\n- Identify curators, directors, experts in videos\n- Find videos featuring specific people\n- Accessibility: Announce speaker changes\n\n**LINKING TO COLLECTION RECORDS**:\n\nDetected objects can be linked to collection database:\n\n```yaml\nhas_or_had_detected_object:\n - label: \"The Night Watch\"\n wikidata_id: Q219831\n collection_id: \"SK-C-5\" # Rijksmuseum ID\n confidence: 0.95\n```\n\n**BOUNDING BOX FORMAT**:\n\nCoordinates are normalized (0.0-1.0) relative to frame dimensions:\n- `x`: Left edge (0.0 = left, 1.0 = right)\n- `y`: Top edge (0.0 = top, 1.0 = bottom)\n- `width`: Box width as fraction of frame width\n- `height`: Box height as fraction of frame height", - "properties": { - "analyzes_or_analyzed": { - "anyOf": [ - { - "type": "integer" - }, - { - "$ref": "#/$defs/VideoFrame" - }, - { - "type": "null" - } - ], - "description": "MIGRATED 2026-01-22: Now supports VideoFrame class for frame_sample_rate migration.\n\nFrame analysis information including:\n- Total frames analyzed (integer, legacy pattern)\n- Frame sample rate and analysis parameters (VideoFrame class)\n\nMIGRATED SLOTS:\n- frame_sample_rate \u2192 VideoFrame.has_or_had_quantity with unit \"samples per second\"\n" - }, - "contains_or_contained": { - "description": "Generic containment relationship (temporal). Indicates that this entity contains or has contained the referenced entity.", - "items": { - "$ref": "#/$defs/DetectedEntity", - "anyOf": [ - { - "$ref": "#/$defs/DetectedObject" - }, - { - "$ref": "#/$defs/DetectedFace" - }, - { - "$ref": "#/$defs/DetectedLogo" - }, - { - "$ref": "#/$defs/DetectedLandmark" - } - ] - }, - "type": [ - "array", - "null" - ] - }, - "content_title": { - "description": "Title or label for this text content.\nOntology mapping: dcterms:title is the Dublin Core property for the name given to a resource.\nExamples: - \"Rijksmuseum Tour - Full Transcript\" - \"Dutch Subtitles - Auto-generated\" - \"Scene Annotations - CV Model v2.1\"", - "type": [ - "string", - "null" - ] - }, - "filters_or_filtered": { - "anyOf": [ - { - "$ref": "#/$defs/DetectedEntity" - }, - { - "type": "null" - } - ], - "description": "MIGRATED 2026-01-25: Replaces detection_count and detection_threshold slots.\n\nLinks to DetectedEntity which contains:\n- has_or_had_quantity \u2192 Quantity (for detection_count)\n- has_or_had_treshold \u2192 DetectionThreshold (for detection_threshold)\n\n**Migration Pattern**:\n- Old: detection_count: 342, detection_threshold: 0.5\n- New: filters_or_filtered \u2192 DetectedEntity with structured data\n" - }, - "has_or_had_language": { - "description": "Language information for an entity.\n\n**Use Cases**:\n1. **Language Proficiency**: When tracking language skills (e.g., person profiles)\n - Use LanguageProficiency class with language_name, code, and level\n2. **Language-Tagged Text**: When storing multilingual text content\n - Use Language class with iso_639_1, language_name, and text_content\n3. **Content Language**: Language of the resource content (migrated from content_language)\n - Use Language class\n\n**Migration Support**:\nThis slot replaces language-specific text slots (fr, de, en, nl) and content_language\nwith a unified pattern per slot_fixes.yaml revisions:\n- `content_language` \u2192 has_or_had_language with Language\n- `fr` (French text) \u2192 has_or_had_language with Language(iso_639_1=\"fr\")\n- `de` (German text) \u2192 has_or_had_language with Language(iso_639_1=\"de\")\n- `en` (English text) \u2192 has_or_had_language with Language(iso_639_1=\"en\")\n- `nl` (Dutch text) \u2192 has_or_had_language with Language(iso_639_1=\"nl\")\n\n**Example - Language-Tagged Text**:\n```yaml\nhas_or_had_language:\n - iso_639_1: \"fr\"\n language_name: \"French\"\n text_content: \"archives universitaires\"\n - iso_639_1: \"en\"\n language_name: \"English\"\n text_content: \"university archives\"\n```\n\n**Example - Language Proficiency**:\n```yaml\nhas_or_had_language:\n - language_name: \"French\"\n language_code: \"fr\"\n proficiency_level: \"fluent\"\n```\n", - "items": { - "anyOf": [ - { - "$ref": "#/$defs/LanguageProficiency" - }, - { - "$ref": "#/$defs/Language" - } - ], - "type": "string" - }, - "type": "array" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_rationale": { - "description": "The rationale or justification for a decision or mapping.\n\n**USAGE**:\nUsed for:\n- Mapping rationale (why an entity was mapped to Wikidata)\n- Decision justifications\n- Explanation notes\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:used` (per 2026-01-26 update)\n- **Close**: `skos:note` - SKOS note (DatatypeProperty)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "includes_bounding_box": { - "description": "Whether annotation includes spatial bounding box coordinates.\n\nBounding boxes define rectangular regions in frames where\nobjects/faces/text were detected.\n\nFormat typically: [x, y, width, height] or [x1, y1, x2, y2]\n\n- true: Spatial coordinates available in segment data\n- false: Only temporal information (no spatial)\n", - "type": [ - "boolean", - "null" - ] - }, - "includes_object_tracking": { - "description": "Whether objects are tracked across frames.\n\nTracking maintains object identity over time:\n- true: Same object has consistent ID across frames\n- false: Independent per-frame detections\n\nTracking enables counting unique objects and\nunderstanding object movement/presence.\n", - "type": [ - "boolean", - "null" - ] - }, - "includes_segmentation_mask": { - "description": "Whether annotation includes pixel-level segmentation masks.\n\nSegmentation masks provide precise object boundaries\n(more detailed than bounding boxes).\n\n- true: Pixel masks available (typically as separate files)\n- false: No segmentation data\n\nMasks are memory-intensive; often stored externally.\n", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/GenerationEvent" - }, - "type": "array" - }, - "is_or_was_verified_by": { - "anyOf": [ - { - "$ref": "#/$defs/Verifier" - }, - { - "type": "null" - } - ], - "description": "Links an entity to the agent that verified it.\n\n**USAGE**:\nUsed for:\n- Data verification attribution\n- Quality assurance tracking\n- Approval records\n" - }, - "is_verified": { - "description": "Whether content has been verified by a human.\n\n- **true**: Human-reviewed and approved\n- **false**: Not yet verified (default for AI-generated)\n\nCritical for quality assurance in heritage contexts.\n", - "type": [ - "boolean", - "null" - ] - }, - "keyframe_extraction": { - "description": "Whether keyframe extraction was used instead of uniform sampling.\n\n**Keyframe extraction** selects visually distinct frames\n(scene changes, significant motion) rather than uniform intervals.\n\n- true: Keyframes extracted (variable frame selection)\n- false: Uniform sampling at frame_sample_rate\n\nKeyframe extraction is more efficient but may miss content\nbetween scene changes.\n", - "type": [ - "boolean", - "null" - ] - }, - "linked_to_collection": { - "description": "Whether detected objects are linked to collection database.\n\nWhen true, detected objects have collection_id or\nwikidata_id linking them to authoritative records.\n\nEnables:\n- \"Find videos showing artwork X\"\n- Rich metadata for detected items\n- Cross-referencing with collection management\n", - "type": [ - "boolean", - "null" - ] - }, - "model_architecture": { - "description": "Architecture type of the CV/ML model used.\n\n**Common Architectures**:\n- CNN: Convolutional Neural Network (ResNet, VGG, EfficientNet)\n- Transformer: Vision Transformer (ViT, Swin, CLIP)\n- Hybrid: Combined architectures (DETR, ConvNeXt)\n- RNN: Recurrent (for temporal analysis)\n- GAN: Generative (for reconstruction tasks)\n\nUseful for understanding model capabilities and limitations.\n", - "type": [ - "string", - "null" - ] - }, - "model_provider": { - "description": "Provider or vendor of the generation model/service.\n\nSchema.org: provider for service provider.\n", - "type": [ - "string", - "null" - ] - }, - "model_task": { - "description": "Specific task the model was trained for.\n\n**Common Tasks**:\n- classification: Image/frame classification\n- detection: Object detection with bounding boxes\n- segmentation: Pixel-level classification\n- captioning: Image/video captioning\n- embedding: Feature extraction for similarity\n\nA model's task determines its output format.\n", - "type": [ - "string", - "null" - ] - }, - "model_version": { - "description": "Version of the model or tool used for generation.\n\nSchema.org: softwareVersion for version tracking.\n\nCritical for reproducibility and quality assessment.\n", - "type": [ - "string", - "null" - ] - }, - "object_classes_detected": { - "description": "List of unique object class labels detected.\n\nVocabulary depends on model training:\n- COCO: 80 common object categories\n- ImageNet: 1000 categories\n- Custom: Heritage-specific categories\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "overall_confidence": { - "description": "Overall confidence score for the generated content.\n\nRange: 0.0 (no confidence) to 1.0 (complete certainty)\n\nAggregated from per-segment confidence scores or\nprovided by the generation model.\n\n**Thresholds** (suggested):\n- > 0.9: High quality, production-ready\n- 0.75-0.9: Good, may have minor errors\n- 0.6-0.75: Usable, should be reviewed\n- < 0.6: Low quality, needs significant correction\n\n**Ontology mapping**: Uses sosa:hasSimpleResult because this is an aggregated observation result from AI/ML models acting as sensors.\n", - "maximum": 1.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "processing_duration_seconds": { - "description": "Time taken to generate this content, in seconds.\n\nUseful for performance monitoring and cost estimation.\n", - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "source_video": { - "description": "Reference to the VideoPost from which this content was derived.\n\nPROV-O: wasDerivedFrom links derived content to source.\n\nLinks to the video's unique identifier (post_id).\n", - "type": "string" - }, - "source_video_url": { - "description": "URL of the source video.\n\nConvenience field for direct video access.\nDerived from source_video but stored for quick reference.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_type", - "has_or_had_language", - "is_or_was_generated_by", - "source_video" - ], - "title": "VideoObjectAnnotation", - "type": "object" - }, - "VideoPost": { - "additionalProperties": false, - "description": "Standard video content with no strict duration limit.\n\n**Activity Streams Mapping**: `as:Video`\n**Schema.org Mapping**: `schema:VideoObject`\n\n**Platforms**:\n- YouTube (primary)\n- Vimeo\n- Facebook Video\n- LinkedIn Video\n- X/Twitter Video\n\n**Duration Characteristics**:\n- YouTube: Up to 12 hours (for verified accounts)\n- Vimeo: Varies by plan (500MB-unlimited)\n- Facebook: Up to 4 hours\n- LinkedIn: Up to 10 minutes\n\n**Heritage Use Cases**:\n\n| Use Case | Description | Typical Duration |\n|----------|-------------|------------------|\n| Virtual tours | 360\u00b0 or guided exhibition walkthroughs | 10-30 min |\n| Conservation | Restoration process documentation | 5-20 min |\n| Interviews | Curator, artist, or expert conversations | 15-60 min |\n| Lectures | Educational presentations | 30-90 min |\n| Documentaries | In-depth collection or history stories | 20-60 min |\n| Exhibition intro | Preview of new exhibitions | 2-5 min |\n\n**Technical Properties**:\n- Resolution: Up to 8K on YouTube\n- Formats: MP4 (H.264), WebM, MOV\n- Captions: VTT, SRT supported\n- Chapters: Timestamp-based navigation\n\n**Metadata Captured**:\n- Duration (ISO 8601)\n- Definition (SD, HD, 4K, 8K)\n- Caption availability\n- View/like/comment counts\n- Tags and categories", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "post_type_activity_streams_type": { - "const": "as:Video", - "description": "Activity Streams 2.0 type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_category": { - "const": "VIDEO", - "description": "High-level category for grouping related post types.\nValues: VIDEO, SHORT_VIDEO, IMAGE, TEXT, STORY, LIVE_STREAM,\nAUDIO, ARTICLE, THREAD, CAROUSEL, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "post_type_description": { - "description": "Detailed description of this post type including purpose,\ncharacteristics, and typical use cases in heritage context.\n", - "type": [ - "string", - "null" - ] - }, - "post_type_ephemeral": { - "description": "Whether this post type is ephemeral (disappears after time).", - "type": [ - "boolean", - "null" - ] - }, - "post_type_heritage_use_case": { - "description": "Typical use cases for heritage institutions creating this content type.\n\nExamples for Video:\n- Virtual exhibition tours\n- Conservation process documentation\n- Curator interviews\n- Historical documentary content\n- Educational lectures\n\nExamples for Short Video:\n- Artifact spotlights\n- Behind-the-scenes moments\n- Quick conservation tips\n- Event teasers\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_id": { - "description": "Unique identifier for this post type", - "type": "string" - }, - "post_type_max_duration": { - "description": "Maximum duration for this post type (e.g., video length).", - "type": [ - "string", - "null" - ] - }, - "post_type_media_format": { - "description": "Supported media formats for this post type.", - "items": { - "enum": [ - "video/mp4", - "video/webm", - "video/quicktime" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "post_type_name": { - "description": "Canonical name for this post type.\nUsed for display and content categorization.\n\nExamples: \"Video\", \"Short Video\", \"Image Post\", \"Story\", \"Live Stream\"\n", - "type": "string" - }, - "post_type_schema_org_type": { - "const": "schema:VideoObject", - "description": "Schema.org type mapping for this post type.", - "type": [ - "string", - "null" - ] - }, - "post_type_supported_platform": { - "description": "Platforms that support this post type.", - "items": { - "enum": [ - "YouTube", - "Vimeo", - "Facebook", - "LinkedIn", - "XTwitter" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "post_type_id", - "post_type_name" - ], - "title": "VideoPost", - "type": "object" - }, - "VideoSceneAnnotation": { - "additionalProperties": false, - "description": "Annotation for video scene and shot boundary detection. **DEFINITION**: VideoSceneAnnotation captures the temporal structure of video content by identifying shot boundaries, scene changes, and transitions. **TERMINOLOGY**: | Term | Definition | |------|------------| | **Shot** | Continuous footage from a single camera take | | **Scene** | Semantic unit (may contain multiple shots) | | **Transition** | Visual effect between shots (cut, fade, dissolve) | **SHOT vs SCENE**: - **Shot detection**: Technical boundary (camera edit points) - **Scene detection**: Semantic boundary (content/location change) This class supports both levels of granularity via `detection_level`. **DETECTION METHODS**: | Method | Approach | Accuracy | |--------|----------|----------| | Histogram diff | Color histogram changes | Good for cuts | | CNN-based | Learned visual features | Best for all types | | Motion-based | Optical flow analysis | Good for dissolves | | Audio-visual | Combined modalities | Best for scenes | **TRANSITION TYPES**: | Type | Visual Effect | |------|---------------| | CUT | Instantaneous change (most common) | | FADE_IN | Gradual appearance from black | | FADE_OUT | Gradual disappearance to black | | DISSOLVE | One shot blends into next | | WIPE | Geometric transition effect | **HERITAGE USE CASES**: - **Video navigation**: Jump to specific scenes/chapters - **Highlight extraction**: Key scenes for previews - **Content analysis**: Understanding video structure - **Preservation**: Document editing decisions **SCENE TYPE CLASSIFICATION**: Heritage videos often contain predictable scene types: - Exhibition halls and galleries - Close-ups of artworks/artifacts - Interviews with curators/experts - Exterior establishing shots - Archival footage or photographs", - "properties": { - "analyzes_or_analyzed": { - "anyOf": [ - { - "type": "integer" - }, - { - "$ref": "#/$defs/VideoFrame" - }, - { - "type": "null" - } - ], - "description": "MIGRATED 2026-01-22: Now supports VideoFrame class for frame_sample_rate migration.\n\nFrame analysis information including:\n- Total frames analyzed (integer, legacy pattern)\n- Frame sample rate and analysis parameters (VideoFrame class)\n\nMIGRATED SLOTS:\n- frame_sample_rate \u2192 VideoFrame.has_or_had_quantity with unit \"samples per second\"\n" - }, - "contains_or_contained": { - "description": "Generic containment relationship (temporal). Indicates that this entity contains or has contained the referenced entity.", - "items": { - "type": "string" - }, - "type": "array" - }, - "content_title": { - "description": "Title or label for this text content.\nOntology mapping: dcterms:title is the Dublin Core property for the name given to a resource.\nExamples: - \"Rijksmuseum Tour - Full Transcript\" - \"Dutch Subtitles - Auto-generated\" - \"Scene Annotations - CV Model v2.1\"", - "type": [ - "string", - "null" - ] - }, - "filters_or_filtered": { - "$ref": "#/$defs/DetectedEntity", - "description": "MIGRATED 2026-01-25: Replaces detection_level slot.\n\nLinks to DetectedEntity which contains:\n- has_or_had_type \u2192 DetectionLevelType (SCENE, SHOT, etc.)\n\n**Migration Pattern**:\n- Old: detection_level: SCENE\n- New: filters_or_filtered \u2192 DetectedEntity with has_or_had_type\n" - }, - "has_or_had_language": { - "description": "Language information for an entity.\n\n**Use Cases**:\n1. **Language Proficiency**: When tracking language skills (e.g., person profiles)\n - Use LanguageProficiency class with language_name, code, and level\n2. **Language-Tagged Text**: When storing multilingual text content\n - Use Language class with iso_639_1, language_name, and text_content\n3. **Content Language**: Language of the resource content (migrated from content_language)\n - Use Language class\n\n**Migration Support**:\nThis slot replaces language-specific text slots (fr, de, en, nl) and content_language\nwith a unified pattern per slot_fixes.yaml revisions:\n- `content_language` \u2192 has_or_had_language with Language\n- `fr` (French text) \u2192 has_or_had_language with Language(iso_639_1=\"fr\")\n- `de` (German text) \u2192 has_or_had_language with Language(iso_639_1=\"de\")\n- `en` (English text) \u2192 has_or_had_language with Language(iso_639_1=\"en\")\n- `nl` (Dutch text) \u2192 has_or_had_language with Language(iso_639_1=\"nl\")\n\n**Example - Language-Tagged Text**:\n```yaml\nhas_or_had_language:\n - iso_639_1: \"fr\"\n language_name: \"French\"\n text_content: \"archives universitaires\"\n - iso_639_1: \"en\"\n language_name: \"English\"\n text_content: \"university archives\"\n```\n\n**Example - Language Proficiency**:\n```yaml\nhas_or_had_language:\n - language_name: \"French\"\n language_code: \"fr\"\n proficiency_level: \"fluent\"\n```\n", - "items": { - "anyOf": [ - { - "$ref": "#/$defs/LanguageProficiency" - }, - { - "$ref": "#/$defs/Language" - } - ], - "type": "string" - }, - "type": "array" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_rationale": { - "description": "The rationale or justification for a decision or mapping.\n\n**USAGE**:\nUsed for:\n- Mapping rationale (why an entity was mapped to Wikidata)\n- Decision justifications\n- Explanation notes\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:used` (per 2026-01-26 update)\n- **Close**: `skos:note` - SKOS note (DatatypeProperty)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "includes_bounding_box": { - "description": "Whether annotation includes spatial bounding box coordinates.\n\nBounding boxes define rectangular regions in frames where\nobjects/faces/text were detected.\n\nFormat typically: [x, y, width, height] or [x1, y1, x2, y2]\n\n- true: Spatial coordinates available in segment data\n- false: Only temporal information (no spatial)\n", - "type": [ - "boolean", - "null" - ] - }, - "includes_segmentation_mask": { - "description": "Whether annotation includes pixel-level segmentation masks.\n\nSegmentation masks provide precise object boundaries\n(more detailed than bounding boxes).\n\n- true: Pixel masks available (typically as separate files)\n- false: No segmentation data\n\nMasks are memory-intensive; often stored externally.\n", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/GenerationEvent" - }, - "type": "array" - }, - "is_or_was_verified_by": { - "anyOf": [ - { - "$ref": "#/$defs/Verifier" - }, - { - "type": "null" - } - ], - "description": "Links an entity to the agent that verified it.\n\n**USAGE**:\nUsed for:\n- Data verification attribution\n- Quality assurance tracking\n- Approval records\n" - }, - "is_verified": { - "description": "Whether content has been verified by a human.\n\n- **true**: Human-reviewed and approved\n- **false**: Not yet verified (default for AI-generated)\n\nCritical for quality assurance in heritage contexts.\n", - "type": [ - "boolean", - "null" - ] - }, - "keyframe_extraction": { - "description": "Whether keyframe extraction was used instead of uniform sampling.\n\n**Keyframe extraction** selects visually distinct frames\n(scene changes, significant motion) rather than uniform intervals.\n\n- true: Keyframes extracted (variable frame selection)\n- false: Uniform sampling at frame_sample_rate\n\nKeyframe extraction is more efficient but may miss content\nbetween scene changes.\n", - "type": [ - "boolean", - "null" - ] - }, - "model_architecture": { - "description": "Architecture type of the CV/ML model used.\n\n**Common Architectures**:\n- CNN: Convolutional Neural Network (ResNet, VGG, EfficientNet)\n- Transformer: Vision Transformer (ViT, Swin, CLIP)\n- Hybrid: Combined architectures (DETR, ConvNeXt)\n- RNN: Recurrent (for temporal analysis)\n- GAN: Generative (for reconstruction tasks)\n\nUseful for understanding model capabilities and limitations.\n", - "type": [ - "string", - "null" - ] - }, - "model_provider": { - "description": "Provider or vendor of the generation model/service.\n\nSchema.org: provider for service provider.\n", - "type": [ - "string", - "null" - ] - }, - "model_task": { - "description": "Specific task the model was trained for.\n\n**Common Tasks**:\n- classification: Image/frame classification\n- detection: Object detection with bounding boxes\n- segmentation: Pixel-level classification\n- captioning: Image/video captioning\n- embedding: Feature extraction for similarity\n\nA model's task determines its output format.\n", - "type": [ - "string", - "null" - ] - }, - "model_version": { - "description": "Version of the model or tool used for generation.\n\nSchema.org: softwareVersion for version tracking.\n\nCritical for reproducibility and quality assessment.\n", - "type": [ - "string", - "null" - ] - }, - "overall_confidence": { - "description": "Overall confidence score for the generated content.\n\nRange: 0.0 (no confidence) to 1.0 (complete certainty)\n\nAggregated from per-segment confidence scores or\nprovided by the generation model.\n\n**Thresholds** (suggested):\n- > 0.9: High quality, production-ready\n- 0.75-0.9: Good, may have minor errors\n- 0.6-0.75: Usable, should be reviewed\n- < 0.6: Low quality, needs significant correction\n\n**Ontology mapping**: Uses sosa:hasSimpleResult because this is an aggregated observation result from AI/ML models acting as sensors.\n", - "maximum": 1.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "processing_duration_seconds": { - "description": "Time taken to generate this content, in seconds.\n\nUseful for performance monitoring and cost estimation.\n", - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "scene_count": { - "description": "Total number of scenes/shots detected in the video.\n\nShould equal length of scene_segments array.\n", - "minimum": 1, - "type": "integer" - }, - "scene_types_detected": { - "description": "List of scene type labels found in the video.\n\n**Common Heritage Scene Types**:\n- INTERIOR: Indoor shots\n- EXTERIOR: Outdoor shots\n- CLOSEUP: Detail shots of objects\n- INTERVIEW: Talking head / interview\n- ARCHIVAL: Historical footage/photos\n- TITLE_CARD: Text overlays\n- B_ROLL: Supplementary footage\n", - "items": { - "$ref": "#/$defs/SceneTypeEnum" - }, - "type": [ - "array", - "null" - ] - }, - "source_video": { - "description": "Reference to the VideoPost from which this content was derived.\n\nPROV-O: wasDerivedFrom links derived content to source.\n\nLinks to the video's unique identifier (post_id).\n", - "type": "string" - }, - "source_video_url": { - "description": "URL of the source video.\n\nConvenience field for direct video access.\nDerived from source_video but stored for quick reference.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "filters_or_filtered", - "scene_count", - "contains_or_contained", - "has_or_had_language", - "is_or_was_generated_by", - "source_video" - ], - "title": "VideoSceneAnnotation", - "type": "object" - }, - "VideoSubtitle": { - "additionalProperties": false, - "description": "Time-coded caption/subtitle content for video.\n\n**DEFINITION**:\n\nVideoSubtitle represents caption/subtitle tracks that provide time-coded\ntext synchronized with video playback. It extends VideoTranscript because\nsubtitles contain complete transcription PLUS temporal synchronization.\n\n**INHERITANCE FROM VideoTranscript**:\n\nVideoSubtitle inherits all transcript capabilities:\n- `full_text`: Complete subtitle text concatenated\n- `segments`: Time-coded entries (REQUIRED for subtitles)\n- `includes_timestamps`: Always true for subtitles\n- `content_language`: Language of subtitle text\n- All provenance from VideoTextContent\n\nAnd adds subtitle-specific properties:\n- `has_or_had_format`: SRT, VTT, TTML, SBV, ASS\n- `is_closed_caption`: CC vs regular subtitles\n- `is_sdh`: Subtitles for Deaf/Hard-of-Hearing\n- `includes_sound_descriptions`: Non-speech audio descriptions\n\n**SCHEMA.ORG ALIGNMENT**:\n\nMaps to `schema:caption` property:\n> \"For downloadable machine formats (closed caption, subtitles etc.)\n> use the MediaObject.encodingFormat property.\"\n\n**SUBTITLE vs CAPTION vs TRANSCRIPT**:\n\n| Type | Time-coded | Purpose | Audience |\n|------|------------|---------|----------|\n| Transcript | Optional | Reading, search | Everyone |\n| Subtitle | Required | Language translation | Hearing viewers |\n| Caption (CC) | Required | Accessibility | Deaf/HoH viewers |\n| SDH | Required | Full accessibility | Deaf viewers, noisy environments |\n\n**SDH (Subtitles for Deaf/Hard-of-Hearing)**:\n\nSDH differs from regular subtitles by including:\n- Speaker identification: \"(John) Hello\"\n- Sound effects: \"[door slams]\", \"[music playing]\"\n- Music descriptions: \"\u266a upbeat jazz \u266a\"\n- Emotional cues: \"[laughing]\", \"[whispering]\"\n\n**SUBTITLE FORMATS**:\n\n| Format | Extension | Features | Use Case |\n|--------|-----------|----------|----------|\n| SRT | .srt | Simple, universal | Most video players |\n| VTT | .vtt | W3C standard, styling | HTML5 video, web |\n| TTML | .ttml/.dfxp | XML, rich styling | Broadcast, streaming |\n| SBV | .sbv | YouTube native | YouTube uploads |\n| ASS | .ass | Advanced styling | Anime, complex layouts |\n\n**SRT FORMAT EXAMPLE**:\n\n```\n1\n00:00:00,000 --> 00:00:03,500\nWelcome to the Rijksmuseum.\n\n2\n00:00:03,500 --> 00:00:08,200\nToday we'll explore the Night Watch gallery.\n```\n\n**VTT FORMAT EXAMPLE**:\n\n```\nWEBVTT\n\n00:00:00.000 --> 00:00:03.500\nWelcome to the Rijksmuseum.\n\n00:00:03.500 --> 00:00:08.200\nToday we'll explore the Night Watch gallery.\n```\n\n**HERITAGE INSTITUTION CONTEXT**:\n\nSubtitles are critical for heritage video accessibility:\n\n1. **Accessibility Compliance**: WCAG 2.1, Section 508\n2. **Multilingual Access**: Translate for international audiences\n3. **Silent Viewing**: Social media, public displays, quiet spaces\n4. **Search Discovery**: Subtitle text is indexed by platforms\n5. **Preservation**: Text outlasts video format obsolescence\n\n**YOUTUBE API INTEGRATION**:\n\nSubtitle tracks from YouTube API populate:\n- `has_or_had_format`: Typically VTT or SRT\n- `generation_method`: PLATFORM_PROVIDED or ASR_AUTOMATIC\n- `content_language`: From track language code\n- `is_or_was_created_through`: YouTube auto-caption flag\n\n**SEGMENTS ARE REQUIRED**:\n\nUnlike VideoTranscript where segments are optional, VideoSubtitle\nREQUIRES the `segments` slot to be populated with VideoTimeSegment\nentries that include start_seconds, end_seconds, and segment_text.", - "properties": { - "contains_or_contained": { - "description": "Generic containment relationship (temporal). Indicates that this entity contains or has contained the referenced entity.", - "items": { - "type": "string" - }, - "type": "array" - }, - "content_title": { - "description": "Title or label for this text content.\nOntology mapping: dcterms:title is the Dublin Core property for the name given to a resource.\nExamples: - \"Rijksmuseum Tour - Full Transcript\" - \"Dutch Subtitles - Auto-generated\" - \"Scene Annotations - CV Model v2.1\"", - "type": [ - "string", - "null" - ] - }, - "has_or_had_alignment": { - "anyOf": [ - { - "$ref": "#/$defs/Alignment" - }, - { - "type": "null" - } - ], - "description": "Alignment or positioning information for content elements.\nFollows RiC-O temporal naming convention (Rule 39).\n\n**USE CASES**:\n- Caption/subtitle positioning (top, bottom, center)\n- Text alignment (left, right, center, justify)\n- Visual element positioning in layouts\n\n**MODELING**:\nUses Alignment class for structured representation including:\n- Horizontal alignment (left, center, right)\n- Vertical alignment (top, middle, bottom)\n- Custom positioning coordinates\n" - }, - "has_or_had_caption": { - "description": "Links to a Caption providing accessibility text for media content.\n**PURPOSE**: - Accessibility compliance (WCAG) - Video/audio content description - Multilingual caption support\n**ONTOLOGY ALIGNMENT**: - slot_uri: schema:caption (primary) - Supports Schema.org media accessibility patterns\nMIGRATED 2026-01-22: Replaces caption_available slot per slot_fixes.yaml feedback.", - "items": { - "$ref": "#/$defs/Caption" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_format": { - "description": "The format or file type of a resource or service response.\n\n**USAGE**:\nUsed for:\n- Response formats from APIs (JSON, XML, RDF)\n- File formats for documents (PDF, DOCX, TXT)\n- Media formats (JPEG, MP3, MP4)\n- Transcript formats (VTT, SRT, plain text)\n- Subtitle formats (WebVTT, SRT, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property\n- **Close**: `dct:format` - Dublin Core format\n- **Close**: `schema:encodingFormat` - Schema.org encoding format\n\n**Range**: `uriorcurie` (Rule 54)\nBroadened range to accept URI/CURIE references to format specifications.\nThis allows linking to IANA media types, format registries, or internal\nformat classes while resolving OWL ambiguous type warnings.\n\nClasses can narrow to specific format enums/classes via slot_usage.\n", - "items": { - "$ref": "#/$defs/SubtitleFormatEnum" - }, - "type": "array" - }, - "has_or_had_identifier": { - "items": { - "$ref": "#/$defs/TrackIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_language": { - "description": "Language information for an entity.\n\n**Use Cases**:\n1. **Language Proficiency**: When tracking language skills (e.g., person profiles)\n - Use LanguageProficiency class with language_name, code, and level\n2. **Language-Tagged Text**: When storing multilingual text content\n - Use Language class with iso_639_1, language_name, and text_content\n3. **Content Language**: Language of the resource content (migrated from content_language)\n - Use Language class\n\n**Migration Support**:\nThis slot replaces language-specific text slots (fr, de, en, nl) and content_language\nwith a unified pattern per slot_fixes.yaml revisions:\n- `content_language` \u2192 has_or_had_language with Language\n- `fr` (French text) \u2192 has_or_had_language with Language(iso_639_1=\"fr\")\n- `de` (German text) \u2192 has_or_had_language with Language(iso_639_1=\"de\")\n- `en` (English text) \u2192 has_or_had_language with Language(iso_639_1=\"en\")\n- `nl` (Dutch text) \u2192 has_or_had_language with Language(iso_639_1=\"nl\")\n\n**Example - Language-Tagged Text**:\n```yaml\nhas_or_had_language:\n - iso_639_1: \"fr\"\n language_name: \"French\"\n text_content: \"archives universitaires\"\n - iso_639_1: \"en\"\n language_name: \"English\"\n text_content: \"university archives\"\n```\n\n**Example - Language Proficiency**:\n```yaml\nhas_or_had_language:\n - language_name: \"French\"\n language_code: \"fr\"\n proficiency_level: \"fluent\"\n```\n", - "items": { - "anyOf": [ - { - "$ref": "#/$defs/LanguageProficiency" - }, - { - "$ref": "#/$defs/Language" - } - ], - "type": "string" - }, - "type": "array" - }, - "has_or_had_mean": { - "anyOf": [ - { - "$ref": "#/$defs/MeanValue" - }, - { - "type": "null" - } - ], - "description": "The mean value." - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_segment": { - "description": "Structured breakdown of transcript into time-coded segments.\n\nOptional for VideoTranscript (plain transcripts may not have times).\nRequired for VideoSubtitle (subtitles must have time codes).\n\nEach segment is a VideoTimeSegment with:\n- start_seconds / end_seconds: Time boundaries\n- segment_text: Text for this segment\n- confidence: Per-segment accuracy score\n- speaker_id / speaker_label: Speaker identification\n\nUse segments for:\n- Video player synchronization\n- Jump-to-time navigation\n- Per-segment quality analysis\n- Speaker-separated views\n", - "items": { - "$ref": "#/$defs/VideoTimeSegment" - }, - "type": "array" - }, - "has_or_had_unit": { - "description": "Unit of measurement associated with a quantity or measurement value.\nGeneric slot for linking measurements to their units. Range should be narrowed to MeasureUnit class in slot_usage.", - "type": [ - "string", - "null" - ] - }, - "includes_music_description": { - "description": "Whether subtitle includes music/song descriptions.\n\nExamples:\n- \u266a upbeat jazz playing \u266a\n- [classical music]\n- \u266a singing in Dutch \u266a\n- [somber orchestral music]\n\nImportant for heritage content with significant musical elements.\n", - "type": [ - "boolean", - "null" - ] - }, - "includes_sound_description": { - "description": "Whether subtitle includes non-speech sound descriptions.\n\nExamples of sound descriptions:\n- [door slams]\n- [phone ringing]\n- [thunder]\n- [footsteps approaching]\n\nCharacteristic of CC and SDH tracks.\n", - "type": [ - "boolean", - "null" - ] - }, - "includes_speaker": { - "description": "Whether the transcript includes speaker identification.\n\n- **true**: Speaker labels/diarization available\n- **false**: Single speaker or no identification (default)\n\nWhen true, check `speaker_count` for number of distinct speakers.\n", - "type": [ - "boolean", - "null" - ] - }, - "includes_speaker_identification": { - "description": "Whether subtitle identifies speakers.\n\nSpeaker identification patterns:\n- (John): Hello there.\n- NARRATOR: Welcome to the museum.\n- [Curator] This painting dates from 1642.\n\nDifferent from transcript speaker_id which is per-segment;\nthis indicates whether the TEXT CONTENT includes labels.\n", - "type": [ - "boolean", - "null" - ] - }, - "includes_timestamp": { - "description": "Whether the transcript includes time markers.\n\n- **true**: Timestamps are embedded in full_text or segments have times\n- **false**: No temporal information (default)\n\nIf true, prefer using `segments` for programmatic access.\n", - "type": [ - "boolean", - "null" - ] - }, - "is_closed_caption": { - "description": "Whether this is a closed caption track (CC).\n\nClosed captions differ from subtitles:\n- **CC (true)**: Designed for Deaf/HoH, includes non-speech audio\n- **Subtitles (false)**: Translation of dialogue only\n\nCC typically includes [MUSIC], [APPLAUSE], speaker ID, etc.\n", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_created_through": { - "description": "Event through which an entity was created.", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/GenerationEvent" - }, - "type": "array" - }, - "is_or_was_verified_by": { - "anyOf": [ - { - "$ref": "#/$defs/Verifier" - }, - { - "type": "null" - } - ], - "description": "Links an entity to the agent that verified it.\n\n**USAGE**:\nUsed for:\n- Data verification attribution\n- Quality assurance tracking\n- Approval records\n" - }, - "is_sdh": { - "description": "Whether these are Subtitles for Deaf/Hard-of-Hearing (SDH).\n\nSDH combines subtitle translation with CC-style annotations:\n- Dialogue translation (like subtitles)\n- Sound descriptions (like CC)\n- Speaker identification\n\nTypically marked \"[SDH]\" on streaming platforms.\n", - "type": [ - "boolean", - "null" - ] - }, - "is_verified": { - "description": "Whether content has been verified by a human.\n\n- **true**: Human-reviewed and approved\n- **false**: Not yet verified (default for AI-generated)\n\nCritical for quality assurance in heritage contexts.\n", - "type": [ - "boolean", - "null" - ] - }, - "model_provider": { - "description": "Provider or vendor of the generation model/service.\n\nSchema.org: provider for service provider.\n", - "type": [ - "string", - "null" - ] - }, - "model_version": { - "description": "Version of the model or tool used for generation.\n\nSchema.org: softwareVersion for version tracking.\n\nCritical for reproducibility and quality assessment.\n", - "type": [ - "string", - "null" - ] - }, - "overall_confidence": { - "description": "Overall confidence score for the generated content.\n\nRange: 0.0 (no confidence) to 1.0 (complete certainty)\n\nAggregated from per-segment confidence scores or\nprovided by the generation model.\n\n**Thresholds** (suggested):\n- > 0.9: High quality, production-ready\n- 0.75-0.9: Good, may have minor errors\n- 0.6-0.75: Usable, should be reviewed\n- < 0.6: Low quality, needs significant correction\n\n**Ontology mapping**: Uses sosa:hasSimpleResult because this is an aggregated observation result from AI/ML models acting as sensors.\n", - "maximum": 1.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "paragraph_count": { - "description": "Number of paragraphs in the transcript.\n\nOnly meaningful when transcript_format = PARAGRAPHED or STRUCTURED.\n\nUseful for content sizing and readability assessment.\n", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "primary_speaker": { - "description": "Identifier or name of the main/dominant speaker.\n\nFor interviews: the interviewee (not interviewer)\nFor presentations: the presenter\nFor tours: the guide\n\nMay be generic (\"Narrator\") or specific (\"Dr. Taco Dibbits\").\n", - "type": [ - "string", - "null" - ] - }, - "processing_duration_seconds": { - "description": "Time taken to generate this content, in seconds.\n\nUseful for performance monitoring and cost estimation.\n", - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "raw_subtitle_content": { - "description": "Original subtitle file content as raw string.\n\nPreserves the complete subtitle file in its native format.\nUseful for:\n- Format conversion\n- Re-parsing with different tools\n- Archive preservation\n\nMay be large - consider storing separately for large files.\n", - "type": [ - "string", - "null" - ] - }, - "sentence_count": { - "description": "Approximate number of sentences in the transcript.\n\nDerived from punctuation analysis or NLP sentence segmentation.\n\nUseful for content analysis and readability metrics.\n", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "source_language_auto_detected": { - "description": "Whether the content_language was auto-detected by ASR.\n\n- **true**: Language detected by ASR model\n- **false**: Language was specified/known (default)\n\nUseful for quality assessment - auto-detection may be wrong.\n", - "type": [ - "boolean", - "null" - ] - }, - "source_video": { - "description": "Reference to the VideoPost from which this content was derived.\n\nPROV-O: wasDerivedFrom links derived content to source.\n\nLinks to the video's unique identifier (post_id).\n", - "type": "string" - }, - "source_video_url": { - "description": "URL of the source video.\n\nConvenience field for direct video access.\nDerived from source_video but stored for quick reference.\n", - "type": [ - "string", - "null" - ] - }, - "speaker_count": { - "description": "Number of distinct speakers identified in the transcript.\n\nOnly meaningful when includes_speakers = true.\n\n0 = Unknown/not analyzed\n1 = Single speaker (monologue)\n2+ = Multi-speaker (dialogue, panel, interview)\n", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_format", - "contains_or_contained", - "has_or_had_segment", - "has_or_had_language", - "is_or_was_generated_by", - "source_video" - ], - "title": "VideoSubtitle", - "type": "object" - }, - "VideoTimeSegment": { - "additionalProperties": false, - "description": "A temporal segment within a video, defined by start and end times.\n\n**DEFINITION**:\n\nVideoTimeSegment represents a bounded temporal portion of video content.\nIt is the foundational unit for time-coded content including:\n- Subtitle/caption entries (text displayed at specific times)\n- Annotation segments (detected scenes, objects, faces)\n- Chapter markers (user-defined content sections)\n\n**DUAL TIME REPRESENTATION**:\n\nTimes are stored in two formats for different use cases:\n\n| Format | Example | Use Case |\n|--------|---------|----------|\n| ISO 8601 duration | PT0M30S | Human-readable, serialization |\n| Seconds (float) | 30.0 | Computation, synchronization |\n\nBoth representations MUST be kept in sync. The seconds format is\nprimary for computation; ISO 8601 is derived for display/storage.\n\n**MEDIA FRAGMENTS URI (W3C)**:\n\nVideoTimeSegment aligns with W3C Media Fragments URI 1.0 specification\nfor addressing temporal fragments of video:\n\n```\nhttps://example.com/video.mp4#t=30,35\n```\n\nThe `start_seconds` and `end_seconds` map directly to the `t=` parameter.\n\n**WEB ANNOTATION COMPATIBILITY**:\n\nWhen used as an annotation target selector:\n- Maps to `oa:FragmentSelector` with `conformsTo` Media Fragments\n- Enables interoperability with W3C Web Annotation Data Model\n\n**CIDOC-CRM E52_Time-Span**:\n\nIn cultural heritage documentation:\n- E52_Time-Span is the extent of a time-span\n- Used for temporal properties of cultural objects\n- VideoTimeSegment extends this to media-specific temporal segments\n\n**CONFIDENCE SCORING**:\n\nFor segments generated by ASR (speech recognition) or CV (computer vision):\n- `confidence`: 0.0-1.0 score for segment accuracy\n- Enables filtering by quality threshold\n- Critical for AI-generated transcripts and annotations\n\n**HERITAGE USE CASES**:\n\n| Use Case | Example | Start | End |\n|----------|---------|-------|-----|\n| Subtitle entry | \"Welcome to the museum\" | 0:30 | 0:35 |\n| Scene annotation | \"Exhibition hall panorama\" | 1:00 | 1:30 |\n| Chapter marker | \"Introduction\" | 0:00 | 2:00 |\n| Object detection | \"Painting: Night Watch\" | 3:15 | 3:20 |\n| Speaker change | \"Curator speaking\" | 5:00 | 7:30 |", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_time_interval": { - "$ref": "#/$defs/TimeInterval", - "description": "Links to a time interval or duration associated with this entity.\n**TEMPORAL SEMANTICS** (RiC-O style): The \"has_or_had\" naming indicates that time interval associations can change: - Update frequencies may be revised - Approval times may change with policy updates - Reporting periods may vary - Durations of media content\n**USE CASES**: - Update frequency: How often data is refreshed - Approval time: Expected processing duration - Reporting period: Time period for metrics/revenue - Media duration: Length of video/audio content" - }, - "is_or_was_generated_by": { - "description": "Generation event containing confidence score for ASR/CV segment accuracy. MIGRATED 2026-01-19: Replaces confidence slot with structured pattern.", - "items": { - "$ref": "#/$defs/GenerationEvent" - }, - "type": [ - "array", - "null" - ] - }, - "segment_index": { - "description": "Sequential index of this segment within the parent content.\n\nZero-based index for ordering segments:\n- Subtitle: Order in which captions appear\n- Annotation: Detection sequence\n\nEnables reconstruction of segment order when times overlap\nor for stable sorting.\n", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "segment_text": { - "description": "Text content for this segment.\n\nWeb Annotation: bodyValue for textual content.\n\n**Usage by content type**:\n- Subtitles: Displayed caption text\n- Transcripts: Spoken words during this segment\n- Annotations: Description of detected content\n- Chapters: Chapter title/description\n", - "type": [ - "string", - "null" - ] - }, - "speaker_id": { - "description": "Identifier for the speaker during this segment. Mapped to dcterms:identifier as the standard property for resource identifiers.\n\nFor transcripts with speaker diarization:\n- Links to identified speaker (e.g., \"SPEAKER_01\")\n- May be resolved to actual person identity\n\nEnables multi-speaker transcript navigation.\n", - "type": [ - "string", - "null" - ] - }, - "speaker_label": { - "description": "Human-readable label for the speaker.\nMaps to rdfs:label as a display name for the speaker during this segment. Distinguished from speaker_id which is a machine identifier.\n- May be generic (\"Narrator\", \"Interviewer\") - May be specific (\"Dr. Taco Dibbits, Museum Director\")", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "start_seconds": { - "description": "Start time of the segment in seconds. Defined as attribute to avoid dependency on archived start_seconds slot. ", - "minimum": 0.0, - "type": "number" - }, - "start_time": { - "description": "Start time of the segment in ISO 8601 duration format (e.g. PT30S). Defined as attribute to avoid dependency on archived start_time slot. ", - "pattern": "^PT(\\d+H)?(\\d+M)?(\\d+(\\.\\d+)?S)?$", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "has_or_had_time_interval", - "start_seconds" - ], - "title": "VideoTimeSegment", - "type": "object" - }, - "VideoTranscript": { - "additionalProperties": false, - "description": "Full text transcription of video audio content.\n\n**DEFINITION**:\n\nA VideoTranscript is the complete textual representation of all spoken\ncontent in a video. It extends VideoTextContent with transcript-specific\nproperties and inherits all provenance tracking capabilities.\n\n**RELATIONSHIP TO VideoSubtitle**:\n\nVideoSubtitle is a subclass of VideoTranscript because:\n1. A subtitle file contains everything a transcript needs PLUS time codes\n2. You can derive a plain transcript from subtitles by stripping times\n3. This inheritance allows polymorphic handling of text content\n\n```\nVideoTranscript VideoSubtitle (is_a VideoTranscript)\n\u251c\u2500\u2500 full_text \u251c\u2500\u2500 full_text (inherited)\n\u251c\u2500\u2500 segments[] \u251c\u2500\u2500 segments[] (required, with times)\n\u2514\u2500\u2500 (optional times) \u2514\u2500\u2500 subtitle_format (SRT, VTT, etc.)\n```\n\n**SCHEMA.ORG ALIGNMENT**:\n\nMaps to `schema:transcript` property:\n> \"If this MediaObject is an AudioObject or VideoObject, \n> the transcript of that object.\"\n\n**CIDOC-CRM E33_Linguistic_Object**:\n\nE33 is the class comprising:\n> \"identifiable expressions in natural language or code\"\n\nA transcript is a linguistic object derived from the audio track of\na video (which is itself an E73_Information_Object).\n\n**TRANSCRIPT FORMATS**:\n\n| Format | Description | Use Case |\n|--------|-------------|----------|\n| PLAIN_TEXT | Continuous text, no structure | Simple search indexing |\n| PARAGRAPHED | Text broken into paragraphs | Human reading |\n| STRUCTURED | Segments with speaker labels | Research, analysis |\n| TIMESTAMPED | Segments with time markers | Navigation, subtitling |\n\n**GENERATION METHODS** (inherited from VideoTextContent):\n\n| Method | Typical Use | Quality |\n|--------|-------------|---------|\n| ASR_AUTOMATIC | Whisper, Google STT | 0.80-0.95 |\n| MANUAL_TRANSCRIPTION | Human transcriber | 0.98-1.0 |\n| PLATFORM_PROVIDED | YouTube auto-captions | 0.75-0.90 |\n| HYBRID | ASR + human correction | 0.95-1.0 |\n\n**HERITAGE INSTITUTION CONTEXT**:\n\nTranscripts are critical for heritage video collections:\n\n1. **Discovery**: Full-text search over video content\n2. **Accessibility**: Deaf/HoH access to spoken content\n3. **Preservation**: Text outlasts video format obsolescence\n4. **Research**: Corpus analysis, keyword extraction\n5. **Translation**: Base for multilingual access\n6. **SEO**: Search engine indexing of video content\n\n**STRUCTURED SEGMENTS**:\n\nWhen `segments` is populated, the transcript has structural breakdown:\n\n```yaml\nsegments:\n - segment_index: 0\n start_seconds: 0.0\n end_seconds: 5.5\n segment_text: \"Welcome to the Rijksmuseum.\"\n speaker_label: \"Narrator\"\n confidence: 0.94\n - segment_index: 1\n start_seconds: 5.5\n end_seconds: 12.3\n segment_text: \"Today we'll explore the Night Watch gallery.\"\n speaker_label: \"Narrator\"\n confidence: 0.91\n```\n\n**PROVENANCE** (inherited from VideoTextContent):\n\nAll transcripts include:\n- `source_video`: Which video was transcribed\n- `generated_by`: Tool/person that created transcript\n- `generation_method`: ASR_AUTOMATIC, MANUAL_TRANSCRIPTION, etc.\n- `generation_timestamp`: When transcript was created\n- `overall_confidence`: Aggregate quality score\n- `is_verified`: Whether human-reviewed", - "properties": { - "contains_or_contained": { - "description": "Generic containment relationship (temporal). Indicates that this entity contains or has contained the referenced entity.", - "items": { - "type": "string" - }, - "type": "array" - }, - "content_title": { - "description": "Title or label for this text content.\nOntology mapping: dcterms:title is the Dublin Core property for the name given to a resource.\nExamples: - \"Rijksmuseum Tour - Full Transcript\" - \"Dutch Subtitles - Auto-generated\" - \"Scene Annotations - CV Model v2.1\"", - "type": [ - "string", - "null" - ] - }, - "has_or_had_format": { - "description": "The format or file type of a resource or service response.\n\n**USAGE**:\nUsed for:\n- Response formats from APIs (JSON, XML, RDF)\n- File formats for documents (PDF, DOCX, TXT)\n- Media formats (JPEG, MP3, MP4)\n- Transcript formats (VTT, SRT, plain text)\n- Subtitle formats (WebVTT, SRT, etc.)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property\n- **Close**: `dct:format` - Dublin Core format\n- **Close**: `schema:encodingFormat` - Schema.org encoding format\n\n**Range**: `uriorcurie` (Rule 54)\nBroadened range to accept URI/CURIE references to format specifications.\nThis allows linking to IANA media types, format registries, or internal\nformat classes while resolving OWL ambiguous type warnings.\n\nClasses can narrow to specific format enums/classes via slot_usage.\n", - "items": { - "$ref": "#/$defs/TranscriptFormatEnum" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_language": { - "description": "Language information for an entity.\n\n**Use Cases**:\n1. **Language Proficiency**: When tracking language skills (e.g., person profiles)\n - Use LanguageProficiency class with language_name, code, and level\n2. **Language-Tagged Text**: When storing multilingual text content\n - Use Language class with iso_639_1, language_name, and text_content\n3. **Content Language**: Language of the resource content (migrated from content_language)\n - Use Language class\n\n**Migration Support**:\nThis slot replaces language-specific text slots (fr, de, en, nl) and content_language\nwith a unified pattern per slot_fixes.yaml revisions:\n- `content_language` \u2192 has_or_had_language with Language\n- `fr` (French text) \u2192 has_or_had_language with Language(iso_639_1=\"fr\")\n- `de` (German text) \u2192 has_or_had_language with Language(iso_639_1=\"de\")\n- `en` (English text) \u2192 has_or_had_language with Language(iso_639_1=\"en\")\n- `nl` (Dutch text) \u2192 has_or_had_language with Language(iso_639_1=\"nl\")\n\n**Example - Language-Tagged Text**:\n```yaml\nhas_or_had_language:\n - iso_639_1: \"fr\"\n language_name: \"French\"\n text_content: \"archives universitaires\"\n - iso_639_1: \"en\"\n language_name: \"English\"\n text_content: \"university archives\"\n```\n\n**Example - Language Proficiency**:\n```yaml\nhas_or_had_language:\n - language_name: \"French\"\n language_code: \"fr\"\n proficiency_level: \"fluent\"\n```\n", - "items": { - "anyOf": [ - { - "$ref": "#/$defs/LanguageProficiency" - }, - { - "$ref": "#/$defs/Language" - } - ], - "type": "string" - }, - "type": "array" - }, - "has_or_had_quantity": { - "items": { - "type": "integer" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_segment": { - "description": "Structured breakdown of transcript into time-coded segments.\n\nOptional for VideoTranscript (plain transcripts may not have times).\nRequired for VideoSubtitle (subtitles must have time codes).\n\nEach segment is a VideoTimeSegment with:\n- start_seconds / end_seconds: Time boundaries\n- segment_text: Text for this segment\n- confidence: Per-segment accuracy score\n- speaker_id / speaker_label: Speaker identification\n\nUse segments for:\n- Video player synchronization\n- Jump-to-time navigation\n- Per-segment quality analysis\n- Speaker-separated views\n", - "items": { - "$ref": "#/$defs/VideoTimeSegment" - }, - "type": [ - "array", - "null" - ] - }, - "includes_speaker": { - "description": "Whether the transcript includes speaker identification.\n\n- **true**: Speaker labels/diarization available\n- **false**: Single speaker or no identification (default)\n\nWhen true, check `speaker_count` for number of distinct speakers.\n", - "type": [ - "boolean", - "null" - ] - }, - "includes_timestamp": { - "description": "Whether the transcript includes time markers.\n\n- **true**: Timestamps are embedded in full_text or segments have times\n- **false**: No temporal information (default)\n\nIf true, prefer using `segments` for programmatic access.\n", - "type": [ - "boolean", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/GenerationEvent" - }, - "type": "array" - }, - "is_or_was_verified_by": { - "anyOf": [ - { - "$ref": "#/$defs/Verifier" - }, - { - "type": "null" - } - ], - "description": "Links an entity to the agent that verified it.\n\n**USAGE**:\nUsed for:\n- Data verification attribution\n- Quality assurance tracking\n- Approval records\n" - }, - "is_verified": { - "description": "Whether content has been verified by a human.\n\n- **true**: Human-reviewed and approved\n- **false**: Not yet verified (default for AI-generated)\n\nCritical for quality assurance in heritage contexts.\n", - "type": [ - "boolean", - "null" - ] - }, - "model_provider": { - "description": "Provider or vendor of the generation model/service.\n\nSchema.org: provider for service provider.\n", - "type": [ - "string", - "null" - ] - }, - "model_version": { - "description": "Version of the model or tool used for generation.\n\nSchema.org: softwareVersion for version tracking.\n\nCritical for reproducibility and quality assessment.\n", - "type": [ - "string", - "null" - ] - }, - "overall_confidence": { - "description": "Overall confidence score for the generated content.\n\nRange: 0.0 (no confidence) to 1.0 (complete certainty)\n\nAggregated from per-segment confidence scores or\nprovided by the generation model.\n\n**Thresholds** (suggested):\n- > 0.9: High quality, production-ready\n- 0.75-0.9: Good, may have minor errors\n- 0.6-0.75: Usable, should be reviewed\n- < 0.6: Low quality, needs significant correction\n\n**Ontology mapping**: Uses sosa:hasSimpleResult because this is an aggregated observation result from AI/ML models acting as sensors.\n", - "maximum": 1.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "paragraph_count": { - "description": "Number of paragraphs in the transcript.\n\nOnly meaningful when transcript_format = PARAGRAPHED or STRUCTURED.\n\nUseful for content sizing and readability assessment.\n", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "primary_speaker": { - "description": "Identifier or name of the main/dominant speaker.\n\nFor interviews: the interviewee (not interviewer)\nFor presentations: the presenter\nFor tours: the guide\n\nMay be generic (\"Narrator\") or specific (\"Dr. Taco Dibbits\").\n", - "type": [ - "string", - "null" - ] - }, - "processing_duration_seconds": { - "description": "Time taken to generate this content, in seconds.\n\nUseful for performance monitoring and cost estimation.\n", - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "sentence_count": { - "description": "Approximate number of sentences in the transcript.\n\nDerived from punctuation analysis or NLP sentence segmentation.\n\nUseful for content analysis and readability metrics.\n", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "source_language_auto_detected": { - "description": "Whether the content_language was auto-detected by ASR.\n\n- **true**: Language detected by ASR model\n- **false**: Language was specified/known (default)\n\nUseful for quality assessment - auto-detection may be wrong.\n", - "type": [ - "boolean", - "null" - ] - }, - "source_video": { - "description": "Reference to the VideoPost from which this content was derived.\n\nPROV-O: wasDerivedFrom links derived content to source.\n\nLinks to the video's unique identifier (post_id).\n", - "type": "string" - }, - "source_video_url": { - "description": "URL of the source video.\n\nConvenience field for direct video access.\nDerived from source_video but stored for quick reference.\n", - "type": [ - "string", - "null" - ] - }, - "speaker_count": { - "description": "Number of distinct speakers identified in the transcript.\n\nOnly meaningful when includes_speakers = true.\n\n0 = Unknown/not analyzed\n1 = Single speaker (monologue)\n2+ = Multi-speaker (dialogue, panel, interview)\n", - "minimum": 0, - "type": [ - "integer", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "contains_or_contained", - "has_or_had_language", - "is_or_was_generated_by", - "source_video" - ], - "title": "VideoTranscript", - "type": "object" - }, - "VienneseCoffeeHouse": { - "additionalProperties": false, - "description": "Type of caf\u00e9 specific to Viennese coffee culture.\nUNESCO-recognized intangible cultural heritage of Austria.\nTraditional coffeehouses with historic ambiance and practices.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_label" - ], - "title": "VienneseCoffeeHouse", - "type": "object" - }, - "Vimeo": { - "additionalProperties": false, - "description": "Vimeo channel/profile.\n\n**URL patterns**:\n- https://vimeo.com/{username}\n- https://vimeo.com/channels/{channel_name}\n\n**Features**:\n- High-quality video hosting\n- Password-protected videos\n- Customizable player\n- No ads\n- Professional tools\n\n**Heritage use cases**:\n- High-quality exhibition videos\n- Professional documentary content\n- Password-protected preview content for press\n- Embeddable video for websites", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "VIDEO_FOCUSED", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://vimeo.com/{username}", - "https://vimeo.com/channels/{channel_name}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "Vimeo", - "type": "object" - }, - "VirtualHerbarium": { - "additionalProperties": false, - "description": "Herbarium in a digitized form providing access to botanical specimens.\n\n**PURPOSE**: Provide digital access to herbarium specimens for botanical\nresearch, identification, and education.\n\n**CHARACTERISTICS**:\n- High-resolution specimen images\n- Botanical metadata\n- Taxonomic organization\n- Georeferencing data\n\n**EXAMPLES**: JSTOR Global Plants, institutional virtual herbaria", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q1449266" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "VIRTUAL_HERITAGE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "VirtualHerbarium", - "type": "object" - }, - "VirtualLibrary": { - "additionalProperties": false, - "description": "Special form of web portals to search for information in library-like\nfashion.\n\n**PURPOSE**: Provide library-style organization and access to digital\nresources without physical holdings.\n\n**CHARACTERISTICS**:\n- Library-style organization\n- Subject-based navigation\n- Curated resource collections\n- Reference service integration\n\n**EXAMPLES**: WWW Virtual Library, subject guides", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q1224870" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "VIRTUAL_HERITAGE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "VirtualLibrary", - "type": "object" - }, - "VirtualMapLibrary": { - "additionalProperties": false, - "description": "Type of library for virtual maps or cartographic products.\n\n**PURPOSE**: Provide access to digitized historical maps, atlases,\nand other cartographic materials.\n\n**CHARACTERISTICS**:\n- High-resolution map images\n- Georeferencing\n- Historical cartographic metadata\n- Comparison tools\n\n**EXAMPLES**: David Rumsey Map Collection, Old Maps Online", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q5995078" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "VIRTUAL_HERITAGE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "VirtualMapLibrary", - "type": "object" - }, - "VirtualMuseum": { - "additionalProperties": false, - "description": "Generic virtual museum providing online exhibition and collection access.\n\n**PURPOSE**: Recreate museum experiences in digital form with virtual\nexhibitions, collection browsing, and educational content.\n\n**CHARACTERISTICS**:\n- Virtual exhibitions\n- High-resolution images\n- Educational content\n- Interactive features\n\n**EXAMPLES**: Google Arts & Culture, Smithsonian Open Access, museum virtual tours", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q1225034" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "VIRTUAL_HERITAGE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "VirtualMuseum", - "type": "object" - }, - "VirtualSpecialistLibrary": { - "additionalProperties": false, - "description": "Virtual specialist library focused on a particular subject domain.\n\n**PURPOSE**: Provide comprehensive digital resources for a specific\nacademic or professional field.\n\n**CHARACTERISTICS**:\n- Subject specialization\n- Expert curation\n- Deep domain coverage\n- Research tool integration\n\n**EXAMPLES**: German Virtuelle Fachbibliotheken, subject portals", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q2527949" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "VIRTUAL_HERITAGE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "VirtualSpecialistLibrary", - "type": "object" - }, - "VirtualTour": { - "additionalProperties": false, - "description": "360-degree tours, VR experiences, immersive gallery views.\nInteractive spatial exploration of physical spaces.\n\n**PURPOSE**: Enable remote exploration of physical heritage spaces\nthrough immersive digital experiences.\n\n**CHARACTERISTICS**:\n- 360-degree imagery\n- Interactive navigation\n- Hotspot annotations\n- VR compatibility\n\n**EXAMPLES**: Google Arts & Culture Street View, museum virtual tours", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "INTERACTIVE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "VirtualTour", - "type": "object" - }, - "VirtualTourPresence": { - "additionalProperties": false, - "description": "360-degree or immersive virtual tour experience.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "VirtualTourPresence", - "type": "object" - }, - "VisitingScholar": { - "additionalProperties": false, - "description": "Information about visiting scholar or researcher programs accepted by an institution.\n**CONTEXT**: Many heritage institutions accept visiting researchers who need access to collections, archives, or special materials for academic research.\n**PROGRAM TYPES**: - Short-term research visits - Fellowship programs - Residencies - Affiliated researcher positions\nUsed with `accepts_or_accepted` slot to indicate researcher access programs.", - "properties": { - "application_process": { - "description": "Description of the application process.", - "type": [ - "string", - "null" - ] - }, - "duration": { - "description": "Typical duration of visits (e.g., \"1-4 weeks\", \"3-12 months\").", - "type": [ - "string", - "null" - ] - }, - "eligibility": { - "description": "Eligibility requirements (e.g., \"PhD candidates\", \"University affiliates\").", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "program_type": { - "description": "Type of visiting program (e.g., \"fellowship\", \"residency\", \"short_term_visit\").", - "type": "string" - }, - "stipend_available": { - "description": "Whether financial support/stipend is available.", - "type": [ - "boolean", - "null" - ] - } - }, - "required": [ - "program_type" - ], - "title": "VisitingScholar", - "type": "object" - }, - "VisitorService": { - "additionalProperties": false, - "description": "Public-facing services for visitors (tours, audio guides).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "VisitorService", - "type": "object" - }, - "VisitorServicesFunction": { - "additionalProperties": false, - "description": "Visitor services function: admissions, information desk, accessibility services, group tours, volunteer coordination.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_categorized_as": { - "description": "Links an entity to a category or classification.\n\n**USAGE**:\nUsed for:\n- UNESCO domain classification\n- Subject categorization\n- Thematic classification\n\nNote: slot_uri changed from dct:subject to hc:isOrWasCategorizedAs\nto resolve OWL ambiguous type warning when classes override range\nto class types.\n\n**Range**: `Any` (2026-01-16) - Allows uriorcurie values and class instances.\n", - "items": { - "$ref": "#/$defs/FunctionCategory" - }, - "type": "array" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "is_or_was_categorized_as", - "has_or_had_label" - ], - "title": "VisitorServicesFunction", - "type": "object" - }, - "VisitorToMemberConversion": { - "additionalProperties": false, - "description": "Conversion rate measuring visitors who become members/supporters.\n**INDUSTRY BENCHMARKS**: - Average: 1-3% - Strong programs: 5-8%\n**CALCULATION**: (New Members / Total Visitors) \u00d7 100", - "properties": { - "conversion_source_population": { - "description": "The group being measured (denominator) in a conversion rate calculation.\n\nThis identifies the total population from which conversions are measured.\n", - "type": [ - "string", - "null" - ] - }, - "conversion_target_action": { - "description": "The action being measured (numerator) in a conversion rate calculation.\n\nThis identifies what action constitutes a \"conversion\" from the source population.\n", - "type": [ - "string", - "null" - ] - }, - "conversion_type_label": { - "description": "Human-readable label for this conversion rate type.\n\nExamples: \"Visitor to Purchase\", \"Email to Click\", \"Online to Physical Visit\"\n", - "type": "string" - }, - "industry_benchmark_high": { - "description": "High end of the industry benchmark range for this metric.\n\nExpressed as a decimal (e.g., 0.40 = 40%).\nUsed with industry_benchmark_low to define the typical performance range.\n", - "type": [ - "number", - "null" - ] - }, - "industry_benchmark_low": { - "description": "Low end of the industry benchmark range for this metric.\n\nExpressed as a decimal (e.g., 0.15 = 15%).\nUsed with industry_benchmark_high to define the typical performance range.\n", - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "conversion_type_label" - ], - "title": "VisitorToMemberConversion", - "type": "object" - }, - "VisitorToPurchaseConversion": { - "additionalProperties": false, - "description": "Conversion rate measuring museum/archive visitors who make a gift shop purchase.\n**INDUSTRY BENCHMARKS**: - Average: 15-25% - High performers: 30-40% - Blockbuster exhibitions: 40-60%\n**CALCULATION**: (Purchasers / Total Visitors) \u00d7 100", - "properties": { - "conversion_source_population": { - "description": "The group being measured (denominator) in a conversion rate calculation.\n\nThis identifies the total population from which conversions are measured.\n", - "type": [ - "string", - "null" - ] - }, - "conversion_target_action": { - "description": "The action being measured (numerator) in a conversion rate calculation.\n\nThis identifies what action constitutes a \"conversion\" from the source population.\n", - "type": [ - "string", - "null" - ] - }, - "conversion_type_label": { - "description": "Human-readable label for this conversion rate type.\n\nExamples: \"Visitor to Purchase\", \"Email to Click\", \"Online to Physical Visit\"\n", - "type": "string" - }, - "industry_benchmark_high": { - "description": "High end of the industry benchmark range for this metric.\n\nExpressed as a decimal (e.g., 0.40 = 40%).\nUsed with industry_benchmark_low to define the typical performance range.\n", - "type": [ - "number", - "null" - ] - }, - "industry_benchmark_low": { - "description": "Low end of the industry benchmark range for this metric.\n\nExpressed as a decimal (e.g., 0.15 = 15%).\nUsed with industry_benchmark_high to define the typical performance range.\n", - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "conversion_type_label" - ], - "title": "VisitorToPurchaseConversion", - "type": "object" - }, - "VisualContent": { - "additionalProperties": false, - "description": "Visual information including images and graphics.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "VISUAL", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Visual Content", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "VisualContent", - "type": "object" - }, - "VisualImageCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Iconographic materials.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "IconographicArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by IconographicArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "VisualImageCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "VisualImageCollection", - "type": "object" - }, - "VolumeCapacity": { - "additionalProperties": false, - "description": "Cubic volume capacity measurement (e.g., cubic meters).\nUsed for storage depots, vaults, and enclosed spaces.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "VolumeCapacity", - "type": "object" - }, - "Volunteer": { - "additionalProperties": false, - "description": "Volunteer providing unpaid assistance to the institution.\n\n**Official Title vs De Facto Work**:\nVolunteers often take on significant responsibilities including\ntours, research, digitization, event support, and administration.\n\n**Common Variants**:\n- Docent (volunteer guide)\n- Museum Volunteer\n- Archive Volunteer\n- Friend of the Museum\n\n**Typical Domains**: All heritage institutions\n\n**Typical Responsibilities**:\n- Guided tours (as docent)\n- Research assistance\n- Data entry and digitization\n- Event support\n- Visitor services", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Volunteer", - "type": "object" - }, - "WKT": { - "additionalProperties": false, - "description": "A WKT literal wrapper.", - "properties": { - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_value": { - "description": "The value associated with an assertion, claim, or measurement.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "WKT", - "type": "object" - }, - "Waiter": { - "additionalProperties": false, - "description": "Waiter providing food service in museum caf\u00e9s or events.\n\n**Official Title vs De Facto Work**:\nIn heritage settings, may also provide visitor information\nand represent the institution's hospitality.\n\n**Common Variants**:\n- Server\n- Food Service Staff\n- Caf\u00e9 Staff\n\n**Typical Domains**: Heritage institutions with food service\n\n**Typical Responsibilities**:\n- Table service\n- Order taking\n- Food delivery\n- Customer service\n- Caf\u00e9 maintenance", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_responsibility": { - "description": "A responsibility or role associated with an entity.\n\n**USAGE**:\nUsed for:\n- Organizational responsibilities\n- Role assignments\n- Functional duties\n", - "items": { - "$ref": "#/$defs/Responsibility" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "includes_or_included": { - "description": "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship", - "items": { - "$ref": "#/$defs/VariantType" - }, - "type": [ - "array", - "null" - ] - }, - "is_deceased": { - "anyOf": [ - { - "$ref": "#/$defs/DeceasedStatus" - }, - { - "type": "null" - } - ], - "description": "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - }, - "martyred": { - "description": "Boolean flag indicating whether this staff member was martyred (killed as a result\nof conflict, persecution, or targeted violence against heritage institutions).\n\n**IMPORTANT DISTINCTION FROM deceased**:\n- `deceased`: Natural death or death from any cause\n- `martyred`: Death specifically due to conflict, persecution, or violence\n\nA person can be both `deceased: true` and `martyred: true` if they died as a martyr.\nA person with `martyred: true` implies `deceased: true`.\n\n**Historical Context**:\nThis slot is particularly relevant for documenting:\n- Heritage workers killed during armed conflicts\n- Information professionals targeted for their work\n- Cultural heritage workers killed while protecting collections\n- Librarians, archivists, and museum staff killed in attacks on institutions\n\n**Example - Gaza 2023-2024**:\nLibrarians with Palestine documented heritage workers killed during Israeli\nmilitary operations in Gaza, including librarians, archivists, and journalists.\n\n**Wikidata Alignment**:\nUses P1196 (manner of death) concept for semantic alignment.\nMartyrdom is a specific manner of death requiring documentation.\n\n**Provenance**:\nWhen setting `martyred: true`, also provide:\n- `date_of_death` (TimeSpan) with temporal bounds\n- `circumstances_of_death` (string) describing the event\n- Source documentation for verification\n", - "type": [ - "boolean", - "null" - ] - }, - "requires_qualification": { - "description": "Requires Qualification for heritage custodian entities.", - "type": [ - "boolean", - "null" - ] - }, - "role_category": { - "description": "High-level category for grouping related roles.\nValues: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION,\nGOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL\n", - "type": [ - "string", - "null" - ] - }, - "role_id": { - "description": "Role Id for heritage custodian entities.", - "type": "string" - }, - "role_name": { - "description": "Official English name for this role type.\nThis is the canonical name used for cross-institutional comparison.\n", - "type": "string" - }, - "role_name_local": { - "description": "Official name in the local language of the institution.\nMay differ from English canonical name.\nExamples: \"Conservator\" (EN) = \"Restaurator\" (NL) = \"Restaurateur\" (FR)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "role_id", - "role_name" - ], - "title": "Waiter", - "type": "object" - }, - "WarAndConflictTopic": { - "additionalProperties": false, - "description": "Topic related to war, military, and conflict.\n\nIncludes: World War II, resistance, occupation,\nmilitary records, veterans.", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/TopicType" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_hyponym": { - "description": "Narrower term or instance.", - "items": { - "$ref": "#/$defs/TopicType" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "WarAndConflictTopic", - "type": "object" - }, - "Warehouse": { - "additionalProperties": false, - "description": "General warehouse or logistics facility for heritage custodian operations.\n\n**DEFINITION**:\n\nA Warehouse is a general-purpose storage and logistics facility used by\nheritage custodians for non-collection materials such as exhibition\nequipment, supplies, furniture, and operational materials. Distinguished\nfrom the Storage class which is specifically for climate-controlled\ncollection storage.\n\n**GETTY AAT ALIGNMENT**:\n\n`aat:300007775` (warehouses) - \"Buildings or sections of buildings used\nfor storage of goods or materials.\"\n\n**CRITICAL DISTINCTION FROM Storage**:\n\n| Property | Storage | Warehouse |\n|----------|---------|-----------|\n| **Contents** | Collection materials | Non-collection items |\n| **Climate** | Controlled (T/RH) | Basic (may not be controlled) |\n| **Security** | High (valuable items) | Standard |\n| **Staff access** | Collections staff | Operations/facilities staff |\n| **Purpose** | Preservation | Logistics/operations |\n\n**TYPICAL WAREHOUSE CONTENTS**:\n\n- **Exhibition equipment**: Display cases, lighting, pedestals\n- **Packing materials**: Crates, foam, tissue, boxes\n- **Furniture**: Office furniture, event furniture\n- **Supplies**: Cleaning supplies, office supplies\n- **Signage**: Exhibition signage, wayfinding signs\n- **Technical equipment**: AV equipment, tools\n- **Archive boxes**: Empty/unused archival housing\n\n**USE CASES**:\n\n1. **Exhibition Equipment Warehouse**:\n ```yaml\n Warehouse:\n warehouse_id: \"https://nde.nl/ontology/hc/aux/rm-logistics-warehouse\"\n warehouse_name: \"Rijksmuseum Logistics Warehouse\"\n warehouse_type: EXHIBITION_EQUIPMENT\n contents_description: \"Exhibition cases, lighting rigs, pedestals, crates\"\n ```\n\n2. **General Supplies Warehouse**:\n ```yaml\n Warehouse:\n warehouse_name: \"KB Operations Warehouse\"\n warehouse_type: GENERAL_SUPPLIES\n contents_description: \"Office furniture, cleaning supplies, archival boxes\"\n ```\n\n**RELATIONSHIP TO Storage CLASS**:\n\n```\nHeritage Custodian Storage Locations:\n\nStorage (class) Warehouse (class)\n\u251c\u2500\u2500 Collection materials \u251c\u2500\u2500 Exhibition equipment\n\u251c\u2500\u2500 Climate-controlled \u251c\u2500\u2500 Packing materials\n\u251c\u2500\u2500 High security \u251c\u2500\u2500 Furniture/supplies\n\u2514\u2500\u2500 Preservation focus \u2514\u2500\u2500 Operations focus\n```\n\nIf in doubt whether items are \"collection\" or \"operational\":\n- Accessioned items with inventory numbers \u2192 Storage\n- Non-accessioned operational items \u2192 Warehouse", - "properties": { - "contents_description": { - "description": "Description of typical contents stored in this warehouse.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_area": { - "description": "Area measurement associated with an entity (site, building, room, etc.).\nGeneric slot for capturing spatial extent measurements. The range should be narrowed to Area class which includes value, unit, and temporal context.", - "items": { - "$ref": "#/$defs/Area" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "type": "string" - }, - "has_or_had_policy": { - "description": "Climate control policy governing this warehouse.\nMIGRATED from climate_control_type per slot_fixes.yaml (Rule 53).\n\n**MIGRATION NOTE**:\nOld simple string values (HEATED, HVAC, etc.) now modeled as:\nClimateControlPolicy \u2192 regulates_or_regulated \u2192 ClimateControl \u2192 has_or_had_type \u2192 ClimateControlType\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_managed_by": { - "anyOf": [ - { - "$ref": "#/$defs/Group" - }, - { - "type": "null" - } - ], - "description": "Links an entity to the group or organization that manages it.\n\n**USAGE**:\nUsed for:\n- Warehouse management groups\n- Team assignments\n- Organizational responsibility\n" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label", - "has_or_had_type" - ], - "title": "Warehouse", - "type": "object" - }, - "WarehouseTypeEnum": { - "description": "Types of warehouse facilities", - "enum": [ - "EXHIBITION_EQUIPMENT", - "PACKING_MATERIALS", - "FURNITURE", - "GENERAL_SUPPLIES", - "TECHNICAL_EQUIPMENT", - "SIGNAGE" - ], - "title": "WarehouseTypeEnum", - "type": "string" - }, - "WaterActivityMeasurement": { - "additionalProperties": false, - "description": "Water activity (aw) measurement type for monitoring moisture content\nin materials, particularly important for organic materials.\nScale: 0 to 1 (dimensionless).", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_measurement_unit": { - "anyOf": [ - { - "$ref": "#/$defs/MeasureUnit" - }, - { - "type": "null" - } - ], - "description": "The unit of measurement for a quantity value. Uses RiC-O temporal naming pattern to indicate the unit may be current or historical (e.g., if measurement standards changed over time).\n**QUDT**: qudt:unit - \"The unit of measure used to express the value of a Quantity.\"\n**USE CASES**: - Visitor counts: unit = \"visitors\", \"visitors/year\" - View counts: unit = \"views\", \"views/day\" - Collection sizes: unit = \"items\", \"objects\", \"linear meters\" - Area: unit = \"m\u00b2\", \"ha\", \"km\u00b2\" - Currency: unit = \"EUR\", \"USD\", \"GBP\"" - }, - "has_or_had_name": { - "const": "Water Activity", - "description": "Name of an entity (person, organization, project, etc.).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - an entity's name may change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `schema:name` - Schema.org name property\n- **Exact**: `foaf:name` - FOAF name\n- **Close**: `rdfs:label` - RDF Schema label\n\n**Usage**:\nFor persons: full name (e.g., \"Jan de Vries\")\nFor organizations: official name (e.g., \"Rijksmuseum Amsterdam\")\nFor projects: project title\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to allow class-valued ranges when needed.\nClasses may narrow via slot_usage to `string` or `Name` class.\n", - "type": "string" - } - }, - "required": [ - "has_or_had_name" - ], - "title": "WaterActivityMeasurement", - "type": "object" - }, - "WaterManagementFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for water management and water board (waterschap) records.\n\n**Definition**:\nRecords documenting water management, flood control, drainage, and water\nquality within a region. In the Netherlands, waterschappen (water boards)\nare among the oldest democratic institutions, with records dating back\nto the medieval period.\n\n**Typical Contents**:\n- Water board governance records (dijkgraaf en heemraden)\n- Dike and polder administration\n- Water level and flood records\n- Land reclamation documentation\n- Water quality and environmental records\n- Infrastructure (sluices, pumping stations, canals)\n- Water rights and regulations\n\n**Dutch Context**:\nWaterschapsarchieven are crucial for understanding Dutch landscape history,\nland reclamation (drooglegging), and the constant struggle against water.\nMany water boards date back centuries with continuous record-keeping.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the fonds organizational principle as defined by rico-rst:Fonds\n(each water board forms a discrete fonds with its own provenance).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the fonds principle. Each water board forms a discrete fonds with distinct provenance.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "WaterManagementFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"municipal records\", \"agricultural records\", \"environmental monitoring\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"water board governance\", \"dike administration\", \"polder records\", \"flood control\", \"land reclamation\", \"water infrastructure\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "WaterManagementFonds", - "type": "object" - }, - "WaterMistSystem": { - "additionalProperties": false, - "description": "Water mist suppression", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "WaterMistSystem", - "type": "object" - }, - "WaxResinLining": { - "additionalProperties": false, - "description": "Lining using wax-resin adhesive mixture.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "WaxResinLining", - "type": "object" - }, - "WeChat": { - "additionalProperties": false, - "description": "WeChat official account.\n\n**Features**:\n- Official accounts (subscription/service)\n- Mini programs\n- Moments\n- Pay integration\n\n**Heritage use cases**:\n- Chinese visitor engagement\n- Ticketing and booking\n- Audio guides\n- E-commerce for museum shop", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "MESSAGING", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "WeChat", - "type": "object" - }, - "WeavingTechnique": { - "additionalProperties": false, - "description": "Interlacing threads to create fabric.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "WeavingTechnique", - "type": "object" - }, - "WebApplicationPresence": { - "additionalProperties": false, - "description": "Interactive web application with user accounts/features.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "WebApplicationPresence", - "type": "object" - }, - "WebArchive": { - "additionalProperties": false, - "description": "A publication type and collection of preserved web pages. Web archives (Webarchive) capture and preserve websites, web pages, and other online content for long-term access and research. They address the challenge of digital preservation by creating archival copies of ephemeral web content that might otherwise be lost.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "platform_type_id", - "platform_type_name", - "has_or_had_label" - ], - "title": "WebArchive", - "type": "object" - }, - "WebArchiveCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Web archive captures.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "DigitalArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by DigitalArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "WebArchiveCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "WebArchiveCollection", - "type": "object" - }, - "WebArchiveRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections of preserved web pages and archived online content.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "WebArchiveRecordSetType", - "type": "object" - }, - "WebCaptureCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Website captures.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "WebArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by WebArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "WebCaptureCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "WebCaptureCollection", - "type": "object" - }, - "WebClaim": { - "additionalProperties": false, - "description": "A single verifiable claim extracted from a web page.\n\n**CORE PRINCIPLE: XPATH OR REMOVE**\n\nEvery claim extracted from a webpage MUST have:\n1. `has_or_had_provenance_path` - XPath object pointing to exact element in archived HTML\n2. `html_file` - path to the archived HTML (Playwright-rendered, NOT WARC)\n\nThe XPath object contains:\n- `expression` - the XPath string\n- `match_score` - quality of match (0.0-1.0)\n- `matched_text` - actual text found (for verification)\n\nClaims without these fields are FABRICATED and must be REMOVED.\n\n**ARCHIVE FORMAT: PLAYWRIGHT-RENDERED HTML**\n\nWe use Playwright (headless browser) to:\n1. Navigate to the target URL\n2. Wait for JavaScript to fully render\n3. Save the complete DOM as an HTML file\n\nThis differs from WARC archives which capture raw HTTP responses.\nPlaywright rendering captures the final DOM state including:\n- JavaScript-rendered content\n- Dynamically loaded elements\n- Client-side state\n\n**WHY NOT CONFIDENCE SCORES?**\n\nConfidence scores like `0.95` are MEANINGLESS because:\n- There is NO methodology defining what these numbers mean\n- They cannot be verified or reproduced\n- They give false impression of rigor\n- They mask the fact that claims may be fabricated\n\nInstead, we use VERIFIABLE provenance:\n- XPath points to exact location\n- Archived HTML can be inspected\n- Match score is computed, not estimated\n\n**EXTRACTION PIPELINE (4 Stages)**\n\nFollowing the GLAM-NER Unified Entity Annotation Convention v1.7.0:\n\n1. **Entity Recognition** (Stage 1)\n - Detect named entities in text\n - Classify by hypernym type (AGT, GRP, TOP, TMP, etc.)\n - Methods: spaCy NER, transformer models, regex patterns\n\n2. **Layout Analysis** (Stage 2)\n - Analyze document structure (headers, paragraphs, tables)\n - Assign DOC hypernym types (DOC.HDR, DOC.PAR, DOC.TBL)\n - Generate XPath provenance for each claim location\n\n3. **Entity Resolution** (Stage 3)\n - Disambiguate entity mentions\n - Merge coreferences and name variants\n - Produce canonical entity clusters\n\n4. **Entity Linking** (Stage 4)\n - Link resolved entities to knowledge bases\n - Connect to Wikidata, ISIL, GeoNames, etc.\n - Assign link confidence scores\n\n**WORKFLOW**:\n\n1. Archive website using Playwright:\n `python scripts/fetch_website_playwright.py <entry_number> <url>`\n \n This saves: web/{entry_number}/{domain}/rendered.html\n\n2. Add XPath provenance to claims:\n `python scripts/add_xpath_provenance.py`\n\n3. Script REMOVES claims that cannot be verified\n (stores in `removed_unverified_claims` for audit)\n\n**EXAMPLES**:\n\nCORRECT (Verifiable):\n```yaml\n- claim_type: full_name\n has_or_had_content:\n has_or_had_label: Historische Vereniging Nijeveen\n source_url: https://historischeverenigingnijeveen.nl/\n retrieved_on: \"2025-11-29T12:28:00Z\"\n has_or_had_provenance_path:\n expression: /html[1]/body[1]/div[6]/div[1]/h1[1]\n match_score: 1.0\n html_file: web/0021/historischeverenigingnijeveen.nl/rendered.html\n pipeline_stage: layout_analysis\n```\n\nWRONG (Fabricated - Must Be Removed):\n```yaml\n- claim_type: full_name\n has_or_had_content:\n has_or_had_label: Historische Vereniging Nijeveen\n confidence: 0.95 # \u2190 NO! This is meaningless without XPath\n```\n\n**MIGRATION NOTE (2026-01-15)**:\nConsolidated xpath, xpath_match_score, xpath_matched_text\ninto has_or_had_provenance_path with XPath class.\n\n**MIGRATION NOTE (2026-01-18)**:\nMigrated claim_value to has_or_had_content with Content class per Rule 53/56.", - "if": { - "not": { - "required": [ - "has_or_had_provenance_path" - ] - }, - "properties": { - "has_or_had_provenance_path": {} - } - }, - "properties": { - "has_or_had_content": { - "type": "string" - }, - "has_or_had_file_path": { - "$ref": "#/$defs/FilePath", - "description": "Path to a file associated with the entity.\n\n**MIGRATED** from html_file, html_snapshot_path (Rule 53).\n\nFollows RiC-O naming convention." - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_provenance_path": { - "items": { - "$ref": "#/$defs/XPath" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "$ref": "#/$defs/ClaimType" - }, - "type": "array" - }, - "is_or_was_extracted_using": { - "anyOf": [ - { - "$ref": "#/$defs/ExtractionMethod" - }, - { - "type": "null" - } - ], - "description": "The extraction method used to obtain this data.\n\nDocuments HOW a claim or data element was extracted from its source,\nproviding transparency and reproducibility.\n\n**Common Methods**:\n- xpath_exact_match: XPath query with exact text match\n- xpath_fuzzy_match: XPath with fuzzy matching\n- text_search: Full-text search\n- css_selector: CSS selector extraction\n- json_ld_parse: JSON-LD structured data\n- nlp_ner: NLP Named Entity Recognition\n- manual_annotation: Human extraction\n\n**MIGRATION NOTE (2026-01-19)**:\nReplaces claim_extraction_method slot per slot_fixes.yaml (Rule 53/56).\nUses RiC-O temporal naming convention (is_or_was_*).\n" - }, - "is_or_was_retrieved_through": { - "anyOf": [ - { - "$ref": "#/$defs/RetrievalEvent" - }, - { - "type": "null" - } - ], - "description": "Method or plan used for the retrieval activity." - }, - "pipeline_stage": { - "$ref": "#/$defs/ExtractionPipelineStageEnum", - "description": "Which stage of the extraction pipeline produced this claim.\nFollowing the 4-stage GLAM-NER pipeline:\n1. entity_recognition - NER detection\n2. layout_analysis - Document structure analysis\n3. entity_resolution - Disambiguation and merging\n4. entity_linking - Knowledge base linking\n" - }, - "retrieved_on": { - "description": "Timestamp when the web page was retrieved/archived.\n\npav:retrievedOn - \"The date this resource was retrieved from the source\"\n\nISO 8601 format with timezone (UTC preferred).\n\nExamples:\n- \"2025-11-29T12:28:00Z\" (UTC)\n- \"2025-11-29T10:30:00+01:00\" (with timezone offset)\n", - "format": "date-time", - "type": "string" - }, - "source_url": { - "description": "URL of the web page this data was retrieved from.\n\npav:retrievedFrom - \"The URI from which the resource was retrieved.\"\n\nThis is a key provenance field that enables verification of extracted data\nby linking back to the original source web page.\n\nExamples:\n- https://historischeverenigingnijeveen.nl/ (institution homepage)\n- https://ec.europa.eu/info/funding-tenders/... (EU funding portal)\n- https://www.heritagefund.org.uk/funding/... (UK heritage fund)\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_type", - "has_or_had_content", - "has_or_had_file_path", - "retrieved_on", - "source_url", - "has_or_had_provenance_path" - ], - "title": "WebClaim", - "type": "object" - }, - "WebLink": { - "additionalProperties": false, - "description": "A hyperlink to a web resource with associated metadata. **DEFINITION**: Represents a web link with its URL, display text, type classification, and optional contextual information about where and why the link appears. **SCHEMA.ORG ALIGNMENT**: Maps to `schema:WebPage` as it represents a reference to a web page or web resource. **TEMPORAL SEMANTICS**: Links can change over time: - URLs may become invalid (link rot) - Link text or context may be updated - Links may be added or removed from pages **EXAMPLE**: ```yaml web_link:\n id: hc:link/findingaid-civil-registry\n url: https://www.nationaalarchief.nl/onderzoeken/zoekhulpen/burgerlijke-stand\n link_text: \"Burgerlijke Stand\"\n link_type: SUB_GUIDE\n link_context: \"Related finding aids for family history research\"\n```", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_provenance_path": { - "items": { - "$ref": "#/$defs/XPath" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": "array" - }, - "link_context": { - "description": "Parent section or surrounding context", - "type": [ - "string", - "null" - ] - }, - "link_text": { - "description": "Visible text of the link", - "type": [ - "string", - "null" - ] - }, - "link_type": { - "$ref": "#/$defs/LinkTypeEnum", - "description": "Type of link" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "has_or_had_url" - ], - "title": "WebLink", - "type": "object" - }, - "WebObservation": { - "additionalProperties": false, - "description": "A provenance record documenting the retrieval and observation of web content.\nTracks when, where, and how web-based information was obtained.\n\n**PURPOSE**:\n\nWebObservation provides transparent provenance for web-extracted data in the\nheritage custodian ontology. When information about funding calls, institutions,\nor other entities is extracted from web sources, a WebObservation record\ndocuments:\n\n- **What**: The source URL and content\n- **When**: Timestamp of retrieval\n- **Who/What**: Agent performing retrieval\n- **How**: Method of extraction\n- **Quality**: Confidence scores and notes\n\n**PROVENANCE CHAIN**:\n\n```\nWebObservation (Activity)\n \u2502\n \u251c\u2500\u2500 prov:used \u2500\u2500\u2192 SourceDocument (web page as Entity)\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500 source_uri: https://example.org/call\n \u2502\n \u251c\u2500\u2500 prov:generated \u2500\u2500\u2192 CallForApplication (extracted Entity)\n \u2502\n \u251c\u2500\u2500 pav:retrievedFrom \u2500\u2500\u2192 URI of source\n \u251c\u2500\u2500 pav:retrievedOn \u2500\u2500\u2192 datetime\n \u2514\u2500\u2500 pav:retrievedBy \u2500\u2500\u2192 agent identifier\n```\n\n**PROV-O ALIGNMENT**:\n\nWebObservation is modelled as a `prov:Activity`:\n- Activities are \"something that occurs over a period of time and acts upon\n or with entities\"\n- The retrieval of a web page is an activity that uses a SourceDocument\n (the live web page) and generates extracted data\n\nKey PROV-O properties:\n- `prov:used` - The web page accessed\n- `prov:generated` - The extracted data entity\n- `prov:wasAssociatedWith` - The retrieval agent\n- `prov:atTime` - When the activity occurred\n\n**PAV ALIGNMENT**:\n\nPAV (Provenance, Authoring and Versioning) provides more specific properties:\n- `pav:retrievedFrom` - Source URL\n- `pav:retrievedOn` - Retrieval timestamp\n- `pav:retrievedBy` - Retrieval agent\n- `pav:sourceAccessedAt` - When source was consulted\n\n**CHANGE DETECTION**:\n\nWebObservation supports tracking changes over time:\n- Link to `previous_observation` for same URL\n- `content_changed` flag for quick change detection\n- `content_hash` for integrity verification\n- Compare `last_modified` and `etag` across observations\n\n**ARCHIVAL INTEGRATION**:\n\nFor long-term preservation, link to archived copies:\n- `is_or_was_archived_at` can point to Wayback Machine, Archive.today, etc.\n- Ensures cited web content remains accessible\n\n**EXAMPLES**:\n\n1. **EU Funding Portal Observation**\n - source_url: https://ec.europa.eu/.../has_or_had_topic-details/horizon-cl2-2025-heritage-01\n - retrieved_on: 2025-11-29T10:30:00Z\n - retrieved_by: \"glam-harvester/1.0\"\n - extraction_confidence: 0.95\n \n2. **Heritage Organisation Website**\n - source_url: https://www.heritagefund.org.uk/funding/medium-grants\n - retrieved_on: 2025-11-28T14:00:00Z\n - content_type: text/html\n - page_title: \"Medium grants - Heritage Fund\"\n \n3. **Wikidata SPARQL Query**\n - source_url: https://query.wikidata.org/sparql?query=...\n - retrieval_method: SPARQL API\n - content_type: application/sparql-results+json\n - observed_entities: [Q131381572, Q1375245, ...]", - "properties": { - "content_changed": { - "description": "Whether content changed since previous observation", - "type": [ - "boolean", - "null" - ] - }, - "content_hash": { - "description": "SHA-256 hash of content for integrity verification.\n\n**PURPOSE**:\nEnables verification that content has not changed since observation.\nUsed for deduplication and change detection.\n\n**FORMAT OPTIONS**:\n- SRI format: sha256-{base64_hash} (for web content)\n- Hex format: {64_hex_chars} (for file content)\n\n**USAGE**:\n- WebObservation: Hash of retrieved HTML/content\n- MissionStatement: Hash of statement text\n- Any content requiring integrity verification\n", - "type": [ - "string", - "null" - ] - }, - "content_type": { - "description": "MIME type of retrieved content (text/html, application/json, etc.)", - "type": [ - "string", - "null" - ] - }, - "has_or_had_method": { - "description": "A method associated with an activity, process, or entity.\n\n**USAGE**:\nUsed for:\n- HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod\n- Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod\n- API interaction methods\n\n**BROADENED RANGE**:\nRange broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_note": { - "description": "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_status": { - "anyOf": [ - { - "$ref": "#/$defs/HTTPStatusCode" - }, - { - "type": "null" - } - ], - "description": "Current or past status of an entity.\n\n**Range**: `uriorcurie` (2026-01-16, Rule 55)\n\nBroadened to uriorcurie to resolve OWL ambiguous type warnings.\nThis allows classes to narrow via slot_usage to:\n- `LegalStatus` for entity operational status (ACTIVE, DISSOLVED)\n- `BackupStatus`, `PreservationStatus` for technical statuses\n- String values via uriorcurie\n\n**Replaces bespoke**: `has_or_had_entity_status` (Rule 55)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **HC** | `hc:hasOrHadStatus` | Primary - ObjectProperty for class-valued ranges |\n| **Schema.org** | `schema:status` | Close - general status (DatatypeProperty) |\n| **Dublin Core** | `dcterms:status` | Related - status term |\n\n**USAGE NOTE**:\n\nWhen used in class slot_usage, override the range to point to a specific\nStatus class (e.g., LegalStatus, BackupStatus, PreservationStatus) for structured status.\n" - }, - "is_or_was_archived_at": { - "description": "Location or URL where content was archived or preserved.\n**SEMANTIC PATTERN**:\nThis slot follows the RiC-O temporal predicate pattern (is_or_was_*) to indicate that archival location may change over time or refer to historical archival events.\n**REPLACES**:\n- `archived_at` - URL to archived version (e.g., Wayback Machine) - `was_archived_at` - Similar pattern\n**USE CASES**:\n1. **Web Archival**: Link to Internet Archive/Wayback Machine snapshots 2. **Platform Preservation**: Where deprecated platforms are preserved 3. **Content Snapshots**: Historical versions of web content", - "type": [ - "string", - "null" - ] - }, - "last_modified": { - "description": "Last-Modified header value from HTTP response", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "observation_id": { - "description": "Unique identifier for this web observation. Mapped to dcterms:identifier as the standard property for resource identifiers.", - "type": [ - "string", - "null" - ] - }, - "observed_entity": { - "description": "Entities extracted from this observation", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "page_title": { - "description": "Title of the web page as retrieved.\nOntology mapping: dcterms:title is the Dublin Core property for the name given to a resource, applicable to web pages.", - "type": [ - "string", - "null" - ] - }, - "previous_observation": { - "description": "Previous observation of the same URL for change tracking", - "type": [ - "string", - "null" - ] - }, - "retrieval_method": { - "description": "Method used for retrieval (browser, API, scraper, etc.)", - "type": [ - "string", - "null" - ] - }, - "retrieved_by": { - "description": "Agent (person, script, or system) that performed the retrieval", - "type": [ - "string", - "null" - ] - }, - "retrieved_on": { - "description": "Timestamp when the web page was retrieved/archived.\n\npav:retrievedOn - \"The date this resource was retrieved from the source\"\n\nISO 8601 format with timezone (UTC preferred).\n\nExamples:\n- \"2025-11-29T12:28:00Z\" (UTC)\n- \"2025-11-29T10:30:00+01:00\" (with timezone offset)\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "source_url": { - "description": "URL of the web page this data was retrieved from.\n\npav:retrievedFrom - \"The URI from which the resource was retrieved.\"\n\nThis is a key provenance field that enables verification of extracted data\nby linking back to the original source web page.\n\nExamples:\n- https://historischeverenigingnijeveen.nl/ (institution homepage)\n- https://ec.europa.eu/info/funding-tenders/... (EU funding portal)\n- https://www.heritagefund.org.uk/funding/... (UK heritage fund)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "warrants_or_warranted": { - "description": "Claims that warrant (support/justify) this entity or are warranted by it.\n\nFrom argumentation theory (Toulmin model):\n- Claims provide evidence that WARRANTS conclusions\n- A claim can be WARRANTED BY supporting evidence\n\nThis slot captures the bidirectional relationship between claims\nand the entities they support or are supported by.\n\n**Usage Patterns**:\n- WebEnrichment.warrants_or_warranted \u2192 WebClaim instances\n- ResearchSource.warrants_or_warranted \u2192 Claim instances\n- PersonProfile.warrants_or_warranted \u2192 PersonWebClaim instances\n\n**MIGRATION NOTE (2026-01-19)**:\nReplaces `claim` slot per slot_fixes.yaml (Rule 53/56).\nUses RiC-O temporal naming convention (warrants_or_warranted).\n", - "items": { - "$ref": "#/$defs/Claim" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "observation_id" - ], - "title": "WebObservation", - "type": "object" - }, - "WebPage": { - "additionalProperties": false, - "description": "Web page.", - "properties": { - "has_or_had_url": { - "description": "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "WebPage", - "type": "object" - }, - "WebPortal": { - "additionalProperties": false, - "description": "A web portal that aggregates or provides discovery access to heritage\nmetadata from multiple custodian institutions.\n\n**DEFINITION**:\n\nWebPortal represents AGGREGATION/DISCOVERY portals - platforms that collect\nand expose metadata from multiple heritage institutions. Distinguished from:\n- **DigitalPlatform**: A single custodian's website/online presence\n- **CollectionManagementSystem**: Backend software managing collection data\n\n**KEY CHARACTERISTICS**:\n\n1. **Multi-Institution Aggregation**: Portals aggregate metadata from many institutions\n2. **Discovery Focus**: Primary purpose is search/discovery across collections\n3. **Standardized Metadata**: Use common standards (EDM, Dublin Core, EAD, LIDO)\n4. **Technical Infrastructure**: Provide APIs, OAI-PMH endpoints, SPARQL\n5. **Operated by Networks**: Typically run by EncompassingBody (Network, Consortium)\n\n**RELATIONSHIP ARCHITECTURE**:\n\n```\nEncompassingBody (operator)\n \u2502\n \u2514\u2500\u2500 operates \u2192 WebPortal\n \u2502\n \u251c\u2500\u2500 portal_data_sources \u2190 CollectionManagementSystem[]\n \u2502 (CMS feeds data to portal)\n \u2502\n \u251c\u2500\u2500 exposes_collections \u2192 CustodianCollection[]\n \u2502 (collections discoverable via portal)\n \u2502\n \u2514\u2500\u2500 aggregates_from \u2192 WebPortal[]\n (portal-to-portal aggregation chains)\n```\n\n**AGGREGATION CHAINS**:\n\nSome portals aggregate from other portals, forming chains:\n```\nCMS \u2192 Regional Archive Portal \u2192 National Archive Portal \u2192 Archives Portal Europe\nCMS \u2192 Museum \u2192 Aggregator \u2192 Europeana\n```\n\nUse `aggregates_from` and `aggregated_by` to model these chains.\n\n**PORTAL TYPES** (from WebPortalType class hierarchy):\n\n- **NATIONAL_AGGREGATOR**: NDE Dataset Register, Deutsche Digitale Bibliothek\n- **REGIONAL_AGGREGATOR**: LEO-BW, Bavarikon\n- **ARCHIVAL_PORTAL**: Archieven.nl, Archives Portal Europe\n- **LIBRARY_UNION_CATALOG**: WorldCat, GBV\n- **MUSEUM_COLLECTION_PORTAL**: Collectie Nederland, Europeana Collections\n- **CROSS_DOMAIN_AGGREGATOR**: Europeana, DPLA\n- **COLONIAL_HERITAGE_PORTAL**: Colonial Collections (NL)\n- **GENEALOGICAL_PORTAL**: OpenArchieven.nl, FamilySearch\n- **LINKED_DATA_HUB**: NDE Termennetwerk, Wikidata\n- **OAI_PMH_HARVESTER**: BASE, OpenAIRE\n\n**EXAMPLES OF DUTCH PORTALS**:\n\n1. **NDE Dataset Register** (datacatalogus.netwerkdigitaalerfgoed.nl)\n - Type: NATIONAL_AGGREGATOR\n - Operator: NDE (NetworkOrganisation)\n - Scope: All Dutch heritage datasets\n \n2. **Archieven.nl** (archieven.nl)\n - Type: ARCHIVAL_PORTAL\n - Operator: KVAN network\n - Data sources: MAIS-Flexis deployments at regional archives\n - Aggregated by: Archives Portal Europe\n \n3. **OpenArchieven.nl** (openarchieven.nl)\n - Type: GENEALOGICAL_PORTAL\n - Focus: Scanned civil registration, parish records\n - Open access genealogical sources\n \n4. **Collectie Nederland** (collectienederland.nl)\n - Type: MUSEUM_COLLECTION_PORTAL\n - Operator: Rijksdienst voor het Cultureel Erfgoed\n - Aggregates museum objects from Dutch museums\n \n5. **Colonial Collections** (datacatalogus.../group/colonial-collections)\n - Type: COLONIAL_HERITAGE_PORTAL\n - Focus: Colonial history provenance research\n - Part of NDE Dataset Register infrastructure\n\n**EXAMPLES OF GERMAN PORTALS**:\n\n1. **Archivportal-D** (archivportal-d.de)\n - Type: ARCHIVAL_PORTAL\n - Operator: Landesarchiv Baden-W\u00fcrttemberg (coordination)\n - National archive finding aid aggregator\n \n2. **Deutsche Digitale Bibliothek** (deutsche-digitale-bibliothek.de)\n - Type: CROSS_DOMAIN_AGGREGATOR\n - German national aggregator for Europeana\n - Cross-domain (archives, libraries, museums)\n \n3. **LEO-BW** (leo-bw.de)\n - Type: REGIONAL_AGGREGATOR\n - Baden-W\u00fcrttemberg regional portal\n \n4. **Bavarikon** (bavarikon.de)\n - Type: REGIONAL_AGGREGATOR\n - Bavaria regional cultural heritage portal\n\n**EXAMPLES OF EUROPEAN/INTERNATIONAL PORTALS**:\n\n1. **Europeana** (europeana.eu)\n - Type: CROSS_DOMAIN_AGGREGATOR\n - Operator: Europeana Foundation (NetworkOrganisation)\n - 50M+ objects from European cultural heritage\n - Aggregates from national aggregators (DDB, Gallica, etc.)\n \n2. **Archives Portal Europe** (archivesportaleurope.net)\n - Type: ARCHIVAL_PORTAL\n - Operator: APEF Foundation\n - European archival finding aids\n - Aggregates from national archive portals\n \n3. **Monasterium.net** (monasterium.net)\n - Type: MONASTIC_HERITAGE_PORTAL\n - Operator: ICARUS (Consortium)\n - Medieval charters and monastic documents\n \n4. **WorldCat** (worldcat.org)\n - Type: LIBRARY_UNION_CATALOG\n - Operator: OCLC (Cooperative)\n - 500M+ bibliographic records\n\n**ONTOLOGY ALIGNMENT**:\n\n- **EDM** (`edm:Aggregation`): Primary mapping - portal aggregates CHOs\n- **ORE** (`ore:Aggregation`): Object Reuse and Exchange aggregation\n- **Schema.org** (`schema:WebSite` + `schema:DataCatalog`): Web presence + data catalog\n- **DCMI Type** (`dcmitype:Collection`): Collection of metadata records\n\n**LIFECYCLE AND MIGRATION**:\n\nPortals evolve over time:\n- New portals launch\n- Portals merge (use `supersedes_or_superseded`)\n- Portals become legacy but remain accessible\n- Portal scope expands (regional \u2192 national)\n\nTrack status with `portal_status`: ACTIVE, LEGACY, DEPRECATED, MERGED", - "properties": { - "aggregates_or_aggregated_from": { - "description": "Other portals from which this portal aggregates data.\n\nUsed for portal-to-portal aggregation chains:\n- Europeana aggregates from DDB, Gallica, etc.\n- Archives Portal Europe aggregates from national archive portals\n\n**Inverse of aggregated_by**\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "created_by_project": { - "description": "The Project that created or maintains this web portal.\n\nLinks to Project class representing time-limited initiatives run by\nEncompassingBody organizations.\n\n**Relationship Architecture**:\n```\nEncompassingBody (e.g., NDE)\n \u2502\n \u251c\u2500\u2500 projects \u2500\u2500\u2192 Project (e.g., \"Portal Development 2024\")\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500 creates \u2500\u2500\u2192 WebPortal (this portal)\n \u2502\n \u2514\u2500\u2500 operates \u2500\u2500\u2192 WebPortal (operational responsibility)\n```\n\n**DISTINCTION from operated_by**:\n- `operated_by`: The EncompassingBody with ongoing operational responsibility\n- `created_by_project`: The specific time-limited Project that built the portal\n\nA portal may be created by one project and then operated by the \nparent organization or a different entity.\n", - "type": [ - "string", - "null" - ] - }, - "has_or_had_endpoint": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/$defs/APIEndpoint__identifier_optional" - }, - { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - } - ] - }, - "description": "The data service endpoint.", - "type": [ - "object", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/GeographicScope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "is_or_was_aggregated_by": { - "description": "Portals that aggregate from this portal.\n\nShows where this portal's data flows upstream.\n\n**Inverse of aggregates_from**\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_associated_with": { - "description": "Generic slot expressing a temporal association relationship between entities.\nThis is a GENERIC slot following RiC-O naming conventions (Rule 39). The range should be narrowed via slot_usage in class definitions to the specific entity type being associated (EncompassingBody, Taxon, etc.).\n**ONTOLOGY ALIGNMENT**: - W3C Org: `org:linkedTo` - organizational linkage - PROV-O: `prov:wasAssociatedWith` - activity/agent association - Schema.org: `schema:memberOf` - membership relationships\n**TEMPORAL SEMANTICS**: The \"is_or_was\" pattern indicates this association may be: - Current (is associated with) - Historical (was associated with) - Both (relationship changed over time)\nUse slot_usage to narrow range and add temporal tracking if needed.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_derived_from": { - "description": "Links an entity to another entity from which it was derived.\n\n**USAGE**:\nUsed for:\n- Linking derived datasets to source datasets\n- Tracking data transformations\n- Establishing provenance chains\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasDerivedFrom (PROV-O derivation relationship)\n\nNote: slot_uri changed from prov:wasDerivedFrom to hc:isOrWasDerivedFrom\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., CustodianObservation).\n", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_generated_by": { - "description": "Links an entity to the activity that generated it.\n\n**USAGE**:\nUsed for:\n- Linking records to generation activities\n- Tracking automated processing\n- Provenance chains\n\nMIGRATED from generated_by (2026-01-26).\n\n**ONTOLOGY ALIGNMENT**:\n- Maps to prov:wasGeneratedBy (PROV-O generation relationship)\n\nNote: slot_uri changed from prov:wasGeneratedBy to hc:isOrWasGeneratedBy\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., ReconstructionActivity).\n", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/DigitalPlatform" - }, - "type": [ - "array", - "null" - ] - }, - "launch_date": { - "description": "Date the portal was originally launched.\n", - "format": "date", - "type": [ - "string", - "null" - ] - }, - "metadata_standard": { - "description": "Metadata standards implemented by this platform.\n\nDublin Core: conformsTo for standard compliance.\n\nExamples:\n- \"Dublin Core\"\n- \"MARC21\"\n- \"EAD (Encoded Archival Description)\"\n- \"LIDO\"\n- \"MODS\"\n- \"EDM (Europeana Data Model)\"\n- \"Schema.org\"\n- \"CIDOC-CRM\"\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "oai_pmh_endpoint": { - "description": "OAI-PMH endpoint URL for metadata harvesting.\n\nDCAT: endpointURL for OAI-PMH service.\n\nSupports Open Archives Initiative Protocol for Metadata Harvesting.\n\nExamples:\n- \"https://www.europeana.eu/oai\" (Europeana OAI-PMH)\n- \"https://repository.example.edu/oai\" (Institutional repository OAI-PMH)\n", - "type": [ - "string", - "null" - ] - }, - "operated_by": { - "description": "The EncompassingBody that operates/maintains this web portal.\n\n**RELATIONSHIP**: WebPortal \u2192 EncompassingBody\n\nWeb portals are typically operated by:\n- NetworkOrganisation: NDE operates Dataset Register, Archieven.nl\n- Consortium: ICARUS operates Monasterium.net\n- Cooperative: OCLC operates WorldCat\n- UmbrellaOrganisation: National library operates national union catalog\n\n**Examples**:\n- NDE Dataset Register \u2192 operated_by \u2192 NDE (NetworkOrganisation)\n- Archieven.nl \u2192 operated_by \u2192 KVAN/Erfgoed Leiden (NetworkOrganisation)\n- Deutsche Digitale Bibliothek \u2192 operated_by \u2192 DDB (NetworkOrganisation)\n- Europeana \u2192 operated_by \u2192 Europeana Foundation (NetworkOrganisation)", - "type": "string" - }, - "participating_institution": { - "description": "Number of institutions contributing data to the portal.\n", - "type": [ - "integer", - "null" - ] - }, - "portal_description": { - "description": "Description of the portal's purpose, scope, and target audience.\nMaps to dcterms:description for web portal descriptions.", - "type": [ - "string", - "null" - ] - }, - "portal_id": { - "description": "Unique identifier for this web portal. Mapped to dcterms:identifier as the standard property for resource identifiers.\nFormat: https://nde.nl/ontology/hc/portal/{scope}/{slug}\n", - "pattern": "^https://nde\\.nl/ontology/hc/portal/[a-z-]+/[a-z0-9-]+$", - "type": "string" - }, - "portal_language": { - "description": "Languages supported by the portal interface.\nUse ISO 639-1 codes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "portal_name": { - "description": "Official name of the web portal.\nOntology mapping: skos:prefLabel is the standard SKOS property for preferred human-readable labels.", - "type": "string" - }, - "portal_status": { - "description": "Current operational status of the portal.\n\nValues: ACTIVE, LEGACY, DEPRECATED, MERGED\n\n- ACTIVE: Currently operational and maintained\n- LEGACY: Still accessible but no longer actively developed\n- DEPRECATED: Scheduled for shutdown\n- MERGED: Merged into another portal (see successor_portal)\n", - "type": [ - "string", - "null" - ] - }, - "portal_type": { - "description": "Category of portal based on function and scope.\nSee WebPortalType class hierarchy for full list.\n", - "type": "string" - }, - "portal_url": { - "description": "Primary URL of the portal. Mapped to schema:url as the standard property for web addresses of resources.\n", - "type": "string" - }, - "record_count": { - "description": "Approximate number of records/objects in the portal.\nUse most recent available count.\n", - "type": [ - "integer", - "null" - ] - }, - "serves_finding_aid": { - "description": "Finding aids hosted/served by this digital platform.\n\n**INVERSE RELATIONSHIP**:\n- Forward: FindingAid.served_by \u2192 DigitalPlatform/WebPortal (finding aid is served by platform)\n- Inverse: DigitalPlatform.serves_finding_aids \u2192 FindingAid[] (platform serves finding aids)\n\n**USE CASES**:\n1. \"What finding aids are available on this platform?\" \u2192 Follow serves_finding_aids\n2. \"Which platforms host EAD finding aids?\" \u2192 Query platforms with EAD-format finding aids\n3. Platform inventory: Map all finding aids served by each digital infrastructure\n\n**EXAMPLES**:\n- Archieven.nl serves 1000+ EAD finding aids\n- Archives Portal Europe serves finding aids from 30+ European countries\n- National Archives website serves collection guides and inventories\n\n**NOTE**: References FindingAid instances by URI. For full objects, \ndereference or query the FindingAid directly.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "sparql_endpoint": { - "description": "SPARQL endpoint URL for linked data queries.\n\nDCAT: endpointURL for SPARQL service.\n\nIndicates platform supports RDF triple queries.\n\nExamples:\n- \"https://api.europeana.eu/sparql\" (Europeana SPARQL)\n- \"https://data.collectienederland.nl/sparql\" (Collectie Nederland SPARQL)\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "supersedes_or_superseded": { - "description": "Entity that this one supersedes, or that supersedes this one.\nUse when a new version corrects or updates a previous one. Direction is determined by context - the slot represents the relationship in either direction.\nPROV-O: wasRevisionOf for updated versions.\nMigrated from bespoke `supersede` slot per Rule 53/56 (2026-01-17). Original slot_uri (hc:supersedes) preserved in exact_mappings.", - "type": [ - "string", - "null" - ] - }, - "temporal_extent": { - "anyOf": [ - { - "$ref": "#/$defs/TimeSpan" - }, - { - "type": "null" - } - ], - "description": "Temporal extent of reconstruction activity (start/end times with fuzzy boundaries).\nCIDOC-CRM: P4_has_time-span links Activity to TimeSpan.\nPROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime.\n\nFor precise timestamps:\n- Set begin_of_the_begin == end_of_the_begin (activity start)\n- Set begin_of_the_end == end_of_the_end (activity end)\n\nFor activities with uncertain duration, use fuzzy boundaries:\n- begin_of_the_begin: Earliest possible start\n- end_of_the_begin: Latest possible start\n- begin_of_the_end: Earliest possible end\n- end_of_the_end: Latest possible end\n" - } - }, - "required": [ - "operated_by", - "portal_id", - "portal_name", - "portal_type", - "portal_url" - ], - "title": "WebPortal", - "type": "object" - }, - "WebPortalPlatform": { - "additionalProperties": false, - "description": "Website that integrates applications, processes and services.\n\n**PURPOSE**: Provide a gateway to heritage resources with integrated\nsearch, browse, and access functionality.\n\n**CHARACTERISTICS**:\n- Multiple integrated services\n- Personalization options\n- Aggregated content\n- User accounts and preferences\n\n**EXAMPLES**: National library portals, institutional websites", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q186165" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "DISCOVERY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "WebPortalPlatform", - "type": "object" - }, - "WebPublicationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Online publication records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_scope": { - "anyOf": [ - { - "$ref": "#/$defs/Scope" - }, - { - "type": "null" - } - ], - "description": "Scope of an organization or project." - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "OnlineNewsArchive", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by OnlineNewsArchive custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "WebPublicationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "WebPublicationFonds", - "type": "object" - }, - "Webshop": { - "additionalProperties": false, - "description": "E-commerce platform for museum shop, print-on-demand, merchandise.\nMay be separate domain or integrated.\n\n**PURPOSE**: Sell merchandise, publications, prints, and other\nproducts related to heritage collections.\n\n**CHARACTERISTICS**:\n- Product catalog\n- Shopping cart\n- Payment processing\n- Order fulfillment\n\n**EXAMPLES**: Museum shops, print-on-demand services", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "COMMERCE", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "Webshop", - "type": "object" - }, - "Website": { - "additionalProperties": false, - "description": "Set of related web pages served from a single web domain.\n\n**PURPOSE**: Provide online presence for heritage institutions with\ninformation about collections, services, and access.\n\n**CHARACTERISTICS**:\n- Institutional information\n- Collection highlights\n- Visitor information\n- Contact and access details\n\n**EXAMPLES**: Museum websites, archive homepages, library portals", - "properties": { - "has_or_had_example": { - "description": "An example instance or illustration of this concept.", - "items": { - "$ref": "#/$defs/Example" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_feature": { - "description": "A feature or capability of an entity.\n\n**USAGE**:\nUsed for:\n- Technical features of platforms\n- Service features\n- Product features\n", - "items": { - "$ref": "#/$defs/TechnicalFeature" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_standard": { - "description": "A standard that an entity conforms to or uses.\n\n**USAGE**:\nUsed for:\n- Metadata standards (Dublin Core, MARC21, EAD) - use MetadataStandard range\n- Identifier standards (ISIL, ISNI, VIAF) - use Standard range\n- Technical standards\n- Process standards\n\n**RANGE BROADENING (Rule 55)**:\nBase range is uriorcurie to allow class-specific narrowing in slot_usage.\nClasses should narrow to MetadataStandard, Standard, or other subclasses as appropriate.\n\nMIGRATED 2026-01-24: Now also replaces defined_by_standard for Identifier classes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/Entity", - "const": "wikidata:Q35127" - }, - "type": [ - "array", - "null" - ] - }, - "multilingual_label": { - "description": "Labels for this platform type in multiple languages.\nStored as language-tagged strings (e.g., \"digitale Bibliothek@de\").\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "platform_type_category": { - "const": "DISCOVERY", - "description": "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_description": { - "description": "Detailed description of this platform type including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "platform_type_name": { - "description": "Canonical name for this platform type.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "platform_type_id", - "platform_type_name" - ], - "title": "Website", - "type": "object" - }, - "WebsiteClaim": { - "additionalProperties": false, - "description": "Website URL (may differ from source_url).\nExpected in: contact page, links", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "WebsiteClaim", - "type": "object" - }, - "WebsitePresence": { - "additionalProperties": false, - "description": "Traditional website - informational web presence.", - "properties": { - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "WebsitePresence", - "type": "object" - }, - "Weibo": { - "additionalProperties": false, - "description": "Sina Weibo profile (Chinese microblogging).\n\n**URL patterns**:\n- https://weibo.com/{username}\n- https://weibo.com/u/{user_id}\n\n**Features**:\n- Microblogging (similar to X/Twitter)\n- Stories and live streaming\n- E-commerce integration\n\n**Heritage use cases**:\n- Reaching Chinese audiences\n- Tourism promotion\n- Chinese-language content", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "MICROBLOGGING", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://weibo.com/{username}", - "https://weibo.com/u/{user_id}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "Weibo", - "type": "object" - }, - "WeightCapacity": { - "additionalProperties": false, - "description": "Weight or mass capacity (e.g., kilograms, tons).\nImportant for floor load limits and transport.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "WeightCapacity", - "type": "object" - }, - "WhatsApp": { - "additionalProperties": false, - "description": "WhatsApp Business channel or group.\n\n**URL patterns**:\n- https://wa.me/{phone_number}\n- https://chat.whatsapp.com/{invite_code}\n\n**Features**:\n- Messaging and notifications\n- Business profiles\n- Channels (broadcast)\n- Groups\n\n**Heritage use cases**:\n- Event notifications and reminders\n- Tour booking confirmations\n- Community groups\n- Direct visitor communication", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "MESSAGING", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://wa.me/{phone_number}", - "https://chat.whatsapp.com/{invite_code}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "WhatsApp", - "type": "object" - }, - "WholesaleSupplier": { - "additionalProperties": false, - "description": "Bulk/wholesale supplier for general merchandise.\nExamples: Museum store wholesalers, gift trade suppliers", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "WholesaleSupplier", - "type": "object" - }, - "WikiDataEntry": { - "additionalProperties": false, - "description": "Reference to a Wikidata entity (Q-item) for alignments and equivalences.\n\n**Purpose**:\nWikiDataEntry provides a reusable class for representing Wikidata entity\nreferences with Q-number identifier, label, and description.\nUsed for ontology alignments, equivalence mappings, and classification.\n\n**Ontological Alignment**:\n- **Primary**: `wikibase:Item` - Wikibase item class\n- **Close**: `schema:Thing` - general web entity\n- **Related**: `skos:Concept` - controlled vocabulary concept\n\n**Use Cases**:\n- Ontology alignment: `wikidata_alignment` \u2192 relates schema class to Wikidata Q\n- Equivalence: `wikidata_equivalent` \u2192 marks semantic equivalence\n- Classification: `wikidata_class` \u2192 instance_of relationship\n- General mapping: `wikidata_mapping` \u2192 related concept\n\n**Replaces** (per slot_fixes.yaml):\n- `wikidata_mapping` (string Q-number)\n- `wikidata_equivalent` (string Q-number)\n- `wikidata_class` (string Q-number)\n- `wikidata_alignment` (string Q-number)\n- `wikidata` (string Q-number)", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "language": { - "description": "Primary language of content on this profile.\n\nDublin Core: language for content language.\n\nISO 639-1 language code (e.g., \"en\", \"nl\", \"de\").\n\nSome institutions maintain separate profiles for different languages.\n", - "pattern": "^[a-z]{2}(-[A-Z]{2})?$", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier" - ], - "title": "WikiDataEntry", - "type": "object" - }, - "WikiDataIdentifier": { - "additionalProperties": false, - "description": "A Wikidata entity identifier (Q-number) that uniquely identifies an entity in the Wikidata knowledge base.\n**DISTINCTION FROM WikiDataEntry**: - `WikiDataIdentifier` is for simple Q-number storage (identifier only) - `WikiDataEntry` includes full entity data (label, description, claims)\nUse `WikiDataIdentifier` when: - Only storing the Q-number reference - Linking to Wikidata without caching entity data\n**FORMAT**: Q followed by digits (e.g., Q190804 for Rijksmuseum) **URL PATTERN**: https://www.wikidata.org/wiki/Q{number}", - "properties": { - "label": { - "description": "Human-readable label for the entity (optional cache). May be language-specific.", - "type": [ - "string", - "null" - ] - }, - "qid": { - "description": "The Wikidata Q-number (e.g., Q190804). Must start with 'Q' followed by one or more digits.", - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "retrieved_at": { - "description": "Timestamp when this identifier was retrieved/verified.", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "url": { - "description": "Full URL to the Wikidata entity page. Auto-derivable from qid: https://www.wikidata.org/wiki/{qid}", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "qid" - ], - "title": "WikiDataIdentifier", - "type": "object" - }, - "WikidataAlignment": { - "additionalProperties": false, - "description": "Structured metadata for Wikidata entity alignment.\nReplaces fragmented annotations with a proper structured object.\n\n**Example**:\n```yaml\nwikidata_alignment:\n entity_id: Q27032435\n entity_label: \"academic archive\"\n mapping_type: exact\n mapping_rationale: \"AcademicArchive is semantically equivalent to Q27032435\"\n```", - "properties": { - "has_or_had_identifier": { - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_rationale": { - "description": "The rationale or justification for a decision or mapping.\n\n**USAGE**:\nUsed for:\n- Mapping rationale (why an entity was mapped to Wikidata)\n- Decision justifications\n- Explanation notes\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:used` (per 2026-01-26 update)\n- **Close**: `skos:note` - SKOS note (DatatypeProperty)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "WikidataAlignment", - "type": "object" - }, - "WikidataIdClaim": { - "additionalProperties": false, - "description": "Wikidata Q-number.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_label" - ], - "title": "WikidataIdClaim", - "type": "object" - }, - "WikidataIdentifier": { - "additionalProperties": false, - "description": "Wikidata entity identifier (Q-number).", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "const": "WIKIDATA", - "pattern": "^[A-Z][A-Z0-9_]*$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "const": "Wikidata ID", - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "has_or_had_code", - "has_or_had_label" - ], - "title": "WikidataIdentifier", - "type": "object" - }, - "WildlifeParkSubtype": { - "additionalProperties": false, - "description": "Open-range naturalistic wildlife exhibits.\nAnimals in semi-natural habitats with limited barriers.\n\n**Wikidata**: Q3363934\n**Examples**: Blijdorp (Rotterdam), Wildlands Adventure Zoo", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "WildlifeParkSubtype", - "type": "object" - }, - "WildlifeRescueCenterSubtype": { - "additionalProperties": false, - "description": "Wildlife rehabilitation and rescue facility.\nFocus on injured/orphaned animal care and release.\n\n**Wikidata**: Q7314895", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "WildlifeRescueCenterSubtype", - "type": "object" - }, - "WildlifeSanctuarySubtype": { - "additionalProperties": false, - "description": "Protected area focused on wildlife preservation.\nOften restricted access for animal welfare.\n\n**Wikidata**: Q2030386", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "WildlifeSanctuarySubtype", - "type": "object" - }, - "WomensArchives": { - "additionalProperties": false, - "description": "Archives of documents and records written by and about women. Women's archives (Frauenarchive) specialize in collecting, preserving, and providing access to materials documenting women's history, feminist movements, women's organizations, and the experiences and contributions of women across all fields of endeavor.", - "properties": { - "created": { - "description": "Timestamp when this database record was created.\nIMPORTANT: This is NOT the custodian's founding date - it's metadata about the digital record.\nUse CustodianLegalStatus.registration_date for entity founding date.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "custodian_type_broader": { - "description": "Reference to a more general (broader) custodian type in the taxonomy.\nSKOS: broader supports hierarchical concept schemes.\n\nExample: \"Art Museum\" (Q207694) skos:broader \"Museum\" (Q33506)\n", - "type": [ - "string", - "null" - ] - }, - "custodian_type_narrower": { - "description": "References to more specific (narrower) custodian types.\nSKOS: narrower is inverse of broader.\n\nExample: \"Museum\" (Q33506) skos:narrower \"Art Museum\", \"History Museum\", etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_type_related": { - "description": "References to semantically related custodian types (not hierarchical).\nSKOS: related for associative relationships.\n\nExample: \"Art Gallery\" skos:related \"Art Museum\" (similar but distinct)\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) ", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_policy": { - "description": "Policy associated with an entity.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_schema": { - "description": "Metadata schema or standard used by the entity. MIGRATED from finding_aids_format per Rule 53. Follows RiC-O naming convention.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_scope": { - "description": "Scope of an organization or project.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_subtype": { - "description": "The subtype of an entity.", - "type": [ - "string", - "null" - ] - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_type_code": { - "description": "Code representing the heritage type.\n\n**MIGRATED** from heritage_type_code (Rule 53).\n\nFollows RiC-O naming convention.", - "pattern": "^[ABCDEFGHILMNOPRSTUX]$", - "type": [ - "string", - "null" - ] - }, - "hold_or_held_record_set_type": { - "description": "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "modified": { - "description": "Timestamp when this database record was last modified.\nIMPORTANT: This is NOT the custodian's dissolution date - it's metadata about the digital record.\nUse CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle.\n", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "preservation_standard": { - "description": "Preservation and metadata standards used by this archive.\nExamples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description),\nMETS, ISAD(G), DACS, ISO 15489, MoReq, etc.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "record_type": { - "description": "Type of conservation record.\n\nValues:\n- CONDITION_ASSESSMENT: Evaluation of current state\n- TREATMENT: Conservation intervention\n- EXAMINATION: Technical/scientific analysis\n- LOAN_CONDITION_CHECK: Pre/post loan inspection\n- ENVIRONMENTAL_MONITORING: Climate/light monitoring\n- PEST_MONITORING: IPM inspection\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "WomensArchives", - "type": "object" - }, - "WomensArchivesRecordSetType": { - "additionalProperties": false, - "description": "A rico:RecordSetType for classifying collections documenting women's history, feminist movements, and women's experiences.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "WomensArchivesRecordSetType", - "type": "object" - }, - "WomensHistoryCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Women's history documentation.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the collection \norganizational principle as defined by rico-rst:Collection.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "WomensArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by WomensArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "WomensHistoryCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "WomensHistoryCollection", - "type": "object" - }, - "WomensOrganizationFonds": { - "additionalProperties": false, - "description": "A rico:RecordSetType for Women's organization records.\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType following the fonds \norganizational principle as defined by rico-rst:Fonds.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_domain": { - "description": "A domain or subject area associated with an entity.\n\n**USAGE**:\nUsed for:\n- Subject domains\n- Knowledge areas\n- Disciplinary fields\n", - "items": { - "$ref": "#/$defs/Domain" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_hypernym": { - "anyOf": [ - { - "$ref": "#/$defs/Hypernym" - }, - { - "type": "null" - } - ], - "description": "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "$ref": "#/$defs/Label" - }, - "type": "array" - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "pattern": "^Q[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "is_or_was_related_to": { - "items": { - "$ref": "#/$defs/WikidataAlignment" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "fonds", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Fonds", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "record_equivalent": { - "description": "Equivalent term in RiC-O (Records in Contexts Ontology).\n\nLinks this class to the corresponding RiC-O class or property,\nenabling interoperability with archival description standards.\n", - "type": [ - "string", - "null" - ] - }, - "record_holder": { - "const": "WomensArchives", - "description": "Reference to the custodian that holds or held this record set.", - "type": [ - "string", - "null" - ] - }, - "record_holder_note": { - "const": "This RecordSetType is typically held by WomensArchives custodians. Inverse of rico:isOrWasHolderOf.", - "description": "Note about the holder relationship for a record set.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "WomensOrganizationFonds", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "WomensOrganizationFonds", - "type": "object" - }, - "WorkersPhotographyCollection": { - "additionalProperties": false, - "description": "A rico:RecordSetType for workers' photography and visual documentation.\n\n**Definition**:\nCollections of photographs and visual materials documenting workers,\nworkplaces, labor actions, and the labor movement. Includes both\nprofessional documentation and amateur/vernacular photography.\n\n**Typical Contents**:\n- Workplace photographs (fabrieksfoto's)\n- Worker portraits and group photos\n- Strike and demonstration photographs\n- May Day celebration images\n- Congress and meeting photographs\n- Leadership portraits\n- Industrial landscapes\n- Working conditions documentation\n- Safety and health documentation\n- Social events and celebrations\n- International solidarity images\n\n**Photography Types**:\n- Documentary photography\n- News/press photography\n- Propaganda photography\n- Vernacular/amateur photography\n- Industrial photography\n- Portrait photography\n\n**Historical Formats**:\n- Glass plate negatives\n- Photographic prints\n- 35mm negatives and slides\n- Digital images\n- Films and videos\n\n**Documentary Value**:\nWorkers' photography documents:\n- Working conditions and environments\n- Labor struggles and victories\n- Worker solidarity and community\n- Industrial heritage\n- Social change over time\n\n**Dutch Context**:\nCollections at:\n- IISG (major photographic collections)\n- Regional archives\n- Industry-specific archives\n- Municipal archives (local labor history)\n\n**RiC-O Alignment**:\nThis class is a specialized rico:RecordSetType. Records classified with this\ntype follow the collection organizational principle as defined by rico-rst:Collection\n(assembled visual documentation organized by subject, event, photographer, or period).", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_type": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "organizational_principle": { - "const": "collection", - "description": "The organizational principle (fonds, series, file, collection) of a record set.", - "type": [ - "string", - "null" - ] - }, - "organizational_principle_uri": { - "const": "https://www.ica.org/standards/RiC/vocabularies/recordSetTypes#Collection", - "description": "URI reference to RiC-O organizational principle vocabulary term.", - "type": [ - "string", - "null" - ] - }, - "preservation_note": { - "const": "Historical photographic materials require specialized preservation. Digitization critical for access and preservation. Metadata and identification of subjects often incomplete.", - "description": "Notes about preservation requirements or considerations.", - "type": [ - "string", - "null" - ] - }, - "record_note": { - "const": "This RecordSetType classifies record sets following the collection principle as defined by rico-rst:Collection. Assembled visual documentation organized by subject, event, photographer, or time period.", - "description": "Note or comment about a RiC-O record set type.", - "type": [ - "string", - "null" - ] - }, - "record_set_type": { - "const": "WorkersPhotographyCollection", - "description": "Direct mapping to RiC-O RecordSetType vocabulary.\n\nStandard RiC-O record set types:\n- rico:Fonds - Archival fonds (provenance-based)\n- rico:Series - Archival series\n- rico:File - Archival file\n- rico:Collection - Assembled collection (not provenance-based)\n\nUse for RDF interoperability with archival systems.\n", - "type": [ - "string", - "null" - ] - }, - "scope_exclude": { - "const": "[\"textual records\", \"publications\", \"administrative files\"]", - "description": "Types of records or materials typically excluded from this record set type.", - "type": [ - "string", - "null" - ] - }, - "scope_include": { - "const": "[\"workplace photos\", \"strike images\", \"portraits\", \"demonstrations\", \"celebrations\"]", - "description": "Types of records or materials typically included in this record set type.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "title": "WorkersPhotographyCollection", - "type": "object" - }, - "WorldCatIdentifier": { - "additionalProperties": false, - "description": "A WorldCat OCLC identifier.\n\n**USAGE**:\nUsed for:\n- OCLC control numbers\n- WorldCat record identifiers", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "pattern": "^[0-9]+$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "WorldCatIdentifier", - "type": "object" - }, - "WritingSystem": { - "additionalProperties": false, - "description": "A writing system or script (ISO 15924).\n\n**USAGE**:\nUsed for:\n- Script identification (Latin, Cyrillic, Arabic, etc.)\n- Writing direction (LTR, RTL)\n- Historical scripts", - "properties": { - "has_or_had_code": { - "description": "A code or notation value associated with an entity.\n\n**USAGE**:\nUsed for standardized codes such as:\n- ISO 3166-1 alpha-2 country codes (e.g., \"NL\", \"BE\")\n- ISO 3166-1 alpha-3 country codes (e.g., \"NLD\", \"BEL\")\n- ISO 639-1/3 language codes\n- Classification codes (e.g., GeoNames feature codes P.PPL)\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: skos:notation (SKOS notation for concepts)\n", - "items": { - "pattern": "^[A-Z][a-z]{3}$", - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "WritingSystem", - "type": "object" - }, - "XPath": { - "additionalProperties": false, - "description": "An XPath expression used to locate a specific element within an HTML or XML document.\n**CRITICAL PROVENANCE FIELD**: XPath expressions provide the essential link between extracted data values and their original source location in archived documents. Without an XPath, a claim extracted from a webpage is unverifiable.\n**FORMAT**: Standard XPath 1.0 expressions **EXAMPLE**: `/html[1]/body[1]/div[6]/div[1]/table[3]/tbody[1]/tr[1]/td[1]/p[6]`\n**USAGE CONTEXT**: Used with `has_or_had_provenance_path` slot to link provenance records to specific locations in source documents.", - "properties": { - "expression": { - "description": "The XPath expression string. Example: /html[1]/body[1]/div[6]/div[1]/table[3]/tbody[1]/tr[1]/td[1]/p[6]", - "pattern": "^/.*", - "type": "string" - }, - "match_score": { - "description": "Confidence score (0.0 to 1.0) for the XPath match. 1.0 = exact match, <1.0 = fuzzy match.", - "maximum": 1.0, - "minimum": 0.0, - "type": [ - "number", - "null" - ] - }, - "matched_text": { - "description": "The text content found at this XPath location. Used for verification and debugging.", - "type": [ - "string", - "null" - ] - }, - "source_document": { - "description": "URI or path to the source document where this XPath applies. Example: web/GHCID/example.org/rendered.html", - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "expression" - ], - "title": "XPath", - "type": "object" - }, - "XRayFluorescence": { - "additionalProperties": false, - "description": "X-ray fluorescence spectroscopy for elemental analysis.\nIdentifies pigments non-invasively.", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "XRayFluorescence", - "type": "object" - }, - "XTwitter": { - "additionalProperties": false, - "description": "X (formerly Twitter) profile.\n\n**URL patterns**:\n- https://x.com/{username}\n- https://twitter.com/{username}\n\n**Features**:\n- Short-form text posts (tweets/posts)\n- Spaces (audio discussions)\n- Communities\n- Professional accounts\n\n**Heritage use cases**:\n- Quick announcements and news\n- Real-time event coverage\n- Engagement with researchers and journalists\n- Hashtag campaigns (#MuseumWeek, #AskACurator)", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "MICROBLOGGING", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://x.com/{username}", - "https://twitter.com/{username}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "XTwitter", - "type": "object" - }, - "YouTube": { - "additionalProperties": false, - "description": "YouTube channel.\n\n**URL patterns**:\n- https://www.youtube.com/c/{channel_name}\n- https://www.youtube.com/@{handle}\n- https://www.youtube.com/user/{username}\n- https://www.youtube.com/channel/{channel_id}\n\n**Features**:\n- Long-form video hosting\n- Live streaming\n- Shorts (short-form video)\n- Community posts\n- Playlists\n\n**Heritage use cases**:\n- Documentary content about collections\n- Virtual tours and exhibitions\n- Educational lectures and talks\n- Conservation process videos", - "properties": { - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "social_media_example_profile": { - "description": "URLs of well-known heritage institution profiles on this platform.\nFor documentation and clarification purposes.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_feature": { - "description": "Key features provided by this platform.\nExamples: Stories, Reels, Live streaming, Spaces\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_heritage_use_case": { - "description": "Typical use cases for heritage institutions on this platform.\nExamples: Collection highlights, Event promotion, Educational content\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_platform_category": { - "const": "VIDEO_FOCUSED", - "description": "High-level category for grouping related platforms.\nValues: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED,\nPROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_description": { - "description": "Detailed description of this platform including purpose,\ncharacteristics, and typical use cases.\n", - "type": [ - "string", - "null" - ] - }, - "social_media_platform_name": { - "description": "Canonical name for this social media platform.\nUsed for display and cross-institutional comparison.\n", - "type": "string" - }, - "social_media_platform_type_id": { - "description": "Unique identifier for this platform type", - "type": "string" - }, - "social_media_url_pattern": { - "description": "URL patterns for identifying this social media platform.", - "items": { - "enum": [ - "https://www.youtube.com/c/{channel_name}", - "https://www.youtube.com/@{handle}", - "https://www.youtube.com/user/{username}", - "https://www.youtube.com/channel/{channel_id}" - ], - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "social_media_wikidata_id": { - "description": "Wikidata entity ID for this social media platform.", - "type": [ - "string", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - } - }, - "required": [ - "social_media_platform_name", - "social_media_platform_type_id" - ], - "title": "YouTube", - "type": "object" - }, - "YouTubeClaim": { - "additionalProperties": false, - "description": "YouTube channel URL.", - "title": "YouTubeClaim", - "type": "object" - }, - "YoutubeSourceRecord": { - "additionalProperties": false, - "description": "YouTube source record for provenance tracking, documenting API calls, data tier, claims extracted, and any misattribution corrections.\nOntology mapping rationale: - class_uri is prov:PrimarySource because this represents a primary\n source record from the YouTube Data API.\n- close_mappings includes prov:Entity as source records are trackable\n provenance entities.\n- related_mappings includes prov:Revision for correction tracking.", - "properties": { - "api_endpoint": { - "description": "API endpoint used (legacy field name for has_or_had_api_endpoint)", - "type": [ - "string", - "null" - ] - }, - "channel_id": { - "description": "Unique YouTube channel identifier (e.g., UC...)", - "type": [ - "string", - "null" - ] - }, - "claims_extracted": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "correction_note": { - "description": "Note about the correction", - "type": [ - "string", - "null" - ] - }, - "correction_timestamp": { - "description": "When the correction was made", - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "data_tier": { - "$ref": "#/$defs/DataTierEnum" - }, - "fetch_timestamp": { - "format": "date-time", - "type": [ - "string", - "null" - ] - }, - "has_or_had_api_endpoint": { - "type": [ - "string", - "null" - ] - }, - "misattribution_corrected": { - "description": "Whether a misattribution was corrected", - "type": [ - "boolean", - "null" - ] - }, - "source_type": { - "description": "youtube_data_api", - "type": [ - "string", - "null" - ] - } - }, - "title": "YoutubeSourceRecord", - "type": "object" - }, - "ZoologicalGardenSubtype": { - "additionalProperties": false, - "description": "Standard zoo with comprehensive wild animal collections.\nFocus on animal welfare, conservation, and public education.\n\n**Wikidata**: Q43501\n**Examples**: Artis (Amsterdam), San Diego Zoo", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ZoologicalGardenSubtype", - "type": "object" - }, - "ZoologicalInstitutionClassification": { - "additionalProperties": false, - "description": "Institution primarily focused on animal collections.\nIncludes zoos, wildlife parks, safari parks, rescue centers.\n\n**Wikidata Base**: Q43501 (zoo)\n\n**Scope**:\n- Wild animal collections\n- Conservation breeding programs\n- Animal behavior research\n- Wildlife education", - "properties": { - "has_or_had_description": { - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "items": { - "type": "string" - }, - "type": "array" - }, - "has_or_had_label": { - "items": { - "type": "string" - }, - "type": "array" - }, - "is_or_was_equivalent_to": { - "description": "Semantic equivalence with another entity (typically Wikidata).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this\nequivalence may be historical - concepts may diverge over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isOrWasEquivalentTo` - our ObjectProperty\n- **Maps to**: `skos:exactMatch` - SKOS exact match for semantic equivalence\n- **Related**: `owl:sameAs` - OWL identity (stronger claim)\n- **Related**: `schema:sameAs` - Schema.org identity\n\nNote: slot_uri changed from skos:exactMatch to hc:isOrWasEquivalentTo\nto resolve OWL ambiguous type warning when classes override range\nto class types (e.g., WikiDataIdentifier).\n\n**Range**: `Any` (2026-01-16) - Allows string values and class instances.\n\n**Distinction from is_or_was_related_to**:\n- `is_or_was_equivalent_to`: Semantic identity (same concept)\n- `is_or_was_related_to`: Associative (related but distinct)\n\n**Use Case**:\nLinks a heritage custodian type or concept to its Wikidata equivalent.\nExample: Our \"Museum\" type is equivalent to Wikidata Q33506.\n\n**Cardinality**:\nMultivalued - an entity may have equivalences in multiple systems.\n", - "items": { - "$ref": "#/$defs/WikiDataIdentifier" - }, - "type": [ - "array", - "null" - ] - } - }, - "required": [ - "has_or_had_identifier", - "has_or_had_label" - ], - "title": "ZoologicalInstitutionClassification", - "type": "object" - } - }, - "$id": "https://nde.nl/ontology/hc/custodian", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "additionalProperties": true, - "description": "Root container class for Heritage Custodian data instances. Provides tree_root for LinkML instance validation.\nThis container supports all primary entity types for batch validation: - Core custodian entities (Custodian, observations, names, legal statuses) - Place and collection aspects (CustodianPlace, CustodianCollection) - Organizational structures (OrganizationalStructure) - Reconstruction activities (ReconstructionActivity) - Registration entities (Jurisdiction, TradeRegister, RegistrationAuthority, RegistrationNumber) - Standards ecosystem (StandardsOrganization, Standard, AllocationAgency, IdentifierFormat)\nOntology mapping rationale: - class_uri is prov:Collection because this is a container aggregating\n multiple heritage custodian entities for validation purposes\n- This is a TECHNICAL class for LinkML validation (tree_root: true)\n and should be EXCLUDED from UML visualizations per Rule 4\n- related_mappings includes schema:Dataset as this aggregates data records", - "metamodel_version": "1.7.0", - "properties": { - "allocation_agencies": { - "description": "Collection of allocation agencies (KB, OCLC, Nationaal Archief, etc.).\nAgencies that allocate identifiers locally within geographic/domain scope.\n", - "items": { - "$ref": "#/$defs/AllocationAgency" - }, - "type": [ - "array", - "null" - ] - }, - "collections": { - "description": "Collection of specific, inventoried heritage holdings.\nRepresents SPECIFIC, CATALOGUED holdings within a heritage custodian.\nDistinct from CustodianCollection (abstract/nominal reference).\n", - "items": { - "$ref": "#/$defs/Collection" - }, - "type": [ - "array", - "null" - ] - }, - "countries": { - "description": "Collection of countries (ISO 3166-1).\nUsed for geographic scope of standards and allocation agencies.\n", - "items": { - "$ref": "#/$defs/Country" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_collections": { - "description": "Collection of heritage collections", - "items": { - "$ref": "#/$defs/CustodianCollection" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_identifiers": { - "description": "Collection of custodian identifiers (ISIL, ISNI, Wikidata, VIAF, etc.).\nExternal identifiers with full provenance tracking.\n", - "items": { - "$ref": "#/$defs/CustodianIdentifier" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_legal_statuses": { - "description": "Collection of custodian legal entities", - "items": { - "$ref": "#/$defs/CustodianLegalStatus" - }, - "type": [ - "array", - "null" - ] - }, - "custodian_places": { - "description": "Collection of custodian place designations", - "items": { - "$ref": "#/$defs/CustodianPlace" - }, - "type": [ - "array", - "null" - ] - }, - "digital_platforms": { - "description": "Collection of digital platforms (websites, portals, repositories).\nPrimary owned digital presence.\n", - "items": { - "$ref": "#/$defs/DigitalPlatform" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_custodian": { - "description": "Collection of custodian hub entities", - "items": { - "$ref": "#/$defs/Custodian" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_custodian_name": { - "description": "Collection of custodian standardized names", - "items": { - "$ref": "#/$defs/CustodianName" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_custodian_observation": { - "description": "Collection of custodian observations", - "items": { - "$ref": "#/$defs/CustodianObservation" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_finding_aid": { - "description": "Collection of finding aids (inventories, catalogs, guides, indexes, databases).\nReplaces simple finding_aid_url strings with rich metadata objects.\n", - "items": { - "$ref": "#/$defs/FindingAid" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_identifier": { - "description": "Collection of registration numbers", - "items": { - "$ref": "#/$defs/RegistrationNumber" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_iot_device": { - "description": "Collection of IoT devices (beacons, sensors, kiosks).\nPhysical-digital bridge devices in heritage venues.\n", - "items": { - "$ref": "#/$defs/InternetOfThings" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_reconstruction_activity": { - "description": "Collection of reconstruction activities", - "items": { - "$ref": "#/$defs/ReconstructionActivity" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_score": { - "description": "A numeric score or rating value.\n\n**USAGE**:\nUsed for:\n- XPath match confidence scores (0.0-1.0)\n- Relevance scores\n- Quality ratings\n- Similarity scores\n" - }, - "has_or_had_section": { - "description": "Collection of organizational structure trees", - "items": { - "$ref": "#/$defs/OrganizationalStructure" - }, - "type": [ - "array", - "null" - ] - }, - "has_or_had_social_media_profile": { - "description": "Collection of social media profiles (Instagram, Facebook, X, etc.).\nThird-party digital presence on external platforms.\n", - "items": { - "$ref": "#/$defs/SocialMediaProfile" - }, - "type": [ - "array", - "null" - ] - }, - "identifier_formats": { - "description": "Collection of identifier format variants.\nFormat variants for standards (ISNI with/without spaces, etc.).\n", - "items": { - "$ref": "#/$defs/IdentifierFormat" - }, - "type": [ - "array", - "null" - ] - }, - "jurisdictions": { - "description": "Collection of legal/administrative jurisdictions", - "items": { - "$ref": "#/$defs/Jurisdiction" - }, - "type": [ - "array", - "null" - ] - }, - "registration_authorities": { - "description": "Collection of registration authorities", - "items": { - "$ref": "#/$defs/RegistrationAuthority" - }, - "type": [ - "array", - "null" - ] - }, - "specificity_annotation": { - "anyOf": [ - { - "$ref": "#/$defs/SpecificityAnnotation" - }, - { - "type": "null" - } - ], - "description": "Structured specificity annotation metadata.\nCombines score, rationale, timestamp, and agent.\n" - }, - "standards": { - "description": "Collection of identifier standards (ISIL, ISNI, VIAF, etc.).\nStandards define identifier formats, registration authorities, and lookup URLs.\n", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] - }, - "standards_organizations": { - "description": "Collection of standards organizations (ISO, W3C, OCLC, etc.).\nOrganizations that define and maintain identifier standards.\n", - "items": { - "$ref": "#/$defs/StandardsOrganization" - }, - "type": [ - "array", - "null" - ] - }, - "subregions": { - "description": "Collection of subregions (ISO 3166-2).\nUsed for subnational geographic scope.\n", - "items": { - "$ref": "#/$defs/Subregion" - }, - "type": [ - "array", - "null" - ] - }, - "trade_registers": { - "description": "Collection of trade/business registers", - "items": { - "$ref": "#/$defs/TradeRegister" - }, - "type": [ - "array", - "null" - ] - } - }, - "title": "heritage_custodian_ontology", - "type": "object", - "version": "0.9.12" -} - diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index f434a3e67d..00d04cbb7f 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -1,12 +1,12 @@ { - "generated": "2026-02-02T16:28:22.515Z", + "generated": "2026-02-03T23:24:46.991Z", "schemaRoot": "/schemas/20251121/linkml", - "totalFiles": 2906, + "totalFiles": 2916, "categoryCounts": { "main": 4, - "class": 1389, - "enum": 156, - "slot": 1353, + "class": 1378, + "enum": 157, + "slot": 1373, "module": 4 }, "categories": [ @@ -155,11 +155,6 @@ "path": "modules/classes/Acquisition.yaml", "category": "class" }, - { - "name": "AcquisitionBudget", - "path": "modules/classes/AcquisitionBudget.yaml", - "category": "class" - }, { "name": "AcquisitionEvent", "path": "modules/classes/AcquisitionEvent.yaml", @@ -315,11 +310,6 @@ "path": "modules/classes/Alpha3Code.yaml", "category": "class" }, - { - "name": "AlternativeName", - "path": "modules/classes/AlternativeName.yaml", - "category": "class" - }, { "name": "Altitude", "path": "modules/classes/Altitude.yaml", @@ -2045,11 +2035,6 @@ "path": "modules/classes/DeviceTypes.yaml", "category": "class" }, - { - "name": "DiarizationSegment", - "path": "modules/classes/DiarizationSegment.yaml", - "category": "class" - }, { "name": "DiarizationStatus", "path": "modules/classes/DiarizationStatus.yaml", @@ -2175,11 +2160,6 @@ "path": "modules/classes/DigitalProficiency.yaml", "category": "class" }, - { - "name": "DigitizationBudget", - "path": "modules/classes/DigitizationBudget.yaml", - "category": "class" - }, { "name": "DimArchives", "path": "modules/classes/DimArchives.yaml", @@ -2360,11 +2340,6 @@ "path": "modules/classes/EADDownload.yaml", "category": "class" }, - { - "name": "EADIdentifier", - "path": "modules/classes/EADIdentifier.yaml", - "category": "class" - }, { "name": "EBook", "path": "modules/classes/EBook.yaml", @@ -3550,11 +3525,6 @@ "path": "modules/classes/Image.yaml", "category": "class" }, - { - "name": "ImagingEquipment", - "path": "modules/classes/ImagingEquipment.yaml", - "category": "class" - }, { "name": "ImpactMeasurement", "path": "modules/classes/ImpactMeasurement.yaml", @@ -3785,11 +3755,6 @@ "path": "modules/classes/LegalResponsibilityCollection.yaml", "category": "class" }, - { - "name": "LEIIdentifier", - "path": "modules/classes/LEIIdentifier.yaml", - "category": "class" - }, { "name": "LGBTArchive", "path": "modules/classes/LGBTArchive.yaml", @@ -4300,11 +4265,6 @@ "path": "modules/classes/MusicArchiveRecordSetTypes.yaml", "category": "class" }, - { - "name": "MusicSegment", - "path": "modules/classes/MusicSegment.yaml", - "category": "class" - }, { "name": "Nachlass", "path": "modules/classes/Nachlass.yaml", @@ -5555,11 +5515,6 @@ "path": "modules/classes/SensitivityLevel.yaml", "category": "class" }, - { - "name": "Series", - "path": "modules/classes/Series.yaml", - "category": "class" - }, { "name": "Service", "path": "modules/classes/Service.yaml", @@ -5781,13 +5736,8 @@ "category": "class" }, { - "name": "SpecificityAnnotation", - "path": "modules/classes/SpecificityAnnotation.yaml", - "category": "class" - }, - { - "name": "SpeechSegment", - "path": "modules/classes/SpeechSegment.yaml", + "name": "SpecificityScore", + "path": "modules/classes/SpecificityScore.yaml", "category": "class" }, { @@ -5905,11 +5855,6 @@ "path": "modules/classes/StorageConditionPolicy.yaml", "category": "class" }, - { - "name": "StorageFacility", - "path": "modules/classes/StorageFacility.yaml", - "category": "class" - }, { "name": "StorageLocation", "path": "modules/classes/StorageLocation.yaml", @@ -7026,6 +6971,11 @@ "path": "modules/enums/AsserterTypeEnum.yaml", "category": "enum" }, + { + "name": "AttestationConfidenceEnum", + "path": "modules/enums/AttestationConfidenceEnum.yaml", + "category": "enum" + }, { "name": "AudioEventTypeEnum", "path": "modules/enums/AudioEventTypeEnum.yaml", @@ -7778,63 +7728,63 @@ "displayName": "Slots", "files": [ { - "name": "accepts_or_accepted", - "path": "modules/slots/accepts_or_accepted.yaml", + "name": "accept", + "path": "modules/slots/20260202_matang/accept.yaml", "category": "slot" }, { - "name": "affects_or_affected", - "path": "modules/slots/affects_or_affected.yaml", + "name": "affect", + "path": "modules/slots/20260202_matang/affect.yaml", "category": "slot" }, { - "name": "aggregates_or_aggregated_from", - "path": "modules/slots/aggregates_or_aggregated_from.yaml", + "name": "aggregate_from", + "path": "modules/slots/20260202_matang/aggregate_from.yaml", "category": "slot" }, { - "name": "allocates_or_allocated", - "path": "modules/slots/allocates_or_allocated.yaml", + "name": "allocate", + "path": "modules/slots/20260202_matang/allocate.yaml", "category": "slot" }, { - "name": "allows_or_allowed", - "path": "modules/slots/allows_or_allowed.yaml", + "name": "allow", + "path": "modules/slots/20260202_matang/allow.yaml", "category": "slot" }, { - "name": "analyzes_or_analyzed", - "path": "modules/slots/analyzes_or_analyzed.yaml", + "name": "analyze", + "path": "modules/slots/20260202_matang/analyze.yaml", "category": "slot" }, { - "name": "applies_or_applied_to", - "path": "modules/slots/applies_or_applied_to.yaml", + "name": "api_ver", + "path": "modules/slots/api_ver.yaml", "category": "slot" }, { - "name": "asserts_or_asserted", - "path": "modules/slots/asserts_or_asserted.yaml", + "name": "apply_to", + "path": "modules/slots/20260202_matang/apply_to.yaml", + "category": "slot" + }, + { + "name": "assert", + "path": "modules/slots/20260202_matang/assert.yaml", + "category": "slot" + }, + { + "name": "basionym_authority", + "path": "modules/slots/basionym_authority.yaml", "category": "slot" }, { "name": "begin_of_the_begin", - "path": "modules/slots/begin_of_the_begin.yaml", + "path": "modules/slots/20260202_matang/begin_of_the_begin.yaml", "category": "slot" }, { "name": "begin_of_the_end", - "path": "modules/slots/begin_of_the_end.yaml", - "category": "slot" - }, - { - "name": "can_or_could_be_fulfilled_by", - "path": "modules/slots/can_or_could_be_fulfilled_by.yaml", - "category": "slot" - }, - { - "name": "can_or_could_be_retrieved_from", - "path": "modules/slots/can_or_could_be_retrieved_from.yaml", + "path": "modules/slots/20260202_matang/begin_of_the_end.yaml", "category": "slot" }, { @@ -7843,8 +7793,18 @@ "category": "slot" }, { - "name": "ceases_or_ceased_through", - "path": "modules/slots/ceases_or_ceased_through.yaml", + "name": "categorized_as", + "path": "modules/slots/20260202_matang/categorized_as.yaml", + "category": "slot" + }, + { + "name": "ceased_through", + "path": "modules/slots/20260202_matang/ceased_through.yaml", + "category": "slot" + }, + { + "name": "changed_through", + "path": "modules/slots/20260202_matang/changed_through.yaml", "category": "slot" }, { @@ -7857,19 +7817,14 @@ "path": "modules/slots/changes_or_changed_ownership_to.yaml", "category": "slot" }, - { - "name": "changes_or_changed_through", - "path": "modules/slots/changes_or_changed_through.yaml", - "category": "slot" - }, { "name": "classifies_or_classified", "path": "modules/slots/classifies_or_classified.yaml", "category": "slot" }, { - "name": "collects_or_collected", - "path": "modules/slots/collects_or_collected.yaml", + "name": "collect", + "path": "modules/slots/20260202_matang/collect.yaml", "category": "slot" }, { @@ -8477,6 +8432,16 @@ "path": "modules/slots/end_of_the_end.yaml", "category": "slot" }, + { + "name": "end_seconds", + "path": "modules/slots/end_seconds.yaml", + "category": "slot" + }, + { + "name": "end_time", + "path": "modules/slots/end_time.yaml", + "category": "slot" + }, { "name": "estimates_or_estimated", "path": "modules/slots/estimates_or_estimated.yaml", @@ -8522,6 +8487,11 @@ "path": "modules/slots/exposes_or_exposed.yaml", "category": "slot" }, + { + "name": "field_number", + "path": "modules/slots/field_number.yaml", + "category": "slot" + }, { "name": "filters_or_filtered", "path": "modules/slots/filters_or_filtered.yaml", @@ -8532,6 +8502,16 @@ "path": "modules/slots/final_of_the_final.yaml", "category": "slot" }, + { + "name": "foo_bar", + "path": "modules/slots/foo_bar.yaml", + "category": "slot" + }, + { + "name": "fulfilled_by", + "path": "modules/slots/20260202_matang/fulfilled_by.yaml", + "category": "slot" + }, { "name": "generates_or_generated", "path": "modules/slots/generates_or_generated.yaml", @@ -8547,11 +8527,36 @@ "path": "modules/slots/grants_or_granted_access_through.yaml", "category": "slot" }, + { + "name": "habitat_description", + "path": "modules/slots/habitat_description.yaml", + "category": "slot" + }, + { + "name": "has_api_version", + "path": "modules/slots/has_api_version.yaml", + "category": "slot" + }, + { + "name": "has_architectural_style", + "path": "modules/slots/has_architectural_style.yaml", + "category": "slot" + }, + { + "name": "has_archive_path", + "path": "modules/slots/has_archive_path.yaml", + "category": "slot" + }, { "name": "has_audio_quality_score", "path": "modules/slots/has_audio_quality_score.yaml", "category": "slot" }, + { + "name": "has_heritage_type", + "path": "modules/slots/has_heritage_type.yaml", + "category": "slot" + }, { "name": "has_locker", "path": "modules/slots/has_locker.yaml", @@ -8567,6 +8572,11 @@ "path": "modules/slots/has_or_had_accessibility_feature.yaml", "category": "slot" }, + { + "name": "has_or_had_accreditation", + "path": "modules/slots/has_or_had_accreditation.yaml", + "category": "slot" + }, { "name": "has_or_had_accumulation", "path": "modules/slots/has_or_had_accumulation.yaml", @@ -8722,11 +8732,6 @@ "path": "modules/slots/has_or_had_carrier.yaml", "category": "slot" }, - { - "name": "has_or_had_category", - "path": "modules/slots/has_or_had_category.yaml", - "category": "slot" - }, { "name": "has_or_had_chapter", "path": "modules/slots/has_or_had_chapter.yaml", @@ -8817,6 +8822,16 @@ "path": "modules/slots/has_or_had_custodian.yaml", "category": "slot" }, + { + "name": "has_or_had_custodian_name", + "path": "modules/slots/has_or_had_custodian_name.yaml", + "category": "slot" + }, + { + "name": "has_or_had_custodian_observation", + "path": "modules/slots/has_or_had_custodian_observation.yaml", + "category": "slot" + }, { "name": "has_or_had_data_quality_notes", "path": "modules/slots/has_or_had_data_quality_notes.yaml", @@ -9082,11 +9097,6 @@ "path": "modules/slots/has_or_had_hyponym.yaml", "category": "slot" }, - { - "name": "has_or_had_identifier", - "path": "modules/slots/has_or_had_identifier.yaml", - "category": "slot" - }, { "name": "has_or_had_image", "path": "modules/slots/has_or_had_image.yaml", @@ -9382,11 +9392,6 @@ "path": "modules/slots/has_or_had_reference.yaml", "category": "slot" }, - { - "name": "has_or_had_reply", - "path": "modules/slots/has_or_had_reply.yaml", - "category": "slot" - }, { "name": "has_or_had_requirement", "path": "modules/slots/has_or_had_requirement.yaml", @@ -9442,11 +9447,6 @@ "path": "modules/slots/has_or_had_scope.yaml", "category": "slot" }, - { - "name": "has_or_had_score", - "path": "modules/slots/has_or_had_score.yaml", - "category": "slot" - }, { "name": "has_or_had_secondary_platform", "path": "modules/slots/has_or_had_secondary_platform.yaml", @@ -9662,11 +9662,6 @@ "path": "modules/slots/has_or_had_unit.yaml", "category": "slot" }, - { - "name": "has_or_had_url", - "path": "modules/slots/has_or_had_url.yaml", - "category": "slot" - }, { "name": "has_or_had_use_case", "path": "modules/slots/has_or_had_use_case.yaml", @@ -9707,11 +9702,21 @@ "path": "modules/slots/has_or_had_writing_system.yaml", "category": "slot" }, + { + "name": "has_score", + "path": "modules/slots/20260202_matang/has_score.yaml", + "category": "slot" + }, { "name": "has_supervised_handling", "path": "modules/slots/has_supervised_handling.yaml", "category": "slot" }, + { + "name": "has_url", + "path": "modules/slots/20260202_matang/has_url.yaml", + "category": "slot" + }, { "name": "has_wifi", "path": "modules/slots/has_wifi.yaml", @@ -9727,6 +9732,11 @@ "path": "modules/slots/hold_or_held_record_set_type.yaml", "category": "slot" }, + { + "name": "identified_by", + "path": "modules/slots/20260202_matang/identified_by.yaml", + "category": "slot" + }, { "name": "identifies_or_identified", "path": "modules/slots/identifies_or_identified.yaml", @@ -10562,6 +10572,11 @@ "path": "modules/slots/is_or_was_published_by.yaml", "category": "slot" }, + { + "name": "is_or_was_recombined", + "path": "modules/slots/is_or_was_recombined.yaml", + "category": "slot" + }, { "name": "is_or_was_related_to", "path": "modules/slots/is_or_was_related_to.yaml", @@ -11797,6 +11812,11 @@ "path": "modules/slots/noise_floor_db.yaml", "category": "slot" }, + { + "name": "nomenclatural_code", + "path": "modules/slots/nomenclatural_code.yaml", + "category": "slot" + }, { "name": "nonprofit_subtype", "path": "modules/slots/nonprofit_subtype.yaml", @@ -13057,6 +13077,26 @@ "path": "modules/slots/profile_name.yaml", "category": "slot" }, + { + "name": "profile_url", + "path": "modules/slots/profile_url.yaml", + "category": "slot" + }, + { + "name": "protocol_name", + "path": "modules/slots/protocol_name.yaml", + "category": "slot" + }, + { + "name": "protocol_version", + "path": "modules/slots/protocol_version.yaml", + "category": "slot" + }, + { + "name": "provider", + "path": "modules/slots/provider.yaml", + "category": "slot" + }, { "name": "provides_or_provided", "path": "modules/slots/provides_or_provided.yaml", @@ -13422,6 +13462,11 @@ "path": "modules/slots/replaces_primary_location.yaml", "category": "slot" }, + { + "name": "replied_to", + "path": "modules/slots/20260202_matang/replied_to.yaml", + "category": "slot" + }, { "name": "report_document", "path": "modules/slots/report_document.yaml", @@ -13697,6 +13742,11 @@ "path": "modules/slots/retrieved_by.yaml", "category": "slot" }, + { + "name": "retrieved_from", + "path": "modules/slots/20260202_matang/retrieved_from.yaml", + "category": "slot" + }, { "name": "retrieved_on", "path": "modules/slots/retrieved_on.yaml", @@ -13827,6 +13877,11 @@ "path": "modules/slots/sales_activity.yaml", "category": "slot" }, + { + "name": "sampling_protocol", + "path": "modules/slots/sampling_protocol.yaml", + "category": "slot" + }, { "name": "scene_count", "path": "modules/slots/scene_count.yaml", @@ -14332,11 +14387,6 @@ "path": "modules/slots/specificity_agent.yaml", "category": "slot" }, - { - "name": "specificity_annotation", - "path": "modules/slots/specificity_annotation.yaml", - "category": "slot" - }, { "name": "specificity_rationale", "path": "modules/slots/specificity_rationale.yaml", diff --git a/schemas/20251121/linkml/modules/classes/APIEndpoint.yaml b/schemas/20251121/linkml/modules/classes/APIEndpoint.yaml index 971d2cf514..afb1f1e69a 100644 --- a/schemas/20251121/linkml/modules/classes/APIEndpoint.yaml +++ b/schemas/20251121/linkml/modules/classes/APIEndpoint.yaml @@ -13,13 +13,13 @@ classes: class_uri: schema:EntryPoint description: An API endpoint. slots: - - has_or_had_url - - has_or_had_description + - has_url + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_url diff --git a/schemas/20251121/linkml/modules/classes/APIRequest.yaml b/schemas/20251121/linkml/modules/classes/APIRequest.yaml index 1dba8727c1..43d8c27220 100644 --- a/schemas/20251121/linkml/modules/classes/APIRequest.yaml +++ b/schemas/20251121/linkml/modules/classes/APIRequest.yaml @@ -11,9 +11,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_endpoint - - ../slots/has_or_had_provenance - - ../slots/has_or_had_version + - ../slots/20260202_matang/has_endpoint + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/has_version classes: APIRequest: class_uri: prov:Activity @@ -21,9 +21,9 @@ classes: - schema:Action description: An API request event. slots: - - has_or_had_provenance - - has_or_had_endpoint - - has_or_had_version + - has_provenance + - has_endpoint + - has_version annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/APIVersion.yaml b/schemas/20251121/linkml/modules/classes/APIVersion.yaml index 9822e9fe7b..f52c1ba8e7 100644 --- a/schemas/20251121/linkml/modules/classes/APIVersion.yaml +++ b/schemas/20251121/linkml/modules/classes/APIVersion.yaml @@ -10,15 +10,15 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: APIVersion: class_uri: schema:SoftwareApplication description: Version of an API. slots: - - has_or_had_label - - has_or_had_identifier + - has_label + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AVEquipment.yaml b/schemas/20251121/linkml/modules/classes/AVEquipment.yaml index 542108919d..22a2d38f41 100644 --- a/schemas/20251121/linkml/modules/classes/AVEquipment.yaml +++ b/schemas/20251121/linkml/modules/classes/AVEquipment.yaml @@ -16,15 +16,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_name + - ../slots/20260202_matang/has_type classes: AVEquipment: class_uri: schema:Product description: AV Equipment. slots: - - has_or_had_name - - has_or_had_type + - has_name + - has_type annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AcademicArchive.yaml b/schemas/20251121/linkml/modules/classes/AcademicArchive.yaml index a2ed147975..563fcd5613 100644 --- a/schemas/20251121/linkml/modules/classes/AcademicArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/AcademicArchive.yaml @@ -9,26 +9,26 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_hypernym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/related_to classes: AcademicArchive: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization description: Archive of a higher education institution (university, college, polytechnic). slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_hypernym - - has_or_had_label - - has_or_had_score - - is_or_was_related_to + - has_hypernym + - has_label + - has_score + - related_to structured_aliases: - literal_form: Hochschularchiv in_language: de @@ -61,16 +61,16 @@ classes: hold_or_held_record_set_type: equals_expression: '["hc:UniversityAdministrativeFonds", "hc:StudentRecordSeries", "hc:FacultyPaperCollection", "hc:CampusDocumentationCollection"] ' - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true - has_or_had_hypernym: + has_hypernym: equals_expression: '["wd:Q166118"]' - has_or_had_label: + has_label: ifabsent: string(archive) exact_mappings: - wd:Q27032435 diff --git a/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetType.yaml index 27bb8ac6c0..6ab34db0ef 100644 --- a/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetType.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to classes: AcademicArchiveRecordSetType: description: A rico:RecordSetType for classifying collections of academic and @@ -20,10 +20,10 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope - - is_or_was_related_to + - has_type + - has_score + - has_scope + - related_to comments: - Collection type class for academic/higher education record sets - Part of dual-class pattern with AcademicArchive (custodian type) @@ -37,9 +37,9 @@ classes: - literal_form: academisch archiefbestand in_language: nl slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true exact_mappings: diff --git a/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetTypes.yaml index dcc54cf16d..68978835fe 100644 --- a/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetTypes.yaml @@ -14,8 +14,8 @@ default_prefix: hc imports: - ./AcademicArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/privacy_note @@ -75,8 +75,8 @@ classes: - rico:RecordSetType - rico-rst:Fonds slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -84,7 +84,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: UniversityAdministrativeFonds @@ -158,8 +158,8 @@ classes: - rico-rst:Series - UniversityAdministrativeFonds slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - privacy_note @@ -168,7 +168,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: AcademicStudentRecordSeries @@ -243,8 +243,8 @@ classes: acquisition_note: Typically acquired through donation or bequest. May include restrictions on access or publication specified by donor agreement. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -252,7 +252,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:LibraryType"]' record_set_type: equals_string: FacultyPaperCollection @@ -325,8 +325,8 @@ classes: collection_nature_note: Often includes artificial/assembled collections organized by subject, format, or documentation purpose rather than strict provenance. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -334,7 +334,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:LibraryType", "hc:MuseumType"]' record_set_type: equals_string: CampusDocumentationCollection diff --git a/schemas/20251121/linkml/modules/classes/AcademicInstitution.yaml b/schemas/20251121/linkml/modules/classes/AcademicInstitution.yaml index 4de8aeb34e..912c22a620 100644 --- a/schemas/20251121/linkml/modules/classes/AcademicInstitution.yaml +++ b/schemas/20251121/linkml/modules/classes/AcademicInstitution.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: AcademicInstitution: class_uri: schema:EducationalOrganization description: Academic institution. slots: - - has_or_had_name + - has_name annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AcademicProgram.yaml b/schemas/20251121/linkml/modules/classes/AcademicProgram.yaml index a21fe41691..1044660e81 100644 --- a/schemas/20251121/linkml/modules/classes/AcademicProgram.yaml +++ b/schemas/20251121/linkml/modules/classes/AcademicProgram.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: AcademicProgram: class_uri: schema:EducationalOccupationalProgram description: Academic program. slots: - - has_or_had_name + - has_name annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Access.yaml b/schemas/20251121/linkml/modules/classes/Access.yaml index 1465f6f82a..211488a55d 100644 --- a/schemas/20251121/linkml/modules/classes/Access.yaml +++ b/schemas/20251121/linkml/modules/classes/Access.yaml @@ -12,10 +12,10 @@ imports: - linkml:types - ../enums/AccessTypeEnum - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_frequency - - ../slots/has_or_had_type - - ../slots/has_or_had_user_category + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_frequency + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_user_category - ../slots/temporal_extent classes: Access: @@ -26,10 +26,10 @@ classes: Replaces simple string descriptions of access conditions with structured data capturing access types, eligible users, conditions, and restrictions. **Key Properties**: - - `has_or_had_type`: Type of access (PUBLIC, BY_APPOINTMENT, RESTRICTED, etc.) - - `has_or_had_user_category`: Who can access (public, students, faculty, researchers) + - `has_type`: Type of access (PUBLIC, BY_APPOINTMENT, RESTRICTED, etc.) + - `has_user_category`: Who can access (public, students, faculty, researchers) - `condition_of_access`: Conditions or requirements for access - - `has_or_had_description`: Free-text description + - `has_description`: Free-text description - `temporal_extent`: When this access policy applies **Access Types**: - PUBLIC: Open to general public @@ -51,16 +51,16 @@ classes: related_mappings: - crm:E30_Right slots: - - has_or_had_type - - has_or_had_user_category - - has_or_had_description + - has_type + - has_user_category + - has_description - temporal_extent - - has_or_had_frequency + - has_frequency slot_usage: - has_or_had_type: + has_type: range: AccessTypeEnum required: true - has_or_had_user_category: + has_user_category: required: false examples: - value: "enrolled students" @@ -70,13 +70,13 @@ classes: required: false range: TimeSpan inlined: true - has_or_had_frequency: + has_frequency: required: false range: Frequency inlined: true examples: - value: - has_or_had_label: "Daily" + has_label: "Daily" annotations: specificity_score: 0.50 specificity_rationale: "Moderately specific - applies to collection and service access contexts" @@ -88,24 +88,24 @@ classes: - "RULE 53: Part of collection_access → offers_or_offered_access + Access migration" examples: - value: - has_or_had_type: PUBLIC - has_or_had_description: "Open to general public during gallery hours" - has_or_had_user_category: + has_type: PUBLIC + has_description: "Open to general public during gallery hours" + has_user_category: - "general public" - value: - has_or_had_type: BY_APPOINTMENT - has_or_had_user_category: + has_type: BY_APPOINTMENT + has_user_category: - "credentialed researchers" - "graduate students with faculty sponsor" - value: - has_or_had_type: ACADEMIC - has_or_had_description: "Open to enrolled students and faculty; public by appointment" - has_or_had_user_category: + has_type: ACADEMIC + has_description: "Open to enrolled students and faculty; public by appointment" + has_user_category: - "enrolled students" - "faculty" - "research staff" - value: - has_or_had_type: DIGITAL_ONLY - has_or_had_description: "Collection accessible only through online database" - has_or_had_user_category: + has_type: DIGITAL_ONLY + has_description: "Collection accessible only through online database" + has_user_category: - "anyone with internet access" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/AccessApplication.yaml b/schemas/20251121/linkml/modules/classes/AccessApplication.yaml index 1e9f21b6f3..47c8fcc55d 100644 --- a/schemas/20251121/linkml/modules/classes/AccessApplication.yaml +++ b/schemas/20251121/linkml/modules/classes/AccessApplication.yaml @@ -8,19 +8,19 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_url default_prefix: hc classes: AccessApplication: class_uri: schema:Action slots: - - has_or_had_label - - has_or_had_description - - has_or_had_url + - has_label + - has_description + - has_url slot_usage: - has_or_had_url: + has_url: range: uri inlined: false # Fixed invalid inline for primitive type annotations: diff --git a/schemas/20251121/linkml/modules/classes/AccessControl.yaml b/schemas/20251121/linkml/modules/classes/AccessControl.yaml index bccdab1de7..cdfbfa0a31 100644 --- a/schemas/20251121/linkml/modules/classes/AccessControl.yaml +++ b/schemas/20251121/linkml/modules/classes/AccessControl.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: AccessControl: class_uri: schema:DigitalDocumentPermission description: Access control policy. slots: - - has_or_had_description + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AccessInterface.yaml b/schemas/20251121/linkml/modules/classes/AccessInterface.yaml index 6be20423e2..3f2aaed8ff 100644 --- a/schemas/20251121/linkml/modules/classes/AccessInterface.yaml +++ b/schemas/20251121/linkml/modules/classes/AccessInterface.yaml @@ -8,19 +8,19 @@ prefixes: dcat: http://www.w3.org/ns/dcat# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_url default_prefix: hc classes: AccessInterface: class_uri: dcat:DataService slots: - - has_or_had_url - - has_or_had_label - - has_or_had_description + - has_url + - has_label + - has_description slot_usage: - has_or_had_url: + has_url: range: uri inlined: false # Fixed invalid inline for primitive type required: true diff --git a/schemas/20251121/linkml/modules/classes/AccessLevel.yaml b/schemas/20251121/linkml/modules/classes/AccessLevel.yaml index f58da6f9cf..7aa413d5fd 100644 --- a/schemas/20251121/linkml/modules/classes/AccessLevel.yaml +++ b/schemas/20251121/linkml/modules/classes/AccessLevel.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: AccessLevel: class_uri: skos:Concept description: Access level concept. slots: - - has_or_had_label + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml b/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml index 4405253c09..119ae5a046 100644 --- a/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml +++ b/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml @@ -15,11 +15,11 @@ imports: - linkml:types - ../slots/credentials_required - ../slots/cultural_protocol_url - - ../slots/has_or_had_description - - ../slots/has_or_had_embargo_end_date - - ../slots/has_or_had_embargo_reason - - ../slots/has_or_had_level - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_embargo_end_date + - ../slots/20260202_matang/has_embargo_reason + - ../slots/20260202_matang/has_level + - ../slots/20260202_matang/has_score - ../slots/imposes_or_imposed - ../slots/legal_basis - ../slots/policy_id @@ -49,15 +49,15 @@ classes: related_mappings: - rico:hasOrHadAllMembersWithAccessConditions slots: - - has_or_had_description - - has_or_had_level + - has_description + - has_level - requires_appointment - poses_or_posed_condition - requires_or_required - credentials_required - cultural_protocol_url - - has_or_had_embargo_end_date - - has_or_had_embargo_reason + - has_embargo_end_date + - has_embargo_reason - imposes_or_imposed - legal_basis - policy_id @@ -66,7 +66,7 @@ classes: - review_date - rights_statement - rights_statement_url - - has_or_had_score + - has_score - temporal_extent slot_usage: policy_id: @@ -82,25 +82,25 @@ classes: - value: Open Access - value: Researchers Only - value: Embargoed until 2050 - has_or_had_level: + has_level: range: AccessLevel required: true inlined: true examples: - value: - has_or_had_label: PUBLIC_OPEN + has_label: PUBLIC_OPEN - value: - has_or_had_label: RESEARCHERS_ONLY + has_label: RESEARCHERS_ONLY - value: - has_or_had_label: EMBARGOED - has_or_had_description: + has_label: EMBARGOED + has_description: # range: string inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: Open to all visitors during reading room hours (Mon-Fri 9-17) - value: - description_text: Access restricted to academic researchers with institutional has_or_had_affiliation + description_text: Access restricted to academic researchers with institutional has_affiliation poses_or_posed_condition: range: Condition multivalued: true @@ -108,11 +108,11 @@ classes: inlined_as_list: true examples: - value: - - has_or_had_type: AccessCondition - has_or_had_description: + - has_type: AccessCondition + has_description: description_text: Valid government-issued ID required - - has_or_had_type: AccessCondition - has_or_had_description: + - has_type: AccessCondition + has_description: description_text: Registration form must be completed rights_statement: # range: string @@ -144,21 +144,21 @@ classes: multivalued: true examples: - value: - has_or_had_quantity: - has_or_had_unit: - has_or_had_description: Daily reading room fee + has_quantity: + has_unit: + has_description: Daily reading room fee - value: - has_or_had_quantity: - has_or_had_description: Free for researchers + has_quantity: + has_description: Free for researchers - value: - has_or_had_quantity: - has_or_had_unit: - has_or_had_description: General public fee - has_or_had_embargo_end_date: + has_quantity: + has_unit: + has_description: General public fee + has_embargo_end_date: range: date examples: - value: '2050-01-01' - has_or_had_embargo_reason: + has_embargo_reason: # range: string examples: - value: Donor privacy restrictions per deed of gift @@ -191,8 +191,8 @@ classes: examples: - value: - appointment_id: hc:appointment/special-collections-48h - has_or_had_label: Special Collections Appointment - has_or_had_description: Book at least 48 hours in advance for manuscript access + has_label: Special Collections Appointment + has_description: Book at least 48 hours in advance for manuscript access comments: - AccessPolicy defines access conditions for Collection instances - Used by Collection.access_policy_ref to link policies to holdings @@ -208,68 +208,68 @@ classes: - value: policy_id: https://nde.nl/ontology/hc/access-policy/nationaal-archief-open policy_name: Nationaal Archief Public Access - has_or_had_level: - has_or_had_label: PUBLIC_OPEN - has_or_had_description: + has_level: + has_label: PUBLIC_OPEN + has_description: description_text: Open to all visitors during reading room hours poses_or_posed_condition: - - has_or_had_type: AccessCondition - has_or_had_description: + - has_type: AccessCondition + has_description: description_text: Valid government-issued ID required - - has_or_had_type: AccessCondition - has_or_had_description: + - has_type: AccessCondition + has_description: description_text: Registration form must be completed - - has_or_had_type: HandlingCondition - has_or_had_description: + - has_type: HandlingCondition + has_description: description_text: Original materials handled with gloves registration_required: true requires_appointment: false - has_or_had_contact_point: + has_contact_point: - value: policy_id: https://nde.nl/ontology/hc/access-policy/donor-embargo-2050 policy_name: Embargoed until 2050 - has_or_had_level: - has_or_had_label: EMBARGOED - has_or_had_description: + has_level: + has_label: EMBARGOED + has_description: description_text: Collection closed until 2050 per donor agreement - has_or_had_embargo_end_date: '2050-01-01' - has_or_had_embargo_reason: Donor privacy restrictions per deed of gift + has_embargo_end_date: '2050-01-01' + has_embargo_reason: Donor privacy restrictions per deed of gift legal_basis: Deed of Gift clause 4.2 review_date: '2049-06-01' - value: policy_id: https://nde.nl/ontology/hc/access-policy/dim-archive-preservation policy_name: DIM Archive - Preservation Only - has_or_had_level: - has_or_had_label: TEMPORARILY_CLOSED - has_or_had_description: + has_level: + has_label: TEMPORARILY_CLOSED + has_description: description_text: Materials in preservation storage, not currently accessible poses_or_posed_condition: - - has_or_had_type: ProcessingCondition - has_or_had_description: + - has_type: ProcessingCondition + has_description: description_text: Awaiting processing and cataloging - - has_or_had_type: AccessCondition - has_or_had_description: + - has_type: AccessCondition + has_description: description_text: Access may be arranged for urgent research needs requires_appointment: true credentials_required: PROFESSIONAL - has_or_had_contact_point: + has_contact_point: - value: policy_id: https://nde.nl/ontology/hc/access-policy/special-collections-rich policy_name: Special Collections - Rich Appointment Policy - has_or_had_level: - has_or_had_label: RESEARCHERS_ONLY - has_or_had_description: + has_level: + has_label: RESEARCHERS_ONLY + has_description: description_text: Academic researchers with institutional affiliation requires_or_required: - appointment_id: hc:appointment/special-collections-booking - has_or_had_label: Special Collections Appointment - has_or_had_description: 'Appointments for manuscript and rare book collections must be made + has_label: Special Collections Appointment + has_description: 'Appointments for manuscript and rare book collections must be made at least 48 hours in advance. Please specify which materials you wish to consult. ' registration_required: true credentials_required: INSTITUTIONAL - has_or_had_contact_point: + has_contact_point: annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AccessTriggerEvent.yaml b/schemas/20251121/linkml/modules/classes/AccessTriggerEvent.yaml index f3da675263..da547acc3d 100644 --- a/schemas/20251121/linkml/modules/classes/AccessTriggerEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/AccessTriggerEvent.yaml @@ -10,14 +10,14 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description - ../slots/temporal_extent classes: AccessTriggerEvent: class_uri: prov:Activity description: Access trigger event. slots: - - has_or_had_description + - has_description - temporal_extent annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/AccessibilityFeature.yaml b/schemas/20251121/linkml/modules/classes/AccessibilityFeature.yaml index 32760e3861..4c1a25b80a 100644 --- a/schemas/20251121/linkml/modules/classes/AccessibilityFeature.yaml +++ b/schemas/20251121/linkml/modules/classes/AccessibilityFeature.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: AccessibilityFeature: class_uri: schema:LocationFeatureSpecification @@ -25,5 +25,5 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description diff --git a/schemas/20251121/linkml/modules/classes/AccessionEvent.yaml b/schemas/20251121/linkml/modules/classes/AccessionEvent.yaml index b6ef49892b..f15ce80bfa 100644 --- a/schemas/20251121/linkml/modules/classes/AccessionEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/AccessionEvent.yaml @@ -9,9 +9,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label - ../slots/temporal_extent default_prefix: hc classes: @@ -19,9 +19,9 @@ classes: class_uri: rico:Instantiation slots: - temporal_extent - - has_or_had_label - - has_or_had_description - - has_or_had_identifier + - has_label + - has_description + - identified_by slot_usage: temporal_extent: required: true diff --git a/schemas/20251121/linkml/modules/classes/AccessionNumber.yaml b/schemas/20251121/linkml/modules/classes/AccessionNumber.yaml index 392d7a9fd9..cf1b10b5da 100644 --- a/schemas/20251121/linkml/modules/classes/AccessionNumber.yaml +++ b/schemas/20251121/linkml/modules/classes/AccessionNumber.yaml @@ -10,16 +10,16 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: AccessionNumber: is_a: Identifier class_uri: rico:Identifier slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description exact_mappings: - crm:E42_Identifier annotations: diff --git a/schemas/20251121/linkml/modules/classes/AccountIdentifier.yaml b/schemas/20251121/linkml/modules/classes/AccountIdentifier.yaml index 0e8ad8639c..099b5b981d 100644 --- a/schemas/20251121/linkml/modules/classes/AccountIdentifier.yaml +++ b/schemas/20251121/linkml/modules/classes/AccountIdentifier.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: AccountIdentifier: class_uri: schema:PropertyValue @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_value + - has_value diff --git a/schemas/20251121/linkml/modules/classes/AccountStatus.yaml b/schemas/20251121/linkml/modules/classes/AccountStatus.yaml index 53986f5f20..ef79efbd74 100644 --- a/schemas/20251121/linkml/modules/classes/AccountStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/AccountStatus.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: AccountStatus: class_uri: skos:Concept @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_label + - has_label diff --git a/schemas/20251121/linkml/modules/classes/Accreditation.yaml b/schemas/20251121/linkml/modules/classes/Accreditation.yaml index cb9527b3cd..01b7644d75 100644 --- a/schemas/20251121/linkml/modules/classes/Accreditation.yaml +++ b/schemas/20251121/linkml/modules/classes/Accreditation.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: Accreditation: class_uri: schema:Permit @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_label + - has_label diff --git a/schemas/20251121/linkml/modules/classes/AccreditationBody.yaml b/schemas/20251121/linkml/modules/classes/AccreditationBody.yaml index 3f1ca1a2a4..6f092481f2 100644 --- a/schemas/20251121/linkml/modules/classes/AccreditationBody.yaml +++ b/schemas/20251121/linkml/modules/classes/AccreditationBody.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: AccreditationBody: class_uri: schema:Organization @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_name + - has_name diff --git a/schemas/20251121/linkml/modules/classes/Accumulation.yaml b/schemas/20251121/linkml/modules/classes/Accumulation.yaml index 3607972cc8..bccaf02ba8 100644 --- a/schemas/20251121/linkml/modules/classes/Accumulation.yaml +++ b/schemas/20251121/linkml/modules/classes/Accumulation.yaml @@ -10,7 +10,7 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description - ../slots/temporal_extent classes: Accumulation: @@ -18,7 +18,7 @@ classes: description: The relation/period during which the records were accumulated. slots: - temporal_extent - - has_or_had_description + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AccuracyLevel.yaml b/schemas/20251121/linkml/modules/classes/AccuracyLevel.yaml index a8a24ef48c..6dce59e5a8 100644 --- a/schemas/20251121/linkml/modules/classes/AccuracyLevel.yaml +++ b/schemas/20251121/linkml/modules/classes/AccuracyLevel.yaml @@ -10,17 +10,17 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_value classes: AccuracyLevel: class_uri: skos:Concept description: A qualitative or quantitative level of accuracy (e.g. for coordinates). slots: - - has_or_had_label - - has_or_had_description - - has_or_had_value + - has_label + - has_description + - has_value annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Acquisition.yaml b/schemas/20251121/linkml/modules/classes/Acquisition.yaml index 71a7bc52e9..5ea4fb6413 100644 --- a/schemas/20251121/linkml/modules/classes/Acquisition.yaml +++ b/schemas/20251121/linkml/modules/classes/Acquisition.yaml @@ -16,7 +16,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/temporal_extent # default_range: string enums: @@ -83,7 +83,7 @@ classes: - dwc:Event slots: - temporal_extent - - has_or_had_score + - has_score comments: - Created per slot_fixes.yaml revision for collection_date migration - Replaces simple collection_date string with structured acquisition event diff --git a/schemas/20251121/linkml/modules/classes/AcquisitionEvent.yaml b/schemas/20251121/linkml/modules/classes/AcquisitionEvent.yaml index 9f14db3a2b..3483f7ac61 100644 --- a/schemas/20251121/linkml/modules/classes/AcquisitionEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/AcquisitionEvent.yaml @@ -10,21 +10,21 @@ prefixes: imports: - ./Entity - linkml:types - - ../slots/has_or_had_method - - ../slots/has_or_had_origin - - ../slots/has_or_had_provenance + - ../slots/20260202_matang/has_method + - ../slots/20260202_matang/has_origin + - ../slots/20260202_matang/has_provenance - ../slots/temporal_extent default_prefix: hc classes: AcquisitionEvent: class_uri: rico:Instantiation slots: - - has_or_had_origin + - has_origin - temporal_extent - - has_or_had_method - - has_or_had_provenance + - has_method + - has_provenance slot_usage: - has_or_had_origin: + has_origin: range: Entity required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/AcquisitionMethod.yaml b/schemas/20251121/linkml/modules/classes/AcquisitionMethod.yaml index b3895d515c..c85411e4bd 100644 --- a/schemas/20251121/linkml/modules/classes/AcquisitionMethod.yaml +++ b/schemas/20251121/linkml/modules/classes/AcquisitionMethod.yaml @@ -15,15 +15,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: AcquisitionMethod: class_uri: crm:E55_Type slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Activity.yaml b/schemas/20251121/linkml/modules/classes/Activity.yaml index b064191c6d..4f49d0d829 100644 --- a/schemas/20251121/linkml/modules/classes/Activity.yaml +++ b/schemas/20251121/linkml/modules/classes/Activity.yaml @@ -15,19 +15,19 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/has_or_had_status - - ../slots/is_or_was_succeeded_by + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/succeeded_by - ../slots/note - ../slots/preceding_activity - ../slots/temporal_extent classes: Activity: class_uri: prov:Activity - description: "Base class for activities performed by heritage custodians.\n\n**DEFINITION**:\n\nAn Activity represents a discrete or ongoing action undertaken by a heritage\ncustodian. This is the base class for all activity instances in the ontology.\n\n**ONTOLOGICAL ALIGNMENT**:\n\n| Ontology | Class | Use Case |\n|----------|-------|----------|\n| PROV-O | prov:Activity | Primary - provenance tracking |\n| CIDOC-CRM | crm:E7_Activity | Cultural heritage domain |\n| RiC-O | rico:Activity | Archival activities |\n| Schema.org | schema:Action | Web semantics |\n\n**KEY RELATIONSHIPS**:\n\n```\nActivity\n \u2502\n \u251C\u2500\u2500 has_or_had_activity_type \u2192 ActivityType (classification)\n \u2502 \u2514\u2500\u2500 CurationActivityType, ConservationActivityType, etc.\n \u2502\n \u251C\u2500\u2500 has_timespan \u2192 TimeSpan (temporal extent)\n \u2502 \u2514\u2500\u2500 start_date, end_date, fuzzy bounds\n \u2502\n \u251C\u2500\u2500 is_or_was_succeeded_by\ + description: "Base class for activities performed by heritage custodians.\n\n**DEFINITION**:\n\nAn Activity represents a discrete or ongoing action undertaken by a heritage\ncustodian. This is the base class for all activity instances in the ontology.\n\n**ONTOLOGICAL ALIGNMENT**:\n\n| Ontology | Class | Use Case |\n|----------|-------|----------|\n| PROV-O | prov:Activity | Primary - provenance tracking |\n| CIDOC-CRM | crm:E7_Activity | Cultural heritage domain |\n| RiC-O | rico:Activity | Archival activities |\n| Schema.org | schema:Action | Web semantics |\n\n**KEY RELATIONSHIPS**:\n\n```\nActivity\n \u2502\n \u251C\u2500\u2500 has_activity_type \u2192 ActivityType (classification)\n \u2502 \u2514\u2500\u2500 CurationActivityType, ConservationActivityType, etc.\n \u2502\n \u251C\u2500\u2500 has_timespan \u2192 TimeSpan (temporal extent)\n \u2502 \u2514\u2500\u2500 start_date, end_date, fuzzy bounds\n \u2502\n \u251C\u2500\u2500 succeeded_by\ \ \u2192 Activity (succession)\n \u2502\n \u2514\u2500\u2500 preceding_activity \u2192 Activity (inverse succession)\n```\n\n**SPECIALIZATION**:\n\nThis base class is extended by domain-specific activity classes:\n- CurationActivity - Collection management (existing, to be refactored)\n- ConservationActivity - Preservation work\n- ExhibitionActivity - Exhibition planning and execution\n- DigitizationActivity - Digital transformation projects\n\n**PROVENANCE (PROV-O)**:\n\nActivities generate provenance information:\n- `prov:Activity` - The activity itself\n- `prov:wasAssociatedWith` - Responsible agents\n- `prov:used` - Entities processed\n- `prov:generated` - Entities created\n- `prov:atTime` - Temporal extent\n" exact_mappings: - prov:Activity @@ -38,17 +38,17 @@ classes: related_mappings: - aat:300054277 slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description - temporal_extent - - is_or_was_succeeded_by + - succeeded_by - preceding_activity - - has_or_had_status + - has_status - note - - has_or_had_score + - has_score slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true @@ -58,13 +58,13 @@ classes: identifier_value: https://nde.nl/ontology/hc/activity/rijksmuseum-inventory-2025-001 - value: identifier_value: https://nde.nl/ontology/hc/activity/nationaal-archief-digitization-voc-2024 - has_or_had_label: + has_label: # range: string required: true examples: - value: 2025 Annual Collection Inventory - value: VOC Archives Digitization Project Phase 2 - has_or_had_description: + has_description: # range: string required: false examples: @@ -79,7 +79,7 @@ classes: - value: begin_of_the_begin: '2025-01-15' end_of_the_end: '2025-03-31' - is_or_was_succeeded_by: + succeeded_by: # range: string multivalued: true inlined: false @@ -90,7 +90,7 @@ classes: inlined: false examples: - value: https://nde.nl/ontology/hc/activity/condition-survey-2024 - has_or_had_status: + has_status: # range: string required: false examples: @@ -103,35 +103,35 @@ classes: annotations: specificity_score: '0.50' specificity_rationale: Moderately specific - Activity is a core domain concept but broadly applicable across all heritage custodian types. - has_or_had_score: null + has_score: null custodian_types: "['*']" comments: - Base class for all heritage domain activities - Extended by CurationActivity, ConservationActivity, etc. - - 'Uses generic slots: has_activity_identifier, has_or_had_activity_type, has_timespan' + - 'Uses generic slots: has_activity_identifier, has_activity_type, has_timespan' - PROV-O primary alignment for provenance tracking - - Supports activity chaining via is_or_was_succeeded_by/preceding_activity + - Supports activity chaining via succeeded_by/preceding_activity see_also: - https://www.w3.org/TR/prov-o/ - http://www.cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E7 - https://www.ica.org/standards/RiC/ontology examples: - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/activity/rijksmuseum-inventory-2025-001 - has_or_had_label: 2025 Annual Collection Inventory - Dutch Masters - has_or_had_description: "Annual physical inventory of the Dutch Masters collection \n(Gallery of Honour and adjacent galleries). Spot-check methodology \nwith 20% sample verification against CMS records.\n" + has_label: 2025 Annual Collection Inventory - Dutch Masters + has_description: "Annual physical inventory of the Dutch Masters collection \n(Gallery of Honour and adjacent galleries). Spot-check methodology \nwith 20% sample verification against CMS records.\n" temporal_extent: begin_of_the_begin: '2025-01-15' end_of_the_end: '2025-03-31' - has_or_had_status: IN_PROGRESS + has_status: IN_PROGRESS - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/activity/kb-digitization-medieval-2024 - has_or_had_label: Medieval Manuscripts Digitization Project - has_or_had_description: "High-resolution digitization of 342 medieval manuscripts with \nHTR processing and metadata enhancement. IIIF-compliant output.\n" + has_label: Medieval Manuscripts Digitization Project + has_description: "High-resolution digitization of 342 medieval manuscripts with \nHTR processing and metadata enhancement. IIIF-compliant output.\n" temporal_extent: begin_of_the_begin: '2024-03-01' end_of_the_end: '2025-12-31' - has_or_had_status: IN_PROGRESS + has_status: IN_PROGRESS preceding_activity: https://nde.nl/ontology/hc/activity/kb-condition-survey-2023 \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/ActivityType.yaml b/schemas/20251121/linkml/modules/classes/ActivityType.yaml index 54d73fd3f1..6f66c0166e 100644 --- a/schemas/20251121/linkml/modules/classes/ActivityType.yaml +++ b/schemas/20251121/linkml/modules/classes/ActivityType.yaml @@ -14,10 +14,10 @@ default_prefix: hc imports: - linkml:types - ../slots/created - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score - ../slots/modified classes: ActivityType: @@ -37,12 +37,12 @@ classes: slots: - created - modified - - has_or_had_score - - has_or_had_description - - has_or_had_identifier - - has_or_had_label + - has_score + - has_description + - identified_by + - has_label slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true @@ -50,7 +50,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/activity-type/curation - value: wd:Q1348059 - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -59,7 +59,7 @@ classes: - Curation@en - curatie@nl - Kuration@de - has_or_had_description: + has_description: # range: string required: false examples: @@ -71,12 +71,12 @@ classes: annotations: specificity_score: '0.40' specificity_rationale: Moderately specific - activity types are domain-relevant but not specific to any single conversation template. - has_or_had_score: null + has_score: null custodian_types: "['*']" comments: - Abstract base class - use specific subclasses (CurationType, ConservationType, etc.) - Represents ACTIVITY TYPES, not activity instances - - Activity.has_or_had_activity_type references these type classes + - Activity.has_activity_type references these type classes - Follows Type/Types naming convention (Rule 0b) - Organized by function, domain, and typical characteristics see_also: @@ -86,10 +86,10 @@ classes: - https://collectionstrust.org.uk/spectrum/ examples: - value: - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/activity-type/curation - wd:Q1348059 - has_or_had_label: + has_label: - Curation@en - curatie@nl - has_or_had_description: Activities related to ongoing collection management \ No newline at end of file + has_description: Activities related to ongoing collection management \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Actor.yaml b/schemas/20251121/linkml/modules/classes/Actor.yaml index ce522d3173..e1a6fc7e53 100644 --- a/schemas/20251121/linkml/modules/classes/Actor.yaml +++ b/schemas/20251121/linkml/modules/classes/Actor.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name - - ../slots/has_or_had_role + - ../slots/20260202_matang/has_name + - ../slots/20260202_matang/has_role classes: Actor: class_uri: prov:Agent description: Involved actor. slots: - - has_or_had_name - - has_or_had_role + - has_name + - has_role annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Address.yaml b/schemas/20251121/linkml/modules/classes/Address.yaml index ef619272a7..7577920376 100644 --- a/schemas/20251121/linkml/modules/classes/Address.yaml +++ b/schemas/20251121/linkml/modules/classes/Address.yaml @@ -17,12 +17,12 @@ imports: - ./HouseNumber - linkml:types - ../slots/country_name - - ../slots/has_or_had_label - - ../slots/has_or_had_section - - ../slots/has_or_had_type - - ../slots/is_or_was_derived_from # was: was_derived_from - - ../slots/is_or_was_generated_by # was: was_generated_by - - ../slots/is_or_was_located_in + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_section + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/derived_from # was: was_derived_from + - ../slots/20260202_matang/generated_by # was: was_generated_by + - ../slots/20260202_matang/located_in - ../slots/latitude - ../slots/locality - ../slots/longitude @@ -46,16 +46,16 @@ classes: An address consists of hierarchical components: ``` Address - ├── has_or_had_section (e.g., "1", "221B", "25-27") - ├── has_or_had_label (street name as Label, e.g., "Museumstraat") + ├── has_section (e.g., "1", "221B", "25-27") + ├── has_label (street name as Label, e.g., "Museumstraat") ├── postal_code (e.g., "1071 XX") ├── locality (e.g., "Amsterdam") ├── region (e.g., "Noord-Holland", "NL-NH") ├── country_name (e.g., "Netherlands", "NL") - └── has_or_had_label (formatted address as Label) + └── has_label (formatted address as Label) ``` - NOTE: street_name slot migrated to has_or_had_label + Label (2026-01-17, Rule 53/56) - NOTE: street_address slot removed - was redundant string; use house_number + has_or_had_label (2026-01-17, Rule 53/56) + NOTE: street_name slot migrated to has_label + Label (2026-01-17, Rule 53/56) + NOTE: street_address slot removed - was redundant string; use house_number + has_label (2026-01-17, Rule 53/56) **ADDRESS TYPES FOR HERITAGE CUSTODIANS**: | Type | Use Case | |------|----------| @@ -68,16 +68,16 @@ classes: **USAGE EXAMPLES**: ```yaml # Simple address with formatted string - has_or_had_address: + has_address: - address_formatted: "Museumstraat 1, 1071 XX Amsterdam, Netherlands" address_type: HEADQUARTERS # Structured address with components - has_or_had_address: - - has_or_had_label: - - has_or_had_label: "Museumstraat" + has_address: + - has_label: + - has_label: "Museumstraat" language: "nl" - has_or_had_section: - - has_or_had_value: "1" + has_section: + - has_value: "1" postal_code: "1071 XX" locality: "Amsterdam" region: "Noord-Holland" @@ -96,7 +96,7 @@ classes: Address data may be extracted from various sources (websites, Google Maps, registries). Track provenance with: - `was_derived_from`: Link to source observation - - `is_or_was_generated_by`: Link to extraction activity + - `generated_by`: Link to extraction activity exact_mappings: - vcard:Address close_mappings: @@ -108,40 +108,40 @@ classes: - schema:address slots: # Street-level components - - has_or_had_section - # REMOVED: street_name - migrated to has_or_had_label + Label (2026-01-17, Rule 53/56) - # REMOVED: street_address - redundant string slot; use house_number + has_or_had_label (2026-01-17, Rule 53/56) + - has_section + # REMOVED: street_name - migrated to has_label + Label (2026-01-17, Rule 53/56) + # REMOVED: street_address - redundant string slot; use house_number + has_label (2026-01-17, Rule 53/56) # Postal components - postal_code # Locality/geographic hierarchy - locality - # REMOVED: city - migrated to is_or_was_located_in + City (2026-01-18, Rule 53) - - is_or_was_located_in + # REMOVED: city - migrated to located_in + City (2026-01-18, Rule 53) + - located_in - region - country_name - # Formatted representation (MIGRATED: address_formatted → has_or_had_label) - - has_or_had_label - # Classification (MIGRATED: address_type → has_or_had_type) - - has_or_had_type + # Formatted representation (MIGRATED: address_formatted → has_label) + - has_label + # Classification (MIGRATED: address_type → has_type) + - has_type # Geographic coordinates (for geocoded addresses) - latitude - longitude # Provenance - - is_or_was_derived_from # was: was_derived_from - migrated per Rule 53 - - is_or_was_generated_by # was: was_generated_by - migrated per Rule 53 + - derived_from # was: was_derived_from - migrated per Rule 53 + - generated_by # was: was_generated_by - migrated per Rule 53 slot_usage: - has_or_had_section: + has_section: range: HouseNumber required: false examples: - value: - has_or_had_value: "1" + has_value: "1" - value: - has_or_had_value: "221B" - # REMOVED: street_name slot_usage - migrated to has_or_had_label + Label (2026-01-17, Rule 53/56) - # Street names should now use Label class with language tagging via has_or_had_label + has_value: "221B" + # REMOVED: street_name slot_usage - migrated to has_label + Label (2026-01-17, Rule 53/56) + # Street names should now use Label class with language tagging via has_label # REMOVED: street_address slot_usage - redundant string slot removed (2026-01-17, Rule 53/56) - # Use house_number + has_or_had_label (street name as Label) instead of combined string + # Use house_number + has_label (street name as Label) instead of combined string postal_code: # range: string required: false @@ -152,12 +152,12 @@ classes: required: false examples: - value: "Amsterdam" - # REMOVED: city slot_usage - migrated to is_or_was_located_in + City (2026-01-18, Rule 53) + # REMOVED: city slot_usage - migrated to located_in + City (2026-01-18, Rule 53) # city: # range: string # required: false # description: Alternative slot for locality (schema:addressLocality) - is_or_was_located_in: + located_in: # range: string required: false inlined: false # Fixed invalid inline for primitive type @@ -177,10 +177,10 @@ classes: examples: - value: "Netherlands" - value: "NL" - # REMOVED 2026-01-22: address_formatted - migrated to has_or_had_label + Label (Rule 53, Feedback F1) - # Formatted address strings now use has_or_had_label slot_usage below - # REMOVED: address_type slot_usage - migrated to has_or_had_type (2026-01-17, Rule 53/56) - has_or_had_label: # was: address_formatted + street_name - migrated per Rule 53 (2026-01-17, 2026-01-22) + # REMOVED 2026-01-22: address_formatted - migrated to has_label + Label (Rule 53, Feedback F1) + # Formatted address strings now use has_label slot_usage below + # REMOVED: address_type slot_usage - migrated to has_type (2026-01-17, Rule 53/56) + has_label: # was: address_formatted + street_name - migrated per Rule 53 (2026-01-17, 2026-01-22) # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type @@ -188,11 +188,11 @@ classes: required: false examples: - value: - - has_or_had_label: "Museumstraat" + - has_label: "Museumstraat" language: "nl" - - has_or_had_label: "Museumstraat 1, 1071 XX Amsterdam, Netherlands" + - has_label: "Museumstraat 1, 1071 XX Amsterdam, Netherlands" language: "nl" - has_or_had_type: # was: address_type - migrated per Rule 53/56 (2026-01-17) + has_type: # was: address_type - migrated per Rule 53/56 (2026-01-17) range: AddressType required: false multivalued: false @@ -209,17 +209,17 @@ classes: examples: - value: 4.8852 - value: 2759794 - is_or_was_derived_from: # was: was_derived_from - migrated per Rule 53 + derived_from: # was: was_derived_from - migrated per Rule 53 # range: string # CustodianObservation multivalued: true required: false - is_or_was_generated_by: # was: was_generated_by - migrated per Rule 53 + generated_by: # was: was_generated_by - migrated per Rule 53 range: ReconstructionActivity required: false comments: - vCard Address is the primary ontology class (RFC6350 standard) - Use structured components when available, address_formatted as fallback - - Multiple addresses supported via has_or_had_address slot (multivalued, Rule 39 compliant) + - Multiple addresses supported via has_address slot (multivalued, Rule 39 compliant) - address_type distinguishes headquarters, legal, visiting, mailing, storage - Coordinates (lat/lon) optional but recommended for visualization/mapping see_also: @@ -229,14 +229,14 @@ classes: - https://www.gleif.org/ontology/Base/PhysicalAddress examples: - value: - has_or_had_section: - - has_or_had_value: "1" - has_or_had_label: - - has_or_had_label: "Museumstraat" + has_section: + - has_value: "1" + has_label: + - has_label: "Museumstraat" language: "nl" - - has_or_had_label: "Museumstraat 1, 1071 XX Amsterdam, Netherlands" + - has_label: "Museumstraat 1, 1071 XX Amsterdam, Netherlands" language: "nl" - # REMOVED: street_address - migrated to house_number + has_or_had_label (2026-01-17, Rule 53/56) + # REMOVED: street_address - migrated to house_number + has_label (2026-01-17, Rule 53/56) postal_code: "1071 XX" locality: "Amsterdam" region: "Noord-Holland" @@ -244,27 +244,27 @@ classes: latitude: 52.3600 longitude: 4.8852 - value: - has_or_had_section: - - has_or_had_value: "40" - # REMOVED: street_address - migrated to house_number + has_or_had_label (2026-01-17, Rule 53/56) + has_section: + - has_value: "40" + # REMOVED: street_address - migrated to house_number + has_label (2026-01-17, Rule 53/56) postal_code: "2011 RX" locality: "Haarlem" country_name: "NL" - value: - has_or_had_label: - - has_or_had_label: "1600 Pennsylvania Avenue NW, Washington, DC 20500, USA" + has_label: + - has_label: "1600 Pennsylvania Avenue NW, Washington, DC 20500, USA" language: "en" locality: "Washington" region: "DC" country_name: "US" - value: - has_or_had_label: - - has_or_had_label: "Euterpelaan" + has_label: + - has_label: "Euterpelaan" language: "nl" - - has_or_had_label: "Euterpelaan 25, 3824 BK Amersfoort, Netherlands" + - has_label: "Euterpelaan 25, 3824 BK Amersfoort, Netherlands" language: "nl" - has_or_had_section: - - has_or_had_value: "25" + has_section: + - has_value: "25" postal_code: "3824 BK" locality: "Amersfoort" region: "Utrecht" diff --git a/schemas/20251121/linkml/modules/classes/AddressComponent.yaml b/schemas/20251121/linkml/modules/classes/AddressComponent.yaml index f2da87a08a..7c38296a5a 100644 --- a/schemas/20251121/linkml/modules/classes/AddressComponent.yaml +++ b/schemas/20251121/linkml/modules/classes/AddressComponent.yaml @@ -9,7 +9,7 @@ prefixes: locn: http://www.w3.org/ns/locn# imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type - ../slots/long_name - ../slots/short_name # default_range: string @@ -24,7 +24,7 @@ classes: \ representations (long_name vs short_name)\n\n**COMPONENT STRUCTURE**:\n\n\ Each AddressComponent has:\n- `long_name`: Full form of the value (e.g., \"\ Netherlands\", \"Noord-Holland\")\n- `short_name`: Abbreviated form (e.g., \"\ - NL\", \"NH\") - may equal long_name\n- `has_or_had_type`: Semantic type(s) via\ + NL\", \"NH\") - may equal long_name\n- `has_type`: Semantic type(s) via\ \ ComponentType (e.g., Country, Locality)\n\n**STANDARD COMPONENT TYPES**:\n\ \n| Type | Description | Example long_name | Example short_name |\n|------|-------------|-------------------|-------------------|\n\ | `street_number` | House/building number | \"1\", \"221B\" | same |\n| `route`\ @@ -43,10 +43,10 @@ classes: \ └── parse → AddressComponent[] # Intermediate representation\n \ \ │\n └── normalize → Address # vCard/LOCN aligned\n\ ```\n\n**USAGE EXAMPLES**:\n\n```yaml\n# Street number component (MIGRATED 2026-01-22:\ - \ Rule 53)\n- long_name: \"1\"\n short_name: \"1\"\n has_or_had_type: [StreetNumber]\n\ + \ Rule 53)\n- long_name: \"1\"\n short_name: \"1\"\n has_type: [StreetNumber]\n\ \n# Province with abbreviation\n- long_name: \"Noord-Holland\"\n short_name:\ - \ \"NH\"\n has_or_had_type: [Region]\n\n# Country with ISO code\n- long_name:\ - \ \"Netherlands\"\n short_name: \"NL\"\n has_or_had_type: [Country]\n```\n\ + \ \"NH\"\n has_type: [Region]\n\n# Country with ISO code\n- long_name:\ + \ \"Netherlands\"\n short_name: \"NL\"\n has_type: [Country]\n```\n\ \n**SOURCE-AGNOSTIC DESIGN**:\n\nThis class is designed to work with addresses\ \ from ANY source:\n- Website scraping\n- Registry data (ISIL, KvK, etc.)\n\ - API responses (when normalized)\n- Manual data entry\n- OCR/document extraction\n\ @@ -59,7 +59,7 @@ classes: slots: - long_name - short_name - - has_or_had_type + - has_type slot_usage: long_name: # range: string @@ -75,7 +75,7 @@ classes: - value: NL - value: NH - value: Museumstraat - has_or_had_type: + has_type: range: ComponentType multivalued: true inlined_as_list: true @@ -97,32 +97,32 @@ classes: - value: long_name: '1' short_name: '1' - has_or_had_type: + has_type: - StreetNumber - value: long_name: Museumstraat short_name: Museumstraat - has_or_had_type: + has_type: - Route - value: long_name: Amsterdam short_name: Amsterdam - has_or_had_type: + has_type: - Locality - value: long_name: Noord-Holland short_name: NH - has_or_had_type: + has_type: - Region - value: long_name: Netherlands short_name: NL - has_or_had_type: + has_type: - Country - value: long_name: 1071 XX short_name: 1071 XX - has_or_had_type: + has_type: - PostalCode annotations: specificity_score: 0.35 diff --git a/schemas/20251121/linkml/modules/classes/AddressType.yaml b/schemas/20251121/linkml/modules/classes/AddressType.yaml index 2130971ddf..4220e1edea 100644 --- a/schemas/20251121/linkml/modules/classes/AddressType.yaml +++ b/schemas/20251121/linkml/modules/classes/AddressType.yaml @@ -13,19 +13,19 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/is_or_was_equivalent_to - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/equivalent_to + - ../slots/20260202_matang/related_to classes: AddressType: class_uri: skos:Concept description: "Classification type for Address purposes in heritage custodian contexts.\n\n**DEFINITION**:\n\nAddressType provides a SKOS-based classification hierarchy for categorizing\ndifferent types of addresses based on their purpose or function. This enables:\n- Rich metadata (descriptions, use cases)\n- Hierarchical relationships (broader/narrower types)\n- Extensibility (new types without enum modification)\n- Semantic alignment with vCard, GLEIF, and Schema.org ontologies\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **vCard** | `vcard:Type` | RFC6350 type codes (Home, Work) |\n| **GLEIF** | `gleif_base:hasAddressLegal`, `gleif_base:hasAddressHeadquarters` | Legal entity addresses |\n| **CIDOC-CRM** | `crm:E55_Type` | General type classification |\n| **SKOS** | `skos:Concept` | Controlled vocabulary concept |\n\n**ADDRESS TYPES FOR HERITAGE CUSTODIANS**:\n\n| Type | Use Case |\n|------|----------|\n| `HEADQUARTERS`\ - \ | Main organizational address |\n| `LEGAL` | Registered legal/business address (KvK, Chamber of Commerce) |\n| `VISITING` | Public visitor entrance address |\n| `MAILING` | Correspondence/postal address |\n| `STORAGE` | Depot, warehouse, off-site storage facility |\n| `BRANCH` | Branch office location |\n| `READING_ROOM` | Public reading/research room entrance |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nAddress (physical address)\n \u2502\n \u2514\u2500\u2500 has_or_had_type \u2192 AddressType (THIS CLASS)\n \u251C\u2500\u2500 has_or_had_hypernym \u2192 AddressType (parent in hierarchy)\n \u251C\u2500\u2500 has_or_had_hyponym \u2192 AddressType[] (children)\n \u2514\u2500\u2500 has_or_had_description (text)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the address_type string slot with a proper class hierarchy.\nOld pattern: `address_type: HEADQUARTERS` (string)\nNew pattern: `has_or_had_type: AddressType` (object reference)\n" + \ | Main organizational address |\n| `LEGAL` | Registered legal/business address (KvK, Chamber of Commerce) |\n| `VISITING` | Public visitor entrance address |\n| `MAILING` | Correspondence/postal address |\n| `STORAGE` | Depot, warehouse, off-site storage facility |\n| `BRANCH` | Branch office location |\n| `READING_ROOM` | Public reading/research room entrance |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nAddress (physical address)\n \u2502\n \u2514\u2500\u2500 has_type \u2192 AddressType (THIS CLASS)\n \u251C\u2500\u2500 has_hypernym \u2192 AddressType (parent in hierarchy)\n \u251C\u2500\u2500 has_hyponym \u2192 AddressType[] (children)\n \u2514\u2500\u2500 has_description (text)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the address_type string slot with a proper class hierarchy.\nOld pattern: `address_type: HEADQUARTERS` (string)\nNew pattern: `has_type: AddressType` (object reference)\n" exact_mappings: - skos:Concept close_mappings: @@ -35,16 +35,16 @@ classes: - gleif_base:hasAddressLegal - gleif_base:hasAddressHeadquarters slots: - - has_or_had_identifier - - has_or_had_code - - has_or_had_label - - has_or_had_description - - has_or_had_hypernym - - has_or_had_hyponym - - is_or_was_related_to - - is_or_was_equivalent_to + - identified_by + - has_code + - has_label + - has_description + - has_hypernym + - has_hyponym + - related_to + - equivalent_to slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true @@ -52,7 +52,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/address-type/headquarters - value: https://nde.nl/ontology/hc/address-type/legal - has_or_had_code: + has_code: # range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ @@ -63,7 +63,7 @@ classes: - value: MAILING - value: STORAGE - value: BRANCH - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -77,21 +77,21 @@ classes: - value: - Visiting Address@en - Bezoekadres@nl - has_or_had_description: + has_description: # range: string examples: - value: Main organizational address where primary operations occur. - has_or_had_hypernym: + has_hypernym: range: AddressType - has_or_had_hyponym: + has_hyponym: range: AddressType multivalued: true inlined_as_list: true - is_or_was_related_to: + related_to: range: AddressType multivalued: true inlined_as_list: true - is_or_was_equivalent_to: + equivalent_to: range: WikiDataIdentifier multivalued: true inlined: true @@ -102,12 +102,12 @@ classes: annotations: specificity_score: '0.30' specificity_rationale: Address types are broadly applicable - all heritage custodians have addresses. - has_or_had_score: null - slot_migration: "2026-01-13: Migrated from address_type string slot to AddressType class\n- address_type (string) \u2192 has_or_had_type (AddressType)\n" + has_score: null + slot_migration: "2026-01-13: Migrated from address_type string slot to AddressType class\n- address_type (string) \u2192 has_type (AddressType)\n" custodian_types: "['*']" comments: - AddressType provides SKOS-based classification for Address instances - - Supports hierarchical type relationships (has_or_had_hypernym/hyponym) + - Supports hierarchical type relationships (has_hypernym/hyponym) - Richer semantics than flat address_type string slot - Aligned with vCard Type, GLEIF address distinctions - 'MIGRATED 2026-01-13: Now uses shared slots (Rule 38)' @@ -116,12 +116,12 @@ classes: - https://www.gleif.org/ontology/Base/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/address-type/headquarters - has_or_had_code: HEADQUARTERS - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/address-type/headquarters + has_code: HEADQUARTERS + has_label: - Headquarters@en - Hoofdkantoor@nl - has_or_had_description: 'Main organizational address where primary operations occur. + has_description: 'Main organizational address where primary operations occur. This is typically where leadership and central administration @@ -129,13 +129,13 @@ classes: ' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/address-type/legal - has_or_had_code: LEGAL - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/address-type/legal + has_code: LEGAL + has_label: - Legal Address@en - Juridisch adres@nl - Statutaire zetel@nl - has_or_had_description: 'Registered legal address for official correspondence and legal + has_description: 'Registered legal address for official correspondence and legal purposes. May differ from operational headquarters. @@ -143,27 +143,27 @@ classes: ' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/address-type/visiting - has_or_had_code: VISITING - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/address-type/visiting + has_code: VISITING + has_label: - Visiting Address@en - Bezoekadres@nl - has_or_had_description: 'Public entrance for visitors. May include museums, archives, + has_description: 'Public entrance for visitors. May include museums, archives, or libraries with public reading rooms. ' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/address-type/storage - has_or_had_code: STORAGE - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/address-type/storage + has_code: STORAGE + has_label: - Storage Facility@en - Opslaglocatie@nl - Depot@nl - has_or_had_description: 'Off-site storage facility, depot, or warehouse for collections. + has_description: 'Off-site storage facility, depot, or warehouse for collections. Not typically open to the public. ' - is_or_was_related_to: + related_to: - https://nde.nl/ontology/hc/address-type/branch \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/AddressTypes.yaml b/schemas/20251121/linkml/modules/classes/AddressTypes.yaml index ab1a7696fe..617b69b826 100644 --- a/schemas/20251121/linkml/modules/classes/AddressTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/AddressTypes.yaml @@ -34,8 +34,8 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_code: HEADQUARTERS - has_or_had_label: + has_code: HEADQUARTERS + has_label: - Headquarters@en - Hoofdkantoor@nl description: Rijksmuseum main headquarters @@ -66,8 +66,8 @@ classes: specificity_score: '0.30' examples: - value: - has_or_had_code: LEGAL - has_or_had_label: + has_code: LEGAL + has_label: - Legal Address@en - Juridisch adres@nl - Statutaire zetel@nl @@ -92,8 +92,8 @@ classes: specificity_score: '0.25' examples: - value: - has_or_had_code: VISITING - has_or_had_label: + has_code: VISITING + has_label: - Visiting Address@en - Bezoekadres@nl description: Public visitor entrance @@ -115,8 +115,8 @@ classes: specificity_score: '0.25' examples: - value: - has_or_had_code: MAILING - has_or_had_label: + has_code: MAILING + has_label: - Mailing Address@en - Postadres@nl - Correspondentieadres@nl @@ -144,8 +144,8 @@ classes: specificity_score: '0.40' examples: - value: - has_or_had_code: STORAGE - has_or_had_label: + has_code: STORAGE + has_label: - Storage Facility@en - Opslaglocatie@nl - Depot@nl @@ -170,8 +170,8 @@ classes: specificity_score: '0.35' examples: - value: - has_or_had_code: BRANCH - has_or_had_label: + has_code: BRANCH + has_label: - Branch Office@en - Vestiging@nl - Filiaal@nl @@ -196,8 +196,8 @@ classes: specificity_score: '0.50' examples: - value: - has_or_had_code: READING_ROOM - has_or_had_label: + has_code: READING_ROOM + has_label: - Reading Room@en - Studiezaal@nl - Leeszaal@nl @@ -220,8 +220,8 @@ classes: specificity_score: '0.40' examples: - value: - has_or_had_code: DELIVERY - has_or_had_label: + has_code: DELIVERY + has_label: - Delivery Address@en - Afleveradres@nl - Goederenontvangst@nl @@ -244,8 +244,8 @@ classes: specificity_score: '0.55' examples: - value: - has_or_had_code: CONSERVATION_LAB - has_or_had_label: + has_code: CONSERVATION_LAB + has_label: - Conservation Laboratory@en - Restauratieatelier@nl - Conserveringslab@nl diff --git a/schemas/20251121/linkml/modules/classes/Administration.yaml b/schemas/20251121/linkml/modules/classes/Administration.yaml index 7c843b09c7..f1b3fe29bf 100644 --- a/schemas/20251121/linkml/modules/classes/Administration.yaml +++ b/schemas/20251121/linkml/modules/classes/Administration.yaml @@ -10,9 +10,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: Administration: class_uri: org:OrganizationalUnit @@ -21,9 +21,9 @@ classes: - cpov:PublicOrganisation description: An administrative unit or body. slots: - - has_or_had_label - - has_or_had_description - - has_or_had_identifier + - has_label + - has_description + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AdministrativeLevel.yaml b/schemas/20251121/linkml/modules/classes/AdministrativeLevel.yaml index 5f40a79cd8..ad841937ad 100644 --- a/schemas/20251121/linkml/modules/classes/AdministrativeLevel.yaml +++ b/schemas/20251121/linkml/modules/classes/AdministrativeLevel.yaml @@ -15,9 +15,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: AdministrativeLevel: class_uri: skos:Concept @@ -41,13 +41,13 @@ classes: ' slots: - - has_or_had_label - - has_or_had_code - - has_or_had_description + - has_label + - has_code + - has_description slot_usage: - has_or_had_label: + has_label: required: true - has_or_had_code: + has_code: required: false annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/AdministrativeOffice.yaml b/schemas/20251121/linkml/modules/classes/AdministrativeOffice.yaml index f19f965050..2dfbe2a39b 100644 --- a/schemas/20251121/linkml/modules/classes/AdministrativeOffice.yaml +++ b/schemas/20251121/linkml/modules/classes/AdministrativeOffice.yaml @@ -3,15 +3,15 @@ name: administrative_office_class title: AdministrativeOffice Class imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_function - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/has_or_had_staff + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_function + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_staff_member - ../slots/is_leased - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by - ../slots/lease_expiry prefixes: linkml: https://w3id.org/linkml/ @@ -29,7 +29,7 @@ classes: class_uri: org:Site description: "Non-public administrative building or office space of a heritage custodian.\n**DEFINITION**:\nAn AdministrativeOffice is a secondary physical location where a heritage custodian performs back-office, administrative, or support functions that do not directly serve the public. These locations typically house staff performing finance, HR, IT, management, or other operational activities.\n**W3C ORG ALIGNMENT**:\n`org:Site` - \"An office or other premise at which the organization is located.\"\nAdministrativeOffice specializes org:Site for non-public administrative spaces: - Financial/accounting departments - Human resources offices - IT infrastructure locations - Executive/management offices\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n| Type | Public Access | Primary Function | |------|---------------|------------------| | BranchOffice | Yes | Public service delivery | | **AdministrativeOffice** | No | Back-office operations | | ResearchCenter | Limited | Research/conservation\ \ | | Storage | No | Collection storage |\n**TYPICAL CHARACTERISTICS**:\n- **Staff-only access**: No public visitors - **Administrative functions**: Finance, HR, IT, management - **Separate from collections**: No collection materials stored - **Cost center**: Often in lower-cost location than main building\n**USE CASES**:\n1. **Separate Administrative Building**:\n - Museum finance department in office park\n - Archive IT/digitization support center\n\n2. **Executive Offices**:\n - Foundation board meeting space\n - Director's office separate from main building\n\n3. **Support Services**:\n - Facilities management office\n - Marketing/communications department\n\n**Example - Administrative Annex**: ```yaml AdministrativeOffice:\n has_admin_office_identifier: \"https://nde.nl/ontology/hc/aux/rijksmuseum-admin-zuidas\"\n has_admin_office_name: \"Rijksmuseum Administrative Offices - Zuidas\"\n has_admin_office_description: |\n Administrative support offices housing finance,\ - \ HR, and IT departments.\n Staff access only. Located in Zuidas business district for cost efficiency.\n has_or_had_function:\n - function_category: ADMINISTRATIVE\n function_name: \"Finance and accounting\"\n - function_category: ADMINISTRATIVE\n function_name: \"Human resources\"\n - function_category: SUPPORT\n function_name: \"Information technology\"\n - function_category: ADMINISTRATIVE\n function_name: \"Legal affairs\"\n has_or_had_access_restriction: \"Staff badge required\"\n```" + \ HR, and IT departments.\n Staff access only. Located in Zuidas business district for cost efficiency.\n has_function:\n - function_category: ADMINISTRATIVE\n function_name: \"Finance and accounting\"\n - function_category: ADMINISTRATIVE\n function_name: \"Human resources\"\n - function_category: SUPPORT\n function_name: \"Information technology\"\n - function_category: ADMINISTRATIVE\n function_name: \"Legal affairs\"\n has_access_restriction: \"Staff badge required\"\n```" exact_mappings: - org:Site close_mappings: @@ -39,27 +39,27 @@ classes: - schema:Corporation - org:OrganizationalUnit slots: - - has_or_had_description - - has_or_had_identifier - - has_or_had_label - # has_or_had_admin_staff_count REMOVED - migrated to has_or_had_staff (Rule 53) - - has_or_had_staff - - has_or_had_function + - has_description + - identified_by + - has_label + # has_admin_staff_count REMOVED - migrated to has_staff_member (Rule 53) + - has_staff_member + - has_function - is_leased - lease_expiry - - has_or_had_score - - is_or_was_derived_from - - is_or_was_generated_by + - has_score + - derived_from + - generated_by slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true - has_or_had_label: + has_label: # range: string required: true - has_or_had_description: + has_description: # range: string - has_or_had_function: + has_function: range: FunctionType multivalued: true inlined: true @@ -75,18 +75,18 @@ classes: function_category: SUPPORT function_name: Information technology - value: Management access only - has_or_had_staff: + has_staff_member: range: Staff multivalued: true inlined: true examples: - value: - has_or_had_quantity: - has_or_had_value: 25 - has_or_had_unit: - has_or_had_label: "FTE" - has_or_had_type: - has_or_had_label: "Administrative Staff" + has_quantity: + has_value: 25 + has_unit: + has_label: "FTE" + has_type: + has_label: "Administrative Staff" is_leased: range: boolean examples: @@ -96,11 +96,11 @@ classes: range: date examples: - value: '2028-12-31' - is_or_was_derived_from: + derived_from: # range: string # CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false comments: @@ -109,21 +109,21 @@ classes: - W3C ORG org:Site specialized for administrative functions - Often in separate building from main heritage operations - May be leased rather than owned for cost efficiency - - 'MIGRATION NOTE: has_or_had_administrative_function replaced by generic has_or_had_function (Rule 53)' + - 'MIGRATION NOTE: has_administrative_function replaced by generic has_function (Rule 53)' see_also: - https://www.w3.org/TR/vocab-org/#org:Site - https://schema.org/Corporation examples: - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/aux/rijksmuseum-admin-zuidas - has_or_had_label: - has_or_had_label: Rijksmuseum Administrative Offices - Zuidas - has_or_had_description: - has_or_had_content: - has_or_had_description: Administrative support offices housing finance, HR, and IT departments. Staff access only. Located in Zuidas business district. + has_label: + has_label: Rijksmuseum Administrative Offices - Zuidas + has_description: + has_content: + has_description: Administrative support offices housing finance, HR, and IT departments. Staff access only. Located in Zuidas business district. description_type: admin_office - has_or_had_function: + has_function: - function_category: ADMINISTRATIVE function_name: Finance and accounting - function_category: ADMINISTRATIVE @@ -132,38 +132,38 @@ classes: function_name: Information technology - function_category: ADMINISTRATIVE function_name: Legal affairs - has_or_had_staff: - - has_or_had_quantity: - has_or_had_value: 45 - has_or_had_unit: - has_or_had_label: "FTE" - has_or_had_type: - has_or_had_label: "Administrative Staff" + has_staff_member: + - has_quantity: + has_value: 45 + has_unit: + has_label: "FTE" + has_type: + has_label: "Administrative Staff" is_leased: true lease_expiry: '2028-12-31' - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/aux/kb-digitization-center - has_or_had_label: - has_or_had_label: Koninklijke Bibliotheek Digitization Support Center - has_or_had_description: - has_or_had_content: - has_or_had_description: Technical support center for digitization operations. Houses scanning equipment coordination and quality control. + has_label: + has_label: Koninklijke Bibliotheek Digitization Support Center + has_description: + has_content: + has_description: Technical support center for digitization operations. Houses scanning equipment coordination and quality control. description_type: admin_office - has_or_had_function: + has_function: - function_category: PROGRAM function_name: Digitization project management - function_category: SUPPORT function_name: Quality control - function_category: SUPPORT function_name: Technical support - has_or_had_staff: - - has_or_had_quantity: - has_or_had_value: 12 - has_or_had_unit: - has_or_had_label: "FTE" - has_or_had_type: - has_or_had_label: "Technical Staff" + has_staff_member: + - has_quantity: + has_value: 12 + has_unit: + has_label: "FTE" + has_type: + has_label: "Technical Staff" is_leased: false lease_expiry: null annotations: diff --git a/schemas/20251121/linkml/modules/classes/AdministrativeUnit.yaml b/schemas/20251121/linkml/modules/classes/AdministrativeUnit.yaml index 3b3617c9c1..e19cf697bf 100644 --- a/schemas/20251121/linkml/modules/classes/AdministrativeUnit.yaml +++ b/schemas/20251121/linkml/modules/classes/AdministrativeUnit.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: AdministrativeUnit: class_uri: org:OrganizationalUnit @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_name + - has_name diff --git a/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchive.yaml b/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchive.yaml index b893e94073..2492303615 100644 --- a/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchive.yaml @@ -5,18 +5,18 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/related_to classes: AdvertisingRadioArchive: is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - hold_or_held_record_set_type - - has_or_had_score + - has_score description: 'Sound archive specializing in advertising radio productions and commercials. @@ -46,7 +46,7 @@ classes: ' slot_usage: - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ exact_mappings: - skos:Concept diff --git a/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchiveRecordSetType.yaml index 1aa1d76793..a798f6cd20 100644 --- a/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchiveRecordSetType.yaml @@ -6,9 +6,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to classes: AdvertisingRadioArchiveRecordSetType: description: A rico:RecordSetType for classifying collections of advertising radio productions and commercials within heritage institutions. @@ -17,17 +17,17 @@ classes: exact_mappings: - wd:Q60658673 slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: - AdvertisingRadioArchive slots: - - has_or_had_type - - has_or_had_score - - is_or_was_related_to + - has_type + - has_score + - related_to annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchiveRecordSetTypes.yaml index ccca39b20e..138c909247 100644 --- a/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./AdvertisingRadioArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - AdvertisingRadioArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: RadioAdvertisementCollection @@ -78,15 +78,15 @@ classes: - AdvertisingRadioArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CampaignDocumentationSeries diff --git a/schemas/20251121/linkml/modules/classes/Age.yaml b/schemas/20251121/linkml/modules/classes/Age.yaml index f42b08fad0..607c8ba4fa 100644 --- a/schemas/20251121/linkml/modules/classes/Age.yaml +++ b/schemas/20251121/linkml/modules/classes/Age.yaml @@ -9,9 +9,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_quantity - - ../slots/has_or_had_unit + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_unit classes: Age: class_uri: schema:QuantitativeValue @@ -31,14 +31,14 @@ classes: ' slots: - - has_or_had_quantity - - has_or_had_unit - - has_or_had_description + - has_quantity + - has_unit + - has_description slot_usage: - has_or_had_quantity: + has_quantity: range: integer required: true - has_or_had_unit: + has_unit: # range: string required: false annotations: diff --git a/schemas/20251121/linkml/modules/classes/Agenda.yaml b/schemas/20251121/linkml/modules/classes/Agenda.yaml index c550031453..7e8bcea0fc 100644 --- a/schemas/20251121/linkml/modules/classes/Agenda.yaml +++ b/schemas/20251121/linkml/modules/classes/Agenda.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: Agenda: class_uri: schema:Action description: Agenda. slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Agent.yaml b/schemas/20251121/linkml/modules/classes/Agent.yaml index 2a5a9121fb..ab8445be42 100644 --- a/schemas/20251121/linkml/modules/classes/Agent.yaml +++ b/schemas/20251121/linkml/modules/classes/Agent.yaml @@ -11,17 +11,17 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_name - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_name + - ../slots/20260202_matang/has_type classes: Agent: class_uri: prov:Agent description: "An agent (person, organization, or software) that performs actions.\n\ \n**RULE 53 MIGRATION**:\nReplaces simple string slots with a structured agent\ - \ model:\n- `is_or_was_acquired_by` → Agent (this class)\n- Supports typed agents\ - \ (person, organization, software)\n\n**USAGE**:\n```yaml\nis_or_was_acquired_by:\n\ - \ - agent_name: \"Dr. Jane Smith\"\n agent_type: person\n has_or_had_identifier:\n\ + \ model:\n- `acquired_by` → Agent (this class)\n- Supports typed agents\ + \ (person, organization, software)\n\n**USAGE**:\n```yaml\nacquired_by:\n\ + \ - agent_name: \"Dr. Jane Smith\"\n agent_type: person\n identified_by:\n\ \ - identifier_scheme: ORCID\n identifier_value: \"0000-0001-2345-6789\"\ \n```\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `prov:Agent`\ \ - PROV-O agent\n- **Close**: `foaf:Agent` - FOAF agent\n- **Close**: `schema:Person`\ @@ -37,17 +37,17 @@ classes: - schema:Person - schema:Organization slots: - - has_or_had_name - - has_or_had_type - - has_or_had_identifier + - has_name + - has_type + - identified_by slot_usage: - has_or_had_name: + has_name: # range: string # uriorcurie required: false - has_or_had_type: + has_type: # range: string # uriorcurie required: false - has_or_had_identifier: + identified_by: # range: string # uriorcurie multivalued: true required: false @@ -64,7 +64,7 @@ classes: - value: null - value: null - value: - has_or_had_identifier: + identified_by: - identifier_scheme: ISIL comments: - Created per slot_fixes.yaml migration (2026-01-22) diff --git a/schemas/20251121/linkml/modules/classes/AgentType.yaml b/schemas/20251121/linkml/modules/classes/AgentType.yaml index 9b465cf2ee..0c65fec0ae 100644 --- a/schemas/20251121/linkml/modules/classes/AgentType.yaml +++ b/schemas/20251121/linkml/modules/classes/AgentType.yaml @@ -8,9 +8,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: AgentType: class_uri: skos:Concept @@ -23,14 +23,14 @@ classes: exact_mappings: - skos:Concept slots: - - has_or_had_label - - has_or_had_code - - has_or_had_description + - has_label + - has_code + - has_description slot_usage: - has_or_had_code: + has_code: # range: string required: true - has_or_had_label: + has_label: # range: string required: false annotations: diff --git a/schemas/20251121/linkml/modules/classes/Agreement.yaml b/schemas/20251121/linkml/modules/classes/Agreement.yaml index 3f3bae1656..1a57f1d75c 100644 --- a/schemas/20251121/linkml/modules/classes/Agreement.yaml +++ b/schemas/20251121/linkml/modules/classes/Agreement.yaml @@ -15,9 +15,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/is_or_was_signed_on + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/signed_on - ../slots/temporal_extent classes: Agreement: @@ -40,13 +40,13 @@ classes: ' slots: - - has_or_had_label - - has_or_had_description - - is_or_was_signed_on + - has_label + - has_description + - signed_on - temporal_extent slot_usage: - has_or_had_label: - is_or_was_signed_on: + has_label: + signed_on: temporal_extent: annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/AirChanges.yaml b/schemas/20251121/linkml/modules/classes/AirChanges.yaml index afd9fdf76f..2a155a1e5e 100644 --- a/schemas/20251121/linkml/modules/classes/AirChanges.yaml +++ b/schemas/20251121/linkml/modules/classes/AirChanges.yaml @@ -8,8 +8,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_quantity - - ../slots/has_or_had_unit + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_unit classes: AirChanges: class_uri: schema:QuantitativeValue @@ -22,13 +22,13 @@ classes: ' slots: - - has_or_had_quantity - - has_or_had_unit + - has_quantity + - has_unit slot_usage: - has_or_had_quantity: + has_quantity: range: float required: true - has_or_had_unit: + has_unit: # range: string required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/Alignment.yaml b/schemas/20251121/linkml/modules/classes/Alignment.yaml index bacf34c450..c1f940f48b 100644 --- a/schemas/20251121/linkml/modules/classes/Alignment.yaml +++ b/schemas/20251121/linkml/modules/classes/Alignment.yaml @@ -9,9 +9,9 @@ description: 'Represents positioning or alignment information for content elemen ' imports: - linkml:types - - ../slots/has_or_had_alignment - - ../slots/has_or_had_unit - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_alignment + - ../slots/20260202_matang/has_unit + - ../slots/20260202_matang/has_value prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -24,11 +24,11 @@ classes: Captures alignment, position values, and units. ' slots: - - has_or_had_alignment - - has_or_had_value - - has_or_had_unit + - has_alignment + - has_value + - has_unit slot_usage: - has_or_had_alignment: + has_alignment: # range: string multivalued: true examples: @@ -36,12 +36,12 @@ classes: - value: right - value: bottom - value: middle - has_or_had_value: + has_value: # range: string examples: - value: '10' - value: default - has_or_had_unit: + has_unit: # range: string examples: - value: px diff --git a/schemas/20251121/linkml/modules/classes/AllocationAgency.yaml b/schemas/20251121/linkml/modules/classes/AllocationAgency.yaml index 41df13fad8..692c251004 100644 --- a/schemas/20251121/linkml/modules/classes/AllocationAgency.yaml +++ b/schemas/20251121/linkml/modules/classes/AllocationAgency.yaml @@ -11,8 +11,8 @@ imports: - linkml:types - ../enums/AllocationDomainEnum - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_score classes: AllocationAgency: class_uri: org:FormalOrganization @@ -46,7 +46,7 @@ classes: - gleif_base:RegistrationAuthority - schema:Organization slots: - - has_or_had_score + - has_score - name - name_local - is_active diff --git a/schemas/20251121/linkml/modules/classes/Alpha2Code.yaml b/schemas/20251121/linkml/modules/classes/Alpha2Code.yaml index 064226ad0a..7cca175520 100644 --- a/schemas/20251121/linkml/modules/classes/Alpha2Code.yaml +++ b/schemas/20251121/linkml/modules/classes/Alpha2Code.yaml @@ -9,7 +9,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code + - ../slots/20260202_matang/has_code classes: Alpha2Code: class_uri: skos:Concept @@ -43,9 +43,9 @@ classes: ' slots: - - has_or_had_code + - has_code slot_usage: - has_or_had_code: + has_code: pattern: ^[A-Z]{2}$ required: true examples: @@ -59,4 +59,4 @@ classes: custodian_types: "['*']" examples: - value: - has_or_had_code: NL \ No newline at end of file + has_code: NL \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Alpha3Code.yaml b/schemas/20251121/linkml/modules/classes/Alpha3Code.yaml index fd972bac8b..c41e4acb82 100644 --- a/schemas/20251121/linkml/modules/classes/Alpha3Code.yaml +++ b/schemas/20251121/linkml/modules/classes/Alpha3Code.yaml @@ -9,7 +9,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code + - ../slots/20260202_matang/has_code classes: Alpha3Code: class_uri: skos:Concept @@ -43,9 +43,9 @@ classes: ' slots: - - has_or_had_code + - has_code slot_usage: - has_or_had_code: + has_code: pattern: ^[A-Z]{3}$ required: true examples: @@ -59,4 +59,4 @@ classes: custodian_types: "['*']" examples: - value: - has_or_had_code: NLD \ No newline at end of file + has_code: NLD \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Altitude.yaml b/schemas/20251121/linkml/modules/classes/Altitude.yaml index 7b131cd79e..830db240d3 100644 --- a/schemas/20251121/linkml/modules/classes/Altitude.yaml +++ b/schemas/20251121/linkml/modules/classes/Altitude.yaml @@ -10,8 +10,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_unit - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_unit + - ../slots/20260202_matang/has_value classes: Altitude: class_uri: schema:QuantitativeValue @@ -19,8 +19,8 @@ classes: - crm:E54_Dimension description: The altitude of a place. slots: - - has_or_had_value - - has_or_had_unit + - has_value + - has_unit annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AmendmentEvent.yaml b/schemas/20251121/linkml/modules/classes/AmendmentEvent.yaml index c2f26bd22f..73ad2ccb03 100644 --- a/schemas/20251121/linkml/modules/classes/AmendmentEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/AmendmentEvent.yaml @@ -11,8 +11,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier + - ../slots/20260202_matang/has_description + - ../slots/identified_by - ../slots/temporal_extent classes: AmendmentEvent: @@ -20,8 +20,8 @@ classes: description: An event where a document or agreement was amended. slots: - temporal_extent - - has_or_had_description - - has_or_had_identifier + - has_description + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Animal.yaml b/schemas/20251121/linkml/modules/classes/Animal.yaml index e298cc3ca0..a2002ffd0c 100644 --- a/schemas/20251121/linkml/modules/classes/Animal.yaml +++ b/schemas/20251121/linkml/modules/classes/Animal.yaml @@ -16,9 +16,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/is_or_was_categorized_as + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/categorized_as classes: Animal: class_uri: schema:Animal @@ -31,11 +31,11 @@ classes: ' slots: - - has_or_had_label - - has_or_had_description - - is_or_was_categorized_as + - has_label + - has_description + - categorized_as slot_usage: - is_or_was_categorized_as: + categorized_as: range: Species annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/AnimalSoundArchive.yaml b/schemas/20251121/linkml/modules/classes/AnimalSoundArchive.yaml index 8659d07214..d651974403 100644 --- a/schemas/20251121/linkml/modules/classes/AnimalSoundArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/AnimalSoundArchive.yaml @@ -5,21 +5,21 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/related_to classes: AnimalSoundArchive: is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - hold_or_held_record_set_type - - has_or_had_score + - has_score description: "Archive specializing in animal sound recordings for research and preservation.\n\n**Wikidata**: Q18574935\n\n**Scope**:\nAnimal sound archives (Tierstimmenarchive) preserve:\n- Bioacoustic recordings of wildlife\n- Species identification recordings\n- Environmental soundscapes with animal vocalizations\n- Scientific research recordings\n- Educational materials for species identification\n\n**Scientific Context**:\nThese archives support:\n- Biodiversity monitoring and conservation\n- Species identification and taxonomy\n- Behavioral ecology research\n- Environmental impact assessment\n- Educational outreach\n\n**Related Types**:\n- SoundArchive (Q2230431) - Broader audio collection type\n- ScientificArchive (Q27032095) - Research-focused archives\n\n**Notable Examples**:\n- Tierstimmenarchiv (Museum f\xFCr Naturkunde Berlin)\n- Macaulay Library (Cornell Lab of Ornithology)\n- British Library Sound Archive wildlife collection\n" slot_usage: - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ exact_mappings: - skos:Concept diff --git a/schemas/20251121/linkml/modules/classes/AnimalSoundArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/AnimalSoundArchiveRecordSetType.yaml index e36783ac3b..f3c767cc2d 100644 --- a/schemas/20251121/linkml/modules/classes/AnimalSoundArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/AnimalSoundArchiveRecordSetType.yaml @@ -6,9 +6,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to classes: AnimalSoundArchiveRecordSetType: description: A rico:RecordSetType for classifying collections of animal sound archive materials within heritage institutions. @@ -17,17 +17,17 @@ classes: exact_mappings: - wd:Q18574935 slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: - AnimalSoundArchive slots: - - has_or_had_type - - has_or_had_score - - is_or_was_related_to + - has_type + - has_score + - related_to annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AnimalSoundArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/AnimalSoundArchiveRecordSetTypes.yaml index ff9d785776..6569272513 100644 --- a/schemas/20251121/linkml/modules/classes/AnimalSoundArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/AnimalSoundArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./AnimalSoundArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - AnimalSoundArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: BioacousticRecordingCollection @@ -78,15 +78,15 @@ classes: - AnimalSoundArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: FieldRecordingSeries diff --git a/schemas/20251121/linkml/modules/classes/AnnexCreationEvent.yaml b/schemas/20251121/linkml/modules/classes/AnnexCreationEvent.yaml index e62a6fa34c..ed4b99603b 100644 --- a/schemas/20251121/linkml/modules/classes/AnnexCreationEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/AnnexCreationEvent.yaml @@ -9,14 +9,14 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_reason + - ../slots/20260202_matang/has_reason - ../slots/temporal_extent classes: AnnexCreationEvent: class_uri: prov:Activity description: Annex creation event. slots: - - has_or_had_reason + - has_reason - temporal_extent annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/Annotation.yaml b/schemas/20251121/linkml/modules/classes/Annotation.yaml index 9f667fd27e..766444ea05 100644 --- a/schemas/20251121/linkml/modules/classes/Annotation.yaml +++ b/schemas/20251121/linkml/modules/classes/Annotation.yaml @@ -9,11 +9,11 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/contains_or_contained - - ../slots/has_or_had_description - - ../slots/has_or_had_rationale - - ../slots/has_or_had_type - - ../slots/is_or_was_created_by + - ../slots/20260202_matang/contain + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_rationale + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/created_by classes: Annotation: class_uri: oa:Annotation @@ -26,20 +26,20 @@ classes: ' slots: - - has_or_had_description - - is_or_was_created_by - - has_or_had_rationale - - contains_or_contained - - has_or_had_type + - has_description + - created_by + - has_rationale + - contain + - has_type slot_usage: - has_or_had_description: - is_or_was_created_by: + has_description: + created_by: range: Agent - has_or_had_rationale: + has_rationale: range: Rationale - contains_or_contained: + contain: range: Segment - has_or_had_type: + has_type: range: AnnotationType annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/AnnotationMotivationType.yaml b/schemas/20251121/linkml/modules/classes/AnnotationMotivationType.yaml index 667ea8a88a..bc20d39b2c 100644 --- a/schemas/20251121/linkml/modules/classes/AnnotationMotivationType.yaml +++ b/schemas/20251121/linkml/modules/classes/AnnotationMotivationType.yaml @@ -18,7 +18,7 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/motivation_type_description - ../slots/motivation_type_id - ../slots/motivation_type_name @@ -41,7 +41,7 @@ classes: - motivation_type_id - motivation_type_name - motivation_type_description - - has_or_had_score + - has_score slot_usage: motivation_type_id: identifier: true diff --git a/schemas/20251121/linkml/modules/classes/AnnotationMotivationTypes.yaml b/schemas/20251121/linkml/modules/classes/AnnotationMotivationTypes.yaml index f4bea7aa4a..aa53e1cde0 100644 --- a/schemas/20251121/linkml/modules/classes/AnnotationMotivationTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/AnnotationMotivationTypes.yaml @@ -16,7 +16,7 @@ imports: - ./AnnotationMotivationType - linkml:types - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/motivation_type_name classes: ClassifyingMotivation: @@ -83,7 +83,7 @@ classes: motivation_type_name: equals_string: classifying slots: - - has_or_had_score + - has_score comments: - W3C Web Annotation standard motivation - Primary use in heritage cataloging and classification @@ -157,7 +157,7 @@ classes: motivation_type_name: equals_string: describing slots: - - has_or_had_score + - has_score comments: - W3C Web Annotation standard motivation - Fundamental to heritage cataloging and accessibility @@ -227,7 +227,7 @@ classes: motivation_type_name: equals_string: identifying slots: - - has_or_had_score + - has_score comments: - W3C Web Annotation standard motivation - Links content to identified entities @@ -297,7 +297,7 @@ classes: motivation_type_name: equals_string: tagging slots: - - has_or_had_score + - has_score comments: - W3C Web Annotation standard motivation - User-generated content enrichment @@ -368,7 +368,7 @@ classes: motivation_type_name: equals_string: linking slots: - - has_or_had_score + - has_score comments: - W3C Web Annotation standard motivation - Enables Linked Open Data connections @@ -436,7 +436,7 @@ classes: motivation_type_name: equals_string: commenting slots: - - has_or_had_score + - has_score comments: - W3C Web Annotation standard motivation - User and scholarly engagement @@ -519,7 +519,7 @@ classes: motivation_type_name: equals_string: accessibility slots: - - has_or_had_score + - has_score comments: - Heritage-specific extension beyond W3C standard - Critical for inclusive heritage access @@ -601,7 +601,7 @@ classes: motivation_type_name: equals_string: discovery slots: - - has_or_had_score + - has_score comments: - Heritage-specific extension beyond W3C standard - Enables collection discoverability @@ -685,7 +685,7 @@ classes: motivation_type_name: equals_string: preservation slots: - - has_or_had_score + - has_score comments: - Heritage-specific extension beyond W3C standard - Critical for digital preservation @@ -767,7 +767,7 @@ classes: motivation_type_name: equals_string: research slots: - - has_or_had_score + - has_score comments: - Heritage-specific extension beyond W3C standard - Supports digital humanities and research diff --git a/schemas/20251121/linkml/modules/classes/AnnotationType.yaml b/schemas/20251121/linkml/modules/classes/AnnotationType.yaml index d82c59a99b..6f80a30bf6 100644 --- a/schemas/20251121/linkml/modules/classes/AnnotationType.yaml +++ b/schemas/20251121/linkml/modules/classes/AnnotationType.yaml @@ -8,9 +8,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: AnnotationType: class_uri: skos:Concept @@ -23,14 +23,14 @@ classes: exact_mappings: - skos:Concept slots: - - has_or_had_label - - has_or_had_code - - has_or_had_description + - has_label + - has_code + - has_description slot_usage: - has_or_had_code: + has_code: # range: string required: true - has_or_had_label: + has_label: # range: string required: false annotations: diff --git a/schemas/20251121/linkml/modules/classes/Appellation.yaml b/schemas/20251121/linkml/modules/classes/Appellation.yaml index 7bb9ea8c30..6c7c082cf9 100644 --- a/schemas/20251121/linkml/modules/classes/Appellation.yaml +++ b/schemas/20251121/linkml/modules/classes/Appellation.yaml @@ -15,8 +15,8 @@ imports: - linkml:types - ../enums/AppellationTypeEnum - ../metadata - - ../slots/has_or_had_score - - ../slots/is_or_was_alternative_form_of + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/alternative_form_of classes: CustodianAppellation: class_uri: crm:E41_Appellation @@ -31,10 +31,10 @@ classes: - rdfs:label - dcterms:title slots: - - has_or_had_score - - is_or_was_alternative_form_of + - has_score + - alternative_form_of slot_usage: - is_or_was_alternative_form_of: + alternative_form_of: # range: string # uriorcurie # range: Label inlined: false # Fixed invalid inline for primitive type diff --git a/schemas/20251121/linkml/modules/classes/AppellationType.yaml b/schemas/20251121/linkml/modules/classes/AppellationType.yaml index 58c06c8c8d..ab3d88cc40 100644 --- a/schemas/20251121/linkml/modules/classes/AppellationType.yaml +++ b/schemas/20251121/linkml/modules/classes/AppellationType.yaml @@ -10,7 +10,7 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: AppellationType: class_uri: skos:Concept @@ -18,7 +18,7 @@ classes: - crm:E55_Type description: Type of appellation/name. slots: - - has_or_had_label + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Applicant.yaml b/schemas/20251121/linkml/modules/classes/Applicant.yaml index f8cc9265e8..4bb9b2c4bb 100644 --- a/schemas/20251121/linkml/modules/classes/Applicant.yaml +++ b/schemas/20251121/linkml/modules/classes/Applicant.yaml @@ -12,9 +12,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type classes: Applicant: class_uri: schema:Person @@ -26,9 +26,9 @@ classes: - **Close**: `foaf:Agent` slots: - - has_or_had_label - - has_or_had_identifier - - has_or_had_type + - has_label + - identified_by + - has_type annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/classes/ApplicantRequirement.yaml b/schemas/20251121/linkml/modules/classes/ApplicantRequirement.yaml index 5079b51984..edf72f0de1 100644 --- a/schemas/20251121/linkml/modules/classes/ApplicantRequirement.yaml +++ b/schemas/20251121/linkml/modules/classes/ApplicantRequirement.yaml @@ -16,8 +16,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/can_or_could_be_fulfilled_by - - ../slots/has_or_had_description + - ../slots/fulfilled_by + - ../slots/20260202_matang/has_description - ../slots/imposes_or_imposed classes: ApplicantRequirement: @@ -26,11 +26,11 @@ classes: **Ontology Alignment**: - **Primary**: `schema:Requirement` (proposed extension or conceptual) - **Close**: `dcterms:requires`' slots: - - has_or_had_description - - can_or_could_be_fulfilled_by + - has_description + - fulfilled_by - imposes_or_imposed slot_usage: - can_or_could_be_fulfilled_by: + fulfilled_by: range: Applicant imposes_or_imposed: range: GeographicExtent diff --git a/schemas/20251121/linkml/modules/classes/ApplicantType.yaml b/schemas/20251121/linkml/modules/classes/ApplicantType.yaml index 4613602ae7..6b9e94d4fa 100644 --- a/schemas/20251121/linkml/modules/classes/ApplicantType.yaml +++ b/schemas/20251121/linkml/modules/classes/ApplicantType.yaml @@ -12,8 +12,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: ApplicantType: class_uri: skos:Concept @@ -25,8 +25,8 @@ classes: - **Close**: `schema:definedTerm` slots: - - has_or_had_label - - has_or_had_identifier + - has_label + - identified_by annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/classes/Appointment.yaml b/schemas/20251121/linkml/modules/classes/Appointment.yaml index 2576daa0a7..ec09b864c2 100644 --- a/schemas/20251121/linkml/modules/classes/Appointment.yaml +++ b/schemas/20251121/linkml/modules/classes/Appointment.yaml @@ -9,8 +9,8 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label - ../slots/temporal_extent default_prefix: hc classes: @@ -33,16 +33,16 @@ classes: close_mappings: - rico:Rule slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description - temporal_extent slot_usage: - has_or_had_label: + has_label: examples: - value: Reading Room Appointment - value: Special Collections Viewing - value: Conservation Lab Access - has_or_had_description: + has_description: examples: - value: "Appointments for the Special Collections reading room must be made\ \ \nat least 48 hours in advance. Please specify which materials you \n\ @@ -53,13 +53,13 @@ classes: examples: - value: appointment_id: hc:appointment/nationaal-archief-special-collections - has_or_had_label: Special Collections Appointment - has_or_had_description: Advance appointment required for manuscript and map + has_label: Special Collections Appointment + has_description: Advance appointment required for manuscript and map collections - value: appointment_id: hc:appointment/reading-room-recommended - has_or_had_label: Reading Room Reservation - has_or_had_description: Reservations recommended but walk-ins accepted based + has_label: Reading Room Reservation + has_description: Reservations recommended but walk-ins accepted based on availability annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/AppreciationEvent.yaml b/schemas/20251121/linkml/modules/classes/AppreciationEvent.yaml index 86dfe5eece..c991ede11a 100644 --- a/schemas/20251121/linkml/modules/classes/AppreciationEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/AppreciationEvent.yaml @@ -10,8 +10,8 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_quantity - - ../slots/has_or_had_unit + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_unit - ../slots/temporal_extent default_prefix: hc classes: @@ -22,7 +22,7 @@ classes: \ reactions) for digital content such as videos, comments, and posts.\nReplaces\ \ simple integer counts with rich event data.\n\n**DESIGN RATIONALE**:\n\nCreated\ \ per slot_fixes.yaml migration from `comment_like_count` integer\nto structured\ - \ `is_or_was_appreciated` + `AppreciationEvent` with\n`has_or_had_quantity`\ + \ `appreciated` + `AppreciationEvent` with\n`has_quantity`\ \ + `Quantity` for metric representation.\n\n**APPRECIATION TYPES**:\n\n| Type\ \ | Description | Platforms |\n|------|-------------|-----------|\n| like |\ \ Standard like/thumbs up | YouTube, Facebook, Instagram |\n| favorite | Favorite/bookmark\ @@ -32,8 +32,8 @@ classes: \ | Usage |\n|----------|----------------|-------|\n| **Activity Streams** |\ \ `as:Like` | Social appreciation activity |\n| **Schema.org** | `schema:InteractionCounter`\ \ | Engagement metrics |\n| **PROV-O** | `prov:Activity` | Event modeling |\n\ - \n**EXAMPLE**:\n\n```yaml\nis_or_was_appreciated:\n - appreciation_type: like\n\ - \ has_or_had_quantity:\n numeric_value: 42\n has_or_had_unit:\n\ + \n**EXAMPLE**:\n\n```yaml\nappreciated:\n - appreciation_type: like\n\ + \ has_quantity:\n numeric_value: 42\n has_unit:\n\ \ unit_label: \"likes\"\n temporal_extent:\n begin_of_the_begin:\ \ \"2025-01-14T10:00:00Z\"\n```\n" exact_mappings: @@ -42,20 +42,20 @@ classes: - schema:InteractionCounter - prov:Activity slots: - - has_or_had_quantity - - has_or_had_unit + - has_quantity + - has_unit - temporal_extent slot_usage: - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type required: false examples: - value: numeric_value: 42 - has_or_had_unit: + has_unit: unit_label: likes - has_or_had_unit: + has_unit: # range: string inlined: false # Fixed invalid inline for primitive type required: false @@ -72,9 +72,9 @@ classes: examples: - value: null - value: - has_or_had_quantity: + has_quantity: numeric_value: 42 - has_or_had_unit: + has_unit: unit_label: likes temporal_extent: begin_of_the_begin: '2025-01-14T10:00:00Z' diff --git a/schemas/20251121/linkml/modules/classes/ApprovalTimeType.yaml b/schemas/20251121/linkml/modules/classes/ApprovalTimeType.yaml index 3f5c3a3038..bf7b9ce3cd 100644 --- a/schemas/20251121/linkml/modules/classes/ApprovalTimeType.yaml +++ b/schemas/20251121/linkml/modules/classes/ApprovalTimeType.yaml @@ -6,17 +6,17 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: ApprovalTimeType: class_uri: skos:Concept abstract: true slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Approver.yaml b/schemas/20251121/linkml/modules/classes/Approver.yaml index 2336479cde..ee69848572 100644 --- a/schemas/20251121/linkml/modules/classes/Approver.yaml +++ b/schemas/20251121/linkml/modules/classes/Approver.yaml @@ -3,8 +3,8 @@ name: approver_class title: Approver Class imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -41,15 +41,15 @@ classes: - schema:Person - schema:Organization slots: - - has_or_had_label - - has_or_had_identifier + - has_label + - identified_by slot_usage: - has_or_had_label: + has_label: # range: string examples: - value: Board of Directors - value: Museum Director - has_or_had_identifier: + identified_by: # range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/person/jan-de-vries @@ -61,8 +61,8 @@ classes: - https://www.w3.org/TR/prov-o/#Agent examples: - value: - has_or_had_label: Museum Director - has_or_had_identifier: https://nde.nl/ontology/hc/person/example-director + has_label: Museum Director + identified_by: https://nde.nl/ontology/hc/person/example-director annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ApproximationStatus.yaml b/schemas/20251121/linkml/modules/classes/ApproximationStatus.yaml index 587c6a28f0..19c7d16741 100644 --- a/schemas/20251121/linkml/modules/classes/ApproximationStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/ApproximationStatus.yaml @@ -11,16 +11,16 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_level - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_level + - ../slots/20260202_matang/has_score default_prefix: hc classes: ApproximationStatus: class_uri: hc:ApproximationStatus description: "Status indicating the level of approximation or uncertainty for a value.\n**PURPOSE**:\nApproximationStatus captures structured uncertainty information for values like dates, quantities, and measurements where precision varies. This replaces simple boolean \"approximate: true/false\" with richer modeling.\n**UNCERTAINTY LEVELS**:\n| Level | Label | Description | Example | |-------|-------|-------------|---------| | EXACT | Exact | Known with certainty | \"1880-03-15\" | | APPROXIMATE | Approximate | Close but not exact | \"circa 1880\" | | ESTIMATED | Estimated | Calculated/inferred | \"estimated 1875-1885\" | | UNCERTAIN | Uncertain | Significant doubt | \"possibly 19th century\" | | UNKNOWN | Unknown | Cannot be determined | \"date unknown\" |\n**CIDOC-CRM ALIGNMENT**:\nCIDOC-CRM models time-span precision through E52_Time-Span with fuzzy boundaries. ApproximationStatus provides a complementary vocabulary for expressing certainty levels.\n**USE CASES**:\n1. **Date Uncertainty**:\ - \ Founding dates known only to decade 2. **Quantity Estimates**: Collection size approximations 3. **Location Precision**: Address known only to city level 4. **Historical Events**: Uncertain timing of organizational changes\n**EXAMPLE**:\n```yaml event_date: \"1880\" is_or_was_approximate:\n has_or_had_level: APPROXIMATE # was: approximation_level\n has_or_had_label: \"circa 1880\"\n has_or_had_description: \"Founding date known only to year from secondary sources\"\n```" + \ Founding dates known only to decade 2. **Quantity Estimates**: Collection size approximations 3. **Location Precision**: Address known only to city level 4. **Historical Events**: Uncertain timing of organizational changes\n**EXAMPLE**:\n```yaml event_date: \"1880\" approximate:\n has_level: APPROXIMATE # was: approximation_level\n has_label: \"circa 1880\"\n has_description: \"Founding date known only to year from secondary sources\"\n```" exact_mappings: - crm:E52_Time-Span close_mappings: @@ -28,21 +28,21 @@ classes: related_mappings: - skos:note slots: - - has_or_had_level - - has_or_had_label - - has_or_had_description - - has_or_had_score + - has_level + - has_label + - has_description + - has_score slot_usage: - has_or_had_level: + has_level: # range: string required: true - has_or_had_label: + has_label: # range: string required: false examples: - value: circa 1880 - value: approximately 10,000 - has_or_had_description: + has_description: # range: string required: false examples: @@ -51,25 +51,25 @@ classes: - ApproximationStatus replaces simple boolean approximate field - Provides structured uncertainty modeling for dates, quantities, etc. - Aligned with CIDOC-CRM E52_Time-Span precision concepts - - Used by is_or_was_approximate slot + - Used by approximate slot see_also: - https://www.cidoc-crm.org/Entity/e52-time-span/version-7.1.3 examples: - value: - has_or_had_level: EXACT - has_or_had_label: '1880-03-15' + has_level: EXACT + has_label: '1880-03-15' - value: - has_or_had_level: APPROXIMATE - has_or_had_label: circa 1880 - has_or_had_description: Founding date known only to year from newspaper accounts + has_level: APPROXIMATE + has_label: circa 1880 + has_description: Founding date known only to year from newspaper accounts - value: - has_or_had_level: ESTIMATED - has_or_had_label: estimated 1875-1885 - has_or_had_description: Date range inferred from building construction records + has_level: ESTIMATED + has_label: estimated 1875-1885 + has_description: Date range inferred from building construction records - value: - has_or_had_level: UNKNOWN - has_or_had_label: date unknown - has_or_had_description: No founding records survive + has_level: UNKNOWN + has_label: date unknown + has_description: No founding records survive annotations: specificity_score: 0.3 specificity_rationale: Approximation status is broadly useful across contexts where uncertainty needs to be expressed. diff --git a/schemas/20251121/linkml/modules/classes/Archdiocese.yaml b/schemas/20251121/linkml/modules/classes/Archdiocese.yaml index 4e9727e0fd..85bb1153d7 100644 --- a/schemas/20251121/linkml/modules/classes/Archdiocese.yaml +++ b/schemas/20251121/linkml/modules/classes/Archdiocese.yaml @@ -10,13 +10,13 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: Archdiocese: class_uri: schema:AdministrativeArea description: An archdiocese. slots: - - has_or_had_label + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Architect.yaml b/schemas/20251121/linkml/modules/classes/Architect.yaml index 3b33d13d40..9415fd0e5e 100644 --- a/schemas/20251121/linkml/modules/classes/Architect.yaml +++ b/schemas/20251121/linkml/modules/classes/Architect.yaml @@ -16,9 +16,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: Architect: class_uri: schema:Person @@ -31,11 +31,11 @@ classes: ' slots: - - has_or_had_label - - has_or_had_description - - has_or_had_identifier + - has_label + - has_description + - identified_by slot_usage: - has_or_had_label: + has_label: required: true annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ArchitecturalArchive.yaml b/schemas/20251121/linkml/modules/classes/ArchitecturalArchive.yaml index 828e5f1077..fc1ef0667f 100644 --- a/schemas/20251121/linkml/modules/classes/ArchitecturalArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchitecturalArchive.yaml @@ -5,25 +5,25 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/related_to classes: ArchitecturalArchive: is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score + - has_score description: "Archive that safeguards architectural heritage through preservation of \narchitectural drawings, plans, models, and related documentation.\n\n**Wikidata**: Q121409581\n\n**Scope**:\nArchitectural archives preserve:\n- Architectural drawings and blueprints\n- Building plans and specifications\n- Scale models and maquettes\n- Photographs of buildings and construction\n- Correspondence and contracts\n- Architects' personal papers (Nachlass)\n- Design competitions documentation\n\n**Related Types**:\n- ArchivesForBuildingRecords (Q136027937) - Public building permits/records\n- ArtArchive (Q27032254) - Broader art documentation\n\n**Notable Examples**:\n- Canadian Centre for Architecture (CCA)\n- Deutsches Architekturmuseum archives\n- RIBA Architecture Library and Collections\n- Het Nieuwe Instituut (Netherlands)\n\n**Dual-Class Pattern**:\nThis class represents the CUSTODIAN type (the archive organization).\nFor the collection type, see `ArchitecturalRecordSetType` (rico:RecordSetType).\n\ \n**Ontological Alignment**:\n- **SKOS**: skos:Concept with skos:broader Q166118 (archive)\n- **Schema.org**: schema:ArchiveOrganization\n- **RiC-O**: rico:CorporateBody (as agent)\n\n**Multilingual Labels**:\n- de: Architekturarchiv\n- fr: archives architecturales\n- nl: architectonisch archief\n" slot_usage: - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' exact_mappings: - skos:Concept diff --git a/schemas/20251121/linkml/modules/classes/ArchitecturalArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ArchitecturalArchiveRecordSetType.yaml index 41e9054a29..df04ace512 100644 --- a/schemas/20251121/linkml/modules/classes/ArchitecturalArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchitecturalArchiveRecordSetType.yaml @@ -6,8 +6,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to classes: ArchitecturalArchiveRecordSetType: description: A rico:RecordSetType for classifying collections of architectural archive materials within heritage institutions. @@ -16,14 +16,14 @@ classes: exact_mappings: - wd:Q121409581 slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: - ArchitecturalArchive slots: - - has_or_had_score - - is_or_was_related_to + - has_score + - related_to annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ArchitecturalArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/ArchitecturalArchiveRecordSetTypes.yaml index 2ab3943804..b4bf2e0f69 100644 --- a/schemas/20251121/linkml/modules/classes/ArchitecturalArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchitecturalArchiveRecordSetTypes.yaml @@ -19,8 +19,8 @@ default_prefix: hc imports: - ./ArchitecturalArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -43,15 +43,15 @@ classes: - ArchitecturalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ArchitecturalDrawingCollection @@ -84,15 +84,15 @@ classes: - ArchitecturalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ArchitectPapersCollection @@ -123,15 +123,15 @@ classes: - ArchitecturalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: BuildingProjectFonds diff --git a/schemas/20251121/linkml/modules/classes/ArchitecturalStyle.yaml b/schemas/20251121/linkml/modules/classes/ArchitecturalStyle.yaml index 8ff4c360c8..5388ea4ade 100644 --- a/schemas/20251121/linkml/modules/classes/ArchitecturalStyle.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchitecturalStyle.yaml @@ -10,8 +10,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: ArchitecturalStyle: class_uri: skos:Concept @@ -19,8 +19,8 @@ classes: - crm:E55_Type description: An architectural style. slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ArchivalLibrary.yaml b/schemas/20251121/linkml/modules/classes/ArchivalLibrary.yaml index 573aa79ff6..6d8c4539c3 100644 --- a/schemas/20251121/linkml/modules/classes/ArchivalLibrary.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchivalLibrary.yaml @@ -3,18 +3,18 @@ name: ArchivalLibrary title: Archival Library Type imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/is_branch_of - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/related_to classes: ArchivalLibrary: is_a: OrganizationBranch class_uri: org:OrganizationalUnit description: "Library that is part of or associated with an archive, providing reference \nmaterials and published works to support archival research.\n\n**Wikidata**: Q25504402\n\n**IMPORTANT: This is an OrganizationBranch, NOT a standalone CustodianType**\n\nArchival libraries are organizational units (branches/sections) within a \nlarger Archive custodian. They do NOT exist independently - they are always\nembedded within an archive organization.\n\n**Scope**:\nArchival libraries (Archivbibliotheken) hold:\n- Reference works for archival research\n- Published guides and finding aids\n- Local history publications\n- Genealogical reference materials\n- Legal and administrative handbooks\n- Periodicals related to archive holdings\n\n**Organizational Context**:\nArchival libraries are typically:\n- Embedded within larger archive organizations (as org:OrganizationalUnit)\n- Supporting the research mission of the parent archive\n- Providing context for archival collections\n- Serving both\ - \ staff and external researchers\n\n**Branch Relationship**:\n- Use `is_branch_of` to link to the parent Archive custodian\n- Use `has_or_had_type` = BranchLibraryUnit for classification\n\n**Related Types**:\n- Archive (Q166118) - Parent archive organization\n- SpecialCollection (Q4431094) - Specialized library holdings\n- OrganizationBranch - Parent class for organizational units\n\n**Dual-Class Pattern**:\nThis class represents the BRANCH type (the library unit within an archive).\nFor the collection type, see `ArchivalLibraryRecordSetType` (rico:RecordSetType).\n\n**Ontological Alignment**:\n- **W3C ORG**: org:OrganizationalUnit (branch of parent archive)\n- **Schema.org**: schema:Library (hybrid archive-library)\n- **RiC-O**: rico:CorporateBody (as agent)\n\n**Multilingual Labels**:\n- de: Archivbibliothek\n- es: biblioteca de archivo\n- fr: biblioth\xE8que li\xE9e \xE0 une institution conservant des archives\n" + \ staff and external researchers\n\n**Branch Relationship**:\n- Use `is_branch_of` to link to the parent Archive custodian\n- Use `has_type` = BranchLibraryUnit for classification\n\n**Related Types**:\n- Archive (Q166118) - Parent archive organization\n- SpecialCollection (Q4431094) - Specialized library holdings\n- OrganizationBranch - Parent class for organizational units\n\n**Dual-Class Pattern**:\nThis class represents the BRANCH type (the library unit within an archive).\nFor the collection type, see `ArchivalLibraryRecordSetType` (rico:RecordSetType).\n\n**Ontological Alignment**:\n- **W3C ORG**: org:OrganizationalUnit (branch of parent archive)\n- **Schema.org**: schema:Library (hybrid archive-library)\n- **RiC-O**: rico:CorporateBody (as agent)\n\n**Multilingual Labels**:\n- de: Archivbibliothek\n- es: biblioteca de archivo\n- fr: biblioth\xE8que li\xE9e \xE0 une institution conservant des archives\n" slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie required: true examples: @@ -37,8 +37,8 @@ classes: - SpecialCollection - OrganizationBranch slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ArchivalLibraryRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ArchivalLibraryRecordSetType.yaml index 31db9e0b1c..b88c8c48df 100644 --- a/schemas/20251121/linkml/modules/classes/ArchivalLibraryRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchivalLibraryRecordSetType.yaml @@ -9,8 +9,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to classes: ArchivalLibraryRecordSetType: description: A rico:RecordSetType for classifying collections of archival library materials within heritage institutions. @@ -19,14 +19,14 @@ classes: exact_mappings: - wd:Q25504402 slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: - ArchivalLibrary slots: - - has_or_had_score - - is_or_was_related_to + - has_score + - related_to annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ArchivalReference.yaml b/schemas/20251121/linkml/modules/classes/ArchivalReference.yaml index 830d5cfc10..324890bdb3 100644 --- a/schemas/20251121/linkml/modules/classes/ArchivalReference.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchivalReference.yaml @@ -9,9 +9,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: ArchivalReference: class_uri: rico:Identifier @@ -24,11 +24,11 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description slot_usage: - has_or_had_identifier: + identified_by: required: true annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ArchivalStatus.yaml b/schemas/20251121/linkml/modules/classes/ArchivalStatus.yaml index 23b8fae943..422a6f8ead 100644 --- a/schemas/20251121/linkml/modules/classes/ArchivalStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchivalStatus.yaml @@ -8,9 +8,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: ArchivalStatus: class_uri: skos:Concept @@ -23,11 +23,11 @@ classes: ' slots: - - has_or_had_label - - has_or_had_code - - has_or_had_description + - has_label + - has_code + - has_description slot_usage: - has_or_had_code: + has_code: required: true annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ArchiveAssociation.yaml b/schemas/20251121/linkml/modules/classes/ArchiveAssociation.yaml index 5bf22cc104..8f5e91f279 100644 --- a/schemas/20251121/linkml/modules/classes/ArchiveAssociation.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchiveAssociation.yaml @@ -5,22 +5,22 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/society_focus classes: ArchiveAssociation: is_a: HeritageSocietyType class_uri: skos:Concept description: "Booster, history, and heritage societies that support archival institutions\nthrough advocacy, fundraising, volunteer programs, and public engagement.\n\n**Wikidata**: Q130427366\n\n**IMPORTANT: This is a HeritageSocietyType, NOT an ArchiveOrganizationType**\n\nArchive associations are HERITAGE SOCIETIES (membership organizations) that \nsupport archives, not archives themselves. The key distinction:\n- **ArchiveOrganizationType**: Actual archive institutions holding records\n- **HeritageSocietyType (this class)**: Volunteer/membership organizations supporting archives\n\n**Scope**:\nArchive associations (Archivvereine) provide:\n- Advocacy for archival institutions\n- Fundraising and donor cultivation\n- Volunteer recruitment and coordination\n- Public programming and outreach\n- Membership programs\n- Publication of newsletters and journals\n- Support for acquisitions and preservation\n\n**Organizational Role**:\nThese are typically:\n- \"Friends of the Archives\" organizations\n\ - - Historical societies supporting local archives\n- Professional associations for archivists\n- Advocacy groups for archival funding\n\n**Heritage Society Focus**:\nUse `society_focus` slot to describe the archive(s) supported.\nUse `has_or_had_activity` to document advocacy and outreach activities.\n\n**Related Types**:\n- HeritageSocietyType - Parent class for heritage support organizations\n- Archive (Q166118) - The institutions they support (NOT the same thing)\n\n**Primary Type**: \nMaps to 'S' (COLLECTING_SOCIETY) in GLAMORCUBESFIXPHDNT taxonomy,\nNOT 'A' (ARCHIVE) - these are support organizations, not archives themselves.\n\n**Ontological Alignment**:\n- **SKOS**: skos:Concept with skos:broader HeritageSocietyType\n- **Schema.org**: schema:Organization, schema:NGO\n- **RiC-O**: rico:CorporateBody (as agent)\n\n**Multilingual Labels**:\n- de: Archivverein\n- fr: Association des amis des archives\n" + - Historical societies supporting local archives\n- Professional associations for archivists\n- Advocacy groups for archival funding\n\n**Heritage Society Focus**:\nUse `society_focus` slot to describe the archive(s) supported.\nUse `has_activity` to document advocacy and outreach activities.\n\n**Related Types**:\n- HeritageSocietyType - Parent class for heritage support organizations\n- Archive (Q166118) - The institutions they support (NOT the same thing)\n\n**Primary Type**: \nMaps to 'S' (COLLECTING_SOCIETY) in GLAMORCUBESFIXPHDNT taxonomy,\nNOT 'A' (ARCHIVE) - these are support organizations, not archives themselves.\n\n**Ontological Alignment**:\n- **SKOS**: skos:Concept with skos:broader HeritageSocietyType\n- **Schema.org**: schema:Organization, schema:NGO\n- **RiC-O**: rico:CorporateBody (as agent)\n\n**Multilingual Labels**:\n- de: Archivverein\n- fr: Association des amis des archives\n" slot_usage: society_focus: required: true - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HeritageSocietyType"]' exact_mappings: - skos:Concept @@ -37,9 +37,9 @@ classes: see_also: - HeritageSocietyType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_identifier + - has_type + - has_score + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ArchiveBranch.yaml b/schemas/20251121/linkml/modules/classes/ArchiveBranch.yaml index 6201f27e16..a7ccbd3f83 100644 --- a/schemas/20251121/linkml/modules/classes/ArchiveBranch.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchiveBranch.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: ArchiveBranch: class_uri: org:OrganizationalUnit description: Archive branch. slots: - - has_or_had_label + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ArchiveNetwork.yaml b/schemas/20251121/linkml/modules/classes/ArchiveNetwork.yaml index 64f1522694..4cad9c004d 100644 --- a/schemas/20251121/linkml/modules/classes/ArchiveNetwork.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchiveNetwork.yaml @@ -10,9 +10,9 @@ prefixes: org: http://www.w3.org/ns/org# imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_applicable_in + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/applicable_in classes: ArchiveNetwork: is_a: ArchiveOrganizationType @@ -21,20 +21,20 @@ classes: \ loan and access programs\n\n**Organizational Structure**:\nArchive networks typically:\n- Have formal membership agreements\n- Maintain shared technical infrastructure\n- Coordinate collection policies to avoid duplication\n- Provide unified access points for researchers\n- Share costs for expensive preservation activities\n\n**Related Types**:\n- EncompassingBody - Broader organizational umbrella concept\n- JointArchives (Q117442301) - Archives with shared holdings\n\n**Linkage to EncompassingBody**:\nArchive networks function as encompassing bodies for member archives.\nUse `encompassing_body_link` slot to connect to EncompassingBody class.\n\n**Notable Examples** (France):\n- Archives Portal Europe network (French participation)\n- Regional archival consortia in France\n\n**Ontological Alignment**:\n- **SKOS**: skos:Concept with skos:broader Q166118 (archive)\n- **Schema.org**: schema:Organization\n- **RiC-O**: rico:CorporateBody (as agent)\n- **ORG**: org:Organization (consortium)\n\ \n**Multilingual Labels**:\n- de: Archivverbund\n- fr: r\xE9seau d'archives\n- it: rete di archivi\n" slots: - - has_or_had_type - - has_or_had_score - - is_or_was_applicable_in + - has_type + - has_score + - applicable_in slot_usage: - is_or_was_applicable_in: + applicable_in: range: Country required: true minimum_cardinality: 1 maximum_cardinality: 1 examples: - value: - has_or_had_identifier: FR - has_or_had_name: France - has_or_had_type: + identified_by: FR + has_name: France + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganization.yaml b/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganization.yaml index 4a42452448..d0b042b583 100644 --- a/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganization.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganization.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: ArchiveOfInternationalOrganization: diff --git a/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetType.yaml index a41ec52f07..ecdd660e9d 100644 --- a/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetType.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: ArchiveOfInternationalOrganizationRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ArchiveOfInternationalOrganization custodians. @@ -15,14 +15,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - ArchiveOfInternationalOrganization - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetTypes.yaml index 542279562f..5a28404a68 100644 --- a/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./ArchiveOfInternationalOrganizationRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - ArchiveOfInternationalOrganizationRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: InternationalOrgFonds @@ -78,15 +78,15 @@ classes: - ArchiveOfInternationalOrganizationRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: TreatyCollection @@ -115,15 +115,15 @@ classes: - ArchiveOfInternationalOrganizationRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ConferenceRecordSeries diff --git a/schemas/20251121/linkml/modules/classes/ArchiveOrganizationType.yaml b/schemas/20251121/linkml/modules/classes/ArchiveOrganizationType.yaml index e8911cdb7d..8bc683ba57 100644 --- a/schemas/20251121/linkml/modules/classes/ArchiveOrganizationType.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchiveOrganizationType.yaml @@ -17,13 +17,13 @@ imports: - ../classes/AgentType - linkml:types - ../slots/custodian_type_broader - - ../slots/has_or_had_identifier - - ../slots/has_or_had_policy - - ../slots/has_or_had_schema - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_subtype - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_policy + - ../slots/20260202_matang/has_schema + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_subtype + - ../slots/20260202_matang/has_type - ../slots/preservation_standard - ../slots/record_type classes: @@ -80,27 +80,27 @@ classes: **Wikidata Base Concept**: Q166118 (archive)' slots: - - has_or_had_policy - - has_or_had_scope - - has_or_had_subtype - - has_or_had_type - - has_or_had_schema + - has_policy + - has_scope + - has_subtype + - has_type + - has_schema - preservation_standard - record_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ required: true - has_or_had_policy: + has_policy: # range: string - has_or_had_scope: + has_scope: # range: string custodian_type_broader: range: ArchiveOrganizationType required: false - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' exact_mappings: - skos:Concept @@ -119,13 +119,13 @@ classes: - Access policies range from open (light archives) to restricted (dark archives) examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q1188452 - has_or_had_type_code: ARCHIVE - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/archive/Q1188452 + has_type_code: ARCHIVE + has_label: - National Archive@en - nationaal archief@nl - Nationalarchiv@de - has_or_had_description: central archive of a country that preserves national government records + has_description: central archive of a country that preserves national government records custodian_type_broader: https://nde.nl/ontology/hc/type/archive/Q166118 archive_scope: national record_type: @@ -136,16 +136,16 @@ classes: - OAIS - PREMIS - EAD3 - has_or_had_schema: - - has_or_had_label: EAD3 + has_schema: + - has_label: EAD3 access_policy: mixed - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q10605195 - has_or_had_type_code: ARCHIVE - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/archive/Q10605195 + has_type_code: ARCHIVE + has_label: - Business Archive@en - bedrijfsarchief@nl - has_or_had_description: organizational entity that keeps or archives fonds of a company + has_description: organizational entity that keeps or archives fonds of a company custodian_type_broader: https://nde.nl/ontology/hc/type/archive/Q166118 archive_scope: corporate record_type: diff --git a/schemas/20251121/linkml/modules/classes/ArchiveScope.yaml b/schemas/20251121/linkml/modules/classes/ArchiveScope.yaml index d40c1a87ef..bf2d5aea30 100644 --- a/schemas/20251121/linkml/modules/classes/ArchiveScope.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchiveScope.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: ArchiveScope: class_uri: skos:Concept description: Archive scope. slots: - - has_or_had_label + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecords.yaml b/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecords.yaml index 91f433cc7a..a8b0462f09 100644 --- a/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecords.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecords.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: ArchivesForBuildingRecords: diff --git a/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecordsRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecordsRecordSetType.yaml index 952775beae..2ac3b0ee5e 100644 --- a/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecordsRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecordsRecordSetType.yaml @@ -14,9 +14,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: ArchivesForBuildingRecordsRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ArchivesForBuildingRecords custodians. @@ -25,14 +25,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - ArchivesForBuildingRecords - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecordsRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecordsRecordSetTypes.yaml index db53f5f23f..325a0d2072 100644 --- a/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecordsRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchivesForBuildingRecordsRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./ArchivesForBuildingRecordsRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - ArchivesForBuildingRecordsRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: BuildingPermitSeries @@ -78,15 +78,15 @@ classes: - ArchivesForBuildingRecordsRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ConstructionDocumentCollection diff --git a/schemas/20251121/linkml/modules/classes/ArchivesRegionales.yaml b/schemas/20251121/linkml/modules/classes/ArchivesRegionales.yaml index 8153e6a231..dc188ef319 100644 --- a/schemas/20251121/linkml/modules/classes/ArchivesRegionales.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchivesRegionales.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: ArchivesRegionales: diff --git a/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetType.yaml index 784eda648b..b1cb3991a5 100644 --- a/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetType.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: ArchivesRegionalesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ArchivesRegionales custodians. @@ -15,14 +15,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - ArchivesRegionales - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetTypes.yaml index dbfc297913..7a5e7b1349 100644 --- a/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./ArchivesRegionalesRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - ArchivesRegionalesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: RegionalAdministrationFonds diff --git a/schemas/20251121/linkml/modules/classes/ArchivingPlan.yaml b/schemas/20251121/linkml/modules/classes/ArchivingPlan.yaml index 3439577b89..e8f68c13da 100644 --- a/schemas/20251121/linkml/modules/classes/ArchivingPlan.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchivingPlan.yaml @@ -10,10 +10,10 @@ prefixes: prov: http://www.w3.org/ns/prov# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score - ../slots/temporal_extent default_prefix: hc classes: @@ -21,11 +21,11 @@ classes: class_uri: prov:Plan description: A plan detailing archiving activities and timelines. slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description - temporal_extent - - has_or_had_score + - has_score slot_usage: temporal_extent: range: TimeSpan diff --git a/schemas/20251121/linkml/modules/classes/Area.yaml b/schemas/20251121/linkml/modules/classes/Area.yaml index 663f14fa6d..38089f182a 100644 --- a/schemas/20251121/linkml/modules/classes/Area.yaml +++ b/schemas/20251121/linkml/modules/classes/Area.yaml @@ -28,9 +28,9 @@ prefixes: imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_unit - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_unit + - ../slots/20260202_matang/has_value - ../slots/is_estimate - ../slots/measurement_date - ../slots/measurement_method @@ -57,30 +57,30 @@ classes: - schema:QuantitativeValue - geosparql:hasArea slots: - - has_or_had_value - - has_or_had_unit + - has_value + - has_unit - measurement_date - is_estimate - measurement_method - - has_or_had_label + - has_label slot_usage: - has_or_had_value: + has_value: range: float required: true examples: - value: 25.0 - value: 5000.0 - has_or_had_unit: + has_unit: range: MeasureUnit required: true inlined: true examples: - value: - has_or_had_type: HECTARE - has_or_had_symbol: "ha" + has_type: HECTARE + has_symbol: "ha" - value: - has_or_had_type: SQUARE_METER - has_or_had_symbol: "m²" + has_type: SQUARE_METER + has_symbol: "m²" measurement_date: range: date required: false @@ -100,32 +100,32 @@ classes: - value: "GIS analysis" - value: "Land survey" - value: "Historical records" - has_or_had_label: + has_label: # range: string examples: - value: "Total site area" - value: "Building floor area" examples: - value: - has_or_had_unit: - has_or_had_type: HECTARE - has_or_had_symbol: "ha" - has_or_had_label: "Sculpture garden area" + has_unit: + has_type: HECTARE + has_symbol: "ha" + has_label: "Sculpture garden area" - value: - has_or_had_unit: - has_or_had_type: SQUARE_METER - has_or_had_symbol: "m²" + has_unit: + has_type: SQUARE_METER + has_symbol: "m²" measurement_date: "2023-03-15" is_estimate: false measurement_method: "Architectural survey" - has_or_had_label: "Total floor area" + has_label: "Total floor area" - value: - has_or_had_unit: - has_or_had_type: HECTARE - has_or_had_symbol: "ha" + has_unit: + has_type: HECTARE + has_symbol: "ha" is_estimate: true measurement_method: "Historical records" - has_or_had_label: "Estate grounds" + has_label: "Estate grounds" annotations: custodian_types: '["*"]' custodian_types_rationale: >- diff --git a/schemas/20251121/linkml/modules/classes/Arrangement.yaml b/schemas/20251121/linkml/modules/classes/Arrangement.yaml index c78a229566..785a5666a5 100644 --- a/schemas/20251121/linkml/modules/classes/Arrangement.yaml +++ b/schemas/20251121/linkml/modules/classes/Arrangement.yaml @@ -13,17 +13,17 @@ classes: class_uri: rico:RecordSet description: The arrangement of a collection. slots: - - has_or_had_description - - has_or_had_type - - has_or_had_level - - has_or_had_note + - has_description + - has_type + - has_level + - has_note annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_level - - ../slots/has_or_had_note - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_level + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_type diff --git a/schemas/20251121/linkml/modules/classes/ArrangementLevel.yaml b/schemas/20251121/linkml/modules/classes/ArrangementLevel.yaml index 28dc9f6f0d..9323c603d0 100644 --- a/schemas/20251121/linkml/modules/classes/ArrangementLevel.yaml +++ b/schemas/20251121/linkml/modules/classes/ArrangementLevel.yaml @@ -16,10 +16,10 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_rank + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_rank classes: ArrangementLevel: class_uri: skos:Concept @@ -34,14 +34,14 @@ classes: ' slots: - - has_or_had_label - - has_or_had_code - - has_or_had_description - - has_or_had_rank + - has_label + - has_code + - has_description + - has_rank slot_usage: - has_or_had_code: + has_code: required: true - has_or_had_rank: + has_rank: annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ArrangementType.yaml b/schemas/20251121/linkml/modules/classes/ArrangementType.yaml index 1a11218bcf..7a838bb2f4 100644 --- a/schemas/20251121/linkml/modules/classes/ArrangementType.yaml +++ b/schemas/20251121/linkml/modules/classes/ArrangementType.yaml @@ -10,13 +10,13 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: ArrangementType: class_uri: skos:Concept description: Type of arrangement. slots: - - has_or_had_label + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ArtArchive.yaml b/schemas/20251121/linkml/modules/classes/ArtArchive.yaml index eccb9e8cdf..e67849655b 100644 --- a/schemas/20251121/linkml/modules/classes/ArtArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/ArtArchive.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: ArtArchive: diff --git a/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetType.yaml index c3abe2aef4..17753cd81e 100644 --- a/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetType.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: ArtArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ArtArchive custodians. @@ -15,14 +15,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - ArtArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetTypes.yaml index 185e2d5b07..3481323621 100644 --- a/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./ArtArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - ArtArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ArtistPapersCollection @@ -78,15 +78,15 @@ classes: - ArtArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: GalleryRecordsFonds @@ -115,15 +115,15 @@ classes: - ArtArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ExhibitionDocumentationCollection diff --git a/schemas/20251121/linkml/modules/classes/ArtDealer.yaml b/schemas/20251121/linkml/modules/classes/ArtDealer.yaml index 85f7886d85..de9829bffa 100644 --- a/schemas/20251121/linkml/modules/classes/ArtDealer.yaml +++ b/schemas/20251121/linkml/modules/classes/ArtDealer.yaml @@ -11,7 +11,7 @@ prefixes: imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name default_prefix: hc classes: @@ -26,7 +26,7 @@ classes: **Purpose**: Provides structured representation for art dealers including: - - The dealer's name (via has_or_had_name) + - The dealer's name (via has_name) - Future extensibility for dealer location, active dates, etc. **Ontological Alignment**: @@ -40,22 +40,22 @@ classes: **Pattern**: ```yaml - is_or_was_associated_with: - - has_or_had_name: - has_or_had_label: "Duveen Brothers" + associated_with: + - has_name: + has_label: "Duveen Brothers" ``` slots: - - has_or_had_name + - has_name slot_usage: - has_or_had_name: + has_name: # range: string # Name inlined: false # Fixed invalid inline for primitive type required: false examples: - value: - has_or_had_label: "Duveen Brothers" + has_label: "Duveen Brothers" exact_mappings: - crm:E39_Actor close_mappings: @@ -84,11 +84,11 @@ classes: examples: - value: - has_or_had_name: - has_or_had_label: "Duveen Brothers" + has_name: + has_label: "Duveen Brothers" - value: - has_or_had_name: - has_or_had_label: "Paul Cassirer" + has_name: + has_label: "Paul Cassirer" - value: - has_or_had_name: - has_or_had_label: "Jacques Goudstikker" \ No newline at end of file + has_name: + has_label: "Jacques Goudstikker" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/ArtSaleService.yaml b/schemas/20251121/linkml/modules/classes/ArtSaleService.yaml index 3f8f8491b9..db99ca0d65 100644 --- a/schemas/20251121/linkml/modules/classes/ArtSaleService.yaml +++ b/schemas/20251121/linkml/modules/classes/ArtSaleService.yaml @@ -30,7 +30,7 @@ classes: Created per slot_fixes.yaml migration from `commission_rate` string - to structured `has_or_had_service` + `ArtSaleService` with nested + to structured `has_service` + `ArtSaleService` with nested commission details. @@ -66,16 +66,16 @@ classes: required: false examples: - value: - has_or_had_percentage: null + has_percentage: null examples: - value: sales_activity: true takes_or_took_comission: - has_or_had_percentage: null + has_percentage: null - value: sales_activity: true takes_or_took_comission: - has_or_had_percentage: null + has_percentage: null comments: - Created 2026-01-22 from commission_rate migration (Rule 53) - Extends Service class for art sales context diff --git a/schemas/20251121/linkml/modules/classes/Article.yaml b/schemas/20251121/linkml/modules/classes/Article.yaml index e6e0636b62..148c06408c 100644 --- a/schemas/20251121/linkml/modules/classes/Article.yaml +++ b/schemas/20251121/linkml/modules/classes/Article.yaml @@ -4,11 +4,11 @@ title: Article description: A legal or statutory article. imports: - linkml:types - - ../slots/has_or_had_text + - ../slots/20260202_matang/has_text classes: Article: class_uri: rico:Rule annotations: custodian_types: '["*"]' slots: - - has_or_had_text + - has_text diff --git a/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml b/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml index 2366a23f7f..1ec759767e 100644 --- a/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml +++ b/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml @@ -4,22 +4,22 @@ title: ArticlesOfAssociation Class imports: - linkml:types - ../enums/RecordsLifecycleStageEnum - - ../slots/has_or_had_description - - ../slots/has_or_had_format - - ../slots/has_or_had_score - - ../slots/has_or_had_status - - ../slots/has_or_had_title - - ../slots/has_or_had_type - - ../slots/has_or_had_url - - ../slots/has_or_had_version + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_format + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/has_title + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_url + - ../slots/20260202_matang/has_version - ../slots/is_current_version - - ../slots/is_or_was_amended_through - - ../slots/is_or_was_archived_in - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_effective_at - - ../slots/is_or_was_generated_by - - ../slots/is_or_was_included_in - - ../slots/is_or_was_signed_at + - ../slots/20260202_matang/amended_through + - ../slots/20260202_matang/archived_in + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/effective_at + - ../slots/20260202_matang/generated_by + - ../slots/20260202_matang/included_in + - ../slots/20260202_matang/signed_at - ../slots/jurisdiction - ../slots/language - ../slots/legal_form @@ -68,17 +68,17 @@ classes: - prov:Entity - rov:orgType slots: - - is_or_was_amended_through - - is_or_was_archived_in - - has_or_had_status - - has_or_had_format - - has_or_had_url - - is_or_was_included_in - - has_or_had_description - - has_or_had_title - - has_or_had_type - - is_or_was_effective_at - - is_or_was_signed_at + - amended_through + - archived_in + - has_status + - has_format + - has_url + - included_in + - has_description + - has_title + - has_type + - effective_at + - signed_at - is_current_version - jurisdiction - language @@ -91,42 +91,42 @@ classes: - registered_office_clause - requires_articles_at_registration - supersedes_or_superseded - - has_or_had_score + - has_score - temporal_extent - - has_or_had_version - - is_or_was_derived_from - - is_or_was_generated_by + - has_version + - derived_from + - generated_by slot_usage: - has_or_had_title: + has_title: # range: string inlined: false # Fixed invalid inline for primitive type required: true examples: - value: - has_or_had_label: Statuten Stichting Rijksmuseum - has_or_had_description: + has_label: Statuten Stichting Rijksmuseum + has_description: # range: string inlined: false # Fixed invalid inline for primitive type required: false examples: - value: description_text: Original founding articles of the Rijksmuseum foundation - has_or_had_type: + has_type: range: DocumentType inlined: true required: true examples: - value: - has_or_had_label: Notarial Deed - has_or_had_type: NotarialDeed - is_or_was_signed_at: + has_label: Notarial Deed + has_type: NotarialDeed + signed_at: range: Timestamp inlined: true required: true examples: - value: - has_or_had_timestamp: '2024-03-15' - is_or_was_effective_at: + has_timestamp: '2024-03-15' + effective_at: range: date required: false examples: @@ -146,7 +146,7 @@ classes: required: false examples: - value: 2024/0315/001 - has_or_had_version: + has_version: # range: string required: false examples: @@ -168,10 +168,10 @@ classes: - value: nl - value: de - value: PRE_EXISTENCE - is_or_was_archived_in: + archived_in: range: CustodianArchive required: false - is_or_was_included_in: + included_in: range: CustodianCollection required: false examples: @@ -194,11 +194,11 @@ classes: jurisdiction: # range: string required: false - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false temporal_extent: @@ -225,26 +225,26 @@ classes: examples: - value: id: https://nde.nl/ontology/hc/articles/rm/v1 - has_or_had_title: - has_or_had_label: Statuten Stichting Rijksmuseum - has_or_had_description: + has_title: + has_label: Statuten Stichting Rijksmuseum + has_description: description_text: Original founding articles of the Rijksmuseum foundation, establishing governance structure and museum operations. - has_or_had_type: - has_or_had_type: NotarialDeed - has_or_had_label: Notarial Deed - is_or_was_signed_at: - has_or_had_timestamp: '1885-06-28' - is_or_was_effective_at: '1885-07-01' + has_type: + has_type: NotarialDeed + has_label: Notarial Deed + signed_at: + has_timestamp: '1885-06-28' + effective_at: '1885-07-01' notary_name: mr. H.J. van den Berg notary_office: Amsterdam notarial_deed_number: 1885/328 - has_or_had_version: '1' + has_version: '1' is_current_version: false superseded_by_articles: https://nde.nl/ontology/hc/articles/rm/v15 registered_office_clause: De stichting heeft haar zetel in de gemeente Amsterdam. language: nl articles_archival_stage: HERITAGE - is_or_was_included_in: https://nde.nl/ontology/hc/collection/rm/institutional-archive + included_in: https://nde.nl/ontology/hc/collection/rm/institutional-archive requires_articles_at_registration: true refers_to_legal_status: https://nde.nl/ontology/hc/legal-status/rm refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 @@ -253,20 +253,20 @@ classes: jurisdiction_id: NL jurisdiction_type: NATIONAL - value: - has_or_had_identifier: https://nde.nl/ontology/hc/articles/nha/v3 - has_or_had_title: - has_or_had_label: Statuten Stichting Noord-Hollands Archief (gewijzigd 2015) - has_or_had_description: + identified_by: https://nde.nl/ontology/hc/articles/nha/v3 + has_title: + has_label: Statuten Stichting Noord-Hollands Archief (gewijzigd 2015) + has_description: description_text: Third version of articles, amended to include digital preservation mandate. - has_or_had_type: - has_or_had_type: NotarialDeed - has_or_had_label: Notarial Deed - is_or_was_signed_at: - has_or_had_timestamp: '2015-11-12' - is_or_was_effective_at: '2015-11-12' + has_type: + has_type: NotarialDeed + has_label: Notarial Deed + signed_at: + has_timestamp: '2015-11-12' + effective_at: '2015-11-12' notary_name: mr. A.M. de Vries notary_office: Haarlem - has_or_had_version: '3' + has_version: '3' is_current_version: true supersedes_or_superseded: https://nde.nl/ontology/hc/articles/nha/v2 language: nl diff --git a/schemas/20251121/linkml/modules/classes/Artist.yaml b/schemas/20251121/linkml/modules/classes/Artist.yaml index 11f919812b..8c1a84eb8b 100644 --- a/schemas/20251121/linkml/modules/classes/Artist.yaml +++ b/schemas/20251121/linkml/modules/classes/Artist.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: Artist: class_uri: schema:Person description: Artist. slots: - - has_or_had_name + - has_name annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Artwork.yaml b/schemas/20251121/linkml/modules/classes/Artwork.yaml index 71418e4b54..fc6b6cb3b5 100644 --- a/schemas/20251121/linkml/modules/classes/Artwork.yaml +++ b/schemas/20251121/linkml/modules/classes/Artwork.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_title + - ../slots/20260202_matang/has_title classes: Artwork: class_uri: schema:VisualArtwork description: Artwork. slots: - - has_or_had_title + - has_title annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AspectRatio.yaml b/schemas/20251121/linkml/modules/classes/AspectRatio.yaml index a9b78bfd03..bf312cdf4c 100644 --- a/schemas/20251121/linkml/modules/classes/AspectRatio.yaml +++ b/schemas/20251121/linkml/modules/classes/AspectRatio.yaml @@ -11,16 +11,16 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_degree - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_degree + - ../slots/20260202_matang/has_value classes: AspectRatio: class_uri: schema:PropertyValue description: Aspect ratio specification. slots: - - has_or_had_degree + - has_degree slot_usage: - has_or_had_degree: + has_degree: # range: string description: The aspect ratio string (e.g., "16:9"). examples: diff --git a/schemas/20251121/linkml/modules/classes/Asserter.yaml b/schemas/20251121/linkml/modules/classes/Asserter.yaml index 949a293b56..505c53bc73 100644 --- a/schemas/20251121/linkml/modules/classes/Asserter.yaml +++ b/schemas/20251121/linkml/modules/classes/Asserter.yaml @@ -11,19 +11,19 @@ prefixes: imports: - linkml:types - ../enums/AsserterTypeEnum - - ../slots/has_or_had_contact_point - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/has_or_had_version + - ../slots/20260202_matang/has_contact_point + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_version default_prefix: hc classes: Asserter: class_uri: prov:Agent description: "An agent (person, organization, or system) responsible for making an assertion about a heritage entity.\n**PROV-O ALIGNMENT**:\nMaps to `prov:Agent` - \"An agent is something that bears some form of responsibility for an activity taking place, for the existence of an entity, or for another agent's activity.\"\n**TYPES OF ASSERTERS**:\n| Type | Description | Example | |------|-------------|---------| | HUMAN_ANALYST | Expert making judgment | \"jane.doe@nde.nl\" | | AUTOMATED_SYSTEM | Software system | \"primary-presence-classifier/1.0\" | | AI_AGENT | AI/ML model | \"claude-opus-4\", \"opencode-claude-sonnet-4\" | | ORGANIZATION | Institution | \"Noord-Hollands Archief\" |\n**USE CASES**:\n1. **Attribution Tracking**: Who made this assertion about primary presence? 2. **Provenance Chain**: Trace assertions back to their source agent. 3. **Quality Assessment**: Different asserters may have different reliability. 4. **Accountability**: Identify responsible party for each\ - \ assertion.\n**EXAMPLE**:\n```yaml Asserter:\n has_or_had_identifier: https://nde.nl/ontology/hc/asserter/claude-opus-4\n has_or_had_label: Claude Opus 4\n has_or_had_type: AI_AGENT\n has_or_had_description: Anthropic Claude AI model used for assertion generation\n has_or_had_version: \"claude-opus-4-20250514\"\n```" + \ assertion.\n**EXAMPLE**:\n```yaml Asserter:\n identified_by: https://nde.nl/ontology/hc/asserter/claude-opus-4\n has_label: Claude Opus 4\n has_type: AI_AGENT\n has_description: Anthropic Claude AI model used for assertion generation\n has_version: \"claude-opus-4-20250514\"\n```" exact_mappings: - prov:Agent close_mappings: @@ -33,48 +33,48 @@ classes: - schema:Person - schema:Organization slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_type - - has_or_had_version - - has_or_had_contact_point - - has_or_had_score + - identified_by + - has_label + - has_description + - has_type + - has_version + - has_contact_point + - has_score slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/asserter/claude-opus-4 - value: https://nde.nl/ontology/hc/asserter/jane-doe-nde - has_or_had_label: + has_label: # range: string required: true examples: - value: Claude Opus 4 - value: Dr. Jane Doe - value: primary-presence-classifier - has_or_had_description: + has_description: # range: string required: false examples: - value: Anthropic Claude AI model used for heritage data assertions - value: Senior digital heritage analyst at NDE - has_or_had_type: + has_type: range: AsserterTypeEnum required: true examples: - value: AI_AGENT - value: HUMAN_ANALYST - value: AUTOMATED_SYSTEM - has_or_had_version: + has_version: # range: string required: false examples: - value: claude-opus-4-20250514 - value: 1.2.3 - has_or_had_contact_point: + has_contact_point: # range: string required: false examples: @@ -90,23 +90,23 @@ classes: - https://xmlns.com/foaf/spec/#term_Agent examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/asserter/claude-opus-4 - has_or_had_label: Claude Opus 4 - has_or_had_type: AI_AGENT - has_or_had_description: Anthropic Claude AI model used for heritage data assertions - has_or_had_version: claude-opus-4-20250514 + identified_by: https://nde.nl/ontology/hc/asserter/claude-opus-4 + has_label: Claude Opus 4 + has_type: AI_AGENT + has_description: Anthropic Claude AI model used for heritage data assertions + has_version: claude-opus-4-20250514 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/asserter/jane-doe-nde - has_or_had_label: Dr. Jane Doe - has_or_had_type: HUMAN_ANALYST - has_or_had_description: Senior digital heritage analyst at NDE - has_or_had_contact_point: jane.doe@nde.nl + identified_by: https://nde.nl/ontology/hc/asserter/jane-doe-nde + has_label: Dr. Jane Doe + has_type: HUMAN_ANALYST + has_description: Senior digital heritage analyst at NDE + has_contact_point: jane.doe@nde.nl - value: - has_or_had_identifier: https://nde.nl/ontology/hc/asserter/primary-presence-classifier - has_or_had_label: primary-presence-classifier - has_or_had_type: AUTOMATED_SYSTEM - has_or_had_description: Automated system for classifying primary digital presence - has_or_had_version: 1.0.0 + identified_by: https://nde.nl/ontology/hc/asserter/primary-presence-classifier + has_label: primary-presence-classifier + has_type: AUTOMATED_SYSTEM + has_description: Automated system for classifying primary digital presence + has_version: 1.0.0 annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AssessmentCategory.yaml b/schemas/20251121/linkml/modules/classes/AssessmentCategory.yaml index 7c0467174a..410f73dea3 100644 --- a/schemas/20251121/linkml/modules/classes/AssessmentCategory.yaml +++ b/schemas/20251121/linkml/modules/classes/AssessmentCategory.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type classes: AssessmentCategory: class_uri: skos:Concept description: Assessment category concept. slots: - - has_or_had_type + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/AssessmentCategoryType.yaml b/schemas/20251121/linkml/modules/classes/AssessmentCategoryType.yaml index f3761ecc19..d2f0a0f8f4 100644 --- a/schemas/20251121/linkml/modules/classes/AssessmentCategoryType.yaml +++ b/schemas/20251121/linkml/modules/classes/AssessmentCategoryType.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: AssessmentCategoryType: class_uri: skos:Concept @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_label + - has_label diff --git a/schemas/20251121/linkml/modules/classes/Asset.yaml b/schemas/20251121/linkml/modules/classes/Asset.yaml index d104269d64..599029b9cf 100644 --- a/schemas/20251121/linkml/modules/classes/Asset.yaml +++ b/schemas/20251121/linkml/modules/classes/Asset.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_currency - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_currency + - ../slots/20260202_matang/has_value classes: Asset: class_uri: schema:MonetaryAmount description: Asset value. slots: - - has_or_had_value - - has_or_had_currency + - has_value + - has_currency annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AuctionHouse.yaml b/schemas/20251121/linkml/modules/classes/AuctionHouse.yaml index 40368b4bbe..5fc80feae5 100644 --- a/schemas/20251121/linkml/modules/classes/AuctionHouse.yaml +++ b/schemas/20251121/linkml/modules/classes/AuctionHouse.yaml @@ -9,16 +9,16 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name - - ../slots/is_or_was_conducted_by + - ../slots/20260202_matang/has_name + - ../slots/20260202_matang/conducted_by classes: AuctionHouse: class_uri: schema:AuctionHouse description: An auction house. slots: - - has_or_had_name + - has_name slot_usage: - has_or_had_name: + has_name: # range: string annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/AuctionSaleCatalog.yaml b/schemas/20251121/linkml/modules/classes/AuctionSaleCatalog.yaml index 88b8d4b228..cc3b9e0f9d 100644 --- a/schemas/20251121/linkml/modules/classes/AuctionSaleCatalog.yaml +++ b/schemas/20251121/linkml/modules/classes/AuctionSaleCatalog.yaml @@ -16,16 +16,16 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name - ../slots/publishes_or_published classes: AuctionSaleCatalog: class_uri: schema:PublicationIssue description: Auction sale catalog. slots: - - has_or_had_name + - has_name slot_usage: - has_or_had_name: + has_name: # range: string annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml b/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml index 2ef0b63645..4932fdd201 100644 --- a/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml +++ b/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml @@ -7,16 +7,16 @@ description: 'A temporal segment of audio containing a detected audio event (spe MIGRATED from audio_event_segments slot (Rule 53). - Uses generic has_or_had_segment slot with range narrowed to AudioEventSegment. + Uses generic has_segment slot with range narrowed to AudioEventSegment. ' imports: - linkml:types - ../enums/AudioEventTypeEnum - - ../slots/has_or_had_score - - ../slots/has_or_had_time_interval - - ../slots/has_or_had_type - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_time_interval + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/generated_by - ../slots/segment_index - ../slots/segment_text - ../slots/start_seconds @@ -109,7 +109,7 @@ classes: Created as part of slot migration (Rule 53) from deprecated - `audio_event_segments` slot to generic `has_or_had_segment` pattern. + `audio_event_segments` slot to generic `has_segment` pattern. ' exact_mappings: @@ -120,22 +120,22 @@ classes: related_mappings: - oa:FragmentSelector slots: - - has_or_had_time_interval + - has_time_interval - segment_index - segment_text - - is_or_was_generated_by - - has_or_had_type - - has_or_had_score + - generated_by + - has_type + - has_score - start_seconds - start_time slot_usage: - has_or_had_type: + has_type: range: AudioEventTypeEnum required: true examples: - value: SPEECH - value: MUSIC - has_or_had_time_interval: + has_time_interval: range: TimeInterval required: true inlined: true @@ -147,7 +147,7 @@ classes: examples: - value: Welcome to the Rijksmuseum - value: Classical background music - is_or_was_generated_by: + generated_by: range: GenerationEvent required: false inlined: true @@ -156,9 +156,9 @@ classes: pattern.' examples: - value: - has_or_had_score: - has_or_had_score: 0.95 - has_or_had_method: audio_classification + has_score: + has_score: 0.95 + has_method: audio_classification comments: - Audio event segment for speech, music, silence, sound event detection - Temporal boundaries with start/end seconds (primary) and ISO 8601 (secondary) diff --git a/schemas/20251121/linkml/modules/classes/AudiovisualArchive.yaml b/schemas/20251121/linkml/modules/classes/AudiovisualArchive.yaml index 2587ff13f4..0ac65adad8 100644 --- a/schemas/20251121/linkml/modules/classes/AudiovisualArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/AudiovisualArchive.yaml @@ -14,9 +14,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: AudiovisualArchive: diff --git a/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetType.yaml index c6d3e09a4a..280d719e5c 100644 --- a/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetType.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: AudiovisualArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by AudiovisualArchive custodians. @@ -15,14 +15,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - AudiovisualArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetTypes.yaml index 6b21cfe166..1445e5e675 100644 --- a/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./AudiovisualArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - AudiovisualArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: AudiovisualRecordingCollection @@ -78,15 +78,15 @@ classes: - AudiovisualArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: AudiovisualProductionFonds diff --git a/schemas/20251121/linkml/modules/classes/Audit.yaml b/schemas/20251121/linkml/modules/classes/Audit.yaml index e324949e28..2a2808581d 100644 --- a/schemas/20251121/linkml/modules/classes/Audit.yaml +++ b/schemas/20251121/linkml/modules/classes/Audit.yaml @@ -11,7 +11,7 @@ default_prefix: hc imports: - linkml:types - ../slots/draws_or_drew_opinion - - ../slots/is_or_was_conducted_by + - ../slots/20260202_matang/conducted_by - ../slots/temporal_extent classes: Audit: @@ -20,7 +20,7 @@ classes: slots: - temporal_extent - draws_or_drew_opinion - - is_or_was_conducted_by + - conducted_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AuditOpinion.yaml b/schemas/20251121/linkml/modules/classes/AuditOpinion.yaml index 2662384703..ce16c29d8d 100644 --- a/schemas/20251121/linkml/modules/classes/AuditOpinion.yaml +++ b/schemas/20251121/linkml/modules/classes/AuditOpinion.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: AuditOpinion: class_uri: skos:Concept description: Audit opinion. slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AuditStatus.yaml b/schemas/20251121/linkml/modules/classes/AuditStatus.yaml index f135150cd2..4003c8f823 100644 --- a/schemas/20251121/linkml/modules/classes/AuditStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/AuditStatus.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type classes: AuditStatus: class_uri: skos:Concept @@ -25,9 +25,9 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_label - - has_or_had_type + - has_label + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie diff --git a/schemas/20251121/linkml/modules/classes/AuditStatusType.yaml b/schemas/20251121/linkml/modules/classes/AuditStatusType.yaml index 0d599a32fc..334a41832e 100644 --- a/schemas/20251121/linkml/modules/classes/AuditStatusType.yaml +++ b/schemas/20251121/linkml/modules/classes/AuditStatusType.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: AuditStatusType: class_uri: skos:Concept @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_label + - has_label diff --git a/schemas/20251121/linkml/modules/classes/Auditor.yaml b/schemas/20251121/linkml/modules/classes/Auditor.yaml index 7cc21a1363..26cb184f5e 100644 --- a/schemas/20251121/linkml/modules/classes/Auditor.yaml +++ b/schemas/20251121/linkml/modules/classes/Auditor.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: Auditor: class_uri: schema:Organization description: Auditor entity. slots: - - has_or_had_name + - has_name annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Author.yaml b/schemas/20251121/linkml/modules/classes/Author.yaml index 3bfa3d9dd4..8346ef38f6 100644 --- a/schemas/20251121/linkml/modules/classes/Author.yaml +++ b/schemas/20251121/linkml/modules/classes/Author.yaml @@ -14,19 +14,19 @@ imports: - linkml:types - ../enums/AuthorRoleEnum - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_name - - ../slots/has_or_had_role - - ../slots/has_or_had_score - - ../slots/is_or_was_affiliated_with + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_name + - ../slots/20260202_matang/has_role + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/affiliated_with default_prefix: hc classes: Author: class_uri: schema:Person description: "Person or organization that authored/created a creative work.\n**PURPOSE**:\nAuthor models the creator(s) of works produced by heritage custodians, such as exhibition catalogs, research publications, finding aids, and reports. Replaces simple string author lists with structured data.\n**ONTOLOGY ALIGNMENT**:\n| Ontology | Class/Property | Usage | |----------|----------------|-------| | **Schema.org** | `schema:Person`, `schema:author` | Primary class and property | | **Dublin Core** | `dcterms:creator` | Creator relationship | | **BIBFRAME** | `bf:Contribution`, `bf:Agent` | Bibliographic contributions | | **FOAF** | `foaf:Person`, `foaf:name` | Personal information | | **RiC-O** | `rico:Agent` | Archival agent modeling |\n**AUTHOR TYPES**:\nAuthors may be: - **Individual persons**: Named authors with affiliations - **Organizations**: Corporate authors (e.g., \"Rijksmuseum Staff\") - **Anonymous**: Works with unknown authorship - **Collective**: Group authorships\n**ROLES**:\n\ - Beyond simple \"author\", works may have multiple contributor types: - Author (primary creator) - Editor - Compiler - Translator - Illustrator - Contributor\n**EXAMPLE**:\n```yaml has_or_had_author:\n - has_or_had_name: \"Jan de Vries\"\n has_or_had_role: AUTHOR\n is_or_was_affiliated_with: \"Rijksmuseum Amsterdam\"\n - has_or_had_name: \"Maria van Dijk\"\n has_or_had_role: EDITOR\n```" + Beyond simple \"author\", works may have multiple contributor types: - Author (primary creator) - Editor - Compiler - Translator - Illustrator - Contributor\n**EXAMPLE**:\n```yaml has_author:\n - has_name: \"Jan de Vries\"\n has_role: AUTHOR\n affiliated_with: \"Rijksmuseum Amsterdam\"\n - has_name: \"Maria van Dijk\"\n has_role: EDITOR\n```" exact_mappings: - schema:Person - foaf:Person @@ -37,34 +37,34 @@ classes: - bf:Contribution - dcterms:creator slots: - - has_or_had_name - - has_or_had_role - - is_or_was_affiliated_with - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_score + - has_name + - has_role + - affiliated_with + - identified_by + - has_label + - has_description + - has_score slot_usage: - has_or_had_name: + has_name: # range: string required: true examples: - value: Jan de Vries - value: Rijksmuseum Research Department - has_or_had_role: + has_role: range: AuthorRoleEnum required: false ifabsent: string(AUTHOR) examples: - value: AUTHOR - value: EDITOR - is_or_was_affiliated_with: + affiliated_with: # range: string required: false examples: - value: Rijksmuseum Amsterdam - value: Universiteit van Amsterdam - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: false examples: @@ -81,16 +81,16 @@ classes: - http://id.loc.gov/ontologies/bibframe/Contribution examples: - value: - has_or_had_name: Jan de Vries - has_or_had_role: AUTHOR - is_or_was_affiliated_with: Rijksmuseum Amsterdam - has_or_had_identifier: https://orcid.org/0000-0001-2345-6789 + has_name: Jan de Vries + has_role: AUTHOR + affiliated_with: Rijksmuseum Amsterdam + identified_by: https://orcid.org/0000-0001-2345-6789 - value: - has_or_had_name: Maria van Dijk - has_or_had_role: EDITOR + has_name: Maria van Dijk + has_role: EDITOR - value: - has_or_had_name: Rijksmuseum Research Department - has_or_had_role: AUTHOR + has_name: Rijksmuseum Research Department + has_role: AUTHOR annotations: specificity_score: 0.35 specificity_rationale: Authorship is broadly useful for creative/documentary works. diff --git a/schemas/20251121/linkml/modules/classes/AuthorityData.yaml b/schemas/20251121/linkml/modules/classes/AuthorityData.yaml index 7d869507fa..17c85a0b90 100644 --- a/schemas/20251121/linkml/modules/classes/AuthorityData.yaml +++ b/schemas/20251121/linkml/modules/classes/AuthorityData.yaml @@ -9,17 +9,17 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_type - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_url classes: AuthorityData: class_uri: skos:Concept description: Authority file data. slots: - - has_or_had_label - - has_or_had_type - - has_or_had_url + - has_label + - has_type + - has_url annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AuthorityFile.yaml b/schemas/20251121/linkml/modules/classes/AuthorityFile.yaml index fbcf565106..dc095f68bf 100644 --- a/schemas/20251121/linkml/modules/classes/AuthorityFile.yaml +++ b/schemas/20251121/linkml/modules/classes/AuthorityFile.yaml @@ -12,9 +12,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/contains_or_contained - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/contain + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: AuthorityFile: class_uri: void:Dataset @@ -26,12 +26,12 @@ classes: - **Close**: `skos:ConceptScheme` slots: - - has_or_had_label - - has_or_had_description - - contains_or_contained + - has_label + - has_description + - contain slot_usage: - contains_or_contained: + contain: # range: string annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/classes/AutoGeneration.yaml b/schemas/20251121/linkml/modules/classes/AutoGeneration.yaml index 0166f924f8..bab1a89bac 100644 --- a/schemas/20251121/linkml/modules/classes/AutoGeneration.yaml +++ b/schemas/20251121/linkml/modules/classes/AutoGeneration.yaml @@ -3,8 +3,8 @@ name: auto_generation_class title: AutoGeneration Class imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -39,15 +39,15 @@ classes: related_mappings: - prov:wasGeneratedBy slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description slot_usage: - has_or_had_label: + has_label: # range: string examples: - value: YouTube Auto-Caption - value: ASR Transcription - has_or_had_description: + has_description: # range: string examples: - value: Automatically generated by YouTube's speech recognition system @@ -61,8 +61,8 @@ classes: - https://schema.org/CreateAction examples: - value: - has_or_had_label: YouTube Auto-Caption - has_or_had_description: Automatically generated by YouTube's speech recognition + has_label: YouTube Auto-Caption + has_description: Automatically generated by YouTube's speech recognition annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml b/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml index 3138cdc37d..1c0a82bbb2 100644 --- a/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml +++ b/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml @@ -3,18 +3,18 @@ name: auxiliary_digital_platform_class title: AuxiliaryDigitalPlatform Class imports: - linkml:types - - ../slots/has_or_had_documentation - - ../slots/has_or_had_endpoint - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_status - - ../slots/has_or_had_technological_infrastructure - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_documentation + - ../slots/20260202_matang/has_endpoint + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/has_technological_infrastructure + - ../slots/20260202_matang/has_type - ../slots/is_auxiliary_of_platform - - ../slots/is_or_was_archived_at - - ../slots/is_or_was_based_on - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/archived_at + - ../slots/20260202_matang/based_on + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by - ../slots/linked_data - ../slots/platform_description - ../slots/platform_name @@ -43,7 +43,7 @@ classes: class_uri: dcat:Catalog description: "Subordinate or project-based digital platform associated with a heritage custodian.\n\n**CRITICAL DISTINCTION - THREE-TIER DIGITAL PLATFORM MODEL**:\n\n1. **DigitalPlatform** (main digital entry point):\n - Primary web presence of the custodian\n - Main website, primary API, flagship digital platform\n - Like CustodianPlace is the preferred place reference\n - Examples: rijksmuseum.nl, europeana.eu, nationaalarchief.nl\n \n2. **AuxiliaryDigitalPlatform** (subordinate platforms) - THIS CLASS:\n - Secondary digital properties: project sites, exhibition microsites\n - Like CustodianAppellation is to CustodianName\n - Examples: project websites, temporary exhibition portals, specialized tools\n \n3. **DigitalPlatformType** (custodian type classification):\n - For digital-FIRST custodians (no physical building)\n - Applied at Custodian.custodian_type level\n - Examples: Europeana (aggregation platform), Internet Archive\n\n**DCAT ALIGNMENT**:\n\n`dcat:Catalog`\ \ - \"A curated collection of metadata about datasets\"\n\nKey properties:\n- `dcat:dataset` - links to datasets/collections\n- `dcat:service` - data services provided\n- `dcterms:isPartOf` - links to parent catalog\n\n**RELATIONSHIP TO DIGITALPLATFORM**:\n\nAuxiliaryDigitalPlatform represents SUBORDINATE digital presence\nDigitalPlatform represents PRIMARY digital entry point\n\n```\nCustodian (hub)\n \u2502\n \u2514\u2500\u2500 digital_platform \u2192 DigitalPlatform (main digital entry)\n \u2514\u2500\u2500 auxiliary_platforms \u2192 AuxiliaryDigitalPlatform (project sites)\n```\n\n**USE CASES**:\n\n1. **Project Websites**:\n - Rijksmuseum \u2192 Rijksstudio API (separate from main website)\n - National Archives \u2192 WW2 Portal (thematic project)\n\n2. **Exhibition Microsites**:\n - Temporary exhibition with dedicated website\n - Virtual tour for specific collection\n\n3. **Specialized Tools/Apps**:\n - Mobile app (separate from responsive website)\n - Collection\ - \ browser tool\n - Crowdsourcing platform\n\n4. **Legacy/Archived Platforms**:\n - Previous website versions\n - Deprecated APIs still in use\n\n5. **Grant-Funded Projects**:\n - EU-funded digitization project portal\n - Research project data portal\n\n6. **Educational Platforms**:\n - Teacher resources portal\n - Student learning modules\n - Workshop booking system\n\n**Example - Rijksmuseum Auxiliary Platforms**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address: \"https://www.rijksmuseum.nl/\"\n auxiliary_platforms:\n - platform_name: \"Rijksstudio\"\n auxiliary_platform_type: PROJECT_WEBSITE\n platform_url: \"https://www.rijksmuseum.nl/nl/rijksstudio\"\n platform_purpose: \"Personal collection creation and high-res image downloads\"\n - platform_name: \"\ + \ browser tool\n - Crowdsourcing platform\n\n4. **Legacy/Archived Platforms**:\n - Previous website versions\n - Deprecated APIs still in use\n\n5. **Grant-Funded Projects**:\n - EU-funded digitization project portal\n - Research project data portal\n\n6. **Educational Platforms**:\n - Teacher resources portal\n - Student learning modules\n - Workshop booking system\n\n**Example - Rijksmuseum Auxiliary Platforms**:\n```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address: \"https://www.rijksmuseum.nl/\"\n auxiliary_platforms:\n - platform_name: \"Rijksstudio\"\n auxiliary_platform_type: PROJECT_WEBSITE\n platform_url: \"https://www.rijksmuseum.nl/nl/rijksstudio\"\n platform_purpose: \"Personal collection creation and high-res image downloads\"\n - platform_name: \"\ Rijksmuseum Data API\"\n auxiliary_platform_type: API_ENDPOINT\n platform_url: \"https://data.rijksmuseum.nl/\"\n platform_purpose: \"Developer access to collection metadata and images\"\n - platform_name: \"Night Watch Experience\"\n auxiliary_platform_type: EXHIBITION_MICROSITE\n platform_url: \"https://www.rijksmuseum.nl/en/stories/operation-night-watch\"\n platform_purpose: \"Interactive exploration of Night Watch research project\"\n```\n\n**TEMPORAL VALIDITY**:\n\nAuxiliary platforms often have finite lifespans:\n- Exhibition microsite: opens with exhibition, archived after closure\n- Project portal: funded period, then deprecated or integrated\n- Legacy platforms: valid_to when replaced by new system\n" exact_mappings: - dcat:Catalog @@ -58,12 +58,12 @@ classes: - schema:isRelatedTo - dcat:servesDataset slots: - - has_or_had_documentation - - is_or_was_archived_at - - has_or_had_identifier - - has_or_had_type - - is_or_was_based_on - - has_or_had_endpoint + - has_documentation + - archived_at + - identified_by + - has_type + - based_on + - has_endpoint - receives_or_received - is_auxiliary_of_platform - linked_data @@ -74,13 +74,13 @@ classes: - refers_to_custodian - related_project - serves_finding_aid - - has_or_had_technological_infrastructure - - has_or_had_score + - has_technological_infrastructure + - has_score - temporal_extent - - is_or_was_derived_from - - is_or_was_generated_by + - derived_from + - generated_by slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true @@ -93,7 +93,7 @@ classes: - value: Rijksstudio - value: Operation Night Watch - value: WW2 Portal - has_or_had_type: + has_type: # range: string required: false examples: @@ -115,28 +115,28 @@ classes: # range: string examples: - value: Rijksstudio allows users to create personal collections from the Rijksmuseum's digitized artworks, download high-resolution images, and share curated sets with others. - has_or_had_documentation: + has_documentation: range: uri multivalued: true examples: - value: https://data.rijksmuseum.nl/object-metadata/api/ - has_or_had_technological_infrastructure: + has_technological_infrastructure: # range: string # uriorcurie # range: TechnologicalInfrastructure multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_identifier: tech-react-frontend - has_or_had_type: FrontendFramework - has_or_had_label: React - has_or_had_version: '18.2' + identified_by: tech-react-frontend + has_type: FrontendFramework + has_label: React + has_version: '18.2' - value: - has_or_had_identifier: tech-django-backend - has_or_had_type: BackendFramework - has_or_had_label: Python/Django - has_or_had_version: '4.2' - includes_or_included: + identified_by: tech-django-backend + has_type: BackendFramework + has_label: Python/Django + has_version: '4.2' + include: - Django REST Framework is_auxiliary_of_platform: # range: string # uriorcurie @@ -155,9 +155,9 @@ classes: inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_label: European Commission Horizon 2020 + has_label: European Commission Horizon 2020 - value: - has_or_had_label: Mondriaan Fund + has_label: Mondriaan Fund linked_data: range: boolean examples: @@ -168,25 +168,25 @@ classes: - value: begin_of_the_begin: '2018-06-01' end_of_the_end: '2021-12-31' - has_or_had_status: + has_status: # range: string # uriorcurie # range: ArchivalStatus inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_code: ACTIVE - has_or_had_label: Active + has_code: ACTIVE + has_label: Active - value: - has_or_had_code: DEPRECATED - has_or_had_label: Deprecated + has_code: DEPRECATED + has_label: Deprecated - value: - has_or_had_code: MIGRATED - has_or_had_label: Migrated - is_or_was_archived_at: + has_code: MIGRATED + has_label: Migrated + archived_at: range: uri examples: - value: https://web.archive.org/web/20211231/https://example.nl/exhibition/ - is_or_was_based_on: + based_on: # range: string # uriorcurie # range: CMS multivalued: true @@ -195,16 +195,16 @@ classes: examples: - value: cms_version: 6.4.2 - has_or_had_type: CustomCMS + has_type: CustomCMS detected_at: '2026-01-19T12:00:00Z' - value: cms_version: 4.0.1 - has_or_had_type: MuseumCMS - is_or_was_derived_from: + has_type: MuseumCMS + derived_from: # range: string # CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false refers_to_custodian: @@ -234,65 +234,65 @@ classes: - http://usefulinc.com/ns/doap# examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-platform/rijksmuseum-rijksstudio + identified_by: https://nde.nl/ontology/hc/aux-platform/rijksmuseum-rijksstudio platform_name: Rijksstudio - has_or_had_type: - has_or_had_label: ProjectWebsite + has_type: + has_label: ProjectWebsite platform_url: https://www.rijksmuseum.nl/nl/rijksstudio platform_purpose: Personal collection creation and high-res image downloads platform_description: Rijksstudio allows users to create personal collections from the Rijksmuseum's digitized artworks, download high-resolution images, and share curated sets with others. is_auxiliary_of_platform: https://nde.nl/ontology/hc/platform/rijksmuseum-website linked_data: false - has_or_had_status: - has_or_had_code: ACTIVE + has_status: + has_code: ACTIVE refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-platform/rijksmuseum-data-api + identified_by: https://nde.nl/ontology/hc/aux-platform/rijksmuseum-data-api platform_name: Rijksmuseum Data API - has_or_had_type: - has_or_had_label: APIEndpoint + has_type: + has_label: APIEndpoint platform_url: https://data.rijksmuseum.nl/ platform_purpose: Developer access to collection metadata and images - has_or_had_documentation: https://data.rijksmuseum.nl/object-metadata/api/ - has_or_had_technological_infrastructure: - - has_or_had_identifier: tech-rest-api - has_or_had_type: RESTful - has_or_had_label: REST API - has_or_had_description: RESTful API protocol for data access - - has_or_had_identifier: tech-json-format - has_or_had_type: APIProtocol - has_or_had_label: JSON - has_or_had_description: JSON data format for API responses + has_documentation: https://data.rijksmuseum.nl/object-metadata/api/ + has_technological_infrastructure: + - identified_by: tech-rest-api + has_type: RESTful + has_label: REST API + has_description: RESTful API protocol for data access + - identified_by: tech-json-format + has_type: APIProtocol + has_label: JSON + has_description: JSON data format for API responses is_auxiliary_of_platform: https://nde.nl/ontology/hc/platform/rijksmuseum-website linked_data: true - has_or_had_status: - has_or_had_code: ACTIVE + has_status: + has_code: ACTIVE refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-platform/rm-night-watch-experience + identified_by: https://nde.nl/ontology/hc/aux-platform/rm-night-watch-experience platform_name: Operation Night Watch - has_or_had_type: - has_or_had_label: ExhibitionMicrosite + has_type: + has_label: ExhibitionMicrosite platform_url: https://www.rijksmuseum.nl/en/stories/operation-night-watch platform_purpose: Interactive exploration of Night Watch research project related_project: Operation Night Watch receives_or_received: - has_or_had_label: ING Bank + has_label: ING Bank is_auxiliary_of_platform: https://nde.nl/ontology/hc/platform/rijksmuseum-website - has_or_had_status: - has_or_had_code: ACTIVE + has_status: + has_code: ACTIVE refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-platform/na-ww2-portal + identified_by: https://nde.nl/ontology/hc/aux-platform/na-ww2-portal platform_name: WW2 Archives Portal - has_or_had_type: - has_or_had_label: ProjectWebsite + has_type: + has_label: ProjectWebsite platform_url: https://www.nationaalarchief.nl/onderzoeken/zoekhulpen/ww2 platform_purpose: Thematic portal for World War 2 archival research platform_description: Specialized portal providing access to WW2-related archives including resistance records, persecution documents, and liberation materials. is_auxiliary_of_platform: https://nde.nl/ontology/hc/platform/nationaal-archief-website - has_or_had_status: - has_or_had_code: ACTIVE + has_status: + has_code: ACTIVE refers_to_custodian: https://nde.nl/ontology/hc/nl-na annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml b/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml index 09e65f4351..9ff01c19f9 100644 --- a/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml +++ b/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml @@ -5,19 +5,19 @@ imports: - linkml:types - ../enums/AuxiliaryPlaceTypeEnum - ../slots/country - - ../slots/has_or_had_geographic_subdivision - - ../slots/has_or_had_geometry - - ../slots/has_or_had_identifier - - ../slots/has_or_had_location - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_branch_of - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by - - ../slots/is_or_was_located_in - - ../slots/is_or_was_location_of - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_geographic_subdivision + - ../slots/20260202_matang/has_geometry + - ../slots/identified_by + - ../slots/20260202_matang/has_location + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/branch_of + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by + - ../slots/20260202_matang/located_in + - ../slots/20260202_matang/is_location_of + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label - ../slots/postal_code - ../slots/refers_to_custodian - ../slots/settlement @@ -41,8 +41,8 @@ classes: class_uri: org:Site description: "Secondary or subordinate physical location associated with a heritage custodian.\n\n**CRITICAL DISTINCTION - THREE-TIER PLACE MODEL**:\n\n1. **CustodianPlace** (preferred place reference):\n - Main/primary place designation for the custodian\n - Like CustodianName is the preferred emic label\n - Examples: \"Rijksmuseum\" (main building), \"National Archives\" (headquarters)\n \n2. **AuxiliaryPlace** (subordinate places) - THIS CLASS:\n - Secondary locations: branch offices, storage facilities, regional sites\n - Like CustodianAppellation is to CustodianName\n - Examples: Depot Amersfoort (off-site storage), Regional office Noord-Holland\n \n3. **FeaturePlace** (feature type classification):\n - Classifies the TYPE of physical feature (museum building, warehouse, etc.)\n - Applies to both CustodianPlace and AuxiliaryPlace\n\n**W3C ORG ALIGNMENT**:\n\n`org:Site` - \"An office or other premise at which the organization is located. \nMany organizations are\ \ spread across multiple sites and many sites will host \nmultiple locations. In most cases a Site will be a physical location.\"\n\nKey properties:\n- `org:siteOf` - links site to organization (inverse of org:hasSite)\n- `org:siteAddress` - locn:Address for physical address\n- `locn:geometry` - geometric representation (lat/lon)\n\n**RELATIONSHIP TO ORGANIZATIONBRANCH**:\n\nAuxiliaryPlace represents PHYSICAL LOCATION (where)\nOrganizationBranch represents ORGANIZATIONAL UNIT (what operates there)\n\n```\nCustodian (hub)\n \u251C\u2500\u2500 place_designation \u2192 CustodianPlace (main place)\n \u2502 \u2514\u2500\u2500 auxiliary_places \u2192 AuxiliaryPlace (subordinate sites)\n \u2502 \u2514\u2500\u2500 hosts_branch \u2192 OrganizationBranch (org unit at site)\n \u2502 \u2514\u2500\u2500 has_operational_unit \u2192 OrganizationalStructure (teams)\n \u2502\n \u2514\u2500\u2500 organizational_structure \u2192 OrganizationalStructure (informal units)\n \ - \ \u2514\u2500\u2500 located_at \u2192 AuxiliaryPlace (optional physical location)\n```\n\n**USE CASES**:\n\n1. **Off-site Storage Facilities**:\n - Museum depot in Amersfoort (Rijksmuseum)\n - Archive annexes and document centers\n\n2. **Branch Libraries/Offices**:\n - University library branches at satellite campuses\n - Regional archive offices (Noord-Holland, Zuid-Holland)\n\n3. **Research Centers**:\n - Conservation lab in separate building\n - Digitization center at different address\n\n4. **Historic Buildings Under Same Custodian**:\n - Mauritshuis manages multiple historic houses\n - Abbey with multiple monastic buildings\n\n5. **Temporary Locations**:\n - Exhibition pavilions\n - Pop-up museums/archives\n - Storage during renovation\n\n**Example - Rijksmuseum with Multiple Sites**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n place_designation:\n place_name: \"Rijksmuseum\"\ - \ # Main building on Museumplein\n auxiliary_places:\n - place_name: \"Depot Amersfoort\"\n auxiliary_place_type: STORAGE_FACILITY\n street_address: \"Euterpelaan 25, Amersfoort\"\n - place_name: \"Rijksmuseum Schiphol\"\n auxiliary_place_type: BRANCH_OFFICE\n street_address: \"Schiphol Airport, Lounge 2\"\n hosts_branch:\n has_or_had_label: \"Schiphol Exhibition Space\"\n```\n\n**TEMPORAL VALIDITY**:\n\nAuxiliary places can open/close independently:\n- Storage facility opened 1995, closed 2010 (moved to new location)\n- Branch office valid_from 2000, valid_to null (still active)\n\nTrack with valid_from/valid_to or temporal_extent (for fuzzy dates).\n" + \ \u2514\u2500\u2500 located_at \u2192 AuxiliaryPlace (optional physical location)\n```\n\n**USE CASES**:\n\n1. **Off-site Storage Facilities**:\n - Museum depot in Amersfoort (Rijksmuseum)\n - Archive annexes and document centers\n\n2. **Branch Libraries/Offices**:\n - University library branches at satellite campuses\n - Regional archive offices (Noord-Holland, Zuid-Holland)\n\n3. **Research Centers**:\n - Conservation lab in separate building\n - Digitization center at different address\n\n4. **Historic Buildings Under Same Custodian**:\n - Mauritshuis manages multiple historic houses\n - Abbey with multiple monastic buildings\n\n5. **Temporary Locations**:\n - Exhibition pavilions\n - Pop-up museums/archives\n - Storage during renovation\n\n**Example - Rijksmuseum with Multiple Sites**:\n```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n place_designation:\n place_name: \"Rijksmuseum\"\ + \ # Main building on Museumplein\n auxiliary_places:\n - place_name: \"Depot Amersfoort\"\n auxiliary_place_type: STORAGE_FACILITY\n street_address: \"Euterpelaan 25, Amersfoort\"\n - place_name: \"Rijksmuseum Schiphol\"\n auxiliary_place_type: BRANCH_OFFICE\n street_address: \"Schiphol Airport, Lounge 2\"\n hosts_branch:\n has_label: \"Schiphol Exhibition Space\"\n```\n\n**TEMPORAL VALIDITY**:\n\nAuxiliary places can open/close independently:\n- Storage facility opened 1995, closed 2010 (moved to new location)\n- Branch office valid_from 2000, valid_to null (still active)\n\nTrack with valid_from/valid_to or temporal_extent (for fuzzy dates).\n" exact_mappings: - org:Site close_mappings: @@ -56,51 +56,51 @@ classes: - org:siteAddress - vcard:Address slots: - - has_or_had_identifier - - has_or_had_type - - is_or_was_located_in + - identified_by + - has_type + - located_in - country - - has_or_had_location - - is_or_was_location_of - - is_or_was_branch_of - - has_or_had_description - - has_or_had_label + - has_location + - is_location_of + - branch_of + - has_description + - has_label - postal_code - refers_to_custodian - settlement - specialized_place - - has_or_had_geographic_subdivision - - has_or_had_score + - has_geographic_subdivision + - has_score - temporal_extent - - is_or_was_derived_from - - is_or_was_generated_by - - has_or_had_geometry + - derived_from + - generated_by + - has_geometry slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort - has_or_had_label: + has_label: # range: string required: true examples: - value: Depot Amersfoort - value: Rijksmuseum Schiphol - value: Reading Room Annex - has_or_had_type: + has_type: # range: string # uriorcurie # range: PlaceType required: true inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_label: STORAGE_FACILITY + has_label: STORAGE_FACILITY - value: - has_or_had_label: BRANCH_OFFICE + has_label: BRANCH_OFFICE - value: - has_or_had_label: RESEARCH_CENTER + has_label: RESEARCH_CENTER specialized_place: # range: string # uriorcurie # range: ReconstructedEntity @@ -117,7 +117,7 @@ classes: conservation_specialties: - Works on paper - Drawings - has_or_had_description: + has_description: # range: string examples: - value: Off-site storage facility housing overflow collections. Staff access only. @@ -125,7 +125,7 @@ classes: # range: string examples: - value: 3824 BK - is_or_was_located_in: + located_in: # range: string required: false inlined: false # Fixed invalid inline for primitive type @@ -137,7 +137,7 @@ classes: range: Country examples: - value: https://nde.nl/ontology/hc/country/NL - has_or_had_geographic_subdivision: + has_geographic_subdivision: # range: string examples: - value: https://nde.nl/ontology/hc/subregion/NL-UT @@ -147,7 +147,7 @@ classes: - value: https://nde.nl/ontology/hc/settlement/2759633 - value: https://nde.nl/ontology/hc/settlement/5206379 - value: https://nde.nl/ontology/hc/feature/herenhuis-mansion - has_or_had_location: + has_location: # range: string # uriorcurie # range: GeoSpatialPlace multivalued: true @@ -155,40 +155,40 @@ classes: required: false examples: - value: - has_or_had_location: + has_location: geospatial_id: https://nde.nl/ontology/hc/geo/depot-amersfoort-building latitude: 52.1561 longitude: 5.3878 - has_or_had_geometry: - - has_or_had_format: - has_or_had_value: POLYGON((5.385 52.154, 5.390 52.154, 5.390 52.158, 5.385 52.158, 5.385 52.154)) - has_or_had_type: - has_or_had_label: POLYGON + has_geometry: + - has_format: + has_value: POLYGON((5.385 52.154, 5.390 52.154, 5.390 52.158, 5.385 52.158, 5.385 52.154)) + has_type: + has_label: POLYGON osm_id: way/234567890 has_accuracy_in_meters: 1.0 spatial_resolution: BUILDING - value: - has_or_had_location: + has_location: geospatial_id: https://nde.nl/ontology/hc/geo/schiphol-branch latitude: 52.3086 longitude: 4.7639 - has_or_had_geometry: - - has_or_had_format: - has_or_had_value: POINT(4.7639 52.3086) - has_or_had_type: - has_or_had_label: POINT + has_geometry: + - has_format: + has_value: POINT(4.7639 52.3086) + has_type: + has_label: POINT has_accuracy_in_meters: 50.0 spatial_resolution: BUILDING - is_or_was_location_of: + is_location_of: # range: string # uriorcurie # range: OrganizationBranch multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_label: Conservation Division - Amersfoort + has_label: Conservation Division - Amersfoort branch_type: CONSERVATION_LAB - is_or_was_branch_of: + branch_of: # range: string # uriorcurie # range: CustodianPlace required: true @@ -203,11 +203,11 @@ classes: - value: begin_of_the_begin: '1970-01-01' end_of_the_begin: '1979-12-31' - is_or_was_derived_from: + derived_from: # range: string # CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false refers_to_custodian: @@ -230,45 +230,45 @@ classes: - https://www.w3.org/TR/vcard-rdf/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort - has_or_had_label: Depot Amersfoort - has_or_had_type: - has_or_had_label: STORAGE_FACILITY - has_or_had_description: Off-site storage facility for overflow collections. Climate-controlled. Staff access only. + identified_by: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort + has_label: Depot Amersfoort + has_type: + has_label: STORAGE_FACILITY + has_description: Off-site storage facility for overflow collections. Climate-controlled. Staff access only. country: https://nde.nl/ontology/hc/country/NL - has_or_had_geographic_subdivision: https://nde.nl/ontology/hc/subregion/NL-UT - is_or_was_branch_of: https://nde.nl/ontology/hc/place/rijksmuseum-main + has_geographic_subdivision: https://nde.nl/ontology/hc/subregion/NL-UT + branch_of: https://nde.nl/ontology/hc/place/rijksmuseum-main refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/rijksmuseum-schiphol - has_or_had_label: Rijksmuseum Schiphol - has_or_had_type: - has_or_had_label: BRANCH_OFFICE - has_or_had_description: Small exhibition space at Schiphol Airport featuring rotating highlights from the collection. - is_or_was_located_in: + identified_by: https://nde.nl/ontology/hc/aux-place/rijksmuseum-schiphol + has_label: Rijksmuseum Schiphol + has_type: + has_label: BRANCH_OFFICE + has_description: Small exhibition space at Schiphol Airport featuring rotating highlights from the collection. + located_in: settlement_name: Hoofddorp country: NL country: https://nde.nl/ontology/hc/country/NL - is_or_was_location_of: - - has_or_had_label: Schiphol Exhibition Team + is_location_of: + - has_label: Schiphol Exhibition Team branch_type: EXHIBITION_SPACE - is_or_was_branch_of: https://nde.nl/ontology/hc/place/rijksmuseum-main + branch_of: https://nde.nl/ontology/hc/place/rijksmuseum-main refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/nha-reading-room-annex - has_or_had_label: Noord-Hollands Archief Reading Room Annex - has_or_had_type: - has_or_had_label: READING_ROOM_ANNEX + identified_by: https://nde.nl/ontology/hc/aux-place/nha-reading-room-annex + has_label: Noord-Hollands Archief Reading Room Annex + has_type: + has_label: READING_ROOM_ANNEX specialized_place: reading_room_annex_id: https://nde.nl/hc/reading-room-annex/nha-overflow annex_name: NHA Overflow Reading Room annex_reason: PEAK_DEMAND capacity_seats: 12 - has_or_had_description: Overflow reading room for peak research periods. - is_or_was_located_in: + has_description: Overflow reading room for peak research periods. + located_in: settlement_name: Haarlem country: NL - is_or_was_branch_of: https://nde.nl/ontology/hc/place/noord-hollands-archief-main + branch_of: https://nde.nl/ontology/hc/place/noord-hollands-archief-main refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-haa-a-nha annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/AvailabilityStatus.yaml b/schemas/20251121/linkml/modules/classes/AvailabilityStatus.yaml index 9a9d2ecbc0..1e660c86b3 100644 --- a/schemas/20251121/linkml/modules/classes/AvailabilityStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/AvailabilityStatus.yaml @@ -3,8 +3,8 @@ name: availability_status_class title: AvailabilityStatus Class imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ @@ -40,17 +40,17 @@ classes: related_mappings: - dcterms:available slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description - temporal_extent slot_usage: - has_or_had_label: + has_label: # range: string required: false examples: - value: API Available - value: Service Unavailable - has_or_had_description: + has_description: # range: string examples: - value: REST API available with JSON responses @@ -73,8 +73,8 @@ classes: - https://www.w3.org/TR/vocab-dcat-2/#Class:DataService examples: - value: - has_or_had_label: API Available - has_or_had_description: REST API with JSON responses available for collection metadata access + has_label: API Available + has_description: REST API with JSON responses available for collection metadata access annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/BOLDIdentifier.yaml b/schemas/20251121/linkml/modules/classes/BOLDIdentifier.yaml index 05df84ae7b..29b271822f 100644 --- a/schemas/20251121/linkml/modules/classes/BOLDIdentifier.yaml +++ b/schemas/20251121/linkml/modules/classes/BOLDIdentifier.yaml @@ -11,8 +11,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_score classes: BOLDIdentifier: class_uri: schema:PropertyValue @@ -28,8 +28,8 @@ classes: close_mappings: - dcterms:identifier slots: - - has_or_had_description - - has_or_had_score + - has_description + - has_score comments: - Used for DNA barcode identifiers in natural history collections - Links physical specimens to molecular data diff --git a/schemas/20251121/linkml/modules/classes/BackupStatus.yaml b/schemas/20251121/linkml/modules/classes/BackupStatus.yaml index 8f4f3ddf1c..5cee6cda10 100644 --- a/schemas/20251121/linkml/modules/classes/BackupStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/BackupStatus.yaml @@ -13,47 +13,47 @@ imports: - linkml:types - ../slots/begin_of_the_begin - ../slots/end_of_the_end - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_note - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_type classes: BackupStatus: class_uri: prov:Entity - description: "Represents the current backup and disaster recovery status for a heritage custodian.\n\n**DEFINITION**:\n\nBackupStatus captures the current state of backup configurations including:\n- The type(s) of backup being used (via has_or_had_type \u2192 BackupType)\n- Status description (free text details)\n- Temporal validity (when this status was recorded/changed)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **PROV-O** | `prov:Entity` | Primary - entity with provenance |\n| **PREMIS** | `premis:fixity` | Related - data integrity |\n| **SKOS** | `skos:Concept` | For type classification |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nCustodianAdministration\n \u2502\n \u2514\u2500\u2500 has_or_had_status \u2192 BackupStatus (THIS CLASS)\n \u2502\n \u251C\u2500\u2500 has_or_had_type \u2192 BackupType (type hierarchy)\n \u251C\u2500\u2500 has_or_had_description (free text details)\n \u2514\ - \u2500\u2500 begin_of_the_begin / end_of_the_end (validity period)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the backup_status string slot.\nOld pattern: `backup_status: \"Daily backup to Azure, replicated to secondary site\"`\nNew pattern: `has_or_had_status: BackupStatus` with structured type and description\n" + description: "Represents the current backup and disaster recovery status for a heritage custodian.\n\n**DEFINITION**:\n\nBackupStatus captures the current state of backup configurations including:\n- The type(s) of backup being used (via has_type \u2192 BackupType)\n- Status description (free text details)\n- Temporal validity (when this status was recorded/changed)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **PROV-O** | `prov:Entity` | Primary - entity with provenance |\n| **PREMIS** | `premis:fixity` | Related - data integrity |\n| **SKOS** | `skos:Concept` | For type classification |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nCustodianAdministration\n \u2502\n \u2514\u2500\u2500 has_status \u2192 BackupStatus (THIS CLASS)\n \u2502\n \u251C\u2500\u2500 has_type \u2192 BackupType (type hierarchy)\n \u251C\u2500\u2500 has_description (free text details)\n \u2514\ + \u2500\u2500 begin_of_the_begin / end_of_the_end (validity period)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the backup_status string slot.\nOld pattern: `backup_status: \"Daily backup to Azure, replicated to secondary site\"`\nNew pattern: `has_status: BackupStatus` with structured type and description\n" exact_mappings: - prov:Entity close_mappings: - premis:fixity slots: - - has_or_had_identifier - - has_or_had_type - - has_or_had_label - - has_or_had_description - - has_or_had_note + - identified_by + - has_type + - has_label + - has_description + - has_note - begin_of_the_begin - end_of_the_end slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie identifier: true required: true pattern: ^https://nde\.nl/ontology/hc/backup-status/[a-z0-9-]+$ - has_or_had_type: + has_type: # range: string # uriorcurie multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - - has_or_had_code: DAILY_AUTOMATED - - has_or_had_code: CLOUD_AZURE - has_or_had_description: + - has_code: DAILY_AUTOMATED + - has_code: CLOUD_AZURE + has_description: # range: string examples: - value: Daily backup to Azure, replicated to secondary site in Rotterdam. - has_or_had_note: + has_note: # range: string multivalued: true examples: @@ -64,8 +64,8 @@ classes: annotations: specificity_score: '0.60' specificity_rationale: Backup status relevant to all heritage custodians with digital assets. - has_or_had_score: null - slot_migration: "2026-01-13: Migrated from backup_status string slot\n- backup_status (string) \u2192 has_or_had_status (BackupStatus)\n" + has_score: null + slot_migration: "2026-01-13: Migrated from backup_status string slot\n- backup_status (string) \u2192 has_status (BackupStatus)\n" custodian_types: "['*']" comments: - BackupStatus represents the current backup configuration state @@ -74,20 +74,20 @@ classes: - 'MIGRATED 2026-01-13: Replaces backup_status string slot' examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/backup-status/example-001 - has_or_had_type: - - has_or_had_code: DAILY_AUTOMATED - - has_or_had_code: CLOUD_AZURE - has_or_had_description: 'Daily automated backup to Azure with replication to secondary site. + identified_by: https://nde.nl/ontology/hc/backup-status/example-001 + has_type: + - has_code: DAILY_AUTOMATED + - has_code: CLOUD_AZURE + has_description: 'Daily automated backup to Azure with replication to secondary site. 30-day retention, encrypted at rest. ' begin_of_the_begin: '2024-01-15T00:00:00Z' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/backup-status/critical-001 - has_or_had_type: - - has_or_had_code: NOT_BACKED_UP - has_or_had_description: Legacy system not yet included in backup. Migration planned for Q2 2026. - has_or_had_note: + identified_by: https://nde.nl/ontology/hc/backup-status/critical-001 + has_type: + - has_code: NOT_BACKED_UP + has_description: Legacy system not yet included in backup. Migration planned for Q2 2026. + has_note: - 'CRITICAL: Data at risk until migration complete' \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/BackupType.yaml b/schemas/20251121/linkml/modules/classes/BackupType.yaml index c3aa515e77..1bb31ad1cd 100644 --- a/schemas/20251121/linkml/modules/classes/BackupType.yaml +++ b/schemas/20251121/linkml/modules/classes/BackupType.yaml @@ -17,19 +17,19 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/is_or_was_equivalent_to - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/equivalent_to + - ../slots/20260202_matang/related_to classes: BackupType: class_uri: skos:Concept description: "Classification type for backup and disaster recovery strategies in heritage custodian contexts.\n\n**DEFINITION**:\n\nBackupType provides a SKOS-based classification hierarchy for categorizing\ndifferent types of backup strategies, frequencies, and storage locations\nused by heritage institutions for data protection.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **SKOS** | `skos:Concept` | Primary - controlled vocabulary concept |\n| **PREMIS** | `premis:fixity` | Related - data integrity verification |\n| **DQV** | `dqv:QualityMeasurement` | Data quality measurement |\n| **Dublin Core** | `dcterms:isReferencedBy` | Backup documentation |\n\n**BACKUP TYPE CATEGORIES** (from slot definition):\n\n| Category | Description |\n|----------|-------------|\n| **FREQUENCY** | How often backups occur (daily, weekly, continuous) |\n| **STRATEGY** | Backup approach (full, incremental, differential) |\n| **LOCATION** |\ - \ Where backups are stored (on-site, off-site, cloud) |\n| **MEDIUM** | Storage medium (disk, tape, cloud, paper) |\n| **STATUS** | Current state (active, inactive, not backed up) |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nCustodianAdministration\n \u2502\n \u2514\u2500\u2500 has_or_had_status \u2192 BackupStatus (status class)\n \u2502\n \u2514\u2500\u2500 has_or_had_type \u2192 BackupType (THIS CLASS)\n \u251C\u2500\u2500 has_or_had_hypernym \u2192 BackupType (parent)\n \u2514\u2500\u2500 has_or_had_description (strategy details)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the backup_status string slot with a proper class hierarchy.\nOld pattern: `backup_status: \"Daily backup to Azure\"` (string)\nNew pattern: `has_or_had_status: BackupStatus` \u2192 `has_or_had_type: BackupType` (object reference)\n" + \ Where backups are stored (on-site, off-site, cloud) |\n| **MEDIUM** | Storage medium (disk, tape, cloud, paper) |\n| **STATUS** | Current state (active, inactive, not backed up) |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nCustodianAdministration\n \u2502\n \u2514\u2500\u2500 has_status \u2192 BackupStatus (status class)\n \u2502\n \u2514\u2500\u2500 has_type \u2192 BackupType (THIS CLASS)\n \u251C\u2500\u2500 has_hypernym \u2192 BackupType (parent)\n \u2514\u2500\u2500 has_description (strategy details)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the backup_status string slot with a proper class hierarchy.\nOld pattern: `backup_status: \"Daily backup to Azure\"` (string)\nNew pattern: `has_status: BackupStatus` \u2192 `has_type: BackupType` (object reference)\n" exact_mappings: - skos:Concept close_mappings: @@ -38,23 +38,23 @@ classes: related_mappings: - dcterms:isReferencedBy slots: - - has_or_had_identifier - - has_or_had_code - - has_or_had_label - - has_or_had_description - - has_or_had_hypernym - - has_or_had_hyponym - - is_or_was_related_to - - is_or_was_equivalent_to + - identified_by + - has_code + - has_label + - has_description + - has_hypernym + - has_hyponym + - related_to + - equivalent_to slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/backup-type/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/backup-type/daily-automated - has_or_had_code: + has_code: # range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ @@ -62,7 +62,7 @@ classes: - value: DAILY_AUTOMATED - value: CLOUD_AZURE - value: NOT_BACKED_UP - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -73,17 +73,17 @@ classes: - value: - Cloud backup (Azure)@en - Cloud backup (Azure)@nl - has_or_had_description: + has_description: # range: string examples: - value: Daily automated backup to off-site storage with 30-day retention. - has_or_had_hypernym: + has_hypernym: range: BackupType - has_or_had_hyponym: + has_hyponym: range: BackupType multivalued: true inlined_as_list: true - is_or_was_equivalent_to: + equivalent_to: range: WikiDataIdentifier multivalued: true inlined: true @@ -94,8 +94,8 @@ classes: annotations: specificity_score: '0.60' specificity_rationale: Backup types are relevant to all heritage custodians with digital assets. - has_or_had_score: null - slot_migration: "2026-01-13: Migrated from backup_status string slot to BackupType class hierarchy\n- backup_status (string) \u2192 has_or_had_status (BackupStatus) \u2192 has_or_had_type (BackupType)\n" + has_score: null + slot_migration: "2026-01-13: Migrated from backup_status string slot to BackupType class hierarchy\n- backup_status (string) \u2192 has_status (BackupStatus) \u2192 has_type (BackupType)\n" custodian_types: "['*']" comments: - BackupType provides SKOS-based classification for backup strategies @@ -107,12 +107,12 @@ classes: - https://www.w3.org/TR/vocab-dqv/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/backup-type/daily-automated - has_or_had_code: DAILY_AUTOMATED - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/backup-type/daily-automated + has_code: DAILY_AUTOMATED + has_label: - Daily automated backup@en - Dagelijkse geautomatiseerde backup@nl - has_or_had_description: 'Daily automated backup to off-site storage location. + has_description: 'Daily automated backup to off-site storage location. Typically includes 30-day retention policy. diff --git a/schemas/20251121/linkml/modules/classes/BackupTypes.yaml b/schemas/20251121/linkml/modules/classes/BackupTypes.yaml index 1195a5aa3f..5364cbe695 100644 --- a/schemas/20251121/linkml/modules/classes/BackupTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/BackupTypes.yaml @@ -29,8 +29,8 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_code: DAILY_AUTOMATED - has_or_had_label: + has_code: DAILY_AUTOMATED + has_label: - Daily automated backup@en - Dagelijkse geautomatiseerde backup@nl description: Standard daily backup configuration @@ -54,8 +54,8 @@ classes: specificity_score: '0.65' examples: - value: - has_or_had_code: WEEKLY_FULL_DAILY_INCR - has_or_had_label: + has_code: WEEKLY_FULL_DAILY_INCR + has_label: - Weekly full, daily incremental@en - Wekelijks volledig, dagelijks incrementeel@nl description: Enterprise backup strategy @@ -79,8 +79,8 @@ classes: specificity_score: '0.70' examples: - value: - has_or_had_code: CONTINUOUS_REPLICATION - has_or_had_label: + has_code: CONTINUOUS_REPLICATION + has_label: - Continuous replication@en - Continue replicatie@nl description: Real-time data protection @@ -102,8 +102,8 @@ classes: specificity_score: '0.70' examples: - value: - has_or_had_code: SECONDARY_SITE - has_or_had_label: + has_code: SECONDARY_SITE + has_label: - Secondary site replication@en - Replicatie naar secundaire locatie@nl description: Geographic redundancy @@ -127,8 +127,8 @@ classes: specificity_score: '0.65' examples: - value: - has_or_had_code: CLOUD_AZURE - has_or_had_label: + has_code: CLOUD_AZURE + has_label: - Cloud backup (Azure)@en - Cloud backup (Azure)@nl description: Azure cloud backup @@ -150,8 +150,8 @@ classes: specificity_score: '0.65' examples: - value: - has_or_had_code: CLOUD_AWS - has_or_had_label: + has_code: CLOUD_AWS + has_label: - Cloud backup (AWS)@en - Cloud backup (AWS)@nl description: AWS cloud backup @@ -173,8 +173,8 @@ classes: specificity_score: '0.60' examples: - value: - has_or_had_code: ON_PREMISE - has_or_had_label: + has_code: ON_PREMISE + has_label: - On-premise backup@en - Lokale backup@nl description: Local-only backup @@ -199,8 +199,8 @@ classes: alert_level: CRITICAL examples: - value: - has_or_had_code: NOT_BACKED_UP - has_or_had_label: + has_code: NOT_BACKED_UP + has_label: - NOT BACKED UP@en - NIET GEBACK-UPT@nl description: Critical - no backup in place @@ -224,8 +224,8 @@ classes: specificity_score: '0.55' examples: - value: - has_or_had_code: PAPER_ONLY - has_or_had_label: + has_code: PAPER_ONLY + has_label: - Paper only - no digital backup@en - Alleen papier - geen digitale backup@nl description: Non-digitized physical records @@ -247,8 +247,8 @@ classes: specificity_score: '0.65' examples: - value: - has_or_had_code: TAPE_BACKUP - has_or_had_label: + has_code: TAPE_BACKUP + has_label: - Tape backup@en - Tape backup@nl description: Magnetic tape storage @@ -270,8 +270,8 @@ classes: specificity_score: '0.60' examples: - value: - has_or_had_code: DISK_BACKUP - has_or_had_label: + has_code: DISK_BACKUP + has_label: - Disk-based backup@en - Schijf-gebaseerde backup@nl description: Disk array storage @@ -293,8 +293,8 @@ classes: specificity_score: '0.70' examples: - value: - has_or_had_code: HYBRID - has_or_had_label: + has_code: HYBRID + has_label: - Hybrid backup@en - Hybride backup@nl description: Multi-method backup strategy diff --git a/schemas/20251121/linkml/modules/classes/BankArchive.yaml b/schemas/20251121/linkml/modules/classes/BankArchive.yaml index 5e48eda9fe..b30d1321dc 100644 --- a/schemas/20251121/linkml/modules/classes/BankArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/BankArchive.yaml @@ -14,9 +14,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: BankArchive: diff --git a/schemas/20251121/linkml/modules/classes/BankArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/BankArchiveRecordSetType.yaml index d1a406bd1f..735713245f 100644 --- a/schemas/20251121/linkml/modules/classes/BankArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/BankArchiveRecordSetType.yaml @@ -14,9 +14,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: BankArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by BankArchive custodians. @@ -25,14 +25,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - BankArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/BankArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/BankArchiveRecordSetTypes.yaml index 190f405eb9..73df495af8 100644 --- a/schemas/20251121/linkml/modules/classes/BankArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/BankArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./BankArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - BankArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: BankingRecordsFonds @@ -78,15 +78,15 @@ classes: - BankArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: FinancialTransactionSeries @@ -115,15 +115,15 @@ classes: - BankArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CustomerAccountSeries diff --git a/schemas/20251121/linkml/modules/classes/BayNumber.yaml b/schemas/20251121/linkml/modules/classes/BayNumber.yaml index 36283658eb..7ed78d40bd 100644 --- a/schemas/20251121/linkml/modules/classes/BayNumber.yaml +++ b/schemas/20251121/linkml/modules/classes/BayNumber.yaml @@ -3,12 +3,12 @@ name: bay_number_class title: Bay Number Class description: 'A storage bay or section identifier within a storage row. MIGRATED from bay_number slot (Rule 53). - Uses generic has_or_had_identifier slot with range narrowed to BayNumber. + Uses generic identified_by slot with range narrowed to BayNumber. Updated 2026-01-16: Migrated from inline attributes to proper slots. ' imports: - linkml:types - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -20,7 +20,7 @@ classes: BayNumber: class_uri: hc:BayNumber description: "An identifier for a storage bay or section within a row/aisle of a storage facility.\n\n**DEFINITION**:\n\nBayNumber represents a discrete location identifier within a storage system.\nIn heritage storage facilities, storage is typically organized hierarchically:\n\n```\nStorage Facility\n \u2514\u2500\u2500 Zone (environmental control)\n \u2514\u2500\u2500 Row/Aisle (physical corridor)\n \u2514\u2500\u2500 Bay/Section (THIS CLASS - vertical unit in row)\n \u2514\u2500\u2500 Shelf (horizontal level within bay)\n \u2514\u2500\u2500 Storage Unit (box, drawer, etc.)\n```\n\n**TYPICAL VALUES**:\n\n| Format | Example | Description |\n|--------|---------|-------------|\n| Numeric | \"3\", \"12\" | Sequential bay numbers |\n| Alphabetic | \"A\", \"C\", \"AA\" | Lettered bays |\n| Mixed | \"3A\", \"B2\" | Combined formats |\n| Descriptive | \"North-3\" | Location-based |\n\n**HERITAGE USE CASES**:\n\n| Institution Type | Bay Naming Convention\ - \ |\n|------------------|----------------------|\n| Archives | Sequential numeric (1, 2, 3...) |\n| Museums | Alphanumeric by collection area |\n| Libraries | By call number range |\n| Natural history | By specimen type |\n\n**PROVENANCE**:\n\nCreated as part of slot migration (Rule 53) from deprecated\n`bay_number` slot to generic `has_or_had_identifier` pattern.\n" + \ |\n|------------------|----------------------|\n| Archives | Sequential numeric (1, 2, 3...) |\n| Museums | Alphanumeric by collection area |\n| Libraries | By call number range |\n| Natural history | By specimen type |\n\n**PROVENANCE**:\n\nCreated as part of slot migration (Rule 53) from deprecated\n`bay_number` slot to generic `identified_by` pattern.\n" exact_mappings: - hc:BayNumber close_mappings: @@ -28,7 +28,7 @@ classes: related_mappings: - schema:identifier slots: - - has_or_had_score + - has_score comments: - Storage bay identifier within a row/aisle - Part of hierarchical storage location addressing diff --git a/schemas/20251121/linkml/modules/classes/Bildstelle.yaml b/schemas/20251121/linkml/modules/classes/Bildstelle.yaml index afb92f0ce5..624ede3a14 100644 --- a/schemas/20251121/linkml/modules/classes/Bildstelle.yaml +++ b/schemas/20251121/linkml/modules/classes/Bildstelle.yaml @@ -5,8 +5,8 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: Bildstelle: is_a: ArchiveOrganizationType @@ -81,11 +81,11 @@ classes: ' slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/BindingType.yaml b/schemas/20251121/linkml/modules/classes/BindingType.yaml index 161a6f8ac1..e186d303a6 100644 --- a/schemas/20251121/linkml/modules/classes/BindingType.yaml +++ b/schemas/20251121/linkml/modules/classes/BindingType.yaml @@ -12,19 +12,19 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/is_or_was_equivalent_to - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/equivalent_to + - ../slots/20260202_matang/related_to classes: BindingType: class_uri: bf:Binding description: "Classification type for book binding methods in heritage custodian contexts.\n\n**DEFINITION**:\n\nBindingType provides a SKOS-based classification hierarchy for categorizing\ndifferent types of book bindings based on method, material, and style.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **BIBFRAME** | `bf:Binding` | Primary - binding method for published resources |\n| **AAT** | `aat:300211468` | Getty bindings concept hierarchy |\n| **CIDOC-CRM** | `crm:E55_Type` | General type classification |\n| **SKOS** | `skos:Concept` | Controlled vocabulary concept |\n\n**BINDING TYPES** (from slot definition):\n\n| Type | Description |\n|------|-------------|\n| `FULL_LEATHER` | Entire cover in leather |\n| `HALF_LEATHER` | Spine and corners in leather |\n| `QUARTER_LEATHER` | Spine only in leather |\n| `CLOTH` | Cloth binding covers |\n| `PAPER_BOARDS` | Paper-covered boards |\n| `LIMP_VELLUM` | Flexible vellum\ - \ cover |\n| `CASE_BINDING` | Modern hardcover case |\n| `PAMPHLET_BINDING` | Simple pamphlet stitch |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nInformationCarrier / ExhibitionCatalog\n \u2502\n \u2514\u2500\u2500 has_or_had_type \u2192 BindingType (THIS CLASS)\n \u251C\u2500\u2500 has_or_had_hypernym \u2192 BindingType (parent)\n \u2514\u2500\u2500 has_or_had_description (method details)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the binding_type string slot with a proper class hierarchy.\nOld pattern: `binding_type: \"Full leather\"` (string)\nNew pattern: `has_or_had_type: BindingType` (object reference)\n" + \ cover |\n| `CASE_BINDING` | Modern hardcover case |\n| `PAMPHLET_BINDING` | Simple pamphlet stitch |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nInformationCarrier / ExhibitionCatalog\n \u2502\n \u2514\u2500\u2500 has_type \u2192 BindingType (THIS CLASS)\n \u251C\u2500\u2500 has_hypernym \u2192 BindingType (parent)\n \u2514\u2500\u2500 has_description (method details)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the binding_type string slot with a proper class hierarchy.\nOld pattern: `binding_type: \"Full leather\"` (string)\nNew pattern: `has_type: BindingType` (object reference)\n" exact_mappings: - bf:Binding close_mappings: @@ -33,23 +33,23 @@ classes: related_mappings: - aat:300211468 slots: - - has_or_had_identifier - - has_or_had_code - - has_or_had_label - - has_or_had_description - - has_or_had_hypernym - - has_or_had_hyponym - - is_or_was_related_to - - is_or_was_equivalent_to + - identified_by + - has_code + - has_label + - has_description + - has_hypernym + - has_hyponym + - related_to + - equivalent_to slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/binding-type/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/binding-type/full-leather - has_or_had_code: + has_code: # range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ @@ -57,7 +57,7 @@ classes: - value: FULL_LEATHER - value: HALF_LEATHER - value: CLOTH - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -68,17 +68,17 @@ classes: - value: - Half leather@en - Halfleren band@nl - has_or_had_description: + has_description: # range: string examples: - value: Entire cover bound in leather, typically calfskin, goatskin, or morocco. - has_or_had_hypernym: + has_hypernym: range: BindingType - has_or_had_hyponym: + has_hyponym: range: BindingType multivalued: true inlined_as_list: true - is_or_was_equivalent_to: + equivalent_to: range: WikiDataIdentifier multivalued: true inlined: true @@ -89,8 +89,8 @@ classes: annotations: specificity_score: '0.70' specificity_rationale: Binding types are specific to bound volumes in libraries and archives. - has_or_had_score: null - slot_migration: "2026-01-13: Migrated from binding_type string slot to BindingType class\n- binding_type (string) \u2192 has_or_had_type (BindingType)\n" + has_score: null + slot_migration: "2026-01-13: Migrated from binding_type string slot to BindingType class\n- binding_type (string) \u2192 has_type (BindingType)\n" custodian_types: "['*']" comments: - BindingType provides SKOS-based classification for bound volumes @@ -102,12 +102,12 @@ classes: - http://vocab.getty.edu/aat/300211468 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/binding-type/full-leather - has_or_had_code: FULL_LEATHER - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/binding-type/full-leather + has_code: FULL_LEATHER + has_label: - Full leather@en - Volledige leren band@nl - has_or_had_description: 'Entire cover bound in leather, typically calfskin, goatskin, + has_description: 'Entire cover bound in leather, typically calfskin, goatskin, or morocco. Common in fine bindings and historical books. diff --git a/schemas/20251121/linkml/modules/classes/BindingTypes.yaml b/schemas/20251121/linkml/modules/classes/BindingTypes.yaml index af36c2337f..c267f2d958 100644 --- a/schemas/20251121/linkml/modules/classes/BindingTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/BindingTypes.yaml @@ -36,8 +36,8 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_code: FULL_LEATHER - has_or_had_label: + has_code: FULL_LEATHER + has_label: - Full leather@en - Volledige leren band@nl description: Traditional fine binding @@ -61,8 +61,8 @@ classes: specificity_score: '0.75' examples: - value: - has_or_had_code: HALF_LEATHER - has_or_had_label: + has_code: HALF_LEATHER + has_label: - Half leather@en - Halfleren band@nl description: Common 19th century style @@ -84,8 +84,8 @@ classes: specificity_score: '0.75' examples: - value: - has_or_had_code: QUARTER_LEATHER - has_or_had_label: + has_code: QUARTER_LEATHER + has_label: - Quarter leather@en - Kwartleren band@nl description: Economical leather binding @@ -112,8 +112,8 @@ classes: specificity_score: '0.70' examples: - value: - has_or_had_code: CLOTH - has_or_had_label: + has_code: CLOTH + has_label: - Cloth@en - Linnen band@nl description: Standard cloth binding @@ -142,8 +142,8 @@ classes: specificity_score: '0.70' examples: - value: - has_or_had_code: PAPER_BOARDS - has_or_had_label: + has_code: PAPER_BOARDS + has_label: - Paper boards@en - Papieren borden@nl description: Paper-covered boards @@ -172,8 +172,8 @@ classes: specificity_score: '0.80' examples: - value: - has_or_had_code: LIMP_VELLUM - has_or_had_label: + has_code: LIMP_VELLUM + has_label: - Limp vellum@en - Slappe perkamenten band@nl description: Historical archival binding @@ -202,8 +202,8 @@ classes: specificity_score: '0.65' examples: - value: - has_or_had_code: CASE_BINDING - has_or_had_label: + has_code: CASE_BINDING + has_label: - Case binding@en - Hardcover@nl description: Modern hardcover @@ -230,8 +230,8 @@ classes: specificity_score: '0.70' examples: - value: - has_or_had_code: PAMPHLET_BINDING - has_or_had_label: + has_code: PAMPHLET_BINDING + has_label: - Pamphlet binding@en - Brochureband@nl description: Simple stitched pamphlet diff --git a/schemas/20251121/linkml/modules/classes/BioCustodianSubtype.yaml b/schemas/20251121/linkml/modules/classes/BioCustodianSubtype.yaml index e06395c6c8..6010a07f98 100644 --- a/schemas/20251121/linkml/modules/classes/BioCustodianSubtype.yaml +++ b/schemas/20251121/linkml/modules/classes/BioCustodianSubtype.yaml @@ -10,10 +10,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/is_or_was_equivalent_to + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/equivalent_to default_prefix: hc classes: BioCustodianSubtype: @@ -56,7 +56,7 @@ classes: **Wikidata Integration**: - Each subtype links to a Wikidata entity via `is_or_was_equivalent_to`. The 1142 subtypes + Each subtype links to a Wikidata entity via `equivalent_to`. The 1142 subtypes in BioCustodianTypeEnum are candidates for promotion to concrete subclasses. @@ -85,19 +85,19 @@ classes: close_mappings: - schema:Enumeration slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - is_or_was_equivalent_to + - identified_by + - has_label + - has_description + - equivalent_to slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true # range: string # uriorcurie examples: - value: hc:BioCustodianSubtype/BOTANICAL_GARDEN - value: hc:BioCustodianSubtype/ZOOLOGICAL_GARDEN - has_or_had_label: + has_label: required: true # range: string examples: @@ -105,10 +105,10 @@ classes: - value: Zoological Park - value: Alpine Garden - value: Safari Park - has_or_had_description: + has_description: required: false # range: string - is_or_was_equivalent_to: + equivalent_to: required: false range: WikiDataIdentifier examples: diff --git a/schemas/20251121/linkml/modules/classes/BioCustodianSubtypes.yaml b/schemas/20251121/linkml/modules/classes/BioCustodianSubtypes.yaml index e3d3824138..3c59e3e1c0 100644 --- a/schemas/20251121/linkml/modules/classes/BioCustodianSubtypes.yaml +++ b/schemas/20251121/linkml/modules/classes/BioCustodianSubtypes.yaml @@ -9,7 +9,7 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label default_prefix: hc classes: BotanicalGardenSubtype: @@ -26,13 +26,13 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Botanical Garden) examples: - value: - has_or_had_identifier: hc:BioCustodianSubtype/BOTANICAL_GARDEN - has_or_had_label: Botanical Garden - is_or_was_equivalent_to: + identified_by: hc:BioCustodianSubtype/BOTANICAL_GARDEN + has_label: Botanical Garden + equivalent_to: - qid: Q167346 annotations: specificity_score: 0.1 @@ -52,13 +52,13 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Arboretum) examples: - value: - has_or_had_identifier: hc:BioCustodianSubtype/ARBORETUM - has_or_had_label: Arboretum - is_or_was_equivalent_to: + identified_by: hc:BioCustodianSubtype/ARBORETUM + has_label: Arboretum + equivalent_to: - qid: Q167951 AlpineGardenSubtype: is_a: BioCustodianSubtype @@ -72,7 +72,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Alpine Garden) SeedBankSubtype: is_a: BioCustodianSubtype @@ -88,7 +88,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Seed Bank) HistoricGardenSubtype: is_a: BioCustodianSubtype @@ -104,7 +104,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Historic Garden) ZoologicalGardenSubtype: is_a: BioCustodianSubtype @@ -120,13 +120,13 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Zoological Garden) examples: - value: - has_or_had_identifier: hc:BioCustodianSubtype/ZOOLOGICAL_GARDEN - has_or_had_label: Zoological Garden - is_or_was_equivalent_to: + identified_by: hc:BioCustodianSubtype/ZOOLOGICAL_GARDEN + has_label: Zoological Garden + equivalent_to: - qid: Q43501 WildlifeParkSubtype: is_a: BioCustodianSubtype @@ -142,7 +142,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Wildlife Park) SafariParkSubtype: is_a: BioCustodianSubtype @@ -158,7 +158,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Safari Park) PettingZooSubtype: is_a: BioCustodianSubtype @@ -174,7 +174,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Petting Zoo) WildlifeRescueCenterSubtype: is_a: BioCustodianSubtype @@ -188,7 +188,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Wildlife Rescue Center) PublicAquariumSubtype: is_a: BioCustodianSubtype @@ -204,20 +204,20 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Public Aquarium) examples: - value: - has_or_had_identifier: hc:BioCustodianSubtype/PUBLIC_AQUARIUM - has_or_had_label: Public Aquarium - is_or_was_equivalent_to: + identified_by: hc:BioCustodianSubtype/PUBLIC_AQUARIUM + has_label: Public Aquarium + equivalent_to: - qid: Q2281788 OceanariumSubtype: is_a: BioCustodianSubtype class_uri: hc:OceanariumSubtype description: "Large-scale marine mammal and ocean life facility.\nOften includes dolphins, whales, and large marine exhibits.\n\n**Wikidata**: Q3348580\n**Examples**: Oceanogr\xE0fic Valencia\n" slot_usage: - has_or_had_label: + has_label: ifabsent: string(Oceanarium) ButterflyHouseSubtype: is_a: BioCustodianSubtype @@ -233,7 +233,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Butterfly House) InsectariumSubtype: is_a: BioCustodianSubtype @@ -247,7 +247,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Insectarium) AviarySubtype: is_a: BioCustodianSubtype @@ -261,7 +261,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Aviary) ReptileHouseSubtype: is_a: BioCustodianSubtype @@ -275,7 +275,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Reptile House) NatureReserveSubtype: is_a: BioCustodianSubtype @@ -289,7 +289,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Nature Reserve) NationalParkSubtype: is_a: BioCustodianSubtype @@ -303,7 +303,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(National Park) WildlifeSanctuarySubtype: is_a: BioCustodianSubtype @@ -317,5 +317,5 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Wildlife Sanctuary) diff --git a/schemas/20251121/linkml/modules/classes/BioCustodianType.yaml b/schemas/20251121/linkml/modules/classes/BioCustodianType.yaml index ed9dda0fb3..d727691776 100644 --- a/schemas/20251121/linkml/modules/classes/BioCustodianType.yaml +++ b/schemas/20251121/linkml/modules/classes/BioCustodianType.yaml @@ -5,10 +5,10 @@ imports: - ../classes/AgentType - linkml:types - ../slots/conservation_breeding - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_hyponym + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/living_collection - ../slots/research_program - ../slots/specimen_type @@ -161,29 +161,29 @@ classes: @nl ;\n skos:altLabel \"Artis\"@nl, \"Artis Royal Zoo\"@en ;\n schema:foundingDate \"1838-05-01\" ;\n schema:url <https://www.artis.nl/> .\n\n# Hortus botanicus Leiden\n<https://w3id.org/heritage/custodian/nl/hortus-leiden>\n a schema:Garden, schema:TouristAttraction ;\n hc:custodian_type hc:BioCustodianType ;\n hc:wikidata_entity wd:Q2468128 ; # Hortus botanicus Leiden\n hc:specimen_type \"vascular plants\", \"non-vascular plants\", \"fungi\" ;\n hc:collection_size \"More than 10,000 plant species\" ;\n hc:living_collections true ;\n hc:research_programs \"Plant taxonomy\", \"Tropical plant conservation\", \"Historic cultivar preservation\" ;\n hc:public_education \"Guided tours\", \"Plant identification workshops\", \"School programs\" ;\n hc:conservation_breeding \"Rare tropical plants\", \"Dutch heritage vegetables\" ;\n skos:prefLabel \"Hortus botanicus Leiden\"@nl ;\n schema:foundingDate \"1590\" ;\n schema:url <https://www.hortusleiden.nl/> .\n```\n\n**Provenance**:\n\ This classification supports multi-aspect modeling: BioCustodians can simultaneously\nbe PLACES (historic gardens), LEGAL ENTITIES (foundations, universities), and CUSTODIANS\n(managing both living and preserved collections) with independent temporal lifecycles.\n\n**See Also**:\n- Schema.org Zoo: `schema:Zoo`\n- Schema.org Garden: `schema:Garden`\n- Darwin Core: `dwc:PreservedSpecimen`\n- TDWG Standards: https://www.tdwg.org/standards/\n" slots: - - has_or_had_hyponym - - has_or_had_quantity + - has_hyponym + - has_quantity - conservation_breeding - - has_or_had_type + - has_type - living_collection - research_program - specimen_type - - has_or_had_score + - has_score slot_usage: specimen_type: # range: string multivalued: true required: false - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type multivalued: true required: false examples: - value: - has_or_had_unit: + has_unit: - value: - has_or_had_unit: + has_unit: is_estimate: true living_collection: range: boolean @@ -195,9 +195,9 @@ classes: conservation_breeding: # range: string required: false - has_or_had_type: + has_type: equals_expression: '["hc:BioCustodianType"]' - has_or_had_hyponym: + has_hyponym: # range: string # uriorcurie # range: BioCustodianSubtype inlined: false # Fixed invalid inline for primitive type diff --git a/schemas/20251121/linkml/modules/classes/BioTypeClassification.yaml b/schemas/20251121/linkml/modules/classes/BioTypeClassification.yaml index 86375b8952..65c91a95f3 100644 --- a/schemas/20251121/linkml/modules/classes/BioTypeClassification.yaml +++ b/schemas/20251121/linkml/modules/classes/BioTypeClassification.yaml @@ -10,10 +10,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/is_or_was_equivalent_to + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/equivalent_to default_prefix: hc classes: BioTypeClassification: @@ -26,29 +26,29 @@ classes: close_mappings: - schema:Enumeration slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - is_or_was_equivalent_to + - identified_by + - has_label + - has_description + - equivalent_to slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true # range: string # uriorcurie examples: - value: hc:BioTypeClassification/BOTANICAL - value: hc:BioTypeClassification/ZOOLOGICAL - has_or_had_label: + has_label: required: true # range: string examples: - value: Botanical Institution - value: Zoological Institution - value: Aquatic Institution - has_or_had_description: + has_description: required: false # range: string - is_or_was_equivalent_to: + equivalent_to: required: false range: WikiDataIdentifier comments: diff --git a/schemas/20251121/linkml/modules/classes/BioTypeClassifications.yaml b/schemas/20251121/linkml/modules/classes/BioTypeClassifications.yaml index 458543f1e0..a0d3a5bd12 100644 --- a/schemas/20251121/linkml/modules/classes/BioTypeClassifications.yaml +++ b/schemas/20251121/linkml/modules/classes/BioTypeClassifications.yaml @@ -16,7 +16,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label default_prefix: hc classes: BotanicalInstitutionClassification: @@ -42,12 +42,12 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Botanical Institution) examples: - value: - has_or_had_identifier: hc:BioTypeClassification/BOTANICAL - has_or_had_label: Botanical Institution + identified_by: hc:BioTypeClassification/BOTANICAL + has_label: Botanical Institution annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration @@ -75,12 +75,12 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Zoological Institution) examples: - value: - has_or_had_identifier: hc:BioTypeClassification/ZOOLOGICAL - has_or_had_label: Zoological Institution + identified_by: hc:BioTypeClassification/ZOOLOGICAL + has_label: Zoological Institution annotations: custodian_types: "['*']" AquaticInstitutionClassification: @@ -106,12 +106,12 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Aquatic Institution) examples: - value: - has_or_had_identifier: hc:BioTypeClassification/AQUATIC - has_or_had_label: Aquatic Institution + identified_by: hc:BioTypeClassification/AQUATIC + has_label: Aquatic Institution annotations: custodian_types: "['*']" MixedBioInstitutionClassification: @@ -132,12 +132,12 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Mixed Biological Institution) examples: - value: - has_or_had_identifier: hc:BioTypeClassification/MIXED_BIO - has_or_had_label: Mixed Biological Institution + identified_by: hc:BioTypeClassification/MIXED_BIO + has_label: Mixed Biological Institution annotations: custodian_types: "['*']" ConservationFocusedClassification: @@ -160,7 +160,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Conservation-Focused Institution) annotations: custodian_types: "['*']" @@ -184,7 +184,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Research-Focused Institution) annotations: custodian_types: "['*']" @@ -208,7 +208,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Education-Focused Institution) annotations: custodian_types: "['*']" @@ -232,7 +232,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Exhibition-Focused Institution) annotations: custodian_types: "['*']" @@ -245,7 +245,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Public Biological Institution) annotations: custodian_types: "['*']" @@ -258,7 +258,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Private Biological Institution) annotations: custodian_types: "['*']" @@ -278,7 +278,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(University-Affiliated Biological Institution) annotations: custodian_types: "['*']" @@ -294,7 +294,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Living Collection Institution) annotations: custodian_types: "['*']" @@ -310,7 +310,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Preserved Collection Institution) annotations: custodian_types: "['*']" @@ -330,7 +330,7 @@ classes: ' slot_usage: - has_or_had_label: + has_label: ifabsent: string(Hybrid Collection Institution) annotations: custodian_types: "['*']" diff --git a/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml b/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml index 22294d7b59..151ef20d01 100644 --- a/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml +++ b/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml @@ -16,22 +16,22 @@ imports: - ../enums/PreservationMethodEnum - ../metadata - ../slots/describes_or_described - - ../slots/has_or_had_authority - - ../slots/has_or_had_comment - - ../slots/has_or_had_habitat - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_name - - ../slots/has_or_had_place - - ../slots/has_or_had_rank - - ../slots/has_or_had_score - - ../slots/has_or_had_status - - ../slots/has_or_had_type - - ../slots/is_or_was_acquired_by - - ../slots/is_or_was_associated_with - - ../slots/is_or_was_identified_through - - ../slots/is_or_was_listed_in + - ../slots/20260202_matang/has_authority + - ../slots/20260202_matang/commented_on + - ../slots/20260202_matang/has_habitat + - ../slots/20260202_matang/has_hypernym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_name + - ../slots/20260202_matang/has_place + - ../slots/20260202_matang/has_rank + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/acquired_by + - ../slots/20260202_matang/associated_with + - ../slots/20260202_matang/identified_through + - ../slots/20260202_matang/listed_in - ../slots/is_type_specimen - ../slots/iucn_status - ../slots/legal_provenance_note @@ -50,7 +50,7 @@ classes: BiologicalObject: class_uri: crm:E20_Biological_Object description: "A biological specimen or natural history object held in a heritage collection.\n\nModels organisms, parts of organisms, or biological products preserved for\nscientific study, education, or display.\n\n**CIDOC-CRM Alignment**:\n\nE20_Biological_Object - \"Physical objects that have been produced by \nbiological processes and include organisms, parts of organisms, and \nbiological products.\"\n\n**Key Distinction from ExhibitedObject**:\n\n| Concept | Class | Example |\n|---------|-------|---------|\n| General museum object | ExhibitedObject | \"Girl with a Pearl Earring\" |\n| **Biological specimen** | **BiologicalObject** | **Dodo skeleton** |\n| Archaeological find | ExhibitedObject | Roman pottery |\n\n**When to Use BiologicalObject**:\n\nUse for specimens that are primarily biological in nature:\n- Taxidermy mounts (mammals, birds, fish)\n- Study skins and skeletal material\n- Herbarium specimens (pressed plants)\n- Wet specimens (fluid-preserved animals)\n- Fossils\ - \ of organisms\n- Entomological collections (pinned insects)\n- Paleontological specimens\n- Living collection records (botanical gardens, zoos)\n\n**Darwin Core Integration**:\n\nBiologicalObject aligns with Darwin Core (TDWG) occurrence/specimen standards:\n- `has_or_had_label` (TaxonName) \u2192 dwc:scientificName\n- `was_acquired_through` (Acquisition) \u2192 dwc:eventDate\n- `is_or_was_acquired_by` (Agent) \u2192 dwc:recordedBy\n- `preservation_method` \u2192 dwc:preparations\n- `gbif_id` \u2192 dwc:occurrenceID (GBIF)\n\n**Taxonomic Data Model**:\n\n```\nBiologicalObject\n \u2502\n \u251C\u2500\u2500 has_or_had_label (TaxonName: \"Raphus cucullatus\")\n \u2502 \u2502\n \u2502 \u251C\u2500\u2500 has_or_had_name (Name with type=CommonName: \"Dodo\")\n \u2502 \u251C\u2500\u2500 has_or_had_rank (SPECIES)\n \u2502 \u251C\u2500\u2500 has_or_had_authority (\"Linnaeus, 1758\")\n \u2502 \u2514\u2500\u2500 higher_classification (Aves \u2192\ + \ of organisms\n- Entomological collections (pinned insects)\n- Paleontological specimens\n- Living collection records (botanical gardens, zoos)\n\n**Darwin Core Integration**:\n\nBiologicalObject aligns with Darwin Core (TDWG) occurrence/specimen standards:\n- `has_label` (TaxonName) \u2192 dwc:scientificName\n- `was_acquired_through` (Acquisition) \u2192 dwc:eventDate\n- `acquired_by` (Agent) \u2192 dwc:recordedBy\n- `preservation_method` \u2192 dwc:preparations\n- `gbif_id` \u2192 dwc:occurrenceID (GBIF)\n\n**Taxonomic Data Model**:\n\n```\nBiologicalObject\n \u2502\n \u251C\u2500\u2500 has_label (TaxonName: \"Raphus cucullatus\")\n \u2502 \u2502\n \u2502 \u251C\u2500\u2500 has_name (Name with type=CommonName: \"Dodo\")\n \u2502 \u251C\u2500\u2500 has_rank (SPECIES)\n \u2502 \u251C\u2500\u2500 has_authority (\"Linnaeus, 1758\")\n \u2502 \u2514\u2500\u2500 higher_classification (Aves \u2192\ \ Columbiformes \u2192 Columbidae)\n \u2502\n \u251C\u2500\u2500 specimen_data\n \u2502 \u2502\n \u2502 \u251C\u2500\u2500 specimen_type (HOLOTYPE, PARATYPE, etc.)\n \u2502 \u251C\u2500\u2500 is_type_specimen (boolean)\n \u2502 \u251C\u2500\u2500 sex (MALE, FEMALE, UNKNOWN)\n \u2502 \u251C\u2500\u2500 life_stage (ADULT, JUVENILE, LARVA, etc.)\n \u2502 \u2514\u2500\u2500 part_type (SKELETON, SKIN, SHELL, etc.)\n \u2502\n \u251C\u2500\u2500 preservation\n \u2502 \u2502\n \u2502 \u251C\u2500\u2500 preservation_method (PreservationMethodEnum)\n \u2502 \u2514\u2500\u2500 preservative_details (specific chemicals, methods)\n \u2502\n \u2514\u2500\u2500 collection_event\n \u2502\n \u251C\u2500\u2500 collection_date (when collected)\n \u251C\u2500\u2500 collection_location (where collected)\n \u251C\u2500\u2500 collector (who collected)\n \ \ \u2514\u2500\u2500 field_number (collector's field ID)\n```\n\n**Conservation Status Integration**:\n\nFor specimens of conservation-sensitive species, BiologicalObject supports:\n- IUCN Red List status tracking\n- CITES appendix listing\n- Provenance documentation for legal compliance\n\n**Example**:\n\nOxford Dodo specimen at Oxford University Museum of Natural History:\n- taxon_name: \"Raphus cucullatus\"\n- common_name: \"Dodo\"\n- specimen_type: Historical specimen\n- preservation_method: SKELETON (partial)\n- significance: Last reliably dated dodo remains\n" exact_mappings: @@ -65,18 +65,18 @@ classes: - gbif:Specimen is_a: ExhibitedObject slots: - - is_or_was_associated_with - - has_or_had_identifier - - is_or_was_listed_in + - associated_with + - identified_by + - listed_in - was_acquired_through - describes_or_described - - has_or_had_place - - has_or_had_hypernym - - is_or_was_acquired_by - - has_or_had_name - - has_or_had_type - - is_or_was_identified_through - - has_or_had_habitat + - has_place + - has_hypernym + - acquired_by + - has_name + - has_type + - identified_through + - has_habitat - is_type_specimen - iucn_status - legal_provenance_note @@ -89,20 +89,20 @@ classes: - sex - specimen_count - specimen_type - - has_or_had_label - - has_or_had_comment - - has_or_had_authority - - has_or_had_rank - - has_or_had_score - - has_or_had_status + - has_label + - commented_on + - has_authority + - has_rank + - has_score + - has_status slot_usage: - is_or_was_associated_with: + associated_with: range: Taxon multivalued: true inlined_as_list: true examples: - value: https://nde.nl/ontology/hc/taxon/raphus-cucullatus - has_or_had_identifier: + identified_by: # range: string # uriorcurie multivalued: true inlined: false # Fixed invalid inline for primitive type @@ -115,21 +115,21 @@ classes: - range: string # uriorcurie examples: - value: - has_or_had_type: FieldNumber + has_type: FieldNumber - value: id: https://nde.nl/ontology/hc/bold-id/NLNAT001-21 - has_or_had_type: BOLDIdentifier + has_type: BOLDIdentifier - value: - has_or_had_type: WikiDataIdentifier - has_or_had_label: + has_type: WikiDataIdentifier + has_label: range: TaxonName inlined: true required: true examples: - value: - value: - has_or_had_name: - description: "Common/vernacular names for this biological object.\nMIGRATED from common_name and common_name_language per slot_fixes.yaml (Rule 53, 2026-01-22).\n\nUses Name class for structured representation including:\n- Name value (has_or_had_label)\n- Name type (has_or_had_type \u2192 NameType, e.g., CommonName)\n- Language (has_or_had_language)\n" + has_name: + description: "Common/vernacular names for this biological object.\nMIGRATED from common_name and common_name_language per slot_fixes.yaml (Rule 53, 2026-01-22).\n\nUses Name class for structured representation including:\n- Name value (has_label)\n- Name type (has_type \u2192 NameType, e.g., CommonName)\n- Language (has_language)\n" required: false range: Name multivalued: true @@ -137,48 +137,48 @@ classes: inlined_as_list: true examples: - value: - has_or_had_label: Dodo - has_or_had_type: CommonName - has_or_had_language: en + has_label: Dodo + has_type: CommonName + has_language: en - value: - has_or_had_label: Dronte - has_or_had_type: CommonName - has_or_had_language: nl + has_label: Dronte + has_type: CommonName + has_language: nl - value: - has_or_had_label: Lion - has_or_had_type: CommonName - has_or_had_language: en + has_label: Lion + has_type: CommonName + has_language: en - value: - has_or_had_label: Coast Redwood - has_or_had_type: CommonName - has_or_had_language: en - has_or_had_rank: + has_label: Coast Redwood + has_type: CommonName + has_language: en + has_rank: required: false # range: string examples: - value: SPECIES - value: SUBSPECIES - value: GENUS - has_or_had_authority: + has_authority: required: false range: TaxonomicAuthority inlined: true examples: - value: - has_or_had_label: Linnaeus, 1758 - has_or_had_author: + has_label: Linnaeus, 1758 + has_author: - Carl Linnaeus - value: - has_or_had_label: (Gray, 1821) - has_or_had_author: + has_label: (Gray, 1821) + has_author: - John Edward Gray - has_or_had_comment: + commented_on: required: false # range: string examples: - value: Previously classified as Didus ineptus - value: aff. - is_or_was_identified_through: + identified_through: required: false range: IdentificationEvent inlined: true @@ -200,7 +200,7 @@ classes: range: boolean examples: - value: true - has_or_had_status: + has_status: range: TypeStatus inlined: true required: false @@ -269,7 +269,7 @@ classes: - value: "acquisition_method: FIELD_COLLECTION\ntemporal_extent:\n begin_of_the_begin: \"2020-06-15\"\n end_of_the_end: \"2020-06-15\"\nacquisition_date_text: \"2020-06-15\"\n" - value: "acquisition_method: FIELD_COLLECTION\ntemporal_extent:\n begin_of_the_begin: \"2020-06-01\"\n end_of_the_end: \"2020-07-31\"\nacquisition_date_text: \"2020-06/2020-07\"\nacquisition_notes: \"Collected sometime in June-July 2020\"\n" - value: "acquisition_method: FIELD_COLLECTION\ntemporal_extent:\n begin_of_the_begin: \"1870-01-01\"\n end_of_the_end: \"1879-12-31\"\nacquisition_date_text: \"1870s\"\nacquisition_notes: \"Historical specimen with approximate date\"\n" - has_or_had_place: + has_place: required: false range: CustodianPlace inlined: true @@ -288,7 +288,7 @@ classes: - value: - value: verbatim_text: 'Indonesia: Java: Mt. Gede, 1500m' - is_or_was_acquired_by: + acquired_by: required: false range: Agent multivalued: true @@ -297,18 +297,18 @@ classes: examples: - value: - value: - has_or_had_habitat: + has_habitat: required: false range: Habitat inlined: true examples: - value: - has_or_had_label: Tropical rainforest - has_or_had_description: Understory + has_label: Tropical rainforest + has_description: Understory - value: - has_or_had_label: Coral reef - has_or_had_description: Depth 15m - has_or_had_hypernym: + has_label: Coral reef + has_description: Depth 15m + has_hypernym: required: false range: Taxon multivalued: true @@ -316,10 +316,10 @@ classes: inlined_as_list: true examples: - value: - has_or_had_label: Quercus robur + has_label: Quercus robur description: host:Quercus robur - value: - has_or_had_label: Cervus elaphus + has_label: Cervus elaphus description: parasite of:Cervus elaphus iucn_status: required: false @@ -327,23 +327,23 @@ classes: examples: - value: EX - value: CR - is_or_was_listed_in: + listed_in: range: CITESAppendix inlined: true required: false examples: - value: - has_or_had_type: APPENDIX_I - has_or_had_label: CITES Appendix I - Most Endangered + has_type: APPENDIX_I + has_label: CITES Appendix I - Most Endangered - value: - has_or_had_type: NOT_LISTED - has_or_had_label: Not regulated under CITES + has_type: NOT_LISTED + has_label: Not regulated under CITES legal_provenance_note: required: false # range: string examples: - value: 'Collected pre-CITES (1975). Import permit #12345.' - has_or_had_type: + has_type: equals_expression: '["hc:BioCustodianType", "hc:MuseumType", "hc:ResearchOrganizationType"]' comments: - BiologicalObject extends ExhibitedObject with biological specimen-specific fields @@ -361,15 +361,15 @@ classes: object_id: https://nde.nl/ontology/hc/object/oum-dodo-head object_name: Oxford Dodo object_description: "The only surviving dodo soft tissue - a head with preserved skin and \\nfeathers, plus associated\\\n \\ foot. The most complete dodo specimen known.\\nDonated by Elias Ashmole in 1683.\\n" - has_or_had_label: - has_or_had_name: - - has_or_had_label: Dodo - has_or_had_type: CommonName - has_or_had_language: en - - has_or_had_label: Dronte - has_or_had_type: CommonName - has_or_had_language: nl - has_or_had_rank: SPECIES + has_label: + has_name: + - has_label: Dodo + has_type: CommonName + has_language: en + - has_label: Dronte + has_type: CommonName + has_language: nl + has_rank: SPECIES part_type: - HEAD - FOOT @@ -379,13 +379,13 @@ classes: temporal_extent: begin_of_the_begin: '1600-01-01' end_of_the_end: '1662-12-31' - has_or_had_place: + has_place: place_name: Mauritius country: MU iucn_status: EX current_keeper: https://nde.nl/ontology/hc/custodian/uk/oxford-museum-natural-history accession_number: OUM 11605 - has_or_had_identifier: + identified_by: - qid: Q193493 - value: object_id: https://nde.nl/ontology/hc/object/naturalis-megatherium @@ -393,12 +393,12 @@ classes: object_description: 'Nearly complete skeleton of giant ground sloth from Pleistocene Argentina. One of the finest examples of this extinct megafauna. ' - has_or_had_label: - has_or_had_name: - - has_or_had_label: Giant Ground Sloth - has_or_had_type: CommonName - has_or_had_language: en - has_or_had_rank: SPECIES + has_label: + has_name: + - has_label: Giant Ground Sloth + has_type: CommonName + has_language: en + has_rank: SPECIES part_type: - SKELETON preservation_method: FOSSIL_PREPARED @@ -411,22 +411,22 @@ classes: object_name: Quercus robur type specimen object_description: 'Herbarium type specimen of English Oak collected by Linnaeus. ' - has_or_had_label: - has_or_had_name: - - has_or_had_label: English Oak - has_or_had_type: CommonName - has_or_had_language: en - - has_or_had_label: Pedunculate Oak - has_or_had_type: CommonName - has_or_had_language: en - has_or_had_rank: SPECIES - has_or_had_authority: - has_or_had_label: Linnaeus, 1753 - has_or_had_author: + has_label: + has_name: + - has_label: English Oak + has_type: CommonName + has_language: en + - has_label: Pedunculate Oak + has_type: CommonName + has_language: en + has_rank: SPECIES + has_authority: + has_label: Linnaeus, 1753 + has_author: - Carl Linnaeus specimen_type: LECTOTYPE is_type_specimen: true - has_or_had_status: + has_status: status_value: Lectotype of Quercus robur L., designated by Schwarz (1936) part_type: - LEAF @@ -437,7 +437,7 @@ classes: temporal_extent: begin_of_the_begin: '1750-01-01' end_of_the_end: '1759-12-31' - is_or_was_acquired_by: + acquired_by: - agent_name: Carl Linnaeus current_keeper: https://nde.nl/ontology/hc/custodian/uk/royal-botanic-gardens-kew annotations: diff --git a/schemas/20251121/linkml/modules/classes/BirthDate.yaml b/schemas/20251121/linkml/modules/classes/BirthDate.yaml index 2b1c5151d2..c6b9c46afe 100644 --- a/schemas/20251121/linkml/modules/classes/BirthDate.yaml +++ b/schemas/20251121/linkml/modules/classes/BirthDate.yaml @@ -13,18 +13,18 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_reference - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_reference + - ../slots/20260202_matang/has_score - ../slots/inference_provenance - ../slots/is_inferred - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/generated_by - ../slots/temporal_extent default_prefix: hc classes: BirthDate: class_uri: schema:Date description: "Structured representation of a person's birth date with support for uncertainty, incomplete dates, and provenance tracking.\n**PURPOSE**:\nBirthDate replaces simple string birth_date slots to provide: - EDTF (Extended Date/Time Format) support for uncertain/incomplete dates - Provenance tracking for inferred dates (Rule 45) - Confidence scoring - Source preservation (original format from documents)\n**EDTF NOTATION** (Rule 44):\n| Pattern | Meaning | Example | |---------|---------|---------| | `YYYY` | Year only | `1970` | | `YYYY-MM` | Year and month | `1970-08` | | `YYYY-MM-DD` | Full date | `1970-08-15` | | `YYYX` | Decade | `197X` (1970s) | | `YYXX` | Century | `19XX` (1900s) | | `YYYY~` | Approximate | `1985~` (circa 1985) | | `YYYY?` | Uncertain | `1985?` (possibly 1985) | | `XXXX` | Unknown | Must have search provenance |\n**INFERRED DATA** (Rule 45):\nWhen birth date is inferred (e.g., from earliest education date): - Store in `inferred_birth_date` with full inference\ - \ chain - Set `is_inferred: true` - Document inference method and sources\n**ONTOLOGY ALIGNMENT**:\n| Ontology | Mapping | Usage | |----------|---------|-------| | **Schema.org** | `schema:Date` | Primary class | | **CIDOC-CRM** | `crm:E52_Time-Span` | Temporal extent | | **PiCo** | Birth date observation | Source fidelity | | **TIME** | `time:Instant` | Point in time |\n**EXAMPLE**:\n```yaml has_or_had_date_of_birth:\n temporal_extent:\n has_or_had_notation: \"1970-08-15\"\n begin_of_the_begin: \"1970-08-15T00:00:00Z\"\n end_of_the_end: \"1970-08-15T23:59:59Z\"\n is_inferred: false\n```" + \ chain - Set `is_inferred: true` - Document inference method and sources\n**ONTOLOGY ALIGNMENT**:\n| Ontology | Mapping | Usage | |----------|---------|-------| | **Schema.org** | `schema:Date` | Primary class | | **CIDOC-CRM** | `crm:E52_Time-Span` | Temporal extent | | **PiCo** | Birth date observation | Source fidelity | | **TIME** | `time:Instant` | Point in time |\n**EXAMPLE**:\n```yaml has_date_of_birth:\n temporal_extent:\n has_notation: \"1970-08-15\"\n begin_of_the_begin: \"1970-08-15T00:00:00Z\"\n end_of_the_end: \"1970-08-15T23:59:59Z\"\n is_inferred: false\n```" exact_mappings: - schema:Date close_mappings: @@ -33,14 +33,14 @@ classes: related_mappings: - pico:PersonObservation slots: - - has_or_had_reference + - has_reference - is_inferred - inference_provenance - - is_or_was_generated_by - - has_or_had_score + - generated_by + - has_score - temporal_extent slot_usage: - has_or_had_reference: + has_reference: range: Reference required: false inlined: true @@ -60,90 +60,90 @@ classes: required: false examples: - value: '{"method": "earliest_education_heuristic", "inference_chain": [...]}' - is_or_was_generated_by: + generated_by: range: GenerationEvent required: false inlined: true description: 'Generation event containing confidence score for birth date determination. MIGRATED 2026-01-19: Replaces confidence slot with structured pattern.' examples: - value: - has_or_had_score: - has_or_had_score: 0.95 - has_or_had_method: document_extraction + has_score: + has_score: 0.95 + has_method: document_extraction - value: - has_or_had_score: - has_or_had_score: 0.5 - has_or_had_method: education_inference - has_or_had_description: Inferred from education start year + has_score: + has_score: 0.5 + has_method: education_inference + has_description: Inferred from education start year temporal_extent: range: TimeSpan required: true inlined: true description: 'CIDOC-CRM TimeSpan representation with EDTF notation preservation. MIGRATED 2026-01-22: Replaces birth_edtf and birth_iso_date per slot_fixes.yaml feedback. - **STRUCTURE**: - has_or_had_notation: Original EDTF string (e.g., "1970-08-15", "197X", "1970~") - begin_of_the_begin: Earliest possible start (ISO 8601) - end_of_the_end: Latest possible end (ISO 8601) + **STRUCTURE**: - has_notation: Original EDTF string (e.g., "1970-08-15", "197X", "1970~") - begin_of_the_begin: Earliest possible start (ISO 8601) - end_of_the_end: Latest possible end (ISO 8601) **EXAMPLES**: - Full date "1970-08-15": - has_or_had_notation: "1970-08-15" - begin_of_the_begin: "1970-08-15T00:00:00Z" - end_of_the_end: "1970-08-15T23:59:59Z" + Full date "1970-08-15": - has_notation: "1970-08-15" - begin_of_the_begin: "1970-08-15T00:00:00Z" - end_of_the_end: "1970-08-15T23:59:59Z" - Decade "197X": - has_or_had_notation: "197X" - begin_of_the_begin: "1970-01-01T00:00:00Z" - end_of_the_end: "1979-12-31T23:59:59Z"' + Decade "197X": - has_notation: "197X" - begin_of_the_begin: "1970-01-01T00:00:00Z" - end_of_the_end: "1979-12-31T23:59:59Z"' examples: - value: - has_or_had_notation: '1970-08-15' + has_notation: '1970-08-15' begin_of_the_begin: '1970-08-15T00:00:00Z' end_of_the_end: '1970-08-15T23:59:59Z' - value: - has_or_had_notation: 197X + has_notation: 197X begin_of_the_begin: '1970-01-01T00:00:00Z' end_of_the_end: '1979-12-31T23:59:59Z' - value: - has_or_had_notation: 1970~ + has_notation: 1970~ begin_of_the_begin: '1968-01-01T00:00:00Z' end_of_the_end: '1972-12-31T23:59:59Z' comments: - - "MIGRATED 2026-01-22: birth_edtf, birth_iso_date \u2192 temporal_extent.has_or_had_notation" + - "MIGRATED 2026-01-22: birth_edtf, birth_iso_date \u2192 temporal_extent.has_notation" - TimeSpan provides CIDOC-CRM E52 temporal bounds with EDTF notation preservation - Inference provenance required when is_inferred=true (Rule 45) - - "Source text preserved via has_or_had_reference \u2192 Reference" + - "Source text preserved via has_reference \u2192 Reference" see_also: - https://www.loc.gov/standards/datetime/ - https://schema.org/birthDate examples: - value: temporal_extent: - has_or_had_notation: '1970-08-15' + has_notation: '1970-08-15' begin_of_the_begin: '1970-08-15T00:00:00Z' end_of_the_end: '1970-08-15T23:59:59Z' is_inferred: false - is_or_was_generated_by: - has_or_had_score: - has_or_had_score: 0.95 - has_or_had_method: birth_certificate_extraction + generated_by: + has_score: + has_score: 0.95 + has_method: birth_certificate_extraction - value: temporal_extent: - has_or_had_notation: 197X + has_notation: 197X begin_of_the_begin: '1970-01-01T00:00:00Z' end_of_the_end: '1979-12-31T23:59:59Z' is_inferred: true inference_provenance: '{"method": "earliest_education_heuristic", "source_field": "education[0].start_year"}' - is_or_was_generated_by: - has_or_had_score: - has_or_had_score: 0.4 - has_or_had_method: education_inference + generated_by: + has_score: + has_score: 0.4 + has_method: education_inference - value: temporal_extent: - has_or_had_notation: '1823' + has_notation: '1823' begin_of_the_begin: '1823-01-01T00:00:00Z' end_of_the_end: '1823-12-31T23:59:59Z' - has_or_had_reference: + has_reference: - citation_text: born in the year of our Lord 1823 source_type: parish_register is_inferred: false - is_or_was_generated_by: - has_or_had_score: - has_or_had_score: 0.75 - has_or_had_method: document_extraction + generated_by: + has_score: + has_score: 0.75 + has_method: document_extraction annotations: specificity_score: 0.45 specificity_rationale: Birth dates are relevant for person research across all heritage sectors. diff --git a/schemas/20251121/linkml/modules/classes/BirthPlace.yaml b/schemas/20251121/linkml/modules/classes/BirthPlace.yaml index d39a8d0bb1..7639cb1685 100644 --- a/schemas/20251121/linkml/modules/classes/BirthPlace.yaml +++ b/schemas/20251121/linkml/modules/classes/BirthPlace.yaml @@ -19,8 +19,8 @@ imports: - ../metadata - ../slots/coordinates - ../slots/country_code - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score + - ../slots/identified_by + - ../slots/20260202_matang/has_score - ../slots/modern_place_name - ../slots/place_name - ../slots/place_source_text @@ -29,8 +29,8 @@ default_prefix: hc classes: BirthPlace: class_uri: schema:Place - description: "Structured representation of a person's place of birth with support for historical place names, modern equivalents, and geographic identifiers.\n**PURPOSE**:\nBirthPlace replaces simple string birth_place slots to provide: - Historical place name preservation - Modern place name linkage - Geographic identifier integration (GeoNames, Wikidata) - Coordinate storage for mapping applications\n**HISTORICAL VS. MODERN NAMES**:\nMany birth places used historical names that have since changed: - \"Batavia\" \u2192 \"Jakarta\" - \"Bombay\" \u2192 \"Mumbai\" - \"Leningrad\" \u2192 \"St. Petersburg\" - \"Saigon\" \u2192 \"Ho Chi Minh City\"\nBirthPlace preserves the source name while linking to modern identifiers.\n**GEOGRAPHIC RESOLUTION**:\nPer AGENTS.md Rule on GeoNames as authoritative source: - `geonames_id`: Links to GeoNames for standardization - `has_or_had_identifier`: Links to Wikidata for additional context - `coordinates`: Lat/lon for mapping\n**ONTOLOGY ALIGNMENT**:\n| Ontology\ - \ | Mapping | Usage | |----------|---------|-------| | **Schema.org** | `schema:Place` | Primary class | | **CIDOC-CRM** | `crm:E53_Place` | Place entity | | **GeoNames** | `gn:Feature` | Geographic feature |\n**EXAMPLE**:\n```yaml has_or_had_place_of_birth:\n place_name: \"Batavia\"\n modern_place_name: \"Jakarta\"\n country_code: \"ID\"\n geonames_id: 1642911\n has_or_had_identifier:\n qid: \"Q3630\"\n```" + description: "Structured representation of a person's place of birth with support for historical place names, modern equivalents, and geographic identifiers.\n**PURPOSE**:\nBirthPlace replaces simple string birth_place slots to provide: - Historical place name preservation - Modern place name linkage - Geographic identifier integration (GeoNames, Wikidata) - Coordinate storage for mapping applications\n**HISTORICAL VS. MODERN NAMES**:\nMany birth places used historical names that have since changed: - \"Batavia\" \u2192 \"Jakarta\" - \"Bombay\" \u2192 \"Mumbai\" - \"Leningrad\" \u2192 \"St. Petersburg\" - \"Saigon\" \u2192 \"Ho Chi Minh City\"\nBirthPlace preserves the source name while linking to modern identifiers.\n**GEOGRAPHIC RESOLUTION**:\nPer AGENTS.md Rule on GeoNames as authoritative source: - `geonames_id`: Links to GeoNames for standardization - `identified_by`: Links to Wikidata for additional context - `coordinates`: Lat/lon for mapping\n**ONTOLOGY ALIGNMENT**:\n| Ontology\ + \ | Mapping | Usage | |----------|---------|-------| | **Schema.org** | `schema:Place` | Primary class | | **CIDOC-CRM** | `crm:E53_Place` | Place entity | | **GeoNames** | `gn:Feature` | Geographic feature |\n**EXAMPLE**:\n```yaml has_place_of_birth:\n place_name: \"Batavia\"\n modern_place_name: \"Jakarta\"\n country_code: \"ID\"\n geonames_id: 1642911\n identified_by:\n qid: \"Q3630\"\n```" exact_mappings: - schema:Place close_mappings: @@ -41,10 +41,10 @@ classes: - modern_place_name - country_code - region_code - - has_or_had_identifier + - identified_by - coordinates - place_source_text - - has_or_had_score + - has_score slot_usage: place_name: # range: string @@ -70,7 +70,7 @@ classes: examples: - value: NH - value: 2759794 - has_or_had_identifier: + identified_by: range: WikiDataIdentifier required: false examples: @@ -97,13 +97,13 @@ classes: place_name: Amsterdam country_code: NL region_code: NH - has_or_had_identifier: + identified_by: coordinates: 52.3676,4.9041 - value: place_name: Batavia modern_place_name: Jakarta country_code: ID - has_or_had_identifier: + identified_by: - value: place_name: rural Gelderland country_code: NL diff --git a/schemas/20251121/linkml/modules/classes/Bookplate.yaml b/schemas/20251121/linkml/modules/classes/Bookplate.yaml index 1eb17c3fda..66b9401143 100644 --- a/schemas/20251121/linkml/modules/classes/Bookplate.yaml +++ b/schemas/20251121/linkml/modules/classes/Bookplate.yaml @@ -12,10 +12,10 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_owner - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_owner + - ../slots/20260202_matang/has_score classes: Bookplate: class_uri: bf:Bookplate @@ -34,18 +34,18 @@ classes: - crm:E37_Mark - schema:Thing slots: - - has_or_had_label - - has_or_had_description - - has_or_had_owner - - has_or_had_score + - has_label + - has_description + - has_owner + - has_score slot_usage: - has_or_had_label: + has_label: # range: string required: true examples: - value: Ex Libris Johann Wolfgang von Goethe - value: Bibliotheca Regia - has_or_had_owner: + has_owner: # range: string examples: - value: Johann Wolfgang von Goethe @@ -57,8 +57,8 @@ classes: examples: - value: id: https://nde.nl/ontology/hc/bookplate/kb-exlibris-goethe-001 - has_or_had_label: Ex Libris J.W. von Goethe - has_or_had_owner: Johann Wolfgang von Goethe + has_label: Ex Libris J.W. von Goethe + has_owner: Johann Wolfgang von Goethe annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Boundary.yaml b/schemas/20251121/linkml/modules/classes/Boundary.yaml index 4c8c11c0f7..4d3c4f5910 100644 --- a/schemas/20251121/linkml/modules/classes/Boundary.yaml +++ b/schemas/20251121/linkml/modules/classes/Boundary.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: Boundary: class_uri: schema:Place description: Boundary definition. slots: - - has_or_had_description + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/BoundingBox.yaml b/schemas/20251121/linkml/modules/classes/BoundingBox.yaml index d679b50190..62d952b0ae 100644 --- a/schemas/20251121/linkml/modules/classes/BoundingBox.yaml +++ b/schemas/20251121/linkml/modules/classes/BoundingBox.yaml @@ -11,19 +11,19 @@ prefixes: geosparql: http://www.opengis.net/ont/geosparql# imports: - linkml:types - - ../slots/has_or_had_coordinates - - ../slots/has_or_had_height - - ../slots/has_or_had_width + - ../slots/20260202_matang/has_coordinates + - ../slots/20260202_matang/has_height + - ../slots/20260202_matang/has_width default_prefix: hc classes: BoundingBox: class_uri: schema:PropertyValue slots: - - has_or_had_coordinates - - has_or_had_width - - has_or_had_height + - has_coordinates + - has_width + - has_height slot_usage: - has_or_had_coordinates: + has_coordinates: range: PlanarCoordinates required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/BoxNumber.yaml b/schemas/20251121/linkml/modules/classes/BoxNumber.yaml index 089f4c99ab..b6d1f338cb 100644 --- a/schemas/20251121/linkml/modules/classes/BoxNumber.yaml +++ b/schemas/20251121/linkml/modules/classes/BoxNumber.yaml @@ -6,14 +6,14 @@ description: 'A storage box number or position identifier on a shelf. MIGRATED from box_number slot (Rule 53). - Uses generic has_or_had_identifier slot with range narrowed to BoxNumber. + Uses generic identified_by slot with range narrowed to BoxNumber. Updated 2026-01-16: Migrated from inline attributes to proper slots. ' imports: - linkml:types - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/numeric_value prefixes: linkml: https://w3id.org/linkml/ @@ -26,7 +26,7 @@ classes: BoxNumber: class_uri: hc:BoxNumber description: "An identifier for a storage box or its position on a shelf.\n\n**DEFINITION**:\n\nBoxNumber represents the position or identifier of a storage box within \na storage unit hierarchy. Archive boxes are the most common physical \ncontainers for heritage materials, particularly in archives.\n\n```\nShelf\n \u2514\u2500\u2500 Box 1 (THIS CLASS - position on shelf)\n \u2514\u2500\u2500 Box 2\n \u2514\u2500\u2500 Box 3\n ...\n```\n\n**TYPICAL VALUES**:\n\n| Type | Example | Description |\n|------|---------|-------------|\n| Sequential | 1, 2, 3, 12 | Position on shelf left-to-right |\n| Inventory | 145, 2024-0042 | Unique box inventory number |\n| Combined | 12.3 | Bay 12, Box 3 |\n\n**ARCHIVE BOX STANDARDS**:\n\nHeritage institutions typically use acid-free archive boxes conforming to:\n- ISO 16245 (Boxes for documents)\n- ANSI/NISO Z39.77 (Guidelines for materials in archives)\n\n**HERITAGE USE CASES**:\n\n| Material Type | Box Format |\n|---------------|------------|\n\ - | Documents | Standard archive box (legal/letter) |\n| Photographs | Photo storage boxes |\n| Oversized | Flat boxes, tubes |\n| Fragile | Custom padded boxes |\n\n**PROVENANCE**:\n\nCreated as part of slot migration (Rule 53) from deprecated\n`box_number` slot to generic `has_or_had_identifier` pattern.\n" + | Documents | Standard archive box (legal/letter) |\n| Photographs | Photo storage boxes |\n| Oversized | Flat boxes, tubes |\n| Fragile | Custom padded boxes |\n\n**PROVENANCE**:\n\nCreated as part of slot migration (Rule 53) from deprecated\n`box_number` slot to generic `identified_by` pattern.\n" exact_mappings: - hc:BoxNumber close_mappings: @@ -35,7 +35,7 @@ classes: - schema:identifier slots: - numeric_value - - has_or_had_score + - has_score slot_usage: numeric_value: required: true diff --git a/schemas/20251121/linkml/modules/classes/Branch.yaml b/schemas/20251121/linkml/modules/classes/Branch.yaml index e01d45cb82..3291e82708 100644 --- a/schemas/20251121/linkml/modules/classes/Branch.yaml +++ b/schemas/20251121/linkml/modules/classes/Branch.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: Branch: class_uri: org:OrganizationalUnit @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_name + - has_name diff --git a/schemas/20251121/linkml/modules/classes/BranchOffice.yaml b/schemas/20251121/linkml/modules/classes/BranchOffice.yaml index d8b5f9c1bf..259bc32191 100644 --- a/schemas/20251121/linkml/modules/classes/BranchOffice.yaml +++ b/schemas/20251121/linkml/modules/classes/BranchOffice.yaml @@ -4,14 +4,14 @@ title: BranchOffice Class imports: - linkml:types - ../enums/QuantityTypeEnum - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_service_area - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_service_area + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by - ../slots/is_public_facing - ../slots/operating_hour - ../slots/services_offered @@ -29,8 +29,8 @@ classes: is_a: ReconstructedEntity class_uri: org:Site description: "Regional or satellite office of a heritage custodian organization.\n\n**DEFINITION**:\n\nA BranchOffice is a secondary physical location where a heritage custodian\nmaintains operational presence, typically providing services to a specific\ngeographic area or community. Unlike the main headquarters, branch offices\nusually have more limited scope of activities.\n\n**W3C ORG ALIGNMENT**:\n\n`org:Site` - \"An office or other premise at which the organization is located.\"\n\nBranchOffice specializes org:Site for heritage custodian branch locations:\n- Regional archives serving provincial communities\n- Satellite library branches in neighborhoods\n- Museum outposts or study centers\n\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Purpose | Example |\n|------|---------|---------|\n| **BranchOffice** | Service delivery to geographic area | Regional archive office |\n| AdministrativeOffice | Non-public administrative functions | Finance department building |\n\ - | ExhibitionSpace | Display of collections | Gallery annex |\n| ResearchCenter | Research and conservation | Conservation lab |\n\n**TYPICAL CHARACTERISTICS**:\n\n- **Public-facing**: Serves visitors, researchers, patrons\n- **Geographic coverage**: Serves specific region/community\n- **Core services**: Reference, access, programming (subset of main)\n- **Staff presence**: Permanent staff assignment\n- **Collection subset**: May hold locally-relevant materials\n\n**USE CASES**:\n\n1. **Regional Archive Branches**:\n - Noord-Hollands Archief Zaanstreek-Waterland branch\n - Serves researchers in Zaandam area\n - Holds local municipal records\n\n2. **Library Satellite Locations**:\n - University library branch at satellite campus\n - Public library neighborhood branches\n\n3. **Museum Study Centers**:\n - Off-site study/research center for scholars\n - Rijksmuseum Schiphol (airport exhibition space)\n\n**Example - Regional Archive Branch**:\n```yaml\nBranchOffice:\n has_or_had_identifier:\ - \ \"https://nde.nl/ontology/hc/aux/nha-zaanstreek-branch\"\n has_or_had_label: \"Noord-Hollands Archief - Zaanstreek-Waterland\"\n has_or_had_description: |\n Regional branch serving Zaanstreek-Waterland area.\n Holds municipal records from Zaandam, Wormerland, Purmerend.\n Open to researchers Tuesday-Thursday.\n branch_service_area: \"Zaanstreek-Waterland region\"\n is_public_facing: true\n services_offered:\n - \"Archival research access\"\n - \"Genealogical consultations\"\n - \"Local history reference\"\n```\n" + | ExhibitionSpace | Display of collections | Gallery annex |\n| ResearchCenter | Research and conservation | Conservation lab |\n\n**TYPICAL CHARACTERISTICS**:\n\n- **Public-facing**: Serves visitors, researchers, patrons\n- **Geographic coverage**: Serves specific region/community\n- **Core services**: Reference, access, programming (subset of main)\n- **Staff presence**: Permanent staff assignment\n- **Collection subset**: May hold locally-relevant materials\n\n**USE CASES**:\n\n1. **Regional Archive Branches**:\n - Noord-Hollands Archief Zaanstreek-Waterland branch\n - Serves researchers in Zaandam area\n - Holds local municipal records\n\n2. **Library Satellite Locations**:\n - University library branch at satellite campus\n - Public library neighborhood branches\n\n3. **Museum Study Centers**:\n - Off-site study/research center for scholars\n - Rijksmuseum Schiphol (airport exhibition space)\n\n**Example - Regional Archive Branch**:\n```yaml\nBranchOffice:\n identified_by:\ + \ \"https://nde.nl/ontology/hc/aux/nha-zaanstreek-branch\"\n has_label: \"Noord-Hollands Archief - Zaanstreek-Waterland\"\n has_description: |\n Regional branch serving Zaanstreek-Waterland area.\n Holds municipal records from Zaandam, Wormerland, Purmerend.\n Open to researchers Tuesday-Thursday.\n branch_service_area: \"Zaanstreek-Waterland region\"\n is_public_facing: true\n services_offered:\n - \"Archival research access\"\n - \"Genealogical consultations\"\n - \"Local history reference\"\n```\n" exact_mappings: - org:Site close_mappings: @@ -41,25 +41,25 @@ classes: - org:OrganizationalUnit - schema:branch slots: - - has_or_had_description - - has_or_had_identifier - - has_or_had_label - - has_or_had_service_area - - has_or_had_quantity + - has_description + - identified_by + - has_label + - has_service_area + - has_quantity - is_public_facing - operating_hour - services_offered - - has_or_had_score - - is_or_was_derived_from - - is_or_was_generated_by + - has_score + - derived_from + - generated_by slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/nha-zaanstreek-branch - has_or_had_label: + has_label: # range: string required: true multivalued: false @@ -67,11 +67,11 @@ classes: - value: Noord-Hollands Archief - Zaanstreek-Waterland - value: Rijksmuseum Schiphol - value: Universiteitsbibliotheek Science Park - has_or_had_description: + has_description: # range: string examples: - value: Regional branch serving Zaanstreek-Waterland area. Holds municipal records from Zaandam, Wormerland, Purmerend. Open to researchers Tuesday-Thursday. - has_or_had_service_area: + has_service_area: range: ServiceArea inlined: true examples: @@ -96,18 +96,18 @@ classes: # range: string examples: - value: Tu-Th 09:00-17:00 - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_description: Staff assigned to this branch + has_description: Staff assigned to this branch is_estimate: false - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false comments: @@ -122,10 +122,10 @@ classes: - https://schema.org/branch examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/nha-zaanstreek-branch - has_or_had_label: Noord-Hollands Archief - Zaanstreek-Waterland - has_or_had_description: Regional branch serving Zaanstreek-Waterland area. Holds municipal records from Zaandam, Wormerland, Purmerend. - has_or_had_service_area: + identified_by: https://nde.nl/ontology/hc/aux/nha-zaanstreek-branch + has_label: Noord-Hollands Archief - Zaanstreek-Waterland + has_description: Regional branch serving Zaanstreek-Waterland area. Holds municipal records from Zaandam, Wormerland, Purmerend. + has_service_area: service_area_id: https://nde.nl/ontology/hc/servicearea/zaanstreek-waterland service_area_name: Zaanstreek-Waterland region service_area_type: REGIONAL @@ -135,13 +135,13 @@ classes: - Genealogical consultations - Local history reference operating_hours: Tu-Th 09:00-17:00 - has_or_had_quantity: - has_or_had_description: Staff assigned to Zaanstreek-Waterland branch + has_quantity: + has_description: Staff assigned to Zaanstreek-Waterland branch - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/rijksmuseum-schiphol - has_or_had_label: Rijksmuseum Schiphol - has_or_had_description: Exhibition space at Schiphol Airport featuring rotating highlights from the Rijksmuseum collection. Free admission. - has_or_had_service_area: + identified_by: https://nde.nl/ontology/hc/aux/rijksmuseum-schiphol + has_label: Rijksmuseum Schiphol + has_description: Exhibition space at Schiphol Airport featuring rotating highlights from the Rijksmuseum collection. Free admission. + has_service_area: service_area_id: https://nde.nl/ontology/hc/servicearea/schiphol-travelers service_area_name: Amsterdam Schiphol Airport travelers service_area_type: COMMUNITY @@ -150,8 +150,8 @@ classes: - Exhibition viewing - Museum shop operating_hours: Daily 07:00-20:00 - has_or_had_quantity: - has_or_had_description: Staff assigned to Schiphol branch + has_quantity: + has_description: Staff assigned to Schiphol branch annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/BranchType.yaml b/schemas/20251121/linkml/modules/classes/BranchType.yaml index 77edc31d06..b328e2ba2b 100644 --- a/schemas/20251121/linkml/modules/classes/BranchType.yaml +++ b/schemas/20251121/linkml/modules/classes/BranchType.yaml @@ -12,19 +12,19 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/is_or_was_equivalent_to - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/equivalent_to + - ../slots/20260202_matang/related_to classes: BranchType: class_uri: org:OrganizationalUnit description: "Classification type for organizational branch units in heritage custodian contexts.\n\n**DEFINITION**:\n\nBranchType provides a SKOS-based classification hierarchy for categorizing\ndifferent types of organizational branches, satellite locations, and\nspecialized units within heritage custodian organizations.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **W3C Org** | `org:OrganizationalUnit` | Primary - unit within larger organization |\n| **W3C Org** | `org:Site` | Physical location of organizational unit |\n| **Schema.org** | `schema:LocalBusiness` | Related for branch offices |\n| **CIDOC-CRM** | `crm:E55_Type` | General type classification |\n\n**BRANCH TYPES** (from slot definition):\n\n| Type | Description |\n|------|-------------|\n| `REGIONAL_OFFICE` | Geographic regional branch |\n| `BRANCH_LIBRARY` | Library at satellite location |\n| `SATELLITE_GALLERY` | Museum exhibition space |\n| `CONSERVATION_LAB`\ - \ | Specialized conservation facility |\n| `DIGITIZATION_CENTER` | Digital production facility |\n| `RESEARCH_CENTER` | Research/scholarly unit |\n| `EDUCATION_CENTER` | Education/outreach facility |\n| `ADMINISTRATIVE_OFFICE` | Non-public administration |\n| `STORAGE_MANAGEMENT` | Collection storage operations |\n| `EXHIBITION_SPACE` | Exhibition-focused branch |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nOrganizationBranch / ArchiveBranch\n \u2502\n \u2514\u2500\u2500 has_or_had_type \u2192 BranchType (THIS CLASS)\n \u251C\u2500\u2500 has_or_had_hypernym \u2192 BranchType (parent)\n \u2514\u2500\u2500 has_or_had_description (function details)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the branch_type slot with OrganizationBranchTypeEnum.\nOld pattern: `branch_type: OrganizationBranchTypeEnum`\nNew pattern: `has_or_had_type: BranchType` (object reference)\n" + \ | Specialized conservation facility |\n| `DIGITIZATION_CENTER` | Digital production facility |\n| `RESEARCH_CENTER` | Research/scholarly unit |\n| `EDUCATION_CENTER` | Education/outreach facility |\n| `ADMINISTRATIVE_OFFICE` | Non-public administration |\n| `STORAGE_MANAGEMENT` | Collection storage operations |\n| `EXHIBITION_SPACE` | Exhibition-focused branch |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nOrganizationBranch / ArchiveBranch\n \u2502\n \u2514\u2500\u2500 has_type \u2192 BranchType (THIS CLASS)\n \u251C\u2500\u2500 has_hypernym \u2192 BranchType (parent)\n \u2514\u2500\u2500 has_description (function details)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the branch_type slot with OrganizationBranchTypeEnum.\nOld pattern: `branch_type: OrganizationBranchTypeEnum`\nNew pattern: `has_type: BranchType` (object reference)\n" exact_mappings: - org:OrganizationalUnit close_mappings: @@ -34,23 +34,23 @@ classes: related_mappings: - schema:LocalBusiness slots: - - has_or_had_identifier - - has_or_had_code - - has_or_had_label - - has_or_had_description - - has_or_had_hypernym - - has_or_had_hyponym - - is_or_was_related_to - - is_or_was_equivalent_to + - identified_by + - has_code + - has_label + - has_description + - has_hypernym + - has_hyponym + - related_to + - equivalent_to slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/branch-type/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/branch-type/regional-office - has_or_had_code: + has_code: # range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ @@ -58,7 +58,7 @@ classes: - value: REGIONAL_OFFICE - value: BRANCH_LIBRARY - value: CONSERVATION_LAB - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -69,17 +69,17 @@ classes: - value: - Branch Library@en - Filiaalbibliotheek@nl - has_or_had_description: + has_description: # range: string examples: - value: Geographic regional branch serving local community. - has_or_had_hypernym: + has_hypernym: range: BranchType - has_or_had_hyponym: + has_hyponym: range: BranchType multivalued: true inlined_as_list: true - is_or_was_equivalent_to: + equivalent_to: range: WikiDataIdentifier multivalued: true inlined: true @@ -90,8 +90,8 @@ classes: annotations: specificity_score: '0.55' specificity_rationale: Branch types are moderately specific - relevant for organizational structure. - has_or_had_score: null - slot_migration: "2026-01-13: Migrated from branch_type slot with OrganizationBranchTypeEnum\n- branch_type (enum) \u2192 has_or_had_type (BranchType)\n" + has_score: null + slot_migration: "2026-01-13: Migrated from branch_type slot with OrganizationBranchTypeEnum\n- branch_type (enum) \u2192 has_type (BranchType)\n" custodian_types: "['*']" comments: - BranchType provides classification for organizational units @@ -103,12 +103,12 @@ classes: - https://www.w3.org/TR/vocab-org/#class-site examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/branch-type/regional-office - has_or_had_code: REGIONAL_OFFICE - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/branch-type/regional-office + has_code: REGIONAL_OFFICE + has_label: - Regional Office@en - Regionaal kantoor@nl - has_or_had_description: 'Geographic regional branch serving local community. + has_description: 'Geographic regional branch serving local community. May provide full or partial services of parent organization. diff --git a/schemas/20251121/linkml/modules/classes/BranchTypes.yaml b/schemas/20251121/linkml/modules/classes/BranchTypes.yaml index 015d6345b7..1ca61d3172 100644 --- a/schemas/20251121/linkml/modules/classes/BranchTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/BranchTypes.yaml @@ -28,8 +28,8 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_code: REGIONAL_OFFICE - has_or_had_label: + has_code: REGIONAL_OFFICE + has_label: - Regional Office@en - Regionaal kantoor@nl description: Provincial heritage service branch @@ -51,8 +51,8 @@ classes: specificity_score: '0.60' examples: - value: - has_or_had_code: BRANCH_LIBRARY - has_or_had_label: + has_code: BRANCH_LIBRARY + has_label: - Branch Library@en - Filiaalbibliotheek@nl description: Neighborhood library branch @@ -74,8 +74,8 @@ classes: specificity_score: '0.60' examples: - value: - has_or_had_code: SATELLITE_GALLERY - has_or_had_label: + has_code: SATELLITE_GALLERY + has_label: - Satellite Gallery@en - Satellietgalerij@nl description: Off-site exhibition space @@ -97,8 +97,8 @@ classes: specificity_score: '0.70' examples: - value: - has_or_had_code: CONSERVATION_LAB - has_or_had_label: + has_code: CONSERVATION_LAB + has_label: - Conservation Laboratory@en - Restauratieatelier@nl description: Collection conservation facility @@ -120,8 +120,8 @@ classes: specificity_score: '0.65' examples: - value: - has_or_had_code: DIGITIZATION_CENTER - has_or_had_label: + has_code: DIGITIZATION_CENTER + has_label: - Digitization Center@en - Digitaliseringscentrum@nl description: Collection digitization facility @@ -143,8 +143,8 @@ classes: specificity_score: '0.60' examples: - value: - has_or_had_code: RESEARCH_CENTER - has_or_had_label: + has_code: RESEARCH_CENTER + has_label: - Research Center@en - Onderzoekscentrum@nl description: Academic research unit @@ -166,8 +166,8 @@ classes: specificity_score: '0.55' examples: - value: - has_or_had_code: EDUCATION_CENTER - has_or_had_label: + has_code: EDUCATION_CENTER + has_label: - Education Center@en - Educatiecentrum@nl description: Public education facility @@ -189,8 +189,8 @@ classes: specificity_score: '0.45' examples: - value: - has_or_had_code: ADMINISTRATIVE_OFFICE - has_or_had_label: + has_code: ADMINISTRATIVE_OFFICE + has_label: - Administrative Office@en - Administratiekantoor@nl description: Back-office administration @@ -212,8 +212,8 @@ classes: specificity_score: '0.60' examples: - value: - has_or_had_code: STORAGE_MANAGEMENT - has_or_had_label: + has_code: STORAGE_MANAGEMENT + has_label: - Storage Management@en - Depotbeheer@nl description: Off-site storage operations @@ -235,8 +235,8 @@ classes: specificity_score: '0.55' examples: - value: - has_or_had_code: EXHIBITION_SPACE - has_or_had_label: + has_code: EXHIBITION_SPACE + has_label: - Exhibition Space@en - Tentoonstellingsruimte@nl description: Secondary exhibition venue @@ -258,8 +258,8 @@ classes: specificity_score: '0.65' examples: - value: - has_or_had_code: READING_ROOM - has_or_had_label: + has_code: READING_ROOM + has_label: - Reading Room@en - Studiezaal@nl description: Research reading room diff --git a/schemas/20251121/linkml/modules/classes/Budget.yaml b/schemas/20251121/linkml/modules/classes/Budget.yaml index 970cca8ad6..7b58cbb62f 100644 --- a/schemas/20251121/linkml/modules/classes/Budget.yaml +++ b/schemas/20251121/linkml/modules/classes/Budget.yaml @@ -3,26 +3,26 @@ name: budget_class title: Budget Class imports: - linkml:types - - ../slots/allocates_or_allocated - - ../slots/has_or_had_currency - - ../slots/has_or_had_description - - ../slots/has_or_had_endowment_draw - - ../slots/has_or_had_label - - ../slots/has_or_had_main_part - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_status - - ../slots/has_or_had_type - - ../slots/has_or_had_unit - - ../slots/includes_or_included + - ../slots/allocate + - ../slots/20260202_matang/has_currency + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_endowment_draw + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_main_part + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_unit + - ../slots/20260202_matang/include - ../slots/innovation_budget - ../slots/internal_funding - - ../slots/is_or_was_approved_by - - ../slots/is_or_was_approved_on - - ../slots/is_or_was_based_on - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_documented_by - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/approved_by + - ../slots/20260202_matang/approved_on + - ../slots/20260202_matang/based_on + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/documented_by + - ../slots/20260202_matang/generated_by - ../slots/managing_unit - ../slots/operating_budget - ../slots/personnel_budget @@ -58,16 +58,16 @@ classes: - schema:MonetaryAmount - frapo:hasFunding slots: - - is_or_was_approved_by - - has_or_had_currency - - has_or_had_description - - has_or_had_label - - has_or_had_status - - has_or_had_type - - has_or_had_main_part - - allocates_or_allocated - - has_or_had_endowment_draw - - includes_or_included + - approved_by + - has_currency + - has_description + - has_label + - has_status + - has_type + - has_main_part + - allocate + - has_endowment_draw + - include - temporal_extent - innovation_budget - internal_funding @@ -78,26 +78,26 @@ classes: - refers_to_custodian - revision_date - revision_number - - has_or_had_score - - has_or_had_quantity - - is_or_was_derived_from - - is_or_was_generated_by - - is_or_was_documented_by + - has_score + - has_quantity + - derived_from + - generated_by + - documented_by slot_usage: - has_or_had_label: + has_label: # range: string required: true description: Name/title for this budget document. MIGRATED from budget_name (2026-01-15) per Rule 53. Maps to dcterms:title as a formal title for a financial planning resource. examples: - value: Rijksmuseum Operating Budget FY2024 - value: Noord-Hollands Archief Annual Budget 2024-2025 - has_or_had_description: + has_description: # range: string required: false description: Narrative description of this budget document's scope and purpose. MIGRATED from budget_description (2026-01-15) per Rule 53. Maps to dcterms:description for financial planning documentation. examples: - value: Annual operating budget for fiscal year 2024, including major exhibition initiatives and digitization expansion. - has_or_had_type: + has_type: # range: string # uriorcurie multivalued: true required: true @@ -120,34 +120,34 @@ classes: end_of_the_begin: '2024-04-01' begin_of_the_end: '2025-03-31' end_of_the_end: '2025-03-31' - has_or_had_quantity: + has_quantity: range: decimal required: false examples: - value: 45000000.0 - has_or_had_currency: + has_currency: range: Currency inlined: true required: true examples: - value: currency_code: EUR - has_or_had_label: Euro + has_label: Euro currency_symbol: "\u20AC" - value: currency_code: USD - has_or_had_label: US Dollar + has_label: US Dollar currency_symbol: $ operating_budget: range: decimal required: false - has_or_had_main_part: + has_main_part: # range: string # MainPart inlined: false # Fixed invalid inline for primitive type required: false examples: - value: - has_or_had_quantity: + has_quantity: part_type: capital_budget currency_code: EUR personnel_budget: @@ -156,7 +156,7 @@ classes: preservation_budget: range: decimal required: false - allocates_or_allocated: + allocate: # range: string # uriorcurie # range: DigitizationBudget required: false @@ -165,32 +165,32 @@ classes: innovation_budget: range: decimal required: false - includes_or_included: + include: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type internal_funding: range: decimal required: false - has_or_had_endowment_draw: + has_endowment_draw: range: decimal required: false - is_or_was_approved_by: + approved_by: range: Approver required: false - has_or_had_status: + has_status: range: BudgetStatus required: true examples: - - value: '{value: "ACTIVE", is_or_was_effective_at: "2024-01-01"}' - - value: '{value: "DRAFT", is_or_was_effective_at: "2023-10-01"}' + - value: '{value: "ACTIVE", effective_at: "2024-01-01"}' + - value: '{value: "DRAFT", effective_at: "2023-10-01"}' revision_number: range: integer required: false revision_date: range: date required: false - is_or_was_documented_by: + documented_by: # range: string # uriorcurie # range: FinancialStatement multivalued: true @@ -201,11 +201,11 @@ classes: refers_to_custodian: range: Custodian required: true - is_or_was_derived_from: + derived_from: # range: string # CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false comments: @@ -221,83 +221,83 @@ classes: examples: - value: id: https://nde.nl/ontology/hc/budget/rm/fy2024 - has_or_had_label: Rijksmuseum Operating Budget FY2024 - has_or_had_description: Annual operating budget for fiscal year 2024, including major exhibition initiatives and digitization expansion. - has_or_had_type: + has_label: Rijksmuseum Operating Budget FY2024 + has_description: Annual operating budget for fiscal year 2024, including major exhibition initiatives and digitization expansion. + has_type: - OperatingBudget - ConsolidatedBudget temporal_extent: start_of_the_start: '2024-01-01' end_of_the_end: '2024-12-31' - has_or_had_quantity: 45000000.0 - has_or_had_currency: + has_quantity: 45000000.0 + has_currency: currency_code: EUR - has_or_had_label: Euro + has_label: Euro currency_symbol: "\u20AC" operating_budget: 38000000.0 - has_or_had_main_part: - has_or_had_quantity: + has_main_part: + has_quantity: part_type: capital_budget currency_code: EUR acquisition_budget: 2000000.0 personnel_budget: 22000000.0 preservation_budget: 1500000.0 - allocates_or_allocated: - - has_or_had_quantity: - has_or_had_value: 500000.0 - has_or_had_unit: - has_or_had_label: EUR + allocate: + - has_quantity: + has_value: 500000.0 + has_unit: + has_label: EUR innovation_budget: 750000.0 - includes_or_included: - - has_or_had_quantity: - has_or_had_label: External Grants & Subsidies + include: + - has_quantity: + has_label: External Grants & Subsidies internal_funding: 25000000.0 - has_or_had_endowment_draw: 5000000.0 - is_or_was_approved_on: + has_endowment_draw: 5000000.0 + approved_on: start_of_the_start: '2023-11-15' - is_or_was_approved_by: + approved_by: approver_name: Board of Directors - has_or_had_status: + has_status: value: ACTIVE - is_or_was_effective_at: '2024-01-01' + effective_at: '2024-01-01' refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: id: https://nde.nl/ontology/hc/budget/nha/fy2024-2025 - has_or_had_label: Noord-Hollands Archief Annual Budget 2024-2025 - has_or_had_description: Provincial archive annual budget aligned with government fiscal year. - has_or_had_type: + has_label: Noord-Hollands Archief Annual Budget 2024-2025 + has_description: Provincial archive annual budget aligned with government fiscal year. + has_type: - OperatingBudget - ConsolidatedBudget temporal_extent: start_of_the_start: '2024-04-01' end_of_the_end: '2025-03-31' - has_or_had_quantity: 8500000.0 - has_or_had_currency: + has_quantity: 8500000.0 + has_currency: currency_code: EUR - has_or_had_label: Euro + has_label: Euro currency_symbol: "\u20AC" operating_budget: 7500000.0 - has_or_had_main_part: - has_or_had_quantity: + has_main_part: + has_quantity: part_type: capital_budget currency_code: EUR personnel_budget: 5200000.0 - allocates_or_allocated: - - has_or_had_quantity: - has_or_had_value: 800000.0 - has_or_had_unit: - has_or_had_label: EUR - includes_or_included: - - has_or_had_quantity: - has_or_had_label: Province Subsidy + allocate: + - has_quantity: + has_value: 800000.0 + has_unit: + has_label: EUR + include: + - has_quantity: + has_label: Province Subsidy internal_funding: 2500000.0 - is_or_was_approved_on: + approved_on: start_of_the_start: '2024-03-01' - is_or_was_approved_by: + approved_by: approver_name: Province of Noord-Holland - has_or_had_status: + has_status: value: ACTIVE - is_or_was_effective_at: '2024-04-01' + effective_at: '2024-04-01' refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-haa-a-nha annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/BudgetStatus.yaml b/schemas/20251121/linkml/modules/classes/BudgetStatus.yaml index 0a4632d4c1..ecf2ebcc75 100644 --- a/schemas/20251121/linkml/modules/classes/BudgetStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/BudgetStatus.yaml @@ -3,13 +3,13 @@ name: budget_status_class title: Budget Status Class description: 'Status of a heritage custodian budget throughout its lifecycle. MIGRATED from budget_status slot (Rule 53). - Uses generic has_or_had_status slot with range narrowed to BudgetStatus. + Uses generic has_status slot with range narrowed to BudgetStatus. Updated 2026-01-16: Migrated from inline attributes to proper slots. ' imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/is_or_was_effective_at + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/effective_at prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -21,7 +21,7 @@ classes: BudgetStatus: class_uri: hc:BudgetStatus description: "Status of a budget document throughout its lifecycle.\n\n**DEFINITION**:\n\nBudgetStatus represents the current state of a budget document\nas it moves through the approval and execution lifecycle.\n\n**BUDGET LIFECYCLE STAGES**:\n\n```\nDRAFT \u2192 PROPOSED \u2192 APPROVED \u2192 ACTIVE \u2192 REVISED \u2192 CLOSED\n \u2193 \u2193\n REJECTED SUPERSEDED\n```\n\n**STATUS VALUES**:\n\n| Status | Description | Typical Duration |\n|--------|-------------|------------------|\n| DRAFT | Under development | Weeks/months |\n| PROPOSED | Submitted for approval | Days/weeks |\n| APPROVED | Officially approved | Until fiscal start |\n| ACTIVE | Currently in effect | Fiscal year |\n| REVISED | Modified after approval | Variable |\n| CLOSED | Fiscal period ended | Permanent |\n| REJECTED | Not approved | Terminal |\n| SUPERSEDED | Replaced by revision | Terminal |\n\n**HERITAGE INSTITUTION CONTEXT**:\n\nHeritage institution budgets typically follow these\ - \ approval paths:\n\n| Institution Type | Approval Authority |\n|------------------|-------------------|\n| Museum (stichting) | Board of Directors |\n| Regional Archive | Provincial Government |\n| National Library | Ministry of Culture |\n| University Collection | University Board |\n\n**PROVENANCE**:\n\nCreated as part of slot migration (Rule 53) from deprecated\n`budget_status` slot to generic `has_or_had_status` pattern.\n" + \ approval paths:\n\n| Institution Type | Approval Authority |\n|------------------|-------------------|\n| Museum (stichting) | Board of Directors |\n| Regional Archive | Provincial Government |\n| National Library | Ministry of Culture |\n| University Collection | University Board |\n\n**PROVENANCE**:\n\nCreated as part of slot migration (Rule 53) from deprecated\n`budget_status` slot to generic `has_status` pattern.\n" exact_mappings: - hc:BudgetStatus close_mappings: @@ -29,8 +29,8 @@ classes: related_mappings: - dcterms:status slots: - - is_or_was_effective_at - - has_or_had_score + - effective_at + - has_score comments: - Budget lifecycle status tracking - Supports audit trail of budget state changes diff --git a/schemas/20251121/linkml/modules/classes/BudgetType.yaml b/schemas/20251121/linkml/modules/classes/BudgetType.yaml index 4175f281c8..82b03c591a 100644 --- a/schemas/20251121/linkml/modules/classes/BudgetType.yaml +++ b/schemas/20251121/linkml/modules/classes/BudgetType.yaml @@ -11,41 +11,41 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/is_or_was_equivalent_to - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/equivalent_to + - ../slots/20260202_matang/related_to classes: BudgetType: class_uri: skos:Concept description: "Classification type for budgets in heritage custodian contexts.\n\n**DEFINITION**:\n\nBudgetType provides a SKOS-based classification hierarchy for categorizing\ndifferent types of organizational budgets based on purpose, scope, and\ntime horizon.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **SKOS** | `skos:Concept` | Primary - controlled vocabulary concept |\n| **CIDOC-CRM** | `crm:E55_Type` | General type classification |\n\n**BUDGET TYPES** (from slot definition):\n\n| Type | Description |\n|------|-------------|\n| `OPERATING` | Day-to-day operations budget |\n| `CAPITAL` | Major investments and infrastructure |\n| `PROJECT` | Time-limited initiative funding |\n| `MULTI_YEAR` | Spanning multiple fiscal years |\n| `CONSOLIDATED` | Institution-wide (all departments) |\n| `DEPARTMENTAL` | Single department/unit budget |\n| `ACQUISITION` | Collection acquisition funding |\n| `CONSERVATION` | Preservation\ - \ and conservation funding |\n| `EXHIBITION` | Exhibition development funding |\n| `DIGITIZATION` | Digitization project funding |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nBudget / FinancialStatement\n \u2502\n \u2514\u2500\u2500 has_or_had_type \u2192 BudgetType (THIS CLASS)\n \u251C\u2500\u2500 has_or_had_hypernym \u2192 BudgetType (parent)\n \u2514\u2500\u2500 has_or_had_description (scope details)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the budget_type string slot with a proper class hierarchy.\nOld pattern: `budget_type: \"OPERATING\"` (string)\nNew pattern: `has_or_had_type: BudgetType` (object reference)\n" + \ and conservation funding |\n| `EXHIBITION` | Exhibition development funding |\n| `DIGITIZATION` | Digitization project funding |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nBudget / FinancialStatement\n \u2502\n \u2514\u2500\u2500 has_type \u2192 BudgetType (THIS CLASS)\n \u251C\u2500\u2500 has_hypernym \u2192 BudgetType (parent)\n \u2514\u2500\u2500 has_description (scope details)\n```\n\n**SLOT MIGRATION** (2026-01-13):\n\nThis class replaces the budget_type string slot with a proper class hierarchy.\nOld pattern: `budget_type: \"OPERATING\"` (string)\nNew pattern: `has_type: BudgetType` (object reference)\n" broad_mappings: - skos:Concept close_mappings: - crm:E55_Type slots: - - has_or_had_identifier - - has_or_had_code - - has_or_had_label - - has_or_had_description - - has_or_had_hypernym - - has_or_had_hyponym - - is_or_was_related_to - - is_or_was_equivalent_to + - identified_by + - has_code + - has_label + - has_description + - has_hypernym + - has_hyponym + - related_to + - equivalent_to slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/budget-type/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/budget-type/operating - has_or_had_code: + has_code: # range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ @@ -53,7 +53,7 @@ classes: - value: OPERATING - value: CAPITAL - value: PROJECT - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -64,17 +64,17 @@ classes: - value: - Capital Budget@en - Investeringsbegroting@nl - has_or_had_description: + has_description: # range: string examples: - value: Day-to-day operational expenses including staff, utilities, and supplies. - has_or_had_hypernym: + has_hypernym: range: BudgetType - has_or_had_hyponym: + has_hyponym: range: BudgetType multivalued: true inlined_as_list: true - is_or_was_equivalent_to: + equivalent_to: range: WikiDataIdentifier multivalued: true inlined: true @@ -85,8 +85,8 @@ classes: annotations: specificity_score: '0.45' specificity_rationale: Budget types are moderately specific - relevant for financial management. - has_or_had_score: null - slot_migration: "2026-01-13: Migrated from budget_type string slot to BudgetType class\n- budget_type (string) \u2192 has_or_had_type (BudgetType)\n" + has_score: null + slot_migration: "2026-01-13: Migrated from budget_type string slot to BudgetType class\n- budget_type (string) \u2192 has_type (BudgetType)\n" custodian_types: "['*']" comments: - BudgetType provides classification for organizational budgets @@ -95,12 +95,12 @@ classes: - 'MIGRATED 2026-01-13: Now uses shared slots (Rule 38)' examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/budget-type/operating - has_or_had_code: OPERATING - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/budget-type/operating + has_code: OPERATING + has_label: - Operating Budget@en - Exploitatiebegroting@nl - has_or_had_description: 'Day-to-day operational expenses including staff, utilities, + has_description: 'Day-to-day operational expenses including staff, utilities, supplies, and ongoing maintenance. diff --git a/schemas/20251121/linkml/modules/classes/BudgetTypes.yaml b/schemas/20251121/linkml/modules/classes/BudgetTypes.yaml index 35a89108a0..f6ff4f9437 100644 --- a/schemas/20251121/linkml/modules/classes/BudgetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/BudgetTypes.yaml @@ -27,8 +27,8 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_code: OPERATING - has_or_had_label: + has_code: OPERATING + has_label: - Operating Budget@en - Exploitatiebegroting@nl description: Annual operating budget @@ -52,8 +52,8 @@ classes: specificity_score: '0.45' examples: - value: - has_or_had_code: CAPITAL - has_or_had_label: + has_code: CAPITAL + has_label: - Capital Budget@en - Investeringsbegroting@nl description: Multi-year capital investment budget @@ -75,8 +75,8 @@ classes: specificity_score: '0.50' examples: - value: - has_or_had_code: PROJECT - has_or_had_label: + has_code: PROJECT + has_label: - Project Budget@en - Projectbegroting@nl description: Grant-funded digitization project @@ -98,8 +98,8 @@ classes: specificity_score: '0.45' examples: - value: - has_or_had_code: MULTI_YEAR - has_or_had_label: + has_code: MULTI_YEAR + has_label: - Multi-Year Budget@en - Meerjarenbegroting@nl description: Five-year strategic budget @@ -121,8 +121,8 @@ classes: specificity_score: '0.40' examples: - value: - has_or_had_code: CONSOLIDATED - has_or_had_label: + has_code: CONSOLIDATED + has_label: - Consolidated Budget@en - Geconsolideerde begroting@nl description: Full institutional budget @@ -144,8 +144,8 @@ classes: specificity_score: '0.50' examples: - value: - has_or_had_code: DEPARTMENTAL - has_or_had_label: + has_code: DEPARTMENTAL + has_label: - Departmental Budget@en - Afdelingsbegroting@nl description: Collection management department budget @@ -167,8 +167,8 @@ classes: specificity_score: '0.60' examples: - value: - has_or_had_code: ACQUISITION - has_or_had_label: + has_code: ACQUISITION + has_label: - Acquisition Budget@en - Aankoopbudget@nl description: Annual collection acquisition budget @@ -190,8 +190,8 @@ classes: specificity_score: '0.60' examples: - value: - has_or_had_code: CONSERVATION - has_or_had_label: + has_code: CONSERVATION + has_label: - Conservation Budget@en - Conserveringsbudget@nl description: Annual preservation budget @@ -213,8 +213,8 @@ classes: specificity_score: '0.55' examples: - value: - has_or_had_code: EXHIBITION - has_or_had_label: + has_code: EXHIBITION + has_label: - Exhibition Budget@en - Tentoonstellingsbudget@nl description: Annual exhibition program budget @@ -236,8 +236,8 @@ classes: specificity_score: '0.60' examples: - value: - has_or_had_code: DIGITIZATION - has_or_had_label: + has_code: DIGITIZATION + has_label: - Digitization Budget@en - Digitaliseringsbudget@nl description: Multi-year digitization initiative diff --git a/schemas/20251121/linkml/modules/classes/BusinessCriticality.yaml b/schemas/20251121/linkml/modules/classes/BusinessCriticality.yaml index 231db78ad5..cedc0a96a5 100644 --- a/schemas/20251121/linkml/modules/classes/BusinessCriticality.yaml +++ b/schemas/20251121/linkml/modules/classes/BusinessCriticality.yaml @@ -16,46 +16,46 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label default_prefix: hc classes: BusinessCriticality: class_uri: hc:BusinessCriticality description: 'Business criticality level for continuity planning. - Structured class replacing string-valued business_criticality slot. Enables type classification via has_or_had_type.' + Structured class replacing string-valued business_criticality slot. Enables type classification via has_type.' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description slot_usage: - has_or_had_label: + has_label: required: true examples: - value: CRITICAL - value: HIGH - value: MEDIUM - value: LOW - has_or_had_description: + has_description: required: false examples: - value: Financial system required for daily operations, payroll processing - value: Historical project files, reference only, no operational dependency examples: - value: - has_or_had_label: CRITICAL - has_or_had_description: Financial system - required for operations, payroll cannot be processed without + has_label: CRITICAL + has_description: Financial system - required for operations, payroll cannot be processed without - value: - has_or_had_label: HIGH - has_or_had_description: Director's correspondence - important for decision continuity + has_label: HIGH + has_description: Director's correspondence - important for decision continuity - value: - has_or_had_label: MEDIUM - has_or_had_description: Historical project files - reference only, operational workarounds exist + has_label: MEDIUM + has_description: Historical project files - reference only, operational workarounds exist - value: - has_or_had_label: LOW - has_or_had_description: Promotional materials archive - minimal impact on operations + has_label: LOW + has_description: Promotional materials archive - minimal impact on operations annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/BusinessModel.yaml b/schemas/20251121/linkml/modules/classes/BusinessModel.yaml index 28f4f8b5ae..4a4017ac20 100644 --- a/schemas/20251121/linkml/modules/classes/BusinessModel.yaml +++ b/schemas/20251121/linkml/modules/classes/BusinessModel.yaml @@ -15,9 +15,9 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label default_prefix: hc classes: BusinessModel: @@ -26,17 +26,17 @@ classes: Structured class replacing string-valued business_model slot. Models funding structure, revenue sources, ownership, and operational context.' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description slot_usage: - has_or_had_label: + has_label: required: true examples: - value: For-profit brand attraction - value: Corporate archive, parent company funded - value: Brand heritage center - has_or_had_description: + has_description: required: false examples: - value: For-profit brand attraction, Admission fees, Merchandise, Marketing budget @@ -44,17 +44,17 @@ classes: - value: Brand heritage center, Event venue rental, Corporate hospitality, Tourism revenue examples: - value: - has_or_had_label: For-profit brand attraction - has_or_had_description: "Admission fees (\u20AC21), Merchandise sales, Beer tasting experiences, Event venue rental. Reports to Marketing division." + has_label: For-profit brand attraction + has_description: "Admission fees (\u20AC21), Merchandise sales, Beer tasting experiences, Event venue rental. Reports to Marketing division." - value: - has_or_had_label: Corporate archive - has_or_had_description: Fully funded by parent company, No direct revenue, Serves internal research and legal compliance needs + has_label: Corporate archive + has_description: Fully funded by parent company, No direct revenue, Serves internal research and legal compliance needs - value: - has_or_had_label: Brand heritage center - has_or_had_description: Event venue rental, Corporate hospitality, Tourism revenue, Integrated with brand marketing budget + has_label: Brand heritage center + has_description: Event venue rental, Corporate hospitality, Tourism revenue, Integrated with brand marketing budget - value: - has_or_had_label: Factory museum - has_or_had_description: Visitor fees supplement production operations, Marketing tool for brand awareness, Tours integrated with factory operations + has_label: Factory museum + has_description: Visitor fees supplement production operations, Marketing tool for brand awareness, Tours integrated with factory operations annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml b/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml index 7d5cf89de5..65e9034f17 100644 --- a/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml +++ b/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml @@ -15,9 +15,9 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_label - - ../slots/has_or_had_type - - ../slots/is_or_was_effective_at + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/effective_at default_prefix: hc classes: CITESAppendix: @@ -35,16 +35,16 @@ classes: \ legal status at time of specimen acquisition.\n**Legal Significance**:\nFor\ \ heritage collections, CITES status affects: - Loan agreements between institutions\ \ - Specimen transfers and acquisitions - Import/export permit requirements\ - \ - Documentation and provenance requirements\n**Example**: ```yaml is_or_was_listed_in:\n\ - \ has_or_had_type: APPENDIX_I\n has_or_had_label: \"CITES Appendix I - Most\ + \ - Documentation and provenance requirements\n**Example**: ```yaml listed_in:\n\ + \ has_type: APPENDIX_I\n has_label: \"CITES Appendix I - Most\ \ Endangered\"\n listing_effective_date: \"1975-07-01\"\n listing_authority:\ \ \"CITES Secretariat\"\n species_covered: \"Raphus cucullatus\"\n```" slots: - - has_or_had_type - - has_or_had_label - - is_or_was_effective_at + - has_type + - has_label + - effective_at slot_usage: - has_or_had_type: + has_type: # range: string required: true pattern: ^(APPENDIX_I|APPENDIX_II|APPENDIX_III|NOT_LISTED)$ @@ -53,7 +53,7 @@ classes: - value: APPENDIX_II - value: APPENDIX_III - value: NOT_LISTED - has_or_had_label: + has_label: # range: string required: false examples: @@ -68,12 +68,12 @@ classes: - https://speciesplus.net/ examples: - value: - has_or_had_type: APPENDIX_I - has_or_had_label: CITES Appendix I - Most Endangered - is_or_was_effective_at: '1975-07-01' + has_type: APPENDIX_I + has_label: CITES Appendix I - Most Endangered + effective_at: '1975-07-01' - value: - has_or_had_type: NOT_LISTED - has_or_had_label: Not regulated under CITES + has_type: NOT_LISTED + has_label: Not regulated under CITES annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CMS.yaml b/schemas/20251121/linkml/modules/classes/CMS.yaml index 2fbc19ac5f..d55feb7739 100644 --- a/schemas/20251121/linkml/modules/classes/CMS.yaml +++ b/schemas/20251121/linkml/modules/classes/CMS.yaml @@ -9,9 +9,9 @@ prefixes: doap: http://usefulinc.com/ns/doap# imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_type - - ../slots/has_or_had_version + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_version default_prefix: hc classes: CMS: @@ -19,7 +19,7 @@ classes: description: | A detected Content Management System (CMS) on a digital platform. **Purpose**: Represents a CMS instance detected through automated discovery - or manual identification. Used when a platform is_or_was_based_on a CMS. + or manual identification. Used when a platform based_on a CMS. **Distinction from CollectionManagementSystem**: - **CMS**: Lightweight detection record (what CMS was found) - **CollectionManagementSystem**: Full institutional CMS deployment profile @@ -31,14 +31,14 @@ classes: - JavaScript libraries or framework signatures - Admin panel detection **Use Cases**: - 1. "What CMS powers this auxiliary platform?" → Check is_or_was_based_on + 1. "What CMS powers this auxiliary platform?" → Check based_on 2. Technical survey: Identify platforms by CMS type 3. Migration planning: Prioritize platforms by CMS technology **Example**: ```yaml AuxiliaryDigitalPlatform: platform_name: Heritage Blog - is_or_was_based_on: + based_on: - cms_name: WordPress cms_version: "6.4.2" cms_type: CustomCMS @@ -53,8 +53,8 @@ classes: - doap:Project slots: - cms_name - - has_or_had_version - - has_or_had_type + - has_version + - has_type - detected_at - detection_method slot_usage: @@ -65,13 +65,13 @@ classes: - value: WordPress - value: Omeka S - value: CollectiveAccess - has_or_had_version: + has_version: # range: string required: false examples: - value: "6.4.2" - value: "4.0.1" - has_or_had_type: + has_type: range: CMSType required: false examples: diff --git a/schemas/20251121/linkml/modules/classes/CMSType.yaml b/schemas/20251121/linkml/modules/classes/CMSType.yaml index 5e83263a0a..c61d0f2b92 100644 --- a/schemas/20251121/linkml/modules/classes/CMSType.yaml +++ b/schemas/20251121/linkml/modules/classes/CMSType.yaml @@ -12,9 +12,9 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/includes_or_included + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/include classes: CMSType: class_uri: skos:Concept @@ -48,15 +48,15 @@ classes: **USE CASES**: - The CMSType is used as the range for the `has_or_had_type` + The CMSType is used as the range for the `has_type` slot in the CollectionManagementSystem class: ```yaml CollectionManagementSystem: - has_or_had_identifier: + identified_by: identifier_scheme: CMS_URI identifier_value: "https://nde.nl/ontology/hc/cms/rijksmuseum-adlib" - has_or_had_type: MUSEUM_CMS # ← CMSType + has_type: MUSEUM_CMS # ← CMSType ``` exact_mappings: @@ -65,22 +65,22 @@ classes: - schema:applicationCategory slots: - - has_or_had_label - - has_or_had_description - - includes_or_included + - has_label + - has_description + - include slot_usage: - has_or_had_label: + has_label: # range: string required: true examples: - value: "MUSEUM_CMS" - has_or_had_description: + has_description: examples: - value: description_text: "Collection management systems designed for museum collections, including object cataloging, provenance tracking, and exhibition management." description_type: definition - includes_or_included: + include: range: CMSType multivalued: true diff --git a/schemas/20251121/linkml/modules/classes/CMSTypes.yaml b/schemas/20251121/linkml/modules/classes/CMSTypes.yaml index 4ed00e6642..f9653d905a 100644 --- a/schemas/20251121/linkml/modules/classes/CMSTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/CMSTypes.yaml @@ -55,8 +55,8 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_label: MUSEUM_CMS - has_or_had_description: + has_label: MUSEUM_CMS + has_description: description_text: Collection management systems designed for museum collections, including object cataloging, provenance tracking, and exhibition management. description: Museum CMS type @@ -99,8 +99,8 @@ classes: primary_domain: archives examples: - value: - has_or_had_label: ARCHIVE_CMS - has_or_had_description: + has_label: ARCHIVE_CMS + has_description: description_text: Archival description systems supporting hierarchical arrangement, ISAD(G) compliance, and EAD export. description: Archive CMS type @@ -147,8 +147,8 @@ classes: primary_domain: libraries examples: - value: - has_or_had_label: LIBRARY_CMS - has_or_had_description: + has_label: LIBRARY_CMS + has_description: description_text: Integrated library systems supporting MARC21 cataloging, circulation, acquisitions, and OPAC functionality. description: Library CMS type @@ -194,8 +194,8 @@ classes: primary_domain: digital_preservation examples: - value: - has_or_had_label: REPOSITORY - has_or_had_description: + has_label: REPOSITORY + has_description: description_text: Digital repository systems for long-term preservation, OAI-PMH harvesting, and OAIS-compliant storage. description: Digital repository type @@ -234,8 +234,8 @@ classes: primary_domain: multi-domain examples: - value: - has_or_had_label: MIXED - has_or_had_description: + has_label: MIXED + has_description: description_text: Multi-domain collection management systems that can serve museums, archives, and/or libraries with flexible data models. description: Mixed CMS type @@ -274,8 +274,8 @@ classes: primary_domain: custom examples: - value: - has_or_had_label: CUSTOM - has_or_had_description: + has_label: CUSTOM + has_description: description_text: Institution-specific or custom-built collection management systems, often legacy or heavily customized. description: Custom CMS type diff --git a/schemas/20251121/linkml/modules/classes/CacheValidation.yaml b/schemas/20251121/linkml/modules/classes/CacheValidation.yaml index ec596c3191..3a7c347b4b 100644 --- a/schemas/20251121/linkml/modules/classes/CacheValidation.yaml +++ b/schemas/20251121/linkml/modules/classes/CacheValidation.yaml @@ -10,25 +10,25 @@ prefixes: prov: http://www.w3.org/ns/prov# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_method - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_method + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type default_prefix: hc classes: CacheValidation: description: A method used to validate if a cached resource is still fresh. Can use ETags, Last-Modified dates, or other mechanisms. slots: - - has_or_had_identifier - - has_or_had_type - - has_or_had_description - - has_or_had_score + - identified_by + - has_type + - has_description + - has_score slot_usage: - has_or_had_identifier: + identified_by: range: ETag required: false - has_or_had_type: + has_type: # range: string annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/CalendarSystem.yaml b/schemas/20251121/linkml/modules/classes/CalendarSystem.yaml index e338c84441..408b5b4b8b 100644 --- a/schemas/20251121/linkml/modules/classes/CalendarSystem.yaml +++ b/schemas/20251121/linkml/modules/classes/CalendarSystem.yaml @@ -19,7 +19,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: CalendarSystem: class_uri: time:TRS @@ -29,9 +29,9 @@ classes: close_mappings: - schema:Thing slots: - - has_or_had_label + - has_label slot_usage: - has_or_had_label: + has_label: # range: string inlined: false # Fixed invalid inline for primitive type examples: diff --git a/schemas/20251121/linkml/modules/classes/CallForApplication.yaml b/schemas/20251121/linkml/modules/classes/CallForApplication.yaml index 41e56d6f5f..9f62bf88e7 100644 --- a/schemas/20251121/linkml/modules/classes/CallForApplication.yaml +++ b/schemas/20251121/linkml/modules/classes/CallForApplication.yaml @@ -16,21 +16,21 @@ imports: - ../enums/FundingRequirementTypeEnum - ../enums/MeasureUnitEnum - ../slots/end_of_the_end - - ../slots/has_or_had_budget # was: total_budget - - ../slots/has_or_had_description # was: call_description - - ../slots/has_or_had_funded # was: funded_project - - ../slots/has_or_had_identifier # was: call_id, call_identifier - - ../slots/has_or_had_label # was: call_short_name, call_title - - ../slots/has_or_had_provenance # was: web_observation - - ../slots/has_or_had_range - - ../slots/has_or_had_requirement - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_status # was: call_status - - ../slots/has_or_had_url # was: call_url + - ../slots/20260202_matang/has_budget # was: total_budget + - ../slots/20260202_matang/has_description # was: call_description + - ../slots/20260202_matang/has_funded # was: funded_project + - ../slots/identified_by # was: call_id, call_identifier + - ../slots/20260202_matang/has_label # was: call_short_name, call_title + - ../slots/20260202_matang/has_provenance # was: web_observation + - ../slots/20260202_matang/has_range + - ../slots/20260202_matang/has_requirement + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_status # was: call_status + - ../slots/20260202_matang/has_url # was: call_url - ../slots/info_session_date - - ../slots/is_or_was_categorized_as # was: thematic_area - - ../slots/is_or_was_due_on - - ../slots/is_or_was_opened_on + - ../slots/20260202_matang/categorized_as # was: thematic_area + - ../slots/20260202_matang/due_on + - ../slots/20260202_matang/opened_on - ../slots/issuing_organisation - ../slots/keyword - ../slots/minimum_partner @@ -61,10 +61,10 @@ classes: - org:Organization - dcterms:BibliographicResource slots: - - is_or_was_due_on - - is_or_was_opened_on + - due_on + - opened_on slot_usage: - is_or_was_due_on: + due_on: range: TimeSpan offers_or_offered: # was: funding_rate - migrated per Rule 53 (2026-01-26) range: FundingRate @@ -73,25 +73,25 @@ classes: required: false examples: - value: - has_or_had_rate: "100%" + has_rate: "100%" maximal_of_maximal: 100 - is_or_was_opened_on: + opened_on: range: TimeSpan examples: - value: start_of_the_start: "2023-01-01T00:00:00Z" - has_or_had_budget: # was: total_budget - migrated per Rule 53 (2026-01-15) + has_budget: # was: total_budget - migrated per Rule 53 (2026-01-15) range: Budget multivalued: true inlined: true inlined_as_list: true examples: - value: - has_or_had_label: Horizon Europe CL2 2025 Budget - has_or_had_budget: 82500000.0 - has_or_had_currency: + has_label: Horizon Europe CL2 2025 Budget + has_budget: 82500000.0 + has_currency: currency_code: EUR - has_or_had_label: Euro + has_label: Euro currency_symbol: € fiscal_year_start: '2025-01-01' fiscal_year_end: '2025-12-31' @@ -100,21 +100,21 @@ classes: # range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/encompassing-body/funding/ec-rea - has_or_had_provenance: # was: web_observation - migrated per Rule 53 + has_provenance: # was: web_observation - migrated per Rule 53 range: WebObservation multivalued: true inlined: true inlined_as_list: true examples: - value: https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2 - has_or_had_requirement: + has_requirement: range: FundingRequirement multivalued: true inlined: true inlined_as_list: true examples: - value: See FundingRequirement class examples - has_or_had_funded: # was: funded_project - migrated per Rule 53 (2026-01-26) + has_funded: # was: funded_project - migrated per Rule 53 (2026-01-26) # range: string # uriorcurie multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type @@ -126,8 +126,8 @@ classes: inlined: true examples: - value: - is_or_was_required: true - has_or_had_description: "Partnership funding 5-50% depending on grant size" + required: true + has_description: "Partnership funding 5-50% depending on grant size" annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Cancellation.yaml b/schemas/20251121/linkml/modules/classes/Cancellation.yaml index 733800bb2b..b11edc8af2 100644 --- a/schemas/20251121/linkml/modules/classes/Cancellation.yaml +++ b/schemas/20251121/linkml/modules/classes/Cancellation.yaml @@ -10,22 +10,22 @@ prefixes: prov: http://www.w3.org/ns/prov# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_rationale - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_rationale + - ../slots/20260202_matang/has_score default_prefix: hc classes: Cancellation: class_uri: prov:Activity description: Represents the cancellation event/action. slots: - - has_or_had_identifier - - has_or_had_rationale - - has_or_had_description - - has_or_had_score + - identified_by + - has_rationale + - has_description + - has_score slot_usage: - has_or_had_rationale: + has_rationale: # range: string inlined: false # Fixed invalid inline for primitive type annotations: diff --git a/schemas/20251121/linkml/modules/classes/CanonicalForm.yaml b/schemas/20251121/linkml/modules/classes/CanonicalForm.yaml index 81910fa1c6..b8ebdfb964 100644 --- a/schemas/20251121/linkml/modules/classes/CanonicalForm.yaml +++ b/schemas/20251121/linkml/modules/classes/CanonicalForm.yaml @@ -9,7 +9,7 @@ prefixes: dcterms: http://purl.org/dc/terms/ imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label default_prefix: hc classes: CanonicalForm: @@ -42,22 +42,22 @@ classes: close_mappings: - schema:PropertyValue slots: - - has_or_had_label + - has_label slot_usage: - has_or_had_label: + has_label: # range: string required: true inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_label: - has_or_had_text: '0000000121465765' + has_label: + has_text: '0000000121465765' - value: - has_or_had_label: - has_or_had_text: Q190804 + has_label: + has_text: Q190804 - value: - has_or_had_label: - has_or_had_text: 10.1234/example + has_label: + has_text: 10.1234/example annotations: specificity_score: 0.3 specificity_rationale: Canonical forms are relevant for identifier lookup across diff --git a/schemas/20251121/linkml/modules/classes/CantonalArchive.yaml b/schemas/20251121/linkml/modules/classes/CantonalArchive.yaml index 42a92f413c..a56f0618c8 100644 --- a/schemas/20251121/linkml/modules/classes/CantonalArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/CantonalArchive.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: CantonalArchive: diff --git a/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetType.yaml index fb7f228ebe..fb465d41e6 100644 --- a/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetType.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: CantonalArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by CantonalArchive custodians. @@ -15,14 +15,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - CantonalArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetTypes.yaml index 71a02441ac..4bd9740836 100644 --- a/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./CantonalArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - CantonalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CantonalGovernmentFonds @@ -78,15 +78,15 @@ classes: - CantonalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CantonalLegislationCollection diff --git a/schemas/20251121/linkml/modules/classes/Capacity.yaml b/schemas/20251121/linkml/modules/classes/Capacity.yaml index dafb0df7d7..5ec946241d 100644 --- a/schemas/20251121/linkml/modules/classes/Capacity.yaml +++ b/schemas/20251121/linkml/modules/classes/Capacity.yaml @@ -10,22 +10,22 @@ prefixes: imports: - linkml:types - ../enums/CapacityTypeEnum - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_measurement_unit - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/has_or_had_unit + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_measurement_unit + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_unit - ../slots/is_estimate - ../slots/temporal_extent default_prefix: hc classes: Capacity: class_uri: hc:Capacity - description: "Storage or holding capacity measurement for heritage facilities.\n**RULE 53 MIGRATION**:\nThis class consolidates the following bespoke capacity slots: - capacity_cubic_meters \u2192 capacity_value + VOLUME type + m\xB3 unit - capacity_linear_meters \u2192 capacity_value + SHELF_LENGTH type + m unit - capacity_item \u2192 capacity_value + ITEM_COUNT type + items unit - capacity_description \u2192 has_or_had_description\n**ONTOLOGY ALIGNMENT**:\n- Extends `qudt:Quantity` pattern for measured values - Uses MeasureUnit for structured unit representation - Supports temporal validity via TimeSpan\n**CAPACITY TYPES**:\n| Type | Description | Unit Examples | |------|-------------|---------------| | VOLUME | Cubic capacity | m\xB3, ft\xB3 | | SHELF_LENGTH | Linear shelf meters | m, ft | | FLOOR_AREA | Floor space | m\xB2, ft\xB2 | | ITEM_COUNT | Number of items | boxes, folders, objects | | WEIGHT | Weight capacity | kg, tons | | SEATING | Seating capacity | seats, persons |\n\ - **EXAMPLES** (MIGRATED 2026-01-22: capacity_value \u2192 has_or_had_quantity):\nArchive depot (linear meters): ```yaml has_or_had_capacity:\n - has_or_had_quantity:\n quantity_value: 8000.0\n has_or_had_unit:\n unit_value: \"linear_meter\"\n has_or_had_type: ShelfLengthCapacity\n has_or_had_description: Total linear meters of shelving capacity\n```\nCold storage (volume): ```yaml has_or_had_capacity:\n - has_or_had_quantity:\n quantity_value: 2500.0\n has_or_had_unit:\n unit_value: \"cubic_meter\"\n has_or_had_type: VolumeCapacity\n```\nArchive box storage (items): ```yaml has_or_had_capacity:\n - has_or_had_quantity:\n quantity_value: 50000\n has_or_had_unit:\n unit_value: \"item\"\n has_or_had_type: ItemCountCapacity\n```" + description: "Storage or holding capacity measurement for heritage facilities.\n**RULE 53 MIGRATION**:\nThis class consolidates the following bespoke capacity slots: - capacity_cubic_meters \u2192 capacity_value + VOLUME type + m\xB3 unit - capacity_linear_meters \u2192 capacity_value + SHELF_LENGTH type + m unit - capacity_item \u2192 capacity_value + ITEM_COUNT type + items unit - capacity_description \u2192 has_description\n**ONTOLOGY ALIGNMENT**:\n- Extends `qudt:Quantity` pattern for measured values - Uses MeasureUnit for structured unit representation - Supports temporal validity via TimeSpan\n**CAPACITY TYPES**:\n| Type | Description | Unit Examples | |------|-------------|---------------| | VOLUME | Cubic capacity | m\xB3, ft\xB3 | | SHELF_LENGTH | Linear shelf meters | m, ft | | FLOOR_AREA | Floor space | m\xB2, ft\xB2 | | ITEM_COUNT | Number of items | boxes, folders, objects | | WEIGHT | Weight capacity | kg, tons | | SEATING | Seating capacity | seats, persons |\n\ + **EXAMPLES** (MIGRATED 2026-01-22: capacity_value \u2192 has_quantity):\nArchive depot (linear meters): ```yaml has_capacity:\n - has_quantity:\n quantity_value: 8000.0\n has_unit:\n unit_value: \"linear_meter\"\n has_type: ShelfLengthCapacity\n has_description: Total linear meters of shelving capacity\n```\nCold storage (volume): ```yaml has_capacity:\n - has_quantity:\n quantity_value: 2500.0\n has_unit:\n unit_value: \"cubic_meter\"\n has_type: VolumeCapacity\n```\nArchive box storage (items): ```yaml has_capacity:\n - has_quantity:\n quantity_value: 50000\n has_unit:\n unit_value: \"item\"\n has_type: ItemCountCapacity\n```" exact_mappings: - hc:Capacity close_mappings: @@ -36,22 +36,22 @@ classes: - dcterms:extent - premis:StorageLocation slots: - - has_or_had_identifier - - has_or_had_quantity - - has_or_had_type - - has_or_had_measurement_unit - - has_or_had_unit - - has_or_had_description + - identified_by + - has_quantity + - has_type + - has_measurement_unit + - has_unit + - has_description - temporal_extent - is_estimate - - has_or_had_score + - has_score slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: false examples: - value: https://nde.nl/ontology/hc/capacity/na-depot-b-shelving - has_or_had_type: + has_type: # range: string # uriorcurie required: false examples: @@ -59,32 +59,32 @@ classes: - value: VolumeCapacity - value: ItemCountCapacity - value: FloorAreaCapacity - has_or_had_measurement_unit: + has_measurement_unit: range: MeasureUnit required: false inlined: true examples: - value: - has_or_had_type: LINEAR_METER - has_or_had_symbol: m + has_type: LINEAR_METER + has_symbol: m - value: - has_or_had_type: CUBIC_METER - has_or_had_symbol: "m\xB3" + has_type: CUBIC_METER + has_symbol: "m\xB3" - value: - has_or_had_type: ITEM - has_or_had_symbol: archive boxes - has_or_had_quantity: + has_type: ITEM + has_symbol: archive boxes + has_quantity: range: integer required: true inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_unit: + has_unit: - value: - has_or_had_unit: + has_unit: - value: - has_or_had_unit: - has_or_had_description: + has_unit: + has_description: # range: string required: false examples: @@ -112,23 +112,23 @@ classes: - https://schema.org/QuantitativeValue examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/capacity/rijksmuseum-depot-shelving - has_or_had_quantity: - has_or_had_unit: - has_or_had_type: ShelfLengthCapacity - has_or_had_description: Total linear shelf capacity in Depot Amersfoort + identified_by: https://nde.nl/ontology/hc/capacity/rijksmuseum-depot-shelving + has_quantity: + has_unit: + has_type: ShelfLengthCapacity + has_description: Total linear shelf capacity in Depot Amersfoort is_estimate: false - value: - has_or_had_quantity: - has_or_had_unit: - has_or_had_type: VolumeCapacity + has_quantity: + has_unit: + has_type: VolumeCapacity - value: - has_or_had_quantity: - has_or_had_unit: - has_or_had_type: ItemCountCapacity - has_or_had_description: Capacity for 50,000 standard archive boxes + has_quantity: + has_unit: + has_type: ItemCountCapacity + has_description: Capacity for 50,000 standard archive boxes - value: - has_or_had_description: Approximately 5,000 linear meters of shelving across 3 floors. Large-scale art storage for paintings up to 4m x 6m. + has_description: Approximately 5,000 linear meters of shelving across 3 floors. Large-scale art storage for paintings up to 4m x 6m. is_estimate: true annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/CapacityType.yaml b/schemas/20251121/linkml/modules/classes/CapacityType.yaml index fc6866ef78..9b49339fa3 100644 --- a/schemas/20251121/linkml/modules/classes/CapacityType.yaml +++ b/schemas/20251121/linkml/modules/classes/CapacityType.yaml @@ -12,8 +12,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: CapacityType: class_uri: skos:Concept @@ -54,12 +54,12 @@ classes: - qudt:QuantityKind slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description slot_usage: - has_or_had_label: - has_or_had_description: + has_label: + has_description: annotations: custodian_types: '["*"]' custodian_types_rationale: Capacity types apply to all storage facilities. diff --git a/schemas/20251121/linkml/modules/classes/Caption.yaml b/schemas/20251121/linkml/modules/classes/Caption.yaml index c0fa2b0a27..900eb40b06 100644 --- a/schemas/20251121/linkml/modules/classes/Caption.yaml +++ b/schemas/20251121/linkml/modules/classes/Caption.yaml @@ -8,7 +8,7 @@ prefixes: dcterms: http://purl.org/dc/terms/ imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label - ../slots/language default_prefix: hc classes: @@ -26,10 +26,10 @@ classes: close_mappings: - schema:caption slots: - - has_or_had_label + - has_label - language slot_usage: - has_or_had_label: + has_label: # range: string required: false inlined: false # Fixed invalid inline for primitive type @@ -43,8 +43,8 @@ classes: language: nl caption_url: https://example.org/video/captions_nl.srt - value: - has_or_had_label: - has_or_had_text: Video beschrijving voor slechthorenden + has_label: + has_text: Video beschrijving voor slechthorenden language: nl annotations: specificity_score: 0.6 diff --git a/schemas/20251121/linkml/modules/classes/Carrier.yaml b/schemas/20251121/linkml/modules/classes/Carrier.yaml index dfa0893f17..a6c54e015d 100644 --- a/schemas/20251121/linkml/modules/classes/Carrier.yaml +++ b/schemas/20251121/linkml/modules/classes/Carrier.yaml @@ -18,9 +18,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_note - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_type classes: Carrier: class_uri: bf:Carrier @@ -28,7 +28,7 @@ classes: Models the physical carrier (codex, scroll, disc, etc.) as distinct from the content it carries. Supports the FRBR/LRM conceptual model distinction between Work/Expression/Manifestation/Item. - **Type Classification**: Use has_or_had_type with CarrierType subclasses (Rule 0b pattern): - CodexCarrier, ScrollCarrier, SheetCarrier (traditional) - OpticalDiscCarrier, MagneticTapeCarrier (modern media) - DigitalCarrier (born-digital content) + **Type Classification**: Use has_type with CarrierType subclasses (Rule 0b pattern): - CodexCarrier, ScrollCarrier, SheetCarrier (traditional) - OpticalDiscCarrier, MagneticTapeCarrier (modern media) - DigitalCarrier (born-digital content) MIGRATED from carrier_type enum (2026-01-23) per Rule 53.' exact_mappings: @@ -37,11 +37,11 @@ classes: close_mappings: - crm:E22_Human-Made_Object slots: - - has_or_had_type - - has_or_had_description - - has_or_had_note + - has_type + - has_description + - has_note slot_usage: - has_or_had_type: + has_type: range: CarrierType required: true examples: @@ -51,25 +51,25 @@ classes: - value: carrier_type_code: VINYL_DISC carrier_type_label: Vinyl Disc - has_or_had_description: + has_description: # range: string required: false examples: - value: Paper codex with leather binding, 324 leaves - has_or_had_note: + has_note: # range: string required: false examples: - value: - has_or_had_type: + has_type: carrier_type_code: CODEX carrier_type_label: Codex - has_or_had_description: Paper codex, 18th-century red morocco binding + has_description: Paper codex, 18th-century red morocco binding - value: - has_or_had_type: + has_type: carrier_type_code: VINYL_DISC carrier_type_label: Vinyl Disc - has_or_had_description: "12-inch 33\u2153 RPM long-playing record" + has_description: "12-inch 33\u2153 RPM long-playing record" annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CarrierType.yaml b/schemas/20251121/linkml/modules/classes/CarrierType.yaml index f7c6d425c4..5c2f1a63c9 100644 --- a/schemas/20251121/linkml/modules/classes/CarrierType.yaml +++ b/schemas/20251121/linkml/modules/classes/CarrierType.yaml @@ -11,9 +11,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: CarrierType: class_uri: bf:Carrier @@ -31,19 +31,19 @@ classes: close_mappings: - skos:Concept slots: - - has_or_had_code - - has_or_had_label - - has_or_had_description + - has_code + - has_label + - has_description slot_usage: - has_or_had_code: + has_code: # range: string required: true identifier: true pattern: ^[A-Z][A-Z0-9_]*$ - has_or_had_label: + has_label: # range: string required: true - has_or_had_description: + has_description: # range: string required: false comments: diff --git a/schemas/20251121/linkml/modules/classes/CarrierTypes.yaml b/schemas/20251121/linkml/modules/classes/CarrierTypes.yaml index bf1ec18ccd..3f838aafbe 100644 --- a/schemas/20251121/linkml/modules/classes/CarrierTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/CarrierTypes.yaml @@ -19,8 +19,8 @@ imports: - ./CarrierType - linkml:types - ../metadata - - ../slots/has_or_had_code - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_label classes: CodexCarrier: is_a: CarrierType @@ -28,9 +28,9 @@ classes: description: A book consisting of stacked, bound leaves/pages. The dominant form for Western manuscripts and printed books since antiquity. slot_usage: - has_or_had_code: + has_code: equals_string: CODEX - has_or_had_label: + has_label: # range: string equals_string: Codex annotations: @@ -45,9 +45,9 @@ classes: class_uri: hc:BoundVolumeCarrier description: General bound volume, broader than codex. slot_usage: - has_or_had_code: + has_code: equals_string: BOUND_VOLUME - has_or_had_label: + has_label: # range: string equals_string: Bound Volume annotations: @@ -60,9 +60,9 @@ classes: class_uri: hc:PamphletCarrier description: Unbound or loosely bound publication, typically few pages. slot_usage: - has_or_had_code: + has_code: equals_string: PAMPHLET - has_or_had_label: + has_label: # range: string equals_string: Pamphlet annotations: @@ -75,9 +75,9 @@ classes: class_uri: hc:NotebookCarrier description: Bound blank or ruled pages for writing. slot_usage: - has_or_had_code: + has_code: equals_string: NOTEBOOK - has_or_had_label: + has_label: # range: string equals_string: Notebook annotations: @@ -90,9 +90,9 @@ classes: class_uri: hc:SheetCarrier description: Single flat sheet, unbound. slot_usage: - has_or_had_code: + has_code: equals_string: SHEET - has_or_had_label: + has_label: # range: string equals_string: Sheet annotations: @@ -105,9 +105,9 @@ classes: class_uri: hc:BroadsideCarrier description: Large single sheet printed on one side. slot_usage: - has_or_had_code: + has_code: equals_string: BROADSIDE - has_or_had_label: + has_label: # range: string equals_string: Broadside annotations: @@ -120,9 +120,9 @@ classes: class_uri: hc:MapSheetCarrier description: Cartographic material on a single sheet. slot_usage: - has_or_had_code: + has_code: equals_string: MAP_SHEET - has_or_had_label: + has_label: # range: string equals_string: Map Sheet annotations: @@ -135,9 +135,9 @@ classes: class_uri: hc:PhotographCarrier description: Photographic print or negative. slot_usage: - has_or_had_code: + has_code: equals_string: PHOTOGRAPH - has_or_had_label: + has_label: # range: string equals_string: Photograph annotations: @@ -150,9 +150,9 @@ classes: class_uri: hc:ParchmentLeafCarrier description: Single parchment or vellum leaf. slot_usage: - has_or_had_code: + has_code: equals_string: PARCHMENT_LEAF - has_or_had_label: + has_label: # range: string equals_string: Parchment Leaf annotations: @@ -165,9 +165,9 @@ classes: class_uri: hc:ScrollCarrier description: Rolled manuscript form. slot_usage: - has_or_had_code: + has_code: equals_string: SCROLL - has_or_had_label: + has_label: # range: string equals_string: Scroll annotations: @@ -180,9 +180,9 @@ classes: class_uri: hc:PapyrusScrollCarrier description: Scroll made from papyrus plant material. slot_usage: - has_or_had_code: + has_code: equals_string: PAPYRUS_SCROLL - has_or_had_label: + has_label: # range: string equals_string: Papyrus Scroll annotations: @@ -195,9 +195,9 @@ classes: class_uri: hc:ClayTabletCarrier description: Cuneiform tablet made from clay. slot_usage: - has_or_had_code: + has_code: equals_string: CLAY_TABLET - has_or_had_label: + has_label: # range: string equals_string: Clay Tablet annotations: @@ -210,9 +210,9 @@ classes: class_uri: hc:WaxTabletCarrier description: Wooden tablet with wax coating for writing. slot_usage: - has_or_had_code: + has_code: equals_string: WAX_TABLET - has_or_had_label: + has_label: # range: string equals_string: Wax Tablet annotations: @@ -225,9 +225,9 @@ classes: class_uri: hc:InscriptionCarrier description: Text carved or incised into stone, metal, or other durable material. slot_usage: - has_or_had_code: + has_code: equals_string: INSCRIPTION - has_or_had_label: + has_label: # range: string equals_string: Inscription annotations: @@ -240,9 +240,9 @@ classes: class_uri: hc:VinylDiscCarrier description: Analog audio recording on vinyl record. slot_usage: - has_or_had_code: + has_code: equals_string: VINYL_DISC - has_or_had_label: + has_label: # range: string equals_string: Vinyl Disc annotations: @@ -255,9 +255,9 @@ classes: class_uri: hc:AudioCassetteCarrier description: Compact cassette tape for audio recording. slot_usage: - has_or_had_code: + has_code: equals_string: AUDIO_CASSETTE - has_or_had_label: + has_label: # range: string equals_string: Audio Cassette annotations: @@ -270,9 +270,9 @@ classes: class_uri: hc:CompactDiscCarrier description: Digital optical disc for audio (CD). slot_usage: - has_or_had_code: + has_code: equals_string: COMPACT_DISC - has_or_had_label: + has_label: # range: string equals_string: Compact Disc annotations: @@ -285,9 +285,9 @@ classes: class_uri: hc:FilmReelCarrier description: Motion picture film on reel. slot_usage: - has_or_had_code: + has_code: equals_string: FILM_REEL - has_or_had_label: + has_label: # range: string equals_string: Film Reel annotations: @@ -300,9 +300,9 @@ classes: class_uri: hc:VideotapeCarrier description: Magnetic tape for video recording. slot_usage: - has_or_had_code: + has_code: equals_string: VIDEOTAPE - has_or_had_label: + has_label: # range: string equals_string: Videotape annotations: @@ -315,9 +315,9 @@ classes: class_uri: hc:MicrofilmCarrier description: Microform on film for preservation/access. slot_usage: - has_or_had_code: + has_code: equals_string: MICROFILM - has_or_had_label: + has_label: # range: string equals_string: Microfilm annotations: @@ -330,9 +330,9 @@ classes: class_uri: hc:MicroficheCarrier description: Flat microform sheet. slot_usage: - has_or_had_code: + has_code: equals_string: MICROFICHE - has_or_had_label: + has_label: # range: string equals_string: Microfiche annotations: @@ -345,9 +345,9 @@ classes: class_uri: hc:FloppyDiskCarrier description: Magnetic floppy disk storage medium. slot_usage: - has_or_had_code: + has_code: equals_string: FLOPPY_DISK - has_or_had_label: + has_label: # range: string equals_string: Floppy Disk annotations: @@ -360,9 +360,9 @@ classes: class_uri: hc:OpticalDiscCarrier description: Optical storage disc (CD-ROM, DVD, Blu-ray). slot_usage: - has_or_had_code: + has_code: equals_string: OPTICAL_DISC - has_or_had_label: + has_label: # range: string equals_string: Optical Disc annotations: @@ -375,9 +375,9 @@ classes: class_uri: hc:HardDriveCarrier description: Magnetic or solid-state hard drive. slot_usage: - has_or_had_code: + has_code: equals_string: HARD_DRIVE - has_or_had_label: + has_label: # range: string equals_string: Hard Drive annotations: @@ -390,9 +390,9 @@ classes: class_uri: hc:USBDriveCarrier description: USB flash drive storage medium. slot_usage: - has_or_had_code: + has_code: equals_string: USB_DRIVE - has_or_had_label: + has_label: # range: string equals_string: USB Drive annotations: @@ -405,9 +405,9 @@ classes: class_uri: hc:MemoryCardCarrier description: Flash memory card (SD, CompactFlash, etc.). slot_usage: - has_or_had_code: + has_code: equals_string: MEMORY_CARD - has_or_had_label: + has_label: # range: string equals_string: Memory Card annotations: diff --git a/schemas/20251121/linkml/modules/classes/CastCollection.yaml b/schemas/20251121/linkml/modules/classes/CastCollection.yaml index 4cce1a497b..0e71550909 100644 --- a/schemas/20251121/linkml/modules/classes/CastCollection.yaml +++ b/schemas/20251121/linkml/modules/classes/CastCollection.yaml @@ -3,8 +3,8 @@ name: CastCollection title: Cast Collection Type imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: CastCollection: is_a: ArchiveOrganizationType @@ -79,10 +79,10 @@ classes: ' slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:MuseumType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/CatalogSystem.yaml b/schemas/20251121/linkml/modules/classes/CatalogSystem.yaml index ab68004ba7..f232ac3caf 100644 --- a/schemas/20251121/linkml/modules/classes/CatalogSystem.yaml +++ b/schemas/20251121/linkml/modules/classes/CatalogSystem.yaml @@ -25,10 +25,10 @@ prefixes: prov: http://www.w3.org/ns/prov# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_name - - ../slots/has_or_had_type - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_name + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_url default_prefix: hc classes: CatalogSystem: @@ -60,45 +60,45 @@ classes: ' slots: - - has_or_had_name - - has_or_had_type - - has_or_had_description - - has_or_had_url + - has_name + - has_type + - has_description + - has_url slot_usage: - has_or_had_name: + has_name: required: true examples: - value: ALMA - value: Koha - value: Sierra - value: Adlib - has_or_had_type: + has_type: range: CatalogSystemType inlined: true - has_or_had_url: + has_url: exact_mappings: - schema:SoftwareApplication close_mappings: - prov:SoftwareAgent examples: - value: - has_or_had_name: ALMA - has_or_had_type: - has_or_had_name: Integrated Library System - has_or_had_description: Ex Libris ALMA cloud-based library services platform - has_or_had_url: https://exlibrisgroup.com/products/alma-library-services-platform/ + has_name: ALMA + has_type: + has_name: Integrated Library System + has_description: Ex Libris ALMA cloud-based library services platform + has_url: https://exlibrisgroup.com/products/alma-library-services-platform/ - value: - has_or_had_name: Koha - has_or_had_type: - has_or_had_name: Integrated Library System - has_or_had_description: Open-source integrated library system - has_or_had_url: https://koha-community.org/ + has_name: Koha + has_type: + has_name: Integrated Library System + has_description: Open-source integrated library system + has_url: https://koha-community.org/ - value: - has_or_had_name: Adlib - has_or_had_type: - has_or_had_name: Collection Management System - has_or_had_description: Axiell Adlib museum collection management system - has_or_had_url: https://www.axiell.com/solutions/product/axiell-collections/ + has_name: Adlib + has_type: + has_name: Collection Management System + has_description: Axiell Adlib museum collection management system + has_url: https://www.axiell.com/solutions/product/axiell-collections/ annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CatalogSystemType.yaml b/schemas/20251121/linkml/modules/classes/CatalogSystemType.yaml index 32189b5fb7..d5bbe285e0 100644 --- a/schemas/20251121/linkml/modules/classes/CatalogSystemType.yaml +++ b/schemas/20251121/linkml/modules/classes/CatalogSystemType.yaml @@ -21,8 +21,8 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_name default_prefix: hc classes: CatalogSystemType: @@ -49,12 +49,12 @@ classes: ' slots: - - has_or_had_name - - has_or_had_description + - has_name + - has_description slot_usage: - has_or_had_name: + has_name: required: true - has_or_had_description: + has_description: exact_mappings: - skos:Concept close_mappings: diff --git a/schemas/20251121/linkml/modules/classes/CatalogSystemTypes.yaml b/schemas/20251121/linkml/modules/classes/CatalogSystemTypes.yaml index eae6d6b042..9f719652fb 100644 --- a/schemas/20251121/linkml/modules/classes/CatalogSystemTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/CatalogSystemTypes.yaml @@ -25,7 +25,7 @@ prefixes: imports: - ./CatalogSystemType - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name default_prefix: hc classes: IntegratedLibrarySystem: @@ -41,7 +41,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Integrated Library System aliases: - ILS @@ -65,7 +65,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Library Services Platform aliases: - LSP @@ -84,7 +84,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Discovery System aliases: - Discovery Layer @@ -104,7 +104,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Collection Management System aliases: - CMS @@ -124,7 +124,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Digital Asset Management aliases: - DAM @@ -144,7 +144,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Archives Management System aliases: - AMS @@ -164,7 +164,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Digital Preservation System aliases: - Preservation Repository @@ -183,7 +183,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Institutional Repository aliases: - IR @@ -203,7 +203,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Content Management System aliases: - CMS @@ -222,7 +222,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Linked Data Platform aliases: - Knowledge Graph Platform @@ -241,7 +241,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Exhibition Management System aliases: - EMS @@ -260,7 +260,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Registration System aliases: - Object Tracking System diff --git a/schemas/20251121/linkml/modules/classes/CatalogingStandard.yaml b/schemas/20251121/linkml/modules/classes/CatalogingStandard.yaml index 7343cdf130..22158499bb 100644 --- a/schemas/20251121/linkml/modules/classes/CatalogingStandard.yaml +++ b/schemas/20251121/linkml/modules/classes/CatalogingStandard.yaml @@ -34,10 +34,10 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_url default_prefix: hc classes: CatalogingStandard: @@ -63,31 +63,31 @@ classes: close_mappings: - schema:CreativeWork slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_url + - identified_by + - has_label + - has_description + - has_url slot_usage: - has_or_had_identifier: + identified_by: required: true # range: string examples: - value: LIDO - value: MARC21 - value: Darwin Core - has_or_had_label: + has_label: required: false # range: string examples: - value: Lightweight Information Describing Objects - value: Machine-Readable Cataloging 21 - value: Resource Description and Access - has_or_had_description: + has_description: required: false # range: string examples: - value: XML schema for museum object metadata harvesting - has_or_had_url: + has_url: required: false range: uri examples: @@ -97,20 +97,20 @@ classes: - value: library examples: - value: - has_or_had_identifier: LIDO - has_or_had_label: Lightweight Information Describing Objects - has_or_had_description: XML schema for museum object metadata harvesting and exchange - has_or_had_url: https://lido-schema.org/ + identified_by: LIDO + has_label: Lightweight Information Describing Objects + has_description: XML schema for museum object metadata harvesting and exchange + has_url: https://lido-schema.org/ - value: - has_or_had_identifier: MARC21 - has_or_had_label: Machine-Readable Cataloging 21 - has_or_had_description: Library cataloging format for bibliographic data - has_or_had_url: https://www.loc.gov/marc/ + identified_by: MARC21 + has_label: Machine-Readable Cataloging 21 + has_description: Library cataloging format for bibliographic data + has_url: https://www.loc.gov/marc/ - value: - has_or_had_identifier: Darwin Core - has_or_had_label: Darwin Core - has_or_had_description: Data standard for biodiversity specimen information - has_or_had_url: https://dwc.tdwg.org/ + identified_by: Darwin Core + has_label: Darwin Core + has_description: Data standard for biodiversity specimen information + has_url: https://dwc.tdwg.org/ annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Category.yaml b/schemas/20251121/linkml/modules/classes/Category.yaml index c2a973bf79..281e4be472 100644 --- a/schemas/20251121/linkml/modules/classes/Category.yaml +++ b/schemas/20251121/linkml/modules/classes/Category.yaml @@ -9,7 +9,7 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score # default_range: string enums: CategoryTypeEnum: @@ -55,11 +55,11 @@ classes: - schema:DefinedTerm - dcterms:subject slots: - - has_or_had_score + - has_score comments: - Created per slot_fixes.yaml revision for collection_focus migration - SKOS-based category model for collection classification - - 'RULE 53: Part of collection_focus → has_or_had_category + Category migration' + - 'RULE 53: Part of collection_focus → categorized_as + Category migration' annotations: specificity_score: 0.45 specificity_rationale: Broadly useful - applies to many collection contexts diff --git a/schemas/20251121/linkml/modules/classes/CategoryStatus.yaml b/schemas/20251121/linkml/modules/classes/CategoryStatus.yaml index ab8e78a9f0..b9663db7d9 100644 --- a/schemas/20251121/linkml/modules/classes/CategoryStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/CategoryStatus.yaml @@ -20,9 +20,9 @@ prefixes: imports: - linkml:types - ../enums/StorageConditionStatusEnum - - ../slots/has_or_had_description - - ../slots/has_or_had_name - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_name + - ../slots/20260202_matang/has_value default_prefix: hc classes: CategoryStatus: @@ -48,28 +48,28 @@ classes: ' slots: - - has_or_had_name - - has_or_had_description - - has_or_had_value + - has_name + - has_description + - has_value slot_usage: - has_or_had_value: + has_value: range: StorageConditionStatusEnum required: true - has_or_had_name: - has_or_had_description: + has_name: + has_description: exact_mappings: - crm:E55_Type close_mappings: - skos:Concept examples: - value: - has_or_had_value: GOOD - has_or_had_name: Good - has_or_had_description: Acceptable temperature control with minor fluctuations + has_value: GOOD + has_name: Good + has_description: Acceptable temperature control with minor fluctuations - value: - has_or_had_value: CRITICAL - has_or_had_name: Critical - has_or_had_description: Immediate pest treatment required + has_value: CRITICAL + has_name: Critical + has_description: Immediate pest treatment required annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CateringPlace.yaml b/schemas/20251121/linkml/modules/classes/CateringPlace.yaml index 8b77a28bf2..652071fb12 100644 --- a/schemas/20251121/linkml/modules/classes/CateringPlace.yaml +++ b/schemas/20251121/linkml/modules/classes/CateringPlace.yaml @@ -4,18 +4,18 @@ title: CateringPlace Class imports: - linkml:types - ../slots/cuisine_type - - ../slots/has_or_had_accessibility_feature - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_price - - ../slots/has_or_had_score - - ../slots/has_or_had_service - - ../slots/has_or_had_type - - ../slots/is_or_was_classified_as - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_founded_through - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/has_accessibility_feature + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_price + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_service + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/classified_as + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/founded_through + - ../slots/20260202_matang/generated_by - ../slots/michelin_star - ../slots/opening_hour - ../slots/operator @@ -39,8 +39,8 @@ classes: is_a: ReconstructedEntity class_uri: schema:FoodEstablishment description: "Catering facility, caf\xE9, or restaurant operated at a heritage custodian venue.\n\n**DEFINITION**:\n\nA CateringPlace is a food and beverage facility operated at or by a heritage\ncustodian. This includes museum caf\xE9s, archive tea rooms, library cafeterias,\nand other dining facilities that serve visitors and staff. May also include\nhistoric restaurants or caf\xE9s that are themselves heritage institutions.\n\n**SCHEMA.ORG ALIGNMENT**:\n\n`schema:FoodEstablishment` - \"A food-related business.\"\n\nSubclasses include:\n- `schema:CafeOrCoffeeShop` - Caf\xE9 or coffee shop\n- `schema:Restaurant` - Full-service restaurant\n\n**WIKIDATA TYPE LINKAGE (TasteScentHeritageTypeEnum Subset)**:\n\nFor heritage catering venues with cultural significance, can be classified\nusing TasteScentHeritageTypeEnum (15 types):\n\n- Q11707 (restaurant) - General restaurant\n- Q30022 (caf\xE9) - Coffee shop/caf\xE9\n- Q1569167 (tearoom) - Tea room\n- Q5765838 (historic restaurant) - Restaurant\ - \ with heritage value\n\n**DISTINCTION FROM GiftShop**:\n\n| Type | Primary Function | Products |\n|------|------------------|----------|\n| **CateringPlace** | Food and beverage | Meals, drinks, snacks |\n| GiftShop | Retail merchandise | Souvenirs, books, gifts |\n\n**TYPES OF CATERING PLACES**:\n\n1. **Museum Caf\xE9**: Casual refreshments for visitors\n2. **Museum Restaurant**: Full-service dining\n3. **Historic Caf\xE9**: Caf\xE9 that is itself heritage (e.g., literary caf\xE9)\n4. **Staff Canteen**: Staff dining facility\n5. **Event Catering**: Function/event catering space\n6. **Terrace/Garden Caf\xE9**: Outdoor dining\n\n**USE CASES**:\n\n1. **Museum Restaurant**:\n ```yaml\n CateringPlace:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/rijksmuseum-restaurant\"\n has_or_had_label:\n label_text: \"RIJKS Restaurant\"\n catering_type: RESTAURANT\n cuisine_type: \"Modern Dutch fine dining\"\n has_michelin_star: true\n ```\n\n2. **Archive\ - \ Caf\xE9**:\n ```yaml\n CateringPlace:\n has_or_had_label:\n label_text: \"Nationaal Archief Caf\xE9\"\n catering_type: CAFE\n serves_visitors_only: true\n ```\n\n3. **Historic Literary Caf\xE9**:\n ```yaml\n CateringPlace:\n has_or_had_label:\n label_text: \"Caf\xE9 Americain\"\n catering_type: HISTORIC_CAFE\n heritage_type_classification: HISTORIC_RESTAURANT\n founded_year: 1902\n ```\n" + \ with heritage value\n\n**DISTINCTION FROM GiftShop**:\n\n| Type | Primary Function | Products |\n|------|------------------|----------|\n| **CateringPlace** | Food and beverage | Meals, drinks, snacks |\n| GiftShop | Retail merchandise | Souvenirs, books, gifts |\n\n**TYPES OF CATERING PLACES**:\n\n1. **Museum Caf\xE9**: Casual refreshments for visitors\n2. **Museum Restaurant**: Full-service dining\n3. **Historic Caf\xE9**: Caf\xE9 that is itself heritage (e.g., literary caf\xE9)\n4. **Staff Canteen**: Staff dining facility\n5. **Event Catering**: Function/event catering space\n6. **Terrace/Garden Caf\xE9**: Outdoor dining\n\n**USE CASES**:\n\n1. **Museum Restaurant**:\n ```yaml\n CateringPlace:\n identified_by: \"https://nde.nl/ontology/hc/aux/rijksmuseum-restaurant\"\n has_label:\n label_text: \"RIJKS Restaurant\"\n catering_type: RESTAURANT\n cuisine_type: \"Modern Dutch fine dining\"\n has_michelin_star: true\n ```\n\n2. **Archive\ + \ Caf\xE9**:\n ```yaml\n CateringPlace:\n has_label:\n label_text: \"Nationaal Archief Caf\xE9\"\n catering_type: CAFE\n serves_visitors_only: true\n ```\n\n3. **Historic Literary Caf\xE9**:\n ```yaml\n CateringPlace:\n has_label:\n label_text: \"Caf\xE9 Americain\"\n catering_type: HISTORIC_CAFE\n heritage_type_classification: HISTORIC_RESTAURANT\n founded_year: 1902\n ```\n" exact_mappings: - schema:FoodEstablishment close_mappings: @@ -52,16 +52,16 @@ classes: - wd:Q11707 - wd:Q30022 slots: - - has_or_had_accessibility_feature - - has_or_had_description - - has_or_had_identifier - - has_or_had_label - - has_or_had_price - - has_or_had_type + - has_accessibility_feature + - has_description + - identified_by + - has_label + - has_price + - has_type - cuisine_type - - is_or_was_founded_through - - has_or_had_service - - is_or_was_classified_as + - founded_through + - has_service + - classified_as - michelin_star - opening_hour - operator @@ -70,17 +70,17 @@ classes: - seating_capacity - serves_staff - serves_visitors_only - - has_or_had_score - - is_or_was_derived_from - - is_or_was_generated_by + - has_score + - derived_from + - generated_by slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/rijksmuseum-restaurant - has_or_had_label: + has_label: # range: string inlined: false # Fixed invalid inline for primitive type required: true @@ -91,27 +91,27 @@ classes: label_text: "Nationaal Archief Caf\xE9" - value: label_text: "Van Gogh Museum Caf\xE9" - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: Michelin-starred restaurant serving modern Dutch cuisine using seasonal ingredients. Located in the museum's atrium with views of the garden. - has_or_had_type: + has_type: range: CateringType required: true inlined: true examples: - value: - has_or_had_name: Restaurant + has_name: Restaurant - value: - has_or_had_name: "Caf\xE9" - is_or_was_classified_as: + has_name: "Caf\xE9" + classified_as: range: HeritageType required: false examples: - value: - has_or_had_label: HISTORIC_RESTAURANT + has_label: HISTORIC_RESTAURANT cuisine_type: # range: string examples: @@ -122,7 +122,7 @@ classes: range: integer examples: - value: 80 - has_or_had_service: + has_service: range: boolean examples: - value: true @@ -154,24 +154,24 @@ classes: maximum_value: 3 examples: - value: 1 - has_or_had_price: + has_price: range: Price inlined: true examples: - value: - has_or_had_value: "\u20AC\u20AC\u20AC\u20AC" - has_or_had_type: - has_or_had_name: Luxury - has_or_had_description: "Over \u20AC60 per person" + has_value: "\u20AC\u20AC\u20AC\u20AC" + has_type: + has_name: Luxury + has_description: "Over \u20AC60 per person" - value: - has_or_had_value: "\u20AC\u20AC" - has_or_had_type: - has_or_had_name: Moderate + has_value: "\u20AC\u20AC" + has_type: + has_name: Moderate - value: - has_or_had_value: "\u20AC" - has_or_had_type: - has_or_had_name: Budget - has_or_had_accessibility_feature: + has_value: "\u20AC" + has_type: + has_name: Budget + has_accessibility_feature: # range: string multivalued: true examples: @@ -182,7 +182,7 @@ classes: examples: - value: Vermaat Groep - value: In-house - is_or_was_founded_through: + founded_through: range: FoundingEvent inlined: true examples: @@ -190,11 +190,11 @@ classes: temporal_extent: begin_of_the_begin: '1902-01-01' end_of_the_begin: '1902-12-31' - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false comments: @@ -209,67 +209,67 @@ classes: - https://schema.org/CafeOrCoffeeShop examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/rijksmuseum-restaurant - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/rijksmuseum-restaurant + has_label: label_text: RIJKS Restaurant - has_or_had_description: + has_description: description_text: Michelin-starred restaurant serving modern Dutch cuisine. Located in museum atrium with garden views. - has_or_had_type: - has_or_had_name: Restaurant + has_type: + has_name: Restaurant cuisine_type: Modern Dutch fine dining seating_capacity: 80 - has_or_had_service: true + has_service: true outdoor_seating_capacity: 30 opening_hour: Tu-Su 12:00-15:00, 18:00-22:00 serves_visitors_only: false reservation_required: true michelin_star: 1 - has_or_had_price: - has_or_had_value: "\u20AC\u20AC\u20AC\u20AC" - has_or_had_type: - has_or_had_name: Luxury + has_price: + has_value: "\u20AC\u20AC\u20AC\u20AC" + has_type: + has_name: Luxury operator: Vermaat Groep - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/na-cafe - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/na-cafe + has_label: label_text: "Nationaal Archief Caf\xE9" - has_or_had_description: + has_description: description_text: "Casual caf\xE9 for archive visitors. Light lunches, coffee, and pastries." - has_or_had_type: - has_or_had_name: "Caf\xE9" + has_type: + has_name: "Caf\xE9" cuisine_type: "Caf\xE9 fare, sandwiches, soups" seating_capacity: 40 opening_hour: Tu-Fr 09:30-16:30 serves_visitors_only: true reservation_required: false - has_or_had_price: - has_or_had_value: "\u20AC" - has_or_had_type: - has_or_had_name: Budget - has_or_had_accessibility_feature: + has_price: + has_value: "\u20AC" + has_type: + has_name: Budget + has_accessibility_feature: - Wheelchair accessible - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/cafe-americain - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/cafe-americain + has_label: label_text: "Caf\xE9 Americain" - has_or_had_description: + has_description: description_text: "Historic art deco caf\xE9 dating from 1902. Literary landmark and protected monument." - has_or_had_type: - has_or_had_name: "Historic Caf\xE9" - is_or_was_classified_as: - has_or_had_label: HISTORIC_RESTAURANT + has_type: + has_name: "Historic Caf\xE9" + classified_as: + has_label: HISTORIC_RESTAURANT cuisine_type: International brasserie seating_capacity: 150 - has_or_had_service: true + has_service: true opening_hour: Daily 07:00-23:00 - is_or_was_founded_through: + founded_through: temporal_extent: begin_of_the_begin: '1902-01-01' end_of_the_begin: '1902-12-31' - has_or_had_price: - has_or_had_value: "\u20AC\u20AC\u20AC" - has_or_had_type: - has_or_had_name: Upscale + has_price: + has_value: "\u20AC\u20AC\u20AC" + has_type: + has_name: Upscale annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CateringType.yaml b/schemas/20251121/linkml/modules/classes/CateringType.yaml index 068e8637c6..997434be65 100644 --- a/schemas/20251121/linkml/modules/classes/CateringType.yaml +++ b/schemas/20251121/linkml/modules/classes/CateringType.yaml @@ -23,8 +23,8 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_name default_prefix: hc classes: CateringType: @@ -32,12 +32,12 @@ classes: abstract: true description: "Abstract base class for types of catering facilities.\n\nCatering type categories:\n- Caf\xE9/Coffee Shop\n- Restaurant\n- Tea Room\n- Canteen/Cafeteria\n- Terrace/Garden Caf\xE9\n- Historic Caf\xE9\n- Event Catering\n" slots: - - has_or_had_name - - has_or_had_description + - has_name + - has_description slot_usage: - has_or_had_name: + has_name: required: true - has_or_had_description: + has_description: exact_mappings: - skos:Concept close_mappings: diff --git a/schemas/20251121/linkml/modules/classes/CateringTypes.yaml b/schemas/20251121/linkml/modules/classes/CateringTypes.yaml index ce7df334ee..63318b28f3 100644 --- a/schemas/20251121/linkml/modules/classes/CateringTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/CateringTypes.yaml @@ -31,7 +31,7 @@ prefixes: imports: - ./CateringType - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name default_prefix: hc classes: CafeCatering: @@ -40,7 +40,7 @@ classes: description: "Casual caf\xE9 or coffee shop offering beverages, light snacks,\ \ and pastries.\nTypically self-service or counter-service with informal seating.\n" slot_usage: - has_or_had_name: + has_name: equals_string: "Caf\xE9" exact_mappings: - schema:CafeOrCoffeeShop @@ -64,7 +64,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Restaurant exact_mappings: - schema:Restaurant @@ -85,7 +85,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Tea Room aliases: - Tea Salon @@ -104,7 +104,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Canteen aliases: - Cafeteria @@ -120,7 +120,7 @@ classes: description: "Outdoor or garden caf\xE9, typically seasonal, offering refreshments\n\ in a garden, courtyard, or terrace setting.\n" slot_usage: - has_or_had_name: + has_name: equals_string: Terrace aliases: - "Garden Caf\xE9" @@ -137,7 +137,7 @@ classes: \ a protected monument or literary landmark in its own right.\nExamples: Caf\xE9\ \ Americain, Caf\xE9 de Flore, Caf\xE9 Central.\n" slot_usage: - has_or_had_name: + has_name: equals_string: "Historic Caf\xE9" aliases: - "Heritage Caf\xE9" @@ -156,7 +156,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Event Catering aliases: - Function Catering diff --git a/schemas/20251121/linkml/modules/classes/CathedralArchive.yaml b/schemas/20251121/linkml/modules/classes/CathedralArchive.yaml index f794738c9b..4297bc002e 100644 --- a/schemas/20251121/linkml/modules/classes/CathedralArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/CathedralArchive.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: CathedralArchive: diff --git a/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetType.yaml index 8a14e7a459..041a4a319f 100644 --- a/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetType.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: CathedralArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by CathedralArchive custodians. @@ -15,14 +15,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - CathedralArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetTypes.yaml index eded0f76c3..b7be37f4e2 100644 --- a/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./CathedralArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - CathedralArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ChapterRecordsFonds @@ -78,15 +78,15 @@ classes: - CathedralArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: LiturgicalDocumentCollection @@ -115,15 +115,15 @@ classes: - CathedralArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: FabricRecordsSeries diff --git a/schemas/20251121/linkml/modules/classes/CauseOfDeath.yaml b/schemas/20251121/linkml/modules/classes/CauseOfDeath.yaml index 0664e8f563..137f1d2fee 100644 --- a/schemas/20251121/linkml/modules/classes/CauseOfDeath.yaml +++ b/schemas/20251121/linkml/modules/classes/CauseOfDeath.yaml @@ -18,31 +18,31 @@ imports: - linkml:types - ../enums/CauseOfDeathTypeEnum - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_location - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_location + - ../slots/20260202_matang/has_type classes: CauseOfDeath: class_uri: hc:CauseOfDeath description: "Structured representation of the cause and circumstances of a person's death.\n\n**Purpose**:\nCaptures structured information about how and why a person died:\n- **Type**: Category of death (natural, conflict, accident, etc.)\n- **Location**: Where the death occurred\n- **Description**: Narrative details and context\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `hc:CauseOfDeath` - Heritage Custodian class\n- **Related**: Wikidata P1196 (manner of death) - semantic equivalent\n- **Related**: `schema:causeOfDeath` - Schema.org (MedicalCause context)\n\n**Heritage Sector Context**:\nParticularly important for documenting deaths of heritage workers due to:\n- **CONFLICT**: Armed conflict, airstrikes, military operations\n- **TARGETED_ATTACK**: Violence specifically targeting cultural workers\n- **OCCUPATIONAL**: Hazards from heritage work (conservation chemicals, etc.)\n- **NATURAL**: Age, illness, medical conditions\n- **ACCIDENT**: Non-occupational accidents\n\ - - **PERSECUTION**: Targeting due to identity or beliefs\n\n**Example - Conflict Death**:\n```yaml\nis_or_was_caused_by:\n cause_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on residential building in Gaza City.\n The attack occurred during the 2023-2024 Israeli military operations.\n has_or_had_location:\n city: Gaza City\n country: PS\n```\n\n**Sensitivity Guidelines**:\n- Handle with respect and dignity\n- Verify facts from authoritative sources before documenting\n- Consult with family or institution when possible\n- Follow journalistic standards for reporting deaths\n- Link to source documentation (news reports, institutional records)\n" + - **PERSECUTION**: Targeting due to identity or beliefs\n\n**Example - Conflict Death**:\n```yaml\ncaused_by:\n cause_type: CONFLICT\n has_description: |\n Killed in Israeli airstrike on residential building in Gaza City.\n The attack occurred during the 2023-2024 Israeli military operations.\n has_location:\n city: Gaza City\n country: PS\n```\n\n**Sensitivity Guidelines**:\n- Handle with respect and dignity\n- Verify facts from authoritative sources before documenting\n- Consult with family or institution when possible\n- Follow journalistic standards for reporting deaths\n- Link to source documentation (news reports, institutional records)\n" exact_mappings: - wd:P1196 slots: - - has_or_had_type - - has_or_had_description - - has_or_had_location + - has_type + - has_description + - has_location slot_usage: - has_or_had_type: + has_type: range: CauseOfDeathTypeEnum description: 'The category/type of death cause. Uses CauseOfDeathTypeEnum values: NATURAL, CONFLICT, TARGETED_ATTACK, OCCUPATIONAL, ACCIDENT, PERSECUTION, UNKNOWN. ' - has_or_had_description: + has_description: # range: string - has_or_had_location: + has_location: # range: string inlined: false # Fixed invalid inline for primitive type comments: diff --git a/schemas/20251121/linkml/modules/classes/CeaseEvent.yaml b/schemas/20251121/linkml/modules/classes/CeaseEvent.yaml index f78d41b043..81a052791c 100644 --- a/schemas/20251121/linkml/modules/classes/CeaseEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/CeaseEvent.yaml @@ -15,15 +15,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: CeaseEvent: class_uri: prov:Invalidation slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CeasingEvent.yaml b/schemas/20251121/linkml/modules/classes/CeasingEvent.yaml index 08e6581384..fbc5b3be36 100644 --- a/schemas/20251121/linkml/modules/classes/CeasingEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/CeasingEvent.yaml @@ -16,9 +16,9 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/is_or_was_observed_by + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/observed_by - ../slots/temporal_extent classes: CeasingEvent: @@ -27,9 +27,9 @@ classes: - crm:E64_End_of_Existence description: An event marking cessation. slots: - - has_or_had_label - - has_or_had_description - - is_or_was_observed_by + - has_label + - has_description + - observed_by - temporal_extent annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/CertaintyLevel.yaml b/schemas/20251121/linkml/modules/classes/CertaintyLevel.yaml index 4b55b8ec55..9b75ca5abc 100644 --- a/schemas/20251121/linkml/modules/classes/CertaintyLevel.yaml +++ b/schemas/20251121/linkml/modules/classes/CertaintyLevel.yaml @@ -15,8 +15,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_note - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_score - ../slots/level_value classes: CertaintyLevel: @@ -47,8 +47,8 @@ classes: - Identification confidence (person/place identification) **Replaces** (per slot_fixes.yaml): - - `certainty_level` (string) → has_or_had_level with CertaintyLevel class - - `certainty_note` (string) → has_or_had_note with Note class (within CertaintyLevel) + - `certainty_level` (string) → has_level with CertaintyLevel class + - `certainty_note` (string) → has_note with Note class (within CertaintyLevel) exact_mappings: - rico:ConfidenceLevel @@ -59,8 +59,8 @@ classes: slots: - level_value - - has_or_had_note - - has_or_had_score + - has_note + - has_score slot_usage: level_value: @@ -71,7 +71,7 @@ classes: - value: PROBABLE - value: POSSIBLE - value: UNCERTAIN - has_or_had_note: + has_note: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type @@ -96,18 +96,18 @@ classes: examples: - value: | level_value: CERTAIN - has_or_had_note: + has_note: - note_type: certainty note_content: "Confirmed by sale catalogue and receipt" note_date: "2025-06-15" - value: | level_value: PROBABLE - has_or_had_note: + has_note: - note_type: certainty note_content: "Van Ruijven was Vermeer's patron; likely acquired directly from artist" - value: | level_value: UNCERTAIN - has_or_had_note: + has_note: - note_type: certainty note_content: "Provenance gap 1933-1945 requires further research" - note_type: certainty diff --git a/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationMetadata.yaml b/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationMetadata.yaml index dd16bbcaae..4d23c5b4c9 100644 --- a/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationMetadata.yaml +++ b/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationMetadata.yaml @@ -16,7 +16,7 @@ prefixes: org: http://www.w3.org/ns/org# imports: - linkml:types - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/generated_by # default_range: string classes: ChAnnotatorAnnotationMetadata: @@ -34,9 +34,9 @@ classes: - prov:Entity - schema:Rating slots: - - is_or_was_generated_by + - generated_by slot_usage: - is_or_was_generated_by: + generated_by: range: GenerationEvent required: false inlined: true @@ -44,11 +44,11 @@ classes: MIGRATED 2026-01-19: Replaces confidence_score slot with structured pattern.' examples: - value: - has_or_had_score: - has_or_had_score: 0.92 - has_or_had_method: annotation_validation + has_score: + has_score: 0.92 + has_method: annotation_validation comments: - - 'MIGRATED 2026-01-19: confidence_score → is_or_was_generated_by + ConfidenceScore' + - 'MIGRATED 2026-01-19: confidence_score → generated_by + ConfidenceScore' annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClaim.yaml b/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClaim.yaml index 1a18814de9..6938a8ed62 100644 --- a/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClaim.yaml +++ b/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClaim.yaml @@ -16,7 +16,7 @@ prefixes: org: http://www.w3.org/ns/org# imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type # default_range: string classes: ChAnnotatorEntityClaim: @@ -34,9 +34,9 @@ classes: - prov:Entity - schema:PropertyValue slots: - - has_or_had_type + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie inlined: false # Fixed invalid inline for primitive type required: true diff --git a/schemas/20251121/linkml/modules/classes/ChurchArchive.yaml b/schemas/20251121/linkml/modules/classes/ChurchArchive.yaml index 49a3275586..a80a8a376f 100644 --- a/schemas/20251121/linkml/modules/classes/ChurchArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/ChurchArchive.yaml @@ -5,8 +5,8 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope + - ../slots/identified_by + - ../slots/20260202_matang/has_scope - ../slots/hold_or_held_record_set_type classes: ChurchArchive: @@ -84,10 +84,10 @@ classes: ' slots: - - has_or_had_identifier + - identified_by - hold_or_held_record_set_type slot_usage: - has_or_had_identifier: null + identified_by: null hold_or_held_record_set_type: equals_expression: '["hc:ChurchGovernanceFonds", "hc:ParishRegisterSeries", "hc:PastoralCorrespondenceCollection", "hc:ChurchPropertyFonds", "hc:CongregationalLifeCollection"] diff --git a/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetType.yaml index 8e254e9675..e5d7d71064 100644 --- a/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetType.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to classes: ChurchArchiveRecordSetType: abstract: true @@ -29,10 +29,10 @@ classes: - ChurchPropertyFonds - CongregationalLifeCollection slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HolySacredSiteType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetTypes.yaml index e541378437..682ee81a96 100644 --- a/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./ChurchArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/legal_note - ../slots/organizational_principle - ../slots/organizational_principle_uri @@ -75,8 +75,8 @@ classes: - ChurchArchive - DiocesanArchive slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -84,7 +84,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HolySacredSiteType"]' record_set_type: equals_string: ChurchGovernanceFonds @@ -170,8 +170,8 @@ classes: and archives. Often available through portals like FamilySearch, Ancestry, WieWasWie. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -179,7 +179,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HolySacredSiteType"]' record_set_type: equals_string: ParishRegisterSeries @@ -252,8 +252,8 @@ classes: - rico-rst:Fonds - FacultyPaperCollection slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - privacy_note @@ -262,7 +262,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HolySacredSiteType", "hc:LibraryType"]' record_set_type: @@ -335,8 +335,8 @@ classes: - rico:RecordSetType - rico-rst:Fonds slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - legal_note - organizational_principle - organizational_principle_uri @@ -345,7 +345,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HolySacredSiteType"]' record_set_type: equals_string: ChurchPropertyFonds @@ -422,8 +422,8 @@ classes: collection_nature_note: Often includes artificial/assembled collections. Materials reflect the lived religious experience of the community beyond formal administration. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -431,7 +431,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HolySacredSiteType", "hc:HeritageSocietyType"]' record_set_type: diff --git a/schemas/20251121/linkml/modules/classes/ChurchArchiveSweden.yaml b/schemas/20251121/linkml/modules/classes/ChurchArchiveSweden.yaml index 51f60b4993..4628b28ef3 100644 --- a/schemas/20251121/linkml/modules/classes/ChurchArchiveSweden.yaml +++ b/schemas/20251121/linkml/modules/classes/ChurchArchiveSweden.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: ChurchArchiveSweden: diff --git a/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetType.yaml index 605681b36a..7da22dd3de 100644 --- a/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetType.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: ChurchArchiveSwedenRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ChurchArchiveSweden custodians. @@ -15,14 +15,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - ChurchArchiveSweden - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetTypes.yaml index 5d0941d07f..c1477a56c9 100644 --- a/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./ChurchArchiveSwedenRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - ChurchArchiveSwedenRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: SwedishParishRecordSeries @@ -81,15 +81,15 @@ classes: - rico:RecordSetType - ChurchPropertyFonds slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: SwedishChurchPropertyFonds diff --git a/schemas/20251121/linkml/modules/classes/Cinematheque.yaml b/schemas/20251121/linkml/modules/classes/Cinematheque.yaml index f58e993901..aeaa541308 100644 --- a/schemas/20251121/linkml/modules/classes/Cinematheque.yaml +++ b/schemas/20251121/linkml/modules/classes/Cinematheque.yaml @@ -3,8 +3,8 @@ name: Cinematheque title: Cinematheque Type imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: Cinematheque: is_a: ArchiveOrganizationType @@ -12,11 +12,11 @@ classes: description: "Organization responsible for preserving, restoring, and exhibiting\ncinematographic heritage including films, related materials, and\nfilm history documentation.\n\n**Wikidata**: Q1352795\n\n**CUSTODIAN-ONLY**: This type does NOT have a corresponding rico:RecordSetType\nclass. Cinematheques are institutions with complex functions beyond\nsimple collection classification.\n\n**Scope**:\nCinematheques (Kinematheken/filmotecas) provide:\n- Film preservation and restoration\n- Film exhibition and screening programs\n- Film library and documentation services\n- Educational programs and retrospectives\n- Research facilities for film scholars\n- Equipment preservation (projectors, cameras)\n\n**Institutional Functions**:\nUnlike simple archives, cinematheques combine:\n- Archive function (preservation)\n- Museum function (exhibition)\n- Library function (documentation)\n- Theater function (screenings)\n- Educational function (programs)\n\n**Related Types**:\n- FilmArchive (Q726929)\ \ - Film preservation focus\n- AudiovisualArchive (Q27030766) - Broader AV materials\n- MediaArchive (Q116809817) - Media preservation\n\n**Notable Examples**:\n- Cin\xE9math\xE8que fran\xE7aise (Paris)\n- Filmoteca Espa\xF1ola (Madrid)\n- Cinemateca Brasileira (S\xE3o Paulo)\n- Deutsche Kinemathek (Berlin)\n- Eye Filmmuseum (Amsterdam)\n\n**FIAF Membership**:\nMany cinematheques are members of FIAF (International Federation\nof Film Archives), the primary professional body for film archives.\n" slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/City.yaml b/schemas/20251121/linkml/modules/classes/City.yaml index 37b715bd3b..20925c4216 100644 --- a/schemas/20251121/linkml/modules/classes/City.yaml +++ b/schemas/20251121/linkml/modules/classes/City.yaml @@ -50,7 +50,7 @@ classes: **EXAMPLES**: ```yaml - is_or_was_located_in: + located_in: - settlement_name: "Amsterdam" geonames_id: 2759794 country: "NL" @@ -71,9 +71,9 @@ classes: # - latitude # - longitude # - country - # - has_or_had_geographic_subdivision (subregion) + # - has_geographic_subdivision (subregion) # - specificity_annotation - # - has_or_had_score + # - has_score annotations: specificity_score: 0.35 @@ -90,7 +90,7 @@ classes: settlement_name: "Amsterdam" geonames_id: 2759794 country: "NL" - has_or_had_geographic_subdivision: + has_geographic_subdivision: subregion_code: "NL-NH" description: Amsterdam - capital and largest city of the Netherlands diff --git a/schemas/20251121/linkml/modules/classes/ClaimType.yaml b/schemas/20251121/linkml/modules/classes/ClaimType.yaml index 17e5ca8a4d..069c6fd5a4 100644 --- a/schemas/20251121/linkml/modules/classes/ClaimType.yaml +++ b/schemas/20251121/linkml/modules/classes/ClaimType.yaml @@ -9,8 +9,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: ClaimType: @@ -23,12 +23,12 @@ classes: - dcterms:type - schema:PropertyValueSpecification slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description slot_usage: - has_or_had_label: + has_label: required: true - has_or_had_description: + has_description: annotations: specificity_score: '0.65' specificity_rationale: Claim types are moderately specific - useful for web extraction workflows but not universally applicable to all heritage queries. @@ -43,8 +43,8 @@ classes: - WebClaim.yaml examples: - value: - has_or_had_label: full_name - has_or_had_description: 'Official full name of the organization. Expected in: <title>, <h1>, logo text, og:title' + has_label: full_name + has_description: 'Official full name of the organization. Expected in: <title>, <h1>, logo text, og:title' - value: - has_or_had_label: email - has_or_had_description: 'Contact email address. Expected in: <a href=''mailto:...''>, contact page, footer' \ No newline at end of file + has_label: email + has_description: 'Contact email address. Expected in: <a href=''mailto:...''>, contact page, footer' \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Classification.yaml b/schemas/20251121/linkml/modules/classes/Classification.yaml index 96f1c156ac..ea5e2e4df5 100644 --- a/schemas/20251121/linkml/modules/classes/Classification.yaml +++ b/schemas/20251121/linkml/modules/classes/Classification.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: Classification: class_uri: skos:Concept @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_label + - has_label diff --git a/schemas/20251121/linkml/modules/classes/ClassificationStatus.yaml b/schemas/20251121/linkml/modules/classes/ClassificationStatus.yaml index 6482f07812..c5611c34f3 100644 --- a/schemas/20251121/linkml/modules/classes/ClassificationStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/ClassificationStatus.yaml @@ -9,8 +9,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_type - ../slots/temporal_extent default_prefix: hc classes: @@ -39,10 +39,10 @@ classes: ```yaml ClassificationStatus: - has_or_had_type: + has_type: type: AmbiguousStatus - has_or_had_label: "Ambiguous" - has_or_had_description: "Sources conflict: museum (website) vs archive (ISIL registry)" + has_label: "Ambiguous" + has_description: "Sources conflict: museum (website) vs archive (ISIL registry)" temporal_extent: begin_of_the_begin: "2026-01-19T00:00:00Z" ``` @@ -55,20 +55,20 @@ classes: close_mappings: - schema:StatusEnumeration slots: - - has_or_had_type - - has_or_had_description + - has_type + - has_description - temporal_extent slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie required: true inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_label: "Indeterminate" + has_label: "Indeterminate" - value: - has_or_had_label: "Ambiguous" - has_or_had_description: + has_label: "Ambiguous" + has_description: # range: string required: true examples: @@ -89,18 +89,18 @@ classes: examples: - value: | ClassificationStatus: - has_or_had_type: - has_or_had_label: "Indeterminate" - has_or_had_description: "Type indeterminate - insufficient evidence. Defunct organization, minimal records." + has_type: + has_label: "Indeterminate" + has_description: "Type indeterminate - insufficient evidence. Defunct organization, minimal records." - value: | ClassificationStatus: - has_or_had_type: - has_or_had_label: "Ambiguous" - has_or_had_description: "Sources conflict: museum (website) vs archive (ISIL registry)" + has_type: + has_label: "Ambiguous" + has_description: "Sources conflict: museum (website) vs archive (ISIL registry)" temporal_extent: begin_of_the_begin: "2026-01-19T00:00:00Z" - value: | ClassificationStatus: - has_or_had_type: - has_or_had_label: "Transitional" - has_or_had_description: "Merger in progress between museum and archive, final type TBD" \ No newline at end of file + has_type: + has_label: "Transitional" + has_description: "Merger in progress between museum and archive, final type TBD" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/ClassificationStatusType.yaml b/schemas/20251121/linkml/modules/classes/ClassificationStatusType.yaml index 4ec099613b..e674fc780a 100644 --- a/schemas/20251121/linkml/modules/classes/ClassificationStatusType.yaml +++ b/schemas/20251121/linkml/modules/classes/ClassificationStatusType.yaml @@ -8,8 +8,8 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: ClassificationStatusType: @@ -44,8 +44,8 @@ classes: close_mappings: - crm:E55_Type slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: custodian_types: '["U"]' custodian_types_rationale: >- diff --git a/schemas/20251121/linkml/modules/classes/ClassificationType.yaml b/schemas/20251121/linkml/modules/classes/ClassificationType.yaml index e0288bd186..4e060ad657 100644 --- a/schemas/20251121/linkml/modules/classes/ClassificationType.yaml +++ b/schemas/20251121/linkml/modules/classes/ClassificationType.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: ClassificationType: class_uri: skos:Concept @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_label + - has_label diff --git a/schemas/20251121/linkml/modules/classes/Classroom.yaml b/schemas/20251121/linkml/modules/classes/Classroom.yaml index fb671c7bd3..fca1b08e45 100644 --- a/schemas/20251121/linkml/modules/classes/Classroom.yaml +++ b/schemas/20251121/linkml/modules/classes/Classroom.yaml @@ -9,8 +9,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_quantity - - ../slots/has_or_had_unit + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_unit - ../slots/seating_capacity classes: Classroom: @@ -18,24 +18,24 @@ classes: class_uri: schema:Classroom description: "A classroom facility at an education center or heritage institution.\n\ \n**RULE 53 MIGRATION**:\nReplaces the simple `classroom_count` integer slot\ - \ with a richer facility model:\n- `has_or_had_quantity` → number of classroom\ - \ spaces\n- `has_or_had_unit` → RoomUnit (specifies what is being counted)\n\ - \n**USAGE**:\n```yaml\nhas_or_had_facility:\n - facility_name: \"Classroom\ - \ Wing\"\n has_or_had_quantity:\n numeric_value: 4\n has_or_had_unit:\n\ + \ with a richer facility model:\n- `has_quantity` → number of classroom\ + \ spaces\n- `has_unit` → RoomUnit (specifies what is being counted)\n\ + \n**USAGE**:\n```yaml\nhas_facility:\n - facility_name: \"Classroom\ + \ Wing\"\n has_quantity:\n numeric_value: 4\n has_unit:\n\ \ unit_type: CLASSROOM\n```\n\n**CHARACTERISTICS**:\n- Dedicated teaching/learning\ \ space\n- Capacity for group instruction\n- May include AV equipment\n- Configurable\ \ seating arrangements\n" slots: - - has_or_had_quantity - - has_or_had_unit + - has_quantity + - has_unit - seating_capacity slot_usage: - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type examples: - value: 'numeric_value: 4 ' - has_or_had_unit: + has_unit: # range: string inlined: false # Fixed invalid inline for primitive type examples: @@ -56,12 +56,12 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_quantity: + has_quantity: numeric_value: 4 - has_or_had_unit: null + has_unit: null seating_capacity: 120 - value: - has_or_had_quantity: + has_quantity: numeric_value: 2 - has_or_had_unit: null + has_unit: null seating_capacity: 40 diff --git a/schemas/20251121/linkml/modules/classes/ClimateArchive.yaml b/schemas/20251121/linkml/modules/classes/ClimateArchive.yaml index 038656598f..0cce8c6f58 100644 --- a/schemas/20251121/linkml/modules/classes/ClimateArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/ClimateArchive.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: ClimateArchive: diff --git a/schemas/20251121/linkml/modules/classes/ClimateArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ClimateArchiveRecordSetType.yaml index 0cf3c63686..9fa5cc8d8b 100644 --- a/schemas/20251121/linkml/modules/classes/ClimateArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ClimateArchiveRecordSetType.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: ClimateArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ClimateArchive custodians. @@ -15,14 +15,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - ClimateArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ClimateArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/ClimateArchiveRecordSetTypes.yaml index 57e4bed4c9..c1dfb233e6 100644 --- a/schemas/20251121/linkml/modules/classes/ClimateArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ClimateArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./ClimateArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - ClimateArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ClimateDataCollection @@ -78,15 +78,15 @@ classes: - ClimateArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: MeteorologicalObservationSeries diff --git a/schemas/20251121/linkml/modules/classes/ClimateControl.yaml b/schemas/20251121/linkml/modules/classes/ClimateControl.yaml index 94c2a1d198..bd8b5b584d 100644 --- a/schemas/20251121/linkml/modules/classes/ClimateControl.yaml +++ b/schemas/20251121/linkml/modules/classes/ClimateControl.yaml @@ -13,9 +13,9 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type classes: ClimateControl: class_uri: aat:300264752 @@ -38,24 +38,24 @@ classes: 1. **Full HVAC System**: ```yaml ClimateControl: - has_or_had_label: "Main Gallery HVAC" - has_or_had_type: HVAC - has_or_had_description: + has_label: "Main Gallery HVAC" + has_type: HVAC + has_description: description_text: "Central HVAC with 24/7 monitoring, backup power" ``` 2. **Basic Heating**: ```yaml ClimateControl: - has_or_had_label: "Warehouse Heating" - has_or_had_type: HEATED + has_label: "Warehouse Heating" + has_type: HEATED ``` 3. **Dehumidification Only**: ```yaml ClimateControl: - has_or_had_label: "Photo Archive Dehumidifier" - has_or_had_type: DEHUMIDIFIED + has_label: "Photo Archive Dehumidifier" + has_type: DEHUMIDIFIED ``` **RELATIONSHIP TO ClimateControlType**: @@ -63,7 +63,7 @@ classes: ``` ClimateControl │ - └── has_or_had_type ──► ClimateControlType + └── has_type ──► ClimateControlType │ └── (HEATED, HVAC, DEHUMIDIFIED, NONE, etc.) ``` @@ -76,23 +76,23 @@ classes: - crm:E22_Human-Made_Object slots: - - has_or_had_label - - has_or_had_description - - has_or_had_type + - has_label + - has_description + - has_type slot_usage: - has_or_had_label: + has_label: # range: string required: false examples: - value: "Main Stack HVAC System" - value: "Depot B Climate Control" - has_or_had_description: + has_description: examples: - value: description_text: "Precision HVAC with temperature control ±1°C, humidity control ±3% RH. Redundant systems with automatic failover." description_type: technical - has_or_had_type: + has_type: # range: string # uriorcurie required: true examples: @@ -111,24 +111,24 @@ classes: comments: - "Represents climate control systems/equipment" - "Maps to Getty AAT 300264752" - - "Type classification via has_or_had_type → ClimateControlType" + - "Type classification via has_type → ClimateControlType" examples: - value: - has_or_had_label: "Rijksmuseum Collection Storage HVAC" - has_or_had_type: HVAC - has_or_had_description: + has_label: "Rijksmuseum Collection Storage HVAC" + has_type: HVAC + has_description: description_text: "Precision climate control with T=20±1°C, RH=50±3%. Redundant compressors, backup power, 24/7 monitoring." description_type: technical - value: - has_or_had_label: "Logistics Warehouse Heating" - has_or_had_type: HEATED - has_or_had_description: + has_label: "Logistics Warehouse Heating" + has_type: HEATED + has_description: description_text: "Basic gas heating to prevent freezing. No humidity control." description_type: technical - value: - has_or_had_label: "Photo Archive Dehumidifier" - has_or_had_type: DEHUMIDIFIED - has_or_had_description: + has_label: "Photo Archive Dehumidifier" + has_type: DEHUMIDIFIED + has_description: description_text: "Portable dehumidifier maintaining RH below 50%." description_type: technical \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/ClimateControlPolicy.yaml b/schemas/20251121/linkml/modules/classes/ClimateControlPolicy.yaml index cd4076388f..92011d0d46 100644 --- a/schemas/20251121/linkml/modules/classes/ClimateControlPolicy.yaml +++ b/schemas/20251121/linkml/modules/classes/ClimateControlPolicy.yaml @@ -15,8 +15,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label - ../slots/regulates_or_regulated classes: ClimateControlPolicy: @@ -41,8 +41,8 @@ classes: 1. **Preservation Environment Policy**: ```yaml ClimateControlPolicy: - has_or_had_label: "Archives Preservation Environment Standard" - has_or_had_description: + has_label: "Archives Preservation Environment Standard" + has_description: description_text: "Temperature 18-22°C, RH 45-55%, 24/7 monitoring" regulates_or_regulated: - ClimateControl: HVAC system for stack areas @@ -51,7 +51,7 @@ classes: 2. **Warehouse Climate Requirements**: ```yaml ClimateControlPolicy: - has_or_had_label: "Logistics Warehouse Climate Requirements" + has_label: "Logistics Warehouse Climate Requirements" regulates_or_regulated: - ClimateControl: Basic heating system ``` @@ -63,7 +63,7 @@ classes: │ ├── regulates_or_regulated ──► ClimateControl │ │ - │ └── has_or_had_type ──► ClimateControlType + │ └── has_type ──► ClimateControlType │ └── (may regulate multiple systems) ``` @@ -76,17 +76,17 @@ classes: - schema:Action slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description - regulates_or_regulated slot_usage: - has_or_had_label: + has_label: # range: string required: true examples: - value: "Archives Preservation Environment Standard" - has_or_had_description: + has_description: examples: - value: description_text: "Temperature must be maintained between 18-22°C with relative humidity 45-55%. Continuous monitoring required." @@ -97,8 +97,8 @@ classes: inlined_as_list: true examples: - value: - has_or_had_label: "Main Stack HVAC" - has_or_had_type: HVAC + has_label: "Main Stack HVAC" + has_type: HVAC annotations: custodian_types: '["A", "L", "M", "R"]' custodian_types_rationale: Climate policies primarily for archives, libraries, museums, and research centers with preservation needs. @@ -113,20 +113,20 @@ classes: examples: - value: - has_or_had_label: "Rijksmuseum Collection Storage Climate Policy" - has_or_had_description: + has_label: "Rijksmuseum Collection Storage Climate Policy" + has_description: description_text: "All collection storage areas must maintain temperature 20±2°C, RH 50±5%. HVAC failure triggers immediate response protocol." description_type: policy regulates_or_regulated: - - has_or_had_label: "Depot A HVAC System" - has_or_had_type: HVAC - - has_or_had_label: "Depot B HVAC System" - has_or_had_type: HVAC + - has_label: "Depot A HVAC System" + has_type: HVAC + - has_label: "Depot B HVAC System" + has_type: HVAC - value: - has_or_had_label: "Warehouse Basic Climate Requirements" - has_or_had_description: + has_label: "Warehouse Basic Climate Requirements" + has_description: description_text: "Non-collection warehouse areas must maintain temperature above freezing. Heating required October-April." description_type: policy regulates_or_regulated: - - has_or_had_label: "Logistics Warehouse Heating" - has_or_had_type: HEATED \ No newline at end of file + - has_label: "Logistics Warehouse Heating" + has_type: HEATED \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/ClimateControlType.yaml b/schemas/20251121/linkml/modules/classes/ClimateControlType.yaml index eea6590699..045a0f6a3f 100644 --- a/schemas/20251121/linkml/modules/classes/ClimateControlType.yaml +++ b/schemas/20251121/linkml/modules/classes/ClimateControlType.yaml @@ -12,9 +12,9 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/includes_or_included + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/include classes: ClimateControlType: class_uri: skos:Concept @@ -47,13 +47,13 @@ classes: **USE CASES**: - The ClimateControlType is used as the range for the `has_or_had_type` + The ClimateControlType is used as the range for the `has_type` slot in the ClimateControl class: ```yaml ClimateControl: - has_or_had_label: "Main Stack HVAC" - has_or_had_type: HVAC # ← ClimateControlType + has_label: "Main Stack HVAC" + has_type: HVAC # ← ClimateControlType ``` exact_mappings: @@ -62,22 +62,22 @@ classes: - aat:300264752 slots: - - has_or_had_label - - has_or_had_description - - includes_or_included + - has_label + - has_description + - include slot_usage: - has_or_had_label: + has_label: # range: string required: true examples: - value: "HVAC" - has_or_had_description: + has_description: examples: - value: description_text: "Full heating, ventilation, and air conditioning with temperature and humidity control." description_type: definition - includes_or_included: + include: range: ClimateControlType multivalued: true diff --git a/schemas/20251121/linkml/modules/classes/ClimateControlTypes.yaml b/schemas/20251121/linkml/modules/classes/ClimateControlTypes.yaml index fe6b1c0c33..990651eaf1 100644 --- a/schemas/20251121/linkml/modules/classes/ClimateControlTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ClimateControlTypes.yaml @@ -27,8 +27,8 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_label: HEATED - has_or_had_description: + has_label: HEATED + has_description: description_text: Heating only to prevent freezing. No humidity or cooling control. description: Basic heating type @@ -48,8 +48,8 @@ classes: preservation_suitability: High - suitable for sensitive collections examples: - value: - has_or_had_label: HVAC - has_or_had_description: + has_label: HVAC + has_description: description_text: Full heating, ventilation, and air conditioning with temperature and humidity control. description: Full HVAC type @@ -86,8 +86,8 @@ classes: preservation_suitability: Medium - protects against humidity damage examples: - value: - has_or_had_label: DEHUMIDIFIED - has_or_had_description: + has_label: DEHUMIDIFIED + has_description: description_text: Humidity control only - maintains RH below target threshold. description: Dehumidification type broad_mappings: @@ -121,8 +121,8 @@ classes: preservation_suitability: Medium-High - depends on precision examples: - value: - has_or_had_label: COOLED - has_or_had_description: + has_label: COOLED + has_description: description_text: Cooling only - maintains temperature below ambient in warm climates. description: Cooling-only type @@ -168,8 +168,8 @@ classes: preservation_suitability: Variable - depends on building characteristics examples: - value: - has_or_had_label: PASSIVE - has_or_had_description: + has_label: PASSIVE + has_description: description_text: Passive environmental control through building design, thermal mass, and natural ventilation. description: Passive control type @@ -209,8 +209,8 @@ classes: preservation_suitability: None - unsuitable for sensitive materials examples: - value: - has_or_had_label: NONE - has_or_had_description: + has_label: NONE + has_description: description_text: No climate control - ambient environmental conditions only. description: No climate control type diff --git a/schemas/20251121/linkml/modules/classes/Clipping.yaml b/schemas/20251121/linkml/modules/classes/Clipping.yaml index 392e02f55e..de750b7016 100644 --- a/schemas/20251121/linkml/modules/classes/Clipping.yaml +++ b/schemas/20251121/linkml/modules/classes/Clipping.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: Clipping: class_uri: schema:Clip description: Media clipping. slots: - - has_or_had_label + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CoFunding.yaml b/schemas/20251121/linkml/modules/classes/CoFunding.yaml index b1b65aee7f..b7100fcfea 100644 --- a/schemas/20251121/linkml/modules/classes/CoFunding.yaml +++ b/schemas/20251121/linkml/modules/classes/CoFunding.yaml @@ -10,14 +10,14 @@ prefixes: imports: - linkml:types - ../enums/MeasureUnitEnum - - ../slots/has_or_had_description - - ../slots/has_or_had_quantity - - ../slots/is_or_was_required + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/required default_prefix: hc classes: CoFunding: class_uri: schema:MonetaryAmount - description: "Co-funding or match funding requirement for a funding call or grant.\n\nCo-funding represents the financial contribution that an applicant must\nprovide alongside the grant funding. This may be expressed as:\n- A percentage of total project cost (e.g., 30% co-funding required)\n- A minimum absolute amount (e.g., \u20AC50,000 minimum co-funding)\n- In-kind contributions (staff time, facilities, equipment)\n\n**ONTOLOGY ALIGNMENT**:\n- schema:MonetaryAmount - For monetary co-funding amounts\n- schema:percentageValue - For percentage-based requirements\n\n**MIGRATION NOTE**:\nReplaces simple boolean `co_funding_required` slot with structured class\nthat captures co-funding amount, percentage, and type information.\n\n**USAGE**:\n- CallForApplication requires_or_required CoFunding\n- Grant has_or_had_cofunding CoFunding\n\n**EXAMPLES**:\n- Horizon Europe: 0% co-funding for academic partners (100% funding rate)\n- National Lottery Heritage Fund: 5-50% partnership funding required\n\ + description: "Co-funding or match funding requirement for a funding call or grant.\n\nCo-funding represents the financial contribution that an applicant must\nprovide alongside the grant funding. This may be expressed as:\n- A percentage of total project cost (e.g., 30% co-funding required)\n- A minimum absolute amount (e.g., \u20AC50,000 minimum co-funding)\n- In-kind contributions (staff time, facilities, equipment)\n\n**ONTOLOGY ALIGNMENT**:\n- schema:MonetaryAmount - For monetary co-funding amounts\n- schema:percentageValue - For percentage-based requirements\n\n**MIGRATION NOTE**:\nReplaces simple boolean `co_funding_required` slot with structured class\nthat captures co-funding amount, percentage, and type information.\n\n**USAGE**:\n- CallForApplication requires_or_required CoFunding\n- Grant has_cofunding CoFunding\n\n**EXAMPLES**:\n- Horizon Europe: 0% co-funding for academic partners (100% funding rate)\n- National Lottery Heritage Fund: 5-50% partnership funding required\n\ - Creative Europe: 40% co-funding required (60% EU contribution)\n" exact_mappings: - schema:MonetaryAmount @@ -27,22 +27,22 @@ classes: - schema:Grant - schema:FundingScheme slots: - - is_or_was_required - - has_or_had_description - - has_or_had_quantity + - required + - has_description + - has_quantity slot_usage: - is_or_was_required: + required: required: true range: boolean examples: - value: true - value: false - has_or_had_description: + has_description: # range: string examples: - value: 30% co-funding required; in-kind contributions accepted up to 10% - value: Partnership funding required ranging from 5% to 50% depending on grant size - has_or_had_quantity: + has_quantity: range: integer multivalued: true inlined: false # Fixed invalid inline for primitive type @@ -50,10 +50,10 @@ classes: description: "Quantified co-funding requirements expressed as:\n- Percentage (e.g., 30% of total project cost)\n- Minimum amount (e.g., \u20AC50,000)\n- Maximum amount (e.g., up to \u20AC1,000,000)\n" examples: - value: - has_or_had_measurement_unit: + has_measurement_unit: unit_label: '%' - value: - has_or_had_measurement_unit: + has_measurement_unit: unit_label: EUR comments: - Replaces simple co_funding_required boolean with structured class @@ -65,25 +65,25 @@ classes: - https://ec.europa.eu/research/participants/docs/h2020-funding-guide/grants/applying-for-funding/find-a-call/what-you-need-to-know_en.htm examples: - value: - is_or_was_required: true - has_or_had_description: 30% co-funding required for all project costs - has_or_had_quantity: + required: true + has_description: 30% co-funding required for all project costs + has_quantity: - quantity_value: 30 - has_or_had_measurement_unit: + has_measurement_unit: unit_label: '%' - value: - is_or_was_required: true - has_or_had_description: Partnership funding 5-50% depending on grant size; in-kind contributions permitted - has_or_had_quantity: + required: true + has_description: Partnership funding 5-50% depending on grant size; in-kind contributions permitted + has_quantity: - quantity_value: 5 - has_or_had_measurement_unit: + has_measurement_unit: unit_label: '%' - quantity_value: 50 - has_or_had_measurement_unit: + has_measurement_unit: unit_label: '%' - value: - is_or_was_required: false - has_or_had_description: 100% funding rate for academic and non-profit partners + required: false + has_description: 100% funding rate for academic and non-profit partners annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Code.yaml b/schemas/20251121/linkml/modules/classes/Code.yaml index e3d0a89f87..ac3debab25 100644 --- a/schemas/20251121/linkml/modules/classes/Code.yaml +++ b/schemas/20251121/linkml/modules/classes/Code.yaml @@ -15,15 +15,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: Code: class_uri: skos:Concept slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CollectingArchives.yaml b/schemas/20251121/linkml/modules/classes/CollectingArchives.yaml index b5996bf1a3..d0702571ec 100644 --- a/schemas/20251121/linkml/modules/classes/CollectingArchives.yaml +++ b/schemas/20251121/linkml/modules/classes/CollectingArchives.yaml @@ -5,18 +5,18 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: CollectingArchives: is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score + - has_score description: 'Archive that actively collects materials from multiple external sources rather than preserving records of its own parent organization. **Wikidata**: Q117246276 @@ -51,7 +51,7 @@ classes: - Deutsches Literaturarchiv Marbach ' slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/CollectingArchivesRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/CollectingArchivesRecordSetType.yaml index 07db3a000c..f496cf5873 100644 --- a/schemas/20251121/linkml/modules/classes/CollectingArchivesRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/CollectingArchivesRecordSetType.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: CollectingArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by CollectingArchives custodians. @@ -15,14 +15,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - CollectingArchives - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/CollectingArchivesRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/CollectingArchivesRecordSetTypes.yaml index 34bbf01a7d..73ea671b28 100644 --- a/schemas/20251121/linkml/modules/classes/CollectingArchivesRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/CollectingArchivesRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./CollectingArchivesRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - CollectingArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CollectedMaterialsFonds @@ -78,15 +78,15 @@ classes: - CollectingArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: DonatedPapersCollection diff --git a/schemas/20251121/linkml/modules/classes/Collection.yaml b/schemas/20251121/linkml/modules/classes/Collection.yaml index b2602b88d0..912fad7c94 100644 --- a/schemas/20251121/linkml/modules/classes/Collection.yaml +++ b/schemas/20251121/linkml/modules/classes/Collection.yaml @@ -18,19 +18,19 @@ default_prefix: hc imports: - linkml:types - ../slots/custodial_history - - ../slots/has_or_had_content - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_policy - - ../slots/has_or_had_provenance - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_acquired_through - - ../slots/is_or_was_categorized_as - - ../slots/is_or_was_instantiated_by - - ../slots/is_or_was_sub_collection_of + - ../slots/20260202_matang/has_content + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_policy + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/acquired_through + - ../slots/20260202_matang/categorized_as + - ../slots/20260202_matang/instantiated_by + - ../slots/20260202_matang/sub_collection_of - ../slots/item - ../slots/part_of_custodian_collection - ../slots/record_set_type @@ -40,7 +40,7 @@ classes: Collection: class_uri: rico:RecordSet description: "Specific, inventoried heritage holdings with fine-grained cataloguing detail.\n\n**CRITICAL DISTINCTION**:\n\n| CustodianCollection | Collection (THIS CLASS) |\n|---------------------|------------------------|\n| Abstract/nominal reference | Specific, catalogued holdings |\n| Entire collection of a Custodian | Individual fonds, series, or named collections |\n| Vague (\"the museum's collection\") | Precise (\"the Van Gogh correspondence collection\") |\n| Top-level container | Nested within CustodianCollection |\n| crm:E78_Curated_Holding | rico:RecordSet |\n\n1. **RiC-O (Records in Contexts)**:\n - `rico:RecordSet` - \"A record set is a group of record(s), made and/or assembled\n by one or more agent(s), characterized by a common provenance and/or by being\n received/maintained by the same custodian.\"\n - Enables: series, fonds, sub-fonds, sub-series hierarchies\n - Properties: rico:hasRecordSetType, rico:hasExtent, rico:hasTemporalCoverage\n\n2. **CIDOC-CRM**:\n\ - \ - Close mapping to crm:E78_Curated_Holding (at specific level)\n - crm:E24_Physical_Human-Made_Thing for physical collections\n\n3. **BIBFRAME**:\n - bf:Collection for library special collections\n - bf:Item for individual physical items within\n\n4. **Europeana Data Model**:\n - edm:ProvidedCHO for cultural heritage objects\n - edm:hasView for digital representations\n\n**HIERARCHICAL STRUCTURE**:\n\n```\nCustodian (hub)\n \u2502\n \u2514\u2500\u2500 CustodianCollection (aspect - abstract/nominal)\n \u2502\n \u2514\u2500\u2500 Collection (THIS CLASS - specific holdings)\n \u251C\u2500\u2500 CollectionType (classification)\n \u251C\u2500\u2500 AccessPolicy (access restrictions)\n \u251C\u2500\u2500 has_or_had_sub_collection \u2192 Collection[] (nested hierarchy)\n \u2502 \u2514\u2500\u2500 Collection (sub-fonds, series, etc.)\n \u2514\u2500\u2500 items \u2192 ExhibitedObject[] (individual\ + \ - Close mapping to crm:E78_Curated_Holding (at specific level)\n - crm:E24_Physical_Human-Made_Thing for physical collections\n\n3. **BIBFRAME**:\n - bf:Collection for library special collections\n - bf:Item for individual physical items within\n\n4. **Europeana Data Model**:\n - edm:ProvidedCHO for cultural heritage objects\n - edm:hasView for digital representations\n\n**HIERARCHICAL STRUCTURE**:\n\n```\nCustodian (hub)\n \u2502\n \u2514\u2500\u2500 CustodianCollection (aspect - abstract/nominal)\n \u2502\n \u2514\u2500\u2500 Collection (THIS CLASS - specific holdings)\n \u251C\u2500\u2500 CollectionType (classification)\n \u251C\u2500\u2500 AccessPolicy (access restrictions)\n \u251C\u2500\u2500 has_sub_collection \u2192 Collection[] (nested hierarchy)\n \u2502 \u2514\u2500\u2500 Collection (sub-fonds, series, etc.)\n \u2514\u2500\u2500 items \u2192 ExhibitedObject[] (individual\ \ objects)\n```\n\n**USE CASES**:\n\n1. **Archival Fonds**:\n ```yaml\n Collection:\n collection_name: \"Records of the Dutch East India Company (VOC)\"\n collection_type: FONDS\n record_set_type: rico:Fonds\n extent: \"1,250 linear meters\"\n temporal_coverage: \"1602-1799\"\n provenance: \"Dutch East India Company (VOC)\"\n ```\n\n2. **Museum Named Collection**:\n ```yaml\n Collection:\n collection_name: \"Drucker-Fraser Collection\"\n collection_type: NAMED_COLLECTION\n extent: \"125 artworks\"\n acquisition_method: \"Bequest (1937)\"\n access_policy: OPEN_ACCESS\n ```\n\n3. **Library Special Collection**:\n ```yaml\n Collection:\n collection_name: \"Medieval Manuscripts Collection\"\n collection_type: SPECIAL_COLLECTION\n bf_collection_type: bf:Collection\n extent: \"342 manuscripts, 12th-15th century\"\n temporal_coverage: \"1100-1500\"\n ```\n\n**PROVENANCE TRACKING**:\n\nCollection provenance is\ \ tracked through:\n- `provenance_statement` - Narrative provenance description\n- `custodial_history` - Chain of custody\n- `acquisition_method` - How acquired (purchase, donation, transfer, bequest)\n- `acquisition_date` - When acquired\n- `acquisition_source` - From whom acquired\n\n**ACCESS CONTROL**:\n\nCollections link to AccessPolicy for:\n- Open access (publicly available)\n- Restricted access (researchers only)\n- Closed access (temporary closure, embargo)\n- Partial access (portions available)\n" exact_mappings: @@ -52,47 +52,47 @@ classes: - edm:ProvidedCHO related_mappings: slots: - - is_or_was_acquired_through - - has_or_had_description - - has_or_had_identifier - - has_or_had_label - - is_or_was_categorized_as + - acquired_through + - has_description + - identified_by + - has_label + - categorized_as - custodial_history - - has_or_had_type - - is_or_was_instantiated_by - - has_or_had_quantity + - has_type + - instantiated_by + - has_quantity - item - - is_or_was_sub_collection_of + - sub_collection_of - part_of_custodian_collection - - has_or_had_provenance + - has_provenance - record_set_type - - has_or_had_score - - has_or_had_content + - has_score + - has_content - temporal_extent slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie inlined: false # Fixed invalid inline for primitive type required: true identifier: true - is_or_was_instantiated_by: + instantiated_by: range: DigitalInstantiation multivalued: true inlined: true examples: - value: - has_or_had_status: - has_or_had_label: PARTIAL - has_or_had_url: + has_status: + has_label: PARTIAL + has_url: url_value: https://www.nationaalarchief.nl/onderzoeken/archief/1.04.02/download - has_or_had_label: + has_label: range: Label inlined: true required: true examples: - value: - has_or_had_label: Records of the Dutch East India Company (VOC) - has_or_had_description: + has_label: Records of the Dutch East India Company (VOC) + has_description: # range: string inlined: false # Fixed invalid inline for primitive type required: false @@ -106,33 +106,33 @@ classes: # range: string # uriorcurie examples: - value: rico:Fonds - has_or_had_quantity: + has_quantity: range: integer examples: - value: 125 - has_or_had_content: + has_content: # range: string multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_label: VOC Trade Records + has_label: VOC Trade Records temporal_extent: begin_of_the_begin: '1602-01-01' end_of_the_end: '1799-12-31' - is_or_was_categorized_as: + categorized_as: # range: string # uriorcurie multivalued: true required: true examples: - value: https://nde.nl/ontology/hc/collection-type/fonds - has_or_had_provenance: + has_provenance: required: false range: Provenance inlined: true examples: - value: - has_or_had_description: + has_description: - description_text: The VOC archives were transferred to the Dutch state upon the company's dissolution in 1799. They were initially held by the Ministry of Colonies, then transferred to the Algemeen Rijksarchief (now Nationaal Archief) in 1856. description_type: provenance_statement custodial_history: @@ -144,23 +144,23 @@ classes: - Ministry of Colonies (1799-1856) - Algemeen Rijksarchief (1856-2002) - Nationaal Archief (2002-present) - is_or_was_acquired_through: + acquired_through: range: AcquisitionEvent multivalued: true inlined: true examples: - value: - has_or_had_origin: - has_or_had_label: Ministry of Colonies - has_or_had_method: - has_or_had_label: TRANSFER + has_origin: + has_label: Ministry of Colonies + has_method: + has_label: TRANSFER temporal_extent: begin_of_the_begin: '1856-01-01' - has_or_had_policy: + has_policy: # range: string examples: - value: https://nde.nl/ontology/hc/access-policy/open-access - is_or_was_sub_collection_of: + sub_collection_of: range: Collection examples: - value: https://nde.nl/ontology/hc/collection/nationaal-archief-voc-fonds @@ -183,7 +183,7 @@ classes: examples: - value: begin_of_the_begin: '1856-01-01' - has_or_had_type: + has_type: equals_expression: '["hc:GalleryType", "hc:LibraryType", "hc:ArchiveOrganizationType", "hc:MuseumType", "hc:BioCustodianType", "hc:HolySacredSiteType"]' comments: - Collection represents SPECIFIC, CATALOGUED holdings (not abstract nominal references) @@ -200,32 +200,32 @@ classes: - http://www.cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E78 examples: - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/collection/nationaal-archief-voc-fonds - has_or_had_label: - has_or_had_label: Records of the Dutch East India Company (VOC) - has_or_had_description: + has_label: + has_label: Records of the Dutch East India Company (VOC) + has_description: - description_text: The VOC archives comprise the administrative records of the Dutch East India Company from its founding in 1602 until its dissolution in 1799. description_type: collection_description record_set_type: rico:Fonds - has_or_had_content: - is_or_was_categorized_as: + has_content: + categorized_as: - https://nde.nl/ontology/hc/collection-type/fonds - Colonial trade - Maritime history - Dutch East Indies - has_or_had_provenance: - has_or_had_description: + has_provenance: + has_description: - description_text: Transferred to the Dutch state upon the company's dissolution in 1799. description_type: provenance_statement - is_or_was_acquired_through: - - has_or_had_origin: - has_or_had_label: Ministry of Colonies - has_or_had_method: - has_or_had_label: TRANSFER + acquired_through: + - has_origin: + has_label: Ministry of Colonies + has_method: + has_label: TRANSFER temporal_extent: begin_of_the_begin: '1856-01-01' - has_or_had_policy: https://nde.nl/ontology/hc/access-policy/open-access + has_policy: https://nde.nl/ontology/hc/access-policy/open-access part_of_custodian_collection: https://nde.nl/ontology/hc/custodian-collection/nationaal-archief annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/CollectionContent.yaml b/schemas/20251121/linkml/modules/classes/CollectionContent.yaml index 05cdc710fb..366289d8b1 100644 --- a/schemas/20251121/linkml/modules/classes/CollectionContent.yaml +++ b/schemas/20251121/linkml/modules/classes/CollectionContent.yaml @@ -16,23 +16,23 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type classes: CollectionContent: class_uri: hc:CollectionContent description: "Represents content held within a collection, with typed categorization.\n\ \n**RULE 53 MIGRATION**:\nReplaces the simple `collection_type` string slot\ - \ with a structured model:\n- `has_or_had_content` → CollectionContent (this\ - \ class)\n- `has_or_had_type` → CollectionContentType (categorization)\n\n**USAGE**:\n\ - ```yaml\nhas_or_had_content:\n - content_description: \"Medieval manuscripts\ - \ and parish registers\"\n has_or_had_type:\n - type_label: Archival\n\ + \ with a structured model:\n- `has_content` → CollectionContent (this\ + \ class)\n- `has_type` → CollectionContentType (categorization)\n\n**USAGE**:\n\ + ```yaml\nhas_content:\n - content_description: \"Medieval manuscripts\ + \ and parish registers\"\n has_type:\n - type_label: Archival\n\ \ - type_label: Library\n```\n\n**CHARACTERISTICS**:\n- Supports multiple\ \ content types per collection\n- Provides structured categorization\n- Links\ \ to CollectionContentType taxonomy\n" slots: - - has_or_had_type + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie multivalued: true inlined: false # Fixed invalid inline for primitive type @@ -50,11 +50,11 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_type: + has_type: - type_label: Archival - type_label: Library - value: - has_or_had_type: + has_type: - type_label: Art - type_label: Liturgical comments: diff --git a/schemas/20251121/linkml/modules/classes/CollectionContentType.yaml b/schemas/20251121/linkml/modules/classes/CollectionContentType.yaml index a12ad61bdc..eb0bbfb93d 100644 --- a/schemas/20251121/linkml/modules/classes/CollectionContentType.yaml +++ b/schemas/20251121/linkml/modules/classes/CollectionContentType.yaml @@ -64,4 +64,4 @@ classes: - 'RULE 0b: Base class for CollectionContentTypes taxonomy' - 'RULE 53: Replaces collection_type string slot' slots: - - has_or_had_label + - has_label diff --git a/schemas/20251121/linkml/modules/classes/CollectionContentTypes.yaml b/schemas/20251121/linkml/modules/classes/CollectionContentTypes.yaml index f3083c5e6a..afcd9893f2 100644 --- a/schemas/20251121/linkml/modules/classes/CollectionContentTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/CollectionContentTypes.yaml @@ -26,7 +26,7 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_label + - has_label LibraryCollectionContent: is_a: CollectionContentType class_uri: hc:LibraryCollectionContent @@ -38,7 +38,7 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_label + - has_label LiturgicalCollectionContent: is_a: CollectionContentType class_uri: hc:LiturgicalCollectionContent @@ -50,7 +50,7 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_label + - has_label ArtCollectionContent: is_a: CollectionContentType class_uri: hc:ArtCollectionContent @@ -62,7 +62,7 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_label + - has_label ArchitecturalCollectionContent: is_a: CollectionContentType class_uri: hc:ArchitecturalCollectionContent @@ -74,7 +74,7 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_label + - has_label RelicsCollectionContent: is_a: CollectionContentType class_uri: hc:RelicsCollectionContent @@ -86,7 +86,7 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_label + - has_label MusicalCollectionContent: is_a: CollectionContentType class_uri: hc:MusicalCollectionContent @@ -98,7 +98,7 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_label + - has_label EphemeraCollectionContent: is_a: CollectionContentType class_uri: hc:EphemeraCollectionContent @@ -110,7 +110,7 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_label + - has_label PhotographicCollectionContent: is_a: CollectionContentType class_uri: hc:PhotographicCollectionContent @@ -122,7 +122,7 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_label + - has_label AudiovisualCollectionContent: is_a: CollectionContentType class_uri: hc:AudiovisualCollectionContent @@ -134,7 +134,7 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_label + - has_label TextileCollectionContent: is_a: CollectionContentType class_uri: hc:TextileCollectionContent @@ -146,7 +146,7 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_label + - has_label NaturalHistoryCollectionContent: is_a: CollectionContentType class_uri: hc:NaturalHistoryCollectionContent @@ -158,7 +158,7 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_label + - has_label ScientificCollectionContent: is_a: CollectionContentType class_uri: hc:ScientificCollectionContent @@ -170,7 +170,7 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_label + - has_label DigitalCollectionContent: is_a: CollectionContentType class_uri: hc:DigitalCollectionContent @@ -182,7 +182,7 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_label + - has_label comments: - Created per slot_fixes.yaml migration (2026-01-19) - 'RULE 0b: Concrete subclasses of CollectionContentType' diff --git a/schemas/20251121/linkml/modules/classes/CollectionDiscoveryScore.yaml b/schemas/20251121/linkml/modules/classes/CollectionDiscoveryScore.yaml index 1829435505..120bad99cf 100644 --- a/schemas/20251121/linkml/modules/classes/CollectionDiscoveryScore.yaml +++ b/schemas/20251121/linkml/modules/classes/CollectionDiscoveryScore.yaml @@ -9,7 +9,7 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score # default_range: string classes: CollectionDiscoveryScore: @@ -32,11 +32,11 @@ classes: - prov:Entity - schema:Rating slots: - - has_or_had_score + - has_score comments: - Created per slot_fixes.yaml revision for collection_discovery_score migration - Replaces primitive float with structured observation - - 'RULE 53: Part of collection_discovery_score → has_or_had_score + CollectionDiscoveryScore + - 'RULE 53: Part of collection_discovery_score → has_score + CollectionDiscoveryScore migration' annotations: specificity_score: 0.75 @@ -44,7 +44,7 @@ classes: contexts custodian_types: '[''*'']' examples: - - value: 'has_or_had_score: 0.85 + - value: 'has_score: 0.85 score_context: "collection_discovery" @@ -53,7 +53,7 @@ classes: algorithm_version: "v1.2.0" ' - - value: 'has_or_had_score: 0.92 + - value: 'has_score: 0.92 score_context: "archive_search" diff --git a/schemas/20251121/linkml/modules/classes/CollectionEvent.yaml b/schemas/20251121/linkml/modules/classes/CollectionEvent.yaml index b53b6d7888..1237a84c2d 100644 --- a/schemas/20251121/linkml/modules/classes/CollectionEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/CollectionEvent.yaml @@ -12,11 +12,11 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_note - - ../slots/has_or_had_place - - ../slots/has_or_had_provenance - - ../slots/is_or_was_acquired_by + - ../slots/identified_by + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_place + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/acquired_by - ../slots/temporal_extent - ../slots/field_number - ../slots/sampling_protocol @@ -25,8 +25,8 @@ default_prefix: hc classes: CollectionEvent: class_uri: dwc:Event - description: "A specimen collection event capturing where, when, and by whom a specimen was collected.\n**Purpose**: Consolidates collection metadata into a structured event following Darwin Core and CIDOC-CRM event modeling patterns.\n**Darwin Core Alignment**: - `has_or_had_place` \u2192 dwc:locality (structured location) - `temporal_extent` \u2192 dwc:eventDate (collection date/period) - `is_or_was_acquired_by` \u2192 dwc:recordedBy (was: collector, migrated 2026-01-22) - `field_number` \u2192 dwc:fieldNumber\n**CIDOC-CRM Alignment**: - Maps to crm:E7_Activity (collection activity) - `has_or_had_place` \u2192 crm:P7_took_place_at - `temporal_extent` \u2192 crm:P4_has_time-span\n**REPLACES**: - Individual slots: collection_location, collection_date, field_number - collector \u2192 is_or_was_acquired_by + Agent (migrated 2026-01-22) - Consolidates into structured event with provenance\n**Example**: ```yaml CollectionEvent:\n has_or_had_place:\n place_name: \"Mauritius\"\n country:\ - \ \"MU\"\n latitude: -20.2\n longitude: 57.5\n temporal_extent:\n begin_of_the_begin: \"1662-01-01\"\n end_of_the_end: \"1662-12-31\"\n is_or_was_acquired_by: # was: collector - migrated 2026-01-22\n - agent_name: \"Unknown Dutch sailor\"\n agent_type: person\n agent_role: collector\n field_number: \"VOC-1662-001\"\n```" + description: "A specimen collection event capturing where, when, and by whom a specimen was collected.\n**Purpose**: Consolidates collection metadata into a structured event following Darwin Core and CIDOC-CRM event modeling patterns.\n**Darwin Core Alignment**: - `has_place` \u2192 dwc:locality (structured location) - `temporal_extent` \u2192 dwc:eventDate (collection date/period) - `acquired_by` \u2192 dwc:recordedBy (was: collector, migrated 2026-01-22) - `field_number` \u2192 dwc:fieldNumber\n**CIDOC-CRM Alignment**: - Maps to crm:E7_Activity (collection activity) - `has_place` \u2192 crm:P7_took_place_at - `temporal_extent` \u2192 crm:P4_has_time-span\n**REPLACES**: - Individual slots: collection_location, collection_date, field_number - collector \u2192 acquired_by + Agent (migrated 2026-01-22) - Consolidates into structured event with provenance\n**Example**: ```yaml CollectionEvent:\n has_place:\n place_name: \"Mauritius\"\n country:\ + \ \"MU\"\n latitude: -20.2\n longitude: 57.5\n temporal_extent:\n begin_of_the_begin: \"1662-01-01\"\n end_of_the_end: \"1662-12-31\"\n acquired_by: # was: collector - migrated 2026-01-22\n - agent_name: \"Unknown Dutch sailor\"\n agent_type: person\n agent_role: collector\n field_number: \"VOC-1662-001\"\n```" exact_mappings: - dwc:Event close_mappings: @@ -37,20 +37,20 @@ classes: mixins: - HasProvenance slots: - - has_or_had_place - - has_or_had_provenance - - has_or_had_note + - has_place + - has_provenance + - has_note - temporal_extent - - is_or_was_acquired_by - - has_or_had_identifier + - acquired_by + - identified_by - field_number - sampling_protocol - habitat_description slot_usage: - has_or_had_identifier: + identified_by: identifier: true description: Unique identifier for this collection event. MIGRATED from event_id (Rule 53, 2026-01-26). - has_or_had_place: + has_place: range: CustodianPlace inlined: true examples: @@ -69,10 +69,10 @@ classes: - value: begin_of_the_begin: '1870-01-01' end_of_the_end: '1879-12-31' - has_or_had_provenance: + has_provenance: range: ProvenanceBlock inlined: true - is_or_was_acquired_by: + acquired_by: range: Agent multivalued: true inlined: true @@ -82,7 +82,7 @@ classes: - value: comments: - Created 2026-01-19 from collection_location migration (Rule 53) - - "2026-01-22: collector attribute \u2192 is_or_was_acquired_by slot + Agent class (Rule 53)" + - "2026-01-22: collector attribute \u2192 acquired_by slot + Agent class (Rule 53)" - Aligns with Darwin Core dwc:Event - Consolidates collection metadata into structured event - Supports provenance tracking for historical specimens @@ -98,8 +98,8 @@ classes: template_specificity: '{"museum_search": 0.75, "collection_discovery": 0.8, "general_heritage": 0.55}' examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/event/dodo-collection-1662 - has_or_had_place: + identified_by: https://nde.nl/ontology/hc/event/dodo-collection-1662 + has_place: place_name: Mauritius country: MU latitude: -20.2 @@ -107,11 +107,11 @@ classes: temporal_extent: begin_of_the_begin: '1600-01-01' end_of_the_end: '1662-12-31' - is_or_was_acquired_by: + acquired_by: - agent_name: Unknown Dutch sailor - value: - has_or_had_identifier: https://nde.nl/ontology/hc/event/wallace-java-1234 - has_or_had_place: + identified_by: https://nde.nl/ontology/hc/event/wallace-java-1234 + has_place: place_name: Mt. Gede region: West Java country: ID @@ -120,5 +120,5 @@ classes: temporal_extent: begin_of_the_begin: '1854-06-01' end_of_the_end: '1854-06-30' - is_or_was_acquired_by: + acquired_by: - agent_name: Alfred Russel Wallace diff --git a/schemas/20251121/linkml/modules/classes/CollectionManagementSystem.yaml b/schemas/20251121/linkml/modules/classes/CollectionManagementSystem.yaml index ab224bb64c..8d1b9e6f2c 100644 --- a/schemas/20251121/linkml/modules/classes/CollectionManagementSystem.yaml +++ b/schemas/20251121/linkml/modules/classes/CollectionManagementSystem.yaml @@ -3,18 +3,18 @@ name: collection_management_system_class title: CollectionManagementSystem Class imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/has_or_had_standard - - ../slots/has_or_had_type - - ../slots/has_or_had_url - - ../slots/has_or_had_version - - ../slots/is_or_was_available - - ../slots/is_or_was_deployed_at - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by - - ../slots/is_or_was_used_by + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_standard + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_url + - ../slots/20260202_matang/has_version + - ../slots/20260202_matang/available + - ../slots/20260202_matang/deployed_at + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by + - ../slots/20260202_matang/used_by - ../slots/license - ../slots/linked_data_export - ../slots/manages_collection @@ -40,7 +40,7 @@ classes: description: "Software system used to manage heritage collections, objects, and metadata.\n\n**Definition**:\nSoftware used by the collections staff of a collecting institution or by \nindividual private collectors to document, manage, and track objects or \nspecimens in their collections.\n\n**CRITICAL DESIGN DECISION**:\n\nCollectionManagementSystem represents the SOFTWARE PRODUCT (e.g., CollectiveAccess,\nMuseumPlus, Adlib, Axiell Collections) that may power one or more DigitalPlatforms.\n\n**Relationship Architecture**:\n\n```\nCollectionManagementSystem (software product)\n \u2502\n \u251C\u2500\u2500 powers \u2192 DigitalPlatform (web interface)\n \u2502 - Rijksmuseum Website (powered by Adlib)\n \u2502 - National Archives Portal (powered by MAIS)\n \u2502\n \u2514\u2500\u2500 manages \u2192 CustodianCollection (collection records)\n - Paintings Collection\n - Archival Fonds\n```\n\n**Distinguishing\ \ CMS from DigitalPlatform**:\n\n| CMS | DigitalPlatform |\n|-----|-----------------|\n| Software product | Web interface |\n| Backend system | Frontend portal |\n| Data management | Data presentation |\n| Staff-facing | Public/researcher-facing |\n| Reusable across institutions | Institution-specific |\n\n**Examples of CMS Products**:\n\n- **CollectiveAccess**: Open-source, museums/archives\n- **MuseumPlus**: Zetcom, museum collections\n- **Adlib** (Axiell): Library/museum collections\n- **TMS (The Museum System)**: Gallery Systems\n- **ArchivesSpace**: Open-source, archival description\n- **MAIS-Flexis**: Dutch archival software\n- **Calm**: Axiell, archives\n- **ResourceSpace**: Digital asset management\n- **Omeka S**: Open-source, digital collections\n- **DSpace**: Digital repository\n\n**ONTOLOGY ALIGNMENT (from /data/ontology/)**:\n\n- **Schema.org** (`/data/ontology/schemaorg.owl`): `schema:SoftwareApplication` (primary)\n - CMS is specialized software for collection management\n\ \ - Properties: schema:applicationCategory, schema:softwareVersion, schema:creator\n - Related: schema:WebApplication (subclass)\n\n- **CIDOC-CRM** (`/data/ontology/CIDOC_CRM_v7.1.3.rdf`): `crm:E29_Design_or_Procedure`\n - CIDOC-CRM E73_Information_Object defines: \"procedural prescriptions, computer program code\"\n - E29_Design_or_Procedure is a subclass of E73_Information_Object\n - A CMS embodies procedures for managing collections\n - P33_used_specific_technique links activities to CMS\n\n- **DOAP** (`/data/ontology/doap.rdf`): `doap:Project`\n - Description of a Project vocabulary for software projects\n - Properties: doap:name, doap:homepage, doap:license, doap:repository\n - doap:programming-language for implementation languages\n - doap:category for software categorization\n\n- **RiC-O** (`/data/ontology/RiC-O_1-1.rdf`): Related concepts\n - rico:RecordResource for managed records\n - rico:Agent for custodian managing records via CMS\n - rico:Activity for record\ - \ management activities\n\n**Use Cases**:\n\n1. **Platform Analysis**: \"What CMS powers the Rijksmuseum website?\"\n - Follow: DigitalPlatform.powered_by_cms \u2192 CollectionManagementSystem\n\n2. **Software Survey**: \"How many Dutch museums use CollectiveAccess?\"\n - Query: CMS instances where cms_product = \"CollectiveAccess\"\n\n3. **Collection-CMS Relationship**: \"Which collections are managed by MAIS?\"\n - Follow: CustodianCollection.managed_by_cms \u2192 CollectionManagementSystem\n\n4. **CMS Detection**: \"Does this website have a detectable CMS backend?\"\n - Check: DigitalPlatform.cms_detected flag\n\n**Example**:\n```yaml\nCollectionManagementSystem:\n cms_id: \"https://nde.nl/ontology/hc/cms/collective-access-rm\"\n cms_product_name: \"CollectiveAccess\"\n cms_product_version: \"1.8.0\"\n cms_category: MUSEUM_CMS\n open_source: true\\n license: \\\"GPL-3.0\\\"\\n has_or_had_label: \\\"Whirl-i-Gig\\\" # vendor_name\\n powers_platform:\\n - \\\"https://nde.nl/ontology/hc/platform/some-museum\\\ + \ management activities\n\n**Use Cases**:\n\n1. **Platform Analysis**: \"What CMS powers the Rijksmuseum website?\"\n - Follow: DigitalPlatform.powered_by_cms \u2192 CollectionManagementSystem\n\n2. **Software Survey**: \"How many Dutch museums use CollectiveAccess?\"\n - Query: CMS instances where cms_product = \"CollectiveAccess\"\n\n3. **Collection-CMS Relationship**: \"Which collections are managed by MAIS?\"\n - Follow: CustodianCollection.managed_by_cms \u2192 CollectionManagementSystem\n\n4. **CMS Detection**: \"Does this website have a detectable CMS backend?\"\n - Check: DigitalPlatform.cms_detected flag\n\n**Example**:\n```yaml\nCollectionManagementSystem:\n cms_id: \"https://nde.nl/ontology/hc/cms/collective-access-rm\"\n cms_product_name: \"CollectiveAccess\"\n cms_product_version: \"1.8.0\"\n cms_category: MUSEUM_CMS\n open_source: true\\n license: \\\"GPL-3.0\\\"\\n has_label: \\\"Whirl-i-Gig\\\" # vendor_name\\n powers_platform:\\n - \\\"https://nde.nl/ontology/hc/platform/some-museum\\\ \"\\\n \n manages_collection:\n - \"https://nde.nl/ontology/hc/collection/some-collection\"\n```\n" exact_mappings: - schema:SoftwareApplication @@ -55,11 +55,11 @@ classes: - doap:repository - rico:Activity slots: - - is_or_was_available - - has_or_had_identifier - - has_or_had_version - - has_or_had_type - - is_or_was_deployed_at + - available + - identified_by + - has_version + - has_type + - deployed_at - license - linked_data_export - manages_collection @@ -67,16 +67,16 @@ classes: - powers_platform - refers_to_custodian - repository_url - - has_or_had_standard - - has_or_had_score + - has_standard + - has_score - temporal_extent - - is_or_was_used_by - - has_or_had_label - - has_or_had_url - - is_or_was_derived_from - - is_or_was_generated_by + - used_by + - has_label + - has_url + - derived_from + - generated_by slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie inlined: false # Fixed invalid inline for primitive type required: true @@ -86,23 +86,23 @@ classes: identifier_value: https://nde.nl/ontology/hc/cms/rijksmuseum-adlib - value: identifier_value: https://nde.nl/ontology/hc/cms/nationaal-archief-mais - has_or_had_version: + has_version: range: Version multivalued: true inlined_as_list: true examples: - value: - value: - has_or_had_type: + has_type: range: CMSType inlined: true examples: - value: - has_or_had_label: Museum CMS - has_or_had_type: museum_cms + has_label: Museum CMS + has_type: museum_cms - value: - has_or_had_label: Archive CMS - has_or_had_type: archive_cms + has_label: Archive CMS + has_type: archive_cms open_source: range: boolean examples: @@ -113,25 +113,25 @@ classes: examples: - value: GPL-3.0 - value: Proprietary - has_or_had_label: + has_label: range: Label inlined: true inlined_as_list: true multivalued: true examples: - value: - has_or_had_label: CollectiveAccess - has_or_had_type: product_name + has_label: CollectiveAccess + has_type: product_name - value: - has_or_had_label: Whirl-i-Gig - has_or_had_type: vendor_name + has_label: Whirl-i-Gig + has_type: vendor_name - value: - has_or_had_label: MuseumPlus - has_or_had_type: product_name + has_label: MuseumPlus + has_type: product_name - value: - has_or_had_label: Zetcom AG - has_or_had_type: vendor_name - has_or_had_url: + has_label: Zetcom AG + has_type: vendor_name + has_url: range: uri inlined: false # Fixed invalid inline for primitive type multivalued: true @@ -148,7 +148,7 @@ classes: examples: - value: https://github.com/collectiveaccess/providence - value: https://github.com/archivesspace/archivesspace - has_or_had_standard: + has_standard: # range: string multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type @@ -163,7 +163,7 @@ classes: range: boolean examples: - value: true - is_or_was_available: + available: range: boolean examples: - value: true @@ -177,12 +177,12 @@ classes: multivalued: true examples: - value: https://nde.nl/ontology/hc/collection/rm-paintings - is_or_was_used_by: + used_by: range: Custodian multivalued: true examples: - value: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - is_or_was_deployed_at: + deployed_at: range: DeploymentEvent multivalued: true inlined_as_list: true @@ -193,19 +193,19 @@ classes: begin_of_the_begin: '2015-06-01' end_of_the_end: '2015-06-01' refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - has_or_had_description: - has_or_had_text: Initial deployment of Adlib CMS + has_description: + has_text: Initial deployment of Adlib CMS temporal_extent: range: TimeSpan examples: - value: begin_of_the_begin: '2015-06-01' end_of_the_end: null - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false refers_to_custodian: @@ -227,21 +227,21 @@ classes: - http://usefulinc.com/ns/doap#Project examples: - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/cms/rijksmuseum-adlib - has_or_had_version: - has_or_had_type: MuseumCMS + has_version: + has_type: MuseumCMS open_source: false license: Proprietary - has_or_had_label: - - has_or_had_label: Adlib - has_or_had_type: product_name - - has_or_had_label: Axiell - has_or_had_type: vendor_name - has_or_had_url: + has_label: + - has_label: Adlib + has_type: product_name + - has_label: Axiell + has_type: vendor_name + has_url: url_value: https://www.axiell.com/ url_type: vendor - has_or_had_standard: + has_standard: - standard_name: SPECTRUM standard_uri: https://collectionstrust.org.uk/spectrum/ - standard_name: Dublin Core @@ -249,37 +249,37 @@ classes: - standard_name: LIDO standard_uri: http://www.lido-schema.org/ linked_data_export: true - is_or_was_available: true + available: true powers_platform: - https://nde.nl/ontology/hc/platform/rijksmuseum-website manages_collection: - https://nde.nl/ontology/hc/collection/rm-paintings - https://nde.nl/ontology/hc/collection/rm-prints refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - is_or_was_deployed_at: + deployed_at: - temporal_extent: begin_of_the_begin: '2015-06-01' end_of_the_end: '2015-06-01' - has_or_had_description: - has_or_had_text: Initial deployment of Adlib CMS at Rijksmuseum + has_description: + has_text: Initial deployment of Adlib CMS at Rijksmuseum - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/cms/example-museum-collectiveaccess - has_or_had_version: - has_or_had_type: MuseumCMS + has_version: + has_type: MuseumCMS open_source: true license: GPL-3.0 - has_or_had_label: - - has_or_had_label: CollectiveAccess - has_or_had_type: product_name - - has_or_had_label: Whirl-i-Gig - has_or_had_type: vendor_name - has_or_had_url: + has_label: + - has_label: CollectiveAccess + has_type: product_name + - has_label: Whirl-i-Gig + has_type: vendor_name + has_url: url_value: https://www.collectiveaccess.org/ url_type: vendor documentation_url: https://manual.collectiveaccess.org/ repository_url: https://github.com/collectiveaccess/providence - has_or_had_standard: + has_standard: - standard_name: Dublin Core standard_uri: http://purl.org/dc/elements/1.1/ - standard_name: VRA Core @@ -287,20 +287,20 @@ classes: - standard_name: LIDO standard_uri: http://www.lido-schema.org/ linked_data_export: true - is_or_was_available: true + available: true refers_to_custodian: https://nde.nl/ontology/hc/example-museum - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/cms/nationaal-archief-mais - has_or_had_type: ArchiveCMS + has_type: ArchiveCMS open_source: false license: Proprietary - has_or_had_label: - - has_or_had_label: MAIS-Flexis - has_or_had_type: product_name - - has_or_had_label: De Ree Archiefsystemen - has_or_had_type: vendor_name - has_or_had_standard: + has_label: + - has_label: MAIS-Flexis + has_type: product_name + - has_label: De Ree Archiefsystemen + has_type: vendor_name + has_standard: - standard_name: ISAD(G) standard_uri: https://www.ica.org/en/isadg-general-international-standard-archival-description-second-edition - standard_name: EAD @@ -308,7 +308,7 @@ classes: - standard_name: MDTO standard_uri: https://www.nationaalarchief.nl/mdto linked_data_export: false - is_or_was_available: true + available: true manages_collection: - https://nde.nl/ontology/hc/collection/na-government-records refers_to_custodian: https://nde.nl/ontology/hc/nl-na diff --git a/schemas/20251121/linkml/modules/classes/CollectionScope.yaml b/schemas/20251121/linkml/modules/classes/CollectionScope.yaml index c396887637..f6fdf904d9 100644 --- a/schemas/20251121/linkml/modules/classes/CollectionScope.yaml +++ b/schemas/20251121/linkml/modules/classes/CollectionScope.yaml @@ -9,7 +9,7 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type # default_range: string default_prefix: hc classes: @@ -42,7 +42,7 @@ classes: - schema:about - rico:hasContentOfType slots: - - has_or_had_type + - has_type annotations: custodian_types: '["*"]' custodian_types_rationale: Collection scope applicable to all custodian types diff --git a/schemas/20251121/linkml/modules/classes/CollectionType.yaml b/schemas/20251121/linkml/modules/classes/CollectionType.yaml index 723dbf7c92..11aaa1a6cb 100644 --- a/schemas/20251121/linkml/modules/classes/CollectionType.yaml +++ b/schemas/20251121/linkml/modules/classes/CollectionType.yaml @@ -12,22 +12,22 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_domain - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_equivalent_to + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_domain + - ../slots/20260202_matang/has_hypernym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/equivalent_to - ../slots/record_equivalent classes: CollectionType: class_uri: rico:RecordSetType description: "Classification type for specific Collection instances.\n\nProvides semantic classification distinguishing different kinds of heritage collections:\n- Archival record set types (fonds, series, file, item)\n- Library collection types (special collection, personal papers)\n- Museum collection types (named collection, bequest)\n\n1. **RiC-O (Records in Contexts)**:\n - `rico:RecordSetType` - \"A record set type categorizes record sets according\n to the way they were created, assembled, or used.\"\n - Standard values: Fonds, Series, File, Collection, Item\n\n2. **BIBFRAME**:\n - bf:Collection for library special collections\n - bf:Archival for archival materials\n\n3. **SKOS**:\n - skos:Concept for classification term\n - Hierarchical relationships via skos:broader/narrower\n\n**COLLECTION TYPE TAXONOMY**:\n\n```\nCollectionType (root)\n \u2502\n \u251C\u2500\u2500 ArchivalRecordSetType\n \u2502 \u251C\u2500\u2500 FONDS (Q1643722) - Provenance-based archival\ \ unit\n \u2502 \u251C\u2500\u2500 SERIES - Group within fonds\n \u2502 \u251C\u2500\u2500 SUB_SERIES - Subdivision of series\n \u2502 \u251C\u2500\u2500 FILE - Individual folder/dossier\n \u2502 \u2514\u2500\u2500 ITEM - Single document\n \u2502\n \u251C\u2500\u2500 LibraryCollectionType\n \u2502 \u251C\u2500\u2500 SPECIAL_COLLECTION - Named special collection\n \u2502 \u251C\u2500\u2500 PERSONAL_PAPERS - Papers of an individual\n \u2502 \u251C\u2500\u2500 INSTITUTIONAL_RECORDS - Organizational records\n \u2502 \u2514\u2500\u2500 REFERENCE_COLLECTION - Reference materials\n \u2502\n \u251C\u2500\u2500 MuseumCollectionType\n \u2502 \u251C\u2500\u2500 NAMED_COLLECTION - Named collection (donor, subject)\n \u2502 \u251C\u2500\u2500 STUDY_COLLECTION - Research/study materials\n \u2502 \u251C\u2500\u2500 PERMANENT_COLLECTION - Core permanent holdings\n \u2502 \u2514\u2500\u2500 LOAN_COLLECTION - Long-term loans\n \u2502\n\ - \ \u2514\u2500\u2500 AssembledCollectionType\n \u251C\u2500\u2500 ARTIFICIAL_COLLECTION - Non-provenance assembled\n \u251C\u2500\u2500 THEMATIC_COLLECTION - Subject-based grouping\n \u2514\u2500\u2500 REFERENCE_COLLECTION - Reference aggregation\n```\n\n**RICO RECORD SET TYPE ALIGNMENT**:\n\n| CollectionType | RiC-O Type | Description |\n|----------------|------------|-------------|\n| FONDS | rico:Fonds | Provenance-based archival unit |\n| SERIES | rico:Series | Subdivision of fonds |\n| FILE | rico:File | Individual file/dossier |\n| ITEM | rico:Item | Single record |\n| ARTIFICIAL_COLLECTION | rico:Collection | Non-provenance assemblage |\n\n**USE CASES**:\n\n1. **Archival Classification**:\n ```yaml\n CollectionType:\n has_or_had_identifier: \"hc:collection-type/fonds\"\n type_name: \"Fonds\"\n record_equivalent: \"rico:Fonds\"\n description: \"Provenance-based archival unit\"\n ```\n\n2. **Library Special Collection**:\n ```yaml\n CollectionType:\n\ - \ has_or_had_identifier: \"hc:collection-type/special-collection\"\n type_name: \"Special Collection\"\n # BIBFRAME mapping at class level via close_mappings: [bf:CollectionType]\n description: \"Named library special collection\"\n ```\n\n3. **Museum Named Collection**:\n ```yaml\n CollectionType:\n has_or_had_identifier: \"hc:collection-type/named-collection\"\n type_name: \"Named Collection\"\n description: \"Collection named for donor or subject\"\n ```\n" + \ \u2514\u2500\u2500 AssembledCollectionType\n \u251C\u2500\u2500 ARTIFICIAL_COLLECTION - Non-provenance assembled\n \u251C\u2500\u2500 THEMATIC_COLLECTION - Subject-based grouping\n \u2514\u2500\u2500 REFERENCE_COLLECTION - Reference aggregation\n```\n\n**RICO RECORD SET TYPE ALIGNMENT**:\n\n| CollectionType | RiC-O Type | Description |\n|----------------|------------|-------------|\n| FONDS | rico:Fonds | Provenance-based archival unit |\n| SERIES | rico:Series | Subdivision of fonds |\n| FILE | rico:File | Individual file/dossier |\n| ITEM | rico:Item | Single record |\n| ARTIFICIAL_COLLECTION | rico:Collection | Non-provenance assemblage |\n\n**USE CASES**:\n\n1. **Archival Classification**:\n ```yaml\n CollectionType:\n identified_by: \"hc:collection-type/fonds\"\n type_name: \"Fonds\"\n record_equivalent: \"rico:Fonds\"\n description: \"Provenance-based archival unit\"\n ```\n\n2. **Library Special Collection**:\n ```yaml\n CollectionType:\n\ + \ identified_by: \"hc:collection-type/special-collection\"\n type_name: \"Special Collection\"\n # BIBFRAME mapping at class level via close_mappings: [bf:CollectionType]\n description: \"Named library special collection\"\n ```\n\n3. **Museum Named Collection**:\n ```yaml\n CollectionType:\n identified_by: \"hc:collection-type/named-collection\"\n type_name: \"Named Collection\"\n description: \"Collection named for donor or subject\"\n ```\n" exact_mappings: - rico:RecordSetType - skos:Concept @@ -35,17 +35,17 @@ classes: - bf:CollectionType - dcterms:DCMIType slots: - - has_or_had_hypernym - - has_or_had_description - - has_or_had_identifier - - has_or_had_label - - has_or_had_type - - has_or_had_domain + - has_hypernym + - has_description + - identified_by + - has_label + - has_type + - has_domain - record_equivalent - - has_or_had_score - - is_or_was_equivalent_to + - has_score + - equivalent_to slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie inlined: false # Fixed invalid inline for primitive type required: true @@ -53,19 +53,19 @@ classes: examples: - value: identifier_value: https://nde.nl/ontology/hc/collection-type/fonds - has_or_had_label: + has_label: # range: string # uriorcurie # range: Label inlined: false # Fixed invalid inline for primitive type required: true examples: - value: - has_or_had_label: Fonds + has_label: Fonds - value: - has_or_had_label: Special Collection + has_label: Special Collection - value: - has_or_had_label: Named Collection - has_or_had_description: + has_label: Named Collection + has_description: # range: string inlined: false # Fixed invalid inline for primitive type required: false @@ -79,7 +79,7 @@ classes: - value: rico:Fonds - value: rico:Series - value: rico:Collection - is_or_was_equivalent_to: + equivalent_to: # range: string pattern: ^Q[0-9]+$ examples: @@ -87,26 +87,26 @@ classes: description: 'Wikidata equivalent: fonds' - value: Q185583 description: 'Wikidata equivalent: archive collection' - has_or_had_hypernym: + has_hypernym: # range: string # uriorcurie # range: Hypernym inlined: false # Fixed invalid inline for primitive type examples: - value: hypernym_uri: https://nde.nl/ontology/hc/collection-type/archival-record-set-type - has_or_had_label: + has_label: - label_text: Archival Record Set Type - has_or_had_domain: + has_domain: # range: string # uriorcurie # range: Domain inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: - has_or_had_type: + has_type: - value: - value: - has_or_had_type: + has_type: equals_expression: '["*"]' comments: - CollectionType classifies specific Collection instances (not abstract CustodianCollection) @@ -119,28 +119,28 @@ classes: - https://www.wikidata.org/wiki/Q1643722 examples: - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/collection-type/fonds - has_or_had_label: - has_or_had_label: Fonds - has_or_had_description: + has_label: + has_label: Fonds + has_description: description_text: A fonds is a group of documents brought together by the same creator in the exercise of their activities and functions. description_type: collection_type_description record_equivalent: rico:Fonds - is_or_was_equivalent_to: wikidata:Q1643722 - has_or_had_domain: + equivalent_to: wikidata:Q1643722 + has_domain: - domain_name: ARCHIVE - https://nde.nl/ontology/hc/collection-type/series - https://nde.nl/ontology/hc/collection-type/sub-fonds - value: - has_or_had_identifier: + identified_by: identifier_value: https://nde.nl/ontology/hc/collection-type/special-collection - has_or_had_label: - has_or_had_label: Special Collection - has_or_had_description: + has_label: + has_label: Special Collection + has_description: description_text: A named special collection within a library, often focusing on a particular subject, format, or provenance. description_type: collection_type_description - has_or_had_domain: + has_domain: - domain_name: LIBRARY annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ColonialStatus.yaml b/schemas/20251121/linkml/modules/classes/ColonialStatus.yaml index 530d22f2dc..cf2f1fade0 100644 --- a/schemas/20251121/linkml/modules/classes/ColonialStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/ColonialStatus.yaml @@ -10,8 +10,8 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label - ../slots/temporal_extent default_prefix: hc classes: @@ -40,9 +40,9 @@ classes: The revision specifies: - - `includes_or_included` + `GeoSpatialPlace` for territory geometry + - `include` + `GeoSpatialPlace` for territory geometry - - `is_or_was_categorized_as` + `ColonialStatus` for categorization + - `categorized_as` + `ColonialStatus` for categorization **USE CASES**: @@ -77,11 +77,11 @@ classes: related_mappings: - skos:Concept slots: - - has_or_had_label - - has_or_had_identifier + - has_label + - identified_by - temporal_extent slot_usage: - has_or_had_label: + has_label: # range: string examples: - value: Dutch East Indies (1602-1949) @@ -94,17 +94,17 @@ classes: end_of_the_end: '1949-12-27' examples: - value: - has_or_had_label: Dutch East Indies (1602-1949) + has_label: Dutch East Indies (1602-1949) temporal_extent: begin_of_the_begin: '1602-03-20' end_of_the_end: '1949-12-27' - value: - has_or_had_label: Dutch Suriname (1667-1975) + has_label: Dutch Suriname (1667-1975) temporal_extent: begin_of_the_begin: '1667-01-01' end_of_the_end: '1975-11-25' - value: - has_or_had_label: Netherlands Antilles (1954-2010) + has_label: Netherlands Antilles (1954-2010) temporal_extent: begin_of_the_begin: '1954-01-01' end_of_the_end: '2010-10-10' diff --git a/schemas/20251121/linkml/modules/classes/ComarcalArchive.yaml b/schemas/20251121/linkml/modules/classes/ComarcalArchive.yaml index 2a02d5b0e3..9f99c9930e 100644 --- a/schemas/20251121/linkml/modules/classes/ComarcalArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/ComarcalArchive.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: ComarcalArchive: diff --git a/schemas/20251121/linkml/modules/classes/ComarcalArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ComarcalArchiveRecordSetType.yaml index a181ffc1db..f2508000f2 100644 --- a/schemas/20251121/linkml/modules/classes/ComarcalArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ComarcalArchiveRecordSetType.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: ComarcalArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ComarcalArchive custodians. @@ -15,14 +15,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - ComarcalArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ComarcalArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/ComarcalArchiveRecordSetTypes.yaml index 0daccb8bd1..ae2bfcc2e3 100644 --- a/schemas/20251121/linkml/modules/classes/ComarcalArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ComarcalArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./ComarcalArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - ComarcalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ComarcalAdministrationFonds @@ -78,15 +78,15 @@ classes: - ComarcalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ComarcalHistoryCollection diff --git a/schemas/20251121/linkml/modules/classes/Comment.yaml b/schemas/20251121/linkml/modules/classes/Comment.yaml index bbf4058ade..b3c5a95000 100644 --- a/schemas/20251121/linkml/modules/classes/Comment.yaml +++ b/schemas/20251121/linkml/modules/classes/Comment.yaml @@ -8,8 +8,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_author - - ../slots/has_or_had_content + - ../slots/20260202_matang/has_author + - ../slots/20260202_matang/has_content classes: Comment: class_uri: schema:Comment @@ -28,26 +28,26 @@ classes: ' slots: - - has_or_had_content - - has_or_had_author + - has_content + - has_author slot_usage: - has_or_had_content: + has_content: # range: string inlined: false # Fixed invalid inline for primitive type required: true examples: - value: - has_or_had_description: Great video about the collection! - has_or_had_author: + has_description: Great video about the collection! + has_author: range: Author inlined: true required: false examples: - value: - has_or_had_name: Visitor123 + has_name: Visitor123 - value: - has_or_had_name: MuseumFan2024 - has_or_had_identifier: https://youtube.com/channel/UC123 + has_name: MuseumFan2024 + identified_by: https://youtube.com/channel/UC123 exact_mappings: - schema:Comment annotations: @@ -56,8 +56,8 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_content: - has_or_had_description: Great video about the collection! - has_or_had_author: - has_or_had_name: Visitor123 + has_content: + has_description: Great video about the collection! + has_author: + has_name: Visitor123 comment_date: '2025-01-14T10:30:00Z' diff --git a/schemas/20251121/linkml/modules/classes/CommentReply.yaml b/schemas/20251121/linkml/modules/classes/CommentReply.yaml index e083d50699..1b91144b47 100644 --- a/schemas/20251121/linkml/modules/classes/CommentReply.yaml +++ b/schemas/20251121/linkml/modules/classes/CommentReply.yaml @@ -10,8 +10,8 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_quantity - - ../slots/has_or_had_unit + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_unit - ../slots/temporal_extent default_prefix: hc classes: @@ -22,7 +22,7 @@ classes: discussions. Replaces simple integer counts with rich reply data including\n\ quantity, temporal tracking, and relationship information.\n\n**DESIGN RATIONALE**:\n\ \nCreated per slot_fixes.yaml migration from `comment_reply_count` integer\n\ - to structured `has_or_had_reply` + `CommentReply` with `has_or_had_quantity`\n\ + to structured `has_reply` + `CommentReply` with `has_quantity`\n\ + `Quantity` for metric representation.\n\n**REPLY CONTEXTS**:\n\n| Context\ \ | Description |\n|---------|-------------|\n| YouTube | Comment replies on\ \ video comments |\n| Twitter | Reply threads |\n| Facebook | Comment replies\ @@ -31,8 +31,8 @@ classes: | **SIOC** | `sioc:Post`, `sioc:has_reply` | Online community content |\n| **Activity\ \ Streams** | `as:Note`, `as:inReplyTo` | Social activity |\n| **Schema.org**\ \ | `schema:Comment` | Generic comment modeling |\n\n**EXAMPLE**:\n\n```yaml\n\ - has_or_had_reply:\n - reply_count: 5\n has_or_had_quantity:\n numeric_value:\ - \ 5\n has_or_had_unit:\n unit_label: \"replies\"\n temporal_extent:\n\ + has_reply:\n - reply_count: 5\n has_quantity:\n numeric_value:\ + \ 5\n has_unit:\n unit_label: \"replies\"\n temporal_extent:\n\ \ begin_of_the_begin: \"2025-01-14T10:00:00Z\"\n```\n" exact_mappings: - sioc:Post @@ -43,20 +43,20 @@ classes: - sioc:has_reply - as:inReplyTo slots: - - has_or_had_quantity - - has_or_had_unit + - has_quantity + - has_unit - temporal_extent slot_usage: - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type required: false examples: - value: numeric_value: 5 - has_or_had_unit: + has_unit: unit_label: replies - has_or_had_unit: + has_unit: # range: string inlined: false # Fixed invalid inline for primitive type required: false @@ -73,9 +73,9 @@ classes: examples: - value: null - value: - has_or_had_quantity: + has_quantity: numeric_value: 5 - has_or_had_unit: + has_unit: unit_label: replies temporal_extent: begin_of_the_begin: '2025-01-14T10:00:00Z' diff --git a/schemas/20251121/linkml/modules/classes/CommercialCustodianTypes.yaml b/schemas/20251121/linkml/modules/classes/CommercialCustodianTypes.yaml index 13fa02e454..5711fd9c5b 100644 --- a/schemas/20251121/linkml/modules/classes/CommercialCustodianTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/CommercialCustodianTypes.yaml @@ -11,8 +11,8 @@ imports: - linkml:types - ../enums/CommercialCustodianTypeEnum - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label default_prefix: hc classes: CommercialCustodianTypes: @@ -43,7 +43,7 @@ classes: Created per slot_fixes.yaml migration from `commercial_custodian_subtype` - enum slot to structured `includes_or_included` + `CommercialCustodianTypes`. + enum slot to structured `include` + `CommercialCustodianTypes`. **COMMERCIAL CUSTODIAN CATEGORIES**: @@ -77,13 +77,13 @@ classes: close_mappings: - skos:ConceptScheme slots: - - has_or_had_label - - has_or_had_identifier + - has_label + - identified_by slot_usage: - has_or_had_label: + has_label: examples: - value: Auction Houses and Art Dealers - has_or_had_identifier: + identified_by: examples: - value: null examples: diff --git a/schemas/20251121/linkml/modules/classes/CommercialOrganizationType.yaml b/schemas/20251121/linkml/modules/classes/CommercialOrganizationType.yaml index ea7043d7a4..d36dc2a741 100644 --- a/schemas/20251121/linkml/modules/classes/CommercialOrganizationType.yaml +++ b/schemas/20251121/linkml/modules/classes/CommercialOrganizationType.yaml @@ -9,14 +9,14 @@ description: 'Specialized CustodianType for for-profit commercial organizations imports: - linkml:types - ../enums/CommercialCustodianTypeEnum - - ../slots/collects_or_collected + - ../slots/collect - ../slots/corporate_integration - - ../slots/has_or_had_model - - ../slots/has_or_had_rationale - - ../slots/has_or_had_score - - ../slots/has_or_had_service - - ../slots/has_or_had_type - - ../slots/includes_or_included + - ../slots/20260202_matang/has_model + - ../slots/20260202_matang/has_rationale + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_service + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/include prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -132,8 +132,8 @@ classes: \ history archive) - Industry historical records\n- Q215380 (product development archive) - Technical/design history\n\nCompany Museums:\n- Q5283639 (company museum) - Corporate-operated heritage museums\n- Q105558717 (brand heritage center) - Marketing-oriented heritage spaces\n- Q7241077 (factory museum) - Industrial heritage at production sites\n- Q215380 (corporate visitor center) - Public heritage exhibitions\n\nBusiness Libraries:\n- Q105558717 (corporate library) - Company research collections\n- Q5879427 (industry library) - Sector-specific collections\n- Q215380 (technical documentation center) - Product manuals, standards\n\nBrand Heritage Centers:\n- Q163740 (brand museum) - Marketing heritage experiences\n- Q5283639 (heritage brand center) - Consumer-facing corporate history\n- Q105558717 (brewery visitor center) - Beer/beverage brand heritage\n- Q7241077 (automotive museum) - Car manufacturer collections\n\nIndustry-Specific Examples:\n- Q33506 (brewery museum) - Beer\ \ heritage (Heineken, Guinness)\n- Q1551322 (automobile museum) - Car manufacturer museums (Mercedes, BMW)\n- Q5283639 (watch museum) - Horology brand heritage (Omega, Rolex)\n- Q105558717 (fashion archive) - Luxury brand heritage (Dior, Chanel)\n- Q215380 (technology archive) - Tech company collections (IBM, Xerox)\n- Q5879427 (bank archive) - Financial institution history\n- Q163740 (pharmaceutical archive) - Drug company collections\n\n**Key Distinctions from Other Types**:\n\nvs. Museum:\n- CommercialOrganization: FOR-PROFIT, CORPORATE-OWNED heritage collection\n- Museum: NON-PROFIT, PUBLIC-BENEFIT institution\n- Example: Heineken Experience (corporate) vs. Brouwerijmuseum (independent)\n\nvs. Archive:\n- CommercialOrganization: CORPORATE archive within for-profit business\n- Archive: INDEPENDENT archival institution (even if holds business records)\n- Example: Ford Motor archive (corporate) vs. Business archives at university\n\nvs. TasteScentHeritage:\n- CommercialOrganization:\ \ HERITAGE is secondary to PROFIT/MARKETING\n- TasteScentHeritage: HERITAGE PRESERVATION is primary mission\n- Example: Commercial brewery museum vs. Monastic brewery (heritage focus)\n\nvs. NonProfit:\n- CommercialOrganization: FOR-PROFIT, SHAREHOLDER-OWNED\n- NonProfit: NON-PROFIT, PUBLIC-BENEFIT mission\n- Example: Corporate foundation museum vs. Independent heritage NGO\n\nvs. EducationProvider:\n- CommercialOrganization: HERITAGE for MARKETING/BRAND purposes\n- EducationProvider: HERITAGE for EDUCATION/RESEARCH purposes\n- Example: Coca-Cola brand center vs. University business school archive\n\n**RDF Serialization Example**:\n\n```turtle\n@prefix hc: <https://nde.nl/ontology/hc/> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix schema: <http://schema.org/> .\n@prefix crm: <http://www.cidoc-crm.org/cidoc-crm/> .\n@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n\nhc:CommercialOrganizationType\n a skos:Concept, hc:CustodianType ;\n skos:prefLabel \"Commercial Organization\ - \ Type\"@en,\n \"Commerci\xEBle Organisatie Type\"@nl,\n \"Gewerbliche Organisation Typ\"@de,\n \"Type d'Organisation Commerciale\"@fr ;\n skos:definition \"For-profit organizations maintaining heritage collections\"@en ;\n skos:broader hc:CustodianType ;\n skos:narrower hc:CorporateArchive,\n hc:CompanyMuseum,\n hc:BrandHeritageCenter ;\n schema:url <https://nde.nl/ontology/hc/class/commercial-organization-type> .\n\n# Example: Heineken Experience (corporate brand heritage center in Amsterdam)\n<https://w3id.org/heritage/custodian/nl/heineken-experience>\n a schema:Corporation, schema:TouristAttraction, crm:E74_Group, hc:CommercialOrganization ;\n hc:custodian_type hc:CommercialOrganizationType ;\n hc:has_or_had_model \"For-profit brand heritage attraction\", \"Admission fees\", \"Merchandise sales\", \"Brand marketing\" ;\n hc:has_or_had_rationale [ hc:rationale_text \"Brand heritage communication,\ - \ Consumer engagement, Tourism revenue, Corporate identity\" ] ;\n hc:corporate_integration \"Fully owned by Heineken N.V.\", \"Marketing department\", \"Brand management division\" ;\n hc:public_access \"Daily visitor hours 10:30-19:30\", \"Paid admission\", \"Self-guided tours\", \"Group bookings available\" ;\n hc:heritage_holdings \"Brewing equipment (1867-present)\", \"Advertising materials archive\", \"Bottle/label collections\", \"Corporate photography\" ;\n hc:has_or_had_service [\n a hc:Service ;\n hc:service_name \"Admission tickets\" ;\n hc:price \"\u20AC21\" ;\n hc:has_or_had_type hc:CommercialService\n ], [\n a hc:Service ;\n hc:service_name \"Beer tasting experiences\" ;\n hc:has_or_had_type hc:CommercialService\n ], [\n a hc:Service ;\n hc:service_name \"Gift shop\" ;\n hc:has_or_had_type hc:CommercialService\n ], [\n a hc:Service ;\n hc:service_name \"Event venue rental\" ;\n hc:has_or_had_type hc:CommercialService\n ]\ + \ Type\"@en,\n \"Commerci\xEBle Organisatie Type\"@nl,\n \"Gewerbliche Organisation Typ\"@de,\n \"Type d'Organisation Commerciale\"@fr ;\n skos:definition \"For-profit organizations maintaining heritage collections\"@en ;\n skos:broader hc:CustodianType ;\n skos:narrower hc:CorporateArchive,\n hc:CompanyMuseum,\n hc:BrandHeritageCenter ;\n schema:url <https://nde.nl/ontology/hc/class/commercial-organization-type> .\n\n# Example: Heineken Experience (corporate brand heritage center in Amsterdam)\n<https://w3id.org/heritage/custodian/nl/heineken-experience>\n a schema:Corporation, schema:TouristAttraction, crm:E74_Group, hc:CommercialOrganization ;\n hc:custodian_type hc:CommercialOrganizationType ;\n hc:has_model \"For-profit brand heritage attraction\", \"Admission fees\", \"Merchandise sales\", \"Brand marketing\" ;\n hc:has_rationale [ hc:rationale_text \"Brand heritage communication,\ + \ Consumer engagement, Tourism revenue, Corporate identity\" ] ;\n hc:corporate_integration \"Fully owned by Heineken N.V.\", \"Marketing department\", \"Brand management division\" ;\n hc:public_access \"Daily visitor hours 10:30-19:30\", \"Paid admission\", \"Self-guided tours\", \"Group bookings available\" ;\n hc:heritage_holdings \"Brewing equipment (1867-present)\", \"Advertising materials archive\", \"Bottle/label collections\", \"Corporate photography\" ;\n hc:has_service [\n a hc:Service ;\n hc:service_name \"Admission tickets\" ;\n hc:price \"\u20AC21\" ;\n hc:has_type hc:CommercialService\n ], [\n a hc:Service ;\n hc:service_name \"Beer tasting experiences\" ;\n hc:has_type hc:CommercialService\n ], [\n a hc:Service ;\n hc:service_name \"Gift shop\" ;\n hc:has_type hc:CommercialService\n ], [\n a hc:Service ;\n hc:service_name \"Event venue rental\" ;\n hc:has_type hc:CommercialService\n ]\ \ ;\n schema:name \"Heineken Experience\" ;\n schema:foundingDate \"1991\" ;\n schema:location \"Stadhouderskade 78, Amsterdam\" ;\n schema:description \"Corporate brand heritage center in original Heineken brewery building (1867), showcasing brewing history and brand development through interactive exhibits and heritage collections\" ;\n schema:url <https://www.heinekenexperience.com/> ;\n foaf:member <https://heinekenexperience.example/staff/curator/001> .\n```\n" exact_mappings: - skos:Concept @@ -147,30 +147,30 @@ classes: - schema:Museum - schema:TouristAttraction slots: - - has_or_had_model - - collects_or_collected - - has_or_had_rationale - - has_or_had_service - - includes_or_included + - has_model + - collect + - has_rationale + - has_service + - include - corporate_integration - - has_or_had_type - - has_or_had_score + - has_type + - has_score slot_usage: - has_or_had_model: + has_model: # range: string inlined: false # Fixed invalid inline for primitive type required: true examples: - value: - has_or_had_label: For-profit brand attraction - has_or_had_description: Admission fees, Merchandise sales, Event rental + has_label: For-profit brand attraction + has_description: Admission fees, Merchandise sales, Event rental - value: - has_or_had_label: Corporate archive - has_or_had_description: Parent company funded, Internal research and compliance + has_label: Corporate archive + has_description: Parent company funded, Internal research and compliance - value: - has_or_had_label: Brand heritage center - has_or_had_description: Event rental, Hospitality, Tourism revenue - collects_or_collected: + has_label: Brand heritage center + has_description: Event rental, Hospitality, Tourism revenue + collect: # range: string # uriorcurie # range: Collection inlined: false # Fixed invalid inline for primitive type @@ -179,20 +179,20 @@ classes: examples: - value: collection_name: Brand Heritage Collection - has_or_had_rationale: + has_rationale: rationale_text: Brand communication, Consumer engagement, Tourism, Identity rationale_category: marketing - value: collection_name: Corporate Archive - has_or_had_rationale: + has_rationale: rationale_text: Legal record-keeping, Product history, IP documentation rationale_category: compliance - value: collection_name: Innovation Archive - has_or_had_rationale: + has_rationale: rationale_text: Corporate culture, Brand storytelling, Innovation rationale_category: corporate_culture - has_or_had_rationale: + has_rationale: # range: string inlined: false # Fixed invalid inline for primitive type required: true @@ -203,7 +203,7 @@ classes: - value: rationale_text: Legal compliance, IP documentation rationale_category: compliance - includes_or_included: + include: # range: string # uriorcurie # range: CommercialCustodianTypes inlined: false # Fixed invalid inline for primitive type @@ -226,7 +226,7 @@ classes: - value: Corporate guests only, Escorted tours, Business hours - value: Vehicle prototypes, Engineering drawings, Patents - value: Perfume formulas, Bottle designs, Fashion sketches - has_or_had_service: + has_service: # range: string inlined: false # Fixed invalid inline for primitive type multivalued: true @@ -234,15 +234,15 @@ classes: examples: - value: price: "\u20AC21" - has_or_had_type: CommercialService + has_type: CommercialService - value: price: Included in admission - has_or_had_type: CommercialService + has_type: CommercialService - value: - has_or_had_type: CommercialService + has_type: CommercialService - value: - has_or_had_type: CommercialService + has_type: CommercialService - value: - has_or_had_type: CommercialService - has_or_had_type: + has_type: CommercialService + has_type: equals_expression: '["hc:CommercialOrganizationType"]' diff --git a/schemas/20251121/linkml/modules/classes/CommissionRate.yaml b/schemas/20251121/linkml/modules/classes/CommissionRate.yaml index 7690752384..bac32e966d 100644 --- a/schemas/20251121/linkml/modules/classes/CommissionRate.yaml +++ b/schemas/20251121/linkml/modules/classes/CommissionRate.yaml @@ -8,7 +8,7 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_percentage + - ../slots/20260202_matang/has_percentage default_prefix: hc classes: CommissionRate: @@ -20,14 +20,14 @@ classes: \ Percentage class.\n\n**ART MARKET STANDARDS**:\n\n- **Primary market**: 40-50%\ \ standard (gallery takes half)\n- **Secondary market**: 10-20% (resale commission)\n\ - **Auction**: 10-25% buyer's premium + seller's commission\n\n**EXAMPLE**:\n\ - \n```yaml\ntakes_or_took_comission:\n rate_type: \"primary_market\"\n has_or_had_percentage:\n\ + \n```yaml\ntakes_or_took_comission:\n rate_type: \"primary_market\"\n has_percentage:\n\ \ percentage_value: 50\n percentage_display: \"50%\"\n```\n" close_mappings: - schema:PriceSpecification slots: - - has_or_had_percentage + - has_percentage slot_usage: - has_or_had_percentage: + has_percentage: range: Percentage inlined: true required: true @@ -35,11 +35,11 @@ classes: - value: null examples: - value: - has_or_had_percentage: null + has_percentage: null - value: - has_or_had_percentage: null + has_percentage: null - value: - has_or_had_percentage: null + has_percentage: null comments: - Created 2026-01-22 from commission_rate migration (Rule 53) - Provides structured commission representation diff --git a/schemas/20251121/linkml/modules/classes/CommunityArchive.yaml b/schemas/20251121/linkml/modules/classes/CommunityArchive.yaml index e3d3cec05e..51859a47d2 100644 --- a/schemas/20251121/linkml/modules/classes/CommunityArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/CommunityArchive.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: CommunityArchive: diff --git a/schemas/20251121/linkml/modules/classes/CommunityArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/CommunityArchiveRecordSetType.yaml index d84ccf1549..d662e5fc35 100644 --- a/schemas/20251121/linkml/modules/classes/CommunityArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/CommunityArchiveRecordSetType.yaml @@ -5,9 +5,9 @@ prefixes: linkml: https://w3id.org/linkml/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: CommunityArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by CommunityArchive custodians. @@ -15,14 +15,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - CommunityArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/CommunityArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/CommunityArchiveRecordSetTypes.yaml index dcad5f0a3e..601ae898aa 100644 --- a/schemas/20251121/linkml/modules/classes/CommunityArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/CommunityArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./CommunityArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - CommunityArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CommunityOrganizationFonds @@ -78,15 +78,15 @@ classes: - CommunityArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: OralHistoryCollection @@ -115,15 +115,15 @@ classes: - CommunityArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: LocalEventDocumentation diff --git a/schemas/20251121/linkml/modules/classes/CompanyArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/CompanyArchiveRecordSetType.yaml index 650913ded0..4ac103c487 100644 --- a/schemas/20251121/linkml/modules/classes/CompanyArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/CompanyArchiveRecordSetType.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to classes: CompanyArchiveRecordSetType: abstract: true @@ -29,10 +29,10 @@ classes: - PersonnelRecordsSeries - CorporatePublicationsSeries slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:CommercialOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/CompanyArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/CompanyArchiveRecordSetTypes.yaml index 4bd5f7c597..c054eb3575 100644 --- a/schemas/20251121/linkml/modules/classes/CompanyArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/CompanyArchiveRecordSetTypes.yaml @@ -14,8 +14,8 @@ default_prefix: hc imports: - ./CompanyArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/legal_note - ../slots/organizational_principle - ../slots/organizational_principle_uri @@ -81,8 +81,8 @@ classes: - CompanyArchives - CouncilGovernanceFonds slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - legal_note - organizational_principle - organizational_principle_uri @@ -91,7 +91,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:CommercialOrganizationType"]' record_set_type: equals_string: CorporateGovernanceFonds @@ -174,8 +174,8 @@ classes: ip_note: Product development records are critical for intellectual property protection. May contain trade secrets subject to access restrictions. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -183,7 +183,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:CommercialOrganizationType", "hc:ResearchOrganizationType"]' record_set_type: @@ -256,8 +256,8 @@ classes: brand_heritage_note: Marketing archives are essential for brand continuity and trademark protection. Historical campaigns often reused for nostalgic marketing. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -265,7 +265,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:CommercialOrganizationType", "hc:MuseumType"]' record_set_type: @@ -339,8 +339,8 @@ classes: - rico-rst:Series - StudentRecordSeries slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - privacy_note @@ -349,7 +349,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:CommercialOrganizationType"]' record_set_type: equals_string: PersonnelRecordsSeries @@ -425,8 +425,8 @@ classes: benefit from bibliographic cataloging (ISSN, WorldCat) in addition to archival description. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -434,7 +434,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:CommercialOrganizationType", "hc:LibraryType"]' record_set_type: diff --git a/schemas/20251121/linkml/modules/classes/CompanyArchives.yaml b/schemas/20251121/linkml/modules/classes/CompanyArchives.yaml index b72eccba80..530754636b 100644 --- a/schemas/20251121/linkml/modules/classes/CompanyArchives.yaml +++ b/schemas/20251121/linkml/modules/classes/CompanyArchives.yaml @@ -8,11 +8,11 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_branch - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope + - ../slots/20260202_matang/has_branch + - ../slots/identified_by + - ../slots/20260202_matang/has_scope - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_archive_department_of + - ../slots/20260202_matang/archive_department_of - ../slots/parent_corporation classes: CompanyArchives: @@ -23,12 +23,12 @@ classes: \ Value**:\nCompany archives support:\n- Legal and regulatory compliance\n- Intellectual property protection\n- Corporate identity and branding\n- Historical marketing campaigns\n- Anniversary and commemorative projects\n- Due diligence for mergers and acquisitions\n\n**Related Types**:\n- BankArchive (Q52718263) - Financial institution archives\n- EconomicArchive (Q27032167) - Economic history focus\n- InstitutionalArchive (Q124762372) - Institutional records\n- Department - Formal departmental structure within organization\n- OrganizationBranch - Physical branch locations of archive\n\n**Professional Body**:\nCompany archivists often belong to:\n- International Council on Archives Section for Business Archives\n- Vereinigung deutscher Wirtschaftsarchivare (VdW)\n- Business Archives Council (UK)\n" slots: - parent_corporation - - is_or_was_archive_department_of - - has_or_had_branch - - has_or_had_identifier + - archive_department_of + - has_branch + - identified_by - hold_or_held_record_set_type slot_usage: - has_or_had_identifier: null + identified_by: null hold_or_held_record_set_type: equals_expression: '["hc:CorporateGovernanceFonds", "hc:ProductDevelopmentCollection", "hc:MarketingArchiveCollection", "hc:PersonnelRecordsSeries", "hc:CorporatePublicationsSeries"] diff --git a/schemas/20251121/linkml/modules/classes/CompanyArchivesRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/CompanyArchivesRecordSetType.yaml index 19a9ee9220..1a347c0825 100644 --- a/schemas/20251121/linkml/modules/classes/CompanyArchivesRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/CompanyArchivesRecordSetType.yaml @@ -8,7 +8,7 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_scope + - ../slots/20260202_matang/has_scope classes: CompanyArchivesRecordSetType: is_a: CollectionType @@ -48,4 +48,4 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" slots: - - has_or_had_scope + - has_scope diff --git a/schemas/20251121/linkml/modules/classes/ComplianceStatus.yaml b/schemas/20251121/linkml/modules/classes/ComplianceStatus.yaml index 9131c3a68f..42e0b41d7d 100644 --- a/schemas/20251121/linkml/modules/classes/ComplianceStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/ComplianceStatus.yaml @@ -9,9 +9,9 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type default_prefix: hc classes: ComplianceStatus: @@ -31,15 +31,15 @@ classes: \ been formally evaluated\n\n**Use Cases**:\n- Storage condition compliance\ \ with preservation standards\n- Building compliance with heritage regulations\n\ - Data management compliance with archival standards\n\n**Pattern**:\n```yaml\n\ - has_or_had_status:\n has_or_had_type: COMPLIANT\n standard_reference: \"ISO\ + has_status:\n has_type: COMPLIANT\n standard_reference: \"ISO\ \ 11799:2015\"\n assessment_date: \"2024-06-15\"\n```\n" slots: - - has_or_had_type - - has_or_had_label - - has_or_had_description + - has_type + - has_label + - has_description - remediation_required slot_usage: - has_or_had_type: + has_type: # range: string required: true examples: @@ -47,13 +47,13 @@ classes: - value: NON_COMPLIANT - value: PARTIALLY_COMPLIANT - value: NOT_ASSESSED - has_or_had_label: + has_label: # range: string required: false examples: - value: ISO 11799 Compliant - value: Requires Temperature Control Upgrade - has_or_had_description: + has_description: # range: string required: false exact_mappings: @@ -78,18 +78,18 @@ classes: - Created 2026-01-22 from compliance_status migration (Rule 53) examples: - value: - has_or_had_type: COMPLIANT - has_or_had_label: ISO 11799 Compliant + has_type: COMPLIANT + has_label: ISO 11799 Compliant standard_reference: ISO 11799:2015 - value: - has_or_had_type: PARTIALLY_COMPLIANT - has_or_had_label: Temperature Control Issues + has_type: PARTIALLY_COMPLIANT + has_label: Temperature Control Issues standard_reference: BS 5454:2000 remediation_required: true - value: - has_or_had_type: NON_COMPLIANT - has_or_had_label: Requires Major Renovation + has_type: NON_COMPLIANT + has_label: Requires Major Renovation standard_reference: PAS 197:2009 remediation_required: true - has_or_had_description: Building requires significant upgrades to meet modern + has_description: Building requires significant upgrades to meet modern archival storage standards diff --git a/schemas/20251121/linkml/modules/classes/Component.yaml b/schemas/20251121/linkml/modules/classes/Component.yaml index fe1a6543b5..2c76191329 100644 --- a/schemas/20251121/linkml/modules/classes/Component.yaml +++ b/schemas/20251121/linkml/modules/classes/Component.yaml @@ -11,9 +11,9 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type default_prefix: hc classes: @@ -43,20 +43,20 @@ classes: **Pattern**: ```yaml - has_or_had_component: - - has_or_had_type: StreetNumber - has_or_had_label: "1" + has_component: + - has_type: StreetNumber + has_label: "1" long_name: "1" short_name: "1" ``` slots: - - has_or_had_type - - has_or_had_label - - has_or_had_description + - has_type + - has_label + - has_description slot_usage: - has_or_had_type: + has_type: range: ComponentType multivalued: true required: false @@ -64,7 +64,7 @@ classes: - value: StreetNumber - value: Route - value: Locality - has_or_had_label: + has_label: # range: string required: false examples: @@ -94,8 +94,8 @@ classes: examples: - value: - has_or_had_type: StreetNumber - has_or_had_label: "1" + has_type: StreetNumber + has_label: "1" - value: - has_or_had_type: Locality - has_or_had_label: "Amsterdam" \ No newline at end of file + has_type: Locality + has_label: "Amsterdam" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/ComponentType.yaml b/schemas/20251121/linkml/modules/classes/ComponentType.yaml index e5b2948a3d..aa43926217 100644 --- a/schemas/20251121/linkml/modules/classes/ComponentType.yaml +++ b/schemas/20251121/linkml/modules/classes/ComponentType.yaml @@ -12,8 +12,8 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: @@ -42,17 +42,17 @@ classes: - **Related**: `locn:*` - W3C Location Ontology types slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description slot_usage: - has_or_had_label: + has_label: # range: string required: true examples: - value: "Street Number" - value: "Locality" - has_or_had_description: + has_description: # range: string required: false diff --git a/schemas/20251121/linkml/modules/classes/ComprehensiveOverview.yaml b/schemas/20251121/linkml/modules/classes/ComprehensiveOverview.yaml index 185d7ecc2e..e6211788af 100644 --- a/schemas/20251121/linkml/modules/classes/ComprehensiveOverview.yaml +++ b/schemas/20251121/linkml/modules/classes/ComprehensiveOverview.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: ComprehensiveOverview: class_uri: schema:CreativeWork @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_description + - has_description diff --git a/schemas/20251121/linkml/modules/classes/ComputerTerminal.yaml b/schemas/20251121/linkml/modules/classes/ComputerTerminal.yaml index 14317e2d9a..e42d3b8c0f 100644 --- a/schemas/20251121/linkml/modules/classes/ComputerTerminal.yaml +++ b/schemas/20251121/linkml/modules/classes/ComputerTerminal.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: ComputerTerminal: class_uri: schema:Product description: Computer terminal. slots: - - has_or_had_description + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Concatenation.yaml b/schemas/20251121/linkml/modules/classes/Concatenation.yaml index c85dd811a6..af6f072a60 100644 --- a/schemas/20251121/linkml/modules/classes/Concatenation.yaml +++ b/schemas/20251121/linkml/modules/classes/Concatenation.yaml @@ -8,15 +8,15 @@ prefixes: prov: http://www.w3.org/ns/prov# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: Concatenation: class_uri: prov:Activity slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Condition.yaml b/schemas/20251121/linkml/modules/classes/Condition.yaml index 6d4a2a521e..e8886b6d89 100644 --- a/schemas/20251121/linkml/modules/classes/Condition.yaml +++ b/schemas/20251121/linkml/modules/classes/Condition.yaml @@ -6,8 +6,8 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_type classes: Condition: class_uri: schema:OfferItemCondition @@ -15,14 +15,14 @@ classes: \ the state of preservation, conservation\nneeds, and handling requirements for heritage materials. Used to track\n\ object condition over time and plan conservation interventions.\n\nMaps to schema:OfferItemCondition for interoperability\ \ with general\nitem condition vocabularies.\n\n**Migration (2026-01-18)**:\n- `condition_description` (inline attribute)\ - \ \u2192 `has_or_had_description` slot with `Description` range\n- Per slot_fixes.yaml (Rule 53, 56)\n" + \ \u2192 `has_description` slot with `Description` range\n- Per slot_fixes.yaml (Rule 53, 56)\n" slots: - - has_or_had_type - - has_or_had_description + - has_type + - has_description slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie - has_or_had_description: + has_description: # range: string examples: - value: diff --git a/schemas/20251121/linkml/modules/classes/ConditionPolicy.yaml b/schemas/20251121/linkml/modules/classes/ConditionPolicy.yaml index f59b2a9221..491d1bb3b5 100644 --- a/schemas/20251121/linkml/modules/classes/ConditionPolicy.yaml +++ b/schemas/20251121/linkml/modules/classes/ConditionPolicy.yaml @@ -10,7 +10,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/is_or_was_approved_by + - ../slots/20260202_matang/approved_by - ../slots/standards_compliance classes: ConditionPolicy: @@ -31,12 +31,12 @@ classes: ``` Heritage Object │ - ├── has_or_had_policy → ConditionPolicy (what SHOULD be) + ├── has_policy → ConditionPolicy (what SHOULD be) │ ├── policy_name: "Conservation-grade storage" │ ├── temperature_setpoint: 18°C ±2°C │ └── humidity_setpoint: 50% ±5% │ - └── has_or_had_condition → Condition (what IS) + └── has_condition → Condition (what IS) ├── temperature: 22°C ✗ (exceeds policy) └── humidity: 48% ✓ (within policy) ``` @@ -53,10 +53,10 @@ classes: - crm:E29_Design_or_Procedure slots: - standards_compliance - - is_or_was_approved_by + - approved_by slot_usage: standards_compliance: - is_or_was_approved_by: + approved_by: annotations: custodian_types: '["*"]' custodian_types_rationale: Condition policies apply to all heritage types. diff --git a/schemas/20251121/linkml/modules/classes/ConditionState.yaml b/schemas/20251121/linkml/modules/classes/ConditionState.yaml index 5c49b54903..4a62c7bee3 100644 --- a/schemas/20251121/linkml/modules/classes/ConditionState.yaml +++ b/schemas/20251121/linkml/modules/classes/ConditionState.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_type default_prefix: hc classes: ConditionState: @@ -18,7 +18,7 @@ classes: \ State, which describes \"the physical condition\nof an object at a specific time, typically relevant for conservation.\"\ \n**USE CASES**:\n1. **Conservation Records**: Before/after treatment states\n - `initial_of_the_initial`: Pre-treatment\ \ condition\n - `final_of_the_final`: Post-treatment condition\n2. **Condition Assessments**: Periodic condition surveys\n\ - 3. **Loan Records**: Condition at departure/return\n**RELATION TO ConditionType**:\n- Uses `has_or_had_type` with `ConditionType`\ + 3. **Loan Records**: Condition at departure/return\n**RELATION TO ConditionType**:\n- Uses `has_type` with `ConditionType`\ \ subclasses for classification\n- E.g., ExcellentCondition, GoodCondition, FairCondition, PoorCondition, CriticalCondition\n\ **TEMPORAL SEMANTICS**:\n- Each ConditionState instance represents a snapshot at a moment in time\n- Multiple states\ \ can be tracked for the same object over time\n**Migration (2026-01-22)**:\n- `condition_after` \u2192 `final_of_the_final`\ @@ -29,15 +29,15 @@ classes: close_mappings: - schema:OfferItemCondition slots: - - has_or_had_type - - has_or_had_description + - has_type + - has_description slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie examples: - value: GoodCondition - value: PoorCondition - has_or_had_description: + has_description: # range: string examples: - value: @@ -49,14 +49,14 @@ classes: specificity_rationale: Moderately specific - used in conservation and preservation contexts. examples: - value: - has_or_had_type: GoodCondition - has_or_had_description: + has_type: GoodCondition + has_description: description_text: Object stabilized after treatment. Surface cleaned, minor losses filled. - value: - has_or_had_type: PoorCondition - has_or_had_description: + has_type: PoorCondition + has_description: description_text: Significant foxing, loose binding, torn pages 45-48. - value: - has_or_had_type: FairCondition - has_or_had_description: + has_type: FairCondition + has_description: description_text: Minor wear consistent with age, no active deterioration. diff --git a/schemas/20251121/linkml/modules/classes/ConditionType.yaml b/schemas/20251121/linkml/modules/classes/ConditionType.yaml index 4f58e3b96e..a11d5c165c 100644 --- a/schemas/20251121/linkml/modules/classes/ConditionType.yaml +++ b/schemas/20251121/linkml/modules/classes/ConditionType.yaml @@ -13,18 +13,18 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: ConditionType: class_uri: skos:Concept abstract: true description: "Abstract base class for condition type classification.\n\nCovers TWO distinct semantic domains:\n\n**1. Physical/Preservation Conditions**:\nCondition states for heritage objects (excellent, good, fair, poor, critical).\nMay include specialized categories for different material types.\n\n**2. Access/Use Conditions** (added 2026-01-22):\nRequirements or restrictions on accessing or using materials. Includes:\n- AccessCondition: Appointment requirements, reading room rules\n- UseCondition: Photography restrictions, handling requirements\n- ReproductionCondition: Permissions, fees, attribution requirements\n- LoanCondition: Insurance, environmental, courier requirements\n- DigitizationCondition: Quality standards, metadata requirements\n\nPer slot_fixes.yaml migration: `condition` \u2192 `poses_or_posed_condition` + Condition (Rule 53)\n" slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ConditionofAccess.yaml b/schemas/20251121/linkml/modules/classes/ConditionofAccess.yaml index c1a8859b67..4eae13a43e 100644 --- a/schemas/20251121/linkml/modules/classes/ConditionofAccess.yaml +++ b/schemas/20251121/linkml/modules/classes/ConditionofAccess.yaml @@ -4,13 +4,13 @@ title: Condition of Access description: A structured condition of access. imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_name classes: ConditionofAccess: class_uri: rico:Rule annotations: custodian_types: '["*"]' slots: - - has_or_had_name - - has_or_had_description + - has_name + - has_description diff --git a/schemas/20251121/linkml/modules/classes/Confidence.yaml b/schemas/20251121/linkml/modules/classes/Confidence.yaml index 718da3848d..d66864a908 100644 --- a/schemas/20251121/linkml/modules/classes/Confidence.yaml +++ b/schemas/20251121/linkml/modules/classes/Confidence.yaml @@ -10,7 +10,7 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: Confidence: class_uri: sosa:Result @@ -18,7 +18,7 @@ classes: - dqv:QualityMeasurement description: A confidence value or score. slots: - - has_or_had_value + - has_value annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ConfidenceLevel.yaml b/schemas/20251121/linkml/modules/classes/ConfidenceLevel.yaml index 82708ddc60..7c19ba826a 100644 --- a/schemas/20251121/linkml/modules/classes/ConfidenceLevel.yaml +++ b/schemas/20251121/linkml/modules/classes/ConfidenceLevel.yaml @@ -8,18 +8,18 @@ prefixes: dqv: http://www.w3.org/ns/dqv# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_score default_prefix: hc classes: ConfidenceLevel: class_uri: dqv:QualityMeasurement slots: - - has_or_had_score - - has_or_had_description + - has_score + - has_description slot_usage: - has_or_had_score: + has_score: range: float required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/ConfidenceMeasure.yaml b/schemas/20251121/linkml/modules/classes/ConfidenceMeasure.yaml index 0a2a4684de..d448ba1f58 100644 --- a/schemas/20251121/linkml/modules/classes/ConfidenceMeasure.yaml +++ b/schemas/20251121/linkml/modules/classes/ConfidenceMeasure.yaml @@ -11,11 +11,11 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_method - - ../slots/has_or_had_method # was: confidence_method - - ../slots/has_or_had_score - - ../slots/has_or_had_value - - ../slots/has_or_had_value # was: confidence_value + - ../slots/20260202_matang/has_method + - ../slots/20260202_matang/has_method # was: confidence_method + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_value + - ../slots/20260202_matang/has_value # was: confidence_value classes: ConfidenceMeasure: class_uri: prov:Confidence @@ -44,16 +44,16 @@ classes: - schema:PropertyValue - oa:Motivation slots: - - has_or_had_method - - has_or_had_value - - has_or_had_score + - has_method + - has_value + - has_score slot_usage: - has_or_had_value: + has_value: range: float minimum_value: 0.0 maximum_value: 1.0 required: true - has_or_had_method: + has_method: # range: string annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ConfidenceMethod.yaml b/schemas/20251121/linkml/modules/classes/ConfidenceMethod.yaml index abec3a474b..ffc8302bf6 100644 --- a/schemas/20251121/linkml/modules/classes/ConfidenceMethod.yaml +++ b/schemas/20251121/linkml/modules/classes/ConfidenceMethod.yaml @@ -8,9 +8,9 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_type default_prefix: hc classes: ConfidenceMethod: @@ -29,23 +29,23 @@ classes: close_mappings: - schema:HowTo slots: - - has_or_had_type - - has_or_had_description - - has_or_had_identifier + - has_type + - has_description + - identified_by slot_usage: - has_or_had_type: + has_type: # range: string required: true examples: - value: fuzzy_matching - value: ml_prediction - value: human_assessment - has_or_had_description: + has_description: # range: string required: false examples: - value: Jaro-Winkler similarity with 0.7 threshold - has_or_had_identifier: + identified_by: # range: string required: false examples: @@ -58,13 +58,13 @@ classes: specificity_rationale: Low specificity - fundamental methodology documentation. examples: - value: - has_or_had_type: fuzzy_matching - has_or_had_description: Levenshtein distance with ratio normalization - has_or_had_identifier: rapidfuzz-levenshtein + has_type: fuzzy_matching + has_description: Levenshtein distance with ratio normalization + identified_by: rapidfuzz-levenshtein - value: - has_or_had_type: llm_classification - has_or_had_description: GPT-4 based entity type classification - has_or_had_identifier: gpt-4-turbo-2024-04-09 + has_type: llm_classification + has_description: GPT-4 based entity type classification + identified_by: gpt-4-turbo-2024-04-09 comments: - Created from slot_fixes.yaml migration (2026-01-19) - Documents confidence calculation methodology diff --git a/schemas/20251121/linkml/modules/classes/ConfidenceScore.yaml b/schemas/20251121/linkml/modules/classes/ConfidenceScore.yaml index 4e1e61c4dd..844c4b84cb 100644 --- a/schemas/20251121/linkml/modules/classes/ConfidenceScore.yaml +++ b/schemas/20251121/linkml/modules/classes/ConfidenceScore.yaml @@ -11,9 +11,9 @@ prefixes: imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_method - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_method + - ../slots/20260202_matang/has_score default_prefix: hc classes: @@ -23,9 +23,9 @@ classes: **MIGRATION**: Replaces simple `confidence_score` float slot with structured class: - - `has_or_had_score`: The numeric value (0.0-1.0) - - `has_or_had_method`: How confidence was calculated - - `has_or_had_description`: Explanation of confidence assessment + - `has_score`: The numeric value (0.0-1.0) + - `has_method`: How confidence was calculated + - `has_description`: Explanation of confidence assessment **USAGE**: - Process quality assessment (methodology confidence) @@ -49,12 +49,12 @@ classes: - schema:Rating slots: - - has_or_had_score - - has_or_had_method - - has_or_had_description + - has_score + - has_method + - has_description slot_usage: - has_or_had_score: + has_score: range: float minimum_value: 0.0 maximum_value: 1.0 @@ -63,14 +63,14 @@ classes: - value: 0.95 - value: 0.50 - value: 0.10 - has_or_had_method: + has_method: # range: string required: false examples: - value: "fuzzy_string_matching" - value: "xpath_extraction_validation" - value: "llm_classification" - has_or_had_description: + has_description: # range: string required: false examples: @@ -86,14 +86,14 @@ classes: examples: - value: - has_or_had_score: 0.95 - has_or_had_method: "xpath_extraction" - has_or_had_description: "Exact match found at expected XPath location" + has_score: 0.95 + has_method: "xpath_extraction" + has_description: "Exact match found at expected XPath location" - value: - has_or_had_score: 0.65 - has_or_had_method: "fuzzy_string_matching" - has_or_had_description: "Moderate similarity to reference name (Levenshtein ratio 0.85)" + has_score: 0.65 + has_method: "fuzzy_string_matching" + has_description: "Moderate similarity to reference name (Levenshtein ratio 0.85)" comments: - Created from slot_fixes.yaml migration (2026-01-19) - Replaces simple confidence_score float slot - - Used with is_or_was_generated_by slot for provenance + - Used with generated_by slot for provenance diff --git a/schemas/20251121/linkml/modules/classes/ConfidenceThreshold.yaml b/schemas/20251121/linkml/modules/classes/ConfidenceThreshold.yaml index ab5636ab8f..2c677ff11e 100644 --- a/schemas/20251121/linkml/modules/classes/ConfidenceThreshold.yaml +++ b/schemas/20251121/linkml/modules/classes/ConfidenceThreshold.yaml @@ -7,7 +7,7 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description default_prefix: hc classes: ConfidenceThreshold: @@ -20,16 +20,16 @@ classes: \ Minimum confidence score for acceptance (0.0-1.0)\n- **PROBABILITY**: Probability\ \ threshold for classification\n- **QUALITY**: Minimum quality score for data\ \ acceptance\n- **SIMILARITY**: Minimum similarity score for matching\n\n**EXAMPLE**:\n\ - ```yaml\nhas_or_had_threshold:\n - threshold_value: 0.85\n threshold_type:\ + ```yaml\nhas_threshold:\n - threshold_value: 0.85\n threshold_type:\ \ CONFIDENCE\n threshold_description: \"Entity must have ≥85% confidence\ \ to be extracted\"\n - threshold_value: 0.70\n threshold_type: SIMILARITY\n\ \ threshold_description: \"Name matches require ≥70% similarity\"\n```\n\n\ - **Migration (2026-01-22)**:\nCreated as part of confidence_threshold → has_or_had_threshold\ + **Migration (2026-01-22)**:\nCreated as part of confidence_threshold → has_threshold\ \ migration\nper slot_fixes.yaml (Rule 53).\n" slots: - - has_or_had_description + - has_description slot_usage: - has_or_had_description: + has_description: # range: string annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/classes/ConfidenceValue.yaml b/schemas/20251121/linkml/modules/classes/ConfidenceValue.yaml index a90b253233..60ddd7734b 100644 --- a/schemas/20251121/linkml/modules/classes/ConfidenceValue.yaml +++ b/schemas/20251121/linkml/modules/classes/ConfidenceValue.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: ConfidenceValue: class_uri: schema:StructuredValue description: Confidence value. slots: - - has_or_had_value + - has_value annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Conflict.yaml b/schemas/20251121/linkml/modules/classes/Conflict.yaml index d6da50aaa6..a531e4caa6 100644 --- a/schemas/20251121/linkml/modules/classes/Conflict.yaml +++ b/schemas/20251121/linkml/modules/classes/Conflict.yaml @@ -10,11 +10,11 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_provenance - - ../slots/has_or_had_type - - ../slots/is_or_was_based_on + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/based_on - ../slots/temporal_extent classes: Conflict: @@ -24,8 +24,8 @@ classes: \ event that impacts heritage institutions. This class\ncaptures the CONFLICT\ \ ITSELF, while ConflictStatus captures the\nSTATUS of a specific custodian\ \ affected by the conflict.\n\n**SEMANTIC PATTERN**:\n\n```\nCustodian\n │\n\ - \ └── is_or_was_involved_in → Conflict (THIS CLASS)\n ├── has_or_had_type\ - \ → ConflictType (ARMED_CONFLICT, NATURAL_DISASTER, etc.)\n ├── has_or_had_label:\ + \ └── involved_in → Conflict (THIS CLASS)\n ├── has_type\ + \ → ConflictType (ARMED_CONFLICT, NATURAL_DISASTER, etc.)\n ├── has_label:\ \ \"Gaza War 2023-2024\"\n ├── temporal_extent → TimeSpan (duration of\ \ conflict)\n └── involvement_status → ConflictStatus (status of THIS\ \ custodian)\n```\n\n**DISTINCTION FROM ConflictStatus**:\n- **Conflict** (THIS\ @@ -48,16 +48,16 @@ classes: related_mappings: - prov:Activity slots: - - has_or_had_type - - has_or_had_label - - has_or_had_description + - has_type + - has_label + - has_description - temporal_extent - - has_or_had_provenance + - has_provenance slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie required: true - has_or_had_label: + has_label: examples: - value: label_text: Gaza War 2023-2024 @@ -65,22 +65,22 @@ classes: - value: label_text: Syrian Civil War language: en - has_or_had_description: null + has_description: null temporal_extent: examples: - value: begin_of_the_begin: '2023-10-07' end_of_the_end: null - has_or_had_provenance: + has_provenance: range: Provenance inlined: true examples: - value: - is_or_was_based_on: - has_or_had_label: UNESCO Cultural Heritage in Gaza Assessment + based_on: + has_label: UNESCO Cultural Heritage in Gaza Assessment - value: - is_or_was_based_on: - has_or_had_label: Librarians and Archivists with Palestine - Gaza Report + based_on: + has_label: Librarians and Archivists with Palestine - Gaza Report 2024 annotations: custodian_types: '["*"]' @@ -93,15 +93,15 @@ classes: - Enables linking multiple custodians to the same conflict event examples: - value: - has_or_had_type: ARMED_CONFLICT - has_or_had_label: + has_type: ARMED_CONFLICT + has_label: label_text: Gaza War 2023-2024 language: en - has_or_had_description: + has_description: description_text: Armed conflict beginning October 2023 affecting Gaza heritage institutions temporal_extent: begin_of_the_begin: '2023-10-07' - has_or_had_provenance: - is_or_was_based_on: - has_or_had_label: Librarians and Archivists with Palestine + has_provenance: + based_on: + has_label: Librarians and Archivists with Palestine diff --git a/schemas/20251121/linkml/modules/classes/ConflictStatus.yaml b/schemas/20251121/linkml/modules/classes/ConflictStatus.yaml index 9f96ab5739..3379e9491f 100644 --- a/schemas/20251121/linkml/modules/classes/ConflictStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/ConflictStatus.yaml @@ -5,8 +5,8 @@ imports: - linkml:types - ../enums/ConflictStatusEnum - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_score - ../slots/is_rebuilding - ../slots/reported_date prefixes: @@ -57,7 +57,7 @@ classes: - https://github.com/nde-lab/glam/blob/main/frontend/src/components/map/CustodianTimeline.tsx - https://github.com/nde-lab/glam/blob/main/scripts/convert_palestinian_to_custodian.py slots: - - has_or_had_score + - has_score - reported_date - is_rebuilding annotations: diff --git a/schemas/20251121/linkml/modules/classes/Connection.yaml b/schemas/20251121/linkml/modules/classes/Connection.yaml index 6ce6300c8b..04852796ba 100644 --- a/schemas/20251121/linkml/modules/classes/Connection.yaml +++ b/schemas/20251121/linkml/modules/classes/Connection.yaml @@ -14,8 +14,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: Connection: class_uri: skos:Concept @@ -25,5 +25,5 @@ classes: specificity_rationale: "Generic utility class created during migration" custodian_types: '["*"]' slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description diff --git a/schemas/20251121/linkml/modules/classes/ConnectionDegree.yaml b/schemas/20251121/linkml/modules/classes/ConnectionDegree.yaml index 4b45f615f0..fbf7e107d2 100644 --- a/schemas/20251121/linkml/modules/classes/ConnectionDegree.yaml +++ b/schemas/20251121/linkml/modules/classes/ConnectionDegree.yaml @@ -11,8 +11,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_type classes: ConnectionDegree: class_uri: hc:ConnectionDegree @@ -34,8 +34,8 @@ classes: ``` PersonConnection │ - └── has_or_had_degree → ConnectionDegree (THIS CLASS) - └── has_or_had_type → ConnectionDegreeType (FIRST, SECOND, THIRD_PLUS) + └── has_degree → ConnectionDegree (THIS CLASS) + └── has_type → ConnectionDegreeType (FIRST, SECOND, THIRD_PLUS) ``` **MIGRATION NOTE** (Rule 53, 2026-01-22): @@ -46,17 +46,17 @@ classes: - schema:QuantitativeValue slots: - - has_or_had_type - - has_or_had_description + - has_type + - has_description slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie required: true examples: - value: FIRST - value: SECOND - has_or_had_description: + has_description: annotations: custodian_types: '["*"]' custodian_types_rationale: Connection degrees apply to any heritage sector network. @@ -70,8 +70,8 @@ classes: examples: - value: - has_or_had_type: FIRST + has_type: FIRST - value: - has_or_had_type: SECOND - has_or_had_description: + has_type: SECOND + has_description: description_text: "Connected through mutual colleague" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/ConnectionDegreeType.yaml b/schemas/20251121/linkml/modules/classes/ConnectionDegreeType.yaml index 1cbc6de0fe..d93a0c8ed6 100644 --- a/schemas/20251121/linkml/modules/classes/ConnectionDegreeType.yaml +++ b/schemas/20251121/linkml/modules/classes/ConnectionDegreeType.yaml @@ -15,8 +15,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: ConnectionDegreeType: class_uri: skos:Concept @@ -62,11 +62,11 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description slot_usage: - has_or_had_label: - has_or_had_description: + has_label: + has_description: annotations: custodian_types: '["*"]' custodian_types_rationale: Connection degrees apply to all heritage sector networks. diff --git a/schemas/20251121/linkml/modules/classes/ConnectionNetwork.yaml b/schemas/20251121/linkml/modules/classes/ConnectionNetwork.yaml index ad2899b8f8..769c5d665a 100644 --- a/schemas/20251121/linkml/modules/classes/ConnectionNetwork.yaml +++ b/schemas/20251121/linkml/modules/classes/ConnectionNetwork.yaml @@ -12,8 +12,8 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_member - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_member + - ../slots/20260202_matang/has_score - ../slots/network_analysis - ../slots/note - ../slots/source_metadata @@ -62,16 +62,16 @@ classes: close_mappings: - prov:Collection slots: - - has_or_had_member + - has_member - network_analysis - source_metadata - - has_or_had_score + - has_score slot_usage: source_metadata: range: ConnectionSourceMetadata required: true inlined: true - has_or_had_member: + has_member: range: PersonConnection required: true multivalued: true diff --git a/schemas/20251121/linkml/modules/classes/ConnectionSourceMetadata.yaml b/schemas/20251121/linkml/modules/classes/ConnectionSourceMetadata.yaml index d37e8920e8..55779467f9 100644 --- a/schemas/20251121/linkml/modules/classes/ConnectionSourceMetadata.yaml +++ b/schemas/20251121/linkml/modules/classes/ConnectionSourceMetadata.yaml @@ -18,9 +18,9 @@ imports: - linkml:types - ../enums/ScrapeMethodEnum - ../slots/connections_extracted - - ../slots/has_or_had_label - - ../slots/has_or_had_profile - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_profile + - ../slots/20260202_matang/has_score - ../slots/note - ../slots/scrape_method - ../slots/scraped_timestamp @@ -62,9 +62,9 @@ classes: - scrape_method - scraped_timestamp - source_url - - has_or_had_label - - has_or_had_profile - - has_or_had_score + - has_label + - has_profile + - has_score slot_usage: source_url: range: uri @@ -81,13 +81,13 @@ classes: required: true examples: - value: alexandr-belov-bb547b46 - has_or_had_label: + has_label: # range: string inlined: false # Fixed invalid inline for primitive type required: true examples: - value: "Label:\n label_value: \"Giovanna Fossati\"\n label_type: \"person_name\"\n" - has_or_had_profile: + has_profile: range: SocialMediaProfile inlined: true required: true @@ -114,7 +114,7 @@ classes: comments: - Aligns with PROV-O Activity pattern - scraped_timestamp maps to prov:endedAtTime - - has_or_had_profile links to SocialMediaProfile representing the LinkedIn profile analyzed + - has_profile links to SocialMediaProfile representing the LinkedIn profile analyzed annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ConservationLab.yaml b/schemas/20251121/linkml/modules/classes/ConservationLab.yaml index b29cb8d4f7..c974cce980 100644 --- a/schemas/20251121/linkml/modules/classes/ConservationLab.yaml +++ b/schemas/20251121/linkml/modules/classes/ConservationLab.yaml @@ -3,18 +3,18 @@ name: conservation_lab_class title: ConservationLab Class imports: - linkml:types - - ../slots/accepts_or_accepted + - ../slots/accept - ../slots/conservation_specialization - - ../slots/has_or_had_description - - ../slots/has_or_had_equipment - - ../slots/has_or_had_equipment_type - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_equipment + - ../slots/20260202_matang/has_equipment_type + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score - ../slots/is_accredited - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by - ../slots/safety_certification prefixes: linkml: https://w3id.org/linkml/ @@ -31,8 +31,8 @@ classes: is_a: ReconstructedEntity class_uri: org:Site description: "Conservation or restoration laboratory of a heritage custodian.\n\n**DEFINITION**:\n\nA ConservationLab is a specialized facility where conservation professionals\nperform preventive conservation, remedial treatment, and restoration of\nheritage materials. These labs require specialized equipment, climate control,\nand safety features for working with collection objects.\n\n**GETTY AAT ALIGNMENT**:\n\n`aat:300263557` (conservation laboratories) - \"Laboratories where objects,\ndocuments, works of art, or specimens are examined, tested, and treated\nfor preservation or restoration.\"\n\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Primary Function | Staff |\n|------|------------------|-------|\n| **ConservationLab** | Object treatment/preservation | Conservators |\n| ResearchCenter | Academic research | Researchers |\n| Storage | Collection housing | Collections staff |\n| AdministrativeOffice | Back-office operations | Admin staff |\n\n**TYPICAL CHARACTERISTICS**:\n\ - \n- **Specialized equipment**: Microscopes, fume hoods, treatment tables\n- **Climate control**: Precise temperature/humidity for materials\n- **Safety features**: Ventilation, chemical storage, fire suppression\n- **Restricted access**: Conservation staff only (has_or_had_riskous materials)\n- **Documentation systems**: Treatment records, imaging equipment\n\n**CONSERVATION SPECIALIZATIONS**:\n\nLabs may specialize in specific material types:\n- Paper/book conservation (archives, libraries)\n- Paintings conservation (museums, galleries)\n- Textile conservation (costume, ethnographic collections)\n- Objects conservation (3D artifacts, sculpture)\n- Photographic conservation (film, prints, negatives)\n- Digital preservation (born-digital materials)\n\n**USE CASES**:\n\n1. **Museum Conservation Department**:\n ```yaml\n ConservationLab:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/rijksmuseum-conservation\"\n has_or_had_label:\n label_text: \"Rijksmuseum Conservation\ - \ Studio\"\n conservation_specialization:\n - \"Paintings\"\n - \"Works on paper\"\n - \"Furniture\"\n has_imaging_equipment: true\n is_accredited: true\n ```\n\n2. **Archive Paper Conservation**:\n ```yaml\n ConservationLab:\n has_or_had_label:\n label_text: \"Nationaal Archief Restauratie Atelier\"\n conservation_specialization:\n - \"Paper\"\n - \"Parchment\"\n - \"Seals\"\n has_deacidification_facility: true\n ```\n\n**CIDOC-CRM ALIGNMENT**:\n\nConservation activities map to:\n- `crm:E11_Modification` - Physical changes to objects\n- `crm:E14_Condition_Assessment` - Documentation of condition\n- `crm:E79_Part_Addition` / `crm:E80_Part_Removal` - Treatment actions\n" + \n- **Specialized equipment**: Microscopes, fume hoods, treatment tables\n- **Climate control**: Precise temperature/humidity for materials\n- **Safety features**: Ventilation, chemical storage, fire suppression\n- **Restricted access**: Conservation staff only (has_riskous materials)\n- **Documentation systems**: Treatment records, imaging equipment\n\n**CONSERVATION SPECIALIZATIONS**:\n\nLabs may specialize in specific material types:\n- Paper/book conservation (archives, libraries)\n- Paintings conservation (museums, galleries)\n- Textile conservation (costume, ethnographic collections)\n- Objects conservation (3D artifacts, sculpture)\n- Photographic conservation (film, prints, negatives)\n- Digital preservation (born-digital materials)\n\n**USE CASES**:\n\n1. **Museum Conservation Department**:\n ```yaml\n ConservationLab:\n identified_by: \"https://nde.nl/ontology/hc/aux/rijksmuseum-conservation\"\n has_label:\n label_text: \"Rijksmuseum Conservation\ + \ Studio\"\n conservation_specialization:\n - \"Paintings\"\n - \"Works on paper\"\n - \"Furniture\"\n has_imaging_equipment: true\n is_accredited: true\n ```\n\n2. **Archive Paper Conservation**:\n ```yaml\n ConservationLab:\n has_label:\n label_text: \"Nationaal Archief Restauratie Atelier\"\n conservation_specialization:\n - \"Paper\"\n - \"Parchment\"\n - \"Seals\"\n has_deacidification_facility: true\n ```\n\n**CIDOC-CRM ALIGNMENT**:\n\nConservation activities map to:\n- `crm:E11_Modification` - Physical changes to objects\n- `crm:E14_Condition_Assessment` - Documentation of condition\n- `crm:E79_Part_Addition` / `crm:E80_Part_Removal` - Treatment actions\n" exact_mappings: - aat:300263557 close_mappings: @@ -44,26 +44,26 @@ classes: - crm:E14_Condition_Assessment - schema:ResearchOrganization slots: - - accepts_or_accepted + - accept - conservation_specialization - - has_or_had_equipment + - has_equipment - is_accredited - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description - safety_certification - - has_or_had_quantity - - has_or_had_score - - is_or_was_derived_from - - is_or_was_generated_by + - has_quantity + - has_score + - derived_from + - generated_by slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/rijksmuseum-conservation - has_or_had_label: + has_label: # range: string inlined: false # Fixed invalid inline for primitive type required: true @@ -74,7 +74,7 @@ classes: label_text: Nationaal Archief Restauratie Atelier - value: label_text: KB Preservation Laboratory - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type examples: @@ -87,21 +87,21 @@ classes: - value: Paintings - value: Works on paper - value: Furniture - has_or_had_equipment_type: + has_equipment_type: range: EquipmentType multivalued: true inlined: true inlined_as_list: true examples: - value: - has_or_had_label: Stereomicroscope - has_or_had_type: MicroscopyEquipment + has_label: Stereomicroscope + has_type: MicroscopyEquipment - value: - has_or_had_label: X-ray fluorescence spectrometer - has_or_had_type: AnalyticalEquipment + has_label: X-ray fluorescence spectrometer + has_type: AnalyticalEquipment - value: - has_or_had_label: Suction table - has_or_had_type: PaperConservationEquipment + has_label: Suction table + has_type: PaperConservationEquipment safety_certification: # range: string multivalued: true @@ -112,20 +112,20 @@ classes: examples: - value: true - value: ICON - Institute of Conservation - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type - accepts_or_accepted: + accept: range: ExternalWork inlined: true multivalued: true examples: - value: - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false comments: @@ -140,49 +140,49 @@ classes: - https://icon.org.uk/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/rijksmuseum-conservation - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/rijksmuseum-conservation + has_label: label_text: Rijksmuseum Conservation Studio - has_or_had_description: + has_description: description_text: State-of-the-art conservation studio specializing in Dutch Golden Age paintings, works on paper, and decorative arts. conservation_specialization: - Paintings - Works on paper - Furniture - Metalwork - has_or_had_equipment_type: - - has_or_had_label: Stereomicroscopes - - has_or_had_label: X-ray fluorescence spectrometer - - has_or_had_label: Infrared reflectography system - - has_or_had_label: High-resolution digital imaging + has_equipment_type: + - has_label: Stereomicroscopes + - has_label: X-ray fluorescence spectrometer + - has_label: Infrared reflectography system + - has_label: High-resolution digital imaging has_fume_hoods: true is_accredited: true accreditation_body: VeRes - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type - accepts_or_accepted: [] + accept: [] - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/na-restauratie - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/na-restauratie + has_label: label_text: Nationaal Archief Restauratie Atelier - has_or_had_description: + has_description: description_text: Paper and parchment conservation workshop serving the national archives. Specializes in historical documents, maps, and seals. conservation_specialization: - Paper - Parchment - Seals - Maps and plans - has_or_had_equipment_type: - - has_or_had_label: Leaf casting machine - - has_or_had_label: Suction tables - - has_or_had_label: Book presses - - has_or_had_label: Ultrasonic humidifiers + has_equipment_type: + - has_label: Leaf casting machine + - has_label: Suction tables + - has_label: Book presses + - has_label: Ultrasonic humidifiers has_fume_hoods: true - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type - accepts_or_accepted: + accept: - work_type: paper_conservation - work_type: seal_restoration annotations: diff --git a/schemas/20251121/linkml/modules/classes/ConservationPlan.yaml b/schemas/20251121/linkml/modules/classes/ConservationPlan.yaml index 4c91ab585f..ef68e23b2b 100644 --- a/schemas/20251121/linkml/modules/classes/ConservationPlan.yaml +++ b/schemas/20251121/linkml/modules/classes/ConservationPlan.yaml @@ -9,15 +9,15 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: ConservationPlan: class_uri: crm:E29_Design_or_Procedure slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ConservationRecord.yaml b/schemas/20251121/linkml/modules/classes/ConservationRecord.yaml index 24958a384b..c9668cbce5 100644 --- a/schemas/20251121/linkml/modules/classes/ConservationRecord.yaml +++ b/schemas/20251121/linkml/modules/classes/ConservationRecord.yaml @@ -21,11 +21,11 @@ imports: - ../slots/cost_currency - ../slots/describes_or_described - ../slots/final_of_the_final - - ../slots/has_or_had_condition - - ../slots/has_or_had_description - - ../slots/has_or_had_score - - ../slots/has_or_had_treatment - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_condition + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_treatment + - ../slots/20260202_matang/has_type - ../slots/indicates_or_indicated - ../slots/initial_of_the_initial - ../slots/materials_used @@ -59,14 +59,14 @@ classes: slots: - final_of_the_final - initial_of_the_initial - - has_or_had_condition + - has_condition - conservation_lab - conservation_note - conservator - conservator_affiliation - cost - cost_currency - - has_or_had_type + - has_type - indicates_or_indicated - materials_used - object_ref @@ -80,8 +80,8 @@ classes: - report_document - report_url - uses_or_used_technique - - has_or_had_score - - has_or_had_treatment + - has_score + - has_treatment slot_usage: record_id: identifier: true @@ -122,8 +122,8 @@ classes: inlined: true examples: - value: - has_or_had_type: FairCondition - has_or_had_description: + has_type: FairCondition + has_description: description_text: Yellowed varnish, surface dirt final_of_the_final: required: false @@ -131,10 +131,10 @@ classes: inlined: true examples: - value: - has_or_had_type: ExcellentCondition - has_or_had_description: + has_type: ExcellentCondition + has_description: description_text: After cleaning and restoration - has_or_had_condition: + has_condition: range: Condition multivalued: true inlined: true @@ -143,10 +143,10 @@ classes: - range: EnvironmentalCondition examples: - value: - has_or_had_type: EnvironmentalCondition - has_or_had_value: 21 - has_or_had_unit: Celsius - has_or_had_treatment: + has_type: EnvironmentalCondition + has_value: 21 + has_unit: Celsius + has_treatment: required: false range: Treatment multivalued: true @@ -157,7 +157,7 @@ classes: materials_used: - Gamblin conservation colors - Dammar varnish - has_or_had_type: + has_type: required: false range: TreatmentType multivalued: true @@ -200,25 +200,25 @@ classes: inlined_as_list: true examples: - value: - has_or_had_type: SolventCleaning - has_or_had_label: Varnish removal with acetone/white spirit mixture - has_or_had_description: Removal of discolored varnish using 50:50 acetone/white spirit + has_type: SolventCleaning + has_label: Varnish removal with acetone/white spirit mixture + has_description: Removal of discolored varnish using 50:50 acetone/white spirit - value: - has_or_had_type: TratteggioInpainting - has_or_had_label: Tratteggio inpainting of losses - has_or_had_description: Losses in-painted with fine parallel brushstrokes + has_type: TratteggioInpainting + has_label: Tratteggio inpainting of losses + has_description: Losses in-painted with fine parallel brushstrokes - value: - has_or_had_type: VacuumLining - has_or_had_label: Vacuum hot table lining - has_or_had_description: Canvas lined using vacuum table with BEVA 371 adhesive + has_type: VacuumLining + has_label: Vacuum hot table lining + has_description: Canvas lined using vacuum table with BEVA 371 adhesive describes_or_described: range: ExaminationMethod multivalued: true inlined: true examples: - value: - has_or_had_type: X-RADIOGRAPHY - has_or_had_label: Digital X-Ray + has_type: X-RADIOGRAPHY + has_label: Digital X-Ray photograph: required: false range: uri @@ -254,7 +254,7 @@ classes: - value: temporal_extent: begin_of_the_begin: '2019-01-01' - has_or_had_label: 25-year follow-up from 1994 restoration + has_label: 25-year follow-up from 1994 restoration related_loan: required: false # range: string # uriorcurie @@ -280,11 +280,11 @@ classes: required: false examples: - value: - has_or_had_label: Mondriaan Fund + has_label: Mondriaan Fund - value: - has_or_had_label: Getty Foundation + has_label: Getty Foundation - value: - has_or_had_label: Bank Giro Loterij + has_label: Bank Giro Loterij conservation_note: required: false # range: string @@ -313,22 +313,22 @@ classes: begin_of_the_begin: '1994-03-01' end_of_the_end: '1994-09-30' initial_of_the_initial: - has_or_had_type: FairCondition - has_or_had_description: + has_type: FairCondition + has_description: description_text: Yellowed varnish, surface dirt, old restorations visible final_of_the_final: - has_or_had_type: ExcellentCondition - has_or_had_description: + has_type: ExcellentCondition + has_description: description_text: After cleaning and restoration - colors vibrant, original tones restored - has_or_had_condition: - - has_or_had_type: FAIR - has_or_had_description: + has_condition: + - has_type: FAIR + has_description: description_text: The painting's varnish had yellowed significantly over time, obscuring the delicate tonal gradations that are characteristic of Vermeer's technique. Surface dirt had accumulated, particularly in the lower portion. Previous restorations from the early 20th century were visible under UV examination. description_type: condition - has_or_had_treatment: + has_treatment: - treatment_type: RESTORATION treatment_description: "Comprehensive restoration including: removal of discolored varnish \nusing carefully calibrated solvent mixtures; cleaning of accumulated \nsurface grime; removal of disfiguring old retouches; consolidation \nof minor paint losses; minimal inpainting using reversible materials; \napplication of new protective varnish.\n" - has_or_had_type: + has_type: - CLEANING - RESTORATION conservator: @@ -340,12 +340,12 @@ classes: - Dammar varnish (Kremer) - Gamblin conservation colors uses_or_used_technique: - - has_or_had_type: SolventCleaning - has_or_had_label: Solvent cleaning - has_or_had_description: Removal of varnish with acetone/white spirit mixture - - has_or_had_type: TratteggioInpainting - has_or_had_label: Tratteggio inpainting - has_or_had_description: Losses in-painted using fine parallel brushstrokes + - has_type: SolventCleaning + has_label: Solvent cleaning + has_description: Removal of varnish with acetone/white spirit mixture + - has_type: TratteggioInpainting + has_label: Tratteggio inpainting + has_description: Losses in-painted using fine parallel brushstrokes photograph: - https://mauritshuis.nl/conservation/670/before-1994.jpg - https://mauritshuis.nl/conservation/670/during-1994.jpg @@ -367,12 +367,12 @@ classes: record_type: LOAN_CONDITION_CHECK record_date: '2023-02-09' initial_of_the_initial: - has_or_had_type: ExcellentCondition - has_or_had_description: + has_type: ExcellentCondition + has_description: description_text: Pre-loan condition excellent, painting stable - has_or_had_condition: - - has_or_had_type: EXCELLENT - has_or_had_description: + has_condition: + - has_type: EXCELLENT + has_description: description_text: Pre-loan condition check for Vermeer 2023 exhibition at Rijksmuseum. Painting in excellent stable condition. No changes from previous examination. Surface clean, varnish clear, frame secure. description_type: condition related_loan: https://nde.nl/ontology/hc/loan/mauritshuis-rijksmuseum-2023-001 @@ -388,12 +388,12 @@ classes: record_type: EXAMINATION record_date: '2019-07-08' initial_of_the_initial: - has_or_had_type: GoodCondition - has_or_had_description: + has_type: GoodCondition + has_description: description_text: Good condition with historical damage from 1715 trimming and 1911/1975 attacks - has_or_had_condition: - - has_or_had_type: GOOD - has_or_had_description: + has_condition: + - has_type: GOOD + has_description: description_text: Comprehensive technical examination as part of Operation Night Watch. Canvas shows historical damage from 1715 trimming and 1911/1975 attacks. Paint layer stable with localized losses. Varnish slightly yellowed. description_type: condition conservator: diff --git a/schemas/20251121/linkml/modules/classes/ConservationReview.yaml b/schemas/20251121/linkml/modules/classes/ConservationReview.yaml index e8f852ba7f..dc67cc8caa 100644 --- a/schemas/20251121/linkml/modules/classes/ConservationReview.yaml +++ b/schemas/20251121/linkml/modules/classes/ConservationReview.yaml @@ -9,8 +9,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label - ../slots/temporal_extent default_prefix: hc classes: @@ -18,8 +18,8 @@ classes: class_uri: crm:E14_Condition_Assessment slots: - temporal_extent - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ContactDetails.yaml b/schemas/20251121/linkml/modules/classes/ContactDetails.yaml index e31e74dc9f..9e681b9526 100644 --- a/schemas/20251121/linkml/modules/classes/ContactDetails.yaml +++ b/schemas/20251121/linkml/modules/classes/ContactDetails.yaml @@ -12,7 +12,7 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/includes_or_included + - ../slots/20260202_matang/include classes: ContactDetails: class_uri: schema:ContactPoint @@ -24,10 +24,10 @@ classes: - **Close**: `vcard:VCard` slots: - - includes_or_included + - include slot_usage: - includes_or_included: + include: # range: string annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/classes/Container.yaml b/schemas/20251121/linkml/modules/classes/Container.yaml index cc56c18f20..1d8d6ef5ad 100644 --- a/schemas/20251121/linkml/modules/classes/Container.yaml +++ b/schemas/20251121/linkml/modules/classes/Container.yaml @@ -8,7 +8,7 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score classes: Container: tree_root: true @@ -37,13 +37,13 @@ classes: - 'v3: Added digital presence classes (SocialMediaProfile, InternetOfThings, DigitalPlatform)' - 'v4: Added Collection and FindingAid classes' slots: - - has_or_had_score - - has_or_had_custodian - - has_or_had_custodian_observation - - has_or_had_custodian_name - - has_or_had_section - - has_or_had_identifier - - has_or_had_social_media_profile + - has_score + - has_custodian + - has_custodian_observation + - has_custodian_name + - has_section + - identified_by + - has_social_media_profile annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Content.yaml b/schemas/20251121/linkml/modules/classes/Content.yaml index 939d4d17b9..2c488cadb9 100644 --- a/schemas/20251121/linkml/modules/classes/Content.yaml +++ b/schemas/20251121/linkml/modules/classes/Content.yaml @@ -16,9 +16,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type - ../slots/temporal_extent classes: Content: @@ -40,8 +40,8 @@ classes: | Slot | Purpose | |------|---------| | `temporal_extent` | Time period the content covers (via TimeSpan) | - | `has_or_had_label` | Content label/title | - | `has_or_had_description` | Detailed description of content | + | `has_label` | Content label/title | + | `has_description` | Detailed description of content | **Distinction from temporal_extent**: - `temporal_extent` on Content = what time period the CONTENT covers @@ -50,33 +50,33 @@ classes: **Example**: A collection of VOC trade records might have Content with: - temporal_extent: 1602-1799 (the period covered by the records) - - has_or_had_label: "Dutch East India Company Trade Records" - - has_or_had_description: "Shipping manifests, correspondence, and financial records..." + - has_label: "Dutch East India Company Trade Records" + - has_description: "Shipping manifests, correspondence, and financial records..." **Migrated From**: temporal_coverage slot (2026-01-16) per Rule 53/56 - **Updated 2026-01-23**: Added has_or_had_type for ContentType per F25 migration + **Updated 2026-01-23**: Added has_type for ContentType per F25 migration slots: - - has_or_had_label - - has_or_had_description - - has_or_had_type + - has_label + - has_description + - has_type - temporal_extent slot_usage: - has_or_had_type: + has_type: range: ContentType required: false examples: - value: - has_or_had_code: RELIGIOUS - has_or_had_label: Religious Content + has_code: RELIGIOUS + has_label: Religious Content - value: - has_or_had_code: CARTOGRAPHIC - has_or_had_label: Cartographic Content - has_or_had_label: + has_code: CARTOGRAPHIC + has_label: Cartographic Content + has_label: examples: - value: "Dutch Colonial Period Records" - value: "Medieval Manuscript Collection" - has_or_had_description: + has_description: examples: - value: "Administrative records, correspondence, and financial documents from the Dutch colonial administration in the East Indies." temporal_extent: @@ -99,13 +99,13 @@ classes: specificity_rationale: Broadly useful class for describing what heritage materials are about examples: - value: - has_or_had_label: "Dutch East India Company Records" - has_or_had_description: "Trade records, shipping manifests, and correspondence from VOC operations" + has_label: "Dutch East India Company Records" + has_description: "Trade records, shipping manifests, and correspondence from VOC operations" temporal_extent: begin_of_the_begin: "1602-03-20" end_of_the_end: "1799-12-31" - value: - has_or_had_label: "Medieval Illuminated Manuscripts" + has_label: "Medieval Illuminated Manuscripts" temporal_extent: begin_of_the_begin: "0800-01-01" end_of_the_end: "1450-12-31" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/ContentType.yaml b/schemas/20251121/linkml/modules/classes/ContentType.yaml index bb1739e5ce..fead96bf65 100644 --- a/schemas/20251121/linkml/modules/classes/ContentType.yaml +++ b/schemas/20251121/linkml/modules/classes/ContentType.yaml @@ -11,9 +11,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: ContentType: class_uri: crm:E55_Type @@ -31,19 +31,19 @@ classes: - dcterms:type - skos:Concept slots: - - has_or_had_code - - has_or_had_label - - has_or_had_description + - has_code + - has_label + - has_description slot_usage: - has_or_had_code: + has_code: # range: string required: true identifier: true pattern: ^[A-Z][A-Z0-9_]*$ - has_or_had_label: + has_label: # range: string required: true - has_or_had_description: + has_description: # range: string required: false comments: diff --git a/schemas/20251121/linkml/modules/classes/ContentTypes.yaml b/schemas/20251121/linkml/modules/classes/ContentTypes.yaml index 2fad28bf45..d6658eb2f7 100644 --- a/schemas/20251121/linkml/modules/classes/ContentTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ContentTypes.yaml @@ -9,17 +9,17 @@ imports: - ./ContentType - linkml:types - ../metadata - - ../slots/has_or_had_code - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_label classes: TextualContent: is_a: ContentType class_uri: hc:TextualContent description: Written or printed textual information. slot_usage: - has_or_had_code: + has_code: equals_string: TEXTUAL - has_or_had_label: + has_label: # range: string equals_string: Textual Content annotations: @@ -33,9 +33,9 @@ classes: class_uri: hc:LiteraryContent description: Literary works including novels, poetry, drama. slot_usage: - has_or_had_code: + has_code: equals_string: LITERARY - has_or_had_label: + has_label: # range: string equals_string: Literary Content broad_mappings: @@ -45,9 +45,9 @@ classes: class_uri: hc:ScientificContent description: Scientific and technical publications. slot_usage: - has_or_had_code: + has_code: equals_string: SCIENTIFIC - has_or_had_label: + has_label: # range: string equals_string: Scientific Content broad_mappings: @@ -57,9 +57,9 @@ classes: class_uri: hc:ReligiousContent description: Religious texts, scriptures, liturgical works. slot_usage: - has_or_had_code: + has_code: equals_string: RELIGIOUS - has_or_had_label: + has_label: # range: string equals_string: Religious Content broad_mappings: @@ -69,9 +69,9 @@ classes: class_uri: hc:LegalContent description: Legal documents, laws, contracts, court records. slot_usage: - has_or_had_code: + has_code: equals_string: LEGAL - has_or_had_label: + has_label: # range: string equals_string: Legal Content broad_mappings: @@ -81,9 +81,9 @@ classes: class_uri: hc:AdministrativeContent description: Administrative and governmental records. slot_usage: - has_or_had_code: + has_code: equals_string: ADMINISTRATIVE - has_or_had_label: + has_label: # range: string equals_string: Administrative Content broad_mappings: @@ -93,9 +93,9 @@ classes: class_uri: hc:CorrespondenceContent description: Letters, emails, and other correspondence. slot_usage: - has_or_had_code: + has_code: equals_string: CORRESPONDENCE - has_or_had_label: + has_label: # range: string equals_string: Correspondence broad_mappings: @@ -105,9 +105,9 @@ classes: class_uri: hc:VisualContent description: Visual information including images and graphics. slot_usage: - has_or_had_code: + has_code: equals_string: VISUAL - has_or_had_label: + has_label: # range: string equals_string: Visual Content broad_mappings: @@ -117,9 +117,9 @@ classes: class_uri: hc:PhotographicContent description: Photographs and photographic reproductions. slot_usage: - has_or_had_code: + has_code: equals_string: PHOTOGRAPHIC - has_or_had_label: + has_label: # range: string equals_string: Photographic Content broad_mappings: @@ -129,9 +129,9 @@ classes: class_uri: hc:CartographicContent description: Maps, atlases, geographic visualizations. slot_usage: - has_or_had_code: + has_code: equals_string: CARTOGRAPHIC - has_or_had_label: + has_label: # range: string equals_string: Cartographic Content broad_mappings: @@ -141,9 +141,9 @@ classes: class_uri: hc:ArtisticContent description: Artistic works including drawings, prints, paintings. slot_usage: - has_or_had_code: + has_code: equals_string: ARTISTIC - has_or_had_label: + has_label: # range: string equals_string: Artistic Content broad_mappings: @@ -153,9 +153,9 @@ classes: class_uri: hc:AudioContent description: Sound recordings of any type. slot_usage: - has_or_had_code: + has_code: equals_string: AUDIO - has_or_had_label: + has_label: # range: string equals_string: Audio Content broad_mappings: @@ -165,9 +165,9 @@ classes: class_uri: hc:MusicContent description: Musical recordings and compositions. slot_usage: - has_or_had_code: + has_code: equals_string: MUSIC - has_or_had_label: + has_label: # range: string equals_string: Music Content broad_mappings: @@ -177,9 +177,9 @@ classes: class_uri: hc:SpokenWordContent description: Spoken word recordings, speeches, oral histories. slot_usage: - has_or_had_code: + has_code: equals_string: SPOKEN_WORD - has_or_had_label: + has_label: # range: string equals_string: Spoken Word Content broad_mappings: @@ -189,9 +189,9 @@ classes: class_uri: hc:AudiovisualContent description: Combined audio and visual media. slot_usage: - has_or_had_code: + has_code: equals_string: AUDIOVISUAL - has_or_had_label: + has_label: # range: string equals_string: Audiovisual Content broad_mappings: @@ -201,9 +201,9 @@ classes: class_uri: hc:FilmContent description: Motion picture films. slot_usage: - has_or_had_code: + has_code: equals_string: FILM - has_or_had_label: + has_label: # range: string equals_string: Film Content broad_mappings: @@ -213,9 +213,9 @@ classes: class_uri: hc:VideoContent description: Video recordings. slot_usage: - has_or_had_code: + has_code: equals_string: VIDEO - has_or_had_label: + has_label: # range: string equals_string: Video Content broad_mappings: @@ -225,9 +225,9 @@ classes: class_uri: hc:DataContent description: Structured data and datasets. slot_usage: - has_or_had_code: + has_code: equals_string: DATA - has_or_had_label: + has_label: # range: string equals_string: Data Content broad_mappings: @@ -237,9 +237,9 @@ classes: class_uri: hc:StatisticalContent description: Statistical data and analyses. slot_usage: - has_or_had_code: + has_code: equals_string: STATISTICAL - has_or_had_label: + has_label: # range: string equals_string: Statistical Content broad_mappings: @@ -249,9 +249,9 @@ classes: class_uri: hc:MixedContent description: Combination of multiple content types. slot_usage: - has_or_had_code: + has_code: equals_string: MIXED - has_or_had_label: + has_label: # range: string equals_string: Mixed Content broad_mappings: @@ -261,9 +261,9 @@ classes: class_uri: hc:MultimediaContent description: Interactive multimedia combining multiple formats. slot_usage: - has_or_had_code: + has_code: equals_string: MULTIMEDIA - has_or_had_label: + has_label: # range: string equals_string: Multimedia Content broad_mappings: diff --git a/schemas/20251121/linkml/modules/classes/ContributingAgency.yaml b/schemas/20251121/linkml/modules/classes/ContributingAgency.yaml index da98a09ad1..0abd6dd9b3 100644 --- a/schemas/20251121/linkml/modules/classes/ContributingAgency.yaml +++ b/schemas/20251121/linkml/modules/classes/ContributingAgency.yaml @@ -19,14 +19,14 @@ imports: - ../slots/contributes_to - ../slots/contribution_start_date - ../slots/contributor_code - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_role - - ../slots/has_or_had_score - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_role + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_url - ../slots/is_active - - ../slots/is_or_was_also_allocation_agency - - ../slots/is_or_was_represented_by + - ../slots/20260202_matang/also_allocation_agency + - ../slots/20260202_matang/represented_by - ../slots/member_of - ../slots/name_local - ../slots/provides_or_provided @@ -74,20 +74,20 @@ classes: - linkml:https://nde.nl/ontology/hc/class/StandardsOrganization - linkml:https://nde.nl/ontology/hc/class/Standard slots: - - has_or_had_label + - has_label - contributes_or_contributed - record_format - provides_or_provided - contributes_to - contribution_start_date - is_active - - is_or_was_represented_by - - has_or_had_url - - has_or_had_description - - is_or_was_also_allocation_agency + - represented_by + - has_url + - has_description + - also_allocation_agency - member_of - - has_or_had_role - - has_or_had_score + - has_role + - has_score - name - country slot_usage: @@ -97,21 +97,21 @@ classes: inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_label: Library of Congress Name Authority File - contains_or_contained: - - has_or_had_type: PERSON - - has_or_had_type: CORPORATE_BODY + has_label: Library of Congress Name Authority File + contain: + - has_type: PERSON + - has_type: CORPORATE_BODY contributes_to: # range: string - is_or_was_also_allocation_agency: + also_allocation_agency: range: AllocationAgency member_of: range: StandardsOrganization - is_or_was_represented_by: + represented_by: range: Agent - has_or_had_role: + has_role: range: GovernanceRole - has_or_had_url: + has_url: range: uri inlined: false # Fixed invalid inline for primitive type multivalued: false @@ -120,8 +120,8 @@ classes: inlined: true examples: - value: - has_or_had_label: LCNAF - has_or_had_type: abbreviation + has_label: LCNAF + has_type: abbreviation annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ConversionRate.yaml b/schemas/20251121/linkml/modules/classes/ConversionRate.yaml index d771461dec..8104e46777 100644 --- a/schemas/20251121/linkml/modules/classes/ConversionRate.yaml +++ b/schemas/20251121/linkml/modules/classes/ConversionRate.yaml @@ -8,7 +8,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type - ../slots/temporal_extent # default_range: string classes: @@ -23,7 +23,7 @@ classes: percentage (0.35 = 35%) - **Time Period**: When this rate was measured - **Context**: Comparison benchmarks, notes - **SLOT_FIXES.YAML REVISION** (lines 1646-1669): - Branch 1: has_or_had_type + **SLOT_FIXES.YAML REVISION** (lines 1646-1669): - Branch 1: has_type → ConversionRateType/ConversionRateTypes - Branch 2: temporal_extent → TimeSpan (measurement period) @@ -39,15 +39,15 @@ classes: close_mappings: - schema:interactionStatistic slots: - - has_or_had_type + - has_type - temporal_extent - rate_value slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie inlined: false # Fixed invalid inline for primitive type examples: - - value: "has_or_had_type:\n has_or_had_label: \"Visitor to Purchase\"\n\ + - value: "has_type:\n has_label: \"Visitor to Purchase\"\n\ \ source_population: \"museum visitors\"\n target_action: \"made gift\ \ shop purchase\"\n" temporal_extent: @@ -65,10 +65,10 @@ classes: specificity_rationale: Moderate specificity - relevant to custodians tracking performance metrics. examples: - - value: "ConversionRate:\n rate_value: 0.35\n has_or_had_type:\n has_or_had_label:\ + - value: "ConversionRate:\n rate_value: 0.35\n has_type:\n has_label:\ \ \"Visitor to Purchase\"\n temporal_extent:\n begin_of_the_begin: \"\ 2024-01-01\"\n end_of_the_end: \"2024-12-31\"\n" - - value: "ConversionRate:\n rate_value: 0.05\n has_or_had_type:\n has_or_had_label:\ + - value: "ConversionRate:\n rate_value: 0.05\n has_type:\n has_label:\ \ \"Visitor to Member\"\n temporal_extent:\n begin_of_the_begin: \"2024-06-01\"\ \n end_of_the_end: \"2024-08-31\"\n" comments: diff --git a/schemas/20251121/linkml/modules/classes/CoordinateProvenance.yaml b/schemas/20251121/linkml/modules/classes/CoordinateProvenance.yaml index 6f5de9816e..185829dfd9 100644 --- a/schemas/20251121/linkml/modules/classes/CoordinateProvenance.yaml +++ b/schemas/20251121/linkml/modules/classes/CoordinateProvenance.yaml @@ -10,9 +10,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_citation + - ../slots/20260202_matang/has_citation classes: CoordinateProvenance: slots: - - has_or_had_citation + - has_citation diff --git a/schemas/20251121/linkml/modules/classes/Country.yaml b/schemas/20251121/linkml/modules/classes/Country.yaml index dadeeae06e..2d2bfd23b8 100644 --- a/schemas/20251121/linkml/modules/classes/Country.yaml +++ b/schemas/20251121/linkml/modules/classes/Country.yaml @@ -10,8 +10,8 @@ prefixes: wikidata: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_score classes: Country: class_uri: schema:Country @@ -20,13 +20,13 @@ classes: - gn:A.PCLI close_mappings: - wikidata:Q6256 - description: "Country identified by ISO 3166-1 alpha-2 and alpha-3 codes.\n\nThis is a **minimal design** class containing ONLY ISO standardized country codes.\nNo other metadata (names, languages, capitals, regions) is included.\n\nPurpose:\n- Link legal forms to their jurisdiction (legal forms are country-specific)\n- Link custodian places to their country location\n- Enable conditional enum values in FeatureTypeEnum (e.g., \"cultural heritage of Peru\")\n\nDesign rationale:\n- ISO 3166 codes are authoritative, stable, and language-neutral\n- Country names, languages, and other metadata should be resolved via external services\n- Keeps the ontology focused on heritage custodian relationships, not geopolitical data\n\nExternal resolution services:\n- GeoNames API: https://www.geonames.org/\n- UN M49 Standard: https://unstats.un.org/unsd/methodology/m49/\n- ISO 3166 Maintenance Agency: https://www.iso.org/iso-3166-country-codes.html\n\nMIGRATION (2026-01-16): Now uses has_or_had_code\ + description: "Country identified by ISO 3166-1 alpha-2 and alpha-3 codes.\n\nThis is a **minimal design** class containing ONLY ISO standardized country codes.\nNo other metadata (names, languages, capitals, regions) is included.\n\nPurpose:\n- Link legal forms to their jurisdiction (legal forms are country-specific)\n- Link custodian places to their country location\n- Enable conditional enum values in FeatureTypeEnum (e.g., \"cultural heritage of Peru\")\n\nDesign rationale:\n- ISO 3166 codes are authoritative, stable, and language-neutral\n- Country names, languages, and other metadata should be resolved via external services\n- Keeps the ontology focused on heritage custodian relationships, not geopolitical data\n\nExternal resolution services:\n- GeoNames API: https://www.geonames.org/\n- UN M49 Standard: https://unstats.un.org/unsd/methodology/m49/\n- ISO 3166 Maintenance Agency: https://www.iso.org/iso-3166-country-codes.html\n\nMIGRATION (2026-01-16): Now uses has_code\ \ with Alpha2Code and Alpha3Code \nclass instances per Rule 56 (semantic consistency over simplicity).\n" slots: - - has_or_had_code - - has_or_had_score + - has_code + - has_score slot_usage: - has_or_had_code: + has_code: multivalued: true description: 'ISO country codes for this country. Includes: @@ -41,26 +41,26 @@ classes: custodian_types: "['*']" examples: - value: - has_or_had_code: + has_code: - _type: Alpha2Code - has_or_had_code: NL + has_code: NL - _type: Alpha3Code - has_or_had_code: NLD + has_code: NLD - value: - has_or_had_code: + has_code: - _type: Alpha2Code - has_or_had_code: PE + has_code: PE - _type: Alpha3Code - has_or_had_code: PER + has_code: PER - value: - has_or_had_code: + has_code: - _type: Alpha2Code - has_or_had_code: US + has_code: US - _type: Alpha3Code - has_or_had_code: USA + has_code: USA - value: - has_or_had_code: + has_code: - _type: Alpha2Code - has_or_had_code: JP + has_code: JP - _type: Alpha3Code - has_or_had_code: JPN \ No newline at end of file + has_code: JPN \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/CountyRecordOffice.yaml b/schemas/20251121/linkml/modules/classes/CountyRecordOffice.yaml index 3657b9b242..df28989cad 100644 --- a/schemas/20251121/linkml/modules/classes/CountyRecordOffice.yaml +++ b/schemas/20251121/linkml/modules/classes/CountyRecordOffice.yaml @@ -6,8 +6,8 @@ prefixes: org: http://www.w3.org/ns/org# imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/is_branch_of_authority classes: CountyRecordOffice: @@ -108,11 +108,11 @@ classes: ' slots: - - has_or_had_type + - has_type - is_branch_of_authority - - has_or_had_score + - has_score slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/CourtRecords.yaml b/schemas/20251121/linkml/modules/classes/CourtRecords.yaml index 7986528435..690512765c 100644 --- a/schemas/20251121/linkml/modules/classes/CourtRecords.yaml +++ b/schemas/20251121/linkml/modules/classes/CourtRecords.yaml @@ -11,9 +11,9 @@ default_prefix: hc imports: - linkml:types - ../slots/court_types_covered - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/jurisdiction_level classes: CourtRecords: @@ -23,12 +23,12 @@ classes: - PublicArchive (Q27031009) - broader government records\n- LegalRecordSet - rico:RecordSetType for court record collections\n\n**ONTOLOGICAL ALIGNMENT**:\n- **SKOS**: skos:Concept (type classification)\n- **RiC-O**: rico:RecordSet for archival description of court fonds\n- **Wikidata**: Q11906844\n" slots: - court_types_covered - - has_or_had_type + - has_type - jurisdiction_level - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null jurisdiction_level: # range: string examples: @@ -42,7 +42,7 @@ classes: - civil - criminal - commercial - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' exact_mappings: - wikidata:Q11906844 @@ -61,14 +61,14 @@ classes: - https://www.ica.org/standards/RiC/ontology#RecordSet examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q11906844 - has_or_had_type_code: ARCHIVE - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/archive/Q11906844 + has_type_code: ARCHIVE + has_label: - Court Records Archive@en - Justizarchiv@de - archivo judicial@es - archives judiciaires@fr - has_or_had_description: Archive preserving judicial and court records + has_description: Archive preserving judicial and court records jurisdiction_level: federal court_types_covered: - civil diff --git a/schemas/20251121/linkml/modules/classes/CreationEvent.yaml b/schemas/20251121/linkml/modules/classes/CreationEvent.yaml index d3c8af0193..7723d482b8 100644 --- a/schemas/20251121/linkml/modules/classes/CreationEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/CreationEvent.yaml @@ -12,8 +12,8 @@ imports: - ./TimeSpan - ./Place - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_place + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_place - ../slots/temporal_extent classes: CreationEvent: @@ -26,18 +26,18 @@ classes: \ - Schema.org create action\n**USAGE**:\nReplaces simple `date_created` strings\ \ with structured event data:\n- Temporal extent (including approximate dates\ \ like \"c. 1665\")\n- Creator/artist information\n- Place of creation\n- Creation\ - \ circumstances\n**Example**:\n```yaml\nis_or_was_created_through:\n temporal_extent:\n\ + \ circumstances\n**Example**:\n```yaml\ncreated_through:\n temporal_extent:\n\ \ begin_of_the_begin: \"1665-01-01\"\n end_of_the_end: \"1665-12-31\"\n\ - \ display_date: \"c. 1665\"\n has_or_had_creator:\n - agent_name: \"\ - Johannes Vermeer\"\n agent_role: \"artist\"\n has_or_had_place:\n place_name:\ + \ display_date: \"c. 1665\"\n has_creator:\n - agent_name: \"\ + Johannes Vermeer\"\n agent_role: \"artist\"\n has_place:\n place_name:\ \ \"Delft\"\n country: \"NL\"\n```\n" close_mappings: - prov:Activity - schema:CreateAction slots: - temporal_extent - - has_or_had_description - - has_or_had_place + - has_description + - has_place slot_usage: temporal_extent: range: TimeSpan @@ -48,7 +48,7 @@ classes: end_of_the_end: '1665-12-31' - value: - agent_name: Johannes Vermeer - has_or_had_place: + has_place: range: Place inlined: true examples: diff --git a/schemas/20251121/linkml/modules/classes/CulturalInstitution.yaml b/schemas/20251121/linkml/modules/classes/CulturalInstitution.yaml index d4eb2bec22..55f208aaf7 100644 --- a/schemas/20251121/linkml/modules/classes/CulturalInstitution.yaml +++ b/schemas/20251121/linkml/modules/classes/CulturalInstitution.yaml @@ -18,9 +18,9 @@ imports: - ../classes/AgentType - linkml:types - ../slots/cultural_focus_area - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/institution_function classes: CulturalInstitution: @@ -30,12 +30,12 @@ classes: \ - acronym for galleries, libraries, archives, museums\n- MemoryInstitution (Q1497649) - institutions preserving cultural memory\n- HeritageOrganization - schema.org type for heritage orgs\n" slots: - cultural_focus_area - - has_or_had_type + - has_type - institution_function - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null cultural_focus_area: # range: string multivalued: true @@ -46,7 +46,7 @@ classes: institution_function: # range: string multivalued: true - has_or_had_type: + has_type: equals_expression: '["hc:MixedCustodianType"]' exact_mappings: - wikidata:Q3152824 @@ -66,14 +66,14 @@ classes: - https://www.wikidata.org/wiki/Q1030034 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/cultural/Q3152824 - has_or_had_type_code: MIXED - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/cultural/Q3152824 + has_type_code: MIXED + has_label: - Cultural Institution@en - kulturelle Organisation@de - "instituci\xF3n cultural@es" - institution culturelle@fr - has_or_had_description: Organization working for preservation or promotion of culture + has_description: Organization working for preservation or promotion of culture cultural_focus_area: - heritage preservation - cultural education diff --git a/schemas/20251121/linkml/modules/classes/CurationActivity.yaml b/schemas/20251121/linkml/modules/classes/CurationActivity.yaml index 87b27554ea..666d62bb8c 100644 --- a/schemas/20251121/linkml/modules/classes/CurationActivity.yaml +++ b/schemas/20251121/linkml/modules/classes/CurationActivity.yaml @@ -17,10 +17,10 @@ imports: - ../enums/CurationActivityTypeEnum - ../metadata - ../slots/curated_holding - - ../slots/has_or_had_objective - - ../slots/has_or_had_output - - ../slots/has_or_had_type - - ../slots/is_or_was_allocated_budget + - ../slots/20260202_matang/has_objective + - ../slots/20260202_matang/has_output + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/allocated_budget - ../slots/is_recurring - ../slots/objects_added - ../slots/objects_affected @@ -35,8 +35,8 @@ classes: CurationActivity: is_a: Activity class_uri: crm:E87_Curation_Activity - description: "Ongoing collection management activities performed to preserve heritage for access.\n\n**CIDOC-CRM Definition**:\n\nE87_Curation_Activity comprises \"the activities that result in the continuity of\nmanagement and the preservation and evolution of instances of E78 Curated Holding.\"\n\n**INHERITANCE**:\n\nExtends `Activity` base class. Inherits:\n# - has_activity_identifier (required, identifier)\n# - has_activity_name (required)\n# - has_activity_description\n- has_or_had_activity_type \u2192 ActivityType\n- temporal_extent \u2192 TimeSpan\n- is_or_was_succeeded_by, preceding_activity\n- status, note\n\n**KEY DISTINCTION**:\n\n| Concept | Class | Duration | Example |\n|---------|-------|----------|---------|\n| **Curation Activity** | CurationActivity | Ongoing/recurring | Annual inventory |\n| Exhibition | Exhibition | Time-bounded | \"Van Gogh Retrospective\" |\n| Conservation treatment | ConservationRecord | Discrete action | Frame repair |\n| Provenance event | ProvenanceEvent\ - \ | Point-in-time | Sale at auction |\n\n**RELATIONSHIP TO COLLECTION**:\n\n```\nCollection (rico:RecordSet)\n \u2502\n \u251C\u2500\u2500 items \u2192 ExhibitedObject[]\n \u2502\n \u2514\u2500\u2500 curation_activities \u2192 CurationActivity[] (THIS CLASS)\n \u2502\n \u251C\u2500\u2500 has_or_had_activity_type: CurationActivityType\n \u251C\u2500\u2500 curated_holding: Collection (back-reference)\n \u251C\u2500\u2500 objects_affected: ExhibitedObject[]\n \u251C\u2500\u2500 responsible_actor: PersonObservation\n \u2514\u2500\u2500 has_timespan: TimeSpan\n```\n\n**SPECTRUM ALIGNMENT**:\n\nMaps to SPECTRUM (UK Collections Management Standard) primary procedures:\n\n| SPECTRUM Procedure | CurationActivityTypeEnum |\n|--------------------|--------------------------|\n| Object Entry | ACCESSIONING |\n| Acquisition | ACQUISITION_RESEARCH |\n| Inventory Control | INVENTORY |\n| Cataloguing | CATALOGING |\n| Object\ + description: "Ongoing collection management activities performed to preserve heritage for access.\n\n**CIDOC-CRM Definition**:\n\nE87_Curation_Activity comprises \"the activities that result in the continuity of\nmanagement and the preservation and evolution of instances of E78 Curated Holding.\"\n\n**INHERITANCE**:\n\nExtends `Activity` base class. Inherits:\n# - has_activity_identifier (required, identifier)\n# - has_activity_name (required)\n# - has_activity_description\n- has_activity_type \u2192 ActivityType\n- temporal_extent \u2192 TimeSpan\n- succeeded_by, preceding_activity\n- status, note\n\n**KEY DISTINCTION**:\n\n| Concept | Class | Duration | Example |\n|---------|-------|----------|---------|\n| **Curation Activity** | CurationActivity | Ongoing/recurring | Annual inventory |\n| Exhibition | Exhibition | Time-bounded | \"Van Gogh Retrospective\" |\n| Conservation treatment | ConservationRecord | Discrete action | Frame repair |\n| Provenance event | ProvenanceEvent\ + \ | Point-in-time | Sale at auction |\n\n**RELATIONSHIP TO COLLECTION**:\n\n```\nCollection (rico:RecordSet)\n \u2502\n \u251C\u2500\u2500 items \u2192 ExhibitedObject[]\n \u2502\n \u2514\u2500\u2500 curation_activities \u2192 CurationActivity[] (THIS CLASS)\n \u2502\n \u251C\u2500\u2500 has_activity_type: CurationActivityType\n \u251C\u2500\u2500 curated_holding: Collection (back-reference)\n \u251C\u2500\u2500 objects_affected: ExhibitedObject[]\n \u251C\u2500\u2500 responsible_actor: PersonObservation\n \u2514\u2500\u2500 has_timespan: TimeSpan\n```\n\n**SPECTRUM ALIGNMENT**:\n\nMaps to SPECTRUM (UK Collections Management Standard) primary procedures:\n\n| SPECTRUM Procedure | CurationActivityTypeEnum |\n|--------------------|--------------------------|\n| Object Entry | ACCESSIONING |\n| Acquisition | ACQUISITION_RESEARCH |\n| Inventory Control | INVENTORY |\n| Cataloguing | CATALOGING |\n| Object\ \ Storage | REHOUSING, STORAGE_REORGANIZATION |\n| Location and Movement | RELOCATION |\n| Condition Checking | CONDITION_SURVEY |\n| Collections Care | PREVENTIVE_CONSERVATION |\n| Deaccession and Disposal | DEACCESSIONING |\n| Loans Out/In | OUTGOING_LOAN_MANAGEMENT, INCOMING_LOAN_MANAGEMENT |\n| Valuation | VALUATION |\n| Audit | AUDIT |\n\n**ACTIVITY CATEGORIES**:\n\n1. **Acquisition/Disposal**: Accessioning, deaccessioning, collection review\n2. **Documentation**: Cataloging, inventory, provenance research, rights research\n3. **Physical Management**: Rehousing, relocation, storage reorganization\n4. **Preservation**: Condition surveys, preventive conservation, disaster planning\n5. **Access**: Digitization, photography, interpretation, online publication\n6. **Loans**: Outgoing and incoming loan management\n7. **Administrative**: Collection development, registration, valuation, audit\n8. **Integration**: Database migration, vocabulary alignment, linked data\n\n**PROVENANCE TRACKING\ \ (PROV-O)**:\n\nCurationActivity generates provenance information (inherited from Activity):\n- `prov:Activity` - The curation activity itself\n- `prov:wasAssociatedWith` - Responsible actor (staff, contractor)\n- `prov:used` - Objects/collections processed\n- `prov:generated` - Documentation, reports, digital surrogates\n- `prov:atTime` - Activity timespan\n\n**DELIVERABLES**:\n\nActivities typically produce documentation:\n- Accession records (ACCESSIONING)\n- Catalog records (CATALOGING)\n- Condition reports (CONDITION_SURVEY)\n- Finding aids (CATALOGING for archives)\n- Digital surrogates (DIGITIZATION)\n- Valuation reports (VALUATION)\n- Audit reports (AUDIT)\n" exact_mappings: @@ -48,11 +48,11 @@ classes: - crm:E65_Creation - aat:300054277 slots: - - is_or_was_allocated_budget + - allocated_budget - curated_holding - - has_or_had_type - - has_or_had_objective - - has_or_had_output + - has_type + - has_objective + - has_output - is_recurring - objects_added - objects_affected @@ -64,7 +64,7 @@ classes: - responsible_department - spectrum_procedure slot_usage: - has_or_had_type: + has_type: examples: - value: INVENTORY - value: DIGITIZATION @@ -125,31 +125,31 @@ classes: examples: - value: 10000 - value: 342 - has_or_had_output: + has_output: range: Documentation multivalued: true examples: - value: - has_or_had_label: Inventory reconciliation report (2025-03-31) + has_label: Inventory reconciliation report (2025-03-31) - value: - has_or_had_label: Condition notation updates - has_or_had_objective: + has_label: Condition notation updates + has_objective: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_label: - has_or_had_text: Inventory reconciliation report + has_label: + has_text: Inventory reconciliation report deliverable_url: https://example.org/reports/inventory-2025.pdf is_completed: true - value: - has_or_had_label: - has_or_had_text: VOC Series Finding Aid + has_label: + has_text: VOC Series Finding Aid deliverable_url: https://example.org/finding-aids/voc-series-1.ead is_completed: true - is_or_was_allocated_budget: + allocated_budget: # range: string examples: - value: EUR 125,000 @@ -168,7 +168,7 @@ classes: annotations: specificity_score: '0.65' specificity_rationale: Moderately specific - CurationActivity is domain-specific but broadly applicable across museum, archive, and library custodian types. - has_or_had_score: null + has_score: null custodian_types: "['*']" comments: - CurationActivity extends Activity base class (refactored 2026-01-13) @@ -177,7 +177,7 @@ classes: - Distinct from Exhibition (time-bounded), ConservationRecord (discrete treatment) - "Links Collection \u2192 CurationActivity[] via Collection.curation_activities slot" - Activity types defined in CurationActivityTypeEnum with SPECTRUM alignment - - Supports activity chaining via is_or_was_succeeded_by/preceding_activity (inherited) + - Supports activity chaining via succeeded_by/preceding_activity (inherited) - Tracks objects affected, added, removed for collection change management see_also: - http://www.cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E87 @@ -185,9 +185,9 @@ classes: - https://www.w3.org/TR/prov-o/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/activity/rijksmuseum-inventory-2025-001 - has_or_had_label: 2025 Annual Collection Inventory - Dutch Masters - has_or_had_description: "Annual physical inventory of the Dutch Masters collection \n(Gallery of Honour and adjacent galleries). Spot-check methodology \nwith 20% sample verification against CMS records. Includes \ncondition notation and location verification.\n" + identified_by: https://nde.nl/ontology/hc/activity/rijksmuseum-inventory-2025-001 + has_label: 2025 Annual Collection Inventory - Dutch Masters + has_description: "Annual physical inventory of the Dutch Masters collection \n(Gallery of Honour and adjacent galleries). Spot-check methodology \nwith 20% sample verification against CMS records. Includes \ncondition notation and location verification.\n" curated_holding: - https://nde.nl/ontology/hc/collection/rijksmuseum-dutch-masters responsible_actor: @@ -199,16 +199,16 @@ classes: is_recurring: true recurrence_pattern: P1Y objects_count: 450 - has_or_had_output: - - has_or_had_label: Inventory reconciliation report - - has_or_had_label: Location discrepancy list (3 items) - - has_or_had_label: Condition notation updates (28 records) + has_output: + - has_label: Inventory reconciliation report + - has_label: Location discrepancy list (3 items) + - has_label: Condition notation updates (28 records) priority: MEDIUM spectrum_procedure: inventory - value: - has_or_had_identifier: https://nde.nl/ontology/hc/activity/nationaal-archief-digitization-voc-2024 - has_or_had_label: VOC Archives Digitization Project - Phase 2 - has_or_had_description: "Second phase of systematic digitization of VOC (Dutch East India \nCompany) archives. Focus on Hoge Regering Batavia series (1.04.02). \nHigh-resolution scanning with OCR/HTR processing for searchability. \nIIIF-compliant output.\n" + identified_by: https://nde.nl/ontology/hc/activity/nationaal-archief-digitization-voc-2024 + has_label: VOC Archives Digitization Project - Phase 2 + has_description: "Second phase of systematic digitization of VOC (Dutch East India \nCompany) archives. Focus on Hoge Regering Batavia series (1.04.02). \nHigh-resolution scanning with OCR/HTR processing for searchability. \nIIIF-compliant output.\n" curated_holding: - https://nde.nl/ontology/hc/collection/nationaal-archief-voc-fonds responsible_department: Digital Services @@ -217,23 +217,23 @@ classes: end_of_the_end: '2025-12-31' is_recurring: false objects_count: 125000 - has_or_had_output: - - has_or_had_label: Digital asset management records - - has_or_had_label: OCR quality assessment report - - has_or_had_label: IIIF manifest files - has_or_had_objective: - - has_or_had_label: - has_or_had_text: VOC Digital Archive + has_output: + - has_label: Digital asset management records + - has_label: OCR quality assessment report + - has_label: IIIF manifest files + has_objective: + - has_label: + has_text: VOC Digital Archive deliverable_url: https://www.nationaalarchief.nl/onderzoeken/archief/1.04.02/digital is_completed: true - is_or_was_allocated_budget: EUR 850,000 + allocated_budget: EUR 850,000 priority: HIGH spectrum_procedure: documentation preceding_activity: https://nde.nl/ontology/hc/activity/voc-digitization-phase-1 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/activity/kb-rehousing-medieval-2025 - has_or_had_label: Medieval Manuscripts Rehousing Initiative - has_or_had_description: "Transfer of 342 medieval manuscripts from legacy storage to \ncustom-fitted archival boxes with acid-free tissue interleaving. \nIncludes updated location records and condition photography.\n" + identified_by: https://nde.nl/ontology/hc/activity/kb-rehousing-medieval-2025 + has_label: Medieval Manuscripts Rehousing Initiative + has_description: "Transfer of 342 medieval manuscripts from legacy storage to \ncustom-fitted archival boxes with acid-free tissue interleaving. \nIncludes updated location records and condition photography.\n" curated_holding: - https://nde.nl/ontology/hc/collection/kb-medieval-manuscripts responsible_department: Special Collections Conservation @@ -242,11 +242,11 @@ classes: end_of_the_end: '2025-08-31' is_recurring: false objects_count: 342 - has_or_had_output: - - has_or_had_label: Rehousing completion report - - has_or_had_label: Before/after condition photographs - - has_or_had_label: Updated location records in CMS - is_or_was_allocated_budget: EUR 95,000 + has_output: + - has_label: Rehousing completion report + - has_label: Before/after condition photographs + - has_label: Updated location records in CMS + allocated_budget: EUR 95,000 priority: HIGH spectrum_procedure: object-storage preceding_activity: https://nde.nl/ontology/hc/activity/kb-condition-survey-2024 \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Currency.yaml b/schemas/20251121/linkml/modules/classes/Currency.yaml index e2fe1862ff..4591d61482 100644 --- a/schemas/20251121/linkml/modules/classes/Currency.yaml +++ b/schemas/20251121/linkml/modules/classes/Currency.yaml @@ -11,29 +11,29 @@ imports: - linkml:types - ../slots/currency_code - ../slots/currency_symbol - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score default_prefix: hc classes: Currency: class_uri: schema:Currency description: "A currency used for monetary values.\n**SCHEMA.ORG ALIGNMENT**:\nMaps to `schema:Currency` - \"A currency as defined by ISO 4217.\"\n**ISO 4217 STANDARD**:\nISO 4217 defines three-letter currency codes:\n| Code | Currency | Symbol | |------|----------|--------| | EUR | Euro | \u20AC | | USD | US Dollar | $ | | GBP | British Pound | \xA3 | | JPY | Japanese Yen | \xA5 | | CHF | Swiss Franc | CHF |\n**WHY NOT JUST USE STRING?**\nSimple string fields like `budget_currency: \"EUR\"` lose important context: - Symbol for display purposes - Full name for accessibility - Historical validity (currencies change over time) - Link to authoritative ISO 4217 standard\nThe Currency class captures this richness while remaining simple for basic use.\n**HISTORICAL CURRENCIES**:\nHeritage institutions often deal with historical currencies: - NLG (Dutch Guilder) - replaced by EUR in 2002 - DEM (German Mark) - replaced by EUR in 2002 - FRF (French Franc) - replaced by EUR in 2002\nThe temporal\ - \ naming pattern (has_or_had_currency) accommodates this.\n**EXAMPLE**:\n```yaml Currency:\n currency_code: EUR\n currency_name: Euro\n currency_symbol: \u20AC\n```" + \ naming pattern (has_currency) accommodates this.\n**EXAMPLE**:\n```yaml Currency:\n currency_code: EUR\n currency_name: Euro\n currency_symbol: \u20AC\n```" exact_mappings: - schema:Currency close_mappings: - qudt:CurrencyUnit slots: - - has_or_had_identifier + - identified_by - currency_code - - has_or_had_label + - has_label - currency_symbol - - has_or_had_description - - has_or_had_score + - has_description + - has_score slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: false examples: @@ -47,7 +47,7 @@ classes: - value: USD - value: GBP - value: NLG - has_or_had_label: + has_label: # range: string required: false examples: @@ -62,7 +62,7 @@ classes: - value: $ - value: "\xA3" - value: "\u0192" - has_or_had_description: + has_description: # range: string required: false examples: @@ -79,17 +79,17 @@ classes: examples: - value: currency_code: EUR - has_or_had_label: Euro + has_label: Euro currency_symbol: "\u20AC" - has_or_had_description: Official currency of the Eurozone + has_description: Official currency of the Eurozone - value: currency_code: NLG - has_or_had_label: Dutch Guilder + has_label: Dutch Guilder currency_symbol: "\u0192" - has_or_had_description: Dutch national currency until replaced by Euro in 2002 + has_description: Dutch national currency until replaced by Euro in 2002 - value: currency_code: USD - has_or_had_label: US Dollar + has_label: US Dollar currency_symbol: $ annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/CurrentArchive.yaml b/schemas/20251121/linkml/modules/classes/CurrentArchive.yaml index 2e7a1b2810..de4cd681b9 100644 --- a/schemas/20251121/linkml/modules/classes/CurrentArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/CurrentArchive.yaml @@ -12,11 +12,11 @@ default_prefix: hc imports: - linkml:types - ../slots/creating_organization - - ../slots/has_or_had_identifier - - ../slots/has_or_had_policy - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_policy + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - ../slots/retention_schedule classes: @@ -25,17 +25,17 @@ classes: class_uri: schema:ArchiveOrganization slots: - creating_organization - - has_or_had_type + - has_type - hold_or_held_record_set_type - retention_schedule - - has_or_had_score - - has_or_had_policy - - has_or_had_identifier + - has_score + - has_policy + - identified_by description: "Archive maintaining records still in active/current use by the creating organization.\n\n**Wikidata**: Q3621648 (current archive / archivo corriente / archivio corrente)\n\n**DEFINITION**:\n\nCurrent Archive (also called \"active archive\" or \"records center\") maintains \nrecords that are still actively used for operational purposes. In the archival \nlifecycle, this represents the first phase:\n\n1. **Current/Active Phase** \u2190 THIS TYPE\n - Records actively used for business operations\n - Frequent retrieval and reference\n - Managed by creating office or central records unit\n\n2. **Semi-current/Intermediate Phase** \u2192 DepositArchive\n - Records no longer actively used but still referenced\n - Stored in intermediate facility\n - Awaiting disposition decision\n\n3. **Non-current/Archival Phase** \u2192 Historical Archive\n - Records with permanent value\n - Transferred to archives\n - Preserved for research/evidence\n\n**MULTILINGUAL LABELS**:\n\ - archivo corriente (es)\n- archive courante (fr)\n- archivio corrente (it)\n\n**RELATED TYPES**:\n- DepositArchive (Q244904) - intermediate/semi-current records\n- HistoricalArchive (Q3621673) - non-current permanent records\n- RecordsCenter - semi-current storage facility\n\n**RELATIONSHIP TO CustodianArchive**:\n\nCurrentArchive (this class) is a TYPE classification (skos:Concept) for \narchives managing records in the active/current phase of the lifecycle.\n\nCustodianArchive is an INSTANCE class (rico:RecordSet) representing the \nactual operational archives of a heritage custodian awaiting processing.\n\n**Semantic Relationship**:\n- CurrentArchive is a HYPERNYM (broader type) for the concept of active records\n- CustodianArchive records MAY be typed as CurrentArchive when in active use\n- When CustodianArchive.processing_status = \"UNPROCESSED\", records may still\n be in the current/active phase conceptually\n\n**SKOS Alignment**:\n- skos:broader: CurrentArchive \u2192 DepositArchive\ \ (lifecycle progression)\n- skos:narrower: CurrentArchive \u2190 specific current archive types\n\n**ONTOLOGICAL ALIGNMENT**:\n- **SKOS**: skos:Concept (type classification)\n- **RiC-O**: rico:RecordSet for active record groups\n- **Wikidata**: Q3621648\n- **ISO 15489**: Records in active use phase\n" slot_usage: - has_or_had_identifier: null + identified_by: null retention_schedule: # range: string examples: @@ -44,7 +44,7 @@ classes: # range: string examples: - value: Ministry of Finance - has_or_had_policy: + has_policy: range: TransferPolicy multivalued: true inlined: true @@ -52,7 +52,7 @@ classes: - value: policy_name: Government Records Transfer Policy policy_text: Records transferred to National Archives after 20 years - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' exact_mappings: - wd:Q3621648 @@ -74,14 +74,14 @@ classes: - https://www.iso.org/standard/62542.html examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q3621648 - has_or_had_type_code: ARCHIVE - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/archive/Q3621648 + has_type_code: ARCHIVE + has_label: - Current Archive@en - archivo corriente@es - archive courante@fr - archivio corrente@it - has_or_had_description: Archive for records in active operational use + has_description: Archive for records in active operational use creating_organization: Ministry of Finance retention_schedule: Finance Records Schedule 2023 annotations: diff --git a/schemas/20251121/linkml/modules/classes/CurrentArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/CurrentArchiveRecordSetType.yaml index 5d29908bcf..d515873c11 100644 --- a/schemas/20251121/linkml/modules/classes/CurrentArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/CurrentArchiveRecordSetType.yaml @@ -10,8 +10,8 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_scope # was: type_scope + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_scope # was: type_scope classes: CurrentArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by CurrentArchive custodians. @@ -20,7 +20,7 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_scope # was: type_scope - migrated per Rule 53 (2026-01-15) + - has_scope # was: type_scope - migrated per Rule 53 (2026-01-15) see_also: - CurrentArchive - rico:RecordSetType diff --git a/schemas/20251121/linkml/modules/classes/CurrentArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/CurrentArchiveRecordSetTypes.yaml index 4d5ff9860a..c0d286bdf6 100644 --- a/schemas/20251121/linkml/modules/classes/CurrentArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/CurrentArchiveRecordSetTypes.yaml @@ -19,8 +19,8 @@ default_prefix: hc imports: - ./CurrentArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -43,15 +43,15 @@ classes: - CurrentArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ActiveRecordsFonds diff --git a/schemas/20251121/linkml/modules/classes/Custodian.yaml b/schemas/20251121/linkml/modules/classes/Custodian.yaml index b3dd8e5f2b..5d6f6e48f2 100644 --- a/schemas/20251121/linkml/modules/classes/Custodian.yaml +++ b/schemas/20251121/linkml/modules/classes/Custodian.yaml @@ -19,17 +19,17 @@ default_prefix: hc imports: - linkml:types - ../slots/created - - ../slots/has_or_had_collection - - ../slots/has_or_had_digital_presence - - ../slots/has_or_had_exhibition - - ../slots/has_or_had_facility - - ../slots/has_or_had_identifier - - ../slots/has_or_had_policy - - ../slots/has_or_had_score - - ../slots/has_or_had_social_media_profile - - ../slots/has_or_had_type - - ../slots/is_or_was_encompassed_by - - ../slots/is_or_was_involved_in + - ../slots/20260202_matang/has_collection + - ../slots/20260202_matang/has_digital_presence + - ../slots/20260202_matang/has_exhibition + - ../slots/20260202_matang/has_facility + - ../slots/identified_by + - ../slots/20260202_matang/has_policy + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_social_media_profile + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/encompassed_by + - ../slots/20260202_matang/involved_in - ../slots/legal_status - ../slots/mission_statement - ../slots/modified @@ -42,7 +42,7 @@ classes: Custodian: class_uri: crm:E39_Actor description: 'An abstract hub class that serves as the central connection point for all information about a heritage custodian - entity. The Custodian itself contains minimal information - essentially just its persistent identifier (has_or_had_identifier) + entity. The Custodian itself contains minimal information - essentially just its persistent identifier (identified_by) - and acts as a node to which all observations (CustodianObservation, CustodianName) and reconstructions (CustodianLegalStatus) attach. This hub pattern allows multiple observations from different sources to be connected to a single logical entity without asserting which observation is "correct" or "primary". **HUB ARCHITECTURE**: - The Custodian hub is identified @@ -103,15 +103,15 @@ classes: - schema:MedicalOrganization - schema:SportsOrganization slots: - - is_or_was_involved_in + - involved_in - created - - has_or_had_type - - has_or_had_policy - - has_or_had_digital_presence - - is_or_was_encompassed_by - - has_or_had_exhibition - - has_or_had_collection - - has_or_had_identifier + - has_type + - has_policy + - has_digital_presence + - encompassed_by + - has_exhibition + - has_collection + - identified_by - legal_status - mission_statement - modified @@ -119,12 +119,12 @@ classes: - place_designation - preferred_label - preserves_or_preserved - - has_or_had_social_media_profile - - has_or_had_facility - - has_or_had_score + - has_social_media_profile + - has_facility + - has_score - temporal_extent slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true @@ -139,13 +139,13 @@ classes: # range: CustodianPlace inlined: false # Fixed invalid inline for primitive type required: false - has_or_had_digital_presence: + has_digital_presence: # range: string # uriorcurie # range: DigitalPlatform multivalued: true required: false inlined_as_list: false # Fixed invalid inline for primitive type - has_or_had_collection: + has_collection: # range: string # uriorcurie # range: CustodianCollection multivalued: true @@ -156,16 +156,16 @@ classes: multivalued: true required: false inlined_as_list: false # Fixed invalid inline for primitive type - is_or_was_encompassed_by: + encompassed_by: # range: string # uriorcurie # range: EncompassingBody multivalued: true required: false inlined_as_list: false # Fixed invalid inline for primitive type - has_or_had_policy: + has_policy: # range: string required: false - has_or_had_social_media_profile: + has_social_media_profile: # range: string # uriorcurie # range: SocialMediaProfile multivalued: true @@ -221,7 +221,7 @@ classes: (was time_of_destruction - migrated 2026-01-15) examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 + identified_by: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CustodianAdministration.yaml b/schemas/20251121/linkml/modules/classes/CustodianAdministration.yaml index fde690b36a..3248d6f343 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianAdministration.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianAdministration.yaml @@ -3,19 +3,19 @@ name: custodian_administration_class title: CustodianAdministration Class imports: - linkml:types - - ../slots/contains_or_contained + - ../slots/20260202_matang/contain - ../slots/creating_function - ../slots/estimates_or_estimated - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_level - - ../slots/has_or_had_quantity - - ../slots/has_or_had_roadmap - - ../slots/has_or_had_score - - ../slots/has_or_had_status - - ../slots/is_or_was_active_since - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_level + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_roadmap + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/active_since + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by - ../slots/managing_unit - ../slots/primary_system - ../slots/record_type @@ -55,15 +55,15 @@ classes: - rico:isAssociatedWithActivity - org:Organization slots: - - is_or_was_active_since - - has_or_had_description - - has_or_had_label - - has_or_had_status + - active_since + - has_description + - has_label + - has_status - creating_function - - has_or_had_level - - has_or_had_quantity - - has_or_had_roadmap - - contains_or_contained + - has_level + - has_quantity + - has_roadmap + - contain - estimates_or_estimated - managing_unit - primary_system @@ -71,19 +71,19 @@ classes: - refers_to_custodian - retention_period_year - retention_schedule - - has_or_had_score + - has_score - temporal_extent - - is_or_was_derived_from - - is_or_was_generated_by + - derived_from + - generated_by slot_usage: - has_or_had_label: + has_label: # range: string required: true inlined: false # Fixed invalid inline for primitive type examples: - value: label_text: Director's Office Correspondence - has_or_had_description: + has_description: # range: string required: false inlined: false # Fixed invalid inline for primitive type @@ -107,23 +107,23 @@ classes: required: false examples: - value: Collection acquisition - is_or_was_active_since: + active_since: range: date required: false examples: - value: '2015-01-01' - has_or_had_quantity: + has_quantity: range: integer multivalued: true inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_measurement_unit: - has_or_had_symbol: documents + has_measurement_unit: + has_symbol: documents is_estimate: true - value: - has_or_had_measurement_unit: - has_or_had_symbol: GB + has_measurement_unit: + has_symbol: GB is_estimate: true estimates_or_estimated: range: GrowthRate @@ -131,7 +131,7 @@ classes: required: false examples: - value: - has_or_had_description: ~30,000 documents/year + has_description: ~30,000 documents/year primary_system: range: DigitalPlatform required: false @@ -148,47 +148,47 @@ classes: examples: - value: 7 - value: 20 - has_or_had_level: + has_level: # range: string inlined: false # Fixed invalid inline for primitive type required: false description: 'Data sensitivity classification level. Standard codes: PUBLIC, INTERNAL, CONFIDENTIAL, STRICTLY_CONFIDENTIAL, PERSONAL_DATA, SPECIAL_CATEGORY' examples: - value: - has_or_had_label: Confidential - has_or_had_code: CONFIDENTIAL - has_or_had_description: Personnel data - need-to-know basis - contains_or_contained: + has_label: Confidential + has_code: CONFIDENTIAL + has_description: Personnel data - need-to-know basis + contain: range: PersonalData inlined: true multivalued: true required: false examples: - value: - has_or_had_sensitivity_level: - has_or_had_label: GDPR Sensitive - has_or_had_code: SPECIAL_CATEGORY - has_or_had_description: Contains employee personal data + has_sensitivity_level: + has_label: GDPR Sensitive + has_code: SPECIAL_CATEGORY + has_description: Contains employee personal data - value: - has_or_had_label: MEDIUM - has_or_had_description: Historical project files - reference only - has_or_had_status: + has_label: MEDIUM + has_description: Historical project files - reference only + has_status: range: BackupStatus required: false examples: - value: - has_or_had_type: - - has_or_had_code: DAILY_AUTOMATED - - has_or_had_code: CLOUD_AZURE - has_or_had_description: Daily backup to Azure, 30-day retention + has_type: + - has_code: DAILY_AUTOMATED + - has_code: CLOUD_AZURE + has_description: Daily backup to Azure, 30-day retention refers_to_custodian: range: Custodian required: true - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false temporal_extent: @@ -209,9 +209,9 @@ classes: examples: - value: id: https://nde.nl/ontology/hc/administration/rm/directors-correspondence - has_or_had_label: + has_label: label_text: Director's Office Correspondence - has_or_had_description: + has_description: description_text: Incoming and outgoing correspondence of the museum director including policy discussions, strategic partnerships, and institutional communications. record_type: - Correspondence @@ -219,47 +219,47 @@ classes: - Meeting minutes - Policy documents creating_function: Executive management - is_or_was_active_since: '2018-01-01' - has_or_had_quantity: + active_since: '2018-01-01' + has_quantity: - quantity_value: 25000 - has_or_had_measurement_unit: - has_or_had_symbol: documents + has_measurement_unit: + has_symbol: documents is_estimate: true - quantity_value: 150 - has_or_had_measurement_unit: - has_or_had_symbol: GB + has_measurement_unit: + has_symbol: GB is_estimate: true estimates_or_estimated: - has_or_had_description: ~5,000 documents/year + has_description: ~5,000 documents/year primary_system: https://nde.nl/ontology/hc/platform/rm-sharepoint retention_schedule: Museum Retention Schedule 2020, cat. 1.1 retention_period_years: 10 - has_or_had_roadmap: - - contains_or_contained: - - has_or_had_label: Transfer to National Archives + has_roadmap: + - contain: + - has_label: Transfer to National Archives temporal_extent: end_of_the_end: '2028-01-01' - has_or_had_level: - has_or_had_label: Confidential - has_or_had_code: CONFIDENTIAL - has_or_had_description: Confidential correspondence - need-to-know basis - contains_or_contained: - - has_or_had_sensitivity_level: - has_or_had_label: GDPR Sensitive - has_or_had_code: PERSONAL_DATA - has_or_had_description: Contains personal correspondence - has_or_had_status: - has_or_had_type: - - has_or_had_code: DAILY_AUTOMATED - - has_or_had_code: CLOUD_AZURE - has_or_had_description: Daily backup to Azure, replicated to secondary site + has_level: + has_label: Confidential + has_code: CONFIDENTIAL + has_description: Confidential correspondence - need-to-know basis + contain: + - has_sensitivity_level: + has_label: GDPR Sensitive + has_code: PERSONAL_DATA + has_description: Contains personal correspondence + has_status: + has_type: + - has_code: DAILY_AUTOMATED + - has_code: CLOUD_AZURE + has_description: Daily backup to Azure, replicated to secondary site access_control: 'AD Group: RM-Directors-Staff' refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: id: https://nde.nl/ontology/hc/administration/rm/hr-personnel - has_or_had_label: + has_label: label_text: Human Resources Personnel Files - has_or_had_description: + has_description: description_text: Employee personnel records including contracts, performance reviews, training records, and employment documentation. record_type: - Personnel files @@ -267,67 +267,67 @@ classes: - Performance reviews - Training records creating_function: Human resource management - is_or_was_active_since: '2010-01-01' - has_or_had_quantity: + active_since: '2010-01-01' + has_quantity: - quantity_value: 2000 - has_or_had_measurement_unit: - has_or_had_symbol: files - has_or_had_description: employee files + has_measurement_unit: + has_symbol: files + has_description: employee files is_estimate: true - quantity_value: 500 - has_or_had_measurement_unit: - has_or_had_symbol: GB + has_measurement_unit: + has_symbol: GB is_estimate: true estimates_or_estimated: - has_or_had_description: ~100 files/year (new hires) + has_description: ~100 files/year (new hires) primary_system: https://nde.nl/ontology/hc/platform/rm-workday retention_schedule: Museum Retention Schedule 2020, cat. 3.2 retention_period_years: 20 - has_or_had_level: - has_or_had_label: Special Category Data - has_or_had_code: SPECIAL_CATEGORY - has_or_had_description: Personnel data - GDPR Article 9 sensitive personal data - contains_or_contained: - - has_or_had_sensitivity_level: - has_or_had_label: GDPR Sensitive - has_or_had_code: SPECIAL_CATEGORY - has_or_had_description: Contains employee personal data - has_or_had_status: - has_or_had_type: - - has_or_had_code: REALTIME_REPLICATION - - has_or_had_code: ENCRYPTED_AT_REST - has_or_had_description: Real-time replication, encrypted at rest + has_level: + has_label: Special Category Data + has_code: SPECIAL_CATEGORY + has_description: Personnel data - GDPR Article 9 sensitive personal data + contain: + - has_sensitivity_level: + has_label: GDPR Sensitive + has_code: SPECIAL_CATEGORY + has_description: Contains employee personal data + has_status: + has_type: + - has_code: REALTIME_REPLICATION + - has_code: ENCRYPTED_AT_REST + has_description: Real-time replication, encrypted at rest access_control: HR Department only, individual file permissions refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/administration/rm/conservation-lab - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/administration/rm/conservation-lab + has_label: label_text: Conservation Treatment Records - has_or_had_description: + has_description: description_text: Documentation of conservation treatments performed on collection objects including condition reports, treatment proposals, and completed treatment records. - is_or_was_active_since: '2005-01-01' - has_or_had_quantity: + active_since: '2005-01-01' + has_quantity: - quantity_value: 45000 - has_or_had_measurement_unit: - has_or_had_symbol: files - has_or_had_description: treatment files + has_measurement_unit: + has_symbol: files + has_description: treatment files is_estimate: true - quantity_value: 2 - has_or_had_measurement_unit: - has_or_had_symbol: TB - has_or_had_description: high-res images + has_measurement_unit: + has_symbol: TB + has_description: high-res images is_estimate: true estimates_or_estimated: - has_or_had_description: ~2,000 treatments/year - has_or_had_level: - has_or_had_label: Internal - has_or_had_code: INTERNAL - has_or_had_description: For internal staff use only - has_or_had_status: - has_or_had_type: - - has_or_had_code: DAILY_AUTOMATED - - has_or_had_code: LONG_RETENTION - has_or_had_description: Daily backup, 10-year retention, linked to object records + has_description: ~2,000 treatments/year + has_level: + has_label: Internal + has_code: INTERNAL + has_description: For internal staff use only + has_status: + has_type: + - has_code: DAILY_AUTOMATED + - has_code: LONG_RETENTION + has_description: Daily backup, 10-year retention, linked to object records refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/CustodianArchive.yaml b/schemas/20251121/linkml/modules/classes/CustodianArchive.yaml index ca84126c07..9f2f5ea0ac 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianArchive.yaml @@ -5,21 +5,21 @@ imports: - linkml:types - ../enums/ArchiveProcessingStatusEnum - ../slots/creating_agency - - ../slots/has_or_had_accumulation - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_note - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_accumulation + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_accessioned_through - - ../slots/is_or_was_appended_with - - ../slots/is_or_was_conducted_by - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by - - ../slots/is_or_was_stored_at - - ../slots/is_or_was_transferred + - ../slots/20260202_matang/accessioned_through + - ../slots/20260202_matang/appended_with + - ../slots/20260202_matang/conducted_by + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by + - ../slots/20260202_matang/stored_at + - ../slots/20260202_matang/transferred - ../slots/lifecycle_phase_type - ../slots/managing_unit - ../slots/processing_completed_date @@ -48,14 +48,14 @@ classes: is_a: ReconstructedEntity class_uri: rico:RecordSet slots: - - is_or_was_accessioned_through - - has_or_had_accumulation - - has_or_had_note - - has_or_had_description - - has_or_had_label + - accessioned_through + - has_accumulation + - has_note + - has_description + - has_label - creating_agency - - has_or_had_type - - has_or_had_quantity + - has_type + - has_quantity - hold_or_held_record_set_type - lifecycle_phase_type - managing_unit @@ -64,13 +64,13 @@ classes: - processing_started_date - processing_status - refers_to_custodian - - is_or_was_stored_at - - is_or_was_appended_with - - has_or_had_score - - is_or_was_transferred + - stored_at + - appended_with + - has_score + - transferred - temporal_extent - - is_or_was_derived_from - - is_or_was_generated_by + - derived_from + - generated_by description: "Represents OPERATIONAL ARCHIVES created by a heritage custodian through its\ndaily activities that are NOT YET integrated into the formal heritage collection\n(CustodianCollection).\n\n**CRITICAL DISTINCTION - THREE-TIER RECORDS LIFECYCLE**:\n\n```\n\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 CustodianAdministration \u2502\n\u2502 \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u2502\n\u2502 ACTIVE records\ \ in daily use \u2502\n\u2502 - Current correspondence, invoices, personnel files \u2502\n\u2502 - Digital files on shared drives \u2502\n\u2502 - Email systems, databases \u2502\n\u2502 - Actively referenced and modified \u2502\n\u2502 - Managed by business units, NOT archives \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2193\n (Retention period ends, \n \ \ transferred to archives)\n \u2193\n\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 CustodianArchive (THIS CLASS) \u2502\n\u2502 \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u2502\n\u2502 INACTIVE records awaiting archival processing \u2502\n\u2502 - Transferred from administration to archives \u2502\n\u2502 - In BACKLOG\ @@ -89,20 +89,20 @@ classes: - rico:Activity - crm:E78_Curated_Holding slot_usage: - has_or_had_label: + has_label: # range: string required: true inlined: false # Fixed invalid inline for primitive type examples: - value: label_text: Director's Office Correspondence 2010-2020 - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_description: Incoming and outgoing correspondence of the museum director including policy discussions, loan requests, and exhibition planning. - is_or_was_accessioned_through: + has_description: Incoming and outgoing correspondence of the museum director including policy discussions, loan requests, and exhibition planning. + accessioned_through: range: AccessionEvent inlined: true required: false @@ -110,10 +110,10 @@ classes: - value: temporal_extent: begin_of_the_begin: '2024-01-15' - has_or_had_identifier: - - has_or_had_value: 2024-0001 - has_or_had_type: Accession Number - has_or_had_accumulation: + identified_by: + - has_value: 2024-0001 + has_type: Accession Number + has_accumulation: range: Accumulation inlined: true examples: @@ -124,37 +124,37 @@ classes: creating_agency: # range: string required: false - has_or_had_type: + has_type: range: CustodianType inlined: true examples: - value: - has_or_had_label: Municipal Archive - has_or_had_quantity: + has_label: Municipal Archive + has_quantity: range: integer multivalued: true inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_measurement_unit: - has_or_had_label: linear meters + has_measurement_unit: + has_label: linear meters is_estimate: true - value: - has_or_had_measurement_unit: - has_or_had_symbol: GB - has_or_had_description: ~50,000 files + has_measurement_unit: + has_symbol: GB + has_description: ~50,000 files is_estimate: true - is_or_was_stored_at: + stored_at: range: StorageLocation multivalued: true required: false - is_or_was_conducted_by: + conducted_by: range: ProcessorAgent required: false inlined: true examples: - value: - has_or_had_name: "Dr. Maria van den Berg" + has_name: "Dr. Maria van den Berg" processing_started_date: range: date required: false @@ -165,7 +165,7 @@ classes: required: false examples: - value: '2024-09-15' - is_or_was_transferred: + transferred: range: TransferEvent multivalued: true inlined: true @@ -175,71 +175,71 @@ classes: - value: temporal_extent: begin_of_the_begin: - has_or_had_timestamp: '2024-10-01T00:00:00Z' - has_or_had_description: + has_timestamp: '2024-10-01T00:00:00Z' + has_description: description_text: Transferred to collection after processing complete - is_or_was_appended_with: + appended_with: # range: string # uriorcurie required: false examples: - value: https://nde.nl/ontology/hc/collection/rm-director-correspondence-2010-2020 - has_or_had_note: + has_note: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type examples: - value: id: https://nde.nl/ontology/hc/archive/rm/directors-correspondence-2010-2020 - has_or_had_label: + has_label: label_text: Director's Office Correspondence 2010-2020 - has_or_had_description: - has_or_had_description: Incoming and outgoing correspondence of the museum director including policy discussions, loan requests, and exhibition planning. - is_or_was_accessioned_through: + has_description: + has_description: Incoming and outgoing correspondence of the museum director including policy discussions, loan requests, and exhibition planning. + accessioned_through: temporal_extent: begin_of_the_begin: '2024-01-15' - has_or_had_identifier: - - has_or_had_value: RM-2024-0001 - has_or_had_accumulation: + identified_by: + - has_value: RM-2024-0001 + has_accumulation: temporal_extent: begin_of_the_begin: '2010-01-01' end_of_the_end: '2020-12-31' creating_agency: Director's Office processing_status: UNPROCESSED processing_priority: MEDIUM - has_or_had_quantity: + has_quantity: - quantity_value: 12 - has_or_had_measurement_unit: - has_or_had_label: linear meters - has_or_had_description: 48 boxes + has_measurement_unit: + has_label: linear meters + has_description: 48 boxes is_estimate: true refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: id: https://nde.nl/ontology/hc/archive/na/2015-gov-0234 - has_or_had_label: + has_label: label_text: Ministry of Finance Records 1990-2005 - has_or_had_description: - has_or_had_description: Financial policy records, budget documentation, and ministerial correspondence transferred under government archives law. - is_or_was_accessioned_through: + has_description: + has_description: Financial policy records, budget documentation, and ministerial correspondence transferred under government archives law. + accessioned_through: temporal_extent: begin_of_the_begin: '2015-06-01' - has_or_had_identifier: - - has_or_had_value: NA-2015-GOV-0234 - has_or_had_accumulation: + identified_by: + - has_value: NA-2015-GOV-0234 + has_accumulation: temporal_extent: begin_of_the_begin: '1990-01-01' end_of_the_end: '2005-12-31' creating_agency: Ministry of Finance processing_status: IN_ARRANGEMENT processing_priority: HIGH - has_or_had_quantity: + has_quantity: - quantity_value: 85 - has_or_had_measurement_unit: - has_or_had_label: linear meters + has_measurement_unit: + has_label: linear meters is_estimate: true - is_or_was_conducted_by: - has_or_had_name: "Dr. Jan de Vries" + conducted_by: + has_name: "Dr. Jan de Vries" processing_started_date: '2024-01-10' - has_or_had_notes: + has_notes: - note_type: appraisal note_content: Retained all policy files; weeded duplicate copies per retention schedule. note_date: '2024-01-10' diff --git a/schemas/20251121/linkml/modules/classes/CustodianArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/CustodianArchiveRecordSetType.yaml index ba9613f4c2..32709bc0c0 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianArchiveRecordSetType.yaml @@ -15,8 +15,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_scope # was: type_scope + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_scope # was: type_scope classes: CustodianArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by CustodianArchive custodians. @@ -25,7 +25,7 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_scope # was: type_scope - migrated per Rule 53 (2026-01-15) + - has_scope # was: type_scope - migrated per Rule 53 (2026-01-15) see_also: - CustodianArchive - rico:RecordSetType diff --git a/schemas/20251121/linkml/modules/classes/CustodianArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/CustodianArchiveRecordSetTypes.yaml index ff3ad3942c..7a61b7da25 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./CustodianArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - CustodianArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CustodialRecordsFonds diff --git a/schemas/20251121/linkml/modules/classes/CustodianCollection.yaml b/schemas/20251121/linkml/modules/classes/CustodianCollection.yaml index d85e258cc7..376802abce 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianCollection.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianCollection.yaml @@ -4,17 +4,17 @@ title: CustodianCollection Class imports: - linkml:types - ../slots/custody_history - - ../slots/has_or_had_arrangement - - ../slots/has_or_had_content - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_provenance - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by - - ../slots/is_or_was_instantiated_by + - ../slots/20260202_matang/has_arrangement + - ../slots/20260202_matang/has_content + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by + - ../slots/20260202_matang/instantiated_by - ../slots/managing_unit - ../slots/preservation_level - ../slots/refers_to_custodian @@ -50,23 +50,23 @@ classes: - premis:relationship - dcterms:hasPart slots: - - has_or_had_description - - has_or_had_label - - has_or_had_scope - - has_or_had_type + - has_description + - has_label + - has_scope + - has_type - custody_history - - is_or_was_instantiated_by + - instantiated_by - managing_unit - preservation_level - - has_or_had_provenance + - has_provenance - refers_to_custodian - - has_or_had_score - - has_or_had_content + - has_score + - has_content - temporal_extent - - is_or_was_derived_from - - is_or_was_generated_by + - derived_from + - generated_by slot_usage: - has_or_had_label: + has_label: # range: string # uriorcurie # range: Label inlined: false # Fixed invalid inline for primitive type @@ -84,7 +84,7 @@ classes: # range: string # uriorcurie # range: Custodian required: true - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type required: false @@ -94,7 +94,7 @@ classes: - value: description_text: The Nationaal Archief holdings comprise over 137 km of archival records documenting Dutch government and society from the medieval period to the present. description_type: collection_description - has_or_had_scope: + has_scope: # range: string # uriorcurie # range: CollectionScope inlined: false # Fixed invalid inline for primitive type @@ -104,22 +104,22 @@ classes: scope_description: 17th-century Dutch painting - value: scope_description: Municipal government records, 1578-present - has_or_had_content: + has_content: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type inlined_as_list: false # Fixed invalid inline for primitive type required: false - description: "Content held by this collection with typed categorization.\nMIGRATED from:\n- temporal_coverage per slot_fixes.yaml (Rule 53/56, 2026-01-16)\n- collection_type per slot_fixes.yaml (Rule 53, 2026-01-22)\n\nCollectionContent unifies content description with type classification:\n- content_description: Free-text description of the content\n- content_date_range: Temporal coverage (e.g., \"1602-1799\")\n- content_extent: Size/extent of content\n- has_or_had_type \u2192 CollectionContentType: Type classification (Archival, Library, Art, etc.)\n" + description: "Content held by this collection with typed categorization.\nMIGRATED from:\n- temporal_coverage per slot_fixes.yaml (Rule 53/56, 2026-01-16)\n- collection_type per slot_fixes.yaml (Rule 53, 2026-01-22)\n\nCollectionContent unifies content description with type classification:\n- content_description: Free-text description of the content\n- content_date_range: Temporal coverage (e.g., \"1602-1799\")\n- content_extent: Size/extent of content\n- has_type \u2192 CollectionContentType: Type classification (Archival, Library, Art, etc.)\n" examples: - value: - has_or_had_type: + has_type: - type_label: Archival - value: - has_or_had_type: + has_type: - type_label: Art - type_label: Liturgical - is_or_was_instantiated_by: + instantiated_by: # range: string # uriorcurie # range: DigitalInstantiation multivalued: true @@ -130,37 +130,37 @@ classes: examples: - value: FULL - value: BIT_LEVEL - has_or_had_arrangement: + has_arrangement: # range: string # uriorcurie # range: ArrangementType required: false examples: - value: - has_or_had_type: ProvenanceBasedArrangement - has_or_had_description: Arranged by creator/provenance (respect des fonds) + has_type: ProvenanceBasedArrangement + has_description: Arranged by creator/provenance (respect des fonds) - value: - has_or_had_type: NumericalArrangement - has_or_had_description: Arranged by accession number - has_or_had_provenance: + has_type: NumericalArrangement + has_description: Arranged by accession number + has_provenance: required: false # range: string # uriorcurie # range: Provenance inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_description: + has_description: - description_text: Transferred from private donor 2015; previously held by estate since 1923. description_type: provenance_note - is_or_was_generated_by: + generated_by: # range: string # uriorcurie # range: ReconstructionActivity required: false - is_or_was_derived_from: + derived_from: # range: string # uriorcurie # range: CustodianObservation multivalued: true required: true - has_or_had_type: + has_type: equals_expression: '["*"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/CustodianLegalNameClaim.yaml b/schemas/20251121/linkml/modules/classes/CustodianLegalNameClaim.yaml index 80a0e12d7a..36a4086d74 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianLegalNameClaim.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianLegalNameClaim.yaml @@ -10,7 +10,7 @@ prefixes: rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type - ../slots/note # default_range: string classes: @@ -27,10 +27,10 @@ classes: related_mappings: - schema:legalName slots: - - has_or_had_type + - has_type - note slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie inlined: false # Fixed invalid inline for primitive type required: false diff --git a/schemas/20251121/linkml/modules/classes/CustodianLegalStatus.yaml b/schemas/20251121/linkml/modules/classes/CustodianLegalStatus.yaml index f7770f135f..d2d05ebeae 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianLegalStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianLegalStatus.yaml @@ -24,16 +24,16 @@ imports: - ../enums/ReconstructionActivityTypeEnum - ../metadata - ../slots/defines_or_defined - - ../slots/has_or_had_document - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_status - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_dissolved_by - - ../slots/is_or_was_generated_by - - ../slots/is_or_was_responsible_for - - ../slots/is_or_was_revision_of - - ../slots/is_or_was_suborganization_of + - ../slots/20260202_matang/has_document + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/dissolved_by + - ../slots/20260202_matang/generated_by + - ../slots/20260202_matang/responsible_for + - ../slots/20260202_matang/revision_of + - ../slots/20260202_matang/suborganization_of - ../slots/legal_entity_type - ../slots/legal_form - ../slots/legal_jurisdiction @@ -89,34 +89,34 @@ classes: - bf:Organization - bibframe:Agent slots: - - is_or_was_responsible_for - - is_or_was_dissolved_by + - responsible_for + - dissolved_by - defines_or_defined - - has_or_had_document - - has_or_had_identifier + - has_document + - identified_by - legal_entity_type - legal_form - legal_jurisdiction - legal_name - - has_or_had_status - - is_or_was_suborganization_of + - has_status + - suborganization_of - primary_register - reconstruction_method - refers_to_custodian - registration_authority - registration_date - service_area - - has_or_had_score + - has_score - temporal_extent - - is_or_was_derived_from - - is_or_was_generated_by - - is_or_was_revision_of + - derived_from + - generated_by + - revision_of slot_usage: refers_to_custodian: required: true examples: - value: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - is_or_was_responsible_for: + responsible_for: range: LegalResponsibilityCollection multivalued: true examples: @@ -155,7 +155,7 @@ classes: see_also: - https://www.gleif.org/en/about-lei/code-lists/iso-20275-entity-legal-forms-code-list - /data/ontology/gleif_legal_form.ttl - has_or_had_identifier: + identified_by: # range: string # uriorcurie # range: RegistrationNumber multivalued: true @@ -187,7 +187,7 @@ classes: country: alpha_2: NL alpha_3: NLD - is_or_was_dissolved_by: + dissolved_by: # range: string # uriorcurie # range: DissolutionEvent inlined: false # Fixed invalid inline for primitive type @@ -199,23 +199,23 @@ classes: end_of_the_begin: '1805-12-31' begin_of_the_end: '1950-01-01' end_of_the_end: '1955-12-31' - is_or_was_suborganization_of: + suborganization_of: # range: string # uriorcurie # range: CustodianLegalStatus - has_or_had_status: + has_status: range: LegalStatus required: true examples: - value: - has_or_had_label: Active + has_label: Active defines_or_defined: # range: string # uriorcurie # range: GovernanceStructure examples: - value: - has_or_had_type: hierarchical - has_or_had_description: Board of trustees with director-led departments - has_or_had_document: + has_type: hierarchical + has_description: Board of trustees with director-led departments + has_document: # range: string # uriorcurie # range: ArticlesOfAssociation inlined: false # Fixed invalid inline for primitive type @@ -224,25 +224,25 @@ classes: examples: - value: - id: https://nde.nl/ontology/hc/articles/rm/v1 - has_or_had_title: - has_or_had_label: Statuten Stichting Rijksmuseum (1885) - has_or_had_version: 1 + has_title: + has_label: Statuten Stichting Rijksmuseum (1885) + has_version: 1 is_current_version: false current_archival_stage: HERITAGE - id: https://nde.nl/ontology/hc/articles/rm/v15 - has_or_had_title: - has_or_had_label: Statuten Stichting Rijksmuseum (2023) - has_or_had_version: 15 + has_title: + has_label: Statuten Stichting Rijksmuseum (2023) + has_version: 15 is_current_version: true current_archival_stage: ACTIVE - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: true - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: true - is_or_was_revision_of: + revision_of: # range: string # uriorcurie # range: CustodianLegalStatus service_area: @@ -283,7 +283,7 @@ classes: language: nl legal_form: abbreviation: St. - has_or_had_identifier: + identified_by: - number: '41215422' registration_authority: name: Chamber of Commerce @@ -304,15 +304,15 @@ classes: alpha_2: NL alpha_3: NLD legal_system_type: CIVIL_LAW - has_or_had_status: - has_or_had_label: Active - is_or_was_derived_from: + has_status: + has_label: Active + derived_from: - https://w3id.org/heritage/observation/rijks-letterhead-2015 - https://w3id.org/heritage/observation/rijksmuseum-isil-2020 - is_or_was_generated_by: null + generated_by: null identifier: - - has_or_had_identifier_scheme: ISIL - - has_or_had_identifier_scheme: Wikidata + - identified_by_scheme: ISIL + - identified_by_scheme: Wikidata annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CustodianName.yaml b/schemas/20251121/linkml/modules/classes/CustodianName.yaml index 14baac1f3d..b6405f99ea 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianName.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianName.yaml @@ -17,10 +17,10 @@ prefixes: prov: http://www.w3.org/ns/prov# imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by - ../slots/name_authority - ../slots/name_language - ../slots/name_validity_period @@ -35,11 +35,11 @@ classes: class_uri: skos:Concept description: "Standardized emic (insider) name DERIVED FROM CustodianObservation(s).\n\nCRITICAL: CustodianName is NOT a subclass of CustodianObservation!\n- CustodianObservation = Evidence seen in sources (input)\n- CustodianName = Standardized interpretation (output)\n- Relationship: CustodianName prov:wasDerivedFrom CustodianObservation\n\nCustodianName represents the CANONICAL LABEL - the standardized form\naccepted by the custodian itself for public identification.\n\nIMPORTANT: CustodianName \u2260 Legal Name\n- CustodianName = How custodian presents itself (emic, operational)\n- Legal Name = Formal registered name (in CustodianLegalStatus)\n- Example: \"Rijksmuseum\" (emic) vs \"Stichting Rijksmuseum\" (legal)\n\n===========================================================================\nMANDATORY RULE: Legal Form Terms MUST Be Filtered\n===========================================================================\n\nLegal form designations (Stichting, Foundation, Inc., Ltd., GmbH,\ \ etc.)\nMUST ALWAYS be removed from CustodianName, even when the custodian\nself-identifies with them. This is the ONE EXCEPTION to the emic principle.\n\nRATIONALE:\n1. Legal form is METADATA about the entity, not part of its identity\n2. Legal forms change (foundation\u2192corporation) but identity persists\n3. Enables consistent cross-jurisdictional comparison\n4. Prevents duplicate entries (\"X Foundation\" vs \"X\")\n5. Aligns with ISO 20275 (Legal Entity Identifier) principles\n\nEXAMPLES:\n- \"Stichting Rijksmuseum\" \u2192 CustodianName: \"Rijksmuseum\"\n- \"Hidde Nijland Stichting\" \u2192 CustodianName: \"Hidde Nijland\"\n- \"The Getty Foundation\" \u2192 CustodianName: \"The Getty\"\n- \"British Museum Trust Ltd\" \u2192 CustodianName: \"British Museum\"\n- \"Funda\xE7\xE3o Biblioteca Nacional\" \u2192 CustodianName: \"Biblioteca Nacional\"\n\nLEGAL FORM TERMS TO FILTER (partial list by jurisdiction):\n- Dutch: Stichting, Vereniging, Co\xF6peratie, B.V., N.V., V.O.F.\n\ - - English: Foundation, Trust, Inc., Ltd., LLC, Corp., Association\n- German: Stiftung, Verein, e.V., GmbH, AG\n- French: Fondation, Association, S.A., S.A.R.L.\n- Spanish: Fundaci\xF3n, Asociaci\xF3n, S.A., S.L.\n- Portuguese: Funda\xE7\xE3o, Associa\xE7\xE3o, Ltda., S.A.\n- Italian: Fondazione, Associazione, S.p.A., S.r.l.\n\nSee: rules/LEGAL_FORM_FILTERING_RULE.md for comprehensive global list\n\n===========================================================================\nMANDATORY RULE: Special Characters MUST Be Excluded from Abbreviations\n===========================================================================\n\nWhen generating abbreviations for GHCID, special characters and symbols\nMUST be completely removed. Only alphabetic characters (A-Z) are permitted\nin the has_or_had_abbreviation component of the GHCID.\n\nRATIONALE:\n1. URL/URI safety - Special characters require encoding in URIs\n2. Filename safety - Characters like &, /, \\, : are invalid in filenames\n3. Parsing\ - \ consistency - Avoids delimiter conflicts in data pipelines\n4. Cross-system compatibility - Ensures interoperability with all systems\n5. Human readability - Clean identifiers are easier to communicate\n\nCHARACTERS TO REMOVE (exhaustive list):\n- Ampersand: & (e.g., \"Records & Archives\" \u2192 \"RA\", not \"R&A\")\n- Slash: / (e.g., \"Art/Design Museum\" \u2192 \"ADM\", not \"A/DM\")\n- Backslash: \\\n- Plus: + (e.g., \"Culture+\" \u2192 \"C\")\n- At sign: @\n- Hash/Pound: #\n- Percent: %\n- Dollar: $\n- Asterisk: *\n- Parentheses: ( )\n- Brackets: [ ] { }\n- Pipe: |\n- Colon: :\n- Semicolon: ;\n- Quotation marks: \" ' ` \n- Comma: ,\n- Period: . (unless part of has_or_had_abbreviation like \"U.S.\" \u2192 \"US\")\n- Hyphen: - (skip, do not replace with letter)\n- Underscore: _\n- Equals: =\n- Question mark: ?\n- Exclamation: !\n- Tilde: ~\n- Caret: ^\n- Less/Greater than: < >\n\nEXAMPLES:\n- \"Department of Records & Information Management\" \u2192 \"DRIM\" (not \"DR&IM\")\n\ - - \"Art + Culture Center\" \u2192 \"ACC\" (not \"A+CC\")\n- \"Museum/Gallery Amsterdam\" \u2192 \"MGA\" (not \"M/GA\")\n- \"Heritage@Digital\" \u2192 \"HD\" (not \"H@D\")\n- \"Archives (Historical)\" \u2192 \"AH\" (not \"A(H)\")\n\nSee: rules/ABBREVIATION_SPECIAL_CHAR_RULE.md for complete documentation\n\n===========================================================================\nMANDATORY RULE: Diacritics MUST Be Normalized to ASCII in Abbreviations\n===========================================================================\n\nWhen generating abbreviations for GHCID, diacritics (accented characters)\nMUST be normalized to their ASCII base letter equivalents. Only ASCII\nuppercase letters (A-Z) are permitted in the has_or_had_abbreviation component.\n\nRATIONALE:\n1. URI/URL safety - Non-ASCII requires percent-encoding\n2. Cross-system compatibility - ASCII is universally supported\n3. Parsing consistency - No special character handling needed\n4. Human readability - Easier to type\ + - English: Foundation, Trust, Inc., Ltd., LLC, Corp., Association\n- German: Stiftung, Verein, e.V., GmbH, AG\n- French: Fondation, Association, S.A., S.A.R.L.\n- Spanish: Fundaci\xF3n, Asociaci\xF3n, S.A., S.L.\n- Portuguese: Funda\xE7\xE3o, Associa\xE7\xE3o, Ltda., S.A.\n- Italian: Fondazione, Associazione, S.p.A., S.r.l.\n\nSee: rules/LEGAL_FORM_FILTERING_RULE.md for comprehensive global list\n\n===========================================================================\nMANDATORY RULE: Special Characters MUST Be Excluded from Abbreviations\n===========================================================================\n\nWhen generating abbreviations for GHCID, special characters and symbols\nMUST be completely removed. Only alphabetic characters (A-Z) are permitted\nin the has_abbreviation component of the GHCID.\n\nRATIONALE:\n1. URL/URI safety - Special characters require encoding in URIs\n2. Filename safety - Characters like &, /, \\, : are invalid in filenames\n3. Parsing\ + \ consistency - Avoids delimiter conflicts in data pipelines\n4. Cross-system compatibility - Ensures interoperability with all systems\n5. Human readability - Clean identifiers are easier to communicate\n\nCHARACTERS TO REMOVE (exhaustive list):\n- Ampersand: & (e.g., \"Records & Archives\" \u2192 \"RA\", not \"R&A\")\n- Slash: / (e.g., \"Art/Design Museum\" \u2192 \"ADM\", not \"A/DM\")\n- Backslash: \\\n- Plus: + (e.g., \"Culture+\" \u2192 \"C\")\n- At sign: @\n- Hash/Pound: #\n- Percent: %\n- Dollar: $\n- Asterisk: *\n- Parentheses: ( )\n- Brackets: [ ] { }\n- Pipe: |\n- Colon: :\n- Semicolon: ;\n- Quotation marks: \" ' ` \n- Comma: ,\n- Period: . (unless part of has_abbreviation like \"U.S.\" \u2192 \"US\")\n- Hyphen: - (skip, do not replace with letter)\n- Underscore: _\n- Equals: =\n- Question mark: ?\n- Exclamation: !\n- Tilde: ~\n- Caret: ^\n- Less/Greater than: < >\n\nEXAMPLES:\n- \"Department of Records & Information Management\" \u2192 \"DRIM\" (not \"DR&IM\")\n\ + - \"Art + Culture Center\" \u2192 \"ACC\" (not \"A+CC\")\n- \"Museum/Gallery Amsterdam\" \u2192 \"MGA\" (not \"M/GA\")\n- \"Heritage@Digital\" \u2192 \"HD\" (not \"H@D\")\n- \"Archives (Historical)\" \u2192 \"AH\" (not \"A(H)\")\n\nSee: rules/ABBREVIATION_SPECIAL_CHAR_RULE.md for complete documentation\n\n===========================================================================\nMANDATORY RULE: Diacritics MUST Be Normalized to ASCII in Abbreviations\n===========================================================================\n\nWhen generating abbreviations for GHCID, diacritics (accented characters)\nMUST be normalized to their ASCII base letter equivalents. Only ASCII\nuppercase letters (A-Z) are permitted in the has_abbreviation component.\n\nRATIONALE:\n1. URI/URL safety - Non-ASCII requires percent-encoding\n2. Cross-system compatibility - ASCII is universally supported\n3. Parsing consistency - No special character handling needed\n4. Human readability - Easier to type\ \ and communicate\n\nDIACRITICS TO NORMALIZE (examples by language):\n- Czech: \u010C\u2192C, \u0158\u2192R, \u0160\u2192S, \u017D\u2192Z, \u011A\u2192E, \u016E\u2192U\n- Polish: \u0141\u2192L, \u0143\u2192N, \xD3\u2192O, \u015A\u2192S, \u0179\u2192Z, \u017B\u2192Z, \u0104\u2192A, \u0118\u2192E\n- German: \xC4\u2192A, \xD6\u2192O, \xDC\u2192U, \xDF\u2192SS\n- French: \xC9\u2192E, \xC8\u2192E, \xCA\u2192E, \xC7\u2192C, \xD4\u2192O\n- Spanish: \xD1\u2192N, \xC1\u2192A, \xC9\u2192E, \xCD\u2192I, \xD3\u2192O, \xDA\u2192U\n- Nordic: \xC5\u2192A, \xC4\u2192A, \xD6\u2192O, \xD8\u2192O, \xC6\u2192AE\n\nEXAMPLES:\n- \"Vlastiv\u011Bdn\xE9 muzeum\" (Czech) \u2192 \"VM\" (not \"VM\" with h\xE1\u010Dek)\n- \"\xD6sterreichische Nationalbibliothek\" (German) \u2192 \"ON\"\n- \"Biblioth\xE8que nationale\" (French) \u2192 \"BN\"\n\nREAL-WORLD EXAMPLE:\n- \u274C WRONG: CZ-VY-TEL-L-VHSPAO\u010CRZS (contains \u010C)\n- \u2705 CORRECT: CZ-VY-TEL-L-VHSPAOCRZS (ASCII only)\n\nIMPLEMENTATION:\n```python\n\ - import unicodedata\nnormalized = unicodedata.normalize('NFD', text)\nascii_text = ''.join(c for c in normalized if unicodedata.category(c) != 'Mn')\n```\n\nSee: rules/ABBREVIATION_SPECIAL_CHAR_RULE.md for complete documentation\n\nCan be generated by:\n1. ReconstructionActivity (formal entity resolution) - is_or_was_generated_by link\n2. Direct extraction (simple standardization) - no is_or_was_generated_by link\n" + import unicodedata\nnormalized = unicodedata.normalize('NFD', text)\nascii_text = ''.join(c for c in normalized if unicodedata.category(c) != 'Mn')\n```\n\nSee: rules/ABBREVIATION_SPECIAL_CHAR_RULE.md for complete documentation\n\nCan be generated by:\n1. ReconstructionActivity (formal entity resolution) - generated_by link\n2. Direct extraction (simple standardization) - no generated_by link\n" close_mappings: - skos:prefLabel - schema:name @@ -55,29 +55,29 @@ classes: - foaf:nick - gleif:hasOtherName slots: - - has_or_had_label + - has_label - name_authority - name_language - name_validity_period - refers_to_custodian - standardized_name - supersedes_or_superseded - - has_or_had_score + - has_score - temporal_extent - - is_or_was_derived_from - - is_or_was_generated_by + - derived_from + - generated_by slot_usage: - has_or_had_label: + has_label: # range: string inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: - has_or_had_label: Rijksmuseum - has_or_had_type: EmicLabel + has_label: Rijksmuseum + has_type: EmicLabel - value: - has_or_had_label: State Museum - has_or_had_type: AlternativeName + has_label: State Museum + has_type: AlternativeName name_language: # range: string pattern: ^[a-z]{2}(-[A-Z]{2})?$ @@ -102,11 +102,11 @@ classes: end_of_the_begin: '1929-12-31' begin_of_the_end: '1945-01-01' end_of_the_end: '1955-12-31' - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: true - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false refers_to_custodian: diff --git a/schemas/20251121/linkml/modules/classes/CustodianNameConsensus.yaml b/schemas/20251121/linkml/modules/classes/CustodianNameConsensus.yaml index 9a06839421..56dd6dfc90 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianNameConsensus.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianNameConsensus.yaml @@ -10,7 +10,7 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type - ../slots/name_language - ../slots/note - ../slots/short_name @@ -34,7 +34,7 @@ classes: related_mappings: - schema:name slots: - - has_or_had_type + - has_type - source - source_url - source_type @@ -43,7 +43,7 @@ classes: - note - short_name slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie inlined: false # Fixed invalid inline for primitive type required: false diff --git a/schemas/20251121/linkml/modules/classes/CustodianObservation.yaml b/schemas/20251121/linkml/modules/classes/CustodianObservation.yaml index 68cb595828..b1141767ad 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianObservation.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianObservation.yaml @@ -13,10 +13,10 @@ prefixes: dcterms: http://purl.org/dc/terms/ imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_value - ../slots/observation_context - ../slots/observation_date - ../slots/observation_source @@ -49,16 +49,16 @@ classes: - skos:Concept - dcterms:BibliographicResource slots: - - has_or_had_label - - has_or_had_value - - has_or_had_type + - has_label + - has_value + - has_type - refers_or_referred_to - observation_context - observation_date - observation_source - observed_name - source - - has_or_had_score + - has_score slot_usage: observation_source: # range: string @@ -66,17 +66,17 @@ classes: # range: string # uriorcurie # range: CustodianAppellation required: true - has_or_had_label: + has_label: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_label: Rijksmuseum Amsterdam - has_or_had_type: ObservedName + has_label: Rijksmuseum Amsterdam + has_type: ObservedName - value: - has_or_had_label: Het Rijks - has_or_had_type: AlternativeName + has_label: Het Rijks + has_type: AlternativeName observation_date: range: date source: @@ -90,10 +90,10 @@ classes: required: false examples: - value: https://nde.nl/ontology/hc/legal/stichting-rijksmuseum - has_or_had_value: + has_value: # range: string # uriorcurie # range: ConfidenceValue - has_or_had_type: + has_type: equals_expression: '["hc:GalleryType", "hc:LibraryType", "hc:ArchiveOrganizationType", "hc:MuseumType", "hc:OfficialInstitutionType", "hc:ResearchOrganizationType", "hc:CommercialOrganizationType", "hc:UnspecifiedType", "hc:BioCustodianType", diff --git a/schemas/20251121/linkml/modules/classes/CustodianPlace.yaml b/schemas/20251121/linkml/modules/classes/CustodianPlace.yaml index aeaddc01ca..eea8d6c41a 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianPlace.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianPlace.yaml @@ -14,13 +14,13 @@ imports: - linkml:types - ../enums/PlaceSpecificityEnum - ../slots/country - - ../slots/has_or_had_auxiliary_entities - - ../slots/has_or_had_geographic_subdivision - - ../slots/has_or_had_location - - ../slots/has_or_had_score - - ../slots/is_or_was_based_on - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/has_auxiliary_entities + - ../slots/20260202_matang/has_geographic_subdivision + - ../slots/20260202_matang/has_location + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/based_on + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by - ../slots/place_custodian_ref - ../slots/place_language - ../slots/place_name @@ -44,20 +44,20 @@ classes: - prov:Entity - crm:E27_Site slots: - - has_or_had_auxiliary_entities + - has_auxiliary_entities - country - - has_or_had_location + - has_location - place_language - place_name - place_note - place_specificity - refers_to_custodian - settlement - - has_or_had_geographic_subdivision - - has_or_had_score + - has_geographic_subdivision + - has_score - temporal_extent - - is_or_was_derived_from - - is_or_was_generated_by + - derived_from + - generated_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CustodianSourceFile.yaml b/schemas/20251121/linkml/modules/classes/CustodianSourceFile.yaml index c781602b8e..c1fe1bdd9a 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianSourceFile.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianSourceFile.yaml @@ -11,7 +11,7 @@ imports: - linkml:types - ../enums/EnrichmentStatusEnum - ../enums/GoogleMapsStatusEnum - - ../slots/has_or_had_provenance + - ../slots/20260202_matang/has_provenance # default_range: string classes: CustodianSourceFile: @@ -34,8 +34,8 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' slots: - - has_or_had_provenance - - has_or_had_web_claim + - has_provenance + - has_web_claim - location - legal_status - mission_statement diff --git a/schemas/20251121/linkml/modules/classes/CustodianTimelineEvent.yaml b/schemas/20251121/linkml/modules/classes/CustodianTimelineEvent.yaml index 0ca88daec2..3f1c2bb26f 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianTimelineEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianTimelineEvent.yaml @@ -17,15 +17,15 @@ imports: - linkml:types - ../slots/archive_path - ../slots/degree_of_certainty - - ../slots/has_or_had_description - - ../slots/has_or_had_file_path - - ../slots/has_or_had_level - - ../slots/has_or_had_method - - ../slots/has_or_had_note - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_approximate - - ../slots/is_or_was_retrieved_through + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_file_path + - ../slots/20260202_matang/has_level + - ../slots/20260202_matang/has_method + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/approximate + - ../slots/20260202_matang/retrieved_through - ../slots/observation_ref - ../slots/source_url - ../slots/temporal_extent @@ -35,9 +35,9 @@ default_prefix: hc classes: CustodianTimelineEvent: class_uri: prov:Entity - description: "An organizational change event for a heritage custodian.\n\n**PURPOSE**\n\nCaptures organizational change events (founding, mergers, name changes, etc.)\nas domain entities, independent of how they were discovered.\n\n**SOURCE-AGNOSTIC DESIGN**\n\nThis class models WHAT happened, not HOW we know. For source-specific\nprovenance, use observation classes:\n\n- `WebObservation` - For web-scraped data with XPath or API provenance\n- `CustodianObservation` - For institutional source documents\n\nThe optional `observation_ref` slot links events to their source observations\nwhen detailed provenance is needed.\n\n**DATA QUALITY**\n\nUse `has_or_had_level` (DataTierLevel) to indicate trustworthiness:\n- TIER_4_INFERRED: Initial extraction (LLM-generated, unverified)\n- TIER_3_CROWD_SOURCED: Verified against Wikipedia/Wikidata\n- TIER_2_VERIFIED: Verified against institutional website\n- TIER_1_AUTHORITATIVE: Verified against official registry\n\nUse `extraction_notes` to capture\ + description: "An organizational change event for a heritage custodian.\n\n**PURPOSE**\n\nCaptures organizational change events (founding, mergers, name changes, etc.)\nas domain entities, independent of how they were discovered.\n\n**SOURCE-AGNOSTIC DESIGN**\n\nThis class models WHAT happened, not HOW we know. For source-specific\nprovenance, use observation classes:\n\n- `WebObservation` - For web-scraped data with XPath or API provenance\n- `CustodianObservation` - For institutional source documents\n\nThe optional `observation_ref` slot links events to their source observations\nwhen detailed provenance is needed.\n\n**DATA QUALITY**\n\nUse `has_level` (DataTierLevel) to indicate trustworthiness:\n- TIER_4_INFERRED: Initial extraction (LLM-generated, unverified)\n- TIER_3_CROWD_SOURCED: Verified against Wikipedia/Wikidata\n- TIER_2_VERIFIED: Verified against institutional website\n- TIER_1_AUTHORITATIVE: Verified against official registry\n\nUse `extraction_notes` to capture\ \ source-specific details:\n- API queries and responses\n- XPath locations in archived HTML\n- Wikidata property references\n- Manual research notes\n\n**EVENT TYPE MAPPING**\n\nEvents are classified using OrganizationalChangeEventTypeEnum:\n- FOUNDING: Institution creation (opgericht, gesticht)\n- MERGER: Multiple institutions combining (fusie, samenvoeging)\n- DISSOLUTION: Institution closure (opgeheven, gesloten)\n- RENAMING: Name change only (hernoemd, naamswijziging)\n- TRANSFER: Physical relocation (verhuisd, verplaatst)\n- EXPANSION: Absorbing other units (uitgebreid, geabsorbeerd)\n- SPLIT: Division into multiple units (opgesplitst)\n- SPIN_OFF: Parts becoming independent (afgesplitst)\n- REDUCTION: Scope decrease (ingekrompen)\n- REORGANIZATION: Complex restructuring (herstructurering)\n\n**EXCLUDED EVENT TYPES**\n\nSome patterns are NOT mapped to events:\n- predecessor: This is a relationship, not an event\n- friends_org: Separate organization (Vrienden van...)\n- reopening:\ - \ Not in OrganizationalChangeEventTypeEnum\n\n**EXAMPLE USAGE**\n\n```yaml\ntimeline_events:\n - event_type: FOUNDING\n event_date: \"2005-04-30\"\n degree_of_certainty:\n has_or_had_code: DAY\n is_or_was_approximate:\n approximation_level: EXACT\n description: >-\n Het RHC Drents Archief werd opgericht op 30 april 2005.\n Het is de voortzetting van het Rijksarchief in Drenthe (sinds 2000).\n source_url:\n - \"https://nl.wikipedia.org/wiki/Drents_Archief\"\n - \"https://bizzy.ai/nl/nl/52454037/regionaal-historisch-centrum-rhc-drents-archief\"\n extraction_method: api_response_regex\n extraction_timestamp: \"2025-12-16T10:00:00Z\"\n extraction_notes: >-\n Query: \"Regionaal Historisch Centrum (RHC) Drents Archief\" Assen opgericht\n Answer archived at: web/0002/linkup/linkup_founding_20251215T160438Z.json\n archive_path: web/0002/linkup/linkup_founding_20251215T160438Z.json\n has_or_had_level:\n has_or_had_code:\ + \ Not in OrganizationalChangeEventTypeEnum\n\n**EXAMPLE USAGE**\n\n```yaml\ntimeline_events:\n - event_type: FOUNDING\n event_date: \"2005-04-30\"\n degree_of_certainty:\n has_code: DAY\n approximate:\n approximation_level: EXACT\n description: >-\n Het RHC Drents Archief werd opgericht op 30 april 2005.\n Het is de voortzetting van het Rijksarchief in Drenthe (sinds 2000).\n source_url:\n - \"https://nl.wikipedia.org/wiki/Drents_Archief\"\n - \"https://bizzy.ai/nl/nl/52454037/regionaal-historisch-centrum-rhc-drents-archief\"\n extraction_method: api_response_regex\n extraction_timestamp: \"2025-12-16T10:00:00Z\"\n extraction_notes: >-\n Query: \"Regionaal Historisch Centrum (RHC) Drents Archief\" Assen opgericht\n Answer archived at: web/0002/linkup/linkup_founding_20251215T160438Z.json\n archive_path: web/0002/linkup/linkup_founding_20251215T160438Z.json\n has_level:\n has_code:\ \ TIER_4_INFERRED\n```\n" broad_mappings: - prov:Entity @@ -46,21 +46,21 @@ classes: - tooi:Wijzigingsgebeurtenis - schema:Event slots: - - is_or_was_approximate + - approximate - archive_path - - has_or_had_level + - has_level - degree_of_certainty - - has_or_had_description + - has_description - temporal_extent - - has_or_had_type - - has_or_had_method - - has_or_had_note - - is_or_was_retrieved_through + - has_type + - has_method + - has_note + - retrieved_through - observation_ref - source_url - - has_or_had_score + - has_score slot_usage: - has_or_had_type: + has_type: required: true range: OrganizationalChangeEventTypeEnum temporal_extent: @@ -77,45 +77,45 @@ classes: description: 'Precision level of the event date. Standard codes: DAY, MONTH, YEAR, DECADE, CENTURY, UNKNOWN' examples: - value: - has_or_had_code: DAY - has_or_had_description: Full date with day precision + has_code: DAY + has_description: Full date with day precision - value: - has_or_had_code: YEAR - has_or_had_description: Year-only precision - is_or_was_approximate: + has_code: YEAR + has_description: Year-only precision + approximate: range: ApproximationStatus inlined: true required: true examples: - value: - has_or_had_status: EXACT + has_status: EXACT - value: - has_or_had_status: APPROXIMATE - has_or_had_label: circa 1880 - has_or_had_description: Founding date known only to year + has_status: APPROXIMATE + has_label: circa 1880 + has_description: Founding date known only to year source_url: required: false - has_or_had_method: + has_method: required: true range: TimelineExtractionMethodEnum - is_or_was_retrieved_through: + retrieved_through: range: RetrievalEvent inlined: true required: true - has_or_had_note: + has_note: required: false - has_or_had_level: + has_level: # range: string inlined: false # Fixed invalid inline for primitive type required: true description: 'Data quality tier indicating trustworthiness of this event data. Standard codes: TIER_1_AUTHORITATIVE, TIER_2_VERIFIED, TIER_3_CROWD_SOURCED, TIER_4_INFERRED' examples: - value: - has_or_had_code: TIER_4_INFERRED - has_or_had_description: Extracted via LLM - pending verification + has_code: TIER_4_INFERRED + has_description: Extracted via LLM - pending verification - value: - has_or_had_code: TIER_2_VERIFIED - has_or_had_description: Verified against institutional website + has_code: TIER_2_VERIFIED + has_description: Verified against institutional website observation_ref: required: false @@ -137,101 +137,101 @@ classes: begin_of_the_begin: '2005-04-30' end_of_the_end: '2005-04-30' degree_of_certainty: - has_or_had_code: DAY - has_or_had_description: Full date with day precision - is_or_was_approximate: - has_or_had_status: EXACT + has_code: DAY + has_description: Full date with day precision + approximate: + has_status: EXACT source_url: - https://nl.wikipedia.org/wiki/Drents_Archief - has_or_had_method: api_response_regex + has_method: api_response_regex extraction_timestamp: '2025-12-16T10:00:00Z' extraction_notes: 'Query: "Drents Archief" Assen opgericht OR gesticht API: Linkup. Archived at: web/0002/linkup/linkup_founding_20251215T160438Z.json' archive_path: web/0002/linkup/linkup_founding_20251215T160438Z.json - has_or_had_level: - has_or_had_code: TIER_4_INFERRED - has_or_had_description: Extracted via API response - pending verification + has_level: + has_code: TIER_4_INFERRED + has_description: Extracted via API response - pending verification - value: - has_or_had_type: MERGER + has_type: MERGER temporal_extent: begin_of_the_begin: '2005' end_of_the_end: '2005' degree_of_certainty: - has_or_had_code: YEAR - has_or_had_description: Year-only precision - is_or_was_approximate: - has_or_had_status: EXACT + has_code: YEAR + has_description: Year-only precision + approximate: + has_status: EXACT source_url: - https://nl.wikipedia.org/wiki/Drents_Archief - has_or_had_method: api_response_regex - is_or_was_retrieved_through: + has_method: api_response_regex + retrieved_through: temporal_extent: begin_of_the_begin: '2025-12-16T10:05:00Z' end_of_the_end: '2025-12-16T10:05:00Z' - has_or_had_level: - has_or_had_code: TIER_4_INFERRED - has_or_had_description: Extracted via API - pending verification + has_level: + has_code: TIER_4_INFERRED + has_description: Extracted via API - pending verification - value: - has_or_had_type: FOUNDING + has_type: FOUNDING temporal_extent: begin_of_the_begin: '1810' end_of_the_end: '1810' degree_of_certainty: - has_or_had_code: YEAR - has_or_had_description: Year-only precision - is_or_was_approximate: - has_or_had_status: EXACT + has_code: YEAR + has_description: Year-only precision + approximate: + has_status: EXACT source_url: - https://www.wikidata.org/wiki/Q190804 - has_or_had_method: wikidata_sparql - is_or_was_retrieved_through: + has_method: wikidata_sparql + retrieved_through: temporal_extent: begin_of_the_begin: '2025-12-20T14:30:00Z' end_of_the_end: '2025-12-20T14:30:00Z' extraction_notes: Wikidata P571 (inception date) query - has_or_had_level: - has_or_had_code: TIER_3_CROWD_SOURCED - has_or_had_description: Verified against Wikidata + has_level: + has_code: TIER_3_CROWD_SOURCED + has_description: Verified against Wikidata - value: - has_or_had_type: TRANSFER + has_type: TRANSFER temporal_extent: begin_of_the_begin: '1885' end_of_the_end: '1885' degree_of_certainty: - has_or_had_code: YEAR - has_or_had_description: Year-only precision - is_or_was_approximate: - has_or_had_status: EXACT + has_code: YEAR + has_description: Year-only precision + approximate: + has_status: EXACT source_url: - has_or_had_method: web_scrape_xpath - is_or_was_retrieved_through: + has_method: web_scrape_xpath + retrieved_through: temporal_extent: begin_of_the_begin: '2025-12-20T15:00:00Z' end_of_the_end: '2025-12-20T15:00:00Z' extraction_notes: 'XPath: /html/body/main/section[2]/div/p[3]' archive_path: web/0001/rijksmuseum.nl/about-us/rendered.html - has_or_had_level: - has_or_had_code: TIER_2_VERIFIED - has_or_had_description: Verified against institutional website + has_level: + has_code: TIER_2_VERIFIED + has_description: Verified against institutional website - value: - has_or_had_type: FOUNDING + has_type: FOUNDING temporal_extent: begin_of_the_begin: '1880' end_of_the_end: '1880' degree_of_certainty: - has_or_had_code: YEAR - has_or_had_description: Year-only precision - is_or_was_approximate: - has_or_had_status: APPROXIMATE - has_or_had_label: circa 1880 - has_or_had_description: Founding date derived from secondary sources, exact year uncertain - has_or_had_method: manual_research - is_or_was_retrieved_through: + has_code: YEAR + has_description: Year-only precision + approximate: + has_status: APPROXIMATE + has_label: circa 1880 + has_description: Founding date derived from secondary sources, exact year uncertain + has_method: manual_research + retrieved_through: temporal_extent: begin_of_the_begin: '2025-12-20T16:00:00Z' end_of_the_end: '2025-12-20T16:00:00Z' - has_or_had_level: - has_or_had_code: TIER_4_INFERRED - has_or_had_description: Manual research - pending verification + has_level: + has_code: TIER_4_INFERRED + has_description: Manual research - pending verification annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CustodianType.yaml b/schemas/20251121/linkml/modules/classes/CustodianType.yaml index 3745e35160..807d86040c 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianType.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianType.yaml @@ -9,11 +9,11 @@ imports: - ../slots/custodian_type_broader - ../slots/custodian_type_narrower - ../slots/custodian_type_related - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/has_or_had_type_code + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type_code - ../slots/modified classes: CustodianType: @@ -37,18 +37,18 @@ classes: - custodian_type_broader - custodian_type_narrower - custodian_type_related - - has_or_had_type_code + - has_type_code - modified - - has_or_had_score - - has_or_had_description - - has_or_had_label - - has_or_had_identifier + - has_score + - has_description + - has_label + - identified_by slot_usage: - has_or_had_type_code: + has_type_code: # range: string required: false pattern: ^[ABCDEFGHILMNOPRSTUX]$ - has_or_had_identifier: + identified_by: description: 'Identifier(s) for this custodian type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/type/museum/Q207694) - Wikidata Q-number (e.g., Q207694) @@ -58,11 +58,11 @@ classes: identifier: true multivalued: true pattern: ^(https://nde\.nl/ontology/hc/type/[a-z-]+/[QP][0-9]+|Q[0-9]+)$ - has_or_had_label: + has_label: # range: string required: true multivalued: true - has_or_had_description: + has_description: # range: string required: false custodian_type_broader: @@ -89,15 +89,15 @@ classes: - GLAMORCUBESFIXPHDNT code derived from class hierarchy (2026-01-05 migration) examples: - value: - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/type/museum/Q207694 - Q207694 - has_or_had_type_code: M - has_or_had_label: + has_type_code: M + has_label: - Art Museum@en - kunstmuseum@nl - Kunstmuseum@de - has_or_had_description: museum that primarily exhibits works of art + has_description: museum that primarily exhibits works of art custodian_type_broader: https://nde.nl/ontology/hc/type/museum/Q33506 annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/DOI.yaml b/schemas/20251121/linkml/modules/classes/DOI.yaml index 8ee5ea2a28..184ebbcae7 100644 --- a/schemas/20251121/linkml/modules/classes/DOI.yaml +++ b/schemas/20251121/linkml/modules/classes/DOI.yaml @@ -4,7 +4,7 @@ title: DOI Identifier description: Digital Object Identifier (DOI). MIGRATED from doi slot (2026-01-26). Subclass of Identifier. imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label default_prefix: hc classes: DOI: diff --git a/schemas/20251121/linkml/modules/classes/DarkArchive.yaml b/schemas/20251121/linkml/modules/classes/DarkArchive.yaml index 0eb4fd42e7..a09774a24b 100644 --- a/schemas/20251121/linkml/modules/classes/DarkArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/DarkArchive.yaml @@ -13,11 +13,11 @@ default_prefix: hc imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_embargo_end_date - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_embargo_end_date + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - ../slots/preservation_purpose - ../slots/refers_to_access_policy @@ -26,19 +26,19 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type - - has_or_had_embargo_end_date + - has_type + - has_embargo_end_date - hold_or_held_record_set_type - preservation_purpose - refers_to_access_policy - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by description: "Archive preserving materials for future use but with NO CURRENT ACCESS.\n\n**Wikidata**: Q112796578 (Dark Archive)\n\n**DEFINITION**:\n\nDark Archive is a preservation repository where materials are stored with \nNO ACCESS provided to users. The primary purpose is long-term preservation\nrather than current use. Access may be triggered by specific future events.\n\n**ACCESS SPECTRUM** (Light/Dim/Dark classification):\n\n| Type | Access Level | Purpose |\n|------|--------------|---------|\n| Light Archive (Q112815447) | Broadly accessible | Discovery & use |\n| Dim Archive (Q112796779) | Limited access | Selective access |\n| **Dark Archive** | No current access | Preservation only |\n\n**COMMON USE CASES**:\n\n1. **Digital Preservation**\n - Trusted Digital Repositories (TDR)\n - Backup/disaster recovery copies\n - Integrity verification archives\n\n2. **Rights-Restricted Content**\n - Orphan works awaiting rights clearance\n - Embargoed materials\n - Donor\ \ restrictions (sealed for X years)\n\n3. **Sensitive Materials**\n - Security-classified records\n - Privacy-protected personal data\n - Legally sealed court records\n\n4. **Format Migration**\n - Source materials preserved after migration\n - Original files kept for verification\n\n**TRIGGER EVENTS** (when dark becomes accessible):\n- Expiration of embargo period\n- Rights clearance obtained\n- Donor permission granted\n- Declassification decision\n- Original system failure (disaster recovery)\n\n**MULTILINGUAL LABELS**:\n- Dark Archive (de) [uses English term]\n\n**RELATED TYPES**:\n- LightArchive (Q112815447) - broadly accessible\n- DimArchive (Q112796779) - limited access\n- ClosedSpace - physical restricted access areas\n\n**ONTOLOGICAL ALIGNMENT**:\n- **SKOS**: skos:Concept (type classification)\n- **PREMIS**: premis:RightsStatus for access restrictions\n- **RiC-O**: rico:RecordSet with access restrictions\n- **Wikidata**: Q112796578\n\n**PREMIS INTEGRATION**:\n\n\ Dark archives typically use PREMIS for preservation metadata:\n- `premis:RightsStatus` to document access restrictions\n- `premis:endDate` for embargo expiration dates\n- `premis:Agent` to identify the responsible custodian\n" slot_usage: - has_or_had_identifier: null - has_or_had_embargo_end_date: + identified_by: null + has_embargo_end_date: range: date examples: - value: '2050-01-01' @@ -51,7 +51,7 @@ classes: refers_to_access_policy: range: AccessPolicy required: true - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' exact_mappings: - wd:Q112796578 @@ -75,25 +75,25 @@ classes: - http://www.loc.gov/premis/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q112796578 - has_or_had_type_code: ARCHIVE - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/archive/Q112796578 + has_type_code: ARCHIVE + has_label: - Dark Archive@en - Dark Archive@de - has_or_had_description: Collection preserved for future use with no current access + has_description: Collection preserved for future use with no current access preservation_purpose: disaster_recovery refers_to_access_policy: policy_id: https://nde.nl/ontology/hc/policy/dark-archive-dr access_level: CLOSED restriction_reason: Disaster recovery copy - access on system failure only - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q112796578-embargo - has_or_had_type_code: ARCHIVE - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/archive/Q112796578-embargo + has_type_code: ARCHIVE + has_label: - Embargoed Dark Archive@en - has_or_had_description: Materials under embargo with future access date + has_description: Materials under embargo with future access date preservation_purpose: donor_restriction - has_or_had_embargo_end_date: '2050-01-01' + has_embargo_end_date: '2050-01-01' refers_to_access_policy: policy_id: https://nde.nl/ontology/hc/policy/embargo-50yr access_level: CLOSED diff --git a/schemas/20251121/linkml/modules/classes/DarkArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/DarkArchiveRecordSetType.yaml index 6d9e809982..8e516cbd2c 100644 --- a/schemas/20251121/linkml/modules/classes/DarkArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/DarkArchiveRecordSetType.yaml @@ -11,8 +11,8 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_scope # was: type_scope + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_scope # was: type_scope classes: DarkArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by DarkArchive custodians. @@ -21,7 +21,7 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_scope # was: type_scope - migrated per Rule 53 (2026-01-15) + - has_scope # was: type_scope - migrated per Rule 53 (2026-01-15) see_also: - DarkArchive - rico:RecordSetType diff --git a/schemas/20251121/linkml/modules/classes/DarkArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/DarkArchiveRecordSetTypes.yaml index 037bab4614..98c4fe3662 100644 --- a/schemas/20251121/linkml/modules/classes/DarkArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/DarkArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./DarkArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - DarkArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PreservationCopyCollection @@ -78,15 +78,15 @@ classes: - DarkArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: DigitalPreservationFonds diff --git a/schemas/20251121/linkml/modules/classes/DataFormat.yaml b/schemas/20251121/linkml/modules/classes/DataFormat.yaml index 3d1a357c07..bc60dc5293 100644 --- a/schemas/20251121/linkml/modules/classes/DataFormat.yaml +++ b/schemas/20251121/linkml/modules/classes/DataFormat.yaml @@ -9,9 +9,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type classes: DataFormat: class_uri: hc:DataFormat @@ -27,23 +27,23 @@ classes: | JSON | application/json | API responses, config |\n| XML | application/xml\ \ | Legacy APIs, metadata |\n| CSV | text/csv | Data exports, tabular |\n| RDF\ \ | application/rdf+xml | Linked data |\n| SensorML | application/xml | Sensor\ - \ metadata |\n**Example**:\n```yaml\nhas_or_had_format:\n has_or_had_type:\ - \ JsonFormat\n has_or_had_media_type: \"application/json\"\n has_or_had_encoding:\ + \ metadata |\n**Example**:\n```yaml\nhas_format:\n has_type:\ + \ JsonFormat\n has_media_type: \"application/json\"\n has_encoding:\ \ \"UTF-8\"\n```\n" close_mappings: - dct:MediaTypeOrExtent - schema:encodingFormat slots: - - has_or_had_type - - has_or_had_label - - has_or_had_description + - has_type + - has_label + - has_description slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie examples: - value: JsonFormat - value: CsvFormat - has_or_had_label: + has_label: # range: string inlined: false # Fixed invalid inline for primitive type examples: @@ -74,8 +74,8 @@ classes: ' slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: custodian_types: '["*"]' custodian_types_rationale: Format types applicable universally. diff --git a/schemas/20251121/linkml/modules/classes/DataLicensePolicy.yaml b/schemas/20251121/linkml/modules/classes/DataLicensePolicy.yaml index eb881f291a..f35c3bfbe3 100644 --- a/schemas/20251121/linkml/modules/classes/DataLicensePolicy.yaml +++ b/schemas/20251121/linkml/modules/classes/DataLicensePolicy.yaml @@ -14,7 +14,7 @@ imports: - ../enums/DataOpennessLevelEnum - ../enums/OpennessStanceEnum - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score default_prefix: hc classes: DataLicensePolicy: @@ -48,9 +48,9 @@ classes: - dcterms:Policy - schema:DigitalDocument slots: - - has_or_had_score + - has_score - policy_name - - is_or_was_effective_at + - effective_at - policy_description annotations: specificity_score: 0.1 @@ -79,7 +79,7 @@ classes: - dcterms:LicenseDocument - schema:CreativeWork slots: - - has_or_had_score + - has_score - name ServiceLicense: class_uri: odrl:Agreement @@ -111,4 +111,4 @@ classes: ' slots: - - has_or_had_score + - has_score diff --git a/schemas/20251121/linkml/modules/classes/DataQualityFlag.yaml b/schemas/20251121/linkml/modules/classes/DataQualityFlag.yaml index b6f45cb905..43ca5ee208 100644 --- a/schemas/20251121/linkml/modules/classes/DataQualityFlag.yaml +++ b/schemas/20251121/linkml/modules/classes/DataQualityFlag.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: DataQualityFlag: class_uri: skos:Concept description: Data quality flag. slots: - - has_or_had_label + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/DataSensitivityLevel.yaml b/schemas/20251121/linkml/modules/classes/DataSensitivityLevel.yaml index 05490fcc36..12caa98c57 100644 --- a/schemas/20251121/linkml/modules/classes/DataSensitivityLevel.yaml +++ b/schemas/20251121/linkml/modules/classes/DataSensitivityLevel.yaml @@ -20,9 +20,9 @@ prefixes: imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: @@ -54,17 +54,17 @@ classes: close_mappings: - schema:accessMode slots: - - has_or_had_label - - has_or_had_code - - has_or_had_description + - has_label + - has_code + - has_description slot_usage: - has_or_had_label: + has_label: # range: string required: true examples: - value: "Public" - value: "Strictly Confidential" - has_or_had_code: + has_code: # range: string required: true pattern: "^[A-Z][A-Z0-9_]*$" @@ -72,7 +72,7 @@ classes: - value: "PUBLIC" - value: "CONFIDENTIAL" - value: "SPECIAL_CATEGORY" - has_or_had_description: + has_description: # range: string required: false examples: @@ -88,14 +88,14 @@ classes: Research centers (R) that manage sensitive records. examples: - value: - has_or_had_label: "Confidential" - has_or_had_code: "CONFIDENTIAL" - has_or_had_description: "Need-to-know basis - restricted to authorized personnel" + has_label: "Confidential" + has_code: "CONFIDENTIAL" + has_description: "Need-to-know basis - restricted to authorized personnel" - value: - has_or_had_label: "Special Category Data" - has_or_had_code: "SPECIAL_CATEGORY" - has_or_had_description: "GDPR Article 9 sensitive personal data - health records, religious affiliation" + has_label: "Special Category Data" + has_code: "SPECIAL_CATEGORY" + has_description: "GDPR Article 9 sensitive personal data - health records, religious affiliation" - value: - has_or_had_label: "Personnel Data" - has_or_had_code: "PERSONAL_DATA" - has_or_had_description: "Contains employee personal information subject to GDPR" \ No newline at end of file + has_label: "Personnel Data" + has_code: "PERSONAL_DATA" + has_description: "Contains employee personal information subject to GDPR" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/DataServiceEndpoint.yaml b/schemas/20251121/linkml/modules/classes/DataServiceEndpoint.yaml index a45edcf1b0..021112203e 100644 --- a/schemas/20251121/linkml/modules/classes/DataServiceEndpoint.yaml +++ b/schemas/20251121/linkml/modules/classes/DataServiceEndpoint.yaml @@ -20,19 +20,19 @@ imports: - ../enums/DataServiceProtocolEnum - ../enums/EndpointStatusEnum - ../metadata - - ../slots/has_or_had_score - - ../slots/has_or_had_url - - ../slots/is_or_was_required + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_url + - ../slots/20260202_matang/required - ../slots/response_format classes: DataServiceEndpoint: abstract: true class_uri: dcat:DataService slots: - - is_or_was_required + - required - response_format - - has_or_had_url - - has_or_had_score + - has_url + - has_score description: "Abstract base class for API service endpoints exposed by heritage\ \ digital platforms.\n\n**Purpose:**\n\nModels the technical API endpoints discovered\ \ at heritage institutions, enabling:\n- Machine-readable discovery of available\ diff --git a/schemas/20251121/linkml/modules/classes/DataServiceEndpointType.yaml b/schemas/20251121/linkml/modules/classes/DataServiceEndpointType.yaml index 1d44d7e682..7fd9288368 100644 --- a/schemas/20251121/linkml/modules/classes/DataServiceEndpointType.yaml +++ b/schemas/20251121/linkml/modules/classes/DataServiceEndpointType.yaml @@ -12,10 +12,10 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_format - - ../slots/has_or_had_method - - ../slots/has_or_had_score - - ../slots/is_or_was_used_in + - ../slots/20260202_matang/has_format + - ../slots/20260202_matang/has_method + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/used_in - ../slots/specification_url classes: DataServiceEndpointType: @@ -28,7 +28,7 @@ classes: \ at the TYPE level (shared across all instances)\n2. **Instance-Level Properties**:\ \ Keep URL, status, authentication at the\n INSTANCE level (unique per deployment)\n\ \n**Architecture:**\n\n```\nDataServiceEndpoint (instance)\n │\n ├── endpoint_url:\ - \ \"https://example.org/oai\"\n ├── status: ACTIVE\n ├── is_or_was_required:\ + \ \"https://example.org/oai\"\n ├── status: ACTIVE\n ├── required:\ \ false\n │\n └── endpoint_type ──→ DataServiceEndpointType (classification)\n\ \ │\n └── OAIPMHEndpointType\n\ \ ├── protocol_name: \"OAI-PMH\"\n \ @@ -67,25 +67,25 @@ classes: - https://www.w3.org/TR/skos-reference/#concepts - https://www.w3.org/TR/vocab-dcat-3/#Class:Data_Service slots: - - has_or_had_score + - has_score - specification_url - - has_or_had_format - - has_or_had_method - - is_or_was_used_in - - has_or_had_identifier - - has_or_had_description + - has_format + - has_method + - used_in + - identified_by + - has_description - protocol_name - protocol_version - related_types - narrower_type slot_usage: - is_or_was_used_in: + used_in: range: HeritageSector - has_or_had_format: + has_format: slot_uri: dcterms:format # range: string multivalued: true - has_or_had_method: + has_method: slot_uri: schema:httpMethod # range: string multivalued: true diff --git a/schemas/20251121/linkml/modules/classes/DataServiceEndpointTypes.yaml b/schemas/20251121/linkml/modules/classes/DataServiceEndpointTypes.yaml index e560ae0ab7..90480a3d56 100644 --- a/schemas/20251121/linkml/modules/classes/DataServiceEndpointTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/DataServiceEndpointTypes.yaml @@ -13,9 +13,9 @@ imports: - ./DataServiceEndpointType - linkml:types - ../metadata - - ../slots/has_or_had_format - - ../slots/has_or_had_method - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_format + - ../slots/20260202_matang/has_method + - ../slots/20260202_matang/has_score - ../slots/specification_url classes: SRUEndpoint: @@ -49,15 +49,15 @@ classes: slot_usage: specification_url: ifabsent: uri(http://www.loc.gov/standards/sru/) - has_or_had_format: + has_format: ifabsent: string(application/xml) - has_or_had_method: + has_method: ifabsent: string(GET) comments: - Library-focused search protocol - successor to Z39.50 - Uses CQL (Contextual Query Language) slots: - - has_or_had_score + - has_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration @@ -95,15 +95,15 @@ classes: slot_usage: specification_url: ifabsent: uri(https://opensearch.org/) - has_or_had_format: + has_format: equals_expression: '["application/opensearchdescription+xml", "application/atom+xml", "application/rss+xml"]' - has_or_had_method: + has_method: ifabsent: string(GET) comments: - Federated search standard - browser integration support slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept IIIFImageAPI: @@ -144,15 +144,15 @@ classes: slot_usage: specification_url: ifabsent: uri(https://iiif.io/api/image/) - has_or_had_format: + has_format: equals_expression: '["image/jpeg", "image/png", "image/tiff", "image/webp"]' - has_or_had_method: + has_method: ifabsent: string(GET) comments: - International Image Interoperability Framework - Image API - Global standard for heritage image delivery slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept IIIFPresentationAPI: @@ -191,15 +191,15 @@ classes: slot_usage: specification_url: ifabsent: uri(https://iiif.io/api/presentation/) - has_or_had_format: + has_format: ifabsent: string(application/ld+json) - has_or_had_method: + has_method: ifabsent: string(GET) comments: - International Image Interoperability Framework - Presentation API - Manifests describe object structure for viewers slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept SPARQLEndpoint: @@ -235,16 +235,16 @@ classes: slot_usage: specification_url: ifabsent: uri(https://www.w3.org/TR/sparql11-protocol/) - has_or_had_format: + has_format: equals_expression: '["application/sparql-results+json", "application/sparql-results+xml", "text/turtle"]' - has_or_had_method: + has_method: equals_expression: '["GET", "POST"]' comments: - W3C standard for querying RDF graphs - Foundation of Linked Open Data infrastructure slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept GraphQLEndpoint: @@ -278,15 +278,15 @@ classes: slot_usage: specification_url: ifabsent: uri(https://graphql.org/) - has_or_had_format: + has_format: ifabsent: string(application/json) - has_or_had_method: + has_method: ifabsent: string(POST) comments: - Modern API query language - growing adoption in GLAM - Alternative to REST for complex data requirements slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept AtomFeed: @@ -319,15 +319,15 @@ classes: slot_usage: specification_url: ifabsent: uri(https://www.rfc-editor.org/rfc/rfc4287) - has_or_had_format: + has_format: ifabsent: string(application/atom+xml) - has_or_had_method: + has_method: ifabsent: string(GET) comments: - IETF standard for content syndication - More structured than RSS - supports namespaces slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept RSSFeed: @@ -358,14 +358,14 @@ classes: ' slot_usage: - has_or_had_format: + has_format: ifabsent: string(application/rss+xml) - has_or_had_method: + has_method: ifabsent: string(GET) comments: - Legacy syndication format - still widely supported - Simpler than Atom but less extensible slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept diff --git a/schemas/20251121/linkml/modules/classes/DataSource.yaml b/schemas/20251121/linkml/modules/classes/DataSource.yaml index 77607e1bb5..00d7cc6f35 100644 --- a/schemas/20251121/linkml/modules/classes/DataSource.yaml +++ b/schemas/20251121/linkml/modules/classes/DataSource.yaml @@ -16,9 +16,9 @@ prefixes: imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label - ../slots/source_url default_prefix: hc @@ -49,18 +49,18 @@ classes: - dcterms:source - schema:CreativeWork slots: - - has_or_had_label - - has_or_had_code - - has_or_had_description + - has_label + - has_code + - has_description - source_url slot_usage: - has_or_had_label: + has_label: # range: string required: true examples: - value: "WhatsApp" - value: "LinkedIn Profile" - has_or_had_code: + has_code: # range: string required: true pattern: "^[A-Z][A-Z0-9_]*$" @@ -68,7 +68,7 @@ classes: - value: "WHATSAPP" - value: "LINKEDIN" - value: "WEB_SCRAPE" - has_or_had_description: + has_description: # range: string required: false examples: @@ -87,16 +87,16 @@ classes: Data sources apply universally to all custodian types. examples: - value: - has_or_had_label: "WhatsApp" - has_or_had_code: "WHATSAPP" - has_or_had_description: "Information gathered via WhatsApp conversation" + has_label: "WhatsApp" + has_code: "WHATSAPP" + has_description: "Information gathered via WhatsApp conversation" - value: - has_or_had_label: "LinkedIn Profile" - has_or_had_code: "LINKEDIN" - has_or_had_description: "Profile information from LinkedIn" + has_label: "LinkedIn Profile" + has_code: "LINKEDIN" + has_description: "Profile information from LinkedIn" source_url: "https://linkedin.com/in/example-profile" - value: - has_or_had_label: "Wikidata" - has_or_had_code: "WIKIDATA" - has_or_had_description: "Entity data from Wikidata SPARQL query" + has_label: "Wikidata" + has_code: "WIKIDATA" + has_description: "Entity data from Wikidata SPARQL query" source_url: "https://www.wikidata.org/wiki/Q12345" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/DataTierLevel.yaml b/schemas/20251121/linkml/modules/classes/DataTierLevel.yaml index 29509bdf33..db0d292e55 100644 --- a/schemas/20251121/linkml/modules/classes/DataTierLevel.yaml +++ b/schemas/20251121/linkml/modules/classes/DataTierLevel.yaml @@ -16,9 +16,9 @@ prefixes: imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: @@ -48,24 +48,24 @@ classes: close_mappings: - prov:qualifiedDerivation slots: - - has_or_had_label - - has_or_had_code - - has_or_had_description + - has_label + - has_code + - has_description slot_usage: - has_or_had_label: + has_label: # range: string required: true examples: - value: "Authoritative" - value: "Inferred" - has_or_had_code: + has_code: # range: string required: true pattern: "^TIER_[1-4]_[A-Z_]+$" examples: - value: "TIER_1_AUTHORITATIVE" - value: "TIER_4_INFERRED" - has_or_had_description: + has_description: # range: string required: false examples: @@ -80,14 +80,14 @@ classes: Data quality tiers apply universally to all custodian types. examples: - value: - has_or_had_label: "Authoritative" - has_or_had_code: "TIER_1_AUTHORITATIVE" - has_or_had_description: "Official data from NDE registry CSV" + has_label: "Authoritative" + has_code: "TIER_1_AUTHORITATIVE" + has_description: "Official data from NDE registry CSV" - value: - has_or_had_label: "Verified" - has_or_had_code: "TIER_2_VERIFIED" - has_or_had_description: "Verified against institutional website" + has_label: "Verified" + has_code: "TIER_2_VERIFIED" + has_description: "Verified against institutional website" - value: - has_or_had_label: "Inferred" - has_or_had_code: "TIER_4_INFERRED" - has_or_had_description: "Extracted via Exa search - pending verification" \ No newline at end of file + has_label: "Inferred" + has_code: "TIER_4_INFERRED" + has_description: "Extracted via Exa search - pending verification" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Dataset.yaml b/schemas/20251121/linkml/modules/classes/Dataset.yaml index 505627b4f7..2f48a6533d 100644 --- a/schemas/20251121/linkml/modules/classes/Dataset.yaml +++ b/schemas/20251121/linkml/modules/classes/Dataset.yaml @@ -11,27 +11,27 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/can_or_could_be_retrieved_from - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/has_or_had_title - - ../slots/is_or_was_published_by + - ../slots/retrieved_from + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_title + - ../slots/20260202_matang/published_by - ../slots/linked_data_access classes: Dataset: class_uri: dcat:Dataset description: A collection of data. slots: - - has_or_had_label - - has_or_had_description - - has_or_had_identifier - - has_or_had_title - - can_or_could_be_retrieved_from + - has_label + - has_description + - identified_by + - has_title + - retrieved_from - linked_data_access - - is_or_was_published_by - - has_or_had_score + - published_by + - has_score annotations: specificity_score: 0.5 specificity_rationale: "Core data entity" diff --git a/schemas/20251121/linkml/modules/classes/DatePrecision.yaml b/schemas/20251121/linkml/modules/classes/DatePrecision.yaml index 260fc484c8..8595e6d57b 100644 --- a/schemas/20251121/linkml/modules/classes/DatePrecision.yaml +++ b/schemas/20251121/linkml/modules/classes/DatePrecision.yaml @@ -15,9 +15,9 @@ prefixes: imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: @@ -44,17 +44,17 @@ classes: - time:TemporalUnit - crm:E52_Time-Span slots: - - has_or_had_label - - has_or_had_code - - has_or_had_description + - has_label + - has_code + - has_description slot_usage: - has_or_had_label: + has_label: # range: string required: true examples: - value: "Day" - value: "Year" - has_or_had_code: + has_code: # range: string required: true pattern: "^[A-Z]+$" @@ -62,7 +62,7 @@ classes: - value: "DAY" - value: "YEAR" - value: "UNKNOWN" - has_or_had_description: + has_description: # range: string required: false examples: @@ -77,14 +77,14 @@ classes: Date precision applies universally to all custodian types. examples: - value: - has_or_had_label: "Day" - has_or_had_code: "DAY" - has_or_had_description: "Full date with day precision (YYYY-MM-DD)" + has_label: "Day" + has_code: "DAY" + has_description: "Full date with day precision (YYYY-MM-DD)" - value: - has_or_had_label: "Year" - has_or_had_code: "YEAR" - has_or_had_description: "Year-only precision (YYYY format)" + has_label: "Year" + has_code: "YEAR" + has_description: "Year-only precision (YYYY format)" - value: - has_or_had_label: "Unknown" - has_or_had_code: "UNKNOWN" - has_or_had_description: "Date mentioned but precision cannot be determined" \ No newline at end of file + has_label: "Unknown" + has_code: "UNKNOWN" + has_description: "Date mentioned but precision cannot be determined" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/DeacidificationFacility.yaml b/schemas/20251121/linkml/modules/classes/DeacidificationFacility.yaml index 6dbd4a2cf4..75a4835731 100644 --- a/schemas/20251121/linkml/modules/classes/DeacidificationFacility.yaml +++ b/schemas/20251121/linkml/modules/classes/DeacidificationFacility.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: DeacidificationFacility: class_uri: schema:Room description: Deacidification facility. slots: - - has_or_had_description + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/DeceasedStatus.yaml b/schemas/20251121/linkml/modules/classes/DeceasedStatus.yaml index 7a0da2d04f..ea83847eeb 100644 --- a/schemas/20251121/linkml/modules/classes/DeceasedStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/DeceasedStatus.yaml @@ -11,15 +11,15 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/is_or_was_caused_by + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/caused_by - ../slots/occurs_or_occurred_at - ../slots/temporal_extent classes: DeceasedStatus: class_uri: schema:DeathEvent - description: "Structured representation of a person's death status and circumstances.\n\n**Purpose**:\nCaptures comprehensive information about a person's death, replacing the\nsimple `circumstances_of_death` string with structured data:\n- **Cause**: Why/how the person died (CauseOfDeath class)\n- **Temporal**: When the death occurred (TimeSpan for fuzzy dates)\n- **Narrative**: Detailed description of circumstances\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `schema:DeathEvent` - Schema.org death event\n- **Related**: `crm:E69_Death` - CIDOC-CRM death event\n- **Related**: `prov:End` - PROV-O activity end\n\n**Heritage Sector Context**:\nCritical for documenting:\n- Heritage workers killed during armed conflicts (Gaza, Ukraine, Syria, etc.)\n- Targeted attacks on cultural institutions and their staff\n- Historical figures in the heritage sector\n- Occupational has_or_had_risks and accidents\n\n**Privacy Considerations**:\n- For recently deceased individuals, verify with institution\ - \ before publishing\n- Public figures and historical staff can generally be documented\n- Follow local privacy laws and institutional policies\n- Handle with respect and dignity\n\n**Example - Conflict Death**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n cause_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n He was a journalist and information professional at Press House.\n has_or_had_location:\n city: Gaza City\n country: PS\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n has_or_had_description: |\n Additional commemorative information and sources documenting\n the death of this heritage worker.\n```\n" + description: "Structured representation of a person's death status and circumstances.\n\n**Purpose**:\nCaptures comprehensive information about a person's death, replacing the\nsimple `circumstances_of_death` string with structured data:\n- **Cause**: Why/how the person died (CauseOfDeath class)\n- **Temporal**: When the death occurred (TimeSpan for fuzzy dates)\n- **Narrative**: Detailed description of circumstances\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `schema:DeathEvent` - Schema.org death event\n- **Related**: `crm:E69_Death` - CIDOC-CRM death event\n- **Related**: `prov:End` - PROV-O activity end\n\n**Heritage Sector Context**:\nCritical for documenting:\n- Heritage workers killed during armed conflicts (Gaza, Ukraine, Syria, etc.)\n- Targeted attacks on cultural institutions and their staff\n- Historical figures in the heritage sector\n- Occupational has_risks and accidents\n\n**Privacy Considerations**:\n- For recently deceased individuals, verify with institution\ + \ before publishing\n- Public figures and historical staff can generally be documented\n- Follow local privacy laws and institutional policies\n- Handle with respect and dignity\n\n**Example - Conflict Death**:\n```yaml\nis_deceased:\n caused_by:\n cause_type: CONFLICT\n has_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n He was a journalist and information professional at Press House.\n has_location:\n city: Gaza City\n country: PS\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n has_description: |\n Additional commemorative information and sources documenting\n the death of this heritage worker.\n```\n" exact_mappings: - schema:DeathEvent close_mappings: @@ -27,18 +27,18 @@ classes: related_mappings: - prov:End slots: - - is_or_was_caused_by + - caused_by - temporal_extent - - has_or_had_description + - has_description - occurs_or_occurred_at slot_usage: - is_or_was_caused_by: + caused_by: range: CauseOfDeath inlined: true temporal_extent: range: TimeSpan inlined: true - has_or_had_description: + has_description: # range: string occurs_or_occurred_at: range: Place diff --git a/schemas/20251121/linkml/modules/classes/Deliverable.yaml b/schemas/20251121/linkml/modules/classes/Deliverable.yaml index 29f2d8ffdb..a5e6143ea9 100644 --- a/schemas/20251121/linkml/modules/classes/Deliverable.yaml +++ b/schemas/20251121/linkml/modules/classes/Deliverable.yaml @@ -7,10 +7,10 @@ description: 'Represents a tangible output or result from a project or activity. - Curation activity results (digitized collections, finding aids) - Research outputs (papers, methodologies, tools) **PROPERTIES**: - - has_or_had_type: Type of deliverable (report, software, dataset, etc.) - - has_or_had_label: Name/title of the deliverable - - has_or_had_url: URL where deliverable can be accessed - - has_or_had_status: Status (planned, in_progress, completed, delayed) + - has_type: Type of deliverable (report, software, dataset, etc.) + - has_label: Name/title of the deliverable + - has_url: URL where deliverable can be accessed + - has_status: Status (planned, in_progress, completed, delayed) **RELATIONSHIP TO Project and CurationActivity**: Used to track concrete outputs from heritage projects and curation activities. Each deliverable represents an expected @@ -18,11 +18,11 @@ description: 'Represents a tangible output or result from a project or activity. ' imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_status - - ../slots/has_or_had_type - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_url - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ @@ -41,29 +41,29 @@ classes: close_mappings: - schema:CreativeWork slots: - - has_or_had_type - - has_or_had_label - - has_or_had_description - - has_or_had_url - - has_or_had_status + - has_type + - has_label + - has_description + - has_url + - has_status - temporal_extent slot_usage: - has_or_had_type: + has_type: # range: string examples: - value: software - value: dataset - value: finding_aid - value: digitized_collection - has_or_had_label: + has_label: # range: string examples: - value: Heritage Data Model v2.0 - has_or_had_url: + has_url: range: uri examples: - value: https://doi.org/10.1234/deliverable - has_or_had_status: + has_status: # range: string examples: - value: in_progress diff --git a/schemas/20251121/linkml/modules/classes/Department.yaml b/schemas/20251121/linkml/modules/classes/Department.yaml index bb6a3584b5..c675516172 100644 --- a/schemas/20251121/linkml/modules/classes/Department.yaml +++ b/schemas/20251121/linkml/modules/classes/Department.yaml @@ -15,15 +15,15 @@ default_prefix: hc imports: - linkml:types - ../slots/contact_point - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/has_or_had_staff_member - - ../slots/has_or_had_type - - ../slots/is_or_was_dissolved_by - - ../slots/is_or_was_established_by - - ../slots/is_or_was_managed_by + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_staff_member + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/dissolved_by + - ../slots/20260202_matang/established_by + - ../slots/20260202_matang/managed_by - ../slots/located_at - ../slots/mandate - ../slots/parent_department @@ -46,54 +46,54 @@ classes: - wikidata:Q107679962 slots: - contact_point - - has_or_had_label - - has_or_had_type - - has_or_had_description - - is_or_was_managed_by - - has_or_had_identifier - - is_or_was_dissolved_by + - has_label + - has_type + - has_description + - managed_by + - identified_by + - dissolved_by - located_at - mandate - parent_department - refers_to_custodian - - has_or_had_staff_member - - has_or_had_score + - has_staff_member + - has_score slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/dept/nationaal-archief-colonial-records - has_or_had_label: + has_label: range: Label inlined: true multivalued: true required: true examples: - value: - has_or_had_text: Colonial Records Department - has_or_had_type: DepartmentName + has_text: Colonial Records Department + has_type: DepartmentName - value: - has_or_had_text: CRD - has_or_had_type: DepartmentCode + has_text: CRD + has_type: DepartmentCode - value: - has_or_had_text: Paintings Department - has_or_had_type: DepartmentName + has_text: Paintings Department + has_type: DepartmentName - value: - has_or_had_text: PNTG - has_or_had_type: DepartmentCode - has_or_had_type: + has_text: PNTG + has_type: DepartmentCode + has_type: range: LabelType inlined: true required: false - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type required: false examples: - value: - has_or_had_text: The Colonial Records Department preserves and provides access to government records from the Dutch colonial period (1602-1949). Holdings include VOC archives, colonial administration files, and diplomatic correspondence. + has_text: The Colonial Records Department preserves and provides access to government records from the Dutch colonial period (1602-1949). Holdings include VOC archives, colonial administration files, and diplomatic correspondence. mandate: # range: string examples: @@ -102,15 +102,15 @@ classes: range: Department examples: - value: https://nde.nl/ontology/hc/dept/nationaal-archief-collections - is_or_was_managed_by: + managed_by: range: Manager inlined: true required: false examples: - value: - has_or_had_name: Dr. Maria van der Berg - has_or_had_title: Head of Colonial Records Department - has_or_had_staff_member: + has_name: Dr. Maria van der Berg + has_title: Head of Colonial Records Department + has_staff_member: range: PersonObservation multivalued: true inlined_as_list: true @@ -122,7 +122,7 @@ classes: examples: - value: colonial-records@nationaalarchief.nl - value: https://www.nationaalarchief.nl/onderzoeken/colonial-records - is_or_was_dissolved_by: + dissolved_by: range: DissolutionEvent inlined: true refers_to_custodian: @@ -144,32 +144,32 @@ classes: - https://www.ica.org/standards/RiC/ontology#Agent examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/dept/nationaal-archief-colonial-records - has_or_had_label: - - has_or_had_text: Colonial Records Department - has_or_had_type: DepartmentName - - has_or_had_text: CRD - has_or_had_type: DepartmentCode - has_or_had_description: - has_or_had_text: Preserves and provides access to government records from the Dutch colonial period (1602-1949). Holdings include VOC archives, colonial administration files, and diplomatic correspondence. + identified_by: https://nde.nl/ontology/hc/dept/nationaal-archief-colonial-records + has_label: + - has_text: Colonial Records Department + has_type: DepartmentName + - has_text: CRD + has_type: DepartmentCode + has_description: + has_text: Preserves and provides access to government records from the Dutch colonial period (1602-1949). Holdings include VOC archives, colonial administration files, and diplomatic correspondence. mandate: Established by Royal Decree of 1891 to manage and preserve records of the Dutch East Indies administration. - is_or_was_established_by: + established_by: temporal_extent: begin_of_the_begin: '1891-06-15' contact_point: colonial-records@nationaalarchief.nl refers_to_custodian: https://nde.nl/ontology/hc/nl-zh-hag-a-na - value: - has_or_had_identifier: https://nde.nl/ontology/hc/dept/rijksmuseum-paintings - has_or_had_label: - - has_or_had_text: Paintings Department - has_or_had_type: DepartmentName - - has_or_had_text: PNTG - has_or_had_type: DepartmentCode - has_or_had_description: - has_or_had_text: Responsible for the museum's collection of paintings from the Middle Ages to the 20th century. Includes Dutch Golden Age masterpieces, Flemish Baroque, and European paintings. - is_or_was_managed_by: - has_or_had_name: Dr. Pieter Roelofs - has_or_had_title: Head of Paintings Department + identified_by: https://nde.nl/ontology/hc/dept/rijksmuseum-paintings + has_label: + - has_text: Paintings Department + has_type: DepartmentName + - has_text: PNTG + has_type: DepartmentCode + has_description: + has_text: Responsible for the museum's collection of paintings from the Middle Ages to the 20th century. Includes Dutch Golden Age masterpieces, Flemish Baroque, and European paintings. + managed_by: + has_name: Dr. Pieter Roelofs + has_title: Head of Paintings Department refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/DepartmentalArchives.yaml b/schemas/20251121/linkml/modules/classes/DepartmentalArchives.yaml index 0fd223fac3..3c875b0548 100644 --- a/schemas/20251121/linkml/modules/classes/DepartmentalArchives.yaml +++ b/schemas/20251121/linkml/modules/classes/DepartmentalArchives.yaml @@ -12,47 +12,47 @@ default_prefix: hc imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_service_area - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_service_area + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_applicable_in - - ../slots/is_or_was_part_of_archive_series - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/applicable_in + - ../slots/20260202_matang/part_of_archive_series + - ../slots/20260202_matang/related_to classes: DepartmentalArchives: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - is_or_was_part_of_archive_series - - has_or_had_type - - has_or_had_service_area + - part_of_archive_series + - has_type + - has_service_area - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by description: "Departmental archives in France (archives d\xE9partementales).\n\n**Wikidata**: Q2860456 (archives d\xE9partementales)\n\n**\u26A0\uFE0F GEOGRAPHIC RESTRICTION: FRANCE ONLY**\n\nThis type applies ONLY to French d\xE9partement-level archives. For archives\nat comparable administrative levels in other countries, use:\n- DistrictArchiveGermany (Q130757255) for Kreisarchiv\n- ProvincialArchive (Q5403345) for provincial archives\n- RegionalArchive (Q27032392) for other regional archives\n\n**DEFINITION**:\n\nArchives d\xE9partementales are public archives at the d\xE9partement level in France.\nThey are the primary repositories for:\n- Pre-revolutionary records (ancien r\xE9gime documents)\n- Civil registration (\xE9tat civil) from 1792\n- Notarial archives\n- Cadastral/land records\n- Local government records\n- Regional ecclesiastical records\n\n**FRENCH TERRITORIAL ARCHIVE HIERARCHY**:\n\n```\nArchives nationales (national)\n \u2514\u2500\u2500 Archives r\xE9gionales (regional)\n\ \ \u2514\u2500\u2500 Archives d\xE9partementales (THIS TYPE)\n \u2514\u2500\u2500 Archives communales (municipal)\n```\n\n**STANDARDIZATION**:\n\nAll 101 d\xE9partements (96 metropolitan + 5 overseas) have departmental archives.\nThey use standardized classification (s\xE9rie/sous-s\xE9rie) based on circulars\nfrom Archives de France.\n\n**COMMON SERIES**:\n- S\xE9rie A-L: Ancien r\xE9gime\n- S\xE9rie M-Z: Post-1790 records\n- S\xE9rie E: Civil registration (\xE9tat civil)\n- S\xE9rie Q: National property (biens nationaux)\n\n**MULTILINGUAL LABELS**:\n- D\xE9partement-Archiv (de)\n- archivos departamentales (es)\n- archives d\xE9partementales (fr)\n\n**RELATED TYPES**:\n- ArchivesRegionales (Q2860567) - regional archives (France)\n- PublicArchivesInFrance (Q2421452) - public archives in France\n- MunicipalArchive (Q604177) - communal archives\n" slot_usage: - has_or_had_identifier: null - has_or_had_service_area: + identified_by: null + has_service_area: range: ServiceArea inlined: true required: false - description: "French d\xE9partement served by this archive.\nMIGRATED from 'departement_code' and 'departement_name' slots per slot_fixes.yaml (Rule 53).\n\nUses ServiceArea class with:\n- service_area_name: D\xE9partement name (e.g., \"Bouches-du-Rh\xF4ne\")\n- has_or_had_identifier: D\xE9partement code as structured identifier (e.g., \"13\")\n" + description: "French d\xE9partement served by this archive.\nMIGRATED from 'departement_code' and 'departement_name' slots per slot_fixes.yaml (Rule 53).\n\nUses ServiceArea class with:\n- service_area_name: D\xE9partement name (e.g., \"Bouches-du-Rh\xF4ne\")\n- identified_by: D\xE9partement code as structured identifier (e.g., \"13\")\n" examples: - value: service_area_name: Paris - has_or_had_identifier: + identified_by: - value: service_area_name: "Bouches-du-Rh\xF4ne" - has_or_had_identifier: + identified_by: - value: service_area_name: "La R\xE9union" - has_or_had_identifier: + identified_by: covers_country: alpha_2: FR - is_or_was_part_of_archive_series: + part_of_archive_series: # range: string multivalued: true examples: @@ -61,15 +61,15 @@ classes: - "E (\xE9tat civil)" - M (administration) - Q (biens nationaux) - is_or_was_applicable_in: + applicable_in: range: Country required: true minimum_cardinality: 1 maximum_cardinality: 1 examples: - value: - has_or_had_identifier: FR - has_or_had_type: + identified_by: FR + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' rules: exact_mappings: @@ -95,20 +95,20 @@ classes: - https://francearchives.gouv.fr/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q2860456 - has_or_had_type_code: ARCHIVE - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/archive/Q2860456 + has_type_code: ARCHIVE + has_label: - Departmental Archives@en - "D\xE9partement-Archiv@de" - archivos departamentales@es - "archives d\xE9partementales@fr" - has_or_had_description: Departmental archives in France - has_or_had_service_area: + has_description: Departmental archives in France + has_service_area: service_area_name: "Bouches-du-Rh\xF4ne" - has_or_had_identifier: + identified_by: covers_country: alpha_2: FR - is_or_was_part_of_archive_series: + part_of_archive_series: - "A-L (ancien r\xE9gime)" - "E (\xE9tat civil)" - M (administration) diff --git a/schemas/20251121/linkml/modules/classes/DepartmentalArchivesRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/DepartmentalArchivesRecordSetType.yaml index 11a1cb9570..0bcb428fba 100644 --- a/schemas/20251121/linkml/modules/classes/DepartmentalArchivesRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/DepartmentalArchivesRecordSetType.yaml @@ -10,9 +10,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to classes: DepartmentalArchivesRecordSetType: description: A rico:RecordSetType for classifying collections of French departmental archive materials within heritage institutions. @@ -21,9 +21,9 @@ classes: exact_mappings: - wd:Q2860456 slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: @@ -33,6 +33,6 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" slots: - - has_or_had_type - - has_or_had_score - - is_or_was_related_to + - has_type + - has_score + - related_to diff --git a/schemas/20251121/linkml/modules/classes/DepartmentalArchivesRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/DepartmentalArchivesRecordSetTypes.yaml index 933fb87a36..f55e839c8f 100644 --- a/schemas/20251121/linkml/modules/classes/DepartmentalArchivesRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/DepartmentalArchivesRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./DepartmentalArchivesRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - DepartmentalArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: DepartmentAdministrationFonds @@ -78,15 +78,15 @@ classes: - DepartmentalArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PrefectureSeries diff --git a/schemas/20251121/linkml/modules/classes/DeploymentEvent.yaml b/schemas/20251121/linkml/modules/classes/DeploymentEvent.yaml index b66c6393c1..d4a685adc6 100644 --- a/schemas/20251121/linkml/modules/classes/DeploymentEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/DeploymentEvent.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_score - ../slots/refers_to_custodian - ../slots/temporal_extent classes: @@ -27,7 +27,7 @@ classes: DeploymentEvent captures the full context of a software deployment: - WHEN: Via temporal_extent (TimeSpan with fuzzy boundaries) - WHERE: Via refers_to_custodian (target institution) - - WHAT: Linked from CollectionManagementSystem.is_or_was_deployed_at + - WHAT: Linked from CollectionManagementSystem.deployed_at - WHY: Via description (deployment rationale, notes) **MIGRATED FROM**: `deployment_date` slot @@ -47,7 +47,7 @@ classes: ``` CollectionManagementSystem │ - └── is_or_was_deployed_at → DeploymentEvent[] + └── deployed_at → DeploymentEvent[] ├── temporal_extent → TimeSpan ├── refers_to_custodian → Custodian └── description → Description @@ -66,8 +66,8 @@ classes: slots: - temporal_extent - refers_to_custodian - - has_or_had_description - - has_or_had_score + - has_description + - has_score slot_usage: temporal_extent: @@ -86,13 +86,13 @@ classes: required: false examples: - value: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type required: false examples: - value: - has_or_had_text: "Migrated from legacy system to Adlib v7.4. Data migration completed in phases over Q2 2015." + has_text: "Migrated from legacy system to Adlib v7.4. Data migration completed in phases over Q2 2015." annotations: custodian_types: '["*"]' custodian_types_rationale: Deployment events applicable to all custodian types. @@ -112,12 +112,12 @@ classes: begin_of_the_begin: "2015-06-01" end_of_the_end: "2015-06-01" refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - has_or_had_description: - has_or_had_text: "Initial deployment of Adlib CMS at Rijksmuseum" + has_description: + has_text: "Initial deployment of Adlib CMS at Rijksmuseum" - value: temporal_extent: begin_of_the_begin: "2020-01-01" end_of_the_end: "2020-03-31" refers_to_custodian: https://nde.nl/ontology/hc/nl-zh-hag-a-na - has_or_had_description: - has_or_had_text: "Upgrade to MAIS-Flexis v3.0. Migration included archival descriptions from 2010-2019." \ No newline at end of file + has_description: + has_text: "Upgrade to MAIS-Flexis v3.0. Migration included archival descriptions from 2010-2019." \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/DepositArchive.yaml b/schemas/20251121/linkml/modules/classes/DepositArchive.yaml index 88edd0428d..8c8dd7aaea 100644 --- a/schemas/20251121/linkml/modules/classes/DepositArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/DepositArchive.yaml @@ -13,11 +13,11 @@ default_prefix: hc imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_service - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_service + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - ../slots/retention_tracking classes: @@ -25,36 +25,36 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type - - has_or_had_service + - has_type + - has_service - hold_or_held_record_set_type - retention_tracking - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by description: "Archive for intermediate/semi-current records awaiting final disposition.\n\n**Wikidata**: Q244904 (deposit archive / Zwischenarchiv / archive interm\xE9diaire)\n\n**DEFINITION**:\n\nDeposit Archive (also called \"intermediate archive\" or \"records center\")\nmanages records that are:\n- No longer actively used (not current archive)\n- Not yet transferred to permanent archive\n- Awaiting retention period completion or disposition decision\n\n**ARCHIVAL LIFECYCLE POSITION**:\n\n```\nCurrent Archive (active use)\n \u2193\nDEPOSIT ARCHIVE (semi-current) \u2190 THIS TYPE\n \u2193\nHistorical Archive (permanent preservation)\n or\nDestruction (per retention schedule)\n```\n\n**KEY CHARACTERISTICS**:\n\n1. **Custody Without Ownership**: Deposit archives often hold materials \n deposited by other organizations while ownership remains with depositor\n\n2. **Retention Management**: Tracks retention schedules and triggers \n disposition actions (transfer or destruction)\n\ \n3. **Efficient Storage**: Uses cost-effective storage for semi-current\n records with lower access frequency\n\n4. **Retrieval Services**: Provides retrieval for depositing organizations\n as needed\n\n**SPECIAL LINKAGE: StorageType**\n\nDeposit archives operate specialized storage facilities. This class links\nto StorageType to describe the deposit storage characteristics:\n- operates_storage \u2192 Storage[] \u2192 has_storage_type \u2192 StorageType\n- StorageType code: DEPOSIT_STORAGE\n\n```\nDepositArchive (custodian type)\n \u2502\n \u2514\u2500\u2500 operates_storage \u2192 Storage (facility instance)\n \u2502\n \u2514\u2500\u2500 has_storage_type \u2192 StorageType\n \u2514\u2500\u2500 DEPOSIT_STORAGE\n```\n\n**MULTILINGUAL LABELS**:\n- Zwischenarchiv (de)\n- archivo de dep\xF3sito (es)\n- archive interm\xE9diaire (fr)\n\n**RELATED TYPES**:\n- CurrentArchive (Q3621648) - active records\ \ (earlier phase)\n- HistoricalArchive (Q3621673) - permanent records (later phase)\n- StorageType.DEPOSIT_STORAGE - storage type for deposit facilities\n\n**ONTOLOGICAL ALIGNMENT**:\n- **SKOS**: skos:Concept (type classification)\n- **RiC-O**: rico:RecordSet for deposited materials\n- **PREMIS**: premis:StorageLocation for storage facilities\n- **Wikidata**: Q244904\n" slot_usage: - has_or_had_identifier: + identified_by: retention_tracking: range: boolean examples: - value: true - has_or_had_service: + has_service: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_type: SecureDestructionService - has_or_had_label: Secure Destruction + has_type: SecureDestructionService + has_label: Secure Destruction - value: - has_or_had_type: PermanentArchiveTransferService - has_or_had_label: Transfer to National Archives + has_type: PermanentArchiveTransferService + has_label: Transfer to National Archives - value: - has_or_had_type: DepositorReturnService - has_or_had_label: Return to Depositor - has_or_had_type: + has_type: DepositorReturnService + has_label: Return to Depositor + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' exact_mappings: - wd:Q244904 @@ -78,20 +78,20 @@ classes: - https://www.iso.org/standard/62542.html examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q244904 - has_or_had_type_code: ARCHIVE - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/archive/Q244904 + has_type_code: ARCHIVE + has_label: - Deposit Archive@en - Zwischenarchiv@de - "archivo de dep\xF3sito@es" - "archive interm\xE9diaire@fr" - has_or_had_description: Archive for semi-current records awaiting disposition + has_description: Archive for semi-current records awaiting disposition retention_tracking: true - has_or_had_service: - - has_or_had_type: SecureDestructionService - has_or_had_label: secure destruction - - has_or_had_type: PermanentArchiveTransferService - has_or_had_label: transfer to national archives + has_service: + - has_type: SecureDestructionService + has_label: secure destruction + - has_type: PermanentArchiveTransferService + has_label: transfer to national archives annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/DepositArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/DepositArchiveRecordSetType.yaml index 9497f905db..3833a42eec 100644 --- a/schemas/20251121/linkml/modules/classes/DepositArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/DepositArchiveRecordSetType.yaml @@ -11,8 +11,8 @@ prefixes: premis: http://www.loc.gov/premis/rdf/v3/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_scope # was: type_scope + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_scope # was: type_scope classes: DepositArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by DepositArchive custodians. @@ -21,7 +21,7 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_scope # was: type_scope - migrated per Rule 53 (2026-01-15) + - has_scope # was: type_scope - migrated per Rule 53 (2026-01-15) see_also: - DepositArchive - rico:RecordSetType diff --git a/schemas/20251121/linkml/modules/classes/DepositArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/DepositArchiveRecordSetTypes.yaml index 9808f43a02..266fb55ea5 100644 --- a/schemas/20251121/linkml/modules/classes/DepositArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/DepositArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./DepositArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - DepositArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: DepositedRecordsFonds diff --git a/schemas/20251121/linkml/modules/classes/DepositingOrganization.yaml b/schemas/20251121/linkml/modules/classes/DepositingOrganization.yaml index d93a91820e..caf6ddf684 100644 --- a/schemas/20251121/linkml/modules/classes/DepositingOrganization.yaml +++ b/schemas/20251121/linkml/modules/classes/DepositingOrganization.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: DepositingOrganization: class_uri: schema:Organization description: Depositing organization. slots: - - has_or_had_name + - has_name annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Description.yaml b/schemas/20251121/linkml/modules/classes/Description.yaml index 9467c7e1a7..19c67842f6 100644 --- a/schemas/20251121/linkml/modules/classes/Description.yaml +++ b/schemas/20251121/linkml/modules/classes/Description.yaml @@ -16,8 +16,8 @@ imports: - linkml:types - ../metadata - ../slots/description_type - - ../slots/has_or_had_content - - ../slots/has_or_had_score # was: template_specificity + - ../slots/20260202_matang/has_content + - ../slots/20260202_matang/has_score # was: template_specificity - ../slots/language classes: Description: @@ -61,23 +61,23 @@ classes: - schema:description slots: - # MIGRATED 2026-01-25: description_text → has_or_had_content (Rule 53) - - has_or_had_content + # MIGRATED 2026-01-25: description_text → has_content (Rule 53) + - has_content - description_type - language - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - # DEPRECATED 2026-01-25: description_text migrated to has_or_had_content + Content (Rule 53) + # DEPRECATED 2026-01-25: description_text migrated to has_content + Content (Rule 53) # Old slot archived: modules/slots/archive/description_text_archived_20260125.yaml - has_or_had_content: + has_content: # range: string required: true inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_label: "Zone Description" - has_or_had_description: "Climate-controlled storage zone with dedicated HVAC for archival materials." + has_label: "Zone Description" + has_description: "Climate-controlled storage zone with dedicated HVAC for archival materials." description_type: # range: string required: false @@ -99,22 +99,22 @@ classes: specificity_rationale: Very broadly applicable generic class for textual descriptions. examples: - # MIGRATED 2026-01-25: examples updated to use has_or_had_content + Content (Rule 53) + # MIGRATED 2026-01-25: examples updated to use has_content + Content (Rule 53) - value: - has_or_had_content: - has_or_had_label: "Storage Zone Climate Control" - has_or_had_description: "Climate-controlled storage zone with dedicated HVAC for archival materials. Maintains 65°F and 35% RH." + has_content: + has_label: "Storage Zone Climate Control" + has_description: "Climate-controlled storage zone with dedicated HVAC for archival materials. Maintains 65°F and 35% RH." description_type: zone language: en - value: - has_or_had_content: - has_or_had_label: "Quarter Leather Binding" - has_or_had_description: "Quarter leather binding with marbled boards, spine with five raised bands and gilt titling." + has_content: + has_label: "Quarter Leather Binding" + has_description: "Quarter leather binding with marbled boards, spine with five raised bands and gilt titling." description_type: binding language: en - value: - has_or_had_content: - has_or_had_label: "Noord-Holland Regional Branch" - has_or_had_description: "Regional branch serving Noord-Holland province with specialized genealogy and notarial collections." + has_content: + has_label: "Noord-Holland Regional Branch" + has_description: "Regional branch serving Noord-Holland province with specialized genealogy and notarial collections." description_type: branch language: en \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml b/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml index 50fa058b57..6770c60960 100644 --- a/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml +++ b/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml @@ -11,19 +11,19 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_geographic_extent - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_time_interval - - ../slots/has_or_had_type - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/has_geographic_extent + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_time_interval + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/generated_by classes: DetectedEntity: class_uri: prov:Entity description: "Base class for entities detected through automated analysis processes.\n\ \n**DEFINITION**:\n\nDetectedEntity represents items identified by automated\ \ analysis pipelines\n(computer vision, NLP, audio analysis, etc.). Each detected\ - \ entity captures:\n- What was detected (via has_or_had_type → specific Type\ + \ entity captures:\n- What was detected (via has_type → specific Type\ \ class)\n- Detection confidence (probability score)\n- Temporal/spatial location\ \ (timestamps, bounding boxes)\n\n**CRITICAL: DETECTION vs TYPE**\n\n| Aspect\ \ | DetectedEntity (This Class) | *Type Classes (Categories) |\n|--------|----------------------------|---------------------------|\n\ @@ -31,18 +31,18 @@ classes: \ at 00:03:15\" | FADE_IN, CUT, DISSOLVE |\n| **Properties** | Confidence, timestamps\ \ | Semantic metadata |\n| **Cardinality** | Many instances per video | ~20-30\ \ types |\n\n**USE CASE - Video Annotation**:\n\n```\nVideoAnnotation\n │\n\ - \ └── has_or_had_detected → DetectedEntity[]\n ├── has_or_had_type →\ + \ └── has_detected → DetectedEntity[]\n ├── has_type →\ \ TransitionType (FADE_IN, CUT, etc.)\n ├── confidence_score → 0.95\n\ \ ├── start_time → \"00:03:15\"\n └── end_time → \"00:03:17\"\n\ - ```\n\n**USE CASE - Text Detection**:\n\n```\nVideoAnnotation\n │\n └── has_or_had_detected\ - \ → DetectedEntity[]\n ├── has_or_had_type → TextType (TITLE, CAPTION,\ - \ etc.)\n ├── confidence_score → 0.87\n ├── has_or_had_geographic_extent\ - \ → [x1, y1, x2, y2]\n └── has_or_had_label → \"Museum Tour\"\n```\n\n\ + ```\n\n**USE CASE - Text Detection**:\n\n```\nVideoAnnotation\n │\n └── has_detected\ + \ → DetectedEntity[]\n ├── has_type → TextType (TITLE, CAPTION,\ + \ etc.)\n ├── confidence_score → 0.87\n ├── has_geographic_extent\ + \ → [x1, y1, x2, y2]\n └── has_label → \"Museum Tour\"\n```\n\n\ **ONTOLOGY ALIGNMENT**:\n\n- **PROV-O Entity**: Detected entities are generated\ \ by activities\n- **W3C Web Annotation**: Compatible with annotation body/target\ \ patterns\n- **CIDOC-CRM E73_Information_Object**: Information derived from\ - \ sources\n\n**RELATIONSHIP TO SLOTS**:\n\n- `has_or_had_detected`: Links from\ - \ VideoAnnotation → DetectedEntity[]\n- `has_or_had_type`: Links DetectedEntity\ + \ sources\n\n**RELATIONSHIP TO SLOTS**:\n\n- `has_detected`: Links from\ + \ VideoAnnotation → DetectedEntity[]\n- `has_type`: Links DetectedEntity\ \ → TransitionType, TextType, etc.\n- Uses shared slots for identifier, label,\ \ confidence\n" abstract: false @@ -55,33 +55,33 @@ classes: - schema:Thing - crm:E21_Person slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_type - - is_or_was_generated_by - - has_or_had_time_interval - - has_or_had_geographic_extent + - identified_by + - has_label + - has_type + - generated_by + - has_time_interval + - has_geographic_extent - start_time slot_usage: - has_or_had_identifier: + identified_by: # range: string required: false examples: - value: detection-001 - value: transition-fade-00:03:15 - has_or_had_type: + has_type: # range: string required: true examples: - value: TransitionType:FADE_IN - value: TextType:TITLE - has_or_had_label: + has_label: # range: string required: false examples: - value: Museum Tour - value: Opening Credits - is_or_was_generated_by: + generated_by: range: GenerationEvent required: false inlined: true @@ -89,20 +89,20 @@ classes: MIGRATED 2026-01-19: Replaces confidence_score slot with structured pattern.' examples: - value: - has_or_had_score: - has_or_had_score: 0.95 - has_or_had_method: computer_vision + has_score: + has_score: 0.95 + has_method: computer_vision - value: - has_or_had_score: - has_or_had_score: 0.62 - has_or_had_method: ocr_extraction - has_or_had_time_interval: + has_score: + has_score: 0.62 + has_method: ocr_extraction + has_time_interval: range: TimeInterval required: false inlined: true examples: - value: null - has_or_had_geographic_extent: + has_geographic_extent: range: float multivalued: true required: false @@ -116,45 +116,45 @@ classes: specificity_score: '0.65' specificity_rationale: Fairly specific - detection entities are domain-relevant for media analysis. - has_or_had_score: null + has_score: null replaces_pattern: 'Replaces inline transition_types_detected and text_types_detected slots - with structured DetectedEntity → has_or_had_type → Type pattern. + with structured DetectedEntity → has_type → Type pattern. ' custodian_types: '[''*'']' comments: - Base class for automated detection results - - Use has_or_had_type to link to specific Type classes (TransitionType, TextType) - - 'Captures detection metadata: confidence (via is_or_was_generated_by), timestamps, + - Use has_type to link to specific Type classes (TransitionType, TextType) + - 'Captures detection metadata: confidence (via generated_by), timestamps, bounding boxes' - Generated by detection activities (prov:wasGeneratedBy pattern) - - 'Rule 39 compliant: uses has_or_had_* slot naming' - - 'MIGRATED 2026-01-19: confidence_score → is_or_was_generated_by + ConfidenceScore' + - 'Rule 39 compliant: uses has_* slot naming (migrated from has_or_had_*)' + - 'MIGRATED 2026-01-19: confidence_score → generated_by + ConfidenceScore' see_also: - https://www.w3.org/TR/prov-o/#Entity - https://www.w3.org/TR/annotation-model/ - http://www.cidoc-crm.org/cidoc-crm/E73_Information_Object examples: - value: - has_or_had_identifier: transition-001 - has_or_had_type: TransitionType:FADE_IN - is_or_was_generated_by: - has_or_had_score: - has_or_had_score: 0.95 - has_or_had_method: video_analysis + identified_by: transition-001 + has_type: TransitionType:FADE_IN + generated_by: + has_score: + has_score: 0.95 + has_method: video_analysis start_time: 00:03:15 - has_or_had_time_interval: null + has_time_interval: null - value: - has_or_had_identifier: text-001 - has_or_had_type: TextType:TITLE - has_or_had_label: Museum Tour Guide - is_or_was_generated_by: - has_or_had_score: - has_or_had_score: 0.87 - has_or_had_method: ocr_extraction - has_or_had_geographic_extent: + identified_by: text-001 + has_type: TextType:TITLE + has_label: Museum Tour Guide + generated_by: + has_score: + has_score: 0.87 + has_method: ocr_extraction + has_geographic_extent: - 100.0 - 50.0 - 400.0 diff --git a/schemas/20251121/linkml/modules/classes/DetectedFace.yaml b/schemas/20251121/linkml/modules/classes/DetectedFace.yaml index 8d2520780d..2874355f5a 100644 --- a/schemas/20251121/linkml/modules/classes/DetectedFace.yaml +++ b/schemas/20251121/linkml/modules/classes/DetectedFace.yaml @@ -16,15 +16,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/generated_by classes: DetectedFace: class_uri: schema:Thing description: Detected face. slots: - - has_or_had_label - - is_or_was_generated_by + - has_label + - generated_by annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/DetectedLandmark.yaml b/schemas/20251121/linkml/modules/classes/DetectedLandmark.yaml index 4b76ec9765..6089539433 100644 --- a/schemas/20251121/linkml/modules/classes/DetectedLandmark.yaml +++ b/schemas/20251121/linkml/modules/classes/DetectedLandmark.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/generated_by classes: DetectedLandmark: class_uri: schema:LandmarksOrHistoricalBuildings description: Detected landmark. slots: - - has_or_had_label - - is_or_was_generated_by + - has_label + - generated_by annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/DetectedLogo.yaml b/schemas/20251121/linkml/modules/classes/DetectedLogo.yaml index e2cc85666b..c1e82dac7f 100644 --- a/schemas/20251121/linkml/modules/classes/DetectedLogo.yaml +++ b/schemas/20251121/linkml/modules/classes/DetectedLogo.yaml @@ -16,15 +16,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/generated_by classes: DetectedLogo: class_uri: schema:Thing description: Detected logo. slots: - - has_or_had_label - - is_or_was_generated_by + - has_label + - generated_by annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/DetectedObject.yaml b/schemas/20251121/linkml/modules/classes/DetectedObject.yaml index 85cc443b72..f43ba7c4aa 100644 --- a/schemas/20251121/linkml/modules/classes/DetectedObject.yaml +++ b/schemas/20251121/linkml/modules/classes/DetectedObject.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/generated_by classes: DetectedObject: class_uri: schema:Thing description: Detected object. slots: - - has_or_had_label - - is_or_was_generated_by + - has_label + - generated_by annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/DetectionLevelType.yaml b/schemas/20251121/linkml/modules/classes/DetectionLevelType.yaml index 5f70eb984d..1ba267add4 100644 --- a/schemas/20251121/linkml/modules/classes/DetectionLevelType.yaml +++ b/schemas/20251121/linkml/modules/classes/DetectionLevelType.yaml @@ -13,9 +13,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: DetectionLevelType: class_uri: skos:Concept @@ -49,8 +49,8 @@ classes: **Migrated From** (per slot_fixes.yaml): - `detection_level` now uses: - `filters_or_filtered` → DetectedEntity - - `has_or_had_type` → DetectionLevelType (this class) - - `includes_or_included` → DetectionLevelTypes (subclasses) + - `has_type` → DetectionLevelType (this class) + - `include` → DetectionLevelTypes (subclasses) exact_mappings: - skos:Concept @@ -59,22 +59,22 @@ classes: - dqv:QualityAnnotation slots: - - has_or_had_code - - has_or_had_label - - has_or_had_description + - has_code + - has_label + - has_description slot_usage: - has_or_had_code: + has_code: pattern: "^[A-Z_]+$" examples: - value: HIGH - value: MEDIUM - value: LOW - has_or_had_label: + has_label: examples: - value: "High Confidence" - value: "Medium Confidence" - has_or_had_description: + has_description: examples: - value: "High confidence detections suitable for production display" diff --git a/schemas/20251121/linkml/modules/classes/DetectionLevelTypes.yaml b/schemas/20251121/linkml/modules/classes/DetectionLevelTypes.yaml index 483a5b5866..9277a3c0d2 100644 --- a/schemas/20251121/linkml/modules/classes/DetectionLevelTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/DetectionLevelTypes.yaml @@ -8,8 +8,8 @@ default_prefix: hc imports: - ./DetectionLevelType - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_label classes: HighDetectionLevel: is_a: DetectionLevelType @@ -26,9 +26,9 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: HIGH - has_or_had_label: + has_label: # range: string equals_string: High Confidence annotations: @@ -39,9 +39,9 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_code: HIGH - has_or_had_label: High Confidence - has_or_had_description: Suitable for production display + has_code: HIGH + has_label: High Confidence + has_description: Suitable for production display broad_mappings: - skos:Concept MediumDetectionLevel: @@ -59,9 +59,9 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: MEDIUM - has_or_had_label: + has_label: # range: string equals_string: Medium Confidence annotations: @@ -69,9 +69,9 @@ classes: review_required: recommended examples: - value: - has_or_had_code: MEDIUM - has_or_had_label: Medium Confidence - has_or_had_description: Review recommended before production use + has_code: MEDIUM + has_label: Medium Confidence + has_description: Review recommended before production use broad_mappings: - skos:Concept LowDetectionLevel: @@ -91,9 +91,9 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: LOW - has_or_had_label: + has_label: # range: string equals_string: Low Confidence annotations: @@ -101,9 +101,9 @@ classes: review_required: required examples: - value: - has_or_had_code: LOW - has_or_had_label: Low Confidence - has_or_had_description: Requires human review before use + has_code: LOW + has_label: Low Confidence + has_description: Requires human review before use broad_mappings: - skos:Concept UncertainDetectionLevel: @@ -123,9 +123,9 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: UNCERTAIN - has_or_had_label: + has_label: # range: string equals_string: Uncertain annotations: @@ -133,9 +133,9 @@ classes: review_required: mandatory examples: - value: - has_or_had_code: UNCERTAIN - has_or_had_label: Uncertain - has_or_had_description: Manual verification required + has_code: UNCERTAIN + has_label: Uncertain + has_description: Manual verification required broad_mappings: - skos:Concept VerifiedDetectionLevel: @@ -153,9 +153,9 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: VERIFIED - has_or_had_label: + has_label: # range: string equals_string: Human Verified annotations: @@ -163,8 +163,8 @@ classes: review_required: completed examples: - value: - has_or_had_code: VERIFIED - has_or_had_label: Human Verified - has_or_had_description: Manually confirmed by curator + has_code: VERIFIED + has_label: Human Verified + has_description: Manually confirmed by curator broad_mappings: - skos:Concept diff --git a/schemas/20251121/linkml/modules/classes/DetectionThreshold.yaml b/schemas/20251121/linkml/modules/classes/DetectionThreshold.yaml index 0dee68e9b7..806968a005 100644 --- a/schemas/20251121/linkml/modules/classes/DetectionThreshold.yaml +++ b/schemas/20251121/linkml/modules/classes/DetectionThreshold.yaml @@ -17,9 +17,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type classes: DetectionThreshold: class_uri: dqv:QualityMeasurement @@ -34,9 +34,9 @@ classes: \ Alignment**:\n- **DQV**: `dqv:QualityMeasurement` - quality metric for data\ \ assessment\n- **PROV-O**: Threshold as parameter of detection activity\n\n\ **Migrated From** (per slot_fixes.yaml):\n- `detection_threshold` (float) now\ - \ uses:\n - `filters_or_filtered` → DetectedEntity\n - `has_or_had_treshold`\ + \ uses:\n - `filters_or_filtered` → DetectedEntity\n - `has_threshold`\ \ → DetectionThreshold (this class)\n\n**Usage Pattern**:\n```\nVideoAnnotation\n\ - \ └── filters_or_filtered → DetectedEntity\n └── has_or_had_treshold\ + \ └── filters_or_filtered → DetectedEntity\n └── has_threshold\ \ → DetectionThreshold\n ├── threshold_value: 0.5\n \ \ └── threshold_type: MINIMUM\n```\n" exact_mappings: @@ -46,15 +46,15 @@ classes: related_mappings: - prov:SoftwareAgent slots: - - has_or_had_label - - has_or_had_description - - has_or_had_type + - has_label + - has_description + - has_type slot_usage: - has_or_had_label: + has_label: examples: - value: High Precision Threshold - value: Research Mode Threshold - has_or_had_type: + has_type: examples: - value: HIGH_PRECISION - value: BALANCED @@ -71,10 +71,10 @@ classes: - threshold_type indicates how threshold is applied examples: - value: - has_or_had_label: Standard Detection + has_label: Standard Detection - value: - has_or_had_label: High Precision - has_or_had_description: For production display requiring high confidence + has_label: High Precision + has_description: For production display requiring high confidence - value: - has_or_had_label: Research Mode - has_or_had_description: Low threshold to maximize recall for research + has_label: Research Mode + has_description: Low threshold to maximize recall for research diff --git a/schemas/20251121/linkml/modules/classes/DeviceType.yaml b/schemas/20251121/linkml/modules/classes/DeviceType.yaml index 0ae418448c..87ddf515a1 100644 --- a/schemas/20251121/linkml/modules/classes/DeviceType.yaml +++ b/schemas/20251121/linkml/modules/classes/DeviceType.yaml @@ -12,8 +12,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: DeviceType: class_uri: schema:Product @@ -50,14 +50,14 @@ classes: - sosa:Platform slots: - - has_or_had_identifier - - has_or_had_label + - identified_by + - has_label slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: false - has_or_had_label: + has_label: # range: string required: true diff --git a/schemas/20251121/linkml/modules/classes/DeviceTypes.yaml b/schemas/20251121/linkml/modules/classes/DeviceTypes.yaml index 3ffe5997fd..6999b38f88 100644 --- a/schemas/20251121/linkml/modules/classes/DeviceTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/DeviceTypes.yaml @@ -38,10 +38,10 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_label: Bluetooth Beacon + has_label: Bluetooth Beacon description: Generic bluetooth beacon - value: - has_or_had_label: iBeacon + has_label: iBeacon description: Apple iBeacon protocol device broad_mappings: - schema:Product @@ -72,10 +72,10 @@ classes: enum_equivalent: IOT_SENSOR examples: - value: - has_or_had_label: Climate Sensor + has_label: Climate Sensor description: Temperature and humidity sensor - value: - has_or_had_label: Light Level Sensor + has_label: Light Level Sensor description: Lux measurement sensor broad_mappings: - schema:Product @@ -104,10 +104,10 @@ classes: enum_equivalent: IOT_KIOSK examples: - value: - has_or_had_label: Information Kiosk + has_label: Information Kiosk description: Interactive information terminal - value: - has_or_had_label: Ticketing Kiosk + has_label: Ticketing Kiosk description: Self-service ticketing terminal broad_mappings: - schema:Product @@ -136,10 +136,10 @@ classes: enum_equivalent: IOT_DISPLAY examples: - value: - has_or_had_label: Digital Signage + has_label: Digital Signage description: Digital information display - value: - has_or_had_label: Interactive Screen + has_label: Interactive Screen description: Touch-enabled display broad_mappings: - schema:Product @@ -165,10 +165,10 @@ classes: enum_equivalent: IOT_ACTUATOR examples: - value: - has_or_had_label: HVAC Controller + has_label: HVAC Controller description: Climate control actuator - value: - has_or_had_label: Lighting Controller + has_label: Lighting Controller description: Automated lighting system broad_mappings: - schema:Product diff --git a/schemas/20251121/linkml/modules/classes/DiarizationStatus.yaml b/schemas/20251121/linkml/modules/classes/DiarizationStatus.yaml index f158f5f06b..40970eb9a6 100644 --- a/schemas/20251121/linkml/modules/classes/DiarizationStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/DiarizationStatus.yaml @@ -11,8 +11,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: DiarizationStatus: class_uri: schema:ActionStatusType @@ -28,14 +28,14 @@ classes: - schema:ActionStatusType slots: - - has_or_had_identifier - - has_or_had_label + - identified_by + - has_label slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: false - has_or_had_label: + has_label: # range: string required: true @@ -50,8 +50,8 @@ classes: examples: - value: - has_or_had_label: Enabled - has_or_had_identifier: https://schema.org/ActiveActionStatus + has_label: Enabled + identified_by: https://schema.org/ActiveActionStatus - value: - has_or_had_label: Completed - has_or_had_identifier: https://schema.org/CompletedActionStatus \ No newline at end of file + has_label: Completed + identified_by: https://schema.org/CompletedActionStatus \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/DigitalArchive.yaml b/schemas/20251121/linkml/modules/classes/DigitalArchive.yaml index b043a51f5f..1b63f2097f 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalArchive.yaml @@ -13,12 +13,12 @@ imports: - ../classes/AgentType - linkml:types - ../slots/content_origin - - ../slots/has_or_had_format - - ../slots/has_or_had_identifier - - ../slots/has_or_had_interface - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_format + - ../slots/identified_by + - ../slots/20260202_matang/has_interface + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - ../slots/preservation_level classes: @@ -26,19 +26,19 @@ classes: is_a: CustodianType class_uri: skos:Concept slots: - - has_or_had_interface + - has_interface - content_origin - - has_or_had_type + - has_type - hold_or_held_record_set_type - preservation_level - - has_or_had_format - - has_or_had_score - - has_or_had_identifier + - has_format + - has_score + - identified_by description: "Information system collecting and providing access to digital resources.\n\n**Wikidata**: Q1224984 (digital archive / digitales Archiv / archivo digital)\n\n**DEFINITION**:\n\nDigital Archive is an information system designed to:\n- Collect digital resources (born-digital or digitized)\n- Preserve them for long-term access\n- Make them available to defined user groups\n\n**TWO INTERPRETATIONS**:\n\n1. **Born-Digital Archive**: Preserves materials created digitally\n - Email archives\n - Digital government records\n - Electronic manuscripts\n - Social media archives\n\n2. **Digitized Archive**: Provides digital access to analog materials\n - Digitized photographs\n - Scanned documents\n - Digital surrogates of physical collections\n\nThis class covers BOTH interpretations.\n\n**SPECIAL LINKAGE: DigitalPlatformType**\n\nDigital archives require digital infrastructure. This class links to\nDigitalPlatformType to describe the platform/system characteristics:\n\ \n```\nDigitalArchive (custodian type)\n \u2502\n \u2514\u2500\u2500 operates_platform \u2192 DigitalPlatform (instance)\n \u2502\n \u2514\u2500\u2500 platform_type \u2192 DigitalPlatformType\n \u251C\u2500\u2500 DISCOVERY_PORTAL\n \u251C\u2500\u2500 DIGITAL_REPOSITORY\n \u251C\u2500\u2500 COLLECTION_MANAGEMENT\n \u2514\u2500\u2500 (other types)\n```\n\n**PRESERVATION STANDARDS**:\n\nDigital archives typically implement:\n- OAIS (ISO 14721) - Reference model\n- PREMIS - Preservation metadata\n- BagIt - File packaging\n- METS - Metadata encoding\n- Trusted Digital Repository (TDR) certification\n\n**MULTILINGUAL LABELS**:\n- digitales Archiv (de)\n- archivo digital (es)\n- archives num\xE9riques (fr)\n\n**RELATED TYPES**:\n- WebArchive (Q30047053) - specifically for web content\n- InstitutionalRepository\ \ (Q1065413) - academic digital publications\n- DigitalPlatformType - platform classification for infrastructure\n" slot_usage: - has_or_had_identifier: + identified_by: content_origin: # range: string examples: @@ -48,15 +48,15 @@ classes: # range: string examples: - value: level_3 - has_or_had_interface: + has_interface: range: AccessInterface inlined: true required: false examples: - value: - has_or_had_url: - has_or_had_value: https://archive.example.org/access - has_or_had_format: + has_url: + has_value: https://archive.example.org/access + has_format: # range: string # uriorcurie multivalued: true examples: @@ -65,7 +65,7 @@ classes: - iana:image/tiff - iana:image/jp2 - iana:application/xml - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:DigitalPlatformType"]' exact_mappings: - wikidata:Q1224984 @@ -87,20 +87,20 @@ classes: - https://ndsa.org/publications/levels-of-digital-preservation/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q1224984 - has_or_had_type_code: ARCHIVE - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/archive/Q1224984 + has_type_code: ARCHIVE + has_label: - Digital Archive@en - digitales Archiv@de - archivo digital@es - "archives num\xE9riques@fr" - has_or_had_description: Information system for digital resource collection and access + has_description: Information system for digital resource collection and access content_origin: mixed preservation_level: level_3 - has_or_had_interface: - has_or_had_url: - has_or_had_value: https://digitalarchive.example.org - has_or_had_format: + has_interface: + has_url: + has_value: https://digitalarchive.example.org + has_format: - iana:application/pdf - iana:image/tiff - iana:image/jp2 diff --git a/schemas/20251121/linkml/modules/classes/DigitalArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/DigitalArchiveRecordSetType.yaml index 2447b8e304..0b64075b8f 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalArchiveRecordSetType.yaml @@ -10,8 +10,8 @@ prefixes: premis: http://www.loc.gov/premis/rdf/v3/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_scope # was: type_scope + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_scope # was: type_scope classes: DigitalArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by DigitalArchive custodians. @@ -20,7 +20,7 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_scope # was: type_scope - migrated per Rule 53 (2026-01-15) + - has_scope # was: type_scope - migrated per Rule 53 (2026-01-15) see_also: - DigitalArchive - rico:RecordSetType diff --git a/schemas/20251121/linkml/modules/classes/DigitalArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/DigitalArchiveRecordSetTypes.yaml index e045d2255c..5771d03503 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./DigitalArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - DigitalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: DigitalObjectCollection @@ -78,15 +78,15 @@ classes: - DigitalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: DigitizedCollection @@ -115,15 +115,15 @@ classes: - DigitalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: WebArchiveCollection diff --git a/schemas/20251121/linkml/modules/classes/DigitalConfidence.yaml b/schemas/20251121/linkml/modules/classes/DigitalConfidence.yaml index 6fcf52faf7..dbe9bf5972 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalConfidence.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalConfidence.yaml @@ -13,9 +13,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: DigitalConfidence: class_uri: dqv:QualityMeasurement @@ -37,22 +37,22 @@ classes: - dqv:QualityMeasurement slots: - - has_or_had_score - - has_or_had_description - - has_or_had_type + - has_score + - has_description + - has_type slot_usage: - has_or_had_score: + has_score: range: float required: true minimum_value: 0.0 maximum_value: 1.0 examples: - value: 0.85 - has_or_had_type: + has_type: examples: - value: SKILL_INFERENCE - has_or_had_description: + has_description: examples: - value: "Inferred from explicit skill endorsements and project history" diff --git a/schemas/20251121/linkml/modules/classes/DigitalInstantiation.yaml b/schemas/20251121/linkml/modules/classes/DigitalInstantiation.yaml index 8f5a602be6..80b4043816 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalInstantiation.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalInstantiation.yaml @@ -6,23 +6,23 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_status - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/has_url classes: DigitalInstantiation: class_uri: crm:E73_Information_Object description: A digital manifestation or surrogate of a heritage entity. MIGRATED from digital_surrogate, digital_surrogate_url, and digitization_status slots (2026-01-25). slots: - - has_or_had_url - - has_or_had_status - - has_or_had_label + - has_url + - has_status + - has_label slot_usage: - has_or_had_url: + has_url: range: uri - has_or_had_status: + has_status: range: Status - has_or_had_label: + has_label: # range: string annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml index 15184faf25..5f0a5eadde 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml @@ -3,16 +3,16 @@ name: digital_platform_class title: DigitalPlatform Class imports: - linkml:types - - ../slots/has_or_had_auxiliary_entities - - ../slots/has_or_had_endpoint - - ../slots/has_or_had_score - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_auxiliary_entities + - ../slots/20260202_matang/has_endpoint + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_url - ../slots/inventory_web_address - - ../slots/is_or_was_associated_with - - ../slots/is_or_was_checked_through - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by - - ../slots/is_or_was_stored_at + - ../slots/20260202_matang/associated_with + - ../slots/20260202_matang/checked_through + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by + - ../slots/20260202_matang/stored_at - ../slots/linked_data - ../slots/metadata_standard - ../slots/oai_pmh_endpoint @@ -64,12 +64,12 @@ classes: \ schema:WebApplication\n- DCAT: dcat:Catalog (for aggregation platforms), dcat:DataService\ \ (for APIs)\n- FOAF: foaf:homepage, foaf:Document\n- CIDOC-CRM: crm:E73_Information_Object\ \ (digital objects)\n\n**Example - Physical Museum with Digital Platform**:\n\ - ```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\ + ```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\ \n preferred_label: \"Rijksmuseum\"\n custodian_type: MUSEUM # Physical institution\n\ \ digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address:\ \ \"https://www.rijksmuseum.nl/\"\n platform_type: DISCOVERY_PORTAL\n \ \ iiif_support: true\n linked_data: true\n```\n\n**Example - Digital-First\ - \ Platform**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/eu-europeana\"\ + \ Platform**:\n```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/eu-europeana\"\ \n preferred_label: \"Europeana\"\n custodian_type: DIGITAL_PLATFORM # Digital-first\n\ \ digital_platform:\n - platform_name: \"Europeana Platform\"\n homepage_web_address:\ \ \"https://www.europeana.eu/\"\n platform_type: AGGREGATION_PLATFORM\n\ @@ -91,10 +91,10 @@ classes: - schema:SoftwareApplication - dcat:accessURL slots: - - has_or_had_endpoint - - has_or_had_auxiliary_entities - - is_or_was_checked_through - - has_or_had_url + - has_endpoint + - has_auxiliary_entities + - checked_through + - has_url - inventory_web_address - linked_data - metadata_standard @@ -107,12 +107,12 @@ classes: - repository_software - serves_finding_aid - sparql_endpoint - - is_or_was_stored_at - - has_or_had_score + - stored_at + - has_score - temporal_extent - - is_or_was_derived_from - - is_or_was_generated_by - - has_or_had_provenance + - derived_from + - generated_by + - has_provenance slot_usage: platform_id: # range: string # uriorcurie @@ -135,29 +135,29 @@ classes: - value: AggregationPlatform description: Aggregation platform (wd:Q7894) - value: WEBSITE - has_or_had_url: + has_url: range: uri required: false inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_url: https://www.rijksmuseum.nl/ - has_or_had_type: homepage + has_url: https://www.rijksmuseum.nl/ + has_type: homepage - value: - has_or_had_url: https://www.europeana.eu/ - has_or_had_type: homepage + has_url: https://www.europeana.eu/ + has_type: homepage inventory_web_address: range: uri multivalued: true examples: - value: https://www.nationaalarchief.nl/onderzoeken/index - has_or_had_endpoint: + has_endpoint: range: APIEndpoint inlined: true examples: - value: - has_or_had_url: https://api.europeana.eu/record/v2/ - has_or_had_description: Europeana REST API endpoint + has_url: https://api.europeana.eu/record/v2/ + has_description: Europeana REST API endpoint sparql_endpoint: range: uri examples: @@ -180,7 +180,7 @@ classes: examples: - value: Dublin Core - value: MARC21 - is_or_was_associated_with: + associated_with: range: AuxiliaryDigitalPlatform multivalued: true inlined_as_list: true @@ -188,12 +188,12 @@ classes: examples: - value: - platform_name: Rijksstudio - has_or_had_type: - has_or_had_label: PROJECT_WEBSITE + has_type: + has_label: PROJECT_WEBSITE platform_url: https://www.rijksmuseum.nl/nl/rijksstudio - platform_name: Rijksmuseum Data API - has_or_had_type: - has_or_had_label: API_ENDPOINT + has_type: + has_label: API_ENDPOINT platform_url: https://data.rijksmuseum.nl/ temporal_extent: range: TimeSpan @@ -201,11 +201,11 @@ classes: - value: begin_of_the_begin: '2008-11-20' end_of_the_begin: '2008-11-20' - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false refers_to_custodian: @@ -219,22 +219,22 @@ classes: examples: - value: full_preservation - value: bit_preservation - is_or_was_stored_at: + stored_at: range: StorageLocation required: false inlined: true examples: - value: - has_or_had_identifier: aws-s3-eu-west-1 - has_or_had_label: + identified_by: aws-s3-eu-west-1 + has_label: label_text: AWS S3 eu-west-1 language: en - value: - has_or_had_identifier: dans-data-archive - has_or_had_label: + identified_by: dans-data-archive + has_label: label_text: DANS Data Archive language: en - is_or_was_checked_through: + checked_through: range: FixityVerification inlined: true required: false @@ -242,7 +242,7 @@ classes: - value: temporal_extent: begin_of_the_begin: '2025-11-15' - has_or_had_label: Last full fixity check + has_label: Last full fixity check serves_finding_aid: # range: string # uriorcurie multivalued: true @@ -259,7 +259,7 @@ classes: + API + mobile app)' - Temporal validity tracks platform lifecycle (launch, shutdown, migration) - IIIF and linked data flags enable discovery of interoperable platforms - - 'MIGRATED: auxiliary_platforms → has_or_had_auxiliary_entities for AuxiliaryDigitalPlatform + - 'MIGRATED: auxiliary_platforms → has_auxiliary_entities for AuxiliaryDigitalPlatform sites (project portals, microsites, APIs)' - Hierarchical pattern mirrors CustodianName → CustodianAppellation relationship see_also: @@ -274,9 +274,9 @@ classes: platform_name: Rijksmuseum Website platform_type: - DiscoveryPortal - has_or_had_url: - has_or_had_url: https://www.rijksmuseum.nl/ - has_or_had_type: homepage + has_url: + has_url: https://www.rijksmuseum.nl/ + has_type: homepage api_endpoint: https://www.rijksmuseum.nl/api/ linked_data: true metadata_standard: @@ -289,11 +289,11 @@ classes: platform_type: - AggregationPlatform - APIService - has_or_had_url: - has_or_had_url: https://www.europeana.eu/ - has_or_had_type: homepage - has_or_had_endpoint: - has_or_had_url: https://api.europeana.eu/record/v2/ + has_url: + has_url: https://www.europeana.eu/ + has_type: homepage + has_endpoint: + has_url: https://api.europeana.eu/record/v2/ sparql_endpoint: https://api.europeana.eu/sparql oai_pmh_endpoint: https://www.europeana.eu/oai linked_data: true diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformScore.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformScore.yaml index 7649162724..76122c84fe 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalPlatformScore.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformScore.yaml @@ -16,7 +16,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score classes: DigitalPlatformScore: class_uri: sosa:Result @@ -34,9 +34,9 @@ classes: exact_mappings: - sosa:Result slots: - - has_or_had_score + - has_score slot_usage: - has_or_had_score: + has_score: range: float required: true minimum_value: 0.0 diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformType.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformType.yaml index fe21929f1b..d1e521413e 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalPlatformType.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformType.yaml @@ -12,11 +12,11 @@ imports: - linkml:types - ../enums/PlatformTypeCategoryEnum - ../metadata - - ../slots/has_or_had_example - - ../slots/has_or_had_feature - - ../slots/has_or_had_score - - ../slots/has_or_had_standard - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_example + - ../slots/20260202_matang/has_feature + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_standard + - ../slots/20260202_matang/related_to - ../slots/multilingual_label - ../slots/platform_type_category - ../slots/platform_type_description @@ -145,16 +145,16 @@ classes: - dcat:Catalog - schema:WebSite slots: - - has_or_had_example + - has_example - multilingual_label - platform_type_category - platform_type_description - platform_type_id - platform_type_name - - has_or_had_score - - has_or_had_standard - - has_or_had_feature - - is_or_was_related_to + - has_score + - has_standard + - has_feature + - related_to slot_usage: platform_type_id: identifier: true diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformTypes.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformTypes.yaml index ee46db2d0b..4d18410a49 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalPlatformTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformTypes.yaml @@ -18,8 +18,8 @@ imports: - ./DigitalPlatformType - linkml:types - ../metadata - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to - ../slots/platform_type_category classes: DigitalLibrary: @@ -52,14 +52,14 @@ classes: slot_usage: platform_type_category: equals_string: REPOSITORY - is_or_was_related_to: + related_to: equals_string: wikidata:Q212805 comments: - digitale Bibliothek (de) - biblioteca digital (es) - "biblioth\xE8que num\xE9rique (fr)" slots: - - has_or_had_score + - has_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration @@ -98,14 +98,14 @@ classes: slot_usage: platform_type_category: equals_string: REPOSITORY - is_or_was_related_to: + related_to: equals_string: wikidata:Q1224984 comments: - digitales Archiv (de) - archivo digital (es) - "archives num\xE9riques (fr)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' exact_mappings: @@ -139,14 +139,14 @@ classes: slot_usage: platform_type_category: equals_string: REPOSITORY - is_or_was_related_to: + related_to: equals_string: wikidata:Q1235234 comments: - Dokumentenserver (de) - repositorio digital (es) - "d\xE9p\xF4t (fr)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' exact_mappings: @@ -181,13 +181,13 @@ classes: slot_usage: platform_type_category: equals_string: REPOSITORY - is_or_was_related_to: + related_to: equals_string: wikidata:Q66656823 comments: - Archivierungsstelle (de) - repositorio (es) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' OpenAccessRepository: @@ -218,14 +218,14 @@ classes: slot_usage: platform_type_category: equals_string: REPOSITORY - is_or_was_related_to: + related_to: equals_string: wikidata:Q7096323 comments: - Open-Access-Publikationsserver (de) - repositorio de acceso abierto (es) - archive ouverte (fr) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' PreservationRepository: @@ -258,10 +258,10 @@ classes: slot_usage: platform_type_category: equals_string: REPOSITORY - is_or_was_related_to: + related_to: equals_string: wikidata:Q117816878 slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' TrustedDigitalRepository: @@ -294,10 +294,10 @@ classes: slot_usage: platform_type_category: equals_string: REPOSITORY - is_or_was_related_to: + related_to: equals_string: wikidata:Q112795563 slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' EArkiv: @@ -330,10 +330,10 @@ classes: slot_usage: platform_type_category: equals_string: REPOSITORY - is_or_was_related_to: + related_to: equals_string: wikidata:Q114351452 slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' OnlineLibrary: @@ -366,10 +366,10 @@ classes: slot_usage: platform_type_category: equals_string: REPOSITORY - is_or_was_related_to: + related_to: equals_string: wikidata:Q12328550 slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' OnlineAcademicLibrary: @@ -400,12 +400,12 @@ classes: slot_usage: platform_type_category: equals_string: REPOSITORY - is_or_was_related_to: + related_to: equals_string: wikidata:Q56316865 comments: - "Biblioth\xE8que universitaire en ligne (fr)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' OnlineDigitalMusicalDocumentLibrary: @@ -436,12 +436,12 @@ classes: slot_usage: platform_type_category: equals_string: REPOSITORY - is_or_was_related_to: + related_to: equals_string: wikidata:Q59826893 comments: - online digitale muziekdocumentbibliotheek (nl) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' ShadowLibrary: @@ -474,14 +474,14 @@ classes: slot_usage: platform_type_category: equals_string: REPOSITORY - is_or_was_related_to: + related_to: equals_string: wikidata:Q21040941 comments: - Schattenbibliothek (de) - biblioteca fantasma (es) - "biblioth\xE8que clandestine (fr)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' PhotographCollection: @@ -512,14 +512,14 @@ classes: slot_usage: platform_type_category: equals_string: REPOSITORY - is_or_was_related_to: + related_to: equals_string: wikidata:Q130486108 comments: - Fotosammlung (de) - "colecci\xF3n de fotograf\xEDas (es)" - collection de photographies (fr) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' Aggregator: @@ -550,14 +550,14 @@ classes: slot_usage: platform_type_category: equals_string: AGGREGATOR - is_or_was_related_to: + related_to: equals_string: wikidata:Q393351 comments: - Aggregator (de) - agregador (es) - "agr\xE9gateur (fr)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' AggregatedOnlineDatabase: @@ -590,14 +590,14 @@ classes: slot_usage: platform_type_category: equals_string: AGGREGATOR - is_or_was_related_to: + related_to: equals_string: wikidata:Q110272188 comments: - Aggregations-Onlinedatenbank (de) - database online aggregato (it) - geaggregeerde online databank (nl) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' BibliographicDatabasePlatform: @@ -628,14 +628,14 @@ classes: slot_usage: platform_type_category: equals_string: AGGREGATOR - is_or_was_related_to: + related_to: equals_string: wikidata:Q1789476 comments: - bibliografische Datenbank (de) - "base de datos bibliogr\xE1fica (es)" - "base de donn\xE9es bibliographiques (fr)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' SpecializedDatabase: @@ -667,14 +667,14 @@ classes: slot_usage: platform_type_category: equals_string: AGGREGATOR - is_or_was_related_to: + related_to: equals_string: wikidata:Q1391125 comments: - Fachdatenbank (de) - base de datos especializada (es) - "base de donn\xE9es sp\xE9cialis\xE9e (fr)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' ArchivesPortal: @@ -705,14 +705,14 @@ classes: slot_usage: platform_type_category: equals_string: AGGREGATOR - is_or_was_related_to: + related_to: equals_string: wikidata:Q635985 comments: - Archivportal (de) - portal de archivos (es) - portail d'archives (fr) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' RegionalPortal: @@ -743,13 +743,13 @@ classes: slot_usage: platform_type_category: equals_string: AGGREGATOR - is_or_was_related_to: + related_to: equals_string: wikidata:Q110279335 comments: - Regionalportal (de) - regionaal portaal (nl) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' TorahDatabase: @@ -780,10 +780,10 @@ classes: slot_usage: platform_type_category: equals_string: AGGREGATOR - is_or_was_related_to: + related_to: equals_string: wikidata:Q2910253 slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' WebPortalPlatform: @@ -814,14 +814,14 @@ classes: slot_usage: platform_type_category: equals_string: DISCOVERY - is_or_was_related_to: + related_to: equals_string: wikidata:Q186165 comments: - Webportal (de) - portal de Internet (es) - portail web (fr) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' Website: @@ -852,14 +852,14 @@ classes: slot_usage: platform_type_category: equals_string: DISCOVERY - is_or_was_related_to: + related_to: equals_string: wikidata:Q35127 comments: - Website (de) - sitio web (es) - site web (fr) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' InstitutionalWebsite: @@ -890,7 +890,7 @@ classes: slot_usage: platform_type_category: equals_string: DISCOVERY - is_or_was_related_to: + related_to: equals_string: wikidata:Q35127 comments: - Website (en) @@ -898,7 +898,7 @@ classes: - Webseite (de) - sitio web (es) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' exact_mappings: @@ -931,14 +931,14 @@ classes: slot_usage: platform_type_category: equals_string: DISCOVERY - is_or_was_related_to: + related_to: equals_string: wikidata:Q7094076 comments: - Online-Datenbank (de) - "base de datos en l\xEDnea (es)" - "base de donn\xE9es en ligne (fr)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' DatabasePlatform: @@ -969,14 +969,14 @@ classes: slot_usage: platform_type_category: equals_string: DISCOVERY - is_or_was_related_to: + related_to: equals_string: wikidata:Q8513 comments: - Datenbank (de) - base de datos (es) - "base de donn\xE9es (fr)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' DataPlatform: @@ -1009,12 +1009,12 @@ classes: slot_usage: platform_type_category: equals_string: DISCOVERY - is_or_was_related_to: + related_to: equals_string: wikidata:Q113470369 comments: - data platform (it) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' OpenDataPortal: @@ -1045,14 +1045,14 @@ classes: slot_usage: platform_type_category: equals_string: DISCOVERY - is_or_was_related_to: + related_to: equals_string: wikidata:Q27031827 comments: - Open-Data-Portal (de) - portal de datos abiertos (es) - "portail de donn\xE9es ouvertes (fr)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' IntegratingResource: @@ -1085,12 +1085,12 @@ classes: slot_usage: platform_type_category: equals_string: DISCOVERY - is_or_was_related_to: + related_to: equals_string: wikidata:Q108637623 comments: - "ressource d'int\xE9gration (fr)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' ServiceOnInternet: @@ -1121,14 +1121,14 @@ classes: slot_usage: platform_type_category: equals_string: DISCOVERY - is_or_was_related_to: + related_to: equals_string: wikidata:Q1668024 comments: - Internetdienst (de) - servicio de internet (es) - service Internet (fr) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' VirtualMuseum: @@ -1161,7 +1161,7 @@ classes: slot_usage: platform_type_category: equals_string: VIRTUAL_HERITAGE - is_or_was_related_to: + related_to: equals_string: wikidata:Q1225034 comments: - virtueel museum (nl) @@ -1169,7 +1169,7 @@ classes: - museo virtual (es) - "mus\xE9e virtuel (fr)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' VirtualLibrary: @@ -1202,14 +1202,14 @@ classes: slot_usage: platform_type_category: equals_string: VIRTUAL_HERITAGE - is_or_was_related_to: + related_to: equals_string: wikidata:Q1224870 comments: - virtuelle Bibliothek (de) - biblioteca virtual (es) - "biblioth\xE8que virtuelle (fr)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' VirtualSpecialistLibrary: @@ -1240,14 +1240,14 @@ classes: slot_usage: platform_type_category: equals_string: VIRTUAL_HERITAGE - is_or_was_related_to: + related_to: equals_string: wikidata:Q2527949 comments: - Virtuelle Fachbibliothek (de) - biblioteca especializada virtual (es) - "biblioth\xE8que virtuelle sp\xE9cialis\xE9e (fr)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' VirtualHerbarium: @@ -1278,14 +1278,14 @@ classes: slot_usage: platform_type_category: equals_string: VIRTUAL_HERITAGE - is_or_was_related_to: + related_to: equals_string: wikidata:Q1449266 comments: - virtuelles Herbarium (de) - herbario virtual (es) - virtueel herbarium (nl) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' VirtualMapLibrary: @@ -1316,13 +1316,13 @@ classes: slot_usage: platform_type_category: equals_string: VIRTUAL_HERITAGE - is_or_was_related_to: + related_to: equals_string: wikidata:Q5995078 comments: - Virtuelle Kartenbibliothek (de) - Mapoteca virtual (es) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' OnlineArtGallery: @@ -1353,13 +1353,13 @@ classes: slot_usage: platform_type_category: equals_string: VIRTUAL_HERITAGE - is_or_was_related_to: + related_to: equals_string: wikidata:Q7094057 comments: - Online-Kunstgalerie (de) - online kunstgalerie (nl) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' CommonsGallery: @@ -1390,14 +1390,14 @@ classes: slot_usage: platform_type_category: equals_string: VIRTUAL_HERITAGE - is_or_was_related_to: + related_to: equals_string: wikidata:Q21167233 comments: - Commons-Galerie (de) - "galer\xEDa de Commons (es)" - galerie (fr) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' DisciplinaryRepository: @@ -1431,14 +1431,14 @@ classes: slot_usage: platform_type_category: equals_string: RESEARCH - is_or_was_related_to: + related_to: equals_string: wikidata:Q5281480 comments: - fachliches Repository (de) - "repositorio tem\xE1tico (es)" - "d\xE9p\xF4t disciplinaire (fr)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' PrePrintServer: @@ -1469,14 +1469,14 @@ classes: slot_usage: platform_type_category: equals_string: RESEARCH - is_or_was_related_to: + related_to: equals_string: wikidata:Q45787211 comments: - servidor de preprints (es) - "serveur de pr\xE9impression (fr)" - preprintserver (nl) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' GenealogyDatabase: @@ -1507,14 +1507,14 @@ classes: slot_usage: platform_type_category: equals_string: RESEARCH - is_or_was_related_to: + related_to: equals_string: wikidata:Q33270056 comments: - Genealogie-Datenbank (de) - "base de datos geneal\xF3gica (es)" - "base de donn\xE9es de g\xE9n\xE9alogie (fr)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' GeospatialRepository: @@ -1545,10 +1545,10 @@ classes: slot_usage: platform_type_category: equals_string: RESEARCH - is_or_was_related_to: + related_to: equals_string: wikidata:Q124368261 slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' GeospatialDataRepository: @@ -1579,10 +1579,10 @@ classes: slot_usage: platform_type_category: equals_string: RESEARCH - is_or_was_related_to: + related_to: equals_string: wikidata:Q124368518 slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' GeospatialInformationRepository: @@ -1613,10 +1613,10 @@ classes: slot_usage: platform_type_category: equals_string: RESEARCH - is_or_was_related_to: + related_to: equals_string: wikidata:Q124368239 slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' GeospatialDataCollection: @@ -1647,10 +1647,10 @@ classes: slot_usage: platform_type_category: equals_string: RESEARCH - is_or_was_related_to: + related_to: equals_string: wikidata:Q124418301 slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' OpenGeodataPortal: @@ -1681,10 +1681,10 @@ classes: slot_usage: platform_type_category: equals_string: RESEARCH - is_or_was_related_to: + related_to: equals_string: wikidata:Q124515090 slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' CrowdsourcingPlatform: @@ -1721,7 +1721,7 @@ classes: - Crowdsourcing platform for heritage data enrichment - From AuxiliaryDigitalPlatformTypeEnum slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' EducationalPortal: @@ -1758,7 +1758,7 @@ classes: - Educational portal for heritage learning - From AuxiliaryDigitalPlatformTypeEnum slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' SocialMedia: @@ -1795,7 +1795,7 @@ classes: - Social media presence for heritage institutions - From AuxiliaryDigitalPlatformTypeEnum slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' exact_mappings: @@ -1834,7 +1834,7 @@ classes: - Blog and news platform for heritage content - From AuxiliaryDigitalPlatformTypeEnum slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' exact_mappings: @@ -1873,7 +1873,7 @@ classes: - Podcast channel for heritage audio content - From AuxiliaryDigitalPlatformTypeEnum slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' exact_mappings: @@ -1912,7 +1912,7 @@ classes: - Virtual tour platform for immersive heritage experiences - From AuxiliaryDigitalPlatformTypeEnum slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' CollectionBrowser: @@ -1949,7 +1949,7 @@ classes: - Collection browser for enhanced exploration - From AuxiliaryDigitalPlatformTypeEnum slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' EService: @@ -1980,13 +1980,13 @@ classes: slot_usage: platform_type_category: equals_string: INTERACTIVE - is_or_was_related_to: + related_to: equals_string: wikidata:Q1273271 comments: - E-Services (de) - "servicio electr\xF3nico (es)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' BookingSystem: @@ -2023,7 +2023,7 @@ classes: - Booking system for heritage visits and events - From AuxiliaryDigitalPlatformTypeEnum slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' Webshop: @@ -2060,7 +2060,7 @@ classes: - E-commerce platform for heritage merchandise - From AuxiliaryDigitalPlatformTypeEnum slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' ProjectWebsite: @@ -2097,7 +2097,7 @@ classes: - Project website for heritage initiatives - From AuxiliaryDigitalPlatformTypeEnum slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' ExhibitionMicrosite: @@ -2134,7 +2134,7 @@ classes: - Exhibition microsite for temporary exhibitions - From AuxiliaryDigitalPlatformTypeEnum slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' APIService: @@ -2168,7 +2168,7 @@ classes: - API endpoint for programmatic heritage data access - From AuxiliaryDigitalPlatformTypeEnum slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' MobileApp: @@ -2206,7 +2206,7 @@ classes: - Mobile application for heritage services - From AuxiliaryDigitalPlatformTypeEnum slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' DataPortalAuxiliary: @@ -2243,7 +2243,7 @@ classes: - Data portal for dataset access - From AuxiliaryDigitalPlatformTypeEnum (DATA_PORTAL) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' LegacyPlatform: @@ -2281,7 +2281,7 @@ classes: - Legacy platform maintained for continuity - From AuxiliaryDigitalPlatformTypeEnum slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' Newsletter: @@ -2318,7 +2318,7 @@ classes: - Newsletter platform for heritage communication - From AuxiliaryDigitalPlatformTypeEnum slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' ProjectPlatform: @@ -2351,14 +2351,14 @@ classes: slot_usage: platform_type_category: equals_string: AUXILIARY - is_or_was_related_to: + related_to: equals_string: wikidata:Q170584 comments: - Projekt (de) - proyecto (es) - projet (fr) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' MemoryInstitution: @@ -2391,14 +2391,14 @@ classes: slot_usage: platform_type_category: equals_string: AUXILIARY - is_or_was_related_to: + related_to: equals_string: wikidata:Q1497649 comments: - "Ged\xE4chtnisinstitution (de)" - "instituci\xF3n del patrimonio (es)" - institution patrimoniale (fr) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' LocalHeritageInstitutionInSweden: @@ -2412,13 +2412,13 @@ classes: slot_usage: platform_type_category: equals_string: AUXILIARY - is_or_was_related_to: + related_to: equals_string: wikidata:Q10520688 comments: - Heimatmuseen in Schweden (de) - "Hembygdsg\xE5rd (nl)" slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' ScientificTechnicAndIndustrialCultureCenter: @@ -2451,14 +2451,14 @@ classes: slot_usage: platform_type_category: equals_string: AUXILIARY - is_or_was_related_to: + related_to: equals_string: wikidata:Q2945276 comments: - centre de culture scientifique, technique et industrielle (fr) - centro di cultura scientifica, tecnica e industriale (it) - wetenschappelijk, technisch en industrieel cultuurcentrum (nl) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' PublicSpace: @@ -2489,14 +2489,14 @@ classes: slot_usage: platform_type_category: equals_string: AUXILIARY - is_or_was_related_to: + related_to: equals_string: wikidata:Q294440 comments: - "\xF6ffentlicher Raum (de)" - "espacio p\xFAblico (es)" - espace public (fr) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' SocialSpace: @@ -2530,14 +2530,14 @@ classes: slot_usage: platform_type_category: equals_string: AUXILIARY - is_or_was_related_to: + related_to: equals_string: wikidata:Q4430275 comments: - sozialer Raum (de) - espacio social (es) - espace social (fr) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' ClosedSpace: @@ -2568,13 +2568,13 @@ classes: slot_usage: platform_type_category: equals_string: AUXILIARY - is_or_was_related_to: + related_to: equals_string: wikidata:Q78642244 comments: - geschlossener Raum (de) - espacio cerrado (es) - spazio chiuso (it) slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformUserIdentifier.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformUserIdentifier.yaml index cfec5b012a..37d67c5111 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalPlatformUserIdentifier.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformUserIdentifier.yaml @@ -13,8 +13,8 @@ imports: - ../slots/platform_type - ../slots/profile_url - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label default_prefix: hc classes: DigitalPlatformUserIdentifier: @@ -25,7 +25,7 @@ classes: such as YouTube channel IDs, Twitter handles, or Instagram usernames. Replaces simple string channel_id slots with typed identifiers. **DESIGN RATIONALE**: Created per slot_fixes.yaml migration from `comment_author_channel_id` string - to structured `has_or_had_author` + `Author` with `has_or_had_identifier` + + to structured `has_author` + `Author` with `identified_by` + `DigitalPlatformUserIdentifier` for platform user identification. **PLATFORM IDENTIFIER TYPES**: | Platform | Identifier Type | Example | |----------|-----------------|---------| | YouTube | Channel ID | UC1234abcdef | | Twitter/X | User ID | 12345678 | | diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2.yaml index aae4c321fc..117709f56d 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2.yaml @@ -11,61 +11,61 @@ prefixes: imports: - linkml:types - ./DigitalPlatformV2Provenance - - ../slots/has_or_had_transformation_metadata - - ../slots/has_or_had_organization_status - - ../slots/has_or_had_data_quality_notes - - ../slots/has_or_had_organization_profile - - ../slots/has_or_had_primary_platform - - ../slots/has_or_had_key_contact - - ../slots/has_or_had_service_details - - ../slots/has_or_had_identifier - - ../slots/has_or_had_provenance - - ../slots/has_or_had_auxiliary_platform - - ../slots/has_or_had_navigation_link - - ../slots/has_or_had_homepage - - ../slots/has_or_had_name - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_transformation_metadata + - ../slots/20260202_matang/has_organization_status + - ../slots/20260202_matang/has_data_quality_notes + - ../slots/20260202_matang/has_organization_profile + - ../slots/20260202_matang/has_primary_platform + - ../slots/20260202_matang/has_key_contact + - ../slots/20260202_matang/has_service_details + - ../slots/identified_by + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/has_auxiliary_platform + - ../slots/20260202_matang/has_navigation_link + - ../slots/20260202_matang/has_homepage + - ../slots/20260202_matang/has_name + - ../slots/20260202_matang/has_type - ../slots/refers_to_custodian - - ../slots/has_or_had_contact_information - - ../slots/has_or_had_facility - - ../slots/has_or_had_secondary_platform - - ../slots/has_or_had_web_claim - - ../slots/has_or_had_collection_url - - ../slots/has_or_had_inventory_url + - ../slots/20260202_matang/has_contact_information + - ../slots/20260202_matang/has_facility + - ../slots/20260202_matang/has_secondary_platform + - ../slots/20260202_matang/has_web_claim + - ../slots/20260202_matang/has_collection_url + - ../slots/20260202_matang/has_inventory_url # default_range: string classes: DigitalPlatformV2: description: "Enhanced digital platform data structure (v2)" class_uri: org:Organization slots: - - has_or_had_transformation_metadata - - has_or_had_organization_status - - has_or_had_data_quality_notes - - has_or_had_organization_profile - - has_or_had_primary_platform - - has_or_had_key_contact - - has_or_had_service_details - - has_or_had_identifier - - has_or_had_provenance - - has_or_had_auxiliary_platform - - has_or_had_navigation_link - - has_or_had_homepage - - has_or_had_name - - has_or_had_type + - has_transformation_metadata + - has_organization_status + - has_data_quality_notes + - has_organization_profile + - has_primary_platform + - has_key_contact + - has_service_details + - identified_by + - has_provenance + - has_auxiliary_platform + - has_navigation_link + - has_homepage + - has_name + - has_type - refers_to_custodian - - has_or_had_contact_information - - has_or_had_facility - - has_or_had_secondary_platform - - has_or_had_web_claim - - has_or_had_collection_url - - has_or_had_inventory_url + - has_contact_information + - has_facility + - has_secondary_platform + - has_web_claim + - has_collection_url + - has_inventory_url slot_usage: - has_or_had_identifier: + identified_by: description: External identifiers (Wikidata, Sigla, ICO, etc.) # range: string multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type - has_or_had_type: + has_type: description: Type of platform (institutional_website, discovery_portal, etc.) - can be string or array # range: string any_of: diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationProfile.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationProfile.yaml index 545e1057cf..83047653e1 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationProfile.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationProfile.yaml @@ -8,7 +8,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/is_or_was_founded_through + - ../slots/20260202_matang/founded_through - ../slots/organization_type - ../slots/scope # default_range: string @@ -17,11 +17,11 @@ classes: description: Detailed profile of the organization including type, scope, and description class_uri: schema:Organization slots: - - is_or_was_founded_through + - founded_through - organization_type - scope slot_usage: - is_or_was_founded_through: + founded_through: range: FoundingEvent inlined: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationStatus.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationStatus.yaml index 4971fa4e73..24f5048f46 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2OrganizationStatus.yaml @@ -25,4 +25,4 @@ classes: custodian_types: '[''*'']' slots: - legal_form - - has_or_had_label + - has_label diff --git a/schemas/20251121/linkml/modules/classes/DigitalPresence.yaml b/schemas/20251121/linkml/modules/classes/DigitalPresence.yaml index 0a39116dfc..56b659f0d5 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalPresence.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalPresence.yaml @@ -12,8 +12,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_type classes: DigitalPresence: class_uri: crm:E1_CRM_Entity @@ -24,22 +24,22 @@ classes: **MIGRATION SOURCE**: Created from digital_presence_type slot migration (Rule 53, 2026-01-25). **Pattern**: Replaces `digital_presence_type` slot on assertion with structured object: - - `has_or_had_identifier`: URI of the presence (SocialMediaProfile, Website, etc.) - - `has_or_had_type`: Classification (DigitalPresenceType) + - `identified_by`: URI of the presence (SocialMediaProfile, Website, etc.) + - `has_type`: Classification (DigitalPresenceType) exact_mappings: - crm:E1_CRM_Entity slots: - - has_or_had_identifier - - has_or_had_type + - identified_by + - has_type slot_usage: - has_or_had_identifier: + identified_by: description: URI of the digital presence instance (e.g. hc:social-media/fb). # range: string # uriorcurie required: true - has_or_had_type: + has_type: range: DigitalPresenceType required: true inlined: true diff --git a/schemas/20251121/linkml/modules/classes/DigitalPresenceType.yaml b/schemas/20251121/linkml/modules/classes/DigitalPresenceType.yaml index 9292eea45d..14f8eb33e9 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalPresenceType.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalPresenceType.yaml @@ -11,8 +11,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: DigitalPresenceType: class_uri: schema:Intangible @@ -30,14 +30,14 @@ classes: - schema:Intangible slots: - - has_or_had_identifier - - has_or_had_label + - identified_by + - has_label slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: false - has_or_had_label: + has_label: # range: string required: true diff --git a/schemas/20251121/linkml/modules/classes/DigitalProficiency.yaml b/schemas/20251121/linkml/modules/classes/DigitalProficiency.yaml index e2795125a0..2f89108012 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalProficiency.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalProficiency.yaml @@ -16,28 +16,28 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type classes: DigitalProficiency: class_uri: schema:DefinedTerm - description: "A digital skill, tool, competency, or proficiency indicator.\n\n**DEFINITION**:\n\nDigitalProficiency represents a specific digital capability (e.g., \"Python\",\n\"Data Analysis\", \"CMS Management\") identified in a person's profile.\n\n**Ontological Alignment**:\n- **Schema.org**: `schema:DefinedTerm` - defined concept (skill)\n- **SKOS**: `skos:Concept` - concept in a scheme\n\n**Migrated From** (per slot_fixes.yaml):\n- `digital_indicator` (string list) \u2192 emphasizes_or_emphasized + DigitalProficiency\n- `digital_professional` (boolean) \u2192 indicates_or_indicated + DigitalProficiency\n" + description: "A digital skill, tool, competency, or proficiency indicator.\n\n**DEFINITION**:\n\nDigitalProficiency represents a specific digital capability (e.g., \"Python\",\n\"Data Analysis\", \"CMS Management\") identified in a person's profile.\n\n**Ontological Alignment**:\n- **Schema.org**: `schema:DefinedTerm` - defined concept (skill)\n- **SKOS**: `skos:Concept` - concept in a scheme\n\n**Migrated From** (per slot_fixes.yaml):\n- `digital_indicator` (string list) \u2192 emphasize + DigitalProficiency\n- `digital_professional` (boolean) \u2192 indicates_or_indicated + DigitalProficiency\n" exact_mappings: - schema:DefinedTerm close_mappings: - skos:Concept slots: - - has_or_had_label - - has_or_had_description - - has_or_had_type + - has_label + - has_description + - has_type slot_usage: - has_or_had_label: + has_label: required: true examples: - value: Python - value: Linked Data - has_or_had_type: + has_type: examples: - value: PROGRAMMING_LANGUAGE - value: METHODOLOGY @@ -52,8 +52,8 @@ classes: - Used in DigitalProfessionalAssessment examples: - value: - has_or_had_label: Python - has_or_had_type: PROGRAMMING_LANGUAGE + has_label: Python + has_type: PROGRAMMING_LANGUAGE - value: - has_or_had_label: Collection Management Systems - has_or_had_type: DOMAIN_TOOL \ No newline at end of file + has_label: Collection Management Systems + has_type: DOMAIN_TOOL \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/DimArchives.yaml b/schemas/20251121/linkml/modules/classes/DimArchives.yaml index 248980df23..3640d86f69 100644 --- a/schemas/20251121/linkml/modules/classes/DimArchives.yaml +++ b/schemas/20251121/linkml/modules/classes/DimArchives.yaml @@ -13,11 +13,11 @@ default_prefix: hc imports: - linkml:types - ../slots/grants_or_granted_access_through - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_time_interval - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_time_interval + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - ../slots/restriction_category classes: @@ -26,25 +26,25 @@ classes: class_uri: schema:ArchiveOrganization slots: - grants_or_granted_access_through - - has_or_had_type + - has_type - hold_or_held_record_set_type - restriction_category - - has_or_had_score - - has_or_had_time_interval - - has_or_had_identifier + - has_score + - has_time_interval + - identified_by description: "Archive with LIMITED access - between broadly accessible and fully closed.\n\n**Wikidata**: Q112796779 (Dim Archive)\n\n**DEFINITION**:\n\nDim Archive provides access to materials but with significant restrictions\nthat limit who can access, when, or under what conditions. This is the\nmiddle position in the Light/Dim/Dark access spectrum.\n\n**ACCESS SPECTRUM**:\n\n| Type | Access Level | Characteristics |\n|------|--------------|-----------------|\n| Light Archive (Q112815447) | Broadly accessible | Open to public/researchers |\n| **Dim Archive** | Limited access | Restricted by criteria |\n| Dark Archive (Q112796578) | No current access | Preservation only |\n\n**RESTRICTION TYPES** (reasons for \"dim\" access):\n\n1. **User-Based Restrictions**\n - Researchers only (credentials required)\n - Institutional affiliates only\n - Nationality restrictions\n - Security clearance required\n\n2. **Content-Based Restrictions**\n - Privacy-sensitive materials (personal\ \ data)\n - Confidential business information\n - Culturally sensitive materials\n - Copyright restrictions (reading room only)\n\n3. **Process-Based Restrictions**\n - Appointment required\n - Approval/application process\n - Fee-based access\n - Supervised access only\n\n4. **Format-Based Restrictions**\n - Physical access only (no digital)\n - Specific reading room required\n - No reproduction allowed\n - Watermarked copies only\n\n**SPECIAL LINKAGE: AccessPolicy \u2192 Collection**\n\nDim archives use AccessPolicy to document restrictions. AccessPolicy\napplies to Collection instances:\n\n```\nDimArchives (custodian type)\n \u2502\n \u2514\u2500\u2500 manages \u2192 Collection (holdings)\n \u2502\n \u2514\u2500\u2500 has_access_policy \u2192 AccessPolicy\n \u251C\u2500\u2500 access_level: RESTRICTED\n \u251C\u2500\u2500 restriction_reason: (text)\n \u251C\ \u2500\u2500 eligible_users: (criteria)\n \u2514\u2500\u2500 access_process: (procedure)\n```\n\n**MULTILINGUAL LABELS**:\n- Dim Archive (de) [uses English term]\n\n**RELATED TYPES**:\n- LightArchive (Q112815447) - broadly accessible\n- DarkArchive (Q112796578) - no current access\n- AccessPolicy - policy class for restriction documentation\n" slot_usage: - has_or_had_identifier: + identified_by: examples: - value: - has_or_had_type: RESEARCHER_ONLY - has_or_had_description: + has_type: RESEARCHER_ONLY + has_description: description_text: Access restricted to credentialed academic researchers - value: - has_or_had_type: APPROVAL_REQUIRED - has_or_had_description: + has_type: APPROVAL_REQUIRED + has_description: description_text: Application and approval process required restriction_category: # range: string @@ -59,14 +59,14 @@ classes: required: false examples: - value: - has_or_had_url: - has_or_had_value: https://archive.example.org/request-access - has_or_had_time_interval: + has_url: + has_value: https://archive.example.org/request-access + has_time_interval: range: TimeInterval inlined: true examples: - value: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:DigitalPlatformType"]' exact_mappings: - wd:Q112796779 @@ -90,20 +90,20 @@ classes: - http://www.loc.gov/premis/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q112796779 - has_or_had_type_code: ARCHIVE - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/archive/Q112796779 + has_type_code: ARCHIVE + has_label: - Dim Archive@en - Dim Archive@de - has_or_had_description: Archive with limited access + has_description: Archive with limited access restriction_category: - user_based - process_based - content_based grants_or_granted_access_through: - has_or_had_url: - has_or_had_value: https://archive.example.org/apply - has_or_had_time_interval: + has_url: + has_value: https://archive.example.org/apply + has_time_interval: annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/DimArchivesRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/DimArchivesRecordSetType.yaml index 6209c1c03c..0031ce2ba9 100644 --- a/schemas/20251121/linkml/modules/classes/DimArchivesRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/DimArchivesRecordSetType.yaml @@ -11,8 +11,8 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_scope # was: type_scope + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_scope # was: type_scope classes: DimArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by DimArchives custodians. @@ -21,7 +21,7 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_scope # was: type_scope - migrated per Rule 53 (2026-01-15) + - has_scope # was: type_scope - migrated per Rule 53 (2026-01-15) see_also: - DimArchives - rico:RecordSetType diff --git a/schemas/20251121/linkml/modules/classes/DimArchivesRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/DimArchivesRecordSetTypes.yaml index 00c245daa3..812fcabeda 100644 --- a/schemas/20251121/linkml/modules/classes/DimArchivesRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/DimArchivesRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./DimArchivesRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - DimArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: DigitallyInaccessibleCollection diff --git a/schemas/20251121/linkml/modules/classes/DiocesanArchive.yaml b/schemas/20251121/linkml/modules/classes/DiocesanArchive.yaml index 6ee02ac0ec..afb016af9b 100644 --- a/schemas/20251121/linkml/modules/classes/DiocesanArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/DiocesanArchive.yaml @@ -11,13 +11,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_name - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_name + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_part_of + - ../slots/20260202_matang/part_of - ../slots/originates_or_originated_from - ../slots/requires_or_required classes: @@ -26,24 +26,24 @@ classes: class_uri: schema:ArchiveOrganization slots: - requires_or_required - - has_or_had_type + - has_type - originates_or_originated_from - - is_or_was_part_of + - part_of - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by description: "Archive of a bishopric (diocese) - ecclesiastical administrative unit.\n\n**Wikidata**: Q11906839 (diocesan archive / Bisch\xF6fliches Archiv)\n\n**DEFINITION**:\n\nDiocesan Archive preserves records created by or relating to a Catholic\nor Anglican diocese (bishopric). Holdings typically include:\n\n- Episcopal correspondence and decrees\n- Diocesan administrative records\n- Personnel files (clergy appointments, ordinations)\n- Parish records (copies or originals)\n- Matrimonial dispensation records\n- Visitation records\n- Financial/property records of the diocese\n\n**ECCLESIASTICAL HIERARCHY**:\n\n```\nVatican Archives (central)\n \u251C\u2500\u2500 Archdioceses \u2192 Archdiocesan Archives\n \u2502 \u2514\u2500\u2500 Dioceses \u2192 DIOCESAN ARCHIVE (THIS TYPE)\n \u2502 \u2514\u2500\u2500 Parishes \u2192 Parish Archives\n \u2514\u2500\u2500 Religious Orders \u2192 Order Archives\n```\n\n**HISTORICAL SIGNIFICANCE**:\n\nDiocesan archives are critical\ \ sources for:\n- Genealogical research (baptismal, marriage records)\n- Local history (diocese often predates civil administration)\n- Ecclesiastical history and church-state relations\n- Medieval and early modern studies\n\n**MULTILINGUAL LABELS**:\n- Bisch\xF6fliches Archiv (de)\n- archivo diocesano (es)\n- archives dioc\xE9saines (fr)\n\n**RELATED TYPES**:\n- ChurchArchive (Q2877653) - general church archives\n- ParishArchive (Q34544468) - parish-level records\n- CathedralArchive (Q132201761) - cathedral chapter records\n- MonasteryArchive (Q27030561) - religious order archives\n\n**ACCESS CONSIDERATIONS**:\n\nDiocesan archives often have restrictions:\n- Recent personnel files may be sealed\n- Matrimonial records may require dispensation\n- Some materials subject to canon law access rules\n- Research may require bishop's permission\n" slot_usage: - has_or_had_identifier: null + identified_by: null originates_or_originated_from: range: Diocese examples: - value: - has_or_had_label: Diocese of Utrecht - is_or_was_located_in: - has_or_had_label: Province of Utrecht - is_or_was_part_of: + has_label: Diocese of Utrecht + located_in: + has_label: Province of Utrecht + part_of: range: Organization any_of: - range: Diocese @@ -51,22 +51,22 @@ classes: inlined: true examples: - value: - has_or_had_label: Diocese of Utrecht - is_or_was_founded_through: + has_label: Diocese of Utrecht + founded_through: temporal_extent: begin_of_the_begin: '0695-01-01' end_of_the_begin: '0695-12-31' - value: - has_or_had_label: Archdiocese of Utrecht + has_label: Archdiocese of Utrecht requires_or_required: range: Permission inlined: true multivalued: true examples: - value: - has_or_had_type: BishopsPermission - has_or_had_description: Written permission from diocesan bishop required for personnel files - has_or_had_type: + has_type: BishopsPermission + has_description: Written permission from diocesan bishop required for personnel files + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HolySacredSiteType"]' exact_mappings: - wd:Q11906839 @@ -91,25 +91,25 @@ classes: - https://www.ica.org/standards/RiC/ontology examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q11906839 - has_or_had_type_code: ARCHIVE - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/archive/Q11906839 + has_type_code: ARCHIVE + has_label: - Diocesan Archive@en - "Bisch\xF6fliches Archiv@de" - archivo diocesano@es - "archives dioc\xE9saines@fr" - has_or_had_description: Archive of a bishopric (diocese) - is_or_was_part_of: - - has_or_had_label: Diocese of 's-Hertogenbosch - is_or_was_founded_through: + has_description: Archive of a bishopric (diocese) + part_of: + - has_label: Diocese of 's-Hertogenbosch + founded_through: temporal_extent: begin_of_the_begin: '1559-05-12' end_of_the_begin: '1559-05-12' - - has_or_had_label: Archdiocese of Utrecht + - has_label: Archdiocese of Utrecht originates_or_originated_from: - has_or_had_label: Diocese of 's-Hertogenbosch - is_or_was_located_in: - has_or_had_label: Province of Utrecht + has_label: Diocese of 's-Hertogenbosch + located_in: + has_label: Province of Utrecht canonical_access_rules: true annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/DiocesanArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/DiocesanArchiveRecordSetType.yaml index b67f754640..5c18c7b267 100644 --- a/schemas/20251121/linkml/modules/classes/DiocesanArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/DiocesanArchiveRecordSetType.yaml @@ -10,8 +10,8 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_scope # was: type_scope + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_scope # was: type_scope classes: DiocesanArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by DiocesanArchive custodians. @@ -20,7 +20,7 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_scope # was: type_scope - migrated per Rule 53 (2026-01-15) + - has_scope # was: type_scope - migrated per Rule 53 (2026-01-15) see_also: - DiocesanArchive - rico:RecordSetType diff --git a/schemas/20251121/linkml/modules/classes/DiocesanArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/DiocesanArchiveRecordSetTypes.yaml index efec6cdebb..361e396b67 100644 --- a/schemas/20251121/linkml/modules/classes/DiocesanArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/DiocesanArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./DiocesanArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - DiocesanArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: DiocesanAdministrationFonds @@ -78,15 +78,15 @@ classes: - DiocesanArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ParishRecordSeries @@ -115,15 +115,15 @@ classes: - DiocesanArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: EpiscopalCorrespondenceCollection diff --git a/schemas/20251121/linkml/modules/classes/Diocese.yaml b/schemas/20251121/linkml/modules/classes/Diocese.yaml index d3ebde9aff..196ce7ac74 100644 --- a/schemas/20251121/linkml/modules/classes/Diocese.yaml +++ b/schemas/20251121/linkml/modules/classes/Diocese.yaml @@ -10,11 +10,11 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/is_or_was_founded_through - - ../slots/is_or_was_located_in + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/founded_through + - ../slots/20260202_matang/located_in classes: Diocese: class_uri: org:Organization @@ -32,25 +32,25 @@ classes: Replaces simple `founding_date_diocese` (date) with structured class\ncapturing\ \ diocese identity and founding event.\n" slots: - - is_or_was_founded_through - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - is_or_was_located_in + - founded_through + - identified_by + - has_label + - has_description + - located_in slot_usage: - has_or_had_label: + has_label: # range: string required: true examples: - value: Diocese of Utrecht - value: Bistum Münster - value: Diocese of 's-Hertogenbosch - is_or_was_located_in: + located_in: # range: string examples: - value: - has_or_had_label: Province of Utrecht - is_or_was_founded_through: + has_label: Province of Utrecht + founded_through: range: FoundingEvent inlined: true examples: @@ -67,18 +67,18 @@ classes: - value: diocese_id: wd:Q1808831 diocese_name: Diocese of Utrecht - is_or_was_located_in: - has_or_had_label: Province of Utrecht - is_or_was_founded_through: + located_in: + has_label: Province of Utrecht + founded_through: temporal_extent: begin_of_the_begin: '0695-01-01' end_of_the_begin: '0695-12-31' - value: diocese_id: hc:diocese/s-hertogenbosch diocese_name: Diocese of 's-Hertogenbosch - is_or_was_located_in: - has_or_had_label: Province of Utrecht - is_or_was_founded_through: + located_in: + has_label: Province of Utrecht + founded_through: temporal_extent: begin_of_the_begin: '1559-05-12' end_of_the_begin: '1559-05-12' diff --git a/schemas/20251121/linkml/modules/classes/DismissalEvent.yaml b/schemas/20251121/linkml/modules/classes/DismissalEvent.yaml index 152ec01d28..ddc1c069f8 100644 --- a/schemas/20251121/linkml/modules/classes/DismissalEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/DismissalEvent.yaml @@ -7,20 +7,20 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_quantity - - ../slots/has_or_had_unit + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_unit default_prefix: hc classes: DismissalEvent: class_uri: schema:UserInteraction description: Event of dismissal or negative reaction. slots: - - has_or_had_quantity - - has_or_had_unit + - has_quantity + - has_unit slot_usage: - has_or_had_quantity: + has_quantity: range: integer - has_or_had_unit: + has_unit: # range: string annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/DisplayLocation.yaml b/schemas/20251121/linkml/modules/classes/DisplayLocation.yaml index 7af5202f3b..58b8dcfa14 100644 --- a/schemas/20251121/linkml/modules/classes/DisplayLocation.yaml +++ b/schemas/20251121/linkml/modules/classes/DisplayLocation.yaml @@ -8,16 +8,16 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label default_prefix: hc classes: DisplayLocation: class_uri: crm:E53_Place description: Location within a venue for display. slots: - - has_or_had_label + - has_label slot_usage: - has_or_had_label: + has_label: # range: string annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/DispositionService.yaml b/schemas/20251121/linkml/modules/classes/DispositionService.yaml index 1780a31bdf..7814f4198c 100644 --- a/schemas/20251121/linkml/modules/classes/DispositionService.yaml +++ b/schemas/20251121/linkml/modules/classes/DispositionService.yaml @@ -7,22 +7,22 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type default_prefix: hc classes: DispositionService: class_uri: schema:Service description: Service for record disposition. slots: - - has_or_had_type - - has_or_had_label - - has_or_had_description + - has_type + - has_label + - has_description slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie - has_or_had_label: + has_label: annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/DispositionServiceType.yaml b/schemas/20251121/linkml/modules/classes/DispositionServiceType.yaml index 4cddf4719b..1523ae4743 100644 --- a/schemas/20251121/linkml/modules/classes/DispositionServiceType.yaml +++ b/schemas/20251121/linkml/modules/classes/DispositionServiceType.yaml @@ -7,16 +7,16 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: DispositionServiceType: abstract: true description: Classification of disposition service. slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/DistrictArchiveGermany.yaml b/schemas/20251121/linkml/modules/classes/DistrictArchiveGermany.yaml index 44cabb96fd..4e963cf068 100644 --- a/schemas/20251121/linkml/modules/classes/DistrictArchiveGermany.yaml +++ b/schemas/20251121/linkml/modules/classes/DistrictArchiveGermany.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: DistrictArchiveGermany: diff --git a/schemas/20251121/linkml/modules/classes/DistrictArchiveGermanyRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/DistrictArchiveGermanyRecordSetType.yaml index 115c9d3335..8819570ef4 100644 --- a/schemas/20251121/linkml/modules/classes/DistrictArchiveGermanyRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/DistrictArchiveGermanyRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: DistrictArchiveGermanyRecordSetType: description: 'A rico:RecordSetType for classifying collections held by DistrictArchiveGermany custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - DistrictArchiveGermany - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/DistrictArchiveGermanyRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/DistrictArchiveGermanyRecordSetTypes.yaml index b6ccca0fae..25172f7436 100644 --- a/schemas/20251121/linkml/modules/classes/DistrictArchiveGermanyRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/DistrictArchiveGermanyRecordSetTypes.yaml @@ -19,8 +19,8 @@ default_prefix: hc imports: - ./DistrictArchiveGermanyRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -43,15 +43,15 @@ classes: - DistrictArchiveGermanyRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: KreisAdministrationFonds @@ -84,15 +84,15 @@ classes: - DistrictArchiveGermanyRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: LocalGovernanceSeries diff --git a/schemas/20251121/linkml/modules/classes/DistritalArchive.yaml b/schemas/20251121/linkml/modules/classes/DistritalArchive.yaml index d518746e09..5f501a7a6c 100644 --- a/schemas/20251121/linkml/modules/classes/DistritalArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/DistritalArchive.yaml @@ -9,10 +9,10 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: DistritalArchive: @@ -20,13 +20,13 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Distrital Archive diff --git a/schemas/20251121/linkml/modules/classes/DistritalArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/DistritalArchiveRecordSetType.yaml index 2eecf794e3..9d3ffa0148 100644 --- a/schemas/20251121/linkml/modules/classes/DistritalArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/DistritalArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: DistritalArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by DistritalArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - DistritalArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/DistritalArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/DistritalArchiveRecordSetTypes.yaml index 56ca766d9b..383d533e94 100644 --- a/schemas/20251121/linkml/modules/classes/DistritalArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/DistritalArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./DistritalArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - DistritalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: DistritoAdministrationFonds diff --git a/schemas/20251121/linkml/modules/classes/Division.yaml b/schemas/20251121/linkml/modules/classes/Division.yaml index 73d5f88fc8..4209d9b964 100644 --- a/schemas/20251121/linkml/modules/classes/Division.yaml +++ b/schemas/20251121/linkml/modules/classes/Division.yaml @@ -8,8 +8,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score + - ../slots/identified_by + - ../slots/20260202_matang/has_score - ../slots/organizational_level classes: Division: @@ -19,10 +19,10 @@ classes: mixins: - OrganizationalStructure slots: - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: + identified_by: organizational_level: equals_string: major unit annotations: diff --git a/schemas/20251121/linkml/modules/classes/DocumentFormat.yaml b/schemas/20251121/linkml/modules/classes/DocumentFormat.yaml index 4deca0905f..79ded1900d 100644 --- a/schemas/20251121/linkml/modules/classes/DocumentFormat.yaml +++ b/schemas/20251121/linkml/modules/classes/DocumentFormat.yaml @@ -9,15 +9,15 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: DocumentFormat: class_uri: dcterms:MediaType slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/DocumentType.yaml b/schemas/20251121/linkml/modules/classes/DocumentType.yaml index 0b4e0cf954..31e972be56 100644 --- a/schemas/20251121/linkml/modules/classes/DocumentType.yaml +++ b/schemas/20251121/linkml/modules/classes/DocumentType.yaml @@ -15,8 +15,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: DocumentType: @@ -24,8 +24,8 @@ classes: abstract: true description: Classification of a document. slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Documentation.yaml b/schemas/20251121/linkml/modules/classes/Documentation.yaml index 7a4e9fa86c..360d8bf008 100644 --- a/schemas/20251121/linkml/modules/classes/Documentation.yaml +++ b/schemas/20251121/linkml/modules/classes/Documentation.yaml @@ -3,9 +3,9 @@ name: documentation_class title: Documentation Class imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label - ../slots/temporal_extent prefixes: linkml: https://w3id.org/linkml/ @@ -44,23 +44,23 @@ classes: - dcterms:references - doap:wiki slots: - - has_or_had_label - - has_or_had_description - - has_or_had_identifier + - has_label + - has_description + - identified_by - temporal_extent slot_usage: - has_or_had_identifier: + identified_by: range: uri required: true identifier: true examples: - value: https://data.rijksmuseum.nl/object-metadata/api/ - has_or_had_label: + has_label: # range: string examples: - value: API Reference Documentation - value: Developer Integration Guide - has_or_had_description: + has_description: # range: string examples: - value: Complete REST API reference with endpoint specifications, authentication, and response formats. @@ -74,16 +74,16 @@ classes: comments: - Generic documentation class replacing domain-specific documentation slots - Supports multiple documentation types (API, user, developer, system) - - URL stored in has_or_had_identifier as the primary identifier + - URL stored in identified_by as the primary identifier - Aligns with Schema.org TechArticle for technical documentation see_also: - https://schema.org/TechArticle - http://usefulinc.com/ns/doap# examples: - value: - has_or_had_identifier: https://data.rijksmuseum.nl/object-metadata/api/ - has_or_had_label: Rijksmuseum Collection API - has_or_had_description: REST API documentation for accessing collection metadata and images + identified_by: https://data.rijksmuseum.nl/object-metadata/api/ + has_label: Rijksmuseum Collection API + has_description: REST API documentation for accessing collection metadata and images annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/DocumentationCentre.yaml b/schemas/20251121/linkml/modules/classes/DocumentationCentre.yaml index 89eecea853..8c2002e330 100644 --- a/schemas/20251121/linkml/modules/classes/DocumentationCentre.yaml +++ b/schemas/20251121/linkml/modules/classes/DocumentationCentre.yaml @@ -8,21 +8,21 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: DocumentationCentre: description: An organisation that deals with documentation, typically focusing on collecting, organizing, and providing access to documents and information on specific topics. Documentation centres often serve as specialized research facilities, combining archival, library, and information management functions. They may focus on particular subjects like human rights, social movements, or historical events. is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - - has_or_had_type - - has_or_had_score - - has_or_had_identifier + - has_type + - has_score + - identified_by slot_usage: - has_or_had_identifier: - has_or_had_type: + identified_by: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Documentation Centre diff --git a/schemas/20251121/linkml/modules/classes/DocumentationSource.yaml b/schemas/20251121/linkml/modules/classes/DocumentationSource.yaml index e9cbaefb52..b91e44e8a2 100644 --- a/schemas/20251121/linkml/modules/classes/DocumentationSource.yaml +++ b/schemas/20251121/linkml/modules/classes/DocumentationSource.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_url classes: DocumentationSource: class_uri: schema:CreativeWork description: Documentation source. slots: - - has_or_had_label - - has_or_had_url + - has_label + - has_url annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Domain.yaml b/schemas/20251121/linkml/modules/classes/Domain.yaml index 342d9b067d..b87db0c23d 100644 --- a/schemas/20251121/linkml/modules/classes/Domain.yaml +++ b/schemas/20251121/linkml/modules/classes/Domain.yaml @@ -6,7 +6,7 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type classes: Domain: class_uri: skos:Concept @@ -15,9 +15,9 @@ classes: or Maritime History. Used to categorize collection focus and expertise. Maps to skos:Concept - a unit of thought in a knowledge organization system. ' slots: - - has_or_had_type + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/DomainType.yaml b/schemas/20251121/linkml/modules/classes/DomainType.yaml index 6cf6a471f8..2fcc05d21a 100644 --- a/schemas/20251121/linkml/modules/classes/DomainType.yaml +++ b/schemas/20251121/linkml/modules/classes/DomainType.yaml @@ -6,9 +6,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: DomainType: class_uri: skos:Concept @@ -26,9 +26,9 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/DonationScheme.yaml b/schemas/20251121/linkml/modules/classes/DonationScheme.yaml index ece9f8f5aa..ebb4b7d7ff 100644 --- a/schemas/20251121/linkml/modules/classes/DonationScheme.yaml +++ b/schemas/20251121/linkml/modules/classes/DonationScheme.yaml @@ -14,10 +14,10 @@ imports: - linkml:types - ../enums/DonationSchemeTypeEnum - ../slots/currency - - ../slots/has_or_had_benefit - - ../slots/has_or_had_note - - ../slots/has_or_had_score - - ../slots/is_or_was_tax_deductible + - ../slots/20260202_matang/has_benefit + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/tax_deductible - ../slots/maximum_amount - ../slots/minimum_amount - ../slots/observed_in @@ -52,9 +52,9 @@ classes: - schema:priceSpecification - schema:itemOffered slots: - - has_or_had_benefit + - has_benefit - currency - - has_or_had_note + - has_note - maximum_amount - minimum_amount - observed_in @@ -65,9 +65,9 @@ classes: - scheme_name - scheme_type - scheme_url - - is_or_was_tax_deductible + - tax_deductible - regulated_by_scheme - - has_or_had_score + - has_score - temporal_extent slot_usage: scheme_id: @@ -124,7 +124,7 @@ classes: - value: monthly - value: annually - value: life - has_or_had_benefit: + has_benefit: # range: string multivalued: true examples: @@ -144,7 +144,7 @@ classes: examples: - value: https://www.rijksmuseum.nl/nl/steun-het-rijksmuseum/word-vriend - value: https://support.bl.uk/Page/Adopt-a-book - is_or_was_tax_deductible: + tax_deductible: range: TaxDeductibility inlined: true examples: @@ -159,35 +159,35 @@ classes: inlined_as_list: true examples: - value: - has_or_had_type: ANBI - has_or_had_label: ANBI + has_type: ANBI + has_label: ANBI jurisdiction: NL offers_or_offered: - - has_or_had_percentage: + - has_percentage: - value: - has_or_had_type: CulturalANBI - has_or_had_label: Cultural ANBI (125%) + has_type: CulturalANBI + has_label: Cultural ANBI (125%) jurisdiction: NL offers_or_offered: - - has_or_had_percentage: + - has_percentage: - value: - has_or_had_type: GiftAid - has_or_had_label: Gift Aid + has_type: GiftAid + has_label: Gift Aid jurisdiction: UK offers_or_offered: - - has_or_had_percentage: + - has_percentage: - value: - has_or_had_type: Section501c3 - has_or_had_label: 501(c)(3) + has_type: Section501c3 + has_label: 501(c)(3) jurisdiction: US offers_or_offered: - - has_or_had_percentage: + - has_percentage: - value: - has_or_had_type: Gemeinnuetzigkeit - has_or_had_label: "Gemeinn\xFCtzigkeit" + has_type: Gemeinnuetzigkeit + has_label: "Gemeinn\xFCtzigkeit" jurisdiction: DE offers_or_offered: - - has_or_had_percentage: + - has_percentage: observed_in: required: true # range: string # uriorcurie @@ -214,27 +214,27 @@ classes: minimum_amount: 60 currency: EUR payment_frequency: annually - has_or_had_benefit: + has_benefit: - Gratis onbeperkt toegang - Exclusieve vriendenevenementen - 10% korting in de museumwinkel - Kwartaalnieuwsbrief offered_by: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum scheme_url: https://www.rijksmuseum.nl/nl/steun-het-rijksmuseum/word-vriend - is_or_was_tax_deductible: + tax_deductible: jurisdiction: NL deductible_percentage: 100 regulated_by_scheme: - - has_or_had_type: CulturalANBI - has_or_had_label: Cultural ANBI (125%) + - has_type: CulturalANBI + has_label: Cultural ANBI (125%) jurisdiction: NL offers_or_offered: - - has_or_had_percentage: + - has_percentage: regulatory_body: Belastingdienst observed_in: https://nde.nl/ontology/hc/observation/web/2026-01-01/rijksmuseum-support - has_or_had_score: - has_or_had_score: 0.95 - has_or_had_note: Clear scheme page with pricing and benefits listed. + has_score: + has_score: 0.95 + has_note: Clear scheme page with pricing and benefits listed. - value: scheme_id: https://nde.nl/ontology/hc/donation-scheme/british-library/adopt-a-book scheme_type: ADOPTION_BOOK @@ -243,27 +243,27 @@ classes: minimum_amount: 25 currency: GBP payment_frequency: one-time - has_or_had_benefit: + has_benefit: - Certificate of adoption - Bookplate with your name in the book - Digital image of your adopted book - Conservation report offered_by: https://nde.nl/ontology/hc/custodian/uk/british-library scheme_url: https://support.bl.uk/Page/Adopt-a-book - is_or_was_tax_deductible: + tax_deductible: jurisdiction: UK deductible_percentage: 100 regulated_by_scheme: - - has_or_had_type: GiftAid - has_or_had_label: Gift Aid + - has_type: GiftAid + has_label: Gift Aid jurisdiction: UK offers_or_offered: - - has_or_had_percentage: + - has_percentage: regulatory_body: HMRC observed_in: https://nde.nl/ontology/hc/observation/web/2026-01-01/bl-support - has_or_had_score: - has_or_had_score: 0.98 - has_or_had_note: Well-documented scheme with clear tiers and benefits. + has_score: + has_score: 0.98 + has_note: Well-documented scheme with clear tiers and benefits. - value: scheme_id: https://nde.nl/ontology/hc/donation-scheme/nhm-london/patrons-silver scheme_type: PATRON_CIRCLE @@ -273,7 +273,7 @@ classes: maximum_amount: 4999 currency: GBP payment_frequency: annually - has_or_had_benefit: + has_benefit: - Behind-the-scenes tours - Curator-led collection visits - Patron-only evening events @@ -281,20 +281,20 @@ classes: - Two guest passes per visit offered_by: https://nde.nl/ontology/hc/custodian/uk/nhm-london scheme_url: https://www.nhm.ac.uk/support-us/patrons - is_or_was_tax_deductible: + tax_deductible: jurisdiction: UK deductible_percentage: 100 regulated_by_scheme: - - has_or_had_type: GiftAid - has_or_had_label: Gift Aid + - has_type: GiftAid + has_label: Gift Aid jurisdiction: UK offers_or_offered: - - has_or_had_percentage: + - has_percentage: regulatory_body: HMRC observed_in: https://nde.nl/ontology/hc/observation/web/2026-01-01/nhm-patrons - has_or_had_score: - has_or_had_score: 0.92 - has_or_had_note: Three-tier patron program. Silver is entry level. + has_score: + has_score: 0.92 + has_note: Three-tier patron program. Silver is entry level. - value: scheme_id: https://nde.nl/ontology/hc/donation-scheme/iish/adopt-history scheme_type: ADOPTION_ARCHIVE_COLLECTION @@ -303,27 +303,27 @@ classes: minimum_amount: 150 currency: EUR payment_frequency: one-time - has_or_had_benefit: + has_benefit: - Adoption certificate - Digital copy of document - Name on website donor wall - Behind-the-scenes tour invitation offered_by: https://nde.nl/ontology/hc/custodian/nl/iish scheme_url: https://iisg.amsterdam/en/support/adopt-history - is_or_was_tax_deductible: + tax_deductible: jurisdiction: NL deductible_percentage: 100 regulated_by_scheme: - - has_or_had_type: ANBI - has_or_had_label: ANBI + - has_type: ANBI + has_label: ANBI jurisdiction: NL offers_or_offered: - - has_or_had_percentage: + - has_percentage: regulatory_body: Belastingdienst observed_in: https://nde.nl/ontology/hc/observation/web/2026-01-01/iish-support - has_or_had_score: - has_or_had_score: 0.9 - has_or_had_note: Archive document adoption with flexible donation levels. + has_score: + has_score: 0.9 + has_note: Archive document adoption with flexible donation levels. - value: scheme_id: https://nde.nl/ontology/hc/donation-scheme/kb-nl/legacy scheme_type: LEGACY_BEQUEST @@ -332,28 +332,28 @@ classes: minimum_amount: null currency: EUR payment_frequency: one-time - has_or_had_benefit: + has_benefit: - Persoonlijk gesprek met directie - Erkenning in jaarverslag (optioneel) - Nalatenschap volledig naar collectie offered_by: https://nde.nl/ontology/hc/custodian/nl/kb scheme_url: https://www.kb.nl/over-ons/steun-de-kb/nalatenschap - is_or_was_tax_deductible: + tax_deductible: jurisdiction: NL deductible_percentage: 100 regulated_by_scheme: - - has_or_had_type: ANBI - has_or_had_label: ANBI (erfbelasting vrijstelling) - has_or_had_description: ANBI status with inheritance tax exemption + - has_type: ANBI + has_label: ANBI (erfbelasting vrijstelling) + has_description: ANBI status with inheritance tax exemption jurisdiction: NL offers_or_offered: - - has_or_had_percentage: + - has_percentage: regulatory_body: Belastingdienst - has_or_had_contact_point: + has_contact_point: observed_in: https://nde.nl/ontology/hc/observation/web/2026-01-01/kb-support - has_or_had_score: - has_or_had_score: 0.85 - has_or_had_note: Legacy giving page with limited detail. Estate tax benefits apply. + has_score: + has_score: 0.85 + has_note: Legacy giving page with limited detail. Estate tax benefits apply. annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Drawer.yaml b/schemas/20251121/linkml/modules/classes/Drawer.yaml index cee1390bf1..b9d6f04d76 100644 --- a/schemas/20251121/linkml/modules/classes/Drawer.yaml +++ b/schemas/20251121/linkml/modules/classes/Drawer.yaml @@ -7,16 +7,16 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_identifier + - ../slots/identified_by default_prefix: hc classes: Drawer: class_uri: rico:PhysicalLocation description: Storage drawer. slots: - - has_or_had_identifier + - identified_by slot_usage: - has_or_had_identifier: + identified_by: range: DrawerNumber annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/EADDownload.yaml b/schemas/20251121/linkml/modules/classes/EADDownload.yaml index 20c174f3bb..221f5e8357 100644 --- a/schemas/20251121/linkml/modules/classes/EADDownload.yaml +++ b/schemas/20251121/linkml/modules/classes/EADDownload.yaml @@ -13,7 +13,7 @@ imports: - ../enums/CompressionTypeEnum - ../enums/EADVersionEnum - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/response_format classes: EADDownload: @@ -53,7 +53,7 @@ classes: - https://eadiva.com/ - https://www.ica.org/en/isadg-general-international-standard-archival-description-second-edition slots: - - has_or_had_score + - has_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/EBook.yaml b/schemas/20251121/linkml/modules/classes/EBook.yaml index 4d15fbe8e2..3f4d83b10d 100644 --- a/schemas/20251121/linkml/modules/classes/EBook.yaml +++ b/schemas/20251121/linkml/modules/classes/EBook.yaml @@ -12,7 +12,7 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_url classes: EBook: class_uri: schema:EBook @@ -31,10 +31,10 @@ classes: - bf:Electronic slots: - - has_or_had_url + - has_url slot_usage: - has_or_had_url: + has_url: range: uri required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/ETag.yaml b/schemas/20251121/linkml/modules/classes/ETag.yaml index a7b32f9506..0091f81734 100644 --- a/schemas/20251121/linkml/modules/classes/ETag.yaml +++ b/schemas/20251121/linkml/modules/classes/ETag.yaml @@ -9,21 +9,21 @@ prefixes: hc: https://nde.nl/ontology/hc/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score default_prefix: hc classes: ETag: - description: Represents an HTTP ETag (Entity Tag) value used for web cache validation. The ETag value is stored in `has_or_had_label` or `has_or_had_identifier`. + description: Represents an HTTP ETag (Entity Tag) value used for web cache validation. The ETag value is stored in `has_label` or `identified_by`. slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_score + - identified_by + - has_label + - has_description + - has_score slot_usage: - has_or_had_label: + has_label: # range: string required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/EcclesiasticalProvince.yaml b/schemas/20251121/linkml/modules/classes/EcclesiasticalProvince.yaml index 5de1784d6e..c6b2948624 100644 --- a/schemas/20251121/linkml/modules/classes/EcclesiasticalProvince.yaml +++ b/schemas/20251121/linkml/modules/classes/EcclesiasticalProvince.yaml @@ -12,8 +12,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: EcclesiasticalProvince: class_uri: org:Organization @@ -32,8 +32,8 @@ classes: - org:Organization slots: - - has_or_had_label - - has_or_had_identifier + - has_label + - identified_by annotations: custodian_types: '["H"]' diff --git a/schemas/20251121/linkml/modules/classes/EconomicArchive.yaml b/schemas/20251121/linkml/modules/classes/EconomicArchive.yaml index 4f6d7f1c7f..6681931b96 100644 --- a/schemas/20251121/linkml/modules/classes/EconomicArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/EconomicArchive.yaml @@ -9,10 +9,10 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: EconomicArchive: @@ -20,13 +20,13 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Economic Archive diff --git a/schemas/20251121/linkml/modules/classes/EconomicArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/EconomicArchiveRecordSetType.yaml index f6a8bddcac..3d0299f739 100644 --- a/schemas/20251121/linkml/modules/classes/EconomicArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/EconomicArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: EconomicArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by EconomicArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - EconomicArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/EconomicArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/EconomicArchiveRecordSetTypes.yaml index 55989bb99b..47952a5bd7 100644 --- a/schemas/20251121/linkml/modules/classes/EconomicArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/EconomicArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./EconomicArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - EconomicArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: BusinessRecordsFonds @@ -78,15 +78,15 @@ classes: - EconomicArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: TradeDocumentationCollection diff --git a/schemas/20251121/linkml/modules/classes/Edition.yaml b/schemas/20251121/linkml/modules/classes/Edition.yaml index b3771ff295..aeee31ea5b 100644 --- a/schemas/20251121/linkml/modules/classes/Edition.yaml +++ b/schemas/20251121/linkml/modules/classes/Edition.yaml @@ -17,9 +17,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_note + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_note classes: Edition: class_uri: bf:Edition @@ -31,13 +31,13 @@ classes: exact_mappings: - bf:Edition slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_note + - identified_by + - has_label + - has_note slot_usage: - has_or_had_identifier: - has_or_had_label: - has_or_had_note: + identified_by: + has_label: + has_note: annotations: custodian_types: '["*"]' specificity_score: 0.4 diff --git a/schemas/20251121/linkml/modules/classes/Editor.yaml b/schemas/20251121/linkml/modules/classes/Editor.yaml index e79dbf6c0a..ceb63169c8 100644 --- a/schemas/20251121/linkml/modules/classes/Editor.yaml +++ b/schemas/20251121/linkml/modules/classes/Editor.yaml @@ -10,9 +10,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_role + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_role classes: Editor: class_uri: schema:Person @@ -22,12 +22,12 @@ classes: - **Primary**: `schema:Person` or `schema:Organization` (Role-based) - **Close**: `bibo:Editor` slots: - - has_or_had_label - - has_or_had_identifier - - has_or_had_role + - has_label + - identified_by + - has_role slot_usage: - has_or_had_label: - has_or_had_role: + has_label: + has_role: annotations: custodian_types: '["*"]' specificity_score: 0.5 diff --git a/schemas/20251121/linkml/modules/classes/Education.yaml b/schemas/20251121/linkml/modules/classes/Education.yaml index 3e6591cd89..5f252c0e27 100644 --- a/schemas/20251121/linkml/modules/classes/Education.yaml +++ b/schemas/20251121/linkml/modules/classes/Education.yaml @@ -11,9 +11,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label - ../slots/temporal_extent classes: Education: @@ -28,13 +28,13 @@ classes: - **Close**: `schema:Course` slots: - - has_or_had_label - - has_or_had_identifier + - has_label + - identified_by - temporal_extent - - has_or_had_description + - has_description slot_usage: - has_or_had_label: + has_label: temporal_extent: annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/classes/EducationCenter.yaml b/schemas/20251121/linkml/modules/classes/EducationCenter.yaml index 0caf0d8fa5..d0378f271c 100644 --- a/schemas/20251121/linkml/modules/classes/EducationCenter.yaml +++ b/schemas/20251121/linkml/modules/classes/EducationCenter.yaml @@ -5,20 +5,20 @@ imports: - linkml:types - ../enums/EducationProviderTypeEnum - ../enums/RoomUnitTypeEnum - - ../slots/has_or_had_accessibility_feature - - ../slots/has_or_had_contact_details - - ../slots/has_or_had_description - - ../slots/has_or_had_equipment - - ../slots/has_or_had_facility - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_time_interval - - ../slots/has_or_had_type - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by - - ../slots/is_or_was_required + - ../slots/20260202_matang/has_accessibility_feature + - ../slots/20260202_matang/has_contact_details + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_equipment + - ../slots/20260202_matang/has_facility + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_time_interval + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by + - ../slots/20260202_matang/required - ../slots/max_group_size - ../slots/provides_or_provided - ../slots/serves_or_served @@ -37,8 +37,8 @@ classes: is_a: ReconstructedEntity class_uri: schema:EducationalOrganization description: "Education center, learning facility, or educational programming space\noperated by a heritage custodian.\n\n**DEFINITION**:\n\nAn EducationCenter is a dedicated space for educational activities,\nworkshops, school programs, and public learning initiatives operated\nby a heritage custodian. Distinguished from ResearchCenter (academic\nresearch) by focus on public education and lifelong learning.\n\n**SCHEMA.ORG ALIGNMENT**:\n\n`schema:EducationalOrganization` - \"An educational organization.\"\n\n**WIKIDATA TYPE LINKAGE (EducationProviderTypeEnum Subset)**:\n\nEducation centers can be classified using relevant types from \nEducationProviderTypeEnum (208 types). Relevant education facility types:\n\n- Q3914 (school) - General educational facility\n- Q1376987 (education center)\n- Q9842 (primary school) - For youth programs\n- Q159334 (adult education) - For adult learning\n- Q578023 (resource center) - Learning resource facility\n- Q7315155 (research department) - If combined\ - \ with research\n\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Primary Focus | Audience |\n|------|---------------|----------|\n| **EducationCenter** | Public learning | Schools, families, adults |\n| ResearchCenter | Academic research | Scholars, researchers |\n| ReadingRoom | Collection access | Researchers |\n| ExhibitionSpace | Display | General public |\n\n**TYPICAL CHARACTERISTICS**:\n\n- **Classroom spaces**: Dedicated teaching rooms\n- **Workshop facilities**: Hands-on activity areas\n- **AV equipment**: Presentation technology\n- **Educational materials**: Teaching resources\n- **Flexible spaces**: Adaptable for different programs\n\n**USE CASES**:\n\n1. **Museum Education Department**:\n ```yaml\n EducationCenter:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/rijksmuseum-education\"\n has_or_had_label:\n label_text: \"Rijksmuseum Educatie Centrum\"\n education_type_classification: EDUCATION_CENTER\n target_audiences:\n\ - \ - \"Primary schools\"\n - \"Secondary schools\"\n - \"Families\"\n - \"Adults\"\n ```\n\n2. **Archive Learning Center**:\n ```yaml\n EducationCenter:\n has_or_had_label:\n label_text: \"Nationaal Archief Leercentrum\"\n education_type_classification: RESOURCE_CENTER\n programs_offered:\n - \"Genealogy workshops\"\n - \"Historical research skills\"\n - \"Teacher training\"\n ```\n" + \ with research\n\n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Primary Focus | Audience |\n|------|---------------|----------|\n| **EducationCenter** | Public learning | Schools, families, adults |\n| ResearchCenter | Academic research | Scholars, researchers |\n| ReadingRoom | Collection access | Researchers |\n| ExhibitionSpace | Display | General public |\n\n**TYPICAL CHARACTERISTICS**:\n\n- **Classroom spaces**: Dedicated teaching rooms\n- **Workshop facilities**: Hands-on activity areas\n- **AV equipment**: Presentation technology\n- **Educational materials**: Teaching resources\n- **Flexible spaces**: Adaptable for different programs\n\n**USE CASES**:\n\n1. **Museum Education Department**:\n ```yaml\n EducationCenter:\n identified_by: \"https://nde.nl/ontology/hc/aux/rijksmuseum-education\"\n has_label:\n label_text: \"Rijksmuseum Educatie Centrum\"\n education_type_classification: EDUCATION_CENTER\n target_audiences:\n\ + \ - \"Primary schools\"\n - \"Secondary schools\"\n - \"Families\"\n - \"Adults\"\n ```\n\n2. **Archive Learning Center**:\n ```yaml\n EducationCenter:\n has_label:\n label_text: \"Nationaal Archief Leercentrum\"\n education_type_classification: RESOURCE_CENTER\n programs_offered:\n - \"Genealogy workshops\"\n - \"Historical research skills\"\n - \"Teacher training\"\n ```\n" exact_mappings: - schema:EducationalOrganization close_mappings: @@ -50,30 +50,30 @@ classes: - schema:School - schema:Course slots: - - has_or_had_accessibility_feature - - is_or_was_required - - has_or_had_facility - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_contact_details - - has_or_had_type - - has_or_had_equipment + - has_accessibility_feature + - required + - has_facility + - identified_by + - has_label + - has_description + - has_contact_details + - has_type + - has_equipment - provides_or_provided - max_group_size - serves_or_served - - has_or_had_score - - is_or_was_derived_from - - is_or_was_generated_by - - has_or_had_quantity + - has_score + - derived_from + - generated_by + - has_quantity slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/rijksmuseum-education - has_or_had_label: + has_label: # range: string inlined: false # Fixed invalid inline for primitive type required: true @@ -84,33 +84,33 @@ classes: ' - value: 'label_text: KB Workshops & Trainingen ' - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type examples: - value: 'description_text: Dedicated education facility offering school programs, family workshops, and teacher training. Features 4 classroom spaces and hands-on workshop areas. ' - has_or_had_type: + has_type: range: EducationFacilityType inlined: true equals_expression: '["hc:EducationProviderType"]' examples: - value: - has_or_had_label: EDUCATION_CENTER - has_or_had_equipment: + has_label: EDUCATION_CENTER + has_equipment: range: AVEquipment required: false multivalued: true inlined: true examples: - value: - has_or_had_name: 4K Projector - has_or_had_type: Projector + has_name: 4K Projector + has_type: Projector provides_or_provided: # range: string examples: - value: - has_or_had_description: Hands-on learning lab + has_description: Hands-on learning lab serves_or_served: range: UserCommunity inlined: true @@ -124,37 +124,37 @@ classes: ' - value: - value: - has_or_had_facility: + has_facility: # range: string inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - - value: "facility_name: \"Main Classroom Wing\"\nhas_or_had_quantity:\n numeric_value: 4\nhas_or_had_unit:\n unit_type: CLASSROOM\nseating_capacity: 120\nav_equipped: true\n" - has_or_had_quantity: + - value: "facility_name: \"Main Classroom Wing\"\nhas_quantity:\n numeric_value: 4\nhas_unit:\n unit_type: CLASSROOM\nseating_capacity: 120\nav_equipped: true\n" + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type examples: - value: numeric_value: 2 - has_or_had_unit: + has_unit: unit_text: workshop_spaces - value: numeric_value: 8 - has_or_had_unit: + has_unit: unit_text: staff_members max_group_size: range: integer examples: - value: 30 - is_or_was_required: + required: range: boolean examples: - value: true - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false comments: @@ -168,16 +168,16 @@ classes: - https://www.wikidata.org/wiki/Q1376987 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/rijksmuseum-education - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/rijksmuseum-education + has_label: label_text: Rijksmuseum Educatie Centrum - has_or_had_description: + has_description: description_text: Dedicated education facility offering school programs, family workshops, and teacher training. - has_or_had_type: - has_or_had_label: EDUCATION_CENTER - has_or_had_contact_details: - includes_or_included: - has_or_had_label: educatie@rijksmuseum.nl + has_type: + has_label: EDUCATION_CENTER + has_contact_details: + include: + has_label: educatie@rijksmuseum.nl serves_or_served: - community_name: Primary schools - community_name: Secondary schools @@ -187,40 +187,40 @@ classes: - program_name: Interactive workshops - program_name: Family treasure hunts - program_name: Teacher training days - has_or_had_facility: + has_facility: - facility_name: Education Wing Classrooms - has_or_had_quantity: + has_quantity: numeric_value: 4 - has_or_had_unit: + has_unit: seating_capacity: 120 - has_or_had_quantity: + has_quantity: - numeric_value: 2 - has_or_had_unit: + has_unit: unit_text: workshop_spaces - numeric_value: 12 - has_or_had_unit: + has_unit: unit_text: staff_members max_group_size: 30 - has_or_had_equipment: - - has_or_had_name: 4K Projector - has_or_had_type: Projector + has_equipment: + - has_name: 4K Projector + has_type: Projector provides_or_provided: - has_or_had_description: Hands-on learning lab - has_or_had_accessibility_feature: + has_description: Hands-on learning lab + has_accessibility_feature: - Wheelchair accessible - Hearing loop - - has_or_had_quantity: 75000 - has_or_had_time_interval: - has_or_had_label: Annual - is_or_was_required: true + - has_quantity: 75000 + has_time_interval: + has_label: Annual + required: true - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/na-leercentrum - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/na-leercentrum + has_label: label_text: Nationaal Archief Leercentrum - has_or_had_description: + has_description: description_text: Learning center focused on historical research skills and genealogy. - has_or_had_type: - has_or_had_label: RESOURCE_CENTER + has_type: + has_label: RESOURCE_CENTER serves_or_served: - community_name: Adult learners - community_name: Genealogists @@ -229,17 +229,17 @@ classes: - program_name: Genealogy workshops - program_name: Paleography basics - program_name: Teacher curriculum support - has_or_had_facility: + has_facility: - facility_name: Learning Rooms - has_or_had_quantity: + has_quantity: numeric_value: 2 - has_or_had_unit: + has_unit: seating_capacity: 40 max_group_size: 20 - has_or_had_equipment: - - has_or_had_name: Projector - has_or_had_type: Projector - is_or_was_required: true + has_equipment: + - has_name: Projector + has_type: Projector + required: true annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/EducationFacilityType.yaml b/schemas/20251121/linkml/modules/classes/EducationFacilityType.yaml index d7b6c10f36..e5e15e6f3f 100644 --- a/schemas/20251121/linkml/modules/classes/EducationFacilityType.yaml +++ b/schemas/20251121/linkml/modules/classes/EducationFacilityType.yaml @@ -16,8 +16,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: EducationFacilityType: class_uri: skos:Concept @@ -25,8 +25,8 @@ classes: **Ontology Alignment**: - **Primary**: `skos:Concept` (Taxonomy term) - **Close**: `schema:definedTerm`' slots: - - has_or_had_label - - has_or_had_identifier + - has_label + - identified_by annotations: custodian_types: '["*"]' specificity_score: 0.7 diff --git a/schemas/20251121/linkml/modules/classes/EducationLevel.yaml b/schemas/20251121/linkml/modules/classes/EducationLevel.yaml index 212b9356a2..a45bc80eec 100644 --- a/schemas/20251121/linkml/modules/classes/EducationLevel.yaml +++ b/schemas/20251121/linkml/modules/classes/EducationLevel.yaml @@ -12,8 +12,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: EducationLevel: class_uri: schema:DefinedTerm @@ -25,8 +25,8 @@ classes: - **Close**: `skos:Concept` slots: - - has_or_had_label - - has_or_had_identifier + - has_label + - identified_by annotations: custodian_types: '["E"]' diff --git a/schemas/20251121/linkml/modules/classes/EducationProviderSubtype.yaml b/schemas/20251121/linkml/modules/classes/EducationProviderSubtype.yaml index 7ec2517dca..40ac4433ce 100644 --- a/schemas/20251121/linkml/modules/classes/EducationProviderSubtype.yaml +++ b/schemas/20251121/linkml/modules/classes/EducationProviderSubtype.yaml @@ -12,8 +12,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: EducationProviderSubtype: class_uri: skos:Concept @@ -25,8 +25,8 @@ classes: - **Close**: `schema:EducationalOrganization` (subtypes) slots: - - has_or_had_label - - has_or_had_identifier + - has_label + - identified_by annotations: custodian_types: '["E"]' diff --git a/schemas/20251121/linkml/modules/classes/EducationProviderType.yaml b/schemas/20251121/linkml/modules/classes/EducationProviderType.yaml index 708d9cbef8..e9a3901a90 100644 --- a/schemas/20251121/linkml/modules/classes/EducationProviderType.yaml +++ b/schemas/20251121/linkml/modules/classes/EducationProviderType.yaml @@ -28,10 +28,10 @@ see_also: imports: - linkml:types - ../enums/EducationProviderTypeEnum - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_level - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_hyponym + - ../slots/20260202_matang/has_level + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/offers_or_offered_access prefixes: hc: https://nde.nl/ontology/hc/ @@ -203,12 +203,12 @@ classes: \ programs map to R.\n Universities conduct research but primarily grant degrees,\ \ so map to E.\n" slots: - - has_or_had_type - - has_or_had_score - - has_or_had_level - - has_or_had_hyponym + - has_type + - has_score + - has_level + - has_hyponym - offers_or_offered_access - - has_or_had_accreditation + - has_accreditation slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:EducationProviderType"]' diff --git a/schemas/20251121/linkml/modules/classes/EmailAddress.yaml b/schemas/20251121/linkml/modules/classes/EmailAddress.yaml index c05d3d0016..4a4412149e 100644 --- a/schemas/20251121/linkml/modules/classes/EmailAddress.yaml +++ b/schemas/20251121/linkml/modules/classes/EmailAddress.yaml @@ -12,7 +12,7 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: EmailAddress: class_uri: hc:EmailAddress @@ -26,10 +26,10 @@ classes: - **Close**: `vcard:Email` slots: - - has_or_had_label + - has_label slot_usage: - has_or_had_label: + has_label: pattern: "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$" annotations: diff --git a/schemas/20251121/linkml/modules/classes/Embargo.yaml b/schemas/20251121/linkml/modules/classes/Embargo.yaml index 7f16e1d68b..93e5182e2c 100644 --- a/schemas/20251121/linkml/modules/classes/Embargo.yaml +++ b/schemas/20251121/linkml/modules/classes/Embargo.yaml @@ -12,7 +12,7 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description - ../slots/temporal_extent classes: Embargo: @@ -26,11 +26,11 @@ classes: slots: - temporal_extent - - has_or_had_description + - has_description slot_usage: temporal_extent: - has_or_had_description: + has_description: annotations: custodian_types: '["A", "R"]' specificity_score: 0.6 diff --git a/schemas/20251121/linkml/modules/classes/Employer.yaml b/schemas/20251121/linkml/modules/classes/Employer.yaml index f0f5c60424..fcb64ff8b1 100644 --- a/schemas/20251121/linkml/modules/classes/Employer.yaml +++ b/schemas/20251121/linkml/modules/classes/Employer.yaml @@ -12,10 +12,10 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_url - - ../slots/is_or_was_related_to + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_url + - ../slots/20260202_matang/related_to classes: Employer: class_uri: schema:Organization @@ -27,16 +27,16 @@ classes: - **Close**: `org:Organization` slots: - - has_or_had_label - - has_or_had_identifier - - has_or_had_url - - is_or_was_related_to + - has_label + - identified_by + - has_url + - related_to slot_usage: - has_or_had_label: - has_or_had_url: + has_label: + has_url: range: uri - is_or_was_related_to: + related_to: range: Heritage annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/classes/EncompassingBody.yaml b/schemas/20251121/linkml/modules/classes/EncompassingBody.yaml index 4405ac983c..309bcfd1d8 100644 --- a/schemas/20251121/linkml/modules/classes/EncompassingBody.yaml +++ b/schemas/20251121/linkml/modules/classes/EncompassingBody.yaml @@ -3,16 +3,16 @@ name: EncompassingBody imports: - linkml:types - ../enums/EncompassingBodyTypeEnum - - ../slots/has_or_had_authority - - ../slots/has_or_had_budget - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_policy - - ../slots/has_or_had_score - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_authority + - ../slots/20260202_matang/has_budget + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_policy + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_url - ../slots/implements_or_implemented - - ../slots/is_or_was_dissolved_by - - ../slots/is_or_was_founded_through + - ../slots/20260202_matang/dissolved_by + - ../slots/20260202_matang/founded_through - ../slots/issued_call - ../slots/legal_jurisdiction - ../slots/membership_criteria @@ -43,20 +43,20 @@ classes: \ departments)\n- **EncompassingBody**: External parent/umbrella organizations that govern or coordinate\n multiple custodians\n\n**Key Distinction from OrganizationalStructure**:\n- **OrganizationalStructure** (on Custodian): Internal operational units\n (departments, teams, divisions)\n- **EncompassingBody**: External organizations that custodian is part of or member of\n\n**Ontological Alignment**:\n- W3C ORG: `org:Organization` (parent class for all organizational entities)\n- TOOI: `tooi:Samenwerkingsorganisatie` (Dutch collaborative organizations)\n- Schema.org: `schema:Organization`, `schema:Consortium`, `schema:FundingAgency`\n- CPOV: `cpov:PublicOrganisation` (for public sector umbrella bodies)\n- FOAF: `foaf:Organization`\n\n**Relationship Properties**:\nUses `org:subOrganizationOf` from Custodian \u2192 EncompassingBody to express:\n- \"National Archives is sub-organization of Ministry OCW\" (UmbrellaOrganisation)\n- \"Museum is member of Digital Heritage Network\" (NetworkOrganisation)\n\ - \"Library participates in Cataloging Consortium\" (Consortium)\n- \"Museum received grant from Mondriaan Fund\" (FundingOrganisation - via schema:funder)\n" slots: - - has_or_had_policy - - has_or_had_description - - is_or_was_dissolved_by - - has_or_had_identifier - - is_or_was_founded_through - - has_or_had_authority + - has_policy + - has_description + - dissolved_by + - identified_by + - founded_through + - has_authority - legal_jurisdiction - membership_criteria - organization_legal_form - organization_name - organization_type - service_offering - - has_or_had_score - - has_or_had_url + - has_score + - has_url slot_usage: organization_name: required: true @@ -76,7 +76,7 @@ classes: - value: Government ministry - value: Non-profit foundation - value: Professional association - is_or_was_founded_through: + founded_through: range: FoundingEvent inlined: true examples: @@ -84,7 +84,7 @@ classes: temporal_extent: begin_of_the_begin: '1965-07-01' end_of_the_end: '1965-07-01' - is_or_was_dissolved_by: + dissolved_by: range: DissolutionEvent inlined: true examples: @@ -92,13 +92,13 @@ classes: temporal_extent: begin_of_the_begin: '2020-12-31' end_of_the_end: '2020-12-31' - has_or_had_authority: + has_authority: range: GovernanceAuthority examples: - value: - has_or_had_description: Ministry exercises budgetary oversight and appoints institutional directors. + has_description: Ministry exercises budgetary oversight and appoints institutional directors. - value: - has_or_had_description: Network coordinates digital preservation services but members retain autonomy. + has_description: Network coordinates digital preservation services but members retain autonomy. service_offering: # range: string multivalued: true @@ -112,13 +112,13 @@ classes: examples: - value: Dutch government heritage institutions established by law - value: Museums with digitization programs seeking preservation services - has_or_had_identifier: + identified_by: # range: string # uriorcurie multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: http://www.wikidata.org/entity/Q2294910 - has_or_had_url: + has_url: range: uri inlined: false # Fixed invalid inline for primitive type multivalued: false diff --git a/schemas/20251121/linkml/modules/classes/EncompassingBodyTypes.yaml b/schemas/20251121/linkml/modules/classes/EncompassingBodyTypes.yaml index 19bd51a1ea..bb792142f4 100644 --- a/schemas/20251121/linkml/modules/classes/EncompassingBodyTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/EncompassingBodyTypes.yaml @@ -15,13 +15,13 @@ description: 'Concrete subclasses of EncompassingBody representing different typ ' imports: - linkml:types - - ../slots/has_or_had_authority - - ../slots/has_or_had_budget - - ../slots/has_or_had_focus - - ../slots/has_or_had_policy - - ../slots/has_or_had_scheme - - ../slots/has_or_had_source - - ../slots/has_or_had_time_interval + - ../slots/20260202_matang/has_authority + - ../slots/20260202_matang/has_budget + - ../slots/20260202_matang/has_focus + - ../slots/20260202_matang/has_policy + - ../slots/20260202_matang/has_scheme + - ../slots/20260202_matang/has_source + - ../slots/20260202_matang/has_time_interval - ../slots/issued_call - ../slots/legal_jurisdiction - ../slots/membership_criteria @@ -79,11 +79,11 @@ classes: range: EncompassingBodyTypeEnum required: true ifabsent: string(UMBRELLA) - has_or_had_authority: + has_authority: required: true examples: - value: - has_or_had_description: Ministry OCW exercises governance authority over + has_description: Ministry OCW exercises governance authority over National Archives under Dutch Heritage Act 2016. Authority includes budget approval, director appointment, and policy oversight. organization_legal_form: @@ -128,8 +128,8 @@ classes: organization_type: UMBRELLA organization_legal_form: Government ministry begin_of_the_begin: '1965-07-01' - has_or_had_authority: - has_or_had_description: Exercises governance over Dutch national cultural + has_authority: + has_description: Exercises governance over Dutch national cultural heritage institutions under Heritage Act 2016. Authority includes budget oversight, director appointments, and strategic policy direction. legal_jurisdiction: @@ -138,14 +138,14 @@ classes: country: alpha_2: NL alpha_3: NLD - has_or_had_member: - - has_or_had_identifier: https://nde.nl/ontology/hc/nl-na + has_member: + - identified_by: https://nde.nl/ontology/hc/nl-na preferred_label: Nationaal Archief - - has_or_had_identifier: https://nde.nl/ontology/hc/nl-nh-ams-m-rm + - identified_by: https://nde.nl/ontology/hc/nl-nh-ams-m-rm preferred_label: Rijksmuseum - has_or_had_url: https://www.rijksoverheid.nl/ministeries/ocw + has_url: https://www.rijksoverheid.nl/ministeries/ocw slots: - - has_or_had_score + - has_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration @@ -193,10 +193,10 @@ classes: examples: - value: "Dutch heritage institutions with digital collections seeking long-term\ \ preservation services. Membership fee: \u20AC5,000/year." - has_or_had_authority: + has_authority: examples: - value: - has_or_had_description: Network defines technical standards for digital + has_description: Network defines technical standards for digital preservation but members retain full autonomy over collection policies and operations. broad_mappings: @@ -215,8 +215,8 @@ classes: organization_type: NETWORK begin_of_the_begin: '2015-03-01' service_area: - - has_or_had_label: NL - has_or_had_description: Netherlands national coverage + - has_label: NL + has_description: Netherlands national coverage service_offering: - Long-term digital preservation storage (100TB+ capacity) - Metadata aggregation and normalization services @@ -224,14 +224,14 @@ classes: - Preservation format migration services membership_criteria: Dutch museums, archives, and libraries with digital collections. Annual membership fee based on storage usage. - has_or_had_member: - - has_or_had_identifier: https://nde.nl/ontology/hc/nl-nh-ams-m-am + has_member: + - identified_by: https://nde.nl/ontology/hc/nl-nh-ams-m-am preferred_label: Amsterdam Museum - - has_or_had_identifier: https://nde.nl/ontology/hc/nl-ut-utr-l-ub + - identified_by: https://nde.nl/ontology/hc/nl-ut-utr-l-ub preferred_label: Utrecht University Library - has_or_had_url: https://digitalheritage.nl + has_url: https://digitalheritage.nl slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' Consortium: @@ -279,10 +279,10 @@ classes: examples: - value: Academic libraries with interlibrary loan capabilities and commitment to reciprocal lending. No membership fee. - has_or_had_authority: + has_authority: examples: - value: - has_or_had_description: Consortium coordinates shared cataloging standards + has_description: Consortium coordinates shared cataloging standards and provides technical infrastructure, but members retain full autonomy. exact_mappings: - schema:Consortium @@ -307,14 +307,14 @@ classes: membership_criteria: Dutch university libraries accredited by VSNU (Association of Universities in the Netherlands). Members must contribute cataloging records and participate in interlibrary loan network. - has_or_had_member: - - has_or_had_identifier: https://nde.nl/ontology/hc/nl-zh-lei-l-ub + has_member: + - identified_by: https://nde.nl/ontology/hc/nl-zh-lei-l-ub preferred_label: Leiden University Library - - has_or_had_identifier: https://nde.nl/ontology/hc/nl-nh-ams-l-uba + - identified_by: https://nde.nl/ontology/hc/nl-nh-ams-l-uba preferred_label: Amsterdam University Library - has_or_had_url: https://universiteitsbibliotheken.nl + has_url: https://universiteitsbibliotheken.nl slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' broad_mappings: @@ -357,11 +357,11 @@ classes: ifabsent: string(COOPERATIVE) organization_legal_form: required: true - has_or_had_authority: + has_authority: required: true examples: - value: - has_or_had_description: OCLC is governed by a Global Council of library + has_description: OCLC is governed by a Global Council of library representatives elected by member libraries. Each member has voting rights proportional to their usage. Annual Members Council meeting. membership_criteria: @@ -370,7 +370,7 @@ classes: - value: OCLC membership is open to libraries and cultural heritage organizations. Members pay annual fees based on usage. Members receive governance rights and access to services. - has_or_had_policy: + has_policy: recommended: true broad_mappings: - org:FormalOrganization @@ -400,22 +400,22 @@ classes: worldwide. Membership includes governance rights (voting in Global Council), access to member pricing for services, and participation in cooperative programs. - has_or_had_authority: - has_or_had_description: Governed by Global Council of elected library representatives. + has_authority: + has_description: Governed by Global Council of elected library representatives. Board of Trustees provides strategic oversight. Regional councils for Americas, EMEA, and Asia Pacific. Annual Members Council meeting. - has_or_had_policy: + has_policy: policy_name: OCLC Data Usage Policy applies_to: - service_name: VIAF license: odc-by-1.0 - service_name: WorldCat Identities license: odc-by-1.0 - has_or_had_identifier: + identified_by: - https://viaf.org/viaf/125315828 - has_or_had_url: https://www.oclc.org/ + has_url: https://www.oclc.org/ slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' SocialMovement: @@ -469,14 +469,14 @@ classes: - value: Open participation - anyone can edit Wikipedia, contribute to Wikidata, or upload to Wikimedia Commons. No membership fee or application process. Contribution governed by community policies. - has_or_had_authority: + has_authority: examples: - value: - has_or_had_description: Wikimedia projects are governed by community consensus. + has_description: Wikimedia projects are governed by community consensus. The Wikimedia Foundation provides infrastructure and legal support but does not control content. Movement governance through affiliates, chapters, and community-elected bodies. - has_or_had_policy: + has_policy: required: true broad_mappings: - schema:Organization @@ -506,13 +506,13 @@ classes: Contribution governed by community policies (neutral point of view, verifiability, no original research). The movement includes formal affiliates (chapters, user groups, thematic orgs). - has_or_had_authority: - has_or_had_description: Wikimedia projects are governed by community consensus + has_authority: + has_description: Wikimedia projects are governed by community consensus through volunteer administrators, arbitration committees, and policy pages. The Wikimedia Foundation Board of Trustees provides strategic oversight. Movement governance through affiliates, chapters, and community-elected bodies (Movement Charter in development). - has_or_had_policy: + has_policy: policy_name: Wikimedia Foundation Open Content Policy applies_to: - service_name: Wikidata @@ -520,11 +520,11 @@ classes: - service_name: Wikipedia license: cc-by-sa-4.0 - service_name: Wikimedia Commons - has_or_had_identifier: + identified_by: - https://viaf.org/viaf/305375908 - has_or_had_url: https://www.wikimedia.org/ + has_url: https://www.wikimedia.org/ slots: - - has_or_had_score + - has_score annotations: custodian_types: '[''*'']' FundingOrganisation: @@ -575,13 +575,13 @@ classes: \ `schema:Grant` / `schema:MonetaryGrant` - individual awards\n- Wikidata: Q5509032\ \ (funding body)\n- FOAF: `foaf:fundedBy` (legacy, use schema:funder instead)\n" slots: - - has_or_had_focus + - has_focus - provides_or_provided - receives_or_received - issued_call - - has_or_had_time_interval - - has_or_had_score - - has_or_had_budget + - has_time_interval + - has_score + - has_budget slot_usage: organization_type: range: EncompassingBodyTypeEnum @@ -593,33 +593,33 @@ classes: inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: https://nde.nl/ontology/hc/call/nwo/nwa-heritage-2025 - has_or_had_focus: + has_focus: range: FundingFocus multivalued: true inlined: true examples: - value: - has_or_had_label: Visual arts and cultural heritage + has_label: Visual arts and cultural heritage - value: - has_or_had_label: Digital infrastructure + has_label: Digital infrastructure provides_or_provided: range: FundingScheme multivalued: true inlined: true examples: - value: - has_or_had_label: Project Grants for Museums + has_label: Project Grants for Museums - value: - has_or_had_label: Starting Grant + has_label: Starting Grant receives_or_received: range: FundingSource inlined: true examples: - value: - has_or_had_label: Dutch Ministry of OCW annual budget + has_label: Dutch Ministry of OCW annual budget - value: - has_or_had_label: National Lottery proceeds - has_or_had_time_interval: + has_label: National Lottery proceeds + has_time_interval: range: TimeSpan examples: - value: @@ -633,11 +633,11 @@ classes: - value: Networking events for grantees - value: Outcome evaluation support - value: - has_or_had_label: EU - has_or_had_description: EU member states (Creative Europe) + has_label: EU + has_description: EU member states (Creative Europe) - value: - has_or_had_label: GLOBAL - has_or_had_description: Worldwide eligibility + has_label: GLOBAL + has_description: Worldwide eligibility exact_mappings: - schema:FundingAgency close_mappings: @@ -655,29 +655,29 @@ classes: organization_type: FUNDING_BODY organization_legal_form: Public fund (publiekrechtelijk fonds) begin_of_the_begin: '1994-01-01' - has_or_had_focus: + has_focus: - Visual arts - Cultural heritage - Museum acquisitions - Conservation and restoration - International cultural exchange - Artist residencies - has_or_had_scheme: + has_scheme: - Project Grants for Museums - Conservation Subsidy - International Heritage Programme - Acquisition Grants - has_or_had_budget: - - has_or_had_label: Mondriaan Fund Annual Budget - has_or_had_budget: 30000000.0 - has_or_had_currency: + has_budget: + - has_label: Mondriaan Fund Annual Budget + has_budget: 30000000.0 + has_currency: currency_code: EUR - has_or_had_label: Euro + has_label: Euro currency_symbol: "\u20AC" - has_or_had_source: Dutch Ministry of OCW annual appropriation + has_source: Dutch Ministry of OCW annual appropriation service_area: - - has_or_had_label: NL - has_or_had_description: Netherlands national coverage + - has_label: NL + has_description: Netherlands national coverage service_offering: - Application guidance - Networking events for grantees @@ -685,48 +685,48 @@ classes: membership_criteria: 'Eligibility depends on specific funding scheme. Generally: Dutch museums, archives, heritage organizations, and visual artists. International projects may have broader eligibility.' - has_or_had_identifier: null - has_or_had_url: https://www.mondriaanfonds.nl/ + identified_by: null + has_url: https://www.mondriaanfonds.nl/ - value: id: https://nde.nl/ontology/hc/encompassing-body/funding/erc organization_name: European Research Council organization_type: FUNDING_BODY organization_legal_form: EU executive agency begin_of_the_begin: '2007-02-27' - has_or_had_focus: - - has_or_had_label: Frontier Research - - has_or_had_label: All domains (including SH - Social Sciences and Humanities) - - has_or_had_label: Principal investigator-driven research - - has_or_had_label: High-risk/high-gain research + has_focus: + - has_label: Frontier Research + - has_label: All domains (including SH - Social Sciences and Humanities) + - has_label: Principal investigator-driven research + - has_label: High-risk/high-gain research provides_or_provided: - - has_or_had_label: Starting Grant - - has_or_had_label: Consolidator Grant - - has_or_had_label: Advanced Grant - - has_or_had_label: Synergy Grant - - has_or_had_label: Proof of Concept - has_or_had_budget: - - has_or_had_label: ERC Horizon Europe Share - has_or_had_budget: 2500000000.0 - has_or_had_currency: + - has_label: Starting Grant + - has_label: Consolidator Grant + - has_label: Advanced Grant + - has_label: Synergy Grant + - has_label: Proof of Concept + has_budget: + - has_label: ERC Horizon Europe Share + has_budget: 2500000000.0 + has_currency: currency_code: EUR - has_or_had_label: Euro + has_label: Euro currency_symbol: "\u20AC" begin_of_the_begin: '2021-01-01' end_of_the_end: '2027-12-31' receives_or_received: - has_or_had_label: Horizon Europe Framework Programme (EU budget) + has_label: Horizon Europe Framework Programme (EU budget) service_area: - - has_or_had_label: EU - has_or_had_description: European Union - - has_or_had_label: EEA - has_or_had_description: European Economic Area - - has_or_had_label: Associated Countries - has_or_had_description: Associated to Horizon Europe + - has_label: EU + has_description: European Union + - has_label: EEA + has_description: European Economic Area + - has_label: Associated Countries + has_description: Associated to Horizon Europe membership_criteria: Open to researchers of any nationality. Host institution must be in EU Member State or Horizon Europe Associated Country. Selection based on scientific excellence only. - has_or_had_identifier: null - has_or_had_url: https://erc.europa.eu/ + identified_by: null + has_url: https://erc.europa.eu/ annotations: custodian_types: '[''*'']' broad_mappings: diff --git a/schemas/20251121/linkml/modules/classes/Endpoint.yaml b/schemas/20251121/linkml/modules/classes/Endpoint.yaml index dbcf8c7ec1..fcb439a119 100644 --- a/schemas/20251121/linkml/modules/classes/Endpoint.yaml +++ b/schemas/20251121/linkml/modules/classes/Endpoint.yaml @@ -7,16 +7,16 @@ prefixes: dcat: http://www.w3.org/ns/dcat# imports: - linkml:types - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_url default_prefix: hc classes: Endpoint: class_uri: dcat:Distribution description: Distribution or access point. slots: - - has_or_had_url + - has_url slot_usage: - has_or_had_url: + has_url: range: uri annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/EngagementMetric.yaml b/schemas/20251121/linkml/modules/classes/EngagementMetric.yaml index e5615f88b5..49d87f3ae1 100644 --- a/schemas/20251121/linkml/modules/classes/EngagementMetric.yaml +++ b/schemas/20251121/linkml/modules/classes/EngagementMetric.yaml @@ -11,9 +11,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_type - - ../slots/has_or_had_unit - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_unit + - ../slots/20260202_matang/has_value classes: EngagementMetric: class_uri: schema:InteractionCounter @@ -24,16 +24,16 @@ classes: - **Primary**: `schema:InteractionCounter` slots: - - has_or_had_type - - has_or_had_value - - has_or_had_unit + - has_type + - has_value + - has_unit slot_usage: - has_or_had_type: + has_type: # range: string - has_or_had_value: + has_value: range: decimal - has_or_had_unit: + has_unit: # range: string annotations: diff --git a/schemas/20251121/linkml/modules/classes/EnrichmentMetadata.yaml b/schemas/20251121/linkml/modules/classes/EnrichmentMetadata.yaml index 4c76262f2b..bbf47c3350 100644 --- a/schemas/20251121/linkml/modules/classes/EnrichmentMetadata.yaml +++ b/schemas/20251121/linkml/modules/classes/EnrichmentMetadata.yaml @@ -12,8 +12,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_method + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_method - ../slots/temporal_extent classes: EnrichmentMetadata: @@ -26,8 +26,8 @@ classes: - **Close**: `schema:Action` slots: - - has_or_had_description - - has_or_had_method + - has_description + - has_method - temporal_extent annotations: diff --git a/schemas/20251121/linkml/modules/classes/EnrichmentMethod.yaml b/schemas/20251121/linkml/modules/classes/EnrichmentMethod.yaml index f8d5e9baea..6503fb32ca 100644 --- a/schemas/20251121/linkml/modules/classes/EnrichmentMethod.yaml +++ b/schemas/20251121/linkml/modules/classes/EnrichmentMethod.yaml @@ -16,8 +16,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: EnrichmentMethod: class_uri: prov:Plan @@ -25,8 +25,8 @@ classes: **Ontology Alignment**: - **Primary**: `prov:Plan` (subclass of prov:Entity) - **Close**: `schema:Action` (instrument)' slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: custodian_types: '["*"]' specificity_score: 0.3 diff --git a/schemas/20251121/linkml/modules/classes/Entity.yaml b/schemas/20251121/linkml/modules/classes/Entity.yaml index b06a4958d7..ba7be8398f 100644 --- a/schemas/20251121/linkml/modules/classes/Entity.yaml +++ b/schemas/20251121/linkml/modules/classes/Entity.yaml @@ -42,10 +42,10 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_label: Dataset A - has_or_had_uri: https://nde.nl/dataset/a - has_or_had_type: DATASET + has_label: Dataset A + has_uri: https://nde.nl/dataset/a + has_type: DATASET description: Generic entity reference slots: - - has_or_had_label - - has_or_had_type + - has_label + - has_type diff --git a/schemas/20251121/linkml/modules/classes/EntityReconstruction.yaml b/schemas/20251121/linkml/modules/classes/EntityReconstruction.yaml index 606e215807..d9c0d1a9a1 100644 --- a/schemas/20251121/linkml/modules/classes/EntityReconstruction.yaml +++ b/schemas/20251121/linkml/modules/classes/EntityReconstruction.yaml @@ -12,7 +12,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score classes: EntityReconstruction: class_uri: prov:Entity @@ -53,7 +53,7 @@ classes: abstract: true slots: - - has_or_had_score + - has_score annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/classes/EntityType.yaml b/schemas/20251121/linkml/modules/classes/EntityType.yaml index 9a7d1d0a3e..5a2cccf3ff 100644 --- a/schemas/20251121/linkml/modules/classes/EntityType.yaml +++ b/schemas/20251121/linkml/modules/classes/EntityType.yaml @@ -12,8 +12,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: EntityType: class_uri: skos:Concept @@ -25,8 +25,8 @@ classes: - **Close**: `rdfs:Class` slots: - - has_or_had_label - - has_or_had_identifier + - has_label + - identified_by annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/classes/EnvironmentalCondition.yaml b/schemas/20251121/linkml/modules/classes/EnvironmentalCondition.yaml index 3dae2f5a67..f7218d8f95 100644 --- a/schemas/20251121/linkml/modules/classes/EnvironmentalCondition.yaml +++ b/schemas/20251121/linkml/modules/classes/EnvironmentalCondition.yaml @@ -9,17 +9,17 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_type - - ../slots/has_or_had_unit - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_unit + - ../slots/20260202_matang/has_value classes: EnvironmentalCondition: class_uri: sosa:Observation description: Environmental condition observation. slots: - - has_or_had_value - - has_or_had_unit - - has_or_had_type + - has_value + - has_unit + - has_type annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/EnvironmentalControl.yaml b/schemas/20251121/linkml/modules/classes/EnvironmentalControl.yaml index 898f803860..7214102a32 100644 --- a/schemas/20251121/linkml/modules/classes/EnvironmentalControl.yaml +++ b/schemas/20251121/linkml/modules/classes/EnvironmentalControl.yaml @@ -17,8 +17,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: EnvironmentalControl: class_uri: sosa:Actuation @@ -26,8 +26,8 @@ classes: **Ontology Alignment**: - **Primary**: `sosa:Actuation` (Control action/device) - **Close**: `schema:Product` (Equipment)' slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: custodian_types: '["*"]' specificity_score: 0.3 diff --git a/schemas/20251121/linkml/modules/classes/EnvironmentalRequirement.yaml b/schemas/20251121/linkml/modules/classes/EnvironmentalRequirement.yaml index 922d3f94d5..5e278dbdb9 100644 --- a/schemas/20251121/linkml/modules/classes/EnvironmentalRequirement.yaml +++ b/schemas/20251121/linkml/modules/classes/EnvironmentalRequirement.yaml @@ -12,8 +12,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: EnvironmentalRequirement: class_uri: schema:PropertyValue @@ -25,8 +25,8 @@ classes: - **Close**: `dcterms:requires` slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/classes/EnvironmentalZone.yaml b/schemas/20251121/linkml/modules/classes/EnvironmentalZone.yaml index 75db09cdb3..33e41b7177 100644 --- a/schemas/20251121/linkml/modules/classes/EnvironmentalZone.yaml +++ b/schemas/20251121/linkml/modules/classes/EnvironmentalZone.yaml @@ -15,16 +15,16 @@ imports: - linkml:types - ../enums/MeasureUnitEnum - ../enums/SetpointTypeEnum - - ../slots/allows_or_allowed - - ../slots/contains_or_contained_contains_unit - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_requirement - - ../slots/has_or_had_score - - ../slots/has_or_had_setpoint - - ../slots/has_or_had_tolerance - - ../slots/has_or_had_type + - ../slots/allow + - ../slots/contain_contains_unit + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_requirement + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_setpoint + - ../slots/20260202_matang/has_tolerance + - ../slots/20260202_matang/has_type - ../slots/max_annual_light_exposure - ../slots/max_light_lux - ../slots/monitoring_platform @@ -55,46 +55,46 @@ classes: - hc:EnvironmentalRequirement - sosa:FeatureOfInterest slots: - - contains_or_contained_contains_unit - - has_or_had_tolerance - - allows_or_allowed + - contain_contains_unit + - has_tolerance + - allow - max_annual_light_exposure - max_light_lux - monitoring_platform - monitoring_platform_url - observation - part_of_facility - - has_or_had_setpoint - - has_or_had_score + - has_setpoint + - has_score - temporal_extent - - has_or_had_description - - has_or_had_identifier - - has_or_had_label - - has_or_had_type + - has_description + - identified_by + - has_label + - has_type slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/zone/na-depot-a-standard - has_or_had_label: + has_label: # range: string required: true examples: - value: Standard Archive Storage Zone A - value: Cold Storage Vault - Film Negatives - value: Photographic Materials Room - has_or_had_type: + has_type: # range: string # uriorcurie required: true examples: - value: ARCHIVE_STANDARD - value: COLD_STORAGE - value: PHOTOGRAPHIC - has_or_had_description: + has_description: # range: string - has_or_had_setpoint: + has_setpoint: range: Setpoint multivalued: true inlined: true @@ -113,7 +113,7 @@ classes: setpoint_max: 55.0 setpoint_tolerance: 5.0 setpoint_unit: PERCENT - allows_or_allowed: + allow: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type @@ -121,14 +121,14 @@ classes: examples: - value: - deviation_value: 2.0 - has_or_had_measurement_unit: - has_or_had_type: DEGREE_CELSIUS - has_or_had_symbol: "\xB0C" + has_measurement_unit: + has_type: DEGREE_CELSIUS + has_symbol: "\xB0C" iso_standard_reference: ISO 11799:2015 - value: - deviation_value: 3.0 iso_standard_reference: ISO 18911:2010 - has_or_had_tolerance: + has_tolerance: range: float examples: - value: 5.0 @@ -155,7 +155,7 @@ classes: part_of_facility: range: Storage required: true - contains_or_contained_contains_unit: + contain_contains_unit: range: StorageUnit multivalued: true inlined_as_list: true @@ -174,13 +174,13 @@ classes: - http://www.w3.org/ns/sosa/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/zone/na-depot-a-standard - has_or_had_label: Standard Archive Storage Zone A - has_or_had_type: ARCHIVE_STANDARD - has_or_had_description: 'Climate-controlled archive storage meeting ISO 11799 requirements. + identified_by: https://nde.nl/ontology/hc/zone/na-depot-a-standard + has_label: Standard Archive Storage Zone A + has_type: ARCHIVE_STANDARD + has_description: 'Climate-controlled archive storage meeting ISO 11799 requirements. Paper-based collections from 1800-1950. ' - has_or_had_setpoint: + has_setpoint: - setpoint_type: TEMPERATURE setpoint_value: 18.0 setpoint_min: 16.0 @@ -199,11 +199,11 @@ classes: monitoring_platform: Hanwell RadioLog monitoring system part_of_facility: https://nde.nl/ontology/hc/storage/na-depot-a - value: - has_or_had_identifier: https://nde.nl/ontology/hc/zone/ef-cold-vault - has_or_had_label: Cold Storage Vault - Film Archive - has_or_had_type: COLD_STORAGE - has_or_had_description: "Refrigerated vault for nitrate and acetate film negatives.\nMaintained at -5\xB0C, 30% RH per ISO 18911.\n" - has_or_had_setpoint: + identified_by: https://nde.nl/ontology/hc/zone/ef-cold-vault + has_label: Cold Storage Vault - Film Archive + has_type: COLD_STORAGE + has_description: "Refrigerated vault for nitrate and acetate film negatives.\nMaintained at -5\xB0C, 30% RH per ISO 18911.\n" + has_setpoint: - setpoint_type: TEMPERATURE setpoint_value: -5.0 setpoint_min: -8.0 diff --git a/schemas/20251121/linkml/modules/classes/EnvironmentalZoneType.yaml b/schemas/20251121/linkml/modules/classes/EnvironmentalZoneType.yaml index 056ce82ff8..cd0830c408 100644 --- a/schemas/20251121/linkml/modules/classes/EnvironmentalZoneType.yaml +++ b/schemas/20251121/linkml/modules/classes/EnvironmentalZoneType.yaml @@ -18,22 +18,22 @@ prefixes: # Rule compliance: 0b (Type/Types naming), 37 (specificity scores), 38 (slot centralization) # # MIGRATION: This file replaces environmental_zone_type_* slots with shared slots: -# - environmental_zone_type_id → has_or_had_identifier -# - environmental_zone_type_code → has_or_had_code -# - environmental_zone_type_label → has_or_had_label -# - environmental_zone_type_description → has_or_had_description +# - environmental_zone_type_id → identified_by +# - environmental_zone_type_code → has_code +# - environmental_zone_type_label → has_label +# - environmental_zone_type_description → has_description default_prefix: hc imports: - linkml:types - ../enums/MeasureUnitEnum - ../enums/SetpointTypeEnum - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_setpoint - - ../slots/is_or_was_equivalent_to + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_setpoint + - ../slots/20260202_matang/equivalent_to - ../slots/iso_standard - ../slots/max_annual_light_exposure - ../slots/max_light_lux @@ -87,10 +87,10 @@ classes: Each enum value becomes a subclass with richer semantic modeling. **SLOT MIGRATION** (2026-01-13): This class now uses shared slots instead of domain-specific environmental_zone_type_* slots: - - `has_or_had_identifier` replaces `environmental_zone_type_id` - - `has_or_had_code` replaces `environmental_zone_type_code` - - `has_or_had_label` replaces `environmental_zone_type_label` - - `has_or_had_description` replaces `environmental_zone_type_description` + - `identified_by` replaces `environmental_zone_type_id` + - `has_code` replaces `environmental_zone_type_code` + - `has_label` replaces `environmental_zone_type_label` + - `has_description` replaces `environmental_zone_type_description` **ONTOLOGY ALIGNMENT**: - **CIDOC-CRM E3_Condition_State**: Environmental conditions as states - **PREMIS StorageLocation**: Storage environment context @@ -100,13 +100,13 @@ classes: ``` EnvironmentalZone (facility zone instance) │ - └── has_or_had_type → EnvironmentalZoneType (THIS CLASS) + └── has_type → EnvironmentalZoneType (THIS CLASS) ├── temperature_target (recommended °C) ├── humidity_target (recommended % RH) ├── max_light_lux (maximum illumination) ├── target_material[] (suitable materials) ├── iso_standard[] (applicable standards) - └── has_or_had_uri (ontology preset) + └── has_uri (ontology preset) ``` **SUBCLASSES**: See EnvironmentalZoneTypes.yaml for 16 concrete zone type subclasses: @@ -136,12 +136,12 @@ classes: - aat:300054225 slots: # Shared slots (from centralized slot files) - - has_or_had_identifier - - has_or_had_code - - has_or_had_label - - has_or_had_description + - identified_by + - has_code + - has_label + - has_description # Environmental setpoints (MIGRATED 2026-01-15 per Rule 53) - - has_or_had_setpoint + - has_setpoint # Domain-specific slots - max_light_lux - max_annual_light_exposure @@ -151,24 +151,24 @@ classes: - requires_esd_protection - requires_dark_storage - requires_dust_free - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - # REMOVED 2026-01-15: wikidata_id - migrated to is_or_was_equivalent_to (Rule 53) - - is_or_was_equivalent_to + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + # REMOVED 2026-01-15: wikidata_id - migrated to equivalent_to (Rule 53) + - equivalent_to slot_usage: - has_or_had_identifier: + identified_by: required: true - has_or_had_code: + has_code: required: true - has_or_had_label: + has_label: required: true - has_or_had_description: + has_description: required: true pattern: "^https://nde\\.nl/ontology/hc/environmental-zone-type/[a-z0-9-]+$" examples: - value: https://nde.nl/ontology/hc/environmental-zone-type/archive-standard - value: https://nde.nl/ontology/hc/environmental-zone-type/cold-storage - # REMOVED 2026-01-15: temperature_target, humidity_target - migrated to has_or_had_setpoint - has_or_had_setpoint: + # REMOVED 2026-01-15: temperature_target, humidity_target - migrated to has_setpoint + has_setpoint: range: Setpoint multivalued: true inlined: true @@ -205,29 +205,29 @@ classes: inlined_as_list: true examples: - value: - - has_or_had_identifier: https://nde.nl/ontology/hc/material/paper - has_or_had_label: + - identified_by: https://nde.nl/ontology/hc/material/paper + has_label: - paper@en - papier@nl - has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/parchment - has_or_had_label: + has_type: https://nde.nl/ontology/hc/material-type/organic + - identified_by: https://nde.nl/ontology/hc/material/parchment + has_label: - parchment@en - perkament@nl - has_or_had_type: https://nde.nl/ontology/hc/material-type/organic + has_type: https://nde.nl/ontology/hc/material-type/organic - value: - - has_or_had_identifier: https://nde.nl/ontology/hc/material/nitrate-film - has_or_had_label: + - identified_by: https://nde.nl/ontology/hc/material/nitrate-film + has_label: - nitrate film@en - nitraatfilm@nl - has_or_had_type: https://nde.nl/ontology/hc/material-type/synthetic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/acetate-film - has_or_had_label: + has_type: https://nde.nl/ontology/hc/material-type/synthetic + - identified_by: https://nde.nl/ontology/hc/material/acetate-film + has_label: - acetate film@en - acetaatfilm@nl - has_or_had_type: https://nde.nl/ontology/hc/material-type/synthetic + has_type: https://nde.nl/ontology/hc/material-type/synthetic # ADDED 2026-01-15: Replaces wikidata_id slot per Rule 53 - is_or_was_equivalent_to: + equivalent_to: range: WikiDataIdentifier multivalued: true inlined: true @@ -242,29 +242,29 @@ classes: skos:prefLabel: "Environmental Zone Type" specificity_score: "0.70" specificity_rationale: "Fairly specific - environmental zone types primarily relevant for preservation/storage." - has_or_had_score: # was: template_specificity - migrated per Rule 53 (2026-01-17) + has_score: # was: template_specificity - migrated per Rule 53 (2026-01-17) # NOTE: slot_usage may need manual review for range/description updates '{"collection_discovery": 0.80, "organizational_change": 0.35, "general_heritage": 0.50}' slot_migration: | 2026-01-13: Migrated from domain-specific to shared slots - - environmental_zone_type_id → has_or_had_identifier - - environmental_zone_type_code → has_or_had_code - - environmental_zone_type_label → has_or_had_label - - environmental_zone_type_description → has_or_had_description - 2026-01-15: Migrated temperature/humidity slots to has_or_had_setpoint (Rule 53) - - temperature_min, temperature_max, temperature_target → has_or_had_setpoint + Setpoint - - humidity_min, humidity_max, humidity_target → has_or_had_setpoint + Setpoint - 2026-01-15: Migrated wikidata_id to is_or_was_equivalent_to (Rule 53) - - wikidata_id → is_or_was_equivalent_to + WikiDataIdentifier + - environmental_zone_type_id → identified_by + - environmental_zone_type_code → has_code + - environmental_zone_type_label → has_label + - environmental_zone_type_description → has_description + 2026-01-15: Migrated temperature/humidity slots to has_setpoint (Rule 53) + - temperature_min, temperature_max, temperature_target → has_setpoint + Setpoint + - humidity_min, humidity_max, humidity_target → has_setpoint + Setpoint + 2026-01-15: Migrated wikidata_id to equivalent_to (Rule 53) + - wikidata_id → equivalent_to + WikiDataIdentifier 2026-01-16: Migrated target_material to stores_or_stored + Material (Rule 53/56) - target_material → stores_or_stored + Material comments: - "Abstract base class - use specific subclasses (ArchiveStandardStorageEnvironment, etc.)" - "Represents ZONE TYPES, not zone instances" - - "EnvironmentalZone.has_or_had_type references these type classes" + - "EnvironmentalZone.has_type references these type classes" - "Replaces EnvironmentalZoneTypeEnum for richer semantic modeling" - "Environmental parameters align with conservation standards (EN 16893, ISO 11799, ISO 18911)" - "MIGRATED 2026-01-13: Now uses shared slots (Rule 38)" - - "MIGRATED 2026-01-15: Temperature/humidity slots → has_or_had_setpoint + Setpoint (Rule 53)" + - "MIGRATED 2026-01-15: Temperature/humidity slots → has_setpoint + Setpoint (Rule 53)" - "MIGRATED 2026-01-16: target_material → stores_or_stored + Material (Rule 53/56)" see_also: - https://www.iso.org/standard/63810.html @@ -277,13 +277,13 @@ classes: - http://www.cidoc-crm.org/cidoc-crm/E3_Condition_State examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/environmental-zone-type/archive-standard - has_or_had_code: ARCHIVE_STANDARD - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/environmental-zone-type/archive-standard + has_code: ARCHIVE_STANDARD + has_label: - Archive Standard Storage Environment@en - Standaard archiefbewaaromgeving@nl - has_or_had_description: "Standard climate-controlled environment for paper-based archival materials" - has_or_had_setpoint: # MIGRATED 2026-01-15: was temperature_min/max/target, humidity_min/max/target + has_description: "Standard climate-controlled environment for paper-based archival materials" + has_setpoint: # MIGRATED 2026-01-15: was temperature_min/max/target, humidity_min/max/target - setpoint_type: TEMPERATURE setpoint_value: 18.0 setpoint_min: 16.0 @@ -298,30 +298,30 @@ classes: max_light_lux: 50.0 iso_standard: - ISO 11799 - has_or_had_uri: hc:StandardArchiveEnvironment + has_uri: hc:StandardArchiveEnvironment # was: target_material - migrated per Rule 53/56 (2026-01-16) stores_or_stored: - - has_or_had_identifier: https://nde.nl/ontology/hc/material/paper - has_or_had_label: + - identified_by: https://nde.nl/ontology/hc/material/paper + has_label: - paper@en - papier@nl - has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/parchment - has_or_had_label: + has_type: https://nde.nl/ontology/hc/material-type/organic + - identified_by: https://nde.nl/ontology/hc/material/parchment + has_label: - parchment@en - perkament@nl - has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/manuscript - has_or_had_label: + has_type: https://nde.nl/ontology/hc/material-type/organic + - identified_by: https://nde.nl/ontology/hc/material/manuscript + has_label: - manuscript@en - manuscript@nl - has_or_had_type: https://nde.nl/ontology/hc/material-type/composite - - has_or_had_identifier: https://nde.nl/ontology/hc/material/photograph - has_or_had_label: + has_type: https://nde.nl/ontology/hc/material-type/composite + - identified_by: https://nde.nl/ontology/hc/material/photograph + has_label: - photograph@en - foto@nl - has_or_had_type: https://nde.nl/ontology/hc/material-type/composite + has_type: https://nde.nl/ontology/hc/material-type/composite requires_uv_filter: true requires_dark_storage: false - is_or_was_equivalent_to: # ADDED 2026-01-15: Replaces wikidata_id per Rule 53 + equivalent_to: # ADDED 2026-01-15: Replaces wikidata_id per Rule 53 - qid: "Q3695082" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/EnvironmentalZoneTypes.yaml b/schemas/20251121/linkml/modules/classes/EnvironmentalZoneTypes.yaml index a47b14de29..3467065831 100644 --- a/schemas/20251121/linkml/modules/classes/EnvironmentalZoneTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/EnvironmentalZoneTypes.yaml @@ -15,9 +15,9 @@ default_prefix: hc imports: - ./EnvironmentalZoneType - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_score - - ../slots/has_or_had_setpoint + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_setpoint - ../slots/max_annual_light_exposure - ../slots/max_light_lux - ../slots/requires_dark_storage @@ -49,9 +49,9 @@ classes: - https://www.iso.org/standard/63810.html - https://www.en-standard.eu/bs-en-16893-2018-conservation-of-cultural-heritage/ slot_usage: - has_or_had_code: + has_code: equals_string: ARCHIVE_STANDARD - has_or_had_setpoint: + has_setpoint: range: Setpoint multivalued: true inlined: true @@ -69,8 +69,8 @@ classes: max_light_lux: equals_number: 50.0 slots: - - has_or_had_setpoint - - has_or_had_score + - has_setpoint + - has_score comments: - Primary standard for paper-based archival materials - ISO 11799:2015 compliant (Annex C recommended conditions) @@ -112,9 +112,9 @@ classes: see_also: - https://www.iso.org/standard/46602.html slot_usage: - has_or_had_code: + has_code: equals_string: COLD_STORAGE - has_or_had_setpoint: + has_setpoint: range: Setpoint multivalued: true inlined: true @@ -132,8 +132,8 @@ classes: requires_dark_storage: equals_expression: 'true' slots: - - has_or_had_setpoint - - has_or_had_score + - has_setpoint + - has_score comments: - Essential for film preservation - prevents vinegar syndrome - ISO 18911:2010 compliant @@ -170,9 +170,9 @@ classes: see_also: - https://www.iso.org/standard/46602.html slot_usage: - has_or_had_code: + has_code: equals_string: FROZEN_STORAGE - has_or_had_setpoint: + has_setpoint: range: Setpoint multivalued: true inlined: true @@ -192,8 +192,8 @@ classes: requires_dark_storage: equals_expression: 'true' slots: - - has_or_had_setpoint - - has_or_had_score + - has_setpoint + - has_score comments: - Maximum preservation for highly sensitive materials - ISO 18911:2010 compliant - highest tier storage @@ -238,9 +238,9 @@ classes: - https://www.iso.org/standard/46186.html - https://www.iso.org/standard/55518.html slot_usage: - has_or_had_code: + has_code: equals_string: PHOTOGRAPHIC - has_or_had_setpoint: + has_setpoint: range: Setpoint multivalued: true inlined: true @@ -260,8 +260,8 @@ classes: requires_uv_filter: equals_expression: 'true' slots: - - has_or_had_setpoint - - has_or_had_score + - has_setpoint + - has_score comments: - Specialized environment for photographic collections - ISO 18920:2011 and ISO 18934:2011 compliant @@ -302,9 +302,9 @@ classes: see_also: - https://www.en-standard.eu/bs-en-16893-2018-conservation-of-cultural-heritage/ slot_usage: - has_or_had_code: + has_code: equals_string: TEXTILE - has_or_had_setpoint: + has_setpoint: range: Setpoint multivalued: true inlined: true @@ -326,8 +326,8 @@ classes: requires_uv_filter: equals_expression: 'true' slots: - - has_or_had_setpoint - - has_or_had_score + - has_setpoint + - has_score comments: - Specialized for textile and costume collections - EN 16893:2018 compliant @@ -366,9 +366,9 @@ classes: see_also: - https://www.en-standard.eu/bs-en-16893-2018-conservation-of-cultural-heritage/ slot_usage: - has_or_had_code: + has_code: equals_string: ART_STORAGE - has_or_had_setpoint: + has_setpoint: range: Setpoint multivalued: true inlined: true @@ -384,8 +384,8 @@ classes: setpoint_min: 45.0 setpoint_max: 55.0 slots: - - has_or_had_setpoint - - has_or_had_score + - has_setpoint + - has_score comments: - Emphasis on environmental stability - EN 16893:2018 compliant @@ -418,9 +418,9 @@ classes: - wd:Q11426 - aat:300010900 slot_usage: - has_or_had_code: + has_code: equals_string: METAL_OBJECTS - has_or_had_setpoint: + has_setpoint: range: Setpoint multivalued: true inlined: true @@ -435,8 +435,8 @@ classes: setpoint_value: 30.0 setpoint_max: 35.0 slots: - - has_or_had_setpoint - - has_or_had_score + - has_setpoint + - has_score comments: - Low humidity critical for corrosion prevention - Iron/steel especially vulnerable above 40% RH @@ -464,9 +464,9 @@ classes: - wd:Q2843741 - aat:300025981 slot_usage: - has_or_had_code: + has_code: equals_string: NATURAL_HISTORY - has_or_had_setpoint: + has_setpoint: range: Setpoint multivalued: true inlined: true @@ -482,8 +482,8 @@ classes: setpoint_min: 40.0 setpoint_max: 50.0 slots: - - has_or_had_setpoint - - has_or_had_score + - has_setpoint + - has_score comments: - Conditions vary by specimen type - Integrated pest management essential @@ -518,9 +518,9 @@ classes: see_also: - https://www.iso.org/standard/63810.html slot_usage: - has_or_had_code: + has_code: equals_string: BOOK_STORAGE - has_or_had_setpoint: + has_setpoint: range: Setpoint multivalued: true inlined: true @@ -538,8 +538,8 @@ classes: max_light_lux: equals_number: 50.0 slots: - - has_or_had_setpoint - - has_or_had_score + - has_setpoint + - has_score comments: - Similar to archive standard - ISO 11799:2015 compliant (covers books under document storage) @@ -575,9 +575,9 @@ classes: see_also: - https://www.iso.org/standard/55518.html slot_usage: - has_or_had_code: + has_code: equals_string: AUDIOVISUAL - has_or_had_setpoint: + has_setpoint: range: Setpoint multivalued: true inlined: true @@ -595,8 +595,8 @@ classes: requires_dust_free: equals_expression: 'true' slots: - - has_or_had_setpoint - - has_or_had_score + - has_setpoint + - has_score comments: - Distinct from cold storage for film - ISO 18934:2011 compliant for multiple media archives @@ -627,9 +627,9 @@ classes: - wd:Q5276960 - wd:Q386128 slot_usage: - has_or_had_code: + has_code: equals_string: DIGITAL_MEDIA - has_or_had_setpoint: + has_setpoint: range: Setpoint multivalued: true inlined: true @@ -647,8 +647,8 @@ classes: requires_esd_protection: equals_expression: 'true' slots: - - has_or_had_setpoint - - has_or_had_score + - has_setpoint + - has_score comments: - ESD protection essential - Temperature stability more important than exact values @@ -680,9 +680,9 @@ classes: see_also: - https://www.iso.org/standard/63810.html slot_usage: - has_or_had_code: + has_code: equals_string: GENERAL - has_or_had_setpoint: + has_setpoint: range: Setpoint multivalued: true inlined: true @@ -698,8 +698,8 @@ classes: setpoint_min: 45.0 setpoint_max: 55.0 slots: - - has_or_had_setpoint - - has_or_had_score + - has_setpoint + - has_score comments: - Basic climate control for mixed collections - ISO 11799:2015 basic parameters @@ -737,10 +737,10 @@ classes: Use only when specialized storage unavailable. ' slot_usage: - has_or_had_code: + has_code: equals_string: AMBIENT slots: - - has_or_had_score + - has_score comments: - Minimal climate control - NOT suitable for sensitive materials @@ -771,10 +771,10 @@ classes: close_mappings: - wd:Q187805 slot_usage: - has_or_had_code: + has_code: equals_string: QUARANTINE slots: - - has_or_had_score + - has_score comments: - Physical isolation required - Conditions vary by treatment needs @@ -806,9 +806,9 @@ classes: see_also: - https://www.en-standard.eu/bs-en-16893-2018-conservation-of-cultural-heritage/ slot_usage: - has_or_had_code: + has_code: equals_string: CONSERVATION_LAB - has_or_had_setpoint: + has_setpoint: range: Setpoint multivalued: true inlined: true @@ -824,8 +824,8 @@ classes: setpoint_min: 45.0 setpoint_max: 55.0 slots: - - has_or_had_setpoint - - has_or_had_score + - has_setpoint + - has_score comments: - Workspace, not storage - EN 16893:2018 compliant for conservation workspaces @@ -859,10 +859,10 @@ classes: - Monitoring protocols ' slot_usage: - has_or_had_code: + has_code: equals_string: OTHER slots: - - has_or_had_score + - has_score comments: - Use when no standard category applies - Document specific parameters in zone_description diff --git a/schemas/20251121/linkml/modules/classes/Equipment.yaml b/schemas/20251121/linkml/modules/classes/Equipment.yaml index b7d1afdf68..f5be257376 100644 --- a/schemas/20251121/linkml/modules/classes/Equipment.yaml +++ b/schemas/20251121/linkml/modules/classes/Equipment.yaml @@ -12,9 +12,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type classes: Equipment: class_uri: sosa:Platform @@ -26,12 +26,12 @@ classes: - **Close**: `schema:Product` slots: - - has_or_had_label - - has_or_had_description - - has_or_had_type + - has_label + - has_description + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/classes/EquipmentType.yaml b/schemas/20251121/linkml/modules/classes/EquipmentType.yaml index e6a9a9bf4c..f122944a2c 100644 --- a/schemas/20251121/linkml/modules/classes/EquipmentType.yaml +++ b/schemas/20251121/linkml/modules/classes/EquipmentType.yaml @@ -12,8 +12,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: EquipmentType: class_uri: skos:Concept @@ -25,8 +25,8 @@ classes: - **Close**: `schema:definedTerm` slots: - - has_or_had_label - - has_or_had_identifier + - has_label + - identified_by annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/classes/Essay.yaml b/schemas/20251121/linkml/modules/classes/Essay.yaml index 3b1c7947e5..f581294f69 100644 --- a/schemas/20251121/linkml/modules/classes/Essay.yaml +++ b/schemas/20251121/linkml/modules/classes/Essay.yaml @@ -16,15 +16,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: Essay: class_uri: schema:Article description: Essay text. slots: - - has_or_had_description - - has_or_had_label + - has_description + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/EstablishmentEvent.yaml b/schemas/20251121/linkml/modules/classes/EstablishmentEvent.yaml index ea068f64d4..b770ca01cf 100644 --- a/schemas/20251121/linkml/modules/classes/EstablishmentEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/EstablishmentEvent.yaml @@ -16,7 +16,7 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description - ../slots/temporal_extent classes: EstablishmentEvent: @@ -26,7 +26,7 @@ classes: **Ontology Alignment**: - **Primary**: `org:ChangeEvent` (Organizational change) - **Close**: `schema:foundingDate` (as event)' slots: - temporal_extent - - has_or_had_description + - has_description slot_usage: temporal_extent: required: true diff --git a/schemas/20251121/linkml/modules/classes/EstimationMethod.yaml b/schemas/20251121/linkml/modules/classes/EstimationMethod.yaml index 54dfdd1dec..0721bf416d 100644 --- a/schemas/20251121/linkml/modules/classes/EstimationMethod.yaml +++ b/schemas/20251121/linkml/modules/classes/EstimationMethod.yaml @@ -13,26 +13,26 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score default_prefix: hc classes: EstimationMethod: class_uri: prov:Plan description: 'Describes the specific technique used to estimate a value (e.g., visual inspection, sampling, extrapolation). - Used in conjunction with `is_or_was_based_on` to provide provenance for estimated quantities.' + Used in conjunction with `based_on` to provide provenance for estimated quantities.' exact_mappings: - prov:Plan slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_score + - identified_by + - has_label + - has_description + - has_score slot_usage: - has_or_had_label: + has_label: # range: string annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/Event.yaml b/schemas/20251121/linkml/modules/classes/Event.yaml index 18d589cc51..5a3c19b9b7 100644 --- a/schemas/20251121/linkml/modules/classes/Event.yaml +++ b/schemas/20251121/linkml/modules/classes/Event.yaml @@ -13,14 +13,14 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_documentation - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_documentation + - ../slots/20260202_matang/has_hypernym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score - ../slots/involves_or_involved - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/generated_by - ../slots/takes_or_took_place_at - ../slots/temporal_extent classes: @@ -28,8 +28,8 @@ classes: class_uri: crm:E5_Event description: "An abstract hub class representing temporal phenomena - things that happen\nand involve actors, places, and temporal extents.\n\n**HUB ARCHITECTURE**:\n\nThe Event class follows the hub pattern established by Custodian:\n- Minimal hub with persistent identifier (event_id)\n- Links to temporal extent (TimeSpan) via temporal_extent\n- Links to actors (Custodian, Person) via involved_actors\n- Links to place via took_place_at\n- Categorized by hypernym_event_type (generic) and domain-specific type\n\n**INHERITANCE HIERARCHY**:\n\n```\nEvent (this class - abstract)\n\u251C\u2500\u2500 OrganizationalChangeEvent (existing - organizational changes)\n\u251C\u2500\u2500 IntangibleHeritageEvent (future - ICH-related events)\n\u251C\u2500\u2500 CollectionEvent (future - accession, deaccession, loan)\n\u2514\u2500\u2500 PersonEvent (future - birth, death, career milestones)\n```\n\n**CIDOC-CRM ALIGNMENT**:\n\nMaps to crm:E5_Event which is defined as:\n\"This class comprises distinct,\ \ delimited and coherent processes and states, \neither deliberately or spontaneously caused by E39 Actors, that result in \nchanges in E18 Physical Things.\"\n\nKey relationships:\n- crm:P4_has_time-span \u2192 TimeSpan (when)\n- crm:P7_took_place_at \u2192 Place (where)\n- crm:P11_had_participant \u2192 Actor (who)\n- crm:P2_has_type \u2192 EventTypeEnum (what kind)\n\n**RELATIONSHIP TO EXISTING OrganizationalChangeEvent**:\n\nOrganizationalChangeEvent already exists and maps to crm:E5_Event.\nThis Event class provides:\n1. Shared base properties (temporal_extent, involved_actors, took_place_at)\n2. Generic event typing (hypernym_event_type)\n3. Foundation for other event types\n\nFuture migration: OrganizationalChangeEvent can inherit from Event.\n\n**RELATIONSHIP TO ACTORS**:\n\nEvents link to actors bidirectionally:\n- Event \u2192 involved_actors \u2192 Custodian/Person (who participated)\n- Custodian \u2192 organizational_change_events \u2192 Event (what events affected org)\n\ - - Person \u2192 is_or_was_affected_by_event \u2192 Event (what events affected person)\n\n**EXAMPLE - Merger Event**:\n```yaml\nEvent:\n event_id: \"https://nde.nl/ontology/hc/event/nha-merger-2001\"\n event_label: \"Noord-Hollands Archief Merger\"\n hypernym_event_type: TRANSFORMATION\n temporal_extent:\n begin_of_the_begin: \"2001-01-01\"\n end_of_the_end: \"2001-01-01\"\n took_place_at: \"https://nde.nl/ontology/hc/place/nl-nh-haa\"\n involved_actors:\n - \"https://nde.nl/ontology/hc/nl-nh-haa-a-gah\"\n - \"https://nde.nl/ontology/hc/nl-nh-haa-a-ranh\"\n has_or_had_description: |\n Merger of Gemeentearchief Haarlem (founded 1910) and\n Rijksarchief in Noord-Holland (founded 1802) to form\n Noord-Hollands Archief.\n confidence_score: 0.95\n documentation_source:\n - \"https://noord-hollandsarchief.nl/over-ons/geschiedenis\"\n```\n\n**EXAMPLE - Destruction Event**:\n```yaml\nEvent:\n event_id: \"https://nde.nl/ontology/hc/event/gaza-library-destruction-2024\"\ - \n event_label: \"Gaza Public Library Destruction\"\n hypernym_event_type: DESTRUCTION\n temporal_extent:\n begin_of_the_begin: \"2024-01-15\"\n end_of_the_end: \"2024-01-15\"\n took_place_at: \"https://nde.nl/ontology/hc/place/ps-gz-gaz\"\n has_or_had_description: |\n Gaza Public Library destroyed during military operations.\n confidence_score: 0.85\n```\n" + - Person \u2192 affected_by_event \u2192 Event (what events affected person)\n\n**EXAMPLE - Merger Event**:\n```yaml\nEvent:\n event_id: \"https://nde.nl/ontology/hc/event/nha-merger-2001\"\n event_label: \"Noord-Hollands Archief Merger\"\n hypernym_event_type: TRANSFORMATION\n temporal_extent:\n begin_of_the_begin: \"2001-01-01\"\n end_of_the_end: \"2001-01-01\"\n took_place_at: \"https://nde.nl/ontology/hc/place/nl-nh-haa\"\n involved_actors:\n - \"https://nde.nl/ontology/hc/nl-nh-haa-a-gah\"\n - \"https://nde.nl/ontology/hc/nl-nh-haa-a-ranh\"\n has_description: |\n Merger of Gemeentearchief Haarlem (founded 1910) and\n Rijksarchief in Noord-Holland (founded 1802) to form\n Noord-Hollands Archief.\n confidence_score: 0.95\n documentation_source:\n - \"https://noord-hollandsarchief.nl/over-ons/geschiedenis\"\n```\n\n**EXAMPLE - Destruction Event**:\n```yaml\nEvent:\n event_id: \"https://nde.nl/ontology/hc/event/gaza-library-destruction-2024\"\ + \n event_label: \"Gaza Public Library Destruction\"\n hypernym_event_type: DESTRUCTION\n temporal_extent:\n begin_of_the_begin: \"2024-01-15\"\n end_of_the_end: \"2024-01-15\"\n took_place_at: \"https://nde.nl/ontology/hc/place/ps-gz-gaz\"\n has_description: |\n Gaza Public Library destroyed during military operations.\n confidence_score: 0.85\n```\n" exact_mappings: - crm:E5_Event - prov:Activity @@ -50,35 +50,35 @@ classes: - crm:E85_Joining - crm:E86_Leaving slots: - - has_or_had_documentation - - has_or_had_description - - has_or_had_identifier - - has_or_had_label - - has_or_had_hypernym + - has_documentation + - has_description + - identified_by + - has_label + - has_hypernym - temporal_extent - involves_or_involved - - has_or_had_score + - has_score - takes_or_took_place_at - - is_or_was_generated_by + - generated_by slot_usage: - has_or_had_identifier: + identified_by: required: true identifier: true - has_or_had_hypernym: + has_hypernym: required: true # range: string # uriorcurie # range: EventType inlined: false # Fixed invalid inline for primitive type - has_or_had_label: + has_label: required: true - has_or_had_description: + has_description: required: false temporal_extent: required: false range: TimeSpan inlined: true - is_or_was_generated_by: + generated_by: # range: string # uriorcurie # range: GenerationEvent required: false @@ -86,41 +86,41 @@ classes: description: 'Generation event containing confidence score for this event. MIGRATED 2026-01-19: Replaces confidence_score slot with structured pattern.' examples: - value: - has_or_had_score: - has_or_had_score: 0.95 - has_or_had_method: documentation_verification + has_score: + has_score: 0.95 + has_method: documentation_verification comments: - Event is the hub class for all temporal phenomena in the HC ontology - Domain-specific events (OrganizationalChangeEvent, CollectionEvent) can inherit from Event - TimeSpan link (temporal_extent) is critical - enables fuzzy temporal reasoning - Actor links (involved_actors) connect events to both persons and organizations - - has_or_had_hypernym provides cross-domain event queries + - has_hypernym provides cross-domain event queries - 'Future: Add participated_in_events slot to Custodian and Person for inverse navigation' - - "MIGRATED 2026-01-19: confidence_score \u2192 is_or_was_generated_by + ConfidenceScore" + - "MIGRATED 2026-01-19: confidence_score \u2192 generated_by + ConfidenceScore" examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/event/nha-merger-2001 - has_or_had_label: Noord-Hollands Archief Merger - has_or_had_hypernym: TRANSFORMATION + identified_by: https://nde.nl/ontology/hc/event/nha-merger-2001 + has_label: Noord-Hollands Archief Merger + has_hypernym: TRANSFORMATION temporal_extent: begin_of_the_begin: '2001-01-01' end_of_the_end: '2001-01-01' takes_or_took_place_at: https://nde.nl/ontology/hc/place/nl-nh-haa - has_or_had_involved_actor: + has_involved_actor: - https://nde.nl/ontology/hc/nl-nh-haa-a-gah - https://nde.nl/ontology/hc/nl-nh-haa-a-ranh - has_or_had_description: 'Merger of Gemeentearchief Haarlem (founded 1910) and + has_description: 'Merger of Gemeentearchief Haarlem (founded 1910) and Rijksarchief in Noord-Holland (founded 1802) to form Noord-Hollands Archief. ' - is_or_was_generated_by: - has_or_had_score: - has_or_had_score: 0.95 - has_or_had_documentation: - - has_or_had_url: + generated_by: + has_score: + has_score: 0.95 + has_documentation: + - has_url: url_value: https://noord-hollandsarchief.nl/over-ons/geschiedenis annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/EventType.yaml b/schemas/20251121/linkml/modules/classes/EventType.yaml index 391df29dfe..e265e8c9da 100644 --- a/schemas/20251121/linkml/modules/classes/EventType.yaml +++ b/schemas/20251121/linkml/modules/classes/EventType.yaml @@ -17,22 +17,22 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score default_prefix: hc classes: EventType: class_uri: skos:Concept description: A type or category of event. slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_score + - identified_by + - has_label + - has_description + - has_score slot_usage: - has_or_had_label: + has_label: # range: string annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/EventTypes.yaml b/schemas/20251121/linkml/modules/classes/EventTypes.yaml index ba68305d67..5bf400c94c 100644 --- a/schemas/20251121/linkml/modules/classes/EventTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/EventTypes.yaml @@ -11,16 +11,16 @@ prefixes: imports: - ./EventType - linkml:types - - ../slots/includes_or_included + - ../slots/20260202_matang/include default_prefix: hc classes: EventTypes: class_uri: skos:ConceptScheme description: A scheme or collection of event types. slots: - - includes_or_included + - include slot_usage: - includes_or_included: + include: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type diff --git a/schemas/20251121/linkml/modules/classes/Evidence.yaml b/schemas/20251121/linkml/modules/classes/Evidence.yaml index 4b918de903..4d1a8785ee 100644 --- a/schemas/20251121/linkml/modules/classes/Evidence.yaml +++ b/schemas/20251121/linkml/modules/classes/Evidence.yaml @@ -10,22 +10,22 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score default_prefix: hc classes: Evidence: class_uri: crm:E73_Information_Object description: Evidence supporting a claim, gap, or assertion. slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_score + - identified_by + - has_label + - has_description + - has_score slot_usage: - has_or_had_description: + has_description: # range: string annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ExaSearchMetadata.yaml b/schemas/20251121/linkml/modules/classes/ExaSearchMetadata.yaml index aa64ebc415..c080769cf0 100644 --- a/schemas/20251121/linkml/modules/classes/ExaSearchMetadata.yaml +++ b/schemas/20251121/linkml/modules/classes/ExaSearchMetadata.yaml @@ -14,12 +14,12 @@ prefixes: org: http://www.w3.org/ns/org# imports: - linkml:types - - ../slots/has_or_had_tool - - ../slots/has_or_had_timestamp - - ../slots/has_or_had_url - - ../slots/has_or_had_agent - - ../slots/has_or_had_method - - ../slots/has_or_had_note + - ../slots/20260202_matang/has_tool + - ../slots/20260202_matang/has_timestamp + - ../slots/20260202_matang/has_url + - ../slots/has_agent + - ../slots/20260202_matang/has_method + - ../slots/20260202_matang/has_note # default_range: string classes: ExaSearchMetadata: @@ -30,24 +30,24 @@ classes: related_mappings: - prov:Entity slots: - - has_or_had_tool - - has_or_had_timestamp - - has_or_had_url - - has_or_had_agent - - has_or_had_method - - has_or_had_note + - has_tool + - has_timestamp + - has_url + - has_agent + - has_method + - has_note slot_usage: - has_or_had_tool: + has_tool: description: EXA tool used - has_or_had_timestamp: + has_timestamp: description: When search was performed - has_or_had_url: + has_url: description: Source URL for search - has_or_had_agent: + has_agent: description: Agent that performed extraction - has_or_had_method: + has_method: description: Method used for extraction - has_or_had_note: + has_note: description: Notes about the search annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ExaminationMethod.yaml b/schemas/20251121/linkml/modules/classes/ExaminationMethod.yaml index 8b307f22ae..a93ca61491 100644 --- a/schemas/20251121/linkml/modules/classes/ExaminationMethod.yaml +++ b/schemas/20251121/linkml/modules/classes/ExaminationMethod.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type classes: ExaminationMethod: class_uri: skos:Concept description: Examination method. slots: - - has_or_had_label - - has_or_had_type + - has_label + - has_type annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ExaminationMethodType.yaml b/schemas/20251121/linkml/modules/classes/ExaminationMethodType.yaml index d240ccd4b3..f5542ff55b 100644 --- a/schemas/20251121/linkml/modules/classes/ExaminationMethodType.yaml +++ b/schemas/20251121/linkml/modules/classes/ExaminationMethodType.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: ExaminationMethodType: class_uri: skos:Concept @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_label + - has_label diff --git a/schemas/20251121/linkml/modules/classes/Example.yaml b/schemas/20251121/linkml/modules/classes/Example.yaml index 38961a5c57..d6d870f274 100644 --- a/schemas/20251121/linkml/modules/classes/Example.yaml +++ b/schemas/20251121/linkml/modules/classes/Example.yaml @@ -10,11 +10,11 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_url default_prefix: hc classes: Example: @@ -23,15 +23,15 @@ classes: - skos:example description: Provides concrete examples to illustrate a definition or type. slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_url - - has_or_had_score + - identified_by + - has_label + - has_description + - has_url + - has_score slot_usage: - has_or_had_label: + has_label: # range: string - has_or_had_url: + has_url: # range: string # uriorcurie annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ExhibitedObject.yaml b/schemas/20251121/linkml/modules/classes/ExhibitedObject.yaml index 63715113e7..3954c01b60 100644 --- a/schemas/20251121/linkml/modules/classes/ExhibitedObject.yaml +++ b/schemas/20251121/linkml/modules/classes/ExhibitedObject.yaml @@ -32,19 +32,19 @@ imports: - ../slots/creator_role - ../slots/current_keeper - ../slots/current_location - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_provenance - - ../slots/has_or_had_score - - ../slots/has_or_had_size - - ../slots/has_or_had_subject - - ../slots/has_or_had_type - - ../slots/has_or_had_unit + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_size + - ../slots/20260202_matang/has_subject + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_unit - ../slots/inscription - ../slots/inventory_number - - ../slots/is_or_was_acquired_through - - ../slots/is_or_was_created_through - - ../slots/is_or_was_exhibited_at + - ../slots/20260202_matang/acquired_through + - ../slots/20260202_matang/created_through + - ../slots/20260202_matang/exhibited_at - ../slots/loan_history - ../slots/medium - ../slots/object_alternate_name @@ -75,8 +75,8 @@ classes: - crm:E24_Physical_Human-Made_Thing - crm:E84_Information_Carrier slots: - - has_or_had_identifier - - is_or_was_acquired_through + - identified_by + - acquired_through - conservation_history - creation_place - creation_timespan @@ -84,10 +84,10 @@ classes: - creator_role - current_keeper - current_location - - has_or_had_type - - is_or_was_created_through - - has_or_had_size - - is_or_was_exhibited_at + - has_type + - created_through + - has_size + - exhibited_at - inscription - inventory_number - loan_history @@ -99,9 +99,9 @@ classes: - object_type - part_of_collection - permanent_location - - has_or_had_provenance - - has_or_had_subject - - has_or_had_score + - has_provenance + - has_subject + - has_score slot_usage: object_id: identifier: true @@ -156,7 +156,7 @@ classes: - value: Workshop of - value: Attributed to - value: Circle of - is_or_was_created_through: + created_through: required: false range: CreationEvent inlined: true @@ -198,20 +198,20 @@ classes: - value: Bronze - value: Ink and wash on paper - value: Ceramic, glazed - has_or_had_size: + has_size: required: false range: Size inlined: true multivalued: true examples: - value: - has_or_had_label: "44.5 \xD7 39 cm" + has_label: "44.5 \xD7 39 cm" - value: - has_or_had_label: "363 \xD7 437 cm" + has_label: "363 \xD7 437 cm" - value: - has_or_had_label: "114.4 \xD7 72.3 \xD7 27.9 cm" - has_or_had_unit: - has_or_had_label: cm + has_label: "114.4 \xD7 72.3 \xD7 27.9 cm" + has_unit: + has_label: cm inscription: required: false # range: string @@ -240,8 +240,8 @@ classes: examples: - value: Gallery 15 - value: Dutch Golden Age wing, Room 3 - has_or_had_identifier: - description: "External identifiers for this exhibited object.\n\nMIGRATED 2026-01-15: Replaces wikidata_id slot per Rule 53.\nMIGRATED 2026-01-23: Also includes catalog raisonn\xE9 numbers per Rule 53/F26.\n\nUse has_or_had_type with IdentifierType subclasses to specify identifier type.\n" + identified_by: + description: "External identifiers for this exhibited object.\n\nMIGRATED 2026-01-15: Replaces wikidata_id slot per Rule 53.\nMIGRATED 2026-01-23: Also includes catalog raisonn\xE9 numbers per Rule 53/F26.\n\nUse has_type with IdentifierType subclasses to specify identifier type.\n" required: false # range: string # uriorcurie multivalued: true @@ -249,69 +249,69 @@ classes: inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_type: - has_or_had_code: WIKIDATA - has_or_had_label: Wikidata ID + has_type: + has_code: WIKIDATA + has_label: Wikidata ID - value: - has_or_had_type: - has_or_had_code: WIKIDATA - has_or_had_label: Wikidata ID + has_type: + has_code: WIKIDATA + has_label: Wikidata ID - value: - has_or_had_type: - has_or_had_code: CATALOG_RAISONNE - has_or_had_label: "Catalogue Raisonn\xE9 Number" + has_type: + has_code: CATALOG_RAISONNE + has_label: "Catalogue Raisonn\xE9 Number" - value: - has_or_had_type: - has_or_had_code: CATALOG_RAISONNE - has_or_had_label: "Catalogue Raisonn\xE9 Number" + has_type: + has_code: CATALOG_RAISONNE + has_label: "Catalogue Raisonn\xE9 Number" - value: identifier_value: rkdimages:23903 - has_or_had_type: - has_or_had_label: RKDimages + has_type: + has_label: RKDimages - value: identifier_value: getty_ulan:500121212 - has_or_had_type: - has_or_had_label: ULAN + has_type: + has_label: ULAN inventory_number: required: false # range: string examples: - value: BM-1802,0710.1 - has_or_had_provenance: + has_provenance: required: false range: Provenance inlined: true examples: - value: - has_or_had_description: + has_description: - description_text: Possibly Pieter van Ruijven, Delft (c. 1665); his widow, Maria de Knuijt, Delft (1674); Dissius sale, Amsterdam, May 16, 1696, lot 36; Braamcamp sale, Amsterdam, July 31, 1771, lot 54; Purchased for 30 guilders by A.A. des Tombe, The Hague (1881); Bequeathed to Mauritshuis (1903). description_type: provenance_text - is_or_was_acquired_through: + acquired_through: range: AcquisitionEvent inlined: true required: false examples: - value: - has_or_had_method: - has_or_had_label: BEQUEST + has_method: + has_label: BEQUEST temporal_extent: begin_of_the_begin: '1903-01-01' - is_or_was_exhibited_at: + exhibited_at: required: false range: ExhibitionLocation multivalued: true inlined: true examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 - has_or_had_label: Vermeer 2023 + identified_by: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 + has_label: Vermeer 2023 part_of_collection: required: false # range: string # uriorcurie inlined: false examples: - value: https://nde.nl/ontology/hc/collection/mauritshuis-dutch-paintings - has_or_had_subject: + has_subject: required: false # range: string multivalued: true @@ -334,7 +334,7 @@ classes: inlined: false examples: - value: https://nde.nl/ontology/hc/loan/mauritshuis-rijksmuseum-vermeer-2023 - has_or_had_type: + has_type: equals_expression: '["hc:GalleryType", "hc:MuseumType", "hc:ArchiveOrganizationType", "hc:LibraryType", "hc:ResearchOrganizationType", "hc:HolySacredSiteType", "hc:BioCustodianType"]' comments: - ExhibitedObject models individual artworks/artifacts displayable in exhibitions @@ -353,20 +353,20 @@ classes: - https://cidoc-crm.org/html/cidoc_crm_v7.1.3.html#P50 examples: - value: - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring - qid: Q81858 - has_or_had_label: Girl with a Pearl Earring - has_or_had_variant_name: + has_label: Girl with a Pearl Earring + has_variant_name: - Meisje met de parel - Het meisje met de parel - has_or_had_description: "Oil painting by Johannes Vermeer, depicting a girl in a blue and gold \nturban with a large pearl earring. One of Vermeer's most celebrated\nworks, nicknamed \"the Mona Lisa of the North.\"\n" - has_or_had_type: PAINTING + has_description: "Oil painting by Johannes Vermeer, depicting a girl in a blue and gold \nturban with a large pearl earring. One of Vermeer's most celebrated\nworks, nicknamed \"the Mona Lisa of the North.\"\n" + has_type: PAINTING creator: - Johannes Vermeer creator_role: - Artist - is_or_was_created_through: + created_through: temporal_extent: begin_of_the_begin: '1664-01-01' end_of_the_end: '1667-12-31' @@ -374,8 +374,8 @@ classes: place_name: Delft country: NL medium: Oil on canvas - has_or_had_size: - - has_or_had_label: "44.5 \xD7 39 cm" + has_size: + - has_label: "44.5 \xD7 39 cm" inscription: - IVMeer (upper left corner) current_keeper: https://nde.nl/ontology/hc/custodian/nl/mauritshuis @@ -384,57 +384,57 @@ classes: country: NL permanent_location: Gallery 15 accession_number: '670' - is_or_was_acquired_through: - has_or_had_method: - has_or_had_label: BEQUEST + acquired_through: + has_method: + has_label: BEQUEST temporal_extent: begin_of_the_begin: '1903-01-01' - has_or_had_provenance: - has_or_had_description: + has_provenance: + has_description: - description_text: Possibly Pieter van Ruijven, Delft (c. 1665); his widow, Maria de Knuijt, Delft (1674); Dissius sale, Amsterdam, May 16, 1696; A.A. des Tombe, The Hague (purchased 1881); Bequeathed to Mauritshuis (1903). description_type: provenance_text - is_or_was_exhibited_at: - - has_or_had_identifier: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 - has_or_had_label: Vermeer 2023 - has_or_had_subject: + exhibited_at: + - identified_by: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 + has_label: Vermeer 2023 + has_subject: - portrait - girl - pearl earring - turban - value: - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/object/rijksmuseum-night-watch - qid: Q219831 - SK-C-5 - has_or_had_label: The Night Watch - has_or_had_variant_name: + has_label: The Night Watch + has_variant_name: - De Nachtwacht - The Militia Company of Captain Frans Banninck Cocq - has_or_had_type: PAINTING - has_or_had_creator: + has_type: PAINTING + has_creator: - Rembrandt van Rijn - is_or_was_created_through: + created_through: temporal_extent: begin_of_the_begin: '1642-01-01' end_of_the_end: '1642-12-31' - has_or_had_medium: Oil on canvas - has_or_had_size: - - has_or_had_label: "363 \xD7 437 cm" - has_or_had_inscription: + has_medium: Oil on canvas + has_size: + - has_label: "363 \xD7 437 cm" + has_inscription: - Rembrandt f. 1642 - has_or_had_custodian: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum + has_custodian: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum - value: - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/object/british-museum-rosetta-stone - EA 24 - qid: Q48584 - has_or_had_label: Rosetta Stone - has_or_had_type: ARCHAEOLOGICAL_ARTIFACT - is_or_was_created_through: - has_or_had_medium: Granodiorite - has_or_had_size: - - has_or_had_label: "114.4 \xD7 72.3 \xD7 27.9 cm" - has_or_had_custodian: https://nde.nl/ontology/hc/custodian/uk/british-museum + has_label: Rosetta Stone + has_type: ARCHAEOLOGICAL_ARTIFACT + created_through: + has_medium: Granodiorite + has_size: + - has_label: "114.4 \xD7 72.3 \xD7 27.9 cm" + has_custodian: https://nde.nl/ontology/hc/custodian/uk/british-museum annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Exhibition.yaml b/schemas/20251121/linkml/modules/classes/Exhibition.yaml index eed45ce9a7..71d35dc104 100644 --- a/schemas/20251121/linkml/modules/classes/Exhibition.yaml +++ b/schemas/20251121/linkml/modules/classes/Exhibition.yaml @@ -17,19 +17,19 @@ imports: - ../metadata - ../slots/curated_by - ../slots/exhibits_or_exhibited - - ../slots/has_or_had_description - - ../slots/has_or_had_documentation - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_organizer - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_status - - ../slots/has_or_had_type - - ../slots/has_or_had_url - - ../slots/has_or_had_venue - - ../slots/is_or_was_cataloged_in - - ../slots/is_or_was_located_in + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_documentation + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_organizer + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_url + - ../slots/20260202_matang/has_venue + - ../slots/20260202_matang/cataloged_in + - ../slots/20260202_matang/located_in - ../slots/organized_by - ../slots/temporal_extent default_prefix: hc @@ -38,7 +38,7 @@ classes: class_uri: schema:ExhibitionEvent description: "A curated display of objects, artworks, documents, or cultural materials\norganized by a heritage custodian institution.\n\nModels the EXHIBITION (organized event), linking organizing institutions\nto temporal extents, featured objects, and published catalogs.\n\n**Key Distinction**:\n\n| Concept | Class | Example |\n|---------|-------|---------|\n| Heritage institution | Custodian | \"Rijksmuseum\" |\n| **Curated display** | **Exhibition** | **\"Vermeer\" exhibition** |\n| Individual object | ExhibitedObject | \"Girl with a Pearl Earring\" |\n| Publication | ExhibitionCatalog | \"Vermeer (2023) exhibition catalog\" |\n| Event occurrence | IntangibleHeritageEvent | \"Pride Amsterdam 2024\" |\n\n**When to Use Exhibition**:\n\nUse for curated displays organized by heritage institutions:\n- Museum exhibitions (permanent, temporary, traveling)\n- Archive exhibitions (document displays, historical materials)\n- Library special collections exhibitions\n- Gallery shows (solo,\ \ group, retrospectives)\n- Virtual/online exhibitions\n\n- **Schema.org**: schema:ExhibitionEvent (primary - web discoverability)\n \"Event type: Exhibition event, e.g. at a museum, library, archive, tradeshow, ...\"\n- **CIDOC-CRM**: crm:E7_Activity (deliberate actions by actors)\n- **CIDOC-CRM**: crm:E5_Event (historical event)\n- **Schema.org**: schema:Event (parent class for all events)\n\n**Relationship to Other Classes**:\n\n```\nCustodian (organizing institution)\n |\n |--- organized_by (inverse: exhibitions)\n v\nExhibition (curated display)\n |\n |--- exhibition_timespan --> TimeSpan (CIDOC-CRM temporal extent)\n |--- featured_objects --> ExhibitedObject[] (artworks, artifacts)\n |--- exhibition_catalogs --> ExhibitionCatalog[] (publications)\n```\n\n**Temporal Modeling**:\n\nExhibitions have temporal bounds that can be modeled at two levels:\n\n1. **Simple dates**: Use `start_date` and `end_date` for precise dates\n2. **Fuzzy boundaries**: Use\ - \ `exhibition_timespan` \u2192 TimeSpan for CIDOC-CRM\n fuzzy temporal modeling (begin_of_the_begin, end_of_the_end, etc.)\n\n**Example**:\n\nThe \"Vermeer\" exhibition at Rijksmuseum (Feb 10 - Jun 4, 2023):\n- exhibition_id: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023\n- exhibition_name: \"Vermeer\"\n- organized_by: [Rijksmuseum, Mauritshuis] (joint organization)\n- start_date: 2023-02-10\n- end_date: 2023-06-04\n- exhibition_type: BLOCKBUSTER\n- has_or_had_quantity: (visitor count)\n- featured_objects: [Girl with a Pearl Earring, The Milkmaid, View of Delft]\n- exhibition_catalogs: [Vermeer (2023) catalog]\n" + \ `exhibition_timespan` \u2192 TimeSpan for CIDOC-CRM\n fuzzy temporal modeling (begin_of_the_begin, end_of_the_end, etc.)\n\n**Example**:\n\nThe \"Vermeer\" exhibition at Rijksmuseum (Feb 10 - Jun 4, 2023):\n- exhibition_id: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023\n- exhibition_name: \"Vermeer\"\n- organized_by: [Rijksmuseum, Mauritshuis] (joint organization)\n- start_date: 2023-02-10\n- end_date: 2023-06-04\n- exhibition_type: BLOCKBUSTER\n- has_quantity: (visitor count)\n- featured_objects: [Girl with a Pearl Earring, The Milkmaid, View of Delft]\n- exhibition_catalogs: [Vermeer (2023) catalog]\n" exact_mappings: - schema:ExhibitionEvent close_mappings: @@ -48,32 +48,32 @@ classes: - schema:Event - crm:E4_Period slots: - - has_or_had_organizer + - has_organizer - curated_by - - has_or_had_type - - is_or_was_cataloged_in - - has_or_had_description - - has_or_had_documentation - - has_or_had_label - - has_or_had_status - - has_or_had_type - - has_or_had_url - - is_or_was_located_in + - has_type + - cataloged_in + - has_description + - has_documentation + - has_label + - has_status + - has_type + - has_url + - located_in - exhibits_or_exhibited - organized_by - - has_or_had_score - - has_or_had_venue - - has_or_had_quantity - - has_or_had_identifier + - has_score + - has_venue + - has_quantity + - identified_by slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true # range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 - value: https://nde.nl/ontology/hc/exhibition/moma-picasso-retrospective-2024 - has_or_had_label: + has_label: required: true # range: string multivalued: true @@ -83,12 +83,12 @@ classes: - value: Treasures from the National Archives - value: The Master of Light and Shadow - value: 150 Years of Revolutionary Art - has_or_had_description: + has_description: required: false # range: string examples: - value: 'The largest Vermeer exhibition ever mounted, bringing together 28 of the Dutch master''s 37 known paintings. A once-in-a-lifetime opportunity to see works from collections worldwide. ' - has_or_had_type: + has_type: required: false range: ExhibitionTypeEnum examples: @@ -103,7 +103,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum - value: https://nde.nl/ontology/hc/custodian/nl/mauritshuis - has_or_had_organizer: + has_organizer: required: false range: Organizer multivalued: true @@ -112,13 +112,13 @@ classes: examples: - value: organizer_entity: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum - has_or_had_role: + has_role: - value: organizer_entity: https://nde.nl/ontology/hc/custodian/nl/mauritshuis - has_or_had_role: + has_role: - value: organizer_entity: https://nde.nl/ontology/hc/custodian/us/national-gallery-washington - has_or_had_role: + has_role: curated_by: required: false # range: string @@ -137,33 +137,33 @@ classes: begin_of_the_end: '2023-06-04T00:00:00Z' end_of_the_end: '2023-06-04T23:59:59Z' country: NL - is_or_was_located_in: + located_in: required: false # range: string examples: - value: Philips Wing - value: Gallery of Honour - value: East Wing Galleries - has_or_had_status: + has_status: required: false range: EventStatusEnum examples: - value: COMPLETED - has_or_had_quantity: + has_quantity: required: false range: integer inlined: false # Fixed invalid inline for primitive type description: 'Visitor count for the exhibition. RULE 53: Replaces deprecated visitor_count integer slot with structured Quantity class.' examples: - value: - has_or_had_measurement_unit: - has_or_had_type: VISITOR - has_or_had_symbol: visitors + has_measurement_unit: + has_type: VISITOR + has_symbol: visitors temporal_extent: begin_of_the_begin: '2023-02-10T00:00:00Z' end_of_the_end: '2023-06-04T23:59:59Z' - has_or_had_description: Vermeer exhibition attendance - has_or_had_url: + has_description: Vermeer exhibition attendance + has_url: required: false range: uri examples: @@ -174,24 +174,24 @@ classes: inlined: true examples: - value: - has_or_had_label: The Night Watch - has_or_had_description: Oil painting by Rembrandt - is_or_was_cataloged_in: + has_label: The Night Watch + has_description: Oil painting by Rembrandt + cataloged_in: range: ExhibitionCatalog multivalued: true inlined: true examples: - value: - has_or_had_label: Vermeer 2023 Catalog + has_label: Vermeer 2023 Catalog isbn_13: 978-9491714962 - has_or_had_venue: + has_venue: range: Venue multivalued: true inlined: true examples: - value: "Venue:\n venue_name: \"Rijksmuseum, Amsterdam\"\n venue_dates: \"Feb 10 - Jun 4, 2023\"\n" - value: "Venue:\n venue_name: \"National Gallery, London\"\n venue_dates: \"Jul 1 - Oct 15, 2023\"\n" - has_or_had_documentation: + has_documentation: required: false range: uri multivalued: true @@ -203,8 +203,8 @@ classes: - Links to TimeSpan via exhibition_timespan for CIDOC-CRM temporal modeling - Links to ExhibitedObject via featured_objects for typed object references - Links to ExhibitionCatalog via exhibition_catalogs for publication metadata - - Use has_or_had_exhibition_type to categorize (permanent, temporary, traveling, etc.) - - RULE 53: has_or_had_quantity replaces deprecated visitor_count for attendance + - Use has_exhibition_type to categorize (permanent, temporary, traveling, etc.) + - RULE 53: has_quantity replaces deprecated visitor_count for attendance - featured_works (string) retained for backward compatibility; prefer featured_objects see_also: - https://schema.org/ExhibitionEvent @@ -212,38 +212,38 @@ classes: - https://cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E5 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 + has_label: - Vermeer - The greatest Vermeer exhibition ever - has_or_had_description: 'The largest Vermeer exhibition ever mounted, bringing together + has_description: 'The largest Vermeer exhibition ever mounted, bringing together 28 of the Dutch master''s 37 known paintings. A once-in-a-lifetime opportunity to see works from collections worldwide. ' - has_or_had_type: BLOCKBUSTER - has_or_had_organizer: + has_type: BLOCKBUSTER + has_organizer: - organizer_entity: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum - has_or_had_role: + has_role: - organizer_entity: https://nde.nl/ontology/hc/custodian/nl/mauritshuis - has_or_had_role: + has_role: curated_by: - Pieter Roelofs - Gregor J.M. Weber temporal_extent: begin_of_the_begin: '2023-02-10' end_of_the_end: '2023-06-04' - is_or_was_located_in: Philips Wing - has_or_had_status: COMPLETED - has_or_had_quantity: - has_or_had_measurement_unit: - has_or_had_type: VISITOR - has_or_had_symbol: visitors + located_in: Philips Wing + has_status: COMPLETED + has_quantity: + has_measurement_unit: + has_type: VISITOR + has_symbol: visitors temporal_extent: begin_of_the_begin: '2023-02-10T00:00:00Z' end_of_the_end: '2023-06-04T23:59:59Z' - has_or_had_description: Vermeer exhibition attendance - has_or_had_url: https://www.rijksmuseum.nl/nl/vermeer - has_or_had_featured_object: + has_description: Vermeer exhibition attendance + has_url: https://www.rijksmuseum.nl/nl/vermeer + has_featured_object: - https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring - https://nde.nl/ontology/hc/object/rijksmuseum-milkmaid - https://nde.nl/ontology/hc/object/mauritshuis-view-delft @@ -254,30 +254,30 @@ classes: - View of Delft (Mauritshuis) - Woman Reading a Letter (Rijksmuseum) - value: - has_or_had_identifier: https://nde.nl/ontology/hc/exhibition/nationaal-archief-ww2-voices-2024 - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/exhibition/nationaal-archief-ww2-voices-2024 + has_label: - Voices from the War - Personal Stories from World War II Archives - has_or_had_type: ARCHIVAL - has_or_had_organizer: + has_type: ARCHIVAL + has_organizer: - organizer_entity: https://nde.nl/ontology/hc/custodian/nl/nationaal-archief - has_or_had_role: + has_role: temporal_extent: begin_of_the_begin: '2024-05-04' end_of_the_end: '2024-11-11' - has_or_had_status: COMPLETED + has_status: COMPLETED - value: - has_or_had_identifier: https://nde.nl/ontology/hc/exhibition/rijksmuseum-gallery-of-honour - has_or_had_label: Gallery of Honour - has_or_had_description: 'The Rijksmuseum''s permanent display of Dutch Golden Age masterpieces, + identified_by: https://nde.nl/ontology/hc/exhibition/rijksmuseum-gallery-of-honour + has_label: Gallery of Honour + has_description: 'The Rijksmuseum''s permanent display of Dutch Golden Age masterpieces, featuring works by Rembrandt, Vermeer, Frans Hals, and Jan Steen. Culminates in Rembrandt''s Night Watch. ' - has_or_had_type: PERMANENT - has_or_had_organizer: + has_type: PERMANENT + has_organizer: - organizer_entity: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum - has_or_had_role: - is_or_was_located_in: Gallery of Honour (Eregalerij) + has_role: + located_in: Gallery of Honour (Eregalerij) exhibits_or_exhibited: - The Night Watch (Rembrandt) - The Merry Drinker (Frans Hals) diff --git a/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml b/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml index 4d510d0388..7f5599b8e9 100644 --- a/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml +++ b/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml @@ -14,22 +14,22 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/contains_or_contained + - ../slots/20260202_matang/contain - ../slots/contributor - - ../slots/has_or_had_author - - ../slots/has_or_had_content - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_publisher - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/has_or_had_url - - ../slots/is_or_was_associated_with - - ../slots/is_or_was_edited_by - - ../slots/is_or_was_indexed - - ../slots/is_or_was_instantiated_as - - ../slots/is_or_was_published_at + - ../slots/20260202_matang/has_author + - ../slots/20260202_matang/has_content + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_publisher + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_url + - ../slots/20260202_matang/associated_with + - ../slots/20260202_matang/edited_by + - ../slots/20260202_matang/indexed + - ../slots/20260202_matang/instantiated_as + - ../slots/20260202_matang/published_at - ../slots/isbn - ../slots/isbn_13 - ../slots/issn @@ -43,7 +43,7 @@ classes: ExhibitionCatalog: class_uri: schema:Book description: "A publication documenting an exhibition, including scholarly essays, \nobject entries, and illustrations.\n\nExhibition catalogs serve as permanent scholarly record of temporary exhibitions\nand are valuable research resources in their own right.\n\n**Types of Exhibition Catalogs**:\n\n| Type | Description | Example |\n|------|-------------|---------|\n| PRINT_CATALOG | Traditional printed book | Hardcover exhibition catalog |\n| DIGITAL_CATALOG | Online/downloadable publication | PDF or web-based catalog |\n| COLLECTION_CATALOG | Permanent collection catalog | Museum handbook |\n| BROCHURE | Brief exhibition guide | Gallery handout |\n| CHECKLIST | List of exhibited works | Exhibition checklist |\n\n**Ontology Alignment**:\n\n- **Schema.org**: schema:Book (primary - web discoverability)\n- **BIBFRAME**: bf:Work + bf:Instance (bibliographic modeling)\n- **CIDOC-CRM**: crm:E31_Document (document with propositions)\n- **BIBO**: bibo:Document (bibliographic ontology)\n\n**Relationship\ - \ to Other Classes**:\n\n```\nExhibition (curated display)\n \u2502\n \u2502\u2500\u2500 exhibition_catalogs (documentation)\n v\nExhibitionCatalog (this class)\n \u2502\n \u2502\u2500\u2500 documents \u2192 ExhibitedObject[] (catalog entries)\n \u2502\u2500\u2500 authored_by \u2192 (scholars, curators)\n v\nPublisher/Institution\n```\n\n**Example**:\n\nThe \"Vermeer\" exhibition catalog (Rijksmuseum, 2023):\n- has_or_had_identifier: https://nde.nl/ontology/hc/catalog/rijksmuseum-vermeer-2023\n- has_or_had_label: \"Vermeer\"\n- is_or_was_associated_with: Vermeer exhibition 2023\n- isbn: 978-9491714962\n- pages: 320\n" + \ to Other Classes**:\n\n```\nExhibition (curated display)\n \u2502\n \u2502\u2500\u2500 exhibition_catalogs (documentation)\n v\nExhibitionCatalog (this class)\n \u2502\n \u2502\u2500\u2500 documents \u2192 ExhibitedObject[] (catalog entries)\n \u2502\u2500\u2500 authored_by \u2192 (scholars, curators)\n v\nPublisher/Institution\n```\n\n**Example**:\n\nThe \"Vermeer\" exhibition catalog (Rijksmuseum, 2023):\n- identified_by: https://nde.nl/ontology/hc/catalog/rijksmuseum-vermeer-2023\n- has_label: \"Vermeer\"\n- associated_with: Vermeer exhibition 2023\n- isbn: 978-9491714962\n- pages: 320\n" exact_mappings: - schema:Book close_mappings: @@ -55,12 +55,12 @@ classes: - bf:Instance - bibo:Book slots: - - contains_or_contained - - has_or_had_url + - contain + - has_url - contributor - - has_or_had_type - - is_or_was_instantiated_as - - is_or_was_edited_by + - has_type + - instantiated_as + - edited_by - isbn - isbn_13 - issn @@ -69,12 +69,12 @@ classes: - page - pdf_url - price - - is_or_was_published_at - - has_or_had_publisher - - is_or_was_indexed - - has_or_had_score + - published_at + - has_publisher + - indexed + - has_score slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true # range: string # uriorcurie @@ -92,7 +92,7 @@ classes: - value: - value: identifier_source: OCLC WorldCat - has_or_had_label: + has_label: required: true # range: string multivalued: true @@ -100,13 +100,13 @@ classes: - value: Vermeer - value: 'Henri Matisse: The Cut-Outs' - value: The Greatest Exhibition - is_or_was_associated_with: + associated_with: required: true # range: string # uriorcurie inlined: false examples: - value: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 - has_or_had_type: + has_type: required: false # range: string # uriorcurie multivalued: true @@ -120,34 +120,34 @@ classes: - value: DIGITAL_CATALOG - value: hc:HardcoverBinding - value: hc:PaperbackBinding - has_or_had_author: + has_author: range: Author multivalued: true inlined: true examples: - value: - has_or_had_name: Gregor J.M. Weber - is_or_was_affiliated_with: - has_or_had_name: Rijksmuseum + has_name: Gregor J.M. Weber + affiliated_with: + has_name: Rijksmuseum - value: - has_or_had_name: Pieter Roelofs - contains_or_contained: + has_name: Pieter Roelofs + contain: range: Essay multivalued: true inlined: true examples: - value: - has_or_had_label: Vermeer's World - has_or_had_description: Scholarly essay on 17th century context + has_label: Vermeer's World + has_description: Scholarly essay on 17th century context - value: - has_or_had_label: Technical Examination of the Milkmaid - is_or_was_edited_by: + has_label: Technical Examination of the Milkmaid + edited_by: range: Editor multivalued: true inlined: true examples: - value: - has_or_had_name: Pieter Roelofs + has_name: Pieter Roelofs language: required: false # range: string @@ -156,7 +156,7 @@ classes: - value: en - value: nl - value: English, Dutch - has_or_had_url: + has_url: required: false range: uri multivalued: true @@ -164,55 +164,55 @@ classes: inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_url: https://www.rijksmuseum.nl/nl/webshop/catalogus-vermeer - has_or_had_type: catalog_shop + has_url: https://www.rijksmuseum.nl/nl/webshop/catalogus-vermeer + has_type: catalog_shop - value: - has_or_had_url: https://www.britishmuseum.org/exhibitions/arctic-culture-and-climate - has_or_had_type: exhibition_page + has_url: https://www.britishmuseum.org/exhibitions/arctic-culture-and-climate + has_type: exhibition_page pdf_url: required: false range: uri examples: - value: https://www.rijksmuseum.nl/media/vermeer-catalog.pdf - is_or_was_instantiated_as: + instantiated_as: range: EBook inlined: true multivalued: true examples: - value: - has_or_had_url: - has_or_had_url: https://www.amazon.com/dp/B0XXXXX - has_or_had_type: purchase_page + has_url: + has_url: https://www.amazon.com/dp/B0XXXXX + has_type: purchase_page price: required: false # range: string examples: - value: "\u20AC59.95" - value: $75.00 - has_or_had_description: + has_description: required: false # range: string examples: - value: "The official catalog of the groundbreaking Vermeer exhibition at the \nRijksmuseum, featuring 28 of the Dutch master's 37 known paintings.\nIncludes scholarly essays on Vermeer's technique, pigments, and\nsubjects, along with detailed entries for each work.\n" - is_or_was_indexed: + indexed: required: false range: Index multivalued: true inlined_as_list: true examples: - value: - has_or_had_identifier: hc:index/vermeer-catalog-toc - has_or_had_label: + identified_by: hc:index/vermeer-catalog-toc + has_label: - Table of Contents@en - entry_label: 1. Introduction (Pieter Roelofs) - entry_label: 2. Vermeer's Delft (Gregor Weber) - entry_label: 3. Technique and Materials (Anna Tummers) - entry_label: 4. Catalog Entries - entry_label: 5. Appendices - has_or_had_content: + has_content: required: false range: integer - description: 'Number of catalog entries (objects documented). MIGRATED from catalog_entries_count per Rule 53/56 (2026-01-17). Note: Full revision pattern would use has_or_had_quantity with Quantity class, but integer range is kept for backwards compatibility.' + description: 'Number of catalog entries (objects documented). MIGRATED from catalog_entries_count per Rule 53/56 (2026-01-17). Note: Full revision pattern would use has_quantity with Quantity class, but integer range is kept for backwards compatibility.' examples: - value: 28 library_catalog_url: @@ -224,7 +224,7 @@ classes: - value: https://uba.uva.nl/catalog/12345678 comments: - ExhibitionCatalog models scholarly publications documenting exhibitions - - Links to Exhibition via is_or_was_associated_with relationship (migrated from catalog_for) + - Links to Exhibition via associated_with relationship (migrated from catalog_for) - Supports both print and digital catalog formats - Uses schema:Book as primary mapping for web discoverability - BIBFRAME and BIBO mappings enable library integration @@ -234,29 +234,29 @@ classes: - http://id.loc.gov/ontologies/bibframe/Work examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/catalog/rijksmuseum-vermeer-2023 - has_or_had_label: Vermeer - is_or_was_associated_with: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 - has_or_had_type: + identified_by: https://nde.nl/ontology/hc/catalog/rijksmuseum-vermeer-2023 + has_label: Vermeer + associated_with: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 + has_type: - PRINT_CATALOG - hc:HardcoverBinding - has_or_had_author: - - has_or_had_name: Pieter Roelofs - has_or_had_role: AUTHOR - is_or_was_affiliated_with: Rijksmuseum Amsterdam - - has_or_had_name: Gregor J.M. Weber - has_or_had_role: AUTHOR - is_or_was_affiliated_with: Rijksmuseum Amsterdam - is_or_was_edited_by: - - has_or_had_label: Pieter Roelofs - has_or_had_publisher: - - has_or_had_label: Rijksmuseum - has_or_had_type: institutional - has_or_had_location: Amsterdam - - has_or_had_label: Hannibal Publishing - has_or_had_type: commercial - has_or_had_location: Veurne - is_or_was_published_at: + has_author: + - has_name: Pieter Roelofs + has_role: AUTHOR + affiliated_with: Rijksmuseum Amsterdam + - has_name: Gregor J.M. Weber + has_role: AUTHOR + affiliated_with: Rijksmuseum Amsterdam + edited_by: + - has_label: Pieter Roelofs + has_publisher: + - has_label: Rijksmuseum + has_type: institutional + has_location: Amsterdam + - has_label: Hannibal Publishing + has_type: commercial + has_location: Veurne + published_at: temporal_extent: begin_of_the_begin: '2023-02-01T00:00:00Z' end_of_the_begin: '2023-02-01T00:00:00Z' @@ -264,28 +264,28 @@ classes: end_of_the_end: '2023-02-01T00:00:00Z' language: - en - has_or_had_url: - - has_or_had_url: https://www.rijksmuseum.nl/nl/webshop/catalogus-vermeer - has_or_had_type: catalog_shop - has_or_had_description: "The official catalog of the groundbreaking Vermeer exhibition at the \nRijksmuseum (February 10 - June 4, 2023), featuring 28 of the Dutch \nmaster's 37 known paintings. Includes scholarly essays on Vermeer's \ntechnique, pigments, and subjects.\n" - has_or_had_content: '28' + has_url: + - has_url: https://www.rijksmuseum.nl/nl/webshop/catalogus-vermeer + has_type: catalog_shop + has_description: "The official catalog of the groundbreaking Vermeer exhibition at the \nRijksmuseum (February 10 - June 4, 2023), featuring 28 of the Dutch \nmaster's 37 known paintings. Includes scholarly essays on Vermeer's \ntechnique, pigments, and subjects.\n" + has_content: '28' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/catalog/moma-matisse-cutouts-2014 - has_or_had_label: 'Henri Matisse: The Cut-Outs' - is_or_was_associated_with: https://nde.nl/ontology/hc/exhibition/moma-matisse-cutouts-2014 - has_or_had_type: + identified_by: https://nde.nl/ontology/hc/catalog/moma-matisse-cutouts-2014 + has_label: 'Henri Matisse: The Cut-Outs' + associated_with: https://nde.nl/ontology/hc/exhibition/moma-matisse-cutouts-2014 + has_type: - PRINT_CATALOG - hc:HardcoverBinding - is_or_was_edited_by: - - has_or_had_label: Karl Buchberg - - has_or_had_label: Nicholas Cullinan - - has_or_had_label: Jodi Hauptman - - has_or_had_label: Nicholas Serota - has_or_had_publisher: - - has_or_had_label: The Museum of Modern Art - has_or_had_type: institutional - has_or_had_location: New York - is_or_was_published_at: + edited_by: + - has_label: Karl Buchberg + - has_label: Nicholas Cullinan + - has_label: Jodi Hauptman + - has_label: Nicholas Serota + has_publisher: + - has_label: The Museum of Modern Art + has_type: institutional + has_location: New York + published_at: temporal_extent: begin_of_the_begin: '2014-10-01T00:00:00Z' end_of_the_begin: '2014-10-01T00:00:00Z' @@ -298,23 +298,23 @@ classes: - en price: $60.00 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/catalog/british-museum-arctic-2020 - has_or_had_label: 'Arctic: culture and climate' - is_or_was_associated_with: https://nde.nl/ontology/hc/exhibition/british-museum-arctic-2020 - has_or_had_type: DIGITAL_CATALOG - has_or_had_publisher: - - has_or_had_label: The British Museum Press - has_or_had_type: institutional - has_or_had_location: London - is_or_was_published_at: + identified_by: https://nde.nl/ontology/hc/catalog/british-museum-arctic-2020 + has_label: 'Arctic: culture and climate' + associated_with: https://nde.nl/ontology/hc/exhibition/british-museum-arctic-2020 + has_type: DIGITAL_CATALOG + has_publisher: + - has_label: The British Museum Press + has_type: institutional + has_location: London + published_at: temporal_extent: begin_of_the_begin: '2020-10-22T00:00:00Z' end_of_the_begin: '2020-10-22T00:00:00Z' begin_of_the_end: '2020-10-22T00:00:00Z' end_of_the_end: '2020-10-22T00:00:00Z' - has_or_had_url: - - has_or_had_url: https://www.britishmuseum.org/exhibitions/arctic-culture-and-climate - has_or_had_type: exhibition_page + has_url: + - has_url: https://www.britishmuseum.org/exhibitions/arctic-culture-and-climate + has_type: exhibition_page pdf_url: https://www.britishmuseum.org/media/arctic-catalog.pdf annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ExhibitionLocation.yaml b/schemas/20251121/linkml/modules/classes/ExhibitionLocation.yaml index ec87257714..03d07f3e29 100644 --- a/schemas/20251121/linkml/modules/classes/ExhibitionLocation.yaml +++ b/schemas/20251121/linkml/modules/classes/ExhibitionLocation.yaml @@ -17,24 +17,24 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score default_prefix: hc classes: ExhibitionLocation: class_uri: crm:E53_Place description: Specifies where an object was exhibited, potentially including specific gallery/room/case details within the exhibition. slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_score + - identified_by + - has_label + - has_description + - has_score slot_usage: - has_or_had_label: + has_label: # range: string - has_or_had_identifier: + identified_by: # range: string # uriorcurie annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ExhibitionSpace.yaml b/schemas/20251121/linkml/modules/classes/ExhibitionSpace.yaml index 5dc41abf27..69cd12b785 100644 --- a/schemas/20251121/linkml/modules/classes/ExhibitionSpace.yaml +++ b/schemas/20251121/linkml/modules/classes/ExhibitionSpace.yaml @@ -7,18 +7,18 @@ imports: - ../enums/GalleryTypeEnum - ../enums/MuseumTypeEnum - ../slots/current_exhibition - - ../slots/has_or_had_area - - ../slots/has_or_had_capacity - - ../slots/has_or_had_description - - ../slots/has_or_had_fee - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_schedule - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/in_area + - ../slots/20260202_matang/has_capacity + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_fee + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_schedule + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/is_accessible - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by - ../slots/is_permanent - ../slots/museum_type_classification - ../slots/opening_hour @@ -39,8 +39,8 @@ classes: is_a: ReconstructedEntity class_uri: aat:300005768 description: "Exhibition space, gallery, or display area operated by a heritage custodian\nat a location separate from the main facility.\n\n**DEFINITION**:\n\nAn ExhibitionSpace is a dedicated area for displaying collections or\nexhibitions at a secondary location. This may be a satellite gallery,\nexhibition pavilion, temporary exhibition venue, or partner venue where\nthe heritage custodian presents its collections.\n\n**GETTY AAT ALIGNMENT**:\n\n`aat:300005768` (exhibition spaces) - \"Spaces designed and equipped for\nthe display and viewing of objects, artworks, or specimens.\"\n\n**WIKIDATA TYPE LINKAGE**:\n\nThis class can be further classified using either:\n\n1. **MuseumTypeEnum** (187 types) - For museum-style exhibition spaces:\n - Q207694 (art museum)\n - Q17431399 (history museum)\n - Q2087181 (science museum)\n \n2. **GalleryTypeEnum** (78 types) - For gallery-style exhibition spaces:\n - Q1007870 (art gallery)\n - Q1060829 (exhibition hall)\n - Q856584 (kunsthalle)\n\ - \n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Primary Function | Public Access |\n|------|------------------|---------------|\n| **ExhibitionSpace** | Display collections | Yes - public viewing |\n| Storage | Store collections | No - staff only |\n| BranchOffice | Service delivery | Yes - services |\n| ResearchCenter | Academic research | Limited |\n\n**TYPES OF EXHIBITION SPACES**:\n\n1. **Satellite Gallery**: Permanent secondary exhibition venue\n2. **Exhibition Pavilion**: Purpose-built exhibition structure\n3. **Partner Venue**: Space in another institution\n4. **Pop-up Gallery**: Temporary exhibition venue\n5. **Outdoor Exhibition**: Open-air display area\n6. **Project Space**: Experimental/contemporary art space\n\n**USE CASES**:\n\n1. **Museum Satellite Gallery**:\n ```yaml\n ExhibitionSpace:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/rijksmuseum-schiphol-gallery\"\n has_or_had_label:\n label_text: \"Rijksmuseum Schiphol\"\n\ - \ museum_type_classification: ART_MUSEUM\n exhibition_type: SATELLITE_GALLERY\n has_or_had_area:\n quantity_value: 200\n ```\n\n2. **Contemporary Art Project Space**:\n ```yaml\n ExhibitionSpace:\n has_or_had_label:\n label_text: \"Stedelijk Museum Project Space\"\n gallery_type_classification: PROJECT_SPACE\n exhibition_type: PROJECT_SPACE\n focuses_on_contemporary: true\n ```\n" + \n**DISTINCTION FROM OTHER AUXILIARY PLACE TYPES**:\n\n| Type | Primary Function | Public Access |\n|------|------------------|---------------|\n| **ExhibitionSpace** | Display collections | Yes - public viewing |\n| Storage | Store collections | No - staff only |\n| BranchOffice | Service delivery | Yes - services |\n| ResearchCenter | Academic research | Limited |\n\n**TYPES OF EXHIBITION SPACES**:\n\n1. **Satellite Gallery**: Permanent secondary exhibition venue\n2. **Exhibition Pavilion**: Purpose-built exhibition structure\n3. **Partner Venue**: Space in another institution\n4. **Pop-up Gallery**: Temporary exhibition venue\n5. **Outdoor Exhibition**: Open-air display area\n6. **Project Space**: Experimental/contemporary art space\n\n**USE CASES**:\n\n1. **Museum Satellite Gallery**:\n ```yaml\n ExhibitionSpace:\n identified_by: \"https://nde.nl/ontology/hc/aux/rijksmuseum-schiphol-gallery\"\n has_label:\n label_text: \"Rijksmuseum Schiphol\"\n\ + \ museum_type_classification: ART_MUSEUM\n exhibition_type: SATELLITE_GALLERY\n in_area:\n quantity_value: 200\n ```\n\n2. **Contemporary Art Project Space**:\n ```yaml\n ExhibitionSpace:\n has_label:\n label_text: \"Stedelijk Museum Project Space\"\n gallery_type_classification: PROJECT_SPACE\n exhibition_type: PROJECT_SPACE\n focuses_on_contemporary: true\n ```\n" exact_mappings: - aat:300005768 close_mappings: @@ -51,32 +51,32 @@ classes: - schema:Museum - schema:ArtGallery slots: - # has_or_had_admission_fee REMOVED - migrated to has_or_had_fee (Rule 53) - - has_or_had_fee + # has_admission_fee REMOVED - migrated to has_fee (Rule 53) + - has_fee - current_exhibition - - has_or_had_capacity - - has_or_had_area - - has_or_had_schedule - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_type + - has_capacity + - in_area + - has_schedule + - identified_by + - has_label + - has_description + - has_type - is_accessible - is_permanent - museum_type_classification - opening_hour - partner_institution - - has_or_had_score - - is_or_was_derived_from - - is_or_was_generated_by + - has_score + - derived_from + - generated_by slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/rijksmuseum-schiphol-gallery - has_or_had_label: + has_label: # range: string inlined: false # Fixed invalid inline for primitive type required: true @@ -87,7 +87,7 @@ classes: ' - value: 'label_text: Van Gogh Museum Mesdag Collection ' - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type examples: @@ -98,7 +98,7 @@ classes: required: false examples: - value: ART_MUSEUM - has_or_had_type: + has_type: range: GalleryType required: false any_of: @@ -106,29 +106,29 @@ classes: - range: NonProfitGallery - range: ArtistRunSpace - range: Kunsthalle - # Added ExhibitionSpaceTypeEnum as allowed range for has_or_had_type - # This replaces the removed has_or_had_exhibition_type slot + # Added ExhibitionSpaceTypeEnum as allowed range for has_type + # This replaces the removed has_exhibition_type slot - range: ExhibitionSpaceTypeEnum examples: - value: ART_GALLERY - value: KUNSTHALLE - value: SATELLITE_GALLERY - has_or_had_area: + in_area: range: Area inlined: true examples: - value: - has_or_had_unit: - has_or_had_type: SQUARE_METER - has_or_had_symbol: "m\xB2" - has_or_had_capacity: + has_unit: + has_type: SQUARE_METER + has_symbol: "m\xB2" + has_capacity: range: Capacity inlined: true examples: - value: - has_or_had_quantity: - has_or_had_unit: - has_or_had_type: SeatingCapacity + has_quantity: + has_unit: + has_type: SeatingCapacity is_accessible: range: boolean examples: @@ -137,20 +137,20 @@ classes: # range: string examples: - value: Daily 07:00-20:00 - has_or_had_fee: + has_fee: range: AdmissionFee multivalued: true inlined: true examples: - value: - has_or_had_label: "Free" + has_label: "Free" - value: - has_or_had_label: "Standard Adult" + has_label: "Standard Adult" current_exhibition: # range: string examples: - value: Highlights from the Golden Age - has_or_had_schedule: + has_schedule: # range: string examples: - value: Exhibitions rotate quarterly @@ -163,11 +163,11 @@ classes: examples: - value: Schiphol Group - value: Groninger Museum - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false comments: @@ -182,43 +182,43 @@ classes: - https://www.wikidata.org/wiki/Q1060829 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/rijksmuseum-schiphol-gallery - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/rijksmuseum-schiphol-gallery + has_label: label_text: Rijksmuseum Schiphol - has_or_had_description: + has_description: description_text: Free gallery at Schiphol Airport featuring rotating highlights from the Rijksmuseum collection. - has_or_had_type: SATELLITE_GALLERY + has_type: SATELLITE_GALLERY museum_type_classification: ART_MUSEUM - has_or_had_area: - has_or_had_unit: - has_or_had_type: SQUARE_METER - has_or_had_symbol: "m\xB2" - has_or_had_capacity: - has_or_had_quantity: - has_or_had_unit: - has_or_had_type: SeatingCapacity + in_area: + has_unit: + has_type: SQUARE_METER + has_symbol: "m\xB2" + has_capacity: + has_quantity: + has_unit: + has_type: SeatingCapacity is_accessible: true opening_hour: Daily 07:00-20:00 - has_or_had_fee: - - has_or_had_label: "Free" + has_fee: + - has_label: "Free" current_exhibition: 'Dutch Masters: Highlights from the Golden Age' - has_or_had_schedule: Exhibitions rotate every 6 months + has_schedule: Exhibitions rotate every 6 months is_permanent: true partner_institution: Schiphol Group - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/stedelijk-project-space - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/stedelijk-project-space + has_label: label_text: Stedelijk Museum Bureau Amsterdam - has_or_had_description: + has_description: description_text: Project space for emerging contemporary artists and experimental exhibitions. - has_or_had_type: PROJECT_SPACE - has_or_had_area: - has_or_had_unit: - has_or_had_type: SQUARE_METER - has_or_had_symbol: "m\xB2" + has_type: PROJECT_SPACE + in_area: + has_unit: + has_type: SQUARE_METER + has_symbol: "m\xB2" opening_hour: We-Su 11:00-17:00 - has_or_had_fee: - - has_or_had_label: "Free" + has_fee: + - has_label: "Free" is_permanent: true annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/Expense.yaml b/schemas/20251121/linkml/modules/classes/Expense.yaml index b6e1fac08f..2492af8372 100644 --- a/schemas/20251121/linkml/modules/classes/Expense.yaml +++ b/schemas/20251121/linkml/modules/classes/Expense.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_quantity + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_quantity classes: Expense: class_uri: schema:MonetaryAmount description: Expense amount. slots: - - has_or_had_quantity - - has_or_had_description + - has_quantity + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ExpenseType.yaml b/schemas/20251121/linkml/modules/classes/ExpenseType.yaml index 27e3cf8082..86555fe0c8 100644 --- a/schemas/20251121/linkml/modules/classes/ExpenseType.yaml +++ b/schemas/20251121/linkml/modules/classes/ExpenseType.yaml @@ -7,16 +7,16 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: ExpenseType: abstract: true description: Classification of an expense. slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Expenses.yaml b/schemas/20251121/linkml/modules/classes/Expenses.yaml index 798cfc2c0f..535498fefb 100644 --- a/schemas/20251121/linkml/modules/classes/Expenses.yaml +++ b/schemas/20251121/linkml/modules/classes/Expenses.yaml @@ -14,11 +14,11 @@ prefixes: imports: - linkml:types - ../enums/ExpenseTypeEnum - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_quantity - - ../slots/has_or_had_type - - ../slots/has_or_had_type # was: expense_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_type # was: expense_type - ../slots/temporal_extent - ../slots/temporal_extent # was: valid_from + valid_to default_prefix: hc @@ -36,24 +36,24 @@ classes: | FUNDRAISING | Donor relations | Events, grants, marketing | | INNOVATION | R&D | New programs, technology | **USAGE**: - The `has_or_had_expenses` slot links entities to Expenses instances. - Since 2026-01-22, uses `has_or_had_quantity` instead of separate amount/currency: + The `has_expenses` slot links entities to Expenses instances. + Since 2026-01-22, uses `has_quantity` instead of separate amount/currency: ```yaml financial_statement: - has_or_had_expenses: + has_expenses: - expense_type: ADMINISTRATIVE - has_or_had_quantity: + has_quantity: quantity_value: 10000000.0 quantity_type: BUDGET_AMOUNT - has_or_had_measurement_unit: + has_measurement_unit: unit_symbol: EUR unit_type: CURRENCY description: "Management and general expenses FY2023" - expense_type: PROGRAM - has_or_had_quantity: + has_quantity: quantity_value: 62000000.0 quantity_type: BUDGET_AMOUNT - has_or_had_measurement_unit: + has_measurement_unit: unit_symbol: EUR unit_type: CURRENCY description: "Program service expenses FY2023" @@ -69,15 +69,15 @@ classes: related_mappings: - frapo:hasFunding slots: - - has_or_had_type - - has_or_had_quantity # was: amount + currency (migrated 2026-01-22) - - has_or_had_description + - has_type + - has_quantity # was: amount + currency (migrated 2026-01-22) + - has_description - temporal_extent # was: valid_from + valid_to slot_usage: - has_or_had_type: + has_type: range: ExpenseTypeEnum required: true - has_or_had_quantity: + has_quantity: range: integer required: true inlined: false # Fixed invalid inline for primitive type @@ -94,25 +94,25 @@ classes: across institution types with financial reporting requirements. examples: - value: - has_or_had_type: ADMINISTRATIVE - has_or_had_quantity: - has_or_had_measurement_unit: + has_type: ADMINISTRATIVE + has_quantity: + has_measurement_unit: unit_symbol: EUR temporal_extent: begin_of_the_begin: "2023-01-01" end_of_the_end: "2023-12-31" - value: - has_or_had_type: PROGRAM - has_or_had_quantity: - has_or_had_measurement_unit: + has_type: PROGRAM + has_quantity: + has_measurement_unit: unit_symbol: EUR temporal_extent: begin_of_the_begin: "2023-01-01" end_of_the_end: "2023-12-31" - value: - has_or_had_type: FUNDRAISING - has_or_had_quantity: - has_or_had_measurement_unit: + has_type: FUNDRAISING + has_quantity: + has_measurement_unit: unit_symbol: EUR # REMOVED inline slots 2026-01-16 - Rule 48 violation # Slots are imported from ../slots/ - do not define inline diff --git a/schemas/20251121/linkml/modules/classes/Experience.yaml b/schemas/20251121/linkml/modules/classes/Experience.yaml index 3e8740cec9..0798cec7a5 100644 --- a/schemas/20251121/linkml/modules/classes/Experience.yaml +++ b/schemas/20251121/linkml/modules/classes/Experience.yaml @@ -10,24 +10,24 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score default_prefix: hc classes: Experience: class_uri: skos:Concept description: A specific experience entry. slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_score + - identified_by + - has_label + - has_description + - has_score slot_usage: - has_or_had_label: + has_label: # range: string - has_or_had_description: + has_description: # range: string annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ExpertiseArea.yaml b/schemas/20251121/linkml/modules/classes/ExpertiseArea.yaml index 28e0ebdbed..1cba87bcb3 100644 --- a/schemas/20251121/linkml/modules/classes/ExpertiseArea.yaml +++ b/schemas/20251121/linkml/modules/classes/ExpertiseArea.yaml @@ -10,22 +10,22 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score default_prefix: hc classes: ExpertiseArea: class_uri: skos:Concept description: A domain of expertise. slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_score + - identified_by + - has_label + - has_description + - has_score slot_usage: - has_or_had_label: + has_label: # range: string annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/Extension.yaml b/schemas/20251121/linkml/modules/classes/Extension.yaml index ebf469ff46..33d7bb1fd5 100644 --- a/schemas/20251121/linkml/modules/classes/Extension.yaml +++ b/schemas/20251121/linkml/modules/classes/Extension.yaml @@ -10,24 +10,24 @@ prefixes: prov: http://www.w3.org/ns/prov# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score default_prefix: hc classes: Extension: class_uri: prov:Activity description: An extension of a loan or agreement. slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_quantity - - has_or_had_score + - identified_by + - has_label + - has_description + - has_quantity + - has_score slot_usage: - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type annotations: diff --git a/schemas/20251121/linkml/modules/classes/ExternalFunding.yaml b/schemas/20251121/linkml/modules/classes/ExternalFunding.yaml index e8f2f7b1d5..1531d59487 100644 --- a/schemas/20251121/linkml/modules/classes/ExternalFunding.yaml +++ b/schemas/20251121/linkml/modules/classes/ExternalFunding.yaml @@ -10,24 +10,24 @@ prefixes: frapo: http://purl.org/cerif/frapo/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score default_prefix: hc classes: ExternalFunding: class_uri: frapo:Funding description: Funding from external sources. slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_quantity - - has_or_had_score + - identified_by + - has_label + - has_description + - has_quantity + - has_score slot_usage: - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type annotations: diff --git a/schemas/20251121/linkml/modules/classes/ExternalResource.yaml b/schemas/20251121/linkml/modules/classes/ExternalResource.yaml index 0cfcf55633..9968460651 100644 --- a/schemas/20251121/linkml/modules/classes/ExternalResource.yaml +++ b/schemas/20251121/linkml/modules/classes/ExternalResource.yaml @@ -16,15 +16,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_url classes: ExternalResource: class_uri: schema:CreativeWork description: External resource. slots: - - has_or_had_label - - has_or_had_url + - has_label + - has_url annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ExternalWork.yaml b/schemas/20251121/linkml/modules/classes/ExternalWork.yaml index 749db28f39..23cb09b5ba 100644 --- a/schemas/20251121/linkml/modules/classes/ExternalWork.yaml +++ b/schemas/20251121/linkml/modules/classes/ExternalWork.yaml @@ -15,7 +15,7 @@ classes: **EXAMPLES**: - Conservation work from external specialists - Digitization services - Research collaborations - Restoration projects - Used with `accepts_or_accepted` slot to indicate what types of external work + Used with `accept` slot to indicate what types of external work an institution will accept or commission.' class_uri: schema:Service close_mappings: diff --git a/schemas/20251121/linkml/modules/classes/ExtractionMetadata.yaml b/schemas/20251121/linkml/modules/classes/ExtractionMetadata.yaml index 859e9c5560..f1ecdfcd98 100644 --- a/schemas/20251121/linkml/modules/classes/ExtractionMetadata.yaml +++ b/schemas/20251121/linkml/modules/classes/ExtractionMetadata.yaml @@ -13,42 +13,42 @@ imports: - linkml:types - ../enums/ProfileExtractionMethodEnum - ../metadata - - ../slots/has_or_had_expense - - ../slots/has_or_had_identifier - - ../slots/has_or_had_method - - ../slots/has_or_had_score - - ../slots/has_or_had_source - - ../slots/has_or_had_url - - ../slots/is_or_was_retrieved_by + - ../slots/20260202_matang/has_expense + - ../slots/identified_by + - ../slots/20260202_matang/has_method + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_source + - ../slots/20260202_matang/has_url + - ../slots/20260202_matang/retrieved_by - ../slots/llm_response - ../slots/retrieval_timestamp # default_range: string classes: ExtractionMetadata: class_uri: prov:Activity - description: "Provenance metadata for data extraction activities.\n\nRecords how, when, and by what agent data was extracted from \nexternal sources (LinkedIn, web scraping, APIs).\n\n**PROV-O Alignment**:\n- ExtractionMetadata IS a prov:Activity (the extraction process)\n- The extracted data IS the prov:Entity (output of the activity)\n- is_or_was_retrieved_by IS the prov:Agent (software/AI that performed extraction)\n- has_or_had_source/has_or_had_url IS prov:used (input to the activity)\n\n**Use Cases**:\n- LinkedIn profile extractions via Exa API\n- Web scraping provenance\n- Staff list parsing provenance\n- Connection network extraction\n\n**Example JSON Structure**:\n```json\n{\n \"extraction_metadata\": {\n \"has_or_had_source\": \"/path/to/source.json\",\n \"has_or_had_identifier\": \"org_staff_0001_name\",\n \"retrieval_timestamp\": \"2025-12-12T22:00:00Z\",\n \"has_or_had_method\": \"exa_crawling_exa\",\n \"is_or_was_retrieved_by\": \"claude-opus-4.5\",\n \"has_or_had_url\": \"https://www.linkedin.com/in/...\"\ - ,\n \"has_or_had_expense\": 0.001\n }\n}\n```\n" + description: "Provenance metadata for data extraction activities.\n\nRecords how, when, and by what agent data was extracted from \nexternal sources (LinkedIn, web scraping, APIs).\n\n**PROV-O Alignment**:\n- ExtractionMetadata IS a prov:Activity (the extraction process)\n- The extracted data IS the prov:Entity (output of the activity)\n- retrieved_by IS the prov:Agent (software/AI that performed extraction)\n- has_source/has_url IS prov:used (input to the activity)\n\n**Use Cases**:\n- LinkedIn profile extractions via Exa API\n- Web scraping provenance\n- Staff list parsing provenance\n- Connection network extraction\n\n**Example JSON Structure**:\n```json\n{\n \"extraction_metadata\": {\n \"has_source\": \"/path/to/source.json\",\n \"identified_by\": \"org_staff_0001_name\",\n \"retrieval_timestamp\": \"2025-12-12T22:00:00Z\",\n \"has_method\": \"exa_crawling_exa\",\n \"retrieved_by\": \"claude-opus-4.5\",\n \"has_url\": \"https://www.linkedin.com/in/...\"\ + ,\n \"has_expense\": 0.001\n }\n}\n```\n" exact_mappings: - prov:Activity close_mappings: - schema:Action - dct:ProvenanceStatement slots: - - has_or_had_expense - - is_or_was_retrieved_by + - has_expense + - retrieved_by - retrieval_timestamp - - has_or_had_method - - has_or_had_url + - has_method + - has_url - llm_response - - has_or_had_identifier - - has_or_had_source - - has_or_had_score + - identified_by + - has_source + - has_score slot_usage: - has_or_had_source: + has_source: # range: string examples: - value: /data/custodian/person/affiliated/parsed/rijksmuseum_staff_20251210T155416Z.json - has_or_had_identifier: + identified_by: # range: string pattern: ^[a-z0-9-]+_staff_[a-z0-9-_]+$ examples: @@ -59,22 +59,22 @@ classes: required: true examples: - value: '2025-12-12T22:00:00Z' - has_or_had_method: + has_method: range: ProfileExtractionMethodEnum required: true examples: - value: exa_crawling_exa - is_or_was_retrieved_by: + retrieved_by: # range: string examples: - value: claude-opus-4.5 - value: '' - has_or_had_url: + has_url: range: uri pattern: ^https://www\.linkedin\.com/in/[a-z0-9-]+/?$ examples: - value: https://www.linkedin.com/in/jan-van-der-berg-12345 - has_or_had_expense: + has_expense: range: float minimum_value: 0.0 examples: @@ -89,8 +89,8 @@ classes: comments: - Every person entity file MUST have extraction_metadata - See AGENTS.md Rule 20 for required fields - - is_or_was_retrieved_by should be 'claude-opus-4.5' for manual extraction - - has_or_had_expense enables budget tracking for API-heavy extractions + - retrieved_by should be 'claude-opus-4.5' for manual extraction + - has_expense enables budget tracking for API-heavy extractions see_also: - https://www.w3.org/TR/prov-o/ - https://docs.exa.ai/ diff --git a/schemas/20251121/linkml/modules/classes/ExtractionMethod.yaml b/schemas/20251121/linkml/modules/classes/ExtractionMethod.yaml index c56e6666cd..e6596cb5bd 100644 --- a/schemas/20251121/linkml/modules/classes/ExtractionMethod.yaml +++ b/schemas/20251121/linkml/modules/classes/ExtractionMethod.yaml @@ -9,7 +9,7 @@ prefixes: nif: http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-core# imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label default_prefix: hc classes: ExtractionMethod: @@ -22,9 +22,9 @@ classes: - nif:Context - schema:HowTo slots: - - has_or_had_label + - has_label slot_usage: - has_or_had_label: + has_label: range: Label inlined: true required: true @@ -34,14 +34,14 @@ classes: - Enables structured representation of extraction techniques examples: - value: - has_or_had_label: - has_or_had_label: xpath_exact_match + has_label: + has_label: xpath_exact_match - value: - has_or_had_label: - has_or_had_label: nlp_ner + has_label: + has_label: nlp_ner - value: - has_or_had_label: - has_or_had_label: json_ld_parse + has_label: + has_label: json_ld_parse annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ExtractionSourceInfo.yaml b/schemas/20251121/linkml/modules/classes/ExtractionSourceInfo.yaml index 7b2b65546f..24702137ee 100644 --- a/schemas/20251121/linkml/modules/classes/ExtractionSourceInfo.yaml +++ b/schemas/20251121/linkml/modules/classes/ExtractionSourceInfo.yaml @@ -15,9 +15,9 @@ prefixes: org: http://www.w3.org/ns/org# imports: - linkml:types - - ../slots/has_or_had_field - - ../slots/has_or_had_text - - ../slots/has_or_had_method + - ../slots/20260202_matang/has_field + - ../slots/20260202_matang/has_text + - ../slots/20260202_matang/has_method # default_range: string classes: ExtractionSourceInfo: @@ -29,15 +29,15 @@ classes: - prov:Derivation - schema:PropertyValue slots: - - has_or_had_field - - has_or_had_text - - has_or_had_method + - has_field + - has_text + - has_method slot_usage: - has_or_had_field: + has_field: description: Field name that was extracted - has_or_had_text: + has_text: description: The text that was extracted - has_or_had_method: + has_method: description: Extraction method (pattern_matching, llm, etc.) # range: string annotations: diff --git a/schemas/20251121/linkml/modules/classes/Facility.yaml b/schemas/20251121/linkml/modules/classes/Facility.yaml index 894119147c..da954ef1d5 100644 --- a/schemas/20251121/linkml/modules/classes/Facility.yaml +++ b/schemas/20251121/linkml/modules/classes/Facility.yaml @@ -8,7 +8,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type classes: Facility: class_uri: schema:Place @@ -27,9 +27,9 @@ classes: ' slots: - - has_or_had_type + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie close_mappings: - schema:Place diff --git a/schemas/20251121/linkml/modules/classes/FacilityType.yaml b/schemas/20251121/linkml/modules/classes/FacilityType.yaml index a4774168ea..1b06ed29ac 100644 --- a/schemas/20251121/linkml/modules/classes/FacilityType.yaml +++ b/schemas/20251121/linkml/modules/classes/FacilityType.yaml @@ -8,18 +8,18 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: FacilityType: class_uri: skos:Concept abstract: true description: "Abstract base class for facility type classifications.\n\n**FACILITY CATEGORIES**:\n- FOOD_SERVICE: Caf\xE9s, restaurants, vending\n- RETAIL: Gift shops, bookstores\n- PARKING: Car parks, bike storage\n- RESEARCH: Reading rooms, study areas\n- STORAGE: Collection storage facilities\n- ACCESSIBILITY: Wheelchair access, assistive devices\n" slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description exact_mappings: - skos:Concept annotations: diff --git a/schemas/20251121/linkml/modules/classes/Feature.yaml b/schemas/20251121/linkml/modules/classes/Feature.yaml index 2f231d0446..969f1bb59d 100644 --- a/schemas/20251121/linkml/modules/classes/Feature.yaml +++ b/schemas/20251121/linkml/modules/classes/Feature.yaml @@ -15,19 +15,19 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type default_prefix: hc classes: Feature: class_uri: crm:E27_Site slots: - - has_or_had_type - - has_or_had_label - - has_or_had_description + - has_type + - has_label + - has_description slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/FeatureCustodianType.yaml b/schemas/20251121/linkml/modules/classes/FeatureCustodianType.yaml index e4b7ce369f..9272fbc734 100644 --- a/schemas/20251121/linkml/modules/classes/FeatureCustodianType.yaml +++ b/schemas/20251121/linkml/modules/classes/FeatureCustodianType.yaml @@ -5,11 +5,11 @@ description: "Specialized CustodianType for organizations managing physical heri - Heritage landscape conservancies\n\nCoverage: Corresponds to 'F' (FEATURES) in GLAMORCUBESFIXPHDNT taxonomy.\n" imports: - linkml:types - - ../slots/has_or_had_activity - - ../slots/has_or_had_score - - ../slots/has_or_had_service - - ../slots/has_or_had_type - - ../slots/is_or_was_managed_by + - ../slots/20260202_matang/has_activity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_service + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/managed_by - ../slots/manages_or_managed - ../slots/site_portfolio prefixes: @@ -124,7 +124,7 @@ classes: \ - Entities preserving historic forts\n- Q23413 (castle management) - Organizations operating historic castles\n\nLandscape Conservancies:\n- Q22698 (park authority) - Agencies managing heritage parks\n- Q39614 (cemetery trust) - Organizations maintaining historic cemeteries\n- Q1107656 (garden conservancy) - Entities preserving historic gardens\n\nUNESCO World Heritage:\n- Q9259 (World Heritage Site managers) - Organizations managing UNESCO sites\n- International heritage site operations\n\nPublic Infrastructure Heritage:\n- Q474 (railway heritage operator) - Organizations preserving historic railways\n- Q44782 (port authority heritage) - Entities managing historic ports\n- Q11446 (ship preservation society) - Organizations maintaining historic vessels\n\nReligious Heritage Management:\n- Q16970 (parish church trust) - Organizations managing historic churches\n- Q44539 (temple conservation) - Entities preserving religious sites\n- Q32815 (mosque heritage committee) - Organizations\ \ maintaining historic mosques\n\n**Key Distinctions from Other Types**:\n\nvs. Museum:\n- FeatureCustodian: Manages OUTDOOR/IN-SITU heritage features (cannot be relocated)\n- Museum: Houses INDOOR/MOVABLE collections (can be relocated)\n- Example: Eiffel Tower management \u2260 Museum (Eiffel Tower cannot move to museum)\n\nvs. OfficialInstitution:\n- FeatureCustodian: Manages SPECIFIC physical features (single monument, site)\n- OfficialInstitution: Provides OVERSIGHT/POLICY for heritage sector\n- Example: National Park Service (policy) vs. Liberty Bell site manager (feature)\n\nvs. HeritageSociety:\n- FeatureCustodian: PROFESSIONAL management of physical features\n- HeritageSociety: VOLUNTEER-BASED membership organization\n- Example: English Heritage (1,500 staff) vs. local heritage society (volunteers)\n\nvs. NonProfit:\n- FeatureCustodian: Primary mission = FEATURE PRESERVATION/ACCESS\n- NonProfit: Primary mission = ADVOCACY/EDUCATION (not site management)\n- Example: Landmark\ \ trust (owns sites) vs. heritage advocacy group (lobbies)\n\nvs. BioCustodian:\n- FeatureCustodianType: NON-LIVING heritage features (monuments, buildings)\n- BioCustodianType: LIVING collections (plants, animals)\n- Example: Historic garden trust (landscape) vs. Botanical garden (living plants)\n\n**RDF Serialization Example**:\n\n```turtle\n@prefix hc: <https://nde.nl/ontology/hc/> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix schema: <http://schema.org/> .\n@prefix crm: <http://www.cidoc-crm.org/cidoc-crm/> .\n\nhc:FeatureCustodianType\n a skos:Concept, hc:CustodianType ;\n skos:prefLabel \"Feature Custodian Type\"@en,\n \"Monumentenbeheerder Type\"@nl,\n \"Denkmalpfleger Typ\"@de,\n \"Type de Gestionnaire de Monument\"@fr ;\n skos:definition \"Organizations managing physical heritage features\"@en ;\n skos:broader hc:CustodianType ;\n skos:narrower hc:MonumentManager,\n hc:LandmarkOperator,\n\ - \ hc:SitePreservationTrust ;\n schema:url <https://nde.nl/ontology/hc/class/feature-custodian-type> .\n\n# Example: English Heritage (manages 400+ monuments in England)\n<https://w3id.org/heritage/custodian/gb/english-heritage>\n a schema:Organization, crm:E39_Actor, hc:FeatureCustodian ;\n hc:custodian_type hc:FeatureCustodianType ;\n hc:manages_or_managed \"Monument\", \"Castle\", \"Historic house\", \"Abbey\", \"Fort\" ;\n hc:site_portfolio \"400+ historic sites and monuments across England\" ;\n hc:visitor_services \"On-site interpretation\", \"Guided tours\", \"Events\", \"Gift shops\", \"Caf\xE9s\" ;\n hc:conservation_activities \"Monument preservation\", \"Structural repairs\", \"Archaeological research\" ;\n hc:access_management \"Ticketing\", \"Opening hours\", \"Accessibility programs\", \"Education visits\" ;\n hc:is_or_was_managed_by \"Charitable trust ownership and management\" ;\n schema:foundingDate \"1983-04-01\" ;\n schema:legalName \"English\ + \ hc:SitePreservationTrust ;\n schema:url <https://nde.nl/ontology/hc/class/feature-custodian-type> .\n\n# Example: English Heritage (manages 400+ monuments in England)\n<https://w3id.org/heritage/custodian/gb/english-heritage>\n a schema:Organization, crm:E39_Actor, hc:FeatureCustodian ;\n hc:custodian_type hc:FeatureCustodianType ;\n hc:manages_or_managed \"Monument\", \"Castle\", \"Historic house\", \"Abbey\", \"Fort\" ;\n hc:site_portfolio \"400+ historic sites and monuments across England\" ;\n hc:visitor_services \"On-site interpretation\", \"Guided tours\", \"Events\", \"Gift shops\", \"Caf\xE9s\" ;\n hc:conservation_activities \"Monument preservation\", \"Structural repairs\", \"Archaeological research\" ;\n hc:access_management \"Ticketing\", \"Opening hours\", \"Accessibility programs\", \"Education visits\" ;\n hc:managed_by \"Charitable trust ownership and management\" ;\n schema:foundingDate \"1983-04-01\" ;\n schema:legalName \"English\ \ Heritage Trust\" ;\n schema:url <https://www.english-heritage.org.uk/> ;\n hc:manages_feature <https://w3id.org/heritage/feature/gb/stonehenge>,\n <https://w3id.org/heritage/feature/gb/dover-castle> .\n```\n" broad_mappings: - skos:Concept @@ -137,13 +137,13 @@ classes: - schema:Place - schema:CivicStructure slots: - - has_or_had_activity - - has_or_had_type + - has_activity + - has_type - manages_or_managed - site_portfolio - - is_or_was_managed_by - - has_or_had_score - - has_or_had_service + - managed_by + - has_score + - has_service slot_usage: manages_or_managed: # range: string @@ -160,7 +160,7 @@ classes: - value: 400+ historic sites across England - value: 'Single monument: Eiffel Tower' - value: 150+ National Trust properties - has_or_had_service: + has_service: # range: string inlined: false # Fixed invalid inline for primitive type required: true @@ -171,7 +171,7 @@ classes: service_type: VISITOR - value: service_type: VISITOR - has_or_had_activity: + has_activity: # range: string required: true examples: @@ -180,12 +180,12 @@ classes: - value: Monitoring condition, Emergency stabilization - value: Free public access, No booking required - value: Restricted access, Conservation priority, Virtual alternatives - is_or_was_managed_by: + managed_by: # range: string # uriorcurie required: true examples: - value: Charitable trust ownership and management - value: Government agency, Statutory authority - value: Public-private partnership, 99-year lease - has_or_had_type: + has_type: equals_expression: '["hc:FeatureCustodianType"]' diff --git a/schemas/20251121/linkml/modules/classes/FeaturePlace.yaml b/schemas/20251121/linkml/modules/classes/FeaturePlace.yaml index 342ba70364..7528a675d6 100644 --- a/schemas/20251121/linkml/modules/classes/FeaturePlace.yaml +++ b/schemas/20251121/linkml/modules/classes/FeaturePlace.yaml @@ -5,14 +5,14 @@ imports: - linkml:types - ../enums/FeatureTypeEnum - ../enums/PlaceSpecificityEnum - - ../slots/classifies_or_classified - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_note - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/classify + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by - ../slots/temporal_extent classes: FeaturePlace: @@ -32,17 +32,17 @@ classes: - dcterms:Location - geo:Feature slots: - - classifies_or_classified - - has_or_had_type - - has_or_had_description - - has_or_had_label - - has_or_had_note - - has_or_had_score + - classify + - has_type + - has_description + - has_label + - has_note + - has_score - temporal_extent - - is_or_was_derived_from - - is_or_was_generated_by + - derived_from + - generated_by slot_usage: - has_or_had_label: + has_label: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type @@ -54,7 +54,7 @@ classes: - value: label_text: Manor house in Schilderswijk language_code: en - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type required: false @@ -63,12 +63,12 @@ classes: description_text: Neo-Gothic museum building designed by P.J.H. Cuypers, opened 1885 - value: description_text: 17th-century canal mansion with ornate gable facade - classifies_or_classified: + classify: range: CustodianPlace required: true examples: - value: https://nde.nl/ontology/hc/place/rijksmuseum-location - has_or_had_note: + has_note: # range: string inlined: false # Fixed invalid inline for primitive type required: false @@ -77,11 +77,11 @@ classes: note_content: Classified as museum building based on current function - value: note_content: 'Rijksmonument #12345, Neo-Gothic style' - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: true - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false temporal_extent: @@ -94,7 +94,7 @@ classes: - value: begin_of_the_begin: '1650-01-01' end_of_the_end: '1950-12-31' - has_or_had_type: + has_type: equals_expression: '["hc:FeatureCustodianType"]' comments: - 'Represents FEATURE TYPE CLASSIFICATION: typological classification of nominal place references' @@ -110,43 +110,43 @@ classes: - https://schema.org/Place examples: - value: - has_or_had_type: MUSEUM - has_or_had_label: + has_type: MUSEUM + has_label: label_text: Rijksmuseum building language_code: nl - has_or_had_description: + has_description: description_text: Neo-Gothic museum building designed by P.J.H. Cuypers, opened 1885 - has_or_had_note: + has_note: note_content: Rijksmonument, national heritage building - classifies_or_classified: https://nde.nl/ontology/hc/place/rijksmuseum-ams - is_or_was_derived_from: + classify: https://nde.nl/ontology/hc/place/rijksmuseum-ams + derived_from: - https://w3id.org/heritage/observation/heritage-register-entry - is_or_was_generated_by: null + generated_by: null temporal_extent: begin_of_the_begin: '1885-07-13' - value: - has_or_had_type: MANSION - has_or_had_label: + has_type: MANSION + has_label: label_text: Canal mansion language_code: en - has_or_had_description: + has_description: description_text: 17th-century patrician mansion with ornate gable facade - has_or_had_note: + has_note: note_content: Classified as mansion based on architectural survey - classifies_or_classified: https://nde.nl/ontology/hc/place/herenhuis-schilderswijk - is_or_was_derived_from: + classify: https://nde.nl/ontology/hc/place/herenhuis-schilderswijk + derived_from: - https://w3id.org/heritage/observation/notarial-deed-1850 temporal_extent: begin_of_the_begin: '1650-01-01' - value: - has_or_had_type: PARISH_CHURCH - has_or_had_label: + has_type: PARISH_CHURCH + has_label: label_text: Medieval parish church language_code: en - has_or_had_description: + has_description: description_text: Gothic church building with 14th-century tower - classifies_or_classified: https://nde.nl/ontology/hc/place/oude-kerk-ams - is_or_was_derived_from: + classify: https://nde.nl/ontology/hc/place/oude-kerk-ams + derived_from: - https://w3id.org/heritage/observation/church-archive-catalog temporal_extent: begin_of_the_begin: '1306-01-01' diff --git a/schemas/20251121/linkml/modules/classes/FeatureType.yaml b/schemas/20251121/linkml/modules/classes/FeatureType.yaml index 44ef79528d..e1046ff8bc 100644 --- a/schemas/20251121/linkml/modules/classes/FeatureType.yaml +++ b/schemas/20251121/linkml/modules/classes/FeatureType.yaml @@ -11,16 +11,16 @@ prefixes: aat: http://vocab.getty.edu/aat/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: FeatureType: class_uri: skos:Concept abstract: true slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/FeaturedItem.yaml b/schemas/20251121/linkml/modules/classes/FeaturedItem.yaml index 5b52582cd8..f01caf5e74 100644 --- a/schemas/20251121/linkml/modules/classes/FeaturedItem.yaml +++ b/schemas/20251121/linkml/modules/classes/FeaturedItem.yaml @@ -9,17 +9,17 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_image - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_image + - ../slots/20260202_matang/has_label classes: FeaturedItem: class_uri: schema:CreativeWork description: Featured item. slots: - - has_or_had_label - - has_or_had_description - - has_or_had_image + - has_label + - has_description + - has_image annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/FeaturedObject.yaml b/schemas/20251121/linkml/modules/classes/FeaturedObject.yaml index e20a65fdd4..a0e592aa8b 100644 --- a/schemas/20251121/linkml/modules/classes/FeaturedObject.yaml +++ b/schemas/20251121/linkml/modules/classes/FeaturedObject.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: FeaturedObject: class_uri: schema:Thing description: Featured object. slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Fee.yaml b/schemas/20251121/linkml/modules/classes/Fee.yaml index 152ef9b856..20ab6a425f 100644 --- a/schemas/20251121/linkml/modules/classes/Fee.yaml +++ b/schemas/20251121/linkml/modules/classes/Fee.yaml @@ -9,19 +9,19 @@ prefixes: dcterms: http://purl.org/dc/terms/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_quantity - - ../slots/has_or_had_unit + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_unit default_prefix: hc classes: Fee: class_uri: schema:PriceSpecification slots: - - has_or_had_quantity - - has_or_had_unit - - has_or_had_description + - has_quantity + - has_unit + - has_description slot_usage: - has_or_had_quantity: + has_quantity: range: integer required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/FellowsProgram.yaml b/schemas/20251121/linkml/modules/classes/FellowsProgram.yaml index 7124550f68..7f6bdb4a31 100644 --- a/schemas/20251121/linkml/modules/classes/FellowsProgram.yaml +++ b/schemas/20251121/linkml/modules/classes/FellowsProgram.yaml @@ -16,13 +16,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: FellowsProgram: class_uri: schema:Project description: Fellowship program. slots: - - has_or_had_name + - has_name annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/FieldOfStudy.yaml b/schemas/20251121/linkml/modules/classes/FieldOfStudy.yaml index bbfdb6c91b..b9782bf49b 100644 --- a/schemas/20251121/linkml/modules/classes/FieldOfStudy.yaml +++ b/schemas/20251121/linkml/modules/classes/FieldOfStudy.yaml @@ -9,15 +9,15 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: FieldOfStudy: class_uri: skos:Concept slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/FileAPI.yaml b/schemas/20251121/linkml/modules/classes/FileAPI.yaml index 5bc450df0b..e44f9126a5 100644 --- a/schemas/20251121/linkml/modules/classes/FileAPI.yaml +++ b/schemas/20251121/linkml/modules/classes/FileAPI.yaml @@ -13,7 +13,7 @@ imports: - linkml:types - ../enums/ContentDispositionEnum - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score classes: FileAPI: is_a: DataServiceEndpoint @@ -29,7 +29,7 @@ classes: \ endpoint_name: \"Nationaal Archief File API\"\n base_url: \"https://service.archief.nl/gaf/api/file/v1/\"\ \n url_pattern: \"{base_url}{uuid}/{level}/{format}\"\n version: \"v1\"\n\ \ supported_levels:\n - MASTER\n - HIGH\n - MEDIUM\n - LOW\n \ - \ - THUMBNAIL\n has_or_had_format: # was: supported_format - migrated 2026-01-16\n\ + \ - THUMBNAIL\n has_format: # was: supported_format - migrated 2026-01-16\n\ \ - image/jpeg\n - image/png\n - application/pdf\n max_file_size_mb:\ \ 500\n supports_range_requests: true\n example_url: \"https://service.archief.nl/gaf/api/file/v1/12345678.../high/jpeg\"\ \n```\n\n**Use Cases:**\n\n1. **Download master files**: Archival-quality preservation\ @@ -45,9 +45,9 @@ classes: - https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition slots: - - has_or_had_score - - has_or_had_format - - is_or_was_access_restricted + - has_score + - has_format + - access_restricted annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/FileLocation.yaml b/schemas/20251121/linkml/modules/classes/FileLocation.yaml index c2ea65727c..0f0757e872 100644 --- a/schemas/20251121/linkml/modules/classes/FileLocation.yaml +++ b/schemas/20251121/linkml/modules/classes/FileLocation.yaml @@ -14,15 +14,15 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_value classes: FileLocation: class_uri: skos:Concept description: A file location. slots: - - has_or_had_value - - has_or_had_label + - has_value + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class. diff --git a/schemas/20251121/linkml/modules/classes/FilePath.yaml b/schemas/20251121/linkml/modules/classes/FilePath.yaml index 276b64b078..4c8e720a15 100644 --- a/schemas/20251121/linkml/modules/classes/FilePath.yaml +++ b/schemas/20251121/linkml/modules/classes/FilePath.yaml @@ -9,17 +9,17 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: FilePath: class_uri: schema:DigitalDocument description: "Path to a file." slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description slot_usage: - has_or_had_label: + has_label: # range: string required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/FilmArchive.yaml b/schemas/20251121/linkml/modules/classes/FilmArchive.yaml index 390d263acf..44191c610d 100644 --- a/schemas/20251121/linkml/modules/classes/FilmArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/FilmArchive.yaml @@ -9,10 +9,10 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: FilmArchive: @@ -20,17 +20,17 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null hold_or_held_record_set_type: equals_expression: '["hc:FeatureFilmCollection", "hc:DocumentaryFilmCollection", "hc:NewsreelSeries", "hc:ProductionRecordsFonds", "hc:FilmPromoCollection"] ' - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Film Archive diff --git a/schemas/20251121/linkml/modules/classes/FilmArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/FilmArchiveRecordSetType.yaml index 0da22653c4..845e714582 100644 --- a/schemas/20251121/linkml/modules/classes/FilmArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/FilmArchiveRecordSetType.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to classes: FilmArchiveRecordSetType: abstract: true @@ -29,10 +29,10 @@ classes: - ProductionRecordsFonds - FilmPromoCollection slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/FilmArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/FilmArchiveRecordSetTypes.yaml index 4e39050de3..6e9df651aa 100644 --- a/schemas/20251121/linkml/modules/classes/FilmArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/FilmArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./FilmArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/legal_note - ../slots/organizational_principle - ../slots/organizational_principle_uri @@ -79,8 +79,8 @@ classes: - rico-rst:Collection - FilmArchive slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - preservation_note @@ -89,7 +89,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: FeatureFilmCollection @@ -171,8 +171,8 @@ classes: industrial, and cultural research. Often commissioned by organizations whose archives may contain related paper records. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -180,7 +180,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:ResearchOrganizationType"]' record_set_type: equals_string: DocumentaryFilmCollection @@ -254,8 +254,8 @@ classes: major historical events, daily life, and social conditions. Often accompanied by paper documentation (shot lists, scripts). slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -263,7 +263,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: NewsreelSeries @@ -333,8 +333,8 @@ classes: - rico-rst:Fonds - CorporateGovernanceFonds slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - legal_note - organizational_principle - organizational_principle_uri @@ -343,7 +343,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ProductionRecordsFonds @@ -422,8 +422,8 @@ classes: value for graphic design history, advertising history, and star/celebrity culture. Poster collections may be exhibited as art. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -431,7 +431,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:MuseumType"]' record_set_type: equals_string: FilmPromoCollection diff --git a/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml b/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml index b2ea71c39d..fc7c86d976 100644 --- a/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml +++ b/schemas/20251121/linkml/modules/classes/FinancialStatement.yaml @@ -4,21 +4,21 @@ title: FinancialStatement Class imports: - linkml:types - ../enums/FinancialStatementTypeEnum - - ../slots/documents_or_documented + - ../slots/20260202_matang/document - ../slots/draws_or_drew_opinion - - ../slots/has_or_had_asset - - ../slots/has_or_had_expense - - ../slots/has_or_had_format - - ../slots/has_or_had_identifier - - ../slots/has_or_had_liability - - ../slots/has_or_had_revenue - - ../slots/has_or_had_status - - ../slots/has_or_had_type - - ../slots/has_or_had_url - - ../slots/is_or_was_based_on - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by - - ../slots/is_or_was_published_at + - ../slots/20260202_matang/has_asset + - ../slots/20260202_matang/has_expense + - ../slots/20260202_matang/has_format + - ../slots/identified_by + - ../slots/20260202_matang/has_liability + - ../slots/20260202_matang/has_revenue + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_url + - ../slots/20260202_matang/based_on + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by + - ../slots/20260202_matang/published_at - ../slots/managing_unit - ../slots/refers_to_custodian - ../slots/reporting_period_end @@ -63,12 +63,12 @@ classes: - frapo:hasFunding - prov:Entity slots: - - has_or_had_expense + - has_expense - states_or_stated - - has_or_had_revenue + - has_revenue - temporal_extent - - is_or_was_derived_from - - is_or_was_generated_by + - derived_from + - generated_by slot_usage: statement_name: # range: string @@ -85,7 +85,7 @@ classes: reporting_period_end: range: date required: true - is_or_was_published_at: + published_at: required: false range: PublicationEvent inlined: true @@ -101,7 +101,7 @@ classes: required: true examples: - value: EUR - has_or_had_revenue: + has_revenue: range: Revenue multivalued: true inlined: true @@ -110,15 +110,15 @@ classes: description: 'Structured revenue data with amount, currency, and time period. Replaces simple decimal total_revenue field with rich Revenue class. Rule 53: Branch 1 = Currency, Branch 2 = TimeInterval.' examples: - value: - - has_or_had_label: Total Revenue FY2023 - has_or_had_quantity: - has_or_had_currency: + - has_label: Total Revenue FY2023 + has_quantity: + has_currency: currency_code: EUR - has_or_had_label: Euro + has_label: Euro currency_symbol: "\u20AC" - has_or_had_time_interval: + has_time_interval: revenue_category: TOTAL - has_or_had_expense: + has_expense: range: decimal required: false specifies_or_specified: @@ -126,37 +126,37 @@ classes: required: false inlined: true multivalued: true - has_or_had_asset: + has_asset: range: decimal required: false - has_or_had_liability: + has_liability: range: decimal required: false - has_or_had_format: + has_format: # range: string required: false - has_or_had_type: + has_type: # range: string required: false examples: - value: IRS Form 990 - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: false multivalued: true inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_status: + has_status: multivalued: true # range: string any_of: - range: AuditStatus examples: - value: - has_or_had_type: AuditedStatus - has_or_had_label: Audited - documents_or_documented: + has_type: AuditedStatus + has_label: Audited + document: # range: string # Budget multivalued: true required: false @@ -168,11 +168,11 @@ classes: refers_to_custodian: range: Custodian required: true - is_or_was_derived_from: + derived_from: # range: string # CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false temporal_extent: @@ -195,32 +195,32 @@ classes: statement_type: ANNUAL_REPORT reporting_period_start: '2023-01-01' reporting_period_end: '2023-12-31' - is_or_was_published_at: + published_at: temporal_extent: begin_of_the_begin: '2024-04-15T00:00:00Z' end_of_the_begin: '2024-04-15T00:00:00Z' begin_of_the_end: '2024-04-15T00:00:00Z' end_of_the_end: '2024-04-15T00:00:00Z' statement_currency: EUR - has_or_had_revenue: - - has_or_had_label: Total Revenue FY2023 - has_or_had_quantity: - has_or_had_currency: + has_revenue: + - has_label: Total Revenue FY2023 + has_quantity: + has_currency: currency_code: EUR - has_or_had_label: Euro + has_label: Euro currency_symbol: "\u20AC" - has_or_had_time_interval: + has_time_interval: revenue_category: TOTAL specifies_or_specified: - - has_or_had_net_asset: 3300000.0 + - has_net_asset: 3300000.0 currency: EUR - has_or_had_url: https://www.rijksmuseum.nl/en/about-us/annual-report-2023 - has_or_had_format: PDF - has_or_had_status: - - has_or_had_type: AuditedStatus - has_or_had_label: Audited + has_url: https://www.rijksmuseum.nl/en/about-us/annual-report-2023 + has_format: PDF + has_status: + - has_type: AuditedStatus + has_label: Audited - ACTIVE - documents_or_documented: + document: - https://nde.nl/ontology/hc/budget/rm/fy2023 refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 annotations: diff --git a/schemas/20251121/linkml/modules/classes/FinancialStatementType.yaml b/schemas/20251121/linkml/modules/classes/FinancialStatementType.yaml index e4fc8997a9..4a34526c6a 100644 --- a/schemas/20251121/linkml/modules/classes/FinancialStatementType.yaml +++ b/schemas/20251121/linkml/modules/classes/FinancialStatementType.yaml @@ -4,11 +4,11 @@ title: FinancialStatementType description: The type of a financial statement. imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: FinancialStatementType: class_uri: skos:Concept annotations: custodian_types: '["*"]' slots: - - has_or_had_label + - has_label diff --git a/schemas/20251121/linkml/modules/classes/FindingAid.yaml b/schemas/20251121/linkml/modules/classes/FindingAid.yaml index bf5996823a..02c09ca894 100644 --- a/schemas/20251121/linkml/modules/classes/FindingAid.yaml +++ b/schemas/20251121/linkml/modules/classes/FindingAid.yaml @@ -22,40 +22,40 @@ imports: - ../enums/LinkTypeEnum - ../enums/RelationshipTypeEnum - ../enums/SubGuideTypeEnum - - ../slots/contains_or_contained + - ../slots/20260202_matang/contain - ../slots/creator - ../slots/css_selector - ../slots/custodian - ../slots/date - - ../slots/has_or_had_content - - ../slots/has_or_had_description - - ../slots/has_or_had_file_location - - ../slots/has_or_had_format - - ../slots/has_or_had_geographic_extent - - ../slots/has_or_had_identifier - - ../slots/has_or_had_image - - ../slots/has_or_had_label - - ../slots/has_or_had_level - - ../slots/has_or_had_note - - ../slots/has_or_had_period - - ../slots/has_or_had_policy - - ../slots/has_or_had_provenance_path - - ../slots/has_or_had_restriction - - ../slots/has_or_had_score - - ../slots/has_or_had_status - - ../slots/has_or_had_type - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_content + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_file_location + - ../slots/20260202_matang/has_format + - ../slots/20260202_matang/has_geographic_extent + - ../slots/identified_by + - ../slots/20260202_matang/has_image + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_level + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_period + - ../slots/20260202_matang/has_policy + - ../slots/20260202_matang/has_provenance_path + - ../slots/20260202_matang/has_restriction + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_url - ../slots/inbound_from - - ../slots/includes_or_included + - ../slots/20260202_matang/include - ../slots/international - - ../slots/is_or_was_access_restricted - - ../slots/is_or_was_categorized_as - - ../slots/is_or_was_generated_by - - ../slots/is_or_was_instance_of - - ../slots/is_or_was_located_in - - ../slots/is_or_was_related_to - - ../slots/is_or_was_retrieved_through - - ../slots/is_or_was_superseded_by + - ../slots/20260202_matang/access_restricted + - ../slots/20260202_matang/categorized_as + - ../slots/20260202_matang/generated_by + - ../slots/20260202_matang/instance_of + - ../slots/20260202_matang/located_in + - ../slots/20260202_matang/related_to + - ../slots/20260202_matang/retrieved_through + - ../slots/20260202_matang/superseded_by - ../slots/is_sub_guide - ../slots/isbn - ../slots/isil @@ -128,28 +128,28 @@ classes: - crm:E31_Document - bf:Work slots: - - has_or_had_policy + - has_policy - creator - custodian - - has_or_had_description - - has_or_had_identifier - - has_or_had_note - - has_or_had_type - - has_or_had_format - - has_or_had_geographic_extent + - has_description + - identified_by + - has_note + - has_type + - has_format + - has_geographic_extent - isbn - language - - includes_or_included - - contains_or_contained + - include + - contain - note - - has_or_had_period + - has_period - start - - has_or_had_score + - has_score slot_usage: start: range: TemporalValue required: true - has_or_had_period: + has_period: range: TemporalPeriod multivalued: true inlined_as_list: true @@ -166,7 +166,7 @@ classes: - period_end - period_name - period_start - - has_or_had_score + - has_score slot_usage: period_name: # range: string @@ -185,7 +185,7 @@ classes: period_description: # range: string aliases: - - has_or_had_description + - has_description SubGuideReference: class_uri: rico:FindingAid @@ -195,19 +195,19 @@ classes: for "Civil Registry", "Notarial Records", etc. ' slots: - - is_or_was_access_restricted + - access_restricted - note - slug - - has_or_had_description - - has_or_had_content - - has_or_had_type - - has_or_had_score - - has_or_had_label - - has_or_had_url + - has_description + - has_content + - has_type + - has_score + - has_label + - has_url slot_usage: slug: required: true - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -219,15 +219,15 @@ classes: - value: 'label_value: "Civil Registry" language_code: "en" ' - has_or_had_url: + has_url: range: uri inlined: false # Fixed invalid inline for primitive type required: true - has_or_had_type: + has_type: # range: string # uriorcurie - is_or_was_access_restricted: + access_restricted: range: boolean - has_or_had_content: + has_content: # range: string examples: - value: 1811-1935 @@ -241,20 +241,20 @@ classes: (external archives with related holdings). ' slots: - - has_or_had_label - - has_or_had_identifier - - has_or_had_level - - contains_or_contained + - has_label + - identified_by + - has_level + - contain - list_item - section_id - - has_or_had_score - - has_or_had_provenance_path + - has_score + - has_provenance_path slot_usage: - has_or_had_level: + has_level: range: integer minimum_value: 1 maximum_value: 6 - contains_or_contained: + contain: multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type any_of: @@ -262,7 +262,7 @@ classes: - range: PageLink list_item: multivalued: true - has_or_had_provenance_path: + has_provenance_path: range: XPath inlined: true exact_mappings: @@ -277,8 +277,8 @@ classes: - link_text - link_type - link_url - - has_or_had_score - - has_or_had_provenance_path + - has_score + - has_provenance_path slot_usage: link_text: required: true @@ -289,7 +289,7 @@ classes: range: LinkTypeEnum is_sub_guide: range: boolean - has_or_had_provenance_path: + has_provenance_path: range: XPath inlined: true FeaturedCard: @@ -298,14 +298,14 @@ classes: Common on archive websites to highlight important sub-guides or resources. ' slots: - - has_or_had_description - - has_or_had_image - - has_or_had_label - - has_or_had_url - - has_or_had_score - - has_or_had_provenance_path + - has_description + - has_image + - has_label + - has_url + - has_score + - has_provenance_path slot_usage: - has_or_had_description: + has_description: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type @@ -318,33 +318,33 @@ classes: description_text: Card description in English description_type: card language: en - has_or_had_image: + has_image: range: Image multivalued: true inlined: true examples: - value: - has_or_had_url: - has_or_had_value: https://archive.org/images/card.jpg - has_or_had_label: + has_url: + has_value: https://archive.org/images/card.jpg + has_label: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type required: true examples: - value: - has_or_had_text: Kaart titel + has_text: Kaart titel language: nl - value: - has_or_had_text: Card title + has_text: Card title language: en - has_or_had_url: + has_url: range: uri inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_value: https://archive.org/page - has_or_had_provenance_path: + has_value: https://archive.org/page + has_provenance_path: range: XPath inlined: true types: diff --git a/schemas/20251121/linkml/modules/classes/FindingAidType.yaml b/schemas/20251121/linkml/modules/classes/FindingAidType.yaml index 94b5eabb4d..60e07c6013 100644 --- a/schemas/20251121/linkml/modules/classes/FindingAidType.yaml +++ b/schemas/20251121/linkml/modules/classes/FindingAidType.yaml @@ -23,13 +23,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_domain - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/is_or_was_equivalent_to + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_domain + - ../slots/20260202_matang/has_hypernym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/equivalent_to - ../slots/narrower_type - ../slots/record_equivalent classes: @@ -48,32 +48,32 @@ classes: - schema:CreativeWork - crm:E31_Document slots: - - has_or_had_hypernym - - has_or_had_description - - has_or_had_identifier - - has_or_had_label + - has_hypernym + - has_description + - identified_by + - has_label - narrower_type - record_equivalent - - has_or_had_score - - has_or_had_domain - - is_or_was_equivalent_to + - has_score + - has_domain + - equivalent_to slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie inlined: false # Fixed invalid inline for primitive type required: true identifier: true - has_or_had_label: + has_label: # range: string inlined: false # Fixed invalid inline for primitive type required: true - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: A descriptive tool that establishes intellectual and physical control over records. - is_or_was_equivalent_to: + equivalent_to: range: WikiDataIdentifier multivalued: true inlined: true @@ -83,12 +83,12 @@ classes: - qid: Q65769447 record_equivalent: # range: string # uriorcurie - has_or_had_hypernym: + has_hypernym: range: FindingAidType narrower_type: range: FindingAidType multivalued: true - has_or_had_domain: + has_domain: range: Domain multivalued: true inlined_as_list: true diff --git a/schemas/20251121/linkml/modules/classes/FindingAidTypes.yaml b/schemas/20251121/linkml/modules/classes/FindingAidTypes.yaml index 29805b480a..259a54eb32 100644 --- a/schemas/20251121/linkml/modules/classes/FindingAidTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/FindingAidTypes.yaml @@ -31,9 +31,9 @@ default_prefix: hc imports: - ./FindingAidType - linkml:types - - ../slots/has_or_had_domain - - ../slots/has_or_had_score - - ../slots/is_or_was_equivalent_to + - ../slots/20260202_matang/has_domain + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/equivalent_to - ../slots/narrower_type - ../slots/record_equivalent classes: @@ -58,12 +58,12 @@ classes: - rico:RecordSet - crm:E31_Document slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(CROSS_DOMAIN) narrower_type: range: Inventory slots: - - has_or_had_score + - has_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration @@ -86,12 +86,12 @@ classes: - rico:FindingAid - bf:Text slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(ARCHIVE) narrower_type: range: ArchivalInventory slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -121,10 +121,10 @@ classes: exact_mappings: - wd:Q25221891 slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(ARCHIVE) slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -154,10 +154,10 @@ classes: exact_mappings: - wd:Q116872592 slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(ARCHIVE) slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -192,10 +192,10 @@ classes: - crm:E31_Document - schema:Collection slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(MUSEUM) slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -225,12 +225,12 @@ classes: exact_mappings: - wd:Q815410 slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(CROSS_DOMAIN) narrower_type: range: LogisticsInventory slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -247,7 +247,7 @@ classes: - wd:Q7168640 slot_usage: {} slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -267,7 +267,7 @@ classes: - wd:Q7169552 slot_usage: {} slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -289,7 +289,7 @@ classes: - wd:Q7180610 slot_usage: {} slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -309,7 +309,7 @@ classes: - wd:Q475356 slot_usage: {} slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -329,7 +329,7 @@ classes: - wd:Q609498 slot_usage: {} slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -365,12 +365,12 @@ classes: - bf:Instance - schema:Collection slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(CROSS_DOMAIN) narrower_type: range: Catalogue slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -403,10 +403,10 @@ classes: - bf:Work - dcat:Catalog slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(LIBRARY) slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -433,10 +433,10 @@ classes: exact_mappings: - wd:Q19309479 slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(LIBRARY) slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -469,12 +469,12 @@ classes: - schema:Guide - bf:Summary slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(CROSS_DOMAIN) narrower_type: range: Guide slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -508,10 +508,10 @@ classes: - schema:Guide - bf:Summary slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(ARCHIVE) slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -540,10 +540,10 @@ classes: close_mappings: - bf:Summary slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(ARCHIVE) slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -577,12 +577,12 @@ classes: exact_mappings: - wd:Q12139612 slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(CROSS_DOMAIN) narrower_type: range: List slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -607,10 +607,10 @@ classes: exact_mappings: - wd:Q116972118 slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(ARCHIVE) slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -643,10 +643,10 @@ classes: - bf:Work - bf:Text slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(LIBRARY) slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -678,12 +678,12 @@ classes: - dcat:Dataset - dcat:DataService slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(CROSS_DOMAIN) narrower_type: range: Database slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -713,10 +713,10 @@ classes: - dcat:Dataset - bf:Work slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(LIBRARY) slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -746,10 +746,10 @@ classes: - dcat:Dataset - schema:Dataset slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(LIBRARY) slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -780,12 +780,12 @@ classes: - schema:ScholarlyArticle - bf:Text slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(LIBRARY) narrower_type: range: Review slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -815,10 +815,10 @@ classes: - schema:ScholarlyArticle - bf:Text slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(LIBRARY) slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -842,10 +842,10 @@ classes: - schema:ScholarlyArticle - bf:Text slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(LIBRARY) slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -879,12 +879,12 @@ classes: close_mappings: - bf:SupplementaryContent slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(CROSS_DOMAIN) narrower_type: range: IndexDocument slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -911,10 +911,10 @@ classes: close_mappings: - bf:SupplementaryContent slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(LIBRARY) slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -941,10 +941,10 @@ classes: exact_mappings: - wd:Q117311578 slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(ARCHIVE) slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -974,12 +974,12 @@ classes: - schema:LearningResource - bf:Text slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(CROSS_DOMAIN) narrower_type: range: InstructionalMaterials slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork @@ -1009,10 +1009,10 @@ classes: - schema:Book - bf:Text slot_usage: - has_or_had_domain: + has_domain: ifabsent: string(LIBRARY) slots: - - has_or_had_score + - has_score broad_mappings: - foaf:Document - schema:CreativeWork diff --git a/schemas/20251121/linkml/modules/classes/FireSuppressionSystem.yaml b/schemas/20251121/linkml/modules/classes/FireSuppressionSystem.yaml index 2bab980834..fb76db74a8 100644 --- a/schemas/20251121/linkml/modules/classes/FireSuppressionSystem.yaml +++ b/schemas/20251121/linkml/modules/classes/FireSuppressionSystem.yaml @@ -8,15 +8,15 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type default_prefix: hc classes: FireSuppressionSystem: class_uri: skos:Concept slots: - - has_or_had_type + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/FireSuppressionType.yaml b/schemas/20251121/linkml/modules/classes/FireSuppressionType.yaml index cf203ab456..3464f840bb 100644 --- a/schemas/20251121/linkml/modules/classes/FireSuppressionType.yaml +++ b/schemas/20251121/linkml/modules/classes/FireSuppressionType.yaml @@ -8,16 +8,16 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: FireSuppressionType: class_uri: skos:Concept abstract: true slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Fixity.yaml b/schemas/20251121/linkml/modules/classes/Fixity.yaml index b3ebb36906..3cda441802 100644 --- a/schemas/20251121/linkml/modules/classes/Fixity.yaml +++ b/schemas/20251121/linkml/modules/classes/Fixity.yaml @@ -9,15 +9,15 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: Fixity: class_uri: premis:Fixity slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/FixityVerification.yaml b/schemas/20251121/linkml/modules/classes/FixityVerification.yaml index 16d88c58b0..2d54f90430 100644 --- a/schemas/20251121/linkml/modules/classes/FixityVerification.yaml +++ b/schemas/20251121/linkml/modules/classes/FixityVerification.yaml @@ -9,15 +9,15 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: FixityVerification: class_uri: premis:Event slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Foremalarkiv.yaml b/schemas/20251121/linkml/modules/classes/Foremalarkiv.yaml index cd2d6ae70e..91c8a22252 100644 --- a/schemas/20251121/linkml/modules/classes/Foremalarkiv.yaml +++ b/schemas/20251121/linkml/modules/classes/Foremalarkiv.yaml @@ -8,21 +8,21 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: Foremalarkiv: description: "Swedish object archive (f\xF6rem\xE5lsarkiv). A specialized type of archive in Sweden that focuses on three-dimensional objects rather than documents. These archives preserve physical artifacts, specimens, and objects with historical, cultural, or scientific significance. The concept bridges archival and museum practices, applying archival principles to object collections." is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - - has_or_had_type - - has_or_had_score - - has_or_had_identifier + - has_type + - has_score + - identified_by slot_usage: - has_or_had_identifier: - has_or_had_type: + identified_by: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: "F\xF6rem\xE5lsarkiv" diff --git a/schemas/20251121/linkml/modules/classes/ForkliftAccess.yaml b/schemas/20251121/linkml/modules/classes/ForkliftAccess.yaml index a5e0d13621..84940ec584 100644 --- a/schemas/20251121/linkml/modules/classes/ForkliftAccess.yaml +++ b/schemas/20251121/linkml/modules/classes/ForkliftAccess.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: ForkliftAccess: class_uri: schema:AmenityFeature description: Forklift access feature. slots: - - has_or_had_description + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Format.yaml b/schemas/20251121/linkml/modules/classes/Format.yaml index 2fd41bd82c..68862fdcd0 100644 --- a/schemas/20251121/linkml/modules/classes/Format.yaml +++ b/schemas/20251121/linkml/modules/classes/Format.yaml @@ -10,9 +10,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: Format: class_uri: dct:MediaType @@ -49,9 +49,9 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description exact_mappings: - dct:MediaType close_mappings: diff --git a/schemas/20251121/linkml/modules/classes/FoundationArchive.yaml b/schemas/20251121/linkml/modules/classes/FoundationArchive.yaml index 43fc514e8f..10b6b1f532 100644 --- a/schemas/20251121/linkml/modules/classes/FoundationArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/FoundationArchive.yaml @@ -9,10 +9,10 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: FoundationArchive: @@ -20,13 +20,13 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Foundation Archive diff --git a/schemas/20251121/linkml/modules/classes/FoundationArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/FoundationArchiveRecordSetType.yaml index bb9e367216..c2042988e1 100644 --- a/schemas/20251121/linkml/modules/classes/FoundationArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/FoundationArchiveRecordSetType.yaml @@ -16,9 +16,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: FoundationArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by FoundationArchive custodians. @@ -27,14 +27,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - FoundationArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/FoundationArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/FoundationArchiveRecordSetTypes.yaml index c6aceab389..f87763e7d0 100644 --- a/schemas/20251121/linkml/modules/classes/FoundationArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/FoundationArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./FoundationArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - FoundationArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: FoundationAdministrationFonds @@ -78,15 +78,15 @@ classes: - FoundationArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: GrantRecordSeries @@ -115,15 +115,15 @@ classes: - FoundationArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ProjectDocumentationCollection diff --git a/schemas/20251121/linkml/modules/classes/FoundingEvent.yaml b/schemas/20251121/linkml/modules/classes/FoundingEvent.yaml index 71e7316b30..11e9e961a9 100644 --- a/schemas/20251121/linkml/modules/classes/FoundingEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/FoundingEvent.yaml @@ -15,8 +15,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier + - ../slots/20260202_matang/has_description + - ../slots/identified_by - ../slots/temporal_extent classes: FoundingEvent: @@ -67,8 +67,8 @@ classes: ' slots: - temporal_extent - - has_or_had_description - - has_or_had_identifier + - has_description + - identified_by slot_usage: temporal_extent: range: TimeSpan @@ -81,17 +81,17 @@ classes: - prov:Activity examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/event/founding/rijksmuseum-1800 + identified_by: https://nde.nl/ontology/hc/event/founding/rijksmuseum-1800 temporal_extent: begin_of_the_begin: '1800-01-01' end_of_the_begin: '1800-12-31' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/event/founding/de-kas-1902 + identified_by: https://nde.nl/ontology/hc/event/founding/de-kas-1902 temporal_extent: begin_of_the_begin: '1902-01-01' end_of_the_begin: '1902-12-31' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/event/founding/unknown-archive-1850s + identified_by: https://nde.nl/ontology/hc/event/founding/unknown-archive-1850s temporal_extent: begin_of_the_begin: '1850-01-01' end_of_the_begin: '1859-12-31' diff --git a/schemas/20251121/linkml/modules/classes/FreeArchive.yaml b/schemas/20251121/linkml/modules/classes/FreeArchive.yaml index a2a776720b..9480b03327 100644 --- a/schemas/20251121/linkml/modules/classes/FreeArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/FreeArchive.yaml @@ -16,10 +16,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: FreeArchive: @@ -27,13 +27,13 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Free Archive diff --git a/schemas/20251121/linkml/modules/classes/FreeArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/FreeArchiveRecordSetType.yaml index 4210e62f82..76957bc4f8 100644 --- a/schemas/20251121/linkml/modules/classes/FreeArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/FreeArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: FreeArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by FreeArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - FreeArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/FreeArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/FreeArchiveRecordSetTypes.yaml index fd8c7c5c79..c69e55359d 100644 --- a/schemas/20251121/linkml/modules/classes/FreeArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/FreeArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./FreeArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - FreeArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: OpenAccessCollection diff --git a/schemas/20251121/linkml/modules/classes/FrenchPrivateArchives.yaml b/schemas/20251121/linkml/modules/classes/FrenchPrivateArchives.yaml index 0414c7e8eb..fcc5d8d3b0 100644 --- a/schemas/20251121/linkml/modules/classes/FrenchPrivateArchives.yaml +++ b/schemas/20251121/linkml/modules/classes/FrenchPrivateArchives.yaml @@ -9,10 +9,10 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: FrenchPrivateArchives: @@ -20,13 +20,13 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: French Private Archives diff --git a/schemas/20251121/linkml/modules/classes/FrenchPrivateArchivesRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/FrenchPrivateArchivesRecordSetType.yaml index 52559cbbb0..e9db122d63 100644 --- a/schemas/20251121/linkml/modules/classes/FrenchPrivateArchivesRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/FrenchPrivateArchivesRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: rico: https://www.ica.org/standards/RiC/ontology# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: FrenchPrivateArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by FrenchPrivateArchives custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - FrenchPrivateArchives - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/FrenchPrivateArchivesRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/FrenchPrivateArchivesRecordSetTypes.yaml index c8d0b36137..e6e10c7cbe 100644 --- a/schemas/20251121/linkml/modules/classes/FrenchPrivateArchivesRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/FrenchPrivateArchivesRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./FrenchPrivateArchivesRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - FrenchPrivateArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: FrenchPrivateFonds diff --git a/schemas/20251121/linkml/modules/classes/Frequency.yaml b/schemas/20251121/linkml/modules/classes/Frequency.yaml index 8a91bf206a..d4121b88a6 100644 --- a/schemas/20251121/linkml/modules/classes/Frequency.yaml +++ b/schemas/20251121/linkml/modules/classes/Frequency.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: Frequency: class_uri: schema:Schedule description: Frequency definition. slots: - - has_or_had_label + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/FumeHood.yaml b/schemas/20251121/linkml/modules/classes/FumeHood.yaml index 51730c3505..e3c2f9e164 100644 --- a/schemas/20251121/linkml/modules/classes/FumeHood.yaml +++ b/schemas/20251121/linkml/modules/classes/FumeHood.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: FumeHood: class_uri: schema:AmenityFeature description: Fume hood feature. slots: - - has_or_had_description + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/FunctionCategory.yaml b/schemas/20251121/linkml/modules/classes/FunctionCategory.yaml index 8c60a1a079..e300977712 100644 --- a/schemas/20251121/linkml/modules/classes/FunctionCategory.yaml +++ b/schemas/20251121/linkml/modules/classes/FunctionCategory.yaml @@ -8,15 +8,15 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: FunctionCategory: class_uri: skos:Concept slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/FunctionType.yaml b/schemas/20251121/linkml/modules/classes/FunctionType.yaml index 0c5a815459..f466b96db3 100644 --- a/schemas/20251121/linkml/modules/classes/FunctionType.yaml +++ b/schemas/20251121/linkml/modules/classes/FunctionType.yaml @@ -15,9 +15,9 @@ prefixes: imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label # was: function_name - - ../slots/is_or_was_categorized_as # was: function_category + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label # was: function_name + - ../slots/20260202_matang/categorized_as # was: function_category - ../slots/temporal_extent - ../slots/temporal_extent # was: valid_from + valid_to default_prefix: hc @@ -78,17 +78,17 @@ classes: **USAGE**: - The `has_or_had_function` slot links entities to FunctionType instances: + The `has_function` slot links entities to FunctionType instances: ```yaml administrative_office: - has_or_had_function: + has_function: - function_category: ADMINISTRATIVE function_name: "Finance and Accounting" - has_or_had_description: "Financial operations and reporting" + has_description: "Financial operations and reporting" - function_category: ADMINISTRATIVE function_name: "Human Resources" - has_or_had_description: "Staff management and recruitment" + has_description: "Staff management and recruitment" ``` **ONTOLOGY ALIGNMENT**: @@ -101,19 +101,19 @@ classes: related_mappings: - org:OrganizationalUnit slots: - - is_or_was_categorized_as # was: function_category - migrated per Rule 53 (2026-01-26) - - has_or_had_label # was: function_name - migrated per Rule 53 (2026-01-26) - - has_or_had_description + - categorized_as # was: function_category - migrated per Rule 53 (2026-01-26) + - has_label # was: function_name - migrated per Rule 53 (2026-01-26) + - has_description - temporal_extent # was: valid_from + valid_to slot_usage: - is_or_was_categorized_as: # was: function_category - migrated per Rule 53 (2026-01-26) + categorized_as: # was: function_category - migrated per Rule 53 (2026-01-26) range: FunctionCategory inlined: true required: true - has_or_had_label: # was: function_name - migrated per Rule 53 (2026-01-26) + has_label: # was: function_name - migrated per Rule 53 (2026-01-26) # range: string required: true - has_or_had_description: + has_description: # range: string required: false temporal_extent: @@ -129,19 +129,19 @@ classes: across institution types but specialized for organizational modeling. examples: - value: - is_or_was_categorized_as: - has_or_had_label: ADMINISTRATIVE - has_or_had_label: Finance and Accounting - has_or_had_description: "Financial operations, budgeting, and reporting" + categorized_as: + has_label: ADMINISTRATIVE + has_label: Finance and Accounting + has_description: "Financial operations, budgeting, and reporting" - value: - is_or_was_categorized_as: - has_or_had_label: PROGRAM - has_or_had_label: Conservation - has_or_had_description: "Object conservation and preservation activities" + categorized_as: + has_label: PROGRAM + has_label: Conservation + has_description: "Object conservation and preservation activities" - value: - is_or_was_categorized_as: - has_or_had_label: SUPPORT - has_or_had_label: Information Technology - has_or_had_description: "IT infrastructure and support services" + categorized_as: + has_label: SUPPORT + has_label: Information Technology + has_description: "IT infrastructure and support services" # REMOVED inline slots 2026-01-16 - Rule 48 violation # Slots are imported from ../slots/ - do not define inline \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Funding.yaml b/schemas/20251121/linkml/modules/classes/Funding.yaml index e0677c71d6..57aef04010 100644 --- a/schemas/20251121/linkml/modules/classes/Funding.yaml +++ b/schemas/20251121/linkml/modules/classes/Funding.yaml @@ -10,19 +10,19 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_currency - - ../slots/has_or_had_description - - ../slots/has_or_had_quantity + - ../slots/20260202_matang/has_currency + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_quantity default_prefix: hc classes: Funding: class_uri: frapo:Funding slots: - - has_or_had_quantity - - has_or_had_currency - - has_or_had_description + - has_quantity + - has_currency + - has_description slot_usage: - has_or_had_quantity: + has_quantity: range: integer required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/FundingAgenda.yaml b/schemas/20251121/linkml/modules/classes/FundingAgenda.yaml index c7a0d08076..3546eae793 100644 --- a/schemas/20251121/linkml/modules/classes/FundingAgenda.yaml +++ b/schemas/20251121/linkml/modules/classes/FundingAgenda.yaml @@ -12,18 +12,18 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_investment - - ../slots/has_or_had_label - - ../slots/has_or_had_objective - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_title - - ../slots/has_or_had_url - - ../slots/is_or_was_governed_by - - ../slots/is_or_was_implemented_by - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_investment + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_objective + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_title + - ../slots/20260202_matang/has_url + - ../slots/20260202_matang/governed_by + - ../slots/20260202_matang/implemented_by + - ../slots/20260202_matang/related_to - ../slots/keyword - ../slots/language - ../slots/related_agenda @@ -51,18 +51,18 @@ classes: - schema:Action - prov:Plan slots: - - has_or_had_description - - has_or_had_url - - has_or_had_identifier - - has_or_had_label - - is_or_was_governed_by - - is_or_was_related_to - - is_or_was_implemented_by + - has_description + - has_url + - identified_by + - has_label + - governed_by + - related_to + - implemented_by - related_agenda - - has_or_had_investment + - has_investment - temporal_extent slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true # range: string # uriorcurie @@ -71,52 +71,52 @@ classes: - value: https://nde.nl/ontology/hc/agenda/nl/nwa - value: https://nde.nl/ontology/hc/agenda/eu/horizon-europe-sp-2021-2024 - value: https://nde.nl/ontology/hc/agenda/uk/ace-lets-create - has_or_had_title: + has_title: required: true # range: string examples: - value: Nationale Wetenschapsagenda - value: Horizon Europe Strategic Plan 2021-2024 - has_or_had_label: + has_label: # range: string inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: - has_or_had_label: NWA - has_or_had_type: - has_or_had_code: SHORT_NAME + has_label: NWA + has_type: + has_code: SHORT_NAME - value: - has_or_had_label: HE SP - has_or_had_type: - has_or_had_code: SHORT_NAME + has_label: HE SP + has_type: + has_code: SHORT_NAME - value: - has_or_had_label: Let's Create - has_or_had_type: - has_or_had_code: SHORT_NAME - has_or_had_description: + has_label: Let's Create + has_type: + has_code: SHORT_NAME + has_description: # range: string inlined: false # Fixed invalid inline for primitive type - has_or_had_url: + has_url: range: uri inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: - has_or_had_url: https://www.nwo.nl/en/researchprogrammes/dutch-research-agenda-nwa - has_or_had_type: - has_or_had_code: WEBSITE + has_url: https://www.nwo.nl/en/researchprogrammes/dutch-research-agenda-nwa + has_type: + has_code: WEBSITE - value: - has_or_had_url: https://wetenschapsagenda.nl/publicaties/ - has_or_had_type: - has_or_had_code: DOCUMENT - is_or_was_governed_by: + has_url: https://wetenschapsagenda.nl/publicaties/ + has_type: + has_code: DOCUMENT + governed_by: range: GoverningBody examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/encompassing-body/umbrella/nl-ministry-ocw + identified_by: https://nde.nl/ontology/hc/encompassing-body/umbrella/nl-ministry-ocw - value: - has_or_had_identifier: https://nde.nl/ontology/hc/encompassing-body/umbrella/eu-commission + identified_by: https://nde.nl/ontology/hc/encompassing-body/umbrella/eu-commission - value: https://nde.nl/ontology/hc/encompassing-body/funding/ec-rea temporal_extent: range: TimeSpan @@ -129,26 +129,26 @@ classes: - value: begin_of_the_begin: '2015-11-27T00:00:00Z' end_of_the_begin: '2015-11-27T00:00:00Z' - is_or_was_related_to: + related_to: range: Heritage multivalued: true inlined: true examples: - value: - has_or_had_label: Heritage - has_or_had_description: High - specific heritage route + has_label: Heritage + has_description: High - specific heritage route - value: - has_or_had_label: Heritage - has_or_had_description: Low - general research only - is_or_was_implemented_by: + has_label: Heritage + has_description: Low - general research only + implemented_by: range: Organization multivalued: true inlined: true examples: - value: - has_or_had_name: NWO (Dutch Research Council) + has_name: NWO (Dutch Research Council) - value: - has_or_had_name: Netherlands Enterprise Agency (RVO) + has_name: Netherlands Enterprise Agency (RVO) related_agenda: # range: string # uriorcurie multivalued: true @@ -168,10 +168,10 @@ classes: - https://www.artscouncil.org.uk/lets-create/strategy-2020-2030 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/agenda/nl/nwa - has_or_had_title: Nationale Wetenschapsagenda - has_or_had_label: NWA - has_or_had_description: 'The Dutch Research Agenda (Nationale Wetenschapsagenda, NWA) is a collaborative + identified_by: https://nde.nl/ontology/hc/agenda/nl/nwa + has_title: Nationale Wetenschapsagenda + has_label: NWA + has_description: 'The Dutch Research Agenda (Nationale Wetenschapsagenda, NWA) is a collaborative effort by the Dutch science sector to formulate research questions that are societally relevant and scientifically challenging. Launched in 2015, it identified 140 overarching questions grouped into 25 thematic routes that @@ -179,26 +179,26 @@ classes: interdisciplinary collaboration between universities, research institutes, industry, and civil society. ' - has_or_had_url: https://www.nwo.nl/en/researchprogrammes/dutch-research-agenda-nwa - has_or_had_documentation: https://wetenschapsagenda.nl/publicaties/ - is_or_was_governed_by: - has_or_had_identifier: https://nde.nl/ontology/hc/encompassing-body/umbrella/nl-ministry-ocw - is_or_was_implemented_by: - - has_or_had_identifier: https://nde.nl/ontology/hc/encompassing-body/funding/nwo - - has_or_had_identifier: https://nde.nl/ontology/hc/encompassing-body/funding/knaw + has_url: https://www.nwo.nl/en/researchprogrammes/dutch-research-agenda-nwa + has_documentation: https://wetenschapsagenda.nl/publicaties/ + governed_by: + identified_by: https://nde.nl/ontology/hc/encompassing-body/umbrella/nl-ministry-ocw + implemented_by: + - identified_by: https://nde.nl/ontology/hc/encompassing-body/funding/nwo + - identified_by: https://nde.nl/ontology/hc/encompassing-body/funding/knaw temporal_extent: begin_of_the_begin: '2015-11-27T00:00:00Z' end_of_the_begin: '2015-11-27T00:00:00Z' - has_or_had_objective: + has_objective: - Strengthen Dutch research through interdisciplinary collaboration - Address societal challenges through science - Connect research to societal stakeholders - Promote knowledge circulation between academia and society - is_or_was_related_to: - - has_or_had_label: Heritage - has_or_had_description: The NWA has direct heritage relevance through routes on Cultural Identity and Creative Industry. Museums, archives, and heritage organisations can participate in NWA-funded research consortia addressing questions about Dutch cultural heritage, identity, and the role of heritage institutions in society. NWO regularly issues NWA-calls that include heritage themes. - has_or_had_scope: - - has_or_had_label: NL + related_to: + - has_label: Heritage + has_description: The NWA has direct heritage relevance through routes on Cultural Identity and Creative Industry. Museums, archives, and heritage organisations can participate in NWA-funded research consortia addressing questions about Dutch cultural heritage, identity, and the role of heritage institutions in society. NWO regularly issues NWA-calls that include heritage themes. + has_scope: + - has_label: NL language: nl keywords: - Dutch Research Agenda @@ -208,10 +208,10 @@ classes: - interdisciplinary research - societal challenges - value: - has_or_had_identifier: https://nde.nl/ontology/hc/agenda/eu/horizon-europe-sp-2021-2024 - has_or_had_title: Horizon Europe Strategic Plan 2021-2024 - has_or_had_label: HE SP 2021-2024 - has_or_had_description: 'The Horizon Europe Strategic Plan 2021-2024 sets out the key strategic + identified_by: https://nde.nl/ontology/hc/agenda/eu/horizon-europe-sp-2021-2024 + has_title: Horizon Europe Strategic Plan 2021-2024 + has_label: HE SP 2021-2024 + has_description: 'The Horizon Europe Strategic Plan 2021-2024 sets out the key strategic orientations for research and innovation funding under the EU''s 8th Framework Programme. It defines priorities for Pillar II (Global Challenges and European Industrial Competitiveness), including the 6 thematic Clusters @@ -219,10 +219,10 @@ classes: EU strategic priorities and contribute to the European Green Deal, digital transformation, and post-COVID recovery. ' - has_or_had_url: https://research-and-innovation.ec.europa.eu/funding/funding-opportunities/funding-programmes-and-open-calls/horizon-europe/strategic-plan_en - is_or_was_governed_by: - has_or_had_identifier: https://nde.nl/ontology/hc/encompassing-body/umbrella/eu-commission - is_or_was_implemented_by: + has_url: https://research-and-innovation.ec.europa.eu/funding/funding-opportunities/funding-programmes-and-open-calls/horizon-europe/strategic-plan_en + governed_by: + identified_by: https://nde.nl/ontology/hc/encompassing-body/umbrella/eu-commission + implemented_by: - https://nde.nl/ontology/hc/encompassing-body/funding/ec-rea - https://nde.nl/ontology/hc/encompassing-body/funding/erc - https://nde.nl/ontology/hc/encompassing-body/funding/eacea @@ -231,19 +231,19 @@ classes: end_of_the_begin: '2021-01-01T00:00:00Z' begin_of_the_end: '2024-12-31T23:59:59Z' end_of_the_end: '2024-12-31T23:59:59Z' - has_or_had_objective: + has_objective: - Promote an open strategic autonomy by leading the development of key technologies - Restore Europe's ecosystems and biodiversity - Make Europe the first digitally-enabled circular, climate-neutral and sustainable economy - Create a more resilient, inclusive and democratic European society - is_or_was_related_to: - - has_or_had_label: Heritage - has_or_had_description: Horizon Europe is highly relevant to cultural heritage through Cluster 2 "Culture, Creativity and Inclusive Society" which includes dedicated heritage calls. The Climate Mission also addresses heritage at risk. Heritage institutions can participate in collaborative research projects (minimum 3 countries) on preservation, digitisation, access, and societal value of heritage. - has_or_had_investment: 95.5B EUR (total Horizon Europe 2021-2027) - has_or_had_scope: - - has_or_had_label: EU - - has_or_had_label: EEA - - has_or_had_label: Associated Countries + related_to: + - has_label: Heritage + has_description: Horizon Europe is highly relevant to cultural heritage through Cluster 2 "Culture, Creativity and Inclusive Society" which includes dedicated heritage calls. The Climate Mission also addresses heritage at risk. Heritage institutions can participate in collaborative research projects (minimum 3 countries) on preservation, digitisation, access, and societal value of heritage. + has_investment: 95.5B EUR (total Horizon Europe 2021-2027) + has_scope: + - has_label: EU + - has_label: EEA + - has_label: Associated Countries language: en related_agenda: - https://nde.nl/ontology/hc/agenda/eu/h2020-sc6 diff --git a/schemas/20251121/linkml/modules/classes/FundingFocus.yaml b/schemas/20251121/linkml/modules/classes/FundingFocus.yaml index c67b6da0df..b4fef124b2 100644 --- a/schemas/20251121/linkml/modules/classes/FundingFocus.yaml +++ b/schemas/20251121/linkml/modules/classes/FundingFocus.yaml @@ -8,15 +8,15 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: FundingFocus: class_uri: skos:Concept slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/FundingProgram.yaml b/schemas/20251121/linkml/modules/classes/FundingProgram.yaml index 88ae14890f..de836ce401 100644 --- a/schemas/20251121/linkml/modules/classes/FundingProgram.yaml +++ b/schemas/20251121/linkml/modules/classes/FundingProgram.yaml @@ -9,17 +9,17 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/is_or_was_targeted_at + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/targeted_at default_prefix: hc classes: FundingProgram: class_uri: frapo:FundingProgramme slots: - - has_or_had_label - - has_or_had_description - - is_or_was_targeted_at + - has_label + - has_description + - targeted_at annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/FundingRate.yaml b/schemas/20251121/linkml/modules/classes/FundingRate.yaml index a5f9ebef57..3fca2dbe7f 100644 --- a/schemas/20251121/linkml/modules/classes/FundingRate.yaml +++ b/schemas/20251121/linkml/modules/classes/FundingRate.yaml @@ -8,14 +8,14 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_rate + - ../slots/20260202_matang/has_rate - ../slots/maximal_of_maximal default_prefix: hc classes: FundingRate: class_uri: schema:MonetaryAmount slots: - - has_or_had_rate + - has_rate - maximal_of_maximal annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml b/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml index 8ef102701a..f9d317b4a3 100644 --- a/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml +++ b/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml @@ -12,10 +12,10 @@ prefixes: imports: - linkml:types - ../enums/FundingRequirementTypeEnum - - ../slots/applies_or_applied_to - - ../slots/has_or_had_note - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/apply_to + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/is_mandatory - ../slots/observed_in - ../slots/requirement_id @@ -48,19 +48,19 @@ classes: - schema:eligibleQuantity - prov:wasDerivedFrom slots: - - applies_or_applied_to - - has_or_had_note + - apply_to + - has_note - is_mandatory - observed_in - requirement_id - requirement_text - requirement_type - - has_or_had_type + - has_type - requirement_unit - requirement_value - source_section - supersedes_or_superseded - - has_or_had_score + - has_score - temporal_extent slot_usage: requirement_id: @@ -74,22 +74,22 @@ classes: requirement_type: required: false range: FundingRequirementTypeEnum - deprecated: 'DEPRECATED 2026-01-13: Use has_or_had_type with RequirementType class instead' + deprecated: 'DEPRECATED 2026-01-13: Use has_type with RequirementType class instead' examples: - value: PARTNERSHIP_MINIMUM_PARTNERS - value: FINANCIAL_COFUNDING - value: ELIGIBILITY_GEOGRAPHIC - has_or_had_type: + has_type: required: true range: RequirementType examples: - value: - has_or_had_code: PARTNERSHIP_MINIMUM_PARTNERS - has_or_had_label: + has_code: PARTNERSHIP_MINIMUM_PARTNERS + has_label: - Minimum partners requirement@en - value: - has_or_had_code: FINANCIAL_COFUNDING - has_or_had_label: + has_code: FINANCIAL_COFUNDING + has_label: - Co-funding requirement@en requirement_text: required: true @@ -154,12 +154,12 @@ classes: requirement_value: '3' requirement_unit: partners is_mandatory: true - applies_or_applied_to: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 + apply_to: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage source_section: Section 2 - Eligibility Conditions - has_or_had_score: - has_or_had_score: 0.98 - has_or_had_note: Clear statement in eligibility section. Standard Horizon Europe RIA requirement. + has_score: + has_score: 0.98 + has_note: Clear statement in eligibility section. Standard Horizon Europe RIA requirement. - value: requirement_id: https://nde.nl/ontology/hc/requirement/ec-cl2-2025-heritage-01/cofunding-for-profit requirement_type: FINANCIAL_COFUNDING @@ -167,12 +167,12 @@ classes: requirement_value: '30' requirement_unit: percent is_mandatory: true - applies_or_applied_to: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 + apply_to: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage source_section: Section 3 - Financial Conditions - has_or_had_score: - has_or_had_score: 0.95 - has_or_had_note: Applies only to for-profit partners. Non-profits receive 100% funding. + has_score: + has_score: 0.95 + has_note: Applies only to for-profit partners. Non-profits receive 100% funding. - value: requirement_id: https://nde.nl/ontology/hc/requirement/ec-cl2-2025-heritage-01/open-access requirement_type: TECHNICAL_OPEN_ACCESS @@ -180,12 +180,12 @@ classes: requirement_value: immediate requirement_unit: null is_mandatory: true - applies_or_applied_to: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 + apply_to: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage source_section: Section 4.2 - Open Science - has_or_had_score: - has_or_had_score: 0.99 - has_or_had_note: Standard Horizon Europe open access requirement. Plan S compliant. + has_score: + has_score: 0.99 + has_note: Standard Horizon Europe open access requirement. Plan S compliant. - value: requirement_id: https://nde.nl/ontology/hc/requirement/nlhf-medium-2025/uk-based requirement_type: ELIGIBILITY_GEOGRAPHIC @@ -193,12 +193,12 @@ classes: requirement_value: UK requirement_unit: country is_mandatory: true - applies_or_applied_to: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 + apply_to: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-28/nlhf-medium-grants source_section: Eligibility - has_or_had_score: - has_or_had_score: 0.99 - has_or_had_note: Clear UK-only restriction. Devolved nations explicitly included. + has_score: + has_score: 0.99 + has_note: Clear UK-only restriction. Devolved nations explicitly included. - value: requirement_id: https://nde.nl/ontology/hc/requirement/nlhf-medium-2025/non-profit requirement_type: ELIGIBILITY_ORGANIZATIONAL @@ -206,12 +206,12 @@ classes: requirement_value: non-profit requirement_unit: organization-type is_mandatory: true - applies_or_applied_to: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 + apply_to: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-28/nlhf-medium-grants source_section: Who can apply - has_or_had_score: - has_or_had_score: 0.95 - has_or_had_note: Explicitly excludes for-profit. Social enterprises may need verification. + has_score: + has_score: 0.95 + has_note: Explicitly excludes for-profit. Social enterprises may need verification. annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/FundingScheme.yaml b/schemas/20251121/linkml/modules/classes/FundingScheme.yaml index a281abba42..af7cece3e1 100644 --- a/schemas/20251121/linkml/modules/classes/FundingScheme.yaml +++ b/schemas/20251121/linkml/modules/classes/FundingScheme.yaml @@ -15,15 +15,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: FundingScheme: class_uri: schema:FundingScheme slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/FundingSource.yaml b/schemas/20251121/linkml/modules/classes/FundingSource.yaml index e5c4d93e58..4d3f15cac1 100644 --- a/schemas/20251121/linkml/modules/classes/FundingSource.yaml +++ b/schemas/20251121/linkml/modules/classes/FundingSource.yaml @@ -16,17 +16,17 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type default_prefix: hc classes: FundingSource: class_uri: frapo:FundingAgency slots: - - has_or_had_label - - has_or_had_description - - has_or_had_type + - has_label + - has_description + - has_type annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/GLAM.yaml b/schemas/20251121/linkml/modules/classes/GLAM.yaml index 5251ec79d5..20af267e1f 100644 --- a/schemas/20251121/linkml/modules/classes/GLAM.yaml +++ b/schemas/20251121/linkml/modules/classes/GLAM.yaml @@ -8,18 +8,18 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score + - ../slots/identified_by + - ../slots/20260202_matang/has_score classes: GLAM: description: Acronym for "Galleries, Libraries, Archives, and Museums" that refers to cultural institutions that have providing access to knowledge as their mission. GLAM institutions share common goals around preservation, access, and cultural heritage stewardship, though they differ in their primary materials and methodologies. The term is used to describe both the sector collectively and institutions that combine multiple GLAM functions. is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: + identified_by: annotations: skos:prefLabel: GLAM skos:altLabel: Galleries, Libraries, Archives, and Museums, GLAM institution, Memory institution, Cultural heritage institution diff --git a/schemas/20251121/linkml/modules/classes/GLAMORCUBESFIXPHDNTCode.yaml b/schemas/20251121/linkml/modules/classes/GLAMORCUBESFIXPHDNTCode.yaml index 582e8bd77b..f9487d7a63 100644 --- a/schemas/20251121/linkml/modules/classes/GLAMORCUBESFIXPHDNTCode.yaml +++ b/schemas/20251121/linkml/modules/classes/GLAMORCUBESFIXPHDNTCode.yaml @@ -8,15 +8,15 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: GLAMORCUBESFIXPHDNTCode: class_uri: skos:Concept slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Gallery.yaml b/schemas/20251121/linkml/modules/classes/Gallery.yaml index 4dbef551a5..70e8c31d93 100644 --- a/schemas/20251121/linkml/modules/classes/Gallery.yaml +++ b/schemas/20251121/linkml/modules/classes/Gallery.yaml @@ -9,19 +9,19 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type default_prefix: hc classes: Gallery: class_uri: schema:ArtGallery slots: - - has_or_had_label - - has_or_had_description - - has_or_had_type + - has_label + - has_description + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/GalleryType.yaml b/schemas/20251121/linkml/modules/classes/GalleryType.yaml index 2d13249a2e..003e844e54 100644 --- a/schemas/20251121/linkml/modules/classes/GalleryType.yaml +++ b/schemas/20251121/linkml/modules/classes/GalleryType.yaml @@ -5,15 +5,15 @@ imports: - linkml:types - ../enums/GalleryTypeEnum - ../slots/custodian_type_broader - - ../slots/has_or_had_identifier # was: wikidata_entity - - ../slots/has_or_had_model # was: exhibition_model - - ../slots/has_or_had_objective - - ../slots/has_or_had_percentage - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_service - - ../slots/has_or_had_type - - ../slots/includes_or_included # was: gallery_subtype - - ../slots/is_or_was_categorized_as # was: exhibition_focus + - ../slots/identified_by # was: wikidata_entity + - ../slots/20260202_matang/has_model # was: exhibition_model + - ../slots/20260202_matang/has_objective + - ../slots/20260202_matang/has_percentage + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_service + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/include # was: gallery_subtype + - ../slots/20260202_matang/categorized_as # was: exhibition_focus - ../slots/represents_or_represented - ../slots/sales_activity - ../slots/takes_or_took_comission @@ -115,13 +115,13 @@ classes: \ Example**:\n```turtle\n:Custodian_KunsthalRotterdam\n org:classification :GalleryType_Kunsthalle_Q1475403 .\n\n\ :GalleryType_Kunsthalle_Q1475403\n a glamtype:GalleryType, crm:E55_Type, skos:Concept ;\n skos:prefLabel \"Kunsthalle\"\ @en, \"kunsthalle\"@nl, \"Kunsthalle\"@de ;\n skos:broader :GalleryType_ArtGallery_Q1007870 ;\n schema:additionalType\ - \ <http://www.wikidata.org/entity/Q1475403> ;\n glamtype:glamorcubesfixphdnt_code \"GALLERY\" ;\n glamtype:has_or_had_objective\ + \ <http://www.wikidata.org/entity/Q1475403> ;\n glamtype:glamorcubesfixphdnt_code \"GALLERY\" ;\n glamtype:has_objective\ \ false ;\n glamtype:exhibition_focus \"contemporary art\" ;\n glamtype:sales_activity false ;\n glamtype:exhibition_model\ \ \"temporary rotating exhibitions\" .\n```\n\n**Domain-Specific Properties**:\nThis class adds gallery-specific metadata\ - \ beyond base CustodianType:\n- `has_or_had_objective` - Structured profit objective (commercial/nonprofit/mixed)\n- `artist_representation`\ + \ beyond base CustodianType:\n- `has_objective` - Structured profit objective (commercial/nonprofit/mixed)\n- `artist_representation`\ \ - Artists represented by gallery (for commercial galleries)\n- `exhibition_focus` - Type of art exhibited (contemporary,\ \ modern, photography, etc.)\n- `sales_activity` - Whether gallery sells artworks (not just exhibits)\n- `exhibition_model`\ - \ - Exhibition strategy (temporary, rotating, curated shows)\n- `has_or_had_service` - Art sales service with commission structure (ArtSaleService)\n\n**Getty AAT Integration**:\nThe Getty Art & Architecture Thesaurus provides standardized\ + \ - Exhibition strategy (temporary, rotating, curated shows)\n- `has_service` - Art sales service with commission structure (ArtSaleService)\n\n**Getty AAT Integration**:\nThe Getty Art & Architecture Thesaurus provides standardized\ \ vocabulary:\n- aat:300005768 - art galleries (institutions)\n- aat:300240057 - commercial galleries\n- aat:300240058\ \ - nonprofit galleries\n- aat:300005741 - kunsthalles\n\n**Art Market Context**:\nCommercial galleries operate in the\ \ art market ecosystem:\n- **Primary market**: Representing living artists, first sales\n- **Secondary market**: Resale\ @@ -130,31 +130,31 @@ classes: \ extracted from 78 Wikidata entities with type='G'\nin `data/wikidata/GLAMORCUBEPSXHFN/hyponyms_curated_full.yaml`.\n" slots: - represents_or_represented - # REMOVED 2026-01-22: commercial_operation - migrated to has_or_had_objective + Profit (Rule 53) - - has_or_had_objective - # REMOVED 2026-01-22: commission_rate - migrated to has_or_had_service + ArtSaleService (Rule 53) - - has_or_had_service - - has_or_had_type - - is_or_was_categorized_as # was: exhibition_focus - migrated per Rule 53 (2026-01-26) - - has_or_had_model # was: exhibition_model - migrated per Rule 53 (2026-01-26) - - includes_or_included # was: gallery_subtype - migrated per Rule 53 (2026-01-26) + # REMOVED 2026-01-22: commercial_operation - migrated to has_objective + Profit (Rule 53) + - has_objective + # REMOVED 2026-01-22: commission_rate - migrated to has_service + ArtSaleService (Rule 53) + - has_service + - has_type + - categorized_as # was: exhibition_focus - migrated per Rule 53 (2026-01-26) + - has_model # was: exhibition_model - migrated per Rule 53 (2026-01-26) + - include # was: gallery_subtype - migrated per Rule 53 (2026-01-26) - sales_activity - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - - has_or_had_identifier # was: wikidata_entity - migrated per Rule 53 (2026-01-16) + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - identified_by # was: wikidata_entity - migrated per Rule 53 (2026-01-16) slot_usage: - has_or_had_identifier: # was: wikidata_entity - migrated per Rule 53 (2026-01-16) + identified_by: # was: wikidata_entity - migrated per Rule 53 (2026-01-16) pattern: ^Q[0-9]+$ required: true custodian_type_broader: range: GalleryType required: false - has_or_had_type: + has_type: equals_expression: '["hc:GalleryType"]' - is_or_was_categorized_as: # was: exhibition_focus - migrated per Rule 53 (2026-01-26) + categorized_as: # was: exhibition_focus - migrated per Rule 53 (2026-01-26) # range: string - has_or_had_model: # was: exhibition_model - migrated per Rule 53 (2026-01-26) + has_model: # was: exhibition_model - migrated per Rule 53 (2026-01-26) # range: string - includes_or_included: # was: gallery_subtype - migrated per Rule 53 (2026-01-26) + include: # was: gallery_subtype - migrated per Rule 53 (2026-01-26) range: GalleryType any_of: - range: CommercialGallery @@ -179,38 +179,38 @@ classes: - 'Artist-run initiatives: Canadian model (1960s+), cooperative ownership' examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/gallery/Q1475403 - has_or_had_type_code: GALLERY - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/gallery/Q1475403 + has_type_code: GALLERY + has_label: - Kunsthalle@en - kunsthalle@nl - Kunsthalle@de - has_or_had_description: facility that mounts temporary art exhibitions without permanent collection # was: type_description - migrated per Rule 53/56 (2026-01-16) + has_description: facility that mounts temporary art exhibitions without permanent collection # was: type_description - migrated per Rule 53/56 (2026-01-16) custodian_type_broader: https://nde.nl/ontology/hc/type/gallery/Q1007870 - # MIGRATED 2026-01-22: commercial_operation → has_or_had_objective + Profit (Rule 53) - has_or_had_objective: - is_or_was_categorized_as: contemporary art + # MIGRATED 2026-01-22: commercial_operation → has_objective + Profit (Rule 53) + has_objective: + categorized_as: contemporary art sales_activity: false - has_or_had_model: temporary rotating exhibitions, no permanent collection + has_model: temporary rotating exhibitions, no permanent collection - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/gallery/Q56856618 - has_or_had_type_code: GALLERY - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/gallery/Q56856618 + has_type_code: GALLERY + has_label: - Commercial Art Gallery@en - kunstgalerie@nl - has_or_had_description: for-profit gallery that sells artworks and represents artists # was: type_description - migrated per Rule 53/56 (2026-01-16) + has_description: for-profit gallery that sells artworks and represents artists # was: type_description - migrated per Rule 53/56 (2026-01-16) custodian_type_broader: https://nde.nl/ontology/hc/type/gallery/Q1007870 - # MIGRATED 2026-01-22: commercial_operation → has_or_had_objective + Profit (Rule 53) - has_or_had_objective: + # MIGRATED 2026-01-22: commercial_operation → has_objective + Profit (Rule 53) + has_objective: represents_or_represented: - - has_or_had_label: Artist A - - has_or_had_label: Artist B - - has_or_had_label: Artist C - is_or_was_categorized_as: contemporary painting and sculpture + - has_label: Artist A + - has_label: Artist B + - has_label: Artist C + categorized_as: contemporary painting and sculpture sales_activity: true - has_or_had_model: curated exhibitions of represented artists - # MIGRATED 2026-01-22: commission_rate → has_or_had_service + ArtSaleService (Rule 53) - has_or_had_service: + has_model: curated exhibitions of represented artists + # MIGRATED 2026-01-22: commission_rate → has_service + ArtSaleService (Rule 53) + has_service: sales_activity: true takes_or_took_comission: - has_or_had_percentage: \ No newline at end of file + has_percentage: \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Gender.yaml b/schemas/20251121/linkml/modules/classes/Gender.yaml index ee5e0f6f3e..008bd48690 100644 --- a/schemas/20251121/linkml/modules/classes/Gender.yaml +++ b/schemas/20251121/linkml/modules/classes/Gender.yaml @@ -15,15 +15,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: Gender: class_uri: schema:GenderType slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/GenerationEvent.yaml b/schemas/20251121/linkml/modules/classes/GenerationEvent.yaml index 6966a95a3c..ba297797cf 100644 --- a/schemas/20251121/linkml/modules/classes/GenerationEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/GenerationEvent.yaml @@ -10,9 +10,9 @@ prefixes: imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_provenance - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/has_score - ../slots/temporal_extent default_prefix: hc @@ -30,9 +30,9 @@ classes: **STRUCTURE**: - temporal_extent: When the generation occurred (TimeSpan) - - has_or_had_provenance: Who/what performed the generation (Provenance) - - has_or_had_description: Details about the generation process - - has_or_had_score: Confidence score for the generated content (ConfidenceScore) + - has_provenance: Who/what performed the generation (Provenance) + - has_description: Details about the generation process + - has_score: Confidence score for the generated content (ConfidenceScore) **ONTOLOGY ALIGNMENT**: - Maps to prov:Generation (PROV-O generation event) @@ -48,9 +48,9 @@ classes: slots: - temporal_extent - - has_or_had_provenance - - has_or_had_description - - has_or_had_score + - has_provenance + - has_description + - has_score slot_usage: temporal_extent: @@ -61,29 +61,29 @@ classes: - value: begin_of_the_begin: "2024-01-15T10:30:00Z" end_of_the_end: "2024-01-15T10:30:00Z" - has_or_had_provenance: + has_provenance: range: Provenance required: false inlined: true examples: - value: - has_or_had_agent: - has_or_had_type: SOFTWARE - has_or_had_name: "YouTube Auto-Chapters" - has_or_had_description: + has_agent: + has_type: SOFTWARE + has_name: "YouTube Auto-Chapters" + has_description: # range: string required: false examples: - value: "Generated using Whisper transcript segmentation" - has_or_had_score: + has_score: range: ConfidenceScore required: false inlined: true examples: - value: - has_or_had_score: 0.95 - has_or_had_method: "xpath_extraction" - has_or_had_description: "High confidence - exact match at expected location" + has_score: 0.95 + has_method: "xpath_extraction" + has_description: "High confidence - exact match at expected location" annotations: custodian_types: '["*"]' custodian_types_rationale: >- @@ -97,10 +97,10 @@ classes: - value: temporal_extent: begin_of_the_begin: "2024-01-15T10:30:00Z" - has_or_had_description: "AI-generated video chapters from transcript" - has_or_had_score: - has_or_had_score: 0.92 - has_or_had_method: "transcript_segmentation" + has_description: "AI-generated video chapters from transcript" + has_score: + has_score: 0.92 + has_method: "transcript_segmentation" comments: - Created from slot_fixes.yaml migration (2026-01-19) - - Updated 2026-01-19 to include has_or_had_score for confidence tracking + - Updated 2026-01-19 to include has_score for confidence tracking diff --git a/schemas/20251121/linkml/modules/classes/GeoFeature.yaml b/schemas/20251121/linkml/modules/classes/GeoFeature.yaml index ef18caacaf..896381ff49 100644 --- a/schemas/20251121/linkml/modules/classes/GeoFeature.yaml +++ b/schemas/20251121/linkml/modules/classes/GeoFeature.yaml @@ -18,20 +18,20 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_type default_prefix: hc classes: GeoFeature: class_uri: skos:Concept slots: - - has_or_had_type - - has_or_had_code + - has_type + - has_code slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie required: true - has_or_had_code: + has_code: # range: string # uriorcurie required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/GeoFeatureType.yaml b/schemas/20251121/linkml/modules/classes/GeoFeatureType.yaml index 4d7ffb7bee..4b0000aa2c 100644 --- a/schemas/20251121/linkml/modules/classes/GeoFeatureType.yaml +++ b/schemas/20251121/linkml/modules/classes/GeoFeatureType.yaml @@ -9,16 +9,16 @@ prefixes: gn: http://www.geonames.org/ontology# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: GeoFeatureType: class_uri: skos:Concept abstract: true slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/GeoSpatialPlace.yaml b/schemas/20251121/linkml/modules/classes/GeoSpatialPlace.yaml index 7c47eeaded..48c69c3382 100644 --- a/schemas/20251121/linkml/modules/classes/GeoSpatialPlace.yaml +++ b/schemas/20251121/linkml/modules/classes/GeoSpatialPlace.yaml @@ -15,13 +15,13 @@ imports: - ../enums/GeometryTypeEnum - ../metadata - ../slots/coordinate_reference_system - - ../slots/has_or_had_altitude - - ../slots/has_or_had_coordinates - - ../slots/has_or_had_geofeature - - ../slots/has_or_had_geographic_extent - - ../slots/has_or_had_geometry - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_altitude + - ../slots/20260202_matang/has_coordinates + - ../slots/20260202_matang/has_geofeature + - ../slots/20260202_matang/has_geographic_extent + - ../slots/20260202_matang/has_geometry + - ../slots/identified_by + - ../slots/20260202_matang/has_score - ../slots/osm_id - ../slots/spatial_resolution - ../slots/temporal_extent @@ -52,19 +52,19 @@ classes: - tooi:BestuurlijkeRuimte - crm:E53_Place slots: - - has_or_had_coordinates - - has_or_had_altitude - - has_or_had_geographic_extent - - has_or_had_identifier + - has_coordinates + - has_altitude + - has_geographic_extent + - identified_by - coordinate_reference_system - - has_or_had_geofeature - - has_or_had_geometry + - has_geofeature + - has_geometry - osm_id - spatial_resolution - - has_or_had_score + - has_score - temporal_extent slot_usage: - has_or_had_coordinates: + has_coordinates: range: Coordinates inlined: true required: true @@ -74,7 +74,7 @@ classes: longitude: 4.8852 coordinate_reference_system: ifabsent: string(EPSG:4326) - has_or_had_identifier: + identified_by: description: 'Cadastral identifiers for this geospatial place. MIGRATION NOTE (2026-01-14): Replaces cadastral_id per slot_fixes.yaml. Use Identifier with identifier_scheme=''cadastral'' for parcel IDs. Netherlands: Kadaster perceelnummer format {gemeente}-{sectie}-{perceelnummer}' examples: - value: @@ -93,7 +93,7 @@ classes: - lat/lon required; geometry_wkt optional for point locations - Link from CustodianPlace via has_geospatial_location slot - Link from AuxiliaryPlace via has_geospatial_location slot (subordinate sites) - - Link from OrganizationalChangeEvent via has_or_had_affected_territory slot + - Link from OrganizationalChangeEvent via has_affected_territory slot - temporal_extent tracks boundary changes over time (was valid_from_geo/valid_to_geo) - OSM and GeoNames IDs enable external linking see_also: @@ -104,52 +104,52 @@ classes: examples: - value: geospatial_id: https://nde.nl/ontology/hc/geo/rijksmuseum-building - has_or_had_coordinates: + has_coordinates: latitude: 52.36 longitude: 4.8852 altitude: 0.0 - has_or_had_geometry: - - has_or_had_format: - has_or_had_value: POLYGON((4.8830 52.3590, 4.8870 52.3590, 4.8870 52.3610, 4.8830 52.3610, 4.8830 52.3590)) - has_or_had_type: - has_or_had_label: POLYGON + has_geometry: + - has_format: + has_value: POLYGON((4.8830 52.3590, 4.8870 52.3590, 4.8870 52.3610, 4.8830 52.3610, 4.8830 52.3590)) + has_type: + has_label: POLYGON coordinate_reference_system: EPSG:4326 osm_id: way/27083908 spatial_resolution: BUILDING - has_or_had_geofeature: - - has_or_had_type: SpotFeature - has_or_had_code: - has_or_had_label: S.MUS + has_geofeature: + - has_type: SpotFeature + has_code: + has_label: S.MUS - value: geospatial_id: https://nde.nl/ontology/hc/geo/amsterdam-centroid - has_or_had_coordinates: + has_coordinates: latitude: 52.3676 longitude: 4.9041 - has_or_had_geometry: - - has_or_had_type: - has_or_had_label: POINT + has_geometry: + - has_type: + has_label: POINT coordinate_reference_system: EPSG:4326 spatial_resolution: CITY - has_or_had_geofeature: - - has_or_had_type: PopulatedPlace - has_or_had_code: - has_or_had_label: P.PPLC + has_geofeature: + - has_type: PopulatedPlace + has_code: + has_label: P.PPLC - value: geospatial_id: https://nde.nl/ontology/hc/geo/noord-holland-archive-territory-pre-2001 - has_or_had_coordinates: + has_coordinates: latitude: 52.5 longitude: 4.8 - has_or_had_geometry: - - has_or_had_format: - has_or_had_value: MULTIPOLYGON(((4.5 52.2, 5.2 52.2, 5.2 52.8, 4.5 52.8, 4.5 52.2))) - has_or_had_type: - has_or_had_label: MULTIPOLYGON + has_geometry: + - has_format: + has_value: MULTIPOLYGON(((4.5 52.2, 5.2 52.2, 5.2 52.8, 4.5 52.8, 4.5 52.2))) + has_type: + has_label: MULTIPOLYGON coordinate_reference_system: EPSG:4326 spatial_resolution: REGION - has_or_had_geofeature: - - has_or_had_type: AdministrativeBoundary - has_or_had_code: - has_or_had_label: A.ADM1 + has_geofeature: + - has_type: AdministrativeBoundary + has_code: + has_label: A.ADM1 temporal_extent: begin_of_the_begin: '1920-01-01' end_of_the_end: '2001-01-01' diff --git a/schemas/20251121/linkml/modules/classes/GeographicExtent.yaml b/schemas/20251121/linkml/modules/classes/GeographicExtent.yaml index 6d2bec52e4..15d41bc66a 100644 --- a/schemas/20251121/linkml/modules/classes/GeographicExtent.yaml +++ b/schemas/20251121/linkml/modules/classes/GeographicExtent.yaml @@ -12,8 +12,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: GeographicExtent: class_uri: dcterms:Location @@ -25,8 +25,8 @@ classes: - **Close**: `schema:Place` slots: - - has_or_had_label - - has_or_had_identifier + - has_label + - identified_by annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/classes/GeographicScope.yaml b/schemas/20251121/linkml/modules/classes/GeographicScope.yaml index f9672f69bb..d86b2802b2 100644 --- a/schemas/20251121/linkml/modules/classes/GeographicScope.yaml +++ b/schemas/20251121/linkml/modules/classes/GeographicScope.yaml @@ -8,15 +8,15 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: GeographicScope: class_uri: skos:Concept slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Geometry.yaml b/schemas/20251121/linkml/modules/classes/Geometry.yaml index 9f902c247b..7ec4fd59bf 100644 --- a/schemas/20251121/linkml/modules/classes/Geometry.yaml +++ b/schemas/20251121/linkml/modules/classes/Geometry.yaml @@ -8,24 +8,24 @@ prefixes: geosparql: http://www.opengis.net/ont/geosparql# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_format - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_format + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type default_prefix: hc classes: Geometry: class_uri: geosparql:Geometry slots: - - has_or_had_label - - has_or_had_description - - has_or_had_type - - has_or_had_format + - has_label + - has_description + - has_type + - has_format slot_usage: - has_or_had_format: + has_format: # range: string # uriorcurie required: true - has_or_had_type: + has_type: # range: string # uriorcurie required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/GeometryType.yaml b/schemas/20251121/linkml/modules/classes/GeometryType.yaml index 6209f0de58..60707aa2b2 100644 --- a/schemas/20251121/linkml/modules/classes/GeometryType.yaml +++ b/schemas/20251121/linkml/modules/classes/GeometryType.yaml @@ -9,16 +9,16 @@ prefixes: geosparql: http://www.opengis.net/ont/geosparql# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: GeometryType: class_uri: skos:Concept abstract: true slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/GeospatialLocation.yaml b/schemas/20251121/linkml/modules/classes/GeospatialLocation.yaml index bdff5a6f47..05af08c4b5 100644 --- a/schemas/20251121/linkml/modules/classes/GeospatialLocation.yaml +++ b/schemas/20251121/linkml/modules/classes/GeospatialLocation.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_location + - ../slots/20260202_matang/has_location classes: GeospatialLocation: class_uri: schema:GeoCoordinates description: Geospatial location. slots: - - has_or_had_location + - has_location annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/GiftShop.yaml b/schemas/20251121/linkml/modules/classes/GiftShop.yaml index b40964f606..16a21eca8e 100644 --- a/schemas/20251121/linkml/modules/classes/GiftShop.yaml +++ b/schemas/20251121/linkml/modules/classes/GiftShop.yaml @@ -5,17 +5,17 @@ imports: - linkml:types - ../enums/GiftShopTypeEnum - ../enums/ProductCategoryEnum - - ../slots/accepts_or_accepted - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_quantity - - ../slots/has_or_had_range - - ../slots/has_or_had_revenue - - ../slots/has_or_had_score - - ../slots/has_or_had_supplier - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by + - ../slots/accept + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_range + - ../slots/20260202_matang/has_revenue + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_supplier + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by - ../slots/managed_by - ../slots/online_shop - ../slots/opening_hour @@ -39,10 +39,10 @@ classes: GiftShop: is_a: ReconstructedEntity class_uri: schema:Store - description: "Retail operation associated with a heritage custodian for selling merchandise,\nreproductions, books, and heritage-related products.\n\n**PURPOSE AND SCOPE**:\n\nMuseum gift shops, archive bookshops, and library retail spaces are important\nrevenue-generating operations that also serve educational and cultural missions:\n\n- **Revenue generation**: Support institutional operations through merchandise sales\n- **Mission extension**: Offer products related to collections and exhibitions\n- **Visitor experience**: Complete the visit with memorable takeaways\n- **Brand communication**: Extend institutional identity through products\n- **Educational outreach**: Books, educational materials, replicas for learning\n\n**PHYSICAL vs. DIGITAL PRESENCE**:\n\nGift shops can exist in multiple forms:\n\n1. **Physical shop** (on-site): Located within museum/archive building\n - Links to AuxiliaryPlace (physical location)\n - Has opening_hours, accepts_or_accepted (PaymentMethod)\n\ + description: "Retail operation associated with a heritage custodian for selling merchandise,\nreproductions, books, and heritage-related products.\n\n**PURPOSE AND SCOPE**:\n\nMuseum gift shops, archive bookshops, and library retail spaces are important\nrevenue-generating operations that also serve educational and cultural missions:\n\n- **Revenue generation**: Support institutional operations through merchandise sales\n- **Mission extension**: Offer products related to collections and exhibitions\n- **Visitor experience**: Complete the visit with memorable takeaways\n- **Brand communication**: Extend institutional identity through products\n- **Educational outreach**: Books, educational materials, replicas for learning\n\n**PHYSICAL vs. DIGITAL PRESENCE**:\n\nGift shops can exist in multiple forms:\n\n1. **Physical shop** (on-site): Located within museum/archive building\n - Links to AuxiliaryPlace (physical location)\n - Has opening_hours, accept (PaymentMethod)\n\ \ \n2. **Physical shop** (separate): Stand-alone retail location\n - Links to AuxiliaryPlace with type RETAIL_SPACE\n - May have separate street address, hours\n \n3. **Online shop** (e-commerce): Web-based retail platform\n - Links to AuxiliaryDigitalPlatform with type WEBSHOP\n - Has platform_url, shipping policies\n \n4. **Hybrid**: Both physical and online presence\n - Multiple links to AuxiliaryPlace AND AuxiliaryDigitalPlatform\n\n**SCHEMA.ORG ALIGNMENT**:\n\n`schema:Store` - \"A retail good store.\"\n\nKey properties:\n- `schema:openingHours` - Operating hours\n- `schema:acceptedPaymentMethod` - Payment options\n- `schema:priceRange` - Price level indication\n- `schema:currenciesAccepted` - Currency codes\n\n**GoodRelations Integration**:\n\nFor detailed product/offer modeling, GiftShop can link to:\n- `gr:Offering` - Specific product offers\n- `gr:BusinessEntity` - Shop as business entity\n- `gr:PaymentMethod` - Payment options\n\n**RELATIONSHIP TO CUSTODIAN\ \ HUB**:\n\n```\nCustodian (hub)\n \u251C\u2500\u2500 gift_shop \u2192 GiftShop (retail operations)\n \u2502 \u251C\u2500\u2500 physical_location \u2192 AuxiliaryPlace (shop location)\n \u2502 \u251C\u2500\u2500 online_shop \u2192 AuxiliaryDigitalPlatform (e-commerce)\n \u2502 \u251C\u2500\u2500 product_categories \u2192 ProductCategoryEnum[]\n \u2502 \u2514\u2500\u2500 revenue_data \u2192 Annual sales, visitor conversion\n \u2502\n \u2514\u2500\u2500 commercial_activities (broader commercial operations)\n```\n\n**USE CASES**:\n\n1. **Museum Shop** (Rijksmuseum):\n - Physical shop in museum foyer\n - Online shop at rijksmuseumshop.nl\n - Products: Reproductions, books, design objects\n \n2. **Archive Bookshop** (National Archives):\n - Small shop near reading room\n - Publications, finding aids, historical maps\n \n3. **Library Retail** (British Library):\n - Multiple retail spaces (shop, cafe, bookshop)\n - Extensive publication program\n \n4. **Pop-up\ - \ Shop** (Exhibition):\n - Temporary retail for special exhibition\n - Exhibition catalog, themed merchandise\n\n**Example - Rijksmuseum Gift Shop**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n gift_shop:\n - has_or_had_identifier: \"https://nde.nl/ontology/hc/gift-shop/rijksmuseum-shop\" # was: shop_id\n has_or_had_label: # was: shop_name\n label_text: \"Rijksmuseum Shop\"\n shop_type: MUSEUM_SHOP\n has_or_had_description: # was: shop_description\n description_text: |\n Award-winning museum shop offering reproductions, design objects,\n books, and exclusive Rijksmuseum merchandise.\n physical_location:\n - place_name: \"Rijksmuseum Shop - Main Hall\"\n auxiliary_place_type: RETAIL_SPACE\n street_address: \"Museumstraat 1, Amsterdam\"\n online_shop:\n - platform_name: \"Rijksmuseum Online Shop\"\n \ + \ Shop** (Exhibition):\n - Temporary retail for special exhibition\n - Exhibition catalog, themed merchandise\n\n**Example - Rijksmuseum Gift Shop**:\n```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n gift_shop:\n - identified_by: \"https://nde.nl/ontology/hc/gift-shop/rijksmuseum-shop\" # was: shop_id\n has_label: # was: shop_name\n label_text: \"Rijksmuseum Shop\"\n shop_type: MUSEUM_SHOP\n has_description: # was: shop_description\n description_text: |\n Award-winning museum shop offering reproductions, design objects,\n books, and exclusive Rijksmuseum merchandise.\n physical_location:\n - place_name: \"Rijksmuseum Shop - Main Hall\"\n auxiliary_place_type: RETAIL_SPACE\n street_address: \"Museumstraat 1, Amsterdam\"\n online_shop:\n - platform_name: \"Rijksmuseum Online Shop\"\n \ \ platform_url: \"https://www.rijksmuseumshop.nl/\"\n auxiliary_platform_type: WEBSHOP\n product_categories:\n - REPRODUCTIONS\n - BOOKS\n - DESIGN_OBJECTS\n - JEWELRY\n - HOME_DECOR\n price_currency: EUR\n accepts_payment_methods:\n - CASH\n - CREDIT_CARD\n - DEBIT_CARD\n - MOBILE_PAYMENT\n opening_hours: \"09:00-18:00\"\n```\n\n**TEMPORAL VALIDITY**:\n\nGift shops can open/close independently of the main institution:\n- New shop location opened 2013 after renovation\n- Temporary pop-up during exhibition\n- Online shop launched 2010\n\nTrack with valid_from/valid_to dates.\n" exact_mappings: - schema:Store @@ -57,34 +57,34 @@ classes: - gr:Offering - schema:Product slots: - - accepts_or_accepted - - has_or_had_revenue - - has_or_had_range + - accept + - has_revenue + - has_range - managed_by - online_shop - opening_hour - physical_location - price_currency - refers_to_custodian - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description - shop_type - square_meters - - has_or_had_quantity - - has_or_had_supplier - - has_or_had_score + - has_quantity + - has_supplier + - has_score - temporal_extent - - is_or_was_derived_from - - is_or_was_generated_by + - derived_from + - generated_by slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/gift-shop/rijksmuseum-shop - has_or_had_label: + has_label: # range: string inlined: false # Fixed invalid inline for primitive type required: true @@ -93,7 +93,7 @@ classes: label_text: Rijksmuseum Shop - value: label_text: British Library Bookshop - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type examples: @@ -131,18 +131,18 @@ classes: examples: - value: EUR - value: USD - has_or_had_range: + has_range: range: PriceRange inlined: true required: false examples: - value: - has_or_had_symbol: $$ - has_or_had_description: Mid-range pricing + has_symbol: $$ + has_description: Mid-range pricing - value: - has_or_had_label: "\u20AC5-\u20AC500" - has_or_had_description: Price range in euros - accepts_or_accepted: + has_label: "\u20AC5-\u20AC500" + has_description: Price range in euros + accept: range: PaymentMethod inlined: true multivalued: true @@ -157,18 +157,18 @@ classes: examples: - value: Mo-Su 09:00-18:00 - value: Mo-Fr 10:00-17:00, Sa-Su 10:00-18:00 - has_or_had_revenue: + has_revenue: range: Revenue inlined: true multivalued: true examples: - value: - has_or_had_quantity: 5000000.0 - has_or_had_currency: + has_quantity: 5000000.0 + has_currency: currency_code: EUR - has_or_had_time_interval: - - value: "has_or_had_conversion_rate:\n - rate_value: 0.35\n has_or_had_type:\n has_or_had_label: \"Visitor to Purchase\"\n temporal_extent:\n begin_of_the_begin: \"2024-01-01\"\n end_of_the_end: \"2024-12-31\"\n" - has_or_had_quantity: + has_time_interval: + - value: "has_conversion_rate:\n - rate_value: 0.35\n has_type:\n has_label: \"Visitor to Purchase\"\n temporal_extent:\n begin_of_the_begin: \"2024-01-01\"\n end_of_the_end: \"2024-12-31\"\n" + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type square_meters: @@ -182,24 +182,24 @@ classes: examples: - value: In-house (Rijksmuseum BV) - value: Outsourced (Culture Shops Ltd) - has_or_had_supplier: + has_supplier: range: Supplier inlined_as_list: true multivalued: true required: false examples: - value: - - has_or_had_label: + - has_label: label_text: King & McGaw - has_or_had_type: - - has_or_had_label: + has_type: + - has_label: label_text: Print Supplier - has_or_had_description: + has_description: description_text: Art prints supplier - - has_or_had_label: + - has_label: label_text: Museum Reproductions Ltd - has_or_had_type: - - has_or_had_label: + has_type: + - has_label: label_text: Reproduction Supplier temporal_extent: range: TimeSpan @@ -208,11 +208,11 @@ classes: - value: begin_of_the_begin: '2010-01-01' end_of_the_begin: '2013-04-13' - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false refers_to_custodian: @@ -235,11 +235,11 @@ classes: - https://schema.org/Offer examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/gift-shop/rijksmuseum-shop - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/gift-shop/rijksmuseum-shop + has_label: label_text: Rijksmuseum Shop shop_type: MUSEUM_SHOP - has_or_had_description: + has_description: description_text: Award-winning museum shop offering reproductions, design objects, books, and exclusive Rijksmuseum merchandise. Located in the redesigned entrance hall. physical_location: - place_name: Rijksmuseum Shop - Main Hall @@ -251,41 +251,41 @@ classes: platform_url: https://www.rijksmuseumshop.nl/ auxiliary_platform_type: WEBSHOP price_currency: EUR - has_or_had_range: - has_or_had_symbol: $$ - has_or_had_description: Mid-range pricing - accepts_or_accepted: + has_range: + has_symbol: $$ + has_description: Mid-range pricing + accept: - method_type: CASH - method_type: CREDIT_CARD - method_type: DEBIT_CARD - method_type: MOBILE_PAYMENT - method_type: MUSEUM_CARD opening_hours: Mo-Su 09:00-18:00 - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type square_meters: 450.0 managed_by: In-house (Rijksmuseum BV) - has_or_had_supplier: - - has_or_had_label: + has_supplier: + - has_label: label_text: King & McGaw - has_or_had_type: - - has_or_had_label: + has_type: + - has_label: label_text: Print Supplier - has_or_had_description: + has_description: description_text: Fine art prints supplier for museum reproductions - - has_or_had_label: + - has_label: label_text: Museum Reproductions Ltd - has_or_had_type: - - has_or_had_label: + has_type: + - has_label: label_text: Reproduction Supplier refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/gift-shop/british-library-shop - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/gift-shop/british-library-shop + has_label: label_text: British Library Shop shop_type: BOOKSHOP - has_or_had_description: + has_description: description_text: Specialist bookshop focusing on rare book facsimiles, literary merchandise, and British Library publications. physical_location: - place_name: British Library Shop @@ -296,21 +296,21 @@ classes: platform_url: https://shop.bl.uk/ auxiliary_platform_type: WEBSHOP price_currency: GBP - has_or_had_range: - has_or_had_symbol: $$ - has_or_had_description: Mid-range pricing - accepts_or_accepted: + has_range: + has_symbol: $$ + has_description: Mid-range pricing + accept: - method_type: CASH - method_type: CREDIT_CARD - method_type: DEBIT_CARD opening_hours: Mo-Fr 09:30-18:00, Sa 09:30-17:00, Su 11:00-17:00 refers_to_custodian: https://nde.nl/ontology/hc/gb-british-library - value: - has_or_had_identifier: https://nde.nl/ontology/hc/gift-shop/vermeer-exhibition-popup - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/gift-shop/vermeer-exhibition-popup + has_label: label_text: Vermeer Exhibition Pop-up Shop shop_type: POP_UP - has_or_had_description: + has_description: description_text: Temporary retail for the 2023 Vermeer exhibition with exclusive exhibition merchandise and catalog. physical_location: - place_name: Vermeer Exhibition Shop diff --git a/schemas/20251121/linkml/modules/classes/GivenName.yaml b/schemas/20251121/linkml/modules/classes/GivenName.yaml index e3911e6ac9..4819317fb0 100644 --- a/schemas/20251121/linkml/modules/classes/GivenName.yaml +++ b/schemas/20251121/linkml/modules/classes/GivenName.yaml @@ -9,8 +9,8 @@ prefixes: foaf: http://xmlns.com/foaf/0.1/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: GivenName: @@ -18,8 +18,8 @@ classes: close_mappings: - foaf:givenName slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/GoogleMapsEnrichment.yaml b/schemas/20251121/linkml/modules/classes/GoogleMapsEnrichment.yaml index 47453ec300..ada9bc551e 100644 --- a/schemas/20251121/linkml/modules/classes/GoogleMapsEnrichment.yaml +++ b/schemas/20251121/linkml/modules/classes/GoogleMapsEnrichment.yaml @@ -46,7 +46,7 @@ classes: slots: - name - coordinates - - has_or_had_url + - has_url - opening_hour - latitude - longitude diff --git a/schemas/20251121/linkml/modules/classes/GoogleReview.yaml b/schemas/20251121/linkml/modules/classes/GoogleReview.yaml index 4b783465d7..4aa7971e7f 100644 --- a/schemas/20251121/linkml/modules/classes/GoogleReview.yaml +++ b/schemas/20251121/linkml/modules/classes/GoogleReview.yaml @@ -14,12 +14,12 @@ prefixes: org: http://www.w3.org/ns/org# imports: - linkml:types - - ../slots/has_or_had_author_name - - ../slots/has_or_had_url - - ../slots/has_or_had_rating - - ../slots/has_or_had_description - - ../slots/has_or_had_text - - ../slots/has_or_had_publication_date + - ../slots/20260202_matang/has_author_name + - ../slots/20260202_matang/has_url + - ../slots/20260202_matang/has_rating + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_text + - ../slots/20260202_matang/has_publication_date # default_range: string classes: GoogleReview: @@ -31,25 +31,25 @@ classes: - prov:Entity - schema:Rating slots: - - has_or_had_author_name - - has_or_had_url - - has_or_had_rating - - has_or_had_description - - has_or_had_text - - has_or_had_publication_date + - has_author_name + - has_url + - has_rating + - has_description + - has_text + - has_publication_date slot_usage: - has_or_had_author_name: + has_author_name: description: Author/Reviewer name - has_or_had_url: + has_url: description: Author profile URL - has_or_had_rating: + has_rating: range: integer description: Rating value (1-5 stars) - has_or_had_description: + has_description: description: Relative time description (e.g., "a week ago") - has_or_had_text: + has_text: description: Review content - has_or_had_publication_date: + has_publication_date: description: Timestamp of review annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/GovernanceAuthority.yaml b/schemas/20251121/linkml/modules/classes/GovernanceAuthority.yaml index 8b1a969188..d259fa48e7 100644 --- a/schemas/20251121/linkml/modules/classes/GovernanceAuthority.yaml +++ b/schemas/20251121/linkml/modules/classes/GovernanceAuthority.yaml @@ -13,15 +13,15 @@ classes: class_uri: org:Organization description: The authority that exercises governance over the entity or institution. slots: - - has_or_had_identifier - - has_or_had_name - - has_or_had_description + - identified_by + - has_name + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_name diff --git a/schemas/20251121/linkml/modules/classes/GovernanceRole.yaml b/schemas/20251121/linkml/modules/classes/GovernanceRole.yaml index c88cc69e8d..6c62f72ad6 100644 --- a/schemas/20251121/linkml/modules/classes/GovernanceRole.yaml +++ b/schemas/20251121/linkml/modules/classes/GovernanceRole.yaml @@ -10,17 +10,17 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: GovernanceRole: class_uri: org:Role description: A role within a governance structure (e.g., Voting Member, Observer). slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/GovernanceStructure.yaml b/schemas/20251121/linkml/modules/classes/GovernanceStructure.yaml index 226badf2b3..48c520a350 100644 --- a/schemas/20251121/linkml/modules/classes/GovernanceStructure.yaml +++ b/schemas/20251121/linkml/modules/classes/GovernanceStructure.yaml @@ -10,17 +10,17 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_type classes: GovernanceStructure: class_uri: org:OrganizationalUnit description: The internal governance and organizational structure. slots: - - has_or_had_description - - has_or_had_type - - has_or_had_identifier + - has_description + - has_type + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/GoverningBody.yaml b/schemas/20251121/linkml/modules/classes/GoverningBody.yaml index 606efa52b8..b5e23a935e 100644 --- a/schemas/20251121/linkml/modules/classes/GoverningBody.yaml +++ b/schemas/20251121/linkml/modules/classes/GoverningBody.yaml @@ -10,8 +10,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_name + - ../slots/identified_by + - ../slots/20260202_matang/has_name classes: GoverningBody: class_uri: org:Organization @@ -20,8 +20,8 @@ classes: - rico:CorporateBody description: The organisation or body that established and governs this agenda or entity. slots: - - has_or_had_identifier - - has_or_had_name + - identified_by + - has_name annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/GovernmentArchive.yaml b/schemas/20251121/linkml/modules/classes/GovernmentArchive.yaml index 652e94f475..79f1180293 100644 --- a/schemas/20251121/linkml/modules/classes/GovernmentArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/GovernmentArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: GovernmentArchive: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q119712417 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Government Archive diff --git a/schemas/20251121/linkml/modules/classes/GovernmentArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/GovernmentArchiveRecordSetType.yaml index 65700874f3..c6973dc4ec 100644 --- a/schemas/20251121/linkml/modules/classes/GovernmentArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/GovernmentArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: GovernmentArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by GovernmentArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - GovernmentArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/GovernmentArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/GovernmentArchiveRecordSetTypes.yaml index a8f558bc29..1c72d28929 100644 --- a/schemas/20251121/linkml/modules/classes/GovernmentArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/GovernmentArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./GovernmentArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - GovernmentArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: AgencyAdministrativeFonds @@ -78,15 +78,15 @@ classes: - GovernmentArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PolicyDocumentCollection @@ -115,15 +115,15 @@ classes: - GovernmentArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PublicServiceRecordSeries diff --git a/schemas/20251121/linkml/modules/classes/GovernmentHierarchy.yaml b/schemas/20251121/linkml/modules/classes/GovernmentHierarchy.yaml index 11c8b782b1..d55e4c492f 100644 --- a/schemas/20251121/linkml/modules/classes/GovernmentHierarchy.yaml +++ b/schemas/20251121/linkml/modules/classes/GovernmentHierarchy.yaml @@ -9,8 +9,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_tier + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_tier classes: GovernmentHierarchy: class_uri: org:OrganizationalUnit @@ -21,19 +21,19 @@ classes: **Structure**: - - Links to AdministrativeLevel via has_or_had_tier. + - Links to AdministrativeLevel via has_tier. - - Can be used with is_or_was_part_of to place an institution in the hierarchy. + - Can be used with part_of to place an institution in the hierarchy. ' slots: - - has_or_had_label - - has_or_had_tier + - has_label + - has_tier slot_usage: - has_or_had_tier: + has_tier: range: AdministrativeLevel required: true - has_or_had_label: + has_label: annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/GrantRange.yaml b/schemas/20251121/linkml/modules/classes/GrantRange.yaml index c9f7dcfc7a..ad41829b07 100644 --- a/schemas/20251121/linkml/modules/classes/GrantRange.yaml +++ b/schemas/20251121/linkml/modules/classes/GrantRange.yaml @@ -25,9 +25,9 @@ classes: \ for lower/upper value limits.\n\n**USE CASES**:\n- Heritage grant programs\ \ (Mondriaan Fund, EU Creative Europe)\n- Digitization funding ranges\n- Conservation\ \ project budgets\n- Research grant parameters\n\n**EXAMPLE** - Creative Europe\ - \ Grant:\n```yaml\nhas_or_had_range:\n - minimal_of_minimal:\n quantity_value:\ - \ 60000\n has_or_had_measurement_unit:\n unit_label: \"EUR\"\n \ - \ maximal_of_maximal:\n quantity_value: 200000\n has_or_had_measurement_unit:\n\ + \ Grant:\n```yaml\nhas_range:\n - minimal_of_minimal:\n quantity_value:\ + \ 60000\n has_measurement_unit:\n unit_label: \"EUR\"\n \ + \ maximal_of_maximal:\n quantity_value: 200000\n has_measurement_unit:\n\ \ unit_label: \"EUR\"\n range_description: \"Small-scale cooperation\ \ projects\"\n```\n" exact_mappings: @@ -57,17 +57,17 @@ classes: examples: - value: minimal_of_minimal: - has_or_had_measurement_unit: + has_measurement_unit: unit_label: EUR maximal_of_maximal: - has_or_had_measurement_unit: + has_measurement_unit: unit_label: EUR - value: minimal_of_minimal: - has_or_had_measurement_unit: + has_measurement_unit: unit_label: GBP maximal_of_maximal: - has_or_had_measurement_unit: + has_measurement_unit: unit_label: GBP annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/GrowthRate.yaml b/schemas/20251121/linkml/modules/classes/GrowthRate.yaml index 6022097d23..177b024c96 100644 --- a/schemas/20251121/linkml/modules/classes/GrowthRate.yaml +++ b/schemas/20251121/linkml/modules/classes/GrowthRate.yaml @@ -9,13 +9,13 @@ prefixes: dcterms: http://purl.org/dc/terms/ imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description default_prefix: hc classes: GrowthRate: class_uri: schema:QuantitativeValue slots: - - has_or_had_description + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/HALCAdm2Name.yaml b/schemas/20251121/linkml/modules/classes/HALCAdm2Name.yaml index 013fb5cdfd..40a16e17d6 100644 --- a/schemas/20251121/linkml/modules/classes/HALCAdm2Name.yaml +++ b/schemas/20251121/linkml/modules/classes/HALCAdm2Name.yaml @@ -8,15 +8,15 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: HALCAdm2Name: class_uri: skos:Concept slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/HCID.yaml b/schemas/20251121/linkml/modules/classes/HCID.yaml index 32d278c9f3..c91c8ca008 100644 --- a/schemas/20251121/linkml/modules/classes/HCID.yaml +++ b/schemas/20251121/linkml/modules/classes/HCID.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: HCID: class_uri: schema:PropertyValue @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_value + - has_value diff --git a/schemas/20251121/linkml/modules/classes/HCPresetURI.yaml b/schemas/20251121/linkml/modules/classes/HCPresetURI.yaml index 8e97a0e974..8c5e7dce68 100644 --- a/schemas/20251121/linkml/modules/classes/HCPresetURI.yaml +++ b/schemas/20251121/linkml/modules/classes/HCPresetURI.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: HCPresetURI: class_uri: schema:URL @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_value + - has_value diff --git a/schemas/20251121/linkml/modules/classes/HTMLFile.yaml b/schemas/20251121/linkml/modules/classes/HTMLFile.yaml index 203191bf38..4f45ab3fa0 100644 --- a/schemas/20251121/linkml/modules/classes/HTMLFile.yaml +++ b/schemas/20251121/linkml/modules/classes/HTMLFile.yaml @@ -14,17 +14,17 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_file_location - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_file_location + - ../slots/20260202_matang/has_label classes: HTMLFile: class_uri: skos:Concept description: An HTML file. slots: - - has_or_had_label - - has_or_had_description - - has_or_had_file_location + - has_label + - has_description + - has_file_location annotations: specificity_score: 0.1 specificity_rationale: Generic utility class. diff --git a/schemas/20251121/linkml/modules/classes/HTTPMethod.yaml b/schemas/20251121/linkml/modules/classes/HTTPMethod.yaml index 83a5ffd70f..888f69f86e 100644 --- a/schemas/20251121/linkml/modules/classes/HTTPMethod.yaml +++ b/schemas/20251121/linkml/modules/classes/HTTPMethod.yaml @@ -6,16 +6,16 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type classes: HTTPMethod: description: Represents an HTTP request method supported by a heritage institution's API or web service. Common methods include GET (retrieve), POST (create), PUT (update), DELETE (remove), and PATCH (partial update). class_uri: schema:Thing slots: - - has_or_had_type + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/HTTPMethodType.yaml b/schemas/20251121/linkml/modules/classes/HTTPMethodType.yaml index 1c8b8fe0bb..3d1d4462bb 100644 --- a/schemas/20251121/linkml/modules/classes/HTTPMethodType.yaml +++ b/schemas/20251121/linkml/modules/classes/HTTPMethodType.yaml @@ -6,18 +6,18 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: HTTPMethodType: description: Abstract base class for HTTP method type taxonomy. Classifies HTTP request methods (GET, POST, PUT, DELETE, PATCH, etc.) used by heritage institution APIs and web services. class_uri: skos:Concept abstract: true slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/HTTPStatus.yaml b/schemas/20251121/linkml/modules/classes/HTTPStatus.yaml index fbd4464c5b..aebffece28 100644 --- a/schemas/20251121/linkml/modules/classes/HTTPStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/HTTPStatus.yaml @@ -14,17 +14,17 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_value classes: HTTPStatus: class_uri: skos:Concept description: An HTTP status. slots: - - has_or_had_value - - has_or_had_label - - has_or_had_description + - has_value + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class. diff --git a/schemas/20251121/linkml/modules/classes/HTTPStatusCode.yaml b/schemas/20251121/linkml/modules/classes/HTTPStatusCode.yaml index 17b59ee397..c773b28368 100644 --- a/schemas/20251121/linkml/modules/classes/HTTPStatusCode.yaml +++ b/schemas/20251121/linkml/modules/classes/HTTPStatusCode.yaml @@ -14,15 +14,15 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_value classes: HTTPStatusCode: class_uri: skos:Concept description: An HTTP status code. slots: - - has_or_had_value - - has_or_had_label + - has_value + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class. diff --git a/schemas/20251121/linkml/modules/classes/Habitat.yaml b/schemas/20251121/linkml/modules/classes/Habitat.yaml index d402486781..6a56a7fee8 100644 --- a/schemas/20251121/linkml/modules/classes/Habitat.yaml +++ b/schemas/20251121/linkml/modules/classes/Habitat.yaml @@ -9,8 +9,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: Habitat: @@ -18,8 +18,8 @@ classes: close_mappings: - dwc:habitat slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/HandsOnFacility.yaml b/schemas/20251121/linkml/modules/classes/HandsOnFacility.yaml index 262951380c..16510b9340 100644 --- a/schemas/20251121/linkml/modules/classes/HandsOnFacility.yaml +++ b/schemas/20251121/linkml/modules/classes/HandsOnFacility.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: HandsOnFacility: class_uri: schema:AmenityFeature description: Hands-on facility. slots: - - has_or_had_description + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Hazard.yaml b/schemas/20251121/linkml/modules/classes/Hazard.yaml index f294b3a2d2..2569423917 100644 --- a/schemas/20251121/linkml/modules/classes/Hazard.yaml +++ b/schemas/20251121/linkml/modules/classes/Hazard.yaml @@ -2,7 +2,7 @@ id: https://nde.nl/ontology/hc/class/Hazard name: Hazard title: Hazard description: >- - A has_or_had_risk or risk. + A has_risk or risk. prefixes: linkml: https://w3id.org/linkml/ @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: Hazard: class_uri: schema:Text @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_description + - has_description diff --git a/schemas/20251121/linkml/modules/classes/Heading.yaml b/schemas/20251121/linkml/modules/classes/Heading.yaml index c564227c71..716ca69262 100644 --- a/schemas/20251121/linkml/modules/classes/Heading.yaml +++ b/schemas/20251121/linkml/modules/classes/Heading.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: Heading: class_uri: schema:Text @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_value + - has_value diff --git a/schemas/20251121/linkml/modules/classes/HeadingLevel.yaml b/schemas/20251121/linkml/modules/classes/HeadingLevel.yaml index 937c75ce51..c8217ad74d 100644 --- a/schemas/20251121/linkml/modules/classes/HeadingLevel.yaml +++ b/schemas/20251121/linkml/modules/classes/HeadingLevel.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: HeadingLevel: class_uri: schema:Integer @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_value + - has_value diff --git a/schemas/20251121/linkml/modules/classes/Heritage.yaml b/schemas/20251121/linkml/modules/classes/Heritage.yaml index 61f1f727b9..cb68efb128 100644 --- a/schemas/20251121/linkml/modules/classes/Heritage.yaml +++ b/schemas/20251121/linkml/modules/classes/Heritage.yaml @@ -1,7 +1,7 @@ id: https://nde.nl/ontology/hc/class/Heritage name: Heritage title: Heritage Class -description: "The concept of cultural or natural heritage.\n\nUsed as a target for relationships (e.g. is_or_was_related_to) to indicate heritage relevance.\n\n**MIGRATED** from heritage_relevance/heritage_employer boolean flags (Rule 53)." +description: "The concept of cultural or natural heritage.\n\nUsed as a target for relationships (e.g. related_to) to indicate heritage relevance.\n\n**MIGRATED** from heritage_relevance/heritage_employer boolean flags (Rule 53)." prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -11,8 +11,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: Heritage: class_uri: skos:Concept @@ -20,8 +20,8 @@ classes: exact_mappings: - crm:E1_CRM_Entity slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Broad heritage domain concept. diff --git a/schemas/20251121/linkml/modules/classes/HeritageForm.yaml b/schemas/20251121/linkml/modules/classes/HeritageForm.yaml index e8d2d930cd..5caf425b9b 100644 --- a/schemas/20251121/linkml/modules/classes/HeritageForm.yaml +++ b/schemas/20251121/linkml/modules/classes/HeritageForm.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: HeritageForm: class_uri: skos:Concept description: A form of heritage. slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: "Generic utility class created during migration" diff --git a/schemas/20251121/linkml/modules/classes/HeritageObject.yaml b/schemas/20251121/linkml/modules/classes/HeritageObject.yaml index fac8bac091..798279903e 100644 --- a/schemas/20251121/linkml/modules/classes/HeritageObject.yaml +++ b/schemas/20251121/linkml/modules/classes/HeritageObject.yaml @@ -14,8 +14,8 @@ imports: - ../metadata - ../slots/current_keeper - ../slots/current_location - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score + - ../slots/identified_by + - ../slots/20260202_matang/has_score - ../slots/object_description - ../slots/object_id - ../slots/object_name @@ -25,7 +25,7 @@ classes: class_uri: crm:E18_Physical_Thing abstract: true description: "Abstract base class for all physical heritage objects that may be stored,\nexhibited, or managed by heritage custodians.\n\n**CIDOC-CRM Alignment**:\n\nMaps to `crm:E18_Physical_Thing` - \"All persistent physical items with a \nrelatively stable form, human-made or natural.\"\n\n**Class Hierarchy**:\n\n```\nHeritageObject (crm:E18_Physical_Thing) - THIS CLASS (abstract)\n \u2502\n \u251C\u2500\u2500 ExhibitedObject (crm:E22_Human-Made_Object)\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500 BiologicalObject (crm:E20_Biological_Object)\n \u2502\n \u2514\u2500\u2500 (future: ArchivalObject, DigitalObject, etc.)\n```\n\n**Purpose**:\n\nHeritageObject serves as:\n1. Common parent for all heritage object types\n2. Typed range for storage relationships (e.g., stores_or_stored slot)\n3. Base for polymorphic queries across object types\n\n**Core Slots Defined**:\n\nAll heritage objects inherit these fundamental properties:\n- `object_id` - Unique identifier\ - \ (required)\n- `object_name` - Human-readable name (required)\n- `object_description` - Descriptive text\n- `current_keeper` - Institution currently holding the object\n- `current_location` - Physical location\n- `has_or_had_identifier` - External identifiers (Wikidata, etc.)\n\n**Usage**:\n\nDo NOT instantiate HeritageObject directly (it is abstract).\nUse concrete subclasses:\n- `ExhibitedObject` for museum objects, artworks, artifacts\n- `BiologicalObject` for natural history specimens\n\n**Example Use Case**:\n\nA StorageUnit.stores_or_stored slot can reference any HeritageObject:\n```yaml\nstores_or_stored:\n - https://nde.nl/ontology/hc/object/painting-001 # ExhibitedObject\n - https://nde.nl/ontology/hc/object/specimen-042 # BiologicalObject\n```\n" + \ (required)\n- `object_name` - Human-readable name (required)\n- `object_description` - Descriptive text\n- `current_keeper` - Institution currently holding the object\n- `current_location` - Physical location\n- `identified_by` - External identifiers (Wikidata, etc.)\n\n**Usage**:\n\nDo NOT instantiate HeritageObject directly (it is abstract).\nUse concrete subclasses:\n- `ExhibitedObject` for museum objects, artworks, artifacts\n- `BiologicalObject` for natural history specimens\n\n**Example Use Case**:\n\nA StorageUnit.stores_or_stored slot can reference any HeritageObject:\n```yaml\nstores_or_stored:\n - https://nde.nl/ontology/hc/object/painting-001 # ExhibitedObject\n - https://nde.nl/ontology/hc/object/specimen-042 # BiologicalObject\n```\n" exact_mappings: - crm:E18_Physical_Thing close_mappings: @@ -41,8 +41,8 @@ classes: - object_description - current_keeper - current_location - - has_or_had_identifier - - has_or_had_score + - identified_by + - has_score slot_usage: object_id: identifier: true @@ -76,7 +76,7 @@ classes: - value: place_name: Gallery 15 country: NL - has_or_had_identifier: + identified_by: required: false # range: string # uriorcurie multivalued: true @@ -93,5 +93,5 @@ classes: annotations: specificity_score: 0.1 specificity_rationale: Universal parent class for all heritage objects. Very low specificity as it applies to all object types. - has_or_had_score: null + has_score: null custodian_types: "['*']" diff --git a/schemas/20251121/linkml/modules/classes/HeritagePractice.yaml b/schemas/20251121/linkml/modules/classes/HeritagePractice.yaml index 9302a52c39..a27c7382b5 100644 --- a/schemas/20251121/linkml/modules/classes/HeritagePractice.yaml +++ b/schemas/20251121/linkml/modules/classes/HeritagePractice.yaml @@ -14,8 +14,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: HeritagePractice: class_uri: skos:Concept @@ -25,5 +25,5 @@ classes: specificity_rationale: "Generic utility class created during migration" custodian_types: '["*"]' slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description diff --git a/schemas/20251121/linkml/modules/classes/HeritageRelevanceAssessment.yaml b/schemas/20251121/linkml/modules/classes/HeritageRelevanceAssessment.yaml index 93a848dd2a..ffd84a3e6f 100644 --- a/schemas/20251121/linkml/modules/classes/HeritageRelevanceAssessment.yaml +++ b/schemas/20251121/linkml/modules/classes/HeritageRelevanceAssessment.yaml @@ -11,10 +11,10 @@ imports: - linkml:types - ../enums/HeritageTypeEnum - ../metadata - - ../slots/has_or_had_note - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to # default_range: string classes: HeritageRelevanceAssessment: @@ -31,7 +31,7 @@ classes: - LinkedIn profile heritage sector classification - - Staff has_or_had_affiliation analysis + - Staff has_affiliation analysis - Heritage professional network mapping @@ -51,18 +51,18 @@ classes: - skos:Concept - schema:DefinedTerm slots: - - has_or_had_score - - has_or_had_type - - is_or_was_related_to - - has_or_had_note + - has_score + - has_type + - related_to + - has_note slot_usage: - is_or_was_related_to: + related_to: range: Heritage required: true examples: - value: - has_or_had_label: Heritage - has_or_had_type: + has_label: Heritage + has_type: range: HeritageTypeEnum multivalued: true examples: @@ -73,17 +73,17 @@ classes: - D - value: - E - has_or_had_score: + has_score: range: float inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_value: 0.85 - has_or_had_description: High confidence - clear heritage role + has_value: 0.85 + has_description: High confidence - clear heritage role - value: - has_or_had_value: 0.55 - has_or_had_description: Low confidence - intern position - has_or_had_note: + has_value: 0.55 + has_description: Low confidence - intern position + has_note: # range: string required: true examples: diff --git a/schemas/20251121/linkml/modules/classes/HeritageRelevanceScore.yaml b/schemas/20251121/linkml/modules/classes/HeritageRelevanceScore.yaml index 0338b50722..8badfb3bf1 100644 --- a/schemas/20251121/linkml/modules/classes/HeritageRelevanceScore.yaml +++ b/schemas/20251121/linkml/modules/classes/HeritageRelevanceScore.yaml @@ -9,17 +9,17 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_value classes: HeritageRelevanceScore: class_uri: schema:Rating description: "Quantitative assessment of heritage relevance." slots: - - has_or_had_value - - has_or_had_description + - has_value + - has_description slot_usage: - has_or_had_value: + has_value: range: float annotations: specificity_score: 0.2 diff --git a/schemas/20251121/linkml/modules/classes/HeritageScore.yaml b/schemas/20251121/linkml/modules/classes/HeritageScore.yaml index 4e6d57aaca..cdb036f52e 100644 --- a/schemas/20251121/linkml/modules/classes/HeritageScore.yaml +++ b/schemas/20251121/linkml/modules/classes/HeritageScore.yaml @@ -8,17 +8,17 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_score default_prefix: hc classes: HeritageScore: class_uri: schema:Rating slots: - - has_or_had_score - - has_or_had_description + - has_score + - has_description slot_usage: - has_or_had_score: + has_score: range: float required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/HeritageSector.yaml b/schemas/20251121/linkml/modules/classes/HeritageSector.yaml index 2f1867cf7a..798cd5d4df 100644 --- a/schemas/20251121/linkml/modules/classes/HeritageSector.yaml +++ b/schemas/20251121/linkml/modules/classes/HeritageSector.yaml @@ -15,15 +15,15 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: HeritageSector: class_uri: skos:Concept description: "A specific sector within cultural heritage." slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class. diff --git a/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml b/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml index 48ca529750..f5805dc5a0 100644 --- a/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml +++ b/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml @@ -31,12 +31,12 @@ imports: - ../classes/AgentType - linkml:types - ../enums/HeritageSocietyTypeEnum - - ../slots/has_or_had_activity - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_published_at + - ../slots/20260202_matang/has_activity + - ../slots/20260202_matang/has_hyponym + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/published_at - ../slots/membership_size - ../slots/society_focus prefixes: @@ -202,15 +202,15 @@ classes: \ are NGOs, but classified as S (Society) when focused on\n collecting or heritage\ \ preservation with membership structure.\n" slots: - - has_or_had_type - - has_or_had_activity - - has_or_had_scope - - has_or_had_score + - has_type + - has_activity + - has_scope + - has_score - society_focus - membership_size - - is_or_was_published_at + - published_at slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:HeritageSocietyType"]' # range: string # uriorcurie # range: Program @@ -218,7 +218,7 @@ classes: multivalued: true examples: - value: null - has_or_had_activity: + has_activity: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type @@ -239,7 +239,7 @@ classes: temporal_extent: begin_of_the_begin: '2025-05-15' end_of_the_end: '2025-05-15' - has_or_had_scope: + has_scope: # range: string # uriorcurie # range: CollectionScope multivalued: true diff --git a/schemas/20251121/linkml/modules/classes/HeritageStatus.yaml b/schemas/20251121/linkml/modules/classes/HeritageStatus.yaml index 6a80acb884..d4bc152153 100644 --- a/schemas/20251121/linkml/modules/classes/HeritageStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/HeritageStatus.yaml @@ -10,17 +10,17 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: HeritageStatus: class_uri: skos:Concept description: "Official designation status." slots: - - has_or_had_label - - has_or_had_description - - has_or_had_identifier + - has_label + - has_description + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class. diff --git a/schemas/20251121/linkml/modules/classes/HeritageType.yaml b/schemas/20251121/linkml/modules/classes/HeritageType.yaml index 1f93a45961..2b10d0d498 100644 --- a/schemas/20251121/linkml/modules/classes/HeritageType.yaml +++ b/schemas/20251121/linkml/modules/classes/HeritageType.yaml @@ -16,17 +16,17 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: HeritageType: class_uri: skos:Concept description: "Heritage classification concept." slots: - - has_or_had_label - - has_or_had_description - - has_or_had_identifier + - has_label + - has_description + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class. diff --git a/schemas/20251121/linkml/modules/classes/HeritageTypeCode.yaml b/schemas/20251121/linkml/modules/classes/HeritageTypeCode.yaml index b9ae852615..635c351389 100644 --- a/schemas/20251121/linkml/modules/classes/HeritageTypeCode.yaml +++ b/schemas/20251121/linkml/modules/classes/HeritageTypeCode.yaml @@ -10,15 +10,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: HeritageTypeCode: class_uri: skos:Concept description: "Heritage taxonomy code." slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class. diff --git a/schemas/20251121/linkml/modules/classes/HeritageTypeCount.yaml b/schemas/20251121/linkml/modules/classes/HeritageTypeCount.yaml index 877e1ed2e9..591ac31b19 100644 --- a/schemas/20251121/linkml/modules/classes/HeritageTypeCount.yaml +++ b/schemas/20251121/linkml/modules/classes/HeritageTypeCount.yaml @@ -8,26 +8,26 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_type_code + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type_code default_prefix: hc classes: HeritageTypeCount: class_uri: schema:DataFeedItem description: "Count of connections for a specific heritage type.\n\nUsed in NetworkAnalysis to provide breakdown by GLAM type.\n\n**Example**:\n```json\n{\n \"heritage_type_code\": \"M\",\n \"count\": 89\n}\n```\n" slots: - - has_or_had_type_code - - has_or_had_quantity - - has_or_had_score + - has_type_code + - has_quantity + - has_score slot_usage: - has_or_had_type_code: + has_type_code: range: HeritageTypeCode required: true examples: - value: M - value: A - has_or_had_quantity: + has_quantity: range: integer required: true examples: diff --git a/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml b/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml index 39de13a2ee..95fcceb2f9 100644 --- a/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml +++ b/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml @@ -7,18 +7,18 @@ imports: - ../slots/construction_date - ../slots/construction_date_precision - ../slots/current_use - - ../slots/has_or_had_area - - ../slots/has_or_had_condition - - ../slots/has_or_had_label - - ../slots/has_or_had_opening_hour - - ../slots/has_or_had_score - - ../slots/has_or_had_status - - ../slots/has_or_had_style - - ../slots/has_or_had_type + - ../slots/20260202_matang/in_area + - ../slots/20260202_matang/has_condition + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_opening_hour + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/has_style + - ../slots/20260202_matang/has_type - ../slots/is_open_to_public - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_designed_by - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/designed_by + - ../slots/20260202_matang/generated_by - ../slots/is_part_of_complex - ../slots/monument_number prefixes: @@ -50,25 +50,25 @@ classes: - schema:Place - hc:FeaturePlace slots: - - has_or_had_style - - is_or_was_designed_by - - has_or_had_area - - has_or_had_label - - has_or_had_condition + - has_style + - designed_by + - in_area + - has_label + - has_condition - construction_date - construction_date_precision - current_use - - has_or_had_type - - has_or_had_status + - has_type + - has_status - is_open_to_public - is_part_of_complex - monument_number - - has_or_had_score - - has_or_had_opening_hour - - is_or_was_derived_from - - is_or_was_generated_by + - has_score + - has_opening_hour + - derived_from + - generated_by slot_usage: - has_or_had_type: + has_type: range: FeatureType required: true any_of: @@ -88,32 +88,32 @@ classes: examples: - value: EXACT - value: APPROXIMATE - has_or_had_style: + has_style: range: ArchitecturalStyle inlined: true examples: - value: - has_or_had_label: Dutch Golden Age + has_label: Dutch Golden Age - value: - has_or_had_label: Neo-Gothic + has_label: Neo-Gothic - value: - has_or_had_label: Amsterdam School - is_or_was_designed_by: + has_label: Amsterdam School + designed_by: range: Architect inlined: true examples: - value: - has_or_had_label: Jacob van Campen + has_label: Jacob van Campen - value: - has_or_had_label: P.J.H. Cuypers - has_or_had_status: + has_label: P.J.H. Cuypers + has_status: range: HeritageStatus inlined: true examples: - value: - has_or_had_label: Rijksmonument + has_label: Rijksmonument - value: - has_or_had_label: Gemeentelijk monument + has_label: Gemeentelijk monument monument_number: # range: string examples: @@ -123,7 +123,7 @@ classes: examples: - value: true - value: false - has_or_had_opening_hour: + has_opening_hour: range: OpeningHour inlined: true multivalued: true @@ -138,67 +138,67 @@ classes: range: boolean examples: - value: true - has_or_had_label: + has_label: range: Label inlined: true multivalued: true required: true examples: - value: - has_or_had_label: Johan de Witthuis - has_or_had_type: preferred_name + has_label: Johan de Witthuis + has_type: preferred_name - value: - has_or_had_label: Klooster Ter Apel - has_or_had_type: complex_name - has_or_had_area: + has_label: Klooster Ter Apel + has_type: complex_name + in_area: range: Area inlined: true multivalued: true examples: - value: area_value: 450.0 - has_or_had_unit: - has_or_had_type: SQUARE_METER - has_or_had_symbol: "m\xB2" - has_or_had_label: Building floor area + has_unit: + has_type: SQUARE_METER + has_symbol: "m\xB2" + has_label: Building floor area - value: area_value: 1200.0 - has_or_had_unit: - has_or_had_type: SQUARE_METER - has_or_had_symbol: "m\xB2" + has_unit: + has_type: SQUARE_METER + has_symbol: "m\xB2" is_estimate: true measurement_method: Historical records - has_or_had_label: Total floor area + has_label: Total floor area current_use: # range: string examples: - value: Museum and events - value: Administrative offices - value: UNDER_RESTORATION - has_or_had_condition: + has_condition: range: Condition inlined: true examples: - value: - has_or_had_type: EXCELLENT - has_or_had_description: + has_type: EXCELLENT + has_description: description_text: Well-maintained historic fabric description_type: condition - value: - has_or_had_type: GOOD - has_or_had_description: + has_type: GOOD + has_description: description_text: Minor wear consistent with age description_type: condition - value: - has_or_had_type: UNDER_RESTORATION - has_or_had_description: + has_type: UNDER_RESTORATION + has_description: description_text: Major restoration project 2024-2025 description_type: condition - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false comments: @@ -207,8 +207,8 @@ classes: - Links to FeatureTypeEnum for Wikidata-sourced building classification - Distinguished from CustodianPlace (main headquarters) - May be open to public or used for operations/events - - 'MIGRATION NOTE: has_or_had_area replaced building_floor_area_sqm (Rule 53)' - - 'MIGRATION NOTE: has_or_had_label replaced historic_building_name (Rule 53)' + - 'MIGRATION NOTE: in_area replaced building_floor_area_sqm (Rule 53)' + - 'MIGRATION NOTE: has_label replaced historic_building_name (Rule 53)' see_also: - http://vocab.getty.edu/aat/300005425 - https://schema.org/LandmarksOrHistoricalBuildings @@ -216,53 +216,53 @@ classes: examples: - value: historic_building_id: https://nde.nl/ontology/hc/aux/mauritshuis-johan-de-witt - has_or_had_label: - - has_or_had_label: Johan de Witthuis - has_or_had_type: preferred_name - has_or_had_type: HISTORIC_HOUSE_MUSEUM + has_label: + - has_label: Johan de Witthuis + has_type: preferred_name + has_type: HISTORIC_HOUSE_MUSEUM construction_date: '1650' construction_date_precision: APPROXIMATE - has_or_had_style: - has_or_had_label: Dutch Golden Age - has_or_had_status: - has_or_had_label: Rijksmonument + has_style: + has_label: Dutch Golden Age + has_status: + has_label: Rijksmonument monument_number: '16284' is_open_to_public: false current_use: Administrative offices and events - has_or_had_condition: - has_or_had_type: EXCELLENT - has_or_had_description: + has_condition: + has_type: EXCELLENT + has_description: description_text: Well-maintained historic fabric description_type: condition - has_or_had_area: + in_area: - area_value: 450.0 - has_or_had_unit: - has_or_had_type: SQUARE_METER - has_or_had_symbol: "m\xB2" - has_or_had_label: Total floor area + has_unit: + has_type: SQUARE_METER + has_symbol: "m\xB2" + has_label: Total floor area - value: historic_building_id: https://nde.nl/ontology/hc/aux/klooster-ter-apel - has_or_had_label: - - has_or_had_label: Klooster Ter Apel - Gasthuis - has_or_had_type: preferred_name - - has_or_had_label: Kasteel Amerongen landgoed - has_or_had_type: complex_name - has_or_had_type: MONASTERY + has_label: + - has_label: Klooster Ter Apel - Gasthuis + has_type: preferred_name + - has_label: Kasteel Amerongen landgoed + has_type: complex_name + has_type: MONASTERY construction_date: '1465' is_part_of_complex: true current_use: Museum and events - has_or_had_condition: - has_or_had_type: GOOD - has_or_had_description: + has_condition: + has_type: GOOD + has_description: description_text: Historic castle in good preservation state description_type: condition - has_or_had_area: + in_area: - area_value: 2500.0 - has_or_had_unit: - has_or_had_type: SQUARE_METER - has_or_had_symbol: "m\xB2" + has_unit: + has_type: SQUARE_METER + has_symbol: "m\xB2" is_estimate: true - has_or_had_label: Castle floor area + has_label: Castle floor area annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/HistoricalArchive.yaml b/schemas/20251121/linkml/modules/classes/HistoricalArchive.yaml index 4a5105d54d..1396531e0f 100644 --- a/schemas/20251121/linkml/modules/classes/HistoricalArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/HistoricalArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: HistoricalArchive: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q3621673 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Historical Archive diff --git a/schemas/20251121/linkml/modules/classes/HistoricalArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/HistoricalArchiveRecordSetType.yaml index 9c8acaa9a4..479a713ee0 100644 --- a/schemas/20251121/linkml/modules/classes/HistoricalArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/HistoricalArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: HistoricalArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by HistoricalArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - HistoricalArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/HistoricalArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/HistoricalArchiveRecordSetTypes.yaml index ce44e74ade..f35f9dfeff 100644 --- a/schemas/20251121/linkml/modules/classes/HistoricalArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/HistoricalArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./HistoricalArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - HistoricalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: HistoricalDocumentFonds @@ -78,15 +78,15 @@ classes: - HistoricalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: HistoricalManuscriptCollection diff --git a/schemas/20251121/linkml/modules/classes/HistoricalRegion.yaml b/schemas/20251121/linkml/modules/classes/HistoricalRegion.yaml index fe89a1adfb..b11cebb8e5 100644 --- a/schemas/20251121/linkml/modules/classes/HistoricalRegion.yaml +++ b/schemas/20251121/linkml/modules/classes/HistoricalRegion.yaml @@ -12,11 +12,11 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_type - - ../slots/is_or_was_located_in + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/located_in - ../slots/temporal_extent default_prefix: hc classes: @@ -29,24 +29,24 @@ classes: - crm:E53_Place - gn:Feature slots: - - has_or_had_label - - has_or_had_type + - has_label + - has_type - temporal_extent - - is_or_was_located_in - - has_or_had_identifier - - has_or_had_description + - located_in + - identified_by + - has_description slot_usage: - has_or_had_label: + has_label: # range: string required: true examples: - value: Duchy of Brabant - value: Prussia - has_or_had_type: + has_type: # range: string temporal_extent: range: TimeSpan - is_or_was_located_in: + located_in: # range: string annotations: specificity_score: 0.3 diff --git a/schemas/20251121/linkml/modules/classes/HolySacredSiteType.yaml b/schemas/20251121/linkml/modules/classes/HolySacredSiteType.yaml index 2d75345027..bcfe52d1a2 100644 --- a/schemas/20251121/linkml/modules/classes/HolySacredSiteType.yaml +++ b/schemas/20251121/linkml/modules/classes/HolySacredSiteType.yaml @@ -14,12 +14,12 @@ description: 'Specialized CustodianType for religious institutions and sacred si imports: - linkml:types - ../enums/HolySiteTypeEnum - - ../slots/has_or_had_content - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_policy - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_managed_by + - ../slots/20260202_matang/has_content + - ../slots/20260202_matang/has_hyponym + - ../slots/20260202_matang/has_policy + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/managed_by - ../slots/religious_function - ../slots/religious_tradition - ../slots/secularization_status @@ -212,8 +212,8 @@ classes: \ religious mission\n- Museum: PUBLIC EXHIBITION institution (secular, even if religious theme)\n- Example: Canterbury Cathedral (worship) vs. Museum Catharijneconvent (museum about religion)\n\nvs. Archive:\n- HolySacredSite: RELIGIOUS INSTITUTION with archival holdings\n- Archive: SECULAR/GOVERNMENT archive (even if holds church records)\n- Example: Parish church archive vs. Diocesan archive (transferred to state archive)\n\nvs. Library:\n- HolySacredSite: RELIGIOUS LIBRARY for clergy/scholars (theological focus)\n- Library: PUBLIC/ACADEMIC library (secular lending institution)\n- Example: Monastery library vs. Theology faculty library at university\n\nvs. IntangibleHeritageGroup:\n- HolySacredSite: INSTITUTIONALIZED religion with physical collections\n- IntangibleHeritageGroup: LIVING PRACTICES and community traditions\n- Example: Cathedral with archives vs. Folk religion practitioners\n\nvs. FeatureCustodian:\n- HolySacredSite: Religious institution MANAGING heritage collections\n\ - FeatureCustodian: Organization managing PHYSICAL monument (building itself)\n- Example: Church clergy (managing archives) vs. Monument trust (managing building)\n\n**Collection Types in Religious Heritage**:\n\n1. **Archival Collections**:\n - Parish registers (baptisms, marriages, deaths)\n - Church administrative records\n - Correspondence (bishops, clergy, parishioners)\n - Property deeds and financial records\n - Ecclesiastical court records\n\n2. **Library Collections**:\n - Sacred texts (Bibles, Qurans, Torahs, Sutras)\n - Theological treatises and commentaries\n - Liturgical books (missals, prayer books, hymnals)\n - Medieval manuscripts and illuminations\n - Religious history and philosophy\n\n3. **Artifact Collections**:\n - Liturgical vessels (chalices, patens, thuribles)\n - Vestments and textiles (chasubles, altar cloths)\n - Religious art (icons, statues, paintings, stained glass)\n - Relics and reliquaries\n - Votive offerings and ex-votos\n\ \n4. **Architectural Heritage**:\n - Historic building fabric (original construction)\n - Architectural fragments (capitals, columns, screens)\n - Building archives (construction documents, plans)\n - Archaeological remains (crypts, foundations)\n\n**Access and Stewardship Challenges**:\n\nReligious heritage collections face unique issues:\n- **Sacred vs. Cultural**: Items may be sacred objects, not just cultural heritage\n- **Active Use**: Collections still in liturgical use (not just preservation)\n- **Restricted Access**: Security, sacredness, or privacy concerns\n- **Volunteer Management**: Often maintained by clergy/volunteers, not professionals\n- **Secularization**: Church closures transfer collections to secular archives\n- **Interfaith Sensitivity**: Respectful representation of diverse traditions\n\n**RDF Serialization Example**:\n\n```turtle\n@prefix hc: <https://nde.nl/ontology/hc/> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix schema: <http://schema.org/>\ - \ .\n@prefix crm: <http://www.cidoc-crm.org/cidoc-crm/> .\n\nhc:HolySacredSiteType\n a skos:Concept, hc:CustodianType ;\n skos:prefLabel \"Holy/Sacred Site Type\"@en,\n \"Religieuze Erfgoedlocatie Type\"@nl,\n \"Religi\xF6se St\xE4tte Typ\"@de,\n \"Type de Site Sacr\xE9\"@fr ;\n skos:definition \"Religious institutions managing heritage collections\"@en ;\n skos:broader hc:CustodianType ;\n skos:narrower hc:ChurchArchive,\n hc:MonasteryLibrary,\n hc:TempleCollection ;\n schema:url <https://nde.nl/ontology/hc/class/holy-sacred-site-type> .\n\n# Example: Vatican Apostolic Archive (papal archive)\n<https://w3id.org/heritage/custodian/va/vatican-apostolic-archive>\n a schema:PlaceOfWorship, schema:ArchiveOrganization, crm:E39_Actor, hc:HolySacredSite ;\n hc:custodian_type hc:HolySacredSiteType ;\n hc:religious_tradition \"Roman Catholic Christianity\" ;\n hc:has_or_had_content [ hc:content_description\ - \ \"Archival records, Papal documents, Medieval manuscripts, Correspondence\" ] ;\n hc:religious_function \"Support papal governance\", \"Document Church history\", \"Preserve canon law\" ;\n hc:access_policy \"Restricted access by appointment\", \"Scholars and researchers only\", \"No browsing\" ;\n hc:is_or_was_managed_by \"Prefect of Vatican Apostolic Archive\", \"Papal administrative authority\" ;\n hc:secularization_status \"Active religious institution, No secularization\" ;\n schema:name \"Vatican Apostolic Archive\"@en, \"Archivum Apostolicum Vaticanum\"@la ;\n schema:alternateName \"Vatican Secret Archives (former name until 2019)\" ;\n schema:foundingDate \"1612\" ;\n schema:location \"Vatican City\" ;\n schema:description \"Central repository for papal and Vatican documents, holding over 85 km of shelving with records dating back to the 8th century\" ;\n schema:url <https://www.archiviosegretovaticano.va/> .\n```\n" + \ .\n@prefix crm: <http://www.cidoc-crm.org/cidoc-crm/> .\n\nhc:HolySacredSiteType\n a skos:Concept, hc:CustodianType ;\n skos:prefLabel \"Holy/Sacred Site Type\"@en,\n \"Religieuze Erfgoedlocatie Type\"@nl,\n \"Religi\xF6se St\xE4tte Typ\"@de,\n \"Type de Site Sacr\xE9\"@fr ;\n skos:definition \"Religious institutions managing heritage collections\"@en ;\n skos:broader hc:CustodianType ;\n skos:narrower hc:ChurchArchive,\n hc:MonasteryLibrary,\n hc:TempleCollection ;\n schema:url <https://nde.nl/ontology/hc/class/holy-sacred-site-type> .\n\n# Example: Vatican Apostolic Archive (papal archive)\n<https://w3id.org/heritage/custodian/va/vatican-apostolic-archive>\n a schema:PlaceOfWorship, schema:ArchiveOrganization, crm:E39_Actor, hc:HolySacredSite ;\n hc:custodian_type hc:HolySacredSiteType ;\n hc:religious_tradition \"Roman Catholic Christianity\" ;\n hc:has_content [ hc:content_description\ + \ \"Archival records, Papal documents, Medieval manuscripts, Correspondence\" ] ;\n hc:religious_function \"Support papal governance\", \"Document Church history\", \"Preserve canon law\" ;\n hc:access_policy \"Restricted access by appointment\", \"Scholars and researchers only\", \"No browsing\" ;\n hc:managed_by \"Prefect of Vatican Apostolic Archive\", \"Papal administrative authority\" ;\n hc:secularization_status \"Active religious institution, No secularization\" ;\n schema:name \"Vatican Apostolic Archive\"@en, \"Archivum Apostolicum Vaticanum\"@la ;\n schema:alternateName \"Vatican Secret Archives (former name until 2019)\" ;\n schema:foundingDate \"1612\" ;\n schema:location \"Vatican City\" ;\n schema:description \"Central repository for papal and Vatican documents, holding over 85 km of shelving with records dating back to the 8th century\" ;\n schema:url <https://www.archiviosegretovaticano.va/> .\n```\n" exact_mappings: - skos:Concept close_mappings: @@ -227,15 +227,15 @@ classes: - schema:Synagogue - schema:ArchiveOrganization slots: - - has_or_had_policy - - has_or_had_content - - has_or_had_type - - has_or_had_hyponym + - has_policy + - has_content + - has_type + - has_hyponym - religious_function - religious_tradition - secularization_status - - is_or_was_managed_by - - has_or_had_score + - managed_by + - has_score slot_usage: religious_tradition: # range: string @@ -244,7 +244,7 @@ classes: - value: Roman Catholic Christianity - value: Sunni Islam, Hanafi school - value: Theravada Buddhism - has_or_had_content: + has_content: # range: string # uriorcurie # range: CollectionContent multivalued: true @@ -253,15 +253,15 @@ classes: required: true examples: - value: - has_or_had_type: + has_type: - type_label: Archival - type_label: Library - value: - has_or_had_type: + has_type: - type_label: Archival - type_label: Liturgical - value: - has_or_had_type: + has_type: - type_label: Library - type_label: Art religious_function: @@ -271,14 +271,14 @@ classes: - value: Papal governance, Church history, Canon law - value: Clergy education, Liturgical support - value: Community genealogy, Ritual preparation - has_or_had_policy: + has_policy: # range: string required: true examples: - value: Restricted, Scholars by appointment, No browsing - value: Public viewing hours, No photography, Guided tours - value: Digitized online, Physical access by permission - is_or_was_managed_by: + managed_by: # range: string # uriorcurie required: true examples: @@ -292,12 +292,12 @@ classes: - value: Active religious institution, No secularization - value: Partially secularized, Collections transferred to state archive - value: Deconsecrated, Converted to museum - has_or_had_type: + has_type: equals_expression: '["hc:HolySacredSiteType"]' - has_or_had_hyponym: + has_hyponym: # range: string # uriorcurie # range: HolySiteType examples: - value: - has_or_had_label: Church - is_or_was_equivalent_to: \ No newline at end of file + has_label: Church + equivalent_to: \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/HolySiteType.yaml b/schemas/20251121/linkml/modules/classes/HolySiteType.yaml index 3e17e6a397..1ed6aa5e25 100644 --- a/schemas/20251121/linkml/modules/classes/HolySiteType.yaml +++ b/schemas/20251121/linkml/modules/classes/HolySiteType.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/is_or_was_equivalent_to + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/equivalent_to default_prefix: hc classes: HolySiteType: @@ -21,25 +21,25 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - is_or_was_equivalent_to + - identified_by + - has_label + - has_description + - equivalent_to slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true examples: - value: hc:HolySiteType/CHURCH - value: hc:HolySiteType/MOSQUE - has_or_had_label: + has_label: # range: string required: true examples: - value: Church - value: Mosque - value: Synagogue - is_or_was_equivalent_to: + equivalent_to: range: WikiDataIdentifier examples: - value: diff --git a/schemas/20251121/linkml/modules/classes/HospitalArchive.yaml b/schemas/20251121/linkml/modules/classes/HospitalArchive.yaml index ada718a7e1..1143a2558c 100644 --- a/schemas/20251121/linkml/modules/classes/HospitalArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/HospitalArchive.yaml @@ -16,10 +16,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: HospitalArchive: @@ -34,17 +34,17 @@ classes: broad_mappings: - wd:Q166118 slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null hold_or_held_record_set_type: equals_expression: '["hc:HospitalAdministrationFonds", "hc:PatientRecordsSeries", "hc:MedicalResearchCollection", "hc:NursingRecordsCollection", "hc:MedicalPhotographyCollection"] ' - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Hospital Archive diff --git a/schemas/20251121/linkml/modules/classes/HospitalArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/HospitalArchiveRecordSetType.yaml index c44df29379..fcf00097fe 100644 --- a/schemas/20251121/linkml/modules/classes/HospitalArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/HospitalArchiveRecordSetType.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to classes: HospitalArchiveRecordSetType: abstract: true @@ -29,10 +29,10 @@ classes: - NursingRecordsCollection - MedicalPhotographyCollection slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/HospitalArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/HospitalArchiveRecordSetTypes.yaml index bf25fdad74..8620a69679 100644 --- a/schemas/20251121/linkml/modules/classes/HospitalArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/HospitalArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./HospitalArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/preservation_note @@ -153,8 +153,8 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -162,7 +162,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: HospitalAdministrationFonds @@ -316,8 +316,8 @@ classes: genealogy_note: Historical patient records (pre-1920) increasingly accessible for genealogical research. Birth/death registers particularly valuable. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - privacy_note @@ -326,7 +326,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PatientRecordsSeries @@ -495,8 +495,8 @@ classes: de-identification protocols, and long-term preservation plans. FAIR principles apply. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -504,7 +504,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:ResearchOrganizationType"]' record_set_type: equals_string: MedicalResearchCollection @@ -653,8 +653,8 @@ classes: of healthcare professionalization. Many hospitals maintained their own nursing schools until the late 20th century. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - privacy_note @@ -663,7 +663,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:EducationProviderType"]' record_set_type: equals_string: NursingRecordsCollection @@ -753,8 +753,8 @@ classes: particularly those associated with university medical centers or medical history museums. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - preservation_note @@ -764,7 +764,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:MuseumType"]' record_set_type: equals_string: MedicalPhotographyCollection diff --git a/schemas/20251121/linkml/modules/classes/HouseArchive.yaml b/schemas/20251121/linkml/modules/classes/HouseArchive.yaml index 823e41d285..2e4cc7e058 100644 --- a/schemas/20251121/linkml/modules/classes/HouseArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/HouseArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: HouseArchive: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q4344572 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: House Archive diff --git a/schemas/20251121/linkml/modules/classes/HouseArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/HouseArchiveRecordSetType.yaml index af4b15e768..5df1a17629 100644 --- a/schemas/20251121/linkml/modules/classes/HouseArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/HouseArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: HouseArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by HouseArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - HouseArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/HouseArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/HouseArchiveRecordSetTypes.yaml index 4f0bef8296..ac99ed8b13 100644 --- a/schemas/20251121/linkml/modules/classes/HouseArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/HouseArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./HouseArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - HouseArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: HouseRecordsFonds @@ -78,15 +78,15 @@ classes: - HouseArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: FamilyPapersCollection @@ -115,15 +115,15 @@ classes: - HouseArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: EstateDocumentSeries diff --git a/schemas/20251121/linkml/modules/classes/HouseNumber.yaml b/schemas/20251121/linkml/modules/classes/HouseNumber.yaml index 1dff59d19a..951e1f73f1 100644 --- a/schemas/20251121/linkml/modules/classes/HouseNumber.yaml +++ b/schemas/20251121/linkml/modules/classes/HouseNumber.yaml @@ -14,15 +14,15 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_value classes: HouseNumber: class_uri: skos:Concept description: A house number. slots: - - has_or_had_value - - has_or_had_label + - has_value + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class. diff --git a/schemas/20251121/linkml/modules/classes/Humidity.yaml b/schemas/20251121/linkml/modules/classes/Humidity.yaml index 11e7310184..3980ef6e66 100644 --- a/schemas/20251121/linkml/modules/classes/Humidity.yaml +++ b/schemas/20251121/linkml/modules/classes/Humidity.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_tolerance + - ../slots/20260202_matang/has_tolerance classes: Humidity: class_uri: schema:StructuredValue description: "Humidity control parameters." slots: - - has_or_had_tolerance + - has_tolerance slot_usage: - has_or_had_tolerance: + has_tolerance: range: HumidityTolerance annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/HumidityTolerance.yaml b/schemas/20251121/linkml/modules/classes/HumidityTolerance.yaml index 9ffe8db7c1..13b949037d 100644 --- a/schemas/20251121/linkml/modules/classes/HumidityTolerance.yaml +++ b/schemas/20251121/linkml/modules/classes/HumidityTolerance.yaml @@ -9,20 +9,20 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_unit - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_unit + - ../slots/20260202_matang/has_value classes: HumidityTolerance: class_uri: schema:QuantitativeValue description: "Allowed humidity fluctuation (+/-)." slots: - - has_or_had_value - - has_or_had_unit + - has_value + - has_unit slot_usage: - has_or_had_value: + has_value: range: float required: true - has_or_had_unit: + has_unit: # range: string ifabsent: string(%) annotations: diff --git a/schemas/20251121/linkml/modules/classes/Hypernym.yaml b/schemas/20251121/linkml/modules/classes/Hypernym.yaml index 645f25c50e..d62fde1b5c 100644 --- a/schemas/20251121/linkml/modules/classes/Hypernym.yaml +++ b/schemas/20251121/linkml/modules/classes/Hypernym.yaml @@ -15,9 +15,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label # default_range: string default_prefix: hc classes: @@ -50,9 +50,9 @@ classes: - rdfs:Class - owl:Class slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description annotations: custodian_types: '["*"]' custodian_types_rationale: Hypernym relationships apply to all classification @@ -62,16 +62,16 @@ classes: specificity_rationale: Low specificity - fundamental concept for any hierarchical classification. examples: - - value: "Hypernym:\n hypernym_uri: \"rico:Fonds\"\n has_or_had_label:\n \ - \ - label_text: \"Fonds\"\n label_language: \"en\"\n has_or_had_description:\n\ + - value: "Hypernym:\n hypernym_uri: \"rico:Fonds\"\n has_label:\n \ + \ - label_text: \"Fonds\"\n label_language: \"en\"\n has_description:\n\ \ - description_text: \"Provenance-based archival unit\"\n" description: RiC-O Fonds as hypernym for archival record sets. - value: "Hypernym:\n hypernym_uri: \"hc:collection-type/museum-collection\"\n\ - \ has_or_had_label:\n - label_text: \"Museum Collection\"\n has_or_had_description:\n\ + \ has_label:\n - label_text: \"Museum Collection\"\n has_description:\n\ \ - description_text: \"Physical heritage objects held by museums\"\n" description: Museum Collection as hypernym for specific collection types. comments: - Created from slot_fixes.yaml migration (2026-01-19) - Replaces collection_broader_type slot range with structured class - SKOS-aligned for vocabulary interoperability - - Use with has_or_had_hypernym slot + - Use with has_hypernym slot diff --git a/schemas/20251121/linkml/modules/classes/Hyponym.yaml b/schemas/20251121/linkml/modules/classes/Hyponym.yaml index dbe02dff54..ec62a8ec90 100644 --- a/schemas/20251121/linkml/modules/classes/Hyponym.yaml +++ b/schemas/20251121/linkml/modules/classes/Hyponym.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: Hyponym: class_uri: skos:Concept description: Narrower concept/instance. slots: - - has_or_had_label + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Hypothesis.yaml b/schemas/20251121/linkml/modules/classes/Hypothesis.yaml index 0293128069..c3756eb355 100644 --- a/schemas/20251121/linkml/modules/classes/Hypothesis.yaml +++ b/schemas/20251121/linkml/modules/classes/Hypothesis.yaml @@ -9,7 +9,7 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/generated_by # default_range: string classes: Hypothesis: @@ -31,7 +31,7 @@ classes: related_mappings: - skos:note slots: - - is_or_was_generated_by + - generated_by - note annotations: custodian_types: '["U"]' @@ -43,17 +43,17 @@ classes: data. examples: - value: "Hypothesis:\n asserted_value: \"MUSEUM\"\n confidence_level: \"medium\"\ - \n is_or_was_generated_by:\n has_or_had_score:\n has_or_had_score:\ - \ 0.65\n has_or_had_method: \"type_inference_from_website\"\n supporting_evidence:\n\ + \n generated_by:\n has_score:\n has_score:\ + \ 0.65\n has_method: \"type_inference_from_website\"\n supporting_evidence:\n\ \ - \"Website mentions 'exhibitions'\"\n - \"Has physical visitor address\"\ \n contradicting_evidence:\n - \"No collection catalog found\"\n alternative_interpretation:\ \ \"Could be a gallery with temporary shows\"\n" description: Type hypothesis suggesting institution is a museum. - value: "Hypothesis:\n asserted_value: \"COLLECTING_SOCIETY\"\n confidence_level:\ - \ \"high\"\n is_or_was_generated_by:\n has_or_had_score:\n has_or_had_score:\ - \ 0.85\n has_or_had_method: \"name_pattern_analysis\"\n supporting_evidence:\n\ + \ \"high\"\n generated_by:\n has_score:\n has_score:\ + \ 0.85\n has_method: \"name_pattern_analysis\"\n supporting_evidence:\n\ \ - \"Name contains 'Historische Vereniging'\"\n - \"Membership-based\ \ organization\"\n - \"Maintains local archive\"\n" description: High-confidence hypothesis for a collecting society. comments: - - 'MIGRATED 2026-01-19: confidence_score → is_or_was_generated_by + ConfidenceScore' + - 'MIGRATED 2026-01-19: confidence_score → generated_by + ConfidenceScore' diff --git a/schemas/20251121/linkml/modules/classes/ICHDomain.yaml b/schemas/20251121/linkml/modules/classes/ICHDomain.yaml index 41cc83a1aa..07325fef39 100644 --- a/schemas/20251121/linkml/modules/classes/ICHDomain.yaml +++ b/schemas/20251121/linkml/modules/classes/ICHDomain.yaml @@ -16,13 +16,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: ICHDomain: class_uri: skos:Concept description: ICH Domain. slots: - - has_or_had_label + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ICHSafeguarding.yaml b/schemas/20251121/linkml/modules/classes/ICHSafeguarding.yaml index efc29e049f..7ce551f5a6 100644 --- a/schemas/20251121/linkml/modules/classes/ICHSafeguarding.yaml +++ b/schemas/20251121/linkml/modules/classes/ICHSafeguarding.yaml @@ -9,17 +9,17 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_objective - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_objective + - ../slots/20260202_matang/has_type classes: ICHSafeguarding: class_uri: schema:Action description: ICH safeguarding measure. slots: - - has_or_had_label - - has_or_had_type - - has_or_had_objective + - has_label + - has_type + - has_objective annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ICHSafeguardingType.yaml b/schemas/20251121/linkml/modules/classes/ICHSafeguardingType.yaml index 599b1ec663..d536426712 100644 --- a/schemas/20251121/linkml/modules/classes/ICHSafeguardingType.yaml +++ b/schemas/20251121/linkml/modules/classes/ICHSafeguardingType.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: ICHSafeguardingType: class_uri: skos:Concept @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_label + - has_label diff --git a/schemas/20251121/linkml/modules/classes/ID.yaml b/schemas/20251121/linkml/modules/classes/ID.yaml index 7b6bf04856..0e2daa2055 100644 --- a/schemas/20251121/linkml/modules/classes/ID.yaml +++ b/schemas/20251121/linkml/modules/classes/ID.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: ID: class_uri: schema:PropertyValue description: ID wrapper. slots: - - has_or_had_value + - has_value annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/IIIF.yaml b/schemas/20251121/linkml/modules/classes/IIIF.yaml index 13cda0b370..37e4a82a38 100644 --- a/schemas/20251121/linkml/modules/classes/IIIF.yaml +++ b/schemas/20251121/linkml/modules/classes/IIIF.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: IIIF: class_uri: dcterms:Standard description: IIIF standard. slots: - - has_or_had_description + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/IIPImageServer.yaml b/schemas/20251121/linkml/modules/classes/IIPImageServer.yaml index 85a88ea0da..ae175a3da5 100644 --- a/schemas/20251121/linkml/modules/classes/IIPImageServer.yaml +++ b/schemas/20251121/linkml/modules/classes/IIPImageServer.yaml @@ -14,7 +14,7 @@ imports: - ../enums/IIIFComplianceLevelEnum - ../enums/ImageProtocolEnum - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score classes: IIPImageServer: is_a: DataServiceEndpoint @@ -50,7 +50,7 @@ classes: - https://iipimage.sourceforge.io/ - https://github.com/loris-imageserver/loris slots: - - has_or_had_score + - has_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ISO639-3Identifier.yaml b/schemas/20251121/linkml/modules/classes/ISO639-3Identifier.yaml index c639012f9e..c63b2f12b4 100644 --- a/schemas/20251121/linkml/modules/classes/ISO639-3Identifier.yaml +++ b/schemas/20251121/linkml/modules/classes/ISO639-3Identifier.yaml @@ -6,7 +6,7 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_code + - ../slots/20260202_matang/has_code classes: ISO639-3Identifier: class_uri: hc:ISO639-3Identifier @@ -14,9 +14,9 @@ classes: - schema:identifier description: ISO 639-3 three-letter language code slots: - - has_or_had_code + - has_code slot_usage: - has_or_had_code: + has_code: pattern: ^[a-z]{3}$ annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/IconographicArchives.yaml b/schemas/20251121/linkml/modules/classes/IconographicArchives.yaml index 3713a88ed7..28524e251e 100644 --- a/schemas/20251121/linkml/modules/classes/IconographicArchives.yaml +++ b/schemas/20251121/linkml/modules/classes/IconographicArchives.yaml @@ -16,10 +16,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: IconographicArchives: @@ -27,10 +27,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q117810712 close_mappings: @@ -39,8 +39,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Iconographic Archives diff --git a/schemas/20251121/linkml/modules/classes/IconographicArchivesRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/IconographicArchivesRecordSetType.yaml index b0c0c46ce0..13e5406b1a 100644 --- a/schemas/20251121/linkml/modules/classes/IconographicArchivesRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/IconographicArchivesRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: IconographicArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by IconographicArchives custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - IconographicArchives - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/IconographicArchivesRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/IconographicArchivesRecordSetTypes.yaml index 0aa84b9af6..5f3bc48c16 100644 --- a/schemas/20251121/linkml/modules/classes/IconographicArchivesRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/IconographicArchivesRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./IconographicArchivesRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - IconographicArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: VisualImageCollection @@ -78,15 +78,15 @@ classes: - IconographicArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PrintCollection diff --git a/schemas/20251121/linkml/modules/classes/Iconography.yaml b/schemas/20251121/linkml/modules/classes/Iconography.yaml index fe1c2e31df..ab78920a18 100644 --- a/schemas/20251121/linkml/modules/classes/Iconography.yaml +++ b/schemas/20251121/linkml/modules/classes/Iconography.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: Iconography: class_uri: schema:DefinedTerm description: Iconography. slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/IdentificationEvent.yaml b/schemas/20251121/linkml/modules/classes/IdentificationEvent.yaml index 2700c15696..c679c1fce8 100644 --- a/schemas/20251121/linkml/modules/classes/IdentificationEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/IdentificationEvent.yaml @@ -16,8 +16,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_score - ../slots/temporal_extent classes: IdentificationEvent: @@ -30,7 +30,7 @@ classes: \ `prov:Activity` - PROV-O activity\n\n**USAGE**:\nReplaces simple `date_identified`\ \ dates with structured event data:\n- When the identification was made (temporal_extent)\n\ - Who made the identification (identified_by)\n- Methodology used\n- Confidence\ - \ level\n- References consulted\n\n**Example**:\n```yaml\nis_or_was_identified_through:\n\ + \ level\n- References consulted\n\n**Example**:\n```yaml\nidentified_through:\n\ \ temporal_extent:\n begin_of_the_begin: \"2023-05-15\"\n identified_by:\n\ \ - agent_name: \"Dr. Jane Smith\"\n agent_role: \"taxonomist\"\n identification_method:\ \ \"Morphological analysis\"\n identification_confidence: \"high\"\n```\n" @@ -39,8 +39,8 @@ classes: - prov:Activity slots: - temporal_extent - - has_or_had_description - - has_or_had_score + - has_description + - has_score slot_usage: temporal_extent: range: TimeSpan @@ -53,16 +53,16 @@ classes: - value: Morphological analysis - value: DNA barcoding - value: Comparison with type specimen - has_or_had_score: + has_score: range: ConfidenceScore inlined: true examples: - value: - has_or_had_score: 0.9 - has_or_had_description: High confidence + has_score: 0.9 + has_description: High confidence - value: - has_or_had_score: 0.5 - has_or_had_description: Tentative + has_score: 0.5 + has_description: Tentative - value: Flora of North America, Vol. 3 annotations: custodian_types: '["M", "R", "B"]' diff --git a/schemas/20251121/linkml/modules/classes/Identifier.yaml b/schemas/20251121/linkml/modules/classes/Identifier.yaml index 586f3fdf7a..0284ccf373 100644 --- a/schemas/20251121/linkml/modules/classes/Identifier.yaml +++ b/schemas/20251121/linkml/modules/classes/Identifier.yaml @@ -1,7 +1,7 @@ id: https://nde.nl/ontology/hc/class/Identifier name: identifier_classes title: Identifier Classes (Generic and Custodian-Specific) -# Updated: 2026-01-23 - Added has_or_had_type for IdentifierType per F26 migration +# Updated: 2026-01-23 - Added has_type for IdentifierType per F26 migration prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -14,16 +14,16 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_canonical_form - - ../slots/has_or_had_format - - ../slots/has_or_had_scheme - - ../slots/has_or_had_score - - ../slots/has_or_had_standard - - ../slots/has_or_had_type - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_canonical_form + - ../slots/20260202_matang/has_format + - ../slots/20260202_matang/has_scheme + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_standard + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_value - ../slots/identifies_or_identified - - ../slots/is_or_was_allocated_by - - ../slots/is_or_was_allocated_through + - ../slots/20260202_matang/allocated_by + - ../slots/20260202_matang/allocated_through - ../slots/source - ../slots/temporal_extent default_prefix: hc @@ -49,34 +49,34 @@ classes: - adms:Identifier - skos:notation slots: - # identifier_scheme REMOVED - migrated to has_or_had_scheme (Rule 53) - - has_or_had_scheme - # identifier_value REMOVED - migrated to has_or_had_value (Rule 53) - - has_or_had_value - - has_or_had_type + # identifier_scheme REMOVED - migrated to has_scheme (Rule 53) + - has_scheme + # identifier_value REMOVED - migrated to has_value (Rule 53) + - has_value + - has_type slot_usage: - has_or_had_type: + has_type: range: IdentifierType required: false examples: - value: - has_or_had_code: CATALOG_RAISONNE - has_or_had_label: Catalogue Raisonné Number + has_code: CATALOG_RAISONNE + has_label: Catalogue Raisonné Number - value: - has_or_had_code: ISIL - has_or_had_label: ISIL Code - has_or_had_scheme: + has_code: ISIL + has_label: ISIL Code + has_scheme: range: IdentifierScheme inlined: true examples: - value: - has_or_had_label: "ISBN" - has_or_had_value: + has_label: "ISBN" + has_value: range: IdentifierValue inlined: true examples: - value: - has_or_had_value: "978-0-123456-47-2" + has_value: "978-0-123456-47-2" required: false annotations: specificity_score: 0.25 @@ -108,14 +108,14 @@ classes: - Enables multiple identifiers per custodian (from different authorities) **Extended Provenance (v2)**: The identifier now tracks its full lineage: - - has_or_had_standard: Which Standard defines this identifier type (ISIL → ISO 15511) + - has_standard: Which Standard defines this identifier type (ISIL → ISO 15511) - allocated_by: Which AllocationAgency assigned this specific identifier - identifier_format_used: Which format variant is used in identifier_value - - has_or_had_canonical_form: Normalized form (CanonicalForm) for deduplication and matching + - has_canonical_form: Normalized form (CanonicalForm) for deduplication and matching - allocation_date: When the identifier was assigned **Dual-Purpose Identifiers**: Some identifiers (ISNI, VIAF) also identify name authority records: - - has_or_had_secondary_label: Links to the CustodianName record this identifier also identifies (as a Label) + - has_secondary_label: Links to the CustodianName record this identifier also identifies (as a Label) **Enables**: - External identifier management (scheme + value) - Cross-reference to authority registries @@ -132,17 +132,17 @@ classes: related_mappings: - owl:sameAs slots: - - is_or_was_allocated_by - - is_or_was_allocated_through + - allocated_by + - allocated_through slot_usage: - is_or_was_allocated_through: + allocated_through: range: AllocationEvent examples: - value: temporal_extent: begin_of_the_begin: "2023-01-01" - # MIGRATED 2026-01-24: defined_by_standard → has_or_had_standard + Standard (Rule 53) - has_or_had_standard: + # MIGRATED 2026-01-24: defined_by_standard → has_standard + Standard (Rule 53) + has_standard: # range: string required: false multivalued: false @@ -150,9 +150,9 @@ classes: examples: - value: name: "International Standard Identifier for Libraries" - is_or_was_allocated_by: + allocated_by: required: false - has_or_had_canonical_form: + has_canonical_form: range: CanonicalForm required: false multivalued: false diff --git a/schemas/20251121/linkml/modules/classes/IdentifierFormat.yaml b/schemas/20251121/linkml/modules/classes/IdentifierFormat.yaml index d710faec5d..1b76a073bf 100644 --- a/schemas/20251121/linkml/modules/classes/IdentifierFormat.yaml +++ b/schemas/20251121/linkml/modules/classes/IdentifierFormat.yaml @@ -10,15 +10,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score classes: IdentifierFormat: class_uri: schema:PropertyValue description: Identifier format variant. slots: - - has_or_had_label - - has_or_had_score + - has_label + - has_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/IdentifierLookupScore.yaml b/schemas/20251121/linkml/modules/classes/IdentifierLookupScore.yaml index 9c25aff849..fdf4a7e652 100644 --- a/schemas/20251121/linkml/modules/classes/IdentifierLookupScore.yaml +++ b/schemas/20251121/linkml/modules/classes/IdentifierLookupScore.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: IdentifierLookupScore: class_uri: schema:Rating description: Lookup score. slots: - - has_or_had_value + - has_value annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/IdentifierScheme.yaml b/schemas/20251121/linkml/modules/classes/IdentifierScheme.yaml index 44154545fb..9c9f1160a1 100644 --- a/schemas/20251121/linkml/modules/classes/IdentifierScheme.yaml +++ b/schemas/20251121/linkml/modules/classes/IdentifierScheme.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: IdentifierScheme: class_uri: skos:Concept description: Identifier scheme. slots: - - has_or_had_label + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/IdentifierType.yaml b/schemas/20251121/linkml/modules/classes/IdentifierType.yaml index bab1c901b9..cdec3447b6 100644 --- a/schemas/20251121/linkml/modules/classes/IdentifierType.yaml +++ b/schemas/20251121/linkml/modules/classes/IdentifierType.yaml @@ -11,9 +11,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: IdentifierType: class_uri: adms:Identifier @@ -25,19 +25,19 @@ classes: - dcterms:identifier - skos:Concept slots: - - has_or_had_code - - has_or_had_label - - has_or_had_description + - has_code + - has_label + - has_description slot_usage: - has_or_had_code: + has_code: # range: string required: true identifier: true pattern: ^[A-Z][A-Z0-9_]*$ - has_or_had_label: + has_label: # range: string required: true - has_or_had_description: + has_description: # range: string required: false comments: diff --git a/schemas/20251121/linkml/modules/classes/IdentifierTypes.yaml b/schemas/20251121/linkml/modules/classes/IdentifierTypes.yaml index c8058ee6cf..0e6c834caa 100644 --- a/schemas/20251121/linkml/modules/classes/IdentifierTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/IdentifierTypes.yaml @@ -10,8 +10,8 @@ imports: - ./IdentifierType - linkml:types - ../metadata - - ../slots/has_or_had_code - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_label classes: ISILIdentifier: is_a: IdentifierType @@ -19,9 +19,9 @@ classes: description: International Standard Identifier for Libraries and Related Organizations (ISO 15511). slot_usage: - has_or_had_code: + has_code: equals_string: ISIL - has_or_had_label: + has_label: # range: string equals_string: ISIL Code annotations: @@ -37,9 +37,9 @@ classes: class_uri: hc:VIAFIdentifier description: Virtual International Authority File identifier. slot_usage: - has_or_had_code: + has_code: equals_string: VIAF - has_or_had_label: + has_label: # range: string equals_string: VIAF ID exact_mappings: @@ -51,9 +51,9 @@ classes: class_uri: hc:ISNIIdentifier description: International Standard Name Identifier (ISO 27729). slot_usage: - has_or_had_code: + has_code: equals_string: ISNI - has_or_had_label: + has_label: # range: string equals_string: ISNI exact_mappings: @@ -65,9 +65,9 @@ classes: class_uri: hc:RORIdentifier description: Research Organization Registry identifier. slot_usage: - has_or_had_code: + has_code: equals_string: ROR - has_or_had_label: + has_label: # range: string equals_string: ROR ID exact_mappings: @@ -79,9 +79,9 @@ classes: class_uri: hc:ORCIDIdentifier description: Open Researcher and Contributor ID. slot_usage: - has_or_had_code: + has_code: equals_string: ORCID - has_or_had_label: + has_label: # range: string equals_string: ORCID exact_mappings: @@ -93,9 +93,9 @@ classes: class_uri: hc:WikidataIdentifier description: Wikidata entity identifier (Q-number). slot_usage: - has_or_had_code: + has_code: equals_string: WIKIDATA - has_or_had_label: + has_label: # range: string equals_string: Wikidata ID exact_mappings: @@ -107,9 +107,9 @@ classes: class_uri: hc:GNDIdentifier description: Gemeinsame Normdatei (German authority file). slot_usage: - has_or_had_code: + has_code: equals_string: GND - has_or_had_label: + has_label: # range: string equals_string: GND ID exact_mappings: @@ -121,9 +121,9 @@ classes: class_uri: hc:ULANIdentifier description: Union List of Artist Names (Getty). slot_usage: - has_or_had_code: + has_code: equals_string: ULAN - has_or_had_label: + has_label: # range: string equals_string: ULAN ID exact_mappings: @@ -135,9 +135,9 @@ classes: class_uri: hc:AATIdentifier description: Art & Architecture Thesaurus (Getty). slot_usage: - has_or_had_code: + has_code: equals_string: AAT - has_or_had_label: + has_label: # range: string equals_string: AAT ID exact_mappings: @@ -149,9 +149,9 @@ classes: class_uri: hc:TGNIdentifier description: Thesaurus of Geographic Names (Getty). slot_usage: - has_or_had_code: + has_code: equals_string: TGN - has_or_had_label: + has_label: # range: string equals_string: TGN ID exact_mappings: @@ -163,9 +163,9 @@ classes: class_uri: hc:KvKIdentifier description: Dutch Chamber of Commerce (Kamer van Koophandel) registration number. slot_usage: - has_or_had_code: + has_code: equals_string: KVK - has_or_had_label: + has_label: # range: string equals_string: KvK Number exact_mappings: @@ -179,9 +179,9 @@ classes: class_uri: hc:LEIIdentifier description: Legal Entity Identifier (ISO 17442). slot_usage: - has_or_had_code: + has_code: equals_string: LEI - has_or_had_label: + has_label: # range: string equals_string: LEI exact_mappings: @@ -193,9 +193,9 @@ classes: class_uri: hc:VATIdentifier description: VAT registration number. slot_usage: - has_or_had_code: + has_code: equals_string: VAT - has_or_had_label: + has_label: # range: string equals_string: VAT Number exact_mappings: @@ -207,9 +207,9 @@ classes: class_uri: hc:ISBNIdentifier description: International Standard Book Number (ISO 2108). slot_usage: - has_or_had_code: + has_code: equals_string: ISBN - has_or_had_label: + has_label: # range: string equals_string: ISBN exact_mappings: @@ -222,9 +222,9 @@ classes: class_uri: hc:ISSNIdentifier description: International Standard Serial Number (ISO 3297). slot_usage: - has_or_had_code: + has_code: equals_string: ISSN - has_or_had_label: + has_label: # range: string equals_string: ISSN exact_mappings: @@ -237,9 +237,9 @@ classes: class_uri: hc:DOIIdentifier description: Digital Object Identifier (ISO 26324). slot_usage: - has_or_had_code: + has_code: equals_string: DOI - has_or_had_label: + has_label: # range: string equals_string: DOI exact_mappings: @@ -252,9 +252,9 @@ classes: class_uri: hc:OCLCIdentifier description: OCLC WorldCat record number. slot_usage: - has_or_had_code: + has_code: equals_string: OCLC - has_or_had_label: + has_label: # range: string equals_string: OCLC Number exact_mappings: @@ -268,9 +268,9 @@ classes: \ of an artist's work). MIGRATED from catalog_raisonne_number slot (2026-01-23)\ \ per Rule 53/F26." slot_usage: - has_or_had_code: + has_code: equals_string: CATALOG_RAISONNE - has_or_had_label: + has_label: # range: string equals_string: "Catalogue Raisonn\xE9 Number" exact_mappings: @@ -282,9 +282,9 @@ classes: class_uri: hc:InventoryNumberIdentifier description: Museum or collection inventory number. slot_usage: - has_or_had_code: + has_code: equals_string: INVENTORY_NUMBER - has_or_had_label: + has_label: # range: string equals_string: Inventory Number exact_mappings: @@ -296,9 +296,9 @@ classes: class_uri: hc:AccessionNumberIdentifier description: Accession number assigned upon acquisition. slot_usage: - has_or_had_code: + has_code: equals_string: ACCESSION_NUMBER - has_or_had_label: + has_label: # range: string equals_string: Accession Number exact_mappings: @@ -310,9 +310,9 @@ classes: class_uri: hc:FindingAidIdentifier description: Finding aid or archival guide identifier. slot_usage: - has_or_had_code: + has_code: equals_string: FINDING_AID_ID - has_or_had_label: + has_label: # range: string equals_string: Finding Aid ID exact_mappings: @@ -324,9 +324,9 @@ classes: class_uri: hc:FondsNumberIdentifier description: Archival fonds or collection number. slot_usage: - has_or_had_code: + has_code: equals_string: FONDS_NUMBER - has_or_had_label: + has_label: # range: string equals_string: Fonds Number exact_mappings: @@ -338,9 +338,9 @@ classes: class_uri: hc:EADIdentifier description: Encoded Archival Description identifier. slot_usage: - has_or_had_code: + has_code: equals_string: EAD_ID - has_or_had_label: + has_label: # range: string equals_string: EAD ID exact_mappings: @@ -352,9 +352,9 @@ classes: class_uri: hc:LocalCollectionIdentifier description: Local collection or institutional identifier. slot_usage: - has_or_had_code: + has_code: equals_string: LOCAL_COLLECTION - has_or_had_label: + has_label: # range: string equals_string: Local Collection ID exact_mappings: @@ -366,9 +366,9 @@ classes: class_uri: hc:InternalCodeIdentifier description: Internal system code or database ID. slot_usage: - has_or_had_code: + has_code: equals_string: INTERNAL_CODE - has_or_had_label: + has_label: # range: string equals_string: Internal Code exact_mappings: @@ -380,9 +380,9 @@ classes: class_uri: hc:URIIdentifier description: Uniform Resource Identifier. slot_usage: - has_or_had_code: + has_code: equals_string: URI - has_or_had_label: + has_label: # range: string equals_string: URI exact_mappings: @@ -394,9 +394,9 @@ classes: class_uri: hc:URLIdentifier description: Uniform Resource Locator (web address). slot_usage: - has_or_had_code: + has_code: equals_string: URL - has_or_had_label: + has_label: # range: string equals_string: URL exact_mappings: diff --git a/schemas/20251121/linkml/modules/classes/IdentifierValue.yaml b/schemas/20251121/linkml/modules/classes/IdentifierValue.yaml index 4034597e41..66443f6329 100644 --- a/schemas/20251121/linkml/modules/classes/IdentifierValue.yaml +++ b/schemas/20251121/linkml/modules/classes/IdentifierValue.yaml @@ -16,13 +16,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: IdentifierValue: class_uri: schema:PropertyValue description: Identifier value. slots: - - has_or_had_value + - has_value annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Illustration.yaml b/schemas/20251121/linkml/modules/classes/Illustration.yaml index 9d95b9df35..0ea2563ea0 100644 --- a/schemas/20251121/linkml/modules/classes/Illustration.yaml +++ b/schemas/20251121/linkml/modules/classes/Illustration.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_image + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_image classes: Illustration: class_uri: schema:ImageObject description: Illustration. slots: - - has_or_had_description - - has_or_had_image + - has_description + - has_image annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Image.yaml b/schemas/20251121/linkml/modules/classes/Image.yaml index 2a33f6e9d2..fd42ce6750 100644 --- a/schemas/20251121/linkml/modules/classes/Image.yaml +++ b/schemas/20251121/linkml/modules/classes/Image.yaml @@ -9,8 +9,8 @@ prefixes: dcterms: http://purl.org/dc/terms/ imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_url default_prefix: hc classes: Image: @@ -28,26 +28,26 @@ classes: - schema:ImageObject - foaf:Image slots: - - has_or_had_url - - has_or_had_label + - has_url + - has_label slot_usage: - has_or_had_url: + has_url: range: uri required: true inlined: false # Fixed invalid inline for primitive type - has_or_had_label: + has_label: # range: string required: false inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_url: - has_or_had_value: https://example.org/images/card_thumb.jpg - has_or_had_label: - has_or_had_text: Collection preview thumbnail + has_url: + has_value: https://example.org/images/card_thumb.jpg + has_label: + has_text: Collection preview thumbnail - value: - has_or_had_url: - has_or_had_value: https://museum.nl/logo.svg + has_url: + has_value: https://museum.nl/logo.svg annotations: specificity_score: 0.35 specificity_rationale: Images are broadly useful across heritage contexts for diff --git a/schemas/20251121/linkml/modules/classes/ImpactMeasurement.yaml b/schemas/20251121/linkml/modules/classes/ImpactMeasurement.yaml index 820493510d..6ed9caf9b7 100644 --- a/schemas/20251121/linkml/modules/classes/ImpactMeasurement.yaml +++ b/schemas/20251121/linkml/modules/classes/ImpactMeasurement.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_unit - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_unit + - ../slots/20260202_matang/has_value classes: ImpactMeasurement: class_uri: schema:QuantitativeValue description: Impact measurement. slots: - - has_or_had_value - - has_or_had_unit + - has_value + - has_unit annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Index.yaml b/schemas/20251121/linkml/modules/classes/Index.yaml index 03acbbaacf..60b80eff41 100644 --- a/schemas/20251121/linkml/modules/classes/Index.yaml +++ b/schemas/20251121/linkml/modules/classes/Index.yaml @@ -9,9 +9,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: Index: class_uri: hc:Index @@ -25,12 +25,12 @@ classes: Thematic groupings **HERITAGE CONTEXT**: Indices in exhibition catalogs, collection guides, archival finding aids, and other heritage publications. ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description slot_usage: - has_or_had_identifier: null - has_or_had_label: + identified_by: null + has_label: multivalued: true annotations: specificity_score: 0.55 @@ -42,16 +42,16 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_identifier: hc:index/exhibition-catalog-2024-toc - has_or_had_label: + identified_by: hc:index/exhibition-catalog-2024-toc + has_label: - Table of Contents@en - Inhoudsopgave@nl - entry_label: Introduction - entry_label: 'Chapter 1: Origins' - entry_label: 1.1 Early Collections - value: - has_or_had_identifier: hc:index/catalog-subject-index - has_or_had_label: + identified_by: hc:index/catalog-subject-index + has_label: - Subject Index@en - entry_label: Art, Dutch Golden Age - entry_label: Ceramics, Delftware @@ -62,7 +62,7 @@ classes: class_uri: hc:IndexEntry description: 'A single entry in an index. ' slots: - has_or_had_index_type: + has_index_type: slot_uri: hc:hasOrHadIndexType description: 'The type of index (table of contents, subject index, name index, etc.). ' diff --git a/schemas/20251121/linkml/modules/classes/IndexType.yaml b/schemas/20251121/linkml/modules/classes/IndexType.yaml index 584aa521ea..439439f189 100644 --- a/schemas/20251121/linkml/modules/classes/IndexType.yaml +++ b/schemas/20251121/linkml/modules/classes/IndexType.yaml @@ -8,9 +8,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: IndexType: class_uri: skos:Concept @@ -43,14 +43,14 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true - has_or_had_label: + has_label: multivalued: true required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/IndexTypes.yaml b/schemas/20251121/linkml/modules/classes/IndexTypes.yaml index a7a51b3b3e..504ff88538 100644 --- a/schemas/20251121/linkml/modules/classes/IndexTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/IndexTypes.yaml @@ -25,8 +25,8 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_identifier: hc:index-type/table-of-contents - has_or_had_label: + identified_by: hc:index-type/table-of-contents + has_label: - Table of Contents@en - Inhoudsopgave@nl - "Table des mati\xE8res@fr" @@ -44,8 +44,8 @@ classes: ' examples: - value: - has_or_had_identifier: hc:index-type/subject-index - has_or_had_label: + identified_by: hc:index-type/subject-index + has_label: - Subject Index@en - Zakenregister@nl description: Subject index type @@ -61,8 +61,8 @@ classes: ' examples: - value: - has_or_had_identifier: hc:index-type/name-index - has_or_had_label: + identified_by: hc:index-type/name-index + has_label: - Name Index@en - Index of Artists@en - Namenregister@nl @@ -79,8 +79,8 @@ classes: ' examples: - value: - has_or_had_identifier: hc:index-type/chronological-index - has_or_had_label: + identified_by: hc:index-type/chronological-index + has_label: - Chronological Index@en - Timeline@en - Chronologisch overzicht@nl @@ -97,8 +97,8 @@ classes: ' examples: - value: - has_or_had_identifier: hc:index-type/topical-index - has_or_had_label: + identified_by: hc:index-type/topical-index + has_label: - Topical Index@en - Thematic Guide@en description: Topical index type @@ -114,8 +114,8 @@ classes: ' examples: - value: - has_or_had_identifier: hc:index-type/glossary - has_or_had_label: + identified_by: hc:index-type/glossary + has_label: - Glossary@en - Verklarende woordenlijst@nl description: Glossary type @@ -131,8 +131,8 @@ classes: ' examples: - value: - has_or_had_identifier: hc:index-type/plate-index - has_or_had_label: + identified_by: hc:index-type/plate-index + has_label: - List of Plates@en - List of Illustrations@en - Platenlijst@nl diff --git a/schemas/20251121/linkml/modules/classes/InformationCarrier.yaml b/schemas/20251121/linkml/modules/classes/InformationCarrier.yaml index 3b9f65fdf2..4f4c423806 100644 --- a/schemas/20251121/linkml/modules/classes/InformationCarrier.yaml +++ b/schemas/20251121/linkml/modules/classes/InformationCarrier.yaml @@ -16,37 +16,37 @@ imports: - linkml:types - ../enums/CarrierTypeEnum - ../metadata - - ../slots/contains_or_contained + - ../slots/20260202_matang/contain - ../slots/copy_note - ../slots/copy_number - ../slots/cover_material - - ../slots/has_or_had_carrier - - ../slots/has_or_had_content - - ../slots/has_or_had_description - - ../slots/has_or_had_direction - - ../slots/has_or_had_direction # was: text_direction - - ../slots/has_or_had_edition - - ../slots/has_or_had_extent_text - - ../slots/has_or_had_fond - - ../slots/has_or_had_identifier - - ../slots/has_or_had_index_number # was: file_number - - ../slots/has_or_had_label # was: title_proper - - ../slots/has_or_had_label # was: uniform_title - - ../slots/has_or_had_language - - ../slots/has_or_had_level - - ../slots/has_or_had_policy - - ../slots/has_or_had_provenance - - ../slots/has_or_had_quantity # was: folio_count - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_series - - ../slots/has_or_had_summary - - ../slots/has_or_had_time_interval - - ../slots/has_or_had_type - - ../slots/has_or_had_writing_system - - ../slots/includes_or_included - - ../slots/is_or_was_created_by - - ../slots/is_or_was_published - - ../slots/is_or_was_triggered_by + - ../slots/20260202_matang/has_carrier + - ../slots/20260202_matang/has_content + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_direction + - ../slots/20260202_matang/has_direction # was: text_direction + - ../slots/20260202_matang/has_edition + - ../slots/20260202_matang/has_extent_text + - ../slots/20260202_matang/has_fond + - ../slots/identified_by + - ../slots/20260202_matang/has_index_number # was: file_number + - ../slots/20260202_matang/has_label # was: title_proper + - ../slots/20260202_matang/has_label # was: uniform_title + - ../slots/20260202_matang/has_language + - ../slots/20260202_matang/has_level + - ../slots/20260202_matang/has_policy + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/has_quantity # was: folio_count + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_series + - ../slots/20260202_matang/has_summary + - ../slots/20260202_matang/has_time_interval + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/in_script + - ../slots/20260202_matang/include + - ../slots/20260202_matang/created_by + - ../slots/20260202_matang/published + - ../slots/20260202_matang/triggered_by - ../slots/isbn - ../slots/shelf_mark default_prefix: hc @@ -88,36 +88,36 @@ classes: - schema:CreativeWork is_a: ExhibitedObject slots: - # has_annotation_by REMOVED - migrated to is_or_was_created_by (Rule 53) - - is_or_was_created_by - - has_or_had_identifier # was: archival_reference - migrated per Rule 53 (2026-01-27) - - has_or_had_description - - has_or_had_provenance - - has_or_had_type - # bookplate REMOVED - migrated to includes_or_included (Rule 53) - - includes_or_included - # REMOVED 2026-01-17: call_number - migrated to has_or_had_identifier (Rule 53) - # - has_or_had_identifier # ALREADY LISTED ABOVE - # REMOVED 2026-01-23: carrier_type - migrated to has_or_had_carrier (Rule 53/F24) - - has_or_had_carrier - # REMOVED 2026-01-23: carries_information - migrated to has_or_had_content (Rule 53/F25) - - has_or_had_content - - has_or_had_language - - has_or_had_summary + # has_annotation_by REMOVED - migrated to created_by (Rule 53) + - created_by + - identified_by # was: archival_reference - migrated per Rule 53 (2026-01-27) + - has_description + - has_provenance + - has_type + # bookplate REMOVED - migrated to include (Rule 53) + - include + # REMOVED 2026-01-17: call_number - migrated to identified_by (Rule 53) + # - identified_by # ALREADY LISTED ABOVE + # REMOVED 2026-01-23: carrier_type - migrated to has_carrier (Rule 53/F24) + - has_carrier + # REMOVED 2026-01-23: carries_information - migrated to has_content (Rule 53/F25) + - has_content + - has_language + - has_summary - copy_note - copy_number - cover_material - # - has_or_had_type - DUPLICATE REMOVED - # REMOVED 2026-01-24: date_of_publication - migrated to is_or_was_published (Rule 53) - - is_or_was_published - # - has_or_had_identifier # ALREADY LISTED ABOVE - # MIGRATED 2026-01-25: duration → has_or_had_time_interval (Rule 53) - - has_or_had_time_interval - - has_or_had_edition - - has_or_had_extent_text - - has_or_had_index_number # was: file_number - migrated per Rule 53 (2026-01-26) - - has_or_had_quantity # was: folio_count - migrated per Rule 53 (2026-01-26) - - has_or_had_fond + # - has_type - DUPLICATE REMOVED + # REMOVED 2026-01-24: date_of_publication - migrated to published (Rule 53) + - published + # - identified_by # ALREADY LISTED ABOVE + # MIGRATED 2026-01-25: duration → has_time_interval (Rule 53) + - has_time_interval + - has_edition + - has_extent_text + - has_index_number # was: file_number - migrated per Rule 53 (2026-01-26) + - has_quantity # was: folio_count - migrated per Rule 53 (2026-01-26) + - has_fond # - isbn # - issn # - language @@ -131,36 +131,36 @@ classes: # - printer_publisher # - production_method # - script_type - - has_or_had_series + - has_series - shelf_mark - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - - has_or_had_direction # was: text_direction - migrated per Rule 53/56 (2026-01-16) - - has_or_had_label # was: title_proper - # - has_or_had_label # was: uniform_title - DUPLICATE - - has_or_had_writing_system - # has_or_had_access_management/policy/restriction/right REMOVED - migrated to has_or_had_policy (Rule 53) - - has_or_had_policy - # has_or_had_access_trigger_event REMOVED - migrated to is_or_was_triggered_by (Rule 53) - - is_or_was_triggered_by + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_direction # was: text_direction - migrated per Rule 53/56 (2026-01-16) + - has_label # was: title_proper + # - has_label # was: uniform_title - DUPLICATE + - in_script + # has_access_management/policy/restriction/right REMOVED - migrated to has_policy (Rule 53) + - has_policy + # has_access_trigger_event REMOVED - migrated to triggered_by (Rule 53) + - triggered_by slot_usage: - # REMOVED 2026-01-23: carrier_type - migrated to has_or_had_carrier (Rule 53/F24) - has_or_had_carrier: + # REMOVED 2026-01-23: carrier_type - migrated to has_carrier (Rule 53/F24) + has_carrier: required: true range: Carrier inlined: true examples: - value: - has_or_had_type: - has_or_had_code: CODEX - has_or_had_label: Codex + has_type: + has_code: CODEX + has_label: Codex - value: - has_or_had_type: - has_or_had_code: SCROLL - has_or_had_label: Scroll + has_type: + has_code: SCROLL + has_label: Scroll - value: - has_or_had_type: - has_or_had_code: VINYL_DISC - has_or_had_label: Vinyl Disc + has_type: + has_code: VINYL_DISC + has_label: Vinyl Disc # The following slots have been removed/commented out from the slot list as they are not defined in the slots section of this file (they are imported), # but are listed in slot_usage. # Since they were simple string slots with no special usage defined here (except examples), we rely on their definition in the slot files. @@ -179,22 +179,22 @@ classes: # range: integer # examples: # - value: 324 - has_or_had_quantity: # was: folio_count - migrated per Rule 53 (2026-01-26) + has_quantity: # was: folio_count - migrated per Rule 53 (2026-01-26) range: integer inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: - has_or_had_unit: - has_or_had_extent_text: + has_unit: + has_extent_text: required: false # range: string multivalued: true examples: - value: 'xii, 324 p., [8] p. of plates : ill. ; 24 cm' - value: '1 atlas (42 maps) : col. ; 38 cm' - # MIGRATED 2026-01-25: duration → has_or_had_time_interval + TimeInterval (Rule 53) - has_or_had_time_interval: + # MIGRATED 2026-01-25: duration → has_time_interval + TimeInterval (Rule 53) + has_time_interval: required: false range: TimeInterval inlined: true @@ -203,13 +203,13 @@ classes: - value: duration_value: 01:32:15 description: Duration in HH:MM:SS format - has_or_had_type: + has_type: required: false range: BindingType examples: - value: FullLeatherBinding - value: LimpVellumBinding - has_or_had_description: + has_description: required: false # range: string examples: @@ -228,17 +228,17 @@ classes: # - value: MANUSCRIPT # - value: PRINTED # - value: TYPESCRIPT - has_or_had_writing_system: + in_script: required: false range: WritingSystem inlined: true examples: - value: - has_or_had_code: "Latn" + has_code: "Latn" - value: - has_or_had_code: "Xsux" + has_code: "Xsux" - value: - has_or_had_code: "Hant" + has_code: "Hant" # language: # required: false # range: string @@ -248,7 +248,7 @@ classes: # description: Latin # - value: nld # description: Dutch - has_or_had_language: + has_language: required: false range: Language multivalued: true @@ -257,18 +257,18 @@ classes: language_name: "Latin" - value: language_name: "Ancient Greek" - has_or_had_direction: + has_direction: # was: text_direction - migrated per Rule 53/56 (2026-01-16) required: false range: TextDirection inlined: true examples: - value: - has_or_had_code: "LTR" - has_or_had_label: "Left to Right" + has_code: "LTR" + has_label: "Left to Right" - value: - has_or_had_code: "RTL" - has_or_had_label: "Right to Left" + has_code: "RTL" + has_label: "Right to Left" # production_method: # required: false # range: string @@ -290,7 +290,7 @@ classes: # - value: # place_name: Mainz # country: DE - # is_or_was_published: + # published: # required: false # range: Publication # inlined: true @@ -309,7 +309,7 @@ classes: # begin_of_the_begin: "1623-01-01" # publication_date_string: "1623" # description: Year-level precision - is_or_was_published: + published: required: false range: Publication inlined: true @@ -319,16 +319,16 @@ classes: - value: temporal_extent: begin_of_the_begin: "1623-01-01" - has_or_had_edition: + has_edition: range: Edition inlined: true multivalued: true examples: - value: - has_or_had_note: "First edition" + has_note: "First edition" - value: - has_or_had_note: "Second edition, revised and enlarged" - has_or_had_label: "2nd Edition" + has_note: "Second edition, revised and enlarged" + has_label: "2nd Edition" copy_number: required: false # range: string @@ -348,14 +348,14 @@ classes: # range: string # examples: # - value: Extensive marginal annotations in 16th-century hand - contains_or_contained: + contain: # range: string examples: - value: - has_or_had_description: "Partially illegible note in margin" - is_or_was_created_by: - has_or_had_label: "Archivist J. Smith" - includes_or_included: + has_description: "Partially illegible note in margin" + created_by: + has_label: "Archivist J. Smith" + include: required: false range: Bookplate multivalued: true @@ -363,14 +363,14 @@ classes: examples: - value: id: https://nde.nl/ontology/hc/bookplate/pembroke-001 - has_or_had_label: "Ex Libris Earl of Pembroke" + has_label: "Ex Libris Earl of Pembroke" # ownership_stamp: # required: false # range: string # multivalued: true # examples: # - value: British Museum stamp on verso of title page - has_or_had_provenance: + has_provenance: required: false # range: string examples: @@ -389,15 +389,15 @@ classes: # examples: # - value: 0028-0836 # description: Nature - # doi migrated to has_or_had_identifier with DOI class (Rule 53, 2026-01-26) + # doi migrated to identified_by with DOI class (Rule 53, 2026-01-26) # oclc_number: # required: false # range: string # examples: # - value: '12345678' - # REMOVED 2026-01-17: call_number - migrated to has_or_had_identifier (Rule 53) - # Old call_number slot_usage preserved below in has_or_had_identifier - has_or_had_identifier: + # REMOVED 2026-01-17: call_number - migrated to identified_by (Rule 53) + # Old call_number slot_usage preserved below in identified_by + identified_by: required: false # range: string # uriorcurie multivalued: true @@ -408,34 +408,34 @@ classes: - value: - value: - value: - has_or_had_type: - has_or_had_label: Archival Reference + has_type: + has_label: Archival Reference shelf_mark: required: false # range: string examples: - value: MS. Royal 1.A.XVIII - value: Add. MS 43725 - # MIGRATED 2026-01-27: archival_reference → has_or_had_identifier (Rule 53) - # Old archival_reference slot usage merged into has_or_had_identifier + # MIGRATED 2026-01-27: archival_reference → identified_by (Rule 53) + # Old archival_reference slot usage merged into identified_by # archival_reference: # required: false # range: string # examples: # - value: NL-HaNA/2.21.006.50 # description: Dutch National Archives reference - has_or_had_fond: + has_fond: required: false # range: string examples: - value: VOC Archives - value: Roosevelt Papers - has_or_had_series: + has_series: required: false # range: string examples: - value: Correspondence, 1933-1945 - has_or_had_index_number: # was: file_number - migrated per Rule 53 (2026-01-26) + has_index_number: # was: file_number - migrated per Rule 53 (2026-01-26) required: false range: IndexNumber inlined: true @@ -443,46 +443,46 @@ classes: examples: - value: - value: - has_or_had_level: # was: has_arrangement_level - migrated per Rule 53 (2026-01-27) + has_level: # was: has_arrangement_level - migrated per Rule 53 (2026-01-27) range: ArrangementLevel required: false examples: - value: - has_or_had_code: ITEM - has_or_had_label: Item + has_code: ITEM + has_label: Item - value: - has_or_had_code: FILE - has_or_had_label: File - # REMOVED 2026-01-23: carries_information - migrated to has_or_had_content (Rule 53/F25) - has_or_had_content: + has_code: FILE + has_label: File + # REMOVED 2026-01-23: carries_information - migrated to has_content (Rule 53/F25) + has_content: required: false # range: string inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_label: Vulgate Latin Bible - has_or_had_type: - has_or_had_code: RELIGIOUS - has_or_had_label: Religious Content + has_label: Vulgate Latin Bible + has_type: + has_code: RELIGIOUS + has_label: Religious Content - value: - has_or_had_label: Hamlet by William Shakespeare - has_or_had_type: - has_or_had_code: LITERARY - has_or_had_label: Literary Content - has_or_had_policy: + has_label: Hamlet by William Shakespeare + has_type: + has_code: LITERARY + has_label: Literary Content + has_policy: range: AccessPolicy inlined: true multivalued: true examples: - value: - has_or_had_description: + has_description: description_text: "Restricted access due to fragility" - is_or_was_triggered_by: + triggered_by: range: AccessTriggerEvent inlined: true examples: - value: - has_or_had_description: + has_description: description_text: "Embargo expiration" temporal_extent: begin_of_the_begin: "2050-01-01" @@ -492,7 +492,7 @@ classes: # multivalued: true # examples: # - value: The Holy Bible (English parallel title) - has_or_had_summary: + has_summary: required: false # range: string examples: @@ -515,18 +515,18 @@ classes: object_name: Gutenberg Bible (KB copy) object_description: "One of fewer than 50 surviving copies of the Gutenberg Bible, \nthe first substantial book printed\ \ with movable metal type.\nThis paper copy was acquired by the Koninklijke Bibliotheek in 1807.\n" - # MIGRATED 2026-01-23: carrier_type → has_or_had_carrier (Rule 53/F24) - has_or_had_carrier: - has_or_had_type: - has_or_had_code: CODEX - has_or_had_label: Codex + # MIGRATED 2026-01-23: carrier_type → has_carrier (Rule 53/F24) + has_carrier: + has_type: + has_code: CODEX + has_label: Codex material_composition: - Paper (handmade, watermarked) - has_or_had_quantity: # was: folio_count - migrated per Rule 53 (2026-01-26) + has_quantity: # was: folio_count - migrated per Rule 53 (2026-01-26) - quantity_value: 641 - has_or_had_unit: + has_unit: binding_type: 18th-century full leather - has_or_had_description: 'Rebound in the 18th century in red morocco with gold tooling. + has_description: 'Rebound in the 18th century in red morocco with gold tooling. Five raised bands on spine with gilt lettering. ' production_method: LETTERPRESS @@ -535,25 +535,25 @@ classes: place_of_publication: place_name: Mainz country: DE - # MIGRATED 2026-01-24: date_of_publication → is_or_was_published (Rule 53) - is_or_was_published: + # MIGRATED 2026-01-24: date_of_publication → published (Rule 53) + published: - publication_date_string: "c. 1455" script_type: PRINTED - has_or_had_writing_system: - has_or_had_code: "Latn" - has_or_had_language: + in_script: + has_code: "Latn" + has_language: - iso_639_1: lat - # MIGRATED 2026-01-23: carries_information → has_or_had_content (Rule 53/F25) - has_or_had_content: - has_or_had_label: Bible. Latin. Vulgate - has_or_had_type: - has_or_had_code: RELIGIOUS - has_or_had_label: Religious Content + # MIGRATED 2026-01-23: carries_information → has_content (Rule 53/F25) + has_content: + has_label: Bible. Latin. Vulgate + has_type: + has_code: RELIGIOUS + has_label: Religious Content title_proper: Biblia Latina uniform_title: Bible. Latin. Vulgate. 1455 - # MIGRATED 2026-01-17: call_number → has_or_had_identifier (Rule 53) + # MIGRATED 2026-01-17: call_number → identified_by (Rule 53) # Merged with existing wikidata_id migration (2026-01-15) - has_or_had_identifier: + identified_by: - identifier_value: "Inc. 1" - identifier_value: "Q178401" copy_note: @@ -565,66 +565,66 @@ classes: object_name: Codex Sinaiticus (British Library portion) object_description: "4th-century manuscript of the Greek Bible, one of the oldest \nand most important Biblical manuscripts.\ \ The British Library \nholds 347 leaves of this codex.\n" - # MIGRATED 2026-01-23: carrier_type → has_or_had_carrier (Rule 53/F24) - has_or_had_carrier: - has_or_had_type: - has_or_had_code: CODEX - has_or_had_label: Codex + # MIGRATED 2026-01-23: carrier_type → has_carrier (Rule 53/F24) + has_carrier: + has_type: + has_code: CODEX + has_label: Codex material_composition: - Parchment (vellum) - has_or_had_quantity: # was: folio_count - migrated per Rule 53 (2026-01-26) + has_quantity: # was: folio_count - migrated per Rule 53 (2026-01-26) - quantity_value: 347 - has_or_had_unit: + has_unit: script_type: MANUSCRIPT - has_or_had_writing_system: - has_or_had_code: "Grek" - has_or_had_language: + in_script: + has_code: "Grek" + has_language: - iso_639_1: grc - # MIGRATED 2026-01-24: date_of_publication → is_or_was_published (Rule 53) - is_or_was_published: + # MIGRATED 2026-01-24: date_of_publication → published (Rule 53) + published: - publication_date_string: "4th century CE" - # MIGRATED 2026-01-23: carries_information → has_or_had_content (Rule 53/F25) - has_or_had_content: - has_or_had_label: Septuagint and Greek New Testament - has_or_had_type: - has_or_had_code: RELIGIOUS - has_or_had_label: Religious Content + # MIGRATED 2026-01-23: carries_information → has_content (Rule 53/F25) + has_content: + has_label: Septuagint and Greek New Testament + has_type: + has_code: RELIGIOUS + has_label: Religious Content uniform_title: Bible. Greek shelf_mark: Add. MS 43725 current_keeper: https://nde.nl/ontology/hc/custodian/uk/british-library - # MIGRATED 2026-01-15: wikidata_id → has_or_had_identifier (Rule 53) - has_or_had_identifier: + # MIGRATED 2026-01-15: wikidata_id → identified_by (Rule 53) + identified_by: - qid: "Q151610" - value: object_id: https://nde.nl/ontology/hc/object/nara-declaration-independence object_name: Declaration of Independence (engrossed parchment) object_description: "The official engrossed parchment copy of the Declaration of \nIndependence, signed by 56 delegates\ \ to the Continental Congress.\n" - # MIGRATED 2026-01-23: carrier_type → has_or_had_carrier (Rule 53/F24) - has_or_had_carrier: - has_or_had_type: - has_or_had_code: PARCHMENT_LEAF - has_or_had_label: Parchment Leaf + # MIGRATED 2026-01-23: carrier_type → has_carrier (Rule 53/F24) + has_carrier: + has_type: + has_code: PARCHMENT_LEAF + has_label: Parchment Leaf material_composition: - Parchment (sheepskin) script_type: MANUSCRIPT - has_or_had_writing_system: - has_or_had_code: "Latn" - has_or_had_language: + in_script: + has_code: "Latn" + has_language: - iso_639_1: eng - # MIGRATED 2026-01-24: date_of_publication → is_or_was_published (Rule 53) - is_or_was_published: + # MIGRATED 2026-01-24: date_of_publication → published (Rule 53) + published: - temporal_extent: begin_of_the_begin: "1776-08-02" end_of_the_end: "1776-08-02" - has_or_had_identifier: + identified_by: - identifier_value: NARA 1419 - has_or_had_type: - has_or_had_label: Archival Reference - # MIGRATED 2026-01-15: wikidata_id → has_or_had_identifier (Rule 53) + has_type: + has_label: Archival Reference + # MIGRATED 2026-01-15: wikidata_id → identified_by (Rule 53) - qid: "Q127885" fonds: Records of the Continental and Confederation Congresses - has_or_had_level: - has_or_had_code: ITEM - has_or_had_label: Item + has_level: + has_code: ITEM + has_label: Item current_keeper: https://nde.nl/ontology/hc/custodian/us/national-archives \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Institution.yaml b/schemas/20251121/linkml/modules/classes/Institution.yaml index 47cbbb9f8e..6db44a9286 100644 --- a/schemas/20251121/linkml/modules/classes/Institution.yaml +++ b/schemas/20251121/linkml/modules/classes/Institution.yaml @@ -8,9 +8,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_level classes: Institution: @@ -24,12 +24,12 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" slots: - - has_or_had_type - - has_or_had_score - - has_or_had_identifier + - has_type + - has_score + - identified_by slot_usage: - has_or_had_identifier: - has_or_had_type: + identified_by: + has_type: equals_expression: '["*"]' organizational_level: equals_string: broad category diff --git a/schemas/20251121/linkml/modules/classes/InstitutionalArchive.yaml b/schemas/20251121/linkml/modules/classes/InstitutionalArchive.yaml index 4c66c092f0..c2e01f1ce1 100644 --- a/schemas/20251121/linkml/modules/classes/InstitutionalArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/InstitutionalArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: InstitutionalArchive: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q124762372 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Institutional Archive diff --git a/schemas/20251121/linkml/modules/classes/InstitutionalArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/InstitutionalArchiveRecordSetType.yaml index ee756b9318..25eee0dcf9 100644 --- a/schemas/20251121/linkml/modules/classes/InstitutionalArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/InstitutionalArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: InstitutionalArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by InstitutionalArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - InstitutionalArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/InstitutionalArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/InstitutionalArchiveRecordSetTypes.yaml index 72a6c76a87..3268818373 100644 --- a/schemas/20251121/linkml/modules/classes/InstitutionalArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/InstitutionalArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./InstitutionalArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - InstitutionalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: InstitutionAdministrationFonds @@ -78,15 +78,15 @@ classes: - InstitutionalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: OperationalRecordSeries diff --git a/schemas/20251121/linkml/modules/classes/InstitutionalFunction.yaml b/schemas/20251121/linkml/modules/classes/InstitutionalFunction.yaml index f08c8dd7a4..8a8f01e1a5 100644 --- a/schemas/20251121/linkml/modules/classes/InstitutionalFunction.yaml +++ b/schemas/20251121/linkml/modules/classes/InstitutionalFunction.yaml @@ -9,17 +9,17 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type default_prefix: hc classes: InstitutionalFunction: class_uri: rico:Function slots: - - has_or_had_label - - has_or_had_description - - has_or_had_type + - has_label + - has_description + - has_type annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/InstitutionalRepository.yaml b/schemas/20251121/linkml/modules/classes/InstitutionalRepository.yaml index 1f81bf64bf..b5c5aa178e 100644 --- a/schemas/20251121/linkml/modules/classes/InstitutionalRepository.yaml +++ b/schemas/20251121/linkml/modules/classes/InstitutionalRepository.yaml @@ -8,9 +8,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/platform_type_id classes: InstitutionalRepository: @@ -20,14 +20,14 @@ classes: mixins: - DigitalPlatformType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_identifier + - has_type + - has_score + - identified_by slot_usage: - has_or_had_identifier: + identified_by: platform_type_id: identifier: false - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Institutional Repository diff --git a/schemas/20251121/linkml/modules/classes/IntangibleHeritageEvent.yaml b/schemas/20251121/linkml/modules/classes/IntangibleHeritageEvent.yaml index 388cf1dc74..186666b380 100644 --- a/schemas/20251121/linkml/modules/classes/IntangibleHeritageEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/IntangibleHeritageEvent.yaml @@ -5,18 +5,18 @@ imports: - linkml:types - ../enums/EventStatusEnum - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_documentation - - ../slots/has_or_had_edition - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/has_or_had_status - - ../slots/has_or_had_type - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_documentation + - ../slots/20260202_matang/has_edition + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_url - ../slots/instance_of - - ../slots/is_or_was_cancelled_by - - ../slots/is_or_was_located_in + - ../slots/20260202_matang/cancelled_by + - ../slots/20260202_matang/located_in - ../slots/organized_by - ../slots/participant_count - ../slots/temporal_extent @@ -43,30 +43,30 @@ classes: - schema:SocialEvent - crm:E4_Period slots: - - has_or_had_type - - has_or_had_edition - - is_or_was_cancelled_by + - has_type + - has_edition + - cancelled_by - temporal_extent - - has_or_had_description - - has_or_had_identifier - - has_or_had_label - - has_or_had_status - - has_or_had_url - - is_or_was_located_in - - has_or_had_documentation + - has_description + - identified_by + - has_label + - has_status + - has_url + - located_in + - has_documentation - instance_of - organized_by - participant_count - - has_or_had_score + - has_score slot_usage: - has_or_had_label: + has_label: required: true # range: string examples: - value: Pride Amsterdam 2024 - value: Carnaval Maastricht 2025 - value: 1 aprilviering Brielle 2024 - has_or_had_description: + has_description: required: false # range: string examples: @@ -77,14 +77,14 @@ classes: inlined: false examples: - value: https://nde.nl/ontology/hc/heritage-form/pride-amsterdam - has_or_had_edition: + has_edition: range: Edition inlined: true multivalued: true examples: - value: - has_or_had_identifier: '29' - has_or_had_label: 29th Edition + identified_by: '29' + has_label: 29th Edition temporal_extent: required: false range: TimeSpan @@ -93,14 +93,14 @@ classes: - value: begin_of_the_begin: '2024-08-03' end_of_the_end: '2024-08-10' - is_or_was_located_in: + located_in: required: false range: Venue inlined: true multivalued: true examples: - value: - has_or_had_label: Museumplein Amsterdam + has_label: Museumplein Amsterdam organized_by: required: false range: Custodian @@ -113,31 +113,31 @@ classes: range: integer examples: - value: 5000 - has_or_had_status: + has_status: required: false range: EventStatusEnum examples: - value: COMPLETED - is_or_was_cancelled_by: + cancelled_by: required: false range: Cancellation inlined: true examples: - value: - has_or_had_rationale: - has_or_had_label: COVID-19 pandemic restrictions - has_or_had_url: + has_rationale: + has_label: COVID-19 pandemic restrictions + has_url: required: false range: uri examples: - value: https://pride.amsterdam/2024 - has_or_had_documentation: + has_documentation: required: false range: uri multivalued: true examples: - value: https://www.youtube.com/watch?v=pride2024 - has_or_had_identifier: + identified_by: required: false range: WikiDataIdentifier multivalued: true @@ -145,7 +145,7 @@ classes: inlined_as_list: true examples: - value: - has_or_had_type: + has_type: equals_expression: '["hc:IntangibleHeritageGroupType"]' comments: - IntangibleHeritageEvent models specific occurrences of heritage traditions @@ -158,40 +158,40 @@ classes: - https://cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E7 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/heritage-event/pride-amsterdam-2024 - has_or_had_label: Pride Amsterdam 2024 - has_or_had_description: 'The 29th edition of Pride Amsterdam with theme "Proud of Every Body". + identified_by: https://nde.nl/ontology/hc/heritage-event/pride-amsterdam-2024 + has_label: Pride Amsterdam 2024 + has_description: 'The 29th edition of Pride Amsterdam with theme "Proud of Every Body". Featured 80 boats in the Canal Parade with over 500,000 spectators. ' instance_of: https://nde.nl/ontology/hc/heritage-form/pride-amsterdam - has_or_had_edition: - - has_or_had_identifier: '29' + has_edition: + - identified_by: '29' temporal_extent: begin_of_the_begin: '2024-08-03' end_of_the_end: '2024-08-10' - is_or_was_located_in: - - has_or_had_label: Amsterdam Canal Ring + located_in: + - has_label: Amsterdam Canal Ring organized_by: - - has_or_had_identifier: https://nde.nl/ontology/hc/custodian/nl/amsterdam-gay-pride + - identified_by: https://nde.nl/ontology/hc/custodian/nl/amsterdam-gay-pride participant_count: 5000 - has_or_had_status: COMPLETED - has_or_had_url: https://pride.amsterdam/2024 + has_status: COMPLETED + has_url: https://pride.amsterdam/2024 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/heritage-event/pride-amsterdam-2020 - has_or_had_label: Pride Amsterdam 2020 - has_or_had_description: 'Cancelled due to COVID-19 pandemic restrictions. Virtual Pride Week + identified_by: https://nde.nl/ontology/hc/heritage-event/pride-amsterdam-2020 + has_label: Pride Amsterdam 2020 + has_description: 'Cancelled due to COVID-19 pandemic restrictions. Virtual Pride Week organized as alternative online celebration. ' instance_of: https://nde.nl/ontology/hc/heritage-form/pride-amsterdam - has_or_had_edition: - - has_or_had_identifier: '25' + has_edition: + - identified_by: '25' temporal_extent: begin_of_the_begin: '2020-08-01' end_of_the_end: '2020-08-08' - has_or_had_status: CANCELLED - is_or_was_cancelled_by: - has_or_had_rationale: - has_or_had_label: COVID-19 pandemic restrictions + has_status: CANCELLED + cancelled_by: + has_rationale: + has_label: COVID-19 pandemic restrictions annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/IntangibleHeritageForm.yaml b/schemas/20251121/linkml/modules/classes/IntangibleHeritageForm.yaml index ca5bcfbc59..d634fc1ac1 100644 --- a/schemas/20251121/linkml/modules/classes/IntangibleHeritageForm.yaml +++ b/schemas/20251121/linkml/modules/classes/IntangibleHeritageForm.yaml @@ -5,17 +5,17 @@ imports: - linkml:types - ../enums/UNESCOICHDomainEnum - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_status - - ../slots/has_or_had_type - - ../slots/has_or_had_url - - ../slots/is_or_was_categorized_as - - ../slots/is_or_was_related_to - - ../slots/is_or_was_threatened_by + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_url + - ../slots/20260202_matang/categorized_as + - ../slots/20260202_matang/related_to + - ../slots/20260202_matang/threatened_by - ../slots/kien_registration_date - ../slots/kien_url - ../slots/origin_location @@ -49,26 +49,26 @@ classes: - crm:E55_Type - crm:E29_Design_or_Procedure slots: - - has_or_had_type - - has_or_had_url - - has_or_had_scope - - has_or_had_description - - has_or_had_identifier - - has_or_had_label + - has_type + - has_url + - has_scope + - has_description + - identified_by + - has_label - kien_registration_date - kien_url - origin_location - origin_period - - is_or_was_related_to + - related_to - safeguarded_by - safeguarding_measure - - has_or_had_score - - is_or_was_threatened_by - - is_or_was_categorized_as + - has_score + - threatened_by + - categorized_as - temporal_extent - - has_or_had_status + - has_status slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true multivalued: true @@ -78,7 +78,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/heritage-form/pride-amsterdam - value: - has_or_had_label: + has_label: required: true # range: string examples: @@ -88,19 +88,19 @@ classes: label_text: 1 aprilviering Brielle - value: label_text: Bloemencorso Bollenstreek - has_or_had_description: + has_description: required: false # range: string examples: - value: description_text: Pride Amsterdam is the annual LGBTQ+ celebration featuring the famous Canal Parade through the historic canals of Amsterdam. First held in 1996, it represents Dutch values of tolerance and equality. - is_or_was_categorized_as: + categorized_as: # range: string # uriorcurie # range: UNESCODomain required: true multivalued: true examples: - - value: "UNESCODomain:\n has_or_had_code: SOCIAL_PRACTICES_RITUALS_FESTIVE_EVENTS\n domain_name: \"Social practices, rituals and festive events\"\n" + - value: "UNESCODomain:\n has_code: SOCIAL_PRACTICES_RITUALS_FESTIVE_EVENTS\n domain_name: \"Social practices, rituals and festive events\"\n" kien_url: required: false range: uri @@ -111,13 +111,13 @@ classes: range: date examples: - value: '2019-04-15' - has_or_had_status: + has_status: # range: string multivalued: true required: false examples: - - value: "UNESCOListStatus:\n has_or_had_code: REPRESENTATIVE_LIST\n list_name: \"Representative List of ICH of Humanity\"\n inscription_date: \"2023-12-06\"\n" - - value: "ViabilityStatus:\n has_or_had_code: THRIVING\n status_name: \"Thriving\"\n assessment_date: \"2024-12-01\"\n assessment_notes: \"Strong community practice\"\n" + - value: "UNESCOListStatus:\n has_code: REPRESENTATIVE_LIST\n list_name: \"Representative List of ICH of Humanity\"\n inscription_date: \"2023-12-06\"\n" + - value: "ViabilityStatus:\n has_code: THRIVING\n status_name: \"Thriving\"\n assessment_date: \"2024-12-01\"\n assessment_notes: \"Strong community practice\"\n" temporal_extent: range: TimeSpan required: false @@ -144,7 +144,7 @@ classes: multivalued: true examples: - value: https://nde.nl/ontology/hc/custodian/nl/amsterdam-gay-pride - is_or_was_threatened_by: + threatened_by: required: false # range: string multivalued: true @@ -161,27 +161,27 @@ classes: - Annual festival organization - Youth engagement programs - Documentary production - is_or_was_related_to: + related_to: required: false range: IntangibleHeritageForm multivalued: true examples: - value: https://nde.nl/ontology/hc/heritage-form/carnaval-maastricht - has_or_had_url: + has_url: required: false range: uri multivalued: true examples: - value: https://www.pride.amsterdam - has_or_had_scope: + has_scope: # range: string # uriorcurie # range: GeographicScope examples: - value: - has_or_had_label: National + has_label: National - value: - has_or_had_label: Local - has_or_had_type: + has_label: Local + has_type: equals_expression: '["hc:IntangibleHeritageGroupType"]' comments: - IntangibleHeritageForm models the abstract heritage practice, not specific occurrences @@ -195,35 +195,35 @@ classes: - https://cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E28 examples: - value: - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/heritage-form/pride-amsterdam - qid: Q478546 - has_or_had_label: + has_label: label_text: Pride Amsterdam - has_or_had_description: + has_description: description_text: Annual LGBTQ+ celebration featuring the Canal Parade through Amsterdam's historic canals. First held in 1996, it represents Dutch values of tolerance, equality, and freedom. - is_or_was_categorized_as: + categorized_as: - UNESCODomain: - has_or_had_code: SOCIAL_PRACTICES_RITUALS_FESTIVE_EVENTS + has_code: SOCIAL_PRACTICES_RITUALS_FESTIVE_EVENTS kien_url: https://www.immaterieelerfgoed.nl/nl/pride-amsterdam origin_location: Amsterdam origin_period: begin_of_the_begin: '1996-01-01' safeguarded_by: - - has_or_had_identifier: https://nde.nl/ontology/hc/custodian/nl/amsterdam-gay-pride + - identified_by: https://nde.nl/ontology/hc/custodian/nl/amsterdam-gay-pride transmission_methods: Annual organization, volunteer networks, community participation - has_or_had_status: + has_status: - ViabilityStatus: - has_or_had_code: THRIVING - has_or_had_label: Thriving + has_code: THRIVING + has_label: Thriving safeguarding_measure: - Annual festival organization - Community engagement - International promotion - has_or_had_url: + has_url: - https://www.pride.amsterdam - has_or_had_scope: - has_or_had_label: National + has_scope: + has_label: National annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/IntangibleHeritageGroupType.yaml b/schemas/20251121/linkml/modules/classes/IntangibleHeritageGroupType.yaml index 8c7d94cdf4..dca8d53366 100644 --- a/schemas/20251121/linkml/modules/classes/IntangibleHeritageGroupType.yaml +++ b/schemas/20251121/linkml/modules/classes/IntangibleHeritageGroupType.yaml @@ -9,11 +9,11 @@ imports: - linkml:types - ../enums/IntangibleHeritageTypeEnum - ../slots/cultural_context - - ../slots/has_or_had_objective - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_objective + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/intangible_heritage_subtype - - ../slots/is_or_was_categorized_as + - ../slots/20260202_matang/categorized_as - ../slots/performance_repertoire - ../slots/practitioner_community - ../slots/transmits_or_transmitted_through @@ -170,14 +170,14 @@ classes: - foaf:Group slots: - cultural_context - - has_or_had_type - - is_or_was_categorized_as - - has_or_had_objective + - has_type + - categorized_as + - has_objective - transmits_or_transmitted_through - intangible_heritage_subtype - performance_repertoire - practitioner_community - - has_or_had_score + - has_score slot_usage: practitioner_community: # range: string @@ -202,5 +202,5 @@ classes: - value: Easter processions, Village festivals, Diaspora events - value: Apprenticeships, Material sourcing, Fair trade certification - value: Annual festival, School programs, UNESCO nomination - has_or_had_type: + has_type: equals_expression: '["hc:IntangibleHeritageGroupType"]' diff --git a/schemas/20251121/linkml/modules/classes/IntangibleHeritagePerformance.yaml b/schemas/20251121/linkml/modules/classes/IntangibleHeritagePerformance.yaml index f25c7f5a52..ad2d7224cc 100644 --- a/schemas/20251121/linkml/modules/classes/IntangibleHeritagePerformance.yaml +++ b/schemas/20251121/linkml/modules/classes/IntangibleHeritagePerformance.yaml @@ -4,8 +4,8 @@ title: IntangibleHeritagePerformance Class imports: - linkml:types - ../metadata - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/part_of_event - ../slots/performance_datetime - ../slots/performance_description @@ -33,7 +33,7 @@ classes: IntangibleHeritagePerformance: class_uri: schema:PerformanceRole description: "A specific performance or demonstration of a performing arts intangible cultural heritage tradition.\nModels individual performances within the PERFORMING_ARTS UNESCO domain.\n**Key Distinction from IntangibleHeritageEvent**:\n| Concept | Class | Example | |---------|-------|---------| | Heritage tradition | IntangibleHeritageForm | \"Gamelan music\" | | Festival occurrence | IntangibleHeritageEvent | \"Indonesian Festival 2024\" | | **Specific performance** | **IntangibleHeritagePerformance** | **\"Gamelan concert at Festival\"** |\n**When to Use IntangibleHeritagePerformance**:\nUse for specific instances of: - Traditional music performances (gamelan, folk songs, ritual music) - Traditional dance performances (folk dance, ceremonial dance) - Traditional theater (puppet shows, ritual drama) - Oral tradition performances (storytelling, epic recitation) - Craft demonstrations (live weaving, pottery making)\n- **Schema.org**: schema:PerformanceRole (primary) - **CIDOC-CRM**:\ - \ crm:E7_Activity (performance as activity) - **CIDOC-CRM**: crm:E66_Formation (for ensemble performance) - **Schema.org**: schema:TheaterEvent, schema:MusicEvent\n**Relationship to Events**:\nPerformances can be standalone or part of a larger heritage event:\n``` IntangibleHeritageEvent (festival)\n |\n |--- features_performance (0..*)\n v\nIntangibleHeritagePerformance (individual show)\n |\n |--- performed_by\n v\nCustodian (performing group/artist) ```\n**MIGRATION NOTE (2026-01-17)**: - audience_size/audience_type replaced with serves_or_served + UserCommunity (Rule 53/56) - UserCommunity.estimated_size captures audience count - UserCommunity.has_or_had_type captures audience category" + \ crm:E7_Activity (performance as activity) - **CIDOC-CRM**: crm:E66_Formation (for ensemble performance) - **Schema.org**: schema:TheaterEvent, schema:MusicEvent\n**Relationship to Events**:\nPerformances can be standalone or part of a larger heritage event:\n``` IntangibleHeritageEvent (festival)\n |\n |--- features_performance (0..*)\n v\nIntangibleHeritagePerformance (individual show)\n |\n |--- performed_by\n v\nCustodian (performing group/artist) ```\n**MIGRATION NOTE (2026-01-17)**: - audience_size/audience_type replaced with serves_or_served + UserCommunity (Rule 53/56) - UserCommunity.estimated_size captures audience count - UserCommunity.has_type captures audience category" exact_mappings: - schema:PerformanceRole close_mappings: @@ -46,7 +46,7 @@ classes: - schema:CreativeWork slots: - serves_or_served - - has_or_had_type + - has_type - part_of_event - performance_datetime - performance_description @@ -62,7 +62,7 @@ classes: - recording_available - recording_url - repertoire - - has_or_had_score + - has_score slot_usage: performance_id: identifier: true @@ -165,7 +165,7 @@ classes: # range: string examples: - value: First public performance of this ensemble in the Netherlands. - has_or_had_type: + has_type: equals_expression: '["hc:IntangibleHeritageGroupType"]' comments: - IntangibleHeritagePerformance models specific performing arts presentations @@ -188,7 +188,7 @@ classes: performance_duration: PT45M performance_venue: Museumplein Stage performed_by: - - has_or_had_identifier: https://nde.nl/ontology/hc/custodian/nl/stichting-splika + - identified_by: https://nde.nl/ontology/hc/custodian/nl/stichting-splika repertoire: - "Traditional Tamb\xFA rhythms" - "Se\xFA harvest dance" diff --git a/schemas/20251121/linkml/modules/classes/InternetOfThings.yaml b/schemas/20251121/linkml/modules/classes/InternetOfThings.yaml index 7945648bc6..73396483d9 100644 --- a/schemas/20251121/linkml/modules/classes/InternetOfThings.yaml +++ b/schemas/20251121/linkml/modules/classes/InternetOfThings.yaml @@ -5,23 +5,23 @@ imports: - linkml:types - ../slots/connectivity_type - ../slots/coverage_area - - ../slots/has_or_had_endpoint - - ../slots/has_or_had_frequency - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_model - - ../slots/has_or_had_output - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_specification - - ../slots/has_or_had_unit + - ../slots/20260202_matang/has_endpoint + - ../slots/20260202_matang/has_frequency + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_model + - ../slots/20260202_matang/has_output + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_specification + - ../slots/20260202_matang/has_unit - ../slots/installation_date - ../slots/installed_at_place - - ../slots/is_or_was_created_by - - ../slots/is_or_was_decommissioned_at - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by - - ../slots/is_or_was_instantiated_by + - ../slots/20260202_matang/created_by + - ../slots/20260202_matang/decommissioned_at + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by + - ../slots/20260202_matang/instantiated_by - ../slots/maintenance_schedule - ../slots/operational_status - ../slots/power_source @@ -49,7 +49,7 @@ classes: class_uri: sosa:Platform description: "Physical device with digital connectivity used by a heritage custodian\nto enhance visitor experience, monitor conditions, or provide services.\n\n**WHY IOT CLASS?**\n\nModern heritage institutions increasingly deploy IoT devices:\n- **Beacons**: Location-based triggers for mobile apps\n- **Kiosks**: Interactive information terminals\n- **Sensors**: Environmental monitoring (climate, light, visitor counts)\n- **Displays**: Digital signage, interactive screens\n\nThese are a form of DIGITAL PRESENCE that bridges physical and digital worlds.\n\n**RELATIONSHIP TO OTHER DIGITAL PRESENCE TYPES**:\n\n```\nDigital Presence Hierarchy:\n\nDigitalPlatform (PRIMARY - websites)\n \u2502\n \u2514\u2500\u2500 AuxiliaryDigitalPlatform (SECONDARY - project sites)\n\nSocialMediaProfile (THIRD-PARTY - external platforms)\n\nInternetOfThings (PHYSICAL-DIGITAL - in-venue devices) \u2190 THIS CLASS\n```\n\n**SOSA/SSN ALIGNMENT**:\n\nW3C Semantic Sensor Network (SSN) and Sensor, Observation,\ \ Sample, \nand Actuator (SOSA) ontologies provide the semantic foundation:\n\n- `sosa:Platform` - Entity hosting sensors/systems (building, room, beacon)\n- `sosa:Sensor` - Device that observes properties\n- `sosa:Observation` - Act of observing a property\n- `ssn:System` - System comprising multiple components\n\n**USE CASES**:\n\n1. **Visitor Experience Enhancement**:\n - Bluetooth beacons trigger app content near artworks\n - NFC tags on object labels for detailed information\n - Interactive kiosks for self-guided exploration\n \n2. **Environmental Monitoring**:\n - Climate sensors (temperature, humidity) for conservation\n - Light level sensors to protect sensitive materials\n - Air quality monitoring in storage areas\n \n3. **Visitor Analytics**:\n - People counters at entrances\n - Heat maps of gallery traffic\n - Dwell time sensors near exhibits\n \n4. **Digital Signage**:\n - Rotating information displays\n - Exhibition schedules\n - Wayfinding\ - \ screens\n\n**EXAMPLE - Museum with IoT Devices**:\n\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n iot_devices:\n - device_id: \".../iot/rijksmuseum-beacon-gallery-1\"\n device_name: \"Gallery of Honour Beacon Network\"\n device_type: IOT_BEACON\n device_count: 24\n coverage_area: \"Gallery of Honour (main wing)\"\n purpose: \"Proximity triggers for mobile app content\"\n \n - device_id: \".../iot/rijksmuseum-climate-monitor\"\n device_name: \"Conservation Climate Monitoring\"\n device_type: IOT_SENSOR\n device_count: 150\n coverage_area: \"All galleries and storage\"\n purpose: \"Temperature and humidity monitoring for preservation\"\n publishes_to: \"https://dashboard.rijksmuseum.nl/climate\"\n```\n\n**TEMPORAL CONSIDERATIONS**:\n\nIoT devices have installation/decommissioning dates:\n- Beacons may be temporary for exhibitions\n- Sensors\ + \ screens\n\n**EXAMPLE - Museum with IoT Devices**:\n\n```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n iot_devices:\n - device_id: \".../iot/rijksmuseum-beacon-gallery-1\"\n device_name: \"Gallery of Honour Beacon Network\"\n device_type: IOT_BEACON\n device_count: 24\n coverage_area: \"Gallery of Honour (main wing)\"\n purpose: \"Proximity triggers for mobile app content\"\n \n - device_id: \".../iot/rijksmuseum-climate-monitor\"\n device_name: \"Conservation Climate Monitoring\"\n device_type: IOT_SENSOR\n device_count: 150\n coverage_area: \"All galleries and storage\"\n purpose: \"Temperature and humidity monitoring for preservation\"\n publishes_to: \"https://dashboard.rijksmuseum.nl/climate\"\n```\n\n**TEMPORAL CONSIDERATIONS**:\n\nIoT devices have installation/decommissioning dates:\n- Beacons may be temporary for exhibitions\n- Sensors\ \ may be upgraded/replaced\n- Kiosks may be moved between venues\n\n**NOT INCLUDED**:\n\n- Smartphones/tablets (user devices, not custodian-owned)\n- Standard IT infrastructure (servers, networking)\n- Security cameras (unless part of heritage experience)\n" exact_mappings: - sosa:Platform @@ -62,37 +62,37 @@ classes: - sosa:Actuator - schema:Product slots: - - has_or_had_endpoint + - has_endpoint - connectivity_type - coverage_area - - has_or_had_output - - is_or_was_decommissioned_at - - has_or_had_quantity - - has_or_had_identifier - - is_or_was_created_by - - has_or_had_model - - has_or_had_label - - is_or_was_instantiated_by + - has_output + - decommissioned_at + - has_quantity + - identified_by + - created_by + - has_model + - has_label + - instantiated_by - installation_date - installed_at_place - maintenance_schedule - operational_status - power_source - refers_to_custodian - - has_or_had_specification - - has_or_had_score + - has_specification + - has_score - temporal_extent - - has_or_had_frequency - - is_or_was_derived_from - - is_or_was_generated_by + - has_frequency + - derived_from + - generated_by slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/iot/rijksmuseum-beacon-gallery-1 - has_or_had_label: + has_label: range: Label inlined: true required: true @@ -101,49 +101,49 @@ classes: label_value: Gallery of Honour Beacon Network - value: label_value: Depot Climate Monitoring System - is_or_was_instantiated_by: + instantiated_by: range: IoTDevice inlined: true required: true examples: - value: - has_or_had_type: - has_or_had_label: Bluetooth Beacon + has_type: + has_label: Bluetooth Beacon - value: - has_or_had_type: - has_or_had_label: Climate Sensor + has_type: + has_label: Climate Sensor - value: - has_or_had_type: - has_or_had_label: Information Kiosk - has_or_had_model: + has_type: + has_label: Information Kiosk + has_model: # range: string inlined: false # Fixed invalid inline for primitive type required: false examples: - value: - has_or_had_label: Estimote Proximity Beacon + has_label: Estimote Proximity Beacon - value: - has_or_had_label: Sensirion SHT45 - is_or_was_created_by: + has_label: Sensirion SHT45 + created_by: range: Manufacturer inlined: true required: false examples: - value: - has_or_had_label: Estimote + has_label: Estimote - value: - has_or_had_label: Samsung - has_or_had_quantity: + has_label: Samsung + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type required: false examples: - value: - has_or_had_unit: + has_unit: - value: - has_or_had_unit: + has_unit: - value: - has_or_had_unit: + has_unit: coverage_area: # range: string examples: @@ -152,7 +152,7 @@ classes: - value: Main entrance lobby - value: Temperature and humidity monitoring for preservation - value: Self-service collection search for visitors - has_or_had_specification: + has_specification: # range: string examples: - value: BLE 5.0, 50m range, 5-year battery, IP67 rated @@ -168,27 +168,27 @@ classes: - value: BATTERY - value: MAINS - value: https://analytics.museum.nl/beacons - has_or_had_endpoint: + has_endpoint: range: APIEndpoint inlined: true examples: - value: - has_or_had_url: https://api.museum.nl/sensors/v1/ - has_or_had_description: Sensor data API - has_or_had_output: + has_url: https://api.museum.nl/sensors/v1/ + has_description: Sensor data API + has_output: range: OutputData inlined: true examples: - value: - has_or_had_format: - has_or_had_type: JsonFormat - has_or_had_description: Sensor readings in JSON format - has_or_had_frequency: + has_format: + has_type: JsonFormat + has_description: Sensor readings in JSON format + has_frequency: range: UpdateFrequency inlined: true examples: - - value: "has_or_had_frequency:\n frequency_description: \"Every 5 minutes\"\n has_or_had_quantity:\n numeric_value: 5\n has_or_had_time_interval:\n duration_value: \"PT1M\"\n" - - value: "has_or_had_frequency:\n frequency_description: \"On proximity trigger\"\n is_event_driven: true\n trigger_type: \"proximity\"\n" + - value: "has_frequency:\n frequency_description: \"Every 5 minutes\"\n has_quantity:\n numeric_value: 5\n has_time_interval:\n duration_value: \"PT1M\"\n" + - value: "has_frequency:\n frequency_description: \"On proximity trigger\"\n is_event_driven: true\n trigger_type: \"proximity\"\n" installed_at_place: range: CustodianPlace examples: @@ -197,13 +197,13 @@ classes: range: date examples: - value: '2023-06-15' - is_or_was_decommissioned_at: + decommissioned_at: range: Timestamp inlined: true examples: - value: - has_or_had_timestamp: '2028-12-31' - has_or_had_level: day + has_timestamp: '2028-12-31' + has_level: day temporal_extent: range: TimeSpan examples: @@ -218,11 +218,11 @@ classes: # range: string examples: - value: Monthly battery check - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false refers_to_custodian: @@ -243,18 +243,18 @@ classes: - https://schema.org/Thing examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/iot/rijksmuseum-beacon-gallery-honour - has_or_had_label: - has_or_had_label: Gallery of Honour Beacon Network - is_or_was_instantiated_by: - has_or_had_type: - has_or_had_label: Bluetooth Beacon - has_or_had_model: - has_or_had_label: Estimote Proximity Beacon - is_or_was_created_by: - has_or_had_label: Estimote - has_or_had_quantity: - has_or_had_unit: + identified_by: https://nde.nl/ontology/hc/iot/rijksmuseum-beacon-gallery-honour + has_label: + has_label: Gallery of Honour Beacon Network + instantiated_by: + has_type: + has_label: Bluetooth Beacon + has_model: + has_label: Estimote Proximity Beacon + created_by: + has_label: Estimote + has_quantity: + has_unit: coverage_area: Gallery of Honour (main wing) connectivity_type: - BLUETOOTH_LE @@ -265,53 +265,53 @@ classes: maintenance_schedule: Monthly battery check refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/iot/rijksmuseum-climate-monitoring - has_or_had_label: - has_or_had_label: Conservation Climate Monitoring System - is_or_was_instantiated_by: - has_or_had_type: - has_or_had_label: Climate Sensor - has_or_had_model: - has_or_had_label: Sensirion SHT45 - is_or_was_created_by: - has_or_had_label: Sensirion - has_or_had_quantity: - has_or_had_unit: + identified_by: https://nde.nl/ontology/hc/iot/rijksmuseum-climate-monitoring + has_label: + has_label: Conservation Climate Monitoring System + instantiated_by: + has_type: + has_label: Climate Sensor + has_model: + has_label: Sensirion SHT45 + created_by: + has_label: Sensirion + has_quantity: + has_unit: coverage_area: All galleries and storage areas connectivity_type: - WIFI - LORAWAN power_source: BATTERY publishes_to: https://dashboard.rijksmuseum.nl/climate - has_or_had_endpoint: - has_or_had_url: https://api.rijksmuseum.nl/climate/v1/ - has_or_had_output: - has_or_had_format: - has_or_had_type: JsonFormat - has_or_had_description: Climate sensor data - has_or_had_frequency: - has_or_had_quantity: + has_endpoint: + has_url: https://api.rijksmuseum.nl/climate/v1/ + has_output: + has_format: + has_type: JsonFormat + has_description: Climate sensor data + has_frequency: + has_quantity: numeric_value: 5 - has_or_had_time_interval: + has_time_interval: installation_date: '2020-01-15' operational_status: ACTIVE maintenance_schedule: Quarterly calibration refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/iot/rijksmuseum-entrance-kiosk - has_or_had_label: - has_or_had_label: Main Entrance Information Kiosks - is_or_was_instantiated_by: - has_or_had_type: - has_or_had_label: Information Kiosk - has_or_had_model: - has_or_had_label: Samsung Kiosk 24 Touch - is_or_was_created_by: - has_or_had_label: Samsung - has_or_had_quantity: - has_or_had_unit: + identified_by: https://nde.nl/ontology/hc/iot/rijksmuseum-entrance-kiosk + has_label: + has_label: Main Entrance Information Kiosks + instantiated_by: + has_type: + has_label: Information Kiosk + has_model: + has_label: Samsung Kiosk 24 Touch + created_by: + has_label: Samsung + has_quantity: + has_unit: coverage_area: Main entrance lobby - has_or_had_specification: 24-inch touchscreen, 1920x1080 resolution, wheelchair accessible + has_specification: 24-inch touchscreen, 1920x1080 resolution, wheelchair accessible connectivity_type: - ETHERNET power_source: MAINS diff --git a/schemas/20251121/linkml/modules/classes/InvalidWebClaim.yaml b/schemas/20251121/linkml/modules/classes/InvalidWebClaim.yaml index 0e3539930d..134b80a106 100644 --- a/schemas/20251121/linkml/modules/classes/InvalidWebClaim.yaml +++ b/schemas/20251121/linkml/modules/classes/InvalidWebClaim.yaml @@ -11,8 +11,8 @@ prefixes: dqv: http://www.w3.org/ns/dqv# imports: - linkml:types - - ../slots/has_or_had_provenance_path - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_provenance_path + - ../slots/20260202_matang/has_type - ../slots/retrieved_on - ../slots/source_url # default_range: string @@ -26,7 +26,7 @@ classes: \ even though the content failed validation\n- close_mappings includes dqv:QualityAnnotation\ \ as this documents a\n quality issue with extracted data\n- related_mappings\ \ includes prov:Entity for provenance tracking\nXPath provenance is captured\ - \ via has_or_had_provenance_path using the XPath class, which consolidates expression,\ + \ via has_provenance_path using the XPath class, which consolidates expression,\ \ match_score, and source_document." class_uri: rdf:Statement close_mappings: @@ -34,12 +34,12 @@ classes: related_mappings: - prov:Entity slots: - - has_or_had_type + - has_type - source_url - retrieved_on - - has_or_had_provenance_path + - has_provenance_path slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie inlined: false # Fixed invalid inline for primitive type required: false diff --git a/schemas/20251121/linkml/modules/classes/Investment.yaml b/schemas/20251121/linkml/modules/classes/Investment.yaml index 8b392e1648..df16a21e43 100644 --- a/schemas/20251121/linkml/modules/classes/Investment.yaml +++ b/schemas/20251121/linkml/modules/classes/Investment.yaml @@ -13,21 +13,21 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_quantity - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_type - ../slots/temporal_extent classes: Investment: class_uri: schema:InvestmentOrDeposit description: "A financial investment made by or in a heritage custodian institution,\nrepresenting capital allocated for preservation, acquisition, or \ndevelopment purposes.\n" slots: - - has_or_had_quantity + - has_quantity - temporal_extent - - has_or_had_type + - has_type slot_usage: - has_or_had_quantity: + has_quantity: temporal_extent: - has_or_had_type: + has_type: # range: string # uriorcurie annotations: specificity_score: '0.60' diff --git a/schemas/20251121/linkml/modules/classes/InvestmentArea.yaml b/schemas/20251121/linkml/modules/classes/InvestmentArea.yaml index 0e23d8b4da..bf38643493 100644 --- a/schemas/20251121/linkml/modules/classes/InvestmentArea.yaml +++ b/schemas/20251121/linkml/modules/classes/InvestmentArea.yaml @@ -6,9 +6,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: InvestmentArea: class_uri: skos:Concept @@ -18,9 +18,9 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description annotations: specificity_score: '0.55' specificity_rationale: Investment areas are moderately specific to financial management. diff --git a/schemas/20251121/linkml/modules/classes/IoTDevice.yaml b/schemas/20251121/linkml/modules/classes/IoTDevice.yaml index aa1c27b907..0e96074a31 100644 --- a/schemas/20251121/linkml/modules/classes/IoTDevice.yaml +++ b/schemas/20251121/linkml/modules/classes/IoTDevice.yaml @@ -17,15 +17,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: IoTDevice: class_uri: sosa:Sensor description: IoT device. slots: - - has_or_had_label - - has_or_had_identifier + - has_label + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Item.yaml b/schemas/20251121/linkml/modules/classes/Item.yaml index c932aba637..44593f0961 100644 --- a/schemas/20251121/linkml/modules/classes/Item.yaml +++ b/schemas/20251121/linkml/modules/classes/Item.yaml @@ -10,9 +10,9 @@ prefixes: imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label default_prefix: hc classes: @@ -45,17 +45,17 @@ classes: - schema:Product slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie multivalued: true - has_or_had_label: + has_label: # range: string - has_or_had_description: + has_description: # range: string annotations: custodian_types: '["*"]' @@ -65,14 +65,14 @@ classes: examples: - value: - has_or_had_identifier: + identified_by: - identifier_scheme: ACCESSION - has_or_had_label: "Girl with a Pearl Earring" - has_or_had_description: + has_label: "Girl with a Pearl Earring" + has_description: description_text: "Oil on canvas by Johannes Vermeer, c. 1665" - value: - has_or_had_identifier: + identified_by: - identifier_scheme: INVENTORY - has_or_had_label: "Medieval manuscript" - has_or_had_description: + has_label: "Medieval manuscript" + has_description: description_text: "Illuminated manuscript on vellum, 13th century" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/JointArchives.yaml b/schemas/20251121/linkml/modules/classes/JointArchives.yaml index e2acd4f41d..597c317427 100644 --- a/schemas/20251121/linkml/modules/classes/JointArchives.yaml +++ b/schemas/20251121/linkml/modules/classes/JointArchives.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: JointArchives: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q117442301 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Joint Archives diff --git a/schemas/20251121/linkml/modules/classes/JointArchivesRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/JointArchivesRecordSetType.yaml index fc98239e0e..af86372703 100644 --- a/schemas/20251121/linkml/modules/classes/JointArchivesRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/JointArchivesRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: JointArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by JointArchives custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - JointArchives - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/JointArchivesRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/JointArchivesRecordSetTypes.yaml index f4cd6f45f2..e4c163d967 100644 --- a/schemas/20251121/linkml/modules/classes/JointArchivesRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/JointArchivesRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./JointArchivesRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - JointArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: SharedRecordsFonds diff --git a/schemas/20251121/linkml/modules/classes/Jurisdiction.yaml b/schemas/20251121/linkml/modules/classes/Jurisdiction.yaml index ea6fadf012..0610e45f97 100644 --- a/schemas/20251121/linkml/modules/classes/Jurisdiction.yaml +++ b/schemas/20251121/linkml/modules/classes/Jurisdiction.yaml @@ -13,11 +13,11 @@ imports: - ../enums/LegalSystemTypeEnum - ../metadata - ../slots/country - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_geographic_subdivision - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_geographic_subdivision + - ../slots/identified_by + - ../slots/20260202_matang/has_score - ../slots/jurisdiction_id - ../slots/jurisdiction_type - ../slots/legal_system_type @@ -38,15 +38,15 @@ classes: - gleif_base:hasCoverageArea slots: - country - - has_or_had_description - - has_or_had_identifier + - has_description + - identified_by - jurisdiction_id - jurisdiction_type - legal_system_type - settlement - - has_or_had_geographic_subdivision - - has_or_had_code - - has_or_had_score + - has_geographic_subdivision + - has_code + - has_score slot_usage: jurisdiction_id: identifier: true @@ -55,11 +55,11 @@ classes: required: true country: required: false - has_or_had_geographic_subdivision: + has_geographic_subdivision: required: false settlement: required: false - has_or_had_code: + has_code: required: false comments: - Jurisdiction is the geographic area where specific LAWS AND POLICIES apply diff --git a/schemas/20251121/linkml/modules/classes/KeyArchive.yaml b/schemas/20251121/linkml/modules/classes/KeyArchive.yaml index bec9ef443a..f7f7687eee 100644 --- a/schemas/20251121/linkml/modules/classes/KeyArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/KeyArchive.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_name + - ../slots/identified_by + - ../slots/20260202_matang/has_name classes: KeyArchive: class_uri: rico:RecordSet description: Key archive. slots: - - has_or_had_name - - has_or_had_identifier + - has_name + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/KeyDate.yaml b/schemas/20251121/linkml/modules/classes/KeyDate.yaml index 54c23ddfe0..19fb10b4b7 100644 --- a/schemas/20251121/linkml/modules/classes/KeyDate.yaml +++ b/schemas/20251121/linkml/modules/classes/KeyDate.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: KeyDate: class_uri: schema:Event description: Key date. slots: - - has_or_had_description + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/KeyPeriod.yaml b/schemas/20251121/linkml/modules/classes/KeyPeriod.yaml index 06abca7fce..852e4a682d 100644 --- a/schemas/20251121/linkml/modules/classes/KeyPeriod.yaml +++ b/schemas/20251121/linkml/modules/classes/KeyPeriod.yaml @@ -9,7 +9,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description - ../slots/temporal_extent classes: KeyPeriod: @@ -17,7 +17,7 @@ classes: description: Key period. slots: - temporal_extent - - has_or_had_description + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/LGBTArchive.yaml b/schemas/20251121/linkml/modules/classes/LGBTArchive.yaml index 54b30ec8ed..20ccdacd74 100644 --- a/schemas/20251121/linkml/modules/classes/LGBTArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/LGBTArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: LGBTArchive: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q61710689 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: LGBT Archive diff --git a/schemas/20251121/linkml/modules/classes/LGBTArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/LGBTArchiveRecordSetType.yaml index c1e12ace7d..75a6aa12e6 100644 --- a/schemas/20251121/linkml/modules/classes/LGBTArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/LGBTArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: LGBTArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by LGBTArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - LGBTArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/LGBTArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/LGBTArchiveRecordSetTypes.yaml index dd8827451e..8efdb76232 100644 --- a/schemas/20251121/linkml/modules/classes/LGBTArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/LGBTArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./LGBTArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - LGBTArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: LGBTOrganizationFonds @@ -78,15 +78,15 @@ classes: - LGBTArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ActivistPapersCollection @@ -115,15 +115,15 @@ classes: - LGBTArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PrideEventCollection diff --git a/schemas/20251121/linkml/modules/classes/LLMResponse.yaml b/schemas/20251121/linkml/modules/classes/LLMResponse.yaml index 97098cd319..6e00361b01 100644 --- a/schemas/20251121/linkml/modules/classes/LLMResponse.yaml +++ b/schemas/20251121/linkml/modules/classes/LLMResponse.yaml @@ -23,10 +23,10 @@ imports: # - ../slots/content - ../slots/cost_usd - ../slots/created - - ../slots/has_or_had_mode - - ../slots/has_or_had_score - - ../slots/has_or_had_token - - ../slots/is_or_was_ceased_by + - ../slots/20260202_matang/has_mode + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_token + - ../slots/20260202_matang/ceased_by - ../slots/latency_ms - ../slots/model - ../slots/preserves_or_preserved @@ -43,18 +43,18 @@ classes: - schema:Action - schema:CreativeWork slots: - - has_or_had_token + - has_token - preserves_or_preserved # - content - cost_usd - created - - is_or_was_ceased_by + - ceased_by - latency_ms - model - reasoning_content - request_id - - has_or_had_score - - has_or_had_mode + - has_score + - has_mode - consumes_or_consumed slot_usage: # content: @@ -87,13 +87,13 @@ classes: minimum_value: 0 examples: - value: 600 - has_or_had_token: + has_token: range: Token multivalued: true inlined: true inlined_as_list: true required: false - is_or_was_ceased_by: + ceased_by: range: CeaseEvent inlined: true required: false @@ -110,7 +110,7 @@ classes: examples: - value: 0.0 - value: 0.015 - has_or_had_mode: + has_mode: range: ThinkingMode required: false preserves_or_preserved: diff --git a/schemas/20251121/linkml/modules/classes/Label.yaml b/schemas/20251121/linkml/modules/classes/Label.yaml index d43536aa14..d1ee1c3607 100644 --- a/schemas/20251121/linkml/modules/classes/Label.yaml +++ b/schemas/20251121/linkml/modules/classes/Label.yaml @@ -14,10 +14,10 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_label - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_type - - ../slots/has_or_had_type # Added 2026-01-18 for label type discrimination + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_type # Added 2026-01-18 for label type discrimination - ../slots/language classes: Label: @@ -53,16 +53,16 @@ classes: - schema:Thing slots: - - has_or_had_label - - has_or_had_type # Added 2026-01-18 for label type discrimination + - has_label + - has_type # Added 2026-01-18 for label type discrimination - language - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - has_or_had_label: + has_label: # range: string required: true - has_or_had_type: + has_type: # range: string required: false multivalued: false @@ -80,14 +80,14 @@ classes: examples: - value: | - has_or_had_label: Rijksmuseum + has_label: Rijksmuseum language: nl - value: | - has_or_had_label: National Library of the Netherlands + has_label: National Library of the Netherlands language: en - value: | - has_or_had_label: CollectiveAccess - has_or_had_type: product_name + has_label: CollectiveAccess + has_type: product_name - value: | - has_or_had_label: Whirl-i-Gig - has_or_had_type: vendor_name \ No newline at end of file + has_label: Whirl-i-Gig + has_type: vendor_name \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/LabelType.yaml b/schemas/20251121/linkml/modules/classes/LabelType.yaml index 8f0c06f04b..4955e200cd 100644 --- a/schemas/20251121/linkml/modules/classes/LabelType.yaml +++ b/schemas/20251121/linkml/modules/classes/LabelType.yaml @@ -15,9 +15,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: LabelType: class_uri: skos:Concept @@ -30,19 +30,19 @@ classes: broad_mappings: - skos:Concept slots: - - has_or_had_label - - has_or_had_code - - has_or_had_description + - has_label + - has_code + - has_description slot_usage: - has_or_had_code: + has_code: # range: string required: true examples: - value: SHORT_NAME - has_or_had_label: + has_label: # range: string required: false - has_or_had_description: + has_description: # range: string required: false annotations: diff --git a/schemas/20251121/linkml/modules/classes/LabelTypes.yaml b/schemas/20251121/linkml/modules/classes/LabelTypes.yaml index 4961c1b765..4dfff2bbdf 100644 --- a/schemas/20251121/linkml/modules/classes/LabelTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/LabelTypes.yaml @@ -76,7 +76,7 @@ classes: ObservedName: is_a: LabelType class_uri: hc:ObservedName - description: Name as observed in a source document or system. MIGRATED from has_or_had_alternative_observed_name + description: Name as observed in a source document or system. MIGRATED from has_alternative_observed_name (Rule 53). broad_mappings: - skos:Concept diff --git a/schemas/20251121/linkml/modules/classes/Language.yaml b/schemas/20251121/linkml/modules/classes/Language.yaml index 370948ed04..bf03275c94 100644 --- a/schemas/20251121/linkml/modules/classes/Language.yaml +++ b/schemas/20251121/linkml/modules/classes/Language.yaml @@ -15,11 +15,11 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_iso_639_1 - - ../slots/has_or_had_iso_639_3 - - ../slots/has_or_had_text - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_iso_code639_1 + - ../slots/20260202_matang/has_iso_code639_3 + - ../slots/20260202_matang/has_text + - ../slots/20260202_matang/has_label classes: Language: class_uri: dct:LinguisticSystem @@ -44,7 +44,7 @@ classes: This class supports migration from language-specific text slots (fr, de, en, nl) - to a unified `has_or_had_language` + `Language` pattern per slot_fixes.yaml. + to a unified `has_language` + `Language` pattern per slot_fixes.yaml. **Ontological Alignment**: @@ -59,36 +59,36 @@ classes: close_mappings: - schema:Language slots: - - has_or_had_code - - has_or_had_iso_639_1 - - has_or_had_iso_639_3 - - has_or_had_text - - has_or_had_label + - has_code + - has_iso_code639_1 + - has_iso_code639_3 + - has_text + - has_label slot_usage: - has_or_had_label: + has_label: description: 'Human-readable name of the language (e.g., "English", "Dutch", "French"). Parsed from raw string, not authoritative. Use ISO codes for formal identification.' - has_or_had_text: + has_text: description: "Text content in this language. Used when bundling language identification with the actual text content." examples: - - value: 'has_or_had_iso_639_1: "fr" + - value: 'has_iso_code639_1: "fr" - has_or_had_label: "French" + has_label: "French" - has_or_had_text: "archives universitaires" + has_text: "archives universitaires" ' description: French language-tagged text for multilingual label - - value: 'has_or_had_iso_639_1: "en" + - value: 'has_iso_code639_1: "en" - has_or_had_label: "English" + has_label: "English" ' description: English language identifier (without text content) - - value: 'has_or_had_iso_639_1: "nl" + - value: 'has_iso_code639_1: "nl" - has_or_had_label: "Dutch" + has_label: "Dutch" - has_or_had_text: "universitair archief" + has_text: "universitair archief" ' description: Dutch language-tagged text diff --git a/schemas/20251121/linkml/modules/classes/LanguageCode.yaml b/schemas/20251121/linkml/modules/classes/LanguageCode.yaml index 2a631d27d4..d61c20ed6f 100644 --- a/schemas/20251121/linkml/modules/classes/LanguageCode.yaml +++ b/schemas/20251121/linkml/modules/classes/LanguageCode.yaml @@ -12,7 +12,7 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/language_code classes: LanguageCode: @@ -32,7 +32,7 @@ classes: - skos:Concept slots: - language_code - - has_or_had_score + - has_score slot_usage: language_code: # range: string diff --git a/schemas/20251121/linkml/modules/classes/LanguageProficiency.yaml b/schemas/20251121/linkml/modules/classes/LanguageProficiency.yaml index 4bd6671e59..a9fe6e6dad 100644 --- a/schemas/20251121/linkml/modules/classes/LanguageProficiency.yaml +++ b/schemas/20251121/linkml/modules/classes/LanguageProficiency.yaml @@ -11,7 +11,7 @@ imports: - linkml:types - ../enums/LanguageProficiencyEnum - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/language_code - ../slots/language_name - ../slots/language_raw @@ -30,7 +30,7 @@ classes: - language_name - language_raw - proficiency_level - - has_or_had_score + - has_score slot_usage: language_raw: # range: string diff --git a/schemas/20251121/linkml/modules/classes/Laptop.yaml b/schemas/20251121/linkml/modules/classes/Laptop.yaml index 52b2ac8a4f..f55ef8b9c0 100644 --- a/schemas/20251121/linkml/modules/classes/Laptop.yaml +++ b/schemas/20251121/linkml/modules/classes/Laptop.yaml @@ -7,7 +7,7 @@ description: >- and under what conditions. **MIGRATION NOTE** (2026-01-14): Created as part of slot migration from `allows_laptops` and - `allows_or_allowed_laptop` to generic `allows_or_allowed` slot + `allows_or_allowed_laptop` to generic `allow` slot with typed class. See slot_fixes.yaml for migration specification. prefixes: linkml: https://w3id.org/linkml/ @@ -17,8 +17,8 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_score # was: template_specificity + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_score # was: template_specificity - ../slots/is_permitted - ../slots/poses_or_posed_condition - ../slots/temporal_extent # was: valid_from + valid_to @@ -47,7 +47,7 @@ classes: - COVID era: Some restrictions due to spacing **EXAMPLE**: ```yaml - allows_or_allowed: + allow: - permitted_item: Laptop is_permitted: true conditions: @@ -61,11 +61,11 @@ classes: - schema:amenityFeature slots: - is_permitted - - has_or_had_description + - has_description # MIGRATED 2026-01-22: condition → poses_or_posed_condition + Condition (Rule 53) - poses_or_posed_condition - temporal_extent # was: valid_from + valid_to - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: is_permitted: range: boolean @@ -98,11 +98,11 @@ classes: id: hc:laptop-policy/nationaal-archief is_permitted: true poses_or_posed_condition: - - has_or_had_type: UseCondition - has_or_had_description: + - has_type: UseCondition + has_description: description_text: "Silent operation required" - - has_or_had_type: AmenityCondition - has_or_had_description: + - has_type: AmenityCondition + has_description: description_text: "Power outlets available at each desk" temporal_extent: begin_of_the_begin: "2010-01-01" @@ -110,11 +110,11 @@ classes: id: hc:laptop-policy/special-collections-restricted is_permitted: false poses_or_posed_condition: - - has_or_had_type: UseCondition - has_or_had_description: + - has_type: UseCondition + has_description: description_text: "Pencils only for note-taking" - - has_or_had_type: AmenityCondition - has_or_had_description: + - has_type: AmenityCondition + has_description: description_text: "Institution-provided terminals available" temporal_extent: begin_of_the_begin: "2020-01-01" diff --git a/schemas/20251121/linkml/modules/classes/LastName.yaml b/schemas/20251121/linkml/modules/classes/LastName.yaml index 704f374729..dad55c59a7 100644 --- a/schemas/20251121/linkml/modules/classes/LastName.yaml +++ b/schemas/20251121/linkml/modules/classes/LastName.yaml @@ -15,9 +15,9 @@ description: >- **EXAMPLE**: ```yaml LastName: - has_or_had_label: + has_label: label_value: "van der Berg" - has_or_had_base: + has_base: base_value: "Berg" ``` @@ -31,8 +31,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_base - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_base + - ../slots/20260202_matang/has_label classes: LastName: class_uri: hc:LastName @@ -43,16 +43,16 @@ classes: - schema:familyName - pnv:surname slots: - - has_or_had_label - - has_or_had_base + - has_label + - has_base slot_usage: - has_or_had_label: + has_label: # range: string inlined: false # Fixed invalid inline for primitive type examples: - value: label_value: "van der Berg" - has_or_had_base: + has_base: range: BaseName inlined: true examples: diff --git a/schemas/20251121/linkml/modules/classes/LegalEntityType.yaml b/schemas/20251121/linkml/modules/classes/LegalEntityType.yaml index 3bf9f8c1e4..bd3d793f85 100644 --- a/schemas/20251121/linkml/modules/classes/LegalEntityType.yaml +++ b/schemas/20251121/linkml/modules/classes/LegalEntityType.yaml @@ -27,7 +27,7 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score classes: LegalEntityType: class_uri: hc:LegalEntityType @@ -54,7 +54,7 @@ classes: governments, foundations)' - All corporations and government bodies are subtypes of ORGANIZATION (legal persons) slots: - - has_or_had_score + - has_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/LegalForm.yaml b/schemas/20251121/linkml/modules/classes/LegalForm.yaml index 70bf57ad4a..80896c198a 100644 --- a/schemas/20251121/linkml/modules/classes/LegalForm.yaml +++ b/schemas/20251121/linkml/modules/classes/LegalForm.yaml @@ -15,7 +15,7 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score classes: LegalForm: class_uri: hc:LegalForm @@ -40,7 +40,7 @@ classes: - Each legal form has specific rights, obligations, and governance requirements - Legal forms determine tax treatment, liability, and reporting requirements slots: - - has_or_had_score + - has_score - legal_entity_type annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/LegalName.yaml b/schemas/20251121/linkml/modules/classes/LegalName.yaml index 0971a58e9e..2e7f43052e 100644 --- a/schemas/20251121/linkml/modules/classes/LegalName.yaml +++ b/schemas/20251121/linkml/modules/classes/LegalName.yaml @@ -13,7 +13,7 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score classes: LegalName: class_uri: hc:LegalName @@ -45,8 +45,8 @@ classes: - Organizations may have different legal names in different jurisdictions - Historical legal names are preserved with temporal validity periods slots: - - has_or_had_score - - has_or_had_label + - has_score + - has_label - language annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/LegalResponsibilityCollection.yaml b/schemas/20251121/linkml/modules/classes/LegalResponsibilityCollection.yaml index 886cd0ec78..abfc479fdf 100644 --- a/schemas/20251121/linkml/modules/classes/LegalResponsibilityCollection.yaml +++ b/schemas/20251121/linkml/modules/classes/LegalResponsibilityCollection.yaml @@ -21,8 +21,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/legal_responsibility_basis - ../slots/legal_responsibility_end_date - ../slots/legal_responsibility_start_date @@ -51,12 +51,12 @@ classes: - dcmitype:Collection - schema:CreativeWork slots: - - has_or_had_type + - has_type - legal_responsibility_basis - legal_responsibility_end_date - legal_responsibility_start_date - responsible_legal_entity - - has_or_had_score + - has_score slot_usage: responsible_legal_entity: range: CustodianLegalStatus @@ -84,7 +84,7 @@ classes: - value: '1950-05-15' refers_to_custodian: required: true - has_or_had_type: + has_type: equals_expression: '["*"]' comments: - Subclass of CustodianCollection specializing in LEGALLY ACCOUNTABLE collections @@ -100,14 +100,14 @@ classes: examples: - value: id: https://nde.nl/ontology/hc/collection/nha-provincial-archive - has_or_had_label: - has_or_had_label: Noord-Hollands Archief - Provinciaal Archief + has_label: + has_label: Noord-Hollands Archief - Provinciaal Archief collection_type: - archival_records - has_or_had_scope: + has_scope: scope_description: Provincial government records of Noord-Holland - has_or_had_content: - - has_or_had_label: Provincial Government Records + has_content: + - has_label: Provincial Government Records temporal_extent: begin_of_the_begin: '1289-01-01' end_of_the_end: null @@ -115,20 +115,20 @@ classes: legal_responsibility_basis: 'Archiefwet 1995 (Dutch Archives Act), Article 41: "De provincie draagt zorg voor de archiefbescheiden die niet meer voor de dagelijkse uitvoering van de werkzaamheden nodig zijn" (The province is responsible for archival records no longer needed for daily operations)' legal_responsibility_start_date: '2001-01-01' refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-haa-a-nha - is_or_was_derived_from: + derived_from: - https://nde.nl/ontology/hc/observation/nha-website-2025 - https://nde.nl/ontology/hc/observation/nha-archiefwet-registration - is_or_was_generated_by: null + generated_by: null - value: id: https://nde.nl/ontology/hc/collection/rm-national-collection - has_or_had_label: - has_or_had_label: Rijksmuseum National Art Collection + has_label: + has_label: Rijksmuseum National Art Collection collection_type: - museum_objects - has_or_had_scope: + has_scope: scope_description: Dutch art and history from the Middle Ages to present - has_or_had_content: - - has_or_had_label: National Art Collection + has_content: + - has_label: National Art Collection temporal_extent: begin_of_the_begin: '1200-01-01' end_of_the_end: null @@ -137,10 +137,10 @@ classes: legal_responsibility_start_date: '1885-07-01' managing_unit: https://nde.nl/ontology/hc/org-unit/rm-collection-management refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - is_or_was_derived_from: + derived_from: - https://nde.nl/ontology/hc/observation/rijksmuseum-website - https://nde.nl/ontology/hc/observation/erfgoedwet-2016 - is_or_was_generated_by: null + generated_by: null annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Liability.yaml b/schemas/20251121/linkml/modules/classes/Liability.yaml index edbdf93962..e0ca9be7cf 100644 --- a/schemas/20251121/linkml/modules/classes/Liability.yaml +++ b/schemas/20251121/linkml/modules/classes/Liability.yaml @@ -6,13 +6,13 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_liability + - ../slots/20260202_matang/has_liability classes: Liability: class_uri: schema:MonetaryAmount description: Financial liability slots: - - has_or_had_liability + - has_liability - currency annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/LibraryType.yaml b/schemas/20251121/linkml/modules/classes/LibraryType.yaml index 05f6d8f875..0b1c39e2f7 100644 --- a/schemas/20251121/linkml/modules/classes/LibraryType.yaml +++ b/schemas/20251121/linkml/modules/classes/LibraryType.yaml @@ -5,11 +5,11 @@ imports: - ../classes/AgentType - linkml:types - ../enums/LibraryTypeEnum - - ../slots/complies_or_complied_with - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/comply_with + - ../slots/20260202_matang/has_hypernym + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/interlibrary_loan - ../slots/lending_policy - ../slots/library_subtype @@ -71,34 +71,34 @@ classes: description: "Specialized custodian type for libraries - institutions that collect, organize,\npreserve, and provide access to information resources (books, journals, digital\nmaterials) for reading, reference, research, and learning.\n\n**Wikidata Base Concept**: Q7075 (library)\n\n**Scope**:\nLibraries are distinguished by their focus on:\n- Published materials (books, journals, digital resources)\n- Systematic organization (catalogs, classification systems)\n- Information access and lending services\n- Reader services and information literacy programs\n- Mass-produced items (not unique artifacts)\n\n**Key Library Subtypes** (60+ extracted from Wikidata):\n\n**By Administrative Level**:\n- National libraries (Q22806) - Comprehensive national collections\n- State/regional libraries - Provincial or state-level libraries\n- Municipal libraries - City or town public libraries\n- Library branches (Q11396180) - Local branch of library organization\n\n**By Function & Audience**:\n- Research\ \ libraries (Q1438040) - Scholarly research support\n- Public libraries - Community lending libraries\n- Academic libraries - University/college libraries\n- Special libraries - Subject-specific or corporate libraries\n\n**By Subject Specialization**:\n- Music libraries (Q2061246) - Music scores, recordings, literature\n- Photo libraries (Q1574516) - Photography collections\n- Map libraries (Q124416055) - Cartographic materials (Chinese context)\n- Film libraries - Cinema and video collections\n- Patent libraries - Technical and patent documentation\n\n**By Collection Format**:\n- Digital libraries (Q212805) - Online database of digital objects\n- Online libraries (Q12328550) - Digital library services\n- Virtual specialist libraries (Q2527949) - Subject-specific virtual collections\n- Traditional libraries - Physical book collections\n\n**Dutch-Specific Types**:\n- WSF libraries (Q1994819) - Dutch public libraries with research function\n (Wetenschappelijke en Speciale Functies -\ \ Scientific and Special Functions)\n- Provincial libraries - Regional library systems in Netherlands\n\n**Special Collection Libraries**:\n- Photograph collections (Q130486108) - Historic photo archives in library context\n- Personal libraries (Q106402388) - Private book collections\n- Manuscript libraries - Rare manuscripts and codices\n- Archive-libraries - Combined archive and library functions\n\n**Organizational Structures**:\n- Parent library organizations (Q1956113) - Central library with branches\n- Branch offices (Q1880737) - Local service points\n- Library departments (Q2366457) - Specialized divisions within library\n- Library consortia - Cooperative library networks\n\n**Cultural Context**:\n- Chitalishte (Q1638962) - Bulgarian public institutions combining library,\n cultural center, and community functions\n- Memory institutions (Q1497649) - Libraries as heritage custodians\n\n**RDF Serialization Example**:\n```turtle\n:Custodian_KoninklijkeBibliotheek\n org:classification\ - \ :LibraryType_NationalLibrary_Q22806 .\n\n:LibraryType_NationalLibrary_Q22806\n a glamtype:LibraryType, crm:E55_Type, skos:Concept ;\n skos:prefLabel \"National Library\"@en, \"nationale bibliotheek\"@nl ;\n skos:broader :LibraryType_Library_Q7075 ;\n schema:additionalType <http://www.wikidata.org/entity/Q22806> ;\n glamtype:glamorcubesfixphdnt_code \"LIBRARY\" ;\n glamtype:lending_policy \"reference-only\" ;\n glamtype:uses_or_used [ a glamtype:CatalogSystem ; glamtype:has_or_had_name \"ALMA\" ] ;\n glamtype:special_collections [\"incunabula\", \"manuscripts\", \"maps\"] ;\n glamtype:interlibrary_loan true ;\n glamtype:cataloging_standard \"RDA\" .\n```\n\n**Domain-Specific Properties**:\nThis class adds library-specific metadata beyond base CustodianType:\n- `lending_policy` - Circulation rules (open, restricted, reference-only, digital-only, membership-required)\n- `uses_or_used` (was: catalog_system) - Integrated library system (ALMA, Sierra, Koha,\ + \ :LibraryType_NationalLibrary_Q22806 .\n\n:LibraryType_NationalLibrary_Q22806\n a glamtype:LibraryType, crm:E55_Type, skos:Concept ;\n skos:prefLabel \"National Library\"@en, \"nationale bibliotheek\"@nl ;\n skos:broader :LibraryType_Library_Q7075 ;\n schema:additionalType <http://www.wikidata.org/entity/Q22806> ;\n glamtype:glamorcubesfixphdnt_code \"LIBRARY\" ;\n glamtype:lending_policy \"reference-only\" ;\n glamtype:uses_or_used [ a glamtype:CatalogSystem ; glamtype:has_name \"ALMA\" ] ;\n glamtype:special_collections [\"incunabula\", \"manuscripts\", \"maps\"] ;\n glamtype:interlibrary_loan true ;\n glamtype:cataloging_standard \"RDA\" .\n```\n\n**Domain-Specific Properties**:\nThis class adds library-specific metadata beyond base CustodianType:\n- `lending_policy` - Circulation rules (open, restricted, reference-only, digital-only, membership-required)\n- `uses_or_used` (was: catalog_system) - Integrated library system (ALMA, Sierra, Koha,\ \ Aleph, etc.)\n- `special_collections` - Notable collections (rare books, manuscripts, archives, maps, music)\n- `membership_required` - Whether library requires membership for access\n- `interlibrary_loan` - Whether participates in interlibrary loan networks\n- `cataloging_standard` - Metadata standards used (MARC21, RDA, Dublin Core, BIBFRAME)\n\n**Integration with BIBFRAME**:\nBIBFRAME (Bibliographic Framework) is the Library of Congress initiative for\nbibliographic description:\n- bf:Organization - Library as organizational entity\n- bf:Work - Intellectual content held by library\n- bf:Instance - Physical/digital manifestations in library\n- bf:Item - Specific holdings with call numbers\n\n**Cataloging Standards**:\n- MARC21 - Machine-Readable Cataloging (legacy standard)\n- RDA - Resource Description and Access (modern cataloging rules)\n- Dublin Core - Simple metadata for digital libraries\n- BIBFRAME - Linked data for bibliographic resources\n- FRBR - Functional Requirements\ \ for Bibliographic Records\n\n**Library Services**:\n- Circulation - Lending and returns\n- Reference - Information assistance\n- Interlibrary loan - Resource sharing between libraries\n- Digital repositories - Online access to digitized materials\n- Information literacy instruction - User education programs\n\n**Data Population**:\nLibrary subtypes extracted from 60 Wikidata entities with type='L'\nin `data/wikidata/GLAMORCUBEPSXHFN/hyponyms_curated_full.yaml`.\n" slots: - uses_or_used - - complies_or_complied_with - - has_or_had_type + - comply_with + - has_type - interlibrary_loan - lending_policy - library_subtype - membership_required - special_collection - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: uses_or_used: # range: string # uriorcurie # range: CatalogSystem inlined: false # Fixed invalid inline for primitive type multivalued: true - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ required: true - has_or_had_hypernym: + has_hypernym: range: LibraryType - has_or_had_type: + has_type: equals_expression: '["hc:LibraryType"]' - complies_or_complied_with: + comply_with: # range: string # uriorcurie # range: CatalogingStandard inlined: false # Fixed invalid inline for primitive type @@ -122,53 +122,53 @@ classes: - 'Cataloging standards: MARC21, RDA, Dublin Core, BIBFRAME' examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/library/Q22806 - has_or_had_type_code: LIBRARY - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/library/Q22806 + has_type_code: LIBRARY + has_label: - National Library@en - nationale bibliotheek@nl - Nationalbibliothek@de - has_or_had_description: library specifically established by the government of a country - has_or_had_hypernym: https://nde.nl/ontology/hc/type/library/Q7075 + has_description: library specifically established by the government of a country + has_hypernym: https://nde.nl/ontology/hc/type/library/Q7075 lending_policy: reference-only uses_or_used: - - has_or_had_name: ALMA - has_or_had_type: - has_or_had_name: Library Services Platform + - has_name: ALMA + has_type: + has_name: Library Services Platform special_collection: - incunabula - historical maps - national heritage literature membership_required: false interlibrary_loan: true - complies_or_complied_with: - - has_or_had_identifier: RDA - has_or_had_label: Resource Description and Access + comply_with: + - identified_by: RDA + has_label: Resource Description and Access - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/library/Q1994819 - has_or_had_type_code: LIBRARY - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/library/Q1994819 + has_type_code: LIBRARY + has_label: - WSF Library@en - WSF-bibliotheek@nl - has_or_had_description: public library in the Netherlands with a secondary research function (Wetenschappelijke en Speciale Functies) - has_or_had_hypernym: https://nde.nl/ontology/hc/type/library/Q7075 + has_description: public library in the Netherlands with a secondary research function (Wetenschappelijke en Speciale Functies) + has_hypernym: https://nde.nl/ontology/hc/type/library/Q7075 lending_policy: open uses_or_used: - - has_or_had_name: OCLC WorldShare - has_or_had_type: - has_or_had_name: Library Services Platform + - has_name: OCLC WorldShare + has_type: + has_name: Library Services Platform special_collection: - local history - genealogy - regional heritage membership_required: false interlibrary_loan: true - complies_or_complied_with: - - has_or_had_identifier: MARC21 - has_or_had_label: Machine-Readable Cataloging 21 - is_or_was_applicable_in: - - has_or_had_identifier: NL - has_or_had_name: Netherlands + comply_with: + - identified_by: MARC21 + has_label: Machine-Readable Cataloging 21 + applicable_in: + - identified_by: NL + has_name: Netherlands description: 'Dutch WSF Library combining public lending with research collections (geographic restriction: Netherlands only)' prefixes: linkml: https://w3id.org/linkml/ diff --git a/schemas/20251121/linkml/modules/classes/LightArchives.yaml b/schemas/20251121/linkml/modules/classes/LightArchives.yaml index e32889ae47..899577f430 100644 --- a/schemas/20251121/linkml/modules/classes/LightArchives.yaml +++ b/schemas/20251121/linkml/modules/classes/LightArchives.yaml @@ -9,11 +9,11 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_policy - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_policy + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: LightArchives: @@ -21,11 +21,11 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_policy - - has_or_had_type + - has_policy + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q112815447 close_mappings: @@ -34,8 +34,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Light Archives diff --git a/schemas/20251121/linkml/modules/classes/LightArchivesRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/LightArchivesRecordSetType.yaml index 8a779a0cd1..168c0f7efc 100644 --- a/schemas/20251121/linkml/modules/classes/LightArchivesRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/LightArchivesRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: LightArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by LightArchives custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - LightArchives - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/LightArchivesRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/LightArchivesRecordSetTypes.yaml index 4b37c1f236..526f8dec82 100644 --- a/schemas/20251121/linkml/modules/classes/LightArchivesRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/LightArchivesRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./LightArchivesRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - LightArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: MinimalProcessingCollection diff --git a/schemas/20251121/linkml/modules/classes/LikelihoodScore.yaml b/schemas/20251121/linkml/modules/classes/LikelihoodScore.yaml index 90928d9ac6..2660b3eea1 100644 --- a/schemas/20251121/linkml/modules/classes/LikelihoodScore.yaml +++ b/schemas/20251121/linkml/modules/classes/LikelihoodScore.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: LikelihoodScore: class_uri: schema:Rating description: Likelihood score. slots: - - has_or_had_value + - has_value annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/LinkedDataEndpoint.yaml b/schemas/20251121/linkml/modules/classes/LinkedDataEndpoint.yaml index cae7fb8070..96cc6f2b83 100644 --- a/schemas/20251121/linkml/modules/classes/LinkedDataEndpoint.yaml +++ b/schemas/20251121/linkml/modules/classes/LinkedDataEndpoint.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_url classes: LinkedDataEndpoint: class_uri: void:Dataset description: Linked data endpoint. slots: - - has_or_had_url + - has_url annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml b/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml index 2cb5538077..d8f862456f 100644 --- a/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml +++ b/schemas/20251121/linkml/modules/classes/LinkedInProfile.yaml @@ -13,20 +13,20 @@ imports: - linkml:types - ../metadata - ../slots/connections_text - - ../slots/emphasizes_or_emphasized + - ../slots/20260202_matang/emphasize - ../slots/estimates_or_estimated - - ../slots/has_or_had_assessment - - ../slots/has_or_had_contact_details - - ../slots/has_or_had_description - - ../slots/has_or_had_language - - ../slots/has_or_had_metadata - - ../slots/has_or_had_method - - ../slots/has_or_had_provenance - - ../slots/has_or_had_score - - ../slots/has_or_had_source - - ../slots/has_or_had_title + - ../slots/20260202_matang/has_assessment + - ../slots/20260202_matang/has_contact_details + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_language + - ../slots/20260202_matang/has_metadata + - ../slots/20260202_matang/has_method + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_source + - ../slots/20260202_matang/has_title - ../slots/indicates_or_indicated - - ../slots/is_or_was_assessed_on + - ../slots/20260202_matang/assessed_on - ../slots/languages_raw - ../slots/likelihood_confidence - ../slots/likelihood_factor @@ -55,14 +55,14 @@ classes: - foaf:PersonalProfileDocument - schema:Person slots: - - has_or_had_provenance - - has_or_had_assessment + - has_provenance + - has_assessment - profile_data - source_organization - - has_or_had_score - - has_or_had_contact_details + - has_score + - has_contact_details slot_usage: - has_or_had_provenance: + has_provenance: # range: string required: true inlined: false # Fixed invalid inline for primitive type @@ -70,7 +70,7 @@ classes: range: LinkedInProfileData required: true inlined: true - has_or_had_assessment: + has_assessment: range: HeritageRelevanceAssessment inlined: true source_organization: @@ -79,7 +79,7 @@ classes: examples: - value: the-dutch-inspectorate-of-education - value: rijksmuseum - has_or_had_contact_details: + has_contact_details: range: WhatsAppProfile inlined: true comments: @@ -99,7 +99,7 @@ classes: class_uri: schema:Person description: 'Core profile data extracted from a LinkedIn profile. Contains the person''s professional information including: - - Basic info (name, has_or_had_title, location, connections) + - Basic info (name, has_title, location, connections) - About/summary text - Career history (experience array) - Education history (education array) @@ -118,15 +118,15 @@ classes: slots: - connections_text - indicates_or_indicated - - has_or_had_title - - has_or_had_language + - has_title + - has_language - languages_raw - profile_image_url - profile_linkedin_url - profile_location - profile_name - skill - - has_or_had_score + - has_score slot_usage: profile_name: # range: string @@ -139,7 +139,7 @@ classes: pattern: ^https://www\.linkedin\.com/in/[a-z0-9-]+/?$ examples: - value: https://www.linkedin.com/in/sander-hulleman-5017b9105 - has_or_had_title: + has_title: # range: string examples: - value: Stafadviseur PO @@ -155,7 +155,7 @@ classes: examples: - value: "246 connections \u2022 248 followers" - value: 500+ connections - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type examples: @@ -168,7 +168,7 @@ classes: - value: - English - Native or bilingual - Dutch - Native or bilingual - has_or_had_language: + has_language: # range: string multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type @@ -195,7 +195,7 @@ classes: ' slots: - indicates_or_indicated - - has_or_had_score + - has_score slot_usage: indicates_or_indicated: range: DigitalProfessionalAssessment @@ -206,41 +206,41 @@ classes: ' slots: - estimates_or_estimated - - emphasizes_or_emphasized + - emphasize - likely_whatsapp_proficient - - has_or_had_score + - has_score slot_usage: likely_whatsapp_proficient: range: boolean - emphasizes_or_emphasized: + emphasize: range: DigitalProficiency inlined: true multivalued: true examples: - value: - has_or_had_label: Python - has_or_had_type: PROGRAMMING_LANGUAGE + has_label: Python + has_type: PROGRAMMING_LANGUAGE estimates_or_estimated: range: DigitalConfidence inlined: true required: false examples: - value: - has_or_had_score: 0.85 - has_or_had_type: PROFICIENCY_INFERENCE - has_or_had_description: High confidence inferred from technical skills + has_score: 0.85 + has_type: PROFICIENCY_INFERENCE + has_description: High confidence inferred from technical skills WhatsAppLikelihood: class_uri: hc:WhatsAppLikelihood description: 'Likelihood score for WhatsApp business usage. ' slots: - - is_or_was_assessed_on + - assessed_on - likelihood_confidence - likelihood_factor - likelihood_level - likelihood_score - max_likelihood_score - - has_or_had_score + - has_score slot_usage: likelihood_score: range: integer @@ -257,7 +257,7 @@ classes: likelihood_factor: # range: string multivalued: true - is_or_was_assessed_on: + assessed_on: range: TimeSpan inlined: true examples: @@ -268,22 +268,22 @@ classes: description: 'Metadata about the WhatsApp enrichment process. ' slots: - - has_or_had_provenance - - has_or_had_source + - has_provenance + - has_source - no_fabrication - - has_or_had_score + - has_score slot_usage: - has_or_had_source: + has_source: range: DataSource inlined: true examples: - value: - has_or_had_label: LinkedIn Profile - has_or_had_code: LINKEDIN - has_or_had_description: Public LinkedIn profile data + has_label: LinkedIn Profile + has_code: LINKEDIN + has_description: Public LinkedIn profile data no_fabrication: range: boolean - has_or_had_provenance: + has_provenance: # range: string inlined: false # Fixed invalid inline for primitive type examples: diff --git a/schemas/20251121/linkml/modules/classes/LiteraryArchive.yaml b/schemas/20251121/linkml/modules/classes/LiteraryArchive.yaml index 6b6c445eb0..98e25f05cb 100644 --- a/schemas/20251121/linkml/modules/classes/LiteraryArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/LiteraryArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: LiteraryArchive: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q28607652 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Literary Archive diff --git a/schemas/20251121/linkml/modules/classes/LiteraryArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/LiteraryArchiveRecordSetType.yaml index dd2873b96e..1d0a66c736 100644 --- a/schemas/20251121/linkml/modules/classes/LiteraryArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/LiteraryArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: LiteraryArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by LiteraryArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - LiteraryArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/LiteraryArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/LiteraryArchiveRecordSetTypes.yaml index 8779e849f0..a7824b7fe9 100644 --- a/schemas/20251121/linkml/modules/classes/LiteraryArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/LiteraryArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./LiteraryArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - LiteraryArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: AuthorPapersCollection @@ -78,15 +78,15 @@ classes: - LiteraryArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: LiteraryManuscriptCollection @@ -115,15 +115,15 @@ classes: - LiteraryArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PublisherRecordsSeries diff --git a/schemas/20251121/linkml/modules/classes/LlmVerification.yaml b/schemas/20251121/linkml/modules/classes/LlmVerification.yaml index 12f87a4cd8..977919690a 100644 --- a/schemas/20251121/linkml/modules/classes/LlmVerification.yaml +++ b/schemas/20251121/linkml/modules/classes/LlmVerification.yaml @@ -10,7 +10,7 @@ prefixes: dqv: http://www.w3.org/ns/dqv# imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type # default_range: string classes: LlmVerification: @@ -26,10 +26,10 @@ classes: related_mappings: - prov:SoftwareAgent slots: - - has_or_had_type + - has_type - model slot_usage: - has_or_had_type: + has_type: # range: string annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/LoadingDock.yaml b/schemas/20251121/linkml/modules/classes/LoadingDock.yaml index 12cc2928e2..d20fbd4e48 100644 --- a/schemas/20251121/linkml/modules/classes/LoadingDock.yaml +++ b/schemas/20251121/linkml/modules/classes/LoadingDock.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: LoadingDock: class_uri: schema:AmenityFeature description: Loading dock. slots: - - has_or_had_description + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Loan.yaml b/schemas/20251121/linkml/modules/classes/Loan.yaml index 09d09c1d50..07b363b98f 100644 --- a/schemas/20251121/linkml/modules/classes/Loan.yaml +++ b/schemas/20251121/linkml/modules/classes/Loan.yaml @@ -20,19 +20,19 @@ imports: - ../slots/courier_detail - ../slots/courier_required - ../slots/custody_received_by - - ../slots/has_or_had_contact_point - - ../slots/has_or_had_objective - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_contact_point + - ../slots/20260202_matang/has_objective + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/insurance_currency - ../slots/insurance_provider - ../slots/insurance_value - - ../slots/is_or_was_approved_on - - ../slots/is_or_was_based_on - - ../slots/is_or_was_displayed_at - - ../slots/is_or_was_extended - - ../slots/is_or_was_returned - - ../slots/is_or_was_signed_on + - ../slots/20260202_matang/approved_on + - ../slots/20260202_matang/based_on + - ../slots/20260202_matang/displayed_at + - ../slots/20260202_matang/extended + - ../slots/20260202_matang/returned + - ../slots/20260202_matang/signed_on - ../slots/lender - ../slots/lender_contact - ../slots/loan_agreement_url @@ -68,10 +68,10 @@ classes: - schema:TransferAction slots: - temporal_extent - - is_or_was_based_on - - is_or_was_approved_on + - based_on + - approved_on slot_usage: - is_or_was_approved_on: + approved_on: range: TimeSpan examples: - value: @@ -91,16 +91,16 @@ classes: range: date examples: - value: '2023-05-15' - is_or_was_extended: + extended: required: false range: Extension multivalued: true inlined: true examples: - value: - has_or_had_quantity: - has_or_had_unit: - has_or_had_label: event + has_quantity: + has_unit: + has_label: event temporal_extent: range: TimeSpan inlined: true @@ -166,7 +166,7 @@ classes: range: uri examples: - value: https://docs.mauritshuis.nl/conservation/reports/670-2023-06-return.pdf - is_or_was_returned: + returned: required: false range: ReturnEvent multivalued: true @@ -175,24 +175,24 @@ classes: examples: - value: - return_date: '2023-06-07' - has_or_had_condition: - - has_or_had_type: GoodCondition - has_or_had_description: + has_condition: + - has_type: GoodCondition + has_description: description_text: UNCHANGED - returned in same condition - has_or_had_objective: + has_objective: required: false # range: string # uriorcurie inlined: false examples: - value: https://nde.nl/ontology/hc/exhibition/rijksmuseum-vermeer-2023 - is_or_was_displayed_at: + displayed_at: required: false range: DisplayLocation inlined: true multivalued: true examples: - value: - has_or_had_label: Philips Wing, Gallery 0.1 + has_label: Philips Wing, Gallery 0.1 loan_note: required: false # range: string @@ -209,7 +209,7 @@ classes: - value: Maximum 50 lux illumination - value: No photography permitted - value: Must be displayed in glazed case - has_or_had_type: + has_type: equals_expression: '["hc:GalleryType", "hc:MuseumType", "hc:ArchiveOrganizationType", "hc:LibraryType", "hc:ResearchOrganizationType", "hc:HolySacredSiteType", "hc:BioCustodianType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/LocalCollection.yaml b/schemas/20251121/linkml/modules/classes/LocalCollection.yaml index 8e24eae27e..62d3587496 100644 --- a/schemas/20251121/linkml/modules/classes/LocalCollection.yaml +++ b/schemas/20251121/linkml/modules/classes/LocalCollection.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: LocalCollection: class_uri: schema:Collection description: Local collection. slots: - - has_or_had_name + - has_name annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/LocalGovernmentArchive.yaml b/schemas/20251121/linkml/modules/classes/LocalGovernmentArchive.yaml index 31450b0910..afab62c2ff 100644 --- a/schemas/20251121/linkml/modules/classes/LocalGovernmentArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/LocalGovernmentArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: LocalGovernmentArchive: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q118281267 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Local Government Archive diff --git a/schemas/20251121/linkml/modules/classes/LocalGovernmentArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/LocalGovernmentArchiveRecordSetType.yaml index 69bf38ee50..b231bb6703 100644 --- a/schemas/20251121/linkml/modules/classes/LocalGovernmentArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/LocalGovernmentArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: LocalGovernmentArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by LocalGovernmentArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - LocalGovernmentArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/LocalGovernmentArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/LocalGovernmentArchiveRecordSetTypes.yaml index cf5c2edfd5..9f53778aa5 100644 --- a/schemas/20251121/linkml/modules/classes/LocalGovernmentArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/LocalGovernmentArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./LocalGovernmentArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - LocalGovernmentArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: LocalAdministrationFonds @@ -78,15 +78,15 @@ classes: - LocalGovernmentArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PublicWorksSeries @@ -115,15 +115,15 @@ classes: - LocalGovernmentArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: LocalTaxRecordsSeries diff --git a/schemas/20251121/linkml/modules/classes/LocalHeritageInstitutionSweden.yaml b/schemas/20251121/linkml/modules/classes/LocalHeritageInstitutionSweden.yaml index 6cc29cfb5f..b8388f476b 100644 --- a/schemas/20251121/linkml/modules/classes/LocalHeritageInstitutionSweden.yaml +++ b/schemas/20251121/linkml/modules/classes/LocalHeritageInstitutionSweden.yaml @@ -8,9 +8,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: LocalHeritageInstitutionSweden: description: "A Swedish type of local history and cultural heritage museum (Hembygdsg\xE5rd). These institutions are typically run by local heritage associations (hembygdsf\xF6reningar) and preserve buildings, objects, and documentation related to local rural life and traditions. They often maintain open-air collections of historic buildings alongside archival and museum collections." @@ -24,12 +24,12 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" slots: - - has_or_had_type - - has_or_had_score - - has_or_had_identifier + - has_type + - has_score + - identified_by slot_usage: - has_or_had_identifier: - has_or_had_type: + identified_by: + has_type: equals_expression: '["hc:MixedCustodianType"]' see_also: - LocalHistoryArchive diff --git a/schemas/20251121/linkml/modules/classes/LocalHistoryArchive.yaml b/schemas/20251121/linkml/modules/classes/LocalHistoryArchive.yaml index 8482d2f541..b7ec2c3358 100644 --- a/schemas/20251121/linkml/modules/classes/LocalHistoryArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/LocalHistoryArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: LocalHistoryArchive: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q12324798 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Local History Archive diff --git a/schemas/20251121/linkml/modules/classes/LocalHistoryArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/LocalHistoryArchiveRecordSetType.yaml index 84abe984a9..e1f1ff5374 100644 --- a/schemas/20251121/linkml/modules/classes/LocalHistoryArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/LocalHistoryArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: LocalHistoryArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by LocalHistoryArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - LocalHistoryArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/LocalHistoryArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/LocalHistoryArchiveRecordSetTypes.yaml index 7a7e7b98fe..cf7564bcca 100644 --- a/schemas/20251121/linkml/modules/classes/LocalHistoryArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/LocalHistoryArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./LocalHistoryArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - LocalHistoryArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: LocalHistoryFonds @@ -78,15 +78,15 @@ classes: - LocalHistoryArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CommunityPhotographCollection @@ -115,15 +115,15 @@ classes: - LocalHistoryArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: LocalNewspaperCollection diff --git a/schemas/20251121/linkml/modules/classes/Locality.yaml b/schemas/20251121/linkml/modules/classes/Locality.yaml index 72f6a34bcb..959d58a3c3 100644 --- a/schemas/20251121/linkml/modules/classes/Locality.yaml +++ b/schemas/20251121/linkml/modules/classes/Locality.yaml @@ -12,9 +12,9 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_label - - ../slots/has_or_had_note - - ../slots/has_or_had_provenance + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_provenance - ../slots/language default_prefix: hc classes: @@ -29,7 +29,7 @@ classes: \ Locality descriptions may vary over time: - Original label text (historical)\ \ - Interpreted/standardized descriptions (current) - Multiple descriptions\ \ from different sources\n**Example**: ```yaml Locality:\n verbatim_text: \"\ - Mauritius, near Port Louis, in forest\"\n original_language: \"en\"\n has_or_had_provenance:\n\ + Mauritius, near Port Louis, in forest\"\n original_language: \"en\"\n has_provenance:\n\ \ data_source: \"specimen_label\"\n extraction_date: \"2025-01-19\"\n\ ```\n**REPLACES**: - Simple `collection_locality_text` string slot - Adds structured\ \ provenance and language tracking" @@ -43,18 +43,18 @@ classes: mixins: - HasProvenance slots: - - has_or_had_label - - has_or_had_note - - has_or_had_provenance + - has_label + - has_note + - has_provenance - language slot_usage: - has_or_had_label: + has_label: # range: string examples: - value: Port Louis, Mauritius - has_or_had_note: + has_note: # range: string - has_or_had_provenance: + has_provenance: range: ProvenanceBlock inlined: true comments: @@ -76,11 +76,11 @@ classes: "general_heritage": 0.5}' examples: - value: - has_or_had_label: Port Louis, Mauritius - has_or_had_provenance: null + has_label: Port Louis, Mauritius + has_provenance: null - value: verbatim_text: 'Indonesia: Java: Mt. Gede, 1500m' - has_or_had_label: Gunung Gede, West Java, Indonesia + has_label: Gunung Gede, West Java, Indonesia - value: interpretation_notes: 'Latin: ''Near Cape Town, on rocks by the sea''' - has_or_had_label: Cape Town coastline, South Africa + has_label: Cape Town coastline, South Africa diff --git a/schemas/20251121/linkml/modules/classes/Location.yaml b/schemas/20251121/linkml/modules/classes/Location.yaml index 85510244c3..23b85b0c0d 100644 --- a/schemas/20251121/linkml/modules/classes/Location.yaml +++ b/schemas/20251121/linkml/modules/classes/Location.yaml @@ -14,7 +14,7 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_score # was: template_specificity + - ../slots/20260202_matang/has_score # was: template_specificity - ../slots/latitude - ../slots/location_name - ../slots/longitude @@ -48,7 +48,7 @@ classes: - location_name - latitude - longitude - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: location_name: diff --git a/schemas/20251121/linkml/modules/classes/LocationLibrary.yaml b/schemas/20251121/linkml/modules/classes/LocationLibrary.yaml index 631ef44c73..db28006477 100644 --- a/schemas/20251121/linkml/modules/classes/LocationLibrary.yaml +++ b/schemas/20251121/linkml/modules/classes/LocationLibrary.yaml @@ -8,9 +8,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: LocationLibrary: description: A collection of visual and reference information about locations or places that might be used for filming or photography. Location libraries serve the film, television, and photography industries by providing searchable databases of potential shooting locations. They typically include photographs, descriptions, access information, and logistical details about venues and landscapes. @@ -24,12 +24,12 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" slots: - - has_or_had_type - - has_or_had_score - - has_or_had_identifier + - has_type + - has_score + - identified_by slot_usage: - has_or_had_identifier: - has_or_had_type: + identified_by: + has_type: equals_expression: '["hc:LibraryType"]' see_also: - FilmArchive diff --git a/schemas/20251121/linkml/modules/classes/LocationResolution.yaml b/schemas/20251121/linkml/modules/classes/LocationResolution.yaml index 1e4c00c712..03f25beb38 100644 --- a/schemas/20251121/linkml/modules/classes/LocationResolution.yaml +++ b/schemas/20251121/linkml/modules/classes/LocationResolution.yaml @@ -11,8 +11,8 @@ prefixes: imports: - linkml:types - ../enums/LocationResolutionMethodEnum - - ../slots/has_or_had_citation - - ../slots/has_or_had_city_code + - ../slots/20260202_matang/has_citation + - ../slots/20260202_matang/has_city_code # default_range: string classes: LocationResolution: @@ -40,7 +40,7 @@ classes: - method - region_code - country_code - - has_or_had_city_code + - has_city_code - source_url - latitude - longitude diff --git a/schemas/20251121/linkml/modules/classes/Locker.yaml b/schemas/20251121/linkml/modules/classes/Locker.yaml index 4231ff9adb..3124b04168 100644 --- a/schemas/20251121/linkml/modules/classes/Locker.yaml +++ b/schemas/20251121/linkml/modules/classes/Locker.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: Locker: class_uri: schema:AmenityFeature description: Locker facility. slots: - - has_or_had_description + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/LogoClaim.yaml b/schemas/20251121/linkml/modules/classes/LogoClaim.yaml index b79f673fbd..2d40557023 100644 --- a/schemas/20251121/linkml/modules/classes/LogoClaim.yaml +++ b/schemas/20251121/linkml/modules/classes/LogoClaim.yaml @@ -10,7 +10,7 @@ prefixes: imports: - linkml:types - ../slots/css_selector - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type - ../slots/retrieved_on - ../slots/source_url # default_range: string @@ -27,12 +27,12 @@ classes: related_mappings: - prov:Derivation slots: - - has_or_had_type + - has_type - source_url - css_selector - retrieved_on slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie inlined: false # Fixed invalid inline for primitive type required: false diff --git a/schemas/20251121/linkml/modules/classes/METSAPI.yaml b/schemas/20251121/linkml/modules/classes/METSAPI.yaml index 76b2a7389f..34a5595de7 100644 --- a/schemas/20251121/linkml/modules/classes/METSAPI.yaml +++ b/schemas/20251121/linkml/modules/classes/METSAPI.yaml @@ -13,7 +13,7 @@ imports: - linkml:types - ../enums/METSIdentifierTypeEnum - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/response_format classes: METSAPI: @@ -51,7 +51,7 @@ classes: - https://www.loc.gov/standards/mets/ - https://www.loc.gov/standards/mets/mets-schemadocs.html slots: - - has_or_had_score + - has_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/MailingListArchive.yaml b/schemas/20251121/linkml/modules/classes/MailingListArchive.yaml index f6bd065e1a..4b3b33b991 100644 --- a/schemas/20251121/linkml/modules/classes/MailingListArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/MailingListArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - ../slots/platform_type_id classes: @@ -21,10 +21,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q104018626 close_mappings: @@ -35,10 +35,10 @@ classes: mixins: - DigitalPlatformType slot_usage: - has_or_had_identifier: null + identified_by: null platform_type_id: identifier: false - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Mailing List Archive diff --git a/schemas/20251121/linkml/modules/classes/MailingListArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/MailingListArchiveRecordSetType.yaml index 833baf3c5d..06fb0c76e0 100644 --- a/schemas/20251121/linkml/modules/classes/MailingListArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/MailingListArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: MailingListArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by MailingListArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - MailingListArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/MailingListArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/MailingListArchiveRecordSetTypes.yaml index f36cc85af0..5b0881dff6 100644 --- a/schemas/20251121/linkml/modules/classes/MailingListArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/MailingListArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./MailingListArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - MailingListArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: EmailArchiveCollection @@ -78,15 +78,15 @@ classes: - MailingListArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: DiscussionForumFonds diff --git a/schemas/20251121/linkml/modules/classes/MainPart.yaml b/schemas/20251121/linkml/modules/classes/MainPart.yaml index 712a45b791..ebb0fe2de6 100644 --- a/schemas/20251121/linkml/modules/classes/MainPart.yaml +++ b/schemas/20251121/linkml/modules/classes/MainPart.yaml @@ -9,7 +9,7 @@ prefixes: imports: - linkml:types - ../slots/currency_code - - ../slots/has_or_had_quantity + - ../slots/20260202_matang/has_quantity - ../slots/part_type default_prefix: hc classes: @@ -37,11 +37,11 @@ classes: exact_mappings: - schema:QuantitativeValue slots: - - has_or_had_quantity + - has_quantity - part_type - currency_code slot_usage: - has_or_had_quantity: + has_quantity: range: integer required: true inlined: false # Fixed invalid inline for primitive type @@ -49,11 +49,11 @@ classes: Quantity.quantity_value = amount, currency in metadata.' examples: - value: - has_or_had_quantity: null + has_quantity: null part_type: capital_budget currency_code: EUR - value: - has_or_had_quantity: null + has_quantity: null part_type: capital_budget currency_code: USD annotations: diff --git a/schemas/20251121/linkml/modules/classes/Manager.yaml b/schemas/20251121/linkml/modules/classes/Manager.yaml index 6e662aad6d..7b8bba0311 100644 --- a/schemas/20251121/linkml/modules/classes/Manager.yaml +++ b/schemas/20251121/linkml/modules/classes/Manager.yaml @@ -22,9 +22,9 @@ description: 'Represents a person or role responsible for managing an organizati ' imports: - linkml:types - - ../slots/has_or_had_email - - ../slots/has_or_had_name - - ../slots/has_or_had_title + - ../slots/20260202_matang/has_email_address + - ../slots/20260202_matang/has_name + - ../slots/20260202_matang/has_title prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -44,22 +44,22 @@ classes: close_mappings: - schema:Person slots: - - has_or_had_name - - has_or_had_title - - has_or_had_email + - has_name + - has_title + - has_email_address slot_usage: - has_or_had_name: + has_name: # range: string required: true examples: - value: Dr. Jan de Vries - has_or_had_title: + has_title: # range: string required: false examples: - value: Head of Collections - value: Director of Archives - has_or_had_email: + has_email_address: # range: string required: false annotations: diff --git a/schemas/20251121/linkml/modules/classes/Mandate.yaml b/schemas/20251121/linkml/modules/classes/Mandate.yaml index 0606d5a1b7..76464f2d2b 100644 --- a/schemas/20251121/linkml/modules/classes/Mandate.yaml +++ b/schemas/20251121/linkml/modules/classes/Mandate.yaml @@ -10,17 +10,17 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type classes: Mandate: class_uri: skos:Concept description: A formal mandate or responsibility. slots: - - has_or_had_label - - has_or_had_description - - has_or_had_type + - has_label + - has_description + - has_type annotations: specificity_score: 0.1 specificity_rationale: "Generic utility class created during migration" diff --git a/schemas/20251121/linkml/modules/classes/Manufacturer.yaml b/schemas/20251121/linkml/modules/classes/Manufacturer.yaml index b504a89025..e97fd30e98 100644 --- a/schemas/20251121/linkml/modules/classes/Manufacturer.yaml +++ b/schemas/20251121/linkml/modules/classes/Manufacturer.yaml @@ -13,9 +13,9 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_url + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_url classes: Manufacturer: class_uri: schema:Organization @@ -25,9 +25,9 @@ classes: **MIGRATION SOURCE**: Created from device_manufacturer slot migration (Rule 53, 2026-01-25). **Pattern**: Simple string manufacturer name replaced with structured class: - - has_or_had_label: Manufacturer name (String or Label) - - has_or_had_url: Manufacturer website (URL) - - has_or_had_identifier: Unique identifier + - has_label: Manufacturer name (String or Label) + - has_url: Manufacturer website (URL) + - identified_by: Unique identifier **Ontological Alignment**: - **Primary**: `schema:Organization` - Schema.org organization @@ -42,9 +42,9 @@ classes: **Relationship to InternetOfThings**: ``` InternetOfThings - └── is_or_was_created_by → Manufacturer - ├── has_or_had_label → "Estimote" - └── has_or_had_url → URL + └── created_by → Manufacturer + ├── has_label → "Estimote" + └── has_url → URL ``` exact_mappings: @@ -55,24 +55,24 @@ classes: - prov:Agent slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_url + - identified_by + - has_label + - has_url slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: false examples: - value: https://nde.nl/ontology/hc/manufacturer/estimote - has_or_had_label: + has_label: # range: string required: true examples: - value: Estimote - value: Sensirion - value: Samsung - has_or_had_url: + has_url: range: uri inlined: false # Fixed invalid inline for primitive type required: false @@ -93,12 +93,12 @@ classes: examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/manufacturer/estimote - has_or_had_label: Estimote - has_or_had_url: + identified_by: https://nde.nl/ontology/hc/manufacturer/estimote + has_label: Estimote + has_url: url_value: https://estimote.com/ - value: - has_or_had_identifier: https://nde.nl/ontology/hc/manufacturer/sensirion - has_or_had_label: Sensirion - has_or_had_url: + identified_by: https://nde.nl/ontology/hc/manufacturer/sensirion + has_label: Sensirion + has_url: url_value: https://sensirion.com/ \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/MappingType.yaml b/schemas/20251121/linkml/modules/classes/MappingType.yaml index 1eb535d1d3..5627d02d7d 100644 --- a/schemas/20251121/linkml/modules/classes/MappingType.yaml +++ b/schemas/20251121/linkml/modules/classes/MappingType.yaml @@ -10,13 +10,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score classes: MappingType: class_uri: skos:Concept @@ -32,15 +32,15 @@ classes: related_mappings: - skos:mappingRelation slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code - - has_or_had_hypernym - - has_or_had_hyponym - - has_or_had_score + - identified_by + - has_label + - has_description + - has_code + - has_hypernym + - has_hyponym + - has_score slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true @@ -48,7 +48,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/mapping-type/exact - value: https://nde.nl/ontology/hc/mapping-type/broad - has_or_had_code: + has_code: # range: string required: true pattern: ^[a-z][a-z0-9_]*$ @@ -59,7 +59,7 @@ classes: - value: narrow - value: related - value: ontonym - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -70,22 +70,22 @@ classes: - value: - Broad Match@en - Bredere match@nl - has_or_had_description: + has_description: # range: string required: false examples: - value: Exact semantic match - concepts are interchangeable - has_or_had_hypernym: + has_hypernym: range: MappingType required: false - has_or_had_hyponym: + has_hyponym: range: MappingType multivalued: true required: false annotations: specificity_score: '0.50' specificity_rationale: Moderately specific - ontology alignment across all domains. - has_or_had_score: null + has_score: null replaces_enum: WikidataMappingTypeEnum migration_date: '2026-01-13' custodian_types: "['*']" @@ -101,9 +101,9 @@ classes: - https://www.wikidata.org/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/mapping-type/exact - has_or_had_code: exact - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/mapping-type/exact + has_code: exact + has_label: - Exact Match@en - Exacte match@nl - has_or_had_description: Exact semantic match - concepts are fully interchangeable \ No newline at end of file + has_description: Exact semantic match - concepts are fully interchangeable \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/MappingTypes.yaml b/schemas/20251121/linkml/modules/classes/MappingTypes.yaml index 2738219a0e..3470ee8dcf 100644 --- a/schemas/20251121/linkml/modules/classes/MappingTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/MappingTypes.yaml @@ -10,10 +10,10 @@ default_prefix: hc imports: - ./MappingType - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: ExactMapping: is_a: MappingType @@ -57,16 +57,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/mapping-type/exact) - has_or_had_code: + has_code: ifabsent: string(exact) - has_or_had_label: + has_label: ifabsent: string(Exact Match) exact_mappings: - skos:exactMatch @@ -89,16 +89,16 @@ classes: \ scope differences\n\n**EXAMPLE**:\n- \"Kunsthal\" (NL) closeMatch \"Art Gallery\"\ \ (EN) - cultural nuance\n" slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/mapping-type/close) - has_or_had_code: + has_code: ifabsent: string(close) - has_or_had_label: + has_label: ifabsent: string(Close Match) exact_mappings: - skos:closeMatch @@ -120,16 +120,16 @@ classes: \ \"Municipal Archive\" broadMatch Wikidata \"Archive\"\n- LocalClass \"Natural\ \ History Museum\" broadMatch Wikidata \"Museum\"\n" slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/mapping-type/broad) - has_or_had_code: + has_code: ifabsent: string(broad) - has_or_had_label: + has_label: ifabsent: string(Broad Match) exact_mappings: - skos:broadMatch @@ -151,16 +151,16 @@ classes: \ \"Heritage Institution\" narrowMatch Wikidata \"Art Museum\"\n- LocalClass\ \ \"Archive\" narrowMatch Wikidata \"Film Archive\"\n" slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/mapping-type/narrow) - has_or_had_code: + has_code: ifabsent: string(narrow) - has_or_had_label: + has_label: ifabsent: string(Narrow Match) exact_mappings: - skos:narrowMatch @@ -215,16 +215,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/mapping-type/related) - has_or_had_code: + has_code: ifabsent: string(related) - has_or_had_label: + has_label: ifabsent: string(Related Match) exact_mappings: - skos:relatedMatch @@ -252,16 +252,16 @@ classes: \ no direct record type exists\n- Document the semantic gap\n- Consider proposing\ \ new Wikidata items\n" slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/mapping-type/ontonym) - has_or_had_code: + has_code: ifabsent: string(ontonym) - has_or_had_label: + has_label: ifabsent: string(Ontonym) annotations: specificity_score: '0.60' diff --git a/schemas/20251121/linkml/modules/classes/Material.yaml b/schemas/20251121/linkml/modules/classes/Material.yaml index a8052d26a3..d460d9bdde 100644 --- a/schemas/20251121/linkml/modules/classes/Material.yaml +++ b/schemas/20251121/linkml/modules/classes/Material.yaml @@ -16,12 +16,12 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_type - - ../slots/is_or_was_equivalent_to + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/equivalent_to classes: Material: class_uri: crm:E57_Material @@ -81,15 +81,15 @@ classes: - skos:Concept slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_type - - is_or_was_equivalent_to - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - identified_by + - has_label + - has_description + - has_type + - equivalent_to + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie identifier: true required: true @@ -97,7 +97,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/material/paper - value: https://nde.nl/ontology/hc/material/nitrate-film - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -106,16 +106,16 @@ classes: - value: ["nitrate film@en", "nitraatfilm@nl"] - value: ["parchment@en", "perkament@nl"] - has_or_had_description: + has_description: # range: string examples: - value: "Cellulose-based material made from wood pulp or cotton fibers, used for documents, books, and prints." - has_or_had_type: + has_type: # range: string # uriorcurie examples: - value: https://nde.nl/ontology/hc/material-type/organic - is_or_was_equivalent_to: + equivalent_to: range: WikiDataIdentifier multivalued: true inlined: true @@ -130,7 +130,7 @@ classes: custodian_types_rationale: "Materials apply to all custodian types with collections" specificity_score: "0.50" specificity_rationale: "Moderately specific - materials relevant for preservation across heritage domains." - has_or_had_score: # was: template_specificity - migrated per Rule 53 (2026-01-17) + has_score: # was: template_specificity - migrated per Rule 53 (2026-01-17) # NOTE: slot_usage may need manual review for range/description updates '{"collection_discovery": 0.65, "organizational_change": 0.25, "general_heritage": 0.45}' migration_source: "target_material slot" @@ -151,30 +151,30 @@ classes: examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/material/paper - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/material/paper + has_label: - paper@en - papier@nl - has_or_had_description: "Cellulose-based material made from wood pulp or cotton fibers." - has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - is_or_was_equivalent_to: + has_description: "Cellulose-based material made from wood pulp or cotton fibers." + has_type: https://nde.nl/ontology/hc/material-type/organic + equivalent_to: - qid: "Q11472" - value: - has_or_had_identifier: https://nde.nl/ontology/hc/material/nitrate-film - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/material/nitrate-film + has_label: - nitrate film@en - nitraatfilm@nl - cellulose nitrate film@en - has_or_had_description: "Early photographic and motion picture film base, highly flammable and chemically unstable." - has_or_had_type: https://nde.nl/ontology/hc/material-type/synthetic - is_or_was_equivalent_to: + has_description: "Early photographic and motion picture film base, highly flammable and chemically unstable." + has_type: https://nde.nl/ontology/hc/material-type/synthetic + equivalent_to: - qid: "Q1201597" - value: - has_or_had_identifier: https://nde.nl/ontology/hc/material/parchment - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/material/parchment + has_label: - parchment@en - perkament@nl - has_or_had_description: "Animal skin prepared for writing, historically used for manuscripts and legal documents." - has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - is_or_was_equivalent_to: + has_description: "Animal skin prepared for writing, historically used for manuscripts and legal documents." + has_type: https://nde.nl/ontology/hc/material-type/organic + equivalent_to: - qid: "Q226697" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/MaterialType.yaml b/schemas/20251121/linkml/modules/classes/MaterialType.yaml index 7863efb2f1..7d451c4152 100644 --- a/schemas/20251121/linkml/modules/classes/MaterialType.yaml +++ b/schemas/20251121/linkml/modules/classes/MaterialType.yaml @@ -15,12 +15,12 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score # was: template_specificity + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score # was: template_specificity classes: MaterialType: class_uri: skos:Concept @@ -79,9 +79,9 @@ classes: ``` Material (individual material instance) │ - └── has_or_had_type → MaterialType (THIS CLASS) - ├── has_or_had_hypernym → MaterialType (parent) - └── has_or_had_hyponym → MaterialType[] (children) + └── has_type → MaterialType (THIS CLASS) + ├── has_hypernym → MaterialType (parent) + └── has_hyponym → MaterialType[] (children) ``` **SUBCLASSES**: @@ -105,15 +105,15 @@ classes: - crm:E57_Material slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_hypernym - - has_or_had_hyponym - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - identified_by + - has_label + - has_description + - has_hypernym + - has_hyponym + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie identifier: true required: true @@ -121,7 +121,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/material-type/organic - value: https://nde.nl/ontology/hc/material-type/synthetic - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -129,16 +129,16 @@ classes: - value: ["Organic Material@en", "Organisch materiaal@nl"] - value: ["Synthetic Material@en", "Synthetisch materiaal@nl"] - has_or_had_description: + has_description: # range: string examples: - value: "Plant and animal-derived materials including paper, parchment, leather, textiles, and wood." - has_or_had_hypernym: + has_hypernym: range: MaterialType examples: - value: https://nde.nl/ontology/hc/material-type/organic - has_or_had_hyponym: + has_hyponym: range: MaterialType multivalued: true inlined_as_list: true @@ -151,7 +151,7 @@ classes: custodian_types_rationale: "Material types apply to all custodian types with collections" specificity_score: "0.55" specificity_rationale: "Moderately specific - material types relevant for preservation across heritage domains." - has_or_had_score: # was: template_specificity - migrated per Rule 53 (2026-01-17) + has_score: # was: template_specificity - migrated per Rule 53 (2026-01-17) # NOTE: slot_usage may need manual review for range/description updates '{"collection_discovery": 0.70, "organizational_change": 0.25, "general_heritage": 0.45}' migration_source: "target_material slot" @@ -161,7 +161,7 @@ classes: comments: - "Abstract base class - use specific subclasses (OrganicMaterial, SyntheticMaterial, etc.)" - "Represents MATERIAL TYPE CATEGORIES, not individual materials" - - "Material.has_or_had_type references these type classes" + - "Material.has_type references these type classes" - "Enables hierarchical material classification with preservation semantics" - "Aligned with Getty AAT Materials Hierarchy (aat:300010358)" @@ -172,24 +172,24 @@ classes: examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/material-type/organic - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/material-type/organic + has_label: - Organic Material@en - Organisch materiaal@nl - has_or_had_description: "Plant and animal-derived materials including paper, parchment, leather, textiles, and wood." - has_or_had_hyponym: + has_description: "Plant and animal-derived materials including paper, parchment, leather, textiles, and wood." + has_hyponym: - https://nde.nl/ontology/hc/material-type/paper - https://nde.nl/ontology/hc/material-type/parchment - https://nde.nl/ontology/hc/material-type/leather - https://nde.nl/ontology/hc/material-type/textile - https://nde.nl/ontology/hc/material-type/wood - value: - has_or_had_identifier: https://nde.nl/ontology/hc/material-type/synthetic - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/material-type/synthetic + has_label: - Synthetic Material@en - Synthetisch materiaal@nl - has_or_had_description: "Man-made polymers and compounds including plastics, film bases, and synthetic textiles." - has_or_had_hyponym: + has_description: "Man-made polymers and compounds including plastics, film bases, and synthetic textiles." + has_hyponym: - https://nde.nl/ontology/hc/material-type/cellulose-nitrate - https://nde.nl/ontology/hc/material-type/cellulose-acetate - https://nde.nl/ontology/hc/material-type/polyester \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/MaterialTypes.yaml b/schemas/20251121/linkml/modules/classes/MaterialTypes.yaml index 230c6b4b4c..7fe31d8217 100644 --- a/schemas/20251121/linkml/modules/classes/MaterialTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/MaterialTypes.yaml @@ -230,7 +230,7 @@ classes: annotations: typical_temperature: "-5\xB0C to 4\xB0C (cold storage mandatory)" typical_humidity: 30-35% RH - preservation_risks: fire has_or_had_risk, toxic off-gassing, self-ignition, deterioration + preservation_risks: fire has_risk, toxic off-gassing, self-ignition, deterioration AcetateFilmMaterial: is_a: SyntheticMaterial class_uri: hc:AcetateFilmMaterial diff --git a/schemas/20251121/linkml/modules/classes/MaximumHumidity.yaml b/schemas/20251121/linkml/modules/classes/MaximumHumidity.yaml index 4081336337..515b5774a1 100644 --- a/schemas/20251121/linkml/modules/classes/MaximumHumidity.yaml +++ b/schemas/20251121/linkml/modules/classes/MaximumHumidity.yaml @@ -10,20 +10,20 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_unit - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_unit + - ../slots/20260202_matang/has_value classes: MaximumHumidity: class_uri: schema:QuantitativeValue description: "Maximum humidity constraint." slots: - - has_or_had_value - - has_or_had_unit + - has_value + - has_unit slot_usage: - has_or_had_value: + has_value: range: float required: true - has_or_had_unit: + has_unit: # range: string ifabsent: string(%) annotations: diff --git a/schemas/20251121/linkml/modules/classes/MeanValue.yaml b/schemas/20251121/linkml/modules/classes/MeanValue.yaml index 7ebcf7c2ed..2000bce3df 100644 --- a/schemas/20251121/linkml/modules/classes/MeanValue.yaml +++ b/schemas/20251121/linkml/modules/classes/MeanValue.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: MeanValue: class_uri: schema:StructuredValue description: Mean value wrapper. slots: - - has_or_had_value + - has_value annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/MeasureUnit.yaml b/schemas/20251121/linkml/modules/classes/MeasureUnit.yaml index 3758315eca..aa08b3b9f4 100644 --- a/schemas/20251121/linkml/modules/classes/MeasureUnit.yaml +++ b/schemas/20251121/linkml/modules/classes/MeasureUnit.yaml @@ -22,14 +22,14 @@ prefixes: imports: - linkml:types - ../enums/MeasureUnitEnum - - ../slots/has_or_had_code - - ../slots/has_or_had_label - - ../slots/has_or_had_symbol - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_symbol + - ../slots/20260202_matang/has_type default_prefix: hc classes: MeasureUnit: - description: "A unit of measurement for expressing quantities.\nCaptures the unit type (from MeasureUnitEnum), symbol, and optional conversion factors. Used as the range for has_or_had_unit slot.\n**EXAMPLES**: - Hectare (ha) for outdoor site area - Square meter (m\xB2) for building floor area - Linear meter (m) for archival shelf extent" + description: "A unit of measurement for expressing quantities.\nCaptures the unit type (from MeasureUnitEnum), symbol, and optional conversion factors. Used as the range for has_unit slot.\n**EXAMPLES**: - Hectare (ha) for outdoor site area - Square meter (m\xB2) for building floor area - Linear meter (m) for archival shelf extent" class_uri: qudt:Unit exact_mappings: - qudt:Unit @@ -37,48 +37,48 @@ classes: close_mappings: - schema:unitCode slots: - - has_or_had_type - - has_or_had_symbol - - has_or_had_code - - has_or_had_label + - has_type + - has_symbol + - has_code + - has_label slot_usage: - has_or_had_type: + has_type: range: MeasureUnitEnum required: true - has_or_had_symbol: + has_symbol: # range: string required: false examples: - value: ha - value: "m\xB2" - value: m - has_or_had_code: + has_code: # range: string required: false examples: - value: har - value: m2 - has_or_had_label: + has_label: # range: string examples: - value: hectare - value: square meter examples: - value: - has_or_had_type: HECTARE - has_or_had_symbol: ha - has_or_had_code: har - has_or_had_label: hectare + has_type: HECTARE + has_symbol: ha + has_code: har + has_label: hectare - value: - has_or_had_type: SQUARE_METER - has_or_had_symbol: "m\xB2" - has_or_had_code: m2 - has_or_had_label: square meter + has_type: SQUARE_METER + has_symbol: "m\xB2" + has_code: m2 + has_label: square meter - value: - has_or_had_type: LINEAR_METER - has_or_had_symbol: m - has_or_had_code: m - has_or_had_label: linear meter + has_type: LINEAR_METER + has_symbol: m + has_code: m + has_label: linear meter annotations: custodian_types: '["*"]' custodian_types_rationale: Measurement units applicable to all heritage custodian types. diff --git a/schemas/20251121/linkml/modules/classes/Measurement.yaml b/schemas/20251121/linkml/modules/classes/Measurement.yaml index 08def64568..080b2a5247 100644 --- a/schemas/20251121/linkml/modules/classes/Measurement.yaml +++ b/schemas/20251121/linkml/modules/classes/Measurement.yaml @@ -20,9 +20,9 @@ prefixes: sosa: http://www.w3.org/ns/sosa/ imports: - linkml:types - - ../slots/has_or_had_measurement_type - - ../slots/has_or_had_measurement_unit - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_measurement_type + - ../slots/20260202_matang/has_measurement_unit + - ../slots/20260202_matang/has_value default_prefix: hc classes: Measurement: @@ -40,16 +40,16 @@ classes: ' slots: - - has_or_had_value - - has_or_had_measurement_type - - has_or_had_measurement_unit + - has_value + - has_measurement_type + - has_measurement_unit slot_usage: - has_or_had_value: + has_value: required: true - has_or_had_measurement_type: + has_measurement_type: range: MeasurementType inlined: true - has_or_had_measurement_unit: + has_measurement_unit: range: MeasureUnit inlined: true exact_mappings: @@ -59,26 +59,26 @@ classes: - crm:E16_Measurement examples: - value: - has_or_had_value: '19.5' - has_or_had_measurement_type: - has_or_had_name: Temperature - has_or_had_measurement_unit: - has_or_had_name: Degree Celsius - has_or_had_symbol: "\xB0C" + has_value: '19.5' + has_measurement_type: + has_name: Temperature + has_measurement_unit: + has_name: Degree Celsius + has_symbol: "\xB0C" - value: - has_or_had_value: '48' - has_or_had_measurement_type: - has_or_had_name: Relative Humidity - has_or_had_measurement_unit: - has_or_had_name: Percent - has_or_had_symbol: '%' + has_value: '48' + has_measurement_type: + has_name: Relative Humidity + has_measurement_unit: + has_name: Percent + has_symbol: '%' - value: - has_or_had_value: '250' - has_or_had_measurement_type: - has_or_had_name: Light Level - has_or_had_measurement_unit: - has_or_had_name: Lux - has_or_had_symbol: lx + has_value: '250' + has_measurement_type: + has_name: Light Level + has_measurement_unit: + has_name: Lux + has_symbol: lx annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/MeasurementType.yaml b/schemas/20251121/linkml/modules/classes/MeasurementType.yaml index eb4af29562..14ecb84716 100644 --- a/schemas/20251121/linkml/modules/classes/MeasurementType.yaml +++ b/schemas/20251121/linkml/modules/classes/MeasurementType.yaml @@ -24,9 +24,9 @@ prefixes: crm: http://www.cidoc-crm.org/cidoc-crm/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_measurement_unit - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_measurement_unit + - ../slots/20260202_matang/has_name default_prefix: hc classes: MeasurementType: @@ -34,14 +34,14 @@ classes: abstract: true description: "Abstract base class for types of measurements in heritage conservation contexts.\n\nCommon measurement type categories:\n- Temperature measurements (\xB0C, \xB0F)\n- Humidity measurements (% RH)\n- Light level measurements (lux)\n- UV radiation measurements\n- Air quality measurements\n- Vibration measurements\n- Pest monitoring counts\n" slots: - - has_or_had_name - - has_or_had_description - - has_or_had_measurement_unit + - has_name + - has_description + - has_measurement_unit slot_usage: - has_or_had_name: + has_name: required: true - has_or_had_description: - has_or_had_measurement_unit: + has_description: + has_measurement_unit: range: MeasureUnit exact_mappings: - skos:Concept diff --git a/schemas/20251121/linkml/modules/classes/MeasurementTypes.yaml b/schemas/20251121/linkml/modules/classes/MeasurementTypes.yaml index f1843bdef7..00c196d602 100644 --- a/schemas/20251121/linkml/modules/classes/MeasurementTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/MeasurementTypes.yaml @@ -25,7 +25,7 @@ prefixes: imports: - ./MeasurementType - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name default_prefix: hc classes: TemperatureMeasurement: @@ -37,7 +37,7 @@ classes: \ (general): 18-22\xB0C \n- Cold storage (photographs): 2-8\xB0C\n- Freezer\ \ storage (textiles): -20\xB0C\n" slot_usage: - has_or_had_name: + has_name: equals_string: Temperature exact_mappings: - qudt:Temperature @@ -72,7 +72,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Relative Humidity exact_mappings: - qudt:RelativeHumidity @@ -102,7 +102,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Light Level exact_mappings: - qudt:Illuminance @@ -119,7 +119,7 @@ classes: \ exposure.\nStandard unit: microwatts per lumen (\xB5W/lm).\n\nConservation\ \ standard: UV should be below 75 \xB5W/lm for most materials.\n" slot_usage: - has_or_had_name: + has_name: equals_string: UV Radiation aliases: - UV Level @@ -137,7 +137,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Air Quality aliases: - AQI @@ -163,7 +163,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Carbon Dioxide aliases: - CO2 @@ -180,7 +180,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Volatile Organic Compounds aliases: - VOC @@ -197,7 +197,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Vibration aliases: - Shock @@ -215,7 +215,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Pest Count aliases: - Insect Count @@ -235,7 +235,7 @@ classes: ' slot_usage: - has_or_had_name: + has_name: equals_string: Water Activity aliases: - Moisture Content @@ -248,7 +248,7 @@ classes: description: "Dew point temperature measurement type for assessing condensation\ \ risk.\nStandard unit: degrees Celsius (\xB0C).\n" slot_usage: - has_or_had_name: + has_name: equals_string: Dew Point aliases: - Dew Point Temperature diff --git a/schemas/20251121/linkml/modules/classes/MeasurementUnit.yaml b/schemas/20251121/linkml/modules/classes/MeasurementUnit.yaml index 0ce5acdc6c..a412cce774 100644 --- a/schemas/20251121/linkml/modules/classes/MeasurementUnit.yaml +++ b/schemas/20251121/linkml/modules/classes/MeasurementUnit.yaml @@ -7,9 +7,9 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: MeasurementUnit: class_uri: qudt:Unit @@ -26,9 +26,9 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description close_mappings: - schema:unitCode annotations: diff --git a/schemas/20251121/linkml/modules/classes/MediaArchive.yaml b/schemas/20251121/linkml/modules/classes/MediaArchive.yaml index e145609178..9bb2af3a29 100644 --- a/schemas/20251121/linkml/modules/classes/MediaArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/MediaArchive.yaml @@ -16,10 +16,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: MediaArchive: @@ -27,10 +27,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q116809817 close_mappings: @@ -39,8 +39,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Media Archive diff --git a/schemas/20251121/linkml/modules/classes/MediaArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/MediaArchiveRecordSetType.yaml index 604867f200..69d4e8d423 100644 --- a/schemas/20251121/linkml/modules/classes/MediaArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/MediaArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: MediaArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by MediaArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - MediaArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/MediaArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/MediaArchiveRecordSetTypes.yaml index 20f2a6654e..3655e250d1 100644 --- a/schemas/20251121/linkml/modules/classes/MediaArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/MediaArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./MediaArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - MediaArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: MediaProductionFonds @@ -78,15 +78,15 @@ classes: - MediaArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: BroadcastCollection diff --git a/schemas/20251121/linkml/modules/classes/MediaObject.yaml b/schemas/20251121/linkml/modules/classes/MediaObject.yaml index bc08d21e9f..466527c202 100644 --- a/schemas/20251121/linkml/modules/classes/MediaObject.yaml +++ b/schemas/20251121/linkml/modules/classes/MediaObject.yaml @@ -9,17 +9,17 @@ prefixes: dcterms: http://purl.org/dc/terms/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_url + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_url default_prefix: hc classes: MediaObject: class_uri: schema:MediaObject slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_url + - identified_by + - has_label + - has_url annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Member.yaml b/schemas/20251121/linkml/modules/classes/Member.yaml index a4ed5775e5..702c5fc46b 100644 --- a/schemas/20251121/linkml/modules/classes/Member.yaml +++ b/schemas/20251121/linkml/modules/classes/Member.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_name + - ../slots/identified_by + - ../slots/20260202_matang/has_name classes: Member: class_uri: org:Membership description: Organization member. slots: - - has_or_had_identifier - - has_or_had_name + - identified_by + - has_name annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Membership.yaml b/schemas/20251121/linkml/modules/classes/Membership.yaml index 84c68d44db..665af19ef6 100644 --- a/schemas/20251121/linkml/modules/classes/Membership.yaml +++ b/schemas/20251121/linkml/modules/classes/Membership.yaml @@ -16,14 +16,14 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_role + - ../slots/20260202_matang/has_role - ../slots/temporal_extent classes: Membership: class_uri: org:Membership description: Membership relation. slots: - - has_or_had_role + - has_role - temporal_extent annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/Memento.yaml b/schemas/20251121/linkml/modules/classes/Memento.yaml index 341a617dea..ee63094889 100644 --- a/schemas/20251121/linkml/modules/classes/Memento.yaml +++ b/schemas/20251121/linkml/modules/classes/Memento.yaml @@ -10,14 +10,14 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_url - ../slots/temporal_extent classes: Memento: class_uri: schema:WebPage description: A web archive memento. slots: - - has_or_had_url + - has_url - temporal_extent annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/MerchandiseSale.yaml b/schemas/20251121/linkml/modules/classes/MerchandiseSale.yaml index b5cde3a6c4..9859fb8833 100644 --- a/schemas/20251121/linkml/modules/classes/MerchandiseSale.yaml +++ b/schemas/20251121/linkml/modules/classes/MerchandiseSale.yaml @@ -8,15 +8,15 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: MerchandiseSale: class_uri: schema:SellAction slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/MetadataStandard.yaml b/schemas/20251121/linkml/modules/classes/MetadataStandard.yaml index f9dacff4a3..d038db9995 100644 --- a/schemas/20251121/linkml/modules/classes/MetadataStandard.yaml +++ b/schemas/20251121/linkml/modules/classes/MetadataStandard.yaml @@ -6,7 +6,7 @@ prefixes: dct: http://purl.org/dc/terms/ imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type classes: MetadataStandard: class_uri: dct:Standard @@ -24,9 +24,9 @@ classes: ' slots: - - has_or_had_type + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/MetadataStandardType.yaml b/schemas/20251121/linkml/modules/classes/MetadataStandardType.yaml index 0ca2f7f658..469b5c1496 100644 --- a/schemas/20251121/linkml/modules/classes/MetadataStandardType.yaml +++ b/schemas/20251121/linkml/modules/classes/MetadataStandardType.yaml @@ -6,18 +6,18 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: MetadataStandardType: description: Abstract base class for metadata standard type taxonomy. Classifies categories of metadata standards used by heritage institutions, such as bibliographic (MARC21), archival (EAD, RiC-O), museum (LIDO, CIDOC-CRM), or web (Schema.org, Dublin Core). class_uri: skos:Concept abstract: true slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Method.yaml b/schemas/20251121/linkml/modules/classes/Method.yaml index e368e2ef43..a936f4f8c3 100644 --- a/schemas/20251121/linkml/modules/classes/Method.yaml +++ b/schemas/20251121/linkml/modules/classes/Method.yaml @@ -10,13 +10,13 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: Method: class_uri: skos:Concept description: A method or procedure used. slots: - - has_or_had_description + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Methodology.yaml b/schemas/20251121/linkml/modules/classes/Methodology.yaml index 85b3f0a11a..71434e0758 100644 --- a/schemas/20251121/linkml/modules/classes/Methodology.yaml +++ b/schemas/20251121/linkml/modules/classes/Methodology.yaml @@ -24,19 +24,19 @@ prefixes: imports: - linkml:types - ../enums/MethodologyTypeEnum - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/has_or_had_threshold - - ../slots/has_or_had_version + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_threshold + - ../slots/20260202_matang/has_version - ../slots/methodology_type default_prefix: hc classes: Methodology: class_uri: prov:Plan description: "Describes the methodology, technique, or algorithm used to derive a measurement.\n**PROV-O ALIGNMENT**:\nMaps to `prov:Plan` which represents \"a set of actions or steps intended by one or more agents to achieve some goals.\" In measurement contexts, this describes HOW a value was computed or derived.\n**WHY METHODOLOGY MATTERS**:\nTwo measurements of \"unique objects\" could use different methodologies:\n| Methodology | Description | Accuracy | |-------------|-------------|----------| | ENTITY_RESOLUTION | Deduplication via feature matching | High | | TRACKING | Object tracking across frames | Medium | | MANUAL_COUNT | Human counting | Variable | | SAMPLING | Statistical sampling | Estimated |\nWithout methodology, two measurements cannot be meaningfully compared.\n**HERITAGE USE CASES**:\n- **Video annotation**: How unique faces/objects were counted (entity resolution) - **Collection inventories**: How item counts were derived (physical vs. digital) - **Visitor statistics**:\ - \ How attendance was measured (counters, tickets, samples) - **Digitization metrics**: How completeness was assessed\n**EXAMPLE**:\n```yaml has_or_had_methodology:\n methodology_type: ENTITY_RESOLUTION\n has_or_had_label: \"RetinaFace + ArcFace clustering\"\n has_or_had_description: >-\n Faces detected using RetinaFace model, then clustered\n using ArcFace embeddings with cosine similarity threshold 0.6\n to identify unique individuals.\n```" + \ How attendance was measured (counters, tickets, samples) - **Digitization metrics**: How completeness was assessed\n**EXAMPLE**:\n```yaml has_methodology:\n methodology_type: ENTITY_RESOLUTION\n has_label: \"RetinaFace + ArcFace clustering\"\n has_description: >-\n Faces detected using RetinaFace model, then clustered\n using ArcFace embeddings with cosine similarity threshold 0.6\n to identify unique individuals.\n```" exact_mappings: - prov:Plan close_mappings: @@ -44,15 +44,15 @@ classes: related_mappings: - dcterms:methodology slots: - - has_or_had_identifier + - identified_by - methodology_type - - has_or_had_label - - has_or_had_description - - has_or_had_version - - has_or_had_threshold - - has_or_had_score + - has_label + - has_description + - has_version + - has_threshold + - has_score slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: false examples: @@ -63,7 +63,7 @@ classes: examples: - value: ENTITY_RESOLUTION - value: OBJECT_TRACKING - has_or_had_label: + has_label: # range: string required: false description: 'Human-readable name for the methodology or algorithm. MIGRATED: Now serves both methodology name AND algorithm_name (Rule 53/56).' @@ -71,18 +71,18 @@ classes: - value: RetinaFace + ArcFace clustering - value: YOLOv8 - value: ArcFace - has_or_had_description: + has_description: # range: string required: false examples: - value: Faces detected using RetinaFace, clustered using ArcFace embeddings - has_or_had_version: + has_version: # range: string required: false examples: - value: 1.0.0 - value: v8n - has_or_had_threshold: + has_threshold: range: ConfidenceThreshold required: false examples: @@ -97,16 +97,16 @@ classes: examples: - value: methodology_type: ENTITY_RESOLUTION - has_or_had_label: RetinaFace + ArcFace clustering - has_or_had_description: Faces detected using RetinaFace model, then clustered using ArcFace embeddings with cosine similarity threshold 0.6. - has_or_had_version: '1.0' - has_or_had_threshold: + has_label: RetinaFace + ArcFace clustering + has_description: Faces detected using RetinaFace model, then clustered using ArcFace embeddings with cosine similarity threshold 0.6. + has_version: '1.0' + has_threshold: - threshold_value: 0.6 - value: methodology_type: OBJECT_TRACKING - has_or_had_label: DeepSORT multi-object tracking - has_or_had_description: Objects tracked across video frames using DeepSORT algorithm with Kalman filtering and appearance features. - has_or_had_version: '1.0' + has_label: DeepSORT multi-object tracking + has_description: Objects tracked across video frames using DeepSORT algorithm with Kalman filtering and appearance features. + has_version: '1.0' annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/MichelinStarRating.yaml b/schemas/20251121/linkml/modules/classes/MichelinStarRating.yaml index 129f23f1d4..95b6a4e931 100644 --- a/schemas/20251121/linkml/modules/classes/MichelinStarRating.yaml +++ b/schemas/20251121/linkml/modules/classes/MichelinStarRating.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: MichelinStarRating: class_uri: schema:Rating description: Michelin star rating. slots: - - has_or_had_value + - has_value annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/MicrofilmReader.yaml b/schemas/20251121/linkml/modules/classes/MicrofilmReader.yaml index 3de26403b8..61cc1b3821 100644 --- a/schemas/20251121/linkml/modules/classes/MicrofilmReader.yaml +++ b/schemas/20251121/linkml/modules/classes/MicrofilmReader.yaml @@ -16,13 +16,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: MicrofilmReader: class_uri: schema:Product description: Microfilm reader. slots: - - has_or_had_name + - has_name annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/MilitaryArchive.yaml b/schemas/20251121/linkml/modules/classes/MilitaryArchive.yaml index bcef9704fa..71cffbf03c 100644 --- a/schemas/20251121/linkml/modules/classes/MilitaryArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/MilitaryArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: MilitaryArchive: @@ -27,17 +27,17 @@ classes: broad_mappings: - wd:Q166118 slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null hold_or_held_record_set_type: equals_expression: '["hc:MilitaryOperationsFonds", "hc:MilitaryPersonnelSeries", "hc:UnitHistoryCollection", "hc:MilitaryMapsCollection", "hc:VeteransDocumentationCollection"] ' - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Military Archive diff --git a/schemas/20251121/linkml/modules/classes/MilitaryArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/MilitaryArchiveRecordSetType.yaml index e2ef11adf0..c960f1dfeb 100644 --- a/schemas/20251121/linkml/modules/classes/MilitaryArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/MilitaryArchiveRecordSetType.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to classes: MilitaryArchiveRecordSetType: abstract: true @@ -29,10 +29,10 @@ classes: - MilitaryMapsCollection - VeteransDocumentationCollection slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/MilitaryArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/MilitaryArchiveRecordSetTypes.yaml index 54daf356ae..05deaee18b 100644 --- a/schemas/20251121/linkml/modules/classes/MilitaryArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/MilitaryArchiveRecordSetTypes.yaml @@ -19,8 +19,8 @@ default_prefix: hc imports: - ./MilitaryArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/preservation_note @@ -143,8 +143,8 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -152,7 +152,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: MilitaryOperationsFonds @@ -230,8 +230,8 @@ classes: with conscription registers (militieregisters) held by municipal archives. custodian_types: '[''*'']' slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - privacy_note @@ -240,7 +240,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: MilitaryPersonnelSeries @@ -321,8 +321,8 @@ classes: medals, equipment). custodian_types: '[''*'']' slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -330,7 +330,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:MuseumType"]' record_set_type: equals_string: UnitHistoryCollection @@ -406,8 +406,8 @@ classes: - rico-rst:Collection - MapCollection slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - preservation_note @@ -416,7 +416,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:LibraryType"]' record_set_type: equals_string: MilitaryMapsCollection @@ -501,8 +501,8 @@ classes: and access provisions. custodian_types: '[''*'']' slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -510,7 +510,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:MuseumType", "hc:ResearchOrganizationType"]' record_set_type: equals_string: VeteransDocumentationCollection diff --git a/schemas/20251121/linkml/modules/classes/MinimumHumidity.yaml b/schemas/20251121/linkml/modules/classes/MinimumHumidity.yaml index 075510561f..9179755583 100644 --- a/schemas/20251121/linkml/modules/classes/MinimumHumidity.yaml +++ b/schemas/20251121/linkml/modules/classes/MinimumHumidity.yaml @@ -10,20 +10,20 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_unit - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_unit + - ../slots/20260202_matang/has_value classes: MinimumHumidity: class_uri: schema:QuantitativeValue description: "Minimum humidity constraint." slots: - - has_or_had_value - - has_or_had_unit + - has_value + - has_unit slot_usage: - has_or_had_value: + has_value: range: float required: true - has_or_had_unit: + has_unit: # range: string ifabsent: string(%) annotations: diff --git a/schemas/20251121/linkml/modules/classes/MissionStatement.yaml b/schemas/20251121/linkml/modules/classes/MissionStatement.yaml index 9a96d93acc..172b877f6e 100644 --- a/schemas/20251121/linkml/modules/classes/MissionStatement.yaml +++ b/schemas/20251121/linkml/modules/classes/MissionStatement.yaml @@ -17,16 +17,16 @@ imports: - ../slots/content_hash - ../slots/css_selector - ../slots/describes_or_described - - ../slots/has_or_had_identifier - - ../slots/has_or_had_language - - ../slots/has_or_had_note - - ../slots/has_or_had_provenance_path - - ../slots/has_or_had_score - - ../slots/has_or_had_summary - - ../slots/has_or_had_text - - ../slots/has_or_had_type - - ../slots/has_or_had_url - - ../slots/is_or_was_effective_at + - ../slots/identified_by + - ../slots/20260202_matang/has_language + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_provenance_path + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_summary + - ../slots/20260202_matang/has_text + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_url + - ../slots/20260202_matang/effective_at - ../slots/page_section - ../slots/retrieved_on - ../slots/source_url @@ -38,7 +38,7 @@ classes: class_uri: hc:MissionStatement description: "A structured record of an organizational purpose statement (mission, vision,\ngoals, values, or motto) extracted from a heritage custodian's website with\nfull provenance documentation.\n\n**PURPOSE**:\n\nHeritage custodians publish mission and vision statements that articulate:\n- Why they exist (mission)\n- What future state they aspire to (vision)\n- What specific outcomes they pursue (goals)\n- What principles guide their work (values)\n- Memorable phrases encapsulating their purpose (mottos)\n\nThese statements are valuable for:\n- Understanding organizational identity and purpose\n- Comparing institutions within and across sectors\n- Tracking organizational evolution over time\n- Research on heritage sector discourse and priorities\n\n**PROVENANCE REQUIREMENTS**:\n\nFollowing the WebObservation pattern, every MissionStatement MUST have:\n\n1. **Source documentation**: source_url + retrieved_on\n2. **Location evidence**: xpath OR css_selector + html_file\n3. **Integrity\ \ verification**: content_hash (SHA-256)\n4. **Archive link**: has_archive_memento_uri (recommended)\n\nStatements without verifiable provenance are rejected.\n\n**ONTOLOGY ALIGNMENT**:\n\nW3C Organization Ontology `org:purpose`:\n- \"Indicates the purpose of this Organization\"\n- \"There can be many purposes at different levels of abstraction\"\n- \"It is recommended that the purpose be denoted by a controlled term\"\n\nWe extend this by:\n- Distinguishing statement types (mission, vision, goal, value, motto)\n- Adding temporal tracking (effective_date, supersedes)\n- Full provenance chain (source_url, xpath, content_hash, archive)\n\n**MULTILINGUAL SUPPORT**:\n\nHeritage custodians publish statements in their native language.\nFor Dutch institutions, statements are typically in Dutch.\nThe statement_language field captures the ISO 639-1 code,\nand statement_summary can provide English translation.\n\n**TEMPORAL TRACKING**:\n\nOrganizations revise their mission statements over time.\n\ - The `supersedes` field links to previous statements,\nenabling tracking of how organizational purpose evolves.\n\n**EXAMPLES**:\n\n1. **Dutch Agricultural Museum Mission**\n - statement_type: mission\n - has_or_had_text: \"Waar komt ons voedsel \xE9cht vandaan.\"\n - statement_language: nl\n - source_url: https://www.landbouwmuseumtiengemeten.nl/het-museum/missie-en-visie\n \n2. **Rijksmuseum Vision**\n - statement_type: vision\n - has_or_had_text: \"Het Rijksmuseum verbindt mensen met kunst en geschiedenis.\"\n - statement_language: nl\n - statement_summary: \"The Rijksmuseum connects people with art and history.\"\n" + The `supersedes` field links to previous statements,\nenabling tracking of how organizational purpose evolves.\n\n**EXAMPLES**:\n\n1. **Dutch Agricultural Museum Mission**\n - statement_type: mission\n - has_text: \"Waar komt ons voedsel \xE9cht vandaan.\"\n - statement_language: nl\n - source_url: https://www.landbouwmuseumtiengemeten.nl/het-museum/missie-en-visie\n \n2. **Rijksmuseum Vision**\n - statement_type: vision\n - has_text: \"Het Rijksmuseum verbindt mensen met kunst en geschiedenis.\"\n - statement_language: nl\n - statement_summary: \"The Rijksmuseum connects people with art and history.\"\n" close_mappings: - org:purpose - schema:description @@ -51,41 +51,41 @@ classes: - describes_or_described - content_hash - css_selector - - is_or_was_effective_at - - has_or_had_note + - effective_at + - has_note - temporal_extent - page_section - retrieved_on - source_url - - has_or_had_identifier - - has_or_had_language - - has_or_had_summary - - has_or_had_text - - has_or_had_type + - identified_by + - has_language + - has_summary + - has_text + - has_type - supersedes_or_superseded - - has_or_had_score - - has_or_had_url - - has_or_had_provenance_path + - has_score + - has_url + - has_provenance_path slot_usage: describes_or_described: # range: string - has_or_had_type: + has_type: required: true range: StatementType examples: - value: mission - value: vision - value: goal - has_or_had_text: + has_text: required: true source_url: required: true retrieved_on: required: true - has_or_had_provenance_path: + has_provenance_path: range: XPath inlined: true - has_or_had_url: + has_url: range: uri inlined: false # Fixed invalid inline for primitive type examples: @@ -93,16 +93,16 @@ classes: url_value: https://example.org/about#:~:text=Our%20mission%20is url_type: text_fragment comments: - - 'MIGRATION (2026-01-15): Replaced xpath/xpath_match_score slots with has_or_had_provenance_path using XPath class per slot_fixes.yaml' - - 'MIGRATION (2026-01-15): Replaced text_fragment slot with has_or_had_url using URL class (url_type=text_fragment) per slot_fixes.yaml' + - 'MIGRATION (2026-01-15): Replaced xpath/xpath_match_score slots with has_provenance_path using XPath class per slot_fixes.yaml' + - 'MIGRATION (2026-01-15): Replaced text_fragment slot with has_url using URL class (url_type=text_fragment) per slot_fixes.yaml' - 'Rule note: Mottos should be brief - typically under 50 characters' - MissionStatement maps to org:purpose from W3C Organization Ontology - Requires source_url and retrieved_on for provenance - - Strongly recommend has_or_had_provenance_path (XPath class) + html_file for verification + - Strongly recommend has_provenance_path (XPath class) + html_file for verification - content_hash enables integrity checking - has_archive_memento_uri ensures long-term source accessibility - Supports tracking statement evolution via supersedes field - - has_or_had_language uses ISO 639-1 codes (nl, en, de, etc.) + - has_language uses ISO 639-1 codes (nl, en, de, etc.) see_also: - https://www.w3.org/TR/vocab-org/#org:purpose - https://www.w3.org/TR/prov-o/ @@ -110,36 +110,36 @@ classes: - https://www.w3.org/TR/SRI/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/mission/nl-zh-zui-m-lmt/mission-2025 - has_or_had_type: mission - has_or_had_text: "Waar komt ons voedsel \xE9cht vandaan." - has_or_had_language: nl - has_or_had_summary: Where does our food really come from. + identified_by: https://nde.nl/ontology/hc/mission/nl-zh-zui-m-lmt/mission-2025 + has_type: mission + has_text: "Waar komt ons voedsel \xE9cht vandaan." + has_language: nl + has_summary: Where does our food really come from. source_url: https://www.landbouwmuseumtiengemeten.nl/het-museum/missie-en-visie retrieved_on: '2025-12-29T10:00:00Z' page_section: Onze Missie content_hash: sha256-abc123... - has_or_had_score: - has_or_had_score: 0.95 + has_score: + has_score: 0.95 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/mission/nl-zh-zui-m-lmt/vision-2025 - has_or_had_type: vision - has_or_had_text: 'Het Landbouwmuseum Tiengemeten voelt zich onderdeel van een belangrijke + identified_by: https://nde.nl/ontology/hc/mission/nl-zh-zui-m-lmt/vision-2025 + has_type: vision + has_text: 'Het Landbouwmuseum Tiengemeten voelt zich onderdeel van een belangrijke agrarische ontwikkeling, de mechanisatie tussen 1920 en 1955. De collectie is relevant en de presentatie verbindt generaties. ' - has_or_had_language: nl + has_language: nl source_url: https://www.landbouwmuseumtiengemeten.nl/het-museum/missie-en-visie retrieved_on: '2025-12-29T10:00:00Z' page_section: Onze visie content_hash: sha256-def456... - has_or_had_score: - has_or_had_score: 0.9 + has_score: + has_score: 0.9 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/mission/nl-zh-zui-m-lmt/goals-2025 - has_or_had_type: goal - has_or_had_text: "Onze ambitie en doelstellingen hebben wij geformuleerd rondom de volgende punten:\n- Het Landbouwmuseum Tiengemeten laat de ontwikkeling van het boerenbedrijf\n in de periode 1920 tot 1955 zien d.m.v. een prachtige collectie.\n- Voor onze bezoekers een gewaardeerd en gastvrij museum te zijn.\n- De collecties welke wij beheren toegankelijk maken voor nu en voor\n volgende generaties.\n" - has_or_had_language: nl + identified_by: https://nde.nl/ontology/hc/mission/nl-zh-zui-m-lmt/goals-2025 + has_type: goal + has_text: "Onze ambitie en doelstellingen hebben wij geformuleerd rondom de volgende punten:\n- Het Landbouwmuseum Tiengemeten laat de ontwikkeling van het boerenbedrijf\n in de periode 1920 tot 1955 zien d.m.v. een prachtige collectie.\n- Voor onze bezoekers een gewaardeerd en gastvrij museum te zijn.\n- De collecties welke wij beheren toegankelijk maken voor nu en voor\n volgende generaties.\n" + has_language: nl source_url: https://www.landbouwmuseumtiengemeten.nl/het-museum/missie-en-visie retrieved_on: '2025-12-29T10:00:00Z' page_section: Doelstellingen diff --git a/schemas/20251121/linkml/modules/classes/MixedCustodianType.yaml b/schemas/20251121/linkml/modules/classes/MixedCustodianType.yaml index 09ba04a16b..2b2df656b9 100644 --- a/schemas/20251121/linkml/modules/classes/MixedCustodianType.yaml +++ b/schemas/20251121/linkml/modules/classes/MixedCustodianType.yaml @@ -15,9 +15,9 @@ imports: - linkml:types - ../slots/constituent_type - ../slots/defines_or_defined - - ../slots/has_or_had_score - - ../slots/has_or_had_service - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_service + - ../slots/20260202_matang/has_type - ../slots/integrates_or_integrated - ../slots/serves_or_served - ../slots/service_portfolio @@ -142,12 +142,12 @@ classes: - schema:ArchiveOrganization slots: - constituent_type - - has_or_had_type - - has_or_had_service + - has_type + - has_service - integrates_or_integrated - defines_or_defined - service_portfolio - - has_or_had_score + - has_score - serves_or_served slot_usage: constituent_type: @@ -166,28 +166,28 @@ classes: required: true examples: - value: - has_or_had_label: Combined archival storage + museum galleries - has_or_had_type: - has_or_had_label: Facilities Management - is_or_was_categorized_as: - has_or_had_label: SUPPORT + has_label: Combined archival storage + museum galleries + has_type: + has_label: Facilities Management + categorized_as: + has_label: SUPPORT - value: - has_or_had_label: Unified visitor services - has_or_had_type: - has_or_had_label: Visitor Services - is_or_was_categorized_as: - has_or_had_label: SUPPORT + has_label: Unified visitor services + has_type: + has_label: Visitor Services + categorized_as: + has_label: SUPPORT defines_or_defined: # range: string # uriorcurie # range: GovernanceStructure required: true examples: - value: - has_or_had_description: Single director, Unified budget, Cross-functional + has_description: Single director, Unified budget, Cross-functional - value: - has_or_had_description: Director + Deputy (museum) + Deputy (library) + has_description: Director + Deputy (museum) + Deputy (library) - value: - has_or_had_description: Co-directors (archive + museum), Unified operations + has_description: Co-directors (archive + museum), Unified operations service_portfolio: # range: string multivalued: true @@ -196,17 +196,17 @@ classes: - value: Archival research, Exhibitions, Education, Digitization - value: Museum exhibitions, Library reference, Fellowships, Conservation - value: Reading room, Galleries, Lectures, Digital portal - has_or_had_service: + has_service: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_label: Purpose-built facility (2007) - has_or_had_description: Vaults + Galleries + Reading rooms + Lab + has_label: Purpose-built facility (2007) + has_description: Vaults + Galleries + Reading rooms + Lab - value: - has_or_had_label: Historic building 1990 - has_or_had_description: Separate wings, Shared entrance + has_label: Historic building 1990 + has_description: Separate wings, Shared entrance serves_or_served: # range: string # uriorcurie # range: UserCommunity @@ -214,6 +214,6 @@ classes: inlined_as_list: false # Fixed invalid inline for primitive type required: true examples: - - value: "- has_or_had_type: ResearcherCommunity\n has_or_had_label:\n - label_value: \"Researchers and genealogists\"\n language_code: \"en\"\n" - has_or_had_type: + - value: "- has_type: ResearcherCommunity\n has_label:\n - label_value: \"Researchers and genealogists\"\n language_code: \"en\"\n" + has_type: equals_expression: '["hc:MixedCustodianType"]' diff --git a/schemas/20251121/linkml/modules/classes/Model.yaml b/schemas/20251121/linkml/modules/classes/Model.yaml index 25ce63b185..14c3a0c209 100644 --- a/schemas/20251121/linkml/modules/classes/Model.yaml +++ b/schemas/20251121/linkml/modules/classes/Model.yaml @@ -15,25 +15,25 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: Model: class_uri: schema:ProductModel - description: "Represents a product model or design variant.\n\n**MIGRATION SOURCE**: Created from device_model slot migration (Rule 53, 2026-01-25).\n\n**Pattern**: Simple string model name replaced with structured class:\n- has_or_had_label: Model name/designation\n- has_or_had_identifier: Model number or SKU\n\n**Ontological Alignment**:\n- **Primary**: `schema:ProductModel` - Schema.org product model\n\n**Use Cases**:\n- IoT device models (Estimote Proximity Beacon, Sensirion SHT45)\n- Equipment model variants\n- Hardware versions\n\n**Relationship to InternetOfThings**:\n```\nInternetOfThings\n \u2514\u2500\u2500 has_or_had_model \u2192 Model\n \u251C\u2500\u2500 has_or_had_label \u2192 \"Estimote Proximity Beacon\"\n \u2514\u2500\u2500 has_or_had_identifier \u2192 \"EPB-v3.0\"\n```\n" + description: "Represents a product model or design variant.\n\n**MIGRATION SOURCE**: Created from device_model slot migration (Rule 53, 2026-01-25).\n\n**Pattern**: Simple string model name replaced with structured class:\n- has_label: Model name/designation\n- identified_by: Model number or SKU\n\n**Ontological Alignment**:\n- **Primary**: `schema:ProductModel` - Schema.org product model\n\n**Use Cases**:\n- IoT device models (Estimote Proximity Beacon, Sensirion SHT45)\n- Equipment model variants\n- Hardware versions\n\n**Relationship to InternetOfThings**:\n```\nInternetOfThings\n \u2514\u2500\u2500 has_model \u2192 Model\n \u251C\u2500\u2500 has_label \u2192 \"Estimote Proximity Beacon\"\n \u2514\u2500\u2500 identified_by \u2192 \"EPB-v3.0\"\n```\n" exact_mappings: - schema:ProductModel slots: - - has_or_had_identifier - - has_or_had_label + - identified_by + - has_label slot_usage: - has_or_had_identifier: + identified_by: # range: string required: false examples: - value: EPB-v3.0 - value: SHT45-AD1B-R2 - has_or_had_label: + has_label: # range: string required: true examples: @@ -52,8 +52,8 @@ classes: - Enables structured model data with name and identifier examples: - value: - has_or_had_identifier: EPB-v3.0 - has_or_had_label: Estimote Proximity Beacon + identified_by: EPB-v3.0 + has_label: Estimote Proximity Beacon - value: - has_or_had_identifier: SHT45-AD1B-R2 - has_or_had_label: Sensirion SHT45 \ No newline at end of file + identified_by: SHT45-AD1B-R2 + has_label: Sensirion SHT45 \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/MonasteryArchive.yaml b/schemas/20251121/linkml/modules/classes/MonasteryArchive.yaml index 688b02f729..fb80f597c8 100644 --- a/schemas/20251121/linkml/modules/classes/MonasteryArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/MonasteryArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: MonasteryArchive: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q27030561 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HolySacredSiteType"]' annotations: skos:prefLabel: Monastery Archive diff --git a/schemas/20251121/linkml/modules/classes/MonasteryArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/MonasteryArchiveRecordSetType.yaml index 72a8ce8c9e..7094779fed 100644 --- a/schemas/20251121/linkml/modules/classes/MonasteryArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/MonasteryArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: MonasteryArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by MonasteryArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - MonasteryArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/MonasteryArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/MonasteryArchiveRecordSetTypes.yaml index 654e5c2992..0aa271c260 100644 --- a/schemas/20251121/linkml/modules/classes/MonasteryArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/MonasteryArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./MonasteryArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - MonasteryArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: MonasticRecordsFonds @@ -78,15 +78,15 @@ classes: - MonasteryArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: MonasticManuscriptCollection @@ -115,15 +115,15 @@ classes: - MonasteryArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PropertyRecordsSeries diff --git a/schemas/20251121/linkml/modules/classes/MunicipalArchive.yaml b/schemas/20251121/linkml/modules/classes/MunicipalArchive.yaml index 0493e3faa9..6d7f2abf56 100644 --- a/schemas/20251121/linkml/modules/classes/MunicipalArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/MunicipalArchive.yaml @@ -16,10 +16,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: MunicipalArchive: @@ -50,17 +50,17 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: hold_or_held_record_set_type: equals_expression: '["hc:CouncilGovernanceFonds", "hc:CivilRegistrySeries", "hc:MunicipalAdministrationFonds", "hc:UrbanPlanningCollection", "hc:LocalHistoryCollection"] ' - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Municipal Archive diff --git a/schemas/20251121/linkml/modules/classes/MunicipalArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/MunicipalArchiveRecordSetType.yaml index 54494c5234..ad6502b2a0 100644 --- a/schemas/20251121/linkml/modules/classes/MunicipalArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/MunicipalArchiveRecordSetType.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to classes: MunicipalArchiveRecordSetType: abstract: true @@ -29,10 +29,10 @@ classes: - UrbanPlanningCollection - LocalHistoryCollection slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/MunicipalArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/MunicipalArchiveRecordSetTypes.yaml index ba13cdc38f..c0928bb7a1 100644 --- a/schemas/20251121/linkml/modules/classes/MunicipalArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/MunicipalArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./MunicipalArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/privacy_note @@ -73,8 +73,8 @@ classes: - rico-rst:Fonds - MunicipalArchive slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -82,7 +82,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CouncilGovernanceFonds @@ -164,8 +164,8 @@ classes: genealogy_note: Primary source for genealogical research. Supersedes church records as official source from 1811 in Netherlands. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - privacy_note @@ -174,7 +174,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:OfficialInstitutionType"]' record_set_type: equals_string: CivilRegistrySeries @@ -249,8 +249,8 @@ classes: - rico-rst:Fonds - CouncilGovernanceFonds slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - privacy_note @@ -259,7 +259,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: MunicipalAdministrationFonds @@ -331,8 +331,8 @@ classes: - rico-rst:Collection - ArchitecturalArchive slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -340,7 +340,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: UrbanPlanningCollection @@ -418,8 +418,8 @@ classes: collection_nature_note: Often includes artificial/assembled collections. Materials frequently acquired through donation programs and community partnerships. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -427,7 +427,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HeritageSocietyType"]' record_set_type: equals_string: LocalHistoryCollection diff --git a/schemas/20251121/linkml/modules/classes/MuseumArchive.yaml b/schemas/20251121/linkml/modules/classes/MuseumArchive.yaml index 16c2c47ffa..d897b6178a 100644 --- a/schemas/20251121/linkml/modules/classes/MuseumArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/MuseumArchive.yaml @@ -16,10 +16,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: MuseumArchive: @@ -27,10 +27,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q53566456 close_mappings: @@ -39,8 +39,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Museum Archive diff --git a/schemas/20251121/linkml/modules/classes/MuseumArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/MuseumArchiveRecordSetType.yaml index 06ca59a3d9..cfd9517438 100644 --- a/schemas/20251121/linkml/modules/classes/MuseumArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/MuseumArchiveRecordSetType.yaml @@ -16,9 +16,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: MuseumArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by MuseumArchive custodians. @@ -27,14 +27,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - MuseumArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/MuseumArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/MuseumArchiveRecordSetTypes.yaml index eada5cae4d..975f1908c8 100644 --- a/schemas/20251121/linkml/modules/classes/MuseumArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/MuseumArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./MuseumArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - MuseumArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: MuseumAdministrationFonds @@ -78,15 +78,15 @@ classes: - MuseumArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CollectionDocumentationSeries @@ -115,15 +115,15 @@ classes: - MuseumArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ExhibitionRecordCollection diff --git a/schemas/20251121/linkml/modules/classes/MuseumRegisterEnrichment.yaml b/schemas/20251121/linkml/modules/classes/MuseumRegisterEnrichment.yaml index ef1ae1c7d9..dca3c8c7ed 100644 --- a/schemas/20251121/linkml/modules/classes/MuseumRegisterEnrichment.yaml +++ b/schemas/20251121/linkml/modules/classes/MuseumRegisterEnrichment.yaml @@ -9,8 +9,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_category - - ../slots/has_or_had_quantity + - ../slots/categorized_as + - ../slots/20260202_matang/has_quantity # default_range: string classes: MuseumRegisterEnrichment: @@ -31,7 +31,7 @@ classes: custodian_types: '[''*'']' slots: - registration_date - - has_or_had_category - - has_or_had_quantity + - categorized_as + - has_quantity - note - source_url diff --git a/schemas/20251121/linkml/modules/classes/MuseumType.yaml b/schemas/20251121/linkml/modules/classes/MuseumType.yaml index 8226e57466..712532ba7a 100644 --- a/schemas/20251121/linkml/modules/classes/MuseumType.yaml +++ b/schemas/20251121/linkml/modules/classes/MuseumType.yaml @@ -4,14 +4,14 @@ title: Museum Type Classification imports: - linkml:types - ../enums/MuseumTypeEnum - - ../slots/complies_or_complied_with + - ../slots/20260202_matang/comply_with - ../slots/conservation_lab - - ../slots/has_or_had_category - - ../slots/has_or_had_facility - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/categorized_as + - ../slots/20260202_matang/has_facility + - ../slots/20260202_matang/has_hypernym + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/museum_subtype - ../slots/research_department classes: @@ -87,39 +87,39 @@ classes: description: "Specialized custodian type for museums - institutions that collect, preserve,\nresearch, and exhibit objects of artistic, cultural, historical, or scientific\nsignificance for public education and enjoyment.\n\n**Wikidata Base Concept**: Q33506 (museum)\n\n**Scope**:\nMuseums are distinguished by their focus on:\n- Object-based collections (artifacts, specimens, artworks)\n- Public exhibitions and interpretation\n- Educational programming\n- Conservation and research\n- Tangible cultural/natural heritage\n\n**Key Museum Subtypes** (187+ extracted from Wikidata):\n\n**By Subject Matter**:\n- Art museums (Q207694) - Fine arts and visual arts\n- History museums (Q588140) - Historical artifacts and narratives\n- Science museums (Q588140) - Scientific phenomena and technology\n- Natural history museums (Q559049) - Biological and geological specimens\n- Anthropology museums (Q57566) - Cultural and ethnic heritage\n- Military museums (Q1520008) - Armed forces and warfare history\n\ \n**Art Museum Specializations**:\n- Modern art museums (Q108860593) - 20th century art\n- Contemporary art museums (Q108860927) - Current/recent art\n- Folk art museums (Q108861021) - Traditional/vernacular art\n- University art museums (Q111889841) - Academic art collections\n- Single-artist museums (Q107524840) - Dedicated to one artist\n- Private art museums (Q107537774) - Privately owned collections\n\n**Subject-Specific Museums**:\n- Writers' museums (Q10501308) - Literary heritage\n- Comics museums (Q11341528) - Sequential art and graphic novels\n- Chess museums (Q106686551) - Chess history and artifacts\n- Picture book museums (Q11606865) - Children's illustrated books\n- Fortification museums (Q1014837) - Military architecture\n- Hospital museums (Q114650550) - Medical heritage\n\n**Specialized Formats**:\n- Open-air museums (Q588140) - Outdoor historical environments\n- Ecomuseums (Q861259) - Community-based heritage sites\n- Virtual museums (Q3565794) - Digital-only collections\n\ - Selfie museums (Q104127212) - Instagram-friendly installations\n- Typhlological museums (Q107313856) - Museums for the blind\n\n**By Administrative Level**:\n- National museums (Q2668072) - State-level institutions\n- Regional museums (Q1048268) - Provincial/state museums\n- County museums (Q10571947) - Local government museums (Sweden)\n- University museums (Q3152824) - Academic institution museums\n\n**By Location Type**:\n- Heritage farms (Q111079628) - Historic agricultural sites\n- National military parks (Q100154387) - US military heritage sites\n- National battlefield parks (Q100222740) - US battle sites\n- Forest experience centers (Q106775899) - German forest museums\n\n**Geographic/Cultural Focus**:\n- Local heritage institutions (Q10520688) - Swedish hembygdsg\xE5rd\n- National centers for contemporary art (Q109017987) - National art centers\n- Buried cultural property centers (Q11425913) - Archaeology museums (Japan)\n\n**RDF Serialization Example**:\n```turtle\n:Custodian_Rijksmuseum\n\ - \ org:classification :MuseumType_ArtMuseum_Q207694 .\n\n:MuseumType_ArtMuseum_Q207694\n a glamtype:MuseumType, crm:E55_Type, skos:Concept ;\n skos:prefLabel \"Art Museum\"@en, \"kunstmuseum\"@nl ;\n skos:broader :MuseumType_Museum_Q33506 ;\n skos:narrower :MuseumType_ModernArtMuseum_Q108860593 ;\n schema:additionalType <http://www.wikidata.org/entity/Q207694> ;\n glamtype:glamorcubesfixphdnt_code \"MUSEUM\" ;\n glamtype:has_or_had_category [ hc:category_name \"paintings\" ; hc:category_type \"TYPOLOGY\" ] ;\n glamtype:exhibition_program \"rotating exhibitions with permanent collection\" ;\n glamtype:cataloging_standard \"LIDO\" .\n```\n\n**Domain-Specific Properties**:\nThis class adds museum-specific metadata beyond base CustodianType:\n- `has_or_had_category` - Subject areas of collections (art, history, science, etc.) using Category class\n- `exhibition_program` - Exhibition strategy (permanent, rotating, temporary)\n- `visitor_facilities` - Public\ + \ org:classification :MuseumType_ArtMuseum_Q207694 .\n\n:MuseumType_ArtMuseum_Q207694\n a glamtype:MuseumType, crm:E55_Type, skos:Concept ;\n skos:prefLabel \"Art Museum\"@en, \"kunstmuseum\"@nl ;\n skos:broader :MuseumType_Museum_Q33506 ;\n skos:narrower :MuseumType_ModernArtMuseum_Q108860593 ;\n schema:additionalType <http://www.wikidata.org/entity/Q207694> ;\n glamtype:glamorcubesfixphdnt_code \"MUSEUM\" ;\n glamtype:categorized_as [ hc:category_name \"paintings\" ; hc:category_type \"TYPOLOGY\" ] ;\n glamtype:exhibition_program \"rotating exhibitions with permanent collection\" ;\n glamtype:cataloging_standard \"LIDO\" .\n```\n\n**Domain-Specific Properties**:\nThis class adds museum-specific metadata beyond base CustodianType:\n- `categorized_as` - Subject areas of collections (art, history, science, etc.) using Category class\n- `exhibition_program` - Exhibition strategy (permanent, rotating, temporary)\n- `visitor_facilities` - Public\ \ amenities (cafe, shop, education center, etc.)\n- `cataloging_standard` - Standards used (LIDO, SPECTRUM, CIDOC-CRM, etc.)\n- `conservation_lab` - Whether museum has conservation facilities\n- `research_department` - Whether museum conducts scholarly research\n\n**Integration with CIDOC-CRM**:\nMuseum organizations should reference CIDOC-CRM for detailed object cataloging:\n- crm:E78_Curated_Holding - Museum collections\n- crm:E18_Physical_Thing - Museum objects\n- crm:E7_Activity - Exhibitions and educational activities\n- crm:E39_Actor - Museum as organizational actor\n\n**Integration with LIDO**:\nLIDO (Lightweight Information Describing Objects) is the standard for museum\nobject interchange:\n- lido:legalBodyType - Museum organization type\n- lido:objectClassificationWrap - Object categorization\n- lido:administrativeMetadata - Collection management\n\n**Data Population**:\nMuseum subtypes extracted from 187 Wikidata entities with type='M'\nin `data/wikidata/GLAMORCUBEPSXHFN/hyponyms_curated_full.yaml`.\n" slots: - - complies_or_complied_with - - has_or_had_category + - comply_with + - categorized_as - conservation_lab - - has_or_had_type + - has_type - museum_subtype - research_department - - has_or_had_score - - has_or_had_facility - - has_or_had_identifier + - has_score + - has_facility + - identified_by slot_usage: - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ required: true - has_or_had_hypernym: + has_hypernym: range: MuseumType conservation_lab: range: boolean required: false - has_or_had_type: + has_type: equals_expression: '["hc:MuseumType"]' - has_or_had_facility: + has_facility: # range: string inlined: false # Fixed invalid inline for primitive type multivalued: true - complies_or_complied_with: + comply_with: # range: string # uriorcurie # range: CatalogingStandard inlined: false # Fixed invalid inline for primitive type multivalued: true - has_or_had_category: + categorized_as: # range: string # uriorcurie # range: Category inlined: false # Fixed invalid inline for primitive type @@ -142,44 +142,44 @@ classes: - Includes specialized formats (open-air, ecomuseums, virtual museums) examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/museum/Q207694 - has_or_had_type_code: MUSEUM - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/museum/Q207694 + has_type_code: MUSEUM + has_label: - Art Museum@en - kunstmuseum@nl - Kunstmuseum@de - has_or_had_description: museum that primarily exhibits works of art - has_or_had_hypernym: https://nde.nl/ontology/hc/type/museum/Q33506 - has_or_had_category: + has_description: museum that primarily exhibits works of art + has_hypernym: https://nde.nl/ontology/hc/type/museum/Q33506 + categorized_as: - category_name: paintings - category_name: sculptures - category_name: decorative arts - has_or_had_facility: + has_facility: - facility_name: "Museum Caf\xE9" facility_type: FOOD_SERVICE - facility_name: Museum Shop facility_type: RETAIL - facility_name: Education Center facility_type: EDUCATION - complies_or_complied_with: - - has_or_had_identifier: LIDO - has_or_had_label: Lightweight Information Describing Objects + comply_with: + - identified_by: LIDO + has_label: Lightweight Information Describing Objects conservation_lab: true research_department: true - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/museum/Q559049 - has_or_had_type_code: MUSEUM - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/museum/Q559049 + has_type_code: MUSEUM + has_label: - Natural History Museum@en - natuurhistorisch museum@nl - has_or_had_description: museum that exhibits natural history specimens - has_or_had_hypernym: https://nde.nl/ontology/hc/type/museum/Q33506 - has_or_had_category: + has_description: museum that exhibits natural history specimens + has_hypernym: https://nde.nl/ontology/hc/type/museum/Q33506 + categorized_as: - category_name: biological specimens - category_name: fossils - category_name: minerals - category_name: taxidermy - complies_or_complied_with: - - has_or_had_identifier: Darwin Core - has_or_had_label: Darwin Core + comply_with: + - identified_by: Darwin Core + has_label: Darwin Core research_department: true \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/MusicArchive.yaml b/schemas/20251121/linkml/modules/classes/MusicArchive.yaml index 03eacb4c1f..6b3747169c 100644 --- a/schemas/20251121/linkml/modules/classes/MusicArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/MusicArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: MusicArchive: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q53759838 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Music Archive diff --git a/schemas/20251121/linkml/modules/classes/MusicArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/MusicArchiveRecordSetType.yaml index 56b2c70c18..393c1cc52f 100644 --- a/schemas/20251121/linkml/modules/classes/MusicArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/MusicArchiveRecordSetType.yaml @@ -16,9 +16,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: MusicArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by MusicArchive custodians. @@ -26,14 +26,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - MusicArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/MusicArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/MusicArchiveRecordSetTypes.yaml index 7140152bd3..a1ccba63d7 100644 --- a/schemas/20251121/linkml/modules/classes/MusicArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/MusicArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./MusicArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - MusicArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: MusicManuscriptCollection @@ -78,15 +78,15 @@ classes: - MusicArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PerformanceRecordingSeries @@ -115,15 +115,15 @@ classes: - MusicArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ComposerPapersCollection diff --git a/schemas/20251121/linkml/modules/classes/Nachlass.yaml b/schemas/20251121/linkml/modules/classes/Nachlass.yaml index a96acc6994..0613627b52 100644 --- a/schemas/20251121/linkml/modules/classes/Nachlass.yaml +++ b/schemas/20251121/linkml/modules/classes/Nachlass.yaml @@ -8,21 +8,21 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: Nachlass: description: Collection of manuscripts, notes, correspondence, and so on left behind when a scholar or an artist dies. The German term "Nachlass" (literally "that which is left behind") refers to the personal papers and literary remains of a person, typically a writer, artist, scholar, or other notable individual. It represents an important archival concept for personal and literary archives. is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - - has_or_had_type - - has_or_had_score - - has_or_had_identifier + - has_type + - has_score + - identified_by slot_usage: - has_or_had_identifier: - has_or_had_type: + identified_by: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Nachlass diff --git a/schemas/20251121/linkml/modules/classes/Name.yaml b/schemas/20251121/linkml/modules/classes/Name.yaml index 17ecc87077..c7573fdc2a 100644 --- a/schemas/20251121/linkml/modules/classes/Name.yaml +++ b/schemas/20251121/linkml/modules/classes/Name.yaml @@ -13,9 +13,9 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_label - - ../slots/has_or_had_language - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_language + - ../slots/20260202_matang/has_type default_prefix: hc classes: @@ -30,7 +30,7 @@ classes: **Purpose**: Provides structured representation for names including: - - The name value itself (via has_or_had_label) + - The name value itself (via has_label) - Name type classification (e.g., common name, scientific name, trade name) - Language information @@ -47,34 +47,34 @@ classes: **Pattern**: ```yaml - has_or_had_name: - - has_or_had_label: "Dodo" - has_or_had_type: CommonName - has_or_had_language: "en" - - has_or_had_label: "Dronte" - has_or_had_type: CommonName - has_or_had_language: "nl" + has_name: + - has_label: "Dodo" + has_type: CommonName + has_language: "en" + - has_label: "Dronte" + has_type: CommonName + has_language: "nl" ``` slots: - - has_or_had_label - - has_or_had_type - - has_or_had_language + - has_label + - has_type + - has_language slot_usage: - has_or_had_label: + has_label: # range: string required: true examples: - value: "Dodo" - value: "Dronte" - has_or_had_type: + has_type: range: NameType required: false examples: - value: CommonName - value: ScientificName - has_or_had_language: + has_language: # range: string required: false examples: @@ -106,20 +106,20 @@ classes: comments: - "Structured name representation with type and language" - "Replaces simple string-valued common_name slot" - - "Supports multilingual names through has_or_had_language" + - "Supports multilingual names through has_language" - "Type classification via NameType hierarchy" - "Created 2026-01-22 from common_name migration (Rule 53)" examples: - value: - has_or_had_label: "Dodo" - has_or_had_type: CommonName - has_or_had_language: "en" + has_label: "Dodo" + has_type: CommonName + has_language: "en" - value: - has_or_had_label: "Dronte" - has_or_had_type: CommonName - has_or_had_language: "nl" + has_label: "Dronte" + has_type: CommonName + has_language: "nl" - value: - has_or_had_label: "Coast Redwood" - has_or_had_type: CommonName - has_or_had_language: "en" \ No newline at end of file + has_label: "Coast Redwood" + has_type: CommonName + has_language: "en" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/NameType.yaml b/schemas/20251121/linkml/modules/classes/NameType.yaml index 82eb98d0e2..c653fc9034 100644 --- a/schemas/20251121/linkml/modules/classes/NameType.yaml +++ b/schemas/20251121/linkml/modules/classes/NameType.yaml @@ -12,8 +12,8 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: @@ -44,24 +44,24 @@ classes: **Usage**: ```yaml - has_or_had_name: - - has_or_had_label: "Dodo" - has_or_had_type: CommonName # ← NameType subclass - has_or_had_language: "en" + has_name: + - has_label: "Dodo" + has_type: CommonName # ← NameType subclass + has_language: "en" ``` slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description slot_usage: - has_or_had_label: + has_label: # range: string required: true examples: - value: "Common Name" - value: "Scientific Name" - has_or_had_description: + has_description: # range: string required: false diff --git a/schemas/20251121/linkml/modules/classes/NameTypes.yaml b/schemas/20251121/linkml/modules/classes/NameTypes.yaml index d14c8a5a9e..25535d4951 100644 --- a/schemas/20251121/linkml/modules/classes/NameTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/NameTypes.yaml @@ -19,8 +19,8 @@ classes: description: "Vernacular or common name in any language.\n\n**Darwin Core Alignment**:\n\ Maps to `dwc:vernacularName` - \"A common or vernacular name.\"\n\n**Use Cases**:\n\ - Species common names (\"Dodo\", \"Dronte\", \"Coast Redwood\")\n- Product\ - \ common names\n- Informal organization names\n\n**Example**:\n```yaml\nhas_or_had_name:\n\ - \ - has_or_had_label: \"Dodo\"\n has_or_had_type: CommonName\n has_or_had_language:\ + \ common names\n- Informal organization names\n\n**Example**:\n```yaml\nhas_name:\n\ + \ - has_label: \"Dodo\"\n has_type: CommonName\n has_language:\ \ \"en\"\n```\n" close_mappings: - dwc:vernacularName @@ -37,8 +37,8 @@ classes: \n**Darwin Core Alignment**:\nMaps to `dwc:scientificName` - \"The full scientific\ \ name, with authorship \nand date information if known.\"\n\n**Use Cases**:\n\ - Binomial nomenclature for species\n- Taxonomic names at any rank\n\n**Example**:\n\ - ```yaml\nhas_or_had_name:\n - has_or_had_label: \"Raphus cucullatus (Linnaeus,\ - \ 1758)\"\n has_or_had_type: ScientificName\n has_or_had_language: \"\ + ```yaml\nhas_name:\n - has_label: \"Raphus cucullatus (Linnaeus,\ + \ 1758)\"\n has_type: ScientificName\n has_language: \"\ la\"\n```\n" close_mappings: - dwc:scientificName @@ -52,8 +52,8 @@ classes: class_uri: hc:OfficialName description: "Official, formal, or legal name of an entity.\n\n**Use Cases**:\n\ - Organization legal names\n- Official place names\n- Formal document titles\n\ - \n**Example**:\n```yaml\nhas_or_had_name:\n - has_or_had_label: \"Rijksmuseum\ - \ Amsterdam\"\n has_or_had_type: OfficialName\n has_or_had_language: \"\ + \n**Example**:\n```yaml\nhas_name:\n - has_label: \"Rijksmuseum\ + \ Amsterdam\"\n has_type: OfficialName\n has_language: \"\ nl\"\n```\n" close_mappings: - skos:prefLabel @@ -69,8 +69,8 @@ classes: class_uri: hc:TradeName description: "Commercial, trade, or brand name.\n\n**Use Cases**:\n- Company trading\ \ names (DBA)\n- Product brand names\n- Service marks\n\n**Example**:\n```yaml\n\ - has_or_had_name:\n - has_or_had_label: \"The Rijks\"\n has_or_had_type:\ - \ TradeName\n has_or_had_language: \"en\"\n```\n" + has_name:\n - has_label: \"The Rijks\"\n has_type:\ + \ TradeName\n has_language: \"en\"\n```\n" close_mappings: - schema:alternateName annotations: @@ -83,9 +83,9 @@ classes: class_uri: hc:HistoricalName description: "Former or historical name no longer in active use.\n\n**Use Cases**:\n\ - Former city names (Constantinople \u2192 Istanbul)\n- Previous organization\ - \ names\n- Obsolete taxonomic names (synonyms)\n\n**Example**:\n```yaml\nhas_or_had_name:\n\ - \ - has_or_had_label: \"Didus ineptus\"\n has_or_had_type: HistoricalName\n\ - \ has_or_had_language: \"la\"\n```\n" + \ names\n- Obsolete taxonomic names (synonyms)\n\n**Example**:\n```yaml\nhas_name:\n\ + \ - has_label: \"Didus ineptus\"\n has_type: HistoricalName\n\ + \ has_language: \"la\"\n```\n" annotations: specificity_score: 0.45 specificity_rationale: Historical names applicable across all heritage domains. @@ -96,9 +96,9 @@ classes: class_uri: hc:IndigenousName description: "Name in an indigenous or minority language.\n\n**Use Cases**:\n\ - Indigenous place names\n- Traditional ecological knowledge names\n- Minority\ - \ language names for cultural heritage\n\n**Example**:\n```yaml\nhas_or_had_name:\n\ - \ - has_or_had_label: \"Aotearoa\"\n has_or_had_type: IndigenousName\n \ - \ has_or_had_language: \"mi\" # Maori\n```\n" + \ language names for cultural heritage\n\n**Example**:\n```yaml\nhas_name:\n\ + \ - has_label: \"Aotearoa\"\n has_type: IndigenousName\n \ + \ has_language: \"mi\" # Maori\n```\n" annotations: specificity_score: 0.5 specificity_rationale: Indigenous names particularly relevant for cultural heritage @@ -110,8 +110,8 @@ classes: class_uri: hc:Abbreviation description: "Abbreviated form of a name.\n\n**Use Cases**:\n- Acronyms (UNESCO,\ \ ICOM)\n- Standard abbreviations\n- Initialisms\n\n**Example**:\n```yaml\n\ - has_or_had_name:\n - has_or_had_label: \"NHM\"\n has_or_had_type: Abbreviation\n\ - \ has_or_had_language: \"en\"\n```\n" + has_name:\n - has_label: \"NHM\"\n has_type: Abbreviation\n\ + \ has_language: \"en\"\n```\n" annotations: specificity_score: 0.35 specificity_rationale: Abbreviations common across all naming contexts. @@ -122,8 +122,8 @@ classes: class_uri: hc:NickName description: "Informal nickname or pet name.\n\n**Use Cases**:\n- Informal references\ \ to places (\"The City\")\n- Colloquial names for organizations\n- Popular\ - \ names for specimens\n\n**Example**:\n```yaml\nhas_or_had_name:\n - has_or_had_label:\ - \ \"Oxford Dodo\"\n has_or_had_type: NickName\n has_or_had_language: \"\ + \ names for specimens\n\n**Example**:\n```yaml\nhas_name:\n - has_label:\ + \ \"Oxford Dodo\"\n has_type: NickName\n has_language: \"\ en\"\n```\n" annotations: specificity_score: 0.4 diff --git a/schemas/20251121/linkml/modules/classes/NationalArchives.yaml b/schemas/20251121/linkml/modules/classes/NationalArchives.yaml index 75a93387e2..540a52792e 100644 --- a/schemas/20251121/linkml/modules/classes/NationalArchives.yaml +++ b/schemas/20251121/linkml/modules/classes/NationalArchives.yaml @@ -16,10 +16,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: NationalArchives: @@ -27,11 +27,11 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_scope - - has_or_had_identifier + - has_score + - has_scope + - identified_by exact_mappings: - wd:Q2122214 close_mappings: @@ -40,8 +40,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: National Archives diff --git a/schemas/20251121/linkml/modules/classes/NationalArchivesRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/NationalArchivesRecordSetType.yaml index 834513f72d..9b7c00fe41 100644 --- a/schemas/20251121/linkml/modules/classes/NationalArchivesRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/NationalArchivesRecordSetType.yaml @@ -9,8 +9,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: NationalArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections of national archival records. @@ -27,10 +27,10 @@ classes: - NationalArchives - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/NationalArchivesRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/NationalArchivesRecordSetTypes.yaml index 759d20237e..0070e3a562 100644 --- a/schemas/20251121/linkml/modules/classes/NationalArchivesRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/NationalArchivesRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./NationalArchivesRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - NationalArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: GovernmentAdministrativeFonds @@ -78,15 +78,15 @@ classes: - NationalArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: LegislativeRecordSeries @@ -115,15 +115,15 @@ classes: - NationalArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: DiplomaticCorrespondenceCollection @@ -152,15 +152,15 @@ classes: - NationalArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: NationalStatisticsSeries diff --git a/schemas/20251121/linkml/modules/classes/NationalTreasure.yaml b/schemas/20251121/linkml/modules/classes/NationalTreasure.yaml index 6a4eb82e7d..90cb2db84c 100644 --- a/schemas/20251121/linkml/modules/classes/NationalTreasure.yaml +++ b/schemas/20251121/linkml/modules/classes/NationalTreasure.yaml @@ -9,18 +9,18 @@ default_prefix: hc imports: - linkml:types - ../slots/custodian_only - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score + - ../slots/identified_by + - ../slots/20260202_matang/has_score classes: NationalTreasure: description: Treasure or artifact that is regarded as emblematic of a nation's cultural heritage, identity, or significance. National treasures are items of exceptional cultural, historical, or artistic value that are protected by law or official designation. This class represents custodial responsibility for such items rather than the items themselves. is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: + identified_by: custodian_only: equals_string: 'true' annotations: diff --git a/schemas/20251121/linkml/modules/classes/NationalTreasureOfFrance.yaml b/schemas/20251121/linkml/modules/classes/NationalTreasureOfFrance.yaml index 4c468b5069..ecb15d3875 100644 --- a/schemas/20251121/linkml/modules/classes/NationalTreasureOfFrance.yaml +++ b/schemas/20251121/linkml/modules/classes/NationalTreasureOfFrance.yaml @@ -8,18 +8,18 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score + - ../slots/identified_by + - ../slots/20260202_matang/has_score classes: NationalTreasureOfFrance: description: "Designation for entities of cultural significance in France (tr\xE9sor national). French national treasures are cultural property of major importance for the national heritage from an artistic, historical, or archaeological standpoint. Export of such items is prohibited, and the state has preferential purchase rights. This class represents institutions with custodial responsibility for such designated items." is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: + identified_by: annotations: skos:prefLabel: National Treasure of France skos:altLabel: "tr\xE9sor national, French National Treasure" diff --git a/schemas/20251121/linkml/modules/classes/NetworkAnalysis.yaml b/schemas/20251121/linkml/modules/classes/NetworkAnalysis.yaml index 93f64ad7cd..a82f8e87a2 100644 --- a/schemas/20251121/linkml/modules/classes/NetworkAnalysis.yaml +++ b/schemas/20251121/linkml/modules/classes/NetworkAnalysis.yaml @@ -9,10 +9,10 @@ prefixes: imports: - linkml:types - ../slots/connections_by_heritage_type - - ../slots/has_or_had_percentage - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_percentage + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to default_prefix: hc classes: NetworkAnalysis: @@ -20,26 +20,26 @@ classes: description: "Aggregated statistics about the connection network.\n\nProvides summary metrics for quick analysis:\n- Total connections extracted\n- Heritage-relevant count and percentage\n- Breakdown by heritage type (GLAMORCUBESFIXPHDNT)\n\n**Example**:\n```json\n{\n \"total_connections_extracted\": 776,\n \"heritage_relevant_count\": 456,\n \"heritage_relevant_percentage\": 58.8,\n \"connections_by_heritage_type\": {\n \"A\": 45,\n \"M\": 89,\n \"D\": 112,\n \"R\": 78\n }\n}\n```\n" slots: - connections_by_heritage_type - - has_or_had_quantity - - has_or_had_score - - is_or_was_related_to - - has_or_had_percentage + - has_quantity + - has_score + - related_to + - has_percentage slot_usage: - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type required: true examples: - value: "Quantity:\n value: 776\n unit: \"connections\"\n" - - value: "Quantity:\n value: 456\n unit: \"heritage relevant connections\"\n is_or_was_related_to: Heritage" - has_or_had_percentage: + - value: "Quantity:\n value: 456\n unit: \"heritage relevant connections\"\n related_to: Heritage" + has_percentage: range: Percentage inlined: true examples: - value: - has_or_had_value: 58.8 - is_or_was_related_to: - has_or_had_label: Heritage + has_value: 58.8 + related_to: + has_label: Heritage connections_by_heritage_type: range: HeritageTypeCount multivalued: true diff --git a/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchive.yaml b/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchive.yaml index f8d15e4b4e..0db82a8159 100644 --- a/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: NewspaperClippingsArchive: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q65651503 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Newspaper Clippings Archive diff --git a/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchiveRecordSetType.yaml index 9db74ede37..fc4daf8d0c 100644 --- a/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: NewspaperClippingsArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by NewspaperClippingsArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - NewspaperClippingsArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchiveRecordSetTypes.yaml index 59b67847c0..147caf60da 100644 --- a/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/NewspaperClippingsArchiveRecordSetTypes.yaml @@ -19,8 +19,8 @@ default_prefix: hc imports: - ./NewspaperClippingsArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -43,15 +43,15 @@ classes: - NewspaperClippingsArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ClippingsCollection @@ -84,15 +84,15 @@ classes: - NewspaperClippingsArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: SubjectFileCollection diff --git a/schemas/20251121/linkml/modules/classes/NobilityArchive.yaml b/schemas/20251121/linkml/modules/classes/NobilityArchive.yaml index dfa6878a2f..ce2dabd80c 100644 --- a/schemas/20251121/linkml/modules/classes/NobilityArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/NobilityArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: NobilityArchive: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q355358 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Nobility Archive diff --git a/schemas/20251121/linkml/modules/classes/NobilityArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/NobilityArchiveRecordSetType.yaml index 8e305b069e..1ba7ba3adf 100644 --- a/schemas/20251121/linkml/modules/classes/NobilityArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/NobilityArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: NobilityArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by NobilityArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - NobilityArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/NobilityArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/NobilityArchiveRecordSetTypes.yaml index 854267f97d..4b254c7242 100644 --- a/schemas/20251121/linkml/modules/classes/NobilityArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/NobilityArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./NobilityArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - NobilityArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: NobleFamilyPapersFonds @@ -78,15 +78,15 @@ classes: - NobilityArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: EstateRecordsSeries @@ -115,15 +115,15 @@ classes: - NobilityArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: GenealogyCollection diff --git a/schemas/20251121/linkml/modules/classes/NonProfitType.yaml b/schemas/20251121/linkml/modules/classes/NonProfitType.yaml index 98ffd3a59b..2e096e9bdf 100644 --- a/schemas/20251121/linkml/modules/classes/NonProfitType.yaml +++ b/schemas/20251121/linkml/modules/classes/NonProfitType.yaml @@ -9,9 +9,9 @@ description: 'Specialized CustodianType for non-profit organizations (NGOs) focu imports: - linkml:types - ../enums/NonProfitCustodianTypeEnum - - ../slots/has_or_had_beneficiary - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_beneficiary + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/nonprofit_subtype - ../slots/organizational_mission - ../slots/partnership_model @@ -145,7 +145,7 @@ classes: \nProfessional Associations:\n- Q48204 (professional association) - Sector-wide membership bodies\n- Q105558717 (archivists association) - Professional standards and ethics\n- Q215380 (museum professionals network) - Networking and development\n\nCapacity Building Organizations:\n- Q105558717 (heritage training organization) - Skills development\n- Q215380 (technical support NGO) - Consulting and advisory services\n- Q5879427 (heritage capacity building) - Organizational development\n\nEmergency Response:\n- Q105558717 (heritage rescue organization) - Disaster response\n- Q215380 (Blue Shield) - Cultural heritage protection in conflict\n- Q5879427 (heritage at risk program) - Emergency conservation\n\n**Key Distinctions from Other Types**:\n\nvs. HeritageSociety:\n- NonProfit: ADVOCACY/SERVICES (not collecting or practicing heritage)\n- HeritageSociety: COLLECTING + PUBLISHING (operates collections/publications)\n- Example: Heritage advocacy NGO vs. Historical society with museum\n\ \nvs. FeatureCustodian:\n- NonProfit: Does NOT OWN/MANAGE specific heritage sites\n- FeatureCustodian: OWNS/MANAGES physical monuments/sites\n- Example: Monument advocacy group vs. Monument management trust\n\nvs. OfficialInstitution:\n- NonProfit: NON-GOVERNMENTAL, civil society organization\n- OfficialInstitution: GOVERNMENT agency with statutory authority\n- Example: Heritage NGO vs. National heritage agency\n\nvs. ResearchOrganization:\n- NonProfit: PRIMARY mission = ADVOCACY/SERVICES (research is secondary)\n- ResearchOrganization: PRIMARY mission = RESEARCH (heritage as research focus)\n- Example: Heritage advocacy NGO vs. Heritage research institute\n\nvs. EducationProvider:\n- NonProfit: NON-FORMAL training/workshops (short-term, professional development)\n- EducationProvider: FORMAL education (degrees, accredited programs)\n- Example: Conservation training NGO vs. University conservation program\n\n**RDF Serialization Example**:\n\n```turtle\n@prefix hc: <https://nde.nl/ontology/hc/>\ \ .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix schema: <http://schema.org/> .\n@prefix crm: <http://www.cidoc-crm.org/cidoc-crm/> .\n@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n\nhc:NonProfitType\n a skos:Concept, hc:CustodianType ;\n skos:prefLabel \"Non-Profit Organization Type\"@en,\n \"Non-Profit Organisatie Type\"@nl,\n \"Gemeinn\xFCtzige Organisation Typ\"@de,\n \"Type d'Organisation \xE0 But Non Lucratif\"@fr ;\n skos:definition \"Heritage-focused non-profit organizations (advocacy, services, funding)\"@en ;\n skos:broader hc:CustodianType ;\n skos:narrower hc:AdvocacyOrganization,\n hc:GrantMakingFoundation,\n hc:ProfessionalAssociation ;\n schema:url <https://nde.nl/ontology/hc/class/non-profit-type> .\n\n# Example: Europa Nostra (pan-European heritage advocacy network)\n<https://w3id.org/heritage/custodian/eu/europa-nostra>\n a schema:NGO, foaf:Organization, crm:E74_Group,\ - \ hc:NonProfitOrganization ;\n hc:custodian_type hc:NonProfitType ;\n hc:organizational_mission \"Heritage advocacy, Awareness campaigns, Policy influence\" ;\n hc:program_activities \"7 Most Endangered Programme\", \"European Heritage Awards\", \"Advocacy campaigns\" ;\n hc:geographic_scope \"Pan-European\", \"50+ countries\", \"300+ member organizations\" ;\n hc:has_or_had_beneficiary \"Heritage organizations\", \"Local communities\", \"Policy makers\", \"General public\" ;\n hc:partnership_model \"Membership network\", \"Co-funded programs\", \"Coalition building\" ;\n hc:impact_measurement \"Sites saved from demolition\", \"Policy changes achieved\", \"Public awareness metrics\" ;\n schema:name \"Europa Nostra\" ;\n schema:foundingDate \"1963\" ;\n schema:location \"The Hague, Netherlands\" ;\n schema:description \"Pan-European federation for cultural heritage, advocating for heritage protection and celebrating excellence through awards and campaigns\" ;\n schema:url\ + \ hc:NonProfitOrganization ;\n hc:custodian_type hc:NonProfitType ;\n hc:organizational_mission \"Heritage advocacy, Awareness campaigns, Policy influence\" ;\n hc:program_activities \"7 Most Endangered Programme\", \"European Heritage Awards\", \"Advocacy campaigns\" ;\n hc:geographic_scope \"Pan-European\", \"50+ countries\", \"300+ member organizations\" ;\n hc:has_beneficiary \"Heritage organizations\", \"Local communities\", \"Policy makers\", \"General public\" ;\n hc:partnership_model \"Membership network\", \"Co-funded programs\", \"Coalition building\" ;\n hc:impact_measurement \"Sites saved from demolition\", \"Policy changes achieved\", \"Public awareness metrics\" ;\n schema:name \"Europa Nostra\" ;\n schema:foundingDate \"1963\" ;\n schema:location \"The Hague, Netherlands\" ;\n schema:description \"Pan-European federation for cultural heritage, advocating for heritage protection and celebrating excellence through awards and campaigns\" ;\n schema:url\ \ <https://www.europanostra.org/> ;\n foaf:member <https://heritageorganization.example/member/001> .\n```\n" exact_mappings: - skos:Concept @@ -159,12 +159,12 @@ classes: - schema:EducationalOrganization - schema:FundingAgency slots: - - has_or_had_beneficiary - - has_or_had_type + - has_beneficiary + - has_type - nonprofit_subtype - organizational_mission - partnership_model - - has_or_had_score + - has_score slot_usage: organizational_mission: # range: string @@ -177,7 +177,7 @@ classes: - value: Training workshops, Webinars, Certifications - value: Global, 100+ countries, 10 regional offices - value: National (Netherlands), 500 members - has_or_had_beneficiary: + has_beneficiary: # range: string multivalued: true required: true @@ -194,5 +194,5 @@ classes: - value: Grassroots coalition, Community partnerships - value: Projects funded, Success rate, Beneficiaries - value: Professionals trained, Knowledge retention - has_or_had_type: + has_type: equals_expression: '["hc:NonProfitType"]' diff --git a/schemas/20251121/linkml/modules/classes/NotarialArchive.yaml b/schemas/20251121/linkml/modules/classes/NotarialArchive.yaml index efe81ea23e..54d32f909e 100644 --- a/schemas/20251121/linkml/modules/classes/NotarialArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/NotarialArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: NotarialArchive: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q8203685 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Notarial Archive diff --git a/schemas/20251121/linkml/modules/classes/NotarialArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/NotarialArchiveRecordSetType.yaml index d5dae6b8f7..a537b0dc09 100644 --- a/schemas/20251121/linkml/modules/classes/NotarialArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/NotarialArchiveRecordSetType.yaml @@ -16,9 +16,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: NotarialArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by NotarialArchive custodians. @@ -27,14 +27,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - NotarialArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/NotarialArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/NotarialArchiveRecordSetTypes.yaml index fb881cf0df..fef2ed1e3a 100644 --- a/schemas/20251121/linkml/modules/classes/NotarialArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/NotarialArchiveRecordSetTypes.yaml @@ -19,8 +19,8 @@ default_prefix: hc imports: - ./NotarialArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -43,15 +43,15 @@ classes: - NotarialArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: NotarialActsSeries @@ -84,15 +84,15 @@ classes: - NotarialArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ProtocolSeries diff --git a/schemas/20251121/linkml/modules/classes/Note.yaml b/schemas/20251121/linkml/modules/classes/Note.yaml index 5545e03940..b539ce13dd 100644 --- a/schemas/20251121/linkml/modules/classes/Note.yaml +++ b/schemas/20251121/linkml/modules/classes/Note.yaml @@ -15,7 +15,7 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/language - ../slots/note_content - ../slots/note_date @@ -45,14 +45,14 @@ classes: - General documentation notes **Replaces** (per slot_fixes.yaml): - - `claim_note` (string) → has_or_had_note with Note class - - `category_note` (string) → has_or_had_note with Note class - - `certainty_note` (string) → has_or_had_note with Note class - - `conservation_note` (string) → has_or_had_note with Note class - - `copy_note` (string) → has_or_had_note with Note class - - `event_note` (string) → has_or_had_note with Note class - - `extraction_note` (string) → has_or_had_note with Note class - - `feature_note` (string) → has_or_had_note with Note class + - `claim_note` (string) → has_note with Note class + - `category_note` (string) → has_note with Note class + - `certainty_note` (string) → has_note with Note class + - `conservation_note` (string) → has_note with Note class + - `copy_note` (string) → has_note with Note class + - `event_note` (string) → has_note with Note class + - `extraction_note` (string) → has_note with Note class + - `feature_note` (string) → has_note with Note class - Other *_note slots per slot_fixes.yaml close_mappings: @@ -65,7 +65,7 @@ classes: - note_content - note_date - language - - has_or_had_score + - has_score slot_usage: note_type: diff --git a/schemas/20251121/linkml/modules/classes/Notes.yaml b/schemas/20251121/linkml/modules/classes/Notes.yaml index e829553811..396079b5a6 100644 --- a/schemas/20251121/linkml/modules/classes/Notes.yaml +++ b/schemas/20251121/linkml/modules/classes/Notes.yaml @@ -15,7 +15,7 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_score # was: template_specificity + - ../slots/20260202_matang/has_score # was: template_specificity - ../slots/language - ../slots/note_content - ../slots/note_date @@ -55,7 +55,7 @@ classes: - note_content - note_date - language - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: note_type: diff --git a/schemas/20251121/linkml/modules/classes/OAIPMHEndpoint.yaml b/schemas/20251121/linkml/modules/classes/OAIPMHEndpoint.yaml index 483992ce71..1100c11f18 100644 --- a/schemas/20251121/linkml/modules/classes/OAIPMHEndpoint.yaml +++ b/schemas/20251121/linkml/modules/classes/OAIPMHEndpoint.yaml @@ -13,7 +13,7 @@ imports: - ../enums/OAIDeletedRecordPolicyEnum - ../enums/OAIGranularityEnum - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/response_format classes: OAIPMHEndpoint: @@ -50,7 +50,7 @@ classes: - http://www.openarchives.org/OAI/openarchivesprotocol.html - https://www.openarchives.org/OAI/2.0/guidelines.htm slots: - - has_or_had_score + - has_score - protocol_version annotations: specificity_score: 0.1 @@ -70,6 +70,6 @@ classes: ' slots: - - has_or_had_score + - has_score - name - record_count diff --git a/schemas/20251121/linkml/modules/classes/Observation.yaml b/schemas/20251121/linkml/modules/classes/Observation.yaml index 16bfcc7c78..ee959071d2 100644 --- a/schemas/20251121/linkml/modules/classes/Observation.yaml +++ b/schemas/20251121/linkml/modules/classes/Observation.yaml @@ -16,11 +16,11 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score classes: Observation: class_uri: sosa:Observation - description: "Abstract base class for observational evidence from sources.\n\n**Purpose**:\nObservation is the base class for source-based evidence about entities.\nConcrete implementations include:\n- CustodianObservation - Evidence about heritage custodians\n- PersonObservation - Evidence about people (staff, directors)\n- WebObservation - Evidence from web scraping\n\n**PiCo Model Alignment**:\nFollowing the Persons in Context (PiCo) model, observations are\ndiscrete pieces of evidence from specific sources that may be\ncombined to reconstruct formal entities.\n\n**PROV-O Semantics**:\n- `prov:Entity`: Observations are things with provenance\n- `is_or_was_based_on`: Links derived entities back to observations\n\n**Relationship to EntityReconstruction**:\n```\nObservation[] (source evidence)\n \u2502\n \u2514\u2500\u2500 is_or_was_based_on \u2190 EntityReconstruction\n (reconstructed formal entity)\n```\n" + description: "Abstract base class for observational evidence from sources.\n\n**Purpose**:\nObservation is the base class for source-based evidence about entities.\nConcrete implementations include:\n- CustodianObservation - Evidence about heritage custodians\n- PersonObservation - Evidence about people (staff, directors)\n- WebObservation - Evidence from web scraping\n\n**PiCo Model Alignment**:\nFollowing the Persons in Context (PiCo) model, observations are\ndiscrete pieces of evidence from specific sources that may be\ncombined to reconstruct formal entities.\n\n**PROV-O Semantics**:\n- `prov:Entity`: Observations are things with provenance\n- `based_on`: Links derived entities back to observations\n\n**Relationship to EntityReconstruction**:\n```\nObservation[] (source evidence)\n \u2502\n \u2514\u2500\u2500 based_on \u2190 EntityReconstruction\n (reconstructed formal entity)\n```\n" exact_mappings: - sosa:Observation broad_mappings: @@ -29,7 +29,7 @@ classes: - crm:E13_Attribute_Assignment abstract: true slots: - - has_or_had_score + - has_score annotations: custodian_types: '["*"]' custodian_types_rationale: Abstract base class for all observations. @@ -37,7 +37,7 @@ classes: specificity_score: 0.4 specificity_rationale: Broad base class for observational evidence. comments: - - "MIGRATED: supports derived_from_observation \u2192 is_or_was_based_on (Rule 53)" + - "MIGRATED: supports derived_from_observation \u2192 based_on (Rule 53)" - Abstract base for observational evidence - PiCo model Observation pattern - 'Subtypes: CustodianObservation, PersonObservation, WebObservation' diff --git a/schemas/20251121/linkml/modules/classes/OfficialInstitutionType.yaml b/schemas/20251121/linkml/modules/classes/OfficialInstitutionType.yaml index e6f6d41457..a1d66664f4 100644 --- a/schemas/20251121/linkml/modules/classes/OfficialInstitutionType.yaml +++ b/schemas/20251121/linkml/modules/classes/OfficialInstitutionType.yaml @@ -4,10 +4,10 @@ title: Official Institution Type Classification imports: - linkml:types - ../enums/OfficialInstitutionTypeEnum - - ../slots/has_or_had_mandate # was: heritage_mandate - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_part_of + - ../slots/20260202_matang/has_mandate # was: heritage_mandate + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/part_of - ../slots/official_institution_subtype - ../slots/oversight_jurisdiction - ../slots/policy_authority @@ -131,31 +131,31 @@ classes: - literal_form: "ag\xEAncia de patrim\xF4nio" predicate: EXACT_SYNONYM in_language: pt - description: "Specialized custodian type for official government institutions - public sector\norganizations with formal governmental authority, heritage mandates, or regulatory\nresponsibilities related to cultural heritage preservation, funding, or advocacy.\n\n**Wikidata Base Concept**: Q2659904 (government organization)\n\n**Scope**:\nOfficial institutions are distinguished by their:\n- Formal government authority and legal mandates\n- Heritage preservation or regulatory responsibilities\n- Public sector funding and accountability\n- Policy-making or enforcement powers\n- National, regional, or local government has_or_had_affiliation\n\n**Key Official Institution Subtypes** (50+ heritage-relevant entities):\n\n**By Administrative Level**:\n- National heritage agencies - Top-level cultural heritage authorities\n- State/provincial heritage departments - Regional heritage agencies\n- Municipal cultural departments - Local government heritage offices\n- Federal cultural ministries -\ + description: "Specialized custodian type for official government institutions - public sector\norganizations with formal governmental authority, heritage mandates, or regulatory\nresponsibilities related to cultural heritage preservation, funding, or advocacy.\n\n**Wikidata Base Concept**: Q2659904 (government organization)\n\n**Scope**:\nOfficial institutions are distinguished by their:\n- Formal government authority and legal mandates\n- Heritage preservation or regulatory responsibilities\n- Public sector funding and accountability\n- Policy-making or enforcement powers\n- National, regional, or local government has_affiliation\n\n**Key Official Institution Subtypes** (50+ heritage-relevant entities):\n\n**By Administrative Level**:\n- National heritage agencies - Top-level cultural heritage authorities\n- State/provincial heritage departments - Regional heritage agencies\n- Municipal cultural departments - Local government heritage offices\n- Federal cultural ministries -\ \ National culture/heritage policy bodies\n- Regional archival services - Provincial/state archival agencies\n\n**By Heritage Function**:\n- **Arts Councils** (Q3400795 instance) - Government arts funding bodies\n - Arts Council England, Dutch Council for Culture, Canada Council for the Arts\n- **Monument/Heritage Commissions** - Historic preservation regulatory bodies\n - Monuments boards, heritage listing authorities\n- **Archival Services** (Q10418057 type) - Government archival agencies\n - National Archives services, state archival departments\n- **Cultural Heritage Agencies** - Integrated heritage management\n - Dutch Cultural Heritage Agency (RCE), Historic England\n- **Museum/Library Services** - Government-operated museum/library networks\n - National museum authorities, public library consortia\n\n**By Mandate Type**:\n- **Regulatory Bodies** - Legal enforcement powers\n - Export licensing authorities, heritage permit issuers\n- **Funding Agencies** - Grant-making cultural\ \ authorities\n - Arts councils, heritage lottery funds\n- **Advisory Bodies** - Policy advisory councils\n - Heritage advisory committees, cultural policy forums\n- **Aggregation Platforms** - Government heritage portals\n - Network Digital Heritage (NDE), Europeana national aggregators\n\n**By Jurisdiction**:\n- **National Level**: Ministry of Culture equivalents, national heritage services\n- **State/Provincial**: Provincial heritage platforms, regional archival services\n- **Municipal/Local**: City cultural departments, municipal monument offices\n- **Supranational**: UNESCO heritage committees, EU cultural programs\n\n**Dutch Examples** (TOOI-aligned):\n- Rijksdienst voor het Cultureel Erfgoed (RCE) - National heritage agency\n- Nationaal Archief - National archival service\n- Netwerk Digitaal Erfgoed (NDE) - Digital heritage aggregation platform\n- Provinciale archiefdiensten - Provincial archival services (12 provinces)\n- Rijksmuseum - Government-operated national museum\n\ \n**International Examples**:\n- Historic England - UK heritage regulatory body\n- Library and Archives Canada - Federal archival/library service\n- Smithsonian Institution - US federal museum/research complex\n- Archives nationales (France) - French national archives\n- Bundesdenkmalamt (Austria) - Federal heritage protection office\n\n**Distinction from Other Types**:\n- vs. ARCHIVE (A): Archival services WITH government mandate/authority (not just archival holdings)\n- vs. MUSEUM (M): Government heritage agencies that OVERSEE museums (not operate collections)\n- vs. NGO (N): Public sector (government-operated) vs. private/civil society\n- vs. RESEARCH_CENTER (R): Primary mandate is heritage administration, not research\n\n**RDF Serialization Example**:\n```turtle\n@prefix hc: <https://nde.nl/ontology/hc/> .\n@prefix skos: <http://www.w3.org/2004/02/skos/core#> .\n@prefix cpov: <http://data.europa.eu/m8g/> .\n@prefix tooi: <https://identifier.overheid.nl/tooi/def/ont/> .\n@prefix\ \ schema: <http://schema.org/> .\n@prefix wd: <http://www.wikidata.org/entity/> .\n\n# Dutch Cultural Heritage Agency (RCE)\n<https://w3id.org/heritage/custodian/nl/rce>\n a cpov:PublicOrganisation, tooi:Overheidsorganisatie ;\n hc:custodian_type hc:OfficialInstitutionType ;\n hc:wikidata_entity wd:Q18600731 ; # Rijksdienst voor het Cultureel Erfgoed\n hc:administrative_level \"national\" ;\n hc:heritage_mandate \"preservation\", \"regulation\", \"funding\", \"research\" ;\n hc:regulatory_authority true ;\n hc:funding_programs \"Heritage subsidies\", \"Monument grants\" ;\n hc:oversight_jurisdiction \"Netherlands\" ;\n hc:policy_authority \"National heritage policy\" ;\n skos:prefLabel \"Rijksdienst voor het Cultureel Erfgoed\"@nl ;\n skos:altLabel \"RCE\"@nl, \"Cultural Heritage Agency of the Netherlands\"@en ;\n schema:url <https://www.cultureelerfgoed.nl/> .\n```\n\n**Provenance**:\nThis classification supports multi-aspect modeling: official institutions can simultaneously\n\ be CUSTODIANS (managing collections), LEGAL ENTITIES (government agencies), and PLACES\n(headquarters buildings) with independent temporal lifecycles.\n\n**See Also**:\n- Dutch TOOI ontology: `/data/ontology/tooiont.ttl`\n- EU CPOV specification: `/data/ontology/core-public-organisation-ap.ttl`\n- Schema.org GovernmentOrganization: `schema:GovernmentOrganization`\n" slots: - - is_or_was_part_of - - has_or_had_type - - has_or_had_mandate # was: heritage_mandate - migrated per Rule 53 (2026-01-28) + - part_of + - has_type + - has_mandate # was: heritage_mandate - migrated per Rule 53 (2026-01-28) - official_institution_subtype - oversight_jurisdiction - policy_authority - regulatory_authority - - has_or_had_score + - has_score slot_usage: - is_or_was_part_of: + part_of: # range: string # uriorcurie # range: GovernmentHierarchy examples: - value: - has_or_had_label: National Government - has_or_had_tier: - has_or_had_label: National - has_or_had_mandate: # was: heritage_mandate - migrated per Rule 53 (2026-01-28) + has_label: National Government + has_tier: + has_label: National + has_mandate: # was: heritage_mandate - migrated per Rule 53 (2026-01-28) # range: string # uriorcurie # range: Mandate multivalued: true @@ -163,8 +163,8 @@ classes: required: false examples: - value: - has_or_had_label: "preservation" - has_or_had_description: "Legal responsibility to preserve national heritage" + has_label: "preservation" + has_description: "Legal responsibility to preserve national heritage" regulatory_authority: range: boolean required: false @@ -174,5 +174,5 @@ classes: policy_authority: # range: string required: false - has_or_had_type: + has_type: equals_expression: '["hc:OfficialInstitutionType"]' diff --git a/schemas/20251121/linkml/modules/classes/OnlineNewsArchive.yaml b/schemas/20251121/linkml/modules/classes/OnlineNewsArchive.yaml index 6dfcba6738..fa49caed33 100644 --- a/schemas/20251121/linkml/modules/classes/OnlineNewsArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/OnlineNewsArchive.yaml @@ -16,10 +16,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - ../slots/platform_type_id classes: @@ -28,10 +28,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q2001867 close_mappings: @@ -42,10 +42,10 @@ classes: mixins: - DigitalPlatformType slot_usage: - has_or_had_identifier: null + identified_by: null platform_type_id: identifier: false - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Online News Archive diff --git a/schemas/20251121/linkml/modules/classes/OnlineNewsArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/OnlineNewsArchiveRecordSetType.yaml index 950a906da7..67f282696a 100644 --- a/schemas/20251121/linkml/modules/classes/OnlineNewsArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/OnlineNewsArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: OnlineNewsArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by OnlineNewsArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - OnlineNewsArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/OnlineNewsArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/OnlineNewsArchiveRecordSetTypes.yaml index 9f3d71c08b..3bc6b601ca 100644 --- a/schemas/20251121/linkml/modules/classes/OnlineNewsArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/OnlineNewsArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./OnlineNewsArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - OnlineNewsArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: DigitalNewsCollection @@ -78,15 +78,15 @@ classes: - OnlineNewsArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: WebPublicationFonds diff --git a/schemas/20251121/linkml/modules/classes/OpeningHours.yaml b/schemas/20251121/linkml/modules/classes/OpeningHours.yaml index 276c1d1b40..bb456b71e0 100644 --- a/schemas/20251121/linkml/modules/classes/OpeningHours.yaml +++ b/schemas/20251121/linkml/modules/classes/OpeningHours.yaml @@ -31,4 +31,4 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' slots: - - has_or_had_period + - has_period diff --git a/schemas/20251121/linkml/modules/classes/OperationalArchive.yaml b/schemas/20251121/linkml/modules/classes/OperationalArchive.yaml index ccae3aabc3..bf781fca7f 100644 --- a/schemas/20251121/linkml/modules/classes/OperationalArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/OperationalArchive.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: OperationalArchive: class_uri: schema:ArchiveComponent description: Operational archive. slots: - - has_or_had_name + - has_name annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/OperationalUnit.yaml b/schemas/20251121/linkml/modules/classes/OperationalUnit.yaml index 3924d40360..3848e0cb37 100644 --- a/schemas/20251121/linkml/modules/classes/OperationalUnit.yaml +++ b/schemas/20251121/linkml/modules/classes/OperationalUnit.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: OperationalUnit: class_uri: org:OrganizationalUnit description: Operational unit. slots: - - has_or_had_name + - has_name annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Organization.yaml b/schemas/20251121/linkml/modules/classes/Organization.yaml index 24209ce0c8..771d1ceb69 100644 --- a/schemas/20251121/linkml/modules/classes/Organization.yaml +++ b/schemas/20251121/linkml/modules/classes/Organization.yaml @@ -8,8 +8,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score + - ../slots/identified_by + - ../slots/20260202_matang/has_score - ../slots/organizational_level classes: Organization: @@ -17,10 +17,10 @@ classes: is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: + identified_by: organizational_level: equals_string: broad category annotations: diff --git a/schemas/20251121/linkml/modules/classes/OrganizationBranch.yaml b/schemas/20251121/linkml/modules/classes/OrganizationBranch.yaml index f786dba958..e1d74e5286 100644 --- a/schemas/20251121/linkml/modules/classes/OrganizationBranch.yaml +++ b/schemas/20251121/linkml/modules/classes/OrganizationBranch.yaml @@ -5,17 +5,17 @@ imports: - linkml:types - ../enums/OrganizationBranchTypeEnum - ../slots/contact_point - - ../slots/has_or_had_branch - - ../slots/has_or_had_description - - ../slots/has_or_had_head - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_branch + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_head + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/is_branch_of - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by - ../slots/located_at - ../slots/refers_to_custodian - ../slots/temporal_extent @@ -35,7 +35,7 @@ classes: class_uri: org:OrganizationalUnit description: "Formal organizational branch or sub-organization of a heritage custodian\nthat operates at a specific physical location (AuxiliaryPlace).\n\n**CRITICAL DISTINCTION FROM OrganizationalStructure**:\n\n| OrganizationBranch | OrganizationalStructure |\n|-------------------|------------------------|\n| **Formal** branches with administrative status | **Informal** operational units |\n| Tied to PHYSICAL LOCATION (AuxiliaryPlace) | May or may not have fixed location |\n| Semi-autonomous (may have own budget, staff) | Part of main organizational hierarchy |\n| Examples: Regional archive, branch library | Examples: Department, team, division |\n\n**W3C ORG ALIGNMENT**:\n\n`org:OrganizationalUnit` - \"An Organization such as a University Support Unit \nwhich is part of some larger FormalOrganization and only has full recognition \nwithin the context of that FormalOrganization.\"\n\nKey properties:\n- `org:unitOf` - links unit to parent organization\n- `org:hasSite` - links organization\ \ to physical site\n- `org:hasSubOrganization` - links to sub-branches\n\n**THREE-TIER ORGANIZATIONAL MODEL**:\n\n1. **Custodian** (hub): The main heritage institution\n2. **OrganizationBranch** (formal sub-organization): \n - Located at AuxiliaryPlace\n - Semi-autonomous branch\n3. **OrganizationalStructure** (informal units):\n - Departments, teams within branch or main org\n - Can be assigned to branch via has_operational_unit\n\n**RELATIONSHIP PATTERN**:\n\n```\nCustodian (hub)\n \u2502\n \u251C\u2500\u2500 place_designation \u2192 CustodianPlace (main headquarters)\n \u2502 \u2514\u2500\u2500 auxiliary_places \u2192 AuxiliaryPlace (branch sites)\n \u2502 \u2514\u2500\u2500 hosts_branch \u2192 OrganizationBranch (THIS CLASS)\n \u2502 \u2514\u2500\u2500 has_operational_unit \u2192 OrganizationalStructure\n \u2502\n \u2514\u2500\u2500 organizational_structure \u2192 OrganizationalStructure (main org units)\n```\n\n**USE CASES**:\n\n1. **Regional Archive\ - \ Branches**:\n - National Archives \u2192 Regional Office Noord-Holland\n - Regional office has own staff, reading room, collections\n \n2. **University Library Branches**:\n - Main library \u2192 Science Library \u2192 Medical Library\n - Each branch at different campus location\n \n3. **Museum Satellite Galleries**:\n - Main museum \u2192 Contemporary Art Wing (off-site)\n - Separate building, curated exhibitions\n \n4. **Conservation/Research Centers**:\n - Main institution \u2192 Conservation Lab (different building)\n - Specialized facility with own staff\n\n**Example - National Archives Branch**:\n```yaml\nAuxiliaryPlace:\n place_name: \"Regionaal Historisch Centrum Noord-Holland\"\n auxiliary_place_type: BRANCH_OFFICE\n hosts_branch:\n - has_or_had_identifier: \"https://nde.nl/ontology/hc/branch/na-rhc-noord-holland\"\n has_or_had_label: \"RHC Noord-Holland\"\n branch_type: REGIONAL_OFFICE\n has_operational_unit:\n - unit_name:\ + \ Branches**:\n - National Archives \u2192 Regional Office Noord-Holland\n - Regional office has own staff, reading room, collections\n \n2. **University Library Branches**:\n - Main library \u2192 Science Library \u2192 Medical Library\n - Each branch at different campus location\n \n3. **Museum Satellite Galleries**:\n - Main museum \u2192 Contemporary Art Wing (off-site)\n - Separate building, curated exhibitions\n \n4. **Conservation/Research Centers**:\n - Main institution \u2192 Conservation Lab (different building)\n - Specialized facility with own staff\n\n**Example - National Archives Branch**:\n```yaml\nAuxiliaryPlace:\n place_name: \"Regionaal Historisch Centrum Noord-Holland\"\n auxiliary_place_type: BRANCH_OFFICE\n hosts_branch:\n - identified_by: \"https://nde.nl/ontology/hc/branch/na-rhc-noord-holland\"\n has_label: \"RHC Noord-Holland\"\n branch_type: REGIONAL_OFFICE\n has_operational_unit:\n - unit_name:\ \ \"Reading Room Services\"\n - unit_name: \"Digitization Team\"\n is_branch_of: \"https://nde.nl/ontology/hc/nl-na\"\n```\n\n**DISTINCTION FROM schema:branchOf**:\n\nSchema.org `branchOf` links commercial branches (e.g., bank branches).\n`org:unitOf` is more appropriate for heritage institutions as it:\n- Models public sector organizational hierarchies\n- Allows for semi-autonomous units\n- Integrates with formal organizational structures\n" exact_mappings: - org:OrganizationalUnit @@ -47,42 +47,42 @@ classes: - schema:branchOf - schema:department slots: - - has_or_had_description - - has_or_had_head - - has_or_had_identifier - - has_or_had_label - - has_or_had_type + - has_description + - has_head + - identified_by + - has_label + - has_type - contact_point - - has_or_had_branch + - has_branch - is_branch_of - located_at - refers_to_custodian - - has_or_had_quantity - - has_or_had_score + - has_quantity + - has_score - temporal_extent - - is_or_was_derived_from - - is_or_was_generated_by + - derived_from + - generated_by slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/branch/rm-schiphol-exhibition - has_or_had_label: + has_label: # range: string required: true multivalued: false examples: - value: Rijksmuseum Schiphol - value: Conservation Division - Amersfoort - has_or_had_type: + has_type: # range: string # uriorcurie required: true examples: - value: ExhibitionSpaceUnit - value: ConservationLabUnit - has_or_had_description: + has_description: # range: string examples: - value: Small exhibition space at Schiphol Airport featuring rotating highlights from the Rijksmuseum collection. @@ -98,20 +98,20 @@ classes: required: true examples: - value: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - has_or_had_branch: + has_branch: range: OrganizationBranch multivalued: true inlined_as_list: true examples: - value: - has_or_had_label: Schiphol Terminal 2 Kiosk - has_or_had_head: + has_label: Schiphol Terminal 2 Kiosk + has_head: range: Person examples: - value: https://nde.nl/ontology/hc/person/dr-maria-van-der-berg - value: full_name: Dr. Maria van der Berg - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type contact_point: @@ -128,11 +128,11 @@ classes: - value: begin_of_the_begin: '2002-10-01' end_of_the_end: '2020-03-15' - is_or_was_derived_from: + derived_from: # range: string # CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false refers_to_custodian: @@ -147,7 +147,7 @@ classes: - Branches CONTAIN OrganizationalStructure (internal departments/teams) - W3C ORG org:OrganizationalUnit for semi-autonomous sub-organizations - Temporal validity tracks branch lifecycle (opened/closed/merged) - - 'Hierarchical: branches can have sub-branches via has_or_had_branch' + - 'Hierarchical: branches can have sub-branches via has_branch' see_also: - https://www.w3.org/TR/vocab-org/#org:OrganizationalUnit - https://www.w3.org/TR/vocab-org/#org:hasSite @@ -155,43 +155,43 @@ classes: - https://www.w3.org/TR/vcard-rdf/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/branch/rm-schiphol - has_or_had_label: Rijksmuseum Schiphol + identified_by: https://nde.nl/ontology/hc/branch/rm-schiphol + has_label: Rijksmuseum Schiphol branch_type: EXHIBITION_SPACE - has_or_had_description: Small exhibition space at Schiphol Airport featuring rotating highlights from the collection. + has_description: Small exhibition space at Schiphol Airport featuring rotating highlights from the collection. located_at: - https://nde.nl/ontology/hc/aux-place/rijksmuseum-schiphol - unit_name: Exhibition Curation Team - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type is_branch_of: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type contact_point: schiphol@rijksmuseum.nl refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/branch/rm-depot-operations - has_or_had_label: Collection Storage Operations - Amersfoort + identified_by: https://nde.nl/ontology/hc/branch/rm-depot-operations + has_label: Collection Storage Operations - Amersfoort branch_type: STORAGE_MANAGEMENT - has_or_had_description: Off-site collection storage facility managing overflow objects and art storage. + has_description: Off-site collection storage facility managing overflow objects and art storage. located_at: - https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort - unit_name: Storage Management Team - unit_name: Climate Control Monitoring is_branch_of: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/branch/na-rhc-nh - has_or_had_label: Regionaal Historisch Centrum Noord-Holland + identified_by: https://nde.nl/ontology/hc/branch/na-rhc-nh + has_label: Regionaal Historisch Centrum Noord-Holland branch_type: REGIONAL_OFFICE - has_or_had_description: Regional archives center serving Noord-Holland province, providing reading room services and archival research support. + has_description: Regional archives center serving Noord-Holland province, providing reading room services and archival research support. is_branch_of: https://nde.nl/ontology/hc/nl-na - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type refers_to_custodian: https://nde.nl/ontology/hc/nl-na diff --git a/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml b/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml index f0ec28c276..559f57571f 100644 --- a/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml @@ -15,14 +15,14 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_documentation - - ../slots/has_or_had_origin - - ../slots/has_or_had_rationale - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/has_or_had_url - - ../slots/is_or_was_transferred_to + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_documentation + - ../slots/20260202_matang/has_origin + - ../slots/20260202_matang/has_rationale + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_url + - ../slots/20260202_matang/transferred_to - ../slots/staff_impact - ../slots/temporal_extent - ../enums/OrganizationalChangeEventTypeEnum @@ -47,10 +47,10 @@ classes: **Integration with Place Classes**: | Slot | Class | Purpose | |------|-------|---------| - | is_or_was_located_at | CustodianPlace | Where event occurred (board meeting, ceremony) | + | located_at | CustodianPlace | Where event occurred (board meeting, ceremony) | | from_location | CustodianPlace | Previous location (RELOCATION) | | to_location | CustodianPlace | New location (RELOCATION) | - | has_or_had_affected_territory | GeoSpatialPlace | Geographic areas affected (jurisdictions, boundaries) | + | has_affected_territory | GeoSpatialPlace | Geographic areas affected (jurisdictions, boundaries) | CustodianPlace provides nominal references ("the boardroom"), while GeoSpatialPlace provides precise coordinates (lat/lon, WKT polygons). **TOOI Alignment**: @@ -75,17 +75,17 @@ classes: - crm:E9_Move - geosparql:Feature slots: - - has_or_had_rationale - - has_or_had_documentation + - has_rationale + - has_documentation - temporal_extent - - has_or_had_description - - has_or_had_type - - has_or_had_origin + - has_description + - has_type + - has_origin - staff_impact - - has_or_had_score - - is_or_was_transferred_to + - has_score + - transferred_to slot_usage: - has_or_had_type: + has_type: required: true range: OrganizationalChangeEventTypeEnum examples: @@ -98,42 +98,42 @@ classes: examples: - value: begin_of_the_begin: '2013-04-01' - has_or_had_description: + has_description: required: true # range: string examples: - value: Merger of Restoration Department (12 FTE, founded 1885) and Research Department (16 FTE) to form Conservation and Research Department (28 FTE). Implemented as part of museum renovation and reopening strategy. Combined conservation lab facilities and integrated scientific research with conservation practice. - has_or_had_rationale: + has_rationale: # range: string inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_description: Part of 10-year museum renovation (2003-2013). Reorganization aimed to integrate conservation science with practice. + has_description: Part of 10-year museum renovation (2003-2013). Reorganization aimed to integrate conservation science with practice. staff_impact: # range: string examples: - value: 28 FTE total (12 from Restoration + 16 from Research). All existing staff retained. 5 new positions created for scientific imaging and digital conservation. 3 staff retirements (planned succession). - has_or_had_origin: + has_origin: range: CustodianPlace required: false examples: - value: place_name: Stadhouderskade 42 place_specificity: BUILDING - is_or_was_transferred_to: + transferred_to: range: CustodianPlace required: false examples: - value: place_name: Museumstraat 1 place_specificity: BUILDING - has_or_had_documentation: + has_documentation: # range: string inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: - has_or_had_url: + has_url: url_value: https://www.rijksmuseum.nl/en/about-us/annual-report-2013 comments: - OrganizationalChangeEvent provides structured provenance for organizational history @@ -141,8 +141,8 @@ classes: - event_date should match valid_to (dissolved units) or valid_from (created units) - Use PROV-O generated property for successor units - Use CIDOC-CRM P11_had_participant for affected units - - 'Place integration: is_or_was_located_at (where event occurred), from/to_location (RELOCATION)' - - 'Territorial integration: has_or_had_affected_territory links to GeoSpatialPlace for jurisdiction changes' + - 'Place integration: located_at (where event occurred), from/to_location (RELOCATION)' + - 'Territorial integration: has_affected_territory links to GeoSpatialPlace for jurisdiction changes' - 'Follows TOOI pattern: Wijzigingsgebeurtenis affects BestuurlijkeRuimte' see_also: - https://cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E5 @@ -154,46 +154,46 @@ classes: examples: - value: id: https://nde.nl/ontology/hc/event/rijks-conservation-merger-2013 - has_or_had_type: MERGER + has_type: MERGER temporal_extent: begin_of_the_begin: '2013-04-01' - has_or_had_description: "Merger of Restoration Department and Research Department to form \nConservation and Research Department during museum renovation.\n" - has_or_had_rationale: - has_or_had_description: Strategic reorganization during 10-year renovation to integrate conservation science with practice and modernize facilities. + has_description: "Merger of Restoration Department and Research Department to form \nConservation and Research Department during museum renovation.\n" + has_rationale: + has_description: Strategic reorganization during 10-year renovation to integrate conservation science with practice and modernize facilities. staff_impact: 28 FTE (12+16), all staff retained, 5 new positions - has_or_had_documentation: - - has_or_had_url: + has_documentation: + - has_url: url_value: https://www.rijksmuseum.nl/en/about-us/annual-report-2013 - value: id: https://nde.nl/ontology/hc/event/na-digital-preservation-founding-2008 - has_or_had_type: FOUNDING + has_type: FOUNDING temporal_extent: begin_of_the_begin: '2008-01-01' - has_or_had_description: "Creation of Digital Preservation Department to address born-digital \narchival challenges and e-government records.\n" + has_description: "Creation of Digital Preservation Department to address born-digital \narchival challenges and e-government records.\n" affected_units: [] - has_or_had_rationale: - has_or_had_description: Government mandate to preserve electronic records from ministries and agencies. Growing volume of born-digital materials requiring specialized expertise. + has_rationale: + has_description: Government mandate to preserve electronic records from ministries and agencies. Growing volume of born-digital materials requiring specialized expertise. staff_impact: 15 FTE, all new hires with digital archiving expertise - has_or_had_documentation: - - has_or_had_url: + has_documentation: + - has_url: url_value: https://www.nationaalarchief.nl/onderzoeken/archief/2.24.17.07 - value: id: https://nde.nl/ontology/hc/event/amsterdam-museum-relocation-2025 - has_or_had_type: RELOCATION + has_type: RELOCATION temporal_extent: begin_of_the_begin: '2025-06-01' - has_or_had_description: "Amsterdam Museum relocates from historic Burgerweeshuis building to \nnew purpose-built facility. Move required due to structural concerns \nand accessibility improvements.\n" - has_or_had_rationale: - has_or_had_description: Historic Burgerweeshuis building requires major renovation. New facility offers better accessibility, climate control, and exhibition space. - has_or_had_origin: + has_description: "Amsterdam Museum relocates from historic Burgerweeshuis building to \nnew purpose-built facility. Move required due to structural concerns \nand accessibility improvements.\n" + has_rationale: + has_description: Historic Burgerweeshuis building requires major renovation. New facility offers better accessibility, climate control, and exhibition space. + has_origin: place_name: Burgerweeshuis, Kalverstraat 92 place_specificity: BUILDING - is_or_was_transferred_to: + transferred_to: place_name: Amstel Campus, Building A place_specificity: BUILDING staff_impact: All 45 FTE relocating to new facility. No redundancies. - has_or_had_documentation: - - has_or_had_url: + has_documentation: + - has_url: url_value: https://www.amsterdam.nl/nieuws/museum-verhuizing-2025 annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/OrganizationalStructure.yaml b/schemas/20251121/linkml/modules/classes/OrganizationalStructure.yaml index 233c81ea33..dd2b2802db 100644 --- a/schemas/20251121/linkml/modules/classes/OrganizationalStructure.yaml +++ b/schemas/20251121/linkml/modules/classes/OrganizationalStructure.yaml @@ -8,11 +8,11 @@ prefixes: imports: - linkml:types - ../slots/contact_point - - ../slots/has_or_had_label - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_staff_member - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_staff_member + - ../slots/20260202_matang/has_type - ../slots/located_at - ../slots/parent_unit - ../slots/refers_to_custodian @@ -28,21 +28,21 @@ classes: - located_at - parent_unit - refers_to_custodian - - has_or_had_quantity - - has_or_had_staff_member - - has_or_had_score - - has_or_had_label - - has_or_had_type + - has_quantity + - has_staff_member + - has_score + - has_label + - has_type - temporal_extent slot_usage: - has_or_had_label: + has_label: required: true # range: string examples: - value: Digital Preservation Department - value: Public Services Team - value: Research and Documentation Division - has_or_had_type: + has_type: # range: string # uriorcurie examples: - value: DEPARTMENT @@ -51,12 +51,12 @@ classes: range: OrganizationalStructure examples: - value: - has_or_had_label: - has_or_had_label: Collections Division - has_or_had_quantity: + has_label: + has_label: Collections Division + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type - has_or_had_staff_member: + has_staff_member: range: PersonObservation multivalued: true inlined_as_list: true @@ -94,7 +94,7 @@ classes: range: Custodian examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/cust/national-archives + identified_by: https://nde.nl/ontology/hc/cust/national-archives comments: - OrganizationalStructure models INFORMAL operational units - GovernanceStructure models FORMAL legal structure @@ -107,47 +107,47 @@ classes: examples: - value: id: https://nde.nl/ontology/hc/org-unit/na-digital-pres - has_or_had_label: - has_or_had_label: Digital Preservation Department - has_or_had_type: DEPARTMENT - has_or_had_quantity: + has_label: + has_label: Digital Preservation Department + has_type: DEPARTMENT + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type contact_point: digipres@nationalarchives.nl temporal_extent: begin_of_the_begin: '2010-01-01' refers_to_custodian: - has_or_had_identifier: https://nde.nl/ontology/hc/cust/national-archives-nl + identified_by: https://nde.nl/ontology/hc/cust/national-archives-nl - value: id: https://nde.nl/ontology/hc/org-unit/rijks-conservation - has_or_had_label: - has_or_had_label: Conservation Lab - has_or_had_type: LAB + has_label: + has_label: Conservation Lab + has_type: LAB parent_unit: - has_or_had_label: - has_or_had_label: Collections Care Division - has_or_had_quantity: + has_label: + has_label: Collections Care Division + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type temporal_extent: begin_of_the_begin: '1885-07-13' refers_to_custodian: - has_or_had_identifier: https://nde.nl/ontology/hc/cust/national-archives-nl + identified_by: https://nde.nl/ontology/hc/cust/national-archives-nl - value: id: https://nde.nl/ontology/hc/org-unit/rijks-conservation - has_or_had_label: - has_or_had_label: Conservation Lab - has_or_had_type: LAB + has_label: + has_label: Conservation Lab + has_type: LAB parent_unit: - has_or_had_label: - has_or_had_label: Collections Care Division - has_or_had_quantity: + has_label: + has_label: Collections Care Division + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type temporal_extent: begin_of_the_begin: '1885-07-13' refers_to_custodian: - has_or_had_identifier: https://nde.nl/ontology/hc/cust/rijksmuseum + identified_by: https://nde.nl/ontology/hc/cust/rijksmuseum annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/OrganizationalSubdivision.yaml b/schemas/20251121/linkml/modules/classes/OrganizationalSubdivision.yaml index f17a16859d..655b283b36 100644 --- a/schemas/20251121/linkml/modules/classes/OrganizationalSubdivision.yaml +++ b/schemas/20251121/linkml/modules/classes/OrganizationalSubdivision.yaml @@ -8,8 +8,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score + - ../slots/identified_by + - ../slots/20260202_matang/has_score - ../slots/organizational_level classes: OrganizationalSubdivision: @@ -19,10 +19,10 @@ classes: mixins: - OrganizationalStructure slots: - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: + identified_by: organizational_level: equals_string: subdivision annotations: diff --git a/schemas/20251121/linkml/modules/classes/OrganizationalUnitType.yaml b/schemas/20251121/linkml/modules/classes/OrganizationalUnitType.yaml index f42e278c9b..c0c08286d9 100644 --- a/schemas/20251121/linkml/modules/classes/OrganizationalUnitType.yaml +++ b/schemas/20251121/linkml/modules/classes/OrganizationalUnitType.yaml @@ -10,13 +10,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score classes: OrganizationalUnitType: class_uri: skos:Concept @@ -29,31 +29,31 @@ classes: related_mappings: - schema:Organization slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code - - has_or_had_hypernym - - has_or_had_hyponym - - has_or_had_score + - identified_by + - has_label + - has_description + - has_code + - has_hypernym + - has_hyponym + - has_score slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/unit-type/[a-z-]+$ - has_or_had_code: + has_code: # range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ - has_or_had_label: + has_label: # range: string required: true multivalued: true annotations: specificity_score: '0.50' specificity_rationale: Moderately specific - organizational structure metadata. - has_or_had_score: null + has_score: null replaces_slot: unit_type migration_date: '2026-01-13' custodian_types: "['*']" diff --git a/schemas/20251121/linkml/modules/classes/OrganizationalUnitTypes.yaml b/schemas/20251121/linkml/modules/classes/OrganizationalUnitTypes.yaml index a53ede0bea..43b2c96d70 100644 --- a/schemas/20251121/linkml/modules/classes/OrganizationalUnitTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/OrganizationalUnitTypes.yaml @@ -9,7 +9,7 @@ default_prefix: hc imports: - ./OrganizationalUnitType - linkml:types - - ../slots/has_or_had_code + - ../slots/20260202_matang/has_code classes: DirectorateUnit: is_a: OrganizationalUnitType @@ -23,7 +23,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: DIRECTORATE annotations: specificity_score: '0.55' @@ -47,7 +47,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: DEPARTMENT annotations: specificity_score: '0.55' @@ -68,7 +68,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: DIVISION annotations: specificity_score: '0.55' @@ -89,7 +89,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: SECTION annotations: specificity_score: '0.55' @@ -110,7 +110,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: CONSERVATION_LAB annotations: specificity_score: '0.65' @@ -131,7 +131,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: DIGITIZATION_UNIT annotations: specificity_score: '0.65' @@ -152,7 +152,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: EDUCATION annotations: specificity_score: '0.55' @@ -173,7 +173,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: READING_ROOM annotations: specificity_score: '0.60' @@ -194,7 +194,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: BRANCH annotations: specificity_score: '0.55' @@ -215,7 +215,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: REGISTRATION annotations: specificity_score: '0.60' diff --git a/schemas/20251121/linkml/modules/classes/Organizer.yaml b/schemas/20251121/linkml/modules/classes/Organizer.yaml index da35535fad..38ac8326e6 100644 --- a/schemas/20251121/linkml/modules/classes/Organizer.yaml +++ b/schemas/20251121/linkml/modules/classes/Organizer.yaml @@ -14,7 +14,7 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_role + - ../slots/20260202_matang/has_role classes: Organizer: class_uri: schema:Organization @@ -27,12 +27,12 @@ classes: **Key Properties**: - `organizer_entity`: Reference to the organizing institution (Custodian, Organization) - - `has_or_had_role`: Role of the organizer (PRIMARY, CO_ORGANIZER, etc.) + - `has_role`: Role of the organizer (PRIMARY, CO_ORGANIZER, etc.) - `organizer_contribution`: Description of organizational contribution **Pattern**: Instead of separate `organized_by` and `co_organized_by` slots with plain URIs, - use a single `has_or_had_organizer` slot with Organizer instances that specify roles. + use a single `has_organizer` slot with Organizer instances that specify roles. **Example Migration**: ```yaml @@ -43,12 +43,12 @@ classes: - https://nde.nl/ontology/hc/custodian/nl/mauritshuis # NEW (Rule 53): - has_or_had_organizer: + has_organizer: - organizer_entity: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum - has_or_had_role: + has_role: role_type: PRIMARY - organizer_entity: https://nde.nl/ontology/hc/custodian/nl/mauritshuis - has_or_had_role: + has_role: role_type: CO_ORGANIZER ``` @@ -67,7 +67,7 @@ classes: - prov:Agent slots: - - has_or_had_role + - has_role - organizer_entity - organizer_contribution @@ -75,7 +75,7 @@ classes: organizer_entity: examples: - value: "https://nde.nl/ontology/hc/custodian/nl/rijksmuseum" - has_or_had_role: + has_role: required: false range: OrganizerRole inlined: true @@ -93,18 +93,18 @@ classes: comments: - "Created per slot_fixes.yaml revision for co_organized_by migration" - "Replaces separate organized_by/co_organized_by with role-based discrimination" - - "RULE 53: Part of co_organized_by → has_or_had_organizer + Organizer migration" + - "RULE 53: Part of co_organized_by → has_organizer + Organizer migration" examples: - value: organizer_entity: "https://nde.nl/ontology/hc/custodian/nl/rijksmuseum" - has_or_had_role: + has_role: - value: organizer_entity: "https://nde.nl/ontology/hc/custodian/nl/mauritshuis" - has_or_had_role: + has_role: - value: organizer_entity: "https://nde.nl/ontology/hc/custodian/us/national-gallery-washington" - has_or_had_role: + has_role: slots: organizer_entity: slot_uri: schema:organizer diff --git a/schemas/20251121/linkml/modules/classes/OrganizerRole.yaml b/schemas/20251121/linkml/modules/classes/OrganizerRole.yaml index 5dc5af743b..4fba32e8b0 100644 --- a/schemas/20251121/linkml/modules/classes/OrganizerRole.yaml +++ b/schemas/20251121/linkml/modules/classes/OrganizerRole.yaml @@ -53,7 +53,7 @@ classes: comments: - "Created per slot_fixes.yaml revision for co_organized_by migration" - "Used with Organizer class to specify organizational involvement" - - "RULE 53: Part of co_organized_by → has_or_had_organizer + Organizer migration" + - "RULE 53: Part of co_organized_by → has_organizer + Organizer migration" examples: - value: diff --git a/schemas/20251121/linkml/modules/classes/OriginalEntry.yaml b/schemas/20251121/linkml/modules/classes/OriginalEntry.yaml index c86b2536bf..2ab28f9380 100644 --- a/schemas/20251121/linkml/modules/classes/OriginalEntry.yaml +++ b/schemas/20251121/linkml/modules/classes/OriginalEntry.yaml @@ -38,5 +38,5 @@ classes: - location - note - coordinates - - has_or_had_affiliation + - has_affiliation - country diff --git a/schemas/20251121/linkml/modules/classes/OutdoorSeating.yaml b/schemas/20251121/linkml/modules/classes/OutdoorSeating.yaml index b59701d0c4..916ee123e0 100644 --- a/schemas/20251121/linkml/modules/classes/OutdoorSeating.yaml +++ b/schemas/20251121/linkml/modules/classes/OutdoorSeating.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: OutdoorSeating: class_uri: schema:LocationFeatureSpecification @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_description + - has_description diff --git a/schemas/20251121/linkml/modules/classes/OutdoorSite.yaml b/schemas/20251121/linkml/modules/classes/OutdoorSite.yaml index 12debd15bc..c9506ff5b0 100644 --- a/schemas/20251121/linkml/modules/classes/OutdoorSite.yaml +++ b/schemas/20251121/linkml/modules/classes/OutdoorSite.yaml @@ -6,19 +6,19 @@ imports: - ../enums/FeatureTypeEnum - ../enums/OutdoorSiteTypeEnum - ../slots/conservation_status - - ../slots/contains_or_contained - - ../slots/has_or_had_accessibility_feature - - ../slots/has_or_had_area - - ../slots/has_or_had_artwork_count - - ../slots/has_or_had_fee - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_type # was: feature_type_classification + - ../slots/20260202_matang/contain + - ../slots/20260202_matang/has_accessibility_feature + - ../slots/20260202_matang/in_area + - ../slots/20260202_matang/has_artwork_count + - ../slots/20260202_matang/has_fee + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_type # was: feature_type_classification - ../slots/historic_garden_designation - ../slots/is_open_to_public - - ../slots/is_or_was_classified_as # was: bio_type_classification - - ../slots/is_or_was_derived_from # was: was_derived_from - - ../slots/is_or_was_generated_by # was: was_generated_by + - ../slots/20260202_matang/classified_as # was: bio_type_classification + - ../slots/20260202_matang/derived_from # was: was_derived_from + - ../slots/20260202_matang/generated_by # was: was_generated_by - ../slots/opening_hour - ../slots/outdoor_site_description - ../slots/outdoor_site_id @@ -57,9 +57,9 @@ classes: \ ruins\n4. **Botanical Collections**: Arboreta, plant collections\n5. **Nature Reserves**: Managed natural areas\n\ 6. **Castle/Estate Grounds**: Historic landscape parks\n7. **Cemeteries**: Historic burial grounds\n\n**USE CASES**:\n\ \n1. **Museum Sculpture Garden**:\n ```yaml\n OutdoorSite:\n outdoor_site_id: \"https://nde.nl/ontology/hc/aux/kroller-muller-sculpture\"\ - \n outdoor_site_name: \"Kröller-Müller Beeldentuin\"\n feature_type_classification: SCULPTURE_GARDEN\n has_or_had_area:\ - \n - area_value: 25.0\n has_or_had_unit:\n unit_type: HECTARE\n unit_symbol: \"ha\"\n has_or_had_artwork_count: 160\n ```\n\n2. **Historic Estate Grounds**:\n ```yaml\n OutdoorSite:\n outdoor_site_name:\ - \ \"Paleis Het Loo Tuinen\"\n is_or_was_classified_as: BotanicalInstitutionClassification # Type/Types class\n feature_type_classification: FORMAL_GARDEN\n\ + \n outdoor_site_name: \"Kröller-Müller Beeldentuin\"\n feature_type_classification: SCULPTURE_GARDEN\n in_area:\ + \n - area_value: 25.0\n has_unit:\n unit_type: HECTARE\n unit_symbol: \"ha\"\n has_artwork_count: 160\n ```\n\n2. **Historic Estate Grounds**:\n ```yaml\n OutdoorSite:\n outdoor_site_name:\ + \ \"Paleis Het Loo Tuinen\"\n classified_as: BotanicalInstitutionClassification # Type/Types class\n feature_type_classification: FORMAL_GARDEN\n\ \ historic_garden_designation: true\n ```\n\n3. **Archaeological Site**:\n ```yaml\n OutdoorSite:\n outdoor_site_name:\ \ \"Archeologisch Park Matilo\"\n feature_type_classification: ARCHAEOLOGICAL_SITE\n period_covered: \"Roman\ \ period\"\n ```\n" @@ -74,15 +74,15 @@ classes: - crm:E53_Place - hc:HistoricBuilding slots: - - has_or_had_accessibility_feature - # has_or_had_admission_fee REMOVED - migrated to has_or_had_fee (Rule 53) - - has_or_had_fee - - contains_or_contained # was: has_or_had_animal_species_count - migrated per Rule 53 (2026-01-27) - - has_or_had_area - - has_or_had_artwork_count - - is_or_was_classified_as # was: bio_type_classification - migrated per Rule 53/56 (2026-01-17) + - has_accessibility_feature + # has_admission_fee REMOVED - migrated to has_fee (Rule 53) + - has_fee + - contain # was: has_animal_species_count - migrated per Rule 53 (2026-01-27) + - in_area + - has_artwork_count + - classified_as # was: bio_type_classification - migrated per Rule 53/56 (2026-01-17) - conservation_status - - has_or_had_type # was: feature_type_classification - migrated per Rule 53 (2026-01-26) + - has_type # was: feature_type_classification - migrated per Rule 53 (2026-01-26) - historic_garden_designation - is_open_to_public - opening_hour @@ -93,9 +93,9 @@ classes: - period_covered - plant_species_count - seasonal_hour - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - - is_or_was_derived_from # was: was_derived_from - migrated per Rule 53 - - is_or_was_generated_by # was: was_generated_by - migrated per Rule 53 + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - derived_from # was: was_derived_from - migrated per Rule 53 + - generated_by # was: was_generated_by - migrated per Rule 53 slot_usage: outdoor_site_id: # range: string # uriorcurie @@ -121,14 +121,14 @@ classes: examples: - value: SCULPTURE_GARDEN - value: FORMAL_GARDEN - is_or_was_classified_as: # was: bio_type_classification - migrated per Rule 53/56 (2026-01-17) + classified_as: # was: bio_type_classification - migrated per Rule 53/56 (2026-01-17) range: BioTypeClassification # Type/Types class hierarchy (was BioCustodianTypeEnum) inlined: true required: false examples: - value: BotanicalInstitutionClassification - value: ZoologicalInstitutionClassification - has_or_had_type: # was: feature_type_classification - migrated per Rule 53 (2026-01-26) + has_type: # was: feature_type_classification - migrated per Rule 53 (2026-01-26) range: FeatureType required: false any_of: @@ -138,25 +138,25 @@ classes: - value: SCULPTURE_GARDEN - value: ARCHAEOLOGICAL_SITE - value: FORMAL_GARDEN - has_or_had_area: + in_area: range: Area inlined: true multivalued: true examples: - value: area_value: 25.0 - has_or_had_unit: - has_or_had_type: HECTARE - has_or_had_symbol: "ha" - has_or_had_label: "Sculpture garden area" + has_unit: + has_type: HECTARE + has_symbol: "ha" + has_label: "Sculpture garden area" - value: area_value: 650.0 - has_or_had_unit: - has_or_had_type: HECTARE - has_or_had_symbol: "ha" + has_unit: + has_type: HECTARE + has_symbol: "ha" is_estimate: true - has_or_had_label: "Estate grounds" - has_or_had_artwork_count: + has_label: "Estate grounds" + has_artwork_count: range: integer examples: - value: 160 @@ -164,7 +164,7 @@ classes: range: integer examples: - value: 2500 - contains_or_contained: + contain: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type @@ -174,38 +174,38 @@ classes: outdoor_site_name: Kröller-Müller Beeldentuin outdoor_site_description: One of Europe's largest sculpture gardens with 160 works set in 25 hectares of park landscape within De Hoge Veluwe National Park. outdoor_site_type: SCULPTURE_GARDEN - has_or_had_type: SCULPTURE_GARDEN # was: feature_type_classification - migrated per Rule 53 - has_or_had_area: + has_type: SCULPTURE_GARDEN # was: feature_type_classification - migrated per Rule 53 + in_area: - area_value: 25.0 - has_or_had_unit: - has_or_had_type: HECTARE - has_or_had_symbol: "ha" - has_or_had_label: "Total site area" - has_or_had_artwork_count: 160 + has_unit: + has_type: HECTARE + has_symbol: "ha" + has_label: "Total site area" + has_artwork_count: 160 is_open_to_public: true - has_or_had_fee: - - has_or_had_label: "Included with museum ticket" + has_fee: + - has_label: "Included with museum ticket" opening_hour: "Tu-Su 10:00-17:00" - has_or_had_accessibility_feature: - - has_or_had_label: "Paved paths" - - has_or_had_label: "Wheelchair routes available" + has_accessibility_feature: + - has_label: "Paved paths" + - has_label: "Wheelchair routes available" - value: outdoor_site_id: https://nde.nl/ontology/hc/aux/het-loo-tuinen outdoor_site_name: Paleis Het Loo Tuinen outdoor_site_description: Formal baroque gardens restored to 17th-century design. Part of royal palace complex. outdoor_site_type: FORMAL_GARDEN - is_or_was_classified_as: BotanicalInstitutionClassification # was: bio_type_classification, was: GARDEN - has_or_had_type: FORMAL_GARDEN # was: feature_type_classification - migrated per Rule 53 - has_or_had_area: + classified_as: BotanicalInstitutionClassification # was: bio_type_classification, was: GARDEN + has_type: FORMAL_GARDEN # was: feature_type_classification - migrated per Rule 53 + in_area: - area_value: 650.0 - has_or_had_unit: - has_or_had_type: HECTARE - has_or_had_symbol: "ha" + has_unit: + has_type: HECTARE + has_symbol: "ha" is_estimate: true - has_or_had_label: "Estate grounds" + has_label: "Estate grounds" is_open_to_public: true - has_or_had_fee: - - has_or_had_label: "Included with palace ticket" + has_fee: + - has_label: "Included with palace ticket" seasonal_hour: Summer 10:00-18:00; Winter 10:00-16:00 historic_garden_designation: true - value: @@ -213,14 +213,14 @@ classes: outdoor_site_name: Archeologisch Park Matilo outdoor_site_description: Archaeological park on site of Roman fort Matilo with reconstructed structures. outdoor_site_type: ARCHAEOLOGICAL_SITE - has_or_had_type: ARCHAEOLOGICAL_SITE # was: feature_type_classification - migrated per Rule 53 - has_or_had_area: + has_type: ARCHAEOLOGICAL_SITE # was: feature_type_classification - migrated per Rule 53 + in_area: - area_value: 3.5 - has_or_had_unit: - has_or_had_type: HECTARE - has_or_had_symbol: "ha" - has_or_had_label: "Archaeological park area" + has_unit: + has_type: HECTARE + has_symbol: "ha" + has_label: "Archaeological park area" is_open_to_public: true - has_or_had_fee: - - has_or_had_label: "Free" + has_fee: + - has_label: "Free" period_covered: Roman period (50-400 CE) \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Output.yaml b/schemas/20251121/linkml/modules/classes/Output.yaml index f07b8eb1eb..e4872eca3c 100644 --- a/schemas/20251121/linkml/modules/classes/Output.yaml +++ b/schemas/20251121/linkml/modules/classes/Output.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: Output: class_uri: prov:Entity description: Activity output. slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/OutputData.yaml b/schemas/20251121/linkml/modules/classes/OutputData.yaml index 8734cb42d4..1d562310f2 100644 --- a/schemas/20251121/linkml/modules/classes/OutputData.yaml +++ b/schemas/20251121/linkml/modules/classes/OutputData.yaml @@ -17,9 +17,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_format - - ../slots/has_or_had_identifier + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_format + - ../slots/identified_by classes: OutputData: class_uri: hc:OutputData @@ -31,25 +31,25 @@ classes: \ WebSocket)\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`class_uri`): `hc:OutputData`\ \ - Heritage Custodian class\n- **Close**: `sosa:Result` - SOSA observation\ \ result\n- **Close**: `schema:DataDownload` - Schema.org data download\n\n\ - **Example**:\n```yaml\nhas_or_had_output:\n - has_or_had_format:\n has_or_had_type:\ - \ JsonFormat\n has_or_had_media_type: \"application/json\"\n has_or_had_description:\ + **Example**:\n```yaml\nhas_output:\n - has_format:\n has_type:\ + \ JsonFormat\n has_media_type: \"application/json\"\n has_description:\ \ \"Climate sensor readings\"\n destination_url: \"https://analytics.museum.nl/climate\"\ \n```\n" close_mappings: - sosa:Result - schema:DataDownload slots: - - has_or_had_format - - has_or_had_description - - has_or_had_identifier + - has_format + - has_description + - identified_by slot_usage: - has_or_had_format: + has_format: # range: string # uriorcurie inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_type: JsonFormat - has_or_had_description: + has_type: JsonFormat + has_description: # range: string examples: - value: Temperature and humidity readings from conservation sensors diff --git a/schemas/20251121/linkml/modules/classes/Overview.yaml b/schemas/20251121/linkml/modules/classes/Overview.yaml index 2218086c99..3582d7a391 100644 --- a/schemas/20251121/linkml/modules/classes/Overview.yaml +++ b/schemas/20251121/linkml/modules/classes/Overview.yaml @@ -17,7 +17,7 @@ description: >- 4. Related resource aggregations **MIGRATION NOTE** (2026-01-14): Created as part of slot migration from `all_links` to - `has_or_had_overview` with `Overview` and `WebLink` typed classes. + `has_overview` with `Overview` and `WebLink` typed classes. See slot_fixes.yaml for migration specification. prefixes: linkml: https://w3id.org/linkml/ @@ -28,11 +28,11 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label # was: title - - ../slots/has_or_had_score # was: template_specificity - - ../slots/includes_or_included - - ../slots/is_or_was_retrieved_at # was: date_retrieved + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label # was: title + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/include + - ../slots/20260202_matang/retrieved_at # was: date_retrieved - ../slots/link_count - ../slots/name - ../slots/source_url @@ -57,7 +57,7 @@ classes: - Existing links may be removed or updated - The collection scope may change **RELATIONSHIP TO INCLUDES_OR_INCLUDED**: - Uses the generic `includes_or_included` slot to link to WebLink + Uses the generic `include` slot to link to WebLink instances, following RiC-O hierarchical patterns. **EXAMPLE**: ```yaml @@ -66,10 +66,10 @@ classes: title: "Family History Research Links" description: "All links from the family history finding aid page" source_url: https://www.nationaalarchief.nl/onderzoeken/zoekhulpen/familiegeschiedenis - is_or_was_retrieved_at: - has_or_had_timestamp: "2025-01-14" - has_or_had_level: day - includes_or_included: + retrieved_at: + has_timestamp: "2025-01-14" + has_level: day + include: - id: hc:link/civil-registry url: https://example.org/civil-registry link_text: "Civil Registry" @@ -84,32 +84,32 @@ classes: - rico:RecordSet slots: - name - - has_or_had_label # was: title - - has_or_had_description - - includes_or_included + - has_label # was: title + - has_description + - include - source_url - - is_or_was_retrieved_at # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23) + - retrieved_at # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23) - link_count - temporal_extent # was: valid_from + valid_to - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: name: # range: string - has_or_had_label: # was: title + has_label: # was: title # range: string - includes_or_included: + include: # range: string multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type source_url: range: uri - is_or_was_retrieved_at: # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23) + retrieved_at: # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23) range: Timestamp inlined: true examples: - value: - has_or_had_timestamp: "2025-01-14" - has_or_had_level: day + has_timestamp: "2025-01-14" + has_level: day link_count: range: integer annotations: @@ -124,7 +124,7 @@ classes: and navigation modeling. comments: - Collection of WebLink instances - - Used with has_or_had_overview slot + - Used with has_overview slot - Created from slot_fixes.yaml migration (2026-01-14) see_also: - http://purl.org/dc/terms/Collection @@ -133,9 +133,9 @@ classes: - value: id: hc:overview/findingaid-001-links source_url: https://www.nationaalarchief.nl/onderzoeken/zoekhulpen/familiegeschiedenis - is_or_was_retrieved_at: # was: date_retrieved - has_or_had_timestamp: "2025-01-14" - has_or_had_level: day + retrieved_at: # was: date_retrieved + has_timestamp: "2025-01-14" + has_level: day link_count: 15 # REMOVED inline slots 2026-01-16 - Rule 48 violation # Slots are imported from ../slots/ - do not define inline \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Owner.yaml b/schemas/20251121/linkml/modules/classes/Owner.yaml index 3ad9363488..cee533abcc 100644 --- a/schemas/20251121/linkml/modules/classes/Owner.yaml +++ b/schemas/20251121/linkml/modules/classes/Owner.yaml @@ -11,8 +11,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: Owner: class_uri: crm:E39_Actor @@ -52,9 +52,9 @@ classes: Used in ProvenanceEvent for documenting chain of ownership: - - `changes_or_changed_ownership_from` (previous owner) + - `change_ownership_from` (previous owner) - - `changes_or_changed_ownership_to` (new owner) + - `change_ownership_to` (new owner) **ONTOLOGY ALIGNMENT**: @@ -67,11 +67,11 @@ classes: ' slots: - - has_or_had_label - - has_or_had_identifier + - has_label + - identified_by slot_usage: - has_or_had_label: - has_or_had_identifier: + has_label: + identified_by: exact_mappings: - prov:Agent close_mappings: @@ -86,8 +86,8 @@ classes: custodian_types: "['*']" examples: - value: - has_or_had_label: Rijksmuseum - has_or_had_identifier: https://www.wikidata.org/entity/Q190804 + has_label: Rijksmuseum + identified_by: https://www.wikidata.org/entity/Q190804 - value: - has_or_had_label: Private Collection (Anonymous) - has_or_had_identifier: hc:owner/private-001 \ No newline at end of file + has_label: Private Collection (Anonymous) + identified_by: hc:owner/private-001 \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/ParentOrganizationUnit.yaml b/schemas/20251121/linkml/modules/classes/ParentOrganizationUnit.yaml index a6e8f80ab5..879f924399 100644 --- a/schemas/20251121/linkml/modules/classes/ParentOrganizationUnit.yaml +++ b/schemas/20251121/linkml/modules/classes/ParentOrganizationUnit.yaml @@ -8,8 +8,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score + - ../slots/identified_by + - ../slots/20260202_matang/has_score - ../slots/organizational_level classes: ParentOrganizationUnit: @@ -19,10 +19,10 @@ classes: mixins: - OrganizationalStructure slots: - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: + identified_by: organizational_level: equals_string: parent annotations: diff --git a/schemas/20251121/linkml/modules/classes/ParishArchive.yaml b/schemas/20251121/linkml/modules/classes/ParishArchive.yaml index 264fd2ff5c..382ab2075b 100644 --- a/schemas/20251121/linkml/modules/classes/ParishArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/ParishArchive.yaml @@ -10,10 +10,10 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: ParishArchive: @@ -21,10 +21,10 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q34544468 close_mappings: @@ -33,8 +33,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HolySacredSiteType"]' annotations: skos:prefLabel: Parish Archive diff --git a/schemas/20251121/linkml/modules/classes/ParishArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ParishArchiveRecordSetType.yaml index 75c3f8b566..99bc1c79aa 100644 --- a/schemas/20251121/linkml/modules/classes/ParishArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ParishArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: ParishArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ParishArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - ParishArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ParishArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/ParishArchiveRecordSetTypes.yaml index 4a2158ded6..560ede56f5 100644 --- a/schemas/20251121/linkml/modules/classes/ParishArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ParishArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./ParishArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -40,15 +40,15 @@ classes: - rico:RecordSetType - ParishRegisterSeries slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ParishSpecificRegisterSeries @@ -81,15 +81,15 @@ classes: - ParishArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ParishAdministrationFonds @@ -118,15 +118,15 @@ classes: - ParishArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: SacramentalRecordCollection diff --git a/schemas/20251121/linkml/modules/classes/ParliamentaryArchives.yaml b/schemas/20251121/linkml/modules/classes/ParliamentaryArchives.yaml index 81fcb6130c..e6b1d1090c 100644 --- a/schemas/20251121/linkml/modules/classes/ParliamentaryArchives.yaml +++ b/schemas/20251121/linkml/modules/classes/ParliamentaryArchives.yaml @@ -10,10 +10,10 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: ParliamentaryArchives: @@ -21,10 +21,10 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q53251146 close_mappings: @@ -33,8 +33,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Parliamentary Archives diff --git a/schemas/20251121/linkml/modules/classes/ParliamentaryArchivesRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ParliamentaryArchivesRecordSetType.yaml index 3337264e90..2fefd69126 100644 --- a/schemas/20251121/linkml/modules/classes/ParliamentaryArchivesRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ParliamentaryArchivesRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: ParliamentaryArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ParliamentaryArchives custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - ParliamentaryArchives - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ParliamentaryArchivesRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/ParliamentaryArchivesRecordSetTypes.yaml index 016a4e1521..53aa1b04d2 100644 --- a/schemas/20251121/linkml/modules/classes/ParliamentaryArchivesRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ParliamentaryArchivesRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./ParliamentaryArchivesRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - ParliamentaryArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ParliamentaryProceedingsFonds @@ -78,15 +78,15 @@ classes: - ParliamentaryArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CommitteeRecordSeries @@ -115,15 +115,15 @@ classes: - ParliamentaryArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: LegislativeDraftCollection diff --git a/schemas/20251121/linkml/modules/classes/Participant.yaml b/schemas/20251121/linkml/modules/classes/Participant.yaml index 635026e9e1..f59a20617d 100644 --- a/schemas/20251121/linkml/modules/classes/Participant.yaml +++ b/schemas/20251121/linkml/modules/classes/Participant.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: Participant: class_uri: schema:Person @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_name + - has_name diff --git a/schemas/20251121/linkml/modules/classes/PartyArchive.yaml b/schemas/20251121/linkml/modules/classes/PartyArchive.yaml index 5287350a16..7148e764c0 100644 --- a/schemas/20251121/linkml/modules/classes/PartyArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/PartyArchive.yaml @@ -10,10 +10,10 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: PartyArchive: @@ -21,10 +21,10 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q53252161 close_mappings: @@ -33,8 +33,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Party Archive diff --git a/schemas/20251121/linkml/modules/classes/PartyArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/PartyArchiveRecordSetType.yaml index 099bbfa4d9..94ceaeb5a4 100644 --- a/schemas/20251121/linkml/modules/classes/PartyArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/PartyArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: PartyArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by PartyArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - PartyArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/PartyArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/PartyArchiveRecordSetTypes.yaml index 0502e563e1..664c0d1177 100644 --- a/schemas/20251121/linkml/modules/classes/PartyArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/PartyArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./PartyArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - PartyArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PartyAdministrationFonds @@ -78,15 +78,15 @@ classes: - PartyArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: MembershipRecordSeries diff --git a/schemas/20251121/linkml/modules/classes/PaymentMethod.yaml b/schemas/20251121/linkml/modules/classes/PaymentMethod.yaml index 19c1ca07a3..ed3e6e13a4 100644 --- a/schemas/20251121/linkml/modules/classes/PaymentMethod.yaml +++ b/schemas/20251121/linkml/modules/classes/PaymentMethod.yaml @@ -19,7 +19,7 @@ classes: V-Pay) - Digital payments (iDEAL, Apple Pay, Google Pay) - Cash - Museum passes (Museumkaart, etc.) - Used with `accepts_or_accepted` slot to indicate payment options.' + Used with `accept` slot to indicate payment options.' class_uri: schema:PaymentMethod annotations: custodian_types: '["M", "G", "B", "H"]' diff --git a/schemas/20251121/linkml/modules/classes/Percentage.yaml b/schemas/20251121/linkml/modules/classes/Percentage.yaml index 0d14a314c4..7fdea4b026 100644 --- a/schemas/20251121/linkml/modules/classes/Percentage.yaml +++ b/schemas/20251121/linkml/modules/classes/Percentage.yaml @@ -28,7 +28,7 @@ classes: \ rates: \"50%\" → percentage_value: 50\n- Variable rates: \"40-50%\" → percentage_min:\ \ 40, percentage_max: 50\n- Completion: \"75% complete\" → percentage_value:\ \ 75\n- Discount: \"20% off\" → percentage_value: 20\n\n**EXAMPLE**:\n\n```yaml\n\ - has_or_had_percentage:\n percentage_value: 50\n percentage_display: \"50%\"\ + has_percentage:\n percentage_value: 50\n percentage_display: \"50%\"\ \n```\n" close_mappings: - qudt:QuantityValue diff --git a/schemas/20251121/linkml/modules/classes/PerformingArtsArchive.yaml b/schemas/20251121/linkml/modules/classes/PerformingArtsArchive.yaml index 40737997af..6f61a48f54 100644 --- a/schemas/20251121/linkml/modules/classes/PerformingArtsArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/PerformingArtsArchive.yaml @@ -10,10 +10,10 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: PerformingArtsArchive: @@ -21,10 +21,10 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q27030945 close_mappings: @@ -33,8 +33,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Performing Arts Archive diff --git a/schemas/20251121/linkml/modules/classes/PerformingArtsArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/PerformingArtsArchiveRecordSetType.yaml index cc962de70e..3281ce4f45 100644 --- a/schemas/20251121/linkml/modules/classes/PerformingArtsArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/PerformingArtsArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: PerformingArtsArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by PerformingArtsArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - PerformingArtsArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/PerformingArtsArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/PerformingArtsArchiveRecordSetTypes.yaml index 278654bc01..d7a62d8850 100644 --- a/schemas/20251121/linkml/modules/classes/PerformingArtsArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/PerformingArtsArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./PerformingArtsArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - PerformingArtsArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: TheatreRecordsFonds @@ -78,15 +78,15 @@ classes: - PerformingArtsArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PerformanceDocumentationCollection @@ -115,15 +115,15 @@ classes: - PerformingArtsArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PerformingArtsProductionRecordSeries diff --git a/schemas/20251121/linkml/modules/classes/Permission.yaml b/schemas/20251121/linkml/modules/classes/Permission.yaml index b0e9de01fc..0654a3371b 100644 --- a/schemas/20251121/linkml/modules/classes/Permission.yaml +++ b/schemas/20251121/linkml/modules/classes/Permission.yaml @@ -13,8 +13,8 @@ description: >- **EXAMPLE**: ```yaml Permission: - has_or_had_type: BishopsPermission - has_or_had_description: "Written permission from the diocesan bishop required" + has_type: BishopsPermission + has_description: "Written permission from the diocesan bishop required" temporal_extent: begin_of_the_begin: "2000-01-01" ``` @@ -28,8 +28,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_type - ../slots/temporal_extent classes: Permission: @@ -39,16 +39,16 @@ classes: exact_mappings: - rico:AccessCondition slots: - - has_or_had_type - - has_or_had_description + - has_type + - has_description - temporal_extent slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie required: true examples: - value: BishopsPermission - has_or_had_description: + has_description: # range: string examples: - value: "Written permission from the diocesan bishop required for access to personnel files" @@ -57,11 +57,11 @@ classes: inlined: true examples: - value: - has_or_had_type: BishopsPermission - has_or_had_description: "Written permission from the diocesan bishop required" + has_type: BishopsPermission + has_description: "Written permission from the diocesan bishop required" - value: - has_or_had_type: InstitutionalAffiliation - has_or_had_description: "Must be affiliated with accredited research institution" + has_type: InstitutionalAffiliation + has_description: "Must be affiliated with accredited research institution" annotations: custodian_types: '["*"]' specificity_score: 0.5 diff --git a/schemas/20251121/linkml/modules/classes/Person.yaml b/schemas/20251121/linkml/modules/classes/Person.yaml index 4574bddc55..c2ca3a843a 100644 --- a/schemas/20251121/linkml/modules/classes/Person.yaml +++ b/schemas/20251121/linkml/modules/classes/Person.yaml @@ -15,7 +15,7 @@ default_prefix: hc imports: - linkml:types - ../slots/created - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/modified - ../slots/person_id - ../slots/preferred_label @@ -45,7 +45,7 @@ classes: - modified - person_id - preferred_name - - has_or_had_score + - has_score slot_usage: person_id: # range: string # uriorcurie diff --git a/schemas/20251121/linkml/modules/classes/PersonConnection.yaml b/schemas/20251121/linkml/modules/classes/PersonConnection.yaml index 43ec342e26..8293949081 100644 --- a/schemas/20251121/linkml/modules/classes/PersonConnection.yaml +++ b/schemas/20251121/linkml/modules/classes/PersonConnection.yaml @@ -20,9 +20,9 @@ imports: - ../slots/connection_location - ../slots/connection_name - ../slots/connection_organization - - ../slots/has_or_had_degree - - ../slots/has_or_had_description - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_degree + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_score - ../slots/mutual_connections_text - ../slots/name_type # default_range: string @@ -35,7 +35,7 @@ classes: Represents one person in another person''s connection list, including - their relationship degree, professional has_or_had_title, and heritage sector + their relationship degree, professional has_title, and heritage sector classification. @@ -74,8 +74,8 @@ classes: related_mappings: - schema:knows slots: - - has_or_had_degree - - has_or_had_description + - has_degree + - has_description - connection_heritage_relevant - connection_heritage_type - connection_id @@ -85,7 +85,7 @@ classes: - connection_organization - mutual_connections_text - name_type - - has_or_had_score + - has_score slot_usage: connection_id: # range: string @@ -107,16 +107,16 @@ classes: examples: - value: full - value: abbreviated - has_or_had_degree: + has_degree: range: ConnectionDegree required: true inlined: true examples: - value: - has_or_had_type: SecondDegreeConnection + has_type: SecondDegreeConnection - value: - has_or_had_type: FirstDegreeConnection - has_or_had_description: + has_type: FirstDegreeConnection + has_description: # range: string inlined: false # Fixed invalid inline for primitive type examples: @@ -163,7 +163,7 @@ classes: - Inlined in ConnectionNetwork.connections[] as multivalued list - connection_id enables deduplication across multiple connection lists - name_type classification per AGENTS.md Rule 17 - - has_or_had_degree (was connection_degree) is relative to VIEWER, not target profile + - has_degree (was connection_degree) is relative to VIEWER, not target profile see_also: - https://schema.org/Person - https://schema.org/knows diff --git a/schemas/20251121/linkml/modules/classes/PersonName.yaml b/schemas/20251121/linkml/modules/classes/PersonName.yaml index ba6d5252a3..b97ab47307 100644 --- a/schemas/20251121/linkml/modules/classes/PersonName.yaml +++ b/schemas/20251121/linkml/modules/classes/PersonName.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: PersonName: class_uri: schema:Text @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_value + - has_value diff --git a/schemas/20251121/linkml/modules/classes/PersonObservation.yaml b/schemas/20251121/linkml/modules/classes/PersonObservation.yaml index f41339b04e..17b10efc66 100644 --- a/schemas/20251121/linkml/modules/classes/PersonObservation.yaml +++ b/schemas/20251121/linkml/modules/classes/PersonObservation.yaml @@ -15,15 +15,15 @@ prefixes: imports: - linkml:types - ../slots/created - - ../slots/has_or_had_age - - ../slots/has_or_had_expertise_in - - ../slots/has_or_had_label - - ../slots/has_or_had_provenance - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_age + - ../slots/20260202_matang/has_expertise_in + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/has_score - ../slots/identifies_or_identified_as - ../slots/is_deceased - - ../slots/is_or_was_affected_by_event - - ../slots/is_or_was_affiliated_with + - ../slots/20260202_matang/affected_by_event + - ../slots/20260202_matang/affiliated_with - ../slots/linkedin_profile_path - ../slots/linkedin_profile_url - ../slots/modified @@ -40,9 +40,9 @@ classes: PersonObservation: class_uri: pico:PersonObservation description: "An observation of a person serving in a staff role at a heritage custodian institution,\nas documented in a specific source at a specific point in time.\n\n**PiCo Pattern Adaptation**:\nThe PiCo (Persons in Context) ontology distinguishes between:\n- **PersonObservation**: Data about a person as found in a source (evidence-based)\n- **PersonReconstruction**: Aggregated identity from multiple observations (inferred)\n\nFor heritage custodian staff tracking, we adapt this pattern:\n- **PersonObservation**: Staff role as documented in institutional sources\n (annual reports, org charts, staff directories, archival records)\n- Focus on ROLES and AFFILIATIONS rather than biographical details\n- Temporal validity tracks employment period in specific position\n\n**Key Distinction from General Person Data**:\nThis class models INSTITUTIONAL ROLES, not complete biographical data:\n- Emphasis: Role, title, unit affiliation, employment dates\n- NOT: Full biographical reconstruction\ - \ (birth, death, family, etc.)\n- Sources: Institutional records (not vital records, census, etc.)\n- PiCo: `pico:PersonObservation` (primary - person data from sources)\n- Schema.org: `schema:Person` (for person identity)\n- Schema.org: `schema:Role` (for organizational role)\n- CIDOC-CRM: `crm:E21_Person` (person as cultural heritage actor)\n- PROV-O: `prov:Agent` (person as responsible agent)\n- FOAF: `foaf:Person` (person in social network)\n\n**Hub Architecture Integration**:\n- PersonObservation refers to Person hub via `refers_to_person` (PICO pattern)\n- PersonObservation refers to OrganizationUnit via `is_or_was_affiliated_with`\n- OrganizationalStructure refers back via `staff_members` (bidirectional)\n- PersonObservation affected by OrganizationalChangeEvent via `affected_by_event`\n- Person hub links to Event via `participated_in_events`\n- Temporal alignment: employment dates vs. organizational unit validity\n\n**Use Cases**:\n1. **Staff directories**: Document current\ - \ and historical staff roles\n2. **Organizational provenance**: Track who managed departments/collections\n3. **Workforce history**: Analyze staffing patterns over time\n4. **Expertise tracking**: Find conservators, curators by specialization\n5. **Reorganization impact**: Track staff transitions during structural changes\n\n**Example - Conservation Staff**:\n\n```yaml\nPersonObservation:\n person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n role_title: \"Senior Paintings Conservator\"\n is_or_was_affiliated_with: \".../org-unit/rm-conservation-division\"\n role_start_date: \"2013-03-01\"\n role_end_date: null # Still employed\n observation_source:\n source_type: \"Staff directory\"\n source_uri: \"https://rijksmuseum.nl/staff/jane-smith\"\n observation_date: \"2024-11-22\"\n```\n\n**Example - Staff Through Organizational Change**:\n\n```yaml\n# Before merger (2013-02-28)\nPersonObservation:\n person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n role_title:\ - \ \"Head, Paintings Conservation Department\"\n is_or_was_affiliated_with: \".../org-unit/rm-paintings-conservation\"\n role_start_date: \"2010-01-01\"\n role_end_date: \"2013-02-28\"\n\n# After merger (2013-03-01)\nPersonObservation:\n person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n role_title: \"Deputy Director, Conservation Division\"\n is_or_was_affiliated_with: \".../org-unit/rm-conservation-division\"\n role_start_date: \"2013-03-01\"\n role_end_date: null\n affected_by_event: \".../event/rm-conservation-merger-2013\"\n```\n" + \ (birth, death, family, etc.)\n- Sources: Institutional records (not vital records, census, etc.)\n- PiCo: `pico:PersonObservation` (primary - person data from sources)\n- Schema.org: `schema:Person` (for person identity)\n- Schema.org: `schema:Role` (for organizational role)\n- CIDOC-CRM: `crm:E21_Person` (person as cultural heritage actor)\n- PROV-O: `prov:Agent` (person as responsible agent)\n- FOAF: `foaf:Person` (person in social network)\n\n**Hub Architecture Integration**:\n- PersonObservation refers to Person hub via `refers_to_person` (PICO pattern)\n- PersonObservation refers to OrganizationUnit via `affiliated_with`\n- OrganizationalStructure refers back via `staff_members` (bidirectional)\n- PersonObservation affected by OrganizationalChangeEvent via `affected_by_event`\n- Person hub links to Event via `participated_in_events`\n- Temporal alignment: employment dates vs. organizational unit validity\n\n**Use Cases**:\n1. **Staff directories**: Document current\ + \ and historical staff roles\n2. **Organizational provenance**: Track who managed departments/collections\n3. **Workforce history**: Analyze staffing patterns over time\n4. **Expertise tracking**: Find conservators, curators by specialization\n5. **Reorganization impact**: Track staff transitions during structural changes\n\n**Example - Conservation Staff**:\n\n```yaml\nPersonObservation:\n person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n role_title: \"Senior Paintings Conservator\"\n affiliated_with: \".../org-unit/rm-conservation-division\"\n role_start_date: \"2013-03-01\"\n role_end_date: null # Still employed\n observation_source:\n source_type: \"Staff directory\"\n source_uri: \"https://rijksmuseum.nl/staff/jane-smith\"\n observation_date: \"2024-11-22\"\n```\n\n**Example - Staff Through Organizational Change**:\n\n```yaml\n# Before merger (2013-02-28)\nPersonObservation:\n person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n role_title:\ + \ \"Head, Paintings Conservation Department\"\n affiliated_with: \".../org-unit/rm-paintings-conservation\"\n role_start_date: \"2010-01-01\"\n role_end_date: \"2013-02-28\"\n\n# After merger (2013-03-01)\nPersonObservation:\n person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n role_title: \"Deputy Director, Conservation Division\"\n affiliated_with: \".../org-unit/rm-conservation-division\"\n role_start_date: \"2013-03-01\"\n role_end_date: null\n affected_by_event: \".../event/rm-conservation-merger-2013\"\n```\n" exact_mappings: - pico:PersonObservation close_mappings: @@ -52,10 +52,10 @@ classes: - foaf:Person - prov:Agent slots: - - is_or_was_affected_by_event - - has_or_had_age + - affected_by_event + - has_age slot_usage: - has_or_had_age: + has_age: # range: string required: false occupation: @@ -72,9 +72,9 @@ classes: required: false examples: - value: - has_or_had_label: Female + has_label: Female - value: - has_or_had_label: Male + has_label: Male staff_role: # range: string # uriorcurie # range: StaffRole @@ -82,7 +82,7 @@ classes: role_title: # range: string required: false - is_or_was_affiliated_with: + affiliated_with: # range: string required: false role_start_date: @@ -94,15 +94,15 @@ classes: observation_source: # range: string required: false - has_or_had_provenance: + has_provenance: # range: string inlined: false # Fixed invalid inline for primitive type required: false - is_or_was_affected_by_event: + affected_by_event: # range: string # uriorcurie # range: OrganizationalChangeEvent required: false - has_or_had_expertise_in: + has_expertise_in: # range: string # uriorcurie # range: ExpertiseArea multivalued: true @@ -125,7 +125,7 @@ classes: - refers_to_person links observation to Person hub (core PICO pattern) - Multiple observations from different sources can refer to same Person hub - Temporal validity enables tracking staff through organizational changes - - "Bidirectional links: staff \u2192 unit (is_or_was_affiliated_with), unit \u2192 staff (staff_members)" + - "Bidirectional links: staff \u2192 unit (affiliated_with), unit \u2192 staff (staff_members)" - "Person hub \u2192 Event via participated_in_events enables career event tracking" - 'Rule 26 compliance: web_claims slot enables verifiable provenance for person data' - LinkedIn data stored separately in person/entity/ files (Rule 12, Rule 20) @@ -135,12 +135,12 @@ classes: refers_to_person: https://nde.nl/ontology/hc/person/jane-smith staff_role: CONSERVATOR role_title: Deputy Director, Conservation Division - is_or_was_affiliated_with: https://nde.nl/ontology/hc/org-unit/rm-conservation-division + affiliated_with: https://nde.nl/ontology/hc/org-unit/rm-conservation-division role_start_date: ''2013-03-01'' role_end_date: null affected_by_event: https://nde.nl/ontology/hc/event/rm-conservation-merger-2013 ' - - value: "id: https://nde.nl/ontology/hc/person-obs/nl-nh-ams-m-rm/taco-dibbits/director-2016\nperson_name: Taco Dibbits\nrefers_to_person: https://nde.nl/ontology/hc/person/taco-dibbits\nstaff_role: DIRECTOR\nrole_title: General Director\nrole_start_date: '2016-09-01'\nrole_end_date: null\nlinkedin_profile_url: https://www.linkedin.com/in/taco-dibbits\nlinkedin_profile_path: data/custodian/person/entity/taco-dibbits_20250115T103000Z.json\nhas_or_had_web_claim:\n- person_claim_type: full_name\n person_claim_value: Taco Dibbits\n source_url: https://www.rijksmuseum.nl/en/about-us/organisation\n person_xpath: /html/body/main/section[2]/div[1]/h2\n retrieved_on: '2025-01-15T10:30:00Z'\n retrieval_agent: firecrawl\n person_xpath_match_score: 1.0\n- person_claim_type: role_title\n person_claim_value: General Director\n source_url: https://www.rijksmuseum.nl/en/about-us/organisation\n person_xpath: /html/body/main/section[2]/div[1]/p[1]\n retrieved_on: '2025-01-15T10:30:00Z'\n retrieval_agent:\ + - value: "id: https://nde.nl/ontology/hc/person-obs/nl-nh-ams-m-rm/taco-dibbits/director-2016\nperson_name: Taco Dibbits\nrefers_to_person: https://nde.nl/ontology/hc/person/taco-dibbits\nstaff_role: DIRECTOR\nrole_title: General Director\nrole_start_date: '2016-09-01'\nrole_end_date: null\nlinkedin_profile_url: https://www.linkedin.com/in/taco-dibbits\nlinkedin_profile_path: data/custodian/person/entity/taco-dibbits_20250115T103000Z.json\nhas_web_claim:\n- person_claim_type: full_name\n person_claim_value: Taco Dibbits\n source_url: https://www.rijksmuseum.nl/en/about-us/organisation\n person_xpath: /html/body/main/section[2]/div[1]/h2\n retrieved_on: '2025-01-15T10:30:00Z'\n retrieval_agent: firecrawl\n person_xpath_match_score: 1.0\n- person_claim_type: role_title\n person_claim_value: General Director\n source_url: https://www.rijksmuseum.nl/en/about-us/organisation\n person_xpath: /html/body/main/section[2]/div[1]/p[1]\n retrieved_on: '2025-01-15T10:30:00Z'\n retrieval_agent:\ \ firecrawl\n person_xpath_match_score: 1.0\n" annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/PersonOrOrganization.yaml b/schemas/20251121/linkml/modules/classes/PersonOrOrganization.yaml index c21a021321..4eaad181a5 100644 --- a/schemas/20251121/linkml/modules/classes/PersonOrOrganization.yaml +++ b/schemas/20251121/linkml/modules/classes/PersonOrOrganization.yaml @@ -16,8 +16,8 @@ default_prefix: hc imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score + - ../slots/identified_by + - ../slots/20260202_matang/has_score - ../slots/organizational_level classes: PersonOrOrganization: @@ -25,10 +25,10 @@ classes: is_a: AgentType class_uri: skos:Concept slots: - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: + identified_by: organizational_level: equals_string: abstract category annotations: diff --git a/schemas/20251121/linkml/modules/classes/PersonWebClaim.yaml b/schemas/20251121/linkml/modules/classes/PersonWebClaim.yaml index 83fce6dd9c..0dff611aa4 100644 --- a/schemas/20251121/linkml/modules/classes/PersonWebClaim.yaml +++ b/schemas/20251121/linkml/modules/classes/PersonWebClaim.yaml @@ -13,9 +13,9 @@ imports: - linkml:types - ../enums/PersonClaimTypeEnum - ../enums/RetrievalAgentEnum - - ../slots/has_or_had_note - - ../slots/has_or_had_provenance_path - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_provenance_path + - ../slots/20260202_matang/has_score - ../slots/person_claim_id - ../slots/person_claim_type - ../slots/person_claim_value @@ -27,18 +27,18 @@ default_prefix: hc classes: PersonWebClaim: class_uri: prov:Entity - description: "A verifiable claim about a person extracted from a web page with provenance.\n\n**RULE 26 COMPLIANCE: Person Data Provenance**\n\nAll person/staff data associated with heritage custodians MUST have\nweb claim provenance. This includes:\n- Staff names, titles, and roles\n- Contact information (if publicly available)\n- Professional history and education\n- Affiliations and expertise areas\n\n**VERIFIABILITY PRINCIPLE**\n\nLike the base WebClaim class, PersonWebClaim follows the \"XPath or Remove\" principle:\n- Claims from web pages MUST have has_or_had_provenance_path with XPath expression\n- Claims from APIs (LinkedIn via Exa) may omit has_or_had_provenance_path but MUST have source_url\n- Claims without any verifiable source are FABRICATED and must be removed\n\n**SOURCE HIERARCHY**\n\nWhen multiple sources provide the same information:\n1. Official institutional website (highest reliability)\n2. LinkedIn profile (high reliability)\n3. News articles/press releases (medium-high)\n\ - 4. Conference programs (medium)\n5. Academic publications (medium)\n6. Third-party databases (lower)\n\nDocument all sources when available; note conflicts.\n\n**CLAIM TYPES**\n\nCommon claim types for heritage institution staff:\n- **full_name**: Complete name as displayed\n- **role_title**: Job title (e.g., \"Senior Curator\")\n- **department**: Organizational unit\n- **email**: Professional contact (only if public)\n- **biography**: Professional bio text\n- **specialization**: Expertise areas\n- **education**: Degrees and institutions\n\n**EXTRACTION WORKFLOW**\n\n1. SCRAPE institutional staff/team pages with FireCrawl\n2. EXTRACT names and roles with XPath locations stored in has_or_had_provenance_path\n3. SEARCH LinkedIn for additional profile data\n4. CREATE PersonWebClaim for each extracted fact\n5. LINK claims to PersonObservation records\n\n**INTEGRATION WITH PERSONOBSERVATION**\n\nPersonObservation (the PiCo-based staff role record) references\nPersonWebClaim instances via\ - \ the `web_claims` slot:\n\n```yaml\nPersonObservation:\n person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n has_or_had_web_claim:\n - claim_type: full_name\n claim_value: \"Dr. Jane Smith\"\n source_url: https://museum.org/team\n has_or_had_provenance_path:\n expression: /html/body/main/div[2]/h3\n match_score: 1.0\n retrieval_agent: firecrawl\n```\n\n**LINKEDIN PROFILE HANDLING**\n\nFor LinkedIn data, create separate profile files (per Rule 12, Rule 20)\nand reference them:\n\n```yaml\nlinkedin_claims:\n linkedin_url: https://www.linkedin.com/in/jane-smith\n profile_data_path: data/custodian/person/entity/jane-smith_20250115.json\n retrieved_on: \"2025-01-15T10:30:00Z\"\n retrieval_agent: exa_crawling_exa\n```\n" + description: "A verifiable claim about a person extracted from a web page with provenance.\n\n**RULE 26 COMPLIANCE: Person Data Provenance**\n\nAll person/staff data associated with heritage custodians MUST have\nweb claim provenance. This includes:\n- Staff names, titles, and roles\n- Contact information (if publicly available)\n- Professional history and education\n- Affiliations and expertise areas\n\n**VERIFIABILITY PRINCIPLE**\n\nLike the base WebClaim class, PersonWebClaim follows the \"XPath or Remove\" principle:\n- Claims from web pages MUST have has_provenance_path with XPath expression\n- Claims from APIs (LinkedIn via Exa) may omit has_provenance_path but MUST have source_url\n- Claims without any verifiable source are FABRICATED and must be removed\n\n**SOURCE HIERARCHY**\n\nWhen multiple sources provide the same information:\n1. Official institutional website (highest reliability)\n2. LinkedIn profile (high reliability)\n3. News articles/press releases (medium-high)\n\ + 4. Conference programs (medium)\n5. Academic publications (medium)\n6. Third-party databases (lower)\n\nDocument all sources when available; note conflicts.\n\n**CLAIM TYPES**\n\nCommon claim types for heritage institution staff:\n- **full_name**: Complete name as displayed\n- **role_title**: Job title (e.g., \"Senior Curator\")\n- **department**: Organizational unit\n- **email**: Professional contact (only if public)\n- **biography**: Professional bio text\n- **specialization**: Expertise areas\n- **education**: Degrees and institutions\n\n**EXTRACTION WORKFLOW**\n\n1. SCRAPE institutional staff/team pages with FireCrawl\n2. EXTRACT names and roles with XPath locations stored in has_provenance_path\n3. SEARCH LinkedIn for additional profile data\n4. CREATE PersonWebClaim for each extracted fact\n5. LINK claims to PersonObservation records\n\n**INTEGRATION WITH PERSONOBSERVATION**\n\nPersonObservation (the PiCo-based staff role record) references\nPersonWebClaim instances via\ + \ the `web_claims` slot:\n\n```yaml\nPersonObservation:\n person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n has_web_claim:\n - claim_type: full_name\n claim_value: \"Dr. Jane Smith\"\n source_url: https://museum.org/team\n has_provenance_path:\n expression: /html/body/main/div[2]/h3\n match_score: 1.0\n retrieval_agent: firecrawl\n```\n\n**LINKEDIN PROFILE HANDLING**\n\nFor LinkedIn data, create separate profile files (per Rule 12, Rule 20)\nand reference them:\n\n```yaml\nlinkedin_claims:\n linkedin_url: https://www.linkedin.com/in/jane-smith\n profile_data_path: data/custodian/person/entity/jane-smith_20250115.json\n retrieved_on: \"2025-01-15T10:30:00Z\"\n retrieval_agent: exa_crawling_exa\n```\n" exact_mappings: - prov:Entity close_mappings: - schema:PropertyValue - foaf:Document slots: - - has_or_had_note - - has_or_had_provenance_path - - has_or_had_score + - has_note + - has_provenance_path + - has_score - person_claim_id - person_claim_type - person_claim_value @@ -47,7 +47,7 @@ classes: - retrieved_on - source_url slot_usage: - has_or_had_note: + has_note: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type @@ -70,12 +70,12 @@ classes: retrieval_agent: required: true range: RetrievalAgentEnum - has_or_had_provenance_path: + has_provenance_path: range: XPath inlined: true comments: - - 'MIGRATION (2026-01-18): Replaced person_claim_note with has_or_had_note using Note class per Rule 53' - - 'MIGRATION (2026-01-15): Replaced person_xpath/person_xpath_match_score slots with has_or_had_provenance_path using XPath class per slot_fixes.yaml' + - 'MIGRATION (2026-01-18): Replaced person_claim_note with has_note using Note class per Rule 53' + - 'MIGRATION (2026-01-15): Replaced person_xpath/person_xpath_match_score slots with has_provenance_path using XPath class per slot_fixes.yaml' - PersonWebClaim extends WebClaim pattern for person-specific data - 'XPATH OR REMOVE: Claims without verifiable source must be removed' - Links to PersonObservation via web_claims slot @@ -87,7 +87,7 @@ classes: person_claim_value: Taco Dibbits source_url: https://www.rijksmuseum.nl/en/about-us/organisation retrieved_on: '2025-01-15T10:30:00Z' - has_or_had_provenance_path: + has_provenance_path: person_html_file: web/NL-NH-AMS-M-RM/rijksmuseum.nl/organisation.html retrieval_agent: firecrawl - value: @@ -95,7 +95,7 @@ classes: person_claim_value: General Director source_url: https://www.rijksmuseum.nl/en/about-us/organisation retrieved_on: '2025-01-15T10:30:00Z' - has_or_had_provenance_path: + has_provenance_path: person_html_file: web/NL-NH-AMS-M-RM/rijksmuseum.nl/organisation.html retrieval_agent: firecrawl - value: @@ -103,10 +103,10 @@ classes: person_claim_value: Taco Dibbits has been General Director since 2016... source_url: https://www.rijksmuseum.nl/en/about-us/organisation retrieved_on: '2025-01-15T10:30:00Z' - has_or_had_provenance_path: + has_provenance_path: person_html_file: web/NL-NH-AMS-M-RM/rijksmuseum.nl/organisation.html retrieval_agent: firecrawl - has_or_had_note: + has_note: - note_type: extraction note_content: Biography truncated from longer text on page - value: @@ -115,7 +115,7 @@ classes: source_url: https://www.linkedin.com/in/taco-dibbits retrieved_on: '2025-01-15T11:00:00Z' retrieval_agent: exa_crawling_exa - has_or_had_note: + has_note: - note_type: extraction note_content: Profile data stored in person/entity/taco-dibbits_20250115.json. No XPath for API extraction. annotations: diff --git a/schemas/20251121/linkml/modules/classes/PersonalCollectionType.yaml b/schemas/20251121/linkml/modules/classes/PersonalCollectionType.yaml index ed1abee29f..45a5199012 100644 --- a/schemas/20251121/linkml/modules/classes/PersonalCollectionType.yaml +++ b/schemas/20251121/linkml/modules/classes/PersonalCollectionType.yaml @@ -7,11 +7,11 @@ description: 'Specialized CustodianType for individual private collectors and th ' imports: - linkml:types - - ../slots/has_or_had_category - - ../slots/has_or_had_quantity - - ../slots/has_or_had_type - - ../slots/is_or_was_acquired_through - - ../slots/is_or_was_acquired_through # was: has_acquisition_history + - ../slots/categorized_as + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/acquired_through + - ../slots/20260202_matang/acquired_through # was: has_acquisition_history - ../slots/legacy_planning - ../slots/personal_collection_subtype - ../slots/preservation_approach @@ -19,18 +19,18 @@ default_prefix: hc classes: PersonalCollectionType: slots: - # REMOVED 2026-01-19: collection_focus - migrated to has_or_had_category + Category (Rule 53) - - has_or_had_category - # REMOVED 2026-01-19: collection_size - migrated to has_or_had_quantity + Quantity (Rule 53) - - has_or_had_quantity - - has_or_had_type + # REMOVED 2026-01-19: collection_focus - migrated to categorized_as + Category (Rule 53) + - categorized_as + # REMOVED 2026-01-19: collection_size - migrated to has_quantity + Quantity (Rule 53) + - has_quantity + - has_type - legacy_planning - personal_collection_subtype - preservation_approach - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - - is_or_was_acquired_through + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - acquired_through slot_usage: - has_or_had_category: # was: collection_focus - migrated per Rule 53 (2026-01-19) + categorized_as: # was: collection_focus - migrated per Rule 53 (2026-01-19) # range: string # uriorcurie # range: Category inlined: false # Fixed invalid inline for primitive type @@ -40,19 +40,19 @@ classes: - value: - value: - value: - has_or_had_quantity: # was: collection_size - migrated per Rule 53 (2026-01-19) + has_quantity: # was: collection_size - migrated per Rule 53 (2026-01-19) range: integer inlined: false # Fixed invalid inline for primitive type multivalued: true required: true examples: - value: - has_or_had_unit: - has_or_had_label: + has_unit: + has_label: - label_text: "paintings" - value: - has_or_had_unit: - is_or_was_acquired_through: + has_unit: + acquired_through: # range: string # uriorcurie # range: AcquisitionEvent multivalued: true @@ -60,17 +60,17 @@ classes: required: true examples: - value: - has_or_had_provenance: - has_or_had_description: + has_provenance: + has_description: - description_text: "Inherited family collection since 1654" - description_text: "Selective purchases 1980-2020" - value: - has_or_had_provenance: - has_or_had_description: + has_provenance: + has_description: - description_text: "Assembled 1950-2000 through European auctions" - value: - has_or_had_provenance: - has_or_had_description: + has_provenance: + has_description: - description_text: "Field-collected during botanical expeditions" - value: Scholars by appointment, Photography allowed - value: Open Heritage Days, Guided tours @@ -88,5 +88,5 @@ classes: - value: Family succession, Museum permanent loans - value: Bequest to Metropolitan Museum - value: House museum, Foundation established - has_or_had_type: + has_type: equals_expression: '["hc:PersonalCollectionType"]' diff --git a/schemas/20251121/linkml/modules/classes/PersonalData.yaml b/schemas/20251121/linkml/modules/classes/PersonalData.yaml index 72699e3e53..d978cbbe6a 100644 --- a/schemas/20251121/linkml/modules/classes/PersonalData.yaml +++ b/schemas/20251121/linkml/modules/classes/PersonalData.yaml @@ -9,17 +9,17 @@ prefixes: dcterms: http://purl.org/dc/terms/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_sensitivity_level + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_sensitivity_level default_prefix: hc classes: PersonalData: class_uri: schema:Thing slots: - - has_or_had_sensitivity_level - - has_or_had_description + - has_sensitivity_level + - has_description slot_usage: - has_or_had_sensitivity_level: + has_sensitivity_level: range: SensitivityLevel required: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/PersonalLibrary.yaml b/schemas/20251121/linkml/modules/classes/PersonalLibrary.yaml index 1e2f9db8a1..0122d8f36c 100644 --- a/schemas/20251121/linkml/modules/classes/PersonalLibrary.yaml +++ b/schemas/20251121/linkml/modules/classes/PersonalLibrary.yaml @@ -9,9 +9,9 @@ default_prefix: hc imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: PersonalLibrary: description: The private library collection of an individual. Personal libraries (Autorenbibliotheken) document the reading habits, intellectual interests, and working methods of their owners. They may include books with annotations, presentation copies, and materials reflecting the owner's personal and professional life. Often preserved as part of a Nachlass or literary archive. @@ -25,12 +25,12 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" slots: - - has_or_had_type - - has_or_had_score - - has_or_had_identifier + - has_type + - has_score + - identified_by slot_usage: - has_or_had_identifier: - has_or_had_type: + identified_by: + has_type: equals_expression: '["hc:LibraryType", "hc:PersonalCollectionType"]' see_also: - Nachlass diff --git a/schemas/20251121/linkml/modules/classes/PhotoArchive.yaml b/schemas/20251121/linkml/modules/classes/PhotoArchive.yaml index 1d5e353ff0..4d84723972 100644 --- a/schemas/20251121/linkml/modules/classes/PhotoArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/PhotoArchive.yaml @@ -10,10 +10,10 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: PhotoArchive: @@ -21,10 +21,10 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q27032363 close_mappings: @@ -33,8 +33,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Photo Archive diff --git a/schemas/20251121/linkml/modules/classes/PhotoArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/PhotoArchiveRecordSetType.yaml index 79bbda3a68..abc8c113bd 100644 --- a/schemas/20251121/linkml/modules/classes/PhotoArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/PhotoArchiveRecordSetType.yaml @@ -16,9 +16,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: PhotoArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by PhotoArchive custodians. @@ -27,14 +27,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - PhotoArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/PhotoArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/PhotoArchiveRecordSetTypes.yaml index 2b53dc398d..13f6570cff 100644 --- a/schemas/20251121/linkml/modules/classes/PhotoArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/PhotoArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./PhotoArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - PhotoArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PhotographerPapersCollection @@ -78,15 +78,15 @@ classes: - PhotoArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PhotographicPrintSeries @@ -115,15 +115,15 @@ classes: - PhotoArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: DigitalImageCollection diff --git a/schemas/20251121/linkml/modules/classes/Photography.yaml b/schemas/20251121/linkml/modules/classes/Photography.yaml index 97721025a3..fb2aedaa9c 100644 --- a/schemas/20251121/linkml/modules/classes/Photography.yaml +++ b/schemas/20251121/linkml/modules/classes/Photography.yaml @@ -7,7 +7,7 @@ description: >- and under what conditions. **MIGRATION NOTE** (2026-01-14): Created as part of slot migration from `allows_photography` and - `allows_or_allowed_photography` to generic `allows_or_allowed` slot + `allows_or_allowed_photography` to generic `allow` slot with typed class. See slot_fixes.yaml for migration specification. prefixes: linkml: https://w3id.org/linkml/ @@ -18,8 +18,8 @@ prefixes: imports: - linkml:types - ../slots/excludes_or_excluded - - ../slots/has_or_had_description - - ../slots/has_or_had_score # was: template_specificity + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_score # was: template_specificity - ../slots/is_permitted - ../slots/poses_or_posed_condition - ../slots/requires_declaration @@ -56,7 +56,7 @@ classes: - 2010s onwards: Many institutions allow free photography **EXAMPLE**: ```yaml - allows_or_allowed: + allow: - permitted_item: Photography is_permitted: true conditions: @@ -72,13 +72,13 @@ classes: - dcterms:accessRights slots: - is_permitted - - has_or_had_description + - has_description # MIGRATED 2026-01-22: condition → poses_or_posed_condition + Condition (Rule 53) - poses_or_posed_condition - requires_declaration - excludes_or_excluded - temporal_extent # was: valid_from + valid_to - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: is_permitted: range: boolean @@ -91,11 +91,11 @@ classes: inlined_as_list: true examples: - value: - - has_or_had_type: UseCondition - has_or_had_description: + - has_type: UseCondition + has_description: description_text: "No flash photography" - - has_or_had_type: UseCondition - has_or_had_description: + - has_type: UseCondition + has_description: description_text: "Personal research use only" requires_declaration: range: boolean @@ -105,11 +105,11 @@ classes: inlined: true examples: - value: - has_or_had_identifier: "https://nde.nl/ontology/hc/material/fragile-manuscripts" - has_or_had_label: "Fragile manuscripts" + identified_by: "https://nde.nl/ontology/hc/material/fragile-manuscripts" + has_label: "Fragile manuscripts" - value: - has_or_had_identifier: "https://nde.nl/ontology/hc/material/copyrighted-materials" - has_or_had_label: "Materials under copyright" + identified_by: "https://nde.nl/ontology/hc/material/copyrighted-materials" + has_label: "Materials under copyright" annotations: custodian_types: '["*"]' custodian_types_rationale: >- @@ -131,14 +131,14 @@ classes: id: hc:photography-policy/nationaal-archief is_permitted: true poses_or_posed_condition: - - has_or_had_type: UseCondition - has_or_had_description: + - has_type: UseCondition + has_description: description_text: "No flash" - - has_or_had_type: UseCondition - has_or_had_description: + - has_type: UseCondition + has_description: description_text: "Personal research use only" - - has_or_had_type: ReproductionCondition - has_or_had_description: + - has_type: ReproductionCondition + has_description: description_text: "No commercial use without permission" requires_declaration: true temporal_extent: @@ -147,32 +147,32 @@ classes: id: hc:photography-policy/special-collections-restricted is_permitted: false poses_or_posed_condition: - - has_or_had_type: UseCondition - has_or_had_description: + - has_type: UseCondition + has_description: description_text: "Reproduction service available" - - has_or_had_type: UseCondition - has_or_had_description: + - has_type: UseCondition + has_description: description_text: "Digital scans may be ordered" excludes_or_excluded: - - has_or_had_label: "All materials in this reading room" + - has_label: "All materials in this reading room" temporal_extent: begin_of_the_begin: "2020-01-01" - value: id: hc:photography-policy/museum-gallery is_permitted: true poses_or_posed_condition: - - has_or_had_type: UseCondition - has_or_had_description: + - has_type: UseCondition + has_description: description_text: "No flash" - - has_or_had_type: UseCondition - has_or_had_description: + - has_type: UseCondition + has_description: description_text: "No tripods or selfie sticks" - - has_or_had_type: UseCondition - has_or_had_description: + - has_type: UseCondition + has_description: description_text: "Temporary exhibitions may have different rules" excludes_or_excluded: - - has_or_had_label: "Loan items marked with no-photography symbol" - - has_or_had_label: "Temporary exhibitions unless noted" + - has_label: "Loan items marked with no-photography symbol" + - has_label: "Temporary exhibitions unless noted" temporal_extent: begin_of_the_begin: "2018-06-01" # REMOVED inline slots 2026-01-16 - Rule 48 violation diff --git a/schemas/20251121/linkml/modules/classes/PlaceType.yaml b/schemas/20251121/linkml/modules/classes/PlaceType.yaml index 1717ca1df0..4762bc16d2 100644 --- a/schemas/20251121/linkml/modules/classes/PlaceType.yaml +++ b/schemas/20251121/linkml/modules/classes/PlaceType.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: PlaceType: class_uri: skos:Concept description: Place type. slots: - - has_or_had_label + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Platform.yaml b/schemas/20251121/linkml/modules/classes/Platform.yaml index 1570c03b93..ab6d275ba8 100644 --- a/schemas/20251121/linkml/modules/classes/Platform.yaml +++ b/schemas/20251121/linkml/modules/classes/Platform.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_name + - ../slots/20260202_matang/has_type classes: Platform: class_uri: schema:DigitalDocument description: Platform entity. slots: - - has_or_had_name - - has_or_had_type + - has_name + - has_type annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/PlatformType.yaml b/schemas/20251121/linkml/modules/classes/PlatformType.yaml index 9c9f8e6137..373dab44e5 100644 --- a/schemas/20251121/linkml/modules/classes/PlatformType.yaml +++ b/schemas/20251121/linkml/modules/classes/PlatformType.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: PlatformType: class_uri: skos:Concept description: Platform type. slots: - - has_or_had_label + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Policy.yaml b/schemas/20251121/linkml/modules/classes/Policy.yaml index 8497af5ee2..5f9d8fab3f 100644 --- a/schemas/20251121/linkml/modules/classes/Policy.yaml +++ b/schemas/20251121/linkml/modules/classes/Policy.yaml @@ -16,8 +16,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/is_or_was_effective_at - - ../slots/is_or_was_expired_at + - ../slots/20260202_matang/effective_at + - ../slots/20260202_matang/expired_at - ../slots/note - ../slots/policy_description - ../slots/policy_id @@ -79,8 +79,8 @@ classes: - policy_id - policy_name - policy_description - - is_or_was_effective_at - - is_or_was_expired_at + - effective_at + - expired_at - note slot_usage: policy_id: @@ -88,10 +88,10 @@ classes: policy_name: required: true policy_description: - is_or_was_effective_at: + effective_at: range: date required: true - is_or_was_expired_at: + expired_at: range: date required: true note: diff --git a/schemas/20251121/linkml/modules/classes/PoliticalArchive.yaml b/schemas/20251121/linkml/modules/classes/PoliticalArchive.yaml index 7f00142f97..c0bd826506 100644 --- a/schemas/20251121/linkml/modules/classes/PoliticalArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/PoliticalArchive.yaml @@ -10,10 +10,10 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: PoliticalArchive: @@ -21,10 +21,10 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q27030921 close_mappings: @@ -33,8 +33,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Political Archive diff --git a/schemas/20251121/linkml/modules/classes/PoliticalArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/PoliticalArchiveRecordSetType.yaml index 3fd6b8501a..f94f412811 100644 --- a/schemas/20251121/linkml/modules/classes/PoliticalArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/PoliticalArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: PoliticalArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by PoliticalArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - PoliticalArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/PoliticalArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/PoliticalArchiveRecordSetTypes.yaml index 694aa23736..6aac27b107 100644 --- a/schemas/20251121/linkml/modules/classes/PoliticalArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/PoliticalArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./PoliticalArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - PoliticalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PoliticalPartyFonds @@ -78,15 +78,15 @@ classes: - PoliticalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CampaignRecordCollection @@ -115,15 +115,15 @@ classes: - PoliticalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PoliticianPapersCollection diff --git a/schemas/20251121/linkml/modules/classes/Portal.yaml b/schemas/20251121/linkml/modules/classes/Portal.yaml index 494ffe2645..09e3a3b725 100644 --- a/schemas/20251121/linkml/modules/classes/Portal.yaml +++ b/schemas/20251121/linkml/modules/classes/Portal.yaml @@ -10,8 +10,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_url classes: Portal: class_uri: schema:WebSite @@ -21,5 +21,5 @@ classes: specificity_rationale: "Generic utility class created during migration" custodian_types: '["*"]' slots: - - has_or_had_url - - has_or_had_label + - has_url + - has_label diff --git a/schemas/20251121/linkml/modules/classes/PostcustodialArchive.yaml b/schemas/20251121/linkml/modules/classes/PostcustodialArchive.yaml index 39911b0b9f..a582adc6bb 100644 --- a/schemas/20251121/linkml/modules/classes/PostcustodialArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/PostcustodialArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: PostcustodialArchive: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q124223197 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Postcustodial Archive diff --git a/schemas/20251121/linkml/modules/classes/PostcustodialArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/PostcustodialArchiveRecordSetType.yaml index 5bbc1b99ae..bb597a4e3f 100644 --- a/schemas/20251121/linkml/modules/classes/PostcustodialArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/PostcustodialArchiveRecordSetType.yaml @@ -16,9 +16,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: PostcustodialArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by PostcustodialArchive custodians. @@ -26,14 +26,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - PostcustodialArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/PostcustodialArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/PostcustodialArchiveRecordSetTypes.yaml index ceefd8ae27..40a3c6da17 100644 --- a/schemas/20251121/linkml/modules/classes/PostcustodialArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/PostcustodialArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./PostcustodialArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - PostcustodialArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: DistributedRecordsCollection diff --git a/schemas/20251121/linkml/modules/classes/Precision.yaml b/schemas/20251121/linkml/modules/classes/Precision.yaml index b9d73d7692..b826df83ab 100644 --- a/schemas/20251121/linkml/modules/classes/Precision.yaml +++ b/schemas/20251121/linkml/modules/classes/Precision.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: Precision: class_uri: schema:QuantitativeValue @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_value + - has_value diff --git a/schemas/20251121/linkml/modules/classes/PressArchive.yaml b/schemas/20251121/linkml/modules/classes/PressArchive.yaml index 3493e635fd..05af03369c 100644 --- a/schemas/20251121/linkml/modules/classes/PressArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/PressArchive.yaml @@ -16,10 +16,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: PressArchive: @@ -27,10 +27,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q56650887 close_mappings: @@ -39,8 +39,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Press Archive diff --git a/schemas/20251121/linkml/modules/classes/PressArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/PressArchiveRecordSetType.yaml index bf11d72b17..e21ed8c785 100644 --- a/schemas/20251121/linkml/modules/classes/PressArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/PressArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: PressArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by PressArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - PressArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/PressArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/PressArchiveRecordSetTypes.yaml index f34401e056..fc04971a88 100644 --- a/schemas/20251121/linkml/modules/classes/PressArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/PressArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./PressArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - PressArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: NewspaperPublicationFonds @@ -78,15 +78,15 @@ classes: - PressArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: JournalistPapersCollection @@ -115,15 +115,15 @@ classes: - PressArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: EditorialRecordSeries diff --git a/schemas/20251121/linkml/modules/classes/Price.yaml b/schemas/20251121/linkml/modules/classes/Price.yaml index 27d337ff46..55ade5d5a9 100644 --- a/schemas/20251121/linkml/modules/classes/Price.yaml +++ b/schemas/20251121/linkml/modules/classes/Price.yaml @@ -9,25 +9,25 @@ prefixes: gr: http://purl.org/goodrelations/v1# imports: - linkml:types - - ../slots/has_or_had_currency - - ../slots/has_or_had_type - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_currency + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_value default_prefix: hc classes: Price: class_uri: schema:PriceSpecification description: "Price information including value, currency, and optional range/category.\n\nFor catering and services, price ranges use symbolic notation:\n- \u20AC (budget): Under \u20AC15 per person\n- \u20AC\u20AC (moderate): \u20AC15-30 per person\n- \u20AC\u20AC\u20AC (upscale): \u20AC30-60 per person\n- \u20AC\u20AC\u20AC\u20AC (luxury): Over \u20AC60 per person\n" slots: - - has_or_had_value - - has_or_had_currency - - has_or_had_type + - has_value + - has_currency + - has_type slot_usage: - has_or_had_value: + has_value: description: "The price value. Can be:\n- Numeric (e.g., \"15.00\")\n- Symbolic (e.g., \"\u20AC\u20AC\u20AC\")\n- Descriptive (e.g., \"free\", \"donation suggested\")\n" - has_or_had_currency: + has_currency: range: Currency inlined: true - has_or_had_type: + has_type: range: PriceRange inlined: true exact_mappings: @@ -35,20 +35,20 @@ classes: - gr:PriceSpecification examples: - value: - has_or_had_value: "\u20AC\u20AC\u20AC\u20AC" - has_or_had_type: - has_or_had_name: Luxury - has_or_had_description: "Over \u20AC60 per person" + has_value: "\u20AC\u20AC\u20AC\u20AC" + has_type: + has_name: Luxury + has_description: "Over \u20AC60 per person" - value: - has_or_had_value: "\u20AC" - has_or_had_type: - has_or_had_name: Budget - has_or_had_description: "Under \u20AC15 per person" + has_value: "\u20AC" + has_type: + has_name: Budget + has_description: "Under \u20AC15 per person" - value: - has_or_had_value: '15.00' - has_or_had_currency: - has_or_had_code: EUR - has_or_had_symbol: "\u20AC" + has_value: '15.00' + has_currency: + has_code: EUR + has_symbol: "\u20AC" annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/PriceRange.yaml b/schemas/20251121/linkml/modules/classes/PriceRange.yaml index c97bd3a591..b954923201 100644 --- a/schemas/20251121/linkml/modules/classes/PriceRange.yaml +++ b/schemas/20251121/linkml/modules/classes/PriceRange.yaml @@ -19,44 +19,44 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_name - - ../slots/has_or_had_symbol + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_name + - ../slots/20260202_matang/has_symbol default_prefix: hc classes: PriceRange: class_uri: skos:Concept description: "A price range or category classification.\n\nStandard price range categories:\n- Budget (\u20AC): Under \u20AC15 per person\n- Moderate (\u20AC\u20AC): \u20AC15-30 per person\n- Upscale (\u20AC\u20AC\u20AC): \u20AC30-60 per person\n- Luxury (\u20AC\u20AC\u20AC\u20AC): Over \u20AC60 per person\n- Free: No charge\n- Donation: Suggested donation\n" slots: - - has_or_had_name - - has_or_had_description - - has_or_had_symbol + - has_name + - has_description + - has_symbol slot_usage: - has_or_had_name: + has_name: required: true - has_or_had_symbol: - has_or_had_description: + has_symbol: + has_description: exact_mappings: - skos:Concept close_mappings: - schema:priceRange examples: - value: - has_or_had_name: Budget - has_or_had_symbol: "\u20AC" - has_or_had_description: "Under \u20AC15 per person" + has_name: Budget + has_symbol: "\u20AC" + has_description: "Under \u20AC15 per person" - value: - has_or_had_name: Moderate - has_or_had_symbol: "\u20AC\u20AC" - has_or_had_description: "\u20AC15-30 per person" + has_name: Moderate + has_symbol: "\u20AC\u20AC" + has_description: "\u20AC15-30 per person" - value: - has_or_had_name: Upscale - has_or_had_symbol: "\u20AC\u20AC\u20AC" - has_or_had_description: "\u20AC30-60 per person" + has_name: Upscale + has_symbol: "\u20AC\u20AC\u20AC" + has_description: "\u20AC30-60 per person" - value: - has_or_had_name: Luxury - has_or_had_symbol: "\u20AC\u20AC\u20AC\u20AC" - has_or_had_description: "Over \u20AC60 per person" + has_name: Luxury + has_symbol: "\u20AC\u20AC\u20AC\u20AC" + has_description: "Over \u20AC60 per person" annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Primary.yaml b/schemas/20251121/linkml/modules/classes/Primary.yaml index fe4d6cb53a..66b652667d 100644 --- a/schemas/20251121/linkml/modules/classes/Primary.yaml +++ b/schemas/20251121/linkml/modules/classes/Primary.yaml @@ -12,7 +12,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_status + - ../slots/20260202_matang/has_status classes: Primary: class_uri: hc:Primary @@ -23,4 +23,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_status + - has_status diff --git a/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml b/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml index f2ce1a8749..60906717f2 100644 --- a/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml +++ b/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml @@ -3,16 +3,16 @@ name: primary_digital_presence_assertion title: PrimaryDigitalPresenceAssertion Class imports: - linkml:types - - ../slots/asserts_or_asserted - - ../slots/has_or_had_identifier - - ../slots/has_or_had_rationale - - ../slots/has_or_had_score - - ../slots/has_or_had_value - - ../slots/is_or_was_about_digital_presence - - ../slots/is_or_was_asserted_by - - ../slots/is_or_was_asserted_on - - ../slots/is_or_was_generated_by - - ../slots/is_or_was_superseded_by + - ../slots/assert + - ../slots/identified_by + - ../slots/20260202_matang/has_rationale + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_value + - ../slots/20260202_matang/about_digital_presence + - ../slots/20260202_matang/asserted_by + - ../slots/20260202_matang/asserted_on + - ../slots/20260202_matang/generated_by + - ../slots/20260202_matang/superseded_by - ../slots/supersedes_or_superseded - ../slots/temporal_extent prefixes: @@ -43,59 +43,59 @@ classes: - crm:P141_assigned - prov:wasGeneratedBy slots: - - is_or_was_about_digital_presence - - is_or_was_asserted_by - - is_or_was_asserted_on - - has_or_had_identifier - - has_or_had_rationale - - has_or_had_value - - is_or_was_generated_by - - asserts_or_asserted - - is_or_was_superseded_by + - about_digital_presence + - asserted_by + - asserted_on + - identified_by + - has_rationale + - has_value + - generated_by + - assert + - superseded_by - supersedes_or_superseded - - has_or_had_score + - has_score - temporal_extent slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/assertion/primary-presence/hvn-facebook-2025 - is_or_was_about_digital_presence: + about_digital_presence: # range: string # uriorcurie required: true examples: - value: https://nde.nl/ontology/hc/social-media/hvn-facebook - value: https://nde.nl/ontology/hc/platform/rijksmuseum-website - value: https://nde.nl/ontology/hc/iot/museum-beacon-network - asserts_or_asserted: + assert: range: DigitalPresence required: false inlined: true examples: - value: - has_or_had_type: - has_or_had_label: Social Media Profile - has_or_had_identifier: https://nde.nl/ontology/hc/type/social-media + has_type: + has_label: Social Media Profile + identified_by: https://nde.nl/ontology/hc/type/social-media - value: - has_or_had_type: - has_or_had_label: Website - has_or_had_identifier: https://nde.nl/ontology/hc/type/website - has_or_had_value: + has_type: + has_label: Website + identified_by: https://nde.nl/ontology/hc/type/website + has_value: # range: string required: true inlined: false # Fixed invalid inline for primitive type examples: - value: - value: - has_or_had_rationale: + has_rationale: range: Rationale required: false inlined: true examples: - value: - has_or_had_rationale: No formal website exists for this heritage society. Facebook page is the only discoverable online presence. + has_rationale: No formal website exists for this heritage society. Facebook page is the only discoverable online presence. temporal_extent: range: TimeSpan required: false @@ -104,43 +104,43 @@ classes: - value: begin_of_the_begin: '2015-03-01T00:00:00Z' end_of_the_begin: '2015-03-01T00:00:00Z' - is_or_was_asserted_on: + asserted_on: range: TimeSpan required: false inlined: true examples: - value: start_of_the_start: '2025-11-29T14:30:00Z' - is_or_was_asserted_by: + asserted_by: range: Asserter inlined: true required: false examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/asserter/primary-presence-analyzer - has_or_had_label: primary-presence-analyzer + identified_by: https://nde.nl/ontology/hc/asserter/primary-presence-analyzer + has_label: primary-presence-analyzer asserter_type: AUTOMATED_SYSTEM asserter_version: '1.0' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/asserter/jane-doe - has_or_had_label: Jane Doe + identified_by: https://nde.nl/ontology/hc/asserter/jane-doe + has_label: Jane Doe asserter_type: HUMAN_ANALYST asserter_contact: jane.doe@heritage-org.nl - is_or_was_generated_by: + generated_by: range: GenerationEvent required: false inlined: true description: 'Generation event containing confidence score for this assertion. MIGRATED 2026-01-19: Replaces confidence_score slot with structured pattern.' examples: - value: - has_or_had_score: - has_or_had_score: 0.95 - has_or_had_method: evidence_analysis + has_score: + has_score: 0.95 + has_method: evidence_analysis - value: - has_or_had_score: - has_or_had_score: 0.65 - has_or_had_method: comparative_analysis - is_or_was_superseded_by: + has_score: + has_score: 0.65 + has_method: comparative_analysis + superseded_by: # range: string # uriorcurie required: false examples: @@ -151,10 +151,10 @@ classes: examples: - value: https://nde.nl/ontology/hc/assertion/club-facebook-secondary-2020 comments: - - "MIGRATED 2026-01-19: confidence_score \u2192 is_or_was_generated_by + GenerationEvent + ConfidenceScore (Rule 53)" + - "MIGRATED 2026-01-19: confidence_score \u2192 generated_by + GenerationEvent + ConfidenceScore (Rule 53)" - Models primary presence status as temporal assertion, not static boolean - Based on CIDOC-CRM E13_Attribute_Assignment pattern - - Supports change tracking via supersedes_or_superseded/is_or_was_superseded_by links + - Supports change tracking via supersedes_or_superseded/superseded_by links - Provenance via WebObservation references - TimeSpan allows fuzzy temporal boundaries - Confidence scores reflect evidence quality diff --git a/schemas/20251121/linkml/modules/classes/PrintRoom.yaml b/schemas/20251121/linkml/modules/classes/PrintRoom.yaml index ab60a9bc7a..cd58cb3e7d 100644 --- a/schemas/20251121/linkml/modules/classes/PrintRoom.yaml +++ b/schemas/20251121/linkml/modules/classes/PrintRoom.yaml @@ -8,21 +8,21 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: PrintRoom: description: Collection of prints, and sometimes drawings, watercolours and photographs. Print rooms (Kupferstichkabinette, cabinets des estampes) are specialized collections within museums or libraries that focus on works on paper including prints, drawings, and related materials. They typically require special viewing conditions due to light sensitivity of the materials. is_a: ArchiveOrganizationType class_uri: skos:Concept slots: - - has_or_had_type - - has_or_had_score - - has_or_had_identifier + - has_type + - has_score + - identified_by slot_usage: - has_or_had_identifier: - has_or_had_type: + identified_by: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Print Room diff --git a/schemas/20251121/linkml/modules/classes/ProcessorAgent.yaml b/schemas/20251121/linkml/modules/classes/ProcessorAgent.yaml index 63ca030640..5136824afd 100644 --- a/schemas/20251121/linkml/modules/classes/ProcessorAgent.yaml +++ b/schemas/20251121/linkml/modules/classes/ProcessorAgent.yaml @@ -10,7 +10,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: ProcessorAgent: class_uri: prov:Agent @@ -20,4 +20,4 @@ classes: specificity_rationale: "Generic utility class created during migration" custodian_types: '["*"]' slots: - - has_or_had_name + - has_name diff --git a/schemas/20251121/linkml/modules/classes/ProductCategory.yaml b/schemas/20251121/linkml/modules/classes/ProductCategory.yaml index 49b4449800..59f34cc1fa 100644 --- a/schemas/20251121/linkml/modules/classes/ProductCategory.yaml +++ b/schemas/20251121/linkml/modules/classes/ProductCategory.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: ProductCategory: class_uri: skos:Concept @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_label + - has_label diff --git a/schemas/20251121/linkml/modules/classes/ProfileData.yaml b/schemas/20251121/linkml/modules/classes/ProfileData.yaml index adf99ae1bb..a6f2cdad1d 100644 --- a/schemas/20251121/linkml/modules/classes/ProfileData.yaml +++ b/schemas/20251121/linkml/modules/classes/ProfileData.yaml @@ -36,9 +36,9 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' slots: - - has_or_had_label - - has_or_had_title + - has_label + - has_title - location - skill - - has_or_had_language + - has_language - specifies_or_specified diff --git a/schemas/20251121/linkml/modules/classes/Profit.yaml b/schemas/20251121/linkml/modules/classes/Profit.yaml index a15697eeba..05ead42a7a 100644 --- a/schemas/20251121/linkml/modules/classes/Profit.yaml +++ b/schemas/20251121/linkml/modules/classes/Profit.yaml @@ -17,11 +17,11 @@ classes: \n**PURPOSE**:\n\nModels whether an organization operates for profit or as nonprofit,\n\ replacing simple boolean with structured class for richer metadata.\n\n**DESIGN\ \ RATIONALE**:\n\nCreated per slot_fixes.yaml migration from `commercial_operation`\ - \ boolean\nto structured `has_or_had_objective` + `Profit` for complete objective\ + \ boolean\nto structured `has_objective` + `Profit` for complete objective\ \ tracking.\n\n**USE CASES**:\n\n- Commercial galleries: For-profit, sell artworks,\ \ earn commission\n- Kunsthalle: Nonprofit, exhibition-only, public funding\n\ - Mixed models: Partial commercial activities in nonprofit context\n\n**EXAMPLE**:\n\ - \n```yaml\nhas_or_had_objective:\n objective_type: \"for-profit\"\n is_commercial:\ + \n```yaml\nhas_objective:\n objective_type: \"for-profit\"\n is_commercial:\ \ true\n profit_model: \"Sales commission\"\n tax_status: \"for-profit corporation\"\ \n```\n" close_mappings: diff --git a/schemas/20251121/linkml/modules/classes/Program.yaml b/schemas/20251121/linkml/modules/classes/Program.yaml index 57fb273cdd..a582ba1e0f 100644 --- a/schemas/20251121/linkml/modules/classes/Program.yaml +++ b/schemas/20251121/linkml/modules/classes/Program.yaml @@ -8,7 +8,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type - ../slots/participant_count classes: Program: @@ -16,10 +16,10 @@ classes: description: 'A program or initiative offered by an institution. **USAGE**: Used for: - Volunteer programs - Educational programs - Outreach initiatives ' slots: - - has_or_had_type + - has_type - participant_count slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie close_mappings: - schema:Event diff --git a/schemas/20251121/linkml/modules/classes/ProgramType.yaml b/schemas/20251121/linkml/modules/classes/ProgramType.yaml index d87e3e9e23..c864faac3b 100644 --- a/schemas/20251121/linkml/modules/classes/ProgramType.yaml +++ b/schemas/20251121/linkml/modules/classes/ProgramType.yaml @@ -8,9 +8,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: ProgramType: class_uri: skos:Concept @@ -32,9 +32,9 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description exact_mappings: - skos:Concept annotations: @@ -43,6 +43,6 @@ classes: custodian_types: "['*']" examples: - value: - has_or_had_identifier: https://nde.nl/program-type/volunteer - has_or_had_label: null + identified_by: https://nde.nl/program-type/volunteer + has_label: null description: Volunteer program type diff --git a/schemas/20251121/linkml/modules/classes/Project.yaml b/schemas/20251121/linkml/modules/classes/Project.yaml index a3af7d464b..3346fe6f6d 100644 --- a/schemas/20251121/linkml/modules/classes/Project.yaml +++ b/schemas/20251121/linkml/modules/classes/Project.yaml @@ -14,15 +14,15 @@ prefixes: imports: - linkml:types - ../enums/ProjectStatusEnum - - ../slots/has_or_had_budget # was: funding_amount - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_objective - - ../slots/has_or_had_participated_in # was: funding_call - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_status - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_budget # was: funding_amount + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_objective + - ../slots/20260202_matang/participated_in # was: funding_call + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/has_url - ../slots/keyword - ../slots/objective - ../slots/organizing_body @@ -79,28 +79,28 @@ classes: - org:Organization - schema:Grant slots: - # MIGRATED 2026-01-24: deliverable → has_or_had_objective + Deliverable (Rule 53) - - has_or_had_objective + # MIGRATED 2026-01-24: deliverable → has_objective + Deliverable (Rule 53) + - has_objective # MIGRATED 2026-01-26: start_date/end_date → temporal_extent - temporal_extent - - has_or_had_budget # was: funding_amount - migrated per Rule 53 (2026-01-26) - - has_or_had_participated_in # was: funding_call - migrated per Rule 53 (2026-01-26) + - has_budget # was: funding_amount - migrated per Rule 53 (2026-01-26) + - participated_in # was: funding_call - migrated per Rule 53 (2026-01-26) - receives_or_received # was: funding_source - migrated per Rule 53 (2026-01-26) - keyword - objective - organizing_body - participating_custodian - related_project - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) # RiC-O style slots (migrated 2026-01-16 per Rule 53) - - has_or_had_identifier # was: project_id, project_identifier - - has_or_had_label # was: project_name, project_short_name - - has_or_had_description # was: project_description - - has_or_had_status # was: project_status - - has_or_had_url # was: project_url + - identified_by # was: project_id, project_identifier + - has_label # was: project_name, project_short_name + - has_description # was: project_description + - has_status # was: project_status + - has_url # was: project_url slot_usage: # === MIGRATED SLOTS (2026-01-16 per Rule 53) === - has_or_had_identifier: + identified_by: # was: project_id (primary) + project_identifier (external IDs) # Migration note: Consolidated two slots into one multivalued slot. # First value should be the primary project URI (was project_id). @@ -115,7 +115,7 @@ classes: - value: https://nde.nl/ontology/hc/project/nde/versnellen-2024 - value: http://www.wikidata.org/entity/Q123456789 - value: https://doi.org/10.5281/zenodo.12345678 - has_or_had_label: + has_label: # was: project_name (required, primary) + project_short_name (optional, abbreviation) # Migration note: First value should be the full project name. # Additional values can be short names, acronyms, or alternative titles. @@ -128,7 +128,7 @@ classes: - value: V2024 - value: Digital Collections Integration Project - value: DCIP - has_or_had_description: + has_description: # was: project_description - migrated 2026-01-16 per Rule 53 required: true # range: string @@ -137,14 +137,14 @@ classes: infrastructure. The program provides funding, technical support, and training to help museums, archives, and libraries implement sustainable digital preservation and access solutions. Participants receive customized guidance based on their digital maturity assessment. - has_or_had_status: + has_status: # was: project_status - migrated 2026-01-16 per Rule 53 required: true range: ProjectStatusEnum examples: - value: IN_PROGRESS - value: COMPLETED - has_or_had_url: + has_url: # was: project_url - migrated 2026-01-16 per Rule 53 range: uri examples: @@ -158,21 +158,21 @@ classes: end_of_the_end: '2024-12-31' - value: Horizon Europe - value: Member contributions - has_or_had_budget: # was: funding_amount - migrated per Rule 53 (2026-01-26) + has_budget: # was: funding_amount - migrated per Rule 53 (2026-01-26) range: Budget inlined: true required: false examples: - value: - has_or_had_label: "Project Total Budget" + has_label: "Project Total Budget" total_amount: 2500000.0 - has_or_had_currency: + has_currency: currency_code: "EUR" currency_symbol: "€" - value: - has_or_had_label: "Grant Amount" + has_label: "Grant Amount" total_amount: 500000.0 - has_or_had_currency: + has_currency: currency_code: "USD" currency_symbol: "$" objective: @@ -183,8 +183,8 @@ classes: - value: Onboard 50 heritage institutions to NDE infrastructure - value: Create standardized metadata mappings for 10M records - value: Develop open source tools for digital preservation - # MIGRATED 2026-01-24: deliverable → has_or_had_objective + Deliverable (Rule 53) - has_or_had_objective: + # MIGRATED 2026-01-24: deliverable → has_objective + Deliverable (Rule 53) + has_objective: range: Deliverable multivalued: true inlined: true @@ -226,8 +226,8 @@ classes: - value: linked open data - value: IIIF - value: sustainable infrastructure - # project_identifier slot_usage removed - migrated to has_or_had_identifier (2026-01-16) - has_or_had_participated_in: # was: funding_call - migrated per Rule 53 (2026-01-26) + # project_identifier slot_usage removed - migrated to identified_by (2026-01-16) + participated_in: # was: funding_call - migrated per Rule 53 (2026-01-26) range: FundingCall multivalued: true # Allow multiple calls if applicable (e.g. co-funded) required: false @@ -241,11 +241,11 @@ classes: inlined_as_list: true examples: - value: - has_or_had_label: "Ministry of OCW (Netherlands)" + has_label: "Ministry of OCW (Netherlands)" - value: - has_or_had_label: "Horizon Europe" + has_label: "Horizon Europe" - value: - has_or_had_label: "Member contributions" + has_label: "Member contributions" comments: - Project links EncompassingBody (organizer) to Custodian (participants) - 'Bidirectional navigation: organizing_body ↔ projects, participating_custodians ↔ participated_in_projects' @@ -260,25 +260,25 @@ classes: examples: - value: # Migrated to RiC-O slots 2026-01-16 - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/project/nde/versnellen-2024 # primary project URI - has_or_had_label: + has_label: - Versnellen 2024 # full project name - V2024 # short name/acronym - has_or_had_description: "Versnellen 2024 is NDE's annual acceleration program supporting \nheritage institutions in adopting\ + has_description: "Versnellen 2024 is NDE's annual acceleration program supporting \nheritage institutions in adopting\ \ sustainable digital infrastructure. \nThe program provides funding, technical expertise, and training to \nhelp\ \ museums, archives, and libraries implement digital preservation \nand access solutions aligned with NDE's infrastructure\ \ requirements.\n\nIn 2024, the program focuses on:\n- Linked Data publication and consumption\n- IIIF implementation\ \ for image interoperability\n- Sustainable API development\n- Metadata quality improvement\n" - has_or_had_status: IN_PROGRESS - has_or_had_url: https://netwerkdigitaalerfgoed.nl/versnellen-2024/ + has_status: IN_PROGRESS + has_url: https://netwerkdigitaalerfgoed.nl/versnellen-2024/ temporal_extent: begin_of_the_begin: '2024-01-15' end_of_the_end: '2024-12-31' - has_or_had_budget: # was: funding_amount - has_or_had_label: "Versnellen 2024 Budget" + has_budget: # was: funding_amount + has_label: "Versnellen 2024 Budget" total_amount: 1200000.0 - has_or_had_currency: + has_currency: currency_code: EUR currency_symbol: "€" objective: @@ -286,8 +286,8 @@ classes: - Achieve IIIF compliance for 15 participating organizations - Publish 2M heritage objects as Linked Open Data - Train 200 heritage professionals in digital preservation - # MIGRATED 2026-01-24: deliverable → has_or_had_objective + Deliverable (Rule 53) - has_or_had_objective: + # MIGRATED 2026-01-24: deliverable → has_objective + Deliverable (Rule 53) + has_objective: - deliverable_title: "Individual implementation roadmaps for each participant" - deliverable_title: "Technical documentation and best practices guide" - deliverable_title: "Training curriculum and workshop materials" @@ -300,7 +300,7 @@ classes: - https://nde.nl/ontology/hc/nl-nh-ams-m-rm related_project: - https://nde.nl/ontology/hc/project/nde/versnellen-2023 - has_or_had_contact_point: + has_contact_point: keyword: - digital heritage - infrastructure @@ -310,26 +310,26 @@ classes: - digital preservation - value: # Migrated to RiC-O slots 2026-01-16 - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/project/europeana/common-culture-2024 # primary project URI - has_or_had_label: + has_label: - Europeana Common Culture # full project name - ECC # short name/acronym - has_or_had_description: "Europeana Common Culture aggregates and standardizes heritage \nmetadata from national aggregators\ + has_description: "Europeana Common Culture aggregates and standardizes heritage \nmetadata from national aggregators\ \ across Europe, making cultural \nheritage collections discoverable through the Europeana platform.\nThe project\ \ works with national aggregators to improve metadata \nquality and implement the Europeana Data Model (EDM).\n" - has_or_had_status: IN_PROGRESS - has_or_had_url: https://pro.europeana.eu/project/europeana-common-culture + has_status: IN_PROGRESS + has_url: https://pro.europeana.eu/project/europeana-common-culture temporal_extent: begin_of_the_begin: '2023-06-01' end_of_the_end: '2025-05-31' - has_or_had_budget: # was: funding_amount - has_or_had_label: "Common Culture Budget" + has_budget: # was: funding_amount + has_label: "Common Culture Budget" total_amount: 4200000.0 - has_or_had_currency: + has_currency: currency_code: EUR currency_symbol: "€" - has_or_had_participated_in: + participated_in: - https://nde.nl/ontology/hc/call/ec/horizon-cl2-2023-heritage-01 objective: - Aggregate 15M new heritage objects to Europeana diff --git a/schemas/20251121/linkml/modules/classes/Provenance.yaml b/schemas/20251121/linkml/modules/classes/Provenance.yaml index 70fd6e90da..fd8072792a 100644 --- a/schemas/20251121/linkml/modules/classes/Provenance.yaml +++ b/schemas/20251121/linkml/modules/classes/Provenance.yaml @@ -18,14 +18,14 @@ imports: - ./RetrievalMethod - ../slots/note - linkml:types - - ../slots/has_or_had_agent - - ../slots/has_or_had_identifier - - ../slots/has_or_had_output - - ../slots/has_or_had_quantity - - ../slots/is_or_was_based_on - - ../slots/is_or_was_generated_by - - ../slots/is_or_was_retrieved_by - - ../slots/is_or_was_retrieved_through + - ../slots/has_agent + - ../slots/identified_by + - ../slots/20260202_matang/has_output + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/based_on + - ../slots/20260202_matang/generated_by + - ../slots/20260202_matang/retrieved_by + - ../slots/20260202_matang/retrieved_through - ../slots/temporal_extent # default_range: string classes: @@ -42,7 +42,7 @@ classes: agent/entity **ONTOLOGY MAPPING**: - class_uri: prov:Activity (the extraction/derivation - activity) - Links to prov:Agent via has_or_had_agent - Links to prov:Entity + activity) - Links to prov:Agent via has_agent - Links to prov:Entity via used (source) and generated (result)' class_uri: prov:Activity close_mappings: @@ -52,33 +52,33 @@ classes: - prov:Entity - prov:Derivation slots: - - has_or_had_agent + - has_agent - temporal_extent - - is_or_was_generated_by - - is_or_was_retrieved_by - - is_or_was_retrieved_through - - has_or_had_identifier - - has_or_had_quantity - - is_or_was_based_on - - has_or_had_output + - generated_by + - retrieved_by + - retrieved_through + - identified_by + - has_quantity + - based_on + - has_output - note slot_usage: - is_or_was_retrieved_by: + retrieved_by: # range: string inlined: false # Fixed invalid inline for primitive type - is_or_was_retrieved_through: + retrieved_through: range: RetrievalMethod inlined: true temporal_extent: null - has_or_had_identifier: + identified_by: # range: string # uriorcurie - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type - is_or_was_based_on: + based_on: # range: string # uriorcurie multivalued: true - has_or_had_output: + has_output: range: LLMResponse inlined: true annotations: @@ -90,13 +90,13 @@ classes: specificity_rationale: Very low specificity - provenance metadata applies universally. examples: - value: "Provenance:\n extraction_method: \"xpath_extraction\"\n source_entity:\ - \ \"https://example.org/webpage/12345\"\n is_or_was_generated_by:\n has_or_had_score:\n\ - \ has_or_had_score: 0.95\n has_or_had_method: \"xpath_extraction\"\ - \n has_or_had_description: \"Exact match at expected XPath\"\n note:\ + \ \"https://example.org/webpage/12345\"\n generated_by:\n has_score:\n\ + \ has_score: 0.95\n has_method: \"xpath_extraction\"\ + \n has_description: \"Exact match at expected XPath\"\n note:\ \ \"Extracted from archived HTML using XPath\"\n" - - value: "Provenance:\n is_or_was_retrieved_by:\n has_or_had_label: \"claude-opus-4.5\"\ - \n is_or_was_retrieved_through:\n has_or_had_label: \"exa_crawling_exa\"\ - \n is_or_was_based_on:\n - \"https://www.linkedin.com/in/...\"\n has_or_had_identifier:\ - \ \"exa_12345678\"\n has_or_had_quantity:\n quantity_value: 0.001\n \ - \ has_or_had_unit:\n has_or_had_label: \"USD\"\n temporal_extent:\n\ + - value: "Provenance:\n retrieved_by:\n has_label: \"claude-opus-4.5\"\ + \n retrieved_through:\n has_label: \"exa_crawling_exa\"\ + \n based_on:\n - \"https://www.linkedin.com/in/...\"\n identified_by:\ + \ \"exa_12345678\"\n has_quantity:\n quantity_value: 0.001\n \ + \ has_unit:\n has_label: \"USD\"\n temporal_extent:\n\ \ begin_of_the_begin: \"2025-12-12T22:00:00Z\"\n" diff --git a/schemas/20251121/linkml/modules/classes/ProvenanceBlock.yaml b/schemas/20251121/linkml/modules/classes/ProvenanceBlock.yaml index 87897f8abc..ede26d489d 100644 --- a/schemas/20251121/linkml/modules/classes/ProvenanceBlock.yaml +++ b/schemas/20251121/linkml/modules/classes/ProvenanceBlock.yaml @@ -11,7 +11,7 @@ prefixes: imports: - linkml:types - ../enums/DataTierEnum - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/generated_by - ../slots/note - ../slots/source_type - ../slots/source_url @@ -36,13 +36,13 @@ classes: - prov:Entity - prov:Activity slots: - - is_or_was_generated_by + - generated_by - note - source_url - source_type - standards_compliance slot_usage: - is_or_was_generated_by: + generated_by: range: GenerationEvent required: false inlined: true @@ -51,15 +51,15 @@ classes: pattern.' examples: - value: - has_or_had_score: - has_or_had_score: 0.95 - has_or_had_method: automated_extraction + has_score: + has_score: 0.95 + has_method: automated_extraction - value: - has_or_had_score: - has_or_had_score: 0.65 - has_or_had_method: manual_review + has_score: + has_score: 0.65 + has_method: manual_review comments: - - 'MIGRATED 2026-01-19: confidence_score → is_or_was_generated_by + GenerationEvent + - 'MIGRATED 2026-01-19: confidence_score → generated_by + GenerationEvent + ConfidenceScore (Rule 53)' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml b/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml index c332f82424..732593c260 100644 --- a/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/ProvenanceEvent.yaml @@ -14,19 +14,19 @@ imports: - linkml:types - ../enums/ProvenanceEventTypeEnum - ../metadata - - ../slots/changes_or_changed_ownership_from - - ../slots/changes_or_changed_ownership_to - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_level - - ../slots/has_or_had_note - - ../slots/has_or_had_provenance - - ../slots/has_or_had_reference - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/has_or_had_url - - ../slots/is_or_was_associated_with - - ../slots/is_or_was_conducted_by + - ../slots/20260202_matang/change_ownership_from + - ../slots/20260202_matang/change_ownership_to + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_level + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/has_reference + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_url + - ../slots/20260202_matang/associated_with + - ../slots/20260202_matang/conducted_by - ../slots/lot_number - ../slots/nazi_era_flag - ../slots/object_ref @@ -53,29 +53,29 @@ classes: - crm:E7_Activity - schema:Action slots: - - is_or_was_conducted_by + - conducted_by - publishes_or_published - - is_or_was_associated_with - - has_or_had_reference - - has_or_had_url - - has_or_had_identifier - - has_or_had_note + - associated_with + - has_reference + - has_url + - identified_by + - has_note - temporal_extent - - has_or_had_type - - changes_or_changed_ownership_from + - has_type + - change_ownership_from - lot_number - nazi_era_flag - object_ref - price - price_currency - price_text - - has_or_had_provenance + - has_provenance - requires_research - - has_or_had_score - - changes_or_changed_ownership_to - - has_or_had_description + - has_score + - change_ownership_to + - has_description slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true # range: string # uriorcurie @@ -88,7 +88,7 @@ classes: inlined: false examples: - value: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring - has_or_had_type: + has_type: required: true range: ProvenanceEventTypeEnum examples: @@ -103,24 +103,24 @@ classes: - value: begin_of_the_begin: '1664-01-01' end_of_the_end: '1674-12-31' - has_or_had_label: c. 1665-74 + has_label: c. 1665-74 - value: begin_of_the_begin: '1696-05-16' end_of_the_end: '1696-05-16' - has_or_had_label: May 16, 1696 - changes_or_changed_ownership_from: + has_label: May 16, 1696 + change_ownership_from: required: false # range: string # uriorcurie inlined: false examples: - value: https://nde.nl/ontology/hc/person/des-tombe - changes_or_changed_ownership_to: + change_ownership_to: required: false # range: string # uriorcurie inlined: false examples: - value: https://nde.nl/ontology/hc/custodian/nl/mauritshuis - has_or_had_description: + has_description: required: false multivalued: true examples: @@ -166,29 +166,29 @@ classes: examples: - value: '36' - value: Lot 127A - is_or_was_associated_with: + associated_with: required: false range: ArtDealer inlined: true multivalued: true examples: - value: - has_or_had_name: - has_or_had_label: Paul Cassirer + has_name: + has_label: Paul Cassirer - value: - has_or_had_name: - has_or_had_label: Goupil & Cie - has_or_had_reference: + has_name: + has_label: Goupil & Cie + has_reference: required: false range: Reference inlined: true multivalued: true examples: - value: - has_or_had_label: Dissius sale catalogue, Amsterdam, May 16, 1696, lot 36 + has_label: Dissius sale catalogue, Amsterdam, May 16, 1696, lot 36 - value: - has_or_had_label: Hofstede de Groot, vol. 1, no. 44 - has_or_had_url: + has_label: Hofstede de Groot, vol. 1, no. 44 + has_url: required: false range: uri inlined: false # Fixed invalid inline for primitive type @@ -200,40 +200,40 @@ classes: - value: url_value: https://www.getty.edu/research/provenance/sales url_type: sales_database - has_or_had_level: + has_level: required: false range: CertaintyLevel inlined: true examples: - value: level_value: CERTAIN - has_or_had_note: + has_note: - note_type: certainty note_content: Confirmed by sale catalogue and receipt - value: level_value: PROBABLE - has_or_had_note: + has_note: - note_type: certainty note_content: Inferred from stylistic analysis and collection history - value: level_value: UNCERTAIN - has_or_had_note: + has_note: - note_type: certainty note_content: Provenance gap 1933-1945 requires further research - has_or_had_provenance: + has_provenance: required: false range: Provenance inlined: true examples: - value: - has_or_had_description: + has_description: - description_text: A.A. des Tombe, The Hague (purchased 1881, d. 1903) description_type: provenance_text - value: - has_or_had_description: + has_description: - description_text: Dissius sale, Amsterdam, May 16, 1696, lot 36 description_type: provenance_text - has_or_had_note: + has_note: required: false # range: string multivalued: true @@ -256,57 +256,57 @@ classes: - https://www.getty.edu/research/tools/provenance/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/provenance/mauritshuis-670-001 + identified_by: https://nde.nl/ontology/hc/provenance/mauritshuis-670-001 object_ref: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring - has_or_had_type: CREATION + has_type: CREATION temporal_extent: begin_of_the_begin: '1664-01-01' end_of_the_end: '1667-12-31' - has_or_had_label: c. 1665 - has_or_had_description: + has_label: c. 1665 + has_description: - description_text: Johannes Vermeer, Delft description_type: to_owner - place_name: Delft country: NL - has_or_had_level: + has_level: level_value: CERTAIN - has_or_had_provenance: - has_or_had_description: + has_provenance: + has_description: - description_text: Created by Johannes Vermeer, Delft, c. 1665 description_type: provenance_text - value: - has_or_had_identifier: https://nde.nl/ontology/hc/provenance/mauritshuis-670-002 + identified_by: https://nde.nl/ontology/hc/provenance/mauritshuis-670-002 object_ref: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring - has_or_had_type: PURCHASE + has_type: PURCHASE temporal_extent: begin_of_the_begin: '1665-01-01' end_of_the_end: '1674-12-31' - has_or_had_label: c. 1665-1674 - has_or_had_description: + has_label: c. 1665-1674 + has_description: - description_text: Johannes Vermeer description_type: from_owner - description_text: Pieter van Ruijven, Delft (c. 1665-1674) description_type: to_owner - has_or_had_level: + has_level: level_value: PROBABLE - has_or_had_note: + has_note: - note_type: certainty note_content: Van Ruijven was Vermeer's patron; likely acquired directly from artist - has_or_had_reference: - - has_or_had_label: Montias, Vermeer and His Milieu (1989), pp. 247-252 - has_or_had_provenance: - has_or_had_description: + has_reference: + - has_label: Montias, Vermeer and His Milieu (1989), pp. 247-252 + has_provenance: + has_description: - description_text: Possibly Pieter van Ruijven, Delft (c. 1665-1674) description_type: provenance_text - value: - has_or_had_identifier: https://nde.nl/ontology/hc/provenance/mauritshuis-670-005 + identified_by: https://nde.nl/ontology/hc/provenance/mauritshuis-670-005 object_ref: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring - has_or_had_type: AUCTION + has_type: AUCTION temporal_extent: begin_of_the_begin: '1696-05-16' end_of_the_end: '1696-05-16' - has_or_had_label: May 16, 1696 - has_or_had_description: + has_label: May 16, 1696 + has_description: - description_text: Estate of Jacob Dissius description_type: from_owner - description_text: Unknown buyer @@ -314,28 +314,28 @@ classes: - place_name: Amsterdam country: NL publishes_or_published: - - has_or_had_name: Dissius sale + - has_name: Dissius sale lot_number: '36' price_text: Unknown - has_or_had_level: + has_level: level_value: CERTAIN - has_or_had_reference: - - has_or_had_label: Dissius sale catalogue, Amsterdam, May 16, 1696, lot 36 - has_or_had_note: + has_reference: + - has_label: Dissius sale catalogue, Amsterdam, May 16, 1696, lot 36 + has_note: - Catalogued as 'Een Tronij in Antique Klederen, ongemeen konstig' (A Tronie in Antique Dress, uncommonly artful) - has_or_had_provenance: - has_or_had_description: + has_provenance: + has_description: - description_text: Dissius sale, Amsterdam, May 16, 1696, lot 36 description_type: provenance_text - value: - has_or_had_identifier: https://nde.nl/ontology/hc/provenance/mauritshuis-670-008 + identified_by: https://nde.nl/ontology/hc/provenance/mauritshuis-670-008 object_ref: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring - has_or_had_type: PURCHASE + has_type: PURCHASE temporal_extent: begin_of_the_begin: '1881-01-01' end_of_the_end: '1881-12-31' - has_or_had_label: '1881' - has_or_had_description: + has_label: '1881' + has_description: - description_text: Unknown seller description_type: from_owner - description_text: A.A. des Tombe, The Hague @@ -343,59 +343,59 @@ classes: price: 30 price_currency: NLG price_text: 30 guilders - has_or_had_level: + has_level: level_value: CERTAIN - has_or_had_provenance: - has_or_had_description: + has_provenance: + has_description: - description_text: A.A. des Tombe, The Hague (purchased 1881 for 30 guilders) description_type: provenance_text - has_or_had_note: + has_note: - Des Tombe purchased at auction for a bargain price - Painting was in poor condition and not yet attributed to Vermeer - value: - has_or_had_identifier: https://nde.nl/ontology/hc/provenance/mauritshuis-670-009 + identified_by: https://nde.nl/ontology/hc/provenance/mauritshuis-670-009 object_ref: https://nde.nl/ontology/hc/object/mauritshuis-girl-pearl-earring - has_or_had_type: BEQUEST + has_type: BEQUEST temporal_extent: begin_of_the_begin: '1903-01-01' end_of_the_end: '1903-12-31' - has_or_had_label: '1903' - has_or_had_description: + has_label: '1903' + has_description: - description_text: A.A. des Tombe (d. 1903) description_type: from_owner - description_text: Mauritshuis, The Hague description_type: to_owner - changes_or_changed_ownership_to: https://nde.nl/ontology/hc/custodian/nl/mauritshuis - has_or_had_level: + change_ownership_to: https://nde.nl/ontology/hc/custodian/nl/mauritshuis + has_level: level_value: CERTAIN - has_or_had_reference: - - has_or_had_label: Will of A.A. des Tombe - - has_or_had_label: Mauritshuis accession records - has_or_had_provenance: - has_or_had_description: + has_reference: + - has_label: Will of A.A. des Tombe + - has_label: Mauritshuis accession records + has_provenance: + has_description: - description_text: Bequeathed to Mauritshuis, 1903 description_type: provenance_text - value: - has_or_had_identifier: https://nde.nl/ontology/hc/provenance/example-nazi-confiscation + identified_by: https://nde.nl/ontology/hc/provenance/example-nazi-confiscation object_ref: https://nde.nl/ontology/hc/object/example-painting - has_or_had_type: CONFISCATION + has_type: CONFISCATION temporal_extent: begin_of_the_begin: '1938-01-01' end_of_the_end: '1938-12-31' - has_or_had_label: '1938' - has_or_had_description: + has_label: '1938' + has_description: - description_text: Jewish collector, Vienna description_type: from_owner - description_text: Nazi authorities description_type: to_owner nazi_era_flag: true requires_research: true - has_or_had_level: + has_level: level_value: PROBABLE - has_or_had_note: + has_note: - note_type: certainty note_content: Documentation incomplete; collector fled Vienna 1938 - has_or_had_note: + has_note: - Provenance gap requires further research - Listed on Art Loss Register annotations: diff --git a/schemas/20251121/linkml/modules/classes/ProvenancePath.yaml b/schemas/20251121/linkml/modules/classes/ProvenancePath.yaml index be1e1f1c88..b04a7ebc3e 100644 --- a/schemas/20251121/linkml/modules/classes/ProvenancePath.yaml +++ b/schemas/20251121/linkml/modules/classes/ProvenancePath.yaml @@ -11,13 +11,13 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: ProvenancePath: class_uri: prov:Plan description: A path or chain of provenance. slots: - - has_or_had_description + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ProvincialArchive.yaml b/schemas/20251121/linkml/modules/classes/ProvincialArchive.yaml index c8d9953260..65a3071bb9 100644 --- a/schemas/20251121/linkml/modules/classes/ProvincialArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/ProvincialArchive.yaml @@ -16,10 +16,10 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: ProvincialArchive: @@ -27,10 +27,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q5403345 close_mappings: @@ -39,8 +39,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Provincial Archive diff --git a/schemas/20251121/linkml/modules/classes/ProvincialArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ProvincialArchiveRecordSetType.yaml index 4132e9e60a..2b5546b581 100644 --- a/schemas/20251121/linkml/modules/classes/ProvincialArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ProvincialArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: ProvincialArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ProvincialArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - ProvincialArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ProvincialArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/ProvincialArchiveRecordSetTypes.yaml index ae65d54c9f..06c2190009 100644 --- a/schemas/20251121/linkml/modules/classes/ProvincialArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ProvincialArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./ProvincialArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - ProvincialArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ProvincialAdministrationFonds @@ -78,15 +78,15 @@ classes: - ProvincialArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: RegionalPlanningCollection @@ -115,15 +115,15 @@ classes: - ProvincialArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ProvincialCourtSeries diff --git a/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchive.yaml b/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchive.yaml index c63996ffbd..3a83abb17f 100644 --- a/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchive.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: ProvincialHistoricalArchive: diff --git a/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchiveRecordSetType.yaml index 377ee42fe8..1d85d0ac7e 100644 --- a/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchiveRecordSetType.yaml @@ -16,9 +16,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: ProvincialHistoricalArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ProvincialHistoricalArchive custodians. @@ -26,14 +26,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - ProvincialHistoricalArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchiveRecordSetTypes.yaml index 83ccdfd92f..b0de8114f9 100644 --- a/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ProvincialHistoricalArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./ProvincialHistoricalArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - ProvincialHistoricalArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ProvincialHistoricalFonds diff --git a/schemas/20251121/linkml/modules/classes/PublicArchive.yaml b/schemas/20251121/linkml/modules/classes/PublicArchive.yaml index 1194f7612a..b58236a2ee 100644 --- a/schemas/20251121/linkml/modules/classes/PublicArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/PublicArchive.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: PublicArchive: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q27031009 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Public Archive diff --git a/schemas/20251121/linkml/modules/classes/PublicArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/PublicArchiveRecordSetType.yaml index dcfcfe83c1..b1f92ae8f1 100644 --- a/schemas/20251121/linkml/modules/classes/PublicArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/PublicArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: PublicArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by PublicArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - PublicArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/PublicArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/PublicArchiveRecordSetTypes.yaml index 3b1d9d0f60..ca5fd9d1d0 100644 --- a/schemas/20251121/linkml/modules/classes/PublicArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/PublicArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./PublicArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - PublicArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: PublicRecordsFonds @@ -78,15 +78,15 @@ classes: - PublicArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CivicDocumentationCollection @@ -115,15 +115,15 @@ classes: - PublicArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: AdministrativeCorrespondenceSeries diff --git a/schemas/20251121/linkml/modules/classes/PublicArchivesInFrance.yaml b/schemas/20251121/linkml/modules/classes/PublicArchivesInFrance.yaml index a3c60bd08e..73dde4c977 100644 --- a/schemas/20251121/linkml/modules/classes/PublicArchivesInFrance.yaml +++ b/schemas/20251121/linkml/modules/classes/PublicArchivesInFrance.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: PublicArchivesInFrance: @@ -20,10 +20,10 @@ classes: is_a: ArchiveOrganizationType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q2421452 close_mappings: @@ -32,8 +32,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Public Archives in France diff --git a/schemas/20251121/linkml/modules/classes/PublicArchivesInFranceRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/PublicArchivesInFranceRecordSetType.yaml index d6a80a523d..1d9b52768d 100644 --- a/schemas/20251121/linkml/modules/classes/PublicArchivesInFranceRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/PublicArchivesInFranceRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: PublicArchivesInFranceRecordSetType: description: 'A rico:RecordSetType for classifying collections held by PublicArchivesInFrance custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - PublicArchivesInFrance - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/PublicArchivesInFranceRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/PublicArchivesInFranceRecordSetTypes.yaml index d868ff02ec..8bd446bfc2 100644 --- a/schemas/20251121/linkml/modules/classes/PublicArchivesInFranceRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/PublicArchivesInFranceRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./PublicArchivesInFranceRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - PublicArchivesInFranceRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: FrenchPublicFonds diff --git a/schemas/20251121/linkml/modules/classes/Publication.yaml b/schemas/20251121/linkml/modules/classes/Publication.yaml index adc9397675..1633169a35 100644 --- a/schemas/20251121/linkml/modules/classes/Publication.yaml +++ b/schemas/20251121/linkml/modules/classes/Publication.yaml @@ -9,8 +9,8 @@ prefixes: bf: http://id.loc.gov/ontologies/bibframe/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_name - ../slots/temporal_extent default_prefix: hc classes: @@ -23,8 +23,8 @@ classes: mixins: [] slots: - temporal_extent - - has_or_had_name - - has_or_had_description + - has_name + - has_description - place_of_publication annotations: replaces: date_of_publication diff --git a/schemas/20251121/linkml/modules/classes/PublicationEvent.yaml b/schemas/20251121/linkml/modules/classes/PublicationEvent.yaml index 3deebfb38f..b00ab7b79f 100644 --- a/schemas/20251121/linkml/modules/classes/PublicationEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/PublicationEvent.yaml @@ -29,9 +29,9 @@ prefixes: dcterms: http://purl.org/dc/terms/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score - ../slots/temporal_extent default_prefix: hc classes: @@ -77,15 +77,15 @@ classes: - dcterms:created slots: - temporal_extent - - has_or_had_label - - has_or_had_identifier - - has_or_had_score + - has_label + - identified_by + - has_score slot_usage: temporal_extent: range: TimeSpan inlined: true required: true - has_or_had_label: + has_label: required: false comments: - 'Precise date: Set begin_of_the_begin == end_of_the_begin == begin_of_the_end == end_of_the_end' @@ -103,7 +103,7 @@ classes: end_of_the_begin: '1892-06-30T00:00:00Z' begin_of_the_end: '1892-06-30T00:00:00Z' end_of_the_end: '1892-12-31T00:00:00Z' - has_or_had_label: First Edition + has_label: First Edition annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/PublicationSeries.yaml b/schemas/20251121/linkml/modules/classes/PublicationSeries.yaml index 67fa21cf5d..75be20872b 100644 --- a/schemas/20251121/linkml/modules/classes/PublicationSeries.yaml +++ b/schemas/20251121/linkml/modules/classes/PublicationSeries.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: PublicationSeries: class_uri: schema:Periodical @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_name + - has_name diff --git a/schemas/20251121/linkml/modules/classes/Publisher.yaml b/schemas/20251121/linkml/modules/classes/Publisher.yaml index 426e3e2bbe..54470886ad 100644 --- a/schemas/20251121/linkml/modules/classes/Publisher.yaml +++ b/schemas/20251121/linkml/modules/classes/Publisher.yaml @@ -56,12 +56,12 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_location - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/has_or_had_url + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_location + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_url default_prefix: hc classes: Publisher: @@ -80,14 +80,14 @@ classes: close_mappings: - dcterms:Agent slots: - - has_or_had_label - - has_or_had_identifier - - has_or_had_location - - has_or_had_url - - has_or_had_type - - has_or_had_score + - has_label + - identified_by + - has_location + - has_url + - has_type + - has_score slot_usage: - has_or_had_label: + has_label: required: true # range: string examples: @@ -95,7 +95,7 @@ classes: - value: Yale University Press - value: Thames & Hudson - value: The British Museum Press - has_or_had_type: + has_type: required: false # range: string examples: @@ -103,7 +103,7 @@ classes: - value: commercial - value: academic - value: government - has_or_had_location: + has_location: required: false # range: string examples: @@ -111,14 +111,14 @@ classes: - value: New York - value: London - value: New Haven - has_or_had_identifier: + identified_by: required: false # range: string # uriorcurie multivalued: true examples: - value: Q190804 - value: 0000000121671840 - has_or_had_url: + has_url: required: false range: uri examples: @@ -126,27 +126,27 @@ classes: - value: https://yalebooks.yale.edu examples: - value: - has_or_had_label: Rijksmuseum - has_or_had_type: institutional - has_or_had_location: Amsterdam - has_or_had_url: https://www.rijksmuseum.nl + has_label: Rijksmuseum + has_type: institutional + has_location: Amsterdam + has_url: https://www.rijksmuseum.nl - value: - has_or_had_label: Yale University Press - has_or_had_type: academic - has_or_had_location: New Haven - has_or_had_url: https://yalebooks.yale.edu + has_label: Yale University Press + has_type: academic + has_location: New Haven + has_url: https://yalebooks.yale.edu - value: - has_or_had_label: Thames & Hudson - has_or_had_type: commercial - has_or_had_location: London + has_label: Thames & Hudson + has_type: commercial + has_location: London - value: - has_or_had_label: The British Museum Press - has_or_had_type: institutional - has_or_had_location: London + has_label: The British Museum Press + has_type: institutional + has_location: London - value: - has_or_had_label: Hannibal Publishing - has_or_had_type: commercial - has_or_had_location: Veurne + has_label: Hannibal Publishing + has_type: commercial + has_location: Veurne annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Qualifier.yaml b/schemas/20251121/linkml/modules/classes/Qualifier.yaml index 1e605ef49f..5818b4337c 100644 --- a/schemas/20251121/linkml/modules/classes/Qualifier.yaml +++ b/schemas/20251121/linkml/modules/classes/Qualifier.yaml @@ -9,13 +9,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: Qualifier: class_uri: schema:PropertyValue description: Qualifier. slots: - - has_or_had_value + - has_value annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Quantity.yaml b/schemas/20251121/linkml/modules/classes/Quantity.yaml index b44c26ad8f..aff6c6601a 100644 --- a/schemas/20251121/linkml/modules/classes/Quantity.yaml +++ b/schemas/20251121/linkml/modules/classes/Quantity.yaml @@ -10,22 +10,22 @@ prefixes: imports: - linkml:types - ../enums/QuantityTypeEnum - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_measurement_unit - - ../slots/has_or_had_methodology - - ../slots/has_or_had_provenance - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_measurement_unit + - ../slots/20260202_matang/has_methodology + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/has_score - ../slots/is_estimate - - ../slots/is_or_was_based_on + - ../slots/20260202_matang/based_on - ../slots/temporal_extent default_prefix: hc classes: Quantity: class_uri: qudt:Quantity description: "A quantified value with an optional unit of measurement and type.\n**QUDT ALIGNMENT**:\nMaps to `qudt:Quantity` - \"A quantitative value expressed as a number and a unit of measurement.\"\n**TYPES OF QUANTITIES**:\n| Type | Description | Example | |------|-------------|---------| | STAFF_COUNT | Number of employees | 42 employees | | COLLECTION_SIZE | Number of items | 1.2 million objects | | VISITOR_COUNT | Annual visitors | 2.5 million/year | | BUDGET_AMOUNT | Financial value | \u20AC15 million | | AREA | Physical space | 10,000 m\xB2 | | DURATION | Time period | 6 months |\n**USE CASES**:\n1. **Staff Metrics**: Branch staff count, department size, FTE equivalents 2. **Collection Metrics**: Object counts, archive linear meters, digital items 3. **Visitor Metrics**: Annual attendance, daily capacity, peak visitors 4. **Financial Metrics**: Budget, revenue, acquisition costs 5. **Physical Metrics**: Floor area, gallery space, storage capacity\n**WHY NOT JUST USE INTEGER?**\n\ - Simple integer fields like `branch_staff_count: 3` lose important context: - What's the unit? (FTE? headcount? contractors included?) - When was this measured? (provenance) - Is this exact or estimated? - What type of quantity is this?\nThe Quantity class captures this richness while remaining simple for basic use.\n**EXAMPLE**:\n```yaml Quantity:\n quantity_id: https://nde.nl/ontology/hc/quantity/nha-zaanstreek-staff-2025\n quantity_value: 3\n quantity_type: STAFF_COUNT\n has_or_had_measurement_unit:\n has_or_had_type: VISITOR\n has_or_had_symbol: \"visitors\"\n temporal_extent:\n begin_of_the_begin: \"2024-01-01T00:00:00Z\"\n end_of_the_end: \"2024-12-31T23:59:59Z\"\n has_or_had_description: Staff assigned to Zaanstreek-Waterland branch\n```\n**RULE 53 COMPLIANT**: Updated with link_branch slots (has_or_had_measurement_unit, temporal_extent, has_or_had_methodology) per slot_fixes.yaml revision for visitor_count, view_count, unique_object_count, and unique_face_count\ + Simple integer fields like `branch_staff_count: 3` lose important context: - What's the unit? (FTE? headcount? contractors included?) - When was this measured? (provenance) - Is this exact or estimated? - What type of quantity is this?\nThe Quantity class captures this richness while remaining simple for basic use.\n**EXAMPLE**:\n```yaml Quantity:\n quantity_id: https://nde.nl/ontology/hc/quantity/nha-zaanstreek-staff-2025\n quantity_value: 3\n quantity_type: STAFF_COUNT\n has_measurement_unit:\n has_type: VISITOR\n has_symbol: \"visitors\"\n temporal_extent:\n begin_of_the_begin: \"2024-01-01T00:00:00Z\"\n end_of_the_end: \"2024-12-31T23:59:59Z\"\n has_description: Staff assigned to Zaanstreek-Waterland branch\n```\n**RULE 53 COMPLIANT**: Updated with link_branch slots (has_measurement_unit, temporal_extent, has_methodology) per slot_fixes.yaml revision for visitor_count, view_count, unique_object_count, and unique_face_count\ \ migrations." exact_mappings: - qudt:Quantity @@ -36,17 +36,17 @@ classes: - schema:floorSize - dcterms:extent slots: - - has_or_had_identifier - - has_or_had_measurement_unit - - has_or_had_methodology - - is_or_was_based_on - - has_or_had_provenance + - identified_by + - has_measurement_unit + - has_methodology + - based_on + - has_provenance - temporal_extent - - has_or_had_description + - has_description - is_estimate - - has_or_had_score + - has_score slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: false examples: @@ -62,18 +62,18 @@ classes: - value: linear meters - value: EUR - value: "m\xB2" - has_or_had_measurement_unit: + has_measurement_unit: range: MeasureUnit required: false inlined: true description: 'The structured unit of measurement for this quantity. Provides richer semantics than the deprecated quantity_unit string. RULE 53: Branch 1 slot from visitor_count migration.' examples: - value: - has_or_had_type: VISITOR - has_or_had_symbol: visitors + has_type: VISITOR + has_symbol: visitors - value: - has_or_had_type: SQUARE_METER - has_or_had_symbol: "m\xB2" + has_type: SQUARE_METER + has_symbol: "m\xB2" temporal_extent: range: TimeSpan required: false @@ -83,7 +83,7 @@ classes: - value: begin_of_the_begin: '2024-01-01T00:00:00Z' end_of_the_end: '2024-12-31T23:59:59Z' - has_or_had_methodology: + has_methodology: range: Methodology required: false inlined: true @@ -91,12 +91,12 @@ classes: examples: - value: methodology_type: ENTITY_RESOLUTION - has_or_had_label: ArcFace clustering + has_label: ArcFace clustering confidence_threshold: 0.6 - value: methodology_type: OBJECT_TRACKING - has_or_had_label: DeepSORT - has_or_had_description: + has_label: DeepSORT + has_description: # range: string required: false examples: @@ -120,46 +120,46 @@ classes: - https://schema.org/QuantitativeValue examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/quantity/nha-zaanstreek-staff-2025 - has_or_had_measurement_unit: - has_or_had_type: FTE - has_or_had_symbol: FTE - has_or_had_label: full-time equivalent - has_or_had_description: Staff assigned to Zaanstreek-Waterland branch + identified_by: https://nde.nl/ontology/hc/quantity/nha-zaanstreek-staff-2025 + has_measurement_unit: + has_type: FTE + has_symbol: FTE + has_label: full-time equivalent + has_description: Staff assigned to Zaanstreek-Waterland branch is_estimate: false - value: - has_or_had_measurement_unit: - has_or_had_type: VISITOR - has_or_had_symbol: visitors + has_measurement_unit: + has_type: VISITOR + has_symbol: visitors temporal_extent: begin_of_the_begin: '2023-02-10T00:00:00Z' end_of_the_end: '2023-06-04T23:59:59Z' - has_or_had_description: Vermeer exhibition attendance + has_description: Vermeer exhibition attendance is_estimate: false - value: - has_or_had_measurement_unit: - has_or_had_type: FACE - has_or_had_symbol: faces - has_or_had_methodology: + has_measurement_unit: + has_type: FACE + has_symbol: faces + has_methodology: methodology_type: ENTITY_RESOLUTION - has_or_had_label: ArcFace clustering + has_label: ArcFace clustering confidence_threshold: 0.6 - has_or_had_description: Unique faces detected via entity resolution + has_description: Unique faces detected via entity resolution is_estimate: false - value: - has_or_had_measurement_unit: - has_or_had_type: OBJECT - has_or_had_symbol: objects - has_or_had_methodology: + has_measurement_unit: + has_type: OBJECT + has_symbol: objects + has_methodology: methodology_type: OBJECT_TRACKING - has_or_had_label: DeepSORT - has_or_had_description: Unique objects tracked across video frames + has_label: DeepSORT + has_description: Unique objects tracked across video frames is_estimate: false - value: - has_or_had_description: Total collection size including artworks, documents, and photographs + has_description: Total collection size including artworks, documents, and photographs is_estimate: true - value: - has_or_had_description: Annual visitor count for 2024 + has_description: Annual visitor count for 2024 is_estimate: false annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/RadioArchive.yaml b/schemas/20251121/linkml/modules/classes/RadioArchive.yaml index 03d910d9f5..5c464b2a57 100644 --- a/schemas/20251121/linkml/modules/classes/RadioArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/RadioArchive.yaml @@ -10,10 +10,10 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: RadioArchive: @@ -21,10 +21,10 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q109326271 close_mappings: @@ -33,8 +33,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Radio Archive diff --git a/schemas/20251121/linkml/modules/classes/RadioArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/RadioArchiveRecordSetType.yaml index 16d4910db5..2b81b6eecb 100644 --- a/schemas/20251121/linkml/modules/classes/RadioArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/RadioArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: RadioArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by RadioArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - RadioArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/RadioArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/RadioArchiveRecordSetTypes.yaml index d4d018d971..84cb49ad71 100644 --- a/schemas/20251121/linkml/modules/classes/RadioArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/RadioArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./RadioArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - RadioArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: BroadcastRecordingFonds @@ -78,15 +78,15 @@ classes: - RadioArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: RadioScriptCollection @@ -115,15 +115,15 @@ classes: - RadioArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: StationAdministrationSeries diff --git a/schemas/20251121/linkml/modules/classes/Rationale.yaml b/schemas/20251121/linkml/modules/classes/Rationale.yaml index b895a03c71..f6e6972318 100644 --- a/schemas/20251121/linkml/modules/classes/Rationale.yaml +++ b/schemas/20251121/linkml/modules/classes/Rationale.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: Rationale: class_uri: hc:Rationale description: A rationale or justification for a decision. slots: - - has_or_had_description + - has_description slot_usage: - has_or_had_description: + has_description: required: true close_mappings: - skos:note @@ -28,4 +28,4 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_description: Mapped based on exact name match and location + has_description: Mapped based on exact name match and location diff --git a/schemas/20251121/linkml/modules/classes/ReadingRoom.yaml b/schemas/20251121/linkml/modules/classes/ReadingRoom.yaml index 3bae6a072c..ac651f2643 100644 --- a/schemas/20251121/linkml/modules/classes/ReadingRoom.yaml +++ b/schemas/20251121/linkml/modules/classes/ReadingRoom.yaml @@ -4,19 +4,19 @@ title: ReadingRoom Class imports: - linkml:types - ../enums/ReadingRoomTypeEnum - - ../slots/allows_or_allowed + - ../slots/allow - ../slots/has_locker - ../slots/has_microfilm_reader - - ../slots/has_or_had_accessibility_feature - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_accessibility_feature + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score - ../slots/has_supervised_handling - ../slots/has_wifi - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by - ../slots/opening_hour - ../slots/reading_room_type - ../slots/requires_appointment @@ -37,8 +37,8 @@ classes: is_a: ReconstructedEntity class_uri: aat:300004051 description: "Reading room or research room at a heritage custodian institution.\n\n**DEFINITION**:\n\nA ReadingRoom is a designated space where researchers, scholars, and the\npublic can access and consult collection materials under supervised\nconditions. Reading rooms are the primary interface between heritage\ncustodians and their users for on-site collection access.\n\n**GETTY AAT ALIGNMENT**:\n\n`aat:300004051` (reading rooms) - \"Rooms in libraries, archives, or other\nbuildings where books, periodicals, or other materials may be read or\nstudied, but not normally borrowed.\"\n\n**DISTINCTION FROM ReadingRoomAnnex**:\n\n| Type | Location | Status |\n|------|----------|--------|\n| **ReadingRoom** | Main building | Primary reading facility |\n| ReadingRoomAnnex | Separate location | Overflow/supplementary |\n\n**TYPICAL CHARACTERISTICS**:\n\n- **Supervised access**: Staff oversight for security\n- **Controlled environment**: Climate control for materials\n- **Research support**:\ - \ Finding aids, catalogs, reference help\n- **Registration required**: Reader cards, ID verification\n- **Rules of use**: No food/drink, pencils only, handling guidelines\n\n**TYPES OF READING ROOMS**:\n\n1. **General Reading Room**: Primary research space\n2. **Special Collections Reading Room**: Rare/valuable materials\n3. **Microfilm Reading Room**: Microform materials\n4. **Digital Reading Room**: Electronic resources, digitization on demand\n5. **Map Room**: Oversized cartographic materials\n6. **Newspaper Reading Room**: Periodicals and newspapers\n\n**USE CASES**:\n\n1. **Archive Reading Room**:\n ```yaml\n ReadingRoom:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/na-studiezaal\"\n has_or_had_label:\n label_text: \"Nationaal Archief Studiezaal\"\n reading_room_type: \"General\"\n seating_capacity: 80\n requires_registration: true\n allows_photography: true\n ```\n\n2. **Special Collections Room**:\n ```yaml\n ReadingRoom:\n\ - \ has_or_had_label:\n label_text: \"KB Bijzondere Collecties Leeszaal\"\n reading_room_type: \"Special Collections\"\n seating_capacity: 20\n requires_appointment: true\n has_supervised_handling: true\n ```\n" + \ Finding aids, catalogs, reference help\n- **Registration required**: Reader cards, ID verification\n- **Rules of use**: No food/drink, pencils only, handling guidelines\n\n**TYPES OF READING ROOMS**:\n\n1. **General Reading Room**: Primary research space\n2. **Special Collections Reading Room**: Rare/valuable materials\n3. **Microfilm Reading Room**: Microform materials\n4. **Digital Reading Room**: Electronic resources, digitization on demand\n5. **Map Room**: Oversized cartographic materials\n6. **Newspaper Reading Room**: Periodicals and newspapers\n\n**USE CASES**:\n\n1. **Archive Reading Room**:\n ```yaml\n ReadingRoom:\n identified_by: \"https://nde.nl/ontology/hc/aux/na-studiezaal\"\n has_label:\n label_text: \"Nationaal Archief Studiezaal\"\n reading_room_type: \"General\"\n seating_capacity: 80\n requires_registration: true\n allows_photography: true\n ```\n\n2. **Special Collections Room**:\n ```yaml\n ReadingRoom:\n\ + \ has_label:\n label_text: \"KB Bijzondere Collecties Leeszaal\"\n reading_room_type: \"Special Collections\"\n seating_capacity: 20\n requires_appointment: true\n has_supervised_handling: true\n ```\n" exact_mappings: - aat:300004051 close_mappings: @@ -49,32 +49,32 @@ classes: - aat:300004049 - schema:ReadingRoom slots: - - has_or_had_accessibility_feature - - allows_or_allowed + - has_accessibility_feature + - allow - has_locker - has_microfilm_reader - has_supervised_handling - has_wifi - opening_hour - - has_or_had_description - - has_or_had_identifier - - has_or_had_label + - has_description + - identified_by + - has_label - reading_room_type - requires_appointment - requires_registration - seating_capacity - - has_or_had_score - - has_or_had_quantity - - is_or_was_derived_from - - is_or_was_generated_by + - has_score + - has_quantity + - derived_from + - generated_by slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/na-studiezaal - has_or_had_label: + has_label: # range: string required: true inlined: false # Fixed invalid inline for primitive type @@ -85,7 +85,7 @@ classes: label_text: KB Bijzondere Collecties Leeszaal - value: label_text: Stadsarchief Amsterdam Studiezaal - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type examples: @@ -102,15 +102,15 @@ classes: examples: - value: 80 - value: 20 - has_or_had_quantity: + has_quantity: range: integer required: false inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_measurement_unit: - has_or_had_type: TERMINAL - has_or_had_symbol: terminals + has_measurement_unit: + has_type: TERMINAL + has_symbol: terminals has_microfilm_reader: range: boolean examples: @@ -128,7 +128,7 @@ classes: examples: - value: true - value: false - allows_or_allowed: + allow: # range: string multivalued: true examples: @@ -146,17 +146,17 @@ classes: # range: string examples: - value: Tu-Fr 09:00-17:00, Sa 09:00-13:00 - has_or_had_accessibility_feature: + has_accessibility_feature: # range: string multivalued: true examples: - value: Wheelchair accessible - value: Screen magnification software - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false comments: @@ -170,10 +170,10 @@ classes: - https://schema.org/Library examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/na-studiezaal - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/na-studiezaal + has_label: label_text: Nationaal Archief Studiezaal - has_or_had_description: + has_description: description_text: Main research room for consulting archival collections. Self-service retrieval from open stacks. Staff assistance available. reading_room_type: GENERAL seating_capacity: 80 @@ -183,19 +183,19 @@ classes: has_wifi: true requires_registration: true requires_appointment: false - allows_or_allowed: + allow: - Laptops permitted - Photography for personal research use has_lockers: true opening_hours: Tu-Fr 09:00-17:00, Sa 09:00-13:00 - has_or_had_accessibility_feature: + has_accessibility_feature: - Wheelchair accessible - Adjustable desks - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/kb-bijzondere-collecties - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/kb-bijzondere-collecties + has_label: label_text: KB Bijzondere Collecties Leeszaal - has_or_had_description: + has_description: description_text: Special collections reading room for rare books, manuscripts, and incunabula. Supervised handling required. reading_room_type: SPECIAL_COLLECTIONS seating_capacity: 20 @@ -203,7 +203,7 @@ classes: terminal_count: 4 requires_registration: true requires_appointment: true - allows_or_allowed: + allow: - Photography not permitted - reproduction service available has_supervised_handling: true has_lockers: true diff --git a/schemas/20251121/linkml/modules/classes/ReadingRoomAnnex.yaml b/schemas/20251121/linkml/modules/classes/ReadingRoomAnnex.yaml index c33e2a77f5..012eec0992 100644 --- a/schemas/20251121/linkml/modules/classes/ReadingRoomAnnex.yaml +++ b/schemas/20251121/linkml/modules/classes/ReadingRoomAnnex.yaml @@ -4,14 +4,14 @@ title: ReadingRoomAnnex Class imports: - linkml:types - ../enums/ReadingRoomAnnexReasonEnum - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score - ../slots/is_annex_of_reading_room - - ../slots/is_or_was_created_through - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/created_through + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by - ../slots/is_temporary - ../slots/material_specialization - ../slots/opening_hour @@ -34,7 +34,7 @@ classes: is_a: ReconstructedEntity class_uri: aat:300004051 description: "Overflow or supplementary reading room at a separate location from main facility.\n\n**DEFINITION**:\n\nA ReadingRoomAnnex is a secondary research space located separately from\nthe main heritage custodian building. Annexes typically serve overflow\ncapacity, specialized materials, or specific researcher communities.\n\n**DISTINCTION FROM ReadingRoom**:\n\n| Property | ReadingRoom | ReadingRoomAnnex |\n|----------|-------------|------------------|\n| **Location** | Main building | Separate location |\n| **Status** | Primary facility | Supplementary |\n| **Materials** | Main collections | Overflow/specialized |\n| **Permanence** | Permanent | May be temporary |\n\n**TYPICAL REASONS FOR ANNEX**:\n\n1. **Capacity overflow**: Main reading room at capacity\n2. **Specialized materials**: Maps, newspapers, genealogy\n3. **Geographic reach**: Serve researchers in another city\n4. **Renovation**: Temporary reading room during construction\n5. **Partnership**: Shared space with another\ - \ institution\n\n**USE CASES**:\n\n1. **Overflow Annex**:\n ```yaml\n ReadingRoomAnnex:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/aux/nha-annex-kleine-houtweg\"\n annex_name: \"Noord-Hollands Archief Reading Room Annex\"\n annex_reason: CAPACITY_OVERFLOW\n is_annex_of_reading_room: \"https://nde.nl/ontology/hc/aux/nha-studiezaal\"\n ```\n\n2. **Specialized Materials Annex**:\n ```yaml\n ReadingRoomAnnex:\n annex_name: \"Stadsarchief Kaartenkamer Annex\"\n annex_reason: SPECIALIZED_MATERIALS\n material_specialization: \"Historical maps and atlases\"\n ```\n\n**RELATIONSHIP TO AuxiliaryPlace**:\n\nReadingRoomAnnex is typically located within an AuxiliaryPlace:\n```\nAuxiliaryPlace (physical location)\n \u2514\u2500\u2500 hosts \u2192 ReadingRoomAnnex (function at that location)\n```\n" + \ institution\n\n**USE CASES**:\n\n1. **Overflow Annex**:\n ```yaml\n ReadingRoomAnnex:\n identified_by: \"https://nde.nl/ontology/hc/aux/nha-annex-kleine-houtweg\"\n annex_name: \"Noord-Hollands Archief Reading Room Annex\"\n annex_reason: CAPACITY_OVERFLOW\n is_annex_of_reading_room: \"https://nde.nl/ontology/hc/aux/nha-studiezaal\"\n ```\n\n2. **Specialized Materials Annex**:\n ```yaml\n ReadingRoomAnnex:\n annex_name: \"Stadsarchief Kaartenkamer Annex\"\n annex_reason: SPECIALIZED_MATERIALS\n material_specialization: \"Historical maps and atlases\"\n ```\n\n**RELATIONSHIP TO AuxiliaryPlace**:\n\nReadingRoomAnnex is typically located within an AuxiliaryPlace:\n```\nAuxiliaryPlace (physical location)\n \u2514\u2500\u2500 hosts \u2192 ReadingRoomAnnex (function at that location)\n```\n" exact_mappings: - aat:300004051 close_mappings: @@ -44,10 +44,10 @@ classes: - hc:ReadingRoom - schema:branch slots: - - has_or_had_description - - has_or_had_identifier - - has_or_had_label - - is_or_was_created_through + - has_description + - identified_by + - has_label + - created_through - is_annex_of_reading_room - is_temporary - material_specialization @@ -56,18 +56,18 @@ classes: - requires_separate_registration - seating_capacity - shares_catalog_with_main - - has_or_had_score - - is_or_was_derived_from - - is_or_was_generated_by + - has_score + - derived_from + - generated_by slot_usage: - has_or_had_identifier: + identified_by: range: CustodianIdentifier required: true identifier: true inlined: false examples: - value: https://nde.nl/ontology/hc/aux/nha-annex-kleine-houtweg - has_or_had_label: + has_label: # range: string required: true inlined: false # Fixed invalid inline for primitive type @@ -76,23 +76,23 @@ classes: label_text: Noord-Hollands Archief Reading Room Annex - value: label_text: Stadsarchief Kaartenkamer Annex - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: Overflow reading room for peak research periods. Same registration as main studiezaal. Materials must be pre-ordered. - is_or_was_created_through: + created_through: # range: string required: true inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_reason: - has_or_had_label: CAPACITY_OVERFLOW + has_reason: + has_label: CAPACITY_OVERFLOW - value: - has_or_had_reason: - has_or_had_label: SPECIALIZED_MATERIALS + has_reason: + has_label: SPECIALIZED_MATERIALS material_specialization: # range: string examples: @@ -130,11 +130,11 @@ classes: range: date examples: - value: '2025-12-31' - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false comments: @@ -147,14 +147,14 @@ classes: - http://vocab.getty.edu/aat/300004051 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/nha-annex-kleine-houtweg - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/nha-annex-kleine-houtweg + has_label: label_text: Noord-Hollands Archief Reading Room Annex - has_or_had_description: + has_description: description_text: Overflow reading room at Kleine Houtweg for peak research periods. Same registration as main studiezaal. - is_or_was_created_through: - has_or_had_reason: - has_or_had_label: CAPACITY_OVERFLOW + created_through: + has_reason: + has_label: CAPACITY_OVERFLOW is_annex_of_reading_room: https://nde.nl/ontology/hc/aux/nha-studiezaal seating_capacity: 15 requires_separate_registration: false @@ -162,14 +162,14 @@ classes: opening_hours: Tu-Th 10:00-16:00 is_temporary: false - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/sa-renovation-annex - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/sa-renovation-annex + has_label: label_text: Stadsarchief Temporary Reading Room - has_or_had_description: + has_description: description_text: Temporary reading room during main building renovation. Limited services available. - is_or_was_created_through: - has_or_had_reason: - has_or_had_label: RENOVATION + created_through: + has_reason: + has_label: RENOVATION is_annex_of_reading_room: https://nde.nl/ontology/hc/aux/sa-studiezaal seating_capacity: 20 opening_hours: Mo-Fr 10:00-16:00 diff --git a/schemas/20251121/linkml/modules/classes/Reason.yaml b/schemas/20251121/linkml/modules/classes/Reason.yaml index e7b3110188..6a268373d8 100644 --- a/schemas/20251121/linkml/modules/classes/Reason.yaml +++ b/schemas/20251121/linkml/modules/classes/Reason.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: Reason: class_uri: skos:Concept description: Reason. slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ReasoningContent.yaml b/schemas/20251121/linkml/modules/classes/ReasoningContent.yaml index 52efacf282..a432e72a33 100644 --- a/schemas/20251121/linkml/modules/classes/ReasoningContent.yaml +++ b/schemas/20251121/linkml/modules/classes/ReasoningContent.yaml @@ -9,9 +9,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: ReasoningContent: class_uri: prov:Entity @@ -87,17 +87,17 @@ classes: - schema:Comment - schema:Review slots: - - has_or_had_label - - has_or_had_description - - has_or_had_identifier + - has_label + - has_description + - identified_by slot_usage: - has_or_had_label: + has_label: examples: - value: Turn 3 Reasoning - has_or_had_description: + has_description: examples: - value: Chain-of-thought reasoning for heritage institution extraction - has_or_had_identifier: + identified_by: examples: - value: reasoning-turn-3-20260119-143000 annotations: @@ -108,10 +108,10 @@ classes: APIs examples: - value: - has_or_had_label: Preserved Reasoning + has_label: Preserved Reasoning - value: - has_or_had_label: Cleared Context - has_or_had_description: Fresh context for new query topic + has_label: Cleared Context + has_description: Fresh context for new query topic comments: - Created from slot_fixes.yaml migration (2026-01-19) - Replaces boolean clear_thinking with structured reasoning preservation diff --git a/schemas/20251121/linkml/modules/classes/ReconstructedEntity.yaml b/schemas/20251121/linkml/modules/classes/ReconstructedEntity.yaml index 812a86f6d6..e224a9d09a 100644 --- a/schemas/20251121/linkml/modules/classes/ReconstructedEntity.yaml +++ b/schemas/20251121/linkml/modules/classes/ReconstructedEntity.yaml @@ -7,21 +7,21 @@ prefixes: prov: http://www.w3.org/ns/prov# imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/generated_by classes: ReconstructedEntity: class_uri: prov:Entity abstract: true - description: "Abstract base class for all entities that are generated by a ReconstructionActivity.\n\n**RDFS Compliance**:\nThis class exists to ensure proper RDFS domain/range semantics for the\n`generates`/`is_or_was_generated_by` inverse relationship:\n- `generates`: domain=ReconstructionActivity, range=ReconstructedEntity\n- `is_or_was_generated_by`: domain=ReconstructedEntity, range=ReconstructionActivity\n\n**PROV-O Alignment**:\nMaps to `prov:Entity` - \"An entity is a physical, digital, conceptual, or\nother kind of thing with some fixed aspects; entities may be real or imaginary.\"\n\n**Subclasses**:\nAll reconstructed aspects of a custodian inherit from this class:\n- CustodianLegalStatus (formal legal entity)\n- CustodianName (standardized name)\n- CustodianPlace (physical location)\n- CustodianCollection (collection metadata)\n- DigitalPlatform (digital infrastructure)\n- OrganizationBranch (organizational units)\n- And other aspect entities...\n\n**Usage Pattern**:\n```yaml\n# ReconstructionActivity\ - \ generates ReconstructedEntity instances\nReconstructionActivity:\n activity_type: ISIL_REGISTRATION\n has_or_had_generate:\n - \"https://nde.nl/ontology/hc/legal-status/nl-am-rm\" # CustodianLegalStatus\n - \"https://nde.nl/ontology/hc/name/rijksmuseum\" # CustodianName\n\n# Each ReconstructedEntity links back to its generating activity\nCustodianLegalStatus:\n is_or_was_generated_by: \"https://nde.nl/ontology/hc/activity/isil-reg-2024\"\n```\n" + description: "Abstract base class for all entities that are generated by a ReconstructionActivity.\n\n**RDFS Compliance**:\nThis class exists to ensure proper RDFS domain/range semantics for the\n`generates`/`generated_by` inverse relationship:\n- `generates`: domain=ReconstructionActivity, range=ReconstructedEntity\n- `generated_by`: domain=ReconstructedEntity, range=ReconstructionActivity\n\n**PROV-O Alignment**:\nMaps to `prov:Entity` - \"An entity is a physical, digital, conceptual, or\nother kind of thing with some fixed aspects; entities may be real or imaginary.\"\n\n**Subclasses**:\nAll reconstructed aspects of a custodian inherit from this class:\n- CustodianLegalStatus (formal legal entity)\n- CustodianName (standardized name)\n- CustodianPlace (physical location)\n- CustodianCollection (collection metadata)\n- DigitalPlatform (digital infrastructure)\n- OrganizationBranch (organizational units)\n- And other aspect entities...\n\n**Usage Pattern**:\n```yaml\n# ReconstructionActivity\ + \ generates ReconstructedEntity instances\nReconstructionActivity:\n activity_type: ISIL_REGISTRATION\n has_generate:\n - \"https://nde.nl/ontology/hc/legal-status/nl-am-rm\" # CustodianLegalStatus\n - \"https://nde.nl/ontology/hc/name/rijksmuseum\" # CustodianName\n\n# Each ReconstructedEntity links back to its generating activity\nCustodianLegalStatus:\n generated_by: \"https://nde.nl/ontology/hc/activity/isil-reg-2024\"\n```\n" exact_mappings: - prov:Entity slots: - - has_or_had_score - - is_or_was_generated_by + - has_score + - generated_by slot_usage: - is_or_was_generated_by: + generated_by: required: false annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ReconstructionActivity.yaml b/schemas/20251121/linkml/modules/classes/ReconstructionActivity.yaml index 0284f564d0..d75c863ad2 100644 --- a/schemas/20251121/linkml/modules/classes/ReconstructionActivity.yaml +++ b/schemas/20251121/linkml/modules/classes/ReconstructionActivity.yaml @@ -14,8 +14,8 @@ imports: - ../enums/ReconstructionActivityTypeEnum - ../metadata - ../slots/generates_or_generated - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_value # was: has_or_had_confidence_measure + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_value # was: has_confidence_measure - ../slots/justification - ../slots/method - ../slots/responsible_agent @@ -36,13 +36,13 @@ classes: related_mappings: - crm:E13_Attribute_Assignment slots: - - has_or_had_value # was: has_or_had_confidence_measure - migrated per Rule 53 (2026-01-28) - # has_or_had_generate REMOVED - migrated to generates_or_generated (Rule 53) + - has_value # was: has_confidence_measure - migrated per Rule 53 (2026-01-28) + # has_generate REMOVED - migrated to generates_or_generated (Rule 53) - generates_or_generated - justification - method - responsible_agent - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - temporal_extent slot_usage: method: @@ -53,7 +53,7 @@ classes: range: TimeSpan multivalued: true required: true - has_or_had_value: # was: has_or_had_confidence_measure - migrated per Rule 53 (2026-01-28) + has_value: # was: has_confidence_measure - migrated per Rule 53 (2026-01-28) required: false range: ConfidenceValue generates_or_generated: @@ -62,8 +62,8 @@ classes: inlined: true examples: - value: - has_or_had_label: "Reconstructed Custodian Record" - has_or_had_description: "Merged record from ISIL and Wikidata sources" + has_label: "Reconstructed Custodian Record" + has_description: "Merged record from ISIL and Wikidata sources" justification: # range: string comments: diff --git a/schemas/20251121/linkml/modules/classes/ReconstructionAgent.yaml b/schemas/20251121/linkml/modules/classes/ReconstructionAgent.yaml index 53d2c93777..ea0cc70763 100644 --- a/schemas/20251121/linkml/modules/classes/ReconstructionAgent.yaml +++ b/schemas/20251121/linkml/modules/classes/ReconstructionAgent.yaml @@ -19,9 +19,9 @@ imports: - ../enums/AgentTypeEnum - ../metadata - ../slots/contact - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: ReconstructionAgent: class_uri: prov:Agent @@ -43,15 +43,15 @@ classes: - pico:Agent - tooi:Overheidsorganisatie slots: - - has_or_had_label - - has_or_had_type + - has_label + - has_type - contact - - has_or_had_score + - has_score slot_usage: - has_or_had_label: + has_label: # range: string required: true - has_or_had_type: + has_type: # range: string # uriorcurie contact: # range: string diff --git a/schemas/20251121/linkml/modules/classes/RecordCycleStatus.yaml b/schemas/20251121/linkml/modules/classes/RecordCycleStatus.yaml index 3cff273cce..f52a932e58 100644 --- a/schemas/20251121/linkml/modules/classes/RecordCycleStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/RecordCycleStatus.yaml @@ -10,8 +10,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: RecordCycleStatus: class_uri: rico:RecordState @@ -19,8 +19,8 @@ classes: - rico:RecordState description: The status of a record within its lifecycle. slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/RecordSetType.yaml b/schemas/20251121/linkml/modules/classes/RecordSetType.yaml index 07558bfe28..6aea6b7328 100644 --- a/schemas/20251121/linkml/modules/classes/RecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/RecordSetType.yaml @@ -9,16 +9,16 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: RecordSetType: class_uri: skos:Concept abstract: true slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/RecordStatus.yaml b/schemas/20251121/linkml/modules/classes/RecordStatus.yaml index b2e8e57b81..009ef55ca0 100644 --- a/schemas/20251121/linkml/modules/classes/RecordStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/RecordStatus.yaml @@ -9,15 +9,15 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: RecordStatus: class_uri: skos:Concept slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Reference.yaml b/schemas/20251121/linkml/modules/classes/Reference.yaml index 18dd66e7a8..7828624789 100644 --- a/schemas/20251121/linkml/modules/classes/Reference.yaml +++ b/schemas/20251121/linkml/modules/classes/Reference.yaml @@ -16,7 +16,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: Reference: class_uri: dcterms:BibliographicResource @@ -28,11 +28,11 @@ classes: - schema:CreativeWork - bibo:Document slots: - - has_or_had_label + - has_label - source_type - source_date slot_usage: - has_or_had_label: + has_label: # range: string inlined: false # Fixed invalid inline for primitive type examples: diff --git a/schemas/20251121/linkml/modules/classes/RegionalArchive.yaml b/schemas/20251121/linkml/modules/classes/RegionalArchive.yaml index 4d98f3ff59..d5ccec1349 100644 --- a/schemas/20251121/linkml/modules/classes/RegionalArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/RegionalArchive.yaml @@ -10,10 +10,10 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: RegionalArchive: @@ -28,17 +28,17 @@ classes: broad_mappings: - wd:Q166118 slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null hold_or_held_record_set_type: equals_expression: '["hc:RegionalGovernanceFonds", "hc:CadastralAndLandRecordsFonds", "hc:NotarialProtocolSeries", "hc:RegionalHistoryCollection", "hc:WaterManagementFonds"] ' - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Regional Archive diff --git a/schemas/20251121/linkml/modules/classes/RegionalArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/RegionalArchiveRecordSetType.yaml index bbac0f37a0..e9c064d6b9 100644 --- a/schemas/20251121/linkml/modules/classes/RegionalArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/RegionalArchiveRecordSetType.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to classes: RegionalArchiveRecordSetType: abstract: true @@ -39,10 +39,10 @@ classes: - ProvincialArchive - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/RegionalArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/RegionalArchiveRecordSetTypes.yaml index f490c1c114..20ad41d123 100644 --- a/schemas/20251121/linkml/modules/classes/RegionalArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/RegionalArchiveRecordSetTypes.yaml @@ -13,9 +13,9 @@ default_prefix: hc imports: - ./RegionalArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_significance - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_significance + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/privacy_note @@ -115,8 +115,8 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -124,7 +124,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: RegionalGovernanceFonds @@ -236,8 +236,8 @@ classes: genealogical_value: Critical for tracing property ownership, family wealth, and residence patterns. Complements civil registry and notarial records. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -245,7 +245,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CadastralAndLandRecordsFonds @@ -357,8 +357,8 @@ classes: region. Essential source for family history, social history, and economic history. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - privacy_note @@ -367,7 +367,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: NotarialProtocolSeries @@ -480,8 +480,8 @@ classes: collection_nature_note: Often includes artificial/assembled collections organized by subject, format, or documentation purpose rather than strict provenance. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -489,7 +489,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:LibraryType", "hc:HeritageSocietyType"]' record_set_type: equals_string: RegionalHistoryCollection @@ -596,14 +596,14 @@ classes: dutch_context: Waterschappen are among the oldest democratic institutions in the Netherlands. Records essential for landscape history, climate adaptation research, and understanding Dutch hydraulic engineering heritage. - has_or_had_significance: - # has_or_had_type: HistoricalSignificance - # has_or_had_description: Crucial primary sources for environmental history, + has_significance: + # has_type: HistoricalSignificance + # has_description: Crucial primary sources for environmental history, climate history, and understanding the Dutch relationship with water management over centuries. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -611,7 +611,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: WaterManagementFonds diff --git a/schemas/20251121/linkml/modules/classes/RegionalArchivesInIceland.yaml b/schemas/20251121/linkml/modules/classes/RegionalArchivesInIceland.yaml index ade6ab51cd..22623539b0 100644 --- a/schemas/20251121/linkml/modules/classes/RegionalArchivesInIceland.yaml +++ b/schemas/20251121/linkml/modules/classes/RegionalArchivesInIceland.yaml @@ -10,10 +10,10 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: RegionalArchivesInIceland: @@ -21,10 +21,10 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q16428785 close_mappings: @@ -33,8 +33,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Regional Archives in Iceland diff --git a/schemas/20251121/linkml/modules/classes/RegionalArchivesInIcelandRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/RegionalArchivesInIcelandRecordSetType.yaml index 73d56cc64f..cc94b065de 100644 --- a/schemas/20251121/linkml/modules/classes/RegionalArchivesInIcelandRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/RegionalArchivesInIcelandRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: RegionalArchivesInIcelandRecordSetType: description: 'A rico:RecordSetType for classifying collections held by RegionalArchivesInIceland custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - RegionalArchivesInIceland - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/RegionalArchivesInIcelandRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/RegionalArchivesInIcelandRecordSetTypes.yaml index 7f5d92233f..f08ac33678 100644 --- a/schemas/20251121/linkml/modules/classes/RegionalArchivesInIcelandRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/RegionalArchivesInIcelandRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./RegionalArchivesInIcelandRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - RegionalArchivesInIcelandRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: IcelandicRegionalFonds diff --git a/schemas/20251121/linkml/modules/classes/RegionalEconomicArchive.yaml b/schemas/20251121/linkml/modules/classes/RegionalEconomicArchive.yaml index 3d77d27f10..7502ec9dd3 100644 --- a/schemas/20251121/linkml/modules/classes/RegionalEconomicArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/RegionalEconomicArchive.yaml @@ -10,10 +10,10 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: RegionalEconomicArchive: @@ -21,10 +21,10 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q2138319 close_mappings: @@ -33,8 +33,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Regional Economic Archive diff --git a/schemas/20251121/linkml/modules/classes/RegionalEconomicArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/RegionalEconomicArchiveRecordSetType.yaml index 8bad3c1c48..82044eebf2 100644 --- a/schemas/20251121/linkml/modules/classes/RegionalEconomicArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/RegionalEconomicArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: RegionalEconomicArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by RegionalEconomicArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - RegionalEconomicArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/RegionalEconomicArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/RegionalEconomicArchiveRecordSetTypes.yaml index 90a0da8151..efbaeb5858 100644 --- a/schemas/20251121/linkml/modules/classes/RegionalEconomicArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/RegionalEconomicArchiveRecordSetTypes.yaml @@ -19,8 +19,8 @@ default_prefix: hc imports: - ./RegionalEconomicArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -43,15 +43,15 @@ classes: - RegionalEconomicArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: RegionalBusinessFonds diff --git a/schemas/20251121/linkml/modules/classes/RegionalHistoricCenter.yaml b/schemas/20251121/linkml/modules/classes/RegionalHistoricCenter.yaml index b29147940c..1591704443 100644 --- a/schemas/20251121/linkml/modules/classes/RegionalHistoricCenter.yaml +++ b/schemas/20251121/linkml/modules/classes/RegionalHistoricCenter.yaml @@ -9,18 +9,18 @@ default_prefix: hc imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score + - ../slots/identified_by + - ../slots/20260202_matang/has_score classes: RegionalHistoricCenter: description: Name for archives in the Netherlands (Regionaal Historisch Centrum). Regional Historic Centers are Dutch archival institutions that typically result from collaboration between multiple municipalities and the national archives service. They serve as regional repositories for archival materials from participating organizations. is_a: CustodianType class_uri: skos:Concept slots: - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: + identified_by: annotations: skos:prefLabel: Regional Historic Center skos:altLabel: "Regionalhistorisches Zentrum, centre r\xE9gional historique, Regionaal Historisch Centrum, RHC" diff --git a/schemas/20251121/linkml/modules/classes/RegionalStateArchives.yaml b/schemas/20251121/linkml/modules/classes/RegionalStateArchives.yaml index 5340037e20..49560d632c 100644 --- a/schemas/20251121/linkml/modules/classes/RegionalStateArchives.yaml +++ b/schemas/20251121/linkml/modules/classes/RegionalStateArchives.yaml @@ -10,10 +10,10 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: RegionalStateArchives: @@ -21,10 +21,10 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q8727648 close_mappings: @@ -33,8 +33,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Regional State Archives diff --git a/schemas/20251121/linkml/modules/classes/RegionalStateArchivesRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/RegionalStateArchivesRecordSetType.yaml index 95a285060a..ab54e28bfb 100644 --- a/schemas/20251121/linkml/modules/classes/RegionalStateArchivesRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/RegionalStateArchivesRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: RegionalStateArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by RegionalStateArchives custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - RegionalStateArchives - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/RegionalStateArchivesRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/RegionalStateArchivesRecordSetTypes.yaml index 6c41bbfc3d..914d8f7e9c 100644 --- a/schemas/20251121/linkml/modules/classes/RegionalStateArchivesRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/RegionalStateArchivesRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./RegionalStateArchivesRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - RegionalStateArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: RegionalStateFonds diff --git a/schemas/20251121/linkml/modules/classes/RegistrationAuthority.yaml b/schemas/20251121/linkml/modules/classes/RegistrationAuthority.yaml index e33cf28d77..e547e94b26 100644 --- a/schemas/20251121/linkml/modules/classes/RegistrationAuthority.yaml +++ b/schemas/20251121/linkml/modules/classes/RegistrationAuthority.yaml @@ -17,13 +17,13 @@ imports: - linkml:types - ../enums/RegistrationAuthorityGovernanceEnum - ../metadata - - ../slots/has_or_had_score - - ../slots/is_or_was_equivalent_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/equivalent_to - ../slots/name - ../slots/name_local - ../slots/country - ../slots/sparql_endpoint - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_url classes: RegistrationAuthority: class_uri: gleif_base:RegistrationAuthority @@ -53,15 +53,15 @@ classes: - org:FormalOrganization - schema:Organization slots: - - has_or_had_score - - is_or_was_equivalent_to + - has_score + - equivalent_to - name - name_local - country - sparql_endpoint - - has_or_had_url + - has_url slot_usage: - is_or_was_equivalent_to: + equivalent_to: slot_uri: schema:sameAs range: WikiDataIdentifier inlined_as_list: true diff --git a/schemas/20251121/linkml/modules/classes/RegistrationInfo.yaml b/schemas/20251121/linkml/modules/classes/RegistrationInfo.yaml index 80eae5dde1..83343589f2 100644 --- a/schemas/20251121/linkml/modules/classes/RegistrationInfo.yaml +++ b/schemas/20251121/linkml/modules/classes/RegistrationInfo.yaml @@ -21,9 +21,9 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score - ../slots/jurisdiction classes: LegalStatus: @@ -39,6 +39,6 @@ classes: - gleif_base:EntityStatus - schema:status slots: - - has_or_had_score - - has_or_had_label + - has_score + - has_label - jurisdiction diff --git a/schemas/20251121/linkml/modules/classes/RegistrationNumber.yaml b/schemas/20251121/linkml/modules/classes/RegistrationNumber.yaml index 60e10a8f97..cf75545b45 100644 --- a/schemas/20251121/linkml/modules/classes/RegistrationNumber.yaml +++ b/schemas/20251121/linkml/modules/classes/RegistrationNumber.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: RegistrationNumber: class_uri: schema:PropertyValue @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_value + - has_value diff --git a/schemas/20251121/linkml/modules/classes/ReligiousArchive.yaml b/schemas/20251121/linkml/modules/classes/ReligiousArchive.yaml index bbaa38d7ab..a42d1dab1b 100644 --- a/schemas/20251121/linkml/modules/classes/ReligiousArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/ReligiousArchive.yaml @@ -17,10 +17,10 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: ReligiousArchive: @@ -28,10 +28,10 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q85545753 close_mappings: @@ -40,8 +40,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HolySacredSiteType"]' annotations: skos:prefLabel: Religious Archive diff --git a/schemas/20251121/linkml/modules/classes/ReligiousArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ReligiousArchiveRecordSetType.yaml index 0b6bf56b53..005e365633 100644 --- a/schemas/20251121/linkml/modules/classes/ReligiousArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ReligiousArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: ReligiousArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ReligiousArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - ReligiousArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ReligiousArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/ReligiousArchiveRecordSetTypes.yaml index 80dfb6c263..346788a8b0 100644 --- a/schemas/20251121/linkml/modules/classes/ReligiousArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ReligiousArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./ReligiousArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - ReligiousArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ReligiousInstitutionFonds @@ -78,15 +78,15 @@ classes: - ReligiousArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CongregationalRecordsSeries diff --git a/schemas/20251121/linkml/modules/classes/RequirementStatus.yaml b/schemas/20251121/linkml/modules/classes/RequirementStatus.yaml index 88b6e8bef1..2068f6704d 100644 --- a/schemas/20251121/linkml/modules/classes/RequirementStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/RequirementStatus.yaml @@ -12,54 +12,54 @@ imports: - linkml:types - ../slots/begin_of_the_begin - ../slots/end_of_the_end - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_note - - ../slots/has_or_had_type - - ../slots/is_or_was_required + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/required classes: RequirementStatus: class_uri: prov:Entity - description: "Represents the status of a requirement (e.g., booking, registration, appointment).\n\n**DEFINITION**:\n\nRequirementStatus captures structured requirement information including:\n- Whether the requirement is active (is_or_was_required boolean)\n- The type(s) of requirement (via has_or_had_type \u2192 RequirementType)\n- Status description (free text details)\n- Temporal validity (when this requirement was in effect)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **PROV-O** | `prov:Entity` | Primary - entity with provenance |\n| **Schema.org** | `schema:isRequired` | Boolean requirement |\n| **SKOS** | `skos:Concept` | For type classification |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nEducationCenter / ReadingRoom / etc.\n \u2502\n \u2514\u2500\u2500 has_or_had_status \u2192 RequirementStatus (THIS CLASS)\n \u2502\n \u251C\u2500\u2500 is_or_was_required (boolean - is booking required?)\n\ - \ \u251C\u2500\u2500 has_or_had_type \u2192 RequirementType (what kind of requirement)\n \u251C\u2500\u2500 has_or_had_description (free text details)\n \u2514\u2500\u2500 begin_of_the_begin / end_of_the_end (validity period)\n```\n\n**SLOT MIGRATION** (2026-01-15):\n\nThis class replaces domain-specific boolean slots:\n- booking_required (boolean) \u2192 has_or_had_status: RequirementStatus\n- appointment_required (boolean) \u2192 has_or_had_status: RequirementStatus\n- registration_required (boolean) \u2192 has_or_had_status: RequirementStatus\n\n**SIMPLE VS STRUCTURED USAGE**:\n\nFor simple boolean requirement (just true/false):\n```yaml\nis_or_was_required: true\n```\n\nFor structured requirement with details:\n```yaml\nhas_or_had_status:\n is_or_was_required: true\n has_or_had_type:\n - has_or_had_code: ADVANCE_BOOKING\n has_or_had_description: \"Advance booking required for groups of 10+\"\n```\n" + description: "Represents the status of a requirement (e.g., booking, registration, appointment).\n\n**DEFINITION**:\n\nRequirementStatus captures structured requirement information including:\n- Whether the requirement is active (required boolean)\n- The type(s) of requirement (via has_type \u2192 RequirementType)\n- Status description (free text details)\n- Temporal validity (when this requirement was in effect)\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **PROV-O** | `prov:Entity` | Primary - entity with provenance |\n| **Schema.org** | `schema:isRequired` | Boolean requirement |\n| **SKOS** | `skos:Concept` | For type classification |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nEducationCenter / ReadingRoom / etc.\n \u2502\n \u2514\u2500\u2500 has_status \u2192 RequirementStatus (THIS CLASS)\n \u2502\n \u251C\u2500\u2500 required (boolean - is booking required?)\n\ + \ \u251C\u2500\u2500 has_type \u2192 RequirementType (what kind of requirement)\n \u251C\u2500\u2500 has_description (free text details)\n \u2514\u2500\u2500 begin_of_the_begin / end_of_the_end (validity period)\n```\n\n**SLOT MIGRATION** (2026-01-15):\n\nThis class replaces domain-specific boolean slots:\n- booking_required (boolean) \u2192 has_status: RequirementStatus\n- appointment_required (boolean) \u2192 has_status: RequirementStatus\n- registration_required (boolean) \u2192 has_status: RequirementStatus\n\n**SIMPLE VS STRUCTURED USAGE**:\n\nFor simple boolean requirement (just true/false):\n```yaml\nrequired: true\n```\n\nFor structured requirement with details:\n```yaml\nhas_status:\n required: true\n has_type:\n - has_code: ADVANCE_BOOKING\n has_description: \"Advance booking required for groups of 10+\"\n```\n" exact_mappings: - prov:Entity close_mappings: - schema:Action slots: - - has_or_had_identifier - - is_or_was_required - - has_or_had_type - - has_or_had_label - - has_or_had_description - - has_or_had_note + - identified_by + - required + - has_type + - has_label + - has_description + - has_note - begin_of_the_begin - end_of_the_end slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie identifier: true required: true pattern: ^https://nde\.nl/ontology/hc/requirement-status/[a-z0-9-]+$ - is_or_was_required: + required: range: boolean required: true examples: - value: true - value: false - has_or_had_type: + has_type: # range: string # uriorcurie multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - - has_or_had_code: ADVANCE_BOOKING - has_or_had_description: + - has_code: ADVANCE_BOOKING + has_description: # range: string examples: - value: Advance booking required for groups of 10 or more. Individual visitors welcome without booking. - has_or_had_note: + has_note: # range: string multivalued: true examples: @@ -70,8 +70,8 @@ classes: annotations: specificity_score: '0.55' specificity_rationale: Requirement status applicable to many heritage contexts (education, reading rooms, visits). - has_or_had_score: null - slot_migration: "2026-01-15: Created to replace domain-specific requirement boolean slots\n- booking_required (boolean) \u2192 has_or_had_status (RequirementStatus)\n- appointment_required (boolean) \u2192 has_or_had_status (RequirementStatus)\n" + has_score: null + slot_migration: "2026-01-15: Created to replace domain-specific requirement boolean slots\n- booking_required (boolean) \u2192 has_status (RequirementStatus)\n- appointment_required (boolean) \u2192 has_status (RequirementStatus)\n" custodian_types: "['*']" comments: - RequirementStatus represents structured requirement information @@ -80,28 +80,28 @@ classes: - 'CREATED 2026-01-15: Enables migration from domain-specific boolean slots' examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/requirement-status/rijksmuseum-edu-booking - is_or_was_required: true - has_or_had_type: - - has_or_had_code: ADVANCE_BOOKING - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/requirement-status/rijksmuseum-edu-booking + required: true + has_type: + - has_code: ADVANCE_BOOKING + has_label: - Booking required for education programs@en - Reservering verplicht voor educatieprogramma's@nl - has_or_had_description: 'Advance booking required for all school groups and educational programs. + has_description: 'Advance booking required for all school groups and educational programs. Minimum 2 weeks advance booking for groups of 20+. ' - has_or_had_note: + has_note: - 'Online booking: educatie@rijksmuseum.nl' begin_of_the_begin: '2020-01-01T00:00:00Z' - value: - has_or_had_identifier: https://nde.nl/ontology/hc/requirement-status/archive-reading-room - is_or_was_required: true - has_or_had_type: - - has_or_had_code: APPOINTMENT_REQUIRED - has_or_had_description: "Appointment required for reading room access. \nWalk-in visits not possible due to limited seating.\n" + identified_by: https://nde.nl/ontology/hc/requirement-status/archive-reading-room + required: true + has_type: + - has_code: APPOINTMENT_REQUIRED + has_description: "Appointment required for reading room access. \nWalk-in visits not possible due to limited seating.\n" - value: - has_or_had_identifier: https://nde.nl/ontology/hc/requirement-status/library-open-access - is_or_was_required: false - has_or_had_description: No booking required. Open access during public hours. \ No newline at end of file + identified_by: https://nde.nl/ontology/hc/requirement-status/library-open-access + required: false + has_description: No booking required. Open access during public hours. \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/RequirementType.yaml b/schemas/20251121/linkml/modules/classes/RequirementType.yaml index 278f77bf52..4ebaec0263 100644 --- a/schemas/20251121/linkml/modules/classes/RequirementType.yaml +++ b/schemas/20251121/linkml/modules/classes/RequirementType.yaml @@ -11,19 +11,19 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/is_or_was_equivalent_to - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/equivalent_to + - ../slots/20260202_matang/related_to classes: RequirementType: class_uri: skos:Concept description: "Classification type for funding call requirements in heritage contexts.\n\n**DEFINITION**:\n\nRequirementType provides a SKOS-based classification hierarchy for categorizing\ndifferent types of requirements that funding calls may impose on applicants.\nThis includes eligibility criteria, financial conditions, partnership requirements,\nthematic focus areas, technical deliverables, and administrative requirements.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Class/Property | Notes |\n|----------|----------------|-------|\n| **SKOS** | `skos:Concept` | Primary - controlled vocabulary concept |\n| **Schema.org** | `schema:eligibleRegion` | Geographic eligibility |\n| **W3C Org** | `org:Organization` | Organizational eligibility |\n| **Dublin Core** | `dcterms:subject` | Thematic requirements |\n\n**REQUIREMENT CATEGORIES**:\n\n| Category | Prefix | Description |\n|----------|--------|-------------|\n| **Eligibility** | `ELIGIBILITY_` | Who can apply |\n| **Financial** | `FINANCIAL_`\ - \ | Budget and funding constraints |\n| **Partnership** | `PARTNERSHIP_` | Consortium requirements |\n| **Thematic** | `THEMATIC_` | Topic focus areas |\n| **Technical** | `TECHNICAL_` | Output requirements |\n| **Administrative** | `ADMINISTRATIVE_` | Registration/documentation |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nFundingRequirement\n \u2502\n \u2514\u2500\u2500 has_or_had_type \u2192 RequirementType (THIS CLASS)\n \u251C\u2500\u2500 has_or_had_hypernym \u2192 RequirementType (parent category)\n \u2514\u2500\u2500 has_or_had_description (requirement details)\n```\n\n**ENUM-TO-CLASS MIGRATION** (2026-01-13):\n\nThis class hierarchy replaces FundingRequirementTypeEnum.\nOld pattern: `requirement_type: ELIGIBILITY_GEOGRAPHIC` (enum value)\nNew pattern: `has_or_had_type: RequirementType` (object reference)\nArchived enum: `schemas/20251121/linkml/archive/enums/FundingRequirementTypeEnum.yaml`\n" + \ | Budget and funding constraints |\n| **Partnership** | `PARTNERSHIP_` | Consortium requirements |\n| **Thematic** | `THEMATIC_` | Topic focus areas |\n| **Technical** | `TECHNICAL_` | Output requirements |\n| **Administrative** | `ADMINISTRATIVE_` | Registration/documentation |\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nFundingRequirement\n \u2502\n \u2514\u2500\u2500 has_type \u2192 RequirementType (THIS CLASS)\n \u251C\u2500\u2500 has_hypernym \u2192 RequirementType (parent category)\n \u2514\u2500\u2500 has_description (requirement details)\n```\n\n**ENUM-TO-CLASS MIGRATION** (2026-01-13):\n\nThis class hierarchy replaces FundingRequirementTypeEnum.\nOld pattern: `requirement_type: ELIGIBILITY_GEOGRAPHIC` (enum value)\nNew pattern: `has_type: RequirementType` (object reference)\nArchived enum: `schemas/20251121/linkml/archive/enums/FundingRequirementTypeEnum.yaml`\n" exact_mappings: - skos:Concept close_mappings: @@ -33,23 +33,23 @@ classes: - schema:eligibleRegion - org:Organization slots: - - has_or_had_identifier - - has_or_had_code - - has_or_had_label - - has_or_had_description - - has_or_had_hypernym - - has_or_had_hyponym - - is_or_was_related_to - - is_or_was_equivalent_to + - identified_by + - has_code + - has_label + - has_description + - has_hypernym + - has_hyponym + - related_to + - equivalent_to slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true pattern: ^https://nde\.nl/ontology/hc/requirement-type/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/requirement-type/eligibility-geographic - has_or_had_code: + has_code: # range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ @@ -57,7 +57,7 @@ classes: - value: ELIGIBILITY_GEOGRAPHIC - value: FINANCIAL_COFUNDING - value: PARTNERSHIP_MINIMUM_PARTNERS - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -68,17 +68,17 @@ classes: - value: - Co-funding requirement@en - Cofinancieringseis@nl - has_or_had_description: + has_description: # range: string examples: - value: Geographic eligibility constraint on applicant location (e.g., EU Member States only). - has_or_had_hypernym: + has_hypernym: range: RequirementType - has_or_had_hyponym: + has_hyponym: range: RequirementType multivalued: true inlined_as_list: true - is_or_was_equivalent_to: + equivalent_to: range: WikiDataIdentifier multivalued: true inlined: true @@ -86,7 +86,7 @@ classes: annotations: specificity_score: '0.65' specificity_rationale: Requirement types specific to funding call contexts but applicable across heritage sectors. - has_or_had_score: null + has_score: null enum_migration: "2026-01-13: Promoted FundingRequirementTypeEnum to RequirementType class hierarchy\n- Original enum archived to archive/enums/FundingRequirementTypeEnum.yaml\n- 27 enum values \u2192 27 concrete subclasses in RequirementTypes.yaml\n" custodian_types: "['*']" comments: @@ -99,15 +99,15 @@ classes: - https://www.heritagefund.org.uk/funding examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/requirement-type/eligibility-geographic - has_or_had_code: ELIGIBILITY_GEOGRAPHIC - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/requirement-type/eligibility-geographic + has_code: ELIGIBILITY_GEOGRAPHIC + has_label: - Geographic eligibility@en - Geografische geschiktheid@nl - has_or_had_description: 'Geographic eligibility constraint on applicant location. + has_description: 'Geographic eligibility constraint on applicant location. Examples: "EU Member States only", "UK-based organisations" ' - has_or_had_hypernym: - has_or_had_code: ELIGIBILITY \ No newline at end of file + has_hypernym: + has_code: ELIGIBILITY \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Research.yaml b/schemas/20251121/linkml/modules/classes/Research.yaml index c5d21d733c..a2e8b1c8f9 100644 --- a/schemas/20251121/linkml/modules/classes/Research.yaml +++ b/schemas/20251121/linkml/modules/classes/Research.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: Research: class_uri: prov:Activity @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_description + - has_description diff --git a/schemas/20251121/linkml/modules/classes/ResearchCenter.yaml b/schemas/20251121/linkml/modules/classes/ResearchCenter.yaml index d835a21559..69f77fc121 100644 --- a/schemas/20251121/linkml/modules/classes/ResearchCenter.yaml +++ b/schemas/20251121/linkml/modules/classes/ResearchCenter.yaml @@ -4,16 +4,16 @@ title: ResearchCenter Class imports: - linkml:types - ../enums/ResearchCenterTypeEnum - - ../slots/accepts_or_accepted - - ../slots/has_or_had_description - - ../slots/has_or_had_facility - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by + - ../slots/accept + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_facility + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by - ../slots/major_research_project - ../slots/publishes_or_published - ../slots/research_center_type @@ -46,28 +46,28 @@ classes: - hc:ConservationLab - hc:EducationCenter slots: - - accepts_or_accepted - - has_or_had_type + - accept + - has_type - publishes_or_published - - has_or_had_facility + - has_facility - major_research_project - - has_or_had_description - - has_or_had_identifier - - has_or_had_label + - has_description + - identified_by + - has_label - research_center_type - research_focus_area - - has_or_had_quantity - - has_or_had_score - - is_or_was_derived_from - - is_or_was_generated_by + - has_quantity + - has_score + - derived_from + - generated_by slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/rijksmuseum-research - has_or_had_label: + has_label: # range: string required: true inlined: false # Fixed invalid inline for primitive type @@ -78,7 +78,7 @@ classes: label_text: KB Digital Humanities Lab - value: label_text: NIOD Institute for War, Holocaust and Genocide Studies - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type examples: @@ -104,11 +104,11 @@ classes: examples: - value: true - value: Rijksmuseum Bulletin - has_or_had_facility: + has_facility: range: boolean examples: - value: true - accepts_or_accepted: + accept: range: VisitingScholar inlined: true multivalued: true @@ -120,17 +120,17 @@ classes: examples: - value: Rembrandt Database - value: Operation Night Watch - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false - has_or_had_type: + has_type: equals_expression: '["hc:ResearchOrganizationType"]' comments: - ResearchCenter models academic research facilities of heritage custodians @@ -144,10 +144,10 @@ classes: - https://www.wikidata.org/wiki/Q1542449 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/rijksmuseum-research - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/rijksmuseum-research + has_label: label_text: Rijksmuseum Research Department - has_or_had_description: + has_description: description_text: Scholarly research on Dutch art and history, with focus on Golden Age. Publishes Rijksmuseum Bulletin and monograph series. research_center_type: RESEARCH_DEPARTMENT research_focus_area: @@ -156,20 +156,20 @@ classes: - Provenance research - Decorative arts publishes_or_published: true - has_or_had_facility: true - accepts_or_accepted: + has_facility: true + accept: - program_type: fellowship major_research_project: - Rembrandt Database - Operation Night Watch - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/kb-dh-lab - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/kb-dh-lab + has_label: label_text: KB Lab - Digital Humanities - has_or_had_description: + has_description: description_text: Digital humanities research facility focusing on computational approaches to library collections. research_center_type: DIGITAL_HUMANITIES_CENTER research_focus_area: @@ -177,9 +177,9 @@ classes: - Linked open data - Machine learning for OCR - Digital preservation - accepts_or_accepted: + accept: - program_type: short_term_visit - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type annotations: diff --git a/schemas/20251121/linkml/modules/classes/ResearchLibrary.yaml b/schemas/20251121/linkml/modules/classes/ResearchLibrary.yaml index 95489fd639..45e551c2c8 100644 --- a/schemas/20251121/linkml/modules/classes/ResearchLibrary.yaml +++ b/schemas/20251121/linkml/modules/classes/ResearchLibrary.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: ResearchLibrary: class_uri: schema:Library @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_name + - has_name diff --git a/schemas/20251121/linkml/modules/classes/ResearchOrganizationType.yaml b/schemas/20251121/linkml/modules/classes/ResearchOrganizationType.yaml index 0281070ecc..376da7a400 100644 --- a/schemas/20251121/linkml/modules/classes/ResearchOrganizationType.yaml +++ b/schemas/20251121/linkml/modules/classes/ResearchOrganizationType.yaml @@ -18,10 +18,10 @@ imports: - linkml:types - ../enums/ResearchCenterTypeEnum - ../slots/data_repository - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_hypernym + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/research_center_subtype - ../slots/research_focus - ../slots/research_infrastructure @@ -163,21 +163,21 @@ classes: \ glamtype:research_infrastructure [\"X-ray fluorescence\", \"microscopy lab\", \"climate chamber\"] .\n```\n\n**Domain-Specific Properties**:\nThis class adds research-specific metadata beyond base CustodianType:\n- `research_focus` - Primary research domains (conservation, archaeology, etc.)\n- `publication_output` - Whether organization publishes research findings\n- `data_repository` - URL to research data repository (if available)\n- `research_infrastructure` - Major equipment or facilities\n- `academic_affiliation` - Link to parent university or research network\n- `research_projects` - Active or completed research initiatives\n\n**Integration with VIVO Ontology**:\nVIVO (Vitae Research Ontology) models academic research organizations:\n- vivo:ResearchOrganization - Research entity\n- vivo:Laboratory - Lab facilities\n- vivo:ResearchProject - Research initiatives\n- vivo:Grant - Research funding\n\n**Integration with CERIF**:\nCommon European Research Information Format for\ \ research data:\n- cfResOrg - Research organization entity\n- cfProj - Research projects\n- cfFacil - Research facilities\n- cfEquip - Research equipment\n\n**Data Population**:\nResearch organization subtypes extracted from 44 Wikidata entities with type='R'\nin `data/wikidata/GLAMORCUBEPSXHFN/hyponyms_curated_full.yaml`.\n" slots: - - has_or_had_type + - has_type - data_repository - research_center_subtype - research_focus - research_infrastructure - research_project - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by slot_usage: - has_or_had_identifier: + identified_by: pattern: ^Q[0-9]+$ required: true - has_or_had_hypernym: + has_hypernym: range: ResearchOrganizationType - has_or_had_type: + has_type: equals_expression: '["hc:ResearchOrganizationType"]' exact_mappings: - skos:Concept @@ -196,13 +196,13 @@ classes: - 'Herbaria: scientific collections of dried plants for botanical research' examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/research/Q117052196 - has_or_had_type_code: RESEARCH_CENTER - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/research/Q117052196 + has_type_code: RESEARCH_CENTER + has_label: - Conservation Laboratory@en - restauratieatelier@nl - has_or_had_description: facility in which items of tangible cultural heritage are repaired and researched - has_or_had_hypernym: https://nde.nl/ontology/hc/type/research/Q31855 + has_description: facility in which items of tangible cultural heritage are repaired and researched + has_hypernym: https://nde.nl/ontology/hc/type/research/Q31855 research_focus: - conservation science - materials analysis @@ -214,13 +214,13 @@ classes: - microscopy laboratory - climate-controlled storage - value: - has_or_had_identifier: https://nde.nl/ontology/hc/type/research/Q181916 - has_or_had_type_code: RESEARCH_CENTER - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/type/research/Q181916 + has_type_code: RESEARCH_CENTER + has_label: - Herbarium@en - herbarium@nl - has_or_had_description: scientific collection of preserved plant specimens for research - has_or_had_hypernym: https://nde.nl/ontology/hc/type/research/Q31855 + has_description: scientific collection of preserved plant specimens for research + has_hypernym: https://nde.nl/ontology/hc/type/research/Q31855 research_focus: - botanical taxonomy - plant systematics diff --git a/schemas/20251121/linkml/modules/classes/Resolution.yaml b/schemas/20251121/linkml/modules/classes/Resolution.yaml index 1eaad899fa..344edca8d1 100644 --- a/schemas/20251121/linkml/modules/classes/Resolution.yaml +++ b/schemas/20251121/linkml/modules/classes/Resolution.yaml @@ -9,12 +9,12 @@ description: 'Represents resolution or quality specifications for media content. ' imports: - linkml:types - - ../slots/has_or_had_height - - ../slots/has_or_had_label - - ../slots/has_or_had_quantity - - ../slots/has_or_had_type - - ../slots/has_or_had_unit - - ../slots/has_or_had_width + - ../slots/20260202_matang/has_height + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_unit + - ../slots/20260202_matang/has_width prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -29,36 +29,36 @@ classes: close_mappings: - schema:videoQuality slots: - - has_or_had_type - - has_or_had_label - - has_or_had_width - - has_or_had_height - - has_or_had_quantity - - has_or_had_unit + - has_type + - has_label + - has_width + - has_height + - has_quantity + - has_unit slot_usage: - has_or_had_type: + has_type: examples: - value: image - has_or_had_label: + has_label: examples: - value: hd - value: sd - value: 4k - value: 8k - has_or_had_width: + has_width: range: integer examples: - value: 1920 - has_or_had_height: + has_height: range: integer examples: - value: 1080 - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type multivalued: true required: false - has_or_had_unit: + has_unit: # range: string inlined: false # Fixed invalid inline for primitive type required: false diff --git a/schemas/20251121/linkml/modules/classes/ResourceType.yaml b/schemas/20251121/linkml/modules/classes/ResourceType.yaml index 6dfb658436..7059d1decd 100644 --- a/schemas/20251121/linkml/modules/classes/ResourceType.yaml +++ b/schemas/20251121/linkml/modules/classes/ResourceType.yaml @@ -6,13 +6,13 @@ prefixes: dct: http://purl.org/dc/terms/ imports: - linkml:types - - ../slots/has_or_had_code + - ../slots/20260202_matang/has_code classes: ResourceType: class_uri: dct:DCMIType description: DCMI resource type slots: - - has_or_had_code + - has_code annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ResponseFormat.yaml b/schemas/20251121/linkml/modules/classes/ResponseFormat.yaml index 1bca48852b..4ce5dca760 100644 --- a/schemas/20251121/linkml/modules/classes/ResponseFormat.yaml +++ b/schemas/20251121/linkml/modules/classes/ResponseFormat.yaml @@ -6,14 +6,14 @@ prefixes: dct: http://purl.org/dc/terms/ imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type classes: ResponseFormat: class_uri: dct:MediaType slots: - - has_or_had_type + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ResponseFormatType.yaml b/schemas/20251121/linkml/modules/classes/ResponseFormatType.yaml index a0ceb689c9..8cbb33cfea 100644 --- a/schemas/20251121/linkml/modules/classes/ResponseFormatType.yaml +++ b/schemas/20251121/linkml/modules/classes/ResponseFormatType.yaml @@ -6,17 +6,17 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: ResponseFormatType: class_uri: skos:Concept abstract: true slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Responsibility.yaml b/schemas/20251121/linkml/modules/classes/Responsibility.yaml index 3de7e1b032..5a8166117f 100644 --- a/schemas/20251121/linkml/modules/classes/Responsibility.yaml +++ b/schemas/20251121/linkml/modules/classes/Responsibility.yaml @@ -6,7 +6,7 @@ prefixes: org: http://www.w3.org/ns/org# imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type classes: Responsibility: class_uri: org:Role @@ -26,9 +26,9 @@ classes: ' slots: - - has_or_had_type + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ResponsibilityType.yaml b/schemas/20251121/linkml/modules/classes/ResponsibilityType.yaml index 031f5bddff..69c1730d30 100644 --- a/schemas/20251121/linkml/modules/classes/ResponsibilityType.yaml +++ b/schemas/20251121/linkml/modules/classes/ResponsibilityType.yaml @@ -6,18 +6,18 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: ResponsibilityType: description: Abstract base class for responsibility type taxonomy. Defines the classification of duties and roles that can be assigned within a heritage organization, such as curatorial, administrative, conservation, or public engagement responsibilities. class_uri: skos:Concept abstract: true slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/RetrievalAgent.yaml b/schemas/20251121/linkml/modules/classes/RetrievalAgent.yaml index 991c3f6423..3e24c28b60 100644 --- a/schemas/20251121/linkml/modules/classes/RetrievalAgent.yaml +++ b/schemas/20251121/linkml/modules/classes/RetrievalAgent.yaml @@ -10,22 +10,22 @@ prefixes: prov: http://www.w3.org/ns/prov# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score default_prefix: hc classes: RetrievalAgent: class_uri: prov:SoftwareAgent description: Software or agent that performed data retrieval/extraction. slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_score + - identified_by + - has_label + - has_description + - has_score slot_usage: - has_or_had_label: + has_label: # range: string annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/RetrievalEvent.yaml b/schemas/20251121/linkml/modules/classes/RetrievalEvent.yaml index 4b30722489..cb71961a2d 100644 --- a/schemas/20251121/linkml/modules/classes/RetrievalEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/RetrievalEvent.yaml @@ -10,10 +10,10 @@ prefixes: prov: http://www.w3.org/ns/prov# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score - ../slots/temporal_extent default_prefix: hc classes: @@ -21,11 +21,11 @@ classes: class_uri: prov:Activity description: Event representing the retrieval of data. slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description - temporal_extent - - has_or_had_score + - has_score slot_usage: temporal_extent: range: TimeSpan diff --git a/schemas/20251121/linkml/modules/classes/RetrievalMethod.yaml b/schemas/20251121/linkml/modules/classes/RetrievalMethod.yaml index 546b48b06d..1447332022 100644 --- a/schemas/20251121/linkml/modules/classes/RetrievalMethod.yaml +++ b/schemas/20251121/linkml/modules/classes/RetrievalMethod.yaml @@ -17,22 +17,22 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score default_prefix: hc classes: RetrievalMethod: class_uri: prov:Plan description: Method or plan used for data retrieval. slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_score + - identified_by + - has_label + - has_description + - has_score slot_usage: - has_or_had_label: + has_label: # range: string annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ReturnEvent.yaml b/schemas/20251121/linkml/modules/classes/ReturnEvent.yaml index 8571f92b42..36eb4ddf29 100644 --- a/schemas/20251121/linkml/modules/classes/ReturnEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/ReturnEvent.yaml @@ -11,8 +11,8 @@ imports: - ./Condition - ./Item - linkml:types - - ../slots/has_or_had_condition - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_condition + - ../slots/20260202_matang/has_description - ../slots/item_returned default_prefix: hc classes: @@ -25,10 +25,10 @@ classes: \ (was condition_on_return)\n- Any damage or issues discovered\n- Documentation\ \ and reports\n- Receiving officer/agent\n\n**RELATIONSHIP TO LOAN**:\n```\n\ Loan\n ├── loaned_items → Item[]\n ├── loan_date → date (outgoing)\n └──\ - \ is_or_was_returned → ReturnEvent[]\n ├── return_date → date (incoming)\n\ - \ ├── item_returned → Item[]\n └── has_or_had_condition → Condition[]\n\ - ```\n\n**Migration (2026-01-22)**:\n- `condition_on_return` → `is_or_was_returned`\ - \ + `ReturnEvent` + `has_or_had_condition` + `Condition`\n- Per slot_fixes.yaml\ + \ returned → ReturnEvent[]\n ├── return_date → date (incoming)\n\ + \ ├── item_returned → Item[]\n └── has_condition → Condition[]\n\ + ```\n\n**Migration (2026-01-22)**:\n- `condition_on_return` → `returned`\ + \ + `ReturnEvent` + `has_condition` + `Condition`\n- Per slot_fixes.yaml\ \ (Rule 53)\n" exact_mappings: - crm:E10_Transfer_of_Custody @@ -37,8 +37,8 @@ classes: - schema:Action slots: - item_returned - - has_or_had_condition - - has_or_had_description + - has_condition + - has_description slot_usage: item_returned: range: Item @@ -46,19 +46,19 @@ classes: inlined: false examples: - value: hc:object/mauritshuis-670 - has_or_had_condition: + has_condition: range: Condition multivalued: true inlined: true inlined_as_list: true examples: - value: - has_or_had_type: GoodCondition - has_or_had_description: + has_type: GoodCondition + has_description: description_text: Returned in same condition as loaned (UNCHANGED) - value: - has_or_had_type: FairCondition - has_or_had_description: + has_type: FairCondition + has_description: description_text: Minor surface scratches noted (MINOR_DAMAGE) annotations: custodian_types: '["M", "A", "L", "G", "R"]' @@ -69,16 +69,16 @@ classes: - value: item_returned: - hc:object/mauritshuis-670 - has_or_had_condition: - - has_or_had_type: GoodCondition - has_or_had_description: + has_condition: + - has_type: GoodCondition + has_description: description_text: Returned in excellent condition, no changes from pre-loan assessment - value: item_returned: - hc:object/rijksmuseum-sk-c-5 - has_or_had_condition: - - has_or_had_type: FairCondition - has_or_had_description: + has_condition: + - has_type: FairCondition + has_description: description_text: Minor scratches on frame corner, likely from handling return_report_url: https://example.org/returns/2024-03-20-report.pdf diff --git a/schemas/20251121/linkml/modules/classes/Roadmap.yaml b/schemas/20251121/linkml/modules/classes/Roadmap.yaml index 37735f8b1c..8da3628b67 100644 --- a/schemas/20251121/linkml/modules/classes/Roadmap.yaml +++ b/schemas/20251121/linkml/modules/classes/Roadmap.yaml @@ -17,24 +17,24 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/contains_or_contained - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/contain + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score default_prefix: hc classes: Roadmap: class_uri: skos:Concept description: A plan outlining future goals or steps. slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - contains_or_contained - - has_or_had_score + - identified_by + - has_label + - has_description + - contain + - has_score slot_usage: - contains_or_contained: + contain: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type diff --git a/schemas/20251121/linkml/modules/classes/RoomUnit.yaml b/schemas/20251121/linkml/modules/classes/RoomUnit.yaml index 3e951f182e..2653116bfc 100644 --- a/schemas/20251121/linkml/modules/classes/RoomUnit.yaml +++ b/schemas/20251121/linkml/modules/classes/RoomUnit.yaml @@ -16,14 +16,14 @@ classes: class_uri: hc:RoomUnit description: "A unit of measurement for counting rooms or spaces in a facility.\n\ \n**RULE 53 MIGRATION**:\nReplaces simple integer count slots with typed unit\ - \ specification:\n- `classroom_count: 4` → `has_or_had_quantity: 4` + `has_or_had_unit:\ + \ specification:\n- `classroom_count: 4` → `has_quantity: 4` + `has_unit:\ \ {unit_type: CLASSROOM}`\n\n**ROOM TYPES**:\n- CLASSROOM - Teaching/learning\ \ spaces\n- WORKSHOP_SPACE - Hands-on activity areas\n- SEMINAR_ROOM - Discussion/presentation\ \ spaces\n- LABORATORY - Scientific/conservation labs\n- STUDIO - Creative/production\ \ spaces\n- READING_ROOM - Research/study areas\n- STORAGE_ROOM - Collection\ \ storage spaces\n- OFFICE - Administrative spaces\n\n**USAGE PATTERN**:\n```yaml\n\ - has_or_had_facility:\n - facility_name: \"Education Wing\"\n has_or_had_quantity:\n\ - \ numeric_value: 4\n has_or_had_unit:\n unit_type: CLASSROOM\n\ + has_facility:\n - facility_name: \"Education Wing\"\n has_quantity:\n\ + \ numeric_value: 4\n has_unit:\n unit_type: CLASSROOM\n\ ```\n" exact_mappings: - qudt:Unit diff --git a/schemas/20251121/linkml/modules/classes/SceneSegment.yaml b/schemas/20251121/linkml/modules/classes/SceneSegment.yaml index 035741b870..670ad090f4 100644 --- a/schemas/20251121/linkml/modules/classes/SceneSegment.yaml +++ b/schemas/20251121/linkml/modules/classes/SceneSegment.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_time_interval + - ../slots/20260202_matang/has_time_interval classes: SceneSegment: class_uri: schema:VideoObject @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_time_interval + - has_time_interval diff --git a/schemas/20251121/linkml/modules/classes/Schema.yaml b/schemas/20251121/linkml/modules/classes/Schema.yaml index 3cd089aa33..43d50126d1 100644 --- a/schemas/20251121/linkml/modules/classes/Schema.yaml +++ b/schemas/20251121/linkml/modules/classes/Schema.yaml @@ -9,15 +9,15 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: Schema: class_uri: dcterms:Standard slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/SchoolArchive.yaml b/schemas/20251121/linkml/modules/classes/SchoolArchive.yaml index 3ef335032b..8587fe8c42 100644 --- a/schemas/20251121/linkml/modules/classes/SchoolArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/SchoolArchive.yaml @@ -10,10 +10,10 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: SchoolArchive: @@ -21,10 +21,10 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q27030883 close_mappings: @@ -33,8 +33,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: School Archive diff --git a/schemas/20251121/linkml/modules/classes/SchoolArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/SchoolArchiveRecordSetType.yaml index d0d7029a3f..aba9c1e55d 100644 --- a/schemas/20251121/linkml/modules/classes/SchoolArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/SchoolArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: SchoolArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by SchoolArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - SchoolArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/SchoolArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/SchoolArchiveRecordSetTypes.yaml index 9e5871aa1e..9c6b64025d 100644 --- a/schemas/20251121/linkml/modules/classes/SchoolArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/SchoolArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./SchoolArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - SchoolArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: SchoolAdministrationFonds @@ -78,15 +78,15 @@ classes: - SchoolArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: SchoolStudentRecordSeries @@ -115,15 +115,15 @@ classes: - SchoolArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CurriculumDocumentCollection diff --git a/schemas/20251121/linkml/modules/classes/ScientificArchive.yaml b/schemas/20251121/linkml/modules/classes/ScientificArchive.yaml index 1544da6600..7cae17b746 100644 --- a/schemas/20251121/linkml/modules/classes/ScientificArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/ScientificArchive.yaml @@ -10,10 +10,10 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: ScientificArchive: @@ -21,10 +21,10 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q27032095 close_mappings: @@ -33,8 +33,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Scientific Archive diff --git a/schemas/20251121/linkml/modules/classes/ScientificArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ScientificArchiveRecordSetType.yaml index 7d8d0bd729..0daca53ea9 100644 --- a/schemas/20251121/linkml/modules/classes/ScientificArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ScientificArchiveRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: ScientificArchiveRecordSetType: description: 'A rico:RecordSetType for classifying collections held by ScientificArchive custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - ScientificArchive - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ScientificArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/ScientificArchiveRecordSetTypes.yaml index cadc633a10..818f73afb2 100644 --- a/schemas/20251121/linkml/modules/classes/ScientificArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ScientificArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./ScientificArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - ScientificArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ResearchProjectFonds @@ -78,15 +78,15 @@ classes: - ScientificArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ScientistPapersCollection @@ -115,15 +115,15 @@ classes: - ScientificArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: LaboratoryRecordSeries diff --git a/schemas/20251121/linkml/modules/classes/Scope.yaml b/schemas/20251121/linkml/modules/classes/Scope.yaml index 090db9c660..dd8602d188 100644 --- a/schemas/20251121/linkml/modules/classes/Scope.yaml +++ b/schemas/20251121/linkml/modules/classes/Scope.yaml @@ -8,7 +8,7 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type # default_range: string classes: Scope: @@ -24,7 +24,7 @@ classes: close_mappings: - schema:Thing slots: - - has_or_had_type + - has_type - scope_description annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/classes/ScopeType.yaml b/schemas/20251121/linkml/modules/classes/ScopeType.yaml index a44f0c94e3..9ef002b0ad 100644 --- a/schemas/20251121/linkml/modules/classes/ScopeType.yaml +++ b/schemas/20251121/linkml/modules/classes/ScopeType.yaml @@ -10,10 +10,10 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score classes: ScopeType: class_uri: skos:Concept @@ -26,12 +26,12 @@ classes: - dct:Coverage - schema:DefinedTerm slots: - - has_or_had_score - - has_or_had_description - - has_or_had_label - - has_or_had_identifier + - has_score + - has_description + - has_label + - identified_by slot_usage: - has_or_had_identifier: + identified_by: description: 'Identifier(s) for this scope type. Can include: - Type URI (e.g., https://nde.nl/ontology/hc/scope-type/temporal) @@ -46,7 +46,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/scope-type/temporal - value: Q186408 - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -55,7 +55,7 @@ classes: - Temporal@en - temporeel@nl - zeitlich@de - has_or_had_description: + has_description: # range: string required: false examples: @@ -63,12 +63,12 @@ classes: annotations: specificity_score: '0.35' specificity_rationale: Moderately low specificity - scope types are generic classification concepts. - has_or_had_score: null + has_score: null custodian_types: "['*']" comments: - Abstract base class - use specific subclasses (TemporalScope, SpatialScope, etc.) - Represents SCOPE TYPES, not scope instances - - Scope.has_or_had_type references these type classes + - Scope.has_type references these type classes - Follows Type/Types naming convention (Rule 0b) - 'Organized by dimension: temporal, spatial, subject, material' see_also: @@ -76,9 +76,9 @@ classes: - https://www.w3.org/2004/02/skos/ examples: - value: - has_or_had_identifier: + identified_by: - https://nde.nl/ontology/hc/scope-type/temporal - has_or_had_label: + has_label: - Temporal@en - temporeel@nl - has_or_had_description: Time-based scope dimension \ No newline at end of file + has_description: Time-based scope dimension \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/ScopeTypes.yaml b/schemas/20251121/linkml/modules/classes/ScopeTypes.yaml index d0311a1bc4..70fe8b413d 100644 --- a/schemas/20251121/linkml/modules/classes/ScopeTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ScopeTypes.yaml @@ -75,8 +75,8 @@ classes: specificity_rationale: Moderately specific - subject classification is domain-dependent. examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/scope-type/subject - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/scope-type/subject + has_label: - Subject@en - onderwerp@nl description: Subject scope type instance @@ -107,8 +107,8 @@ classes: specificity_rationale: More specific - material types are heritage-domain focused. examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/scope-type/material - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/scope-type/material + has_label: - Material@en - materiaal@nl description: Material scope type instance @@ -136,8 +136,8 @@ classes: specificity_rationale: Moderately specific - linguistic scoping is common. examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/scope-type/linguistic - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/scope-type/linguistic + has_label: - Linguistic@en - taalkundig@nl description: Linguistic scope type instance @@ -167,8 +167,8 @@ classes: heritage-relevant. examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/scope-type/institutional - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/scope-type/institutional + has_label: - Institutional@en - institutioneel@nl description: Institutional scope type instance @@ -197,8 +197,8 @@ classes: focused. examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/scope-type/collection - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/scope-type/collection + has_label: - Collection@en - collectie@nl description: Collection scope type instance @@ -226,8 +226,8 @@ classes: specificity_rationale: More specific - format scoping is technical/domain focused. examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/scope-type/format - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/scope-type/format + has_label: - Format@en - formaat@nl description: Format scope type instance diff --git a/schemas/20251121/linkml/modules/classes/SearchAPI.yaml b/schemas/20251121/linkml/modules/classes/SearchAPI.yaml index c25255e81a..59c8fc1d86 100644 --- a/schemas/20251121/linkml/modules/classes/SearchAPI.yaml +++ b/schemas/20251121/linkml/modules/classes/SearchAPI.yaml @@ -15,7 +15,7 @@ imports: - ../enums/PaginationMethodEnum - ../enums/SearchResponseFormatEnum - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/response_format classes: SearchAPI: @@ -51,8 +51,8 @@ classes: - https://opensearch.org/ - https://www.hydra-cg.com/spec/latest/core/ slots: - - has_or_had_score - - has_or_had_url + - has_score + - has_url - response_format annotations: specificity_score: 0.1 @@ -69,5 +69,5 @@ classes: ' slots: - - has_or_had_score + - has_score - name diff --git a/schemas/20251121/linkml/modules/classes/SearchScore.yaml b/schemas/20251121/linkml/modules/classes/SearchScore.yaml index e1ee678fac..3c562e8e10 100644 --- a/schemas/20251121/linkml/modules/classes/SearchScore.yaml +++ b/schemas/20251121/linkml/modules/classes/SearchScore.yaml @@ -10,7 +10,7 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: SearchScore: class_uri: schema:Rating @@ -18,7 +18,7 @@ classes: - dqv:QualityMeasurement description: A search relevance score. slots: - - has_or_had_value + - has_value annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/SectionLink.yaml b/schemas/20251121/linkml/modules/classes/SectionLink.yaml index 2ebcda30b3..2cc27d5c59 100644 --- a/schemas/20251121/linkml/modules/classes/SectionLink.yaml +++ b/schemas/20251121/linkml/modules/classes/SectionLink.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_url classes: SectionLink: class_uri: schema:WebPageElement @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_url + - has_url diff --git a/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSweden.yaml b/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSweden.yaml index 0522b1c80b..4f63919ae3 100644 --- a/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSweden.yaml +++ b/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSweden.yaml @@ -10,10 +10,10 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: SectorOfArchivesInSweden: @@ -21,10 +21,10 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q84171278 close_mappings: @@ -42,8 +42,8 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:OfficialInstitutionType"]' see_also: - RegionalStateArchives diff --git a/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSwedenRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSwedenRecordSetType.yaml index 3754dd4c56..320bda6c49 100644 --- a/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSwedenRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSwedenRecordSetType.yaml @@ -16,9 +16,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: SectorOfArchivesInSwedenRecordSetType: description: 'A rico:RecordSetType for classifying collections held by SectorOfArchivesInSweden custodians. @@ -27,14 +27,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - SectorOfArchivesInSweden - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSwedenRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSwedenRecordSetTypes.yaml index e372fb7502..5fc7e09077 100644 --- a/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSwedenRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/SectorOfArchivesInSwedenRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./SectorOfArchivesInSwedenRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - SectorOfArchivesInSwedenRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: SwedishSectorFonds diff --git a/schemas/20251121/linkml/modules/classes/SecurityArchives.yaml b/schemas/20251121/linkml/modules/classes/SecurityArchives.yaml index f5bd4b66cf..e277fd0800 100644 --- a/schemas/20251121/linkml/modules/classes/SecurityArchives.yaml +++ b/schemas/20251121/linkml/modules/classes/SecurityArchives.yaml @@ -10,10 +10,10 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type classes: SecurityArchives: @@ -21,10 +21,10 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - has_or_had_identifier + - has_score + - identified_by exact_mappings: - wd:Q101475797 close_mappings: @@ -33,8 +33,8 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: skos:prefLabel: Security Archives diff --git a/schemas/20251121/linkml/modules/classes/SecurityArchivesRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/SecurityArchivesRecordSetType.yaml index 333b9b6b2d..7af21e6bc1 100644 --- a/schemas/20251121/linkml/modules/classes/SecurityArchivesRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/SecurityArchivesRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: SecurityArchivesRecordSetType: description: 'A rico:RecordSetType for classifying collections held by SecurityArchives custodians. @@ -19,14 +19,14 @@ classes: is_a: CollectionType class_uri: rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score - - has_or_had_scope + - has_type + - has_score + - has_scope see_also: - SecurityArchives - rico:RecordSetType slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/SecurityArchivesRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/SecurityArchivesRecordSetTypes.yaml index 0eb0831efd..234cb3118f 100644 --- a/schemas/20251121/linkml/modules/classes/SecurityArchivesRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/SecurityArchivesRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./SecurityArchivesRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - SecurityArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: SecurityServiceFonds @@ -78,15 +78,15 @@ classes: - SecurityArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: SurveillanceRecordSeries diff --git a/schemas/20251121/linkml/modules/classes/SecurityLevel.yaml b/schemas/20251121/linkml/modules/classes/SecurityLevel.yaml index a6e5d405fe..2afe833725 100644 --- a/schemas/20251121/linkml/modules/classes/SecurityLevel.yaml +++ b/schemas/20251121/linkml/modules/classes/SecurityLevel.yaml @@ -9,7 +9,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code + - ../slots/20260202_matang/has_code classes: SecurityLevel: class_uri: skos:Concept @@ -28,7 +28,7 @@ classes: ' slots: - - has_or_had_code + - has_code exact_mappings: - skos:Concept annotations: @@ -37,7 +37,7 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_code: HIGH + has_code: HIGH level_name: High Security level_rank: 3 description: High security level diff --git a/schemas/20251121/linkml/modules/classes/SecuritySystem.yaml b/schemas/20251121/linkml/modules/classes/SecuritySystem.yaml index 06228037b6..ee9d5c158c 100644 --- a/schemas/20251121/linkml/modules/classes/SecuritySystem.yaml +++ b/schemas/20251121/linkml/modules/classes/SecuritySystem.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: SecuritySystem: class_uri: schema:Product @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_name + - has_name diff --git a/schemas/20251121/linkml/modules/classes/Segment.yaml b/schemas/20251121/linkml/modules/classes/Segment.yaml index 8c7ec0d22a..8454df0077 100644 --- a/schemas/20251121/linkml/modules/classes/Segment.yaml +++ b/schemas/20251121/linkml/modules/classes/Segment.yaml @@ -8,8 +8,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: Segment: class_uri: oa:SpecificResource @@ -22,8 +22,8 @@ classes: ' slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/SensitivityLevel.yaml b/schemas/20251121/linkml/modules/classes/SensitivityLevel.yaml index e834ae193b..ebd0b43aca 100644 --- a/schemas/20251121/linkml/modules/classes/SensitivityLevel.yaml +++ b/schemas/20251121/linkml/modules/classes/SensitivityLevel.yaml @@ -8,15 +8,15 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: SensitivityLevel: class_uri: skos:Concept slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Service.yaml b/schemas/20251121/linkml/modules/classes/Service.yaml index 9858f1bb13..6c55ad5266 100644 --- a/schemas/20251121/linkml/modules/classes/Service.yaml +++ b/schemas/20251121/linkml/modules/classes/Service.yaml @@ -8,7 +8,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type - ../slots/price classes: Service: @@ -17,10 +17,10 @@ classes: services (guided tours, audio guides) - Research services (reference, reproductions) - Conservation services ' slots: - - has_or_had_type + - has_type - price slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie exact_mappings: - schema:Service diff --git a/schemas/20251121/linkml/modules/classes/ServiceArea.yaml b/schemas/20251121/linkml/modules/classes/ServiceArea.yaml index 5cfe22e002..14ebecf4e2 100644 --- a/schemas/20251121/linkml/modules/classes/ServiceArea.yaml +++ b/schemas/20251121/linkml/modules/classes/ServiceArea.yaml @@ -13,12 +13,12 @@ imports: - linkml:types - ../enums/ServiceAreaTypeEnum - ../metadata - - ../slots/contains_or_contained_covers_settlement + - ../slots/contain_covers_settlement - ../slots/cover_or_covered_subregion - ../slots/covers_country - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score - ../slots/is_historical_boundary - ../slots/served_by - ../slots/service_area_description @@ -47,10 +47,10 @@ classes: - rico:Place slots: - covers_country - - contains_or_contained_covers_settlement + - contain_covers_settlement - cover_or_covered_subregion - - has_or_had_identifier - - has_or_had_label + - identified_by + - has_label - is_historical_boundary - served_by - service_area_description @@ -58,13 +58,13 @@ classes: - service_area_name - service_area_type - source_dataset - - has_or_had_score + - has_score - temporal_extent slot_usage: - has_or_had_identifier: + identified_by: range: HALCAdm1Code inlined: true - has_or_had_label: + has_label: range: HALCAdm2Name inlined: true service_area_id: @@ -106,17 +106,17 @@ classes: cover_or_covered_subregion: - iso_3166_2_code: NL-NH name: Noord-Holland - contains_or_contained_covers_settlement: + contain_covers_settlement: - geonames_id: 2755003 name: Haarlem - geonames_id: 2754669 name: Heemskerk - geospatial_id: https://nde.nl/ontology/hc/geo/nha-boundary - has_or_had_geometry: - - has_or_had_format: - has_or_had_value: MULTIPOLYGON(((4.5 52.2, 5.0 52.2, 5.0 52.5, 4.5 52.5, 4.5 52.2))) - has_or_had_type: - has_or_had_label: MULTIPOLYGON + has_geometry: + - has_format: + has_value: MULTIPOLYGON(((4.5 52.2, 5.0 52.2, 5.0 52.5, 4.5 52.5, 4.5 52.2))) + has_type: + has_label: MULTIPOLYGON temporal_extent: begin_of_the_begin: '2001-01-01' is_historical_boundary: false @@ -132,10 +132,10 @@ classes: temporal_extent: begin_of_the_begin: '1500-01-01' end_of_the_end: '1795-01-01' - has_or_had_identifier: - has_or_had_identifier: VI - has_or_had_label: - has_or_had_label: Vianen + identified_by: + identified_by: VI + has_label: + has_label: Vianen served_by: https://nde.nl/ontology/hc/legal/gemeentearchief-vianen source_dataset: HALC Historical Boundaries 1500 annotations: diff --git a/schemas/20251121/linkml/modules/classes/ServiceType.yaml b/schemas/20251121/linkml/modules/classes/ServiceType.yaml index 9152104854..03c271e058 100644 --- a/schemas/20251121/linkml/modules/classes/ServiceType.yaml +++ b/schemas/20251121/linkml/modules/classes/ServiceType.yaml @@ -15,9 +15,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: ServiceType: class_uri: skos:Concept @@ -39,9 +39,9 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description exact_mappings: - skos:Concept annotations: diff --git a/schemas/20251121/linkml/modules/classes/Setpoint.yaml b/schemas/20251121/linkml/modules/classes/Setpoint.yaml index 229257a8aa..081245a615 100644 --- a/schemas/20251121/linkml/modules/classes/Setpoint.yaml +++ b/schemas/20251121/linkml/modules/classes/Setpoint.yaml @@ -1,7 +1,7 @@ id: https://nde.nl/ontology/hc/class/Setpoint name: setpoint_class title: Setpoint Class -description: "Environmental control setpoint for storage conditions.\n\nCreated per slot_fixes.yaml migration for:\n- temperature_target \u2192 has_or_had_setpoint + Setpoint\n- temperature_min \u2192 has_or_had_setpoint + Setpoint\n- temperature_max \u2192 has_or_had_setpoint + Setpoint\n- target_temperature_celsius \u2192 has_or_had_setpoint + Setpoint\n- target_relative_humidity \u2192 has_or_had_setpoint + Setpoint\n\nThis class models environmental control parameters (temperature, humidity, etc.)\nas first-class entities with proper unit handling, tolerances, and ISO standard references.\n" +description: "Environmental control setpoint for storage conditions.\n\nCreated per slot_fixes.yaml migration for:\n- temperature_target \u2192 has_setpoint + Setpoint\n- temperature_min \u2192 has_setpoint + Setpoint\n- temperature_max \u2192 has_setpoint + Setpoint\n- target_temperature_celsius \u2192 has_setpoint + Setpoint\n- target_relative_humidity \u2192 has_setpoint + Setpoint\n\nThis class models environmental control parameters (temperature, humidity, etc.)\nas first-class entities with proper unit handling, tolerances, and ISO standard references.\n" prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ diff --git a/schemas/20251121/linkml/modules/classes/Settlement.yaml b/schemas/20251121/linkml/modules/classes/Settlement.yaml index fa2562d99c..6c3140239c 100644 --- a/schemas/20251121/linkml/modules/classes/Settlement.yaml +++ b/schemas/20251121/linkml/modules/classes/Settlement.yaml @@ -4,8 +4,8 @@ title: Settlement Class imports: - linkml:types - ../slots/country - - ../slots/has_or_had_geographic_subdivision - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_geographic_subdivision + - ../slots/20260202_matang/has_score - ../slots/latitude - ../slots/longitude - ../slots/settlement_name @@ -41,14 +41,14 @@ classes: - latitude - longitude - settlement_name - - has_or_had_geographic_subdivision - - has_or_had_score + - has_geographic_subdivision + - has_score slot_usage: settlement_name: required: true country: required: true - has_or_had_geographic_subdivision: + has_geographic_subdivision: required: false latitude: required: false diff --git a/schemas/20251121/linkml/modules/classes/ShortCode.yaml b/schemas/20251121/linkml/modules/classes/ShortCode.yaml index 58e3009b99..a43c1b5843 100644 --- a/schemas/20251121/linkml/modules/classes/ShortCode.yaml +++ b/schemas/20251121/linkml/modules/classes/ShortCode.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: ShortCode: class_uri: schema:PropertyValue @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_value + - has_value diff --git a/schemas/20251121/linkml/modules/classes/Significance.yaml b/schemas/20251121/linkml/modules/classes/Significance.yaml index f8173669ee..d2f8fecb5c 100644 --- a/schemas/20251121/linkml/modules/classes/Significance.yaml +++ b/schemas/20251121/linkml/modules/classes/Significance.yaml @@ -12,9 +12,9 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type default_prefix: hc classes: @@ -45,32 +45,32 @@ classes: **Pattern**: ```yaml - has_or_had_significance: - - has_or_had_type: CommunitySignificance - has_or_had_description: "Belgian cultural identity, Trappist beer heritage" - - has_or_had_type: EconomicSignificance - has_or_had_description: "Tourism revenue, heritage economy" + has_significance: + - has_type: CommunitySignificance + has_description: "Belgian cultural identity, Trappist beer heritage" + - has_type: EconomicSignificance + has_description: "Tourism revenue, heritage economy" ``` slots: - - has_or_had_type - - has_or_had_description - - has_or_had_label + - has_type + - has_description + - has_label slot_usage: - has_or_had_type: + has_type: range: SignificanceType required: false examples: - value: CommunitySignificance - value: EconomicSignificance - has_or_had_description: + has_description: # range: string required: true examples: - value: "UNESCO-recognized Trappist tradition, Belgian cultural identity" - value: "Economic importance for regional tourism" - has_or_had_label: + has_label: # range: string required: false examples: @@ -104,10 +104,10 @@ classes: examples: - value: - has_or_had_type: CommunitySignificance - has_or_had_label: "Belgian Trappist Heritage" - has_or_had_description: "UNESCO-recognized Trappist tradition, Belgian cultural identity, Beer pilgrimage site" + has_type: CommunitySignificance + has_label: "Belgian Trappist Heritage" + has_description: "UNESCO-recognized Trappist tradition, Belgian cultural identity, Beer pilgrimage site" - value: - has_or_had_type: EconomicSignificance - has_or_had_label: "Regional Tourism" - has_or_had_description: "Whisky tourism generating 50,000 visitors/year" \ No newline at end of file + has_type: EconomicSignificance + has_label: "Regional Tourism" + has_description: "Whisky tourism generating 50,000 visitors/year" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/SignificanceType.yaml b/schemas/20251121/linkml/modules/classes/SignificanceType.yaml index d821efe9a0..4d21b79b8c 100644 --- a/schemas/20251121/linkml/modules/classes/SignificanceType.yaml +++ b/schemas/20251121/linkml/modules/classes/SignificanceType.yaml @@ -11,8 +11,8 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: @@ -42,17 +42,17 @@ classes: - **Close**: `skos:Concept` - SKOS concept vocabulary slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description slot_usage: - has_or_had_label: + has_label: # range: string required: true examples: - value: "Community Significance" - value: "Economic Significance" - has_or_had_description: + has_description: # range: string required: false diff --git a/schemas/20251121/linkml/modules/classes/SignificanceTypes.yaml b/schemas/20251121/linkml/modules/classes/SignificanceTypes.yaml index b757cfcaa5..3b8d6494f2 100644 --- a/schemas/20251121/linkml/modules/classes/SignificanceTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/SignificanceTypes.yaml @@ -20,8 +20,8 @@ classes: - Social cohesion (shared traditions, festivals)\n- Historical continuity (ancestral\ \ links)\n- Sense of place and belonging\n\n**Use Cases**:\n- UNESCO Intangible\ \ Cultural Heritage listings\n- Regional food/craft traditions\n- Community\ - \ festivals and rituals\n\n**Example**:\n```yaml\nhas_or_had_significance:\n\ - \ - has_or_had_type: CommunitySignificance\n has_or_had_description: \"\ + \ festivals and rituals\n\n**Example**:\n```yaml\nhas_significance:\n\ + \ - has_type: CommunitySignificance\n has_description: \"\ Belgian Trappist brewing tradition, cultural identity\"\n```\n" annotations: specificity_score: 0.4 @@ -35,8 +35,8 @@ classes: description: "Economic importance and impact.\n\n**Aspects**:\n- Tourism revenue\n\ - Local employment\n- Heritage economy contribution\n- Export value\n\n**Use\ \ Cases**:\n- Tourism impact assessment\n- Heritage-based business justification\n\ - - Regional economic planning\n\n**Example**:\n```yaml\nhas_or_had_significance:\n\ - \ - has_or_had_type: EconomicSignificance\n has_or_had_description: \"Islay\ + - Regional economic planning\n\n**Example**:\n```yaml\nhas_significance:\n\ + \ - has_type: EconomicSignificance\n has_description: \"Islay\ \ whisky tourism, 50,000 visitors/year\"\n```\n" annotations: specificity_score: 0.45 @@ -50,8 +50,8 @@ classes: \ continuity\n- Documentary evidence\n- Period representation\n- Historical\ \ events association\n\n**Use Cases**:\n- Heritage listing justification\n-\ \ Historical interpretation\n- Archives and documentary heritage\n\n**Example**:\n\ - ```yaml\nhas_or_had_significance:\n - has_or_had_type: HistoricalSignificance\n\ - \ has_or_had_description: \"Founded 1253, continuous brewing tradition\"\n\ + ```yaml\nhas_significance:\n - has_type: HistoricalSignificance\n\ + \ has_description: \"Founded 1253, continuous brewing tradition\"\n\ ```\n" annotations: specificity_score: 0.4 @@ -64,8 +64,8 @@ classes: description: "Scientific or research importance.\n\n**Aspects**:\n- Research value\n\ - Type specimens\n- Unique materials\n- Scientific discovery associations\n\n\ **Use Cases**:\n- Natural history collections\n- Research archives\n- Scientific\ - \ heritage sites\n\n**Example**:\n```yaml\nhas_or_had_significance:\n - has_or_had_type:\ - \ ScientificSignificance\n has_or_had_description: \"Type specimen location,\ + \ heritage sites\n\n**Example**:\n```yaml\nhas_significance:\n - has_type:\ + \ ScientificSignificance\n has_description: \"Type specimen location,\ \ taxonomic reference\"\n```\n" annotations: specificity_score: 0.55 @@ -78,8 +78,8 @@ classes: description: "Aesthetic or artistic importance.\n\n**Aspects**:\n- Artistic merit\n\ - Architectural significance\n- Design innovation\n- Visual/sensory appeal\n\ \n**Use Cases**:\n- Art collections\n- Architectural heritage\n- Design archives\n\ - \n**Example**:\n```yaml\nhas_or_had_significance:\n - has_or_had_type: AestheticSignificance\n\ - \ has_or_had_description: \"Iconic Art Deco building, architectural landmark\"\ + \n**Example**:\n```yaml\nhas_significance:\n - has_type: AestheticSignificance\n\ + \ has_description: \"Iconic Art Deco building, architectural landmark\"\ \n```\n" annotations: specificity_score: 0.5 @@ -93,8 +93,8 @@ classes: - Geographic origin\n- Environmental conditions\n- Place-based character\n-\ \ PDO/PGI designations\n\n**Use Cases**:\n- Food and beverage heritage (wine,\ \ cheese, spirits)\n- Agricultural heritage\n- Place-based crafts\n\n**Example**:\n\ - ```yaml\nhas_or_had_significance:\n - has_or_had_type: TerroirSignificance\n\ - \ has_or_had_description: \"Gouda PDO, specific to region, traditional methods\"\ + ```yaml\nhas_significance:\n - has_type: TerroirSignificance\n\ + \ has_description: \"Gouda PDO, specific to region, traditional methods\"\ \n```\n" annotations: specificity_score: 0.6 @@ -107,8 +107,8 @@ classes: description: "Cultural diplomacy and international representation.\n\n**Aspects**:\n\ - National heritage representation\n- Soft power\n- International recognition\n\ - Cultural exchange\n\n**Use Cases**:\n- National collections\n- Cultural embassies\n\ - - International exhibitions\n\n**Example**:\n```yaml\nhas_or_had_significance:\n\ - \ - has_or_had_type: DiplomaticSignificance\n has_or_had_description: \"\ + - International exhibitions\n\n**Example**:\n```yaml\nhas_significance:\n\ + \ - has_type: DiplomaticSignificance\n has_description: \"\ French parfumerie tradition, cultural diplomacy\"\n```\n" annotations: specificity_score: 0.55 diff --git a/schemas/20251121/linkml/modules/classes/SilenceSegment.yaml b/schemas/20251121/linkml/modules/classes/SilenceSegment.yaml index 650f9758eb..ebdc4327eb 100644 --- a/schemas/20251121/linkml/modules/classes/SilenceSegment.yaml +++ b/schemas/20251121/linkml/modules/classes/SilenceSegment.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_time_interval + - ../slots/20260202_matang/has_time_interval classes: SilenceSegment: class_uri: schema:AudioObject @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_time_interval + - has_time_interval diff --git a/schemas/20251121/linkml/modules/classes/Size.yaml b/schemas/20251121/linkml/modules/classes/Size.yaml index 8dfcd42b14..2f9fa101c5 100644 --- a/schemas/20251121/linkml/modules/classes/Size.yaml +++ b/schemas/20251121/linkml/modules/classes/Size.yaml @@ -10,19 +10,19 @@ prefixes: dcterms: http://purl.org/dc/terms/ imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_unit + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_unit default_prefix: hc classes: Size: class_uri: crm:E54_Dimension slots: - - has_or_had_label - - has_or_had_unit + - has_label + - has_unit slot_usage: - has_or_had_label: + has_label: # range: string - has_or_had_unit: + has_unit: # range: string annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/SnapshotPath.yaml b/schemas/20251121/linkml/modules/classes/SnapshotPath.yaml index 26d48a2329..4ef404b504 100644 --- a/schemas/20251121/linkml/modules/classes/SnapshotPath.yaml +++ b/schemas/20251121/linkml/modules/classes/SnapshotPath.yaml @@ -14,15 +14,15 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: SnapshotPath: class_uri: skos:Concept description: A snapshot file path. slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class. diff --git a/schemas/20251121/linkml/modules/classes/SocialMediaContent.yaml b/schemas/20251121/linkml/modules/classes/SocialMediaContent.yaml index a46a324597..1456ba8925 100644 --- a/schemas/20251121/linkml/modules/classes/SocialMediaContent.yaml +++ b/schemas/20251121/linkml/modules/classes/SocialMediaContent.yaml @@ -6,15 +6,15 @@ imports: - ../slots/content_category - ../slots/content_id - ../slots/content_url - - ../slots/has_or_had_description - - ../slots/has_or_had_endpoint - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_endpoint + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_url - ../slots/is_official_content - - ../slots/is_or_was_categorized_as - - ../slots/is_or_was_last_updated_at - - ../slots/is_or_was_published_at + - ../slots/20260202_matang/categorized_as + - ../slots/20260202_matang/last_updated_at + - ../slots/20260202_matang/published_at - ../slots/language - ../slots/platform_type - ../slots/posted_by_profile @@ -36,7 +36,7 @@ classes: abstract: true description: "Abstract base class for all social media content items.\n\n**DEFINITION**:\n\nSocialMediaContent represents discrete pieces of content published on social media\nplatforms. This includes videos, images, text posts, stories, and other content types.\nEach content item is posted by a SocialMediaProfile (the channel/account).\n\n**CRITICAL: CONTENT vs PROFILE vs PLATFORM**:\n\n| Class | Represents | Example | Cardinality |\n|-------|------------|---------|-------------|\n| SocialMediaPlatformType | Platform category | YouTube | ~25 types |\n| SocialMediaProfile | Account/channel | @rijksmuseum | Thousands |\n| **SocialMediaContent** | Individual content | A video, post | Millions |\n\n**ACTIVITY STREAMS 2.0 ALIGNMENT**:\n\nMaps to `as:Object` from W3C Activity Streams 2.0 vocabulary:\n- as:Object is the base type for content in social media\n- Subclasses map to as:Video, as:Image, as:Note, etc.\n- Enables federation with ActivityPub-based platforms (Mastodon, PeerTube)\n\n\ **HERITAGE INSTITUTION CONTEXT**:\n\nSocial media content from heritage institutions includes:\n\n1. **Official content** (posted by the institution):\n - Collection highlights\n - Exhibition announcements\n - Educational videos\n - Behind-the-scenes content\n - Event recordings\n\n2. **Third-party content** (about the institution):\n - Visitor videos/photos\n - News coverage\n - Academic discussions\n - Review content\n\n3. **User-generated content** (mentions):\n - Tagged posts\n - Check-ins\n - Comments/discussions\n\n**PROVENANCE TRACKING**:\n\nContent items are OBSERVATIONAL data retrieved via:\n- Platform APIs (YouTube Data API, Twitter API, etc.)\n- Web scraping (when API unavailable)\n- Manual archival\n\nEach content record includes:\n- `retrieval_timestamp`: When content was fetched\n- `api_endpoint`: Which API/method was used\n- `metrics_observed_date`: When engagement metrics were recorded\n\n**TEMPORAL CONSIDERATIONS**:\n\nContent has multiple temporal\ - \ dimensions:\n- `is_or_was_published_at`:\\ When originally posted\\n- `is_or_was_last_updated_at`: Last modification by author\\n- `retrieval_timestamp`: When we fetched it\\n\\ - `metrics_observed_date`: When metrics (views, likes) were recorded\n\nEngagement metrics change constantly; always record observation timestamp.\n\n**SUBCLASSES**:\n\n- VideoPost: YouTube, TikTok, Vimeo videos\n- ImagePost: Instagram, Pinterest posts (future)\n- TextPost: Twitter/X, Mastodon posts (future)\n- StoryPost: Instagram/Facebook stories (future)\n" + \ dimensions:\n- `published_at`:\\ When originally posted\\n- `last_updated_at`: Last modification by author\\n- `retrieval_timestamp`: When we fetched it\\n\\ - `metrics_observed_date`: When metrics (views, likes) were recorded\n\nEngagement metrics change constantly; always record observation timestamp.\n\n**SUBCLASSES**:\n\n- VideoPost: YouTube, TikTok, Vimeo videos\n- ImagePost: Instagram, Pinterest posts (future)\n- TextPost: Twitter/X, Mastodon posts (future)\n- StoryPost: Instagram/Facebook stories (future)\n" exact_mappings: - as:Object close_mappings: @@ -46,22 +46,22 @@ classes: - schema:SocialMediaPosting - dcterms:BibliographicResource slots: - - has_or_had_endpoint + - has_endpoint - content_category - content_id - content_url - - has_or_had_description + - has_description - is_official_content - language - platform_type - posted_by_profile - - is_or_was_published_at + - published_at - retrieval_timestamp - - is_or_was_categorized_as - - has_or_had_score - - has_or_had_url - - has_or_had_label - - is_or_was_last_updated_at + - categorized_as + - has_score + - has_url + - has_label + - last_updated_at slot_usage: content_id: # range: string @@ -85,12 +85,12 @@ classes: required: false examples: - value: https://nde.nl/ontology/hc/social-media/nationaal-onderduikmuseum-youtube - has_or_had_label: + has_label: # range: string required: false examples: - value: "De Vrijheidsroute (aflevering 3) \u2013 Zevenaar, Duiven, Westervoort" - is_or_was_published_at: + published_at: range: PublicationEvent required: true inlined: true @@ -101,7 +101,7 @@ classes: end_of_the_begin: '2025-07-30T18:05:15Z' begin_of_the_end: '2025-07-30T18:05:15Z' end_of_the_end: '2025-07-30T18:05:15Z' - is_or_was_last_updated_at: + last_updated_at: range: datetime required: false examples: @@ -111,7 +111,7 @@ classes: required: false examples: - value: nl - is_or_was_categorized_as: + categorized_as: range: Tag multivalued: true inlined_as_list: true @@ -121,7 +121,7 @@ classes: - tag_value: 80 jaar vrijheid - tag_value: wo2 - tag_value: vrijheidsroute - has_or_had_url: + has_url: range: uri required: false examples: @@ -142,13 +142,13 @@ classes: required: true examples: - value: '2025-12-01T23:16:22.294232+00:00' - has_or_had_endpoint: + has_endpoint: range: APIEndpoint inlined: true examples: - value: - has_or_had_url: https://www.googleapis.com/youtube/v3 - has_or_had_description: YouTube Data API v3 + has_url: https://www.googleapis.com/youtube/v3 + has_description: YouTube Data API v3 comments: - Abstract base class - use specific subclasses (VideoPost, ImagePost, etc.) - Represents individual CONTENT items, not profiles or platforms diff --git a/schemas/20251121/linkml/modules/classes/SocialMediaPlatformType.yaml b/schemas/20251121/linkml/modules/classes/SocialMediaPlatformType.yaml index d813d8ec57..309794215e 100644 --- a/schemas/20251121/linkml/modules/classes/SocialMediaPlatformType.yaml +++ b/schemas/20251121/linkml/modules/classes/SocialMediaPlatformType.yaml @@ -12,7 +12,7 @@ imports: - linkml:types - ../enums/PlatformCategoryEnum - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/social_media_example_profile - ../slots/social_media_feature - ../slots/social_media_heritage_use_case @@ -45,7 +45,7 @@ classes: - social_media_platform_type_id - social_media_url_pattern - social_media_wikidata_id - - has_or_had_score + - has_score slot_usage: social_media_platform_type_id: identifier: true diff --git a/schemas/20251121/linkml/modules/classes/SocialMediaPlatformTypes.yaml b/schemas/20251121/linkml/modules/classes/SocialMediaPlatformTypes.yaml index 4a5505f137..d3f5c2caad 100644 --- a/schemas/20251121/linkml/modules/classes/SocialMediaPlatformTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/SocialMediaPlatformTypes.yaml @@ -12,7 +12,7 @@ imports: - ./SocialMediaPlatformType - linkml:types - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/platform_name - ../slots/social_media_platform_category - ../slots/social_media_url_pattern @@ -65,7 +65,7 @@ classes: - Business pages common for heritage institutions - Events feature useful for exhibition announcements slots: - - has_or_had_score + - has_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration @@ -113,7 +113,7 @@ classes: - Launched 2023 as X/Twitter alternative - Instagram account integration slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept VKontakte: @@ -160,7 +160,7 @@ classes: - Important for Hermitage, Russian museums - Music and video hosting integrated slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept XTwitter: @@ -211,7 +211,7 @@ classes: - Both x.com and twitter.com URLs valid - Major platform for GLAM community engagement slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept Bluesky: @@ -258,7 +258,7 @@ classes: - Growing GLAM community presence - Custom feed algorithms slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept Mastodon: @@ -309,7 +309,7 @@ classes: - GLAM-specific instance at glammr.us - Popular with open source/academic communities slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept Weibo: @@ -356,7 +356,7 @@ classes: - Essential for Chinese audience reach - E-commerce integration for museum shops slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept Instagram: @@ -409,7 +409,7 @@ classes: - High engagement for visual content - Reels increasingly important for discovery slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept Pinterest: @@ -460,7 +460,7 @@ classes: - Good for art and design collections - Strong traffic driver to collection pages slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept Flickr: @@ -513,7 +513,7 @@ classes: - Strong Creative Commons community - Wikimedia Commons integration slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept YouTube: @@ -572,7 +572,7 @@ classes: - Primary platform for long-form heritage video - YouTube Shorts for short-form content slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept TikTok: @@ -620,7 +620,7 @@ classes: - Critical for Gen Z audience reach - Trend-driven content format slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept Vimeo: @@ -673,7 +673,7 @@ classes: - Ad-free, high quality preferred by arts sector - Password protection for press previews slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept Twitch: @@ -721,7 +721,7 @@ classes: - Strong for interactive live content - Growing museum presence for virtual tours slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept LinkedIn: @@ -772,7 +772,7 @@ classes: - Primary platform for heritage sector jobs - Industry thought leadership slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept WhatsApp: @@ -823,7 +823,7 @@ classes: - Business API for institutional use - Channels feature for broadcasts slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept Telegram: @@ -874,7 +874,7 @@ classes: - Strong bot ecosystem - Popular for news/announcement channels slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept WeChat: @@ -914,7 +914,7 @@ classes: - Essential for Chinese visitor services - Mini programs for interactive experiences slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept LINE: @@ -952,7 +952,7 @@ classes: - Official account for institutional presence - Sticker communication popular slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept Spotify: @@ -1001,7 +1001,7 @@ classes: - Growing heritage podcast presence - Exhibition playlists popular slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept SoundCloud: @@ -1049,7 +1049,7 @@ classes: - Good for oral history embedding - Waveform comment feature unique slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept Medium: @@ -1100,7 +1100,7 @@ classes: - Good for thought leadership - Publication feature for teams slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept Substack: @@ -1151,7 +1151,7 @@ classes: - Growing heritage sector presence - Paid subscription option for members slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept Patreon: @@ -1199,7 +1199,7 @@ classes: - Tiered access for supporters - Crowdfunding for special projects slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept OtherPlatform: @@ -1232,6 +1232,6 @@ classes: - Require platform_name specification - Review for promotion to dedicated class slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept diff --git a/schemas/20251121/linkml/modules/classes/SocialMediaPost.yaml b/schemas/20251121/linkml/modules/classes/SocialMediaPost.yaml index c5937ab52a..466fc88fd3 100644 --- a/schemas/20251121/linkml/modules/classes/SocialMediaPost.yaml +++ b/schemas/20251121/linkml/modules/classes/SocialMediaPost.yaml @@ -4,15 +4,15 @@ title: Social Media Post Class imports: - linkml:types - ../slots/content_category - - ../slots/has_or_had_description - - ../slots/has_or_had_endpoint - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_endpoint + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_url - ../slots/is_official_content - - ../slots/is_or_was_categorized_as - - ../slots/is_or_was_last_updated_at - - ../slots/is_or_was_published_at + - ../slots/20260202_matang/categorized_as + - ../slots/20260202_matang/last_updated_at + - ../slots/20260202_matang/published_at - ../slots/language - ../slots/platform_type - ../slots/post_id @@ -37,7 +37,7 @@ classes: description: "Concrete class for social media posts/content items.\n\n**DEFINITION**:\n\nSocialMediaPost represents a discrete piece of content published on a social media\nplatform. This includes videos, images, text posts, stories, carousels, threads,\nand other content types. Each post is published by a SocialMediaProfile (account/channel).\n\n**CRITICAL: MULTIVALUED POST TYPES**:\n\nA single SocialMediaPost can have **multiple** post types via the `post_types` slot.\nThis reflects the reality that social media content often combines formats:\n\n| Post Example | Primary Type | Secondary Types |\n|--------------|--------------|-----------------|\n| Instagram carousel with videos | CarouselPost | ImagePost, VideoPost |\n| Twitter thread with images | ThreadPost | TextPost, ImagePost |\n| YouTube Live archived as video | LiveStreamPost | VideoPost |\n| Podcast with video recording | AudioPost | VideoPost |\n| Story highlight (saved) | StoryPost\ \ | ImagePost, VideoPost |\n\n**TYPE ORDERING CONVENTION**:\n- First type in list = primary/dominant format\n- Subsequent types = secondary characteristics\n- Order matters for display and categorization\n\n**CRITICAL: POST vs PROFILE vs PLATFORM**:\n\n| Class | Represents | Example | Cardinality |\n|-------|------------|---------|-------------|\n| SocialMediaPlatformType | Platform category | YouTube | ~25 types |\n| SocialMediaProfile | Account/channel | @rijksmuseum | Thousands |\n| **SocialMediaPost** | Individual content | A video, post | Millions |\n\n**ACTIVITY STREAMS 2.0 ALIGNMENT**:\n\nMaps to `as:Object` from W3C Activity Streams 2.0 vocabulary:\n- as:Object is the base type for content in social media\n- Individual posts may also map to as:Video, as:Image, as:Note based on post_types\n- Enables federation with ActivityPub-based platforms (Mastodon, PeerTube)\n\n**HERITAGE INSTITUTION CONTEXT**:\n\nSocial media content from heritage institutions includes:\n\n1. **Official\ \ content** (posted by the institution):\n - Collection highlights (ImagePost)\n - Exhibition announcements (TextPost)\n - Educational videos (VideoPost)\n - Behind-the-scenes content (ShortVideoPost, StoryPost)\n - Event recordings (LiveStreamPost \u2192 VideoPost)\n - Curator interviews (VideoPost, AudioPost)\n - Multi-image collection stories (CarouselPost)\n\n2. **Third-party content** (about the institution):\n - Visitor videos/photos\n - News coverage\n - Academic discussions\n - Review content\n\n3. **User-generated content** (mentions):\n - Tagged posts\n - Check-ins\n - Comments/discussions\n\n**PROVENANCE TRACKING**:\n\nContent items are OBSERVATIONAL data retrieved via:\n- Platform APIs (YouTube Data API, Twitter API, etc.)\n- Web scraping (when API unavailable)\n- Manual archival\n\nEach content record includes:\n- `retrieval_timestamp`: When content was fetched\n- `api_endpoint`: Which API/method was used\n\ - - `metrics_observed_date`: When engagement metrics were recorded\n\n**TEMPORAL CONSIDERATIONS**:\n\\nContent has multiple temporal dimensions:\\n- `is_or_was_published_at`: When originally posted\\n- `is_or_was_last_updated_at`: Last modification\\\n \\ by author\\n- `retrieval_timestamp`: When we fetched it\\n- `metrics_observed_date`: When metrics (views, likes) were\\ recorded\n\nEngagement metrics change constantly; always record observation timestamp.\n\n**SUBCLASSES FOR SPECIALIZED CONTENT**:\n\nWhile SocialMediaPost can represent any content with post_types,\nspecialized subclasses provide additional platform-specific slots:\n\n- **VideoPost**: YouTube, TikTok, Vimeo videos (duration, definition, captions)\n- **ImagePost**: Instagram, Pinterest posts (dimensions, alt_text) [future]\n- **TextPost**: Twitter/X, Mastodon posts (character_count) [future]\n- **StoryPost**: Instagram/Facebook stories (ephemeral, segments) [future]\n" + - `metrics_observed_date`: When engagement metrics were recorded\n\n**TEMPORAL CONSIDERATIONS**:\n\\nContent has multiple temporal dimensions:\\n- `published_at`: When originally posted\\n- `last_updated_at`: Last modification\\\n \\ by author\\n- `retrieval_timestamp`: When we fetched it\\n- `metrics_observed_date`: When metrics (views, likes) were\\ recorded\n\nEngagement metrics change constantly; always record observation timestamp.\n\n**SUBCLASSES FOR SPECIALIZED CONTENT**:\n\nWhile SocialMediaPost can represent any content with post_types,\nspecialized subclasses provide additional platform-specific slots:\n\n- **VideoPost**: YouTube, TikTok, Vimeo videos (duration, definition, captions)\n- **ImagePost**: Instagram, Pinterest posts (dimensions, alt_text) [future]\n- **TextPost**: Twitter/X, Mastodon posts (character_count) [future]\n- **StoryPost**: Instagram/Facebook stories (ephemeral, segments) [future]\n" exact_mappings: - as:Object close_mappings: @@ -47,22 +47,22 @@ classes: - schema:SocialMediaPosting - dcterms:BibliographicResource slots: - - has_or_had_endpoint + - has_endpoint - content_category - - has_or_had_description + - has_description - is_official_content - language - platform_type - post_id - post_url - posted_by_profile - - is_or_was_published_at + - published_at - retrieval_timestamp - - is_or_was_categorized_as - - has_or_had_score - - has_or_had_url - - has_or_had_label - - is_or_was_last_updated_at + - categorized_as + - has_score + - has_url + - has_label + - last_updated_at slot_usage: post_id: # range: string @@ -90,12 +90,12 @@ classes: inlined: false examples: - value: https://nde.nl/ontology/hc/social-media/nationaal-onderduikmuseum-youtube - has_or_had_label: + has_label: # range: string required: false examples: - value: "De Vrijheidsroute (aflevering 3) \u2013 Zevenaar, Duiven, Westervoort" - is_or_was_published_at: + published_at: range: PublicationEvent required: true inlined: true @@ -106,7 +106,7 @@ classes: end_of_the_begin: '2025-07-30T18:05:15Z' begin_of_the_end: '2025-07-30T18:05:15Z' end_of_the_end: '2025-07-30T18:05:15Z' - is_or_was_last_updated_at: + last_updated_at: range: datetime required: false examples: @@ -116,7 +116,7 @@ classes: required: false examples: - value: nl - is_or_was_categorized_as: + categorized_as: range: Tag multivalued: true inlined_as_list: true @@ -126,7 +126,7 @@ classes: - tag_value: 80 jaar vrijheid - tag_value: wo2 - tag_value: vrijheidsroute - has_or_had_url: + has_url: range: uri required: false examples: @@ -147,13 +147,13 @@ classes: required: true examples: - value: '2025-12-01T23:16:22.294232+00:00' - has_or_had_endpoint: + has_endpoint: range: APIEndpoint inlined: true examples: - value: - has_or_had_url: https://www.googleapis.com/youtube/v3 - has_or_had_description: YouTube Data API v3 + has_url: https://www.googleapis.com/youtube/v3 + has_description: YouTube Data API v3 comments: - Concrete class for social media posts - post_types is MULTIVALUED - a post can have multiple content types diff --git a/schemas/20251121/linkml/modules/classes/SocialMediaPostType.yaml b/schemas/20251121/linkml/modules/classes/SocialMediaPostType.yaml index cfd1f8d0da..e6f7cc7d96 100644 --- a/schemas/20251121/linkml/modules/classes/SocialMediaPostType.yaml +++ b/schemas/20251121/linkml/modules/classes/SocialMediaPostType.yaml @@ -13,7 +13,7 @@ imports: - linkml:types - ../enums/PostTypeCategoryEnum - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/post_type_activity_streams_type - ../slots/post_type_category - ../slots/post_type_description @@ -33,7 +33,7 @@ classes: \ **multiple** SocialMediaPostType values!\nThis is essential because social media content often combines formats:\n\n- A **carousel** contains both images AND videos\n- A **thread** combines text posts with attached images\n- A **live stream** becomes a standard video when archived\n- A **podcast** may also be published as a video recording\n\n**ACTIVITY STREAMS 2.0 ALIGNMENT**:\n\nSocial media content types align with W3C Activity Streams 2.0:\n- `as:Video` - Video content (YouTube, TikTok, Reels)\n- `as:Image` - Image content (Instagram photos, Pinterest pins)\n- `as:Note` - Short text content (Tweets, Toots)\n- `as:Article` - Long-form content (Blog posts, newsletters)\n- `as:Audio` - Audio content (Podcasts, music tracks)\n\nThis enables federation with ActivityPub-based platforms (Mastodon, PeerTube).\n\n**HERITAGE INSTITUTION CONTEXT**:\n\nCultural heritage institutions create diverse content types:\n\n| Content Type | Heritage Use Cases |\n|--------------|-------------------|\n\ | **Video** | Virtual tours, conservation demos, interviews, lectures |\n| **Image** | Collection highlights, exhibition photos, archival scans |\n| **Short Video** | Behind-the-scenes moments, artifact spotlights |\n| **Text** | Announcements, event info, research updates |\n| **Story** | Ephemeral content for events, openings, daily life |\n| **Live Stream** | Exhibition openings, Q&A sessions, guided tours |\n| **Audio** | Podcasts about collections, audio guides, oral histories |\n| **Thread** | Multi-part narratives, collection deep-dives |\n\n**CATEGORY STRUCTURE**:\n\nPost types are organized into high-level categories:\n\n1. **VIDEO**: Standard video content (YouTube, Vimeo, Facebook Video)\n2. **SHORT_VIDEO**: Short-form video (TikTok, Reels, YouTube Shorts)\n3. **IMAGE**: Static images (Instagram posts, Pinterest pins, Flickr photos)\n4. **TEXT**: Text-based posts (Tweets, Mastodon toots, LinkedIn posts)\n5. **STORY**: Ephemeral content (Instagram Stories, Facebook Stories)\n\ 6. **LIVE_STREAM**: Real-time video (YouTube Live, Twitch, Instagram Live)\n7. **AUDIO**: Audio content (Podcasts, SoundCloud tracks, Spotify)\n8. **ARTICLE**: Long-form written content (Medium, Substack, blog posts)\n9. **THREAD**: Multi-post sequences (Twitter threads, Mastodon threads)\n10. **CAROUSEL**: Multi-image/video posts (Instagram carousels)\n\n**PLATFORM SUPPORT MATRIX**:\n\n| Post Type | YouTube | Instagram | TikTok | X/Twitter | LinkedIn |\n|-----------|---------|-----------|--------|-----------|----------|\n| Video | Yes | Yes | - | Yes | Yes |\n| Short Video | Shorts | Reels | Yes | - | - |\n| Image | Thumbnail | Yes | - | Yes | Yes |\n| Text | - | Caption | Caption | Yes | Yes |\n| Story | - | Yes | - | Fleets* | Stories |\n| Live | Yes | Yes | Yes | Spaces* | Live |\n\n*Some features deprecated or limited\n\n**USAGE IN SOCIALMEDIAPOST**:\n\ - \nThe SocialMediaPost.post_types slot references these types as a **multivalued** slot:\n```yaml\nSocialMediaPost:\n has_or_had_post_type:\n range: SocialMediaPostType # Polymorphic - any subclass\n multivalued: true # A post can have MULTIPLE types!\n```\n\n**WHY MULTIVALUED?**\n\nA single social media post can legitimately have multiple types:\n\n| Example | Primary Type | Secondary Types |\n|---------|--------------|-----------------|\n| Instagram carousel with videos | CarouselPost | ImagePost, VideoPost |\n| Twitter thread with images | ThreadPost | TextPost, ImagePost |\n| YouTube Live archived as video | LiveStreamPost | VideoPost |\n| Podcast with video recording | AudioPost | VideoPost |\n| Story highlight (saved) | StoryPost | ImagePost, VideoPost |\n\n**TYPE ORDERING**:\n- First type in list = primary/dominant format\n- Subsequent types = secondary characteristics\n- Order matters for display and categorization\n\ + \nThe SocialMediaPost.post_types slot references these types as a **multivalued** slot:\n```yaml\nSocialMediaPost:\n has_post_type:\n range: SocialMediaPostType # Polymorphic - any subclass\n multivalued: true # A post can have MULTIPLE types!\n```\n\n**WHY MULTIVALUED?**\n\nA single social media post can legitimately have multiple types:\n\n| Example | Primary Type | Secondary Types |\n|---------|--------------|-----------------|\n| Instagram carousel with videos | CarouselPost | ImagePost, VideoPost |\n| Twitter thread with images | ThreadPost | TextPost, ImagePost |\n| YouTube Live archived as video | LiveStreamPost | VideoPost |\n| Podcast with video recording | AudioPost | VideoPost |\n| Story highlight (saved) | StoryPost | ImagePost, VideoPost |\n\n**TYPE ORDERING**:\n- First type in list = primary/dominant format\n- Subsequent types = secondary characteristics\n- Order matters for display and categorization\n\ \n- Activity Streams 2.0: W3C standard for social content\n- Schema.org: MediaObject, VideoObject, ImageObject\n- SKOS Concept: Post types as controlled vocabulary\n- Dublin Core: Standard metadata properties\n\n**SUBCLASSES**:\n\nSee SocialMediaPostTypes.yaml for concrete post type subclasses:\n- VideoPost: Standard video content\n- ShortVideoPost: Short-form video (TikTok, Reels, Shorts)\n- ImagePost: Photo and image posts\n- TextPost: Text-based posts\n- StoryPost: Ephemeral content\n- LiveStreamPost: Real-time streaming\n- AudioPost: Podcasts and audio content\n- ArticlePost: Long-form written content\n- ThreadPost: Multi-post sequences\n- CarouselPost: Multi-media collections\n- OtherPost: Fallback for emerging formats\n" exact_mappings: - skos:Concept @@ -52,7 +52,7 @@ classes: - post_type_name - post_type_schema_org_type - post_type_supported_platform - - has_or_had_score + - has_score slot_usage: post_type_id: identifier: true diff --git a/schemas/20251121/linkml/modules/classes/SocialMediaPostTypes.yaml b/schemas/20251121/linkml/modules/classes/SocialMediaPostTypes.yaml index dd8fc6e35b..10e067a5c7 100644 --- a/schemas/20251121/linkml/modules/classes/SocialMediaPostTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/SocialMediaPostTypes.yaml @@ -13,7 +13,7 @@ imports: - ./SocialMediaPostType - linkml:types - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/post_type_activity_streams_type - ../slots/post_type_category - ../slots/post_type_ephemeral @@ -72,7 +72,7 @@ classes: - Supports captions, chapters, and community features - Long-form content for educational and documentary purposes slots: - - has_or_had_score + - has_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration @@ -183,7 +183,7 @@ classes: - Vertical format (9:16) required - TikTok pioneered format, others followed slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept ImagePostType: @@ -297,7 +297,7 @@ classes: - Pinterest valuable for discovery - Flickr for high-resolution and CC licensing slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept TextPostType: @@ -390,7 +390,7 @@ classes: - Often combined with images or links - Hashtags important for heritage campaigns slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept StoryPostType: @@ -486,7 +486,7 @@ classes: - Highlights feature preserves selected stories - Interactive stickers for engagement slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept LiveStreamPostType: @@ -585,7 +585,7 @@ classes: - YouTube and Facebook most common for heritage - Twitch for gaming/cultural crossover events slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept AudioPostType: @@ -695,7 +695,7 @@ classes: - Audio guides extend museum experience - Oral histories preserve community voices slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept ArticlePostType: @@ -800,7 +800,7 @@ classes: - Substack for newsletter-style distribution - LinkedIn Articles for professional audience slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept ThreadPostType: @@ -893,7 +893,7 @@ classes: - '#MuseumWeek and similar campaigns use threads' - Thread reader tools compile into articles slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept CarouselPostType: @@ -991,7 +991,7 @@ classes: - Good for before/after conservation - LinkedIn carousels popular for professional content slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept OtherPostType: @@ -1024,6 +1024,6 @@ classes: - Review periodically for new category creation - Use sparingly - prefer specific types when possible slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept diff --git a/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml b/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml index 364e07f678..f58f85ab6c 100644 --- a/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml +++ b/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml @@ -5,11 +5,11 @@ imports: - linkml:types - ../slots/cover_image_url - ../slots/created_date - - ../slots/has_or_had_engagement_metric - - ../slots/has_or_had_score - - ../slots/is_or_was_categorized_as - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/has_engagement_metric + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/categorized_as + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by - ../slots/is_primary_digital_presence - ../slots/language - ../slots/metrics_observed_date @@ -39,8 +39,8 @@ classes: description: "Represents a social media account or profile maintained by a heritage custodian.\n\n**FOAF ONTOLOGY ALIGNMENT**:\n\nMaps to `foaf:OnlineAccount` - \"An online account.\"\n\nKey FOAF properties used:\n- `foaf:accountName` - Username/handle on the platform\n- `foaf:accountServiceHomepage` - Homepage of the service provider (e.g., https://twitter.com)\n- `foaf:account` - Inverse property linking Agent to OnlineAccount\n\n**RELATIONSHIP TO DIGITAL PLATFORM HIERARCHY**:\n\nSocial media profiles exist in a three-tier digital presence model:\n\n```\n1. DigitalPlatform (PRIMARY digital presence)\n - Main website, primary API, flagship platform\n - Example: rijksmuseum.nl\n - Links to Custodian via refers_to_custodian\n \n2. AuxiliaryDigitalPlatform (SECONDARY digital properties)\n - Project sites, exhibition microsites, specialized tools\n - Example: Rijksstudio, Night Watch Experience\n - Links to DigitalPlatform via is_auxiliary_of\n \n3. SocialMediaProfile (THIRD-PARTY\ \ presence) - THIS CLASS\n - Accounts on external social media services\n - Example: @rijksmuseum on Instagram, Facebook, X\n - Links to BOTH Custodian AND optionally DigitalPlatform/AuxiliaryDigitalPlatform\n```\n\n**WHY SOCIAL MEDIA IS DISTINCT FROM AUXILIARY PLATFORMS**:\n\nUnlike AuxiliaryDigitalPlatform (owned/operated digital properties), social media profiles:\n- Are hosted on THIRD-PARTY platforms (not custodian-controlled)\n- Have standardized URL patterns per platform\n- Provide follower/engagement metrics\n- Subject to platform terms of service\n- Can be verified/authenticated by platform\n\n**RELATIONSHIP TO CUSTODIAN vs DIGITAL PLATFORM**:\n\nSocial media profiles can link to:\n\n1. **Custodian directly** (`refers_to_custodian`):\n - When social media is the PRIMARY or ONLY digital presence\n - Example: Small local heritage society with Facebook page as main presence\n \n2. **DigitalPlatform** (`associated_digital_platform`):\n - When social media SUPPORTS\ \ the main website\n - Example: Rijksmuseum Instagram supports rijksmuseum.nl\n \n3. **AuxiliaryDigitalPlatform** (`associated_auxiliary_platform`):\n - When social media is for a SPECIFIC project/exhibition\n - Example: Instagram account for a temporary exhibition\n\n**DECISION RULES**:\n\n\"Is social media this custodian's MAIN way to profile itself online?\"\n\n- **YES** \u2192 Link SocialMediaProfile directly to Custodian\n - is_primary_digital_presence: true\n - associated_digital_platform: null\n - Example: Local heritage group with only Facebook\n \n- **NO** \u2192 Link SocialMediaProfile to DigitalPlatform/AuxiliaryDigitalPlatform\n - is_primary_digital_presence: false\n - associated_digital_platform: (main website)\n - Example: Museum Instagram supporting main website\n\n**TEMPORAL VALIDITY**:\n\nSocial media profiles have lifecycles:\n- Account creation date\n- Account deactivation/deletion date\n- Platform migration (e.g., Twitter \u2192 X)\n- Account suspension/recovery\n\ - \n**METRICS AND ANALYTICS**:\n\nSocial media profiles can track:\n- Follower/subscriber count\n- Post count\n- Engagement metrics\n- Verification status\n\nThese metrics are OBSERVATIONAL and should be timestamped.\n\n**Example - Museum with Social Media Supporting Website**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n \n digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address: \"https://www.rijksmuseum.nl/\"\n \n social_media_profiles:\n - platform_type: INSTAGRAM\n account_name: \"rijksmuseum\"\n profile_url: \"https://www.instagram.com/rijksmuseum/\"\n is_primary_digital_presence: false # Website is primary\n associated_digital_platform: \".../platform/rijksmuseum-website\"\n follower_count: 1200000\n verified: true\n \n - platform_type: X_TWITTER\n account_name: \"rijksmuseum\"\n profile_url: \"https://x.com/rijksmuseum\"\ - \n is_primary_digital_presence: false\n associated_digital_platform: \".../platform/rijksmuseum-website\"\n```\n\n**Example - Local Society with Social Media as Primary Presence**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-fr-123-s-hvn\"\n preferred_label: \"Historische Vereniging Nijeveen\"\n \n digital_platform: null # No formal website\n \n social_media_profiles:\n - platform_type: FACEBOOK\n account_name: \"HistorischeVerenigingNijeveen\"\n profile_url: \"https://www.facebook.com/HistorischeVerenigingNijeveen\"\n is_primary_digital_presence: true # Facebook IS their main presence\n associated_digital_platform: null\n follower_count: 450\n```\n" + \n**METRICS AND ANALYTICS**:\n\nSocial media profiles can track:\n- Follower/subscriber count\n- Post count\n- Engagement metrics\n- Verification status\n\nThese metrics are OBSERVATIONAL and should be timestamped.\n\n**Example - Museum with Social Media Supporting Website**:\n```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n \n digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address: \"https://www.rijksmuseum.nl/\"\n \n social_media_profiles:\n - platform_type: INSTAGRAM\n account_name: \"rijksmuseum\"\n profile_url: \"https://www.instagram.com/rijksmuseum/\"\n is_primary_digital_presence: false # Website is primary\n associated_digital_platform: \".../platform/rijksmuseum-website\"\n follower_count: 1200000\n verified: true\n \n - platform_type: X_TWITTER\n account_name: \"rijksmuseum\"\n profile_url: \"https://x.com/rijksmuseum\"\ + \n is_primary_digital_presence: false\n associated_digital_platform: \".../platform/rijksmuseum-website\"\n```\n\n**Example - Local Society with Social Media as Primary Presence**:\n```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/nl-fr-123-s-hvn\"\n preferred_label: \"Historische Vereniging Nijeveen\"\n \n digital_platform: null # No formal website\n \n social_media_profiles:\n - platform_type: FACEBOOK\n account_name: \"HistorischeVerenigingNijeveen\"\n profile_url: \"https://www.facebook.com/HistorischeVerenigingNijeveen\"\n is_primary_digital_presence: true # Facebook IS their main presence\n associated_digital_platform: null\n follower_count: 450\n```\n" exact_mappings: - foaf:OnlineAccount close_mappings: @@ -54,7 +54,7 @@ classes: slots: - cover_image_url - created_date - - has_or_had_engagement_metric + - has_engagement_metric - is_primary_digital_presence - language - metrics_observed_date @@ -65,10 +65,10 @@ classes: - profile_image_url - refers_to_custodian - social_media_profile_id - - has_or_had_score + - has_score - temporal_extent - - is_or_was_derived_from - - is_or_was_generated_by + - derived_from + - generated_by slot_usage: social_media_profile_id: # range: string # uriorcurie @@ -105,15 +105,15 @@ classes: required: false examples: - value: 2500 - has_or_had_engagement_metric: + has_engagement_metric: range: EngagementMetric inlined: true multivalued: true examples: - value: - has_or_had_type: Engagement Rate - has_or_had_value: 2.5 - has_or_had_unit: '%' + has_type: Engagement Rate + has_value: 2.5 + has_unit: '%' metrics_observed_date: range: datetime required: false @@ -150,11 +150,11 @@ classes: examples: - value: nl - value: en - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false refers_to_custodian: @@ -184,10 +184,10 @@ classes: profile_description: 'The museum of the Netherlands. Open daily 9-17h. #Rijksmuseum' is_primary_digital_presence: false post_count: 3500 - has_or_had_engagement_metric: - - has_or_had_type: Engagement Rate - has_or_had_value: 2.5 - has_or_had_unit: '%' + has_engagement_metric: + - has_type: Engagement Rate + has_value: 2.5 + has_unit: '%' metrics_observed_date: '2025-11-29T12:00:00Z' associated_digital_platform: https://nde.nl/ontology/hc/platform/rijksmuseum-website account_status: ACTIVE diff --git a/schemas/20251121/linkml/modules/classes/SocialNetworkMember.yaml b/schemas/20251121/linkml/modules/classes/SocialNetworkMember.yaml index 7d920eacc5..64ba55ccb9 100644 --- a/schemas/20251121/linkml/modules/classes/SocialNetworkMember.yaml +++ b/schemas/20251121/linkml/modules/classes/SocialNetworkMember.yaml @@ -12,9 +12,9 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label - ../slots/linkedin_profile_url classes: SocialNetworkMember: @@ -47,9 +47,9 @@ classes: ``` ConnectionNetwork │ - └── has_or_had_member → SocialNetworkMember (THIS CLASS) - ├── has_or_had_identifier: LinkedIn URL - ├── has_or_had_label: Person name + └── has_member → SocialNetworkMember (THIS CLASS) + ├── identified_by: LinkedIn URL + ├── has_label: Person name └── (subclasses add connection-specific metadata) ``` @@ -61,14 +61,14 @@ classes: - schema:Person slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description - linkedin_profile_url slot_usage: - has_or_had_identifier: - has_or_had_label: + identified_by: + has_label: linkedin_profile_url: annotations: custodian_types: '["*"]' @@ -83,6 +83,6 @@ classes: examples: - value: - has_or_had_label: + has_label: label_text: "Jan de Vries" linkedin_profile_url: "https://www.linkedin.com/in/jan-de-vries-heritage/" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/SoundArchive.yaml b/schemas/20251121/linkml/modules/classes/SoundArchive.yaml index e842e0f95f..42357efebb 100644 --- a/schemas/20251121/linkml/modules/classes/SoundArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/SoundArchive.yaml @@ -10,11 +10,11 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/related_to classes: SoundArchive: description: "A heritage custodian specialized in collecting, preserving, and providing access to audio recordings and\ @@ -24,11 +24,11 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_score + - related_to + - identified_by exact_mappings: - wd:Q2230431 close_mappings: @@ -46,9 +46,9 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: diff --git a/schemas/20251121/linkml/modules/classes/SoundArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/SoundArchiveRecordSetType.yaml index 1ac7731223..65ee058410 100644 --- a/schemas/20251121/linkml/modules/classes/SoundArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/SoundArchiveRecordSetType.yaml @@ -9,8 +9,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to classes: SoundArchiveRecordSetType: description: A rico:RecordSetType for classifying collections of sound recordings and audio materials within heritage institutions. @@ -19,14 +19,14 @@ classes: exact_mappings: - wd:Q2230431 slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: - SoundArchive slots: - - has_or_had_score - - is_or_was_related_to + - has_score + - related_to annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/SoundArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/SoundArchiveRecordSetTypes.yaml index d938e2a1dd..9dbd03dd3d 100644 --- a/schemas/20251121/linkml/modules/classes/SoundArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/SoundArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./SoundArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - SoundArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: AudioRecordingCollection @@ -78,15 +78,15 @@ classes: - SoundArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: OralHistorySeries @@ -115,15 +115,15 @@ classes: - SoundArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: MusicRecordingCollection diff --git a/schemas/20251121/linkml/modules/classes/SoundEventType.yaml b/schemas/20251121/linkml/modules/classes/SoundEventType.yaml index 3dce3e2de3..6036d3b550 100644 --- a/schemas/20251121/linkml/modules/classes/SoundEventType.yaml +++ b/schemas/20251121/linkml/modules/classes/SoundEventType.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: SoundEventType: class_uri: skos:Concept @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_label + - has_label diff --git a/schemas/20251121/linkml/modules/classes/Source.yaml b/schemas/20251121/linkml/modules/classes/Source.yaml index 5b4091ff06..5da90a4b31 100644 --- a/schemas/20251121/linkml/modules/classes/Source.yaml +++ b/schemas/20251121/linkml/modules/classes/Source.yaml @@ -15,9 +15,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type default_prefix: hc classes: Source: @@ -29,17 +29,17 @@ classes: - dcterms:source - schema:CreativeWork slots: - - has_or_had_type - - has_or_had_label - - has_or_had_description + - has_type + - has_label + - has_description slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie required: false - has_or_had_label: + has_label: # range: string required: false - has_or_had_description: + has_description: # range: string required: false annotations: @@ -48,16 +48,16 @@ classes: custodian_types: "['*']" examples: - value: - has_or_had_type: MANUAL - has_or_had_label: Creator-defined chapters - has_or_had_description: Chapters manually defined in video description + has_type: MANUAL + has_label: Creator-defined chapters + has_description: Chapters manually defined in video description - value: - has_or_had_type: YOUTUBE_AI - has_or_had_label: YouTube Auto-Chapters - has_or_had_description: AI-generated chapter markers from YouTube + has_type: YOUTUBE_AI + has_label: YouTube Auto-Chapters + has_description: AI-generated chapter markers from YouTube - value: - has_or_had_type: WHISPER_CHAPTERS - has_or_had_label: Whisper Transcript Analysis + has_type: WHISPER_CHAPTERS + has_label: Whisper Transcript Analysis ChapterSource: is_a: Source class_uri: hc:ChapterSource @@ -68,5 +68,5 @@ classes: custodian_types: "['*']" examples: - value: - has_or_had_type: YOUTUBE_AI - has_or_had_label: YouTube Auto-Chapters \ No newline at end of file + has_type: YOUTUBE_AI + has_label: YouTube Auto-Chapters \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/SourceCommentCount.yaml b/schemas/20251121/linkml/modules/classes/SourceCommentCount.yaml index 53c45f83e6..dc54ac2dd4 100644 --- a/schemas/20251121/linkml/modules/classes/SourceCommentCount.yaml +++ b/schemas/20251121/linkml/modules/classes/SourceCommentCount.yaml @@ -9,7 +9,7 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_quantity + - ../slots/20260202_matang/has_quantity - ../slots/was_fetched_at default_prefix: hc classes: @@ -20,19 +20,19 @@ classes: how many comments were fetched versus the total available at the source.\nReplaces\ \ simple integer count with rich provenance data.\n\n**DESIGN RATIONALE**:\n\ \nCreated per slot_fixes.yaml migration from `comments_fetched` integer\nto\ - \ structured `was_fetched_at` + `Timestamp` + `is_or_was_part_of_total`\n+ `SourceCommentCount`\ + \ structured `was_fetched_at` + `Timestamp` + `part_of_total`\n+ `SourceCommentCount`\ \ for complete retrieval tracking.\n\n**USE CASES**:\n\n- YouTube API: Track\ \ fetched comments vs total comment count\n- Social media: Partial comment retrieval\ \ with pagination\n- Web scraping: Track scraped vs visible comments\n\n**EXAMPLE**:\n\ - \n```yaml\nis_or_was_part_of_total:\n fetched_count: 100\n total_count: 500\n\ - \ fetch_complete: false\n was_fetched_at:\n has_or_had_timestamp: \"2025-01-14T10:30:00Z\"\ + \n```yaml\npart_of_total:\n fetched_count: 100\n total_count: 500\n\ + \ fetch_complete: false\n was_fetched_at:\n has_timestamp: \"2025-01-14T10:30:00Z\"\ \n```\n" close_mappings: - schema:InteractionCounter - prov:Entity slots: - was_fetched_at - - has_or_had_quantity + - has_quantity slot_usage: was_fetched_at: range: Timestamp @@ -40,15 +40,15 @@ classes: required: false examples: - value: - has_or_had_timestamp: '2025-01-14T10:30:00Z' - has_or_had_quantity: + has_timestamp: '2025-01-14T10:30:00Z' + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type required: false examples: - value: was_fetched_at: - has_or_had_timestamp: '2025-01-14T10:30:00Z' + has_timestamp: '2025-01-14T10:30:00Z' - value: null - value: null comments: diff --git a/schemas/20251121/linkml/modules/classes/SourceDocument.yaml b/schemas/20251121/linkml/modules/classes/SourceDocument.yaml index 6caecd8049..c0f026d611 100644 --- a/schemas/20251121/linkml/modules/classes/SourceDocument.yaml +++ b/schemas/20251121/linkml/modules/classes/SourceDocument.yaml @@ -18,7 +18,7 @@ imports: - linkml:types - ../enums/SourceDocumentTypeEnum - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/source_creator - ../slots/source_date - ../slots/source_type @@ -74,7 +74,7 @@ classes: - source_date - source_type - source_uri - - has_or_had_score + - has_score slot_usage: source_uri: # range: string # uriorcurie diff --git a/schemas/20251121/linkml/modules/classes/SourceStaffEntry.yaml b/schemas/20251121/linkml/modules/classes/SourceStaffEntry.yaml index 9c7ea0326c..fd06b25224 100644 --- a/schemas/20251121/linkml/modules/classes/SourceStaffEntry.yaml +++ b/schemas/20251121/linkml/modules/classes/SourceStaffEntry.yaml @@ -14,7 +14,7 @@ imports: classes: SourceStaffEntry: description: "Reference to original staff entry from custodian staff parsing.\ - \ Contains staff identifier, name, academic degree, professional has_or_had_title,\ + \ Contains staff identifier, name, academic degree, professional has_title,\ \ LinkedIn URL, and heritage relevance assessment.\nOntology mapping rationale:\ \ - class_uri is prov:Entity because this is a reference to source\n data about\ \ staff, not the person themselves\n- close_mappings includes foaf:Person as\ @@ -34,5 +34,5 @@ classes: slots: - staff_id - name - - has_or_had_title + - has_title - linkedin_url diff --git a/schemas/20251121/linkml/modules/classes/Speaker.yaml b/schemas/20251121/linkml/modules/classes/Speaker.yaml index 27de16d0e4..4ced37af7c 100644 --- a/schemas/20251121/linkml/modules/classes/Speaker.yaml +++ b/schemas/20251121/linkml/modules/classes/Speaker.yaml @@ -12,8 +12,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: Speaker: class_uri: prov:Agent @@ -33,14 +33,14 @@ classes: - schema:Person slots: - - has_or_had_identifier - - has_or_had_label + - identified_by + - has_label slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true - has_or_had_label: + has_label: # range: string required: false @@ -55,8 +55,8 @@ classes: examples: - value: - has_or_had_identifier: spk_001 - has_or_had_label: Curator + identified_by: spk_001 + has_label: Curator - value: - has_or_had_identifier: https://www.wikidata.org/wiki/Q12345 - has_or_had_label: John Doe \ No newline at end of file + identified_by: https://www.wikidata.org/wiki/Q12345 + has_label: John Doe \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/SpecialCollection.yaml b/schemas/20251121/linkml/modules/classes/SpecialCollection.yaml index a491c3ed18..67008966ac 100644 --- a/schemas/20251121/linkml/modules/classes/SpecialCollection.yaml +++ b/schemas/20251121/linkml/modules/classes/SpecialCollection.yaml @@ -11,10 +11,10 @@ imports: - ../classes/AgentType - linkml:types - ../slots/custodian_type - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to - ../slots/label_de - ../slots/label_es - ../slots/label_fr @@ -32,19 +32,19 @@ classes: mixins: - LibraryType slots: - - has_or_had_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_type + - has_score + - related_to + - identified_by - record_set_type - label_de - label_es - label_fr - custodian_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:LibraryType", "hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true record_set_type: diff --git a/schemas/20251121/linkml/modules/classes/SpecialCollectionRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/SpecialCollectionRecordSetType.yaml index be5b035ad1..ecc2975bd0 100644 --- a/schemas/20251121/linkml/modules/classes/SpecialCollectionRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/SpecialCollectionRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to classes: SpecialCollectionRecordSetType: description: A rico:RecordSetType for classifying special collections requiring specialized security, handling, and user services. @@ -20,11 +20,11 @@ classes: exact_mappings: - wd:Q4431094 slots: - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_score + - related_to + - identified_by slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: diff --git a/schemas/20251121/linkml/modules/classes/SpecializedArchive.yaml b/schemas/20251121/linkml/modules/classes/SpecializedArchive.yaml index 326e6de794..2f0568b231 100644 --- a/schemas/20251121/linkml/modules/classes/SpecializedArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/SpecializedArchive.yaml @@ -10,11 +10,11 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/related_to classes: SpecializedArchive: description: An archive specialized in a specific field, subject area, format, or type of documentation. Specialized @@ -23,11 +23,11 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_score + - related_to + - identified_by exact_mappings: - wd:Q27030941 close_mappings: @@ -36,9 +36,9 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: diff --git a/schemas/20251121/linkml/modules/classes/SpecializedArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/SpecializedArchiveRecordSetType.yaml index 68cd96aecb..985becf3a1 100644 --- a/schemas/20251121/linkml/modules/classes/SpecializedArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/SpecializedArchiveRecordSetType.yaml @@ -9,8 +9,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to classes: SpecializedArchiveRecordSetType: description: A rico:RecordSetType for classifying collections from archives specialized in specific fields or subject areas. @@ -19,14 +19,14 @@ classes: exact_mappings: - wd:Q27030941 slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: - SpecializedArchive slots: - - has_or_had_score - - is_or_was_related_to + - has_score + - related_to annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/SpecializedArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/SpecializedArchiveRecordSetTypes.yaml index 83828d90f4..e7614d31a7 100644 --- a/schemas/20251121/linkml/modules/classes/SpecializedArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/SpecializedArchiveRecordSetTypes.yaml @@ -19,8 +19,8 @@ default_prefix: hc imports: - ./SpecializedArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -43,15 +43,15 @@ classes: - SpecializedArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: SpecializedCollectionFonds diff --git a/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechia.yaml b/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechia.yaml index 4fe77f512a..15300f97e9 100644 --- a/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechia.yaml +++ b/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechia.yaml @@ -10,11 +10,11 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/related_to classes: SpecializedArchivesCzechia: description: A type of specialized archives specific to the Czech archival system. These archives focus on particular @@ -23,11 +23,11 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_score + - related_to + - identified_by exact_mappings: - wd:Q101470010 close_mappings: @@ -36,9 +36,9 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: diff --git a/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechiaRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechiaRecordSetType.yaml index ea35184e74..9ec1464e3d 100644 --- a/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechiaRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechiaRecordSetType.yaml @@ -9,8 +9,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to classes: SpecializedArchivesCzechiaRecordSetType: description: A rico:RecordSetType for classifying collections from specialized archives within the Czech archival system. @@ -19,7 +19,7 @@ classes: exact_mappings: - wd:Q101470010 slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: @@ -29,5 +29,5 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" slots: - - has_or_had_score - - is_or_was_related_to + - has_score + - related_to diff --git a/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechiaRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechiaRecordSetTypes.yaml index ac18e162f1..327542e212 100644 --- a/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechiaRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/SpecializedArchivesCzechiaRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./SpecializedArchivesCzechiaRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - SpecializedArchivesCzechiaRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CzechSpecializedFonds diff --git a/schemas/20251121/linkml/modules/classes/Species.yaml b/schemas/20251121/linkml/modules/classes/Species.yaml index aab090eb31..49fbf00d8d 100644 --- a/schemas/20251121/linkml/modules/classes/Species.yaml +++ b/schemas/20251121/linkml/modules/classes/Species.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label classes: Species: class_uri: schema:Taxon @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_label + - has_label diff --git a/schemas/20251121/linkml/modules/classes/Staff.yaml b/schemas/20251121/linkml/modules/classes/Staff.yaml index 5d371f441f..57efef27d7 100644 --- a/schemas/20251121/linkml/modules/classes/Staff.yaml +++ b/schemas/20251121/linkml/modules/classes/Staff.yaml @@ -11,9 +11,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_quantity - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_type classes: Staff: class_uri: schema:Person @@ -23,6 +23,6 @@ classes: specificity_rationale: "Generic utility class created during migration" custodian_types: '["*"]' slots: - - has_or_had_quantity - - has_or_had_type - - has_or_had_description + - has_quantity + - has_type + - has_description diff --git a/schemas/20251121/linkml/modules/classes/StaffRole.yaml b/schemas/20251121/linkml/modules/classes/StaffRole.yaml index 6831b1394d..83264786ff 100644 --- a/schemas/20251121/linkml/modules/classes/StaffRole.yaml +++ b/schemas/20251121/linkml/modules/classes/StaffRole.yaml @@ -14,12 +14,12 @@ imports: - ../enums/CauseOfDeathTypeEnum - ../enums/RoleCategoryEnum - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_domain - - ../slots/has_or_had_responsibility - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/includes_or_included + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_domain + - ../slots/20260202_matang/has_responsibility + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/include - ../slots/is_deceased - ../slots/martyred - ../slots/requires_qualification @@ -46,19 +46,19 @@ classes: - schema:EmployeeRole slots: - is_deceased - - has_or_had_type - - includes_or_included - - has_or_had_description + - has_type + - include + - has_description - martyred - requires_qualification - role_category - role_id - role_name - role_name_local - - has_or_had_score + - has_score - temporal_extent - - has_or_had_domain - - has_or_had_responsibility + - has_domain + - has_responsibility slot_usage: role_id: identifier: true @@ -76,8 +76,8 @@ classes: # range: string # uriorcurie # range: DeceasedStatus inlined: false # Fixed invalid inline for primitive type - description: "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n has_or_had_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" - has_or_had_type: + description: "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n caused_by:\n has_type: CONFLICT\n has_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" + has_type: required: false # range: string # uriorcurie # range: VariantType @@ -86,14 +86,14 @@ classes: inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_label: Keeper - has_or_had_type: SynonymVariant - has_or_had_description: British English alternative for Curator + has_label: Keeper + has_type: SynonymVariant + has_description: British English alternative for Curator - value: - has_or_had_label: Conservateur - has_or_had_type: TranslationVariant - has_or_had_language: fr - includes_or_included: + has_label: Conservateur + has_type: TranslationVariant + has_language: fr + include: required: false # range: string # uriorcurie # range: VariantType diff --git a/schemas/20251121/linkml/modules/classes/StaffRoles.yaml b/schemas/20251121/linkml/modules/classes/StaffRoles.yaml index 892eeea06f..a6dda3d403 100644 --- a/schemas/20251121/linkml/modules/classes/StaffRoles.yaml +++ b/schemas/20251121/linkml/modules/classes/StaffRoles.yaml @@ -8,7 +8,7 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score - ../slots/role_category classes: Curator: @@ -60,7 +60,7 @@ classes: role_category: ifabsent: string(CURATORIAL) slots: - - has_or_had_score + - has_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration @@ -112,7 +112,7 @@ classes: role_category: ifabsent: string(CURATORIAL) slots: - - has_or_had_score + - has_score Conservator: is_a: StaffRole description: 'Conservator specializing in preservation and restoration of heritage objects. @@ -176,7 +176,7 @@ classes: role_category: ifabsent: string(CONSERVATION) slots: - - has_or_had_score + - has_score Archivist: is_a: StaffRole description: 'Archivist managing archival collections, appraisal, arrangement, and description. @@ -230,7 +230,7 @@ classes: role_category: ifabsent: string(ARCHIVAL) slots: - - has_or_had_score + - has_score RecordsManager: is_a: StaffRole description: 'Records manager handling institutional records management and retention. @@ -276,7 +276,7 @@ classes: role_category: ifabsent: string(ARCHIVAL) slots: - - has_or_had_score + - has_score Librarian: is_a: StaffRole description: 'Librarian managing library collections, cataloging, and reference services. @@ -330,7 +330,7 @@ classes: role_category: ifabsent: string(LIBRARY) slots: - - has_or_had_score + - has_score DigitalPreservationSpecialist: is_a: StaffRole description: 'Specialist in long-term preservation of digital collections. @@ -374,7 +374,7 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - has_or_had_score + - has_score DigitizationSpecialist: is_a: StaffRole description: 'Specialist in digitization workflows, imaging, and quality control. @@ -420,7 +420,7 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - has_or_had_score + - has_score DataManager: is_a: StaffRole description: 'Data manager handling collections data, metadata, and information systems. @@ -466,7 +466,7 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - has_or_had_score + - has_score Educator: is_a: StaffRole description: 'Educator designing and delivering educational programs. @@ -514,7 +514,7 @@ classes: role_category: ifabsent: string(EDUCATION) slots: - - has_or_had_score + - has_score PublicEngagementSpecialist: is_a: StaffRole description: 'Specialist in community engagement, outreach, and accessibility. @@ -560,7 +560,7 @@ classes: role_category: ifabsent: string(EDUCATION) slots: - - has_or_had_score + - has_score Director: is_a: StaffRole description: 'Executive director or institutional director (top leadership). @@ -610,7 +610,7 @@ classes: role_category: ifabsent: string(LEADERSHIP) slots: - - has_or_had_score + - has_score DeputyDirector: is_a: StaffRole description: 'Deputy director or assistant director (senior leadership). @@ -652,7 +652,7 @@ classes: role_category: ifabsent: string(LEADERSHIP) slots: - - has_or_had_score + - has_score DepartmentHead: is_a: StaffRole description: 'Head of department or division (middle management). @@ -696,7 +696,7 @@ classes: role_category: ifabsent: string(LEADERSHIP) slots: - - has_or_had_score + - has_score Chairperson: is_a: StaffRole description: 'Chairperson presiding over board meetings and representing the organization. @@ -748,7 +748,7 @@ classes: role_category: ifabsent: string(GOVERNANCE) slots: - - has_or_had_score + - has_score ViceChairperson: is_a: StaffRole description: 'Vice chairperson supporting the chair and presiding in their absence. @@ -796,7 +796,7 @@ classes: role_category: ifabsent: string(GOVERNANCE) slots: - - has_or_had_score + - has_score Secretary: is_a: StaffRole description: 'Secretary managing organizational records, correspondence, and meeting minutes. @@ -848,7 +848,7 @@ classes: role_category: ifabsent: string(GOVERNANCE) slots: - - has_or_had_score + - has_score Treasurer: is_a: StaffRole description: 'Treasurer managing organizational finances and financial reporting. @@ -900,7 +900,7 @@ classes: role_category: ifabsent: string(GOVERNANCE) slots: - - has_or_had_score + - has_score BoardMember: is_a: StaffRole description: 'Board member serving on governing board without specific officer role. @@ -954,7 +954,7 @@ classes: role_category: ifabsent: string(GOVERNANCE) slots: - - has_or_had_score + - has_score Researcher: is_a: StaffRole description: 'Researcher conducting scholarly research on collections. @@ -998,7 +998,7 @@ classes: role_category: ifabsent: string(RESEARCH) slots: - - has_or_had_score + - has_score ResearcherInResidence: is_a: StaffRole description: 'Researcher in residence - visiting scholar with temporary affiliation. @@ -1040,7 +1040,7 @@ classes: role_category: ifabsent: string(RESEARCH) slots: - - has_or_had_score + - has_score Historian: is_a: StaffRole description: 'Historian conducting historical research and documentation for the organization. @@ -1090,7 +1090,7 @@ classes: role_category: ifabsent: string(RESEARCH) slots: - - has_or_had_score + - has_score Genealogist: is_a: StaffRole description: 'Genealogist specializing in family history and lineage research. @@ -1140,7 +1140,7 @@ classes: role_category: ifabsent: string(RESEARCH) slots: - - has_or_had_score + - has_score OralHistorian: is_a: StaffRole description: 'Oral historian collecting and preserving spoken testimonies and memories. @@ -1188,7 +1188,7 @@ classes: role_category: ifabsent: string(RESEARCH) slots: - - has_or_had_score + - has_score FacilitiesManager: is_a: StaffRole description: 'Facilities manager overseeing buildings, climate control, and security. @@ -1232,7 +1232,7 @@ classes: role_category: ifabsent: string(TECHNICAL) slots: - - has_or_had_score + - has_score ITSpecialist: is_a: StaffRole description: 'IT specialist managing technical infrastructure and systems. @@ -1278,7 +1278,7 @@ classes: role_category: ifabsent: string(TECHNICAL) slots: - - has_or_had_score + - has_score SecurityGuard: is_a: StaffRole description: 'Security guard providing facility and collection security. @@ -1322,7 +1322,7 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - has_or_had_score + - has_score Janitor: is_a: StaffRole description: 'Janitor providing building maintenance and minor repairs. @@ -1364,7 +1364,7 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - has_or_had_score + - has_score Cleaner: is_a: StaffRole description: 'Cleaner providing facility cleaning services. @@ -1404,7 +1404,7 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - has_or_had_score + - has_score Volunteer: is_a: StaffRole description: 'Volunteer providing unpaid assistance to the institution. @@ -1448,7 +1448,7 @@ classes: role_category: ifabsent: string(EXTERNAL) slots: - - has_or_had_score + - has_score DataEngineer: is_a: StaffRole description: 'Data engineer building and maintaining data infrastructure. @@ -1490,7 +1490,7 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - has_or_had_score + - has_score DataScientist: is_a: StaffRole description: 'Data scientist applying statistical and ML methods to heritage data. @@ -1532,7 +1532,7 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - has_or_had_score + - has_score DataAnalyst: is_a: StaffRole description: 'Data analyst providing reporting and business intelligence. @@ -1574,10 +1574,10 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - has_or_had_score + - has_score EnterpriseArchitect: is_a: StaffRole - description: 'Enterprise has_or_had_architect designing organizational IT architecture. + description: 'Enterprise has_architect designing organizational IT architecture. **Official Title vs De Facto Work**: @@ -1616,7 +1616,7 @@ classes: role_category: ifabsent: string(TECHNICAL) slots: - - has_or_had_score + - has_score ProductOwner: is_a: StaffRole description: 'Product owner managing digital product development priorities. @@ -1658,7 +1658,7 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - has_or_had_score + - has_score Caterer: is_a: StaffRole description: "Caterer providing food service for events and daily operations.\n\n**Official Title vs De Facto Work**:\nMay be involved in event planning, venue management,\nand visitor experience beyond food service.\n\n**Common Variants**:\n- Food Service Manager\n- Event Caterer\n- Caf\xE9 Manager\n\n**Typical Domains**: Museums, galleries with food service\n\n**Typical Responsibilities**:\n- Event catering\n- Caf\xE9/restaurant operations\n- Menu development\n- Food safety compliance\n- Vendor coordination\n" @@ -1666,7 +1666,7 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - has_or_had_score + - has_score DepotWorker: is_a: StaffRole description: 'Depot worker handling collection storage and movement. @@ -1710,7 +1710,7 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - has_or_had_score + - has_score HumanResourcesWorker: is_a: StaffRole description: 'Human resources worker managing personnel administration. @@ -1754,7 +1754,7 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - has_or_had_score + - has_score MapSpecialist: is_a: StaffRole description: 'Map specialist with expertise in cartographic collections. @@ -1798,7 +1798,7 @@ classes: role_category: ifabsent: string(LIBRARY) slots: - - has_or_had_score + - has_score FrontendDeveloper: is_a: StaffRole description: 'Frontend developer creating user interfaces for digital platforms. @@ -1842,7 +1842,7 @@ classes: role_category: ifabsent: string(TECHNICAL) slots: - - has_or_had_score + - has_score BackendDeveloper: is_a: StaffRole description: 'Backend developer building server-side applications and APIs. @@ -1886,7 +1886,7 @@ classes: role_category: ifabsent: string(TECHNICAL) slots: - - has_or_had_score + - has_score ArtistInResidence: is_a: StaffRole description: 'Artist in residence creating new work inspired by collections. @@ -1926,7 +1926,7 @@ classes: role_category: ifabsent: string(CREATIVE) slots: - - has_or_had_score + - has_score Spokesperson: is_a: StaffRole description: 'Spokesperson representing the institution to media and public. @@ -1970,7 +1970,7 @@ classes: role_category: ifabsent: string(EDUCATION) slots: - - has_or_had_score + - has_score Receptionist: is_a: StaffRole description: 'Receptionist providing front-desk visitor services. @@ -2012,7 +2012,7 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - has_or_had_score + - has_score CallCenterWorker: is_a: StaffRole description: 'Call center worker handling telephone inquiries. @@ -2054,7 +2054,7 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - has_or_had_score + - has_score Host: is_a: StaffRole description: 'Host providing visitor welcome and orientation services. @@ -2098,7 +2098,7 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - has_or_had_score + - has_score TourGuide: is_a: StaffRole description: 'Tour guide leading visitors through exhibitions, sites, or collections. @@ -2152,7 +2152,7 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - has_or_had_score + - has_score Consultant: is_a: StaffRole description: 'Consultant providing external expertise on specific projects. @@ -2196,7 +2196,7 @@ classes: role_category: ifabsent: string(EXTERNAL) slots: - - has_or_had_score + - has_score LegalConsultant: is_a: StaffRole description: 'Legal consultant providing external legal expertise. @@ -2238,7 +2238,7 @@ classes: role_category: ifabsent: string(EXTERNAL) slots: - - has_or_had_score + - has_score Lawyer: is_a: StaffRole description: 'Lawyer providing in-house or external legal services. @@ -2282,7 +2282,7 @@ classes: role_category: ifabsent: string(EXTERNAL) slots: - - has_or_had_score + - has_score Translator: is_a: StaffRole description: 'Translator providing language translation services. @@ -2324,7 +2324,7 @@ classes: role_category: ifabsent: string(EXTERNAL) slots: - - has_or_had_score + - has_score Gardener: is_a: StaffRole description: 'Gardener maintaining grounds and gardens. @@ -2368,7 +2368,7 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - has_or_had_score + - has_score Waiter: is_a: StaffRole description: "Waiter providing food service in museum caf\xE9s or events.\n\n**Official Title vs De Facto Work**:\nIn heritage settings, may also provide visitor information\nand represent the institution's hospitality.\n\n**Common Variants**:\n- Server\n- Food Service Staff\n- Caf\xE9 Staff\n\n**Typical Domains**: Heritage institutions with food service\n\n**Typical Responsibilities**:\n- Table service\n- Order taking\n- Food delivery\n- Customer service\n- Caf\xE9 maintenance\n" @@ -2376,7 +2376,7 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - has_or_had_score + - has_score UXDesigner: is_a: StaffRole description: 'UX designer creating user experiences for digital products. @@ -2420,7 +2420,7 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - has_or_had_score + - has_score DevOpsEngineer: is_a: StaffRole description: 'DevOps engineer managing deployment and infrastructure automation. @@ -2462,7 +2462,7 @@ classes: role_category: ifabsent: string(TECHNICAL) slots: - - has_or_had_score + - has_score ScrumMaster: is_a: StaffRole description: 'Scrum master facilitating agile development processes. @@ -2504,7 +2504,7 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - has_or_had_score + - has_score MLOpsEngineer: is_a: StaffRole description: 'MLOps engineer managing machine learning operations. @@ -2546,7 +2546,7 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - has_or_had_score + - has_score MLEngineer: is_a: StaffRole description: 'Machine learning engineer developing ML models and systems. @@ -2588,7 +2588,7 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - has_or_had_score + - has_score LinkedDataSpecialist: is_a: StaffRole description: 'Linked data specialist managing semantic web and LOD initiatives. @@ -2634,7 +2634,7 @@ classes: role_category: ifabsent: string(DIGITAL) slots: - - has_or_had_score + - has_score InternationalDelegate: is_a: StaffRole description: "International delegate representing institution in global forums.\n\n**Official Title vs De Facto Work**:\nMay participate in standards development, international\npartnerships, and diplomatic cultural exchange.\n\n**Common Variants**:\n- International Relations Officer\n- Cultural Attach\xE9\n- International Programs Manager\n- Global Partnerships Director\n\n**Typical Domains**: National institutions, international organizations\n\n**Typical Responsibilities**:\n- International representation\n- Standards body participation\n- Partnership development\n- Cultural diplomacy\n- Knowledge exchange\n" @@ -2642,7 +2642,7 @@ classes: role_category: ifabsent: string(EXTERNAL) slots: - - has_or_had_score + - has_score CooperativeManager: is_a: StaffRole description: "Manager of a cooperative heritage organization overseeing daily operations.\n\n**Official Title vs De Facto Work**:\nFormally manages operations, but in cooperatives often works closely\nwith member governance and balances member interests with organizational needs.\n\n**Common Variants**:\n- Cooperative Director\n- Co-op Manager\n- Co\xF6peratiemanager (Dutch)\n- General Manager\n- Operations Manager\n\n**Typical Domains**: Heritage cooperatives, community archives, shared collection facilities\n\n**Typical Responsibilities**:\n- Day-to-day operations management\n- Member coordination and communication\n- Resource allocation among members\n- Financial management\n- Staff supervision\n- Implementing board decisions\n- Maintaining cooperative principles\n" @@ -2650,7 +2650,7 @@ classes: role_category: ifabsent: string(LEADERSHIP) slots: - - has_or_had_score + - has_score MembershipCoordinator: is_a: StaffRole description: 'Coordinator managing membership administration and engagement. @@ -2700,7 +2700,7 @@ classes: role_category: ifabsent: string(SUPPORT) slots: - - has_or_had_score + - has_score NewsletterEditor: is_a: StaffRole description: 'Editor producing newsletters and regular publications for members. @@ -2750,7 +2750,7 @@ classes: role_category: ifabsent: string(EXTERNAL) slots: - - has_or_had_score + - has_score EventCoordinator: is_a: StaffRole description: "Coordinator organizing events, programs, and activities for the organization.\n\n**Official Title vs De Facto Work**:\nFormally coordinates events, but often involved in marketing,\nvolunteer management, venue logistics, and sponsorship.\n\n**Common Variants**:\n- Events Manager\n- Programs Coordinator\n- Activiteitenco\xF6rdinator (Dutch)\n- Program Officer\n- Special Events Coordinator\n\n**Typical Domains**: Historical societies, museums, heritage organizations, libraries\n\n**Typical Responsibilities**:\n- Event planning and execution\n- Venue coordination\n- Speaker/presenter coordination\n- Volunteer coordination for events\n- Event promotion\n- Budget management for events\n- Post-event evaluation\n" @@ -2758,4 +2758,4 @@ classes: role_category: ifabsent: string(EXTERNAL) slots: - - has_or_had_score + - has_score diff --git a/schemas/20251121/linkml/modules/classes/Standard.yaml b/schemas/20251121/linkml/modules/classes/Standard.yaml index c3802e0e6b..a7dd0bb386 100644 --- a/schemas/20251121/linkml/modules/classes/Standard.yaml +++ b/schemas/20251121/linkml/modules/classes/Standard.yaml @@ -13,8 +13,8 @@ imports: - ../enums/StandardScopeTypeEnum - ../enums/StandardTypeEnum - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_score classes: Standard: class_uri: skos:ConceptScheme @@ -40,7 +40,7 @@ classes: - schema:DefinedTermSet - dcterms:Standard slots: - - has_or_had_score + - has_score - name - registration_authority annotations: diff --git a/schemas/20251121/linkml/modules/classes/StandardsOrganization.yaml b/schemas/20251121/linkml/modules/classes/StandardsOrganization.yaml index 14ec8d3260..0f5dfb3594 100644 --- a/schemas/20251121/linkml/modules/classes/StandardsOrganization.yaml +++ b/schemas/20251121/linkml/modules/classes/StandardsOrganization.yaml @@ -12,9 +12,9 @@ imports: - linkml:types - ../enums/StandardsOrganizationTypeEnum - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_score - - ../slots/is_or_was_founded_through + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/founded_through classes: StandardsOrganization: class_uri: org:FormalOrganization @@ -48,10 +48,10 @@ classes: related_mappings: - schema:GovernmentOrganization slots: - - has_or_had_score + - has_score - name - organization_type - - is_or_was_founded_through + - founded_through annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/StateArchives.yaml b/schemas/20251121/linkml/modules/classes/StateArchives.yaml index 396d87fd61..e1b7fb9a04 100644 --- a/schemas/20251121/linkml/modules/classes/StateArchives.yaml +++ b/schemas/20251121/linkml/modules/classes/StateArchives.yaml @@ -17,11 +17,11 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/related_to classes: StateArchives: description: An archive operated by and for a state (subnational entity), responsible for preserving records of state @@ -30,11 +30,11 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_score + - related_to + - identified_by exact_mappings: - wd:Q52341833 close_mappings: @@ -43,9 +43,9 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: diff --git a/schemas/20251121/linkml/modules/classes/StateArchivesRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/StateArchivesRecordSetType.yaml index 06b4f8a7bf..9094ae2f5c 100644 --- a/schemas/20251121/linkml/modules/classes/StateArchivesRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/StateArchivesRecordSetType.yaml @@ -9,8 +9,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to classes: StateArchivesRecordSetType: description: A rico:RecordSetType for classifying collections of state government records and administrative documentation. @@ -19,14 +19,14 @@ classes: exact_mappings: - wd:Q52341833 slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: - StateArchives slots: - - has_or_had_score - - is_or_was_related_to + - has_score + - related_to annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/StateArchivesRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/StateArchivesRecordSetTypes.yaml index 3df02c7063..8135ffe040 100644 --- a/schemas/20251121/linkml/modules/classes/StateArchivesRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/StateArchivesRecordSetTypes.yaml @@ -19,8 +19,8 @@ default_prefix: hc imports: - ./StateArchivesRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -43,15 +43,15 @@ classes: - StateArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: StateGovernmentFonds @@ -84,15 +84,15 @@ classes: - StateArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: JudicialRecordSeries @@ -123,15 +123,15 @@ classes: - StateArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: LandRecordsSeries @@ -162,15 +162,15 @@ classes: - StateArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: TaxRecordsSeries diff --git a/schemas/20251121/linkml/modules/classes/StateArchivesSection.yaml b/schemas/20251121/linkml/modules/classes/StateArchivesSection.yaml index 082ac07743..281e0a6fa7 100644 --- a/schemas/20251121/linkml/modules/classes/StateArchivesSection.yaml +++ b/schemas/20251121/linkml/modules/classes/StateArchivesSection.yaml @@ -17,11 +17,11 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/related_to classes: StateArchivesSection: description: A section of a national archive in Italy (sezione di archivio di Stato). These are branch offices or divisions @@ -30,11 +30,11 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_score + - related_to + - identified_by exact_mappings: - wd:Q44796387 close_mappings: @@ -43,9 +43,9 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: diff --git a/schemas/20251121/linkml/modules/classes/StateArchivesSectionRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/StateArchivesSectionRecordSetType.yaml index 872068036c..303fcc4f3e 100644 --- a/schemas/20251121/linkml/modules/classes/StateArchivesSectionRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/StateArchivesSectionRecordSetType.yaml @@ -9,8 +9,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to classes: StateArchivesSectionRecordSetType: description: A rico:RecordSetType for classifying collections from Italian state archive sections. @@ -19,7 +19,7 @@ classes: exact_mappings: - wd:Q44796387 slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: @@ -29,5 +29,5 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" slots: - - has_or_had_score - - is_or_was_related_to + - has_score + - related_to diff --git a/schemas/20251121/linkml/modules/classes/StateArchivesSectionRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/StateArchivesSectionRecordSetTypes.yaml index 6810ecd066..4b107fb1aa 100644 --- a/schemas/20251121/linkml/modules/classes/StateArchivesSectionRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/StateArchivesSectionRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./StateArchivesSectionRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - StateArchivesSectionRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: StateSectionFonds diff --git a/schemas/20251121/linkml/modules/classes/StateDistrictArchive.yaml b/schemas/20251121/linkml/modules/classes/StateDistrictArchive.yaml index 73181bfe14..b3d0ea384a 100644 --- a/schemas/20251121/linkml/modules/classes/StateDistrictArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/StateDistrictArchive.yaml @@ -10,11 +10,11 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/related_to classes: StateDistrictArchive: description: A type of archive in the Czech Republic operating at the district (okres) level. State district archives @@ -23,11 +23,11 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_score + - related_to + - identified_by exact_mappings: - wd:Q53131316 close_mappings: @@ -36,9 +36,9 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: diff --git a/schemas/20251121/linkml/modules/classes/StateDistrictArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/StateDistrictArchiveRecordSetType.yaml index b4969a8d73..462de3690d 100644 --- a/schemas/20251121/linkml/modules/classes/StateDistrictArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/StateDistrictArchiveRecordSetType.yaml @@ -9,8 +9,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to classes: StateDistrictArchiveRecordSetType: description: A rico:RecordSetType for classifying collections from Czech state district archives. @@ -19,7 +19,7 @@ classes: exact_mappings: - wd:Q53131316 slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: @@ -29,5 +29,5 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" slots: - - has_or_had_score - - is_or_was_related_to + - has_score + - related_to diff --git a/schemas/20251121/linkml/modules/classes/StateDistrictArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/StateDistrictArchiveRecordSetTypes.yaml index 08e1c49b1a..6b085663ac 100644 --- a/schemas/20251121/linkml/modules/classes/StateDistrictArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/StateDistrictArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./StateDistrictArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - StateDistrictArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: StateDistrictFonds diff --git a/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechia.yaml b/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechia.yaml index 1e5fc1c838..962249c352 100644 --- a/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechia.yaml +++ b/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechia.yaml @@ -10,11 +10,11 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/related_to classes: StateRegionalArchiveCzechia: description: A state regional archive in the Czech Republic, responsible for preserving and providing access to historical @@ -23,11 +23,11 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_score + - related_to + - identified_by exact_mappings: - wd:Q53130134 close_mappings: @@ -36,9 +36,9 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: diff --git a/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechiaRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechiaRecordSetType.yaml index 0cb1230e48..238f0b57cf 100644 --- a/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechiaRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechiaRecordSetType.yaml @@ -9,8 +9,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to classes: StateRegionalArchiveCzechiaRecordSetType: description: A rico:RecordSetType for classifying collections from Czech state regional archives. @@ -19,7 +19,7 @@ classes: exact_mappings: - wd:Q53130134 slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: @@ -29,5 +29,5 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']" slots: - - has_or_had_score - - is_or_was_related_to + - has_score + - related_to diff --git a/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechiaRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechiaRecordSetTypes.yaml index e68ceba2d6..27982d4ba1 100644 --- a/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechiaRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/StateRegionalArchiveCzechiaRecordSetTypes.yaml @@ -19,8 +19,8 @@ default_prefix: hc imports: - ./StateRegionalArchiveCzechiaRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -43,15 +43,15 @@ classes: - StateRegionalArchiveCzechiaRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CzechiaRegionalStateFonds diff --git a/schemas/20251121/linkml/modules/classes/StatementType.yaml b/schemas/20251121/linkml/modules/classes/StatementType.yaml index d4b457d7ea..dbe0dc5a16 100644 --- a/schemas/20251121/linkml/modules/classes/StatementType.yaml +++ b/schemas/20251121/linkml/modules/classes/StatementType.yaml @@ -11,13 +11,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score classes: StatementType: class_uri: skos:Concept @@ -34,15 +34,15 @@ classes: - org:purpose - schema:description slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code - - has_or_had_hypernym - - has_or_had_hyponym - - has_or_had_score + - identified_by + - has_label + - has_description + - has_code + - has_hypernym + - has_hyponym + - has_score slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true @@ -50,7 +50,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/statement-type/mission - value: https://nde.nl/ontology/hc/statement-type/vision - has_or_had_code: + has_code: # range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ @@ -60,7 +60,7 @@ classes: - value: GOAL - value: VALUE - value: MOTTO - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -71,29 +71,29 @@ classes: - value: - Vision Statement@en - visieverklaring@nl - has_or_had_description: + has_description: # range: string required: false examples: - value: Statement defining the organization's core purpose and reason for existence - has_or_had_hypernym: + has_hypernym: range: StatementType required: false - has_or_had_hyponym: + has_hyponym: range: StatementType multivalued: true required: false annotations: specificity_score: '0.45' specificity_rationale: Moderately specific - statement types are organizational metadata. - has_or_had_score: null + has_score: null replaces_enum: StatementTypeEnum migration_date: '2026-01-13' custodian_types: "['*']" comments: - Abstract base class - use specific subclasses (MissionStatement, etc.) - Represents STATEMENT TYPES, not statement instances - - MissionStatement.has_or_had_type references these type classes + - MissionStatement.has_type references these type classes - Follows Type/Types naming convention (Rule 0b) - Uses shared slots per Rule 38 (slot centralization) see_also: @@ -101,9 +101,9 @@ classes: - https://schema.org/Mission examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/statement-type/mission - has_or_had_code: MISSION - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/statement-type/mission + has_code: MISSION + has_label: - Mission Statement@en - missieverklaring@nl - has_or_had_description: Statement defining the organization's core purpose \ No newline at end of file + has_description: Statement defining the organization's core purpose \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/StatementTypes.yaml b/schemas/20251121/linkml/modules/classes/StatementTypes.yaml index c7e21423d8..877369cfca 100644 --- a/schemas/20251121/linkml/modules/classes/StatementTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/StatementTypes.yaml @@ -10,8 +10,8 @@ default_prefix: hc imports: - ./StatementType - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_identifier + - ../slots/20260202_matang/has_code + - ../slots/identified_by classes: MissionStatementType: is_a: StatementType @@ -44,9 +44,9 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: MISSION - has_or_had_identifier: + identified_by: equals_string: https://nde.nl/ontology/hc/statement-type/mission annotations: specificity_score: '0.50' @@ -87,9 +87,9 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: VISION - has_or_had_identifier: + identified_by: equals_string: https://nde.nl/ontology/hc/statement-type/vision annotations: specificity_score: '0.50' @@ -127,9 +127,9 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: GOAL - has_or_had_identifier: + identified_by: equals_string: https://nde.nl/ontology/hc/statement-type/goal annotations: specificity_score: '0.55' @@ -168,9 +168,9 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: VALUE - has_or_had_identifier: + identified_by: equals_string: https://nde.nl/ontology/hc/statement-type/value annotations: specificity_score: '0.50' @@ -212,9 +212,9 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: MOTTO - has_or_had_identifier: + identified_by: equals_string: https://nde.nl/ontology/hc/statement-type/motto annotations: specificity_score: '0.45' diff --git a/schemas/20251121/linkml/modules/classes/Status.yaml b/schemas/20251121/linkml/modules/classes/Status.yaml index f91611f28c..660865d1fd 100644 --- a/schemas/20251121/linkml/modules/classes/Status.yaml +++ b/schemas/20251121/linkml/modules/classes/Status.yaml @@ -12,9 +12,9 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type classes: Status: class_uri: schema:PropertyValue @@ -42,14 +42,14 @@ classes: - prov:Entity slots: - - has_or_had_type - - has_or_had_label - - has_or_had_description + - has_type + - has_label + - has_description slot_usage: - has_or_had_type: + has_type: # range: string - has_or_had_label: + has_label: # range: string annotations: @@ -60,8 +60,8 @@ classes: examples: - value: - has_or_had_type: DEFAULT - has_or_had_label: "Default Language" + has_type: DEFAULT + has_label: "Default Language" - value: - has_or_had_type: SECONDARY - has_or_had_label: "Alternative Audio" \ No newline at end of file + has_type: SECONDARY + has_label: "Alternative Audio" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Storage.yaml b/schemas/20251121/linkml/modules/classes/Storage.yaml index fe8a07cbe5..3628c3458b 100644 --- a/schemas/20251121/linkml/modules/classes/Storage.yaml +++ b/schemas/20251121/linkml/modules/classes/Storage.yaml @@ -20,14 +20,14 @@ imports: - ../enums/StorageTypeEnum - ../enums/StorageUnitTypeEnum - ../slots/current_utilization_percent - - ../slots/has_or_had_capacity - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_policy - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_stored_at + - ../slots/20260202_matang/has_capacity + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_policy + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/stored_at - ../slots/managed_by - ../slots/provides_or_provided - ../slots/refers_to_custodian @@ -39,7 +39,7 @@ classes: description: "Physical storage facility where heritage collections are preserved.\n\n**DEFINITION**:\n\nA Storage represents a dedicated facility or area for preserving\nheritage materials. This includes archive depots, museum storage\nvaults, library stacks, and specialized storage for different\nmaterial types.\n\n**Wikidata Alignment**:\n- Q1191732 (depot/storage facility)\n- Q1454974 (archive storage)\n- Q1280667 (art storage)\n\n**HC Ontology Extension (hc-storage.ttl)**:\n\nPrimary class: `hc:StorageFacility` (subclass of `crm:E27_Site`)\n\nThe Heritage Custodian storage ontology extension provides specialized\nclasses and properties for heritage storage management:\n\n- `hc:StorageFacility` - Top-level storage facility (THIS CLASS)\n- `hc:StorageUnit` - Individual compartments, shelves, cabinets\n- `hc:EnvironmentalZone` - Climate-controlled areas\n- `hc:StorageAssignment` - Assignment of objects to locations\n- `hc:StorageConditionAssessment` - Environmental assessments\n- `hc:EnvironmentalRequirement`\ \ - Climate specifications\n- `hc:StorageCapacitySpecification` - Capacity measurements\n\nKey HC properties used:\n- `hc:hasStorageSection` - Links facility to zones/units (extends P59)\n- `hc:currentlyStores` - Links location to objects (extends P55)\n- `hc:hasEnvironmentalRequirement` - Links to climate specs\n- `hc:hasStorageCapacity` - Links to capacity measurements\n\nSee: `frontend/public/ontology/hc-storage.ttl`\n\n**CIDOC-CRM Alignment (v7.1.3)**:\n\nBase class: `crm:E27_Site` - \"This class comprises pieces of land\nor sea floor. In contrast to the purely geometric notion of E53 Place,\nthis class describes constellations of matter on the surface of the\nEarth or other celestial body, which can be represented by photographs,\npaintings and maps.\"\n\n**Location Predicate Hierarchy**:\n\n| Predicate | Meaning | Use Case |\n|-----------|---------|----------|\n| P53 has former or current location | Any location in history | General location tracking |\n| P54 has current permanent\ \ location | Reserved/designated location | Permanent storage assignment |\n| P55 has current location | Actual current location | Where object is NOW |\n\nNote: P55 is a specialization of P53. An object may have a permanent\nlocation (P54) but currently be elsewhere (P55), e.g., on loan.\n\n**PREMIS Alignment**:\n\n`premis:StorageLocation` - \"Information needed to retrieve a physical\nitem from its physical storage location or a file from the storage\nsystem, or to access a bitstream within a file.\"\n\nPREMIS also provides:\n- `premis:StorageMedium` - Physical medium (tape, disk, etc.)\n- `premis:storedAt` - Links objects to storage location\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nCustodian (hub)\n \u2502\n \u251C\u2500\u2500 storage_facilities \u2192 Storage[] (THIS CLASS)\n \u2502 \u251C\u2500\u2500 storage_type (StorageTypeEnum)\n \u2502 \u251C\u2500\u2500 storage_location \u2192 AuxiliaryPlace (physical site)\n \u2502 \u251C\u2500\u2500 stores_collections\ - \ \u2192 CustodianCollection[]\n \u2502 \u251C\u2500\u2500 storage_conditions \u2192 StorageCondition[]\n \u2502 \u251C\u2500\u2500 has_or_had_policy \u2192 ConditionPolicy/StorageConditionPolicy\n \u2502 \u251C\u2500\u2500 has_section \u2192 Storage[] (subdivisions via P59)\n \u2502 \u251C\u2500\u2500 move_events \u2192 MoveEvent[] (objects moved to/from)\n \u2502 \u2514\u2500\u2500 custody_transfers \u2192 CustodyTransferEvent[]\n \u2502\n \u2514\u2500\u2500 place_designation \u2192 CustodianPlace\n \u2514\u2500\u2500 auxiliary_places \u2192 AuxiliaryPlace[]\n \u2514\u2500\u2500 hosts_storage \u2192 Storage (inverse)\n```\n\n**KEY DISTINCTION**:\n\n- **Storage**: The FUNCTIONAL role of preserving collections\n- **AuxiliaryPlace**: The PHYSICAL location/building\n- **StorageCondition**: The ACTUAL observed state\n- **StorageConditionPolicy**: The INTENDED/designed conditions\n\nA single AuxiliaryPlace may host multiple Storage facilities\n\ + \ \u2192 CustodianCollection[]\n \u2502 \u251C\u2500\u2500 storage_conditions \u2192 StorageCondition[]\n \u2502 \u251C\u2500\u2500 has_policy \u2192 ConditionPolicy/StorageConditionPolicy\n \u2502 \u251C\u2500\u2500 has_section \u2192 Storage[] (subdivisions via P59)\n \u2502 \u251C\u2500\u2500 move_events \u2192 MoveEvent[] (objects moved to/from)\n \u2502 \u2514\u2500\u2500 custody_transfers \u2192 CustodyTransferEvent[]\n \u2502\n \u2514\u2500\u2500 place_designation \u2192 CustodianPlace\n \u2514\u2500\u2500 auxiliary_places \u2192 AuxiliaryPlace[]\n \u2514\u2500\u2500 hosts_storage \u2192 Storage (inverse)\n```\n\n**KEY DISTINCTION**:\n\n- **Storage**: The FUNCTIONAL role of preserving collections\n- **AuxiliaryPlace**: The PHYSICAL location/building\n- **StorageCondition**: The ACTUAL observed state\n- **StorageConditionPolicy**: The INTENDED/designed conditions\n\nA single AuxiliaryPlace may host multiple Storage facilities\n\ (e.g., climate-controlled art storage + general depot in same building).\n\n**USE CASES**:\n\n1. **Archive Depot**:\n - storage_type: ARCHIVE_DEPOT\n - standards_applied: [ISO_TR_19815_2018, EN_16893_2018]\n - climate control: 18\xB0C, 50% RH\n \n2. **Cold Storage for Film**:\n - storage_type: COLD_STORAGE\n - standards_applied: [IMAGE_PERMANENCE_INSTITUTE]\n - climate control: -18\xB0C, 30% RH\n \n3. **Open Study Storage**:\n - storage_type: OPEN_STORAGE\n - accessible to researchers\n - combined storage/study function\n" exact_mappings: - hc:StorageFacility @@ -56,28 +56,28 @@ classes: - org:Site - crm:E53_Place slots: - - has_or_had_capacity - - has_or_had_policy + - has_capacity + - has_policy - current_utilization_percent - provides_or_provided - managed_by - refers_to_custodian - standards_applied - - has_or_had_description - - has_or_had_identifier - - is_or_was_stored_at - - has_or_had_label - - has_or_had_type - - has_or_had_score + - has_description + - identified_by + - stored_at + - has_label + - has_type + - has_score - temporal_extent slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/storage/rijksmuseum-depot-amersfoort - has_or_had_label: + has_label: # range: string required: true inlined: false # Fixed invalid inline for primitive type @@ -91,59 +91,59 @@ classes: - value: label_text: Manuscript Storage Room 3 language: en - has_or_had_type: + has_type: # range: string # uriorcurie required: true examples: - value: ARCHIVE_DEPOT - value: COLD_STORAGE - value: ART_STORAGE - has_or_had_description: + has_description: multivalued: true examples: - value: 'description_text: ''Climate-controlled archive depot housing overflow document collections. Equipped with mobile shelving system (Compactus). Staff access only. Fire suppression: inert gas system.'' description_type: storage language: en ' - is_or_was_stored_at: + stored_at: range: StorageLocation required: false inlined: true examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort + has_label: label_text: Rijksmuseum Depot Amersfoort language: nl - has_or_had_capacity: + has_capacity: range: Capacity multivalued: true inlined_as_list: true examples: - value: - - has_or_had_quantity: - has_or_had_numeric_value: 8000.0 - has_or_had_unit: - has_or_had_type: LinearMeter - has_or_had_symbol: m - has_or_had_type: ShelfLength - has_or_had_description: Total linear meters of shelving + - has_quantity: + has_numeric_value: 8000.0 + has_unit: + has_type: LinearMeter + has_symbol: m + has_type: ShelfLength + has_description: Total linear meters of shelving - value: - - has_or_had_quantity: - has_or_had_numeric_value: 2500.0 - has_or_had_unit: - has_or_had_type: CubicMeter - has_or_had_symbol: "m\xB3" - has_or_had_type: Volume + - has_quantity: + has_numeric_value: 2500.0 + has_unit: + has_type: CubicMeter + has_symbol: "m\xB3" + has_type: Volume - value: - - has_or_had_quantity: - has_or_had_numeric_value: 50000 - has_or_had_unit: - has_or_had_type: Item - has_or_had_symbol: archive boxes - has_or_had_type: ItemCount + - has_quantity: + has_numeric_value: 50000 + has_unit: + has_type: Item + has_symbol: archive boxes + has_type: ItemCount - value: - - has_or_had_description: Approximately 5,000 linear meters of shelving across 3 floors + - has_description: Approximately 5,000 linear meters of shelving across 3 floors is_estimate: true current_utilization_percent: range: float @@ -159,7 +159,7 @@ classes: - ISO_TR_19815_2018 - EN_16893_2018 - EN_15757_2010 - has_or_had_policy: + has_policy: # range: string examples: - value: @@ -197,46 +197,46 @@ classes: - http://www.cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E27 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/storage/rijksmuseum-depot-amersfoort - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/storage/rijksmuseum-depot-amersfoort + has_label: label_text: Depot Amersfoort language: nl - has_or_had_type: ART_STORAGE - has_or_had_description: + has_type: ART_STORAGE + has_description: - description_text: Off-site storage depot for Rijksmuseum overflow collections. Climate-controlled facility housing paintings, sculptures, and decorative arts not currently on display. description_type: storage language: en - is_or_was_stored_at: - has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort - has_or_had_label: + stored_at: + identified_by: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort + has_label: label_text: Rijksmuseum Depot Amersfoort language: nl - has_or_had_capacity: - - has_or_had_quantity: - has_or_had_numeric_value: 8000.0 - has_or_had_unit: - has_or_had_type: LinearMeter - has_or_had_symbol: m - has_or_had_type: ShelfLength - has_or_had_description: Total linear shelf capacity + has_capacity: + - has_quantity: + has_numeric_value: 8000.0 + has_unit: + has_type: LinearMeter + has_symbol: m + has_type: ShelfLength + has_description: Total linear shelf capacity current_utilization_percent: 78.5 standards_applied: - EN_16893_2018 - EN_15757_2010 refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - value: - has_or_had_identifier: https://nde.nl/ontology/hc/storage/nationaal-archief-depot-b - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/storage/nationaal-archief-depot-b + has_label: label_text: Depot B - Cold Storage language: en - has_or_had_type: COLD_STORAGE - has_or_had_description: + has_type: COLD_STORAGE + has_description: - description_text: "Refrigerated vault for film negatives, photographic materials, and temperature-sensitive documents. Maintained at 4\xB0C, 35% RH." description_type: storage language: en - has_or_had_capacity: + has_capacity: - capacity_type: SHELF_LENGTH - has_or_had_description: 1,200 linear meters of cold storage shelving + has_description: 1,200 linear meters of cold storage shelving is_estimate: false standards_applied: - IMAGE_PERMANENCE_INSTITUTE diff --git a/schemas/20251121/linkml/modules/classes/StorageCondition.yaml b/schemas/20251121/linkml/modules/classes/StorageCondition.yaml index 628d30c970..027665219f 100644 --- a/schemas/20251121/linkml/modules/classes/StorageCondition.yaml +++ b/schemas/20251121/linkml/modules/classes/StorageCondition.yaml @@ -15,19 +15,19 @@ imports: - linkml:types - ../enums/StorageConditionStatusEnum - ../enums/StorageObserverTypeEnum - - ../slots/has_or_had_category - - ../slots/has_or_had_identifier # was: condition_id - - ../slots/has_or_had_measurement - - ../slots/has_or_had_measurement_type - - ../slots/has_or_had_note # was: category_note - - ../slots/has_or_had_provenance - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_status - - ../slots/includes_or_included + - ../slots/categorized_as + - ../slots/identified_by # was: condition_id + - ../slots/20260202_matang/has_measurement + - ../slots/20260202_matang/has_measurement_type + - ../slots/20260202_matang/has_note # was: category_note + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/include - ../slots/indicates_or_indicated # was: follow_up_date - ../slots/is_official_assessment - - ../slots/is_or_was_based_on - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/based_on + - ../slots/20260202_matang/generated_by - ../slots/measurement_data - ../slots/observation_date - ../slots/observation_note @@ -79,13 +79,13 @@ classes: - pico:Observation - hc:StorageEnvironmentObservation slots: - - includes_or_included - # REMOVED 2026-01-22: compliance_status - migrated to has_or_had_status + ComplianceStatus (Rule 53) - - has_or_had_status - - has_or_had_identifier # was: condition_id - migrated per Rule 53 (2026-01-18) - # REMOVED 2026-01-19: confidence_score - migrated to is_or_was_generated_by (Rule 53) - - is_or_was_generated_by - - has_or_had_provenance + - include + # REMOVED 2026-01-22: compliance_status - migrated to has_status + ComplianceStatus (Rule 53) + - has_status + - identified_by # was: condition_id - migrated per Rule 53 (2026-01-18) + # REMOVED 2026-01-19: confidence_score - migrated to generated_by (Rule 53) + - generated_by + - has_provenance - indicates_or_indicated # was: follow_up_date - migrated per Rule 53 (2026-01-26) - is_official_assessment - measurement_data @@ -100,11 +100,11 @@ classes: - remediation_note - remediation_required - supersedes_or_superseded - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - # has_assessment_category REMOVED - migrated to has_or_had_category (Rule 53) - - has_or_had_category + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + # has_assessment_category REMOVED - migrated to categorized_as (Rule 53) + - categorized_as slot_usage: - has_or_had_identifier: # was: condition_id - migrated per Rule 53 (2026-01-18) + identified_by: # was: condition_id - migrated per Rule 53 (2026-01-18) # range: string # uriorcurie inlined: false # Fixed invalid inline for primitive type required: true @@ -157,72 +157,72 @@ classes: examples: - value: CRITICAL - value: GOOD - includes_or_included: + include: range: StorageConditionCategoryAssessment multivalued: true inlined_as_list: true examples: - value: - - has_or_had_category: - has_or_had_type: TEMPERATURE - has_or_had_status: - has_or_had_type: GOOD - has_or_had_measurement: - - has_or_had_unit: - has_or_had_label: Celsius + - categorized_as: + has_type: TEMPERATURE + has_status: + has_type: GOOD + has_measurement: + - has_unit: + has_label: Celsius measurement_value: 19.5 - - has_or_had_category: - has_or_had_type: PEST_CONTROL - has_or_had_status: - has_or_had_type: CRITICAL - has_or_had_note: # was: note - migrated per Rule 53/56 (2026-01-18) + - categorized_as: + has_type: PEST_CONTROL + has_status: + has_type: CRITICAL + has_note: # was: note - migrated per Rule 53/56 (2026-01-18) - note_type: category note_content: White ants discovered in main depot area - has_or_had_category: + categorized_as: range: AssessmentCategory multivalued: true inlined: true examples: - value: - has_or_had_category: PEST_CONTROL + categorized_as: PEST_CONTROL observation_note: # range: string examples: - value: During routine inspection, white ant damage discovered in south wall of main document storage. Approximately 50 linear meters of shelving affected. Evidence of active infestation - live insects observed. Immediate treatment recommended. - has_or_had_provenance: + has_provenance: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type examples: - value: - is_or_was_based_on: - has_or_had_url: + based_on: + has_url: url_value: "https://www.volkskrant.nl/archive-pest-investigation-2024" - value: - is_or_was_based_on: - has_or_had_url: + based_on: + has_url: url_value: "https://archive.org/evidence/photos/depot-damage-20240915.zip" measurement_data: # range: string examples: - value: '{"temperature_celsius": 23.5, "humidity_percent": 58, "threshold_exceeded": true}' - # MIGRATED 2026-01-22: compliance_status → has_or_had_status + ComplianceStatus (Rule 53) - has_or_had_status: + # MIGRATED 2026-01-22: compliance_status → has_status + ComplianceStatus (Rule 53) + has_status: range: ComplianceStatus inlined: true required: false examples: - value: - has_or_had_type: "NON_COMPLIANT" - has_or_had_label: "EN 16893 Non-Compliant" + has_type: "NON_COMPLIANT" + has_label: "EN 16893 Non-Compliant" standard_reference: "EN 16893:2018" remediation_required: true description: Does not meet EN 16893:2018 requirements - value: - has_or_had_type: "COMPLIANT" - has_or_had_label: "ISO 11799 Compliant" + has_type: "COMPLIANT" + has_label: "ISO 11799 Compliant" standard_reference: "ISO 11799:2015" remediation_required: range: boolean @@ -241,26 +241,26 @@ classes: - value: temporal_extent: begin_of_the_begin: "2024-12-01" - has_or_had_label: "Post-treatment verification inspection" - # REMOVED 2026-01-19: confidence_score - migrated to is_or_was_generated_by (Rule 53) - is_or_was_generated_by: + has_label: "Post-treatment verification inspection" + # REMOVED 2026-01-19: confidence_score - migrated to generated_by (Rule 53) + generated_by: range: GenerationEvent required: false inlined: true examples: - value: - has_or_had_score: - has_or_had_score: 0.95 - has_or_had_method: "government_inspection" + has_score: + has_score: 0.95 + has_method: "government_inspection" - value: - has_or_had_score: - has_or_had_score: 0.75 - has_or_had_method: "journalist_investigation" + has_score: + has_score: 0.75 + has_method: "journalist_investigation" # supersede migrated to supersedes_or_superseded # This domain-specific slot has explicit StorageCondition range # to avoid OWL type ambiguity (DatatypeProperty vs ObjectProperty conflict) comments: - - 'MIGRATED 2026-01-19: confidence_score → is_or_was_generated_by + GenerationEvent + ConfidenceScore (Rule 53)' + - 'MIGRATED 2026-01-19: confidence_score → generated_by + GenerationEvent + ConfidenceScore (Rule 53)' - Observations are NOT assertions of truth - they are reports from specific observers - Multiple observations may exist for same storage with conflicting findings - Gap between observed conditions and policy conditions is critical transparency metric @@ -272,7 +272,7 @@ classes: - https://www.loc.gov/premis/rdf/v3/Event examples: - value: - has_or_had_identifier: # was: condition_id - migrated per Rule 53 (2026-01-18) + identified_by: # was: condition_id - migrated per Rule 53 (2026-01-18) identifier_value: "https://nde.nl/ontology/hc/condition/depot-pest-investigation-2024" refers_to_storage: https://nde.nl/ontology/hc/storage/national-archive-depot-b observation_date: '2024-09-15' @@ -281,29 +281,29 @@ classes: observer_affiliation: De Volkskrant is_official_assessment: false overall_status: CRITICAL - includes_or_included: - - has_or_had_category: - has_or_had_type: PEST_CONTROL - has_or_had_status: - has_or_had_type: CRITICAL - has_or_had_note: # was: note - migrated per Rule 53/56 (2026-01-18) + include: + - categorized_as: + has_type: PEST_CONTROL + has_status: + has_type: CRITICAL + has_note: # was: note - migrated per Rule 53/56 (2026-01-18) - note_type: category note_content: White ants discovered in main document depot observation_notes: >- Investigative visit revealed active termite infestation in south section of Document Depot B. Approximately 50 linear meters of historical documents at risk. Institution was unaware of extent of damage until contacted for comment. - has_or_had_provenance: - - is_or_was_based_on: - has_or_had_url: + has_provenance: + - based_on: + has_url: url_value: "https://www.volkskrant.nl/archive-pest-crisis-2024" remediation_required: true - is_or_was_generated_by: # was: confidence_score - migrated per Rule 53 (2026-01-19) - has_or_had_score: - has_or_had_score: 0.85 - has_or_had_method: "journalist_investigation" + generated_by: # was: confidence_score - migrated per Rule 53 (2026-01-19) + has_score: + has_score: 0.85 + has_method: "journalist_investigation" - value: - has_or_had_identifier: # was: condition_id - migrated per Rule 53 (2026-01-18) + identified_by: # was: condition_id - migrated per Rule 53 (2026-01-18) identifier_value: "https://nde.nl/ontology/hc/condition/rijksmuseum-q2-2024" refers_to_storage: https://nde.nl/ontology/hc/storage/rijksmuseum-depot-amersfoort observation_date: '2024-06-30' @@ -313,44 +313,44 @@ classes: observer_affiliation: Rijksmuseum is_official_assessment: true overall_status: GOOD - includes_or_included: - - has_or_had_category: - has_or_had_type: TEMPERATURE - has_or_had_status: - has_or_had_type: EXCELLENT - has_or_had_measurement: + include: + - categorized_as: + has_type: TEMPERATURE + has_status: + has_type: EXCELLENT + has_measurement: - measurement_value: 18.5 - has_or_had_unit: - has_or_had_label: Celsius - - has_or_had_category: - has_or_had_type: HUMIDITY - has_or_had_status: - has_or_had_type: GOOD - has_or_had_measurement: + has_unit: + has_label: Celsius + - categorized_as: + has_type: HUMIDITY + has_status: + has_type: GOOD + has_measurement: - measurement_value: 48 - has_or_had_unit: - has_or_had_label: Percent - - has_or_had_category: - has_or_had_type: PEST_CONTROL - has_or_had_status: - has_or_had_type: GOOD - has_or_had_note: # was: note - migrated per Rule 53/56 (2026-01-18) + has_unit: + has_label: Percent + - categorized_as: + has_type: PEST_CONTROL + has_status: + has_type: GOOD + has_note: # was: note - migrated per Rule 53/56 (2026-01-18) - note_type: category note_content: No pest activity detected in monitoring traps - - has_or_had_category: - has_or_had_type: SECURITY - has_or_had_status: - has_or_had_type: EXCELLENT + - categorized_as: + has_type: SECURITY + has_status: + has_type: EXCELLENT observation_notes: Quarterly facilities review. All parameters within policy ranges. - # MIGRATED 2026-01-22: compliance_status → has_or_had_status + ComplianceStatus (Rule 53) - has_or_had_status: - has_or_had_type: "COMPLIANT" + # MIGRATED 2026-01-22: compliance_status → has_status + ComplianceStatus (Rule 53) + has_status: + has_type: "COMPLIANT" standard_reference: "ISO 11799:2015" remediation_required: false - is_or_was_generated_by: # was: confidence_score - migrated per Rule 53 (2026-01-19) - has_or_had_score: - has_or_had_score: 0.9 - has_or_had_method: "internal_assessment" + generated_by: # was: confidence_score - migrated per Rule 53 (2026-01-19) + has_score: + has_score: 0.9 + has_method: "internal_assessment" StorageConditionCategoryAssessment: class_uri: hc:StorageConditionCategoryAssessment description: 'Individual category assessment within a StorageCondition observation. @@ -362,25 +362,25 @@ classes: ' slots: - - has_or_had_category - - has_or_had_measurement # was: category_measurement - migrated per Rule 53/56 (2026-01-24) - - has_or_had_note # was: category_note - migrated per Rule 53/56 (2026-01-18) - - has_or_had_status # was: category_status - migrated per Rule 53/56 (2026-01-24) - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - categorized_as + - has_measurement # was: category_measurement - migrated per Rule 53/56 (2026-01-24) + - has_note # was: category_note - migrated per Rule 53/56 (2026-01-18) + - has_status # was: category_status - migrated per Rule 53/56 (2026-01-24) + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - has_or_had_category: + categorized_as: range: AssessmentCategory required: true inlined: true - has_or_had_status: # was: category_status - migrated per Rule 53/56 (2026-01-24) + has_status: # was: category_status - migrated per Rule 53/56 (2026-01-24) range: CategoryStatus required: true inlined: true - has_or_had_measurement: # was: category_measurement - migrated per Rule 53/56 (2026-01-24) + has_measurement: # was: category_measurement - migrated per Rule 53/56 (2026-01-24) range: Measurement inlined: true multivalued: true - has_or_had_note: # was: category_note - migrated per Rule 53/56 (2026-01-18) + has_note: # was: category_note - migrated per Rule 53/56 (2026-01-18) # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type diff --git a/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml b/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml index 302f3cf3f2..e1212f588d 100644 --- a/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml +++ b/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml @@ -17,17 +17,17 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/allows_or_allowed - - ../slots/has_or_had_description - - ../slots/has_or_had_policy - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_setpoint - - ../slots/has_or_had_tolerance - - ../slots/has_or_had_unit - - ../slots/is_or_was_approved_by - - ../slots/is_or_was_effective_at - - ../slots/is_or_was_expired_at + - ../slots/allow + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_policy + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_setpoint + - ../slots/20260202_matang/has_tolerance + - ../slots/20260202_matang/has_unit + - ../slots/20260202_matang/approved_by + - ../slots/20260202_matang/effective_at + - ../slots/20260202_matang/expired_at - ../slots/light_max_lux - ../slots/note - ../slots/particulate_max @@ -45,17 +45,17 @@ classes: class_uri: premis:PreservationPolicy description: "Policy defining target storage conditions for a facility or zone.\n\n**MIGRATED** humidity and temperature slots to structured classes (Rule 53).\n" slots: - - has_or_had_description - - has_or_had_policy - - is_or_was_approved_by - - has_or_had_score + - has_description + - has_policy + - approved_by + - has_score - light_max_lux - particulate_max - pest_management_required - requires_or_required - standards_compliance - - is_or_was_effective_at - - is_or_was_expired_at + - effective_at + - expired_at - policy_review_date - note slot_usage: @@ -77,16 +77,16 @@ classes: inlined: true examples: - value: - has_or_had_type: - has_or_had_label: InertGasSystem - has_or_had_description: Inert gas suppression for archive materials + has_type: + has_label: InertGasSystem + has_description: Inert gas suppression for archive materials - value: - has_or_had_type: - has_or_had_label: WaterMistSystem - has_or_had_description: Water mist suppression for museum galleries + has_type: + has_label: WaterMistSystem + has_description: Water mist suppression for museum galleries - value: level_code: HIGH - has_or_had_policy: + has_policy: # range: string examples: - value: Staff access only. Two-person rule for vault access. Visitor access requires Director approval and escort. @@ -98,14 +98,14 @@ classes: - EN_15757_2010 - EN_16893_2018 - ISO_TR_19815_2018 - is_or_was_effective_at: + effective_at: range: date required: true examples: - value: '2020-01-01' - is_or_was_expired_at: + expired_at: range: date - is_or_was_approved_by: + approved_by: range: Approver required: true examples: @@ -138,7 +138,7 @@ classes: Designed for mixed media including oil paintings, works on paper, and decorative arts. Based on EN 15757:2010 and museum best practices. ' - has_or_had_setpoint: + has_setpoint: - setpoint_type: TEMPERATURE setpoint_value: 18.0 setpoint_min: 16.0 @@ -154,14 +154,14 @@ classes: light_max_lux: 50.0 pest_management_required: true requires_or_required: - has_or_had_type: - has_or_had_label: InertGasSystem - has_or_had_description: Inert gas suppression for archive materials + has_type: + has_label: InertGasSystem + has_description: Inert gas suppression for archive materials standards_compliance: - EN_15757_2010 - EN_16893_2018 - is_or_was_effective_at: '2020-01-01' - is_or_was_approved_by: + effective_at: '2020-01-01' + approved_by: approver_name: Collections Committee policy_review_date: '2025-12-31' - value: @@ -171,7 +171,7 @@ classes: negatives, glass plates, and color photographs. Based on Image Permanence Institute guidelines for extended preservation. ' - has_or_had_setpoint: + has_setpoint: - setpoint_type: TEMPERATURE setpoint_value: -18.0 setpoint_min: -20.0 @@ -187,15 +187,15 @@ classes: light_max_lux: 0.0 pest_management_required: true requires_or_required: - has_or_had_type: - has_or_had_label: InertGasSystem - has_or_had_description: Inert gas suppression for archive materials - has_or_had_policy: Restricted access - Conservation staff only. Materials must acclimate 24 hours before and after access. Gloves required. + has_type: + has_label: InertGasSystem + has_description: Inert gas suppression for archive materials + has_policy: Restricted access - Conservation staff only. Materials must acclimate 24 hours before and after access. Gloves required. standards_compliance: - IMAGE_PERMANENCE_INSTITUTE - ISO_TR_19815_2018 - is_or_was_effective_at: '2015-06-01' - is_or_was_approved_by: + effective_at: '2015-06-01' + approved_by: approver_name: General Rijksarchivaris policy_review_date: '2025-06-01' annotations: diff --git a/schemas/20251121/linkml/modules/classes/StorageLocation.yaml b/schemas/20251121/linkml/modules/classes/StorageLocation.yaml index dba5176552..d9a095a436 100644 --- a/schemas/20251121/linkml/modules/classes/StorageLocation.yaml +++ b/schemas/20251121/linkml/modules/classes/StorageLocation.yaml @@ -16,12 +16,12 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_type - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_url classes: StorageLocation: class_uri: premis:StorageLocation @@ -44,12 +44,12 @@ classes: ``` Storage (facility) - └── is_or_was_stored_at → StorageLocation (THIS CLASS) + └── stored_at → StorageLocation (THIS CLASS) ├── physical_location → AuxiliaryPlace (for physical) └── storage_url (for digital infrastructure) DigitalObject - └── is_or_was_stored_at → StorageLocation + └── stored_at → StorageLocation └── storage_url → "s3://bucket/path" ``` @@ -66,7 +66,7 @@ classes: **Slot Migration** (2026-01-15): This class supports the migration of `storage_location` slot to - `is_or_was_stored_at` with structured StorageLocation range. + `stored_at` with structured StorageLocation range. exact_mappings: - premis:StorageLocation @@ -80,35 +80,35 @@ classes: - schema:DataCatalog slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_type - - has_or_had_url - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - identified_by + - has_label + - has_description + - has_type + - has_url + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/storage-location/rijksmuseum-depot-a - value: https://nde.nl/ontology/hc/storage-location/dans-vault - has_or_had_label: + has_label: # range: string required: true examples: - value: Depot Amersfoort - Vault A - value: AWS S3 eu-west-1 - value: DANS Data Archive - has_or_had_description: + has_description: # range: string required: false examples: - value: "Climate-controlled vault for photographic materials. -18°C, 30% RH." - value: "DANS is a trusted digital repository for Dutch research data." - has_or_had_type: + has_type: # range: string required: false examples: @@ -117,7 +117,7 @@ classes: - value: DIGITAL_REPOSITORY - value: TRUSTED_ARCHIVE - has_or_had_url: + has_url: range: uri required: false examples: @@ -136,8 +136,8 @@ classes: comments: - "Unifies physical and digital storage location concepts" - "PREMIS StorageLocation provides core semantics" - - "For detailed physical location info, reference AuxiliaryPlace via has_or_had_url" - - "Storage (facility) links here via is_or_was_stored_at slot" + - "For detailed physical location info, reference AuxiliaryPlace via has_url" + - "Storage (facility) links here via stored_at slot" see_also: - http://www.loc.gov/premis/rdf/v3/StorageLocation @@ -145,20 +145,20 @@ classes: examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/storage-location/rijksmuseum-depot-vault-a - has_or_had_label: Rijksmuseum Depot Amersfoort - Vault A - has_or_had_description: "Climate-controlled art storage vault. 18-22°C, 45-55% RH." - has_or_had_type: PHYSICAL_DEPOT - has_or_had_url: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort + identified_by: https://nde.nl/ontology/hc/storage-location/rijksmuseum-depot-vault-a + has_label: Rijksmuseum Depot Amersfoort - Vault A + has_description: "Climate-controlled art storage vault. 18-22°C, 45-55% RH." + has_type: PHYSICAL_DEPOT + has_url: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort - value: - has_or_had_identifier: https://nde.nl/ontology/hc/storage-location/dans-archive - has_or_had_label: DANS Data Archive - has_or_had_description: "DANS is a Dutch trusted digital repository for research data and cultural heritage collections." - has_or_had_type: TRUSTED_ARCHIVE - has_or_had_url: https://easy.dans.knaw.nl/ + identified_by: https://nde.nl/ontology/hc/storage-location/dans-archive + has_label: DANS Data Archive + has_description: "DANS is a Dutch trusted digital repository for research data and cultural heritage collections." + has_type: TRUSTED_ARCHIVE + has_url: https://easy.dans.knaw.nl/ - value: - has_or_had_identifier: https://nde.nl/ontology/hc/storage-location/aws-s3-heritage - has_or_had_label: AWS S3 Heritage Bucket (eu-west-1) - has_or_had_description: "Cloud storage for digitized heritage materials. Amsterdam region for GDPR compliance." - has_or_had_type: CLOUD_STORAGE - has_or_had_url: s3://heritage-custodian-archive/ \ No newline at end of file + identified_by: https://nde.nl/ontology/hc/storage-location/aws-s3-heritage + has_label: AWS S3 Heritage Bucket (eu-west-1) + has_description: "Cloud storage for digitized heritage materials. Amsterdam region for GDPR compliance." + has_type: CLOUD_STORAGE + has_url: s3://heritage-custodian-archive/ \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/StorageSystem.yaml b/schemas/20251121/linkml/modules/classes/StorageSystem.yaml index 9c16dfd538..f7bd387f33 100644 --- a/schemas/20251121/linkml/modules/classes/StorageSystem.yaml +++ b/schemas/20251121/linkml/modules/classes/StorageSystem.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: StorageSystem: class_uri: schema:Product @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_name + - has_name diff --git a/schemas/20251121/linkml/modules/classes/StorageType.yaml b/schemas/20251121/linkml/modules/classes/StorageType.yaml index fe516bc38a..d8662b3cb8 100644 --- a/schemas/20251121/linkml/modules/classes/StorageType.yaml +++ b/schemas/20251121/linkml/modules/classes/StorageType.yaml @@ -15,18 +15,18 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_condition - - ../slots/has_or_had_condition # was: typical_condition - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_use_case - - ../slots/is_or_was_equivalent_to - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_condition + - ../slots/20260202_matang/has_condition # was: typical_condition + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_use_case + - ../slots/20260202_matang/equivalent_to + - ../slots/20260202_matang/related_to - ../slots/preservation_requirement - ../slots/security_level - ../slots/stores_or_stored @@ -61,11 +61,11 @@ classes: ``` Storage (facility instance) │ - └── has_or_had_type → StorageType (THIS CLASS) - ├── has_or_had_hypernym → StorageType (parent in hierarchy) - ├── has_or_had_hyponym → StorageType[] (children) + └── has_type → StorageType (THIS CLASS) + ├── has_hypernym → StorageType (parent in hierarchy) + ├── has_hyponym → StorageType[] (children) ├── preservation_requirement (text) - └── has_or_had_condition → Condition (environment specs) + └── has_condition → Condition (environment specs) ``` **USE CASES**: 1. **Type Hierarchy**: @@ -80,17 +80,17 @@ classes: - "Quarantine Storage" (isolation for treatment) **LINK TO DepositArchive**: DepositArchive custodian types may operate specialized deposit storage. - DepositArchive → operates_storage → Storage → has_or_had_type → StorageType + DepositArchive → operates_storage → Storage → has_type → StorageType The "DEPOSIT_STORAGE" StorageType specifically supports deposit archive functions. **SLOT MIGRATION** (2026-01-13): This class now uses shared slots instead of domain-specific storage_type_* slots: - - `has_or_had_identifier` replaces `storage_type_id` - - `has_or_had_code` replaces `storage_type_code` - - `has_or_had_label` replaces `storage_type_label` - - `has_or_had_description` replaces `storage_type_description` - - `has_or_had_hypernym` replaces `storage_type_broader` - - `has_or_had_hyponym` replaces `storage_type_narrower` - - `is_or_was_related_to` replaces `storage_type_related` + - `identified_by` replaces `storage_type_id` + - `has_code` replaces `storage_type_code` + - `has_label` replaces `storage_type_label` + - `has_description` replaces `storage_type_description` + - `has_hypernym` replaces `storage_type_broader` + - `has_hyponym` replaces `storage_type_narrower` + - `related_to` replaces `storage_type_related` exact_mappings: - skos:Concept close_mappings: @@ -101,25 +101,25 @@ classes: - rico:RecordSetType slots: # Shared slots (from centralized slot files) - - has_or_had_identifier - - has_or_had_code - - has_or_had_label - - has_or_had_description - - has_or_had_hypernym - - has_or_had_hyponym - - is_or_was_related_to + - identified_by + - has_code + - has_label + - has_description + - has_hypernym + - has_hyponym + - related_to # Domain-specific slots - # has_or_had_access_frequency REMOVED - migrated to offers_or_offered (Rule 53) - - has_or_had_use_case + # has_access_frequency REMOVED - migrated to offers_or_offered (Rule 53) + - has_use_case - preservation_requirement - security_level - stores_or_stored # was: target_material - migrated per Rule 53/56 (2026-01-16) - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - - has_or_had_condition # was: typical_condition - migrated per Rule 53 (2026-01-15) - # REMOVED 2026-01-15: wikidata_id - migrated to is_or_was_equivalent_to (Rule 53) - - is_or_was_equivalent_to + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_condition # was: typical_condition - migrated per Rule 53 (2026-01-15) + # REMOVED 2026-01-15: wikidata_id - migrated to equivalent_to (Rule 53) + - equivalent_to slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true @@ -127,7 +127,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/storage-type/archive-depot - value: https://nde.nl/ontology/hc/storage-type/cold-storage - has_or_had_code: + has_code: # range: string required: true pattern: "^[A-Z][A-Z0-9_]*$" @@ -135,7 +135,7 @@ classes: - value: ARCHIVE_DEPOT - value: COLD_STORAGE - value: ART_STORAGE - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -143,15 +143,15 @@ classes: - value: ["Archive Depot@en", "Archiefbewaarplaats@nl"] - value: ["Cold Storage@en", "Koudopslag@nl"] - value: ["Art Storage Vault@en", "Kunstkluis@nl"] - has_or_had_description: + has_description: # range: string examples: - value: "Specialized climate-controlled facility for archival documents, manuscripts, and records. Maintains stable temperature and humidity optimal for paper and parchment preservation." - has_or_had_hypernym: + has_hypernym: range: StorageType examples: - value: https://nde.nl/ontology/hc/storage-type/climate-controlled - has_or_had_hyponym: + has_hyponym: range: StorageType multivalued: true inlined_as_list: true @@ -159,12 +159,12 @@ classes: - value: - https://nde.nl/ontology/hc/storage-type/cold-storage - https://nde.nl/ontology/hc/storage-type/art-storage - is_or_was_related_to: + related_to: range: StorageType multivalued: true inlined_as_list: true # ADDED 2026-01-15: Replaces wikidata_id slot per Rule 53 - is_or_was_equivalent_to: + equivalent_to: range: WikiDataIdentifier multivalued: true inlined: true @@ -179,22 +179,22 @@ classes: examples: - value: "Required for paper-based materials, manuscripts, and archival documents. Prevents acid migration, foxing, and brittleness. Essential for materials with lignin content." # was: typical_condition - migrated per Rule 53 (2026-01-15) - has_or_had_condition: + has_condition: range: Condition multivalued: true inlined: true inlined_as_list: true examples: - value: - - has_or_had_description: + - has_description: description_text: "18-20°C, 45-55% RH, <50 lux, UV-filtered" description_type: condition - value: - - has_or_had_description: + - has_description: description_text: "-18°C to 4°C, 30-35% RH, dark" description_type: condition - value: - - has_or_had_description: + - has_description: description_text: "18-22°C, 45-55% RH, UV-filtered, vibration-free" description_type: condition # was: target_material - migrated per Rule 53/56 (2026-01-16) @@ -205,32 +205,32 @@ classes: inlined_as_list: true examples: - value: - - has_or_had_identifier: https://nde.nl/ontology/hc/material/paper - has_or_had_label: + - identified_by: https://nde.nl/ontology/hc/material/paper + has_label: - paper@en - papier@nl - has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/parchment - has_or_had_label: + has_type: https://nde.nl/ontology/hc/material-type/organic + - identified_by: https://nde.nl/ontology/hc/material/parchment + has_label: - parchment@en - perkament@nl - has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/vellum - has_or_had_label: + has_type: https://nde.nl/ontology/hc/material-type/organic + - identified_by: https://nde.nl/ontology/hc/material/vellum + has_label: - vellum@en - velijn@nl - has_or_had_type: https://nde.nl/ontology/hc/material-type/organic + has_type: https://nde.nl/ontology/hc/material-type/organic - value: - - has_or_had_identifier: https://nde.nl/ontology/hc/material/nitrate-film - has_or_had_label: + - identified_by: https://nde.nl/ontology/hc/material/nitrate-film + has_label: - nitrate film@en - nitraatfilm@nl - has_or_had_type: https://nde.nl/ontology/hc/material-type/synthetic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/acetate-film - has_or_had_label: + has_type: https://nde.nl/ontology/hc/material-type/synthetic + - identified_by: https://nde.nl/ontology/hc/material/acetate-film + has_label: - acetate film@en - acetaatfilm@nl - has_or_had_type: https://nde.nl/ontology/hc/material-type/synthetic + has_type: https://nde.nl/ontology/hc/material-type/synthetic security_level: # range: string examples: @@ -239,15 +239,15 @@ classes: - value: MAXIMUM - value: RARE - value: VERY_RARE - has_or_had_use_case: + has_use_case: range: UseCase multivalued: true inlined: true examples: - value: - has_or_had_label: "Nationaal Archief Depot Den Haag" + has_label: "Nationaal Archief Depot Den Haag" - value: - has_or_had_label: "British Library Document Storage" + has_label: "British Library Document Storage" # example_instance: # range: string # multivalued: true @@ -259,22 +259,22 @@ classes: annotations: specificity_score: "0.65" specificity_rationale: "Fairly specific - storage types primarily relevant for preservation/collection management." - has_or_had_score: # was: template_specificity - migrated per Rule 53 (2026-01-17) + has_score: # was: template_specificity - migrated per Rule 53 (2026-01-17) # NOTE: slot_usage may need manual review for range/description updates '{"collection_discovery": 0.75, "organizational_change": 0.40, "general_heritage": 0.50}' slot_migration: | 2026-01-13: Migrated from domain-specific to shared slots - - storage_type_id → has_or_had_identifier - - storage_type_code → has_or_had_code - - storage_type_label → has_or_had_label - - storage_type_description → has_or_had_description - - storage_type_broader → has_or_had_hypernym - - storage_type_narrower → has_or_had_hyponym - - storage_type_related → is_or_was_related_to + - storage_type_id → identified_by + - storage_type_code → has_code + - storage_type_label → has_label + - storage_type_description → has_description + - storage_type_broader → has_hypernym + - storage_type_narrower → has_hyponym + - storage_type_related → related_to 2026-01-16: Migrated target_material to stores_or_stored + Material (Rule 53/56) - target_material → stores_or_stored + Material comments: - "StorageType provides SKOS-based classification for Storage instances" - - "Supports hierarchical type relationships (has_or_had_hypernym/hyponym)" + - "Supports hierarchical type relationships (has_hypernym/hyponym)" - "Richer semantics than flat StorageTypeEnum" - "Linked from DepositArchive custodian types via operates_storage" - "Enables preservation-aware storage classification" @@ -288,113 +288,113 @@ classes: - https://www.iso.org/standard/52821.html examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/storage-type/archive-depot - has_or_had_code: ARCHIVE_DEPOT - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/storage-type/archive-depot + has_code: ARCHIVE_DEPOT + has_label: - Archive Depot@en - Archiefbewaarplaats@nl - has_or_had_description: | + has_description: | Specialized climate-controlled facility for archival documents, manuscripts, and records. Maintains stable temperature and humidity optimal for paper and parchment preservation. - # MIGRATED 2026-01-15: Use is_or_was_equivalent_to with WikiDataIdentifier - is_or_was_equivalent_to: + # MIGRATED 2026-01-15: Use equivalent_to with WikiDataIdentifier + equivalent_to: - qid: Q1454974 preservation_requirement: | Required for paper-based materials, manuscripts, and archival documents. Prevents acid migration, foxing, and brittleness. - # MIGRATED 2026-01-15: typical_condition → has_or_had_condition - has_or_had_condition: - - has_or_had_description: + # MIGRATED 2026-01-15: typical_condition → has_condition + has_condition: + - has_description: description_text: "18-20°C, 45-55% RH, <50 lux, UV-filtered" description_type: condition # was: target_material - migrated per Rule 53/56 (2026-01-16) stores_or_stored: - - has_or_had_identifier: https://nde.nl/ontology/hc/material/paper - has_or_had_label: + - identified_by: https://nde.nl/ontology/hc/material/paper + has_label: - paper@en - papier@nl - has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/parchment - has_or_had_label: + has_type: https://nde.nl/ontology/hc/material-type/organic + - identified_by: https://nde.nl/ontology/hc/material/parchment + has_label: - parchment@en - perkament@nl - has_or_had_type: https://nde.nl/ontology/hc/material-type/organic - - has_or_had_identifier: https://nde.nl/ontology/hc/material/photograph - has_or_had_label: + has_type: https://nde.nl/ontology/hc/material-type/organic + - identified_by: https://nde.nl/ontology/hc/material/photograph + has_label: - photograph@en - foto@nl - has_or_had_type: https://nde.nl/ontology/hc/material-type/composite + has_type: https://nde.nl/ontology/hc/material-type/composite security_level: STANDARD - has_or_had_use_case: - - has_or_had_label: Nationaal Archief Depot Den Haag - - has_or_had_label: British Library Document Storage + has_use_case: + - has_label: Nationaal Archief Depot Den Haag + - has_label: British Library Document Storage - value: - has_or_had_identifier: https://nde.nl/ontology/hc/storage-type/cold-storage - has_or_had_code: COLD_STORAGE - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/storage-type/cold-storage + has_code: COLD_STORAGE + has_label: - Cold Storage@en - Koudopslag@nl - has_or_had_description: | + has_description: | Refrigerated or frozen storage for temperature-sensitive materials. Essential for film, photographic materials, and biological specimens. - has_or_had_hypernym: https://nde.nl/ontology/hc/storage-type/climate-controlled - # MIGRATED 2026-01-15: Use is_or_was_equivalent_to with WikiDataIdentifier - is_or_was_equivalent_to: + has_hypernym: https://nde.nl/ontology/hc/storage-type/climate-controlled + # MIGRATED 2026-01-15: Use equivalent_to with WikiDataIdentifier + equivalent_to: - qid: Q1191732 preservation_requirement: | Mandatory for nitrate and acetate film to prevent vinegar syndrome. Required for color photographs to prevent dye fading. - # MIGRATED 2026-01-15: typical_condition → has_or_had_condition - has_or_had_condition: - - has_or_had_description: + # MIGRATED 2026-01-15: typical_condition → has_condition + has_condition: + - has_description: description_text: "-18°C to 4°C, 30-35% RH, dark" description_type: condition # was: target_material - migrated per Rule 53/56 (2026-01-16) stores_or_stored: - - has_or_had_material_type: - has_or_had_identifier: hc:material-type/film-nitrate - has_or_had_label: + - has_material_type: + identified_by: hc:material-type/film-nitrate + has_label: - Nitrate Film@en material_description: "Historical nitrate film stock, highly flammable" - - has_or_had_material_type: - has_or_had_identifier: hc:material-type/film-acetate - has_or_had_label: + - has_material_type: + identified_by: hc:material-type/film-acetate + has_label: - Acetate Film@en material_description: "Acetate-based film, susceptible to vinegar syndrome" - - has_or_had_material_type: - has_or_had_identifier: hc:material-type/photograph-color - has_or_had_label: + - has_material_type: + identified_by: hc:material-type/photograph-color + has_label: - Color Photographs@en material_description: "Color photographic materials requiring cold storage" - - has_or_had_material_type: - has_or_had_identifier: hc:material-type/biological-specimen - has_or_had_label: + - has_material_type: + identified_by: hc:material-type/biological-specimen + has_label: - Biological Specimens@en material_description: "Preserved biological specimens requiring cryogenic storage" security_level: ENHANCED - has_or_had_use_case: - - has_or_had_label: EYE Filmmuseum Cold Vault - - has_or_had_label: Library of Congress Film Vault + has_use_case: + - has_label: EYE Filmmuseum Cold Vault + - has_label: Library of Congress Film Vault - value: - has_or_had_identifier: https://nde.nl/ontology/hc/storage-type/deposit-storage - has_or_had_code: DEPOSIT_STORAGE - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/storage-type/deposit-storage + has_code: DEPOSIT_STORAGE + has_label: - Deposit Storage@en - Depotbewaarplaats@nl - has_or_had_description: | + has_description: | Storage facility operated by a deposit archive for materials deposited by external organizations or individuals. Manages custody without ownership transfer. preservation_requirement: | Must maintain chain of custody documentation. Materials remain property of depositor. Access controlled per deposit agreement. - # MIGRATED 2026-01-15: typical_condition → has_or_had_condition - has_or_had_condition: - - has_or_had_description: + # MIGRATED 2026-01-15: typical_condition → has_condition + has_condition: + - has_description: description_text: "Variable, per material type and agreement" description_type: condition security_level: ENHANCED - has_or_had_use_case: - - has_or_had_label: National Archives deposit storage for government records - - has_or_had_label: University archive deposit facility for departmental records \ No newline at end of file + has_use_case: + - has_label: National Archives deposit storage for government records + - has_label: University archive deposit facility for departmental records \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/StorageUnit.yaml b/schemas/20251121/linkml/modules/classes/StorageUnit.yaml index 7f7a2cf6c0..ce68822986 100644 --- a/schemas/20251121/linkml/modules/classes/StorageUnit.yaml +++ b/schemas/20251121/linkml/modules/classes/StorageUnit.yaml @@ -15,13 +15,13 @@ imports: - ../enums/CapacityTypeEnum - ../enums/StorageUnitTypeEnum - ../slots/current_item_count - - ../slots/has_or_had_capacity - - ../slots/has_or_had_description - - ../slots/has_or_had_drawer - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_capacity + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_drawer + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/part_of_storage - ../slots/part_of_zone - ../slots/row_number @@ -46,30 +46,30 @@ classes: - hc:EnvironmentalZone - schema:Place slots: - - has_or_had_identifier - - has_or_had_capacity + - identified_by + - has_capacity - current_item_count - - has_or_had_drawer + - has_drawer - part_of_storage - part_of_zone - row_number - shelf_number - stores_or_stored - - has_or_had_score - - has_or_had_description - - has_or_had_label - - has_or_had_type + - has_score + - has_description + - has_label + - has_type - temporal_extent slot_usage: - has_or_had_label: + has_label: # range: string examples: - value: Archive Box 145 - WWII Correspondence - value: Map Drawer 42 - Netherlands 19th Century - has_or_had_type: + has_type: range: StorageUnitTypeEnum required: true - has_or_had_description: + has_description: multivalued: true row_number: # range: string @@ -77,7 +77,7 @@ classes: - value: A - value: '12' - value: North-3 - has_or_had_identifier: + identified_by: # range: string # uriorcurie multivalued: true required: true @@ -90,14 +90,14 @@ classes: range: integer examples: - value: 4 - has_or_had_drawer: + has_drawer: range: Drawer multivalued: true inlined: true examples: - value: - has_or_had_identifier: - has_or_had_capacity: + identified_by: + has_capacity: range: Capacity multivalued: true inlined_as_list: true @@ -105,9 +105,9 @@ classes: - value: - capacity_value: 50 capacity_type: ITEM_COUNT - has_or_had_measurement_unit: - has_or_had_type: ITEM - has_or_had_symbol: items + has_measurement_unit: + has_type: ITEM + has_symbol: items current_item_count: range: integer part_of_storage: @@ -135,12 +135,12 @@ classes: - value: unit_id: https://nde.nl/ontology/hc/unit/na-depot-a-r12-b3-s4 unit_identifier: NA-2024-BOX-00145 - has_or_had_description: + has_description: - description_text: Acid-free archive box containing Ministry of Defense correspondence from 1940-1945. Handle with care. description_type: unit language: en row_number: '12' - has_or_had_identifier: + identified_by: - value: '3' _type: BayNumber shelf_number: 4 @@ -148,18 +148,18 @@ classes: - value: unit_id: https://nde.nl/ontology/hc/unit/rm-depot-ff-042 unit_identifier: FF-MAPS-042 - has_or_had_description: + has_description: - description_text: Flat file drawer containing oversized maps of the Netherlands, 1850-1920. Climate-controlled environment. description_type: unit language: en - has_or_had_drawer: - - has_or_had_identifier: - has_or_had_capacity: + has_drawer: + - identified_by: + has_capacity: - capacity_value: 50 capacity_type: ITEM_COUNT - has_or_had_measurement_unit: - has_or_had_type: ITEM - has_or_had_symbol: maps + has_measurement_unit: + has_type: ITEM + has_symbol: maps current_item_count: 38 part_of_storage: https://nde.nl/ontology/hc/storage/rm-depot-prints annotations: diff --git a/schemas/20251121/linkml/modules/classes/StrategicObjective.yaml b/schemas/20251121/linkml/modules/classes/StrategicObjective.yaml index 420975786e..7bbc887a00 100644 --- a/schemas/20251121/linkml/modules/classes/StrategicObjective.yaml +++ b/schemas/20251121/linkml/modules/classes/StrategicObjective.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: StrategicObjective: class_uri: schema:Action @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_description + - has_description diff --git a/schemas/20251121/linkml/modules/classes/SubGuideType.yaml b/schemas/20251121/linkml/modules/classes/SubGuideType.yaml index 637bdd1c72..8014df6ab5 100644 --- a/schemas/20251121/linkml/modules/classes/SubGuideType.yaml +++ b/schemas/20251121/linkml/modules/classes/SubGuideType.yaml @@ -11,13 +11,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score classes: SubGuideType: class_uri: skos:Concept @@ -34,15 +34,15 @@ classes: - rico:RecordResource - ead:archdesc slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code - - has_or_had_hypernym - - has_or_had_hyponym - - has_or_had_score + - identified_by + - has_label + - has_description + - has_code + - has_hypernym + - has_hyponym + - has_score slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true @@ -50,7 +50,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/sub-guide-type/sub-guide - value: https://nde.nl/ontology/hc/sub-guide-type/thematic - has_or_had_code: + has_code: # range: string required: true pattern: ^[a-z][a-z0-9_]*$ @@ -59,7 +59,7 @@ classes: - value: cross_reference - value: thematic - value: regional - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -70,22 +70,22 @@ classes: - value: - Thematic Collection@en - Thematische collectie@nl - has_or_had_description: + has_description: # range: string required: false examples: - value: Direct sub-guide within the same repository's finding aid hierarchy - has_or_had_hypernym: + has_hypernym: range: SubGuideType required: false - has_or_had_hyponym: + has_hyponym: range: SubGuideType multivalued: true required: false annotations: specificity_score: '0.65' specificity_rationale: Fairly specific - archival finding aid domain. - has_or_had_score: null + has_score: null replaces_enum: SubGuideTypeEnum migration_date: '2026-01-13' custodian_types: "['*']" @@ -101,9 +101,9 @@ classes: - https://www.w3.org/2004/02/skos/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/sub-guide-type/thematic - has_or_had_code: thematic - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/sub-guide-type/thematic + has_code: thematic + has_label: - Thematic Sub-collection@en - Thematische deelcollectie@nl - has_or_had_description: Subject-based grouping that cuts across organizational structure \ No newline at end of file + has_description: Subject-based grouping that cuts across organizational structure \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/SubGuideTypes.yaml b/schemas/20251121/linkml/modules/classes/SubGuideTypes.yaml index 7ce6081434..32eb7b274d 100644 --- a/schemas/20251121/linkml/modules/classes/SubGuideTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/SubGuideTypes.yaml @@ -10,10 +10,10 @@ default_prefix: hc imports: - ./SubGuideType - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: DirectSubGuide: is_a: SubGuideType @@ -54,16 +54,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/sub-guide-type/sub-guide) - has_or_had_code: + has_code: ifabsent: string(sub_guide) - has_or_had_label: + has_label: ifabsent: string(Sub-guide) annotations: specificity_score: '0.70' @@ -114,16 +114,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/sub-guide-type/cross-reference) - has_or_had_code: + has_code: ifabsent: string(cross_reference) - has_or_had_label: + has_label: ifabsent: string(Cross-reference) annotations: specificity_score: '0.70' @@ -175,16 +175,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/sub-guide-type/thematic) - has_or_had_code: + has_code: ifabsent: string(thematic) - has_or_had_label: + has_label: ifabsent: string(Thematic Collection) annotations: specificity_score: '0.70' @@ -205,16 +205,16 @@ classes: - Distributed heritage networks\n- Provincial/state-level holdings\n- Municipal\ \ archives within regional systems\n" slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/sub-guide-type/regional) - has_or_had_code: + has_code: ifabsent: string(regional) - has_or_had_label: + has_label: ifabsent: string(Regional Sub-guide) annotations: specificity_score: '0.70' diff --git a/schemas/20251121/linkml/modules/classes/Subregion.yaml b/schemas/20251121/linkml/modules/classes/Subregion.yaml index 1b87a86425..914c3a9039 100644 --- a/schemas/20251121/linkml/modules/classes/Subregion.yaml +++ b/schemas/20251121/linkml/modules/classes/Subregion.yaml @@ -4,8 +4,8 @@ title: Subregion Class imports: - linkml:types - ../slots/country - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score - ../slots/iso_3166_2_code classes: Subregion: @@ -21,15 +21,15 @@ classes: slots: - country - iso_3166_2_code - - has_or_had_label - - has_or_had_score + - has_label + - has_score slot_usage: iso_3166_2_code: required: true identifier: true country: required: true - has_or_had_label: + has_label: required: false annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/SubsidiaryOrganization.yaml b/schemas/20251121/linkml/modules/classes/SubsidiaryOrganization.yaml index f54b80d12c..46c97a4804 100644 --- a/schemas/20251121/linkml/modules/classes/SubsidiaryOrganization.yaml +++ b/schemas/20251121/linkml/modules/classes/SubsidiaryOrganization.yaml @@ -5,9 +5,9 @@ imports: - ../classes/AgentType - linkml:types - ../slots/custodian_only - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to - ../slots/label_de - ../slots/label_es - ../slots/label_fr @@ -22,12 +22,12 @@ classes: mixins: - OrganizationalStructure slots: - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_score + - related_to + - identified_by slot_usage: - has_or_had_identifier: null - is_or_was_related_to: + identified_by: null + related_to: range: WikidataAlignment inlined: true record_set_type: diff --git a/schemas/20251121/linkml/modules/classes/Summary.yaml b/schemas/20251121/linkml/modules/classes/Summary.yaml index 5c79fb3ba1..ff2c56f004 100644 --- a/schemas/20251121/linkml/modules/classes/Summary.yaml +++ b/schemas/20251121/linkml/modules/classes/Summary.yaml @@ -4,11 +4,11 @@ title: Summary description: A summary of a document or entity. imports: - linkml:types - - ../slots/has_or_had_text + - ../slots/20260202_matang/has_text classes: Summary: class_uri: skos:Concept annotations: custodian_types: '["*"]' slots: - - has_or_had_text + - has_text diff --git a/schemas/20251121/linkml/modules/classes/SupervisedHandling.yaml b/schemas/20251121/linkml/modules/classes/SupervisedHandling.yaml index dd4363e945..b2aba15e3f 100644 --- a/schemas/20251121/linkml/modules/classes/SupervisedHandling.yaml +++ b/schemas/20251121/linkml/modules/classes/SupervisedHandling.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: SupervisedHandling: class_uri: schema:Policy @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_description + - has_description diff --git a/schemas/20251121/linkml/modules/classes/Supplier.yaml b/schemas/20251121/linkml/modules/classes/Supplier.yaml index 68edf36106..48af58290e 100644 --- a/schemas/20251121/linkml/modules/classes/Supplier.yaml +++ b/schemas/20251121/linkml/modules/classes/Supplier.yaml @@ -10,28 +10,28 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type - ../slots/temporal_extent classes: Supplier: class_uri: schema:Organization - description: "Business entity that supplies goods or services to a heritage custodian.\n\n**PURPOSE**:\nModels supplier relationships for commercial operations (gift shops, cafes, etc.)\nin a structured way that captures:\n- Supplier identity and contact\n- Type of supplier (print, reproduction, service, etc.)\n- Products/services provided\n- Temporal validity of relationship\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`class_uri`): `schema:Organization` - Schema.org organization\n- **Close**: `gr:BusinessEntity` - GoodRelations business entity\n- **Related**: `org:Organization` - W3C Org organization\n\n**USAGE**:\n```yaml\nhas_or_had_supplier:\n - has_or_had_identifier: \"hc:supplier/king-mcgaw\"\n has_or_had_label:\n label_text: \"King & McGaw\"\n has_or_had_type:\n has_or_had_label: \"Print Supplier\"\n has_or_had_description:\n description_text: \"Fine art print supplier for museum reproductions\"\n temporal_extent:\n begin_of_the_begin: \"2018-01-01\"\n\ + description: "Business entity that supplies goods or services to a heritage custodian.\n\n**PURPOSE**:\nModels supplier relationships for commercial operations (gift shops, cafes, etc.)\nin a structured way that captures:\n- Supplier identity and contact\n- Type of supplier (print, reproduction, service, etc.)\n- Products/services provided\n- Temporal validity of relationship\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary** (`class_uri`): `schema:Organization` - Schema.org organization\n- **Close**: `gr:BusinessEntity` - GoodRelations business entity\n- **Related**: `org:Organization` - W3C Org organization\n\n**USAGE**:\n```yaml\nhas_supplier:\n - identified_by: \"hc:supplier/king-mcgaw\"\n has_label:\n label_text: \"King & McGaw\"\n has_type:\n has_label: \"Print Supplier\"\n has_description:\n description_text: \"Fine art print supplier for museum reproductions\"\n temporal_extent:\n begin_of_the_begin: \"2018-01-01\"\n\ ```\n\n**MIGRATION NOTE**:\nReplaces plain string values from `supplier_relationship` slot.\nProvides structured data with type classification and temporal tracking.\n" slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_type + - identified_by + - has_label + - has_description + - has_type - temporal_extent slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie examples: - value: hc:supplier/king-mcgaw - has_or_had_label: + has_label: # range: string inlined: false # Fixed invalid inline for primitive type required: true @@ -40,19 +40,19 @@ classes: label_text: King & McGaw - value: label_text: Museum Reproductions Ltd - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type examples: - value: description_text: Fine art print supplier specializing in museum reproduction prints - has_or_had_type: + has_type: # range: string # uriorcurie inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: - has_or_had_label: + has_label: label_text: Print Supplier temporal_extent: range: TimeSpan @@ -68,24 +68,24 @@ classes: - org:Organization examples: - value: - has_or_had_identifier: hc:supplier/king-mcgaw - has_or_had_label: + identified_by: hc:supplier/king-mcgaw + has_label: label_text: King & McGaw - has_or_had_type: - - has_or_had_label: + has_type: + - has_label: label_text: Print Supplier - has_or_had_description: + has_description: description_text: Leading supplier of fine art prints and museum reproduction services temporal_extent: begin_of_the_begin: '2018-01-01' - value: - has_or_had_identifier: hc:supplier/museum-reproductions-ltd - has_or_had_label: + identified_by: hc:supplier/museum-reproductions-ltd + has_label: label_text: Museum Reproductions Ltd - has_or_had_type: - - has_or_had_label: + has_type: + - has_label: label_text: Reproduction Supplier - has_or_had_description: + has_description: description_text: High-quality reproductions of museum artifacts temporal_extent: begin_of_the_begin: '2015-06-01' diff --git a/schemas/20251121/linkml/modules/classes/SupplierType.yaml b/schemas/20251121/linkml/modules/classes/SupplierType.yaml index d13acc7008..fa807d1c6c 100644 --- a/schemas/20251121/linkml/modules/classes/SupplierType.yaml +++ b/schemas/20251121/linkml/modules/classes/SupplierType.yaml @@ -10,8 +10,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: SupplierType: class_uri: skos:Concept @@ -55,16 +55,16 @@ classes: ' slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description slot_usage: - has_or_had_label: + has_label: # range: string inlined: false # Fixed invalid inline for primitive type examples: - value: label_text: Print Supplier - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type examples: diff --git a/schemas/20251121/linkml/modules/classes/Tag.yaml b/schemas/20251121/linkml/modules/classes/Tag.yaml index e7fc7fe77e..fb9cd6c3ca 100644 --- a/schemas/20251121/linkml/modules/classes/Tag.yaml +++ b/schemas/20251121/linkml/modules/classes/Tag.yaml @@ -10,9 +10,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: Tag: class_uri: skos:Concept @@ -51,12 +51,12 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description slot_usage: - has_or_had_identifier: - has_or_had_label: + identified_by: + has_label: multivalued: true required: true annotations: @@ -72,13 +72,13 @@ classes: custodian_types: "['*']" examples: - value: - has_or_had_label: + has_label: - heritage@en - value: - has_or_had_label: + has_label: - museum exhibition@en - value: - has_or_had_label: + has_label: - digitaal erfgoed@nl - digital heritage@en comments: diff --git a/schemas/20251121/linkml/modules/classes/TargetHumidity.yaml b/schemas/20251121/linkml/modules/classes/TargetHumidity.yaml index ef6f7a7927..19049b0633 100644 --- a/schemas/20251121/linkml/modules/classes/TargetHumidity.yaml +++ b/schemas/20251121/linkml/modules/classes/TargetHumidity.yaml @@ -10,20 +10,20 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_unit - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_unit + - ../slots/20260202_matang/has_value classes: TargetHumidity: class_uri: schema:QuantitativeValue description: "Target humidity setpoint." slots: - - has_or_had_value - - has_or_had_unit + - has_value + - has_unit slot_usage: - has_or_had_value: + has_value: range: float required: true - has_or_had_unit: + has_unit: # range: string ifabsent: string(%) annotations: diff --git a/schemas/20251121/linkml/modules/classes/TasteScentHeritageType.yaml b/schemas/20251121/linkml/modules/classes/TasteScentHeritageType.yaml index 9e41b2dc73..d9d0fc62fa 100644 --- a/schemas/20251121/linkml/modules/classes/TasteScentHeritageType.yaml +++ b/schemas/20251121/linkml/modules/classes/TasteScentHeritageType.yaml @@ -14,10 +14,10 @@ description: 'Specialized CustodianType for institutions preserving culinary her imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_score - - ../slots/has_or_had_significance - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_hyponym + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_significance + - ../slots/20260202_matang/has_type - ../slots/knowledge_transmission - ../slots/preservation_method - ../slots/preserves_or_preserved @@ -146,14 +146,14 @@ classes: - crm:E55_Type - schema:Place slots: - - has_or_had_significance - - has_or_had_type + - has_significance + - has_type - preserves_or_preserved - knowledge_transmission - preservation_method - sensory_heritage_domain - - has_or_had_hyponym - - has_or_had_score + - has_hyponym + - has_score slot_usage: preserves_or_preserved: # range: string # uriorcurie @@ -163,11 +163,11 @@ classes: required: true examples: - value: - has_or_had_label: Traditional Trappist brewing using 1838 recipe + has_label: Traditional Trappist brewing using 1838 recipe - value: - has_or_had_label: Historic perfume formulation, 18th-century Grasse + has_label: Historic perfume formulation, 18th-century Grasse - value: - has_or_had_label: Ancestral Gouda cheese with raw milk + has_label: Ancestral Gouda cheese with raw milk sensory_heritage_domain: # range: string required: true @@ -183,7 +183,7 @@ classes: - value: Oral tradition, Brewing logs, Apprenticeship - value: Formula archives, Nose training, Apprenticeship - value: Family manuscripts, Demonstration, PDO status - has_or_had_type: + has_type: # range: string # uriorcurie # range: TraditionalProductType multivalued: true @@ -199,7 +199,7 @@ classes: - value: Monastic apprenticeship, Direct demo, Oral tradition - value: Apprentice program (3 years), Nose training - value: Family succession, Public demos, PDO training - has_or_had_significance: + has_significance: # range: string # uriorcurie # range: Significance multivalued: true @@ -208,15 +208,15 @@ classes: required: false examples: - value: - has_or_had_type: CommunitySignificance - has_or_had_description: UNESCO-recognized Trappist tradition, Belgian cultural identity, Beer pilgrimage site + has_type: CommunitySignificance + has_description: UNESCO-recognized Trappist tradition, Belgian cultural identity, Beer pilgrimage site - value: - has_or_had_type: TerroirSignificance - has_or_had_description: Grasse UNESCO heritage, French parfumerie tradition, Olfactory tourism + has_type: TerroirSignificance + has_description: Grasse UNESCO heritage, French parfumerie tradition, Olfactory tourism - value: - has_or_had_type: EconomicSignificance - has_or_had_description: Protected Gouda PDO, Dutch cheese identity, Economic importance to region - has_or_had_hyponym: + has_type: EconomicSignificance + has_description: Protected Gouda PDO, Dutch cheese identity, Economic importance to region + has_hyponym: # range: string # uriorcurie # range: TasteScentSubType multivalued: true diff --git a/schemas/20251121/linkml/modules/classes/TasteScentSubType.yaml b/schemas/20251121/linkml/modules/classes/TasteScentSubType.yaml index 4e8ac07fb5..d089e19dda 100644 --- a/schemas/20251121/linkml/modules/classes/TasteScentSubType.yaml +++ b/schemas/20251121/linkml/modules/classes/TasteScentSubType.yaml @@ -13,9 +13,9 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/is_or_was_equivalent_to + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/equivalent_to classes: TasteScentSubType: class_uri: skos:Concept @@ -45,21 +45,21 @@ classes: - schema:FoodEstablishment slots: - - has_or_had_label - - has_or_had_description - - is_or_was_equivalent_to + - has_label + - has_description + - equivalent_to slot_usage: - has_or_had_label: + has_label: required: true examples: - value: Brewery - value: Café - value: Chocolaterie - has_or_had_description: + has_description: examples: - value: Business that makes and sells beer - is_or_was_equivalent_to: + equivalent_to: range: WikiDataIdentifier inlined_as_list: true examples: diff --git a/schemas/20251121/linkml/modules/classes/TaxDeductibility.yaml b/schemas/20251121/linkml/modules/classes/TaxDeductibility.yaml index a297bcd083..9bc4f2ecf1 100644 --- a/schemas/20251121/linkml/modules/classes/TaxDeductibility.yaml +++ b/schemas/20251121/linkml/modules/classes/TaxDeductibility.yaml @@ -8,40 +8,40 @@ prefixes: prov: http://www.w3.org/ns/prov# imports: - linkml:types - - ../slots/has_or_had_condition - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_percentage - - ../slots/has_or_had_type - - ../slots/is_or_was_effective_at + - ../slots/20260202_matang/has_condition + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_percentage + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/effective_at - ../slots/jurisdiction - ../slots/minimum_donation default_prefix: hc classes: TaxDeductibility: class_uri: schema:OfferItemCondition - description: "Structured representation of tax deductibility status for donations.\n\n**PURPOSE**:\n\nReplaces simple boolean `tax_deductible` flag with structured class\nthat can capture:\n- Deductibility status (full, partial, none, conditional)\n- Jurisdiction-specific variations\n- Conditions and limitations\n- Temporal validity\n\n**MIGRATION**:\n\nReplaces bespoke `tax_deductible` boolean slot per slot_fixes.yaml\nrevision and Rule 53/56.\n\n**DATA MODEL**:\n\n```\nTaxDeductibility\n \u2502\n \u251C\u2500\u2500 has_or_had_type \u2500\u2500\u2192 TaxDeductibilityType (FullyDeductible, etc.)\n \u2502\n \u251C\u2500\u2500 jurisdiction \u2500\u2500\u2192 Jurisdiction class\n \u2502\n \u251C\u2500\u2500 has_or_had_condition \u2500\u2500\u2192 Condition (structured conditions)\n \u2502\n \u2514\u2500\u2500 effective_from / effective_until \u2500\u2500\u2192 dates\n```\n\n**DEDUCTIBILITY STATUSES**:\n\n| Status | Meaning |\n|--------|---------|\n| FULLY_DEDUCTIBLE\ + description: "Structured representation of tax deductibility status for donations.\n\n**PURPOSE**:\n\nReplaces simple boolean `tax_deductible` flag with structured class\nthat can capture:\n- Deductibility status (full, partial, none, conditional)\n- Jurisdiction-specific variations\n- Conditions and limitations\n- Temporal validity\n\n**MIGRATION**:\n\nReplaces bespoke `tax_deductible` boolean slot per slot_fixes.yaml\nrevision and Rule 53/56.\n\n**DATA MODEL**:\n\n```\nTaxDeductibility\n \u2502\n \u251C\u2500\u2500 has_type \u2500\u2500\u2192 TaxDeductibilityType (FullyDeductible, etc.)\n \u2502\n \u251C\u2500\u2500 jurisdiction \u2500\u2500\u2192 Jurisdiction class\n \u2502\n \u251C\u2500\u2500 has_condition \u2500\u2500\u2192 Condition (structured conditions)\n \u2502\n \u2514\u2500\u2500 effective_from / effective_until \u2500\u2500\u2192 dates\n```\n\n**DEDUCTIBILITY STATUSES**:\n\n| Status | Meaning |\n|--------|---------|\n| FULLY_DEDUCTIBLE\ \ | 100% of donation is tax-deductible |\n| PARTIALLY_DEDUCTIBLE | Only portion is deductible |\n| NOT_DEDUCTIBLE | No tax benefit for donors |\n| CONDITIONALLY_DEDUCTIBLE | Deductible if conditions met |\n| JURISDICTION_DEPENDENT | Varies by donor's tax jurisdiction |\n\n**HERITAGE SECTOR EXAMPLES**:\n\n- Museum membership: Often NOT deductible (benefits received)\n- Pure donation: FULLY_DEDUCTIBLE in most jurisdictions\n- Gala ticket: PARTIALLY_DEDUCTIBLE (fair market value deducted)\n- International donation: JURISDICTION_DEPENDENT\n" exact_mappings: - schema:OfferItemCondition close_mappings: - prov:Entity slots: - - has_or_had_type + - has_type - jurisdiction - - has_or_had_condition - - has_or_had_percentage + - has_condition + - has_percentage - minimum_donation - - is_or_was_effective_at + - effective_at slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie required: true inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_label: Fully Deductible - has_or_had_description: 100% of donation is tax-deductible + has_label: Fully Deductible + has_description: 100% of donation is tax-deductible jurisdiction: # range: string inlined: false # Fixed invalid inline for primitive type @@ -52,22 +52,22 @@ classes: - value: jurisdiction_code: UK jurisdiction_name: United Kingdom - has_or_had_condition: + has_condition: range: Condition inlined: true multivalued: true examples: - value: - has_or_had_type: TAX_THRESHOLD - has_or_had_description: + has_type: TAX_THRESHOLD + has_description: description_text: "Donation must exceed \u20AC25 minimum" description_type: condition - value: - has_or_had_type: DECLARATION_REQUIRED - has_or_had_description: + has_type: DECLARATION_REQUIRED + has_description: description_text: Must complete Gift Aid declaration description_type: condition - has_or_had_percentage: + has_percentage: range: Percentage inlined: true examples: @@ -75,7 +75,7 @@ classes: - value: minimum_donation: range: decimal - is_or_was_effective_at: + effective_at: range: datetime inlined: false # Fixed invalid inline for primitive type see_also: @@ -83,51 +83,51 @@ classes: - https://www.gov.uk/donating-to-charity/gift-aid examples: - value: - has_or_had_type: - has_or_had_label: Fully Deductible - has_or_had_description: 100% of donation is tax-deductible + has_type: + has_label: Fully Deductible + has_description: 100% of donation is tax-deductible jurisdiction: jurisdiction_code: NL jurisdiction_name: Netherlands - has_or_had_condition: - - has_or_had_type: TAX_THRESHOLD - has_or_had_description: + has_condition: + - has_type: TAX_THRESHOLD + has_description: description_text: "Donation must exceed \u20AC25 minimum" - has_or_had_percentage: + has_percentage: - value: - has_or_had_type: - has_or_had_label: Conditionally Deductible - has_or_had_description: Deductible if conditions are met + has_type: + has_label: Conditionally Deductible + has_description: Deductible if conditions are met jurisdiction: jurisdiction_code: UK jurisdiction_name: United Kingdom - has_or_had_condition: - - has_or_had_type: DECLARATION_REQUIRED - has_or_had_description: + has_condition: + - has_type: DECLARATION_REQUIRED + has_description: description_text: Donor must complete Gift Aid declaration - has_or_had_percentage: + has_percentage: - value: - has_or_had_type: - has_or_had_label: Partially Deductible - has_or_had_description: Only portion of donation is deductible + has_type: + has_label: Partially Deductible + has_description: Only portion of donation is deductible jurisdiction: jurisdiction_code: US jurisdiction_name: United States - has_or_had_condition: - - has_or_had_type: FAIR_MARKET_VALUE - has_or_had_description: + has_condition: + - has_type: FAIR_MARKET_VALUE + has_description: description_text: Fair market value of benefits received is subtracted - has_or_had_percentage: + has_percentage: - value: - has_or_had_type: - has_or_had_label: Not Deductible - has_or_had_description: No tax benefit for this donation + has_type: + has_label: Not Deductible + has_description: No tax benefit for this donation jurisdiction: jurisdiction_code: NL jurisdiction_name: Netherlands - has_or_had_condition: - - has_or_had_type: BENEFIT_EXCEEDS_VALUE - has_or_had_description: + has_condition: + - has_type: BENEFIT_EXCEEDS_VALUE + has_description: description_text: Membership benefits exceed donation value annotations: specificity_score: 0.5 diff --git a/schemas/20251121/linkml/modules/classes/TaxDeductibilityType.yaml b/schemas/20251121/linkml/modules/classes/TaxDeductibilityType.yaml index 8f79de32f1..f8008b7d9d 100644 --- a/schemas/20251121/linkml/modules/classes/TaxDeductibilityType.yaml +++ b/schemas/20251121/linkml/modules/classes/TaxDeductibilityType.yaml @@ -12,8 +12,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: TaxDeductibilityType: class_uri: skos:Concept @@ -50,14 +50,14 @@ classes: - schema:PropertyValue slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description slot_usage: - has_or_had_label: + has_label: # range: string required: true - has_or_had_description: + has_description: # range: string annotations: diff --git a/schemas/20251121/linkml/modules/classes/TaxDeductibilityTypes.yaml b/schemas/20251121/linkml/modules/classes/TaxDeductibilityTypes.yaml index 6686882861..f1df162c88 100644 --- a/schemas/20251121/linkml/modules/classes/TaxDeductibilityTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/TaxDeductibilityTypes.yaml @@ -37,8 +37,8 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_label: Fully Deductible - has_or_had_description: 100% of donation is tax-deductible + has_label: Fully Deductible + has_description: 100% of donation is tax-deductible description: Full deductibility classification broad_mappings: - skos:Concept @@ -64,8 +64,8 @@ classes: replaces_enum_value: PARTIALLY_DEDUCTIBLE examples: - value: - has_or_had_label: Partially Deductible - has_or_had_description: Only portion of donation is deductible + has_label: Partially Deductible + has_description: Only portion of donation is deductible description: Partial deductibility classification broad_mappings: - skos:Concept @@ -88,8 +88,8 @@ classes: replaces_enum_value: NOT_DEDUCTIBLE examples: - value: - has_or_had_label: Not Deductible - has_or_had_description: No tax benefit for this donation + has_label: Not Deductible + has_description: No tax benefit for this donation description: Non-deductible classification broad_mappings: - skos:Concept @@ -112,8 +112,8 @@ classes: replaces_enum_value: CONDITIONALLY_DEDUCTIBLE examples: - value: - has_or_had_label: Conditionally Deductible - has_or_had_description: Deductible if conditions are met + has_label: Conditionally Deductible + has_description: Deductible if conditions are met description: Conditional deductibility classification broad_mappings: - skos:Concept @@ -141,8 +141,8 @@ classes: replaces_enum_value: JURISDICTION_DEPENDENT examples: - value: - has_or_had_label: Jurisdiction Dependent - has_or_had_description: Varies by donor's tax jurisdiction + has_label: Jurisdiction Dependent + has_description: Varies by donor's tax jurisdiction description: Jurisdiction-dependent classification broad_mappings: - skos:Concept @@ -165,8 +165,8 @@ classes: replaces_enum_value: UNKNOWN examples: - value: - has_or_had_label: Unknown - has_or_had_description: Deductibility status not determined + has_label: Unknown + has_description: Deductibility status not determined description: Unknown deductibility classification broad_mappings: - skos:Concept diff --git a/schemas/20251121/linkml/modules/classes/TaxScheme.yaml b/schemas/20251121/linkml/modules/classes/TaxScheme.yaml index 5b24ee9452..4e4620de20 100644 --- a/schemas/20251121/linkml/modules/classes/TaxScheme.yaml +++ b/schemas/20251121/linkml/modules/classes/TaxScheme.yaml @@ -11,11 +11,11 @@ prefixes: imports: - linkml:types - ../slots/expires_on_expired_at - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_type - - ../slots/is_or_was_effective_at + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/effective_at - ../slots/jurisdiction - ../slots/legal_basis - ../slots/offers_or_offered @@ -25,7 +25,7 @@ classes: TaxScheme: class_uri: schema:GovernmentService description: "A tax or regulatory scheme that governs fiscal treatment of donations\nand charitable activities for heritage institutions.\n\n**PURPOSE**:\n\nTaxScheme provides structured representation of the various tax\nincentive programs that heritage institutions operate under. This\nenables:\n- Accurate documentation of donor tax benefits\n- Cross-jurisdictional comparison of giving incentives\n- Compliance tracking and reporting\n- Historical tracking of scheme changes\n\n**MIGRATION**:\n\nReplaces the bespoke `tax_scheme` slot (string range) with a\nstructured class per slot_fixes.yaml revision and Rule 53/56.\n\n**HERITAGE SECTOR CONTEXT**:\n\nTax schemes significantly impact heritage institution fundraising:\n\n| Country | Scheme | Donor Benefit |\n|---------|--------|---------------|\n| NL | ANBI | 100% deductible |\n| NL | Cultural ANBI | 125% deductible |\n| UK | Gift Aid | 25% charity reclaim |\n| UK | Cultural Gifts | 30% tax reduction |\n| US | 501(c)(3) | Itemized deduction\ - \ |\n| DE | Gemeinn\xFCtzigkeit | Up to 20% deductible |\n| FR | M\xE9c\xE9nat culturel | 66% reduction (individuals) |\n\n**DATA MODEL**:\n\n```\nTaxScheme\n \u2502\n \u251C\u2500\u2500 has_or_had_type \u2500\u2500\u2192 TaxSchemeType (ANBI, GiftAid, etc.)\n \u2502\n \u251C\u2500\u2500 has_or_had_label \u2500\u2500\u2192 \"Culturele ANBI\"\n \u2502\n \u251C\u2500\u2500 jurisdiction \u2500\u2500\u2192 \"NL\"\n \u2502\n \u251C\u2500\u2500 offers_or_offered \u2500\u2500\u2192 TaxDeductibility (with percentage)\n \u2502\n \u251C\u2500\u2500 regulatory_body \u2500\u2500\u2192 \"Belastingdienst\"\n \u2502\n \u2514\u2500\u2500 legal_basis \u2500\u2500\u2192 \"Wet inkomstenbelasting 2001\"\n```\n\n**ONTOLOGY ALIGNMENT**:\n\n- schema:GovernmentService - Tax scheme as government service\n- skos:Concept - Scheme as member of controlled vocabulary\n- org:Organization - Regulatory body reference\n- prov:Entity - Trackable entity with provenance\n" + \ |\n| DE | Gemeinn\xFCtzigkeit | Up to 20% deductible |\n| FR | M\xE9c\xE9nat culturel | 66% reduction (individuals) |\n\n**DATA MODEL**:\n\n```\nTaxScheme\n \u2502\n \u251C\u2500\u2500 has_type \u2500\u2500\u2192 TaxSchemeType (ANBI, GiftAid, etc.)\n \u2502\n \u251C\u2500\u2500 has_label \u2500\u2500\u2192 \"Culturele ANBI\"\n \u2502\n \u251C\u2500\u2500 jurisdiction \u2500\u2500\u2192 \"NL\"\n \u2502\n \u251C\u2500\u2500 offers_or_offered \u2500\u2500\u2192 TaxDeductibility (with percentage)\n \u2502\n \u251C\u2500\u2500 regulatory_body \u2500\u2500\u2192 \"Belastingdienst\"\n \u2502\n \u2514\u2500\u2500 legal_basis \u2500\u2500\u2192 \"Wet inkomstenbelasting 2001\"\n```\n\n**ONTOLOGY ALIGNMENT**:\n\n- schema:GovernmentService - Tax scheme as government service\n- skos:Concept - Scheme as member of controlled vocabulary\n- org:Organization - Regulatory body reference\n- prov:Entity - Trackable entity with provenance\n" exact_mappings: - schema:GovernmentService close_mappings: @@ -35,32 +35,32 @@ classes: - prov:Entity - schema:Legislation slots: - - has_or_had_type - - has_or_had_label - - has_or_had_description - - has_or_had_identifier + - has_type + - has_label + - has_description + - identified_by - jurisdiction - offers_or_offered - regulatory_body - legal_basis - - is_or_was_effective_at + - effective_at - expires_on_expired_at slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie required: true examples: - value: CulturalANBI - value: GiftAid - value: Section501c3 - has_or_had_label: + has_label: # range: string examples: - value: Cultural ANBI (125%) - value: Gift Aid eligible - has_or_had_description: + has_description: # range: string - has_or_had_identifier: + identified_by: # range: string examples: - value: RSIN 123456789 @@ -79,13 +79,13 @@ classes: multivalued: true examples: - value: - has_or_had_type: - has_or_had_label: Fully Deductible - has_or_had_percentage: + has_type: + has_label: Fully Deductible + has_percentage: - value: - has_or_had_type: - has_or_had_label: Enhanced Cultural - has_or_had_percentage: + has_type: + has_label: Enhanced Cultural + has_percentage: regulatory_body: # range: string examples: @@ -98,7 +98,7 @@ classes: - value: Wet inkomstenbelasting 2001 - value: Finance Act 1990 - value: Internal Revenue Code Section 501(c)(3) - is_or_was_effective_at: + effective_at: range: date expires_on_expired_at: range: TimeSpan @@ -115,41 +115,41 @@ classes: - https://www.impots.gouv.fr/professionnel/dons-et-mecenat examples: - value: - has_or_had_type: CulturalANBI - has_or_had_label: Cultural ANBI (125%) - has_or_had_description: Rijksmuseum is registered as Cultural ANBI, providing donors with 125% tax deduction (100% standard + 25% cultural bonus). - has_or_had_identifier: RSIN 002006066 + has_type: CulturalANBI + has_label: Cultural ANBI (125%) + has_description: Rijksmuseum is registered as Cultural ANBI, providing donors with 125% tax deduction (100% standard + 25% cultural bonus). + identified_by: RSIN 002006066 jurisdiction: NL offers_or_offered: - - has_or_had_type: - has_or_had_label: Enhanced Cultural Deductibility - has_or_had_percentage: + - has_type: + has_label: Enhanced Cultural Deductibility + has_percentage: regulatory_body: Belastingdienst legal_basis: Wet inkomstenbelasting 2001, Art. 6.39a - is_or_was_effective_at: '2008-01-01' + effective_at: '2008-01-01' - value: - has_or_had_type: GiftAid - has_or_had_label: Gift Aid eligible - has_or_had_description: "British Library is registered for Gift Aid, allowing the library to reclaim 25p for every \xA31 donated by UK taxpayers." - has_or_had_identifier: Charity No. 1034686 + has_type: GiftAid + has_label: Gift Aid eligible + has_description: "British Library is registered for Gift Aid, allowing the library to reclaim 25p for every \xA31 donated by UK taxpayers." + identified_by: Charity No. 1034686 jurisdiction: UK offers_or_offered: - - has_or_had_type: - has_or_had_label: Fully Deductible - has_or_had_percentage: + - has_type: + has_label: Fully Deductible + has_percentage: regulatory_body: HMRC legal_basis: Finance Act 1990 - is_or_was_effective_at: '1990-10-01' + effective_at: '1990-10-01' - value: - has_or_had_type: Section501c3 - has_or_had_label: 501(c)(3) tax-exempt - has_or_had_description: Smithsonian Institution is recognized as a 501(c)(3) organization, allowing donors to deduct contributions on federal income taxes. - has_or_had_identifier: EIN 53-0206027 + has_type: Section501c3 + has_label: 501(c)(3) tax-exempt + has_description: Smithsonian Institution is recognized as a 501(c)(3) organization, allowing donors to deduct contributions on federal income taxes. + identified_by: EIN 53-0206027 jurisdiction: US offers_or_offered: - - has_or_had_type: - has_or_had_label: Fully Deductible - has_or_had_percentage: + - has_type: + has_label: Fully Deductible + has_percentage: regulatory_body: IRS legal_basis: Internal Revenue Code Section 501(c)(3) annotations: diff --git a/schemas/20251121/linkml/modules/classes/TaxSchemeType.yaml b/schemas/20251121/linkml/modules/classes/TaxSchemeType.yaml index 1eed83fa3c..346e98bd27 100644 --- a/schemas/20251121/linkml/modules/classes/TaxSchemeType.yaml +++ b/schemas/20251121/linkml/modules/classes/TaxSchemeType.yaml @@ -8,8 +8,8 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: TaxSchemeType: @@ -76,14 +76,14 @@ classes: close_mappings: - schema:GovernmentService slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description slot_usage: - has_or_had_label: + has_label: examples: - value: ANBI - value: Gift Aid - has_or_had_description: + has_description: annotations: specificity_score: 0.5 specificity_rationale: 'Moderately specific - tax scheme types are relevant primarily diff --git a/schemas/20251121/linkml/modules/classes/Taxon.yaml b/schemas/20251121/linkml/modules/classes/Taxon.yaml index d19f2410cf..ed114856d7 100644 --- a/schemas/20251121/linkml/modules/classes/Taxon.yaml +++ b/schemas/20251121/linkml/modules/classes/Taxon.yaml @@ -12,9 +12,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score classes: Taxon: class_uri: schema:Taxon @@ -31,11 +31,11 @@ classes: close_mappings: - skos:Concept slots: - - has_or_had_label - - has_or_had_description - - has_or_had_score + - has_label + - has_description + - has_score slot_usage: - has_or_had_label: + has_label: # range: string required: true examples: @@ -48,7 +48,7 @@ classes: examples: - value: id: https://nde.nl/ontology/hc/taxon/raphus-cucullatus - has_or_had_label: Raphus cucullatus + has_label: Raphus cucullatus annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/TaxonName.yaml b/schemas/20251121/linkml/modules/classes/TaxonName.yaml index 5f054fdd13..83d45c63bf 100644 --- a/schemas/20251121/linkml/modules/classes/TaxonName.yaml +++ b/schemas/20251121/linkml/modules/classes/TaxonName.yaml @@ -9,8 +9,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_label classes: TaxonName: class_uri: dwc:Taxon @@ -52,8 +52,8 @@ classes: close_mappings: - skos:Concept slots: - - has_or_had_label - - has_or_had_code + - has_label + - has_code annotations: specificity_score: '0.70' specificity_rationale: Specific to natural history collections - taxonomic nomenclature. diff --git a/schemas/20251121/linkml/modules/classes/TaxonomicAuthority.yaml b/schemas/20251121/linkml/modules/classes/TaxonomicAuthority.yaml index 6d50afa502..3f738a3722 100644 --- a/schemas/20251121/linkml/modules/classes/TaxonomicAuthority.yaml +++ b/schemas/20251121/linkml/modules/classes/TaxonomicAuthority.yaml @@ -1,8 +1,8 @@ id: https://nde.nl/ontology/hc/class/TaxonomicAuthority name: TaxonomicAuthority title: Taxonomic Authority Class -description: "Structured representation of taxonomic name authorship.\n\nModels the authorship information for scientific names following\nnomenclatural codes (ICZN for animals, ICN for plants, ICNP for bacteria).\n\n**MIGRATION**: Created to support `has_or_had_authority` slot per slot_fixes.yaml\n(Rule 53/56, 2026-01-16). Replaces unstructured `taxonomic_authority` string values.\n\n**Ontology Alignment**:\n- class_uri: prov:Attribution (provenance attribution)\n- Aligns with TCS (Taxon Concept Schema) authorship elements\n- Maps to Darwin Core scientificNameAuthorship\n\n**Key Properties**:\n- has_or_had_label: The full authority string (e.g., \"Linnaeus, 1758\")\n- has_or_had_author: Author name(s) as separate elements\n- has_or_had_date: Publication year\n- is_or_was_recombined: Whether parentheses indicate recombination\n\n**Nomenclatural Codes**:\n\n| Code | Domain | Example |\n|------|--------|---------|\n| ICZN | Animals | \"Linnaeus, 1758\" |\n| ICN | Plants/Algae/Fungi | \"L.\"\ - \ (abbreviated) |\n| ICNP | Prokaryotes | \"(Migula 1900) Skerman et al. 1980\" |\n| ICVCN | Viruses | \"ICTV 2020\" |\n\n**Example**:\n```yaml\nauthority:\n has_or_had_label: \"Linnaeus, 1758\"\n has_or_had_author: [\"Carl Linnaeus\"]\n has_or_had_date: 1758\n is_or_was_recombined: false\n nomenclatural_code: ICZN\n```\n" +description: "Structured representation of taxonomic name authorship.\n\nModels the authorship information for scientific names following\nnomenclatural codes (ICZN for animals, ICN for plants, ICNP for bacteria).\n\n**MIGRATION**: Created to support `has_authority` slot per slot_fixes.yaml\n(Rule 53/56, 2026-01-16). Replaces unstructured `taxonomic_authority` string values.\n\n**Ontology Alignment**:\n- class_uri: prov:Attribution (provenance attribution)\n- Aligns with TCS (Taxon Concept Schema) authorship elements\n- Maps to Darwin Core scientificNameAuthorship\n\n**Key Properties**:\n- has_label: The full authority string (e.g., \"Linnaeus, 1758\")\n- has_author: Author name(s) as separate elements\n- has_date: Publication year\n- recombined: Whether parentheses indicate recombination\n\n**Nomenclatural Codes**:\n\n| Code | Domain | Example |\n|------|--------|---------|\n| ICZN | Animals | \"Linnaeus, 1758\" |\n| ICN | Plants/Algae/Fungi | \"L.\"\ + \ (abbreviated) |\n| ICNP | Prokaryotes | \"(Migula 1900) Skerman et al. 1980\" |\n| ICVCN | Viruses | \"ICTV 2020\" |\n\n**Example**:\n```yaml\nauthority:\n has_label: \"Linnaeus, 1758\"\n has_author: [\"Carl Linnaeus\"]\n has_date: 1758\n recombined: false\n nomenclatural_code: ICZN\n```\n" prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -12,11 +12,11 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_author - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/is_or_was_recombined + - ../slots/20260202_matang/has_author + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/recombined - ../slots/nomenclatural_code - ../slots/basionym_authority default_prefix: hc @@ -33,22 +33,22 @@ classes: - dwc:scientificNameAuthorship - schema:CreativeWork slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_author + - identified_by + - has_label + - has_description + - has_author slot_usage: - has_or_had_identifier: + identified_by: examples: - value: urn:lsid:zoobank.org:act:12345678-1234-1234-1234-123456789012 - has_or_had_label: + has_label: required: true examples: - value: Linnaeus, 1758 - value: (Gray, 1821) - value: L. - value: (Migula 1900) Skerman et al. 1980 - has_or_had_author: + has_author: multivalued: true examples: - value: @@ -60,37 +60,37 @@ classes: - McGowan - Sneath - value: 1758 - has_or_had_description: + has_description: examples: - value: Original description in Systema Naturae, 10th edition - value: true comments: - TaxonomicAuthority provides structured representation of authorship - - The has_or_had_label slot holds the conventional formatted string - - Use is_or_was_recombined to indicate parenthetical authorities - - Link to nomenclatural databases via has_or_had_identifier + - The has_label slot holds the conventional formatted string + - Use recombined to indicate parenthetical authorities + - Link to nomenclatural databases via identified_by see_also: - https://www.iczn.org/ - https://www.iapt-taxon.org/nomen/main.php - https://dwc.tdwg.org/terms/#dwc:scientificNameAuthorship examples: - value: - has_or_had_label: Linnaeus, 1758 - has_or_had_author: + has_label: Linnaeus, 1758 + has_author: - Carl Linnaeus - has_or_had_description: Original description of Homo sapiens in Systema Naturae, 10th edition + has_description: Original description of Homo sapiens in Systema Naturae, 10th edition - value: - has_or_had_label: (Gray, 1821) - has_or_had_author: + has_label: (Gray, 1821) + has_author: - John Edward Gray - value: - has_or_had_label: L. - has_or_had_author: + has_label: L. + has_author: - Carl Linnaeus - has_or_had_description: Abbreviated botanical authority per ICN conventions + has_description: Abbreviated botanical authority per ICN conventions - value: - has_or_had_label: (Migula 1900) Skerman et al. 1980 - has_or_had_author: + has_label: (Migula 1900) Skerman et al. 1980 + has_author: - Skerman - McGowan - Sneath diff --git a/schemas/20251121/linkml/modules/classes/TechnicalFeature.yaml b/schemas/20251121/linkml/modules/classes/TechnicalFeature.yaml index e684a70197..f78b6c87ed 100644 --- a/schemas/20251121/linkml/modules/classes/TechnicalFeature.yaml +++ b/schemas/20251121/linkml/modules/classes/TechnicalFeature.yaml @@ -8,15 +8,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type classes: TechnicalFeature: class_uri: schema:PropertyValue description: 'A technical feature or capability of a platform. ' slots: - - has_or_had_type + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie close_mappings: - schema:PropertyValue diff --git a/schemas/20251121/linkml/modules/classes/TechnicalFeatureType.yaml b/schemas/20251121/linkml/modules/classes/TechnicalFeatureType.yaml index 8d3cc579f8..c50b7c0e09 100644 --- a/schemas/20251121/linkml/modules/classes/TechnicalFeatureType.yaml +++ b/schemas/20251121/linkml/modules/classes/TechnicalFeatureType.yaml @@ -6,18 +6,18 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: TechnicalFeatureType: description: Abstract base class for technical feature type taxonomy. Classifies the technical capabilities and features of digital platforms, APIs, and systems used by heritage institutions, such as search functionality, authentication methods, or export formats. class_uri: skos:Concept abstract: true slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Technique.yaml b/schemas/20251121/linkml/modules/classes/Technique.yaml index f824044388..a53cb1751f 100644 --- a/schemas/20251121/linkml/modules/classes/Technique.yaml +++ b/schemas/20251121/linkml/modules/classes/Technique.yaml @@ -1,8 +1,8 @@ id: https://nde.nl/ontology/hc/class/Technique name: Technique title: Technique Class -description: "A technique or method used in a heritage activity.\n\nRepresents structured technique records with type classification, description,\nand provenance. Used for conservation treatments, examinations, production\nmethods, and documentation activities.\n\n**MIGRATION**: Created to support `uses_or_used_technique` slot per slot_fixes.yaml\n(Rule 53/56, 2026-01-16). Replaces unstructured `techniques_used` string values.\n\n**Ontology Alignment**:\n- class_uri: crm:E29_Design_or_Procedure\n- CIDOC-CRM: \"This class comprises documented or encoded procedures for\n producing and executing activities.\"\n\n**Key Properties**:\n- has_or_had_type: Links to TechniqueType subclass (REQUIRED)\n- has_or_had_label: Human-readable technique name\n- has_or_had_description: Detailed description of technique application\n- includes_or_included: Sub-steps or component techniques\n\n**Example**:\n```yaml\ntechnique:\n has_or_had_type: SolventCleaning\n has_or_had_label: \"Varnish removal with\ - \ acetone mixture\"\n has_or_had_description: |\n Removal of discolored natural resin varnish using\n 50:50 acetone/white spirit mixture applied with cotton swabs.\n Working in small sections under magnification.\n```\n" +description: "A technique or method used in a heritage activity.\n\nRepresents structured technique records with type classification, description,\nand provenance. Used for conservation treatments, examinations, production\nmethods, and documentation activities.\n\n**MIGRATION**: Created to support `uses_or_used_technique` slot per slot_fixes.yaml\n(Rule 53/56, 2026-01-16). Replaces unstructured `techniques_used` string values.\n\n**Ontology Alignment**:\n- class_uri: crm:E29_Design_or_Procedure\n- CIDOC-CRM: \"This class comprises documented or encoded procedures for\n producing and executing activities.\"\n\n**Key Properties**:\n- has_type: Links to TechniqueType subclass (REQUIRED)\n- has_label: Human-readable technique name\n- has_description: Detailed description of technique application\n- include: Sub-steps or component techniques\n\n**Example**:\n```yaml\ntechnique:\n has_type: SolventCleaning\n has_label: \"Varnish removal with\ + \ acetone mixture\"\n has_description: |\n Removal of discolored natural resin varnish using\n 50:50 acetone/white spirit mixture applied with cotton swabs.\n Working in small sections under magnification.\n```\n" prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -12,11 +12,11 @@ prefixes: aat: http://vocab.getty.edu/aat/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_type - - ../slots/includes_or_included + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/include default_prefix: hc classes: Technique: @@ -37,29 +37,29 @@ classes: related_mappings: - crm:E55_Type slots: - - has_or_had_identifier - - has_or_had_type - - has_or_had_label - - has_or_had_description - - includes_or_included + - identified_by + - has_type + - has_label + - has_description + - include slot_usage: - has_or_had_identifier: + identified_by: examples: - value: aat:300379752 - value: https://nde.nl/ontology/hc/technique/mauritshuis-670-1994-solvent-cleaning - has_or_had_type: + has_type: # range: string # uriorcurie required: true examples: - value: SolventCleaning - value: InfraredReflectography - value: TratteggioInpainting - has_or_had_label: + has_label: examples: - value: Varnish removal with acetone mixture - value: Tratteggio inpainting of paint losses - value: Macro XRF scanning - has_or_had_description: + has_description: examples: - value: 'Removal of discolored natural resin varnish using @@ -77,30 +77,30 @@ classes: approximately 1mm spacing. ' - includes_or_included: + include: # range: string multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_type: AqueousCleaning - has_or_had_label: Initial surface cleaning - has_or_had_description: Removal of surface grime with distilled water and cotton swabs + has_type: AqueousCleaning + has_label: Initial surface cleaning + has_description: Removal of surface grime with distilled water and cotton swabs comments: - Technique represents a procedure or method applied in heritage activities - - Always requires has_or_had_type to classify the technique - - Use includes_or_included for complex multi-step procedures - - Link to vocabulary terms (AAT) via has_or_had_identifier when applicable + - Always requires has_type to classify the technique + - Use include for complex multi-step procedures + - Link to vocabulary terms (AAT) via identified_by when applicable see_also: - https://cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E29 - https://www.getty.edu/research/tools/vocabularies/aat/ - https://collectionstrust.org.uk/spectrum/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/technique/mauritshuis-670-1994-solvent-cleaning - has_or_had_type: SolventCleaning - has_or_had_label: Varnish removal with acetone/white spirit mixture - has_or_had_description: 'Removal of discolored natural resin varnish from Girl with a Pearl Earring. + identified_by: https://nde.nl/ontology/hc/technique/mauritshuis-670-1994-solvent-cleaning + has_type: SolventCleaning + has_label: Varnish removal with acetone/white spirit mixture + has_description: 'Removal of discolored natural resin varnish from Girl with a Pearl Earring. Used 50:50 acetone/white spirit mixture applied with cotton swabs. @@ -110,9 +110,9 @@ classes: ' - value: - has_or_had_type: TratteggioInpainting - has_or_had_label: Tratteggio inpainting of background losses - has_or_had_description: 'Losses in dark background area in-painted using tratteggio technique. + has_type: TratteggioInpainting + has_label: Tratteggio inpainting of background losses + has_description: 'Losses in dark background area in-painted using tratteggio technique. Fine parallel brushstrokes using Gamblin conservation colors. @@ -120,17 +120,17 @@ classes: ' - value: - has_or_had_type: VacuumLining - has_or_had_label: Vacuum table lining with BEVA 371 - has_or_had_description: "Canvas lined using vacuum hot table at 65\xB0C.\nBEVA 371 adhesive between original and new linen canvas.\nAtmospheric pressure maintained for 30 minutes during cooling.\n" - includes_or_included: - - has_or_had_type: StructuralRepairTechnique - has_or_had_label: Thread-by-thread tear mending - has_or_had_description: Aligned torn threads and secured with wheat starch paste + has_type: VacuumLining + has_label: Vacuum table lining with BEVA 371 + has_description: "Canvas lined using vacuum hot table at 65\xB0C.\nBEVA 371 adhesive between original and new linen canvas.\nAtmospheric pressure maintained for 30 minutes during cooling.\n" + include: + - has_type: StructuralRepairTechnique + has_label: Thread-by-thread tear mending + has_description: Aligned torn threads and secured with wheat starch paste - value: - has_or_had_type: XRayFluorescence - has_or_had_label: MA-XRF elemental mapping - has_or_had_description: "Macro X-ray fluorescence scanning to map elemental distribution.\nBruker M6 Jetstream scanner, 50kV, 600\u03BCA.\nScan area 67 x 60 cm at 650 \u03BCm resolution.\nIdentified lead white, vermilion, yellow ochre, natural ultramarine.\n" + has_type: XRayFluorescence + has_label: MA-XRF elemental mapping + has_description: "Macro X-ray fluorescence scanning to map elemental distribution.\nBruker M6 Jetstream scanner, 50kV, 600\u03BCA.\nScan area 67 x 60 cm at 650 \u03BCm resolution.\nIdentified lead white, vermilion, yellow ochre, natural ultramarine.\n" annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/TechniqueType.yaml b/schemas/20251121/linkml/modules/classes/TechniqueType.yaml index f2c56105dc..651f60ac19 100644 --- a/schemas/20251121/linkml/modules/classes/TechniqueType.yaml +++ b/schemas/20251121/linkml/modules/classes/TechniqueType.yaml @@ -44,9 +44,9 @@ prefixes: aat: http://vocab.getty.edu/aat/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label default_prefix: hc classes: TechniqueType: @@ -66,18 +66,18 @@ classes: - crm:E55_Type - aat:300264237 slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description slot_usage: - has_or_had_identifier: + identified_by: examples: - value: aat:300053052 - has_or_had_label: + has_label: examples: - value: Solvent Cleaning - value: Infrared Reflectography - has_or_had_description: + has_description: examples: - value: Removal of surface deposits using organic solvents. annotations: diff --git a/schemas/20251121/linkml/modules/classes/TechniqueTypes.yaml b/schemas/20251121/linkml/modules/classes/TechniqueTypes.yaml index f80f78d01b..2d6793b481 100644 --- a/schemas/20251121/linkml/modules/classes/TechniqueTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/TechniqueTypes.yaml @@ -68,8 +68,8 @@ classes: - aat:300379752 examples: - value: - has_or_had_label: Acetone/white spirit cleaning - has_or_had_description: Removal of yellowed varnish using 50:50 acetone/white + has_label: Acetone/white spirit cleaning + has_description: Removal of yellowed varnish using 50:50 acetone/white spirit broad_mappings: - skos:Concept diff --git a/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructure.yaml b/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructure.yaml index fc8869a520..91e4c9f554 100644 --- a/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructure.yaml +++ b/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructure.yaml @@ -10,18 +10,18 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_type - - ../slots/has_or_had_version - - ../slots/includes_or_included + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_version + - ../slots/20260202_matang/include default_prefix: hc classes: TechnologicalInfrastructure: class_uri: doap:Project - description: "Structured representation of a technology component used in a digital platform.\n\n**MIGRATION from technology_stack**:\nThis class replaces the simple string-based `technology_stack` slot with a\nstructured model that provides:\n- Type classification via TechnologicalInfrastructureType hierarchy\n- Version tracking\n- Component composition (includes_or_included)\n- Rich descriptions and provenance\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `doap:Project` - DOAP vocabulary for software projects\n- **Close**: `schema:SoftwareApplication` - Schema.org software application\n- **Related**: `spdx:Package` - SPDX Software Bill of Materials\n\n**Example Usage**:\n```yaml\nhas_or_had_technological_infrastructure:\n - has_or_had_identifier: tech-react-frontend\n has_or_had_type: FrontendFramework\n has_or_had_label: React\n has_or_had_version: \"18.2.0\"\n has_or_had_description: Frontend JavaScript library for building user interfaces\n - has_or_had_identifier:\ - \ tech-django-backend\n has_or_had_type: BackendFramework\n has_or_had_label: Django\n has_or_had_version: \"4.2\"\n has_or_had_description: Python web framework for rapid development\n includes_or_included:\n - Django REST Framework\n - Django ORM\n```\n\n**Use Cases**:\n- Document platform technology stacks for heritage digital platforms\n- Track software versions for preservation and migration planning\n- Model component dependencies\n- Enable technology-based discovery of similar platforms\n" + description: "Structured representation of a technology component used in a digital platform.\n\n**MIGRATION from technology_stack**:\nThis class replaces the simple string-based `technology_stack` slot with a\nstructured model that provides:\n- Type classification via TechnologicalInfrastructureType hierarchy\n- Version tracking\n- Component composition (include)\n- Rich descriptions and provenance\n\n**Ontological Alignment**:\n- **Primary** (`class_uri`): `doap:Project` - DOAP vocabulary for software projects\n- **Close**: `schema:SoftwareApplication` - Schema.org software application\n- **Related**: `spdx:Package` - SPDX Software Bill of Materials\n\n**Example Usage**:\n```yaml\nhas_technological_infrastructure:\n - identified_by: tech-react-frontend\n has_type: FrontendFramework\n has_label: React\n has_version: \"18.2.0\"\n has_description: Frontend JavaScript library for building user interfaces\n - identified_by:\ + \ tech-django-backend\n has_type: BackendFramework\n has_label: Django\n has_version: \"4.2\"\n has_description: Python web framework for rapid development\n include:\n - Django REST Framework\n - Django ORM\n```\n\n**Use Cases**:\n- Document platform technology stacks for heritage digital platforms\n- Track software versions for preservation and migration planning\n- Model component dependencies\n- Enable technology-based discovery of similar platforms\n" exact_mappings: - doap:Project close_mappings: @@ -29,42 +29,42 @@ classes: related_mappings: - spdx:Package slots: - - has_or_had_identifier - - has_or_had_type - - has_or_had_label - - has_or_had_description - - has_or_had_version - - includes_or_included + - identified_by + - has_type + - has_label + - has_description + - has_version + - include slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true examples: - value: tech-react-18-frontend - value: tech-postgresql-15-primary - has_or_had_type: + has_type: # range: string # uriorcurie required: true examples: - value: FrontendFramework - value: RelationalDatabase - value: SPARQLEndpoint - has_or_had_label: + has_label: required: true examples: - value: React - value: Python/Django - value: Fedora Commons - has_or_had_description: + has_description: examples: - value: Frontend JavaScript framework for collection browsing interface - has_or_had_version: + has_version: # range: string examples: - value: 18.2.0 - value: 4.2 LTS - value: '15.4' - includes_or_included: + include: # range: string multivalued: true examples: @@ -77,33 +77,33 @@ classes: - Supports version tracking for preservation planning examples: - value: - has_or_had_identifier: tech-react-18 - has_or_had_type: FrontendFramework - has_or_had_label: React - has_or_had_version: 18.2.0 - has_or_had_description: Frontend JavaScript library for collection interface + identified_by: tech-react-18 + has_type: FrontendFramework + has_label: React + has_version: 18.2.0 + has_description: Frontend JavaScript library for collection interface - value: - has_or_had_identifier: tech-django-backend - has_or_had_type: BackendFramework - has_or_had_label: Python/Django - has_or_had_version: '4.2' - has_or_had_description: Backend web framework for API and admin - includes_or_included: + identified_by: tech-django-backend + has_type: BackendFramework + has_label: Python/Django + has_version: '4.2' + has_description: Backend web framework for API and admin + include: - Django REST Framework - Django ORM - Celery - value: - has_or_had_identifier: tech-solr-search - has_or_had_type: SearchIndex - has_or_had_label: Apache Solr - has_or_had_version: '9.4' - has_or_had_description: Full-text search indexing for collection discovery + identified_by: tech-solr-search + has_type: SearchIndex + has_label: Apache Solr + has_version: '9.4' + has_description: Full-text search indexing for collection discovery - value: - has_or_had_identifier: tech-fedora-repo - has_or_had_type: DigitalRepositorySystem - has_or_had_label: Fedora Commons - has_or_had_version: '6.5' - has_or_had_description: Digital asset repository for preservation + identified_by: tech-fedora-repo + has_type: DigitalRepositorySystem + has_label: Fedora Commons + has_version: '6.5' + has_description: Digital asset repository for preservation annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructureType.yaml b/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructureType.yaml index 732f387229..fcaa69375d 100644 --- a/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructureType.yaml +++ b/schemas/20251121/linkml/modules/classes/TechnologicalInfrastructureType.yaml @@ -8,9 +8,9 @@ prefixes: doap: http://usefulinc.com/ns/doap# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label default_prefix: hc classes: TechnologicalInfrastructureType: @@ -63,21 +63,21 @@ classes: close_mappings: - doap:Project slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true examples: - value: hc:TechnologicalInfrastructureType/Framework - has_or_had_label: + has_label: required: true examples: - value: Framework - value: Database - has_or_had_description: + has_description: examples: - value: Frontend or backend web application framework comments: diff --git a/schemas/20251121/linkml/modules/classes/TelevisionArchive.yaml b/schemas/20251121/linkml/modules/classes/TelevisionArchive.yaml index 49d41efb83..feaa9bf262 100644 --- a/schemas/20251121/linkml/modules/classes/TelevisionArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/TelevisionArchive.yaml @@ -10,11 +10,11 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/related_to classes: TelevisionArchive: description: A heritage custodian specialized in collecting, preserving, and providing access to television programs, @@ -24,11 +24,11 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_score + - related_to + - identified_by exact_mappings: - wd:Q109326243 close_mappings: @@ -37,9 +37,9 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: diff --git a/schemas/20251121/linkml/modules/classes/TelevisionArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/TelevisionArchiveRecordSetType.yaml index 7c4b4c1dfd..2eaa20a7f2 100644 --- a/schemas/20251121/linkml/modules/classes/TelevisionArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/TelevisionArchiveRecordSetType.yaml @@ -9,8 +9,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to classes: TelevisionArchiveRecordSetType: description: A rico:RecordSetType for classifying collections of television programs, recordings, and broadcast materials. @@ -19,14 +19,14 @@ classes: exact_mappings: - wd:Q109326243 slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: - TelevisionArchive slots: - - has_or_had_score - - is_or_was_related_to + - has_score + - related_to annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/TelevisionArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/TelevisionArchiveRecordSetTypes.yaml index e3cfa73db9..4344268ec9 100644 --- a/schemas/20251121/linkml/modules/classes/TelevisionArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/TelevisionArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./TelevisionArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - TelevisionArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: TelevisionBroadcastFonds @@ -78,15 +78,15 @@ classes: - TelevisionArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: ProductionRecordSeries @@ -115,15 +115,15 @@ classes: - TelevisionArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: NewsFootageCollection diff --git a/schemas/20251121/linkml/modules/classes/TemperatureDeviation.yaml b/schemas/20251121/linkml/modules/classes/TemperatureDeviation.yaml index 2b6c008762..b1862c2187 100644 --- a/schemas/20251121/linkml/modules/classes/TemperatureDeviation.yaml +++ b/schemas/20251121/linkml/modules/classes/TemperatureDeviation.yaml @@ -12,10 +12,10 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_measurement_unit - - ../slots/has_or_had_quantity + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_measurement_unit + - ../slots/20260202_matang/has_quantity classes: TemperatureDeviation: class_uri: qudt:Tolerance @@ -35,10 +35,10 @@ classes: \ 2.0` lose important context: - What's the unit? (Celsius? Fahrenheit?) - Is\ \ this plus/minus or just plus? - What standard is this based on? - When was\ \ this tolerance established?\n**MIGRATION NOTE**:\nThis class replaces the\ - \ bespoke `temperature_tolerance` slot (float range). Used via the generic `allows_or_allowed`\ - \ slot per Rule 53/56.\n**EXAMPLE**:\n```yaml EnvironmentalZone:\n allows_or_allowed:\n\ - \ - deviation_value: 2.0\n deviation_direction: PLUS_MINUS\n has_or_had_measurement_unit:\n\ - \ has_or_had_type: DEGREE_CELSIUS\n has_or_had_symbol: \"°C\"\n\ + \ bespoke `temperature_tolerance` slot (float range). Used via the generic `allow`\ + \ slot per Rule 53/56.\n**EXAMPLE**:\n```yaml EnvironmentalZone:\n allow:\n\ + \ - deviation_value: 2.0\n deviation_direction: PLUS_MINUS\n has_measurement_unit:\n\ + \ has_type: DEGREE_CELSIUS\n has_symbol: \"°C\"\n\ \ iso_standard_reference: \"ISO 11799:2015\"\n```" exact_mappings: - qudt:Tolerance @@ -49,35 +49,35 @@ classes: - wd:Q11466 - schema:additionalProperty slots: - - has_or_had_quantity - - has_or_had_measurement_unit - - has_or_had_description - - has_or_had_label + - has_quantity + - has_measurement_unit + - has_description + - has_label - iso_standard_reference slot_usage: - has_or_had_quantity: + has_quantity: range: integer required: false inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_measurement_unit: - has_or_had_type: DEGREE_CELSIUS - has_or_had_symbol: °C - has_or_had_measurement_unit: + has_measurement_unit: + has_type: DEGREE_CELSIUS + has_symbol: °C + has_measurement_unit: range: MeasureUnit required: false inlined: true examples: - value: - has_or_had_type: DEGREE_CELSIUS - has_or_had_symbol: °C - has_or_had_description: + has_type: DEGREE_CELSIUS + has_symbol: °C + has_description: # range: string required: false examples: - value: Tighter tolerance required for daguerreotype collection - has_or_had_label: + has_label: # range: string required: false examples: @@ -85,7 +85,7 @@ classes: - value: Cold Storage Precision Tolerance comments: - MIGRATED from temperature_tolerance slot (float) per Rule 53/56 - - Used via allows_or_allowed slot for temporal flexibility + - Used via allow slot for temporal flexibility - Companion to humidity_tolerance migration (HumidityDeviation class) - Setpoint class already handles target values - this handles deviations see_also: @@ -102,21 +102,21 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_measurement_unit: - has_or_had_type: DEGREE_CELSIUS - has_or_had_symbol: °C + has_measurement_unit: + has_type: DEGREE_CELSIUS + has_symbol: °C iso_standard_reference: ISO 11799:2015 - has_or_had_label: Standard Archive Tolerance - has_or_had_description: Per ISO 11799:2015 for paper-based materials + has_label: Standard Archive Tolerance + has_description: Per ISO 11799:2015 for paper-based materials - value: - has_or_had_measurement_unit: - has_or_had_type: DEGREE_CELSIUS - has_or_had_symbol: °C + has_measurement_unit: + has_type: DEGREE_CELSIUS + has_symbol: °C iso_standard_reference: BS 4971:2017 - has_or_had_label: Sensitive Materials Tolerance + has_label: Sensitive Materials Tolerance - value: iso_standard_reference: ISO 18911:2010 - has_or_had_description: Precision cold storage for film negatives + has_description: Precision cold storage for film negatives enums: DeviationDirectionEnum: description: Direction of allowed deviation from a setpoint. diff --git a/schemas/20251121/linkml/modules/classes/TemplateSpecificityScore.yaml b/schemas/20251121/linkml/modules/classes/TemplateSpecificityScore.yaml index 49614419a0..77a8a4b387 100644 --- a/schemas/20251121/linkml/modules/classes/TemplateSpecificityScore.yaml +++ b/schemas/20251121/linkml/modules/classes/TemplateSpecificityScore.yaml @@ -8,21 +8,21 @@ prefixes: default_prefix: hc imports: - linkml:types -# - ../slots/has_or_had_score - - ../slots/has_or_had_type +# - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type classes: TemplateSpecificityScore: class_uri: schema:Rating - description: "A single template specificity score associating a template type with a numeric value.\n\n**Purpose** (Rule 37):\nEnables context-aware RAG retrieval by assigning relevance scores\n(0.0-1.0) to schema classes for different conversation templates.\n\n**Design Pattern**:\nReplaces the previous `TemplateSpecificityScores` class which had\n10 separate score slots (one per template). The new pattern uses:\n- `has_or_had_type` \u2192 `TemplateSpecificityType` (which template)\n- `has_or_had_score` \u2192 float (the relevance score)\n\n**Benefits**:\n- Extensible: Adding new templates doesn't require new slots\n- Consistent: Follows RiC-O naming conventions (Rule 39)\n- Reusable: Uses generic slots per Rule 38 (slot centralization)\n\n**Score Semantics** (LOWER = more broadly relevant):\n| Score Range | Meaning | Examples |\n|-------------|---------|----------|\n| 0.00-0.20 | Universal | HeritageCustodian, Location |\n| 0.20-0.40 | Broadly useful | Collection, Identifier |\n| 0.40-0.60\ - \ | Moderately specific | ChangeEvent, PersonProfile |\n| 0.60-0.80 | Fairly specific | Archive, Museum, Library |\n| 0.80-1.00 | Highly specific | LinkedInConnectionExtraction |\n\n**Migration Notes**:\n- Old: `template_specificity` slot with `TemplateSpecificityScores` class\n- New: `has_or_had_score` slot with `TemplateSpecificityScore` class (multivalued)\n- Old class archived: TemplateSpecificityScores \u2192 archive/\n" + description: "A single template specificity score associating a template type with a numeric value.\n\n**Purpose** (Rule 37):\nEnables context-aware RAG retrieval by assigning relevance scores\n(0.0-1.0) to schema classes for different conversation templates.\n\n**Design Pattern**:\nReplaces the previous `TemplateSpecificityScores` class which had\n10 separate score slots (one per template). The new pattern uses:\n- `has_type` \u2192 `TemplateSpecificityType` (which template)\n- `has_score` \u2192 float (the relevance score)\n\n**Benefits**:\n- Extensible: Adding new templates doesn't require new slots\n- Consistent: Follows RiC-O naming conventions (Rule 39)\n- Reusable: Uses generic slots per Rule 38 (slot centralization)\n\n**Score Semantics** (LOWER = more broadly relevant):\n| Score Range | Meaning | Examples |\n|-------------|---------|----------|\n| 0.00-0.20 | Universal | HeritageCustodian, Location |\n| 0.20-0.40 | Broadly useful | Collection, Identifier |\n| 0.40-0.60\ + \ | Moderately specific | ChangeEvent, PersonProfile |\n| 0.60-0.80 | Fairly specific | Archive, Museum, Library |\n| 0.80-1.00 | Highly specific | LinkedInConnectionExtraction |\n\n**Migration Notes**:\n- Old: `template_specificity` slot with `TemplateSpecificityScores` class\n- New: `has_score` slot with `TemplateSpecificityScore` class (multivalued)\n- Old class archived: TemplateSpecificityScores \u2192 archive/\n" slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score slot_usage: - has_or_had_type: + has_type: range: TemplateSpecificityType required: true - has_or_had_score: + has_score: range: float required: true minimum_value: 0.0 @@ -42,6 +42,6 @@ classes: rule_compliance: Rules 37, 38, 39, 53, 56 (specificity, slot centralization, RiC-O naming, full migration, semantic consistency) custodian_types: "['*']" examples: - - value: "archive_relevance:\n has_or_had_type: ArchiveSearchTemplate\n has_or_had_score: 0.85\n" - - value: "museum_relevance:\n has_or_had_type: MuseumSearchTemplate\n has_or_had_score: 0.20\n" - - value: "# Multiple scores for a single class\nscores:\n - has_or_had_type: ArchiveSearchTemplate\n has_or_had_score: 0.95\n - has_or_had_type: LibrarySearchTemplate\n has_or_had_score: 0.30\n - has_or_had_type: GeneralHeritageTemplate\n has_or_had_score: 0.45\n" \ No newline at end of file + - value: "archive_relevance:\n has_type: ArchiveSearchTemplate\n has_score: 0.85\n" + - value: "museum_relevance:\n has_type: MuseumSearchTemplate\n has_score: 0.20\n" + - value: "# Multiple scores for a single class\nscores:\n - has_type: ArchiveSearchTemplate\n has_score: 0.95\n - has_type: LibrarySearchTemplate\n has_score: 0.30\n - has_type: GeneralHeritageTemplate\n has_score: 0.45\n" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/TemplateSpecificityType.yaml b/schemas/20251121/linkml/modules/classes/TemplateSpecificityType.yaml index f21d535401..fb25a116c8 100644 --- a/schemas/20251121/linkml/modules/classes/TemplateSpecificityType.yaml +++ b/schemas/20251121/linkml/modules/classes/TemplateSpecificityType.yaml @@ -9,8 +9,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: TemplateSpecificityType: class_uri: skos:Concept @@ -47,12 +47,12 @@ classes: ' abstract: true slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description slot_usage: - has_or_had_label: + has_label: required: true - has_or_had_description: + has_description: annotations: specificity_score: 0.15 specificity_rationale: 'Low specificity (meta-class) - TemplateSpecificityType is part of the @@ -67,4 +67,4 @@ classes: rule_compliance: Rules 0b, 37, 53, 56 (Type/Types convention, specificity, full migration, semantic consistency) custodian_types: "['*']" examples: - - value: "archive_search_type:\n has_or_had_label: Archive Search\n has_or_had_description: Queries about archival institutions, finding aids, and records management.\n" \ No newline at end of file + - value: "archive_search_type:\n has_label: Archive Search\n has_description: Queries about archival institutions, finding aids, and records management.\n" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/TemporaryLocation.yaml b/schemas/20251121/linkml/modules/classes/TemporaryLocation.yaml index 154a746bc3..3193078135 100644 --- a/schemas/20251121/linkml/modules/classes/TemporaryLocation.yaml +++ b/schemas/20251121/linkml/modules/classes/TemporaryLocation.yaml @@ -4,15 +4,15 @@ title: TemporaryLocation Class imports: - linkml:types - ../enums/TemporaryLocationReasonEnum - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_rationale - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_rationale + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/is_active - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by - ../slots/planned_end - ../slots/planned_start - ../slots/replaces_primary_location @@ -44,28 +44,28 @@ classes: - crm:E7_Activity - schema:TemporaryLocation slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_rationale - - has_or_had_type + - identified_by + - has_label + - has_description + - has_rationale + - has_type - is_active - planned_end - planned_start - replaces_primary_location - serves_function_of - - has_or_had_score + - has_score - temporal_extent - - is_or_was_derived_from - - is_or_was_generated_by + - derived_from + - generated_by slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/stedelijk-temp-2020 - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -73,7 +73,7 @@ classes: - value: Stedelijk Museum Temporary Entrance - value: Rijksmuseum Pop-up Groningen - value: Emergency Collection Storage - Watersnood 2024 - has_or_had_description: + has_description: # range: string inlined: false # Fixed invalid inline for primitive type examples: @@ -81,7 +81,7 @@ classes: description_text: Temporary entrance during main entrance renovation. Access collections via garden entrance, Paulus Potterstraat side. description_type: location language: en - has_or_had_type: + has_type: range: TemporaryLocationReasonEnum required: true multivalued: false @@ -89,7 +89,7 @@ classes: - value: RENOVATION - value: POP_UP_PROGRAM - value: EMERGENCY - has_or_had_rationale: + has_rationale: # range: string examples: - value: Main entrance renovation including new accessibility features. Expected completion Q4 2021. @@ -133,11 +133,11 @@ classes: examples: - value: Public entrance - value: Collection storage - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false comments: @@ -152,15 +152,15 @@ classes: - http://www.cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E7 examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/stedelijk-temp-2020 - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/stedelijk-temp-2020 + has_label: - Stedelijk Museum Temporary Entrance - has_or_had_description: + has_description: - description_text: Temporary entrance during main entrance renovation. Access via garden entrance. description_type: location language: en - has_or_had_type: RENOVATION - has_or_had_rationale: Main entrance renovation including new accessibility features. + has_type: RENOVATION + has_rationale: Main entrance renovation including new accessibility features. planned_start: '2020-06-01' planned_end: '2021-12-31' temporal_extent: @@ -174,15 +174,15 @@ classes: - Public entrance - Ticket sales - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/rijksmuseum-popup-groningen - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/rijksmuseum-popup-groningen + has_label: - Rijksmuseum Pop-up Groningen - has_or_had_description: + has_description: - description_text: Summer pop-up exhibition in Groninger Forum featuring highlights from the Golden Age collection. description_type: location language: en - has_or_had_type: POP_UP_PROGRAM - has_or_had_rationale: Outreach program bringing collection highlights to northern Netherlands. + has_type: POP_UP_PROGRAM + has_rationale: Outreach program bringing collection highlights to northern Netherlands. planned_start: '2024-07-01' planned_end: '2024-09-30' temporal_extent: @@ -193,15 +193,15 @@ classes: serves_function_of: - Exhibition space - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/emergency-storage-2024 - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/aux/emergency-storage-2024 + has_label: - Emergency Collection Storage - Watersnood 2024 - has_or_had_description: + has_description: - description_text: Emergency relocation of collection materials following flooding at main depot. description_type: location language: en - has_or_had_type: EMERGENCY - has_or_had_rationale: Flooding on 2024-01-14 damaged main storage facility. Collections evacuated to temporary climate-controlled space. + has_type: EMERGENCY + has_rationale: Flooding on 2024-01-14 damaged main storage facility. Collections evacuated to temporary climate-controlled space. temporal_extent: begin_of_the_begin: '2024-01-15' end_of_the_begin: '2024-01-15' diff --git a/schemas/20251121/linkml/modules/classes/TentativeWorldHeritageSite.yaml b/schemas/20251121/linkml/modules/classes/TentativeWorldHeritageSite.yaml index 540c0fea25..baf603b460 100644 --- a/schemas/20251121/linkml/modules/classes/TentativeWorldHeritageSite.yaml +++ b/schemas/20251121/linkml/modules/classes/TentativeWorldHeritageSite.yaml @@ -5,10 +5,10 @@ imports: - ../classes/AgentType - linkml:types - ../slots/custodian_only - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to - ../slots/label_de - ../slots/label_es - ../slots/label_fr @@ -22,15 +22,15 @@ classes: is_a: CustodianType class_uri: skos:Concept slots: - - has_or_had_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_type + - has_score + - related_to + - identified_by slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:FeatureCustodianType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true record_set_type: diff --git a/schemas/20251121/linkml/modules/classes/Text.yaml b/schemas/20251121/linkml/modules/classes/Text.yaml index f2be1372cb..8f93d58e97 100644 --- a/schemas/20251121/linkml/modules/classes/Text.yaml +++ b/schemas/20251121/linkml/modules/classes/Text.yaml @@ -8,21 +8,21 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_provenance - - ../slots/is_or_was_created_through + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/created_through default_prefix: hc classes: Text: class_uri: schema:Text slots: - - has_or_had_label - - has_or_had_description - - has_or_had_provenance - - is_or_was_created_through + - has_label + - has_description + - has_provenance + - created_through slot_usage: - is_or_was_created_through: + created_through: # range: string required: false annotations: diff --git a/schemas/20251121/linkml/modules/classes/TextDirection.yaml b/schemas/20251121/linkml/modules/classes/TextDirection.yaml index 5300d18715..032efe0144 100644 --- a/schemas/20251121/linkml/modules/classes/TextDirection.yaml +++ b/schemas/20251121/linkml/modules/classes/TextDirection.yaml @@ -14,8 +14,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_code - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_label classes: TextDirection: class_uri: hc:TextDirection @@ -41,19 +41,19 @@ classes: A single script may have multiple historical or regional direction conventions. **Usage**: - Used with `has_or_had_direction` slot in InformationCarrier and similar classes. + Used with `has_direction` slot in InformationCarrier and similar classes. **Migrated From**: text_direction string slot (2026-01-16) per Rule 53/56 slots: - - has_or_had_label - - has_or_had_code + - has_label + - has_code slot_usage: - has_or_had_label: + has_label: examples: - value: "Left to Right" - value: "Right to Left" - value: "Top to Bottom" - has_or_had_code: + has_code: examples: - value: "LTR" - value: "RTL" @@ -66,14 +66,14 @@ classes: specificity_rationale: Moderately specific class for manuscript/document analysis examples: - value: - has_or_had_code: "LTR" - has_or_had_label: "Left to Right" + has_code: "LTR" + has_label: "Left to Right" - value: - has_or_had_code: "RTL" - has_or_had_label: "Right to Left" + has_code: "RTL" + has_label: "Right to Left" - value: - has_or_had_code: "TTB" - has_or_had_label: "Top to Bottom" + has_code: "TTB" + has_label: "Top to Bottom" - value: - has_or_had_code: "BOUSTROPHEDON" - has_or_had_label: "Boustrophedon" \ No newline at end of file + has_code: "BOUSTROPHEDON" + has_label: "Boustrophedon" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/TextRegion.yaml b/schemas/20251121/linkml/modules/classes/TextRegion.yaml index f22e7beaa8..ecb08e1fa6 100644 --- a/schemas/20251121/linkml/modules/classes/TextRegion.yaml +++ b/schemas/20251121/linkml/modules/classes/TextRegion.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: TextRegion: class_uri: schema:ImageObject @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_value + - has_value diff --git a/schemas/20251121/linkml/modules/classes/TextSegment.yaml b/schemas/20251121/linkml/modules/classes/TextSegment.yaml index de6db827f9..c543893d4f 100644 --- a/schemas/20251121/linkml/modules/classes/TextSegment.yaml +++ b/schemas/20251121/linkml/modules/classes/TextSegment.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: TextSegment: class_uri: schema:CreativeWork @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_value + - has_value diff --git a/schemas/20251121/linkml/modules/classes/TextType.yaml b/schemas/20251121/linkml/modules/classes/TextType.yaml index 2284ff0b03..ed54464152 100644 --- a/schemas/20251121/linkml/modules/classes/TextType.yaml +++ b/schemas/20251121/linkml/modules/classes/TextType.yaml @@ -15,13 +15,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score classes: TextType: class_uri: skos:Concept @@ -38,15 +38,15 @@ classes: - schema:TextDigitalDocument - schema:VideoObject slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code - - has_or_had_hypernym - - has_or_had_hyponym - - has_or_had_score + - identified_by + - has_label + - has_description + - has_code + - has_hypernym + - has_hyponym + - has_score slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true @@ -54,7 +54,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/text-type/title-card - value: https://nde.nl/ontology/hc/text-type/lower-third - has_or_had_code: + has_code: # range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ @@ -64,7 +64,7 @@ classes: - value: SUBTITLE - value: DOCUMENT - value: HANDWRITTEN - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -75,22 +75,22 @@ classes: - value: - Lower Third@en - Ondertitel@nl - has_or_had_description: + has_description: # range: string required: false examples: - value: Opening or closing title text displayed as a full-screen card - has_or_had_hypernym: + has_hypernym: range: TextType required: false - has_or_had_hyponym: + has_hyponym: range: TextType multivalued: true required: false annotations: specificity_score: '0.80' specificity_rationale: Highly specific - video OCR annotation domain only. - has_or_had_score: null + has_score: null replaces_enum: TextTypeEnum migration_date: '2026-01-13' custodian_types: "['*']" @@ -106,9 +106,9 @@ classes: - https://www.w3.org/2004/02/skos/ examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/text-type/lower-third - has_or_had_code: LOWER_THIRD - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/text-type/lower-third + has_code: LOWER_THIRD + has_label: - Lower Third@en - Naam-balk@nl - has_or_had_description: Name or title overlay displayed in lower third of frame \ No newline at end of file + has_description: Name or title overlay displayed in lower third of frame \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/TextTypes.yaml b/schemas/20251121/linkml/modules/classes/TextTypes.yaml index d533181b94..b38685a62d 100644 --- a/schemas/20251121/linkml/modules/classes/TextTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/TextTypes.yaml @@ -9,10 +9,10 @@ default_prefix: hc imports: - ./TextType - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: TitleCardText: is_a: TextType @@ -48,16 +48,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/title-card) - has_or_had_code: + has_code: ifabsent: string(TITLE_CARD) - has_or_had_label: + has_label: ifabsent: string(Title Card) annotations: specificity_score: '0.85' @@ -100,16 +100,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/lower-third) - has_or_had_code: + has_code: ifabsent: string(LOWER_THIRD) - has_or_had_label: + has_label: ifabsent: string(Lower Third) annotations: specificity_score: '0.85' @@ -145,16 +145,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/subtitle) - has_or_had_code: + has_code: ifabsent: string(SUBTITLE) - has_or_had_label: + has_label: ifabsent: string(Subtitle) annotations: specificity_score: '0.85' @@ -196,16 +196,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/sign) - has_or_had_code: + has_code: ifabsent: string(SIGN) - has_or_had_label: + has_label: ifabsent: string(Sign) annotations: specificity_score: '0.85' @@ -247,16 +247,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/label) - has_or_had_code: + has_code: ifabsent: string(LABEL) - has_or_had_label: + has_label: ifabsent: string(Label) annotations: specificity_score: '0.85' @@ -298,16 +298,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/document) - has_or_had_code: + has_code: ifabsent: string(DOCUMENT) - has_or_had_label: + has_label: ifabsent: string(Document) annotations: specificity_score: '0.85' @@ -360,16 +360,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/handwritten) - has_or_had_code: + has_code: ifabsent: string(HANDWRITTEN) - has_or_had_label: + has_label: ifabsent: string(Handwritten) annotations: specificity_score: '0.85' @@ -411,16 +411,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/graphic) - has_or_had_code: + has_code: ifabsent: string(GRAPHIC) - has_or_had_label: + has_label: ifabsent: string(Graphic) annotations: specificity_score: '0.85' @@ -462,16 +462,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/watermark) - has_or_had_code: + has_code: ifabsent: string(WATERMARK) - has_or_had_label: + has_label: ifabsent: string(Watermark) annotations: specificity_score: '0.85' @@ -513,16 +513,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/url) - has_or_had_code: + has_code: ifabsent: string(URL) - has_or_had_label: + has_label: ifabsent: string(URL) annotations: specificity_score: '0.85' @@ -564,16 +564,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/credits) - has_or_had_code: + has_code: ifabsent: string(CREDITS) - has_or_had_label: + has_label: ifabsent: string(Credits) annotations: specificity_score: '0.85' @@ -604,16 +604,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/text-type/other) - has_or_had_code: + has_code: ifabsent: string(OTHER) - has_or_had_label: + has_label: ifabsent: string(Other) annotations: specificity_score: '0.85' diff --git a/schemas/20251121/linkml/modules/classes/ThematicRoute.yaml b/schemas/20251121/linkml/modules/classes/ThematicRoute.yaml index ec829730b3..a825408baa 100644 --- a/schemas/20251121/linkml/modules/classes/ThematicRoute.yaml +++ b/schemas/20251121/linkml/modules/classes/ThematicRoute.yaml @@ -15,7 +15,7 @@ imports: - ../slots/route_keyword - ../slots/route_relevance_to_heritage - ../slots/route_title - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score classes: ThematicRoute: class_uri: skos:Concept @@ -48,7 +48,7 @@ classes: - route_keyword - route_relevance_to_heritage - route_title - - has_or_had_score + - has_score slot_usage: route_id: identifier: true diff --git a/schemas/20251121/linkml/modules/classes/ThinkingMode.yaml b/schemas/20251121/linkml/modules/classes/ThinkingMode.yaml index 463b769e3f..6e8ed414d4 100644 --- a/schemas/20251121/linkml/modules/classes/ThinkingMode.yaml +++ b/schemas/20251121/linkml/modules/classes/ThinkingMode.yaml @@ -10,9 +10,9 @@ default_prefix: hc imports: - linkml:types - ../enums/ThinkingModeEnum - - ../slots/has_or_had_description - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score classes: ThinkingMode: class_uri: schema:PropertyValue @@ -58,14 +58,14 @@ classes: close_mappings: - prov:Plan slots: - - has_or_had_label - - has_or_had_description - - has_or_had_score + - has_label + - has_description + - has_score slot_usage: - has_or_had_label: + has_label: examples: - value: Preserved Thinking - has_or_had_description: + has_description: examples: - value: Retains reasoning_content from previous assistant turns in context for improved performance. @@ -77,9 +77,9 @@ classes: APIs examples: - value: - has_or_had_label: Preserved Thinking - has_or_had_description: Retains reasoning across conversation turns for improved + has_label: Preserved Thinking + has_description: Retains reasoning across conversation turns for improved accuracy. - value: - has_or_had_label: Interleaved Thinking - has_or_had_description: Default mode - thinks between tool calls. + has_label: Interleaved Thinking + has_description: Default mode - thinks between tool calls. diff --git a/schemas/20251121/linkml/modules/classes/Threat.yaml b/schemas/20251121/linkml/modules/classes/Threat.yaml index 02da124cbe..b15449489b 100644 --- a/schemas/20251121/linkml/modules/classes/Threat.yaml +++ b/schemas/20251121/linkml/modules/classes/Threat.yaml @@ -6,7 +6,7 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type classes: Threat: class_uri: hc:Threat @@ -36,9 +36,9 @@ classes: ' slots: - - has_or_had_type + - has_type slot_usage: - has_or_had_type: + has_type: range: ThreatType multivalued: false annotations: diff --git a/schemas/20251121/linkml/modules/classes/ThreatType.yaml b/schemas/20251121/linkml/modules/classes/ThreatType.yaml index 1072ab0a68..c6f0a1f5e3 100644 --- a/schemas/20251121/linkml/modules/classes/ThreatType.yaml +++ b/schemas/20251121/linkml/modules/classes/ThreatType.yaml @@ -13,9 +13,9 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: ThreatType: class_uri: skos:Concept @@ -29,9 +29,9 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Thumbnail.yaml b/schemas/20251121/linkml/modules/classes/Thumbnail.yaml index c60ac766d7..ab0bcfd04f 100644 --- a/schemas/20251121/linkml/modules/classes/Thumbnail.yaml +++ b/schemas/20251121/linkml/modules/classes/Thumbnail.yaml @@ -10,31 +10,31 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/derives_or_derived_from - - ../slots/has_or_had_time_interval - - ../slots/has_or_had_url + - ../slots/20260202_matang/derive_from + - ../slots/20260202_matang/has_time_interval + - ../slots/20260202_matang/has_url classes: Thumbnail: class_uri: schema:ImageObject - description: "Structured thumbnail media reference.\n\n**DEFINITION**:\nA thumbnail is a reduced-size version of an image or video frame,\ntypically used for preview purposes in search results, galleries,\nand navigation interfaces.\n\n**DERIVATION FROM VIDEO** (2026-01-19 migration):\nWhen a thumbnail is extracted from a video, use:\n- `derives_or_derived_from` \u2192 Video (source video reference)\n- `has_or_had_time_interval` \u2192 TimeInterval (frame timestamp)\n\nThis replaces the deprecated `chapter_thumbnail_timestamp` float field\nwith a structured representation that supports:\n- Explicit source video reference (provenance)\n- Precise timestamp with ISO 8601 duration format\n- Multiple timestamp formats (seconds, HH:MM:SS, ISO duration)\n\n**CONSISTENCY PATTERN** (Rule 56):\nUses structured class rather than simple URL for consistency with\nother media reference patterns and extensibility:\n\n| Slot | Class | Purpose |\n|------|-------|---------|\n| has_or_had_image | Image\ - \ | Full-size images |\n| has_or_had_video | Video | Video resources |\n| has_or_had_audio | Audio | Audio resources |\n| has_or_had_thumbnail | Thumbnail | Preview images |\n\n**EXTENSIBILITY**:\nStructured class enables future metadata:\n- Image dimensions (width, height)\n- Alternative text for accessibility\n- Format (JPEG, PNG, WebP)\n- Generation timestamp\n- Source image/video reference\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary**: `schema:ImageObject` (Schema.org)\n- **Close**: `foaf:Image` (FOAF)\n- **Derivation**: `prov:wasDerivedFrom` (PROV-O)\n" + description: "Structured thumbnail media reference.\n\n**DEFINITION**:\nA thumbnail is a reduced-size version of an image or video frame,\ntypically used for preview purposes in search results, galleries,\nand navigation interfaces.\n\n**DERIVATION FROM VIDEO** (2026-01-19 migration):\nWhen a thumbnail is extracted from a video, use:\n- `derive_from` \u2192 Video (source video reference)\n- `has_time_interval` \u2192 TimeInterval (frame timestamp)\n\nThis replaces the deprecated `chapter_thumbnail_timestamp` float field\nwith a structured representation that supports:\n- Explicit source video reference (provenance)\n- Precise timestamp with ISO 8601 duration format\n- Multiple timestamp formats (seconds, HH:MM:SS, ISO duration)\n\n**CONSISTENCY PATTERN** (Rule 56):\nUses structured class rather than simple URL for consistency with\nother media reference patterns and extensibility:\n\n| Slot | Class | Purpose |\n|------|-------|---------|\n| has_image | Image\ + \ | Full-size images |\n| has_video | Video | Video resources |\n| has_audio | Audio | Audio resources |\n| has_thumbnail | Thumbnail | Preview images |\n\n**EXTENSIBILITY**:\nStructured class enables future metadata:\n- Image dimensions (width, height)\n- Alternative text for accessibility\n- Format (JPEG, PNG, WebP)\n- Generation timestamp\n- Source image/video reference\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary**: `schema:ImageObject` (Schema.org)\n- **Close**: `foaf:Image` (FOAF)\n- **Derivation**: `prov:wasDerivedFrom` (PROV-O)\n" slots: - - has_or_had_url - - derives_or_derived_from - - has_or_had_time_interval + - has_url + - derive_from + - has_time_interval slot_usage: - has_or_had_url: + has_url: required: true examples: - value: https://i.ytimg.com/vi/ABC123/hq1.jpg - derives_or_derived_from: + derive_from: range: Video inlined: true required: false examples: - value: - has_or_had_url: https://www.youtube.com/watch?v=ABC123 - has_or_had_time_interval: + has_url: https://www.youtube.com/watch?v=ABC123 + has_time_interval: description: "Timestamp in the source video from which this thumbnail was extracted.\nCaptures the frame time as a duration from video start.\n\n**MIGRATION NOTE**: Replaces deprecated `chapter_thumbnail_timestamp` float.\nThe float value (seconds) should be converted to ISO 8601 duration format.\n\nExample conversions:\n- 122.5 seconds \u2192 PT2M2.5S (2 minutes, 2.5 seconds)\n- 3600 seconds \u2192 PT1H (1 hour)\n" range: TimeInterval inlined: true @@ -53,11 +53,11 @@ classes: custodian_types: "['*']" examples: - value: - has_or_had_url: https://example.org/thumbnails/rijksmuseum-night-watch-thumb.jpg + has_url: https://example.org/thumbnails/rijksmuseum-night-watch-thumb.jpg - value: - has_or_had_url: https://i.ytimg.com/vi/ABC123/hq1.jpg - derives_or_derived_from: - has_or_had_url: https://www.youtube.com/watch?v=ABC123 - has_or_had_time_interval: + has_url: https://i.ytimg.com/vi/ABC123/hq1.jpg + derive_from: + has_url: https://www.youtube.com/watch?v=ABC123 + has_time_interval: duration_description: Frame at 2:02.5 description: 'Video-derived thumbnail with timestamp (replaces chapter_thumbnail_timestamp: 122.5)' diff --git a/schemas/20251121/linkml/modules/classes/TimeSpan.yaml b/schemas/20251121/linkml/modules/classes/TimeSpan.yaml index f10b4772a4..1687d0a115 100644 --- a/schemas/20251121/linkml/modules/classes/TimeSpan.yaml +++ b/schemas/20251121/linkml/modules/classes/TimeSpan.yaml @@ -15,8 +15,8 @@ imports: - ../slots/begin_of_the_end - ../slots/end_of_the_begin - ../slots/end_of_the_end - - ../slots/has_or_had_notation - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_notation + - ../slots/20260202_matang/has_score # default_range: string classes: TimeSpan: @@ -71,10 +71,10 @@ classes: - begin_of_the_end - end_of_the_begin - end_of_the_end - - has_or_had_score - - has_or_had_notation + - has_score + - has_notation slot_usage: - has_or_had_notation: + has_notation: # range: string required: false examples: diff --git a/schemas/20251121/linkml/modules/classes/TimeSpanType.yaml b/schemas/20251121/linkml/modules/classes/TimeSpanType.yaml index 67bf2bb854..5e9edf16db 100644 --- a/schemas/20251121/linkml/modules/classes/TimeSpanType.yaml +++ b/schemas/20251121/linkml/modules/classes/TimeSpanType.yaml @@ -8,16 +8,16 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: TimeSpanType: class_uri: skos:Concept abstract: true slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Timestamp.yaml b/schemas/20251121/linkml/modules/classes/Timestamp.yaml index c8910ec118..873c17ac8c 100644 --- a/schemas/20251121/linkml/modules/classes/Timestamp.yaml +++ b/schemas/20251121/linkml/modules/classes/Timestamp.yaml @@ -15,10 +15,10 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/complies_or_complied_with - - ../slots/has_or_had_level # was: timestamp_precision - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_timestamp # was: timestamp_value + - ../slots/20260202_matang/comply_with + - ../slots/20260202_matang/has_level # was: timestamp_precision + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_timestamp # was: timestamp_value classes: Timestamp: class_uri: time:Instant @@ -53,7 +53,7 @@ classes: - `valid_to` → TimeSpan.end_of_the_end: Timestamp - `valid_from_geo` → TimeSpan.begin_of_the_begin: Timestamp - `valid_from` → TimeSpan.begin_of_the_begin: Timestamp - - `updated_at` → is_or_was_last_updated_at: TimeSpan + - `updated_at` → last_updated_at: TimeSpan - `unesco_inscription_year` → TimeSpan.begin_of_the_begin: Timestamp exact_mappings: @@ -67,24 +67,24 @@ classes: - schema:DateTime slots: - - has_or_had_timestamp # was: timestamp_value - migrated per Rule 53 - - has_or_had_level # was: timestamp_precision - migrated per Rule 53 - - complies_or_complied_with # was: calendar_system - migrated 2026-01-22 - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_timestamp # was: timestamp_value - migrated per Rule 53 + - has_level # was: timestamp_precision - migrated per Rule 53 + - comply_with # was: calendar_system - migrated 2026-01-22 + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - has_or_had_timestamp: # was: timestamp_value - migrated per Rule 53 + has_timestamp: # was: timestamp_value - migrated per Rule 53 # range: string required: true pattern: "^-?\\d{4}(-\\d{2})?(-\\d{2})?(T\\d{2}:\\d{2}(:\\d{2})?(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$" - has_or_had_level: # was: timestamp_precision - migrated per Rule 53 + has_level: # was: timestamp_precision - migrated per Rule 53 # range: string required: false examples: - value: year - value: day - value: second - complies_or_complied_with: + comply_with: range: CalendarSystem required: false inlined: true @@ -101,13 +101,13 @@ classes: examples: - value: | - has_or_had_timestamp: "1995" - has_or_had_level: year + has_timestamp: "1995" + has_level: year - value: | - has_or_had_timestamp: "2024-06-15" - has_or_had_level: day - complies_or_complied_with: + has_timestamp: "2024-06-15" + has_level: day + comply_with: - value: | - has_or_had_timestamp: "2024-06-15T14:30:00Z" - has_or_had_level: second - complies_or_complied_with: \ No newline at end of file + has_timestamp: "2024-06-15T14:30:00Z" + has_level: second + comply_with: \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Title.yaml b/schemas/20251121/linkml/modules/classes/Title.yaml index 1716864bf2..0fa403d351 100644 --- a/schemas/20251121/linkml/modules/classes/Title.yaml +++ b/schemas/20251121/linkml/modules/classes/Title.yaml @@ -9,7 +9,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_language + - ../slots/20260202_matang/has_language classes: Title: class_uri: hc:Title @@ -25,7 +25,7 @@ classes: - Have different types (main, alternative, translated, abbreviated) - - Change over time (use has_or_had_title slot) + - Change over time (use has_title slot) **USE CASES**: @@ -69,9 +69,9 @@ classes: close_mappings: - schema:name slots: - - has_or_had_language + - has_language slot_usage: - has_or_had_language: + has_language: examples: - value: language_code: nl @@ -83,11 +83,11 @@ classes: comments: - Created 2026-01-22 per slot_fixes.yaml dataset_title migration - Supports multilingual titles with language tags - - Used with has_or_had_title slot + - Used with has_title slot examples: - value: - has_or_had_language: + has_language: language_code: nl - value: - has_or_had_language: + has_language: language_code: en diff --git a/schemas/20251121/linkml/modules/classes/TitleType.yaml b/schemas/20251121/linkml/modules/classes/TitleType.yaml index aad409bfaa..37d22f96d2 100644 --- a/schemas/20251121/linkml/modules/classes/TitleType.yaml +++ b/schemas/20251121/linkml/modules/classes/TitleType.yaml @@ -8,9 +8,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: TitleType: class_uri: skos:Concept @@ -30,9 +30,9 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description exact_mappings: - skos:Concept annotations: diff --git a/schemas/20251121/linkml/modules/classes/Token.yaml b/schemas/20251121/linkml/modules/classes/Token.yaml index 6625eeb0f8..623cf5d2f7 100644 --- a/schemas/20251121/linkml/modules/classes/Token.yaml +++ b/schemas/20251121/linkml/modules/classes/Token.yaml @@ -15,11 +15,11 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_quantity - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_type default_prefix: hc classes: Token: @@ -28,41 +28,41 @@ classes: exact_mappings: - schema:QuantitativeValue slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_type - - has_or_had_quantity + - identified_by + - has_label + - has_description + - has_type + - has_quantity slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: false examples: - value: https://nde.nl/ontology/hc/token/llm-response-001-cached - has_or_had_type: + has_type: # range: string # uriorcurie required: false # inlined: true # CANNOT inline string examples: - value: - has_or_had_identifier: hc:TokenType/CACHED - has_or_had_label: Cached Token + identified_by: hc:TokenType/CACHED + has_label: Cached Token - value: - has_or_had_identifier: hc:TokenType/REASONING - has_or_had_label: Reasoning Token - has_or_had_quantity: + identified_by: hc:TokenType/REASONING + has_label: Reasoning Token + has_quantity: range: integer required: false # inlined: true # CANNOT inline integer examples: - value: - has_or_had_description: Tokens served from cache - has_or_had_label: + has_description: Tokens served from cache + has_label: # range: string required: false examples: - value: Cached tokens for context window - has_or_had_description: + has_description: # range: string required: false examples: diff --git a/schemas/20251121/linkml/modules/classes/TokenType.yaml b/schemas/20251121/linkml/modules/classes/TokenType.yaml index c96d20107d..ce4352ca83 100644 --- a/schemas/20251121/linkml/modules/classes/TokenType.yaml +++ b/schemas/20251121/linkml/modules/classes/TokenType.yaml @@ -9,9 +9,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label default_prefix: hc classes: TokenType: @@ -66,23 +66,23 @@ classes: close_mappings: - schema:Enumeration slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description slot_usage: - has_or_had_identifier: + identified_by: identifier: true required: true # range: string # uriorcurie examples: - value: hc:TokenType/INPUT - has_or_had_label: + has_label: required: true # range: string examples: - value: Input Token - value: Cached Token - has_or_had_description: + has_description: required: false # range: string comments: diff --git a/schemas/20251121/linkml/modules/classes/TokenTypes.yaml b/schemas/20251121/linkml/modules/classes/TokenTypes.yaml index d02a1919b5..bd9ae9465f 100644 --- a/schemas/20251121/linkml/modules/classes/TokenTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/TokenTypes.yaml @@ -9,7 +9,7 @@ prefixes: imports: - ./TokenType - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label default_prefix: hc classes: InputToken: @@ -25,13 +25,13 @@ classes: ' slots: [] slot_usage: - has_or_had_label: + has_label: ifabsent: string(Input Token) examples: - value: - has_or_had_identifier: hc:TokenType/INPUT - has_or_had_label: Input Token - has_or_had_description: Tokens in the input prompt + identified_by: hc:TokenType/INPUT + has_label: Input Token + has_description: Tokens in the input prompt annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration @@ -51,13 +51,13 @@ classes: ' slots: [] slot_usage: - has_or_had_label: + has_label: ifabsent: string(Output Token) examples: - value: - has_or_had_identifier: hc:TokenType/OUTPUT - has_or_had_label: Output Token - has_or_had_description: Tokens in the completion response + identified_by: hc:TokenType/OUTPUT + has_label: Output Token + has_description: Tokens in the completion response broad_mappings: - skos:Concept CachedToken: @@ -82,13 +82,13 @@ classes: ' slots: [] slot_usage: - has_or_had_label: + has_label: ifabsent: string(Cached Token) examples: - value: - has_or_had_identifier: hc:TokenType/CACHED - has_or_had_label: Cached Token - has_or_had_description: Tokens served from provider cache + identified_by: hc:TokenType/CACHED + has_label: Cached Token + has_description: Tokens served from provider cache broad_mappings: - skos:Concept ReasoningToken: @@ -113,13 +113,13 @@ classes: ' slots: [] slot_usage: - has_or_had_label: + has_label: ifabsent: string(Reasoning Token) examples: - value: - has_or_had_identifier: hc:TokenType/REASONING - has_or_had_label: Reasoning Token - has_or_had_description: Tokens for chain-of-thought reasoning + identified_by: hc:TokenType/REASONING + has_label: Reasoning Token + has_description: Tokens for chain-of-thought reasoning broad_mappings: - skos:Concept TotalToken: @@ -133,12 +133,12 @@ classes: ' slots: [] slot_usage: - has_or_had_label: + has_label: ifabsent: string(Total Token) examples: - value: - has_or_had_identifier: hc:TokenType/TOTAL - has_or_had_label: Total Token - has_or_had_description: Sum of input and output tokens + identified_by: hc:TokenType/TOTAL + has_label: Total Token + has_description: Sum of input and output tokens broad_mappings: - skos:Concept diff --git a/schemas/20251121/linkml/modules/classes/Topic.yaml b/schemas/20251121/linkml/modules/classes/Topic.yaml index f9a9bae0d3..59be21b6eb 100644 --- a/schemas/20251121/linkml/modules/classes/Topic.yaml +++ b/schemas/20251121/linkml/modules/classes/Topic.yaml @@ -13,12 +13,12 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_type - - ../slots/includes_or_included + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/include classes: Topic: class_uri: skos:Concept @@ -42,17 +42,17 @@ classes: **USAGE**: Topics are linked to heritage resources (finding aids, collections, etc.) - via the is_or_was_categorized_as slot: + via the categorized_as slot: ```yaml finding_aid: - is_or_was_categorized_as: - - has_or_had_type: GenealogyTopic - has_or_had_label: + categorized_as: + - has_type: GenealogyTopic + has_label: - label_value: "Genealogy" language_code: "en" - - has_or_had_type: CivilRegistryTopic - has_or_had_label: + - has_type: CivilRegistryTopic + has_label: - label_value: "Burgerlijke Stand" language_code: "nl" ``` @@ -75,21 +75,21 @@ classes: - rico:hasOrHadSubject slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_type - - includes_or_included - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - identified_by + - has_label + - has_description + - has_type + - include + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - has_or_had_label: + has_label: required: true multivalued: true - has_or_had_type: + has_type: # range: string # uriorcurie - has_or_had_description: - includes_or_included: + has_description: + include: # range: string multivalued: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/TopicType.yaml b/schemas/20251121/linkml/modules/classes/TopicType.yaml index 793af52305..ea1a39e39f 100644 --- a/schemas/20251121/linkml/modules/classes/TopicType.yaml +++ b/schemas/20251121/linkml/modules/classes/TopicType.yaml @@ -13,13 +13,13 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score # was: template_specificity + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score # was: template_specificity classes: TopicType: class_uri: skos:Concept @@ -62,21 +62,21 @@ classes: tree_root: false slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code - - has_or_had_hypernym - - has_or_had_hyponym - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - identified_by + - has_label + - has_description + - has_code + - has_hypernym + - has_hyponym + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - has_or_had_code: - has_or_had_label: + has_code: + has_label: required: true - has_or_had_hypernym: + has_hypernym: range: TopicType - has_or_had_hyponym: + has_hyponym: range: TopicType multivalued: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/TrackIdentifier.yaml b/schemas/20251121/linkml/modules/classes/TrackIdentifier.yaml index d12b9deff2..e56dec3e48 100644 --- a/schemas/20251121/linkml/modules/classes/TrackIdentifier.yaml +++ b/schemas/20251121/linkml/modules/classes/TrackIdentifier.yaml @@ -6,7 +6,7 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_code + - ../slots/20260202_matang/has_code classes: TrackIdentifier: class_uri: hc:TrackIdentifier @@ -14,7 +14,7 @@ classes: - schema:identifier description: Identifier for audio/music tracks slots: - - has_or_had_code + - has_code annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/TradeRegister.yaml b/schemas/20251121/linkml/modules/classes/TradeRegister.yaml index 1556d68750..1bb0824faa 100644 --- a/schemas/20251121/linkml/modules/classes/TradeRegister.yaml +++ b/schemas/20251121/linkml/modules/classes/TradeRegister.yaml @@ -12,12 +12,12 @@ imports: - linkml:types - ../enums/RegisterTypeEnum - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_endpoint - - ../slots/has_or_had_format - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_endpoint + - ../slots/20260202_matang/has_format + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_url - ../slots/jurisdiction - ../slots/maintained_by - ../slots/register_abbreviation @@ -40,18 +40,18 @@ classes: related_mappings: - rov:RegisteredOrganization slots: - - has_or_had_endpoint - - has_or_had_description - - has_or_had_identifier - - has_or_had_format + - has_endpoint + - has_description + - identified_by + - has_format - maintained_by - register_abbreviation - register_id - register_name - register_name_local - register_type - - has_or_had_score - - has_or_had_url + - has_score + - has_url slot_usage: register_id: identifier: true @@ -68,21 +68,21 @@ classes: required: true maintained_by: required: true - has_or_had_identifier: + identified_by: range: GLEIFIdentifier inlined: true required: false - has_or_had_url: + has_url: range: uri inlined: false # Fixed invalid inline for primitive type multivalued: false - has_or_had_endpoint: + has_endpoint: range: APIEndpoint inlined: true examples: - value: - has_or_had_url: https://api.kvk.nl/ - has_or_had_description: KvK Handelsregister API + has_url: https://api.kvk.nl/ + has_description: KvK Handelsregister API annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/TradeUnionArchive.yaml b/schemas/20251121/linkml/modules/classes/TradeUnionArchive.yaml index 811b3bee20..ae8717224a 100644 --- a/schemas/20251121/linkml/modules/classes/TradeUnionArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/TradeUnionArchive.yaml @@ -17,12 +17,12 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/related_to classes: TradeUnionArchive: description: An archive formed by the documentation of labor organizations, trade unions, and workers' movements. Trade @@ -39,21 +39,21 @@ classes: broad_mappings: - wd:Q166118 slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_score + - related_to + - identified_by slot_usage: - has_or_had_identifier: null + identified_by: null hold_or_held_record_set_type: equals_expression: '["hc:UnionAdministrationFonds", "hc:CollectiveBargainingSeries", "hc:StrikeDocumentationCollection", "hc:LaborPublicationsCollection", "hc:WorkersPhotographyCollection"] ' - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: diff --git a/schemas/20251121/linkml/modules/classes/TradeUnionArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/TradeUnionArchiveRecordSetType.yaml index 25026e9555..a6d0d15e07 100644 --- a/schemas/20251121/linkml/modules/classes/TradeUnionArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/TradeUnionArchiveRecordSetType.yaml @@ -9,10 +9,10 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to classes: TradeUnionArchiveRecordSetType: abstract: true @@ -29,10 +29,10 @@ classes: - LaborPublicationsCollection - WorkersPhotographyCollection slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/TradeUnionArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/TradeUnionArchiveRecordSetTypes.yaml index 30198ae38d..491572a718 100644 --- a/schemas/20251121/linkml/modules/classes/TradeUnionArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/TradeUnionArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./TradeUnionArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/legal_note - ../slots/organizational_principle - ../slots/organizational_principle_uri @@ -153,8 +153,8 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -162,7 +162,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: UnionAdministrationFonds @@ -299,8 +299,8 @@ classes: - rico:RecordSetType - rico-rst:Series slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - legal_note - organizational_principle - organizational_principle_uri @@ -309,7 +309,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: CollectiveBargainingSeries @@ -465,8 +465,8 @@ classes: mobilization. Collections often combine union records with donated materials from participants and media coverage. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_note @@ -474,7 +474,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:ResearchOrganizationType"]' record_set_type: equals_string: StrikeDocumentationCollection @@ -624,8 +624,8 @@ classes: library_note: Major collections held by IISG (International Institute of Social History), university libraries, and specialized research libraries. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - preservation_note @@ -634,7 +634,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:LibraryType"]' record_set_type: equals_string: LaborPublicationsCollection @@ -803,8 +803,8 @@ classes: documentation. Images capture workplaces, tools, and processes that may no longer exist. slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - preservation_note @@ -813,7 +813,7 @@ classes: - scope_exclude - scope_include slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:MuseumType"]' record_set_type: equals_string: WorkersPhotographyCollection diff --git a/schemas/20251121/linkml/modules/classes/TraditionalProductType.yaml b/schemas/20251121/linkml/modules/classes/TraditionalProductType.yaml index 961a24f8e4..738e86df82 100644 --- a/schemas/20251121/linkml/modules/classes/TraditionalProductType.yaml +++ b/schemas/20251121/linkml/modules/classes/TraditionalProductType.yaml @@ -13,18 +13,18 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: TraditionalProductType: class_uri: skos:Concept abstract: true description: Type of traditional product slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/TranscriptFormat.yaml b/schemas/20251121/linkml/modules/classes/TranscriptFormat.yaml index 2898069d4d..73b83f290b 100644 --- a/schemas/20251121/linkml/modules/classes/TranscriptFormat.yaml +++ b/schemas/20251121/linkml/modules/classes/TranscriptFormat.yaml @@ -6,13 +6,13 @@ prefixes: dct: http://purl.org/dc/terms/ imports: - linkml:types - - ../slots/has_or_had_format + - ../slots/20260202_matang/has_format classes: TranscriptFormat: class_uri: dct:MediaType description: Format for transcripts (VTT, SRT, etc.) slots: - - has_or_had_format + - has_format annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/TransferEvent.yaml b/schemas/20251121/linkml/modules/classes/TransferEvent.yaml index 33f88572d1..3ae81c04a3 100644 --- a/schemas/20251121/linkml/modules/classes/TransferEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/TransferEvent.yaml @@ -12,9 +12,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description # migrated from has_or_had_description per Rule 55 - - ../slots/has_or_had_policy - - ../slots/has_or_had_score # was: template_specificity + - ../slots/20260202_matang/has_description # migrated from has_description per Rule 55 + - ../slots/20260202_matang/has_policy + - ../slots/20260202_matang/has_score # was: template_specificity - ../slots/starts_or_started_at_location - ../slots/temporal_extent classes: @@ -36,8 +36,8 @@ classes: - `temporal_extent`: When the transfer occurred (TimeSpan) - `starts_or_started_at_location`: Origin location - `ends_or_ended_at_location`: Destination location - - `has_or_had_policy`: Transfer policy governing the transfer - - `has_or_had_description`: Narrative description + - `has_policy`: Transfer policy governing the transfer + - `has_description`: Narrative description **Replaces** (per slot_fixes.yaml): - `transfer_to_collection_date` (simple date) - `transfer_policy` (simple string) @@ -53,9 +53,9 @@ classes: slots: - temporal_extent - starts_or_started_at_location - - has_or_had_description # was: has_or_had_description - - has_or_had_policy - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_description # was: has_description + - has_policy + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: temporal_extent: range: TimeSpan @@ -65,11 +65,11 @@ classes: range: Location required: false inlined: true - has_or_had_description: # was: has_or_had_description + has_description: # was: has_description # range: string required: false inlined: false # Fixed invalid inline for primitive type - has_or_had_policy: + has_policy: range: TransferPolicy required: false inlined: true @@ -83,8 +83,8 @@ classes: - value: | temporal_extent: begin_of_the_begin: - has_or_had_timestamp: "2020-01-15T00:00:00Z" # was: timestamp_value - migrated per Rule 53 + has_timestamp: "2020-01-15T00:00:00Z" # was: timestamp_value - migrated per Rule 53 starts_or_started_at_location: location_name: "Old Storage Facility" - has_or_had_description: # was: has_or_had_description + has_description: # was: has_description description_text: "Transfer of historical photographs to new climate-controlled facility" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/TransferPolicy.yaml b/schemas/20251121/linkml/modules/classes/TransferPolicy.yaml index 9c91341ecb..0be2b25492 100644 --- a/schemas/20251121/linkml/modules/classes/TransferPolicy.yaml +++ b/schemas/20251121/linkml/modules/classes/TransferPolicy.yaml @@ -14,8 +14,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description # migrated from has_or_had_description per Rule 55 - - ../slots/has_or_had_score # was: template_specificity + - ../slots/20260202_matang/has_description # migrated from has_description per Rule 55 + - ../slots/20260202_matang/has_score # was: template_specificity - ../slots/policy_name - ../slots/policy_text classes: @@ -53,8 +53,8 @@ classes: slots: - policy_name - policy_text - - has_or_had_description # was: has_or_had_description - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_description # was: has_description + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: policy_name: @@ -63,7 +63,7 @@ classes: policy_text: # range: string required: false - has_or_had_description: # was: has_or_had_description + has_description: # was: has_description # range: string required: false inlined: false # Fixed invalid inline for primitive type diff --git a/schemas/20251121/linkml/modules/classes/TransitionType.yaml b/schemas/20251121/linkml/modules/classes/TransitionType.yaml index 0e852b7550..d7500a83a8 100644 --- a/schemas/20251121/linkml/modules/classes/TransitionType.yaml +++ b/schemas/20251121/linkml/modules/classes/TransitionType.yaml @@ -11,18 +11,18 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score classes: TransitionType: class_uri: skos:Concept description: "Abstract base class for video transition type classifications.\n\n**DEFINITION**:\n\nTransitionType represents CATEGORIES of video transitions detected during\nautomated video annotation. Each subclass defines the visual characteristics\nand semantic meaning of a specific transition type.\n\n**CRITICAL: TYPE vs INSTANCE**\n\n| Aspect | TransitionType (This Class) | DetectedTransition (Instance) |\n|--------|----------------------------|------------------------------|\n| **Nature** | Classification/category | Individual detection result |\n| **Examples** | CUT, FADE_IN, DISSOLVE | \"Cut at 01:23:45\" |\n| **Properties** | Category metadata | Timestamp, confidence, frames |\n| **Cardinality** | ~8 types | Many instances per video |\n\n**CATEGORY STRUCTURE**:\n\nTransition types organized by visual effect:\n\n1. **INSTANTANEOUS**: Immediate changes\n - CUT: Direct shot-to-shot change\n \n2. **GRADUAL OPACITY**: Brightness-based transitions\n - FADE_IN: Gradual appearance\ - \ from black\n - FADE_OUT: Gradual disappearance to black\n - DISSOLVE: Cross-fade between shots\n \n3. **GEOMETRIC**: Pattern-based reveals\n - WIPE: Moving boundary between shots\n \n4. **COMPLEX**: Advanced effects\n - MORPH: Shape-based transformation\n - FLASH: Bright flash between shots\n \n5. **OTHER**: Unclassified or novel transitions\n\n**REPLACES**: TransitionTypeEnum from VideoAnnotationTypes.yaml\n\n**DETECTION CONTEXT**:\n\nTransitionType is used with the detection pattern:\n```\nVideoAnnotation\n \u2514\u2500\u2500 has_or_had_detected \u2192 DetectedEntity\n \u2514\u2500\u2500 has_or_had_type \u2192 TransitionType (THIS CLASS)\n```\n\n**ONTOLOGY ALIGNMENT**:\n\n- **SKOS Concept**: Transition types form a controlled vocabulary\n- **EBUCore**: Aligns with broadcast annotation ontology\n- **CIDOC-CRM E55_Type**: Cultural heritage type system\n\n**HERITAGE CONTEXT**:\n\nDifferent transition types carry semantic meaning:\n- CUT: Maintains continuity,\ + \ from black\n - FADE_OUT: Gradual disappearance to black\n - DISSOLVE: Cross-fade between shots\n \n3. **GEOMETRIC**: Pattern-based reveals\n - WIPE: Moving boundary between shots\n \n4. **COMPLEX**: Advanced effects\n - MORPH: Shape-based transformation\n - FLASH: Bright flash between shots\n \n5. **OTHER**: Unclassified or novel transitions\n\n**REPLACES**: TransitionTypeEnum from VideoAnnotationTypes.yaml\n\n**DETECTION CONTEXT**:\n\nTransitionType is used with the detection pattern:\n```\nVideoAnnotation\n \u2514\u2500\u2500 has_detected \u2192 DetectedEntity\n \u2514\u2500\u2500 has_type \u2192 TransitionType (THIS CLASS)\n```\n\n**ONTOLOGY ALIGNMENT**:\n\n- **SKOS Concept**: Transition types form a controlled vocabulary\n- **EBUCore**: Aligns with broadcast annotation ontology\n- **CIDOC-CRM E55_Type**: Cultural heritage type system\n\n**HERITAGE CONTEXT**:\n\nDifferent transition types carry semantic meaning:\n- CUT: Maintains continuity,\ \ standard editing\n- FADE: Indicates beginning/end, chapter breaks\n- DISSOLVE: Time passage, dream sequences, thematic links\n- WIPE: Common in older films (1930s-1950s), educational content\n- FLASH: Flashbacks, memories, dramatic emphasis\n\nUnderstanding transitions helps:\n- Identify chapter/section boundaries in documentary films\n- Detect stylistic signatures of film periods/directors\n- Support accessibility (scene change warnings)\n- Improve automatic video segmentation\n\n**SUBCLASSES**:\n\nSee TransitionTypes.yaml for concrete transition type subclasses:\n- CutTransition\n- FadeInTransition\n- FadeOutTransition\n- DissolveTransition\n- WipeTransition\n- MorphTransition\n- FlashTransition\n- OtherTransition\n" abstract: true exact_mappings: @@ -34,15 +34,15 @@ classes: - schema:VideoObject - schema:MediaObject slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code - - has_or_had_hypernym - - has_or_had_hyponym - - has_or_had_score + - identified_by + - has_label + - has_description + - has_code + - has_hypernym + - has_hyponym + - has_score slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true @@ -50,7 +50,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/transition-type/cut - value: https://nde.nl/ontology/hc/transition-type/dissolve - has_or_had_code: + has_code: # range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ @@ -60,7 +60,7 @@ classes: - value: DISSOLVE - value: WIPE - value: MORPH - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -73,30 +73,30 @@ classes: - Dissolve@en - overgang@nl - "\xDCberblendung@de" - has_or_had_description: + has_description: # range: string required: false examples: - value: Instantaneous transition between shots with no visual effect - value: Gradual cross-fade transition where two shots overlap - has_or_had_hypernym: + has_hypernym: range: TransitionType required: false - has_or_had_hyponym: + has_hyponym: range: TransitionType multivalued: true required: false annotations: specificity_score: '0.85' specificity_rationale: Highly specific - transition types only relevant for video annotation domain. - has_or_had_score: null + has_score: null replaces_enum: TransitionTypeEnum migration_date: '2026-01-13' custodian_types: "['*']" comments: - Abstract base class - use specific subclasses (CutTransition, etc.) - Represents TRANSITION TYPES, not detection instances - - DetectedEntity.has_or_had_type references these type classes + - DetectedEntity.has_type references these type classes - Follows Type/Types naming convention (Rule 0b) - Uses shared slots per Rule 38 (slot centralization) - Part of video annotation pipeline with DetectedEntity pattern @@ -106,17 +106,17 @@ classes: - https://en.wikipedia.org/wiki/Film_transition examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/transition-type/cut - has_or_had_code: CUT - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/transition-type/cut + has_code: CUT + has_label: - Cut@en - snede@nl - has_or_had_description: Instantaneous transition between shots with no visual effect + has_description: Instantaneous transition between shots with no visual effect - value: - has_or_had_identifier: https://nde.nl/ontology/hc/transition-type/dissolve - has_or_had_code: DISSOLVE - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/transition-type/dissolve + has_code: DISSOLVE + has_label: - Dissolve@en - overgang@nl - has_or_had_description: Cross-fade transition where one shot gradually blends into the next - has_or_had_hypernym: https://nde.nl/ontology/hc/transition-type/gradual \ No newline at end of file + has_description: Cross-fade transition where one shot gradually blends into the next + has_hypernym: https://nde.nl/ontology/hc/transition-type/gradual \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/TransitionTypes.yaml b/schemas/20251121/linkml/modules/classes/TransitionTypes.yaml index b0025315a5..233dae0c41 100644 --- a/schemas/20251121/linkml/modules/classes/TransitionTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/TransitionTypes.yaml @@ -9,10 +9,10 @@ default_prefix: hc imports: - ./TransitionType - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: CutTransition: is_a: TransitionType @@ -46,16 +46,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/transition-type/cut) - has_or_had_code: + has_code: ifabsent: string(CUT) - has_or_had_label: + has_label: ifabsent: string(Cut) annotations: specificity_score: '0.85' @@ -95,16 +95,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/transition-type/fade-in) - has_or_had_code: + has_code: ifabsent: string(FADE_IN) - has_or_had_label: + has_label: ifabsent: string(Fade In) annotations: specificity_score: '0.85' @@ -147,16 +147,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/transition-type/fade-out) - has_or_had_code: + has_code: ifabsent: string(FADE_OUT) - has_or_had_label: + has_label: ifabsent: string(Fade Out) annotations: specificity_score: '0.85' @@ -199,16 +199,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/transition-type/dissolve) - has_or_had_code: + has_code: ifabsent: string(DISSOLVE) - has_or_had_label: + has_label: ifabsent: string(Dissolve) annotations: specificity_score: '0.85' @@ -253,16 +253,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/transition-type/wipe) - has_or_had_code: + has_code: ifabsent: string(WIPE) - has_or_had_label: + has_label: ifabsent: string(Wipe) annotations: specificity_score: '0.85' @@ -305,16 +305,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/transition-type/morph) - has_or_had_code: + has_code: ifabsent: string(MORPH) - has_or_had_label: + has_label: ifabsent: string(Morph) annotations: specificity_score: '0.85' @@ -357,16 +357,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/transition-type/flash) - has_or_had_code: + has_code: ifabsent: string(FLASH) - has_or_had_label: + has_label: ifabsent: string(Flash) annotations: specificity_score: '0.85' @@ -398,16 +398,16 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code + - identified_by + - has_label + - has_description + - has_code slot_usage: - has_or_had_identifier: + identified_by: ifabsent: string(https://nde.nl/ontology/hc/transition-type/other) - has_or_had_code: + has_code: ifabsent: string(OTHER) - has_or_had_label: + has_label: ifabsent: string(Other) annotations: specificity_score: '0.85' diff --git a/schemas/20251121/linkml/modules/classes/TransmissionMethod.yaml b/schemas/20251121/linkml/modules/classes/TransmissionMethod.yaml index 1cb43614f3..fde8f5d498 100644 --- a/schemas/20251121/linkml/modules/classes/TransmissionMethod.yaml +++ b/schemas/20251121/linkml/modules/classes/TransmissionMethod.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label classes: TransmissionMethod: class_uri: skos:Concept description: Transmission method. slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/TreatmentType.yaml b/schemas/20251121/linkml/modules/classes/TreatmentType.yaml index 6c7c0d5396..7770590868 100644 --- a/schemas/20251121/linkml/modules/classes/TreatmentType.yaml +++ b/schemas/20251121/linkml/modules/classes/TreatmentType.yaml @@ -11,14 +11,14 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/is_or_was_equivalent_to + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/equivalent_to classes: TreatmentType: class_uri: skos:Concept @@ -34,16 +34,16 @@ classes: - crm:E11_Modification - premis:PreservationEvent slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code - - has_or_had_hypernym - - has_or_had_hyponym - - is_or_was_equivalent_to - - has_or_had_score + - identified_by + - has_label + - has_description + - has_code + - has_hypernym + - has_hyponym + - equivalent_to + - has_score slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true @@ -51,7 +51,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/treatment-type/cleaning - value: https://nde.nl/ontology/hc/treatment-type/stabilization - has_or_had_code: + has_code: # range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ @@ -61,7 +61,7 @@ classes: - value: RESTORATION - value: PREVENTIVE - value: DEACIDIFICATION - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -73,12 +73,12 @@ classes: - value: - Stabilization@en - stabilisatie@nl - has_or_had_description: + has_description: # range: string required: false examples: - value: Surface cleaning treatment to remove dirt, grime, and surface accretions - is_or_was_equivalent_to: + equivalent_to: range: WikiDataIdentifier multivalued: true inlined: true @@ -86,24 +86,24 @@ classes: examples: - value: - qid: Q753445 - has_or_had_hypernym: + has_hypernym: range: TreatmentType required: false - has_or_had_hyponym: + has_hyponym: range: TreatmentType multivalued: true required: false annotations: specificity_score: '0.60' specificity_rationale: Fairly specific - conservation treatments are domain-specific to heritage preservation. - has_or_had_score: null + has_score: null replaces_slot: treatment_type migration_date: '2026-01-13' custodian_types: "['*']" comments: - Abstract base class - use specific subclasses (CleaningTreatment, etc.) - Represents TREATMENT TYPES, not treatment records - - ConservationRecord.has_or_had_type references these type classes + - ConservationRecord.has_type references these type classes - Follows Type/Types naming convention (Rule 0b) - Aligned with AAT conservation terminology see_also: @@ -112,11 +112,11 @@ classes: - http://www.cidoc-crm.org/cidoc-crm/E11_Modification examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/treatment-type/cleaning - has_or_had_code: CLEANING - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/treatment-type/cleaning + has_code: CLEANING + has_label: - Cleaning@en - reiniging@nl - has_or_had_description: Surface cleaning treatment to remove dirt and accretions - is_or_was_equivalent_to: + has_description: Surface cleaning treatment to remove dirt and accretions + equivalent_to: - qid: Q2608948 \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/TreatmentTypes.yaml b/schemas/20251121/linkml/modules/classes/TreatmentTypes.yaml index 221d6b0717..82b26dd9f3 100644 --- a/schemas/20251121/linkml/modules/classes/TreatmentTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/TreatmentTypes.yaml @@ -10,7 +10,7 @@ default_prefix: hc imports: - ./TreatmentType - linkml:types - - ../slots/has_or_had_code + - ../slots/20260202_matang/has_code classes: CleaningTreatment: is_a: TreatmentType @@ -38,7 +38,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: CLEANING annotations: specificity_score: '0.65' @@ -77,7 +77,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: STABILIZATION annotations: specificity_score: '0.65' @@ -118,7 +118,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: RESTORATION annotations: specificity_score: '0.65' @@ -156,7 +156,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: PREVENTIVE annotations: specificity_score: '0.60' @@ -195,7 +195,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: DEACIDIFICATION annotations: specificity_score: '0.70' @@ -233,7 +233,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: RELINING annotations: specificity_score: '0.75' @@ -271,7 +271,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: REFRAMING annotations: specificity_score: '0.65' @@ -312,7 +312,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: FUMIGATION annotations: specificity_score: '0.70' diff --git a/schemas/20251121/linkml/modules/classes/Type.yaml b/schemas/20251121/linkml/modules/classes/Type.yaml index 37e7e954f9..ba9b5bd1ae 100644 --- a/schemas/20251121/linkml/modules/classes/Type.yaml +++ b/schemas/20251121/linkml/modules/classes/Type.yaml @@ -4,11 +4,11 @@ title: Type description: A generic type. imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: Type: class_uri: skos:Concept annotations: custodian_types: '["*"]' slots: - - has_or_had_name + - has_name diff --git a/schemas/20251121/linkml/modules/classes/TypeStatus.yaml b/schemas/20251121/linkml/modules/classes/TypeStatus.yaml index a9aa1dea99..27828fa175 100644 --- a/schemas/20251121/linkml/modules/classes/TypeStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/TypeStatus.yaml @@ -13,15 +13,15 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_label classes: TypeStatus: class_uri: skos:Concept description: Biological type specimen status slots: - - has_or_had_code - - has_or_had_label + - has_code + - has_label - specimen_type annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/UNESCODomain.yaml b/schemas/20251121/linkml/modules/classes/UNESCODomain.yaml index d3448d419a..57795bec1a 100644 --- a/schemas/20251121/linkml/modules/classes/UNESCODomain.yaml +++ b/schemas/20251121/linkml/modules/classes/UNESCODomain.yaml @@ -6,7 +6,7 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type classes: UNESCODomain: class_uri: skos:Concept @@ -14,9 +14,9 @@ classes: heritage elements according to the 2003 UNESCO Convention for the Safeguarding of the Intangible Cultural Heritage. Domains include oral traditions, performing arts, social practices, traditional knowledge, and craftsmanship. ' slots: - - has_or_had_type + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/UNESCODomainType.yaml b/schemas/20251121/linkml/modules/classes/UNESCODomainType.yaml index 1d73be6e8d..b665714e25 100644 --- a/schemas/20251121/linkml/modules/classes/UNESCODomainType.yaml +++ b/schemas/20251121/linkml/modules/classes/UNESCODomainType.yaml @@ -6,9 +6,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: UNESCODomainType: class_uri: skos:Concept @@ -29,9 +29,9 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/UNESCOListStatus.yaml b/schemas/20251121/linkml/modules/classes/UNESCOListStatus.yaml index 6376192c2c..b2585170c8 100644 --- a/schemas/20251121/linkml/modules/classes/UNESCOListStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/UNESCOListStatus.yaml @@ -8,7 +8,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code + - ../slots/20260202_matang/has_code classes: UNESCOListStatus: class_uri: skos:Concept @@ -27,7 +27,7 @@ classes: ' slots: - - has_or_had_code + - has_code exact_mappings: - skos:Concept annotations: @@ -36,7 +36,7 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_code: INSCRIBED + has_code: INSCRIBED list_name: Representative List of ICH inscription_date: '2023-12-06' description: UNESCO ICH inscription status diff --git a/schemas/20251121/linkml/modules/classes/URL.yaml b/schemas/20251121/linkml/modules/classes/URL.yaml index 38fe9d731a..e58103c83b 100644 --- a/schemas/20251121/linkml/modules/classes/URL.yaml +++ b/schemas/20251121/linkml/modules/classes/URL.yaml @@ -14,9 +14,9 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_type # was: url_type - - ../slots/has_or_had_url # was: url_value + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_type # was: url_type + - ../slots/20260202_matang/has_url # was: url_value - ../slots/language classes: URL: @@ -35,10 +35,10 @@ classes: - **Related**: `prov:Entity` - Provenance entity (for archived URLs) **Use Cases**: - - Institution websites: `has_or_had_url` with type "website" - - API endpoints: `has_or_had_url` with type "api" - - Web archive snapshots: `is_or_was_webarchived_at` with archive URL - - Vendor/supplier sites: `has_or_had_url` with type "vendor" + - Institution websites: `has_url` with type "website" + - API endpoints: `has_url` with type "api" + - Web archive snapshots: `webarchived_at` with archive URL + - Vendor/supplier sites: `has_url` with type "vendor" **Replaces** (per slot_fixes.yaml): - `website` (simple string URL) @@ -56,16 +56,16 @@ classes: - prov:Entity slots: - - has_or_had_url # was: url_value - migrated 2026-01-16 per Rule 53 - - has_or_had_type # was: url_type - migrated 2026-01-16 per Rule 53 + - has_url # was: url_value - migrated 2026-01-16 per Rule 53 + - has_type # was: url_type - migrated 2026-01-16 per Rule 53 - language - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - has_or_had_url: # was: url_value - migrated 2026-01-16 per Rule 53 + has_url: # was: url_value - migrated 2026-01-16 per Rule 53 range: uri required: true - has_or_had_type: # was: url_type - migrated 2026-01-16 per Rule 53 + has_type: # was: url_type - migrated 2026-01-16 per Rule 53 # range: string required: false language: @@ -82,13 +82,13 @@ classes: examples: - value: | - has_or_had_url: "https://www.rijksmuseum.nl/" - has_or_had_type: website + has_url: "https://www.rijksmuseum.nl/" + has_type: website language: nl - value: | - has_or_had_url: "https://api.rijksmuseum.nl/api/nl/collection" - has_or_had_type: api + has_url: "https://api.rijksmuseum.nl/api/nl/collection" + has_type: api language: nl - value: | - has_or_had_url: "https://web.archive.org/web/20240101/https://example.org/" - has_or_had_type: webarchive \ No newline at end of file + has_url: "https://web.archive.org/web/20240101/https://example.org/" + has_type: webarchive \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/URLType.yaml b/schemas/20251121/linkml/modules/classes/URLType.yaml index 13e7fbb00e..31d1e5dad2 100644 --- a/schemas/20251121/linkml/modules/classes/URLType.yaml +++ b/schemas/20251121/linkml/modules/classes/URLType.yaml @@ -10,8 +10,8 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: URLType: class_uri: skos:Concept @@ -20,8 +20,8 @@ classes: **Ontology Alignment**: - **Primary**: `skos:Concept`' slots: - - has_or_had_label - - has_or_had_identifier + - has_label + - identified_by annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Unit.yaml b/schemas/20251121/linkml/modules/classes/Unit.yaml index 2314d15d05..9e88185d55 100644 --- a/schemas/20251121/linkml/modules/classes/Unit.yaml +++ b/schemas/20251121/linkml/modules/classes/Unit.yaml @@ -8,7 +8,7 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_label # default_range: string default_prefix: hc classes: @@ -43,7 +43,7 @@ classes: - schema:unitCode - schema:unitText slots: - - has_or_had_label + - has_label annotations: custodian_types: '["*"]' custodian_types_rationale: Units apply to all heritage custodian types for measurement. @@ -51,17 +51,17 @@ classes: specificity_score: 0.2 specificity_rationale: Very low specificity - fundamental measurement concept. examples: - - value: "Unit:\n unit_value: \"item\"\n has_or_had_label:\n - label_text:\ + - value: "Unit:\n unit_value: \"item\"\n has_label:\n - label_text:\ \ \"Items\"\n" description: Simple item count unit. - - value: "Unit:\n unit_value: \"species\"\n has_or_had_label:\n - label_text:\ + - value: "Unit:\n unit_value: \"species\"\n has_label:\n - label_text:\ \ \"Species\"\n unit_uri: \"dwc:individualCount\"\n" description: Biological species count unit. - - value: "Unit:\n unit_value: \"linear_meter\"\n has_or_had_label:\n - label_text:\ + - value: "Unit:\n unit_value: \"linear_meter\"\n has_label:\n - label_text:\ \ \"Linear Meters\"\n unit_uri: \"qudt:M\"\n" description: Archival extent unit. comments: - Created from slot_fixes.yaml migration (2026-01-19) - Lightweight alternative to MeasureUnit class - - Use with has_or_had_unit slot + - Use with has_unit slot - For collection_size migration - default unit is "item" diff --git a/schemas/20251121/linkml/modules/classes/UnitIdentifier.yaml b/schemas/20251121/linkml/modules/classes/UnitIdentifier.yaml index 7f2399ae5d..72c5d8386e 100644 --- a/schemas/20251121/linkml/modules/classes/UnitIdentifier.yaml +++ b/schemas/20251121/linkml/modules/classes/UnitIdentifier.yaml @@ -9,7 +9,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code + - ../slots/20260202_matang/has_code classes: UnitIdentifier: class_uri: hc:UnitIdentifier @@ -29,9 +29,9 @@ classes: | Rack | RACK-TEXT-A12 | Storage rack identifier | ' slots: - - has_or_had_code + - has_code slot_usage: - has_or_had_code: + has_code: # range: string required: true examples: diff --git a/schemas/20251121/linkml/modules/classes/University.yaml b/schemas/20251121/linkml/modules/classes/University.yaml index 027aca7306..a349cc637f 100644 --- a/schemas/20251121/linkml/modules/classes/University.yaml +++ b/schemas/20251121/linkml/modules/classes/University.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_name + - ../slots/20260202_matang/has_name classes: University: class_uri: schema:CollegeOrUniversity @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_name + - has_name diff --git a/schemas/20251121/linkml/modules/classes/UniversityArchive.yaml b/schemas/20251121/linkml/modules/classes/UniversityArchive.yaml index e4b492c4bc..a989985a0a 100644 --- a/schemas/20251121/linkml/modules/classes/UniversityArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/UniversityArchive.yaml @@ -17,12 +17,12 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_founded_through - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/founded_through + - ../slots/20260202_matang/related_to classes: UniversityArchive: description: "A collection of historical records of a college or university. University archives (Universit\xE4tsarchive)\ @@ -31,12 +31,12 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier - - is_or_was_founded_through + - has_score + - related_to + - identified_by + - founded_through exact_mappings: - wd:Q2496264 close_mappings: @@ -45,12 +45,12 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true - is_or_was_founded_through: + founded_through: range: FoundingEvent inlined: true see_also: diff --git a/schemas/20251121/linkml/modules/classes/UniversityArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/UniversityArchiveRecordSetType.yaml index ca1d059a62..2e6378dfe6 100644 --- a/schemas/20251121/linkml/modules/classes/UniversityArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/UniversityArchiveRecordSetType.yaml @@ -9,8 +9,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to classes: UniversityArchiveRecordSetType: description: A rico:RecordSetType for classifying collections of university and college historical records and institutional documentation. @@ -19,14 +19,14 @@ classes: exact_mappings: - wd:Q2496264 slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: - UniversityArchive slots: - - has_or_had_score - - is_or_was_related_to + - has_score + - related_to annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/UniversityArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/UniversityArchiveRecordSetTypes.yaml index 7a13374cc0..b1d91a2b78 100644 --- a/schemas/20251121/linkml/modules/classes/UniversityArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/UniversityArchiveRecordSetTypes.yaml @@ -19,8 +19,8 @@ default_prefix: hc imports: - ./UniversityArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -43,15 +43,15 @@ classes: - UniversityArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: UniversityAdministrationFonds @@ -84,15 +84,15 @@ classes: - UniversityArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: StudentRecordSeries @@ -123,15 +123,15 @@ classes: - UniversityArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: FacultyPapersCollection diff --git a/schemas/20251121/linkml/modules/classes/UnspecifiedType.yaml b/schemas/20251121/linkml/modules/classes/UnspecifiedType.yaml index 58abc75244..9ad4745600 100644 --- a/schemas/20251121/linkml/modules/classes/UnspecifiedType.yaml +++ b/schemas/20251121/linkml/modules/classes/UnspecifiedType.yaml @@ -9,11 +9,11 @@ description: 'Specialized CustodianType for heritage custodians where the instit imports: - ../classes/AgentType - linkml:types - - ../slots/asserts_or_asserted - - ../slots/has_or_had_score - - ../slots/has_or_had_status - - ../slots/has_or_had_type - - ../slots/is_or_was_based_on + - ../slots/assert + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/based_on - ../slots/review_status prefixes: linkml: https://w3id.org/linkml/ @@ -137,34 +137,34 @@ classes: - schema:Thing - prov:Activity slots: - - has_or_had_status - - has_or_had_type - - is_or_was_based_on + - has_status + - has_type + - based_on - review_status - - has_or_had_score - - asserts_or_asserted + - has_score + - assert slot_usage: - has_or_had_status: + has_status: # range: string # uriorcurie # range: ClassificationStatus required: true inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_type: - has_or_had_label: Indeterminate - has_or_had_description: Type indeterminate - insufficient evidence + has_type: + has_label: Indeterminate + has_description: Type indeterminate - insufficient evidence - value: - has_or_had_type: - has_or_had_label: Ambiguous - has_or_had_description: 'Sources conflict: museum (website) vs archive (ISIL)' + has_type: + has_label: Ambiguous + has_description: 'Sources conflict: museum (website) vs archive (ISIL)' - value: - has_or_had_type: - has_or_had_label: Transitional - has_or_had_description: Type transitional - merger in progress + has_type: + has_label: Transitional + has_description: Type transitional - merger in progress - value: Website offline, Phone disconnected, No email response - value: 'Conflicting sources: museum vs. archive' - asserts_or_asserted: + assert: # range: string # uriorcurie # range: Hypothesis multivalued: true @@ -173,7 +173,7 @@ classes: examples: - value: - value: - is_or_was_based_on: + based_on: # range: string multivalued: true required: true @@ -190,5 +190,5 @@ classes: - value: Medium priority - waiting for archival cataloging, Review 2026 - value: 'evidence_quality: minimal, source_count: 1' - value: 'completeness: 30%, last_updated: 2025-11-23' - has_or_had_type: + has_type: equals_expression: '["hc:UnspecifiedType"]' diff --git a/schemas/20251121/linkml/modules/classes/UpdateFrequency.yaml b/schemas/20251121/linkml/modules/classes/UpdateFrequency.yaml index 7d73e6695b..a7feb07873 100644 --- a/schemas/20251121/linkml/modules/classes/UpdateFrequency.yaml +++ b/schemas/20251121/linkml/modules/classes/UpdateFrequency.yaml @@ -16,8 +16,8 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_quantity - - ../slots/has_or_had_time_interval + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_time_interval # default_range: string classes: UpdateFrequency: @@ -31,8 +31,8 @@ classes: (e.g., "minutes" in "every 5 minutes") - **Trigger-based**: Some updates are event-driven, not time-based - **SLOT_FIXES.YAML REVISION** (lines 1893-1910): - Branch 1: has_or_had_quantity - → Quantity (numeric value) - Branch 2: has_or_had_time_interval → TimeInterval + **SLOT_FIXES.YAML REVISION** (lines 1893-1910): - Branch 1: has_quantity + → Quantity (numeric value) - Branch 2: has_time_interval → TimeInterval (duration) **ONTOLOGY MAPPING**: - class_uri: dcterms:Frequency (Dublin Core) - Dublin @@ -53,20 +53,20 @@ classes: related_mappings: - time:TemporalEntity slots: - - has_or_had_quantity - - has_or_had_time_interval + - has_quantity + - has_time_interval slot_usage: - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type examples: - - value: "has_or_had_quantity:\n numeric_value: 5\n has_or_had_measurement_unit:\n\ - \ has_or_had_symbol: \"updates\"\n" - has_or_had_time_interval: + - value: "has_quantity:\n numeric_value: 5\n has_measurement_unit:\n\ + \ has_symbol: \"updates\"\n" + has_time_interval: range: TimeInterval inlined: true examples: - - value: "has_or_had_time_interval:\n duration_value: \"PT1M\"\n duration_description:\ + - value: "has_time_interval:\n duration_value: \"PT1M\"\n duration_description:\ \ \"per minute\"\n" annotations: custodian_types: '["*"]' @@ -77,11 +77,11 @@ classes: specificity_rationale: Moderate specificity - relevant to custodians with digital/IoT infrastructure. examples: - - value: "UpdateFrequency:\n frequency_description: \"Every 5 minutes\"\n has_or_had_quantity:\n\ - \ numeric_value: 5\n has_or_had_time_interval:\n duration_value: \"\ + - value: "UpdateFrequency:\n frequency_description: \"Every 5 minutes\"\n has_quantity:\n\ + \ numeric_value: 5\n has_time_interval:\n duration_value: \"\ PT1M\"\n duration_description: \"minute\"\n" - - value: "UpdateFrequency:\n frequency_description: \"Hourly\"\n has_or_had_quantity:\n\ - \ numeric_value: 1\n has_or_had_time_interval:\n duration_value: \"\ + - value: "UpdateFrequency:\n frequency_description: \"Hourly\"\n has_quantity:\n\ + \ numeric_value: 1\n has_time_interval:\n duration_value: \"\ PT1H\"\n duration_description: \"hour\"\n" - value: "UpdateFrequency:\n frequency_description: \"On proximity trigger\"\n\ \ is_event_driven: true\n trigger_type: \"proximity\"\n" diff --git a/schemas/20251121/linkml/modules/classes/UseCase.yaml b/schemas/20251121/linkml/modules/classes/UseCase.yaml index a00889a2b9..586dfdf5a4 100644 --- a/schemas/20251121/linkml/modules/classes/UseCase.yaml +++ b/schemas/20251121/linkml/modules/classes/UseCase.yaml @@ -17,23 +17,23 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_example - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_example + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score default_prefix: hc classes: UseCase: description: Describes a practical application or scenario. slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_example - - has_or_had_score + - identified_by + - has_label + - has_description + - has_example + - has_score slot_usage: - has_or_had_example: + has_example: range: Example multivalued: true inlined: true diff --git a/schemas/20251121/linkml/modules/classes/UserCommunity.yaml b/schemas/20251121/linkml/modules/classes/UserCommunity.yaml index c4b386ae5b..21cb788961 100644 --- a/schemas/20251121/linkml/modules/classes/UserCommunity.yaml +++ b/schemas/20251121/linkml/modules/classes/UserCommunity.yaml @@ -8,16 +8,16 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type classes: UserCommunity: class_uri: schema:Audience description: 'A user community or audience served by an institution. **USAGE**: Used for: - Target audiences - User groups - Stakeholder communities ' slots: - - has_or_had_type + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie exact_mappings: - schema:Audience diff --git a/schemas/20251121/linkml/modules/classes/UserCommunityType.yaml b/schemas/20251121/linkml/modules/classes/UserCommunityType.yaml index 59cdd9f232..6209679598 100644 --- a/schemas/20251121/linkml/modules/classes/UserCommunityType.yaml +++ b/schemas/20251121/linkml/modules/classes/UserCommunityType.yaml @@ -8,9 +8,9 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: UserCommunityType: class_uri: skos:Concept @@ -32,9 +32,9 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description exact_mappings: - skos:Concept annotations: diff --git a/schemas/20251121/linkml/modules/classes/ValidationStatus.yaml b/schemas/20251121/linkml/modules/classes/ValidationStatus.yaml index 969c9efe2f..e16ab5df88 100644 --- a/schemas/20251121/linkml/modules/classes/ValidationStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/ValidationStatus.yaml @@ -8,8 +8,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_label classes: ValidationStatus: class_uri: skos:Concept @@ -28,8 +28,8 @@ classes: ' slots: - - has_or_had_code - - has_or_had_label + - has_code + - has_label exact_mappings: - skos:Concept annotations: @@ -38,8 +38,8 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_code: VALID - has_or_had_label: Valid + has_code: VALID + has_label: Valid validation_date: '2025-01-14T10:30:00Z' error_count: 0 description: Valid status with no errors diff --git a/schemas/20251121/linkml/modules/classes/Value.yaml b/schemas/20251121/linkml/modules/classes/Value.yaml index b84811200d..bffbcc6e92 100644 --- a/schemas/20251121/linkml/modules/classes/Value.yaml +++ b/schemas/20251121/linkml/modules/classes/Value.yaml @@ -19,13 +19,13 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_value classes: Value: class_uri: schema:StructuredValue description: Structured value wrapper. slots: - - has_or_had_value + - has_value annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/VariantType.yaml b/schemas/20251121/linkml/modules/classes/VariantType.yaml index 762a4c6a81..ee393b7e2e 100644 --- a/schemas/20251121/linkml/modules/classes/VariantType.yaml +++ b/schemas/20251121/linkml/modules/classes/VariantType.yaml @@ -11,8 +11,8 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label default_prefix: hc classes: @@ -46,17 +46,17 @@ classes: - **Close**: `skos:Concept` - SKOS concept vocabulary slots: - - has_or_had_label - - has_or_had_description + - has_label + - has_description slot_usage: - has_or_had_label: + has_label: # range: string required: true examples: - value: "Abbreviation" - value: "Synonym" - has_or_had_description: + has_description: # range: string required: false @@ -82,5 +82,5 @@ classes: comments: - "Abstract base class - see VariantTypes.yaml for concrete subclasses" - "Follows Rule 0b Type/Types naming pattern" - - "Used with has_or_had_type to classify variant types" + - "Used with has_type to classify variant types" - "Created 2026-01-22 from common_variant migration (Rule 53)" diff --git a/schemas/20251121/linkml/modules/classes/VariantTypes.yaml b/schemas/20251121/linkml/modules/classes/VariantTypes.yaml index 58b05a2956..c6824c8a0f 100644 --- a/schemas/20251121/linkml/modules/classes/VariantTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/VariantTypes.yaml @@ -17,8 +17,8 @@ classes: class_uri: hc:AbbreviationVariant description: "Abbreviated form or acronym of a term.\n\n**Use Cases**:\n- Role\ \ abbreviations (\"Dir.\" for \"Director\")\n- Department abbreviations\n- Standard\ - \ acronyms\n\n**Example**:\n```yaml\nhas_or_had_type:\n - has_or_had_label:\ - \ \"Dir.\"\n has_or_had_type: AbbreviationVariant\n```\n" + \ acronyms\n\n**Example**:\n```yaml\nhas_type:\n - has_label:\ + \ \"Dir.\"\n has_type: AbbreviationVariant\n```\n" annotations: specificity_score: 0.35 specificity_rationale: Abbreviations common across all naming contexts. @@ -30,8 +30,8 @@ classes: class_uri: hc:SynonymVariant description: "Synonym or alternative term with equivalent meaning.\n\n**Use Cases**:\n\ - Role title synonyms (\"Curator\" / \"Keeper\" / \"Conservator\")\n- Technical\ - \ synonyms\n- Cross-cultural equivalents\n\n**Example**:\n```yaml\nhas_or_had_type:\n\ - \ - has_or_had_label: \"Keeper\"\n has_or_had_type: SynonymVariant\n```\n" + \ synonyms\n- Cross-cultural equivalents\n\n**Example**:\n```yaml\nhas_type:\n\ + \ - has_label: \"Keeper\"\n has_type: SynonymVariant\n```\n" close_mappings: - skos:altLabel annotations: @@ -44,9 +44,9 @@ classes: class_uri: hc:RegionalVariant description: "Regional or dialect variation of a term.\n\n**Use Cases**:\n- British\ \ vs. American English (\"Curator\" vs. \"Keeper\")\n- Dutch regional variations\n\ - - Country-specific terminology\n\n**Example**:\n```yaml\nhas_or_had_type:\n\ - \ - has_or_had_label: \"Keeper\"\n has_or_had_type: RegionalVariant\n \ - \ has_or_had_description: \"British English term\"\n```\n" + - Country-specific terminology\n\n**Example**:\n```yaml\nhas_type:\n\ + \ - has_label: \"Keeper\"\n has_type: RegionalVariant\n \ + \ has_description: \"British English term\"\n```\n" annotations: specificity_score: 0.45 specificity_rationale: Regional variants important for international heritage. @@ -57,8 +57,8 @@ classes: class_uri: hc:HistoricalVariant description: "Historical or archaic term no longer in common use.\n\n**Use Cases**:\n\ - Obsolete job titles\n- Historical terminology\n- Legacy classifications\n\n\ - **Example**:\n```yaml\nhas_or_had_type:\n - has_or_had_label: \"Assistant Keeper\"\ - \n has_or_had_type: HistoricalVariant\n has_or_had_description: \"Victorian-era\ + **Example**:\n```yaml\nhas_type:\n - has_label: \"Assistant Keeper\"\ + \n has_type: HistoricalVariant\n has_description: \"Victorian-era\ \ title\"\n```\n" annotations: specificity_score: 0.5 @@ -70,7 +70,7 @@ classes: class_uri: hc:InformalVariant description: "Informal, colloquial, or casual term.\n\n**Use Cases**:\n- Casual\ \ job references\n- Colloquial terminology\n- Internal nicknames\n\n**Example**:\n\ - ```yaml\nhas_or_had_type:\n - has_or_had_label: \"Art person\"\n has_or_had_type:\ + ```yaml\nhas_type:\n - has_label: \"Art person\"\n has_type:\ \ InformalVariant\n```\n" annotations: specificity_score: 0.4 @@ -82,8 +82,8 @@ classes: class_uri: hc:TranslationVariant description: "Translation of a term in another language.\n\n**Use Cases**:\n-\ \ Multilingual role titles\n- International terminology\n- Cross-language equivalents\n\ - \n**Example**:\n```yaml\nhas_or_had_type:\n - has_or_had_label: \"Conservateur\"\ - \n has_or_had_type: TranslationVariant\n has_or_had_language: \"fr\"\n\ + \n**Example**:\n```yaml\nhas_type:\n - has_label: \"Conservateur\"\ + \n has_type: TranslationVariant\n has_language: \"fr\"\n\ ```\n" annotations: specificity_score: 0.45 diff --git a/schemas/20251121/linkml/modules/classes/Venue.yaml b/schemas/20251121/linkml/modules/classes/Venue.yaml index 4dc71eebce..bb5e9b6e69 100644 --- a/schemas/20251121/linkml/modules/classes/Venue.yaml +++ b/schemas/20251121/linkml/modules/classes/Venue.yaml @@ -6,7 +6,7 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_type classes: Venue: class_uri: schema:Place @@ -26,9 +26,9 @@ classes: ' slots: - - has_or_had_type + - has_type slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/VenueType.yaml b/schemas/20251121/linkml/modules/classes/VenueType.yaml index 3ca37a6ac2..f9cbe6336e 100644 --- a/schemas/20251121/linkml/modules/classes/VenueType.yaml +++ b/schemas/20251121/linkml/modules/classes/VenueType.yaml @@ -6,9 +6,9 @@ prefixes: skos: http://www.w3.org/2004/02/skos/core# imports: - linkml:types - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label classes: VenueType: class_uri: skos:Concept @@ -26,9 +26,9 @@ classes: ' slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description + - identified_by + - has_label + - has_description annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Vereinsarchiv.yaml b/schemas/20251121/linkml/modules/classes/Vereinsarchiv.yaml index c5fce4b90f..542b0722a1 100644 --- a/schemas/20251121/linkml/modules/classes/Vereinsarchiv.yaml +++ b/schemas/20251121/linkml/modules/classes/Vereinsarchiv.yaml @@ -10,10 +10,10 @@ imports: - ../classes/AgentType - linkml:types - ../slots/custodian_type - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to - ../slots/label_de - ../slots/legal_form - ../slots/record_set_type @@ -25,14 +25,14 @@ classes: exact_mappings: - wd:Q130758889 slots: - - has_or_had_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_type + - has_score + - related_to + - identified_by slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true record_set_type: diff --git a/schemas/20251121/linkml/modules/classes/VereinsarchivRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/VereinsarchivRecordSetType.yaml index 63b87f4356..41f0b12933 100644 --- a/schemas/20251121/linkml/modules/classes/VereinsarchivRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/VereinsarchivRecordSetType.yaml @@ -17,10 +17,10 @@ prefixes: imports: - ./WikidataAlignment - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/is_or_was_applicable_in - - ../slots/is_or_was_related_to + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/applicable_in + - ../slots/20260202_matang/related_to classes: VereinsarchivRecordSetType: description: A rico:RecordSetType for classifying collections from German association and club archives. @@ -29,15 +29,15 @@ classes: exact_mappings: - wd:Q130758889 slots: - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier - - is_or_was_applicable_in + - has_score + - related_to + - identified_by + - applicable_in slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true - is_or_was_applicable_in: + applicable_in: equals_string: DE, AT, CH see_also: - Vereinsarchiv diff --git a/schemas/20251121/linkml/modules/classes/Verlagsarchiv.yaml b/schemas/20251121/linkml/modules/classes/Verlagsarchiv.yaml index e59598420e..26c33f8630 100644 --- a/schemas/20251121/linkml/modules/classes/Verlagsarchiv.yaml +++ b/schemas/20251121/linkml/modules/classes/Verlagsarchiv.yaml @@ -10,10 +10,10 @@ imports: - ../classes/AgentType - linkml:types - ../slots/custodian_type - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to - ../slots/label_de - ../slots/record_set_type classes: @@ -26,14 +26,14 @@ classes: exact_mappings: - wd:Q130759004 slots: - - has_or_had_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_type + - has_score + - related_to + - identified_by slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true record_set_type: diff --git a/schemas/20251121/linkml/modules/classes/VerlagsarchivRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/VerlagsarchivRecordSetType.yaml index a3718ff330..1e08741b95 100644 --- a/schemas/20251121/linkml/modules/classes/VerlagsarchivRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/VerlagsarchivRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to classes: VerlagsarchivRecordSetType: description: A rico:RecordSetType for classifying collections from German publishing house archives. @@ -20,11 +20,11 @@ classes: exact_mappings: - wd:Q130759004 slots: - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_score + - related_to + - identified_by slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: diff --git a/schemas/20251121/linkml/modules/classes/Version.yaml b/schemas/20251121/linkml/modules/classes/Version.yaml index c60a3c75ea..05b0efb9fe 100644 --- a/schemas/20251121/linkml/modules/classes/Version.yaml +++ b/schemas/20251121/linkml/modules/classes/Version.yaml @@ -9,8 +9,8 @@ prefixes: doap: http://usefulinc.com/ns/doap# imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label + - ../slots/identified_by + - ../slots/20260202_matang/has_label - ../slots/temporal_extent default_prefix: hc classes: @@ -33,7 +33,7 @@ classes: ```yaml CollectionManagementSystem: cms_name: CollectiveAccess - has_or_had_version: + has_version: version_string: "1.8.0" major_version: 1 minor_version: 8 diff --git a/schemas/20251121/linkml/modules/classes/VersionNumber.yaml b/schemas/20251121/linkml/modules/classes/VersionNumber.yaml index 98516d85c9..9efeb23d08 100644 --- a/schemas/20251121/linkml/modules/classes/VersionNumber.yaml +++ b/schemas/20251121/linkml/modules/classes/VersionNumber.yaml @@ -8,7 +8,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_version + - ../slots/20260202_matang/has_version classes: VersionNumber: class_uri: hc:VersionNumber @@ -27,7 +27,7 @@ classes: ' slots: - - has_or_had_version + - has_version close_mappings: - schema:version annotations: @@ -36,7 +36,7 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_version: 2.1.0 + has_version: 2.1.0 major: 2 minor: 1 patch: 0 diff --git a/schemas/20251121/linkml/modules/classes/Verwaltungsarchiv.yaml b/schemas/20251121/linkml/modules/classes/Verwaltungsarchiv.yaml index eb055b37c7..018605aa14 100644 --- a/schemas/20251121/linkml/modules/classes/Verwaltungsarchiv.yaml +++ b/schemas/20251121/linkml/modules/classes/Verwaltungsarchiv.yaml @@ -10,10 +10,10 @@ imports: - ../classes/AgentType - linkml:types - ../slots/custodian_type - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/is_or_was_part_of - - ../slots/is_or_was_related_to + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/part_of + - ../slots/20260202_matang/related_to - ../slots/label_de - ../slots/record_set_type classes: @@ -26,14 +26,14 @@ classes: exact_mappings: - wd:Q2519292 slots: - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier - - is_or_was_part_of + - has_score + - related_to + - identified_by + - part_of slot_usage: - is_or_was_part_of: + part_of: range: GovernmentHierarchy - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true record_set_type: diff --git a/schemas/20251121/linkml/modules/classes/VerwaltungsarchivRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/VerwaltungsarchivRecordSetType.yaml index e255c9a993..e2c5cc6d2b 100644 --- a/schemas/20251121/linkml/modules/classes/VerwaltungsarchivRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/VerwaltungsarchivRecordSetType.yaml @@ -9,9 +9,9 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to classes: VerwaltungsarchivRecordSetType: description: A rico:RecordSetType for classifying collections of administrative records and bureaucratic documentation. @@ -20,11 +20,11 @@ classes: exact_mappings: - wd:Q2519292 slots: - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_score + - related_to + - identified_by slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: diff --git a/schemas/20251121/linkml/modules/classes/ViabilityStatus.yaml b/schemas/20251121/linkml/modules/classes/ViabilityStatus.yaml index e8bdd93080..b58a6abbd1 100644 --- a/schemas/20251121/linkml/modules/classes/ViabilityStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/ViabilityStatus.yaml @@ -15,8 +15,8 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_label + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_label classes: ViabilityStatus: class_uri: skos:Concept @@ -35,8 +35,8 @@ classes: ' slots: - - has_or_had_code - - has_or_had_label + - has_code + - has_label broad_mappings: - skos:Concept annotations: @@ -46,7 +46,7 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_code: ENDANGERED - has_or_had_label: Endangered + has_code: ENDANGERED + has_label: Endangered assessment_date: '2024-12-01' description: Endangered viability status diff --git a/schemas/20251121/linkml/modules/classes/Video.yaml b/schemas/20251121/linkml/modules/classes/Video.yaml index 0afbe5cbb5..57311430ac 100644 --- a/schemas/20251121/linkml/modules/classes/Video.yaml +++ b/schemas/20251121/linkml/modules/classes/Video.yaml @@ -9,9 +9,9 @@ prefixes: dcterms: http://purl.org/dc/terms/ imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_url + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_url default_prefix: hc classes: Video: @@ -66,9 +66,9 @@ classes: **RELATIONSHIP TO Thumbnail**: - Thumbnails are derived from Videos using the `derives_or_derived_from` + Thumbnails are derived from Videos using the `derive_from` - relationship, with the specific frame time captured via `has_or_had_time_interval`. + relationship, with the specific frame time captured via `has_time_interval`. **ONTOLOGY ALIGNMENT**: @@ -79,19 +79,19 @@ classes: ' slots: - - has_or_had_url - - has_or_had_identifier - - has_or_had_label + - has_url + - identified_by + - has_label slot_usage: - has_or_had_url: + has_url: required: true examples: - value: https://www.youtube.com/watch?v=ABC123def45 - value: https://vimeo.com/123456789 - has_or_had_identifier: + identified_by: examples: - value: - has_or_had_label: + has_label: # range: string inlined: false # Fixed invalid inline for primitive type exact_mappings: @@ -106,13 +106,13 @@ classes: custodian_types: "['*']" examples: - value: - has_or_had_url: https://www.youtube.com/watch?v=dQw4w9WgXcQ - has_or_had_identifier: - has_or_had_label: - has_or_had_label: Rijksmuseum Virtual Tour 2024 + has_url: https://www.youtube.com/watch?v=dQw4w9WgXcQ + identified_by: + has_label: + has_label: Rijksmuseum Virtual Tour 2024 language: en - value: - has_or_had_url: https://vimeo.com/987654321 - has_or_had_label: - has_or_had_label: Conservation of The Night Watch + has_url: https://vimeo.com/987654321 + has_label: + has_label: Conservation of The Night Watch language: en \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/VideoAnnotation.yaml b/schemas/20251121/linkml/modules/classes/VideoAnnotation.yaml index 73fa41c27a..c8ba35b3d9 100644 --- a/schemas/20251121/linkml/modules/classes/VideoAnnotation.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoAnnotation.yaml @@ -4,15 +4,15 @@ title: Video Annotation Class imports: - linkml:types - ../enums/AnnotationTypeEnum - - ../slots/analyzes_or_analyzed - - ../slots/contains_or_contained + - ../slots/analyze + - ../slots/20260202_matang/contain - ../slots/filters_or_filtered - - ../slots/has_or_had_quantity - - ../slots/has_or_had_rationale - - ../slots/has_or_had_score - - ../slots/has_or_had_treshold - - ../slots/has_or_had_type - - ../slots/has_or_had_unit + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_rationale + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_threshold + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/has_unit - ../slots/includes_bounding_box - ../slots/includes_segmentation_mask - ../slots/keyframe_extraction @@ -34,7 +34,7 @@ classes: class_uri: oa:Annotation abstract: true description: "Abstract base class for computer vision and multimodal video annotations.\n\n**DEFINITION**:\n\nVideoAnnotation represents structured information derived from visual\nanalysis of video content. This includes:\n\n| Subclass | Analysis Type | Output |\n|----------|---------------|--------|\n| VideoSceneAnnotation | Shot/scene detection | Scene boundaries, types |\n| VideoObjectAnnotation | Object detection | Objects, faces, logos |\n| VideoOCRAnnotation | Text extraction | On-screen text (OCR) |\n\n**RELATIONSHIP TO W3C WEB ANNOTATION**:\n\nVideoAnnotation aligns with the W3C Web Annotation Data Model:\n\n```turtle\n:annotation a oa:Annotation ;\n oa:hasBody :detection_result ;\n oa:hasTarget [\n oa:hasSource :video ;\n oa:hasSelector [\n a oa:FragmentSelector ;\n dcterms:conformsTo <http://www.w3.org/TR/media-frags/> ;\n rdf:value \"t=30,35\"\n ]\n ] ;\n oa:motivatedBy oa:classifying .\n```\n\n**FRAME-BASED\ - \ ANALYSIS**:\n\nUnlike audio transcription (continuous stream), video annotation is\ntypically frame-based:\n\n- `frame_sample_rate`: Frames analyzed per second (e.g., 1 fps, 5 fps)\n- `analyzes_or_analyzed`: Total frames processed\n- Higher sample rates = more detections but higher compute cost\n\n**DETECTION THRESHOLDS**:\n\nCV models output confidence scores. Thresholds filter noise:\n\n| Threshold | Use Case |\n|-----------|----------|\n| 0.9+ | High precision, production display |\n| 0.7-0.9 | Balanced, general use |\n| 0.5-0.7 | High recall, research/review |\n| < 0.5 | Raw output, needs filtering |\n\n**MODEL ARCHITECTURE TRACKING**:\n\nDifferent model architectures have different characteristics:\n\n| Architecture | Examples | Strengths |\n|--------------|----------|-----------|\n| CNN | ResNet, VGG | Fast inference, good for objects |\n| Transformer | ViT, CLIP | Better context, multimodal |\n| Hybrid | DETR, Swin | Balance of speed and accuracy |\n\n**HERITAGE INSTITUTION\ + \ ANALYSIS**:\n\nUnlike audio transcription (continuous stream), video annotation is\ntypically frame-based:\n\n- `frame_sample_rate`: Frames analyzed per second (e.g., 1 fps, 5 fps)\n- `analyze`: Total frames processed\n- Higher sample rates = more detections but higher compute cost\n\n**DETECTION THRESHOLDS**:\n\nCV models output confidence scores. Thresholds filter noise:\n\n| Threshold | Use Case |\n|-----------|----------|\n| 0.9+ | High precision, production display |\n| 0.7-0.9 | Balanced, general use |\n| 0.5-0.7 | High recall, research/review |\n| < 0.5 | Raw output, needs filtering |\n\n**MODEL ARCHITECTURE TRACKING**:\n\nDifferent model architectures have different characteristics:\n\n| Architecture | Examples | Strengths |\n|--------------|----------|-----------|\n| CNN | ResNet, VGG | Fast inference, good for objects |\n| Transformer | ViT, CLIP | Better context, multimodal |\n| Hybrid | DETR, Swin | Balance of speed and accuracy |\n\n**HERITAGE INSTITUTION\ \ CONTEXT**:\n\nVideo annotations enable:\n- **Discovery**: Find videos containing specific objects/artworks\n- **Accessibility**: Scene descriptions for visually impaired\n- **Research**: Analyze visual content at scale\n- **Preservation**: Document visual content as text\n- **Linking**: Connect detected artworks to collection records\n\n**CIDOC-CRM E13_Attribute_Assignment**:\n\nAnnotations are attribute assignments - asserting properties about\nvideo segments. The CV model or human annotator is the assigning agent.\n" exact_mappings: - oa:Annotation @@ -44,67 +44,67 @@ classes: - as:Activity - schema:ClaimReview slots: - - has_or_had_rationale - - contains_or_contained - - has_or_had_type + - has_rationale + - contain + - has_type - filters_or_filtered - includes_bounding_box - includes_segmentation_mask - keyframe_extraction - model_architecture - model_task - - has_or_had_score - - analyzes_or_analyzed + - has_score + - analyze slot_usage: - has_or_had_type: + has_type: # range: string # uriorcurie required: true examples: - value: - has_or_had_code: OBJECT_DETECTION - has_or_had_label: Object Detection - contains_or_contained: + has_code: OBJECT_DETECTION + has_label: Object Detection + contain: # range: string multivalued: true required: false inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_label: Night Watch painting visible - has_or_had_description: 30.0 - 35.0 seconds - has_or_had_rationale: + has_label: Night Watch painting visible + has_description: 30.0 - 35.0 seconds + has_rationale: # range: string required: false examples: - value: - has_or_had_label: ClassifyingMotivation + has_label: ClassifyingMotivation filters_or_filtered: - description: "MIGRATED 2026-01-25: Replaces detection_count and detection_threshold slots.\n\nLinks to DetectedEntity which contains:\n- has_or_had_quantity \u2192 Quantity (for detection_count)\n- has_or_had_treshold \u2192 DetectionThreshold (for detection_threshold)\n\n**Migration Pattern**:\n- Old: detection_count: 342, detection_threshold: 0.5\n- New: filters_or_filtered \u2192 DetectedEntity with structured data\n" + description: "MIGRATED 2026-01-25: Replaces detection_count and detection_threshold slots.\n\nLinks to DetectedEntity which contains:\n- has_quantity \u2192 Quantity (for detection_count)\n- has_threshold \u2192 DetectionThreshold (for detection_threshold)\n\n**Migration Pattern**:\n- Old: detection_count: 342, detection_threshold: 0.5\n- New: filters_or_filtered \u2192 DetectedEntity with structured data\n" range: DetectedEntity inlined: true required: false examples: - value: - has_or_had_quantity: - has_or_had_unit: - has_or_had_treshold: + has_quantity: + has_unit: + has_threshold: - value: - has_or_had_quantity: - has_or_had_unit: - has_or_had_treshold: - has_or_had_label: High Precision - analyzes_or_analyzed: - description: "MIGRATED 2026-01-22: Now supports VideoFrame class for frame_sample_rate migration.\n\nFrame analysis information including:\n- Total frames analyzed (integer, legacy pattern)\n- Frame sample rate and analysis parameters (VideoFrame class)\n\nMIGRATED SLOTS:\n- frame_sample_rate \u2192 VideoFrame.has_or_had_quantity with unit \"samples per second\"\n" + has_quantity: + has_unit: + has_threshold: + has_label: High Precision + analyze: + description: "MIGRATED 2026-01-22: Now supports VideoFrame class for frame_sample_rate migration.\n\nFrame analysis information including:\n- Total frames analyzed (integer, legacy pattern)\n- Frame sample rate and analysis parameters (VideoFrame class)\n\nMIGRATED SLOTS:\n- frame_sample_rate \u2192 VideoFrame.has_quantity with unit \"samples per second\"\n" range: VideoFrame inlined: true required: false examples: - value: - has_or_had_quantity: - has_or_had_unit: + has_quantity: + has_unit: - value: - has_or_had_quantity: - has_or_had_unit: + has_quantity: + has_unit: keyframe_extraction: range: boolean required: false diff --git a/schemas/20251121/linkml/modules/classes/VideoAnnotationTypes.yaml b/schemas/20251121/linkml/modules/classes/VideoAnnotationTypes.yaml index 6119228d89..368a22b494 100644 --- a/schemas/20251121/linkml/modules/classes/VideoAnnotationTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoAnnotationTypes.yaml @@ -5,20 +5,20 @@ imports: - linkml:types - ../enums/DetectionLevelEnum - ../enums/SceneTypeEnum - - ../slots/contains_or_contained + - ../slots/20260202_matang/contain - ../slots/filters_or_filtered - - ../slots/has_or_had_confidence - - ../slots/has_or_had_geometric_extent - - ../slots/has_or_had_language - - ../slots/has_or_had_level - - ../slots/has_or_had_provenance - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_confidence + - ../slots/20260202_matang/has_geometric_extent + - ../slots/20260202_matang/has_language + - ../slots/20260202_matang/has_level + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/includes_handwriting - ../slots/includes_object_tracking - - ../slots/includes_or_included - - ../slots/is_or_was_visible_in + - ../slots/20260202_matang/include + - ../slots/20260202_matang/visible_in - ../slots/is_recognized - ../slots/landmark_confidence - ../slots/landmark_geonames_id @@ -109,15 +109,15 @@ classes: close_mappings: - schema:Clip slots: - - has_or_had_quantity + - has_quantity - filters_or_filtered - scene_count - - contains_or_contained + - contain - scene_types_detected - - has_or_had_score - - has_or_had_type + - has_score + - has_type slot_usage: - contains_or_contained: + contain: # range: string multivalued: true required: true @@ -133,53 +133,53 @@ classes: - value: 47 filters_or_filtered: description: "MIGRATED 2026-01-25: Replaces detection_level slot.\n\nLinks\ - \ to DetectedEntity which contains:\n- has_or_had_type \u2192 DetectionLevelType\ + \ to DetectedEntity which contains:\n- has_type \u2192 DetectionLevelType\ \ (SCENE, SHOT, etc.)\n\n**Migration Pattern**:\n- Old: detection_level:\ - \ SCENE\n- New: filters_or_filtered \u2192 DetectedEntity with has_or_had_type\n" + \ SCENE\n- New: filters_or_filtered \u2192 DetectedEntity with has_type\n" range: DetectedEntity inlined: true required: true examples: - value: - has_or_had_type: - has_or_had_code: SCENE - has_or_had_label: Scene Level Detection + has_type: + has_code: SCENE + has_label: Scene Level Detection - value: - has_or_had_type: - has_or_had_code: SHOT - has_or_had_label: Shot Level Detection + has_type: + has_code: SHOT + has_label: Shot Level Detection scene_types_detected: range: SceneTypeEnum multivalued: true required: false examples: - value: '[INTERIOR, CLOSEUP, INTERVIEW]' - has_or_had_type: + has_type: # range: string # uriorcurie multivalued: true required: false inlined_as_list: false # Fixed invalid inline for primitive type examples: - - value: '[{has_or_had_label: "CUT"}, {has_or_had_label: "FADE_IN"}]' - has_or_had_quantity: + - value: '[{has_label: "CUT"}, {has_label: "FADE_IN"}]' + has_quantity: range: integer required: false multivalued: true inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_numeric_value: 42 - has_or_had_unit: - has_or_had_type: Cut - has_or_had_symbol: cuts + has_numeric_value: 42 + has_unit: + has_type: Cut + has_symbol: cuts - value: - has_or_had_numeric_value: 3 - has_or_had_unit: - has_or_had_label: dissolve transition + has_numeric_value: 3 + has_unit: + has_label: dissolve transition - value: - has_or_had_numeric_value: 5 - has_or_had_unit: - has_or_had_label: fade transition + has_numeric_value: 5 + has_unit: + has_label: fade transition comments: - Scene and shot boundary detection - Supports both technical (shot) and semantic (scene) analysis @@ -217,7 +217,7 @@ classes: \ database)\n\nHeritage use cases:\n- Identify curators, directors, experts\ \ in videos\n- Find videos featuring specific people\n- Accessibility: Announce\ \ speaker changes\n\n**LINKING TO COLLECTION RECORDS**:\n\nDetected objects\ - \ can be linked to collection database:\n\n```yaml\nhas_or_had_detected_object:\n\ + \ can be linked to collection database:\n\n```yaml\nhas_detected_object:\n\ \ - label: \"The Night Watch\"\n wikidata_id: Q219831\n collection_id:\ \ \"SK-C-5\" # Rijksmuseum ID\n confidence: 0.95\n```\n\n**BOUNDING BOX\ \ FORMAT**:\n\nCoordinates are normalized (0.0-1.0) relative to frame dimensions:\n\ @@ -231,13 +231,13 @@ classes: related_mappings: - schema:ImageObject slots: - - has_or_had_quantity + - has_quantity - includes_object_tracking - linked_to_collection - object_classes_detected - - has_or_had_score + - has_score slot_usage: - contains_or_contained: + contain: range: DetectedEntity multivalued: true required: false @@ -247,24 +247,24 @@ classes: - range: DetectedFace - range: DetectedLogo - range: DetectedLandmark - has_or_had_quantity: + has_quantity: range: integer multivalued: true required: false inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_measurement_unit: - has_or_had_type: OBJECT - has_or_had_methodology: + has_measurement_unit: + has_type: OBJECT + has_methodology: methodology_type: ENTITY_RESOLUTION - has_or_had_label: DeepSORT tracking + embedding clustering + has_label: DeepSORT tracking + embedding clustering - value: - has_or_had_measurement_unit: - has_or_had_type: FACE - has_or_had_methodology: + has_measurement_unit: + has_type: FACE + has_methodology: methodology_type: ENTITY_RESOLUTION - has_or_had_label: ArcFace clustering + has_label: ArcFace clustering confidence_threshold: 0.6 object_classes_detected: # range: string @@ -342,15 +342,15 @@ classes: close_mappings: - schema:TextDigitalDocument slots: - - has_or_had_confidence - - has_or_had_quantity + - has_confidence + - has_quantity - includes_handwriting - - has_or_had_score - - has_or_had_language - - contains_or_contained - - has_or_had_type + - has_score + - has_language + - contain + - has_type slot_usage: - has_or_had_language: + has_language: range: Language multivalued: true required: false @@ -362,33 +362,33 @@ classes: language_name: English - value: language_name: Latin - has_or_had_quantity: + has_quantity: range: integer multivalued: true required: false inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_measurement_unit: - has_or_had_type: TEXT_REGION - has_or_had_symbol: regions + has_measurement_unit: + has_type: TEXT_REGION + has_symbol: regions - value: - has_or_had_measurement_unit: - has_or_had_type: CHARACTER - has_or_had_symbol: characters + has_measurement_unit: + has_type: CHARACTER + has_symbol: characters includes_handwriting: range: boolean required: false examples: - value: true - has_or_had_confidence: + has_confidence: range: Confidence required: false inlined: true examples: - value: - has_or_had_value: 0.68 - contains_or_contained: + has_value: 0.68 + contain: # range: string multivalued: true required: false diff --git a/schemas/20251121/linkml/modules/classes/VideoAudioAnnotation.yaml b/schemas/20251121/linkml/modules/classes/VideoAudioAnnotation.yaml index 66fbf83bb9..dc223d6110 100644 --- a/schemas/20251121/linkml/modules/classes/VideoAudioAnnotation.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoAudioAnnotation.yaml @@ -6,17 +6,17 @@ imports: - ../enums/AudioEventTypeEnum - ../enums/MusicTypeEnum - ../enums/SoundEventTypeEnum - - ../slots/contains_or_contained + - ../slots/20260202_matang/contain - ../slots/end_of_the_end - ../slots/has_audio_quality_score - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_provenance - - ../slots/has_or_had_score - - ../slots/has_or_had_segment - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_provenance + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_segment + - ../slots/20260202_matang/has_type - ../slots/is_background - - ../slots/is_or_was_diarized + - ../slots/20260202_matang/diarized - ../slots/is_overlapping - ../slots/languages_detected - ../slots/music_confidence @@ -62,7 +62,7 @@ classes: abstract: false description: "Annotation for audio events detected in video content.\n\n**DEFINITION**:\n\nVideoAudioAnnotation captures structured information derived from audio\nanalysis of video content. This includes speech, music, silence, and\nvarious sound events.\n\n**AUDIO ANALYSIS TYPES**:\n\n| Type | Description | Use Case |\n|------|-------------|----------|\n| **Speech Detection** | Identify spoken segments | Transcript alignment |\n| **Speaker Diarization** | Who spoke when | Interview navigation |\n| **Music Detection** | Identify musical segments | Content classification |\n| **Sound Events** | Applause, laughter, etc. | Audience engagement |\n| **Silence Detection** | Find quiet segments | Quality assessment |\n| **Language Detection** | Identify spoken languages | Multilingual content |\n\n**SPEAKER DIARIZATION**:\n\nDiarization answers \"who spoke when\":\n\n```\n0:00-0:15 Speaker 1 (Curator)\n0:15-0:45 Speaker 2 (Artist)\n0:45-1:00 Speaker 1 (Curator)\n1:00-1:30 Speaker 3 (Museum\ \ Director)\n```\n\nHeritage applications:\n- Navigate to specific speakers in interviews\n- Count speaking time per person\n- Identify unnamed speakers for annotation\n- Build speaker databases for recognition\n\n**MUSIC DETECTION**:\n\nMusic detection classifies audio segments as containing music:\n\n| Category | Examples |\n|----------|----------|\n| **Background music** | Documentary soundtracks |\n| **Featured music** | Concert recordings, performances |\n| **Historical music** | Archival recordings |\n| **Licensed music** | Rights-managed content |\n\nMusic segments may also include:\n- Genre classification (classical, jazz, folk)\n- Mood/tempo analysis\n- Fingerprinting for identification\n\n**SOUND EVENT DETECTION**:\n\nNon-speech, non-music audio events:\n\n| Event Type | Heritage Context |\n|------------|------------------|\n| APPLAUSE | Lecture recordings, openings |\n| LAUGHTER | Tour guides, educational content |\n| CROWD_NOISE | Event documentation |\n| DOOR/FOOTSTEPS\ - \ | Ambient archive recordings |\n| NATURE_SOUNDS | Outdoor heritage site recordings |\n| MACHINERY | Industrial heritage, conservation |\n\n**LANGUAGE DETECTION**:\n\nMultilingual heritage content requires language identification:\n\n```yaml\ncontains_or_contained:\n - start: 0.0\n end: 120.0\n language: nl\n speaker_id: speaker_001\n - start: 120.0\n end: 240.0\n language: en\n speaker_id: speaker_001 # Same speaker, switched language\n```\n\n**AUDIO QUALITY ANALYSIS**:\n\nAudio quality metrics for preservation and accessibility:\n\n| Metric | Description | Threshold |\n|--------|-------------|-----------|\n| SNR | Signal-to-noise ratio | > 20 dB good |\n| Clipping | Peak distortion | None ideal |\n| Noise floor | Background noise level | < -50 dB good |\n| Frequency response | Bandwidth | Full-range ideal |\n\n**HERITAGE INSTITUTION USE CASES**:\n\n| Content Type | Audio Analysis Need |\n|--------------|---------------------|\n| Oral histories | Diarization,\ + \ | Ambient archive recordings |\n| NATURE_SOUNDS | Outdoor heritage site recordings |\n| MACHINERY | Industrial heritage, conservation |\n\n**LANGUAGE DETECTION**:\n\nMultilingual heritage content requires language identification:\n\n```yaml\ncontain:\n - start: 0.0\n end: 120.0\n language: nl\n speaker_id: speaker_001\n - start: 120.0\n end: 240.0\n language: en\n speaker_id: speaker_001 # Same speaker, switched language\n```\n\n**AUDIO QUALITY ANALYSIS**:\n\nAudio quality metrics for preservation and accessibility:\n\n| Metric | Description | Threshold |\n|--------|-------------|-----------|\n| SNR | Signal-to-noise ratio | > 20 dB good |\n| Clipping | Peak distortion | None ideal |\n| Noise floor | Background noise level | < -50 dB good |\n| Frequency response | Bandwidth | Full-range ideal |\n\n**HERITAGE INSTITUTION USE CASES**:\n\n| Content Type | Audio Analysis Need |\n|--------------|---------------------|\n| Oral histories | Diarization,\ \ transcription alignment |\n| Curator interviews | Speaker identification, language |\n| Virtual tours | Background music, voiceover detection |\n| Lecture recordings | Audience reactions, Q&A segments |\n| Conservation videos | Narration vs demonstration audio |\n| Archival footage | Speech recovery, noise reduction |\n\n**RELATIONSHIP TO VideoTranscript**:\n\nVideoAudioAnnotation is complementary to VideoTranscript:\n\n- **VideoTranscript**: The text content of speech (WHAT was said)\n- **VideoAudioAnnotation**: Audio structure (WHO spoke, music, sounds)\n\nTogether they provide complete audio understanding:\n\n```\nVideoAudioAnnotation: Speaker 1 spoke 0:00-0:15\nVideoTranscript: \"Welcome to the Rijksmuseum...\" (0:00-0:15)\n\u2192 Combined: Curator said \"Welcome to the Rijksmuseum...\"\n```\n" exact_mappings: - hc:VideoAudioAnnotation @@ -73,39 +73,39 @@ classes: - wikidata:Q11028 - wikidata:Q638 slots: - - has_or_had_segment - # - contains_or_contained - DUPLICATE REMOVED + - has_segment + # - contain - DUPLICATE REMOVED - has_audio_quality_score - - is_or_was_diarized - # - contains_or_contained - DUPLICATE REMOVED + - diarized + # - contain - DUPLICATE REMOVED - languages_detected - music_confidence - music_detected - music_genres_detected - noise_floor_db - - has_or_had_type - # - contains_or_contained - DUPLICATE REMOVED + - has_type + # - contain - DUPLICATE REMOVED - silence_total_seconds - snr_db - # - contains_or_contained - DUPLICATE REMOVED + # - contain - DUPLICATE REMOVED - sound_events_detected - speaker_count - speaker_label - speech_detected - speech_language - speech_language_confidence - - contains_or_contained - - has_or_had_score + - contain + - has_score slot_usage: - has_or_had_segment: + has_segment: range: AudioEventSegment multivalued: true required: false inlined_as_list: true examples: - - value: '[{has_or_had_type: SPEECH, start_seconds: 0.0, end_seconds: 15.0, segment_text: "Speech detected - Speaker 1", confidence: 0.95}]' - - value: '[{has_or_had_type: MUSIC, start_seconds: 30.0, end_seconds: 60.0, segment_text: "Background classical music", confidence: 0.88}]' - contains_or_contained: + - value: '[{has_type: SPEECH, start_seconds: 0.0, end_seconds: 15.0, segment_text: "Speech detected - Speaker 1", confidence: 0.95}]' + - value: '[{has_type: MUSIC, start_seconds: 30.0, end_seconds: 60.0, segment_text: "Background classical music", confidence: 0.88}]' + contain: # range: string multivalued: true required: false @@ -115,9 +115,9 @@ classes: temporal_extent: begin_of_the_begin: 0.0 end_of_the_end: 15.0 - contains_or_contained: - has_or_had_identifier: spk_001 - has_or_had_label: Curator + contain: + identified_by: spk_001 + has_label: Curator speaker_count: range: integer required: false @@ -153,14 +153,14 @@ classes: required: false examples: - value: true - # contains_or_contained: + # contain: # range: SoundEventTypeEnum # multivalued: true # required: false # examples: # - value: '[APPLAUSE, CROWD_NOISE]' # description: Applause and crowd sounds detected - # contains_or_contained: + # contain: # range: VideoTimeSegment # multivalued: true # required: false @@ -217,7 +217,7 @@ classes: - speaker_id - speaker_label - speech_text - - has_or_had_score + - has_score slot_usage: segment_start_seconds: range: float @@ -250,21 +250,21 @@ classes: Focused on "who spoke when" rather than transcript content. ' slots: - - has_or_had_provenance + - has_provenance - temporal_extent - - contains_or_contained + - contain - is_overlapping - - has_or_had_score + - has_score slot_usage: temporal_extent: range: TimeSpan inlined: true required: true - contains_or_contained: + contain: range: Speaker inlined: true required: true - has_or_had_provenance: + has_provenance: range: Provenance inlined: true required: false @@ -282,7 +282,7 @@ classes: - music_segment_confidence - music_start_seconds - music_type - - has_or_had_score + - has_score slot_usage: music_start_seconds: range: float diff --git a/schemas/20251121/linkml/modules/classes/VideoCategoryIdentifier.yaml b/schemas/20251121/linkml/modules/classes/VideoCategoryIdentifier.yaml index 3385bfc7f1..f31996d5fe 100644 --- a/schemas/20251121/linkml/modules/classes/VideoCategoryIdentifier.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoCategoryIdentifier.yaml @@ -15,7 +15,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code + - ../slots/20260202_matang/has_code classes: VideoCategoryIdentifier: class_uri: hc:VideoCategoryIdentifier @@ -32,7 +32,7 @@ classes: ' slots: - - has_or_had_code + - has_code close_mappings: - schema:identifier annotations: @@ -41,7 +41,7 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_code: '27' + has_code: '27' category_name: Education platform: YouTube description: YouTube Education category diff --git a/schemas/20251121/linkml/modules/classes/VideoChapter.yaml b/schemas/20251121/linkml/modules/classes/VideoChapter.yaml index ed128b4680..37abed02bb 100644 --- a/schemas/20251121/linkml/modules/classes/VideoChapter.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoChapter.yaml @@ -4,15 +4,15 @@ title: Video Chapter Class imports: - linkml:types - ../enums/ChapterSourceEnum - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_parent - - ../slots/has_or_had_score - - ../slots/has_or_had_sequence_index - - ../slots/has_or_had_source - - ../slots/has_or_had_thumbnail - - ../slots/is_or_was_created_through + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_parent + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_sequence_index + - ../slots/20260202_matang/has_source + - ../slots/20260202_matang/has_thumbnail + - ../slots/20260202_matang/created_through - ../slots/nesting_level - ../slots/start_time - ../slots/end_time @@ -73,77 +73,77 @@ classes: related_mappings: - wikidata:Q1454986 slots: - - is_or_was_created_through - - has_or_had_description - - has_or_had_identifier - - has_or_had_sequence_index - - has_or_had_source - - has_or_had_thumbnail - - has_or_had_label + - created_through + - has_description + - identified_by + - has_sequence_index + - has_source + - has_thumbnail + - has_label - nesting_level - - has_or_had_parent - - has_or_had_score + - has_parent + - has_score - start_time - end_time - start_seconds - end_seconds slot_usage: - has_or_had_identifier: + identified_by: # range: string required: true examples: - value: ABC123_chapter_0 - value: 550e8400-e29b-41d4-a716-446655440000 - has_or_had_label: + has_label: range: Label inlined: true required: true examples: - value: - has_or_had_label: De Nachtwacht (The Night Watch) + has_label: De Nachtwacht (The Night Watch) language: nl - value: - has_or_had_label: 'Curator Interview: Conservation Process' + has_label: 'Curator Interview: Conservation Process' language: en - has_or_had_sequence_index: + has_sequence_index: range: integer required: true minimum_value: 0 examples: - value: 0 - value: 5 - has_or_had_description: + has_description: # range: string required: false examples: - value: Dr. Dibbits discusses the restoration of Rembrandt's masterpiece, including the controversial 2019 operation. - is_or_was_created_through: + created_through: range: boolean required: false examples: - value: false - value: true - has_or_had_source: + has_source: range: ChapterSourceEnum required: false examples: - value: MANUAL - has_or_had_thumbnail: + has_thumbnail: range: Thumbnail inlined: true required: false examples: - value: - has_or_had_url: https://i.ytimg.com/vi/ABC123/hq1.jpg + has_url: https://i.ytimg.com/vi/ABC123/hq1.jpg - value: - has_or_had_url: https://i.ytimg.com/vi/ABC123/hq1.jpg - derives_or_derived_from: - has_or_had_url: https://www.youtube.com/watch?v=ABC123 - has_or_had_time_interval: + has_url: https://i.ytimg.com/vi/ABC123/hq1.jpg + derive_from: + has_url: https://www.youtube.com/watch?v=ABC123 + has_time_interval: duration_description: 'Frame at 2:02.5 (was chapter_thumbnail_timestamp: 122.5)' - has_or_had_parent: + has_parent: # range: string required: false examples: diff --git a/schemas/20251121/linkml/modules/classes/VideoChapterList.yaml b/schemas/20251121/linkml/modules/classes/VideoChapterList.yaml index 512299290e..192dff24ba 100644 --- a/schemas/20251121/linkml/modules/classes/VideoChapterList.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoChapterList.yaml @@ -4,12 +4,12 @@ title: Video Chapter List Class imports: - linkml:types - ../slots/covers_full_video - - ../slots/has_or_had_chapter - - ../slots/has_or_had_identifier - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_source - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/has_chapter + - ../slots/identified_by + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_source + - ../slots/20260202_matang/generated_by prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -37,50 +37,50 @@ classes: exact_mappings: - schema:ItemList slots: - - has_or_had_chapter - - is_or_was_generated_by - - has_or_had_source + - has_chapter + - generated_by + - has_source - covers_full_video - - has_or_had_quantity - - has_or_had_score - - has_or_had_identifier + - has_quantity + - has_score + - identified_by slot_usage: - has_or_had_identifier: + identified_by: range: VideoIdentifier required: true inlined: true examples: - - value: '{"has_or_had_code": "dQw4w9WgXcQ", "platform": "YouTube"}' - has_or_had_chapter: + - value: '{"has_code": "dQw4w9WgXcQ", "platform": "YouTube"}' + has_chapter: range: VideoChapter multivalued: true required: true inlined_as_list: true - has_or_had_quantity: + has_quantity: range: integer required: false inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_measurement_unit: - has_or_had_type: CHAPTER - has_or_had_symbol: chapters - has_or_had_source: + has_measurement_unit: + has_type: CHAPTER + has_symbol: chapters + has_source: range: Source required: false inlined: true examples: - value: - has_or_had_type: MANUAL - has_or_had_label: Creator-defined chapters + has_type: MANUAL + has_label: Creator-defined chapters - value: - has_or_had_type: YOUTUBE_AI - has_or_had_label: YouTube Auto-Chapters + has_type: YOUTUBE_AI + has_label: YouTube Auto-Chapters - value: - has_or_had_type: WHISPER_CHAPTERS - has_or_had_label: Whisper Analysis - has_or_had_description: Generated from transcript topic segmentation - is_or_was_generated_by: + has_type: WHISPER_CHAPTERS + has_label: Whisper Analysis + has_description: Generated from transcript topic segmentation + generated_by: description: 'Generation event capturing when and how the chapter list was created. MIGRATED 2026-01-19: Replaces chapters_generated_at slot (Rule 53).' range: GenerationEvent required: false @@ -90,15 +90,15 @@ classes: temporal_extent: begin_of_the_begin: '2024-01-15T10:30:00Z' end_of_the_end: '2024-01-15T10:30:00Z' - has_or_had_provenance: - has_or_had_agent: - has_or_had_type: SOFTWARE - has_or_had_name: YouTube Auto-Chapters - has_or_had_description: AI-generated chapters from video analysis + has_provenance: + has_agent: + has_type: SOFTWARE + has_name: YouTube Auto-Chapters + has_description: AI-generated chapters from video analysis - value: temporal_extent: begin_of_the_begin: '2024-03-20T14:00:00Z' - has_or_had_description: Manually created by content creator + has_description: Manually created by content creator covers_full_video: range: boolean required: false diff --git a/schemas/20251121/linkml/modules/classes/VideoFrame.yaml b/schemas/20251121/linkml/modules/classes/VideoFrame.yaml index c527f3cd72..e96ea21953 100644 --- a/schemas/20251121/linkml/modules/classes/VideoFrame.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoFrame.yaml @@ -8,8 +8,8 @@ prefixes: oa: http://www.w3.org/ns/oa# imports: - linkml:types - - ../slots/has_or_had_quantity - - ../slots/has_or_had_unit + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_unit default_prefix: hc classes: VideoFrame: @@ -56,7 +56,7 @@ classes: This class supports migration from the frame_sample_rate slot per - slot_fixes.yaml. Use with has_or_had_quantity + Quantity + has_or_had_unit + Unit. + slot_fixes.yaml. Use with has_quantity + Quantity + has_unit + Unit. ' exact_mappings: @@ -64,19 +64,19 @@ classes: close_mappings: - schema:VideoObject slots: - - has_or_had_quantity - - has_or_had_unit + - has_quantity + - has_unit slot_usage: - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type multivalued: false examples: - - value: 'has_or_had_unit: + - value: 'has_unit: ' - - value: "has_or_had_unit:\n has_or_had_label:\n - label_text: \"frames per second\"\n" - has_or_had_unit: + - value: "has_unit:\n has_label:\n - label_text: \"frames per second\"\n" + has_unit: # range: string inlined: false # Fixed invalid inline for primitive type annotations: @@ -87,9 +87,9 @@ classes: specificity_score: 0.7 specificity_rationale: Moderately specific - applies only to video analysis contexts. examples: - - value: "VideoFrame:\n has_or_had_quantity:\n has_or_had_unit:\n" - - value: "VideoFrame:\n has_or_had_quantity:\n has_or_had_unit:\n" + - value: "VideoFrame:\n has_quantity:\n has_unit:\n" + - value: "VideoFrame:\n has_quantity:\n has_unit:\n" comments: - Created from slot_fixes.yaml migration (2026-01-22) - - Use with analyzes_or_analyzed slot to track frame analysis + - Use with analyze slot to track frame analysis - Sample rate affects both coverage and compute cost diff --git a/schemas/20251121/linkml/modules/classes/VideoFrames.yaml b/schemas/20251121/linkml/modules/classes/VideoFrames.yaml index 19ad89e818..953c04aeb0 100644 --- a/schemas/20251121/linkml/modules/classes/VideoFrames.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoFrames.yaml @@ -6,8 +6,8 @@ prefixes: schema: http://schema.org/ imports: - linkml:types - - ../slots/has_or_had_measurement_unit - - ../slots/has_or_had_quantity + - ../slots/20260202_matang/has_measurement_unit + - ../slots/20260202_matang/has_quantity classes: VideoFrames: class_uri: schema:QuantitativeValue @@ -19,14 +19,14 @@ classes: ' slots: - - has_or_had_quantity - - has_or_had_measurement_unit + - has_quantity + - has_measurement_unit slot_usage: - has_or_had_quantity: - has_or_had_measurement_unit: + has_quantity: + has_measurement_unit: range: MeasureUnit annotations: specificity_score: '0.80' specificity_rationale: Video frame analysis is highly specific to digital platform operations. - has_or_had_score: null + has_score: null custodian_types: "['*']" diff --git a/schemas/20251121/linkml/modules/classes/VideoIdentifier.yaml b/schemas/20251121/linkml/modules/classes/VideoIdentifier.yaml index 0ec5057acd..89c7f1d9c4 100644 --- a/schemas/20251121/linkml/modules/classes/VideoIdentifier.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoIdentifier.yaml @@ -8,7 +8,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code + - ../slots/20260202_matang/has_code classes: VideoIdentifier: class_uri: hc:VideoIdentifier @@ -27,7 +27,7 @@ classes: ' slots: - - has_or_had_code + - has_code close_mappings: - schema:identifier annotations: @@ -37,6 +37,6 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_code: dQw4w9WgXcQ + has_code: dQw4w9WgXcQ platform: YouTube description: YouTube video identifier diff --git a/schemas/20251121/linkml/modules/classes/VideoPost.yaml b/schemas/20251121/linkml/modules/classes/VideoPost.yaml index 4c2589326c..b53e91fb66 100644 --- a/schemas/20251121/linkml/modules/classes/VideoPost.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoPost.yaml @@ -3,28 +3,28 @@ name: video_post_class title: Video Post Class imports: - linkml:types - - ../slots/has_or_had_author - - ../slots/has_or_had_caption - - ../slots/has_or_had_comment - - ../slots/has_or_had_comment # was: video_comment - - ../slots/has_or_had_content - - ../slots/has_or_had_degree - - ../slots/has_or_had_identifier - - ../slots/has_or_had_language - - ../slots/has_or_had_quantity - - ../slots/has_or_had_reply - - ../slots/has_or_had_resolution - - ../slots/has_or_had_score - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_status - - ../slots/has_or_had_time_interval + - ../slots/20260202_matang/has_author + - ../slots/20260202_matang/has_caption + - ../slots/20260202_matang/commented_on + - ../slots/20260202_matang/commented_on # was: video_comment + - ../slots/20260202_matang/has_content + - ../slots/20260202_matang/has_degree + - ../slots/identified_by + - ../slots/20260202_matang/has_language + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_reply + - ../slots/20260202_matang/has_resolution + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/has_time_interval - ../slots/is_embeddable - ../slots/is_licensed_content - ../slots/is_made_for_kid - - ../slots/is_or_was_appreciated - - ../slots/is_or_was_dismissed - - ../slots/is_or_was_last_updated_at - - ../slots/is_or_was_part_of_total + - ../slots/20260202_matang/appreciated + - ../slots/20260202_matang/dismissed + - ../slots/20260202_matang/last_updated_at + - ../slots/20260202_matang/part_of_total - ../slots/language - ../slots/like_count - ../slots/live_broadcast_content @@ -41,33 +41,33 @@ classes: - schema:VideoObject - as:Video slots: - - has_or_had_caption - - is_or_was_part_of_total - - has_or_had_language - - has_or_had_status - - has_or_had_resolution - - is_or_was_dismissed - - has_or_had_time_interval + - has_caption + - part_of_total + - has_language + - has_status + - has_resolution + - dismissed + - has_time_interval - is_embeddable - is_licensed_content - is_made_for_kid - like_count - live_broadcast_content - metrics_observed_at - - has_or_had_score - - has_or_had_identifier - - has_or_had_comment - - has_or_had_quantity + - has_score + - identified_by + - commented_on + - has_quantity slot_usage: - has_or_had_time_interval: + has_time_interval: range: TimeInterval required: false inlined: true examples: - value: - value: - # MIGRATED 2026-01-24: definition → has_or_had_resolution + Resolution (Rule 53) - has_or_had_resolution: + # MIGRATED 2026-01-24: definition → has_resolution + Resolution (Rule 53) + has_resolution: range: Resolution required: false inlined: true @@ -79,24 +79,24 @@ classes: resolution_class: "4k" - value: resolution_class: sd - has_or_had_degree: + has_degree: range: AspectRatio inlined: true required: false examples: - value: - has_or_had_degree: '16:9' + has_degree: '16:9' - value: - has_or_had_degree: '9:16' - # MIGRATED 2026-01-22: frame_rate → has_or_had_quantity + Quantity + has_or_had_unit + Unit (Rule 53) + has_degree: '9:16' + # MIGRATED 2026-01-22: frame_rate → has_quantity + Quantity + has_unit + Unit (Rule 53) # frame_rate: # range: float # required: false # examples: # - value: 30.0 # description: 30 frames per second - # MIGRATED 2026-01-22: caption_available → has_or_had_caption + Caption per slot_fixes.yaml feedback - has_or_had_caption: + # MIGRATED 2026-01-22: caption_available → has_caption + Caption per slot_fixes.yaml feedback + has_caption: range: Caption multivalued: true inlined: true @@ -109,8 +109,8 @@ classes: caption_url: https://example.org/video/captions_nl.vtt - value: language: null - # MIGRATED 2026-01-23: default_language, default_audio_language → has_or_had_language + Language + has_or_had_status + Status (Rule 53) - has_or_had_language: + # MIGRATED 2026-01-23: default_language, default_audio_language → has_language + Language + has_status + Status (Rule 53) + has_language: range: Language inlined: true multivalued: true @@ -125,7 +125,7 @@ classes: - value: language_code: "en" language_name: "English" - has_or_had_status: + has_status: range: Status inlined: true multivalued: true @@ -135,7 +135,7 @@ classes: status_value: "nl" - value: status_value: "nl" - # has_available_caption_language REMOVED - migrated to has_or_had_language (Rule 53) + # has_available_caption_language REMOVED - migrated to has_language (Rule 53) # has_available_caption_language: # range: string # multivalued: true @@ -146,27 +146,27 @@ classes: # - en # - de # description: Captions available in Dutch, English, German - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type multivalued: true examples: - value: - has_or_had_measurement_unit: - has_or_had_type: VIEW + has_measurement_unit: + has_type: VIEW temporal_extent: begin_of_the_begin: "2025-12-01T23:16:22Z" - value: - has_or_had_measurement_unit: - has_or_had_type: COMMENT + has_measurement_unit: + has_type: COMMENT temporal_extent: begin_of_the_begin: "2025-12-01T23:16:22Z" - value: - has_or_had_unit: + has_unit: unit_uri: "qudt:FPS" - value: - has_or_had_unit: - has_or_had_label: + has_unit: + has_label: - label_text: "frames per second" like_count: range: integer @@ -174,17 +174,17 @@ classes: minimum_value: 0 examples: - value: 2 - is_or_was_dismissed: + dismissed: range: DismissalEvent required: false multivalued: true inlined: true examples: - value: - has_or_had_quantity: - has_or_had_unit: - has_or_had_label: "dislike" - # REMOVED 2026-01-18: comment_count - migrated to has_or_had_quantity + Quantity (Rule 53) + has_quantity: + has_unit: + has_label: "dislike" + # REMOVED 2026-01-18: comment_count - migrated to has_quantity + Quantity (Rule 53) # comment_count: # range: integer # required: false @@ -192,7 +192,7 @@ classes: # examples: # - value: 0 # description: No comments at observation time - # MIGRATED 2026-01-26: favorite_count → has_or_had_quantity + Quantity (Rule 53) + # MIGRATED 2026-01-26: favorite_count → has_quantity + Quantity (Rule 53) # favorite_count: # range: integer # required: false @@ -211,13 +211,13 @@ classes: # description: 'YouTube: People & Blogs' # - value: '27' # description: 'YouTube: Education' - has_or_had_identifier: + identified_by: range: VideoCategoryIdentifier multivalued: true required: false inlined: true examples: - - value: '{"has_or_had_code": "27", "category_name": "Education", "platform": "YouTube"}' + - value: '{"has_code": "27", "category_name": "Education", "platform": "YouTube"}' description: 'YouTube: Education category' live_broadcast_content: range: LiveBroadcastStatusEnum @@ -234,7 +234,7 @@ classes: is_made_for_kid: range: boolean required: false - # MIGRATED 2026-01-22: comments_fetched → is_or_was_retrieved_at + is_or_was_part_of_total + SourceCommentCount (Rule 53) + # MIGRATED 2026-01-22: comments_fetched → retrieved_at + part_of_total + SourceCommentCount (Rule 53) # comments_fetched: # range: integer # required: false @@ -245,15 +245,15 @@ classes: inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_timestamp: "2025-12-01T23:16:22Z" - is_or_was_part_of_total: + has_timestamp: "2025-12-01T23:16:22Z" + part_of_total: range: SourceCommentCount inlined: true required: false examples: - value: - value: - has_or_had_comment: # was: video_comment - migrated per Rule 53 (2025-01-15) + commented_on: # was: video_comment - migrated per Rule 53 (2025-01-15) range: VideoComment multivalued: true required: false @@ -279,62 +279,62 @@ classes: - schema:Comment - as:Note slots: - # MIGRATED 2026-01-18: comment_author → has_or_had_author + Author (Rule 53) - - has_or_had_author - # MIGRATED 2026-01-22: comment_author_channel_id → has_or_had_identifier + DigitalPlatformUserIdentifier (Rule 53) - # NOTE: has_or_had_identifier already present - used for both comment_id and comment_author_channel_id - # REMOVED 2026-01-18: comment_id - migrated to has_or_had_identifier + Identifier (Rule 53) - - has_or_had_identifier - # MIGRATED 2026-01-22: comment_like_count → is_or_was_appreciated + AppreciationEvent (Rule 53) - - is_or_was_appreciated + # MIGRATED 2026-01-18: comment_author → has_author + Author (Rule 53) + - has_author + # MIGRATED 2026-01-22: comment_author_channel_id → identified_by + DigitalPlatformUserIdentifier (Rule 53) + # NOTE: identified_by already present - used for both comment_id and comment_author_channel_id + # REMOVED 2026-01-18: comment_id - migrated to identified_by + Identifier (Rule 53) + - identified_by + # MIGRATED 2026-01-22: comment_like_count → appreciated + AppreciationEvent (Rule 53) + - appreciated # REMOVED 2026-01-18: comment_published_at - migrated to temporal_extent + TimeSpan (Rule 53) - temporal_extent - # MIGRATED 2026-01-22: comment_reply_count → has_or_had_reply + CommentReply (Rule 53) - - has_or_had_reply - # REMOVED 2026-01-18: comment_text - migrated to has_or_had_content + Content (Rule 53) - - has_or_had_content + # MIGRATED 2026-01-22: comment_reply_count → has_reply + CommentReply (Rule 53) + - has_reply + # REMOVED 2026-01-18: comment_text - migrated to has_content + Content (Rule 53) + - has_content # REMOVED 2026-01-18: comment_updated_at - migrated to was_last_updated_at + Timestamp (Rule 53) - - is_or_was_last_updated_at - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - last_updated_at + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - # MIGRATED 2026-01-18: comment_id → has_or_had_identifier + Identifier (Rule 53/56) - has_or_had_identifier: + # MIGRATED 2026-01-18: comment_id → identified_by + Identifier (Rule 53/56) + identified_by: # range: string # uriorcurie inlined: false # Fixed invalid inline for primitive type required: true examples: - value: - # REMOVED 2026-01-18: comment_author - migrated to has_or_had_author + Author (Rule 53) - # MIGRATED 2026-01-18: comment_author → has_or_had_author + Author (Rule 53) - # MIGRATED 2026-01-22: comment_author_channel_id is now captured via Author.has_or_had_identifier (Rule 53) - has_or_had_author: + # REMOVED 2026-01-18: comment_author - migrated to has_author + Author (Rule 53) + # MIGRATED 2026-01-18: comment_author → has_author + Author (Rule 53) + # MIGRATED 2026-01-22: comment_author_channel_id is now captured via Author.identified_by (Rule 53) + has_author: range: Author inlined: true required: true examples: - value: - has_or_had_name: "Visitor123" + has_name: "Visitor123" - value: - has_or_had_name: "MuseumFan2024" - has_or_had_identifier: + has_name: "MuseumFan2024" + identified_by: - identifier_scheme: youtube_channel_id platform_type: "youtube" - # MIGRATED 2026-01-22: comment_author_channel_id → has_or_had_identifier + DigitalPlatformUserIdentifier (Rule 53) - # NOTE: has_or_had_identifier slot_usage updated above to handle BOTH comment_id AND comment_author_channel_id - # The Author class already has has_or_had_identifier slot, so channel_id can be linked via: - # has_or_had_author: - # has_or_had_identifier: + # MIGRATED 2026-01-22: comment_author_channel_id → identified_by + DigitalPlatformUserIdentifier (Rule 53) + # NOTE: identified_by slot_usage updated above to handle BOTH comment_id AND comment_author_channel_id + # The Author class already has identified_by slot, so channel_id can be linked via: + # has_author: + # identified_by: # - identifier_scheme: youtube_channel_id # identifier_value: "UC1234..." # platform_type: "youtube" - # MIGRATED 2026-01-18: comment_text → has_or_had_content + Content (Rule 53/56) - has_or_had_content: + # MIGRATED 2026-01-18: comment_text → has_content + Content (Rule 53/56) + has_content: # range: string inlined: false # Fixed invalid inline for primitive type required: true examples: - value: - has_or_had_description: "Great video about the collection!" + has_description: "Great video about the collection!" # MIGRATED 2026-01-18: comment_published_at → temporal_extent + TimeSpan (Rule 53/56) temporal_extent: range: TimeSpan @@ -344,16 +344,16 @@ classes: - value: begin_of_the_begin: "2025-01-14T10:30:00Z" # MIGRATED 2026-01-18: comment_updated_at → was_last_updated_at + Timestamp (Rule 53/56) - is_or_was_last_updated_at: + last_updated_at: range: Timestamp inlined: true required: false examples: - value: - has_or_had_timestamp: "2025-01-15T10:30:00Z" - has_or_had_level: second - # MIGRATED 2026-01-22: comment_like_count → is_or_was_appreciated + AppreciationEvent (Rule 53) - is_or_was_appreciated: + has_timestamp: "2025-01-15T10:30:00Z" + has_level: second + # MIGRATED 2026-01-22: comment_like_count → appreciated + AppreciationEvent (Rule 53) + appreciated: range: AppreciationEvent inlined: true inlined_as_list: true @@ -361,12 +361,12 @@ classes: examples: - value: - value: - has_or_had_quantity: + has_quantity: numeric_value: 100 - has_or_had_unit: + has_unit: unit_label: "likes" - # MIGRATED 2026-01-22: comment_reply_count → has_or_had_reply + CommentReply (Rule 53) - has_or_had_reply: + # MIGRATED 2026-01-22: comment_reply_count → has_reply + CommentReply (Rule 53) + has_reply: range: CommentReply inlined: true inlined_as_list: true @@ -375,7 +375,7 @@ classes: - value: - value: - value: - has_or_had_quantity: + has_quantity: numeric_value: 12 - has_or_had_unit: + has_unit: unit_label: "replies" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/VideoSubtitle.yaml b/schemas/20251121/linkml/modules/classes/VideoSubtitle.yaml index c2e250f332..f1a9a071ee 100644 --- a/schemas/20251121/linkml/modules/classes/VideoSubtitle.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoSubtitle.yaml @@ -5,22 +5,22 @@ imports: - linkml:types - ../enums/SubtitleFormatEnum - ../enums/SubtitlePositionEnum - - ../slots/has_or_had_alignment - - ../slots/has_or_had_caption - - ../slots/has_or_had_format - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_mean - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/has_or_had_segment - - ../slots/has_or_had_unit + - ../slots/20260202_matang/has_alignment + - ../slots/20260202_matang/has_caption + - ../slots/20260202_matang/has_format + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_mean + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_segment + - ../slots/20260202_matang/has_unit - ../slots/includes_music_description - ../slots/includes_sound_description - ../slots/includes_speaker_identification - ../slots/includes_timestamp - ../slots/is_closed_caption - - ../slots/is_or_was_created_through + - ../slots/20260202_matang/created_through - ../slots/is_sdh - ../slots/raw_subtitle_content prefixes: @@ -41,38 +41,38 @@ classes: is_a: VideoTranscript class_uri: hc:VideoSubtitle abstract: false - description: "Time-coded caption/subtitle content for video.\n\n**DEFINITION**:\n\nVideoSubtitle represents caption/subtitle tracks that provide time-coded\ntext synchronized with video playback. It extends VideoTranscript because\nsubtitles contain complete transcription PLUS temporal synchronization.\n\n**INHERITANCE FROM VideoTranscript**:\n\nVideoSubtitle inherits all transcript capabilities:\n- `full_text`: Complete subtitle text concatenated\n- `segments`: Time-coded entries (REQUIRED for subtitles)\n- `includes_timestamps`: Always true for subtitles\n- `content_language`: Language of subtitle text\n- All provenance from VideoTextContent\n\nAnd adds subtitle-specific properties:\n- `has_or_had_format`: SRT, VTT, TTML, SBV, ASS\n- `is_closed_caption`: CC vs regular subtitles\n- `is_sdh`: Subtitles for Deaf/Hard-of-Hearing\n- `includes_sound_descriptions`: Non-speech audio descriptions\n\n**SCHEMA.ORG ALIGNMENT**:\n\nMaps to `schema:caption` property:\n> \"For downloadable machine\ + description: "Time-coded caption/subtitle content for video.\n\n**DEFINITION**:\n\nVideoSubtitle represents caption/subtitle tracks that provide time-coded\ntext synchronized with video playback. It extends VideoTranscript because\nsubtitles contain complete transcription PLUS temporal synchronization.\n\n**INHERITANCE FROM VideoTranscript**:\n\nVideoSubtitle inherits all transcript capabilities:\n- `full_text`: Complete subtitle text concatenated\n- `segments`: Time-coded entries (REQUIRED for subtitles)\n- `includes_timestamps`: Always true for subtitles\n- `content_language`: Language of subtitle text\n- All provenance from VideoTextContent\n\nAnd adds subtitle-specific properties:\n- `has_format`: SRT, VTT, TTML, SBV, ASS\n- `is_closed_caption`: CC vs regular subtitles\n- `is_sdh`: Subtitles for Deaf/Hard-of-Hearing\n- `includes_sound_descriptions`: Non-speech audio descriptions\n\n**SCHEMA.ORG ALIGNMENT**:\n\nMaps to `schema:caption` property:\n> \"For downloadable machine\ \ formats (closed caption, subtitles etc.)\n> use the MediaObject.encodingFormat property.\"\n\n**SUBTITLE vs CAPTION vs TRANSCRIPT**:\n\n| Type | Time-coded | Purpose | Audience |\n|------|------------|---------|----------|\n| Transcript | Optional | Reading, search | Everyone |\n| Subtitle | Required | Language translation | Hearing viewers |\n| Caption (CC) | Required | Accessibility | Deaf/HoH viewers |\n| SDH | Required | Full accessibility | Deaf viewers, noisy environments |\n\n**SDH (Subtitles for Deaf/Hard-of-Hearing)**:\n\nSDH differs from regular subtitles by including:\n- Speaker identification: \"(John) Hello\"\n- Sound effects: \"[door slams]\", \"[music playing]\"\n- Music descriptions: \"\u266A upbeat jazz \u266A\"\n- Emotional cues: \"[laughing]\", \"[whispering]\"\n\n**SUBTITLE FORMATS**:\n\n| Format | Extension | Features | Use Case |\n|--------|-----------|----------|----------|\n| SRT | .srt | Simple, universal | Most video players |\n| VTT | .vtt | W3C standard,\ \ styling | HTML5 video, web |\n| TTML | .ttml/.dfxp | XML, rich styling | Broadcast, streaming |\n| SBV | .sbv | YouTube native | YouTube uploads |\n| ASS | .ass | Advanced styling | Anime, complex layouts |\n\n**SRT FORMAT EXAMPLE**:\n\n```\n1\n00:00:00,000 --> 00:00:03,500\nWelcome to the Rijksmuseum.\n\n2\n00:00:03,500 --> 00:00:08,200\nToday we'll explore the Night Watch gallery.\n```\n\n**VTT FORMAT EXAMPLE**:\n\n```\nWEBVTT\n\n00:00:00.000 --> 00:00:03.500\nWelcome to the Rijksmuseum.\n\n00:00:03.500 --> 00:00:08.200\nToday we'll explore the Night Watch gallery.\n```\n\n**HERITAGE INSTITUTION CONTEXT**:\n\nSubtitles are critical for heritage video accessibility:\n\n1. **Accessibility Compliance**: WCAG 2.1, Section 508\n2. **Multilingual Access**: Translate for international audiences\n3. **Silent Viewing**: Social media, public displays, quiet spaces\n4. **Search Discovery**: Subtitle text is indexed by platforms\n5. **Preservation**: Text outlasts video format obsolescence\n\ - \n**YOUTUBE API INTEGRATION**:\n\nSubtitle tracks from YouTube API populate:\n- `has_or_had_format`: Typically VTT or SRT\n- `generation_method`: PLATFORM_PROVIDED or ASR_AUTOMATIC\n- `content_language`: From track language code\n- `is_or_was_created_through`: YouTube auto-caption flag\n\n**SEGMENTS ARE REQUIRED**:\n\nUnlike VideoTranscript where segments are optional, VideoSubtitle\nREQUIRES the `segments` slot to be populated with VideoTimeSegment\nentries that include start_seconds, end_seconds, and segment_text.\n" + \n**YOUTUBE API INTEGRATION**:\n\nSubtitle tracks from YouTube API populate:\n- `has_format`: Typically VTT or SRT\n- `generation_method`: PLATFORM_PROVIDED or ASR_AUTOMATIC\n- `content_language`: From track language code\n- `created_through`: YouTube auto-caption flag\n\n**SEGMENTS ARE REQUIRED**:\n\nUnlike VideoTranscript where segments are optional, VideoSubtitle\nREQUIRES the `segments` slot to be populated with VideoTimeSegment\nentries that include start_seconds, end_seconds, and segment_text.\n" close_mappings: - schema:caption - ma:CaptioningFormat related_mappings: - schema:transcript slots: - - has_or_had_mean - - has_or_had_unit - - has_or_had_caption - - has_or_had_alignment - - has_or_had_quantity + - has_mean + - has_unit + - has_caption + - has_alignment + - has_quantity - includes_music_description - includes_sound_description - includes_speaker_identification - - is_or_was_created_through + - created_through - is_closed_caption - is_sdh - raw_subtitle_content - - has_or_had_format - - has_or_had_score - - has_or_had_identifier - - has_or_had_label + - has_format + - has_score + - identified_by + - has_label slot_usage: - has_or_had_segment: + has_segment: required: true includes_timestamp: ifabsent: 'true' - has_or_had_format: + has_format: range: SubtitleFormatEnum required: true examples: @@ -120,48 +120,48 @@ classes: ifabsent: 'false' examples: - value: true - is_or_was_created_through: + created_through: range: boolean required: false ifabsent: 'false' examples: - value: true - has_or_had_label: + has_label: # range: string required: false - deprecated: Use has_or_had_identifier with TrackIdentifier range instead + deprecated: Use identified_by with TrackIdentifier range instead examples: - value: English (auto-generated) - has_or_had_identifier: + identified_by: range: TrackIdentifier required: false inlined: true examples: - - value: '{"platform": "YouTube", "has_or_had_code": "en.3OWxR1w4QfE"}' - has_or_had_caption: + - value: '{"platform": "YouTube", "has_code": "en.3OWxR1w4QfE"}' + has_caption: range: Caption inlined: true required: false - has_or_had_alignment: + has_alignment: range: Alignment inlined: true required: false - has_or_had_quantity: + has_quantity: range: integer required: false inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_unit: - has_or_had_label: entries - has_or_had_mean: + has_unit: + has_label: entries + has_mean: range: MeanValue inlined: true examples: - value: - has_or_had_value: 3.2 - has_or_had_unit: - has_or_had_label: seconds + has_value: 3.2 + has_unit: + has_label: seconds comments: - Time-coded caption/subtitle content - Extends VideoTranscript - subtitles ARE transcripts plus time codes diff --git a/schemas/20251121/linkml/modules/classes/VideoTextContent.yaml b/schemas/20251121/linkml/modules/classes/VideoTextContent.yaml index 68d7a6fd56..4f580ec8c1 100644 --- a/schemas/20251121/linkml/modules/classes/VideoTextContent.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoTextContent.yaml @@ -5,11 +5,11 @@ imports: - linkml:types - ../enums/GenerationMethodEnum - ../slots/content_title - - ../slots/has_or_had_language - - ../slots/has_or_had_quantity - - ../slots/has_or_had_score - - ../slots/is_or_was_generated_by - - ../slots/is_or_was_verified_by + - ../slots/20260202_matang/has_language + - ../slots/20260202_matang/has_quantity + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/generated_by + - ../slots/20260202_matang/verified_by - ../slots/is_verified - ../slots/model_provider - ../slots/model_version @@ -43,9 +43,9 @@ classes: - schema:CreativeWork - dcterms:Text slots: - - has_or_had_language + - has_language - content_title - - is_or_was_generated_by + - generated_by - temporal_extent - is_verified - model_provider @@ -54,9 +54,9 @@ classes: - processing_duration_seconds - source_video - source_video_url - - has_or_had_score - - is_or_was_verified_by - - has_or_had_quantity + - has_score + - verified_by + - has_quantity slot_usage: source_video: # range: string @@ -68,7 +68,7 @@ classes: required: false examples: - value: https://www.youtube.com/watch?v=FbIoC-Owy-M - has_or_had_language: + has_language: # range: string required: true inlined: false # Fixed invalid inline for primitive type @@ -85,19 +85,19 @@ classes: - value: De Vrijheidsroute Ep.3 - Dutch Transcript - value: YouTube Auto-captions - value: manual:curator@rijksmuseum.nl - is_or_was_generated_by: + generated_by: range: GenerationEvent required: true inlined: true examples: - value: - has_or_had_methodology: + has_methodology: methodology_type: ASR_AUTOMATIC - has_or_had_label: Automatic Speech Recognition + has_label: Automatic Speech Recognition - value: - has_or_had_methodology: + has_methodology: methodology_type: MANUAL_TRANSCRIPTION - has_or_had_label: Manual Transcription + has_label: Manual Transcription temporal_extent: range: TimeSpan inlined: true @@ -130,20 +130,20 @@ classes: ifabsent: 'false' examples: - value: true - is_or_was_verified_by: + verified_by: range: Verifier required: false inlined: true examples: - value: - has_or_had_name: curator@rijksmuseum.nl + has_name: curator@rijksmuseum.nl processing_duration_seconds: range: float required: false minimum_value: 0.0 examples: - value: 45.3 - has_or_had_quantity: + has_quantity: range: integer required: false multivalued: true @@ -152,15 +152,15 @@ classes: examples: - value: - quantity_value: 1523 - has_or_had_measurement_unit: - has_or_had_type: WORD - has_or_had_symbol: words - has_or_had_description: Word count in transcript + has_measurement_unit: + has_type: WORD + has_symbol: words + has_description: Word count in transcript - quantity_value: 8742 - has_or_had_measurement_unit: - has_or_had_type: CHARACTER - has_or_had_symbol: chars - has_or_had_description: Character count including spaces + has_measurement_unit: + has_type: CHARACTER + has_symbol: chars + has_description: Character count including spaces comments: - Abstract base for all video-derived text content - Comprehensive PROV-O provenance tracking diff --git a/schemas/20251121/linkml/modules/classes/VideoTimeSegment.yaml b/schemas/20251121/linkml/modules/classes/VideoTimeSegment.yaml index 33f0bdde8b..7b2502ad4f 100644 --- a/schemas/20251121/linkml/modules/classes/VideoTimeSegment.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoTimeSegment.yaml @@ -3,9 +3,9 @@ name: video_time_segment_class title: Video Time Segment Class imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_time_interval - - ../slots/is_or_was_generated_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_time_interval + - ../slots/20260202_matang/generated_by - ../slots/segment_index - ../slots/segment_text - ../slots/speaker_id @@ -143,17 +143,17 @@ classes: related_mappings: - schema:Clip slots: - - has_or_had_time_interval + - has_time_interval - segment_index - segment_text - speaker_id - speaker_label - - has_or_had_score - - is_or_was_generated_by + - has_score + - generated_by - start_time - start_seconds slot_usage: - has_or_had_time_interval: + has_time_interval: range: TimeInterval required: true inlined: true @@ -172,7 +172,7 @@ classes: examples: - value: 0 - value: 42 - is_or_was_generated_by: + generated_by: range: GenerationEvent required: false inlined: true @@ -181,13 +181,13 @@ classes: pattern.' examples: - value: - has_or_had_score: - has_or_had_score: 0.95 - has_or_had_method: asr_transcription + has_score: + has_score: 0.95 + has_method: asr_transcription - value: - has_or_had_score: - has_or_had_score: 0.72 - has_or_had_method: cv_detection + has_score: + has_score: 0.72 + has_method: cv_detection speaker_id: # range: string required: false @@ -207,7 +207,7 @@ classes: - Aligns with W3C Media Fragments URI specification - Confidence scoring for AI-generated content - Speaker diarization support for multi-speaker transcripts - - 'MIGRATED 2026-01-19: confidence → is_or_was_generated_by + ConfidenceScore' + - 'MIGRATED 2026-01-19: confidence → generated_by + ConfidenceScore' see_also: - https://www.w3.org/TR/media-frags/ - https://www.w3.org/TR/annotation-model/ diff --git a/schemas/20251121/linkml/modules/classes/VideoTranscript.yaml b/schemas/20251121/linkml/modules/classes/VideoTranscript.yaml index b5bb04492e..8d4ddd372a 100644 --- a/schemas/20251121/linkml/modules/classes/VideoTranscript.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoTranscript.yaml @@ -4,10 +4,10 @@ title: Video Transcript Class imports: - linkml:types - ../enums/TranscriptFormatEnum - - ../slots/contains_or_contained - - ../slots/has_or_had_format - - ../slots/has_or_had_score - - ../slots/has_or_had_segment + - ../slots/20260202_matang/contain + - ../slots/20260202_matang/has_format + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_segment - ../slots/includes_speaker - ../slots/includes_timestamp - ../slots/paragraph_count @@ -40,19 +40,19 @@ classes: related_mappings: - dcterms:Text slots: - - contains_or_contained + - contain - includes_speaker - includes_timestamp - paragraph_count - primary_speaker - - has_or_had_segment + - has_segment - sentence_count - source_language_auto_detected - speaker_count - - has_or_had_score - - has_or_had_format + - has_score + - has_format slot_usage: - contains_or_contained: + contain: # range: string required: true examples: @@ -70,7 +70,7 @@ classes: [Curator] Our first stop is the Night Watch by Rembrandt van Rijn. ' - has_or_had_format: + has_format: range: TranscriptFormatEnum required: false examples: @@ -87,7 +87,7 @@ classes: ifabsent: 'false' examples: - value: true - has_or_had_segment: + has_segment: range: VideoTimeSegment required: false multivalued: true diff --git a/schemas/20251121/linkml/modules/classes/VisitingScholar.yaml b/schemas/20251121/linkml/modules/classes/VisitingScholar.yaml index 19f84c54bb..dff94b0a47 100644 --- a/schemas/20251121/linkml/modules/classes/VisitingScholar.yaml +++ b/schemas/20251121/linkml/modules/classes/VisitingScholar.yaml @@ -26,7 +26,7 @@ classes: **PROGRAM TYPES**: - Short-term research visits - Fellowship programs - Residencies - Affiliated researcher positions - Used with `accepts_or_accepted` slot to indicate researcher access programs.' + Used with `accept` slot to indicate researcher access programs.' class_uri: schema:ResearchProject close_mappings: - schema:ScholarlyArticle diff --git a/schemas/20251121/linkml/modules/classes/WKT.yaml b/schemas/20251121/linkml/modules/classes/WKT.yaml index fd2948eb9e..a19754539f 100644 --- a/schemas/20251121/linkml/modules/classes/WKT.yaml +++ b/schemas/20251121/linkml/modules/classes/WKT.yaml @@ -15,8 +15,8 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_value + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_value classes: WKT: class_uri: hc:WKT @@ -24,8 +24,8 @@ classes: - geosparql:wktLiteral description: A WKT literal wrapper. slots: - - has_or_had_value - - has_or_had_label + - has_value + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class. diff --git a/schemas/20251121/linkml/modules/classes/Warehouse.yaml b/schemas/20251121/linkml/modules/classes/Warehouse.yaml index c3ec4c4945..d1b8059081 100644 --- a/schemas/20251121/linkml/modules/classes/Warehouse.yaml +++ b/schemas/20251121/linkml/modules/classes/Warehouse.yaml @@ -5,16 +5,16 @@ imports: - linkml:types - ../enums/WarehouseTypeEnum - ../slots/contents_description - - ../slots/has_or_had_area - - ../slots/has_or_had_description - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_policy - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by - - ../slots/is_or_was_managed_by + - ../slots/20260202_matang/in_area + - ../slots/20260202_matang/has_description + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_policy + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by + - ../slots/20260202_matang/managed_by - ../slots/regulates_or_regulated prefixes: linkml: https://w3id.org/linkml/ @@ -43,37 +43,37 @@ classes: - hc:Storage - schema:LocalBusiness slots: - - has_or_had_policy + - has_policy - contents_description - - has_or_had_score - - has_or_had_description - - has_or_had_area - - has_or_had_identifier - - is_or_was_managed_by - - has_or_had_label - - has_or_had_type - - is_or_was_derived_from - - is_or_was_generated_by + - has_score + - has_description + - in_area + - identified_by + - managed_by + - has_label + - has_type + - derived_from + - generated_by slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/aux/rm-logistics-warehouse - has_or_had_label: + has_label: # range: string required: true multivalued: false examples: - value: Rijksmuseum Logistics Warehouse - value: KB Operations Warehouse Leiden - has_or_had_description: + has_description: examples: - value: description_text: Logistics warehouse for exhibition equipment, packing materials, and furniture. Facilities team access only. description_type: warehouse - has_or_had_type: + has_type: # range: string # uriorcurie required: true examples: @@ -83,47 +83,47 @@ classes: # range: string examples: - value: Exhibition cases, lighting rigs, pedestals, crates, packing foam - has_or_had_area: + in_area: range: Area inlined: true inlined_as_list: true examples: - value: area_value: 500.0 - has_or_had_unit: - has_or_had_type: SQUARE_METER - has_or_had_symbol: "m\xB2" - has_or_had_label: Warehouse floor area + has_unit: + has_type: SQUARE_METER + has_symbol: "m\xB2" + has_label: Warehouse floor area - value: false - has_or_had_policy: + has_policy: # range: string - description: "Climate control policy governing this warehouse.\nMIGRATED from climate_control_type per slot_fixes.yaml (Rule 53).\n\n**MIGRATION NOTE**:\nOld simple string values (HEATED, HVAC, etc.) now modeled as:\nClimateControlPolicy \u2192 regulates_or_regulated \u2192 ClimateControl \u2192 has_or_had_type \u2192 ClimateControlType\n" + description: "Climate control policy governing this warehouse.\nMIGRATED from climate_control_type per slot_fixes.yaml (Rule 53).\n\n**MIGRATION NOTE**:\nOld simple string values (HEATED, HVAC, etc.) now modeled as:\nClimateControlPolicy \u2192 regulates_or_regulated \u2192 ClimateControl \u2192 has_type \u2192 ClimateControlType\n" inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_label: Warehouse Basic Climate Requirements + has_label: Warehouse Basic Climate Requirements regulates_or_regulated: - - has_or_had_label: Warehouse Heating - has_or_had_type: HEATED + - has_label: Warehouse Heating + has_type: HEATED - value: - has_or_had_label: Full HVAC Requirements + has_label: Full HVAC Requirements regulates_or_regulated: - - has_or_had_label: Central HVAC System - has_or_had_type: HVAC + - has_label: Central HVAC System + has_type: HVAC - value: - has_or_had_code: STANDARD + has_code: STANDARD - value: Operations team badge required - is_or_was_managed_by: + managed_by: range: Group inlined: true examples: - value: - value: - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true required: false - is_or_was_generated_by: + generated_by: range: ReconstructionActivity required: false comments: @@ -132,44 +132,44 @@ classes: - 'CRITICAL: Distinguished from Storage class (which is for collection materials)' - Warehouse = non-collection items (equipment, supplies, furniture) - Storage = collection materials (climate-controlled, high security) - - "MIGRATION (2026-01-19): climate_control_type \u2192 has_or_had_policy + ClimateControlPolicy per Rule 53" + - "MIGRATION (2026-01-19): climate_control_type \u2192 has_policy + ClimateControlPolicy per Rule 53" see_also: - http://vocab.getty.edu/aat/300007775 - https://schema.org/Warehouse examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/rm-logistics-warehouse - has_or_had_label: Rijksmuseum Logistics Warehouse - has_or_had_description: + identified_by: https://nde.nl/ontology/hc/aux/rm-logistics-warehouse + has_label: Rijksmuseum Logistics Warehouse + has_description: description_text: Logistics warehouse for exhibition equipment and packing materials. Used by exhibition services team. description_type: warehouse - has_or_had_type: EXHIBITION_EQUIPMENT + has_type: EXHIBITION_EQUIPMENT contents_description: Exhibition cases, lighting rigs, pedestals, crates, packing foam, display furniture - has_or_had_area: + in_area: area_value: 800.0 - has_or_had_unit: - has_or_had_type: SQUARE_METER - has_or_had_symbol: "m\xB2" - has_or_had_policy: - has_or_had_label: Warehouse Basic Climate Requirements + has_unit: + has_type: SQUARE_METER + has_symbol: "m\xB2" + has_policy: + has_label: Warehouse Basic Climate Requirements regulates_or_regulated: - - has_or_had_label: Logistics Warehouse Heating - has_or_had_type: HEATED - is_or_was_managed_by: + - has_label: Logistics Warehouse Heating + has_type: HEATED + managed_by: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/aux/na-supplies-warehouse - has_or_had_label: Nationaal Archief Supplies Warehouse - has_or_had_description: + identified_by: https://nde.nl/ontology/hc/aux/na-supplies-warehouse + has_label: Nationaal Archief Supplies Warehouse + has_description: description_text: General supplies warehouse for archival boxes, office furniture, and operational materials. description_type: warehouse - has_or_had_type: GENERAL_SUPPLIES + has_type: GENERAL_SUPPLIES contents_description: Empty archival boxes, office furniture, cleaning supplies, signage - has_or_had_area: + in_area: area_value: 300.0 - has_or_had_unit: - has_or_had_type: SQUARE_METER - has_or_had_symbol: "m\xB2" - is_or_was_managed_by: + has_unit: + has_type: SQUARE_METER + has_symbol: "m\xB2" + managed_by: annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/WarehouseType.yaml b/schemas/20251121/linkml/modules/classes/WarehouseType.yaml index 854fbcd783..c28d25705c 100644 --- a/schemas/20251121/linkml/modules/classes/WarehouseType.yaml +++ b/schemas/20251121/linkml/modules/classes/WarehouseType.yaml @@ -16,14 +16,14 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code - - ../slots/has_or_had_description - - ../slots/has_or_had_hypernym - - ../slots/has_or_had_hyponym - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_score - - ../slots/is_or_was_equivalent_to + - ../slots/20260202_matang/has_code + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_hypernym + - ../slots/20260202_matang/has_hyponym + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/equivalent_to classes: WarehouseType: class_uri: skos:Concept @@ -39,16 +39,16 @@ classes: - crm:E27_Site - schema:Place slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_description - - has_or_had_code - - has_or_had_hypernym - - has_or_had_hyponym - - is_or_was_equivalent_to - - has_or_had_score + - identified_by + - has_label + - has_description + - has_code + - has_hypernym + - has_hyponym + - equivalent_to + - has_score slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie required: true identifier: true @@ -56,7 +56,7 @@ classes: examples: - value: https://nde.nl/ontology/hc/warehouse-type/central-depot - value: https://nde.nl/ontology/hc/warehouse-type/offsite-depot - has_or_had_code: + has_code: # range: string required: true pattern: ^[A-Z][A-Z0-9_]*$ @@ -65,7 +65,7 @@ classes: - value: OFFSITE_DEPOT - value: COLD_STORAGE_FACILITY - value: HIGH_SECURITY_VAULT - has_or_had_label: + has_label: # range: string required: true multivalued: true @@ -76,12 +76,12 @@ classes: - value: - Offsite Storage@en - externe opslag@nl - has_or_had_description: + has_description: # range: string required: false examples: - value: Primary storage facility located at main institutional site - is_or_was_equivalent_to: + equivalent_to: range: WikiDataIdentifier multivalued: true inlined: true @@ -89,24 +89,24 @@ classes: examples: - value: - qid: Q1191732 - has_or_had_hypernym: + has_hypernym: range: WarehouseType required: false - has_or_had_hyponym: + has_hyponym: range: WarehouseType multivalued: true required: false annotations: specificity_score: '0.55' specificity_rationale: Moderately specific - warehouse types are infrastructure-related metadata. - has_or_had_score: null + has_score: null replaces_slot: warehouse_type migration_date: '2026-01-13' custodian_types: "['*']" comments: - Abstract base class - use specific subclasses (CentralDepot, etc.) - Represents WAREHOUSE TYPES, not warehouse instances - - Warehouse.has_or_had_type references these type classes + - Warehouse.has_type references these type classes - Follows Type/Types naming convention (Rule 0b) - Aligned with PREMIS storage location concepts see_also: @@ -114,9 +114,9 @@ classes: - http://www.cidoc-crm.org/cidoc-crm/E27_Site examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/warehouse-type/central-depot - has_or_had_code: CENTRAL_DEPOT - has_or_had_label: + identified_by: https://nde.nl/ontology/hc/warehouse-type/central-depot + has_code: CENTRAL_DEPOT + has_label: - Central Depot@en - hoofddepot@nl - has_or_had_description: Primary storage facility at main institutional site \ No newline at end of file + has_description: Primary storage facility at main institutional site \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/WarehouseTypes.yaml b/schemas/20251121/linkml/modules/classes/WarehouseTypes.yaml index ad2fa1616f..29d08ee999 100644 --- a/schemas/20251121/linkml/modules/classes/WarehouseTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/WarehouseTypes.yaml @@ -9,7 +9,7 @@ default_prefix: hc imports: - ./WarehouseType - linkml:types - - ../slots/has_or_had_code + - ../slots/20260202_matang/has_code classes: CentralDepot: is_a: WarehouseType @@ -36,7 +36,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: CENTRAL_DEPOT annotations: specificity_score: '0.60' @@ -74,7 +74,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: OFFSITE_DEPOT annotations: specificity_score: '0.60' @@ -109,7 +109,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: SATELLITE_DEPOT annotations: specificity_score: '0.60' @@ -146,7 +146,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: STUDY_STORAGE annotations: specificity_score: '0.65' @@ -181,7 +181,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: QUARANTINE_DEPOT annotations: specificity_score: '0.70' @@ -216,7 +216,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: TRANSIT_STORAGE annotations: specificity_score: '0.60' @@ -251,7 +251,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: COLD_STORAGE_FACILITY annotations: specificity_score: '0.70' @@ -286,7 +286,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: HIGH_SECURITY_VAULT annotations: specificity_score: '0.75' @@ -321,7 +321,7 @@ classes: ' slot_usage: - has_or_had_code: + has_code: equals_string: OPEN_STORAGE annotations: specificity_score: '0.65' diff --git a/schemas/20251121/linkml/modules/classes/WebArchive.yaml b/schemas/20251121/linkml/modules/classes/WebArchive.yaml index 0abff0872c..deb431be41 100644 --- a/schemas/20251121/linkml/modules/classes/WebArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/WebArchive.yaml @@ -10,12 +10,12 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/related_to - ../slots/platform_type_id classes: WebArchive: @@ -26,12 +26,12 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier - - has_or_had_scope + - has_score + - related_to + - identified_by + - has_scope exact_mappings: - wd:Q30047053 close_mappings: @@ -44,9 +44,9 @@ classes: slot_usage: platform_type_id: identifier: false - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: diff --git a/schemas/20251121/linkml/modules/classes/WebArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/WebArchiveRecordSetType.yaml index f6d563f8f6..7a4ca27fc4 100644 --- a/schemas/20251121/linkml/modules/classes/WebArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/WebArchiveRecordSetType.yaml @@ -9,8 +9,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to classes: WebArchiveRecordSetType: description: A rico:RecordSetType for classifying collections of preserved web pages and archived online content. @@ -19,14 +19,14 @@ classes: exact_mappings: - wd:Q30047053 slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: - WebArchive slots: - - has_or_had_score - - is_or_was_related_to + - has_score + - related_to annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/WebArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/WebArchiveRecordSetTypes.yaml index 79d37418e8..5683516fdc 100644 --- a/schemas/20251121/linkml/modules/classes/WebArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/WebArchiveRecordSetTypes.yaml @@ -13,8 +13,8 @@ default_prefix: hc imports: - ./WebArchiveRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -37,15 +37,15 @@ classes: - WebArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: WebCaptureCollection @@ -78,15 +78,15 @@ classes: - WebArchiveRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: SocialMediaCollection diff --git a/schemas/20251121/linkml/modules/classes/WebClaim.yaml b/schemas/20251121/linkml/modules/classes/WebClaim.yaml index 38158de37b..2330d41d26 100644 --- a/schemas/20251121/linkml/modules/classes/WebClaim.yaml +++ b/schemas/20251121/linkml/modules/classes/WebClaim.yaml @@ -18,15 +18,15 @@ prefixes: imports: - linkml:types - ../enums/ExtractionPipelineStageEnum - - ../slots/has_or_had_content - - ../slots/has_or_had_file_path - - ../slots/has_or_had_identifier - - ../slots/has_or_had_note - - ../slots/has_or_had_provenance_path - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_extracted_using - - ../slots/is_or_was_retrieved_through + - ../slots/20260202_matang/has_content + - ../slots/20260202_matang/has_file_path + - ../slots/identified_by + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_provenance_path + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/extracted_using + - ../slots/20260202_matang/retrieved_through - ../slots/pipeline_stage - ../slots/retrieved_on - ../slots/source_url @@ -36,45 +36,45 @@ classes: WebClaim: is_a: Claim class_uri: prov:Entity - description: "A single verifiable claim extracted from a web page.\n\n**CORE PRINCIPLE: XPATH OR REMOVE**\n\nEvery claim extracted from a webpage MUST have:\n1. `has_or_had_provenance_path` - XPath object pointing to exact element in archived HTML\n2. `html_file` - path to the archived HTML (Playwright-rendered, NOT WARC)\n\nThe XPath object contains:\n- `expression` - the XPath string\n- `match_score` - quality of match (0.0-1.0)\n- `matched_text` - actual text found (for verification)\n\nClaims without these fields are FABRICATED and must be REMOVED.\n\n**ARCHIVE FORMAT: PLAYWRIGHT-RENDERED HTML**\n\nWe use Playwright (headless browser) to:\n1. Navigate to the target URL\n2. Wait for JavaScript to fully render\n3. Save the complete DOM as an HTML file\n\nThis differs from WARC archives which capture raw HTTP responses.\nPlaywright rendering captures the final DOM state including:\n- JavaScript-rendered content\n- Dynamically loaded elements\n- Client-side state\n\n**WHY NOT CONFIDENCE\ + description: "A single verifiable claim extracted from a web page.\n\n**CORE PRINCIPLE: XPATH OR REMOVE**\n\nEvery claim extracted from a webpage MUST have:\n1. `has_provenance_path` - XPath object pointing to exact element in archived HTML\n2. `html_file` - path to the archived HTML (Playwright-rendered, NOT WARC)\n\nThe XPath object contains:\n- `expression` - the XPath string\n- `match_score` - quality of match (0.0-1.0)\n- `matched_text` - actual text found (for verification)\n\nClaims without these fields are FABRICATED and must be REMOVED.\n\n**ARCHIVE FORMAT: PLAYWRIGHT-RENDERED HTML**\n\nWe use Playwright (headless browser) to:\n1. Navigate to the target URL\n2. Wait for JavaScript to fully render\n3. Save the complete DOM as an HTML file\n\nThis differs from WARC archives which capture raw HTTP responses.\nPlaywright rendering captures the final DOM state including:\n- JavaScript-rendered content\n- Dynamically loaded elements\n- Client-side state\n\n**WHY NOT CONFIDENCE\ \ SCORES?**\n\nConfidence scores like `0.95` are MEANINGLESS because:\n- There is NO methodology defining what these numbers mean\n- They cannot be verified or reproduced\n- They give false impression of rigor\n- They mask the fact that claims may be fabricated\n\nInstead, we use VERIFIABLE provenance:\n- XPath points to exact location\n- Archived HTML can be inspected\n- Match score is computed, not estimated\n\n**EXTRACTION PIPELINE (4 Stages)**\n\nFollowing the GLAM-NER Unified Entity Annotation Convention v1.7.0:\n\n1. **Entity Recognition** (Stage 1)\n - Detect named entities in text\n - Classify by hypernym type (AGT, GRP, TOP, TMP, etc.)\n - Methods: spaCy NER, transformer models, regex patterns\n\n2. **Layout Analysis** (Stage 2)\n - Analyze document structure (headers, paragraphs, tables)\n - Assign DOC hypernym types (DOC.HDR, DOC.PAR, DOC.TBL)\n - Generate XPath provenance for each claim location\n\n3. **Entity Resolution** (Stage 3)\n - Disambiguate entity\ - \ mentions\n - Merge coreferences and name variants\n - Produce canonical entity clusters\n\n4. **Entity Linking** (Stage 4)\n - Link resolved entities to knowledge bases\n - Connect to Wikidata, ISIL, GeoNames, etc.\n - Assign link confidence scores\n\n**WORKFLOW**:\n\n1. Archive website using Playwright:\n `python scripts/fetch_website_playwright.py <entry_number> <url>`\n \n This saves: web/{entry_number}/{domain}/rendered.html\n\n2. Add XPath provenance to claims:\n `python scripts/add_xpath_provenance.py`\n\n3. Script REMOVES claims that cannot be verified\n (stores in `removed_unverified_claims` for audit)\n\n**EXAMPLES**:\n\nCORRECT (Verifiable):\n```yaml\n- claim_type: full_name\n has_or_had_content:\n has_or_had_label: Historische Vereniging Nijeveen\n source_url: https://historischeverenigingnijeveen.nl/\n retrieved_on: \"2025-11-29T12:28:00Z\"\n has_or_had_provenance_path:\n expression: /html[1]/body[1]/div[6]/div[1]/h1[1]\n match_score:\ - \ 1.0\n html_file: web/0021/historischeverenigingnijeveen.nl/rendered.html\n pipeline_stage: layout_analysis\n```\n\nWRONG (Fabricated - Must Be Removed):\n```yaml\n- claim_type: full_name\n has_or_had_content:\n has_or_had_label: Historische Vereniging Nijeveen\n confidence: 0.95 # \u2190 NO! This is meaningless without XPath\n```\n\n**MIGRATION NOTE (2026-01-15)**:\nConsolidated xpath, xpath_match_score, xpath_matched_text\ninto has_or_had_provenance_path with XPath class.\n\n**MIGRATION NOTE (2026-01-18)**:\nMigrated claim_value to has_or_had_content with Content class per Rule 53/56.\n" + \ mentions\n - Merge coreferences and name variants\n - Produce canonical entity clusters\n\n4. **Entity Linking** (Stage 4)\n - Link resolved entities to knowledge bases\n - Connect to Wikidata, ISIL, GeoNames, etc.\n - Assign link confidence scores\n\n**WORKFLOW**:\n\n1. Archive website using Playwright:\n `python scripts/fetch_website_playwright.py <entry_number> <url>`\n \n This saves: web/{entry_number}/{domain}/rendered.html\n\n2. Add XPath provenance to claims:\n `python scripts/add_xpath_provenance.py`\n\n3. Script REMOVES claims that cannot be verified\n (stores in `removed_unverified_claims` for audit)\n\n**EXAMPLES**:\n\nCORRECT (Verifiable):\n```yaml\n- claim_type: full_name\n has_content:\n has_label: Historische Vereniging Nijeveen\n source_url: https://historischeverenigingnijeveen.nl/\n retrieved_on: \"2025-11-29T12:28:00Z\"\n has_provenance_path:\n expression: /html[1]/body[1]/div[6]/div[1]/h1[1]\n match_score:\ + \ 1.0\n html_file: web/0021/historischeverenigingnijeveen.nl/rendered.html\n pipeline_stage: layout_analysis\n```\n\nWRONG (Fabricated - Must Be Removed):\n```yaml\n- claim_type: full_name\n has_content:\n has_label: Historische Vereniging Nijeveen\n confidence: 0.95 # \u2190 NO! This is meaningless without XPath\n```\n\n**MIGRATION NOTE (2026-01-15)**:\nConsolidated xpath, xpath_match_score, xpath_matched_text\ninto has_provenance_path with XPath class.\n\n**MIGRATION NOTE (2026-01-18)**:\nMigrated claim_value to has_content with Content class per Rule 53/56.\n" broad_mappings: - prov:Entity close_mappings: - schema:PropertyValue - oa:Annotation slots: - - is_or_was_extracted_using - - has_or_had_identifier - - has_or_had_note - - has_or_had_type - - has_or_had_content - - is_or_was_retrieved_through - - has_or_had_file_path + - extracted_using + - identified_by + - has_note + - has_type + - has_content + - retrieved_through + - has_file_path - pipeline_stage - retrieved_on - source_url - - has_or_had_score - - has_or_had_provenance_path + - has_score + - has_provenance_path slot_usage: - has_or_had_identifier: + identified_by: # range: string # uriorcurie inlined: false # Fixed invalid inline for primitive type required: false examples: - value: - has_or_had_type: + has_type: range: ClaimType inlined: true required: true examples: - value: - has_or_had_label: full_name + has_label: full_name - value: - has_or_had_label: facebook - has_or_had_note: + has_label: facebook + has_note: # range: string inlined: false # Fixed invalid inline for primitive type inlined_as_list: false # Fixed invalid inline for primitive type @@ -89,59 +89,59 @@ classes: note_type: extraction note_content: Biography truncated from longer text on page. note_date: '2025-11-29' - has_or_had_content: + has_content: # range: string inlined: false # Fixed invalid inline for primitive type required: true multivalued: false examples: - value: - has_or_had_label: Historische Vereniging Nijeveen + has_label: Historische Vereniging Nijeveen - value: - has_or_had_label: '6253' + has_label: '6253' - value: - has_or_had_label: https://www.facebook.com/HistorischeVerenigingNijeveen/ + has_label: https://www.facebook.com/HistorischeVerenigingNijeveen/ source_url: required: true retrieved_on: required: true - has_or_had_provenance_path: + has_provenance_path: required: true range: XPath inlined: true - has_or_had_file_path: + has_file_path: required: true range: FilePath inlined: true examples: - value: - has_or_had_label: web/0021/historischeverenigingnijeveen.nl/rendered.html - is_or_was_retrieved_through: + has_label: web/0021/historischeverenigingnijeveen.nl/rendered.html + retrieved_through: range: RetrievalEvent inlined: true required: false - is_or_was_extracted_using: + extracted_using: range: ExtractionMethod inlined: true required: false examples: - value: - has_or_had_label: xpath_exact_match + has_label: xpath_exact_match - value: - has_or_had_label: nlp_ner + has_label: nlp_ner comments: - - WebClaim requires XPath provenance via has_or_had_provenance_path - claims without it are fabricated + - WebClaim requires XPath provenance via has_provenance_path - claims without it are fabricated - XPath class contains expression, matched_text, and match_score in one structure - Archived HTML files are Playwright-rendered (NOT WARC format) - Use scripts/fetch_website_playwright.py to archive websites - Use scripts/add_xpath_provenance.py to add XPath to existing claims - "Follows 4-stage GLAM-NER pipeline: recognition \u2192 layout \u2192 resolution \u2192 linking" - - "MIGRATED 2026-01-15: xpath/xpath_match_score/xpath_matched_text \u2192 has_or_had_provenance_path (XPath class)" - - "MIGRATED 2026-01-18: claim_value \u2192 has_or_had_content (Content class) per Rule 53/56" - - "MIGRATED 2026-01-18: claim_note \u2192 has_or_had_note (Note class) per Rule 53/56" - - "MIGRATED 2026-01-19: claim_extraction_method \u2192 is_or_was_extracted_using (ExtractionMethod class) per Rule 53/56" - - "MIGRATED 2026-01-19: claim_type \u2192 has_or_had_type (ClaimType/ClaimTypes classes) per Rule 53/56" + - "MIGRATED 2026-01-15: xpath/xpath_match_score/xpath_matched_text \u2192 has_provenance_path (XPath class)" + - "MIGRATED 2026-01-18: claim_value \u2192 has_content (Content class) per Rule 53/56" + - "MIGRATED 2026-01-18: claim_note \u2192 has_note (Note class) per Rule 53/56" + - "MIGRATED 2026-01-19: claim_extraction_method \u2192 extracted_using (ExtractionMethod class) per Rule 53/56" + - "MIGRATED 2026-01-19: claim_type \u2192 has_type (ClaimType/ClaimTypes classes) per Rule 53/56" see_also: - rules/WEB_OBSERVATION_PROVENANCE_RULES.md - scripts/fetch_website_playwright.py @@ -149,48 +149,48 @@ classes: - docs/convention/schema/20251202/entity_annotation_rules_v1.6.0_unified.yaml examples: - value: - has_or_had_type: - has_or_had_label: full_name - has_or_had_content: - has_or_had_label: Historische Vereniging Nijeveen + has_type: + has_label: full_name + has_content: + has_label: Historische Vereniging Nijeveen source_url: https://historischeverenigingnijeveen.nl/ retrieved_on: '2025-11-29T12:28:00Z' - has_or_had_provenance_path: - has_or_had_file_path: - has_or_had_label: web/0021/historischeverenigingnijeveen.nl/rendered.html + has_provenance_path: + has_file_path: + has_label: web/0021/historischeverenigingnijeveen.nl/rendered.html pipeline_stage: layout_analysis - value: - has_or_had_type: - has_or_had_label: beeldbank_total_photos - has_or_had_content: - has_or_had_label: '6253' + has_type: + has_label: beeldbank_total_photos + has_content: + has_label: '6253' source_url: https://historischeverenigingnijeveen.nl/nl/hvn retrieved_on: '2025-11-29T12:28:00Z' - has_or_had_provenance_path: - has_or_had_file_path: - has_or_had_label: web/0021/historischeverenigingnijeveen.nl/rendered.html + has_provenance_path: + has_file_path: + has_label: web/0021/historischeverenigingnijeveen.nl/rendered.html pipeline_stage: layout_analysis - value: - has_or_had_type: - has_or_had_label: facebook - has_or_had_content: - has_or_had_label: https://www.facebook.com/HistorischeVerenigingNijeveen/ + has_type: + has_label: facebook + has_content: + has_label: https://www.facebook.com/HistorischeVerenigingNijeveen/ source_url: https://historischeverenigingnijeveen.nl/ retrieved_on: '2025-11-29T12:28:00Z' - has_or_had_provenance_path: - has_or_had_file_path: - has_or_had_label: web/0021/historischeverenigingnijeveen.nl/rendered.html + has_provenance_path: + has_file_path: + has_label: web/0021/historischeverenigingnijeveen.nl/rendered.html pipeline_stage: entity_linking - value: - has_or_had_type: - has_or_had_label: website - has_or_had_content: - has_or_had_label: https://www.historischeverenigingnijeveen.nl/ + has_type: + has_label: website + has_content: + has_label: https://www.historischeverenigingnijeveen.nl/ source_url: https://historischeverenigingnijeveen.nl/nl/hvn retrieved_on: '2025-11-28T12:00:00Z' - has_or_had_provenance_path: - has_or_had_file_path: - has_or_had_label: web/0021/historischeverenigingnijeveen.nl/rendered.html + has_provenance_path: + has_file_path: + has_label: web/0021/historischeverenigingnijeveen.nl/rendered.html pipeline_stage: layout_analysis annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/WebClaimsBlock.yaml b/schemas/20251121/linkml/modules/classes/WebClaimsBlock.yaml index 8b630a2fa3..240c3debad 100644 --- a/schemas/20251121/linkml/modules/classes/WebClaimsBlock.yaml +++ b/schemas/20251121/linkml/modules/classes/WebClaimsBlock.yaml @@ -9,7 +9,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_quantity + - ../slots/20260202_matang/has_quantity - ../slots/warrants_or_warranted # default_range: string classes: @@ -28,15 +28,15 @@ classes: related_mappings: - prov:Entity slots: - - has_or_had_quantity + - has_quantity - warrants_or_warranted slot_usage: - has_or_had_quantity: + has_quantity: range: integer inlined: false # Fixed invalid inline for primitive type examples: - value: - has_or_had_description: Web claims extracted from archived website + has_description: Web claims extracted from archived website annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/WebLink.yaml b/schemas/20251121/linkml/modules/classes/WebLink.yaml index 32a7cc174d..1519f9123a 100644 --- a/schemas/20251121/linkml/modules/classes/WebLink.yaml +++ b/schemas/20251121/linkml/modules/classes/WebLink.yaml @@ -17,7 +17,7 @@ description: >- 4. Related resource connections **MIGRATION NOTE** (2026-01-14): Created as part of slot migration from `all_links` to - `has_or_had_overview` with `Overview` and `WebLink` typed classes. + `has_overview` with `Overview` and `WebLink` typed classes. See slot_fixes.yaml for migration specification. prefixes: linkml: https://w3id.org/linkml/ @@ -29,11 +29,11 @@ prefixes: imports: - linkml:types - ../enums/LinkTypeEnum - - ../slots/has_or_had_description - - ../slots/has_or_had_label # was: title - - ../slots/has_or_had_provenance_path - - ../slots/has_or_had_score # was: template_specificity - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_label # was: title + - ../slots/20260202_matang/has_provenance_path + - ../slots/20260202_matang/has_score # was: template_specificity + - ../slots/20260202_matang/has_url - ../slots/link_context - ../slots/link_text - ../slots/link_type @@ -71,29 +71,29 @@ classes: - foaf:Document - dcterms:URI slots: - - has_or_had_url # was: url - migrated per Rule 53 (2025-01-15) + - has_url # was: url - migrated per Rule 53 (2025-01-15) - link_text - - has_or_had_label # was: title - - has_or_had_description + - has_label # was: title + - has_description - link_type - link_context - - has_or_had_provenance_path # was: xpath - migrated per Rule 53 (2026-01-15) + - has_provenance_path # was: xpath - migrated per Rule 53 (2026-01-15) - temporal_extent # was: valid_from + valid_to - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - has_or_had_url: + has_url: range: uri inlined: false # Fixed invalid inline for primitive type required: true link_text: # range: string - has_or_had_label: # was: title + has_label: # was: title # range: string link_type: range: LinkTypeEnum link_context: # range: string - has_or_had_provenance_path: + has_provenance_path: range: XPath inlined: true annotations: @@ -110,7 +110,7 @@ classes: - Generic web link representation - Used within Overview collections - Created from slot_fixes.yaml migration (2026-01-14) - - 'MIGRATION (2026-01-15): Replaced xpath slot with has_or_had_provenance_path using XPath class per slot_fixes.yaml' + - 'MIGRATION (2026-01-15): Replaced xpath slot with has_provenance_path using XPath class per slot_fixes.yaml' see_also: - http://schema.org/WebPage - http://xmlns.com/foaf/0.1/Document diff --git a/schemas/20251121/linkml/modules/classes/WebObservation.yaml b/schemas/20251121/linkml/modules/classes/WebObservation.yaml index cbf5ffdbde..98548f8e84 100644 --- a/schemas/20251121/linkml/modules/classes/WebObservation.yaml +++ b/schemas/20251121/linkml/modules/classes/WebObservation.yaml @@ -19,11 +19,11 @@ imports: - ../slots/content_changed - ../slots/content_hash - ../slots/content_type - - ../slots/has_or_had_method - - ../slots/has_or_had_note - - ../slots/has_or_had_score - - ../slots/has_or_had_status - - ../slots/is_or_was_archived_at + - ../slots/20260202_matang/has_method + - ../slots/20260202_matang/has_note + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_status + - ../slots/20260202_matang/archived_at - ../slots/last_modified - ../slots/observation_id - ../slots/observed_entity @@ -40,7 +40,7 @@ classes: class_uri: prov:Activity description: "A provenance record documenting the retrieval and observation of web content.\nTracks when, where, and how web-based information was obtained.\n\n**PURPOSE**:\n\nWebObservation provides transparent provenance for web-extracted data in the\nheritage custodian ontology. When information about funding calls, institutions,\nor other entities is extracted from web sources, a WebObservation record\ndocuments:\n\n- **What**: The source URL and content\n- **When**: Timestamp of retrieval\n- **Who/What**: Agent performing retrieval\n- **How**: Method of extraction\n- **Quality**: Confidence scores and notes\n\n**PROVENANCE CHAIN**:\n\n```\nWebObservation (Activity)\n \u2502\n \u251C\u2500\u2500 prov:used \u2500\u2500\u2192 SourceDocument (web page as Entity)\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500 source_uri: https://example.org/call\n \u2502\n \u251C\u2500\u2500 prov:generated \u2500\u2500\u2192 CallForApplication\ \ (extracted Entity)\n \u2502\n \u251C\u2500\u2500 pav:retrievedFrom \u2500\u2500\u2192 URI of source\n \u251C\u2500\u2500 pav:retrievedOn \u2500\u2500\u2192 datetime\n \u2514\u2500\u2500 pav:retrievedBy \u2500\u2500\u2192 agent identifier\n```\n\n**PROV-O ALIGNMENT**:\n\nWebObservation is modelled as a `prov:Activity`:\n- Activities are \"something that occurs over a period of time and acts upon\n or with entities\"\n- The retrieval of a web page is an activity that uses a SourceDocument\n (the live web page) and generates extracted data\n\nKey PROV-O properties:\n- `prov:used` - The web page accessed\n- `prov:generated` - The extracted data entity\n- `prov:wasAssociatedWith` - The retrieval agent\n- `prov:atTime` - When the activity occurred\n\n**PAV ALIGNMENT**:\n\nPAV (Provenance, Authoring and Versioning) provides more specific properties:\n- `pav:retrievedFrom` - Source URL\n- `pav:retrievedOn` - Retrieval timestamp\n- `pav:retrievedBy` - Retrieval agent\n\ - - `pav:sourceAccessedAt` - When source was consulted\n\n**CHANGE DETECTION**:\n\nWebObservation supports tracking changes over time:\n- Link to `previous_observation` for same URL\n- `content_changed` flag for quick change detection\n- `content_hash` for integrity verification\n- Compare `last_modified` and `etag` across observations\n\n**ARCHIVAL INTEGRATION**:\n\nFor long-term preservation, link to archived copies:\n- `is_or_was_archived_at` can point to Wayback Machine, Archive.today, etc.\n- Ensures cited web content remains accessible\n\n**EXAMPLES**:\n\n1. **EU Funding Portal Observation**\n - source_url: https://ec.europa.eu/.../has_or_had_topic-details/horizon-cl2-2025-heritage-01\n - retrieved_on: 2025-11-29T10:30:00Z\n - retrieved_by: \"glam-harvester/1.0\"\n - extraction_confidence: 0.95\n \n2. **Heritage Organisation Website**\n - source_url: https://www.heritagefund.org.uk/funding/medium-grants\n - retrieved_on: 2025-11-28T14:00:00Z\n - content_type: text/html\n \ + - `pav:sourceAccessedAt` - When source was consulted\n\n**CHANGE DETECTION**:\n\nWebObservation supports tracking changes over time:\n- Link to `previous_observation` for same URL\n- `content_changed` flag for quick change detection\n- `content_hash` for integrity verification\n- Compare `last_modified` and `etag` across observations\n\n**ARCHIVAL INTEGRATION**:\n\nFor long-term preservation, link to archived copies:\n- `archived_at` can point to Wayback Machine, Archive.today, etc.\n- Ensures cited web content remains accessible\n\n**EXAMPLES**:\n\n1. **EU Funding Portal Observation**\n - source_url: https://ec.europa.eu/.../has_topic-details/horizon-cl2-2025-heritage-01\n - retrieved_on: 2025-11-29T10:30:00Z\n - retrieved_by: \"glam-harvester/1.0\"\n - extraction_confidence: 0.95\n \n2. **Heritage Organisation Website**\n - source_url: https://www.heritagefund.org.uk/funding/medium-grants\n - retrieved_on: 2025-11-28T14:00:00Z\n - content_type: text/html\n \ \ - page_title: \"Medium grants - Heritage Fund\"\n \n3. **Wikidata SPARQL Query**\n - source_url: https://query.wikidata.org/sparql?query=...\n - retrieval_method: SPARQL API\n - content_type: application/sparql-results+json\n - observed_entities: [Q131381572, Q1375245, ...]\n" exact_mappings: - prov:Activity @@ -52,14 +52,14 @@ classes: - pav:sourceAccessedAt - dcterms:source slots: - - is_or_was_archived_at + - archived_at - warrants_or_warranted - content_changed - content_hash - content_type - - has_or_had_method - - has_or_had_note - - has_or_had_status + - has_method + - has_note + - has_status - last_modified - observation_id @@ -70,21 +70,21 @@ classes: - retrieved_by - retrieved_on - source_url - - has_or_had_score + - has_score slot_usage: - has_or_had_method: + has_method: # range: string - has_or_had_status: # was: http_status_code - migrated per Rule 53/56 (2026-01-28) + has_status: # was: http_status_code - migrated per Rule 53/56 (2026-01-28) range: HTTPStatusCode examples: - value: - has_or_had_value: "200" - has_or_had_label: "OK" + has_value: "200" + has_label: "OK" comments: - WebObservation is a prov:Activity documenting web content retrieval - Integrates PROV-O for provenance and PAV for retrieval-specific properties - Supports change detection via content_hash, previous_observation, content_changed - - Links to archived copies via is_or_was_archived_at for long-term citation + - Links to archived copies via archived_at for long-term citation - observed_entities links observation to extracted data (prov:generated) see_also: - https://www.w3.org/TR/prov-o/ @@ -98,34 +98,34 @@ classes: retrieved_on: '2025-11-29T10:30:00Z' retrieved_by: claude-assistant retrieval_method: exa-search - has_or_had_status: - has_or_had_value: "200" + has_status: + has_value: "200" content_type: text/html page_title: Horizon Europe - Cultural heritage, cultural and creative industries - has_or_had_score: - has_or_had_score: 0.92 + has_score: + has_score: 0.92 extraction_notes: Extracted via Exa AI search. Call details structured and well-formatted. Budget and deadline clearly stated. Eligibility criteria parsed from HTML sections. observed_entity: - https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 - is_or_was_archived_at: https://web.archive.org/web/20251129103000/https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/opportunities/topic-details/horizon-cl2-2025-heritage-01 + archived_at: https://web.archive.org/web/20251129103000/https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/opportunities/topic-details/horizon-cl2-2025-heritage-01 - value: observation_id: https://nde.nl/ontology/hc/observation/web/2025-11-28/nlhf-medium-grants source_url: https://www.heritagefund.org.uk/funding/medium-grants retrieved_on: '2025-11-28T14:00:00Z' retrieved_by: glam-harvester/1.0 retrieval_method: playwright-scraper - has_or_had_status: - has_or_had_value: "200" + has_status: + has_value: "200" content_type: text/html page_title: Medium grants | The National Lottery Heritage Fund content_hash: sha256:a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456 last_modified: '2025-11-15T09:00:00Z' - has_or_had_score: - has_or_had_score: 0.88 + has_score: + has_score: 0.88 extraction_notes: Extracted via Playwright scraper. Dynamic content fully rendered. Grant range and eligibility parsed from page sections. observed_entity: - https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 @@ -137,12 +137,12 @@ classes: retrieved_on: '2025-11-29T09:00:00Z' retrieved_by: wikidata-mcp-server retrieval_method: sparql-api - has_or_had_status: - has_or_had_value: "200" + has_status: + has_value: "200" content_type: application/sparql-results+json - has_or_had_score: - has_or_had_score: 1.0 + has_score: + has_score: 1.0 extraction_notes: SPARQL query for ECHOES/ECCCH Q-number (Q131381572). Structured API response with high confidence. observed_entity: - http://www.wikidata.org/entity/Q131381572 diff --git a/schemas/20251121/linkml/modules/classes/WebPage.yaml b/schemas/20251121/linkml/modules/classes/WebPage.yaml index 4e578bc1e3..153ceab371 100644 --- a/schemas/20251121/linkml/modules/classes/WebPage.yaml +++ b/schemas/20251121/linkml/modules/classes/WebPage.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_url classes: WebPage: class_uri: schema:WebPage @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_url + - has_url diff --git a/schemas/20251121/linkml/modules/classes/WebPlatform.yaml b/schemas/20251121/linkml/modules/classes/WebPlatform.yaml index ff1a063826..0886b8f186 100644 --- a/schemas/20251121/linkml/modules/classes/WebPlatform.yaml +++ b/schemas/20251121/linkml/modules/classes/WebPlatform.yaml @@ -9,15 +9,15 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_label - - ../slots/has_or_had_url + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_url classes: WebPlatform: class_uri: schema:WebSite description: Web platform. slots: - - has_or_had_url - - has_or_had_label + - has_url + - has_label annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/WebPortal.yaml b/schemas/20251121/linkml/modules/classes/WebPortal.yaml index 99ea3504d9..845f54a6ba 100644 --- a/schemas/20251121/linkml/modules/classes/WebPortal.yaml +++ b/schemas/20251121/linkml/modules/classes/WebPortal.yaml @@ -2,18 +2,18 @@ id: https://nde.nl/ontology/hc/class/WebPortal name: WebPortal imports: - linkml:types - - ../slots/aggregates_or_aggregated_from + - ../slots/aggregate_from - ../slots/created_by_project - - ../slots/has_or_had_endpoint - - ../slots/has_or_had_identifier - - ../slots/has_or_had_policy - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/is_or_was_aggregated_by - - ../slots/is_or_was_associated_with - - ../slots/is_or_was_derived_from - - ../slots/is_or_was_generated_by - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_endpoint + - ../slots/identified_by + - ../slots/20260202_matang/has_policy + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/aggregated_by + - ../slots/20260202_matang/associated_with + - ../slots/20260202_matang/derived_from + - ../slots/20260202_matang/generated_by + - ../slots/20260202_matang/related_to - ../slots/launch_date - ../slots/metadata_standard - ../slots/oai_pmh_endpoint @@ -62,15 +62,15 @@ classes: - schema:DataCatalog - dcmitype:Collection slots: - - is_or_was_aggregated_by - - aggregates_or_aggregated_from - - has_or_had_endpoint - - is_or_was_associated_with + - aggregated_by + - aggregate_from + - has_endpoint + - associated_with - created_by_project - - has_or_had_policy - - has_or_had_scope - - has_or_had_identifier - - is_or_was_related_to + - has_policy + - has_scope + - identified_by + - related_to - launch_date - metadata_standard - oai_pmh_endpoint @@ -87,10 +87,10 @@ classes: - serves_finding_aid - sparql_endpoint - supersedes_or_superseded - - has_or_had_score + - has_score - temporal_extent - - is_or_was_derived_from - - is_or_was_generated_by + - derived_from + - generated_by slot_usage: portal_id: identifier: true @@ -127,15 +127,15 @@ classes: - value: Archieven.nl is the Dutch national portal for archival finding aids, providing unified search across 80+ Dutch archives. - value: DE-BW - value: EU - has_or_had_scope: + has_scope: range: GeographicScope inlined: true examples: - value: - has_or_had_label: National (Netherlands) + has_label: National (Netherlands) - value: - has_or_had_label: European - has_or_had_identifier: + has_label: European + identified_by: # range: string # uriorcurie multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type @@ -148,13 +148,13 @@ classes: examples: - value: https://nde.nl/ontology/hc/encompassing-body/network/nde - value: https://nde.nl/ontology/hc/encompassing-body/network/europeana-foundation - aggregates_or_aggregated_from: + aggregate_from: # range: string # uriorcurie multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: https://nde.nl/ontology/hc/portal/de/ddb - is_or_was_aggregated_by: + aggregated_by: # range: string # uriorcurie multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type @@ -169,13 +169,13 @@ classes: - value: EAD (Encoded Archival Description) - value: Dublin Core - value: LIDO - has_or_had_endpoint: + has_endpoint: range: APIEndpoint inlined: true examples: - value: - has_or_had_url: https://api.europeana.eu/record/v2/ - has_or_had_description: Europeana REST API + has_url: https://api.europeana.eu/record/v2/ + has_description: Europeana REST API sparql_endpoint: range: uri examples: @@ -221,12 +221,12 @@ classes: description: 'Europeana: 4000+ institutions' temporal_extent: range: TimeSpan - is_or_was_derived_from: + derived_from: range: CustodianObservation multivalued: true - is_or_was_generated_by: + generated_by: range: ReconstructionActivity - has_or_had_policy: + has_policy: # range: string examples: - value: https://nde.nl/ontology/hc/policy/europeana @@ -235,21 +235,21 @@ classes: range: Project examples: - value: https://nde.nl/ontology/hc/project/nde/nde-portal-development-2023 - is_or_was_associated_with: + associated_with: # range: string # uriorcurie multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: https://nde.nl/ontology/hc/encompassing-body/consortium/dans - value: https://nde.nl/ontology/hc/encompassing-body/network/europeana-aggregators - is_or_was_related_to: + related_to: range: DigitalPlatform multivalued: true inlined: true examples: - value: - has_or_had_identifier: https://nde.nl/ontology/hc/platform/rijksmuseum-website - has_or_had_label: Rijksmuseum Website + identified_by: https://nde.nl/ontology/hc/platform/rijksmuseum-website + has_label: Rijksmuseum Website - value: https://nde.nl/ontology/hc/aux-platform/europeana-api-v3 serves_finding_aid: # range: string # uriorcurie @@ -265,9 +265,9 @@ classes: - "Portals form aggregation chains: regional \u2192 national \u2192 European" - Typically operated by EncompassingBody (Network, Consortium) - Track lifecycle with portal_status and supersedes_or_superseded - - has_or_had_policy (was data_license_policy) links to portal's licensing stance (CC0, CC-BY, etc.) + - has_policy (was data_license_policy) links to portal's licensing stance (CC0, CC-BY, etc.) - 'NEW: created_by_project links to Project that built the portal' - - 'NEW: is_or_was_associated_with for organizational relationships beyond operator (migrated from associated_encompassing_bodies)' + - 'NEW: associated_with for organizational relationships beyond operator (migrated from associated_encompassing_bodies)' - 'NEW: implements_digital_platform links to aggregated DigitalPlatform instances' - 'NEW: implements_auxiliary_platform links to subordinate AuxiliaryDigitalPlatform instances' - "FUNDING: For funding relationships, link FundingOrganisation \u2192 Project \u2192 WebPortal (not direct)" @@ -285,10 +285,10 @@ classes: providing unified search across 80+ Dutch archives. Users can search EAD-encoded finding aids and access scanned documents. ' - has_or_had_scope: + has_scope: - scope_description: Archival finding aids operated_by: https://nde.nl/ontology/hc/encompassing-body/network/kvan - is_or_was_aggregated_by: + aggregated_by: - https://nde.nl/ontology/hc/portal/eu/archives-portal-europe metadata_standard: - EAD (Encoded Archival Description) @@ -308,18 +308,18 @@ classes: European museums, galleries, libraries, and archives. It is the European Union''s digital platform for cultural heritage. ' - has_or_had_scope: + has_scope: - scope_description: Art and cultural heritage operated_by: https://nde.nl/ontology/hc/encompassing-body/network/europeana-foundation - aggregates_or_aggregated_from: + aggregate_from: - https://nde.nl/ontology/hc/portal/de/ddb - https://nde.nl/ontology/hc/portal/fr/gallica - https://nde.nl/ontology/hc/portal/nl/collectie-nederland metadata_standard: - EDM (Europeana Data Model) - Dublin Core - has_or_had_endpoint: - has_or_had_url: https://api.europeana.eu/record/v2/ + has_endpoint: + has_url: https://api.europeana.eu/record/v2/ sparql_endpoint: https://sparql.europeana.eu/ oai_pmh_endpoint: https://oai.europeana.eu/oai portal_language: @@ -331,9 +331,9 @@ classes: portal_status: ACTIVE record_count: 50000000 participating_institutions: 4000 - has_or_had_identifier: + identified_by: - http://www.wikidata.org/entity/Q209441 - has_or_had_policy: + has_policy: - policy_id: https://nde.nl/ontology/hc/policy/europeana-data-exchange policy_name: Europeana Data Exchange Agreement data_licenses: @@ -344,39 +344,39 @@ classes: begin_of_the_begin: '2011-09-01' end_of_the_end: null created_by_project: - has_or_had_identifier: https://nde.nl/ontology/hc/project/europeana-dsi - has_or_had_label: Europeana DSI (Digital Service Infrastructure) - has_or_had_description: "EU-funded project under CEF Telecom to develop and maintain the \nEuropeana digital platform as core European cultural heritage infrastructure.\n" + identified_by: https://nde.nl/ontology/hc/project/europeana-dsi + has_label: Europeana DSI (Digital Service Infrastructure) + has_description: "EU-funded project under CEF Telecom to develop and maintain the \nEuropeana digital platform as core European cultural heritage infrastructure.\n" funding_sources: - https://nde.nl/ontology/hc/funding-org/eu/cef-telecom project_period: begin_of_the_begin: '2015-01-01' end_of_the_end: '2025-12-31' - is_or_was_associated_with: + associated_with: - https://nde.nl/ontology/hc/encompassing-body/government/european-commission - https://nde.nl/ontology/hc/encompassing-body/network/europeana-foundation - https://nde.nl/ontology/hc/encompassing-body/consortium/europeana-network-association - is_or_was_related_to: - - has_or_had_identifier: https://nde.nl/ontology/hc/platform/europeana-collections - has_or_had_label: Europeana Collections - has_or_had_url: https://www.europeana.eu/collections + related_to: + - identified_by: https://nde.nl/ontology/hc/platform/europeana-collections + has_label: Europeana Collections + has_url: https://www.europeana.eu/collections temporal_extent: begin_of_the_begin: '2008-11-20' - - has_or_had_identifier: https://nde.nl/ontology/hc/platform/europeana-pro - has_or_had_label: Europeana Pro - has_or_had_url: https://pro.europeana.eu + - identified_by: https://nde.nl/ontology/hc/platform/europeana-pro + has_label: Europeana Pro + has_url: https://pro.europeana.eu temporal_extent: begin_of_the_begin: '2014-01-01' - - has_or_had_identifier: https://nde.nl/ontology/hc/auxiliary/europeana-iiif - has_or_had_label: Europeana IIIF APIs - has_or_had_url: https://iiif.europeana.eu - has_or_had_type: IIIF_SERVER + - identified_by: https://nde.nl/ontology/hc/auxiliary/europeana-iiif + has_label: Europeana IIIF APIs + has_url: https://iiif.europeana.eu + has_type: IIIF_SERVER temporal_extent: begin_of_the_begin: '2018-01-01' - - has_or_had_identifier: https://nde.nl/ontology/hc/auxiliary/europeana-entity-api - has_or_had_label: Europeana Entity API - has_or_had_url: https://api.europeana.eu/entity - has_or_had_type: REST_API + - identified_by: https://nde.nl/ontology/hc/auxiliary/europeana-entity-api + has_label: Europeana Entity API + has_url: https://api.europeana.eu/entity + has_type: REST_API temporal_extent: begin_of_the_begin: '2017-01-01' - value: @@ -388,10 +388,10 @@ classes: aggregating EAD descriptions from German archives and providing unified search and access. ' - has_or_had_scope: + has_scope: - scope_description: Archival finding aids operated_by: https://nde.nl/ontology/hc/encompassing-body/network/archivportal-d-koordination - is_or_was_aggregated_by: + aggregated_by: - https://nde.nl/ontology/hc/portal/eu/archives-portal-europe - https://nde.nl/ontology/hc/portal/de/ddb metadata_standard: diff --git a/schemas/20251121/linkml/modules/classes/WebPortalType.yaml b/schemas/20251121/linkml/modules/classes/WebPortalType.yaml index 8adcd174d1..75f0e5d461 100644 --- a/schemas/20251121/linkml/modules/classes/WebPortalType.yaml +++ b/schemas/20251121/linkml/modules/classes/WebPortalType.yaml @@ -12,11 +12,11 @@ imports: - linkml:types - ../enums/PortalCategoryEnum - ../metadata - - ../slots/has_or_had_example - - ../slots/has_or_had_feature - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_standard + - ../slots/20260202_matang/has_example + - ../slots/20260202_matang/has_feature + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_standard - ../slots/portal_type_category - ../slots/portal_type_description - ../slots/portal_type_id @@ -36,27 +36,27 @@ classes: - edm:Aggregation - schema:WebSite slots: - - has_or_had_example + - has_example - portal_type_category - portal_type_description - portal_type_id - portal_type_name - portal_typical_domain - - has_or_had_score - - has_or_had_standard - - has_or_had_scope - - has_or_had_feature + - has_score + - has_standard + - has_scope + - has_feature slot_usage: - has_or_had_example: + has_example: range: Example multivalued: true inlined: true examples: - value: - has_or_had_label: Europeana + has_label: Europeana - value: - has_or_had_label: Archieven.nl - has_or_had_scope: + has_label: Archieven.nl + has_scope: # range: string inlined: false # Fixed invalid inline for primitive type portal_type_id: diff --git a/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml b/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml index f353384e43..403c5c9e49 100644 --- a/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml @@ -14,18 +14,18 @@ imports: - ./WebPortalType - linkml:types - ../metadata - - ../slots/can_or_could_be_retrieved_from - - ../slots/ceases_or_ceased_through - - ../slots/has_or_had_description - - ../slots/has_or_had_endpoint - - ../slots/has_or_had_feature - - ../slots/has_or_had_identifier - - ../slots/has_or_had_scope - - ../slots/has_or_had_score - - ../slots/has_or_had_standard - - ../slots/has_or_had_title - - ../slots/is_or_was_published_by - - ../slots/is_or_was_superseded_by + - ../slots/retrieved_from + - ../slots/ceased_through + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_endpoint + - ../slots/20260202_matang/has_feature + - ../slots/identified_by + - ../slots/20260202_matang/has_scope + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_standard + - ../slots/20260202_matang/has_title + - ../slots/20260202_matang/published_by + - ../slots/20260202_matang/superseded_by - ../slots/linked_data_access - ../slots/portal_type_category - ../slots/portal_typical_domain @@ -57,7 +57,7 @@ classes: slot_usage: portal_type_category: equals_string: GEOGRAPHIC_SCOPE - has_or_had_scope: + has_scope: # range: string portal_typical_domain: equals_string_in: @@ -70,7 +70,7 @@ classes: - Often operated by national cultural heritage agencies or ministries - 'Examples: NDE Dataset Register, Deutsche Digitale Bibliothek, Trove' slots: - - has_or_had_score + - has_score annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration @@ -95,14 +95,14 @@ classes: slot_usage: portal_type_category: equals_string: GEOGRAPHIC_SCOPE - has_or_had_scope: + has_scope: # range: string comments: - Subnational/provincial heritage aggregation portal - Often operated by provincial/state heritage agencies - "Examples: LEO-BW, Bavarikon, Archivportal Th\xFCringen" slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept ArchivalPortal: @@ -135,7 +135,7 @@ classes: portal_typical_domain: equals_string_in: - archives - has_or_had_standard: + has_standard: range: MetadataStandard comments: - Archives-focused aggregation portal @@ -143,7 +143,7 @@ classes: - Specializes in finding aids and archival descriptions - 'Examples: Archieven.nl, Archives Portal Europe, Archivportal-D' slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept LibraryUnionCatalog: @@ -177,7 +177,7 @@ classes: portal_typical_domain: equals_string_in: - libraries - has_or_had_standard: + has_standard: range: MetadataStandard comments: - Library-focused aggregation portal / union catalog @@ -185,7 +185,7 @@ classes: - Aggregates bibliographic records from multiple libraries - 'Examples: WorldCat, GBV, SUDOC' slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept MuseumCollectionPortal: @@ -218,7 +218,7 @@ classes: portal_typical_domain: equals_string_in: - museums - has_or_had_standard: + has_standard: range: MetadataStandard comments: - Museum-focused aggregation portal @@ -226,7 +226,7 @@ classes: - Aggregates object metadata from multiple museum institutions - 'Examples: Collectie Nederland, Europeana Collections' slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept GenealogicalPortal: @@ -260,7 +260,7 @@ classes: - Aggregates civil registration, parish records, and vital records - 'Examples: OpenArchieven.nl, FamilySearch, Ancestry' slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept ArchaeologicalPortal: @@ -297,7 +297,7 @@ classes: portal_typical_domain: equals_string_in: - archaeology - has_or_had_standard: + has_standard: range: MetadataStandard comments: - Archaeology-focused aggregation portal @@ -305,7 +305,7 @@ classes: - Aggregates excavation data, site records, and archaeological datasets - 'Examples: ARIADNE, CARARE, Archaeology Data Service, tDAR' slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept CrossDomainAggregator: @@ -342,7 +342,7 @@ classes: - libraries - museums - cross-domain - has_or_had_standard: + has_standard: range: MetadataStandard comments: - Cross-domain heritage aggregation portal (LAM integration) @@ -350,7 +350,7 @@ classes: - Aggregates metadata across archives, libraries, and museums - 'Examples: Europeana, DPLA, Deutsche Digitale Bibliothek' slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept ColonialHeritagePortal: @@ -385,7 +385,7 @@ classes: - Supports provenance research and restitution scholarship - 'Examples: Colonial Collections (NDE), Atlas of Mutual Heritage' slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept MonasticHeritagePortal: @@ -419,7 +419,7 @@ classes: - Specializes in diplomatic sources and religious heritage - 'Examples: Monasterium.net (ICARUS)' slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept NewspaperDigitizationPortal: @@ -453,7 +453,7 @@ classes: - Provides full-text search across digitized historical newspapers - 'Examples: Delpher Kranten, Chronicling America' slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept LinkedDataHub: @@ -487,14 +487,14 @@ classes: - linked_data - vocabularies - knowledge_graphs - has_or_had_feature: + has_feature: range: TechnicalFeature comments: - Linked data and SPARQL endpoint portal - Provides semantic web access to heritage metadata - 'Examples: NDE Termennetwerk, Wikidata, Getty Vocabularies' slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept IIIFAggregator: @@ -528,14 +528,14 @@ classes: equals_string_in: - images - visual_heritage - has_or_had_feature: + has_feature: range: TechnicalFeature comments: - IIIF image aggregation portal - Provides unified viewing of IIIF manifests across institutions - 'Examples: IIIF Discovery, Mirador instances' slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept OAIPMHHarvester: @@ -569,14 +569,14 @@ classes: - repositories - open_access - scholarly_communication - has_or_had_feature: + has_feature: range: TechnicalFeature comments: - OAI-PMH metadata harvesting portal - Aggregates from OAI-PMH compliant repositories - 'Examples: BASE, OpenAIRE, CORE' slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept OpenAccessPortal: @@ -611,7 +611,7 @@ classes: - Emphasizes public availability and reuse - 'Examples: Wikimedia Commons, Internet Archive, HathiTrust' slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept ResearchDataPortal: @@ -647,7 +647,7 @@ classes: - Emphasizes FAIR data, DOIs, and reproducibility - 'Examples: DANS EASY, Zenodo' slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept DigitalLibraryPortal: @@ -685,7 +685,7 @@ classes: equals_string_in: - digital_libraries - libraries - has_or_had_standard: + has_standard: range: MetadataStandard comments: - National/major digital library portal @@ -693,7 +693,7 @@ classes: - Provides direct access to digitized library materials - 'Examples: Gallica, Polona, Internet Culturale, Delpher' slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept ResearchInfrastructurePortal: @@ -719,7 +719,7 @@ classes: slot_usage: portal_type_category: equals_string: RESEARCH_INFRASTRUCTURE - has_or_had_scope: + has_scope: # range: string portal_typical_domain: equals_string_in: @@ -731,7 +731,7 @@ classes: - Provides tools, services, and data for collaborative research - 'Examples: DARIAH-EU, ARIADNE, CLARIN, E-RIHS' slots: - - has_or_had_score + - has_score broad_mappings: - skos:Concept DatasetRegister: @@ -768,11 +768,11 @@ classes: - dataset_registry - open_data - heritage_data - has_or_had_standard: + has_standard: range: MetadataStandard slots: - registers_or_registered - - has_or_had_score + - has_score comments: - National/regional dataset registry for heritage data - Typical standards: DCAT, Schema.org, Dublin Core @@ -803,7 +803,7 @@ classes: - No longer actively maintained (as of observation TimeSpan)\n- May contain\ \ unique historical data\n- Redirects to successor platforms\n- Preserved for\ \ link persistence\n- Documentation of historical context\n\n**SUCCESSOR TRACKING**:\n\ - Use `is_or_was_superseded_by` slot to link to replacement portal(s):\n- One-to-one\ + Use `superseded_by` slot to link to replacement portal(s):\n- One-to-one\ \ succession (portal replaced by single successor)\n- One-to-many succession\ \ (portal split into multiple successors)\n- Many-to-one succession (multiple\ \ portals merged into one)\n\n**USE CASES**:\n- Superseded regional portals\n\ @@ -812,9 +812,9 @@ classes: portal_type_category: equals_string: LIFECYCLE slots: - - ceases_or_ceased_through - - is_or_was_superseded_by - - has_or_had_score + - ceased_through + - superseded_by + - has_score comments: - Legacy/deprecated heritage portal - No longer actively maintained but preserved for link persistence diff --git a/schemas/20251121/linkml/modules/classes/WhatsAppProfile.yaml b/schemas/20251121/linkml/modules/classes/WhatsAppProfile.yaml index cef4ce7ae2..81e74d3192 100644 --- a/schemas/20251121/linkml/modules/classes/WhatsAppProfile.yaml +++ b/schemas/20251121/linkml/modules/classes/WhatsAppProfile.yaml @@ -8,7 +8,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_contact_details + - ../slots/20260202_matang/has_contact_details classes: WhatsAppProfile: class_uri: schema:ContactPoint @@ -25,7 +25,7 @@ classes: ' slots: - - has_or_had_contact_details + - has_contact_details close_mappings: - schema:ContactPoint annotations: diff --git a/schemas/20251121/linkml/modules/classes/Wifi.yaml b/schemas/20251121/linkml/modules/classes/Wifi.yaml index dabbeb881a..3da6886cf0 100644 --- a/schemas/20251121/linkml/modules/classes/Wifi.yaml +++ b/schemas/20251121/linkml/modules/classes/Wifi.yaml @@ -13,7 +13,7 @@ default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_description + - ../slots/20260202_matang/has_description classes: Wifi: class_uri: schema:LocationFeatureSpecification @@ -24,4 +24,4 @@ classes: custodian_types: '["*"]' slots: - - has_or_had_description + - has_description diff --git a/schemas/20251121/linkml/modules/classes/WikiDataEntry.yaml b/schemas/20251121/linkml/modules/classes/WikiDataEntry.yaml index c6ac5357e4..5a4b3764a9 100644 --- a/schemas/20251121/linkml/modules/classes/WikiDataEntry.yaml +++ b/schemas/20251121/linkml/modules/classes/WikiDataEntry.yaml @@ -16,10 +16,10 @@ default_prefix: hc imports: - linkml:types - ../metadata - - ../slots/has_or_had_description # was: wikidata_description - - ../slots/has_or_had_identifier # was: wikidata_qid - - ../slots/has_or_had_label # was: wikidata_label - - ../slots/has_or_had_score # was: template_specificity + - ../slots/20260202_matang/has_description # was: wikidata_description + - ../slots/identified_by # was: wikidata_qid + - ../slots/20260202_matang/has_label # was: wikidata_label + - ../slots/20260202_matang/has_score # was: template_specificity - ../slots/language classes: WikiDataEntry: @@ -61,21 +61,21 @@ classes: - prov:Entity slots: - - has_or_had_identifier # was: wikidata_qid - migrated 2026-01-16 per Rule 53 - - has_or_had_label # was: wikidata_label - migrated 2026-01-16 per Rule 53 - - has_or_had_description # was: wikidata_description - migrated 2026-01-16 per Rule 53 + - identified_by # was: wikidata_qid - migrated 2026-01-16 per Rule 53 + - has_label # was: wikidata_label - migrated 2026-01-16 per Rule 53 + - has_description # was: wikidata_description - migrated 2026-01-16 per Rule 53 - language - - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: - has_or_had_identifier: # was: wikidata_qid - migrated 2026-01-16 per Rule 53 + identified_by: # was: wikidata_qid - migrated 2026-01-16 per Rule 53 # range: string required: true pattern: "^Q[0-9]+$" - has_or_had_label: # was: wikidata_label - migrated 2026-01-16 per Rule 53 + has_label: # was: wikidata_label - migrated 2026-01-16 per Rule 53 # range: string required: false - has_or_had_description: # was: wikidata_description - migrated 2026-01-16 per Rule 53 + has_description: # was: wikidata_description - migrated 2026-01-16 per Rule 53 # range: string required: false language: @@ -92,12 +92,12 @@ classes: examples: - value: | - has_or_had_identifier: "Q33506" - has_or_had_label: "museum" - has_or_had_description: "institution that holds and displays collections" + identified_by: "Q33506" + has_label: "museum" + has_description: "institution that holds and displays collections" language: en - value: | - has_or_had_identifier: "Q190804" - has_or_had_label: "Rijksmuseum" - has_or_had_description: "Dutch national museum in Amsterdam" + identified_by: "Q190804" + has_label: "Rijksmuseum" + has_description: "Dutch national museum in Amsterdam" language: en \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/WikidataAlignment.yaml b/schemas/20251121/linkml/modules/classes/WikidataAlignment.yaml index d20391383d..7e7d6871eb 100644 --- a/schemas/20251121/linkml/modules/classes/WikidataAlignment.yaml +++ b/schemas/20251121/linkml/modules/classes/WikidataAlignment.yaml @@ -10,33 +10,33 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_label - - ../slots/has_or_had_rationale - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_label + - ../slots/20260202_matang/has_rationale + - ../slots/20260202_matang/has_type classes: WikidataAlignment: class_uri: hc:WikidataAlignment description: "Structured metadata for Wikidata entity alignment.\nReplaces fragmented annotations with a proper structured object.\n\n**Example**:\n```yaml\nwikidata_alignment:\n entity_id: Q27032435\n entity_label: \"academic archive\"\n mapping_type: exact\n mapping_rationale: \"AcademicArchive is semantically equivalent to Q27032435\"\n```\n" slots: - - has_or_had_identifier - - has_or_had_label - - has_or_had_type - - has_or_had_rationale + - identified_by + - has_label + - has_type + - has_rationale slot_usage: - has_or_had_identifier: + identified_by: range: WikiDataIdentifier examples: - value: "qid: Q27032435" - has_or_had_label: + has_label: # range: string examples: - value: "academic archive" - has_or_had_rationale: + has_rationale: # range: string examples: - value: "AcademicArchive is semantically equivalent to Q27032435" - has_or_had_type: + has_type: # range: string # uriorcurie annotations: specificity_score: 0.3 diff --git a/schemas/20251121/linkml/modules/classes/WomensArchives.yaml b/schemas/20251121/linkml/modules/classes/WomensArchives.yaml index 8aedb3bb74..21b6d8b228 100644 --- a/schemas/20251121/linkml/modules/classes/WomensArchives.yaml +++ b/schemas/20251121/linkml/modules/classes/WomensArchives.yaml @@ -17,11 +17,11 @@ prefixes: imports: - ../classes/AgentType - linkml:types - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/hold_or_held_record_set_type - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/related_to classes: WomensArchives: description: Archives of documents and records written by and about women. Women's archives (Frauenarchive) specialize @@ -30,11 +30,11 @@ classes: is_a: CustodianType class_uri: schema:ArchiveOrganization slots: - - has_or_had_type + - has_type - hold_or_held_record_set_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_score + - related_to + - identified_by exact_mappings: - wd:Q130217628 close_mappings: @@ -43,9 +43,9 @@ classes: broad_mappings: - wd:Q166118 slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: diff --git a/schemas/20251121/linkml/modules/classes/WomensArchivesRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/WomensArchivesRecordSetType.yaml index 9e53978687..dd1d50eba5 100644 --- a/schemas/20251121/linkml/modules/classes/WomensArchivesRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/WomensArchivesRecordSetType.yaml @@ -9,8 +9,8 @@ prefixes: wd: http://www.wikidata.org/entity/ imports: - linkml:types - - ../slots/has_or_had_score - - ../slots/is_or_was_related_to + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/related_to classes: WomensArchivesRecordSetType: description: A rico:RecordSetType for classifying collections documenting women's history, feminist movements, and women's experiences. @@ -19,14 +19,14 @@ classes: exact_mappings: - wd:Q130217628 slot_usage: - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true see_also: - WomensArchives slots: - - has_or_had_score - - is_or_was_related_to + - has_score + - related_to annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/WomensArchivesRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/WomensArchivesRecordSetTypes.yaml index 12f333b9e1..d6efef19c1 100644 --- a/schemas/20251121/linkml/modules/classes/WomensArchivesRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/WomensArchivesRecordSetTypes.yaml @@ -19,8 +19,8 @@ default_prefix: hc imports: - ./WomensArchivesRecordSetType - linkml:types - - ../slots/has_or_had_score - - ../slots/has_or_had_type + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type - ../slots/organizational_principle - ../slots/organizational_principle_uri - ../slots/record_holder @@ -43,15 +43,15 @@ classes: - WomensArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: WomensOrganizationFonds @@ -84,15 +84,15 @@ classes: - WomensArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: FeministPapersCollection @@ -123,15 +123,15 @@ classes: - WomensArchivesRecordSetType - rico:RecordSetType slots: - - has_or_had_type - - has_or_had_score + - has_type + - has_score - organizational_principle - organizational_principle_uri - record_holder - record_holder_note - record_set_type slot_usage: - has_or_had_type: + has_type: equals_expression: '["hc:ArchiveOrganizationType"]' record_set_type: equals_string: WomensHistoryCollection diff --git a/schemas/20251121/linkml/modules/classes/WordCount.yaml b/schemas/20251121/linkml/modules/classes/WordCount.yaml index 3062b97643..c4cbaeecf2 100644 --- a/schemas/20251121/linkml/modules/classes/WordCount.yaml +++ b/schemas/20251121/linkml/modules/classes/WordCount.yaml @@ -15,16 +15,16 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_quantity + - ../slots/20260202_matang/has_quantity classes: WordCount: class_uri: schema:QuantitativeValue description: 'A word count measurement. **USAGE**: Used for: - Document word counts - Text length metrics - Content statistics ' slots: - - has_or_had_quantity + - has_quantity slot_usage: - has_or_had_quantity: null + has_quantity: null close_mappings: - schema:QuantitativeValue annotations: @@ -33,5 +33,5 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_quantity: + has_quantity: value: 15000 diff --git a/schemas/20251121/linkml/modules/classes/WorkExperience.yaml b/schemas/20251121/linkml/modules/classes/WorkExperience.yaml index d84d9f6105..53307a8380 100644 --- a/schemas/20251121/linkml/modules/classes/WorkExperience.yaml +++ b/schemas/20251121/linkml/modules/classes/WorkExperience.yaml @@ -13,12 +13,12 @@ prefixes: imports: - linkml:types - ../metadata - - ../slots/has_or_had_description - - ../slots/has_or_had_location - - ../slots/has_or_had_score - - ../slots/is_or_was_current - - ../slots/is_or_was_employed_by - - ../slots/is_or_was_position + - ../slots/20260202_matang/has_description + - ../slots/20260202_matang/has_location + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/current + - ../slots/20260202_matang/employed_by + - ../slots/20260202_matang/position - ../slots/temporal_extent # default_range: string classes: @@ -48,7 +48,7 @@ classes: - CV/resume work history - - Staff has_or_had_affiliation tracking + - Staff has_affiliation tracking **Heritage Relevance**: @@ -67,32 +67,32 @@ classes: - schema:EmployeeRole - prov:Association slots: - - is_or_was_employed_by + - employed_by - temporal_extent - - is_or_was_current - - has_or_had_description - - is_or_was_position - - has_or_had_score - - has_or_had_location + - current + - has_description + - position + - has_score + - has_location slot_usage: - is_or_was_position: + position: # range: string required: true examples: - value: Staff Adviseur - value: Senior Curator, Asian Art - is_or_was_employed_by: + employed_by: range: Employer inlined: true required: true examples: - value: - has_or_had_label: Rijksmuseum - has_or_had_url: - has_or_had_url: https://www.linkedin.com/company/rijksmuseum - has_or_had_type: LinkedInProfileURL - is_or_was_related_to: - has_or_had_label: Heritage Sector + has_label: Rijksmuseum + has_url: + has_url: https://www.linkedin.com/company/rijksmuseum + has_type: LinkedInProfileURL + related_to: + has_label: Heritage Sector temporal_extent: range: TimeSpan inlined: true @@ -100,28 +100,28 @@ classes: - value: begin_of_the_begin: 2017-08 end_of_the_end: 2025-04 - has_or_had_verbatim_value: Aug 2017 - Apr 2025 + has_verbatim_value: Aug 2017 - Apr 2025 - value: begin_of_the_begin: 2025-04 - has_or_had_verbatim_value: Apr 2025 - Present - is_or_was_current: + has_verbatim_value: Apr 2025 - Present + current: range: boolean ifabsent: 'false' examples: - value: true - has_or_had_location: + has_location: # range: string inlined: false # Fixed invalid inline for primitive type examples: - value: "Location:\n city: \"Utrecht\"\n country: \"Netherlands\"\n" - value: "Location:\n city: \"Amsterdam\"\n region: \"Noord-Holland\"\n country: \"Netherlands\"\n" - has_or_had_description: + has_description: # range: string comments: - Inlined in LinkedInProfile.experience[] as multivalued list - Preserves raw LinkedIn date formats for provenance - - Current positions have is_or_was_current=true and null end_date - - heritage_employer boolean removed; heritage status indicated via Employer.is_or_was_related_to + - Current positions have current=true and null end_date + - heritage_employer boolean removed; heritage status indicated via Employer.related_to see_also: - https://schema.org/OrganizationRole diff --git a/schemas/20251121/linkml/modules/classes/WorkRevision.yaml b/schemas/20251121/linkml/modules/classes/WorkRevision.yaml index aaf0ea7512..d4f6eb5a7d 100644 --- a/schemas/20251121/linkml/modules/classes/WorkRevision.yaml +++ b/schemas/20251121/linkml/modules/classes/WorkRevision.yaml @@ -9,7 +9,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/is_or_was_revision_of + - ../slots/20260202_matang/revision_of classes: WorkRevision: class_uri: prov:Entity @@ -28,7 +28,7 @@ classes: ' slots: - - is_or_was_revision_of + - revision_of - revision_number - revision_date exact_mappings: diff --git a/schemas/20251121/linkml/modules/classes/WorldCatIdentifier.yaml b/schemas/20251121/linkml/modules/classes/WorldCatIdentifier.yaml index 62e3f9a7b4..330170381f 100644 --- a/schemas/20251121/linkml/modules/classes/WorldCatIdentifier.yaml +++ b/schemas/20251121/linkml/modules/classes/WorldCatIdentifier.yaml @@ -8,7 +8,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code + - ../slots/20260202_matang/has_code classes: WorldCatIdentifier: class_uri: hc:WorldCatIdentifier @@ -25,9 +25,9 @@ classes: ' slots: - - has_or_had_code + - has_code slot_usage: - has_or_had_code: + has_code: pattern: ^[0-9]+$ close_mappings: - schema:identifier @@ -37,4 +37,4 @@ classes: custodian_types: "['*']" examples: - value: - has_or_had_code: '123456789' \ No newline at end of file + has_code: '123456789' \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/WorldHeritageSite.yaml b/schemas/20251121/linkml/modules/classes/WorldHeritageSite.yaml index 2a5cb6cabf..ef2abf6703 100644 --- a/schemas/20251121/linkml/modules/classes/WorldHeritageSite.yaml +++ b/schemas/20251121/linkml/modules/classes/WorldHeritageSite.yaml @@ -5,10 +5,10 @@ imports: - ../classes/AgentType - linkml:types - ../slots/custodian_only - - ../slots/has_or_had_identifier - - ../slots/has_or_had_score - - ../slots/has_or_had_type - - ../slots/is_or_was_related_to + - ../slots/identified_by + - ../slots/20260202_matang/has_score + - ../slots/20260202_matang/has_type + - ../slots/20260202_matang/related_to - ../slots/label_de - ../slots/label_es - ../slots/label_fr @@ -22,15 +22,15 @@ classes: is_a: CustodianType class_uri: skos:Concept slots: - - has_or_had_type - - has_or_had_score - - is_or_was_related_to - - has_or_had_identifier + - has_type + - has_score + - related_to + - identified_by slot_usage: - has_or_had_identifier: null - has_or_had_type: + identified_by: null + has_type: equals_expression: '["hc:FeatureCustodianType"]' - is_or_was_related_to: + related_to: range: WikidataAlignment inlined: true record_set_type: diff --git a/schemas/20251121/linkml/modules/classes/WritingSystem.yaml b/schemas/20251121/linkml/modules/classes/WritingSystem.yaml index 9006dc0e8f..13c53eb0cb 100644 --- a/schemas/20251121/linkml/modules/classes/WritingSystem.yaml +++ b/schemas/20251121/linkml/modules/classes/WritingSystem.yaml @@ -9,7 +9,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_code + - ../slots/20260202_matang/has_code classes: WritingSystem: class_uri: skos:Concept @@ -28,9 +28,9 @@ classes: ' slots: - - has_or_had_code + - has_code slot_usage: - has_or_had_code: + has_code: pattern: ^[A-Z][a-z]{3}$ examples: - value: Latn @@ -44,4 +44,4 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_code: Latn + has_code: Latn diff --git a/schemas/20251121/linkml/modules/classes/XPath.yaml b/schemas/20251121/linkml/modules/classes/XPath.yaml index 8b0087f9d8..6f20294c53 100644 --- a/schemas/20251121/linkml/modules/classes/XPath.yaml +++ b/schemas/20251121/linkml/modules/classes/XPath.yaml @@ -21,7 +21,7 @@ classes: **FORMAT**: Standard XPath 1.0 expressions **EXAMPLE**: `/html[1]/body[1]/div[6]/div[1]/table[3]/tbody[1]/tr[1]/td[1]/p[6]` - **USAGE CONTEXT**: Used with `has_or_had_provenance_path` slot to link provenance + **USAGE CONTEXT**: Used with `has_provenance_path` slot to link provenance records to specific locations in source documents.' class_uri: prov:Location close_mappings: diff --git a/schemas/20251121/linkml/modules/classes/XPathScore.yaml b/schemas/20251121/linkml/modules/classes/XPathScore.yaml index 0d22dcfcd3..6b48d0b0ca 100644 --- a/schemas/20251121/linkml/modules/classes/XPathScore.yaml +++ b/schemas/20251121/linkml/modules/classes/XPathScore.yaml @@ -8,7 +8,7 @@ prefixes: default_prefix: hc imports: - linkml:types - - ../slots/has_or_had_score + - ../slots/20260202_matang/has_score classes: XPathScore: class_uri: schema:Rating @@ -27,9 +27,9 @@ classes: ' slots: - - has_or_had_score + - has_score slot_usage: - has_or_had_score: + has_score: minimum_value: 0.0 maximum_value: 1.0 close_mappings: @@ -40,4 +40,4 @@ classes: custodian_types: '[''*'']' examples: - value: - has_or_had_score: 0.95 + has_score: 0.95 diff --git a/schemas/20251121/linkml/modules/classes/YoutubeChannel.yaml b/schemas/20251121/linkml/modules/classes/YoutubeChannel.yaml index e64e3421ce..e6f7c2d2d3 100644 --- a/schemas/20251121/linkml/modules/classes/YoutubeChannel.yaml +++ b/schemas/20251121/linkml/modules/classes/YoutubeChannel.yaml @@ -10,7 +10,7 @@ prefixes: foaf: http://xmlns.com/foaf/0.1/ imports: - linkml:types - - ../slots/has_or_had_language + - ../slots/20260202_matang/has_language # default_range: string classes: YoutubeChannel: @@ -32,6 +32,6 @@ classes: specificity_rationale: Generic utility class/slot created during migration custodian_types: '[''*'']' slots: - - has_or_had_language + - has_language - country - relationship diff --git a/schemas/20251121/linkml/modules/classes/YoutubeVideo.yaml b/schemas/20251121/linkml/modules/classes/YoutubeVideo.yaml index 0224b6d970..41b11d1471 100644 --- a/schemas/20251121/linkml/modules/classes/YoutubeVideo.yaml +++ b/schemas/20251121/linkml/modules/classes/YoutubeVideo.yaml @@ -9,7 +9,7 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types - - ../slots/has_or_had_language + - ../slots/20260202_matang/has_language # default_range: string classes: YoutubeVideo: @@ -32,10 +32,10 @@ classes: custodian_types: '[''*'']' slots: - like_count - - has_or_had_quantity - - has_or_had_resolution - - is_or_was_categorized_as - - has_or_had_language + - has_quantity + - has_resolution + - categorized_as + - has_language - live_broadcast_content - was_fetched_at - - is_or_was_part_of_total + - part_of_total diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/accept.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/accept.yaml index 28014d666b..99d027d1ef 100644 --- a/schemas/20251121/linkml/modules/slots/20260202_matang/accept.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/accept.yaml @@ -1,80 +1,140 @@ +# ============================================================================== +# LinkML Slot Definition: accept +# ============================================================================== +# Consenting to receive or undertake something offered. Used for documenting +# what heritage institutions accept (payments, donations, contracts, etc.). +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|------------------------|-------------------|---------|------------------------------------------| +# | **Schema.org**| `schema:AcceptAction` | schemaorg.owl:51-63| close | "The act of committing to/adopting | +# | | | | | an object." Action class. | +# | **CIDOC-CRM**| `crm:P22i_acquired_title_through`| CIDOC_CRM| close | Inverse of title transfer (receiver). | +# | **CIDOC-CRM**| `crm:E8_Acquisition` | CIDOC_CRM | related | Transfer of legal ownership class. | +# | **ODRL** | `odrl:permission` | odrl.ttl:547-553 | related | Permission to perform action. | +# | **Schema.org**| `schema:paymentAccepted`| schemaorg.owl | narrow | Payment methods accepted. | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-02 - Added multilingual support, verified ontology mappings +# ============================================================================== + id: https://nde.nl/ontology/hc/slot/accept name: accept title: Accept + prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ - schema: https://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# gr: http://purl.org/goodrelations/v1# - wdt: http://www.wikidata.org/prop/direct/ - wd: http://www.wikidata.org/entity/ - rico: https://www.ica.org/standards/RiC/ontology# - frac: http://www.w3.org/ns/lemon/frac# - ontolex: http://www.w3.org/ns/lemon/ontolex# odrl: http://www.w3.org/ns/odrl/2/ + imports: -- linkml:types + - linkml:types + default_prefix: hc + slots: accept: slot_uri: hc:accept - description: | - to consent to receive or undertake something offered - range: string + description: >- + To consent to receive or undertake something offered. + alt_descriptions: + nl: >- + Toestemmen om iets aangeboden te ontvangen of op zich te nemen. + de: >- + Zustimmen, etwas Angebotenes zu empfangen oder zu übernehmen. + fr: >- + Consentir à recevoir ou entreprendre quelque chose d'offert. + ar: >- + الموافقة على استلام أو تولي شيء معروض. + id: >- + Menyetujui untuk menerima atau melakukan sesuatu yang ditawarkan. + zh: >- + 同意接收或承担所提供的事物。 + es: >- + Consentir en recibir o emprender algo ofrecido. + range: uriorcurie multivalued: true - - # Cardinality + inlined: false minimum_cardinality: 0 - - # Semantic mappings (SKOS predicates) - # From: schemaorg.owl, goodrelations.owl, CIDOC_CRM_v7.1.3.rdf, odrl.ttl close_mappings: - - schema:AcceptAction # schemaorg.owl: Action representing acceptance - - crm:P22i_acquired_title_through # CIDOC-CRM: inverse of title transfer (receiver) + - schema:AcceptAction + - crm:P22i_acquired_title_through related_mappings: - - crm:E8_Acquisition # CIDOC-CRM: Transfer of legal ownership - - crm:P24_transferred_title_of # CIDOC-CRM: Physical thing involved in acquisition - - crm:P22_transferred_title_to # CIDOC-CRM: Actor acquiring ownership - - odrl:permission # ODRL: Permission to perform action (odrl.ttl) + - crm:E8_Acquisition + - crm:P24_transferred_title_of + - crm:P22_transferred_title_to + - odrl:permission narrow_mappings: - - schema:paymentAccepted # schemaorg.owl: Payment methods accepted - - schema:acceptsReservations # schemaorg.owl: Accepts reservations - - schema:acceptedPaymentMethod # schemaorg.owl: Accepted payment method - - schema:acceptedOffer # schemaorg.owl: The offer accepted - - schema:acceptedAnswer # schemaorg.owl: Accepted answer to question - - schema:currenciesAccepted # schemaorg.owl: Currencies accepted - - gr:acceptedPaymentMethods # goodrelations.owl: Payment methods accepted by business - - # Multilingual aliases + - schema:paymentAccepted + - schema:acceptsReservations + - schema:acceptedPaymentMethod + - schema:acceptedOffer + - schema:acceptedAnswer + - schema:currenciesAccepted + - gr:acceptedPaymentMethods aliases: - - accepts_or_accepted - - # Project-specific annotations - annotations: - # RAG retrieval score (0.0-1.0) - specificity_score: 0.5 - - # Structured examples + - accepts_or_accepted + - receives + - is_or_was_accept + structured_aliases: + - literal_form: accepteert + - is_or_was_accept + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: akzeptiert + predicate: EXACT_SYNONYM + in_language: de + - literal_form: accepte + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يقبل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: menerima + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 接受 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: acepta + predicate: EXACT_SYNONYM + in_language: es examples: - - value: '["credit_card", "debit_card", "cash", "iDEAL", "contactless"]' - description: Payment methods accepted by a Dutch museum - - value: '["conservation_contracts", "digitization_requests"]' - description: External work types accepted by a regional archive - - value: '["visiting_scholar", "research_fellowship", "artist_residency"]' - description: Residency programs accepted by a research library - - # Development notes - todos: - - "Add slot_usage examples for different domain classes (20260202T1645)" - - # Revision history + - value: '["credit_card", "debit_card", "cash", "iDEAL", "contactless"]' + description: Payment methods accepted by a Dutch museum + - value: '["conservation_contracts", "digitization_requests"]' + description: External work types accepted by a regional archive + - value: '["visiting_scholar", "research_fellowship", "artist_residency"]' + description: Residency programs accepted by a research library + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + specificity_rationale: Broadly applicable across custodian types. comments: - - "Migration: altered name from accepts_or_accepted to accept for consistency (20260202T1639)" - - "Migration: slot_fixes.yaml (20260114)" \ No newline at end of file + - | + **USAGE**: + Used for documenting what institutions accept: + - Payment methods (credit cards, cash, iDEAL) + - Donation types (objects, archives, funds) + - Contract types (conservation, digitization) + - Application types (fellowships, residencies) + - | + **CIDOC-CRM ACQUISITION**: + Maps to CIDOC-CRM's acquisition model: + - `crm:E8_Acquisition` - Transfer of legal ownership + - `crm:P22_transferred_title_to` - New owner + - `crm:P24_transferred_title_of` - Object transferred + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **Schema.org** | `schema:AcceptAction` | 51-63 | close | Committing/adopting action | + | **CIDOC-CRM** | `crm:P22i_acquired_title_through` | - | close | Title acquisition | + | **CIDOC-CRM** | `crm:E8_Acquisition` | - | related | Ownership transfer | + | **ODRL** | `odrl:permission` | 547-553 | related | Permission model | + | **Schema.org** | `schema:paymentAccepted` | - | narrow | Payment methods | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/access_restricted.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/access_restricted.yaml new file mode 100644 index 0000000000..1ab3010d43 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/access_restricted.yaml @@ -0,0 +1,121 @@ +# ============================================================================== +# LinkML Slot Definition: access_restricted +# ============================================================================== +# Boolean indicator for access restrictions on resources. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------------|----------------------|---------|------------------------------------| +# | **DCTerms** | `dcterms:accessRights` | dcterms.rdf:786-810 | close | Access rights information | +# | **Schema.org**| `schema:conditionsOfAccess`| schemaorg.owl | close | Conditions for access | +# | **RiC-O** | `rico:hasOrHadAllConditionsOfAccessType` | RiC-O | related | Conditions of access type | +# +# HIERARCHY: dcterms:accessRights rdfs:subPropertyOf dcterms:rights +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support, ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/access_restricted +name: access_restricted +title: Access Restricted + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + rico: https://www.ica.org/standards/RiC/ontology# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + access_restricted: + slot_uri: hc:accessRestricted + description: >- + To be subject to specific limitations, conditions, or prohibitions + regarding availability, viewing, or usage, often due to legal, privacy, + or security concerns. + alt_descriptions: + nl: >- + Onderworpen zijn aan specifieke beperkingen, voorwaarden of verboden + met betrekking tot beschikbaarheid, inzage of gebruik, vaak vanwege + juridische, privacy- of veiligheidsoverwegingen. + de: >- + Spezifischen Einschränkungen, Bedingungen oder Verboten hinsichtlich + Verfügbarkeit, Einsicht oder Nutzung unterliegen, oft aufgrund + rechtlicher, datenschutzrechtlicher oder sicherheitsrelevanter Gründe. + fr: >- + Être soumis à des limitations, conditions ou interdictions spécifiques + concernant la disponibilité, la consultation ou l'utilisation, souvent + pour des raisons juridiques, de confidentialité ou de sécurité. + ar: >- + أن يخضع لقيود أو شروط أو محظورات محددة تتعلق بالتوفر أو العرض أو + الاستخدام، غالباً لأسباب قانونية أو تتعلق بالخصوصية أو الأمان. + id: >- + Tunduk pada batasan, kondisi, atau larangan tertentu mengenai + ketersediaan, tampilan, atau penggunaan, sering karena masalah + hukum, privasi, atau keamanan. + zh: >- + 受到关于可用性、查看或使用的特定限制、条件或禁止,通常由于法律、隐私或安全方面的考虑。 + es: >- + Estar sujeto a limitaciones, condiciones o prohibiciones específicas + respecto a la disponibilidad, visualización o uso, a menudo debido a + preocupaciones legales, de privacidad o seguridad. + structured_aliases: + - literal_form: toegang beperkt + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Zugang eingeschränkt + predicate: EXACT_SYNONYM + in_language: de + - literal_form: accès restreint + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: وصول مقيد + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: akses dibatasi + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 访问受限 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: acceso restringido + predicate: EXACT_SYNONYM + in_language: es + range: boolean + close_mappings: + - dcterms:accessRights # dcterms.rdf:786-810 - Access rights information + - schema:conditionsOfAccess # Conditions for accessing the item + related_mappings: + - rico:hasOrHadAllConditionsOfAccessType # RiC-O conditions of access + - dcterms:rights # General rights statement + aliases: + - is_or_was_access_restricted + - restricted + - has_access_restriction + examples: + - value: "true" + description: Resource has access restrictions (e.g., privacy embargo) + - value: "false" + description: Resource is publicly accessible + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: + Boolean flag to quickly indicate if a resource has any access restrictions. + For detailed access conditions, use has_access_policy or related slots. + - | + **COMMON RESTRICTION REASONS**: + - Privacy protection (personal data) + - Security classification + - Legal embargo period + - Copyright restrictions + - Conservation concerns (fragile materials) diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/accessioned_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/accessioned_through.yaml new file mode 100644 index 0000000000..3ea55a64c4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/accessioned_through.yaml @@ -0,0 +1,109 @@ +# ============================================================================== +# LinkML Slot Definition: accessioned_through +# ============================================================================== +# Event or method through which something was accessioned into a collection. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|---------------------------------|------------------------------|---------|----------------------------------------------------------| +# | **CIDOC-CRM** | `crm:P22i_acquired_title_through` | CIDOC_CRM_v7.1.3.rdf:1697-1708 | close | "acquired title through" - focuses on legal title transfer | +# | **PROV-O** | `prov:wasGeneratedBy` | prov.ttl:1104-1113 | related | Generation by activity - more generic | +# +# SEMANTIC NOTES: +# - crm:P22i links an Actor to an E8_Acquisition event that transferred title TO them +# - Our slot links an Object/Collection item to the method/event of accessioning +# - Accessioning is broader than acquisition: includes registration, cataloguing, formal acceptance +# - No exact mapping exists; custom hc: URI is appropriate +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added multilingual support, ontology mappings, header documentation +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/accessioned_through +name: accessioned_through +title: Accessioned Through + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + accessioned_through: + slot_uri: hc:accessionedThrough + description: >- + To be formally accepted and recorded into a permanent collection via a specific + acquisition method, legal transfer, or administrative process. + alt_descriptions: + nl: >- + Formeel geaccepteerd en geregistreerd in een permanente collectie via een specifieke + verwervingsmethode, juridische overdracht of administratief proces. + de: >- + Formell in eine permanente Sammlung aufgenommen und registriert durch eine spezifische + Erwerbsmethode, rechtliche Übertragung oder einen Verwaltungsprozess. + fr: >- + Formellement accepté et enregistré dans une collection permanente par le biais d'une + méthode d'acquisition spécifique, d'un transfert juridique ou d'un processus administratif. + ar: >- + أن يتم قبوله وتسجيله رسمياً في مجموعة دائمة عبر طريقة اقتناء محددة أو نقل قانوني أو عملية إدارية. + id: >- + Diterima secara resmi dan dicatat ke dalam koleksi permanen melalui metode akuisisi + tertentu, pengalihan hukum, atau proses administratif. + zh: >- + 通过特定的收购方式、法律转让或行政程序正式接收并记录到永久收藏中。 + es: >- + Ser aceptado formalmente y registrado en una colección permanente a través de un + método de adquisición específico, transferencia legal o proceso administrativo. + structured_aliases: + - literal_form: geaccessioneerd via + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: inventarisiert durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: inventorié par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: تم ضمه عبر + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diaksesi melalui + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 入藏方式 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: inventariado mediante + predicate: EXACT_SYNONYM + in_language: es + range: string + multivalued: true + close_mappings: + - crm:P22i_acquired_title_through # CIDOC_CRM_v7.1.3.rdf:1697-1708 - "acquired title through" (focuses on legal title) + related_mappings: + - prov:wasGeneratedBy # prov.ttl:1104 - entity generation by activity (more generic) + aliases: + - is_or_was_accessioned_through + comments: + - | + **USAGE**: Use this slot to link an item to the acquisition event, method, or process + through which it was formally accessioned into the collection. Values may include + donation events, purchase transactions, bequest processes, or transfer agreements. + - | + **SEMANTIC DISTINCTION**: Accessioning is broader than acquisition; it includes the + formal registration and acceptance into the collection's permanent holdings, not just + the transfer of ownership. + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/accumulated_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/accumulated_at.yaml new file mode 100644 index 0000000000..6e7fdf1e46 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/accumulated_at.yaml @@ -0,0 +1,111 @@ +# ============================================================================== +# LinkML Slot Definition: accumulated_at +# ============================================================================== +# Links archival records to the location where they were accumulated. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |------------|---------------------------|-----------|---------|--------------------------------------| +# | **RiC-O** | `rico:hasAccumulator` | N/A | close | Agent who accumulated (not location) | +# | **RiC-O** | `rico:hasAccumulationDate`| N/A | related | Date of accumulation (not location) | +# +# No exact standard mapping exists for accumulation location. +# This is a domain-specific property for archival contexts. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Removed incorrect exact_mapping, added multilingual +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/accumulated_at +name: accumulated_at +title: Accumulated At +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + accumulated_at: + slot_uri: hc:accumulatedAt + description: >- + To be aggregated, collected, or accrued as a body of records within a + specific archival repository, custodial institution, or storage environment. + alt_descriptions: + nl: >- + Verzameld, bijeengebracht of opgebouwd als een geheel van archiefstukken + binnen een specifieke archiefbewaarplaats, bewaarinstelling of + opslagomgeving. + de: >- + Als Bestand von Unterlagen in einem bestimmten Archivdepot, einer + Verwahrinstitution oder Aufbewahrungsumgebung aggregiert, gesammelt + oder angesammelt zu werden. + fr: >- + Être agrégé, collecté ou accumulé en tant que fonds d'archives au sein + d'un dépôt d'archives, d'une institution de conservation ou d'un + environnement de stockage spécifique. + ar: >- + أن يتم تجميعه أو جمعه أو تراكمه كمجموعة من السجلات ضمن مستودع + أرشيفي محدد أو مؤسسة حفظ أو بيئة تخزين. + id: >- + Dikumpulkan, dihimpun, atau diakumulasikan sebagai kumpulan arsip + dalam repositori arsip, lembaga penyimpanan, atau lingkungan + penyimpanan tertentu. + zh: >- + 作为档案记录集合在特定档案库、保管机构或存储环境中 + 聚集、收集或累积。 + es: >- + Ser agregado, recopilado o acumulado como un cuerpo de registros + dentro de un repositorio de archivos, institución custodial o + entorno de almacenamiento específico. + structured_aliases: + - literal_form: geaccumuleerd bij + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: angesammelt bei + predicate: EXACT_SYNONYM + in_language: de + - literal_form: accumulé à + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: متراكم في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: terakumulasi di + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 累积于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: acumulado en + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + related_mappings: + - rico:hasAccumulationDate # About date, not location + aliases: + - has_or_had_accumulation + - has_accumulation + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot to indicate the archival repository or + institution where records were accumulated over time. + - | + **ARCHIVAL DOMAIN**: This is a domain-specific property for archival + contexts. The RiC-O `rico:hasAccumulationDate` is related but captures + the date, not the location of accumulation. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/accuracy.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/accuracy.yaml new file mode 100644 index 0000000000..03d563bcf8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/accuracy.yaml @@ -0,0 +1,109 @@ +# ============================================================================== +# LinkML Slot Definition: accuracy +# ============================================================================== +# A measure of correctness, precision, or conformity to fact. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|----------------------------------|----------------|---------|--------------------------------| +# | **GeoSPARQL** | `geosparql:hasSpatialAccuracy` | geo.ttl:446-53 | close | "The positional accuracy of | +# | | | | | the coordinates of a Geometry" | +# | | | | | - spatial-specific | +# | **GeoSPARQL** | `geosparql:hasMetricSpatialAccuracy`| geo.ttl:883-92| close | Spatial accuracy in meters | +# | **DQV** | `dqv:precision` | dqv.ttl:184 | related | Precision dimension | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed slot_uri (was incorrectly geosparql:hasGeometry), +# fixed duplicate aliases, added multilingual +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/accuracy +name: accuracy +title: Accuracy +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + geosparql: http://www.opengis.net/ont/geosparql# + gn: http://www.geonames.org/ontology# + schema: http://schema.org/ + dqv: http://www.w3.org/ns/dqv# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + accuracy: + slot_uri: hc:accuracy + description: >- + To have a defined measure of correctness, precision, or conformity + to fact and reality. + alt_descriptions: + nl: >- + Een gedefinieerde maatstaf van correctheid, precisie of + overeenstemming met feiten en werkelijkheid hebben. + de: >- + Ein definiertes Maß für Korrektheit, Präzision oder + Übereinstimmung mit Fakten und Realität haben. + fr: >- + Avoir une mesure définie de l'exactitude, de la précision ou de + la conformité aux faits et à la réalité. + ar: >- + أن يكون له مقياس محدد للصحة أو الدقة أو المطابقة للحقيقة والواقع. + id: >- + Memiliki ukuran yang ditentukan untuk kebenaran, presisi, atau + kesesuaian dengan fakta dan kenyataan. + zh: >- + 具有正确性、精确性或与事实和现实相符的定义度量。 + es: >- + Tener una medida definida de corrección, precisión o conformidad + con los hechos y la realidad. + structured_aliases: + - literal_form: nauwkeurigheid + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Genauigkeit + predicate: EXACT_SYNONYM + in_language: de + - literal_form: précision + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: دقة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: akurasi + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 精度 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: precisión + predicate: EXACT_SYNONYM + in_language: es + range: float + close_mappings: + - geosparql:hasSpatialAccuracy # geo.ttl:446-453 - spatial-specific + - geosparql:hasMetricSpatialAccuracy # geo.ttl:883-892 - in meters + related_mappings: + - schema:geo + - gn:locationMap + - dqv:precision # dqv.ttl:184 - precision dimension + aliases: + - has_or_had_accuracy_in_meters + - has_accuracy_in_meters + annotations: + custodian_types: '["*"]' + custodian_types_rationale: >- + Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: >- + Moderately specific slot. + comments: + - | + **USAGE**: Use this slot to indicate the accuracy of measurements, + coordinates, or data values. For spatial accuracy in meters, use + the `geosparql:hasMetricSpatialAccuracy` property directly when + applicable. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/acquired_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/acquired_by.yaml new file mode 100644 index 0000000000..240d17eadd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/acquired_by.yaml @@ -0,0 +1,109 @@ +# ============================================================================== +# LinkML Slot Definition: acquired_by +# ============================================================================== +# Entity (institution, organization, or individual) that acquired something. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------------------|------------------------------|---------|----------------------------------------------------------| +# | **CIDOC-CRM** | `crm:P22_transferred_title_to`| CIDOC_CRM_v7.1.3.rdf:1681-1696 | exact | "identifies the E39 Actor that acquires legal ownership" | +# | **Schema.org**| `schema:acquiredFrom` | schemaorg.owl (inverse) | related | Inverse relationship - identifies seller, not buyer | +# +# SEMANTIC NOTES: +# - crm:P22 domain is E8_Acquisition, range is E39_Actor +# - Our slot links from an object perspective to the acquiring actor +# - The inverse crm:P22i_acquired_title_through links Actor TO Acquisition event +# - P22 is exact: "identifies the instance of E39 Actor that acquires the legal ownership" +# +# HIERARCHY: crm:P22 rdfs:subPropertyOf crm:P14_carried_out_by (line 1694) +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added multilingual support, upgraded to exact_mapping, header documentation +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/acquired_by +name: acquired_by +title: Acquired By + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + acquired_by: + slot_uri: crm:P22_transferred_title_to + description: >- + To be obtained or gained by a specific institution, organization, or individual, + typically involving a transfer of legal title or custody. + alt_descriptions: + nl: >- + Verkregen of verworven door een specifieke instelling, organisatie of persoon, + doorgaans met overdracht van juridische eigendom of beheer. + de: >- + Von einer bestimmten Institution, Organisation oder Einzelperson erworben, + typischerweise mit Übertragung des rechtlichen Eigentums oder der Verwahrung. + fr: >- + Obtenu ou acquis par une institution, organisation ou individu spécifique, + impliquant généralement un transfert de titre légal ou de garde. + ar: >- + أن يتم الحصول عليه أو اكتسابه من قبل مؤسسة أو منظمة أو فرد معين، + عادةً ما يتضمن نقل الملكية القانونية أو الحيازة. + id: >- + Diperoleh atau didapatkan oleh institusi, organisasi, atau individu tertentu, + biasanya melibatkan pengalihan hak milik atau hak asuh yang sah. + zh: >- + 由特定机构、组织或个人获得或取得,通常涉及法律所有权或保管权的转让。 + es: >- + Obtenido o adquirido por una institución, organización o individuo específico, + generalmente involucrando una transferencia de título legal o custodia. + structured_aliases: + - literal_form: verworven door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: erworben von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: acquis par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مكتسب من قبل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diperoleh oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 被...收购 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: adquirido por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + exact_mappings: + - crm:P22_transferred_title_to # CIDOC_CRM_v7.1.3.rdf:1681-1696 - "identifies the E39 Actor that acquires the legal ownership" + aliases: + - is_or_was_acquired_by + comments: + - | + **USAGE**: Use this slot to identify the actor (institution, organization, person) that + acquired an object or collection. The value should be a reference to an Actor entity. + - | + **SEMANTIC NOTE**: This property corresponds to CIDOC-CRM P22, which specifically + identifies the new owner in an acquisition event. For the acquisition event itself, + use `acquired_through`. + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/acquired_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/acquired_through.yaml new file mode 100644 index 0000000000..baa004a07c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/acquired_through.yaml @@ -0,0 +1,113 @@ +# ============================================================================== +# LinkML Slot Definition: acquired_through +# ============================================================================== +# Method or event through which something was acquired. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------------------|------------------------------|---------|----------------------------------------------------------| +# | **CIDOC-CRM** | `crm:P24i_changed_ownership_through`| CIDOC_CRM_v7.1.3.rdf:1752-1762 | exact | Links Physical Thing to E8_Acquisition event | +# | **PROV-O** | `prov:wasGeneratedBy` | prov.ttl:1104-1113 | close | Generation by activity - more generic | +# +# SEMANTIC NOTES: +# - crm:P24i domain is E18_Physical_Thing, range is E8_Acquisition +# - "changed ownership through" directly captures acquisition via event/transaction +# - Inverse of P24_transferred_title_of (which links acquisition TO object) +# - Exact semantic match: object changed ownership through acquisition event +# +# HIERARCHY: crm:P24 is a top-level property (no subPropertyOf) +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added multilingual support, exact_mapping crm:P24i, updated slot_uri +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/acquired_through +name: acquired_through +title: Acquired Through + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + acquired_through: + slot_uri: crm:P24i_changed_ownership_through + description: >- + To be obtained via a specific event, process, or transaction—such as a donation, + purchase, or bequest—that facilitated the transfer of ownership or custody. + alt_descriptions: + nl: >- + Verkregen via een specifieke gebeurtenis, proces of transactie—zoals een schenking, + aankoop of legaat—die de overdracht van eigendom of beheer mogelijk maakte. + de: >- + Erworben durch ein spezifisches Ereignis, einen Prozess oder eine Transaktion—wie + eine Schenkung, einen Kauf oder ein Vermächtnis—die die Übertragung von Eigentum + oder Verwahrung ermöglichte. + fr: >- + Obtenu par le biais d'un événement, processus ou transaction spécifique—tel qu'un + don, un achat ou un legs—qui a facilité le transfert de propriété ou de garde. + ar: >- + تم الحصول عليه عبر حدث أو عملية أو معاملة محددة—مثل التبرع أو الشراء أو الوصية— + التي سهلت نقل الملكية أو الحيازة. + id: >- + Diperoleh melalui peristiwa, proses, atau transaksi tertentu—seperti donasi, + pembelian, atau wasiat—yang memfasilitasi pengalihan kepemilikan atau hak asuh. + zh: >- + 通过特定的事件、过程或交易获得——如捐赠、购买或遗赠——促成了所有权或保管权的转移。 + es: >- + Obtenido a través de un evento, proceso o transacción específica—como una donación, + compra o legado—que facilitó la transferencia de propiedad o custodia. + structured_aliases: + - literal_form: verworven via + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: erworben durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: acquis par le biais de + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مكتسب عبر + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diperoleh melalui + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 通过...获得 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: adquirido mediante + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + exact_mappings: + - crm:P24i_changed_ownership_through # CIDOC_CRM_v7.1.3.rdf:1752-1762 - links Physical Thing to E8_Acquisition + close_mappings: + - prov:wasGeneratedBy # prov.ttl:1104 - entity generation by activity (more generic) + aliases: + - is_or_was_acquired_through + comments: + - | + **USAGE**: Use this slot to link an object to the acquisition event or transaction + through which it was obtained. Values should reference E8_Acquisition events such as + donations, purchases, bequests, or field collection activities. + - | + **SEMANTIC NOTE**: This corresponds to CIDOC-CRM P24i, which links a physical thing + to the acquisition event that changed its ownership. For identifying WHO acquired + the item, use `acquired_by`. + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/active_since.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/active_since.yaml new file mode 100644 index 0000000000..37815984e4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/active_since.yaml @@ -0,0 +1,112 @@ +# ============================================================================== +# LinkML Slot Definition: active_since +# ============================================================================== +# Date when something became active or operational. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------------|------------------------------|---------|----------------------------------------------------------| +# | **PROV-O** | `prov:startedAtTime` | prov.ttl:1018-1028 | close | "time at which an activity started" - domain is Activity | +# | **Schema.org**| `schema:foundingDate` | schemaorg.owl:18435-18450 | close | "date that this organization was founded" - Organizations only | +# | **CIDOC-CRM** | `crm:P82a_begin_of_the_begin`| CIDOC_CRM_v7.1.3.rdf | related | Time-span beginning - more precise temporal modeling | +# +# SEMANTIC NOTES: +# - Our slot is general: applies to institutions, activities, services, etc. +# - prov:startedAtTime requires domain to be prov:Activity +# - schema:foundingDate requires domain to be schema:Organization +# - No exact match exists for this general "active since" concept +# - Custom hc: URI is appropriate for the broader semantic +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added multilingual support, close_mappings, header documentation +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/active_since +name: active_since +title: Active Since + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + active_since: + slot_uri: hc:activeSince + description: >- + To be operational, functioning, or in existence continuously from a specific + date or point in time onwards. + alt_descriptions: + nl: >- + Operationeel, functionerend of bestaand continu vanaf een specifieke datum + of tijdstip en daarna. + de: >- + Seit einem bestimmten Datum oder Zeitpunkt kontinuierlich in Betrieb, + funktionierend oder existent. + fr: >- + Être opérationnel, fonctionnel ou en existence de manière continue depuis + une date ou un moment spécifique. + ar: >- + أن يكون قيد التشغيل أو العمل أو الوجود بشكل مستمر منذ تاريخ أو نقطة زمنية محددة فصاعداً. + id: >- + Beroperasi, berfungsi, atau ada secara terus-menerus sejak tanggal atau + titik waktu tertentu dan seterusnya. + zh: >- + 从特定日期或时间点开始持续运营、运作或存在。 + es: >- + Estar operativo, funcionando o en existencia de forma continua desde una + fecha o momento específico en adelante. + structured_aliases: + - literal_form: actief sinds + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: aktiv seit + predicate: EXACT_SYNONYM + in_language: de + - literal_form: actif depuis + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: نشط منذ + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: aktif sejak + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 活跃自 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: activo desde + predicate: EXACT_SYNONYM + in_language: es + range: datetime + multivalued: false + close_mappings: + - prov:startedAtTime # prov.ttl:1018-1028 - "time at which an activity started" (domain: Activity) + - schema:foundingDate # schemaorg.owl:18435-18450 - "date that this organization was founded" (domain: Organization) + related_mappings: + - dcterms:created # creation date - similar but not specifically about operational start + aliases: + - is_or_was_active_since + comments: + - | + **USAGE**: Use this slot to record when an institution, service, department, + or activity became operational. This captures the start of continuous activity, + not just the founding or creation date. + - | + **SEMANTIC NOTE**: This is more general than schema:foundingDate (organizations only) + or prov:startedAtTime (activities only). It can apply to institutions, services, + programs, or any entity with an operational lifecycle. + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/administered_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/administered_by.yaml new file mode 100644 index 0000000000..9a7d63b41e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/administered_by.yaml @@ -0,0 +1,201 @@ +# ============================================================================== +# LinkML Slot Definition: administered_by +# ============================================================================== +# Be managed, directed, or superintended by a specific entity or authority +# responsible for operational execution. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------------|----------------------|---------|------------------------------------| +# | **RiC-O** | `rico:isOrWasUnderAuthorityOf` | RiC-O_1-1:6927 | broad | Parent of hasOrHadManager | +# | **W3C Org** | `org:hasUnit` | org.rdf:510 | close | Organization has unit | +# | **RiC-O** | `rico:hasOrHadManager` | RiC-O_1-1:6925 | close | Has/had manager | +# | **RiC-O** | `rico:hasOrHadHolder` | RiC-O_1-1:6438 | narrow | subPropertyOf hasOrHadManager | +# | **RiC-O** | `rico:isOrWasRegulatedBy` | RiC-O_1-1:15053 | related | Regulated by authority | +# | **Schema.org**| `schema:member` | schemaorg.owl | related | Member of organization | +# | **CIDOC-CRM** | `crm:P50_has_current_keeper` | CIDOC_CRM:2410 | related | Current keeper/custodian | +# +# CREATED: 2026-01-16 +# UPDATED: 2026-02-03 - Added broad/narrow mappings based on RiC-O hierarchy +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/administered_by +name: administered_by +title: administered by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ +default_prefix: hc +imports: + - linkml:types +slots: + administered_by: + slot_uri: hc:administeredBy + description: >- + To be managed, directed, or superintended by a specific entity or + authority responsible for operational execution. + alt_descriptions: + nl: >- + Worden beheerd, geleid of bestuurd door een specifieke entiteit of + autoriteit die verantwoordelijk is voor de operationele uitvoering. + de: >- + Von einer bestimmten Einheit oder Behörde verwaltet, geleitet oder + beaufsichtigt werden, die für die operative Durchführung + verantwortlich ist. + fr: >- + Être géré, dirigé ou supervisé par une entité ou une autorité + spécifique responsable de l'exécution opérationnelle. + ar: >- + أن تُدار أو تُوجَّه أو تُشرف عليها جهة أو سلطة محددة مسؤولة + عن التنفيذ التشغيلي. + id: >- + Dikelola, diarahkan, atau diawasi oleh entitas atau otoritas + tertentu yang bertanggung jawab atas pelaksanaan operasional. + zh: >- + 由负责运营执行的特定实体或机构管理、指导或监督。 + es: >- + Ser gestionado, dirigido o supervisado por una entidad o autoridad + específica responsable de la ejecución operativa. + structured_aliases: + - literal_form: beheerd door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: verwaltet von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: administré par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يُدار من قبل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dikelola oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 由...管理 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: administrado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + + # VERIFIED MAPPINGS (2026-02-03) + # Source files: data/ontology/org.rdf, data/ontology/RiC-O_1-1.rdf, + # data/ontology/schemaorg.owl, data/ontology/CIDOC_CRM_v7.1.3.rdf + + broad_mappings: + # RiC-O_1-1.rdf line 6927-6928: hasOrHadManager rdfs:subPropertyOf isOrWasUnderAuthorityOf + # Broad: general authority relationship (parent of management) + - rico:isOrWasUnderAuthorityOf # from RiC-O_1-1.rdf - parent of hasOrHadManager + + narrow_mappings: + # RiC-O_1-1.rdf line 6438: hasOrHadHolder rdfs:subPropertyOf hasOrHadManager + # Narrow: specific type of management - physical custody/holding + - rico:hasOrHadHolder # from RiC-O_1-1.rdf - subPropertyOf hasOrHadManager + + close_mappings: + # org.rdf line 510: hasUnit + # "Indicates a unit which is part of this Organization" + # Close: organizational structure (unit managed by larger org) + - org:hasUnit # from org.rdf - organization has unit + + # RiC-O_1-1.rdf line 6925: hasOrHadManager + # "Connects a RecordSet to an Agent that manages or managed it" + # Close: management relationship for archival records + - rico:hasOrHadManager # from RiC-O_1-1.rdf - has/had manager + + related_mappings: + # RiC-O_1-1.rdf line 15053: isOrWasRegulatedBy + # "Connects an Agent to a Rule that regulates or regulated it" + # Related: regulatory relationship (different from administration) + - rico:isOrWasRegulatedBy # from RiC-O_1-1.rdf - regulated by authority + + # org.rdf line 353: headOf + # "Indicates that a person is the head or principal administrator of an organization" + # Related: inverse direction - person heads organization + - org:headOf # from org.rdf - head of organization (inverse) + + # org.rdf line 427: hasMember + # "Indicates a person who is a member of the subject Organization" + # Related: membership relationship (broader than administration) + - org:hasMember # from org.rdf - organization has member + + # CIDOC_CRM_v7.1.3.rdf line 2410: P50_has_current_keeper + # "Identifies the E39 Actor that had custody of an instance of E18 Physical Thing" + # Related: custody/keeping relationship + - crm:P50_has_current_keeper # from CIDOC_CRM - current keeper/custodian + + aliases: + - is_or_was_administered_by + - has_or_had_administration + - managed_by + - governed_by + + annotations: + custodian_types: '["*"]' + custodian_types_rationale: >- + Administration relationships applicable to all heritage custodian + types for organizational governance and management structures. + specificity_score: 0.40 + specificity_rationale: >- + Moderate specificity - administration is a general organizational + concept applicable to entities with governance structures. + + examples: + - value: https://example.org/org/ministry-of-culture + description: Museum administered by Ministry of Culture + - value: https://example.org/org/university-board + description: University library administered by university board + - value: https://example.org/org/foundation-trustees + description: Archive administered by foundation trustees + - value: https://ror.org/02e2c7k09 + description: Collection administered by Rijksmuseum (via ROR ID) + + comments: + - Updated 2026-02-02 with verified ontology mappings and translations + - | + **PURPOSE**: + Captures administrative and governance relationships for heritage + institutions. Indicates which entity or authority is responsible + for the operational management, direction, or oversight of a + resource, collection, or organization. + - | + **RiC-O NAMING** (Rule 39): + Uses "is_or_was_administered_by" alias to indicate temporal + relationship - administrative responsibility may change over time + as organizations restructure or merge. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **RiC-O** | `rico:isOrWasUnderAuthorityOf` | 6927 | broad | Parent of hasOrHadManager | + | **W3C Org** | `org:hasUnit` | 510 | close | Organization has unit | + | **RiC-O** | `rico:hasOrHadManager` | 6925 | close | Has/had manager | + | **RiC-O** | `rico:hasOrHadHolder` | 6438 | narrow | subPropertyOf hasOrHadManager | + | **RiC-O** | `rico:isOrWasRegulatedBy` | 15053 | related | Regulated by authority | + | **W3C Org** | `org:headOf` | 353 | related | Head of org (inverse) | + | **CIDOC-CRM** | `crm:P50_has_current_keeper` | 2410 | related | Current keeper | + - | + **USE CASES**: + - Museum administered by government ministry + - Library administered by university + - Archive administered by foundation + - Collection administered by consortium + - Program administered by funding agency + - | + **DISTINCTION FROM OWNERSHIP**: + Administration differs from ownership (has_asset, schema:owns). + An organization may administer resources it does not own, such as + collections on loan or programs funded by external grants. + + see_also: + - https://www.w3.org/ns/org#hasUnit + - https://www.ica.org/standards/RiC/ontology#hasOrHadManager diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/affect.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/affect.yaml index 958d7e1550..3f7d7e0734 100644 --- a/schemas/20251121/linkml/modules/slots/20260202_matang/affect.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/affect.yaml @@ -1,44 +1,148 @@ +# ============================================================================== +# LinkML Slot Definition: affect +# ============================================================================== +# General-purpose property for influence relationships. Captures how entities, +# activities, or agents have effects on other resources. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|------------------------|-------------------|---------|------------------------------------------| +# | **PROV-O** | `prov:influenced` | prov.ttl:706-714 | exact | "Inverse of wasInfluencedBy." Active | +# | | | | | influence relation. | +# | **PROV-O** | `prov:generated` | prov.ttl:585 | narrow | subPropertyOf prov:influenced | +# | **PROV-O** | `prov:invalidated` | prov.ttl:735 | narrow | subPropertyOf prov:influenced | +# | **PROV-O** | `prov:wasInfluencedBy` | prov.ttl:1147-1176| close | Passive: "was influenced by" relation. | +# | **PROV-O** | `prov:Influence` | prov.ttl:253-263 | related | Class for qualified influence relations. | +# | **CIDOC-CRM**| `crm:P15_was_influenced_by`| CIDOC_CRM:1517-1530| related | Activity influenced by entity/event. | +# | **CIDOC-CRM**| `crm:P15i_influenced` | CIDOC_CRM:1531-1542| related | Inverse: entity influenced activity. | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Changed slot_uri from hc:affect to prov:influenced (exact mapping) +# ============================================================================== + id: https://nde.nl/ontology/hc/slot/affect name: affect title: affect + prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ - schema: https://schema.org/ - dcterms: http://purl.org/dc/terms/ prov: http://www.w3.org/ns/prov# crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc + imports: -- linkml:types + - linkml:types + +default_prefix: hc + slots: affect: title: Affect - description: | - to have an effect on; make a difference to - slot_uri: hc:affect - range: string # uriorcurie - # range: Organization + slot_uri: prov:influenced + description: >- + To have an effect on; make a difference to. + alt_descriptions: + nl: >- + Een effect hebben op; verschil maken voor. + de: >- + Einen Effekt haben auf; einen Unterschied machen für. + fr: >- + Avoir un effet sur; faire une différence pour. + ar: >- + أن يكون له تأثير على؛ إحداث فرق في. + id: >- + Memiliki efek pada; membuat perbedaan untuk. + zh: >- + 对……产生影响;对……有所改变。 + es: >- + Tener un efecto en; hacer una diferencia para. + range: uriorcurie multivalued: true + inlined: false + exact_mappings: + - prov:influenced + narrow_mappings: + # prov.ttl line 585: prov:generated + # rdfs:subPropertyOf prov:influenced + # Narrow: specific influence - activity generated entity + - prov:generated # from prov.ttl - activity generated entity + + # prov.ttl line 735: prov:invalidated + # rdfs:subPropertyOf prov:influenced + # Narrow: specific influence - activity invalidated entity + - prov:invalidated # from prov.ttl - activity invalidated entity + close_mappings: + - prov:wasInfluencedBy + related_mappings: + - prov:Influence + - prov:ActivityInfluence + - prov:EntityInfluence + - prov:AgentInfluence + - crm:P15_was_influenced_by + - crm:P15i_influenced + aliases: + - affects_or_affect + - influences + - is_or_was_affect + structured_aliases: + - literal_form: beïnvloedt + - is_or_was_affect + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: beeinflusst + predicate: EXACT_SYNONYM + in_language: de + - literal_form: affecte + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يؤثر + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mempengaruhi + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 影响 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: afecta + predicate: EXACT_SYNONYM + in_language: es + examples: + - value: "hc:DigitizationPolicy" + description: Policy that affects collection accessibility + - value: "hc:BudgetReduction2023" + description: Budget change affecting operations + - value: "hc:ClimateControlSystem" + description: Infrastructure affecting preservation conditions annotations: custodian_types: '["*"]' specificity_score: 0.4 specificity_rationale: Broad applicability across custodian types. - # Semantic mappings (SKOS predicates) - # From: prov-o.ttl - PROV-O Influence model - exact_mappings: - - prov:influenced # prov-o.ttl: Inverse of wasInfluencedBy - close_mappings: - - prov:wasInfluencedBy # prov-o.ttl: Entity/Activity/Agent was influenced by another - related_mappings: - - prov:Influence # prov-o.ttl: Class for qualified influence relationships - - prov:ActivityInfluence # prov-o.ttl: Activity's effect on another resource - - prov:EntityInfluence # prov-o.ttl: Entity's effect on another resource - - prov:AgentInfluence # prov-o.ttl: Agent's effect on another resource - - crm:P15_was_influenced_by # CIDOC-CRM: Activity influenced by entity/event - aliases: - - affects_or_affect + comments: + - | + **USAGE**: + General influence property for: + - Policy impacts on operations + - Resource allocation effects + - Environmental factors + - Stakeholder influences + - Regulatory impacts + - | + **PROV-O INFLUENCE MODEL**: + PROV-O provides a rich model for influence relationships: + - `prov:influenced` - active influence (X influenced Y) + - `prov:wasInfluencedBy` - passive influence (Y was influenced by X) + - `prov:Influence` - class for qualified influence with details + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **PROV-O** | `prov:influenced` | 706-714 | exact | Active influence relation | + | **PROV-O** | `prov:generated` | 585 | narrow | subPropertyOf prov:influenced | + | **PROV-O** | `prov:invalidated` | 735 | narrow | subPropertyOf prov:influenced | + | **PROV-O** | `prov:wasInfluencedBy` | 1147-1176 | close | Passive influence | + | **PROV-O** | `prov:Influence` | 253-263 | related | Qualified influence class | + | **CIDOC-CRM** | `crm:P15_was_influenced_by` | 1517-1530 | related | Activity influenced by entity | + | **CIDOC-CRM** | `crm:P15i_influenced` | 1531-1542 | related | Inverse relation | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/affected_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/affected_by.yaml new file mode 100644 index 0000000000..1b8d464fc7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/affected_by.yaml @@ -0,0 +1,99 @@ +# ============================================================================== +# LinkML Slot Definition: affected_by +# ============================================================================== +# Agent, event, or condition that influenced or impacted something. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|---------------------------|----------------------|---------|----------------------------------------------------------| +# | **PROV-O** | `prov:wasInfluencedBy` | prov.ttl:706-714 | exact | "influenced" - inverse of wasInfluencedBy | +# | **DBpedia** | `dbo:influencedBy` | dbpedia_ontology.owl:11772 | close | For creative/intellectual influence | +# +# SEMANTIC NOTES: +# - prov:wasInfluencedBy is the canonical provenance property for influence relationships +# - Our slot captures passive voice: entity WAS affected BY agent/event +# - prov:influenced is the inverse (active: agent INFLUENCED entity) +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support, exact_mapping prov:wasInfluencedBy +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/affected_by +name: affected_by +title: Affected By + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + affected_by: + slot_uri: prov:wasInfluencedBy + description: >- + To be influenced, altered, or impacted by a specific agent, event, or condition, + resulting in a change of state or circumstance. + alt_descriptions: + nl: >- + Beïnvloed, gewijzigd of beïnvloed door een specifieke actor, gebeurtenis of + omstandigheid, resulterend in een verandering van staat of situatie. + de: >- + Beeinflusst, verändert oder beeinträchtigt durch einen bestimmten Akteur, ein + Ereignis oder eine Bedingung, was zu einer Zustandsänderung führt. + fr: >- + Être influencé, modifié ou impacté par un agent, événement ou condition + spécifique, entraînant un changement d'état ou de circonstance. + ar: >- + أن يتأثر أو يتغير أو يتعرض لتأثير من قبل عامل أو حدث أو ظرف معين، + مما يؤدي إلى تغيير في الحالة أو الظروف. + id: >- + Dipengaruhi, diubah, atau terdampak oleh agen, peristiwa, atau kondisi + tertentu, yang mengakibatkan perubahan keadaan atau situasi. + zh: >- + 受到特定代理人、事件或条件的影响、改变或冲击,导致状态或情况的变化。 + es: >- + Ser influenciado, alterado o impactado por un agente, evento o condición + específica, resultando en un cambio de estado o circunstancia. + structured_aliases: + - literal_form: beïnvloed door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: beeinflusst von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: affecté par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: متأثر بـ + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dipengaruhi oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 受...影响 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: afectado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + exact_mappings: + - prov:wasInfluencedBy # prov.ttl:706-714 - canonical provenance influence property + close_mappings: + - dbo:influencedBy # dbpedia_ontology.owl:11772 - creative/intellectual influence + aliases: + - is_or_was_affected_by_event + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/affiliated_with.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/affiliated_with.yaml new file mode 100644 index 0000000000..9d31cd50d3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/affiliated_with.yaml @@ -0,0 +1,106 @@ +# ============================================================================== +# LinkML Slot Definition: affiliated_with +# ============================================================================== +# Links an entity to an organization it is affiliated with. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **W3C Org** | `org:memberOf` | org.rdf | exact | Membership in organization | +# | **Schema.org**| `schema:affiliation` | schemaorg.owl | close | Affiliation relationship | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mapping +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/affiliated_with +name: affiliated_with +title: Affiliated With + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + affiliated_with: + slot_uri: org:memberOf + description: >- + The organization, institution, or group with which the entity has a + formal membership, association, or working relationship. + alt_descriptions: + nl: >- + De organisatie, instelling of groep waarmee de entiteit een formeel + lidmaatschap, associatie of werkrelatie heeft. + de: >- + Die Organisation, Institution oder Gruppe, mit der die Entität eine + formelle Mitgliedschaft, Zugehörigkeit oder Arbeitsbeziehung hat. + fr: >- + L'organisation, l'institution ou le groupe avec lequel l'entité a une + adhésion formelle, une association ou une relation de travail. + ar: >- + المنظمة أو المؤسسة أو المجموعة التي لدى الكيان عضوية رسمية أو ارتباط + أو علاقة عمل معها. + id: >- + Organisasi, institusi, atau kelompok yang memiliki hubungan keanggotaan + formal, asosiasi, atau hubungan kerja dengan entitas. + zh: >- + 实体与之具有正式成员资格、关联或工作关系的组织、机构或团体。 + es: >- + La organización, institución o grupo con el cual la entidad tiene una + membresía formal, asociación o relación de trabajo. + structured_aliases: + - literal_form: geaffilieerd met + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: angeschlossen an + predicate: EXACT_SYNONYM + in_language: de + - literal_form: affilié à + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: منتسب إلى + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: berafiliasi dengan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 隶属于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: afiliado a + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + exact_mappings: + - org:memberOf # org.rdf - Membership in organization + close_mappings: + - schema:affiliation # schemaorg.owl - Affiliation relationship + aliases: + - is_or_was_affiliated_with + annotations: + custodian_types: '["*"]' + examples: + - value: https://nde.nl/org/rijksmuseum + description: Affiliated with Rijksmuseum + comments: + - | + **USAGE**: + Used for: + - Unit affiliations + - Organizational memberships + - Departmental relationships diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/aggregate_from.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/aggregate_from.yaml index 92232ce5f0..125b35d226 100644 --- a/schemas/20251121/linkml/modules/slots/20260202_matang/aggregate_from.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/aggregate_from.yaml @@ -1,50 +1,149 @@ +# ============================================================================== +# LinkML Slot Definition: aggregate_from +# ============================================================================== +# Collecting and combining content from multiple sources into a unified view. +# Essential for digital heritage aggregators and portals. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|------------------------|-------------------|---------|------------------------------------------| +# | **ORE** | `ore:aggregates` | ore.rdf:54-62 | slot_uri| "Object resource is member of Aggregated | +# | | | | exact | Resources of subject (Aggregation)." | +# | **DC Terms** | `dcterms:source` | dcterms.ttl | close | Related resource from which derived. | +# | **PROV-O** | `prov:wasDerivedFrom` | prov.ttl | close | Entity derived from another. | +# | **ORE** | `ore:isAggregatedBy` | ore.rdf:64-72 | close | Inverse: resource is aggregated by. | +# | **ORE** | `ore:Aggregation` | ore.rdf | related | Class representing grouped resources. | +# | **CIDOC-CRM**| `crm:E78_Curated_Holding`| CIDOC_CRM | related | Curated collection of items. | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-02 - Added multilingual support, verified ontology mappings +# ============================================================================== + id: https://nde.nl/ontology/hc/slot/aggregate_from name: aggregate_from title: aggregate from + prefixes: - dcterms: http://purl.org/dc/terms/ - hc: https://nde.nl/ontology/hc/ linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ ore: http://www.openarchives.org/ore/terms/ prov: http://www.w3.org/ns/prov# - schema: https://schema.org/ crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# edm: http://www.europeana.eu/schemas/edm/ dcat: http://www.w3.org/ns/dcat# + imports: -- linkml:types + - linkml:types + default_prefix: hc + slots: aggregate_from: - description: | - to collect and combine content or data from multiple distinct sources into a single, unified location or view - range: string - multivalued: true slot_uri: ore:aggregates - # Semantic mappings (SKOS predicates) - # From: ore.rdf, edm.owl, dcat3.ttl, prov-o.ttl, dcterms.ttl + description: >- + To collect and combine content or data from multiple distinct sources + into a single, unified location or view. + alt_descriptions: + nl: >- + Inhoud of gegevens van meerdere afzonderlijke bronnen verzamelen en + combineren tot één enkele, uniforme locatie of weergave. + de: >- + Inhalte oder Daten aus mehreren verschiedenen Quellen sammeln und + zu einem einzigen, einheitlichen Ort oder einer Ansicht kombinieren. + fr: >- + Collecter et combiner du contenu ou des données provenant de plusieurs + sources distinctes en un seul emplacement ou vue unifiée. + ar: >- + جمع ودمج المحتوى أو البيانات من مصادر متعددة مختلفة في موقع أو عرض موحد واحد. + id: >- + Mengumpulkan dan menggabungkan konten atau data dari berbagai sumber + yang berbeda ke dalam satu lokasi atau tampilan terpadu. + zh: >- + 从多个不同来源收集和整合内容或数据,形成单一统一的位置或视图。 + es: >- + Recopilar y combinar contenido o datos de múltiples fuentes distintas + en una única ubicación o vista unificada. + range: uriorcurie + multivalued: true + inlined: false exact_mappings: - - ore:aggregates # ore.rdf: Aggregation relationship (subPropertyOf dcterms:hasPart) + - ore:aggregates close_mappings: - - dcterms:source # dcterms.ttl: Related resource from which described resource is derived - - prov:wasDerivedFrom # prov-o.ttl: Entity derived from another - - ore:isAggregatedBy # ore.rdf: Inverse - resource is aggregated by aggregation - - edm:aggregatedCHO # edm.owl: Cultural Heritage Object aggregated by EuropeanaAggregation + - dcterms:source + - prov:wasDerivedFrom + - ore:isAggregatedBy + - edm:aggregatedCHO related_mappings: - - ore:Aggregation # ore.rdf: Class representing grouped resources - - ore:AggregatedResource # ore.rdf: Class for resources included in aggregation - - dcterms:hasPart # dcterms.ttl: ore:aggregates is subPropertyOf this - - dcat:Resource # dcat3.ttl: Superclass for all catalogued resources - - crm:E78_Curated_Holding # CIDOC-CRM: Curated collection of items - - crm:E87_Curation_Activity # CIDOC-CRM: Activity managing curated holdings + - ore:Aggregation + - ore:AggregatedResource + - dcterms:hasPart + - dcat:Resource + - crm:E78_Curated_Holding + - crm:E87_Curation_Activity narrow_mappings: - - edm:EuropeanaAggregation # edm.owl: Europeana's aggregation class + - edm:EuropeanaAggregation aliases: - - aggregates_or_aggregated_from + - aggregates_or_aggregated_from + - harvests_from + - collects_from + - is_or_was_aggregate_from + structured_aliases: + - literal_form: aggregeert van + - is_or_was_aggregate_from + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: aggregiert von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: agrège de + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يجمع من + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mengagregasi dari + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 聚合自 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: agrega de + predicate: EXACT_SYNONYM + in_language: es + examples: + - value: "hc:RijksmuseumAPI" + description: Aggregating from Rijksmuseum's API + - value: "hc:EuropeanaPortal" + description: Aggregating from Europeana's portal + - value: "hc:NationalArchivesOAI" + description: Aggregating via OAI-PMH from National Archives annotations: + custodian_types: '["aggregator", "portal", "discovery_service"]' specificity_score: 0.5 + specificity_rationale: Core function for aggregation services. + comments: + - | + **USAGE**: + Used for digital heritage aggregation: + - OAI-PMH harvesting sources + - API data sources + - Linked data endpoints + - Partner institution feeds + - | + **ORE (Object Reuse and Exchange)**: + The ORE ontology defines aggregation patterns for web resources: + - `ore:Aggregation` - Collection of related resources + - `ore:aggregates` - Membership relationship + - `ore:AggregatedResource` - Resource within aggregation + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **ORE** | `ore:aggregates` | 54-62 | exact/slot_uri | Core aggregation property | + | **DC Terms** | `dcterms:source` | - | close | Resource derivation source | + | **PROV-O** | `prov:wasDerivedFrom` | - | close | Provenance derivation | + | **ORE** | `ore:isAggregatedBy` | 64-72 | close | Inverse relationship | + | **CIDOC-CRM** | `crm:E78_Curated_Holding` | - | related | Curated collections | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/aggregated_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/aggregated_by.yaml new file mode 100644 index 0000000000..cdb802ee1a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/aggregated_by.yaml @@ -0,0 +1,100 @@ +# ============================================================================== +# LinkML Slot Definition: aggregated_by +# ============================================================================== +# Entity that aggregated something into a composite whole or dataset. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|----------------------------------------------------------| +# | **ORE** | `ore:isAggregatedBy` | ore.rdf:67 | close | Inverse of ore:aggregates, part of aggregation model | +# | **PROV-O** | `prov:wasAttributedTo`| prov.ttl:428-437 | related | Attribution to responsible agent | +# +# SEMANTIC NOTES: +# - ORE (Object Reuse and Exchange) defines aggregation for digital objects +# - Our slot is broader: applies to data, collections, and organizations +# - No exact standard property exists for this general concept +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added multilingual support, close_mappings, header documentation +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/aggregated_by +name: aggregated_by +title: Aggregated By + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + ore: http://www.openarchives.org/ore/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + aggregated_by: + slot_uri: hc:aggregatedBy + description: >- + To be gathered, collected, or grouped together into a composite whole or dataset + by a specific system, organization, or process. + alt_descriptions: + nl: >- + Verzameld, bijeengebracht of gegroepeerd in een samengesteld geheel of dataset + door een specifiek systeem, organisatie of proces. + de: >- + Gesammelt, zusammengetragen oder in einem zusammengesetzten Ganzen oder Datensatz + durch ein bestimmtes System, eine Organisation oder einen Prozess gruppiert. + fr: >- + Rassemblé, collecté ou regroupé dans un ensemble composite ou un jeu de données + par un système, une organisation ou un processus spécifique. + ar: >- + أن يتم جمعه أو تجميعه أو تصنيفه في كل مركب أو مجموعة بيانات + بواسطة نظام أو منظمة أو عملية معينة. + id: >- + Dikumpulkan, dihimpun, atau dikelompokkan menjadi satu kesatuan komposit atau + dataset oleh sistem, organisasi, atau proses tertentu. + zh: >- + 由特定系统、组织或流程收集、汇集或分组为一个复合整体或数据集。 + es: >- + Reunido, recopilado o agrupado en un conjunto compuesto o conjunto de datos + por un sistema, organización o proceso específico. + structured_aliases: + - literal_form: geaggregeerd door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: aggregiert von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: agrégé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مجمَّع بواسطة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diagregasi oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 由...聚合 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: agregado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + close_mappings: + - ore:isAggregatedBy # ore.rdf:67 - inverse of ore:aggregates + related_mappings: + - prov:wasAttributedTo # prov.ttl:428 - attribution to agent + aliases: + - is_or_was_aggregated_by + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/aligned_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/aligned_at.yaml new file mode 100644 index 0000000000..2e72e8b393 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/aligned_at.yaml @@ -0,0 +1,116 @@ +# ============================================================================== +# LinkML Slot Definition: aligned_at +# ============================================================================== +# Spatial coordinates or temporal point where an element is positioned. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|----------------------------------------------------------| +# | **W3C OA** | `oa:hasSelector` | (web annotation) | related | Selects portion of resource - more specific | +# | **Schema.org**| `schema:position` | schemaorg.owl | related | Position within ordered group | +# +# SEMANTIC NOTES: +# - This slot captures positioning/alignment for media content +# - No exact standard property exists for this layout concept +# - Custom hc: URI is appropriate +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description (removed embedded notes), added multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/aligned_at +name: aligned_at +title: Aligned At + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + aligned_at: + slot_uri: hc:alignedAt + description: >- + To specify the precise spatial coordinates or temporal point where an element + is positioned or synchronized relative to a specific reference object or media content. + alt_descriptions: + nl: >- + De precieze ruimtelijke coördinaten of het temporele punt specificeren waar een + element is gepositioneerd of gesynchroniseerd ten opzichte van een specifiek + referentieobject of media-inhoud. + de: >- + Die genauen räumlichen Koordinaten oder den zeitlichen Punkt angeben, an dem ein + Element relativ zu einem bestimmten Referenzobjekt oder Medieninhalt positioniert + oder synchronisiert ist. + fr: >- + Spécifier les coordonnées spatiales précises ou le point temporel où un élément + est positionné ou synchronisé par rapport à un objet de référence ou un contenu + média spécifique. + ar: >- + تحديد الإحداثيات المكانية الدقيقة أو النقطة الزمنية حيث يتم وضع عنصر أو + مزامنته بالنسبة لكائن مرجعي أو محتوى وسائط معين. + id: >- + Menentukan koordinat spasial yang tepat atau titik temporal di mana elemen + diposisikan atau disinkronkan relatif terhadap objek referensi atau konten + media tertentu. + zh: >- + 指定元素相对于特定参考对象或媒体内容定位或同步的精确空间坐标或时间点。 + es: >- + Especificar las coordenadas espaciales precisas o el punto temporal donde un + elemento está posicionado o sincronizado en relación con un objeto de referencia + o contenido multimedia específico. + structured_aliases: + - literal_form: uitgelijnd op + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: ausgerichtet bei + predicate: EXACT_SYNONYM + in_language: de + - literal_form: aligné à + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: محاذى عند + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: disejajarkan pada + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 对齐于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: alineado en + predicate: EXACT_SYNONYM + in_language: es + range: string + multivalued: false + related_mappings: + - schema:position # Position within ordered group + aliases: + - has_or_had_alignment + - is_or_was_aligned_at + comments: + - | + **USE CASES**: Caption/subtitle positioning (top, bottom, center), text alignment + (left, right, center, justify), visual element positioning in layouts. + - | + **MODELING**: May use Alignment class for structured representation including + horizontal alignment (left, center, right), vertical alignment (top, middle, bottom), + and custom positioning coordinates. + annotations: + specificity_score: '0.55' + specificity_rationale: Applies to various content types requiring positioning information + custodian_types: '["*"]' + custodian_types_rationale: Content alignment applies across all heritage institution types diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/allocate.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/allocate.yaml index f0fe6dcfea..39fec3eb4f 100644 --- a/schemas/20251121/linkml/modules/slots/20260202_matang/allocate.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/allocate.yaml @@ -1,42 +1,141 @@ +# ============================================================================== +# LinkML Slot Definition: allocate +# ============================================================================== +# Distribution of resources, signifiers, or duties for specific purposes. +# Used for organizational resource management in heritage institutions. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|------------------------|-------------------|---------|------------------------------------------| +# | **PROV-O** | `prov:generated` | prov.ttl:579-591 | close | "Entity generated by activity." Resource | +# | | | | | creation/allocation aspect. | +# | **PROV-O** | `prov:used` | prov.ttl:1039-1053| close | "Entity used by Activity." Resource | +# | | | | | consumption aspect. | +# | **W3C Org** | `org:hasUnit` | org.rdf:510-528 | related | "Unit which is part of Organization." | +# | | | | | Organizational structure allocation. | +# | **CIDOC-CRM**| `crm:P14_carried_out_by`| CIDOC_CRM:1489-1503| related | "Active participation of Actor in | +# | | | | | Activity." Resource assignment. | +# | **Schema.org**| `schema:owns` | schemaorg.owl | narrow | Ownership of products/services. | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-02 - Added multilingual support, verified ontology mappings +# ============================================================================== + id: https://nde.nl/ontology/hc/slot/allocate name: allocate title: allocate + prefixes: - hc: https://nde.nl/ontology/hc/ linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ prov: http://www.w3.org/ns/prov# - schema: https://schema.org/ + schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# + imports: -- linkml:types + - linkml:types + default_prefix: hc + slots: allocate: - description: | - distribute resources, signifiers, or duties for a specific purpose - range: string # uriorcurie - multivalued: true slot_uri: hc:allocate - # Semantic mappings (SKOS predicates) - # From: prov-o.ttl, org.rdf, CIDOC_CRM_v7.1.3.rdf + description: >- + To distribute resources, signifiers, or duties for a specific purpose. + alt_descriptions: + nl: >- + Middelen, aanduidingen of taken verdelen voor een specifiek doel. + de: >- + Ressourcen, Kennzeichen oder Pflichten für einen bestimmten Zweck verteilen. + fr: >- + Distribuer des ressources, des signifiants ou des devoirs pour un but spécifique. + ar: >- + توزيع الموارد أو المعرفات أو الواجبات لغرض محدد. + id: >- + Mendistribusikan sumber daya, penanda, atau tugas untuk tujuan tertentu. + zh: >- + 为特定目的分配资源、标识符或职责。 + es: >- + Distribuir recursos, identificadores o deberes para un propósito específico. + range: uriorcurie + multivalued: true + inlined: false close_mappings: - - prov:generated # prov-o.ttl: Entity generated by activity - - prov:used # prov-o.ttl: Entity used by activity (resource consumption) + - prov:generated + - prov:used related_mappings: - - org:hasUnit # org.rdf: Organization has organizational unit - - org:hasSite # org.rdf: Organization has site (resource location) - - crm:P14_carried_out_by # CIDOC-CRM: Activity carried out by actor (resource assignment) - - crm:E79_Part_Addition # CIDOC-CRM: Adding parts to aggregate (resource allocation) - - prov:wasAssociatedWith # prov-o.ttl: Activity associated with agent - - dcterms:isPartOf # dcterms.ttl: Resource is part of another + - org:hasUnit + - org:hasSite + - crm:P14_carried_out_by + - crm:E79_Part_Addition + - prov:wasAssociatedWith + - dcterms:isPartOf narrow_mappings: - - schema:owns # schemaorg.owl: Ownership of products/services + - schema:owns aliases: - - allocates_or_allocated + - allocates_or_allocated + - assigns + - distributes + - is_or_was_allocate + structured_aliases: + - literal_form: wijst toe + - is_or_was_allocate + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: weist zu + predicate: EXACT_SYNONYM + in_language: de + - literal_form: alloue + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يخصص + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mengalokasikan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 分配 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: asigna + predicate: EXACT_SYNONYM + in_language: es + examples: + - value: "hc:BudgetAllocation2024" + description: Annual budget distribution to departments + - value: "hc:StaffAssignment" + description: Personnel allocation to projects + - value: "hc:StorageAllocation" + description: Physical storage space distribution annotations: + custodian_types: '["*"]' specificity_score: 0.5 + specificity_rationale: Resource allocation applies across all custodian types. + comments: + - | + **USAGE**: + Used for: + - Budget and funding distribution + - Staff and personnel assignment + - Storage and space allocation + - Identifier assignment + - Task and responsibility distribution + - | + **RESOURCE TYPES**: + - Financial resources (budgets, grants) + - Human resources (staff, volunteers) + - Physical resources (space, equipment) + - Digital resources (storage, identifiers) + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **PROV-O** | `prov:generated` | 579-591 | close | Entity generated by activity | + | **PROV-O** | `prov:used` | 1039-1053 | close | Entity used by activity | + | **W3C Org** | `org:hasUnit` | 510-528 | related | Organizational unit structure | + | **CIDOC-CRM** | `crm:P14_carried_out_by` | 1489-1503 | related | Actor participation | + | **Schema.org** | `schema:owns` | - | narrow | Ownership relation | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/allocated_budget.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/allocated_budget.yaml new file mode 100644 index 0000000000..dcb5af7b9b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/allocated_budget.yaml @@ -0,0 +1,102 @@ +# ============================================================================== +# LinkML Slot Definition: allocated_budget +# ============================================================================== +# Financial sum designated for a particular purpose or project. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|----------------------------------------------------------| +# | **Schema.org**| `schema:amount` | schemaorg.owl | related | Monetary amount - more generic | +# | **GoodRelations**| `gr:hasCurrencyValue`| (external) | related | Currency value representation | +# +# SEMANTIC NOTES: +# - Budget allocation is a domain-specific concept for organizational finance +# - No exact standard property exists for "allocated budget" +# - Custom hc: URI is appropriate for this heritage-specific concept +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description, added multilingual support, header documentation +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/allocated_budget +name: allocated_budget +title: Allocated Budget + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + allocated_budget: + slot_uri: hc:allocatedBudget + description: >- + To have a specific financial sum designated or set aside for a particular purpose, + project, or department within an organization's overall financial plan. + alt_descriptions: + nl: >- + Een specifiek financieel bedrag dat is aangewezen of gereserveerd voor een + bepaald doel, project of afdeling binnen het totale financiële plan van een organisatie. + de: >- + Eine bestimmte finanzielle Summe, die für einen bestimmten Zweck, ein Projekt + oder eine Abteilung im Gesamtfinanzplan einer Organisation vorgesehen oder + zurückgestellt ist. + fr: >- + Avoir une somme financière spécifique désignée ou réservée pour un objectif, + projet ou département particulier dans le plan financier global d'une organisation. + ar: >- + أن يكون لديك مبلغ مالي محدد مخصص أو مرصود لغرض أو مشروع أو قسم معين + ضمن الخطة المالية الشاملة للمنظمة. + id: >- + Memiliki jumlah keuangan tertentu yang ditunjuk atau disisihkan untuk tujuan, + proyek, atau departemen tertentu dalam rencana keuangan keseluruhan organisasi. + zh: >- + 在组织整体财务计划中为特定目的、项目或部门指定或预留特定财务金额。 + es: >- + Tener una suma financiera específica designada o reservada para un propósito, + proyecto o departamento particular dentro del plan financiero general de una organización. + structured_aliases: + - literal_form: toegewezen budget + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: zugewiesenes Budget + predicate: EXACT_SYNONYM + in_language: de + - literal_form: budget alloué + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: الميزانية المخصصة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: anggaran yang dialokasikan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 分配预算 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: presupuesto asignado + predicate: EXACT_SYNONYM + in_language: es + range: string + multivalued: false + related_mappings: + - schema:amount # Generic monetary amount + aliases: + - is_or_was_allocated_budget + comments: + - | + **USAGE**: Record the budget amount allocated to projects, departments, or activities. + Consider using a structured format that includes currency code and amount. + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/allocated_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/allocated_by.yaml new file mode 100644 index 0000000000..58549fd02c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/allocated_by.yaml @@ -0,0 +1,98 @@ +# ============================================================================== +# LinkML Slot Definition: allocated_by +# ============================================================================== +# Authority, organization, or system that assigned or distributed resources. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|----------------------------------------------------------| +# | **PROV-O** | `prov:wasAttributedTo`| prov.ttl:428-437 | close | Attribution to responsible agent | +# | **DCTerms** | `dcterms:publisher` | dcterms.rdf | related | Publisher as responsible party - different semantic | +# +# SEMANTIC NOTES: +# - Allocation implies authority-based assignment of resources +# - prov:wasAttributedTo is close but more about provenance attribution +# - Custom hc: URI is appropriate for resource allocation context +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support, close_mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/allocated_by +name: allocated_by +title: Allocated By + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + allocated_by: + slot_uri: hc:allocatedBy + description: >- + To be assigned, distributed, or designated by a specific authority, organization, + or system responsible for the apportionment of resources or tasks. + alt_descriptions: + nl: >- + Toegewezen, verdeeld of aangewezen door een specifieke autoriteit, organisatie + of systeem dat verantwoordelijk is voor de verdeling van middelen of taken. + de: >- + Zugewiesen, verteilt oder bestimmt durch eine bestimmte Behörde, Organisation + oder ein System, das für die Verteilung von Ressourcen oder Aufgaben + verantwortlich ist. + fr: >- + Attribué, distribué ou désigné par une autorité, organisation ou système + spécifique responsable de la répartition des ressources ou des tâches. + ar: >- + أن يتم تخصيصه أو توزيعه أو تعيينه من قبل سلطة أو منظمة أو نظام معين + مسؤول عن توزيع الموارد أو المهام. + id: >- + Ditugaskan, didistribusikan, atau ditentukan oleh otoritas, organisasi, atau + sistem tertentu yang bertanggung jawab atas pembagian sumber daya atau tugas. + zh: >- + 由负责资源或任务分配的特定权威机构、组织或系统分配、分发或指定。 + es: >- + Asignado, distribuido o designado por una autoridad, organización o sistema + específico responsable de la distribución de recursos o tareas. + structured_aliases: + - literal_form: toegewezen door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: zugewiesen von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: alloué par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مخصص من قبل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dialokasikan oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 由...分配 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: asignado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + close_mappings: + - prov:wasAttributedTo # prov.ttl:428-437 - attribution to responsible agent + aliases: + - is_or_was_allocated_by + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/allocated_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/allocated_through.yaml new file mode 100644 index 0000000000..99d0076776 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/allocated_through.yaml @@ -0,0 +1,97 @@ +# ============================================================================== +# LinkML Slot Definition: allocated_through +# ============================================================================== +# Mechanism, process, or program that facilitated resource allocation. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|----------------------------------------------------------| +# | **PROV-O** | `prov:wasGeneratedBy` | prov.ttl:1073-1088 | related | Entity generated by activity - more generic | +# | **PROV-O** | `prov:used` | prov.ttl:1039-1055 | related | Activity used entity | +# +# SEMANTIC NOTES: +# - Allocation "through" captures the mechanism/channel/program +# - No exact standard property exists for allocation mechanism +# - Custom hc: URI is appropriate +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support, related_mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/allocated_through +name: allocated_through +title: Allocated Through + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + allocated_through: + slot_uri: hc:allocatedThrough + description: >- + To be assigned or distributed via a specific mechanism, process, channel, event + or program that facilitates the apportionment of resources. + alt_descriptions: + nl: >- + Toegewezen of verdeeld via een specifiek mechanisme, proces, kanaal, gebeurtenis + of programma dat de verdeling van middelen faciliteert. + de: >- + Zugewiesen oder verteilt über einen bestimmten Mechanismus, Prozess, Kanal, + ein Ereignis oder Programm, das die Verteilung von Ressourcen ermöglicht. + fr: >- + Attribué ou distribué via un mécanisme, processus, canal, événement ou programme + spécifique qui facilite la répartition des ressources. + ar: >- + أن يتم تخصيصه أو توزيعه عبر آلية أو عملية أو قناة أو حدث أو برنامج + معين يسهل توزيع الموارد. + id: >- + Ditugaskan atau didistribusikan melalui mekanisme, proses, saluran, peristiwa + atau program tertentu yang memfasilitasi pembagian sumber daya. + zh: >- + 通过促进资源分配的特定机制、流程、渠道、事件或计划进行分配或分发。 + es: >- + Asignado o distribuido a través de un mecanismo, proceso, canal, evento o + programa específico que facilita la distribución de recursos. + structured_aliases: + - literal_form: toegewezen via + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: zugewiesen durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: alloué par le biais de + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مخصص عبر + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dialokasikan melalui + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 通过...分配 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: asignado mediante + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + related_mappings: + - prov:wasGeneratedBy # prov.ttl:1073 - generation by activity + aliases: + - is_or_was_allocated_through + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/allocated_to.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/allocated_to.yaml new file mode 100644 index 0000000000..f26a98823b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/allocated_to.yaml @@ -0,0 +1,107 @@ +# ============================================================================== +# LinkML Slot Definition: allocated_to +# ============================================================================== +# Individual, group, project, or entity to which resources are assigned. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|----------------------------------------------------------| +# | **Schema.org**| `schema:recipient` | schemaorg.owl | close | Recipient of message/action - similar semantic | +# | **PROV-O** | `prov:wasAttributedTo`| prov.ttl:428-437 | related | Attribution to agent | +# +# SEMANTIC NOTES: +# - Allocation "to" captures the target/recipient of resource assignment +# - schema:recipient is close but more for communication context +# - Custom hc: URI is appropriate for resource allocation +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description (removed embedded notes), added multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/allocated_to +name: allocated_to +title: Allocated To + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + allocated_to: + slot_uri: hc:allocatedTo + description: >- + To be assigned, distributed, or designated for the use or responsibility of a + specific individual, group, project, or entity. + alt_descriptions: + nl: >- + Toegewezen, verdeeld of aangewezen voor het gebruik of de verantwoordelijkheid + van een specifiek individu, groep, project of entiteit. + de: >- + Zugewiesen, verteilt oder bestimmt für die Nutzung oder Verantwortung einer + bestimmten Person, Gruppe, eines Projekts oder einer Entität. + fr: >- + Attribué, distribué ou désigné pour l'utilisation ou la responsabilité d'un + individu, groupe, projet ou entité spécifique. + ar: >- + أن يتم تخصيصه أو توزيعه أو تعيينه لاستخدام أو مسؤولية فرد أو مجموعة + أو مشروع أو كيان معين. + id: >- + Ditugaskan, didistribusikan, atau ditentukan untuk penggunaan atau tanggung + jawab individu, kelompok, proyek, atau entitas tertentu. + zh: >- + 分配、分发或指定给特定个人、团体、项目或实体使用或负责。 + es: >- + Asignado, distribuido o designado para el uso o responsabilidad de un + individuo, grupo, proyecto o entidad específica. + structured_aliases: + - literal_form: toegewezen aan + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: zugewiesen an + predicate: EXACT_SYNONYM + in_language: de + - literal_form: alloué à + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مخصص لـ + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dialokasikan untuk + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 分配给 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: asignado a + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + close_mappings: + - schema:recipient # schemaorg.owl - recipient of message/action + aliases: + - is_or_was_allocated_to + comments: + - | + **USAGE**: Used for investment allocations, budget allocations, and resource + distribution to specific projects, departments, or individuals. + examples: + - value: https://nde.nl/project/digitization-2024 + description: Allocated to digitization project + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/allow.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/allow.yaml index 3e812ff5bc..e1e0e8e8bb 100644 --- a/schemas/20251121/linkml/modules/slots/20260202_matang/allow.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/allow.yaml @@ -1,63 +1,146 @@ +# ============================================================================== +# LinkML Slot Definition: allow +# ============================================================================== +# Permission granting for activities, things, or behaviors. Used for documenting +# policies in reading rooms, public spaces, and access control. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|------------------------|-------------------|---------|------------------------------------------| +# | **ODRL** | `odrl:permission` | odrl.ttl:547-553 | exact | "Relates individual Permission to | +# | | | | | Policy." Permission concept. | +# | **ODRL** | `odrl:Permission` | odrl.ttl | close | Class representing permission rule. | +# | **ODRL** | `odrl:action` | odrl.ttl | related | Action permitted/prohibited. | +# | **Schema.org**| `schema:Permit` | schemaorg.owl | related | Permit class. | +# | **RiC-O** | `rico:hasOrHadMandateType`| RiC-O_1-1.rdf | related | Mandate type for agent. | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Changed slot_uri from hc:allow to odrl:permission (exact mapping) +# ============================================================================== + id: https://nde.nl/ontology/hc/slot/allow name: allow title: allow + prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ - schema: https://schema.org/ + schema: http://schema.org/ odrl: http://www.w3.org/ns/odrl/2/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# rico: https://www.ica.org/standards/RiC/ontology# -default_prefix: hc + imports: -- linkml:types + - linkml:types + +default_prefix: hc + slots: allow: - slot_uri: hc:allow - description: | - to grant permission for activities, things, or behaviors - range: string # uriorcurie + slot_uri: odrl:permission + description: >- + To grant permission for activities, things, or behaviors. + alt_descriptions: + nl: >- + Toestemming verlenen voor activiteiten, zaken of handelingen. + de: >- + Erlaubnis für Aktivitäten, Dinge oder Verhaltensweisen erteilen. + fr: >- + Accorder la permission pour des activités, des choses ou des comportements. + ar: >- + منح الإذن للأنشطة أو الأشياء أو السلوكيات. + id: >- + Memberikan izin untuk kegiatan, hal-hal, atau perilaku. + zh: >- + 授予活动、事物或行为的许可。 + es: >- + Otorgar permiso para actividades, cosas o comportamientos. + range: uriorcurie multivalued: true - # Semantic mappings (SKOS predicates) - # From: odrl.ttl, schemaorg.owl, RiC-O_1-1.rdf + inlined: false exact_mappings: - - odrl:permission # odrl.ttl: Permission to perform action on asset + - odrl:permission close_mappings: - - odrl:Permission # odrl.ttl: Class representing permission rule - - odrl:grantUse # odrl.ttl: Grant use of asset to third parties + - odrl:Permission + - odrl:grantUse related_mappings: - - odrl:action # odrl.ttl: Action permitted/prohibited - - odrl:use # odrl.ttl: Use action (parent of many specific actions) - - odrl:Rule # odrl.ttl: Abstract class for permissions/prohibitions/duties - - schema:Permit # schemaorg.owl: Permit class - - schema:GovernmentPermit # schemaorg.owl: Government-issued permit - - schema:permittedUsage # schemaorg.owl: Permitted usage of accommodation - - rico:hasOrHadMandateType # RiC-O: Mandate type for agent + - odrl:action + - odrl:use + - odrl:Rule + - schema:Permit + - schema:GovernmentPermit + - schema:permittedUsage + - rico:hasOrHadMandateType narrow_mappings: - - schema:amenityFeature # schemaorg.owl: Amenity feature of place - - odrl:play # odrl.ttl: Play/perform action - - odrl:display # odrl.ttl: Display/create copy action - - odrl:reproduce # odrl.ttl: Reproduce action + - schema:amenityFeature + - odrl:play + - odrl:display + - odrl:reproduce aliases: - - allows_or_allowed + - allows_or_allowed + - permits + - grants_permission + - is_or_was_allow + structured_aliases: + - literal_form: staat toe + - is_or_was_allow + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: erlaubt + predicate: EXACT_SYNONYM + in_language: de + - literal_form: permet + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يسمح + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mengizinkan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 允许 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: permite + predicate: EXACT_SYNONYM + in_language: es + examples: + - value: "hc:LaptopUse" + description: Permission for laptop use in reading room + - value: "hc:Photography" + description: Permission for photography + - value: "hc:FoodAndBeverages" + description: Permission for food and beverages in designated areas annotations: + custodian_types: '["*"]' specificity_score: 0.5 specificity_rationale: Generic permission slot applicable to reading rooms and public spaces. - examples: - - value: "allow:\n - \"Laptop\"\n - \"Photography\"\n" - description: Example of allowed activities in a reading room. comments: - - | - **SEMANTICS**: Uses RiC-O temporal pattern (is_or_was / has_or_had / allows_or_allowed) - to capture policies that may change over time. - A reading room that \"allowed photography\" in 2020 may have changed policy by 2025. - - | - The range should be a typed class representing the permitted activity: - - `Laptop` - laptop use permission - `Photography` - photography permission - - Future: `Food`, `Beverages`, `MobilePhone`, etc. \ No newline at end of file + - | + **USAGE**: + Used for documenting permitted activities: + - Reading room policies (laptops, photography) + - Public space rules + - Access permissions + - Usage rights + - | + **SEMANTICS**: + Uses RiC-O temporal pattern (is_or_was / has_or_had / allows_or_allowed) + to capture policies that may change over time. + A reading room that "allowed photography" in 2020 may have changed policy by 2025. + - | + **ODRL (Open Digital Rights Language)**: + ODRL provides a comprehensive model for permissions: + - `odrl:permission` - Permission to perform action + - `odrl:Permission` - Class for permission rules + - `odrl:action` - The permitted action + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **ODRL** | `odrl:permission` | 547-553 | exact | Permission relation to Policy | + | **ODRL** | `odrl:Permission` | - | close | Permission rule class | + | **ODRL** | `odrl:action` | - | related | Action permitted | + | **Schema.org** | `schema:Permit` | - | related | Permit class | + | **RiC-O** | `rico:hasOrHadMandateType` | - | related | Mandate type | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/alternative_form_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/alternative_form_of.yaml new file mode 100644 index 0000000000..80d619c083 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/alternative_form_of.yaml @@ -0,0 +1,102 @@ +# ============================================================================== +# LinkML Slot Definition: alternative_form_of +# ============================================================================== +# Links an entity to another entity of which it is a variant form. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |------------|--------------------|------------------|---------|------------------------------------------| +# | **PROV-O** | `prov:alternateOf` | prov.ttl:466-478 | close | "Two alternate entities present aspects | +# | | | | | of the same thing" - same concept but | +# | | | | | different manifestation | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support, ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/alternative_form_of +name: alternative_form_of +title: Alternative Form Of +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + alternative_form_of: + slot_uri: hc:alternativeFormOf + description: >- + To be a variant, such as a different spelling, format, or physical + manifestation, of another entity or term, while referring to the same + underlying concept or object. + alt_descriptions: + nl: >- + Een variant zijn, zoals een andere spelling, formaat of fysieke + manifestatie, van een andere entiteit of term, terwijl wordt verwezen + naar hetzelfde onderliggende concept of object. + de: >- + Eine Variante sein, wie eine andere Schreibweise, ein anderes Format + oder eine andere physische Manifestation einer anderen Entität oder + eines Begriffs, während auf dasselbe zugrunde liegende Konzept oder + Objekt verwiesen wird. + fr: >- + Être une variante, telle qu'une orthographe, un format ou une + manifestation physique différente, d'une autre entité ou terme, + tout en faisant référence au même concept ou objet sous-jacent. + ar: >- + أن يكون متغيرًا، مثل تهجئة مختلفة أو تنسيق أو مظهر مادي مختلف، + لكيان أو مصطلح آخر، مع الإشارة إلى نفس المفهوم أو الكائن الأساسي. + id: >- + Menjadi varian, seperti ejaan, format, atau manifestasi fisik yang + berbeda, dari entitas atau istilah lain, sambil merujuk pada konsep + atau objek dasar yang sama. + zh: >- + 作为另一实体或术语的变体,例如不同的拼写、格式或物理表现形式, + 同时指向相同的基础概念或对象。 + es: >- + Ser una variante, como una ortografía, formato o manifestación física + diferente, de otra entidad o término, mientras se refiere al mismo + concepto u objeto subyacente. + structured_aliases: + - literal_form: alternatieve vorm van + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: alternative Form von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: forme alternative de + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: شكل بديل لـ + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: bentuk alternatif dari + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 替代形式 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: forma alternativa de + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + close_mappings: + - prov:alternateOf # prov.ttl:466-478 - "Two alternate entities present aspects of the same thing" + aliases: + - is_or_was_alternative_form_of + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot to link variant forms of the same entity, + such as different spellings, transliterations, or format versions. + - | + **MAPPING NOTE**: `prov:alternateOf` is close but not exact - PROV-O + focuses on "aspects of the same thing" in provenance contexts, while + this slot is more general for variant forms. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/amended_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/amended_through.yaml new file mode 100644 index 0000000000..c0150e9cb5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/amended_through.yaml @@ -0,0 +1,99 @@ +# ============================================================================== +# LinkML Slot Definition: amended_through +# ============================================================================== +# Legal instrument, formal process, or event that introduced changes. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|----------------------------------------------------------| +# | **PROV-O** | `prov:wasRevisionOf` | prov.ttl:1106-1121 | close | Revision relationship - similar but entity-to-entity | +# | **DCTerms** | `dcterms:isReplacedBy`| dcterms.rdf | related | Replacement - different semantic | +# +# SEMANTIC NOTES: +# - Amendment "through" captures the legal/formal mechanism of change +# - Common in legal, policy, and regulatory contexts +# - Custom hc: URI is appropriate for this formal amendment context +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support, close_mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/amended_through +name: amended_through +title: Amended Through + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + amended_through: + slot_uri: hc:amendedThrough + description: >- + To be modified, revised, or altered via a specific legal instrument, formal + process, or subsequent event that introduces changes to the original content. + alt_descriptions: + nl: >- + Gewijzigd, herzien of aangepast via een specifiek juridisch instrument, formeel + proces of daaropvolgende gebeurtenis die wijzigingen in de oorspronkelijke + inhoud introduceert. + de: >- + Geändert, überarbeitet oder verändert durch ein bestimmtes Rechtsinstrument, + einen formellen Prozess oder ein nachfolgendes Ereignis, das Änderungen am + ursprünglichen Inhalt einführt. + fr: >- + Modifié, révisé ou altéré via un instrument juridique spécifique, un processus + formel ou un événement ultérieur qui introduit des changements au contenu original. + ar: >- + أن يتم تعديله أو مراجعته أو تغييره عبر صك قانوني محدد أو عملية رسمية + أو حدث لاحق يُدخل تغييرات على المحتوى الأصلي. + id: >- + Dimodifikasi, direvisi, atau diubah melalui instrumen hukum, proses formal, + atau peristiwa berikutnya yang memperkenalkan perubahan pada konten asli. + zh: >- + 通过特定的法律文书、正式程序或后续事件进行修改、修订或更改,对原始内容进行变更。 + es: >- + Modificado, revisado o alterado mediante un instrumento legal específico, + proceso formal o evento posterior que introduce cambios al contenido original. + structured_aliases: + - literal_form: gewijzigd door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: geändert durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: modifié par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: معدَّل بموجب + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diamendemen melalui + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 通过...修订 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: enmendado mediante + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + close_mappings: + - prov:wasRevisionOf # prov.ttl:1106-1121 - revision relationship + aliases: + - is_or_was_amended_through + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/analyze.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/analyze.yaml index f157b0707d..9ec9a38542 100644 --- a/schemas/20251121/linkml/modules/slots/20260202_matang/analyze.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/analyze.yaml @@ -1,76 +1,160 @@ +# ============================================================================== +# LinkML Slot Definition: analyze +# ============================================================================== +# Detailed examination of constitution or structure for explanation and +# interpretation. Used for research and processing activities. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|------------------------|-------------------|---------|------------------------------------------| +# | **SOSA** | `sosa:observes` | sosa.ttl | close | Sensor observes observable property. | +# | **SOSA** | `sosa:Observation` | sosa.ttl | close | Act of observing a property. | +# | **PROV-O** | `prov:wasGeneratedBy` | prov.ttl | related | Entity generated by activity. | +# | **PROV-O** | `prov:used` | prov.ttl:1039-1053| related | Activity used entity (analysis input). | +# | **CIDOC-CRM**| `crm:E13_Attribute_Assignment`| CIDOC_CRM | related | Assigning attributes through analysis. | +# | **DQV** | `dqv:hasQualityMeasurement`| dqv.ttl | related | Quality measurement from analysis. | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-02 - Added multilingual support, verified ontology mappings +# ============================================================================== + id: https://nde.nl/ontology/hc/slot/analyze name: analyze title: analyze + prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ - schema: https://schema.org/ - dcterms: http://purl.org/dc/terms/ prov: http://www.w3.org/ns/prov# crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# sosa: http://www.w3.org/ns/sosa/ - ssn: http://www.w3.org/ns/ssn/ dqv: http://www.w3.org/ns/dqv# -default_prefix: hc + imports: -- linkml:types + - linkml:types + +default_prefix: hc + slots: analyze: slot_uri: hc:analyze - description: | - to examine in detail the constitution or structure of something, typically for purposes of explanation and interpretation - range: string # uriorcurie + description: >- + To examine in detail the constitution or structure of something, + typically for purposes of explanation and interpretation. + alt_descriptions: + nl: >- + De samenstelling of structuur van iets in detail onderzoeken, + doorgaans met het oog op uitleg en interpretatie. + de: >- + Die Zusammensetzung oder Struktur von etwas im Detail untersuchen, + typischerweise zum Zweck der Erklärung und Interpretation. + fr: >- + Examiner en détail la constitution ou la structure de quelque chose, + généralement à des fins d'explication et d'interprétation. + ar: >- + فحص تكوين أو هيكل شيء ما بالتفصيل، عادةً لأغراض الشرح والتفسير. + id: >- + Memeriksa secara rinci susunan atau struktur sesuatu, biasanya + untuk tujuan penjelasan dan interpretasi. + zh: >- + 详细检查某事物的构成或结构,通常用于解释和诠释目的。 + es: >- + Examinar en detalle la constitución o estructura de algo, + típicamente con fines de explicación e interpretación. + range: string any_of: - - range: integer - - range: VideoFrame - inlined: false # Fixed invalid inline for primitive type + - range: integer + - range: VideoFrame + multivalued: true + inlined: false + close_mappings: + - sosa:observes + - sosa:Observation + related_mappings: + - sosa:Procedure + - sosa:observedProperty + - sosa:hasResult + - sosa:Result + - prov:wasGeneratedBy + - prov:used + - crm:E13_Attribute_Assignment + - crm:E83_Type_Creation + - dqv:hasQualityMeasurement + narrow_mappings: + - sosa:madeObservation + - crm:P140_assigned_attribute_to + broad_mappings: + - prov:Activity + aliases: + - analyzes_or_analyzed + - examines + - studies + - is_or_was_analyze + structured_aliases: + - literal_form: analyseert + - is_or_was_analyze + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: analysiert + predicate: EXACT_SYNONYM + in_language: de + - literal_form: analyse + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يحلل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: menganalisis + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 分析 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: analiza + predicate: EXACT_SYNONYM + in_language: es examples: - - value: 24000 - description: Total video frames analyzed (integer count) - - value: "has_or_had_quantity:\n quantity_value: 1.0\n quantity_type: FRAME_SAMPLE_RATE\n has_or_had_unit:\n unit_value: \"samples per second\"\nframe_count: 1800\n" - description: Video frame analysis at 1 fps (VideoFrame instance) + - value: 24000 + description: Total video frames analyzed (integer count) + - value: | + has_or_had_quantity: + quantity_value: 1.0 + quantity_type: FRAME_SAMPLE_RATE + has_or_had_unit: + unit_value: "samples per second" + frame_count: 1800 + description: Video frame analysis at 1 fps (VideoFrame instance) annotations: custodian_types: '["*"]' - # Semantic mappings (SKOS predicates) - # From: sosa.ttl, ssn.ttl, dqv.ttl, prov-o.ttl, CIDOC_CRM_v7.1.3.rdf - close_mappings: - - sosa:observes # sosa.ttl: Sensor observes observable property - - sosa:Observation # sosa.ttl: Act of observing a property - related_mappings: - - sosa:Procedure # sosa.ttl: Workflow/protocol for observation - - sosa:observedProperty # sosa.ttl: Property being observed - - sosa:hasResult # sosa.ttl: Result of observation - - sosa:Result # sosa.ttl: Class for observation results - - prov:wasGeneratedBy # prov-o.ttl: Entity generated by activity (analysis output) - - prov:used # prov-o.ttl: Activity used entity (analysis input) - - crm:E13_Attribute_Assignment # CIDOC-CRM: Assigning attributes through analysis - - crm:E83_Type_Creation # CIDOC-CRM: Type creation through scholarly analysis - - dqv:hasQualityMeasurement # dqv.ttl: Quality measurement from analysis - narrow_mappings: - - sosa:madeObservation # sosa.ttl: Sensor made observation - - crm:P140_assigned_attribute_to # CIDOC-CRM: Assigned attribute through analysis - broad_mappings: - - prov:Activity # prov-o.ttl: Generic activity class - aliases: - - analyzes_or_analyzed + specificity_score: 0.6 + specificity_rationale: Research and processing activity across all types. comments: - - | - **USAGE NOTES**: - - - Frames analyzed in video processing (VideoFrame class) - - - Documents analyzed - - - Items processed - - - | - **MIGRATION SUPPORT**: - - This slot now supports VideoFrame class for frame_sample_rate migration - - per slot_fixes.yaml (Rule 53, 2026-01-22). + - | + **USAGE**: + Used for research and processing activities: + - Video frame analysis + - Document analysis + - Collection item processing + - Quality assessment + - Scientific examination + - | + **SOSA (Sensor, Observation, Sample, Actuator)**: + Maps to SOSA observation model: + - `sosa:observes` - What is being observed + - `sosa:Observation` - The observation act + - `sosa:hasResult` - Result of observation + - | + **MIGRATION SUPPORT**: + This slot supports VideoFrame class for frame_sample_rate migration + per slot_fixes.yaml (Rule 53, 2026-01-22). + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **SOSA** | `sosa:observes` | - | close | Observation relation | + | **SOSA** | `sosa:Observation` | - | close | Observation class | + | **PROV-O** | `prov:used` | 1039-1053 | related | Analysis input | + | **CIDOC-CRM** | `crm:E13_Attribute_Assignment` | - | related | Attribute assignment | + | **DQV** | `dqv:hasQualityMeasurement` | - | related | Quality measurement | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/appended_with.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/appended_with.yaml new file mode 100644 index 0000000000..02ef779d3d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/appended_with.yaml @@ -0,0 +1,98 @@ +# ============================================================================== +# LinkML Slot Definition: appended_with +# ============================================================================== +# Content, attachment, or addendum added to the end of the original entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|----------------------------------------------------------| +# | **DCTerms** | `dcterms:hasPart` | dcterms.rdf:1347 | related | Part-whole relationship - more generic | +# | **Schema.org**| `schema:hasPart` | schemaorg.owl:20403 | related | Part relationship - doesn't specify appending | +# +# SEMANTIC NOTES: +# - Appending implies addition at the end, unlike general part relationships +# - Common for documents with addenda, attachments, supplements +# - Custom hc: URI is appropriate for this specific append semantic +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support, related_mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/appended_with +name: appended_with +title: Appended With + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + appended_with: + slot_uri: hc:appendedWith + description: >- + To be supplemented or extended by the addition of specific content, such as an + attachment or addendum, at the end of the original entity. + alt_descriptions: + nl: >- + Aangevuld of uitgebreid door de toevoeging van specifieke inhoud, zoals een + bijlage of addendum, aan het einde van de oorspronkelijke entiteit. + de: >- + Ergänzt oder erweitert durch das Hinzufügen von spezifischem Inhalt, wie einem + Anhang oder Nachtrag, am Ende der ursprünglichen Entität. + fr: >- + Complété ou étendu par l'ajout de contenu spécifique, tel qu'une pièce jointe + ou un addendum, à la fin de l'entité originale. + ar: >- + أن يتم تكميله أو توسيعه بإضافة محتوى معين، مثل مرفق أو ملحق، + في نهاية الكيان الأصلي. + id: >- + Dilengkapi atau diperluas dengan penambahan konten tertentu, seperti lampiran + atau adendum, di akhir entitas asli. + zh: >- + 通过在原始实体末尾添加特定内容(如附件或附录)来补充或扩展。 + es: >- + Complementado o extendido mediante la adición de contenido específico, como + un anexo o adenda, al final de la entidad original. + structured_aliases: + - literal_form: aangevuld met + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: ergänzt mit + predicate: EXACT_SYNONYM + in_language: de + - literal_form: complété par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: ملحق بـ + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dilampirkan dengan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 附加了 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: adjuntado con + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + related_mappings: + - dcterms:hasPart # dcterms.rdf:1347 - part-whole relationship + - schema:hasPart # schemaorg.owl:20403 - part relationship + aliases: + - is_or_was_appended_with + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/applicable_in.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/applicable_in.yaml new file mode 100644 index 0000000000..62b7645c5d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/applicable_in.yaml @@ -0,0 +1,102 @@ +# ============================================================================== +# LinkML Slot Definition: applicable_in +# ============================================================================== +# Geographic area, jurisdiction, or context where something is valid or relevant. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------------|--------------------------|---------|----------------------------------------------------------| +# | **Schema.org**| `schema:spatialCoverage`| schemaorg.owl:35880-35886| close | Spatial coverage of content - close semantic | +# | **Schema.org**| `schema:jurisdiction` | schemaorg.owl:23809-23812| close | Legal jurisdiction - more specific to legal context | +# | **DCTerms** | `dcterms:coverage` | dcterms.rdf:1039 | related | Coverage includes spatial and temporal | +# +# SEMANTIC NOTES: +# - Our slot is general: applies to policies, rules, services, etc. +# - schema:spatialCoverage is for content coverage +# - schema:jurisdiction is for legal jurisdiction +# - Custom hc: URI appropriate for this general applicability concept +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added multilingual support, close_mappings, header documentation +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/applicable_in +name: applicable_in +title: Applicable In + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + applicable_in: + slot_uri: hc:applicableIn + description: >- + To be valid, relevant, or enforceable within a specific geographic area, + jurisdiction, or context. + alt_descriptions: + nl: >- + Geldig, relevant of afdwingbaar binnen een specifiek geografisch gebied, + rechtsgebied of context. + de: >- + Gültig, relevant oder durchsetzbar innerhalb eines bestimmten geografischen + Gebiets, einer Gerichtsbarkeit oder eines Kontexts. + fr: >- + Valide, pertinent ou exécutoire dans une zone géographique, juridiction + ou contexte spécifique. + ar: >- + أن يكون صالحاً أو ذا صلة أو قابلاً للتنفيذ ضمن منطقة جغرافية أو + اختصاص قضائي أو سياق معين. + id: >- + Berlaku, relevan, atau dapat ditegakkan dalam wilayah geografis, yurisdiksi, + atau konteks tertentu. + zh: >- + 在特定地理区域、管辖范围或情境中有效、相关或可执行。 + es: >- + Válido, relevante o aplicable dentro de un área geográfica, jurisdicción + o contexto específico. + structured_aliases: + - literal_form: van toepassing in + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: anwendbar in + predicate: EXACT_SYNONYM + in_language: de + - literal_form: applicable dans + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: قابل للتطبيق في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: berlaku di + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 适用于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: aplicable en + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + close_mappings: + - schema:spatialCoverage # schemaorg.owl:35880 - spatial coverage of content + - schema:jurisdiction # schemaorg.owl:23809 - legal jurisdiction + related_mappings: + - dcterms:coverage # dcterms.rdf:1039 - coverage (spatial and temporal) + aliases: + - is_or_was_applicable_in + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/apply_to.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/apply_to.yaml new file mode 100644 index 0000000000..7c0ee36aec --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/apply_to.yaml @@ -0,0 +1,134 @@ +# ============================================================================== +# LinkML Slot Definition: apply_to +# ============================================================================== +# Putting a principle, method, or rule into practical operation to serve +# a specific purpose. Used for documenting standards and policies applied. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|------------------------|-------------------|---------|------------------------------------------| +# | **PROV-O** | `prov:used` | prov.ttl:1039-1053| exact | "Activity used Entity" - core apply. | +# | **CIDOC-CRM**| `crm:P33_used_specific_technique`| CIDOC_CRM| close | Activity used specific procedure. | +# | **RiC-O** | `rico:isOrWasRegulatedBy`| RiC-O_1-1.rdf | close | Thing regulated by Rule. | +# | **ODRL** | `odrl:use` | odrl.ttl | close | Generic action for using an Asset. | +# | **Schema.org**| `schema:legislationApplies`| schemaorg.owl | narrow | Legislation applies another. | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Changed slot_uri from hc:apply_to to prov:used (exact mapping) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/apply_to +name: apply_to +title: apply to +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: https://schema.org/ + rico: https://www.ica.org/standards/RiC/ontology# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + odrl: http://www.w3.org/ns/odrl/2/ + premis: http://www.loc.gov/premis/rdf/v3/ +imports: +- linkml:types +default_prefix: hc +slots: + apply_to: + description: >- + To put a principle, method, or rule into practical operation to serve + a specific purpose. + alt_descriptions: + nl: >- + Een principe, methode of regel in praktijk brengen om een specifiek + doel te dienen. + de: >- + Ein Prinzip, eine Methode oder eine Regel in die praktische Anwendung + bringen, um einem bestimmten Zweck zu dienen. + fr: >- + Mettre en application pratique un principe, une méthode ou une règle + pour servir un objectif spécifique. + ar: >- + وضع مبدأ أو طريقة أو قاعدة موضع التنفيذ العملي لخدمة غرض محدد. + id: >- + Menerapkan prinsip, metode, atau aturan ke dalam operasi praktis + untuk melayani tujuan tertentu. + zh: >- + 将原则、方法或规则付诸实践,以服务于特定目的。 + es: >- + Poner en práctica un principio, método o regla para servir + un propósito específico. + structured_aliases: + - literal_form: past toe op + - is_or_was_apply_to + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: wendet an auf + predicate: EXACT_SYNONYM + in_language: de + - literal_form: applique à + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يطبق على + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: menerapkan pada + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 应用于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: aplica a + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + multivalued: true + # The semantics align with rico:isOrWasRegulatedBy (inverse) and prov:used + slot_uri: prov:used + # Semantic mappings (SKOS predicates) + # From: prov.ttl, CIDOC_CRM_v7.1.3.rdf, RiC-O_1-1.rdf, odrl.ttl, dcterms.rdf + exact_mappings: + - prov:used # prov.ttl: Activity used Entity - core "apply" semantics + close_mappings: + - crm:P33_used_specific_technique # CIDOC-CRM: Activity used specific Design/Procedure + - crm:P16_used_specific_object # CIDOC-CRM: Activity used specific object essential to outcome + - rico:isOrWasRegulatedBy # RiC-O: Thing is/was regulated by Rule (inverse of regulatesOrRegulated) + - odrl:use # ODRL: Most generic action for using an Asset + related_mappings: + - crm:P32_used_general_technique # CIDOC-CRM: Activity used general technique (type-level) + - rico:regulatesOrRegulated # RiC-O: Rule regulates/regulated Thing + - rico:isAssociatedWithRule # RiC-O: Thing associated with Rule + - prov:Usage # prov.ttl: Class for qualified usage relationships + - prov:qualifiedUsage # prov.ttl: Qualified usage relation + - odrl:action # ODRL: Action permitted/prohibited on asset + - premis:policy # PREMIS: Has policy relationship + narrow_mappings: + - schema:legislationApplies # schema.org: Legislation applies/transfers another legislation + - schema:usesDevice # schema.org: Medical procedure uses device + - crm:P125_used_object_of_type # CIDOC-CRM: Activity used object of type (type-level) + broad_mappings: + - dcterms:relation # dcterms.rdf: Generic resource relation + - rico:isRelatedTo # RiC-O: Generic relation between Things + aliases: + - applies_or_applied_to + - is_or_was_apply_to + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types for various application contexts. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: Generic application relationship slot usable across contexts. + comments: + - | + **SEMANTICS**: Uses RiC-O temporal pattern (is_or_was / has_or_had / applies_or_applied) + to capture application relationships that may change over time. An institution that + "applied" a cataloging standard in 2010 may have adopted a different standard by 2025. + - | + **ONTOLOGY NOTES**: The original slot_uri rico:appliesOrAppliedTo does not exist in + RiC-O 1.1. The closest RiC-O predicates are rico:isOrWasRegulatedBy (for rules/mandates) + and rico:isAssociatedWithRule. For general "apply" semantics, prov:used from PROV-O + and crm:P33_used_specific_technique from CIDOC-CRM are the most appropriate mappings. + examples: + - value: "apply:\n - \"ISAD(G)\"\n - \"Dublin Core\"\n" + description: Institution applies descriptive standards to its collections diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/appreciated.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/appreciated.yaml new file mode 100644 index 0000000000..92c2636a66 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/appreciated.yaml @@ -0,0 +1,98 @@ +# ============================================================================== +# LinkML Slot Definition: appreciated +# ============================================================================== +# Whether something increased in monetary value over time. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|----------------------------------------------------------| +# | (none found) | - | - | - | Financial appreciation is domain-specific | +# +# SEMANTIC NOTES: +# - Financial appreciation is a specialized concept in asset valuation +# - No standard ontology property found for this boolean concept +# - Custom hc: URI is appropriate for this domain-specific property +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/appreciated +name: appreciated +title: Appreciated + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + appreciated: + slot_uri: hc:appreciated + description: >- + To have increased in monetary value, price, or worth over a specific period, + typically due to market factors, scarcity, or asset improvements. + alt_descriptions: + nl: >- + In monetaire waarde, prijs of waarde gestegen over een bepaalde periode, + doorgaans door marktfactoren, schaarste of verbeteringen aan het bezit. + de: >- + An monetärem Wert, Preis oder Wert über einen bestimmten Zeitraum gestiegen, + typischerweise aufgrund von Marktfaktoren, Knappheit oder Vermögensverbesserungen. + fr: >- + Avoir augmenté en valeur monétaire, prix ou valeur sur une période spécifique, + généralement en raison de facteurs de marché, de rareté ou d'améliorations d'actifs. + ar: >- + أن تزداد قيمته النقدية أو سعره أو قيمته خلال فترة محددة، عادةً بسبب + عوامل السوق أو الندرة أو تحسينات الأصول. + id: >- + Meningkat nilai moneter, harga, atau nilainya selama periode tertentu, + biasanya karena faktor pasar, kelangkaan, atau peningkatan aset. + zh: >- + 在特定时期内货币价值、价格或价值上涨,通常是由于市场因素、稀缺性或资产改善。 + es: >- + Haber aumentado en valor monetario, precio o valor durante un período + específico, generalmente debido a factores de mercado, escasez o mejoras de activos. + structured_aliases: + - literal_form: in waarde gestegen + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: im Wert gestiegen + predicate: EXACT_SYNONYM + in_language: de + - literal_form: apprécié + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: ارتفعت قيمته + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mengalami apresiasi + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 增值 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: apreciado + predicate: EXACT_SYNONYM + in_language: es + range: boolean + multivalued: false + aliases: + - is_or_was_appreciated + comments: + - | + **USAGE**: Use this boolean flag to indicate whether an asset (artwork, property, + collection item) has appreciated in value. For the appreciation amount or rate, + use additional properties. + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/approved_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/approved_by.yaml new file mode 100644 index 0000000000..d7861a6c91 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/approved_by.yaml @@ -0,0 +1,101 @@ +# ============================================================================== +# LinkML Slot Definition: approved_by +# ============================================================================== +# Individual, organization, or governing body that approved something. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|----------------------------------------------------------| +# | **PROV-O** | `prov:wasAttributedTo`| prov.ttl:428-437 | close | Attribution to agent - similar but broader | +# | **DCTerms** | `dcterms:publisher` | dcterms.rdf | related | Publisher - different semantic | +# +# SEMANTIC NOTES: +# - Approval implies formal authorization/validation by authority +# - prov:wasAttributedTo is about provenance attribution, not approval +# - Custom hc: URI is appropriate for this formal approval context +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added multilingual support, close_mappings, header documentation +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/approved_by +name: approved_by +title: Approved By + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + approved_by: + slot_uri: hc:approvedBy + description: >- + To be formally validated, authorized, or agreed upon by a specific individual, + organization, or governing body with the power to sanction the action or content. + alt_descriptions: + nl: >- + Formeel gevalideerd, geautoriseerd of overeengekomen door een specifiek + individu, organisatie of bestuursorgaan met de bevoegdheid om de actie + of inhoud te bekrachtigen. + de: >- + Formell validiert, autorisiert oder vereinbart von einer bestimmten Person, + Organisation oder einem Leitungsgremium mit der Befugnis, die Handlung + oder den Inhalt zu genehmigen. + fr: >- + Formellement validé, autorisé ou convenu par un individu, une organisation + ou un organe directeur spécifique ayant le pouvoir de sanctionner l'action + ou le contenu. + ar: >- + أن يتم التحقق منه رسمياً أو الموافقة عليه من قبل فرد أو منظمة أو + هيئة حاكمة معينة لديها صلاحية اعتماد الإجراء أو المحتوى. + id: >- + Divalidasi secara formal, diotorisasi, atau disetujui oleh individu, + organisasi, atau badan pengatur tertentu yang memiliki wewenang untuk + menyetujui tindakan atau konten. + zh: >- + 由具有批准行动或内容权力的特定个人、组织或管理机构正式验证、授权或同意。 + es: >- + Formalmente validado, autorizado o acordado por un individuo, organización + u órgano de gobierno específico con el poder de sancionar la acción o contenido. + structured_aliases: + - literal_form: goedgekeurd door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: genehmigt von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: approuvé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: موافق عليه من قبل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: disetujui oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 由...批准 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: aprobado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + close_mappings: + - prov:wasAttributedTo # prov.ttl:428-437 - attribution to agent + aliases: + - is_or_was_approved_by + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/approved_on.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/approved_on.yaml new file mode 100644 index 0000000000..9932860e04 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/approved_on.yaml @@ -0,0 +1,94 @@ +# ============================================================================== +# LinkML Slot Definition: approved_on +# ============================================================================== +# Date or point in time when something was formally approved. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|----------------------------------------------------------| +# | **DCTerms** | `dcterms:dateAccepted`| dcterms.rdf | close | Date of acceptance - similar semantic | +# | **PROV-O** | `prov:generatedAtTime`| prov.ttl | related | Time of generation - more generic | +# +# SEMANTIC NOTES: +# - Approval date captures formal authorization timestamp +# - dcterms:dateAccepted is close but more about resource acceptance +# - Custom hc: URI appropriate for this approval-specific date +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description, added multilingual support, header documentation +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/approved_on +name: approved_on +title: Approved On + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + approved_on: + slot_uri: hc:approvedOn + description: >- + To be formally validated, authorized, or agreed upon at a specific date or + point in time. + alt_descriptions: + nl: >- + Formeel gevalideerd, geautoriseerd of overeengekomen op een specifieke + datum of tijdstip. + de: >- + Formell validiert, autorisiert oder vereinbart zu einem bestimmten Datum + oder Zeitpunkt. + fr: >- + Formellement validé, autorisé ou convenu à une date ou un moment spécifique. + ar: >- + أن يتم التحقق منه رسمياً أو الموافقة عليه في تاريخ أو وقت محدد. + id: >- + Divalidasi secara formal, diotorisasi, atau disetujui pada tanggal atau + titik waktu tertentu. + zh: >- + 在特定日期或时间点正式验证、授权或同意。 + es: >- + Formalmente validado, autorizado o acordado en una fecha o momento específico. + structured_aliases: + - literal_form: goedgekeurd op + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: genehmigt am + predicate: EXACT_SYNONYM + in_language: de + - literal_form: approuvé le + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: موافق عليه في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: disetujui pada + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 批准于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: aprobado el + predicate: EXACT_SYNONYM + in_language: es + range: datetime + multivalued: false + close_mappings: + - dcterms:dateAccepted # dcterms.rdf - date of acceptance + aliases: + - is_or_was_approved_on + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/archived_as.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/archived_as.yaml new file mode 100644 index 0000000000..75205b3eb5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/archived_as.yaml @@ -0,0 +1,106 @@ +# ============================================================================== +# LinkML Slot Definition: archived_as +# ============================================================================== +# Designation, identifier, format, or category under which something is archived. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|----------------------------------------------------------| +# | **Schema.org**| `schema:archivedAt` | schemaorg.owl:8358-8379 | related | Archive location/page - different semantic (WHERE not AS)| +# | **DCTerms** | `dcterms:identifier` | dcterms.rdf | related | Identifier - more generic | +# +# SEMANTIC NOTES: +# - "Archived as" captures the designation/classification within archive +# - schema:archivedAt is about WHERE archived, not classification +# - NOT an exact mapping to schema:archivedAt (different semantic) +# - Custom hc: URI is appropriate +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description (removed migration note), corrected mapping from exact to related +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/archived_as +name: archived_as +title: Archived As + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + archived_as: + slot_uri: hc:archivedAs + description: >- + To be stored, preserved, or classified within an archival system under a + specific designation, identifier, format, or category. + alt_descriptions: + nl: >- + Opgeslagen, bewaard of geclassificeerd binnen een archiefsysteem onder + een specifieke aanduiding, identificatie, formaat of categorie. + de: >- + In einem Archivsystem unter einer bestimmten Bezeichnung, Kennung, + einem Format oder einer Kategorie gespeichert, aufbewahrt oder klassifiziert. + fr: >- + Stocké, préservé ou classé dans un système d'archivage sous une + désignation, identifiant, format ou catégorie spécifique. + ar: >- + أن يتم تخزينه أو حفظه أو تصنيفه ضمن نظام أرشفة تحت تسمية أو + معرف أو تنسيق أو فئة محددة. + id: >- + Disimpan, dilestarikan, atau diklasifikasikan dalam sistem kearsipan + di bawah penunjukan, pengidentifikasi, format, atau kategori tertentu. + zh: >- + 在档案系统中以特定名称、标识符、格式或类别存储、保存或分类。 + es: >- + Almacenado, preservado o clasificado dentro de un sistema de archivo + bajo una designación, identificador, formato o categoría específica. + structured_aliases: + - literal_form: gearchiveerd als + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: archiviert als + predicate: EXACT_SYNONYM + in_language: de + - literal_form: archivé comme + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مؤرشف باسم + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diarsipkan sebagai + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 存档为 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: archivado como + predicate: EXACT_SYNONYM + in_language: es + range: string + multivalued: true + related_mappings: + - schema:archivedAt # schemaorg.owl:8358 - archive location (WHERE, not classification) + - dcterms:identifier # Identifier - more generic + aliases: + - is_or_was_archived_as + comments: + - | + **SEMANTIC NOTE**: This slot captures the classification/designation within + an archive (e.g., "Series A, Box 12"), not the location. For archive location, + use `archived_at` or `archived_in`. + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/archived_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/archived_at.yaml new file mode 100644 index 0000000000..a8535ba026 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/archived_at.yaml @@ -0,0 +1,97 @@ +# ============================================================================== +# LinkML Slot Definition: archived_at +# ============================================================================== +# Physical location, institution, or digital repository where something is archived. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|---------------------- |----------------------|---------|----------------------------------------------------------| +# | **Schema.org**| `schema:archivedAt` | schemaorg.owl:8358-8379 | exact | "page or link involved in archival of a CreativeWork" | +# +# SEMANTIC NOTES: +# - schema:archivedAt is exact match for archive location +# - Domain: CreativeWork, Range: URL/WebPage +# - Our slot is broader (any entity, any location type) +# - Using standard URI as slot_uri per established principle +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added multilingual support, updated slot_uri to schema:archivedAt +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/archived_at +name: archived_at +title: Archived At + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + archived_at: + slot_uri: schema:archivedAt + description: >- + To be preserved, stored, or held in custody at a specific physical location, + institution, or digital repository. + alt_descriptions: + nl: >- + Bewaard, opgeslagen of in bewaring gehouden op een specifieke fysieke + locatie, instelling of digitale repository. + de: >- + An einem bestimmten physischen Ort, einer Institution oder einem + digitalen Repository aufbewahrt, gespeichert oder verwahrt. + fr: >- + Préservé, stocké ou détenu en garde à un emplacement physique spécifique, + une institution ou un dépôt numérique. + ar: >- + أن يتم حفظه أو تخزينه أو الاحتفاظ به في موقع مادي محدد أو + مؤسسة أو مستودع رقمي. + id: >- + Dilestarikan, disimpan, atau dipegang dalam penjagaan di lokasi fisik + tertentu, institusi, atau repositori digital. + zh: >- + 在特定物理位置、机构或数字存储库中保存、存储或保管。 + es: >- + Preservado, almacenado o mantenido en custodia en una ubicación física + específica, institución o repositorio digital. + structured_aliases: + - literal_form: gearchiveerd bij + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: archiviert bei + predicate: EXACT_SYNONYM + in_language: de + - literal_form: archivé à + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مؤرشف في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diarsipkan di + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 存档于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: archivado en + predicate: EXACT_SYNONYM + in_language: es + range: uri + multivalued: false + exact_mappings: + - schema:archivedAt # schemaorg.owl:8358-8379 - "page or link involved in archival" + aliases: + - is_or_was_archived_at + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/archived_in.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/archived_in.yaml new file mode 100644 index 0000000000..e166e35f34 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/archived_in.yaml @@ -0,0 +1,105 @@ +# ============================================================================== +# LinkML Slot Definition: archived_in +# ============================================================================== +# Record set, collection, series, or repository structure containing the archived item. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|----------------------------------------------------------| +# | **DCTerms** | `dcterms:isPartOf` | dcterms.rdf:1464 | close | Part-of relationship - similar for containment | +# | **RiC-O** | `rico:isPartOfTransitive`| RiC-O_1-1.rdf:15856| close | Archival hierarchy relationship | +# +# SEMANTIC NOTES: +# - "Archived in" captures containment within archival structure +# - dcterms:isPartOf is close but more generic +# - RiC-O has specific archival hierarchy properties +# - Custom hc: URI appropriate for this archival context +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support, close_mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/archived_in +name: archived_in +title: Archived In + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + archived_in: + slot_uri: hc:archivedIn + description: >- + To be contained, filed, or preserved within a specific record set, collection, + series, or repository structure. + alt_descriptions: + nl: >- + Opgenomen, gearchiveerd of bewaard binnen een specifieke verzameling + dossiers, collectie, serie of repositorystructuur. + de: >- + In einem bestimmten Aktenbestand, einer Sammlung, Serie oder + Repository-Struktur enthalten, abgelegt oder aufbewahrt. + fr: >- + Contenu, classé ou préservé dans un ensemble de documents, une collection, + une série ou une structure de dépôt spécifique. + ar: >- + أن يكون محتوى أو مودعاً أو محفوظاً ضمن مجموعة سجلات أو + مجموعة أو سلسلة أو هيكل مستودع معين. + id: >- + Terkandung, diarsipkan, atau dilestarikan dalam kumpulan rekaman, + koleksi, seri, atau struktur repositori tertentu. + zh: >- + 包含、归档或保存在特定的记录集、收藏、系列或存储库结构中。 + es: >- + Contenido, archivado o preservado dentro de un conjunto de registros, + colección, serie o estructura de repositorio específica. + structured_aliases: + - literal_form: gearchiveerd in + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: archiviert in + predicate: EXACT_SYNONYM + in_language: de + - literal_form: archivé dans + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مؤرشف ضمن + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diarsipkan dalam + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 存档在 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: archivado en + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + close_mappings: + - dcterms:isPartOf # dcterms.rdf:1464 - part-of relationship + - rico:isPartOfTransitive # RiC-O_1-1.rdf:15856 - archival hierarchy + aliases: + - is_or_was_archived_in + comments: + - | + **SEMANTIC NOTE**: This slot captures containment within archival structure + (e.g., "in the Smith Family Papers collection"). For physical/digital location, + use `archived_at`. For classification/designation, use `archived_as`. + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/assert.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/assert.yaml new file mode 100644 index 0000000000..2c34aa894b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/assert.yaml @@ -0,0 +1,144 @@ +# ============================================================================== +# LinkML Slot Definition: assert +# ============================================================================== +# Stating a fact or belief with confidence to affirm its validity or existence. +# Used for provenance and attribution contexts. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|------------------------|-------------------|---------|------------------------------------------| +# | **CIDOC-CRM**| `crm:P140_assigned_attribute_to`| CIDOC_CRM| exact | E13 assigns attribute to E1 Entity. | +# | **CIDOC-CRM**| `crm:P141_assigned` | CIDOC_CRM | close | The value being assigned. | +# | **OA** | `oa:hasBody` | oa.ttl | close | Annotation content being asserted. | +# | **OA** | `oa:hasTarget` | oa.ttl | close | What the assertion is about. | +# | **PROV-O** | `prov:wasAttributedTo` | prov.ttl | related | Entity attributed to Agent. | +# | **Schema.org**| `schema:Claim` | schemaorg.owl | related | Factually-oriented claim class. | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Changed slot_uri from hc:assert to crm:P140_assigned_attribute_to (exact mapping) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/assert +name: assert +title: assert +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: https://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + oa: http://www.w3.org/ns/oa# + rico: https://www.ica.org/standards/RiC/ontology# +imports: +- linkml:types +default_prefix: hc +slots: + assert: + title: Assert + description: >- + To state a fact or belief with confidence to affirm its validity or existence. + alt_descriptions: + nl: >- + Een feit of overtuiging met vertrouwen uitspreken om de geldigheid + of het bestaan ervan te bevestigen. + de: >- + Eine Tatsache oder Überzeugung mit Zuversicht aussprechen, um ihre + Gültigkeit oder Existenz zu bestätigen. + fr: >- + Énoncer un fait ou une croyance avec confiance pour affirmer sa + validité ou son existence. + ar: >- + التصريح بحقيقة أو اعتقاد بثقة لتأكيد صحتها أو وجودها. + id: >- + Menyatakan fakta atau keyakinan dengan percaya diri untuk menegaskan + validitas atau keberadaannya. + zh: >- + 自信地陈述事实或信念,以确认其有效性或存在。 + es: >- + Afirmar un hecho o creencia con confianza para confirmar su validez + o existencia. + structured_aliases: + - literal_form: beweert + - is_or_was_assert + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: behauptet + predicate: EXACT_SYNONYM + in_language: de + - literal_form: affirme + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يؤكد + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: menegaskan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 断言 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: afirma + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + multivalued: true + slot_uri: crm:P140_assigned_attribute_to + inlined: false + # Semantic mappings (SKOS predicates) + # From: prov.ttl, CIDOC_CRM_v7.1.3.rdf, schemaorg.owl, oa.ttl, RiC-O_1-1.rdf + exact_mappings: + - crm:P140_assigned_attribute_to # CIDOC-CRM: E13 Attribute Assignment assigns attribute to E1 CRM Entity + close_mappings: + - crm:P141_assigned # CIDOC-CRM: E13 Attribute Assignment assigned (the value/range) + - oa:hasBody # oa.ttl: Annotation has body (the content being asserted) + - oa:hasTarget # oa.ttl: Annotation has target (what the assertion is about) + related_mappings: + - crm:E13_Attribute_Assignment # CIDOC-CRM: Class - actions of making assertions about properties + - prov:Attribution # prov.ttl: Class - ascribing entity to agent + - prov:wasAttributedTo # prov.ttl: Entity was attributed to Agent + - oa:Annotation # oa.ttl: Class - Web Annotation (assertion container) + - oa:motivatedBy # oa.ttl: Annotation motivated by (purpose of assertion) + - oa:classifying # oa.ttl: Motivation - classify Target as something + - oa:identifying # oa.ttl: Motivation - assign identity to Target + - rico:describesOrDescribed # RiC-O: RecordResource describes/described Thing + - schema:Claim # schemaorg.owl: Class - specific factually-oriented claim + - schema:Statement # schemaorg.owl: Class - statement about something + - schema:mainEntity # schemaorg.owl: CreativeWork's primary entity (what is being asserted about) + narrow_mappings: + - schema:interpretedAsClaim # schemaorg.owl: MediaObject/CreativeWork interpreted as Claim + - crm:P177_assigned_property_of_type # CIDOC-CRM: E13 Attribute Assignment assigned property of type E55 Type + broad_mappings: + - prov:influenced # prov.ttl: Activity/Entity/Agent influenced another + - dcterms:relation # dcterms.rdf: Generic resource relation + aliases: + - asserts_or_asserted + - is_or_was_assert + annotations: + custodian_types: '["*"]' + specificity_score: 0.2 + specificity_rationale: Broadly applicable assertion predicate for provenance and attribution contexts. + comments: + - | + **SEMANTICS**: Uses RiC-O temporal pattern (is_or_was / has_or_had / asserts_or_asserted) + to capture assertions that may change over time. New evidence may modify or invalidate + hypotheses. Historical assertions are preserved for audit trail. + - | + **ONTOLOGY NOTES**: The core semantic model for assertions is CIDOC-CRM's E13 Attribute Assignment, + which represents "actions of making assertions about one property of an object". P140 connects + the assignment to the entity being described (domain), P141 connects to the value being assigned (range). + Web Annotation (oa:) provides a flexible assertion model with oa:hasBody (the assertion content) + and oa:hasTarget (what it's about). Note: prov:generated is NOT appropriate here as it represents + Activity-produces-Entity (creation), not epistemic claims. + - | + **USAGE**: + - Link PrimaryDigitalPresenceAssertion to DigitalPresence (crm:P140) + - Link Annotation to asserted content (oa:hasBody) + - Link assertion to what it's about (oa:hasTarget) + - | + **RANGE**: Generic `uriorcurie` to support multiple assertion targets (Hypothesis, DigitalPresence). + Classes should narrow this via slot_usage. + examples: + - value: "assert:\n - \"hypothesis:type_museum_art\"\n - \"claim:primary_website\"\n" + description: Provenance record asserting hypotheses about institution type \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/asserted_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/asserted_by.yaml new file mode 100644 index 0000000000..91ebcc1b53 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/asserted_by.yaml @@ -0,0 +1,93 @@ +# ============================================================================== +# LinkML Slot Definition: asserted_by +# ============================================================================== +# Links an assertion to the agent who made it. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |------------|-----------------------|--------------------|---------|--------------------------------------| +# | **PROV-O** | `prov:wasAttributedTo`| prov.ttl:1082-1097 | close | "Attribution is the ascribing of an | +# | | | | | entity to an agent" - agent focus | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support, ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/asserted_by +name: asserted_by +title: Asserted By +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + asserted_by: + slot_uri: hc:assertedBy + description: >- + To be stated, claimed, or declared to be true or valid by a specific + agent, source, or authority. + alt_descriptions: + nl: >- + Verklaard, beweerd of gedeclareerd te zijn als waar of geldig door + een specifieke agent, bron of autoriteit. + de: >- + Von einem bestimmten Agenten, einer Quelle oder Autorität als wahr + oder gültig erklärt, behauptet oder deklariert zu werden. + fr: >- + Être déclaré, affirmé ou proclamé vrai ou valide par un agent, + une source ou une autorité spécifique. + ar: >- + أن يُصرح به أو يُدعى أو يُعلن أنه صحيح أو صالح من قبل وكيل + أو مصدر أو سلطة محددة. + id: >- + Dinyatakan, diklaim, atau dideklarasikan benar atau valid oleh + agen, sumber, atau otoritas tertentu. + zh: >- + 由特定代理、来源或权威声明、主张或宣布为真实或有效。 + es: >- + Ser declarado, afirmado o proclamado como verdadero o válido por + un agente, fuente o autoridad específica. + structured_aliases: + - literal_form: beweerd door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: behauptet von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: affirmé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مُصرح به من قبل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dinyatakan oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 由...声明 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: afirmado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + close_mappings: + - prov:wasAttributedTo # prov.ttl:1082-1097 - "Attribution is the ascribing of an entity to an agent" + aliases: + - is_or_was_asserted_by + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot to link claims, statements, or assertions + to the agent (person, organization, or system) that made them. + - | + **MAPPING NOTE**: `prov:wasAttributedTo` is close but not exact - + PROV-O focuses on entity-to-agent attribution in provenance contexts, + while this slot specifically captures assertion/claim authorship. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/asserted_on.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/asserted_on.yaml new file mode 100644 index 0000000000..b14cb4ad36 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/asserted_on.yaml @@ -0,0 +1,90 @@ +# ============================================================================== +# LinkML Slot Definition: asserted_on +# ============================================================================== +# Date when an assertion was made. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------|----------------------|---------|------------------------------------| +# | **DC Terms** | `dcterms:date` | dcterms.rdf | close | General date (broader scope) | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/asserted_on +name: asserted_on +title: Asserted On + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + asserted_on: + slot_uri: hc:assertedOn + description: >- + The date or point in time when an assertion, claim, or statement was + declared as true or valid. + alt_descriptions: + nl: >- + De datum of het moment waarop een bewering, claim of verklaring als + waar of geldig werd verklaard. + de: >- + Das Datum oder der Zeitpunkt, an dem eine Behauptung, Aussage oder + Erklärung als wahr oder gültig erklärt wurde. + fr: >- + La date ou le moment où une affirmation, une revendication ou une + déclaration a été déclarée comme vraie ou valide. + ar: >- + التاريخ أو نقطة الوقت التي تم فيها إعلان تأكيد أو ادعاء أو بيان + باعتباره صحيحًا أو صالحًا. + id: >- + Tanggal atau titik waktu ketika pernyataan, klaim, atau deklarasi + dinyatakan sebagai benar atau sah. + zh: >- + 断言、声明或陈述被宣布为真实或有效的日期或时间点。 + es: >- + La fecha o momento en que una afirmación, reclamación o declaración + fue declarada como verdadera o válida. + structured_aliases: + - literal_form: bevestigd op + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: behauptet am + predicate: EXACT_SYNONYM + in_language: de + - literal_form: affirmé le + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مُؤكَّد في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dinyatakan pada + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 断言于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: afirmado en + predicate: EXACT_SYNONYM + in_language: es + range: date + close_mappings: + - dcterms:date # General date property + aliases: + - is_or_was_asserted_on + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/assessed_on.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/assessed_on.yaml new file mode 100644 index 0000000000..9567cec125 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/assessed_on.yaml @@ -0,0 +1,90 @@ +# ============================================================================== +# LinkML Slot Definition: assessed_on +# ============================================================================== +# Date when an assessment or evaluation was performed. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------|----------------------|---------|------------------------------------| +# | **DC Terms** | `dcterms:date` | dcterms.rdf | close | General date (broader scope) | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/assessed_on +name: assessed_on +title: Assessed On + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + assessed_on: + slot_uri: hc:assessedOn + description: >- + The date or point in time when an evaluation, appraisal, or judgment + regarding value, quality, or status was performed. + alt_descriptions: + nl: >- + De datum of het moment waarop een evaluatie, taxatie of beoordeling + met betrekking tot waarde, kwaliteit of status werd uitgevoerd. + de: >- + Das Datum oder der Zeitpunkt, an dem eine Bewertung, Beurteilung + oder Einschätzung bezüglich Wert, Qualität oder Status durchgeführt wurde. + fr: >- + La date ou le moment où une évaluation, une estimation ou un jugement + concernant la valeur, la qualité ou le statut a été effectué. + ar: >- + التاريخ أو نقطة الوقت التي تم فيها إجراء تقييم أو تثمين أو حكم + بشأن القيمة أو الجودة أو الحالة. + id: >- + Tanggal atau titik waktu ketika evaluasi, penilaian, atau pertimbangan + mengenai nilai, kualitas, atau status dilakukan. + zh: >- + 对价值、质量或状态进行评估、评价或判断的日期或时间点。 + es: >- + La fecha o momento en que se realizó una evaluación, tasación o juicio + sobre el valor, la calidad o el estado. + structured_aliases: + - literal_form: beoordeeld op + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: bewertet am + predicate: EXACT_SYNONYM + in_language: de + - literal_form: évalué le + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مُقيَّم في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dinilai pada + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 评估于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: evaluado en + predicate: EXACT_SYNONYM + in_language: es + range: date + close_mappings: + - dcterms:date # General date property + aliases: + - is_or_was_assessed_on + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/associated_with.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/associated_with.yaml new file mode 100644 index 0000000000..5313b92ffa --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/associated_with.yaml @@ -0,0 +1,99 @@ +# ============================================================================== +# LinkML Slot Definition: associated_with +# ============================================================================== +# General association with another entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------|----------------------|---------|------------------------------------| +# | **Schema.org**| `schema:about` | schemaorg.owl | close | Subject matter (narrower scope) | +# | **DC Terms** | `dcterms:relation`| dcterms.rdf | close | Related resource (broader) | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added multilingual support, ontology alignment table +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/associated_with +name: associated_with +title: Associated With + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + associated_with: + slot_uri: hc:associatedWith + description: >- + A connection, link, or relationship to another entity, person, or concept + in a significant way, often indicating a partnership, affiliation, or + shared context. + alt_descriptions: + nl: >- + Een verbinding, koppeling of relatie met een andere entiteit, persoon of concept + op een significante manier, vaak wijzend op een partnerschap, affiliatie of + gedeelde context. + de: >- + Eine Verbindung, Verknüpfung oder Beziehung zu einer anderen Entität, Person + oder einem Konzept auf bedeutsame Weise, die oft auf eine Partnerschaft, + Zugehörigkeit oder einen gemeinsamen Kontext hinweist. + fr: >- + Une connexion, un lien ou une relation avec une autre entité, personne ou + concept de manière significative, indiquant souvent un partenariat, une + affiliation ou un contexte partagé. + ar: >- + اتصال أو ارتباط أو علاقة بكيان أو شخص أو مفهوم آخر بطريقة مهمة، غالبًا ما + تشير إلى شراكة أو انتماء أو سياق مشترك. + id: >- + Koneksi, tautan, atau hubungan dengan entitas, orang, atau konsep lain + secara signifikan, sering menunjukkan kemitraan, afiliasi, atau konteks + bersama. + zh: >- + 与另一实体、人员或概念之间的重要联系、链接或关系,通常表示合作关系、隶属关系或共享背景。 + es: >- + Una conexión, enlace o relación con otra entidad, persona o concepto de + manera significativa, a menudo indicando una asociación, afiliación o + contexto compartido. + structured_aliases: + - literal_form: geassocieerd met + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: assoziiert mit + predicate: EXACT_SYNONYM + in_language: de + - literal_form: associé à + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مرتبط بـ + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: terkait dengan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 关联于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: asociado con + predicate: EXACT_SYNONYM + in_language: es + range: string + multivalued: true + close_mappings: + - schema:about # Subject matter relationship + - dcterms:relation # General related resource + aliases: + - is_or_was_associated_with + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/available.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/available.yaml new file mode 100644 index 0000000000..e9966deb94 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/available.yaml @@ -0,0 +1,99 @@ +# ============================================================================== +# LinkML Slot Definition: available +# ============================================================================== +# Whether something is available for access or use. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|------------------------|---------|------------------------------------| +# | **Schema.org**| `schema:availability` | schemaorg.owl:9289-9292| close | Item availability status | +# +# NOTE: schema:availability is an ObjectProperty expecting ItemAvailability enum values, +# while this slot is a boolean. Hence close_mapping, not exact. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added multilingual support, ontology alignment verification +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/available +name: available +title: Available + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + available: + slot_uri: hc:available + description: >- + Whether the entity is accessible, obtainable, or ready for immediate + use or service; indicates the entity is not currently occupied or restricted. + alt_descriptions: + nl: >- + Of de entiteit toegankelijk, verkrijgbaar of klaar is voor onmiddellijk + gebruik of dienst; geeft aan dat de entiteit momenteel niet bezet of beperkt is. + de: >- + Ob die Entität zugänglich, erhältlich oder für sofortige Nutzung oder + Dienst bereit ist; zeigt an, dass die Entität derzeit nicht belegt oder eingeschränkt ist. + fr: >- + Si l'entité est accessible, disponible ou prête pour une utilisation ou + un service immédiat; indique que l'entité n'est pas actuellement occupée ou restreinte. + ar: >- + ما إذا كان الكيان قابلاً للوصول أو الحصول عليه أو جاهزًا للاستخدام أو + الخدمة الفورية؛ يشير إلى أن الكيان غير مشغول أو مقيد حاليًا. + id: >- + Apakah entitas dapat diakses, diperoleh, atau siap untuk penggunaan atau + layanan segera; menunjukkan bahwa entitas saat ini tidak ditempati atau dibatasi. + zh: >- + 实体是否可访问、可获取或可立即使用或服务;表明实体目前未被占用或限制。 + es: >- + Si la entidad es accesible, obtenible o está lista para uso o servicio + inmediato; indica que la entidad no está actualmente ocupada o restringida. + structured_aliases: + - literal_form: beschikbaar + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: verfügbar + predicate: EXACT_SYNONYM + in_language: de + - literal_form: disponible + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: متاح + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: tersedia + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 可用 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: disponible + predicate: EXACT_SYNONYM + in_language: es + range: boolean + multivalued: false + close_mappings: + - schema:availability # schemaorg.owl:9289 - Item availability (ObjectProperty with enum) + aliases: + - is_or_was_available + annotations: + custodian_types: '["*"]' + comments: + - | + **MAPPING NOTE**: schema:availability is an ObjectProperty expecting ItemAvailability + enum values (InStock, OutOfStock, etc.), while this slot uses a boolean range. + Hence the close_mapping rather than exact_mapping. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/based_on.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/based_on.yaml new file mode 100644 index 0000000000..65f67b0d6e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/based_on.yaml @@ -0,0 +1,143 @@ +# ============================================================================== +# LinkML Slot Definition: based_on +# ============================================================================== +# Entity or resource this item is derived from or founded upon. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|-----------------------|------------------------|---------|-------------------------------------| +# | **PROV-O** | `prov:wasDerivedFrom` | prov.ttl:1099-1114 | exact | "A derivation is a transformation | +# | | | | | of an entity into another..." | +# | **Schema.org** | `schema:isBasedOn` | schemaorg.owl:22729-51 | close | "A resource from which this work is | +# | | | | | derived or from which it is a | +# | | | | | modification or adaptation." | +# | **RiC-O** | `rico:isOrWasBasedOn` | rico.owl | close | RiC-O derivation relationship | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description (moved use cases to comments), added multilingual +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/based_on +name: based_on +title: Based On +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + rico: https://www.ica.org/standards/RiC/ontology# + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + based_on: + slot_uri: prov:wasDerivedFrom + description: >- + To be derived from, founded upon, or developed using a specific source, + predecessor, or underlying data, indicating the origin or lineage of + the entity. + alt_descriptions: + nl: >- + Afgeleid zijn van, gebaseerd zijn op, of ontwikkeld zijn met behulp + van een specifieke bron, voorganger of onderliggende gegevens, wat + de oorsprong of afstamming van de entiteit aangeeft. + de: >- + Von einer bestimmten Quelle, einem Vorgänger oder zugrunde liegenden + Daten abgeleitet, darauf gegründet oder damit entwickelt zu werden, + was den Ursprung oder die Abstammung der Entität angibt. + fr: >- + Être dérivé de, fondé sur, ou développé à partir d'une source, + d'un prédécesseur ou de données sous-jacentes spécifiques, indiquant + l'origine ou la lignée de l'entité. + ar: >- + أن يكون مشتقًا من، أو مؤسسًا على، أو مطورًا باستخدام مصدر محدد + أو سلف أو بيانات أساسية، مما يشير إلى أصل أو نسب الكيان. + id: >- + Berasal dari, didirikan atas, atau dikembangkan menggunakan sumber, + pendahulu, atau data dasar tertentu, yang menunjukkan asal atau + garis keturunan entitas. + zh: >- + 源自、基于或使用特定来源、前身或基础数据开发, + 表明实体的起源或谱系。 + es: >- + Ser derivado de, fundado sobre, o desarrollado utilizando una fuente, + predecesor o datos subyacentes específicos, indicando el origen o + linaje de la entidad. + structured_aliases: + - literal_form: gebaseerd op + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: basiert auf + predicate: EXACT_SYNONYM + in_language: de + - literal_form: basé sur + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مبني على + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: berdasarkan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 基于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: basado en + predicate: EXACT_SYNONYM + in_language: es + range: string + multivalued: true + exact_mappings: + - prov:wasDerivedFrom # prov.ttl:1099-1114 - "A derivation is a transformation of an entity into another" + close_mappings: + - schema:isBasedOn # schemaorg.owl:22729-22751 - "A resource from which this work is derived" + - rico:isOrWasBasedOn + aliases: + - is_or_was_based_on + - based_on_claim + - is_or_was_based_on_claim + annotations: + custodian_types: '["*"]' + specificity_score: 0.25 + comments: + - | + **USE CASES**: + 1. **CMS Detection**: Platform based on a detected CMS + 2. **Software Dependencies**: Application based on framework/library + 3. **Content Derivation**: Document based on template/source + 4. **Infrastructure**: Service based on platform/technology + - | + **ARGUMENTATION SEMANTICS**: + In argumentation theory (Toulmin model), claims provide evidence that + WARRANTS (justifies) conclusions. This slot captures the reverse relationship: + a conclusion or derived value is BASED ON supporting claims. + - | + **PROVENANCE TRACKING**: + 1. Quantity provenance: A claims_count quantity is based on the actual claims + 2. Assertion support: An assertion about an entity is based on web claims + 3. Derivation tracking: A computed value is based on source claims + - | + **EXAMPLE**: + ```yaml + has_or_had_quantity: + quantity_value: 47 + quantity_type: CLAIM_COUNT + has_or_had_provenance: + based_on_claim: + - claim_type: STAFF_NAME + claim_value: "Jan de Vries" + - claim_type: STAFF_ROLE + claim_value: "Director" + ``` + - | + **MIGRATION NOTE (2026-01-19)**: + Created per slot_fixes.yaml revision for claims_count migration. + Enables provenance tracking for claim-based quantities. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/begin_of_the_begin.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/begin_of_the_begin.yaml new file mode 100644 index 0000000000..655a67d483 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/begin_of_the_begin.yaml @@ -0,0 +1,150 @@ +# ============================================================================== +# LinkML Slot Definition: begin_of_the_begin +# ============================================================================== +# CIDOC-CRM fuzzy temporal bound: earliest possible start time of a temporal +# extent. Part of the four-point fuzzy date pattern. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|------------------------|-------------------|---------|------------------------------------------| +# | **CIDOC-CRM**| `crm:P82a_begin_of_the_begin`| CIDOC_CRM | slot_uri| Earliest possible start of E52 Time-Span.| +# | | | | exact | | +# | **RiC-O** | `rico:hasBeginningDate`| RiC-O_1-1.rdf | close | Thing has beginning Date. | +# | **OWL Time** | `time:hasBeginning` | time.ttl | related | Exact instant, not fuzzy. | +# | **PROV-O** | `prov:startedAtTime` | prov.ttl | related | Exact start time, not fuzzy. | +# | **Schema.org**| `schema:startDate` | schemaorg.owl | broad | Simple date, no uncertainty semantics. | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added broad_mappings (crm:P82_at_some_time_within - parent of P82a) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/begin_of_the_begin +name: begin_of_the_begin +title: Begin of the Begin +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + time: http://www.w3.org/2006/time# + prov: http://www.w3.org/ns/prov# + schema: https://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# +default_prefix: hc +imports: +- linkml:types +slots: + begin_of_the_begin: + # Primary semantic: CIDOC-CRM fuzzy temporal bound (earliest possible start) + slot_uri: crm:P82a_begin_of_the_begin + description: >- + To indicate the earliest possible start time of a temporal extent, used + to express uncertainty about when something began. + alt_descriptions: + nl: >- + Het aangeven van de vroegst mogelijke starttijd van een tijdsspanne, + gebruikt om onzekerheid over het begin uit te drukken. + de: >- + Die frühestmögliche Startzeit eines zeitlichen Umfangs angeben, um + Unsicherheit darüber auszudrücken, wann etwas begann. + fr: >- + Indiquer le moment de début le plus tôt possible d'une étendue + temporelle, pour exprimer l'incertitude sur le commencement. + ar: >- + الإشارة إلى أقرب وقت بداية ممكن لنطاق زمني، يستخدم للتعبير عن عدم + اليقين حول متى بدأ شيء ما. + id: >- + Menunjukkan waktu mulai paling awal yang mungkin dari rentang waktu, + digunakan untuk mengekspresikan ketidakpastian tentang kapan sesuatu dimulai. + zh: >- + 表示时间范围最早可能的开始时间,用于表达某事何时开始的不确定性。 + es: >- + Indicar el momento de inicio más temprano posible de una extensión + temporal, para expresar incertidumbre sobre cuándo comenzó algo. + structured_aliases: + - literal_form: begin van het begin + - is_or_was_begin_of_the_begin + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Beginn des Beginns + predicate: EXACT_SYNONYM + in_language: de + - literal_form: début du début + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: بداية البداية + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: awal dari awal + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 开始之始 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: inicio del inicio + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + any_of: + - range: Timestamp + - range: string + - range: datetime + inlined: false + required: false + multivalued: false + # Semantic mappings (SKOS predicates) + # From: CIDOC_CRM_v7.1.3.rdf, RiC-O_1-1.rdf, time ontology, prov.ttl, schemaorg.owl + exact_mappings: + - crm:P82a_begin_of_the_begin # CIDOC-CRM: Earliest possible start of E52 Time-Span (subPropertyOf P82_at_some_time_within) + close_mappings: + - rico:hasBeginningDate # RiC-O: Thing has beginning Date (ObjectProperty, range: rico:Date) + related_mappings: + - crm:P81a_end_of_the_begin # CIDOC-CRM: Latest possible start (partner in fuzzy start pattern) + - time:hasBeginning # OWL Time: Temporal entity has beginning Instant (exact, not fuzzy) + - rico:isBeginningDateOf # RiC-O: Inverse - Date is beginning date of Thing + - prov:startedAtTime # PROV-O: Activity started at time (exact instant, not fuzzy) + broad_mappings: + - crm:P82_at_some_time_within # CIDOC-CRM: Parent property - P82a is subPropertyOf P82 (line 3051) + - rico:isAssociatedWithDate # RiC-O: Generic date association (parent of hasBeginningDate) + - schema:startDate # schema.org: Start date (simple date, no fuzzy semantics) + - schema:foundingDate # schema.org: Organization founding date (specific start type) + - dcterms:date # Dublin Core: Generic date association + annotations: + slot_fixes_compliance: Range changed from datetime to Timestamp class per slot_fixes.yaml + migration_date: '2026-01-15' + replaces_slots: valid_from, valid_from_geo + custodian_types: '["*"]' + examples: + - value: | + timestamp_value: "1800-01-01" + timestamp_precision: day + description: Earliest possible date as Timestamp object + - value: | + # For "Founded between 1800-1805": + begin_of_the_begin: "1800-01-01" # earliest possible founding + end_of_the_begin: "1805-12-31" # latest possible founding + description: Expressing uncertainty about founding date using fuzzy bounds + comments: + - | + **CIDOC-CRM Fuzzy Date Pattern**: + + P82a defines the earliest possible time an E52 Time-Span could have started. + Used together with P81a (end_of_the_begin) to express uncertainty about start time. + The four fuzzy bound properties are: + - P82a_begin_of_the_begin: earliest possible start + - P81a_end_of_the_begin: latest possible start + - P81b_begin_of_the_end: earliest possible end + - P82b_end_of_the_end: latest possible end + - | + **Ontological Alignment**: + + - **Primary** (`slot_uri`): `crm:P82a_begin_of_the_begin` - CIDOC-CRM fuzzy temporal bound + - **Close**: `rico:hasBeginningDate` - RiC-O beginning date (ObjectProperty with rico:Date range) + - **Related**: `time:hasBeginning` - OWL Time (note: exact instant semantics, not fuzzy) + - **Broad**: `schema:startDate` - simple start date without uncertainty semantics + + Note: time:hasBeginning and prov:startedAtTime represent exact instants, not fuzzy bounds. + They are related but semantically distinct from the CIDOC-CRM uncertainty pattern. + - | + **Range**: Supports Timestamp class, string, and datetime values \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/begin_of_the_end.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/begin_of_the_end.yaml new file mode 100644 index 0000000000..2ef6e2c764 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/begin_of_the_end.yaml @@ -0,0 +1,150 @@ +# ============================================================================== +# LinkML Slot Definition: begin_of_the_end +# ============================================================================== +# CIDOC-CRM fuzzy temporal bound: earliest possible end time of a temporal +# extent. Part of the four-point fuzzy date pattern. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|------------------------|-------------------|---------|------------------------------------------| +# | **CIDOC-CRM**| `crm:P81b_begin_of_the_end`| CIDOC_CRM | slot_uri| Earliest possible end of E52 Time-Span. | +# | | | | exact | | +# | **CIDOC-CRM**| `crm:P81_ongoing_throughout`| CIDOC_CRM L3028| broad | Parent property (P81b subPropertyOf P81).| +# | **RiC-O** | `rico:hasEndDate` | RiC-O_1-1.rdf | close | Thing has end Date. | +# | **OWL Time** | `time:hasEnd` | time.ttl | related | Exact instant, not fuzzy. | +# | **PROV-O** | `prov:endedAtTime` | prov.ttl | related | Exact end time, not fuzzy. | +# | **Schema.org**| `schema:endDate` | schemaorg.owl | broad | Simple date, no uncertainty semantics. | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Moved crm:P81_ongoing_throughout to broad_mappings (parent of P81b) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/begin_of_the_end +name: begin_of_the_end +title: Begin of the End +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + time: http://www.w3.org/2006/time# + prov: http://www.w3.org/ns/prov# + schema: https://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# +default_prefix: hc +imports: +- linkml:types +slots: + begin_of_the_end: + # Primary semantic: CIDOC-CRM fuzzy temporal bound (earliest possible end) + slot_uri: crm:P81b_begin_of_the_end + description: >- + To indicate the earliest possible end time of a temporal extent, used + to express uncertainty about when something ended. + alt_descriptions: + nl: >- + Het aangeven van de vroegst mogelijke eindtijd van een tijdsspanne, + gebruikt om onzekerheid over het einde uit te drukken. + de: >- + Die frühestmögliche Endzeit eines zeitlichen Umfangs angeben, um + Unsicherheit darüber auszudrücken, wann etwas endete. + fr: >- + Indiquer le moment de fin le plus tôt possible d'une étendue + temporelle, pour exprimer l'incertitude sur la fin. + ar: >- + الإشارة إلى أقرب وقت نهاية ممكن لنطاق زمني، يستخدم للتعبير عن عدم + اليقين حول متى انتهى شيء ما. + id: >- + Menunjukkan waktu akhir paling awal yang mungkin dari rentang waktu, + digunakan untuk mengekspresikan ketidakpastian tentang kapan sesuatu berakhir. + zh: >- + 表示时间范围最早可能的结束时间,用于表达某事何时结束的不确定性。 + es: >- + Indicar el momento de fin más temprano posible de una extensión + temporal, para expresar incertidumbre sobre cuándo terminó algo. + structured_aliases: + - literal_form: begin van het einde + - is_or_was_begin_of_the_end + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Beginn des Endes + predicate: EXACT_SYNONYM + in_language: de + - literal_form: début de la fin + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: بداية النهاية + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: awal dari akhir + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 结束之始 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: inicio del fin + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + any_of: + - range: Timestamp + - range: string + - range: datetime + inlined: false + required: false + multivalued: false + # Semantic mappings (SKOS predicates) + # From: CIDOC_CRM_v7.1.3.rdf, RiC-O_1-1.rdf, time ontology, prov.ttl, schemaorg.owl + exact_mappings: + - crm:P81b_begin_of_the_end # CIDOC-CRM: Earliest possible end of E52 Time-Span (subPropertyOf P81_ongoing_throughout) + close_mappings: + - rico:hasEndDate # RiC-O: Thing has end Date (ObjectProperty, range: rico:Date) + related_mappings: + - crm:P82b_end_of_the_end # CIDOC-CRM: Latest possible end (partner in fuzzy end pattern) + - time:hasEnd # OWL Time: Temporal entity has end Instant (exact, not fuzzy) + - rico:isEndDateOf # RiC-O: Inverse - Date is end date of Thing + - prov:endedAtTime # PROV-O: Activity ended at time (exact instant, not fuzzy) + broad_mappings: + - crm:P81_ongoing_throughout # CIDOC-CRM: Parent property (P81b rdfs:subPropertyOf P81) + - rico:isAssociatedWithDate # RiC-O: Generic date association (parent of hasEndDate) + - schema:endDate # schema.org: End date (simple date, no fuzzy semantics) + - schema:dissolutionDate # schema.org: Organization dissolution date (specific end type) + - dcterms:date # Dublin Core: Generic date association + annotations: + migration_date: '2026-01-15' + custodian_types: '["*"]' + examples: + - value: | + timestamp_value: "1950-01-01" + timestamp_precision: day + description: Earliest possible closure date as Timestamp object + - value: | + # For "Closed between 1950-1955": + begin_of_the_end: "1950-01-01" # earliest possible closure + end_of_the_end: "1955-12-31" # latest possible closure + description: Expressing uncertainty about closure date using fuzzy bounds + comments: + - | + **CIDOC-CRM Fuzzy Date Pattern**: + + P81b defines the earliest possible time an E52 Time-Span could have ended. + Used together with P82b (end_of_the_end) to express uncertainty about end time. + The four fuzzy bound properties are: + - P82a_begin_of_the_begin: earliest possible start + - P81a_end_of_the_begin: latest possible start + - P81b_begin_of_the_end: earliest possible end + - P82b_end_of_the_end: latest possible end + - | + **Ontological Alignment**: + + - **Primary** (`slot_uri`): `crm:P81b_begin_of_the_end` - CIDOC-CRM fuzzy temporal bound + - **Broad**: `crm:P81_ongoing_throughout` - Parent property (P81b rdfs:subPropertyOf P81) + - **Close**: `rico:hasEndDate` - RiC-O end date (ObjectProperty with rico:Date range) + - **Related**: `time:hasEnd` - OWL Time (note: exact instant semantics, not fuzzy) + - **Broad**: `schema:endDate` - simple end date without uncertainty semantics + + Note: time:hasEnd and prov:endedAtTime represent exact instants, not fuzzy bounds. + They are related but semantically distinct from the CIDOC-CRM uncertainty pattern. + - | + **Range**: Supports Timestamp class, string, and datetime values \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/born_on.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/born_on.yaml new file mode 100644 index 0000000000..33f60b8c58 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/born_on.yaml @@ -0,0 +1,94 @@ +# ============================================================================== +# LinkML Slot Definition: born_on +# ============================================================================== +# Date of birth for a person or agent. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|-------------------------|---------|------------------------------------| +# | **Schema.org**| `schema:birthDate` | schemaorg.owl:10099-10102| exact | "Date of birth." | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Updated slot_uri to schema:birthDate, cleaned description, +# added multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/born_on +name: born_on +title: Born On + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + born_on: + slot_uri: schema:birthDate + description: >- + The date on which a person came into existence or was brought forth + into life. + alt_descriptions: + nl: >- + De datum waarop een persoon tot bestaan kwam of ter wereld werd gebracht. + de: >- + Das Datum, an dem eine Person ins Leben getreten ist oder geboren wurde. + fr: >- + La date à laquelle une personne est venue à l'existence ou est née. + ar: >- + التاريخ الذي وُلد فيه الشخص أو جاء إلى الوجود. + id: >- + Tanggal ketika seseorang lahir atau mulai ada. + zh: >- + 一个人出生或诞生的日期。 + es: >- + La fecha en que una persona nació o vino a la existencia. + structured_aliases: + - literal_form: geboren op + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: geboren am + predicate: EXACT_SYNONYM + in_language: de + - literal_form: né le + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مولود في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: lahir pada + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 出生于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: nacido el + predicate: EXACT_SYNONYM + in_language: es + range: date + multivalued: false + exact_mappings: + - schema:birthDate # schemaorg.owl:10099-10102 - "Date of birth." + aliases: + - is_or_was_born_on + annotations: + custodian_types: '["*"]' + comments: + - | + **MIGRATION NOTE (2026-02-03)**: + Migrated from is_or_was_born_on for conciseness. + Updated slot_uri from hc:bornOn to schema:birthDate since exact mapping exists. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/branch_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/branch_of.yaml new file mode 100644 index 0000000000..4631c4df2a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/branch_of.yaml @@ -0,0 +1,98 @@ +# ============================================================================== +# LinkML Slot Definition: branch_of +# ============================================================================== +# Parent organization this entity is a branch of. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|--------------------------|--------------------|---------|------------------------------------| +# | **W3C Org** | `org:subOrganizationOf` | org.rdf:663-681 | exact | "Hierarchical containment" | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added multilingual support, ontology alignment verification +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/branch_of +name: branch_of +title: Branch Of + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + branch_of: + slot_uri: org:subOrganizationOf + description: >- + A local office, subsidiary division, or administrative unit of a larger + parent organization, operating at a different location but under the + same governance structure. + alt_descriptions: + nl: >- + Een lokaal kantoor, ondergeschikte divisie of administratieve eenheid + van een grotere moederorganisatie, werkzaam op een andere locatie maar + onder dezelfde bestuursstructuur. + de: >- + Ein lokales Büro, eine Tochterdivision oder Verwaltungseinheit einer + größeren Mutterorganisation, die an einem anderen Standort tätig ist, + aber unter derselben Governance-Struktur steht. + fr: >- + Un bureau local, une division subsidiaire ou une unité administrative + d'une organisation mère plus grande, opérant dans un lieu différent + mais sous la même structure de gouvernance. + ar: >- + مكتب محلي أو قسم فرعي أو وحدة إدارية لمنظمة أم أكبر، تعمل في موقع + مختلف ولكن تحت نفس هيكل الحوكمة. + id: >- + Kantor lokal, divisi anak perusahaan, atau unit administratif dari + organisasi induk yang lebih besar, beroperasi di lokasi berbeda + tetapi di bawah struktur tata kelola yang sama. + zh: >- + 较大母组织的地方办事处、子公司部门或行政单位,在不同地点运营但在相同的治理结构下。 + es: >- + Una oficina local, división subsidiaria o unidad administrativa de una + organización matriz más grande, que opera en una ubicación diferente + pero bajo la misma estructura de gobierno. + structured_aliases: + - literal_form: vestiging van + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Zweigstelle von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: succursale de + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: فرع من + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: cabang dari + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 隶属于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: sucursal de + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: false + exact_mappings: + - org:subOrganizationOf # org.rdf:663-681 - Hierarchical containment of Organizations + aliases: + - is_or_was_branch_of + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/cancelled_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/cancelled_by.yaml new file mode 100644 index 0000000000..60c23a47ea --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/cancelled_by.yaml @@ -0,0 +1,102 @@ +# ============================================================================== +# LinkML Slot Definition: cancelled_by +# ============================================================================== +# Links an entity to the agent responsible for its cancellation. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |------------|--------------------------|--------------------|---------|------------------------------------| +# | **PROV-O** | `prov:wasInvalidatedBy` | prov.ttl:1194-1207 | close | "Invalidation is the start of the | +# | | | | | destruction, cessation, or ending | +# | | | | | of an existing entity" | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support, ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/cancelled_by +name: cancelled_by +title: Cancelled By +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + cancelled_by: + slot_uri: hc:cancelledBy + description: >- + To be annulled, terminated, voided, or called off by a specific + individual, organization, or system responsible for stopping the + action or validity. + alt_descriptions: + nl: >- + Geannuleerd, beëindigd, nietig verklaard of afgelast te zijn door + een specifiek individu, organisatie of systeem dat verantwoordelijk + is voor het stoppen van de actie of geldigheid. + de: >- + Von einer bestimmten Person, Organisation oder einem System, das + für das Beenden der Aktion oder Gültigkeit verantwortlich ist, + annulliert, beendet, für ungültig erklärt oder abgesagt zu werden. + fr: >- + Être annulé, terminé, invalidé ou annoncé par un individu, une + organisation ou un système spécifique responsable de l'arrêt de + l'action ou de la validité. + ar: >- + أن يتم إلغاؤه أو إنهاؤه أو إبطاله أو إيقافه من قبل فرد أو منظمة + أو نظام محدد مسؤول عن إيقاف الإجراء أو الصلاحية. + id: >- + Dibatalkan, diakhiri, dibatalkan, atau dihentikan oleh individu, + organisasi, atau sistem tertentu yang bertanggung jawab untuk + menghentikan tindakan atau validitas. + zh: >- + 由负责停止行动或有效性的特定个人、组织或系统取消、终止、 + 作废或撤销。 + es: >- + Ser anulado, terminado, invalidado o cancelado por un individuo, + organización o sistema específico responsable de detener la acción + o validez. + structured_aliases: + - literal_form: geannuleerd door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: storniert von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: annulé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: ملغى من قبل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dibatalkan oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 被...取消 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: cancelado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + close_mappings: + - prov:wasInvalidatedBy # prov.ttl:1194-1207 - "Invalidation is the start of the destruction, cessation..." + aliases: + - is_or_was_cancelled_by + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot to link cancelled events, subscriptions, + memberships, or other entities to the agent that cancelled them. + - | + **MAPPING NOTE**: `prov:wasInvalidatedBy` is close but not exact - + PROV-O focuses on the broader concept of invalidation (destruction, + cessation, ending), while this slot specifically captures cancellation + by an agent. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/cataloged_in.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/cataloged_in.yaml new file mode 100644 index 0000000000..2cc782005c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/cataloged_in.yaml @@ -0,0 +1,94 @@ +# ============================================================================== +# LinkML Slot Definition: cataloged_in +# ============================================================================== +# Catalog or database where this entity is listed. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------|----------------------|---------|------------------------------------| +# | **DC Terms** | `dcterms:isPartOf`| dcterms.rdf | close | Part of collection (broader) | +# | **DCAT** | `dcat:inCatalog` | dcat.rdf | close | Dataset in catalog | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/cataloged_in +name: cataloged_in +title: Cataloged In + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + dcat: http://www.w3.org/ns/dcat# + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + cataloged_in: + slot_uri: hc:catalogedIn + description: >- + The catalog, database, or systematic inventory in which the entity is + listed, recorded, or described. + alt_descriptions: + nl: >- + De catalogus, database of systematische inventaris waarin de entiteit + is opgenomen, geregistreerd of beschreven. + de: >- + Der Katalog, die Datenbank oder das systematische Verzeichnis, in dem + die Entität aufgelistet, erfasst oder beschrieben ist. + fr: >- + Le catalogue, la base de données ou l'inventaire systématique dans + lequel l'entité est répertoriée, enregistrée ou décrite. + ar: >- + الفهرس أو قاعدة البيانات أو الجرد المنهجي الذي تم فيه إدراج الكيان + أو تسجيله أو وصفه. + id: >- + Katalog, basis data, atau inventaris sistematis di mana entitas + terdaftar, tercatat, atau dijelaskan. + zh: >- + 实体被列出、记录或描述的目录、数据库或系统清单。 + es: >- + El catálogo, base de datos o inventario sistemático en el que la + entidad está listada, registrada o descrita. + structured_aliases: + - literal_form: gecatalogiseerd in + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: katalogisiert in + predicate: EXACT_SYNONYM + in_language: de + - literal_form: catalogué dans + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مفهرس في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dikatalogkan di + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 编入目录于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: catalogado en + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + close_mappings: + - dcterms:isPartOf # Part of a collection + - dcat:inCatalog # Dataset in catalog + aliases: + - is_or_was_cataloged_in + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/catalogue.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/catalogue.yaml new file mode 100644 index 0000000000..83a765b893 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/catalogue.yaml @@ -0,0 +1,154 @@ +# ============================================================================== +# LinkML Slot Definition: catalogue +# ============================================================================== +# Systematically compile items into an organized register or database for +# identification and accessibility. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------------|----------------------|---------|------------------------------------| +# | **CIDOC-CRM** | `crm:P70_documents` | CIDOC_CRM:2784-2798 | slot_uri| Primary cataloguing property | +# | **CIDOC-CRM** | `crm:P67_refers_to` | CIDOC_CRM:2796 | broad | P70 is subPropertyOf P67 | +# | **CIDOC-CRM** | `crm:P71_lists` | CIDOC_CRM:2812-2825 | close | Lists in authority document | +# | **DCAT** | `dcat:catalog` | dcat3.ttl:687-716 | close | Catalog containment | +# | **RiC-O** | `rico:isOrWasSubjectOf` | RiC-O_1-1:15293-15325| related | Subject of record resource | +# | **CIDOC-CRM** | `crm:P129i_is_subject_of` | CIDOC_CRM:3981-3989 | related | Subject of propositional object | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added broad_mappings (crm:P67_refers_to - P70 is subPropertyOf P67) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/catalogue +name: catalogue +title: catalogue +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + dcat: http://www.w3.org/ns/dcat# + rico: https://www.ica.org/standards/RiC/ontology# +imports: + - linkml:types +default_prefix: hc +slots: + catalogue: + slot_uri: crm:P70_documents + description: >- + To systematically compile items into an organized register or database, + recording specific details to ensure identification and accessibility. + alt_descriptions: + nl: >- + Het systematisch samenstellen van items in een georganiseerd register + of database, waarbij specifieke details worden vastgelegd om + identificatie en toegankelijkheid te waarborgen. + de: >- + Elemente systematisch in einem organisierten Register oder einer + Datenbank zusammenstellen und spezifische Details aufzeichnen, + um Identifikation und Zugänglichkeit sicherzustellen. + fr: >- + Compiler systématiquement des éléments dans un registre ou une base + de données organisée, en enregistrant des détails spécifiques pour + assurer l'identification et l'accessibilité. + ar: >- + تجميع العناصر بشكل منهجي في سجل أو قاعدة بيانات منظمة، مع تسجيل + تفاصيل محددة لضمان التعريف وإمكانية الوصول. + id: >- + Menyusun item secara sistematis ke dalam register atau database yang + terorganisir, mencatat detail spesifik untuk memastikan identifikasi + dan aksesibilitas. + zh: >- + 将项目系统地编入有组织的登记簿或数据库中,记录具体细节以确保识别和可访问性。 + es: >- + Compilar sistemáticamente elementos en un registro o base de datos + organizada, registrando detalles específicos para asegurar la + identificación y accesibilidad. + structured_aliases: + - literal_form: catalogiseren + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: katalogisieren + predicate: EXACT_SYNONYM + in_language: de + - literal_form: cataloguer + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: فهرسة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mengkatalog + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 编目 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: catalogar + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + exact_mappings: + # CIDOC-CRM P70 documents - Lines 2784-2798 in CIDOC_CRM_v7.1.3.rdf + # "This property describes the CRM Entities documented as instances of E31 Document. + # Documents may describe any conceivable entity..." + # Domain: E31_Document, Range: E1_CRM_Entity + - crm:P70_documents + broad_mappings: + # CIDOC_CRM_v7.1.3.rdf line 2796: P70 rdfs:subPropertyOf P67_refers_to + # Broad: P67 is the parent - general reference relation + - crm:P67_refers_to # from CIDOC_CRM - P70 is subPropertyOf P67 + close_mappings: + # CIDOC-CRM P71 lists - Lines 2812-2825 in CIDOC_CRM_v7.1.3.rdf + # "This property associates an instance of E32 Authority Document with + # an instance of E1 CRM Entity which it lists for reference purposes." + - crm:P71_lists + # DCAT catalog - Lines 687-716 in dcat3.ttl + # "A catalog that is listed in the catalog." + # Domain: dcat:Catalog, Range: dcat:Catalog + - dcat:catalog + related_mappings: + # RiC-O isOrWasSubjectOf - Lines 15293-15325 in RiC-O_1-1.rdf + # "Inverse of 'has or had subject' object property." + # Domain: rico:Thing, Range: rico:RecordResource + - rico:isOrWasSubjectOf + # CIDOC-CRM P129i is_subject_of - Lines 3981-3989 in CIDOC_CRM_v7.1.3.rdf + # "is subject of" - inverse of P129 is_about + - crm:P129i_is_subject_of + aliases: + - catalogues_or_catalogued + - is_or_was_catalogued_in + examples: + - value: https://nde.nl/ontology/hc/collection/correspondence-1900-1920 + description: >- + Catalogues the correspondence collection + - value: https://nde.nl/ontology/hc/dataset/inventory-2024 + description: >- + Catalogues the dataset in an institutional inventory + annotations: + custodian_types: '["*"]' + specificity_score: 0.65 + specificity_rationale: >- + Moderately specific - applies to heritage institutions that maintain + catalogues, registers, or inventories of their holdings. + comments: + - Updated 2026-02-02 with verified ontology mappings and translations + - | + **PURPOSE**: + Captures the action of systematically organizing and recording items + in a catalogue, register, or database. This is fundamental to heritage + institutions for managing collections, archives, and library holdings. + - | + **RiC-O NAMING** (Rule 39): + Uses "catalogues_or_catalogued" alias to indicate temporal relationship - + the item catalogues something currently or catalogued it in the past. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **CIDOC-CRM** | `crm:P70_documents` | 2784-2798 | slot_uri | Primary cataloguing property | + | **CIDOC-CRM** | `crm:P67_refers_to` | 2796 | broad | P70 is subPropertyOf P67 | + | **CIDOC-CRM** | `crm:P71_lists` | 2812-2825 | close | Lists in authority document | + | **DCAT** | `dcat:catalog` | 687-716 | close | Catalog containment | + | **RiC-O** | `rico:isOrWasSubjectOf` | 15293-15325 | related | Subject of record resource | + | **CIDOC-CRM** | `crm:P129i_is_subject_of` | 3981-3989 | related | Subject of propositional object | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/categorized_as.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/categorized_as.yaml new file mode 100644 index 0000000000..722a393c87 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/categorized_as.yaml @@ -0,0 +1,209 @@ +# ============================================================================== +# LinkML Slot Definition: categorized_as +# ============================================================================== +# Assign an entity to a specific class or group based on shared characteristics +# or distinct criteria. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|---------------------------|-----------------------|---------|------------------------------------| +# | **CIDOC-CRM** | `crm:P2_has_type` | CIDOC_CRM:1200 | slot_uri| Primary typing property | +# | **DCAT** | `dcat:theme` | dcat3.ttl:1722 | exact | Main category of resource | +# | **Dublin Core**| `dcterms:subject` | dcterms.rdf:1968-1987 | close | Topic of resource | +# | **Schema.org**| `schema:category` | schemaorg.owl:11338 | close | Category for item | +# | **RiC-O** | `rico:hasOrHadSubject` | RiC-O_1-1:8231 | close | Subject of Record Resource | +# | **RiC-O** | `rico:hasContentOfType` | RiC-O_1-1:4148 | close | Content type classification | +# | **Schema.org**| `schema:about` | schemaorg.owl:6247 | related | Subject matter (broader) | +# | **CIDOC-CRM** | `crm:P41_classified` | CIDOC_CRM:2184 | related | Classification event | +# | **SKOS** | `skos:broader` | skos.rdf:266 | related | Concept hierarchy | +# | **DCAT** | `dcat:keyword` | dcat3.ttl:1208 | broad | Free-text keywords | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-02 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/categorized_as +name: categorized_as +title: categorized as +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# + dcat: http://www.w3.org/ns/dcat# +imports: +- linkml:types +default_prefix: hc +slots: + categorized_as: + description: >- + To assign an entity to a specific class or group based on shared + characteristics or distinct criteria. + alt_descriptions: + nl: >- + Een entiteit toewijzen aan een specifieke klasse of groep op basis + van gedeelde kenmerken of onderscheidende criteria. + de: >- + Eine Entität einer bestimmten Klasse oder Gruppe zuordnen, basierend + auf gemeinsamen Merkmalen oder unterscheidenden Kriterien. + fr: >- + Attribuer une entité à une classe ou un groupe spécifique en fonction + de caractéristiques partagées ou de critères distincts. + ar: >- + تعيين كيان إلى فئة أو مجموعة محددة بناءً على خصائص مشتركة أو معايير مميزة. + id: >- + Menetapkan entitas ke kelas atau kelompok tertentu berdasarkan + karakteristik bersama atau kriteria yang berbeda. + zh: >- + 根据共同特征或特定标准将实体分配到特定的类别或组。 + es: >- + Asignar una entidad a una clase o grupo específico basándose en + características compartidas o criterios distintivos. + structured_aliases: + - literal_form: gecategoriseerd als + - is_or_was_categorized_as + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: kategorisiert als + predicate: EXACT_SYNONYM + in_language: de + - literal_form: catégorisé comme + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مصنف كـ + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dikategorikan sebagai + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 归类为 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: categorizado como + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + # range: Category + slot_uri: crm:P2_has_type + multivalued: true + inlined: false + inlined_as_list: false + + # VERIFIED MAPPINGS (2026-02-XX) + # Source files: data/ontology/CIDOC_CRM_v7.1.3.rdf, data/ontology/dcterms.rdf, + # data/ontology/dcat3.ttl, data/ontology/schemaorg.owl, + # data/ontology/RiC-O_1-1.rdf, data/ontology/skos.rdf + + exact_mappings: + # dcat3.ttl line 1722: theme + # "A main category of the resource. A resource can have multiple themes." + # Exact: categorization/classification semantics + - dcat:theme # from dcat3.ttl - main category of resource + + close_mappings: + # dcterms.rdf line 1968-1987: subject + # "A topic of the resource" + # Close: aboutness/topic is related but not identical to categorization + - dcterms:subject # from dcterms.rdf - topic of resource + + # schemaorg.owl line 11338: category + # "A category for the item. Greater signs or slashes can indicate category hierarchy." + # Close: informal category assignment + - schema:category # from schemaorg.owl - category for item + + # RiC-O_1-1.rdf line 8231: hasOrHadSubject + # "Connects a Record Resource to a Thing that is or was its subject" + # Close: subject relationship for archival records + - rico:hasOrHadSubject # from RiC-O_1-1.rdf - subject of Record Resource + + # RiC-O_1-1.rdf line 4148: hasContentOfType + # Connects Record Resource to Type + # Close: content type classification + - rico:hasContentOfType # from RiC-O_1-1.rdf - content type of Record Resource + + related_mappings: + # schemaorg.owl line 6247: about + # "The subject matter of an object" + # Related: aboutness (broader than categorization) + - schema:about # from schemaorg.owl - subject matter (broader) + + # CIDOC_CRM_v7.1.3.rdf line 2184: P41_classified + # "This property records the act of classifying an item" + # Related: the classification ACT (event-based, not direct categorization) + - crm:P41_classified # from CIDOC_CRM_v7.1.3.rdf - classification event + + # CIDOC_CRM_v7.1.3.rdf line 3912: P127_has_broader_term + # "Identifies a super-Type to which this Type is subordinate" + # Related: hierarchy between Types, not Entity-to-Type relationship + - crm:P127_has_broader_term # from CIDOC_CRM_v7.1.3.rdf - Type hierarchy + + # skos.rdf line 266: broader + # "Relates a concept to a concept that is more general in meaning" + # Related: Concept-to-Concept hierarchy (not Entity-to-Concept) + - skos:broader # from skos.rdf - concept hierarchy (related context) + + # skos.rdf line 281: narrower + # "Relates a concept to a concept that is more specific in meaning" + # Related: Concept-to-Concept hierarchy (not Entity-to-Concept) + - skos:narrower # from skos.rdf - concept hierarchy (related context) + + broad_mappings: + # dcat3.ttl line 1208: keyword + # Free-text keywords (less structured than categorization) + - dcat:keyword # from dcat3.ttl - free-text keywords (broader/less structured) + + aliases: + - has_or_had_category + - has_type + - is_classified_as + - is_or_was_categorized_as + + annotations: + rule_53_migration: Replaces collection_focus with structured Category + custodian_types: '["*"]' + + examples: + - value: + has_or_had_identifier: "http://vocab.getty.edu/aat/300033618" + has_or_had_label: "paintings" + description: Artwork categorized as painting (AAT term) + - value: + has_or_had_identifier: "https://example.org/category/dutch-golden-age" + has_or_had_label: "Dutch Golden Age" + description: Collection categorized by historical period + + comments: + - | + Categories represent hierarchical or faceted classifications: + - Subject categories (art, science, history) + - Thematic categories (Dutch Golden Age, WWII, Islamic art) + - Material categories (paintings, manuscripts, specimens) + - Geographic categories (European, Asian, African) + - Temporal categories (Medieval, Renaissance, Contemporary) + - | + The Category class enables structured categorization with: + - Category name and description + - Category type (subject, theme, material, geographic, temporal) + - Hierarchical relationships (broader/narrower terms) + - Provenance tracking + - | + MAPPING CORRECTIONS (2026-02-XX): + - REMOVED skos:Concept from exact_mappings - it is a CLASS, not a PROPERTY + - Changed slot_uri from dcterms:subject to crm:P2_has_type for more precise + categorization/typing semantics (dcterms:subject is about "topic/aboutness") + - Moved dcterms:subject to close_mappings (related but not exact) + - Added dcat:theme as exact_mapping (category semantics) + - Moved skos:broader/skos:narrower to related_mappings (Concept-to-Concept + hierarchies, not Entity-to-Concept categorization) + - | + Verified predicates from: + - data/ontology/CIDOC_CRM_v7.1.3.rdf (crm:P2_has_type line 1200, crm:P41_classified line 2184, crm:P127 line 3912) + - data/ontology/dcterms.rdf (dcterms:subject line 1968) + - data/ontology/dcat3.ttl (dcat:theme line 1722, dcat:keyword line 1208) + - data/ontology/schemaorg.owl (schema:category line 11338, schema:about line 6247) + - data/ontology/RiC-O_1-1.rdf (rico:hasOrHadSubject line 8231, rico:hasContentOfType line 4148) + - data/ontology/skos.rdf (skos:broader line 266, skos:narrower line 281) diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/caused_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/caused_by.yaml new file mode 100644 index 0000000000..207d5bf150 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/caused_by.yaml @@ -0,0 +1,101 @@ +# ============================================================================== +# LinkML Slot Definition: caused_by +# ============================================================================== +# Links an effect to its cause. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|------------------------|----------------------|---------|------------------------------------| +# | **PROV-O** | `prov:wasInfluencedBy` | prov.ttl:1147-1165 | close | Broad influence relationship | +# +# NOTE: prov:wasInfluencedBy is broader than causation - it covers any form +# of influence, not just causal relationships. Hence close_mapping. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added multilingual support, ontology alignment verification +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/caused_by +name: caused_by +title: Caused By + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + caused_by: + slot_uri: hc:causedBy + description: >- + The agent, event, or condition that brought about, produced, or effected + the entity, acting as the origin or reason for its occurrence. + alt_descriptions: + nl: >- + De agent, gebeurtenis of toestand die de entiteit heeft veroorzaakt, + geproduceerd of teweeggebracht, optredend als de oorsprong of reden + voor het optreden ervan. + de: >- + Der Agent, das Ereignis oder die Bedingung, die die Entität hervorgebracht, + produziert oder bewirkt hat, als Ursprung oder Grund für ihr Auftreten. + fr: >- + L'agent, l'événement ou la condition qui a provoqué, produit ou effectué + l'entité, agissant comme l'origine ou la raison de son occurrence. + ar: >- + الوكيل أو الحدث أو الحالة التي تسببت في الكيان أو أنتجته أو أحدثته، + حيث تعمل كأصل أو سبب لحدوثه. + id: >- + Agen, peristiwa, atau kondisi yang menyebabkan, menghasilkan, atau + mengakibatkan entitas, bertindak sebagai asal atau alasan terjadinya. + zh: >- + 导致、产生或引起实体的代理人、事件或条件,作为其发生的起源或原因。 + es: >- + El agente, evento o condición que causó, produjo o efectuó la entidad, + actuando como el origen o la razón de su ocurrencia. + structured_aliases: + - literal_form: veroorzaakt door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: verursacht durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: causé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: ناتج عن + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: disebabkan oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 由...引起 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: causado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + close_mappings: + - prov:wasInfluencedBy # prov.ttl:1147-1165 - Broad influence (includes causation) + aliases: + - is_or_was_caused_by + annotations: + custodian_types: '["*"]' + comments: + - | + **MAPPING NOTE**: prov:wasInfluencedBy is broader than causation - it covers + any form of influence, not just direct causal relationships. Hence close_mapping + rather than exact_mapping. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/ceased_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/ceased_by.yaml new file mode 100644 index 0000000000..81f42a23ed --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/ceased_by.yaml @@ -0,0 +1,92 @@ +# ============================================================================== +# LinkML Slot Definition: ceased_by +# ============================================================================== +# Agent or event that ceased/terminated the entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------|----------------------|---------|------------------------------------| +# | **PROV-O** | `prov:wasEndedBy` | prov.ttl:1116-1130 | close | Activity ended by entity | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/ceased_by +name: ceased_by +title: Ceased By + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + ceased_by: + slot_uri: hc:ceasedBy + description: >- + The agent, event, or authority responsible for bringing the entity to + an end, discontinuing operations, or stopping its activity or existence. + alt_descriptions: + nl: >- + De agent, gebeurtenis of autoriteit die verantwoordelijk is voor het + beëindigen van de entiteit, het staken van activiteiten of het stoppen + van haar activiteit of bestaan. + de: >- + Der Agent, das Ereignis oder die Behörde, die für die Beendigung der + Entität, die Einstellung des Betriebs oder das Stoppen ihrer Aktivität + oder Existenz verantwortlich ist. + fr: >- + L'agent, l'événement ou l'autorité responsable de mettre fin à l'entité, + de cesser les opérations ou d'arrêter son activité ou son existence. + ar: >- + الوكيل أو الحدث أو السلطة المسؤولة عن إنهاء الكيان أو وقف العمليات + أو إيقاف نشاطه أو وجوده. + id: >- + Agen, peristiwa, atau otoritas yang bertanggung jawab untuk mengakhiri + entitas, menghentikan operasi, atau menghentikan aktivitas atau keberadaannya. + zh: >- + 负责终止实体、停止运营或结束其活动或存在的代理人、事件或权力机构。 + es: >- + El agente, evento o autoridad responsable de poner fin a la entidad, + descontinuar operaciones o detener su actividad o existencia. + structured_aliases: + - literal_form: beëindigd door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: beendet von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: cessé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مُنهى بواسطة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dihentikan oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 被...终止 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: cesado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + close_mappings: + - prov:wasEndedBy # prov.ttl:1116-1130 - Activity ended by entity + aliases: + - is_or_was_ceased_by + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/ceased_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/ceased_through.yaml new file mode 100644 index 0000000000..58ec05997f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/ceased_through.yaml @@ -0,0 +1,170 @@ +# ============================================================================== +# LinkML Slot Definition: ceased_through +# ============================================================================== +# Indicate the event through which an entity ceased to exist or operate. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|------------------------------------|-----------------------|---------|------------------------------------| +# | **CIDOC-CRM** | `crm:P93i_was_taken_out_of_existence_by` | CIDOC_CRM:3210-3221 | exact | Event ended existence | +# | **RiC-O** | `rico:isOrWasAffectedBy` | RiC-O_1-1:12585 | close | Agent affected by activity | +# | **PROV-O** | `prov:wasInvalidatedBy` | prov.ttl:1194-1206 | narrow | Entity invalidated (data focus) | +# | **PROV-O** | `prov:invalidated` | prov.ttl:729-740 | related | Inverse of wasInvalidatedBy | +# | **RiC-O** | `rico:hasDeathDate` | RiC-O_1-1:4428 | related | Death date for Person | +# | **RiC-O** | `rico:hasEndDate` | RiC-O_1-1:5018 | related | End date (not ending event) | +# | **Schema.org**| `schema:deathDate` | schemaorg.owl:14424 | broad | Death date for Person | +# | **Schema.org**| `schema:dissolutionDate` | schemaorg.owl:15305 | broad | Organization dissolution date | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Changed slot_uri from hc:ceasedThrough to crm:P93i_was_taken_out_of_existence_by (exact mapping) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/ceased_through +name: ceased_through +title: ceased through +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# +imports: +- linkml:types +default_prefix: hc +slots: + ceased_through: + description: >- + To indicate the event through which an entity ceased to exist or operate. + alt_descriptions: + nl: >- + Het aangeven van de gebeurtenis waardoor een entiteit ophield te + bestaan of te functioneren. + de: >- + Das Ereignis angeben, durch das eine Entität aufhörte zu existieren + oder zu funktionieren. + fr: >- + Indiquer l'événement par lequel une entité a cessé d'exister ou + de fonctionner. + ar: >- + الإشارة إلى الحدث الذي من خلاله توقف كيان عن الوجود أو العمل. + id: >- + Menunjukkan peristiwa yang menyebabkan suatu entitas berhenti + ada atau beroperasi. + zh: >- + 表示导致实体停止存在或运作的事件。 + es: >- + Indicar el evento a través del cual una entidad dejó de existir + u operar. + structured_aliases: + - literal_form: opgehouden door + - is_or_was_ceased_through + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: beendet durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: cessé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: توقف من خلال + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: berhenti melalui + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 通过...终止 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: cesado mediante + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + # range: CeasingEvent + slot_uri: crm:P93i_was_taken_out_of_existence_by + multivalued: true + + # VERIFIED MAPPINGS (2026-02-XX) + # Source files: data/ontology/CIDOC_CRM_v7.1.3.rdf, data/ontology/prov.ttl, + # data/ontology/RiC-O_1-1.rdf, data/ontology/schemaorg.owl + + exact_mappings: + # CIDOC_CRM_v7.1.3.rdf line 3210-3221: P93i_was_taken_out_of_existence_by + # "This property identifies the E64 End of Existence that ended the existence of this E77 Persistent Item" + # Exact semantic match: event that ended the existence of something + - crm:P93i_was_taken_out_of_existence_by # from CIDOC_CRM_v7.1.3.rdf + + close_mappings: + # RiC-O_1-1.rdf line 12585: isOrWasAffectedBy + # "Connects an Agent, Record Resource, or Instantiation to an Activity by which it was affected" + # Close: agent affected by activity (includes but not limited to cessation) + - rico:isOrWasAffectedBy # from RiC-O_1-1.rdf - agent/thing affected by activity + + narrow_mappings: + # prov.ttl line 1194-1206: wasInvalidatedBy + # "An entity that was invalidated by this activity" + # Narrower: specifically about data/provenance entities becoming invalid, + # not general physical cessation of existence + - prov:wasInvalidatedBy # from prov.ttl - entity invalidated by activity (data focus) + + related_mappings: + # prov.ttl line 729-740: invalidated (inverse of wasInvalidatedBy) + # "The Entity that was invalidated by this Activity" + # Related: inverse direction - activity that invalidated entity + - prov:invalidated # from prov.ttl - inverse of wasInvalidatedBy + + # RiC-O_1-1.rdf line 4428: hasDeathDate (for Persons specifically) + # Related but narrower: only for Person entities, and links to Date not Event + - rico:hasDeathDate # from RiC-O_1-1.rdf - death date for Person (narrower) + + # RiC-O_1-1.rdf line 5018: hasEndDate + # Related but different: links to Date, not to the ending Event + - rico:hasEndDate # from RiC-O_1-1.rdf - end date (not ending event) + + broad_mappings: + # schemaorg.owl line 14424-14427: deathDate (DatatypeProperty) + # Broader/different: date value, not event; only for Person + - schema:deathDate # from schemaorg.owl - death date for Person (value, not event) + + # schemaorg.owl line 15305-15308: dissolutionDate (DatatypeProperty) + # Broader/different: date value for Organization dissolution, not event + - schema:dissolutionDate # from schemaorg.owl - dissolution date for Organization (value, not event) + + aliases: + - ceases_or_ceased_through + - was_ended_by + - terminated_by + - dissolved_through + - is_or_was_ceased_through + + examples: + - value: + has_or_had_identifier: "https://example.org/event/museum-closure-2024" + has_or_had_label: "Museum Closure Event 2024" + description: Museum ceased operations through a closure event + - value: + has_or_had_identifier: "https://example.org/event/organization-dissolution" + has_or_had_label: "Organization Dissolution" + description: Organization ceased to exist through dissolution + + comments: + - | + MIGRATED from cessation_observed_in (Rule 53). + - | + slot_uri changed from prov:wasInvalidatedBy to hc:ceasedThrough because + PROV-O 'wasInvalidatedBy' is specifically about data/provenance entities + (prov:Entity) being invalidated by activities. Our 'ceased_through' is + more general, covering physical organizations, institutions, and abstract + concepts ceasing to exist. + - | + CIDOC-CRM semantics note: 'crm:P93i_was_taken_out_of_existence_by' + is the inverse of 'crm:P93_took_out_of_existence' and connects + E77 Persistent Item to E64 End of Existence event. Subproperties + include P100i (died in), P99i (dissolved by), P124i (transformed by). + - | + Verified predicates from: + - data/ontology/CIDOC_CRM_v7.1.3.rdf (crm:P93i_was_taken_out_of_existence_by line 3210) + - data/ontology/prov.ttl (prov:wasInvalidatedBy line 1194, prov:invalidated line 729) + - data/ontology/RiC-O_1-1.rdf (rico:isOrWasAffectedBy line 12585, rico:hasDeathDate line 4428, rico:hasEndDate line 5018) + - data/ontology/schemaorg.owl (schema:deathDate line 14424, schema:dissolutionDate line 15305) diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/change_ownership_from.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/change_ownership_from.yaml new file mode 100644 index 0000000000..0109c02f5f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/change_ownership_from.yaml @@ -0,0 +1,131 @@ +# ============================================================================== +# LinkML Slot Definition: change_ownership_from +# ============================================================================== +# To denote the specific agent or entity from whom the legal rights, possession, +# or control of an entity are being transferred. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|---------------------------------|-----------------------|---------|------------------------------------| +# | **CIDOC-CRM** | `crm:P23_transferred_title_from`| CIDOC_CRM_v7.1.3.rdf | exact | Party who relinquished legal title | +# | **PROV-O** | `prov:wasInfluencedBy` | prov.ttl:1059-1070 | close | General influence relationship | +# | **RiC-O** | `rico:hadHolder` | RiC-O_1-1.rdf | related | Previous holder of record | +# +# HIERARCHY: crm:P23_transferred_title_from has no rdfs:subPropertyOf declaration +# +# CREATED: 2026-01-16 +# UPDATED: 2026-02-03 - Added header documentation +# UPDATED: 2026-02-03 - Fixed corrupted description field, moved notes to comments +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/change_ownership_from +name: change_ownership_from +title: Change Ownership From +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + prov: http://www.w3.org/ns/prov# + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: + - linkml:types +slots: + change_ownership_from: + slot_uri: crm:P23_transferred_title_from + description: >- + To denote the specific agent or entity from whom the legal rights, + possession, or control of an entity are being transferred. + alt_descriptions: + nl: >- + Om de specifieke agent of entiteit aan te duiden van wie de wettelijke + rechten, bezit of controle van een entiteit worden overgedragen. + de: >- + Zur Bezeichnung des spezifischen Akteurs oder der Entität, von der die + rechtlichen Ansprüche, der Besitz oder die Kontrolle einer Entität + übertragen werden. + fr: >- + Pour désigner l'agent ou l'entité spécifique dont les droits légaux, + la possession ou le contrôle d'une entité sont transférés. + ar: >- + للإشارة إلى الوكيل أو الكيان المحدد الذي يتم نقل الحقوق القانونية أو + الحيازة أو السيطرة على كيان منه. + id: >- + Untuk menunjukkan agen atau entitas tertentu dari siapa hak hukum, + kepemilikan, atau kontrol atas suatu entitas sedang dialihkan. + zh: >- + 用于表示某实体的法定权利、所有权或控制权正在从哪个特定代理人或实体转让。 + es: >- + Para denotar el agente o entidad específico del cual se están + transfiriendo los derechos legales, posesión o control de una entidad. + structured_aliases: + - literal_form: eigendomsoverdracht van + - is_or_was_change_ownership_from + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Eigentumsübertragung von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: transfert de propriété de + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: نقل الملكية من + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: pengalihan kepemilikan dari + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 所有权转让自 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: transferencia de propiedad desde + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + required: false + multivalued: false + exact_mappings: + - crm:P23_transferred_title_from + close_mappings: + - prov:wasInfluencedBy + related_mappings: + - rico:hadHolder + aliases: + - changes_or_changed_ownership_from + - is_or_was_change_ownership_from + annotations: + replaces_slots: from_owner + migration_date: '2026-01-16' + migration_rule: Rule 56 (semantic consistency over simplicity) + custodian_types: '["*"]' + examples: + - value: https://nde.nl/ontology/hc/owner/des-tombe + description: Ownership transferred from A.A. des Tombe + - value: https://nde.nl/ontology/hc/owner/private-collector-002 + description: Ownership transferred from private collector + comments: + - MIGRATED from from_owner per slot_fixes.yaml (Rule 56, 2026-01-16). + - | + TEMPORAL SEMANTICS: This relationship may be historical - ownership + may have changed multiple times. + - | + SEMANTIC DISTINCTION: This slot is for OWNERSHIP TRANSFER (legal title), + NOT physical movement. For physical movement origin, use + `is_or_was_transferred_from` with `crm:P27_moved_from`. + | Slot | Ontology | Semantics | + |------|----------|-----------| + | change_ownership_from | crm:P23 | Legal title transfer source | + | is_or_was_transferred_from | crm:P27 | Physical location origin | + - | + USAGE: Typical in ProvenanceEvent for documenting chain of custody: + - Null for CREATION events (no previous owner) + - Identifies seller in PURCHASE/AUCTION events + - Identifies donor in GIFT/BEQUEST events + - Identifies victim in CONFISCATION events diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/change_ownership_to.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/change_ownership_to.yaml new file mode 100644 index 0000000000..a77af5266f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/change_ownership_to.yaml @@ -0,0 +1,131 @@ +# ============================================================================== +# LinkML Slot Definition: change_ownership_to +# ============================================================================== +# To transfer the legal rights, possession, or control of an entity to a +# designated new owner or responsible agent. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------------------|-----------------------|---------|------------------------------------| +# | **CIDOC-CRM** | `crm:P22_transferred_title_to`| CIDOC_CRM_v7.1.3.rdf | exact | Recipient of legal title transfer | +# | **PROV-O** | `prov:wasAttributedTo` | prov.ttl:1082-1087 | close | Attribution to agent | +# | **RiC-O** | `rico:hasOrHadHolder` | RiC-O_1-1.rdf | related | Current/previous holder of record | +# +# HIERARCHY: crm:P22_transferred_title_to has no rdfs:subPropertyOf declaration +# +# CREATED: 2026-01-16 +# UPDATED: 2026-02-03 - Added header documentation +# UPDATED: 2026-02-03 - Fixed corrupted description field, moved notes to comments +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/change_ownership_to +name: change_ownership_to +title: Change Ownership To +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + prov: http://www.w3.org/ns/prov# + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: + - linkml:types +slots: + change_ownership_to: + slot_uri: crm:P22_transferred_title_to + description: >- + To transfer the legal rights, possession, or control of an entity to a + designated new owner or responsible agent. + alt_descriptions: + nl: >- + Om de wettelijke rechten, bezit of controle van een entiteit over te + dragen aan een aangewezen nieuwe eigenaar of verantwoordelijke agent. + de: >- + Um die rechtlichen Ansprüche, den Besitz oder die Kontrolle einer + Entität an einen bestimmten neuen Eigentümer oder verantwortlichen + Akteur zu übertragen. + fr: >- + Pour transférer les droits légaux, la possession ou le contrôle d'une + entité à un nouveau propriétaire désigné ou un agent responsable. + ar: >- + لنقل الحقوق القانونية أو الحيازة أو السيطرة على كيان إلى مالك جديد + معين أو وكيل مسؤول. + id: >- + Untuk mengalihkan hak hukum, kepemilikan, atau kontrol atas suatu + entitas kepada pemilik baru yang ditunjuk atau agen yang bertanggung + jawab. + zh: >- + 将某实体的法定权利、所有权或控制权转让给指定的新所有者或负责的代理人。 + es: >- + Para transferir los derechos legales, posesión o control de una + entidad a un nuevo propietario designado o agente responsable. + structured_aliases: + - literal_form: eigendomsoverdracht aan + - is_or_was_change_ownership_to + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Eigentumsübertragung an + predicate: EXACT_SYNONYM + in_language: de + - literal_form: transfert de propriété à + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: نقل الملكية إلى + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: pengalihan kepemilikan kepada + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 所有权转让至 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: transferencia de propiedad a + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + required: false + multivalued: false + exact_mappings: + - crm:P22_transferred_title_to + close_mappings: + - prov:wasAttributedTo + related_mappings: + - rico:hasOrHadHolder + aliases: + - changes_or_changed_ownership_to + - is_or_was_change_ownership_to + annotations: + replaces_slots: to_owner + migration_date: '2026-01-16' + migration_rule: Rule 56 (semantic consistency over simplicity) + custodian_types: '["*"]' + examples: + - value: https://nde.nl/ontology/hc/owner/rijksmuseum + description: Ownership transferred to Rijksmuseum + - value: https://nde.nl/ontology/hc/owner/private-collector-001 + description: Ownership transferred to private collector + comments: + - MIGRATED from to_owner per slot_fixes.yaml (Rule 56, 2026-01-16). + - | + TEMPORAL SEMANTICS: This relationship may be historical - ownership + may have changed multiple times. + - | + SEMANTIC DISTINCTION: This slot is for OWNERSHIP TRANSFER (legal title), + NOT physical movement. For physical movement, use `is_or_was_transferred_to` + with `crm:P26_moved_to`. + | Slot | Ontology | Semantics | + |------|----------|-----------| + | change_ownership_to | crm:P22 | Legal title transfer | + | is_or_was_transferred_to | crm:P26 | Physical location change | + - | + USAGE: Typical in ProvenanceEvent for documenting chain of custody: + - Acquisitions (purchase, gift, bequest) + - Deaccessioning (sale, transfer) + - Loans (temporary custody without ownership change) diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/changed_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/changed_through.yaml new file mode 100644 index 0000000000..d44287074b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/changed_through.yaml @@ -0,0 +1,144 @@ +# ============================================================================== +# LinkML Slot Definition: changed_through +# ============================================================================== +# Captures modification or transformation resulting from a specific process, +# event, or intervention. Used to document organizational changes in heritage +# institutions. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|------------------------|-------------------|---------|------------------------------------------| +# | **PROV-O** | `prov:wasInfluencedBy` | prov.ttl:1147-1176| slot_uri| "Because prov:wasInfluencedBy is a broad | +# | | | | | relation, its more specific subproperties| +# | | | | | should be used when applicable." | +# | **PROV-O** | `prov:wasDerivedFrom` | prov.ttl:1073 | narrow | subPropertyOf wasInfluencedBy | +# | **PROV-O** | `prov:wasGeneratedBy` | prov.ttl:1089 | narrow | subPropertyOf wasInfluencedBy | +# | **PROV-O** | `prov:used` | prov.ttl:1046 | narrow | subPropertyOf wasInfluencedBy | +# | **PROV-O** | `prov:Influence` | prov.ttl:253-263 | related | Class for qualified influence relations | +# | **CIDOC-CRM**| `crm:P15_was_influenced_by`| CIDOC_CRM:1517-1530| close | "Captures relationship between E7 Activity| +# | | | | | and anything that may have had bearing." | +# | **CIDOC-CRM**| `crm:P15i_influenced` | CIDOC_CRM:1531-1542| related | Inverse: "influenced" | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added narrow_mappings (subProperties of prov:wasInfluencedBy) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/changed_through +name: changed_through +title: changed through + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + +imports: + - linkml:types + +default_prefix: hc + +slots: + changed_through: + slot_uri: prov:wasInfluencedBy + description: >- + To undergo modification or transformation as a direct result of a + specific process, event, or intervention. + alt_descriptions: + nl: >- + Het ondergaan van wijziging of transformatie als gevolg van een + specifiek proces, gebeurtenis of interventie. + de: >- + Eine Änderung oder Transformation als direktes Ergebnis eines + bestimmten Prozesses, Ereignisses oder Eingriffs durchlaufen. + fr: >- + Subir une modification ou une transformation en conséquence directe + d'un processus, événement ou intervention spécifique. + ar: >- + الخضوع لتعديل أو تحول كنتيجة مباشرة لعملية أو حدث أو تدخل محدد. + id: >- + Mengalami modifikasi atau transformasi sebagai akibat langsung dari + proses, peristiwa, atau intervensi tertentu. + zh: >- + 作为特定过程、事件或干预的直接结果而经历修改或转变。 + es: >- + Experimentar modificación o transformación como resultado directo + de un proceso, evento o intervención específica. + range: uriorcurie + multivalued: true + inlined: false + narrow_mappings: + # prov.ttl line 1073: wasDerivedFrom rdfs:subPropertyOf wasInfluencedBy + # Narrow: specific type of influence - derivation + - prov:wasDerivedFrom # from prov.ttl - entity derived from another + + # prov.ttl line 1089: wasGeneratedBy rdfs:subPropertyOf wasInfluencedBy + # Narrow: specific type of influence - generation by activity + - prov:wasGeneratedBy # from prov.ttl - entity generated by activity + + # prov.ttl line 1046: used rdfs:subPropertyOf wasInfluencedBy + # Narrow: specific type of influence - activity used entity + - prov:used # from prov.ttl - activity used entity + close_mappings: + - crm:P15_was_influenced_by + related_mappings: + - prov:Influence + - crm:P15i_influenced + aliases: + - changes_or_changed_through + - was_influenced_by + - is_or_was_changed_through + structured_aliases: + - literal_form: veranderd door + - is_or_was_changed_through + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: geändert durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: changé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: تغير من خلال + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diubah melalui + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 通过...变更 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: cambiado mediante + predicate: EXACT_SYNONYM + in_language: es + examples: + - value: "hc:MergerEvent2020" + description: Organizational merger event that transformed the institution + - value: "hc:DigitizationProject2019" + description: Digitization initiative that modified collection access + - value: "hc:RestructuringProgram" + description: Administrative restructuring that changed governance + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: + Used for: + - Organizational restructuring events + - Policy changes affecting operations + - Technology implementations + - Mergers, acquisitions, or splits + - Regulatory changes impacting the institution + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **PROV-O** | `prov:wasInfluencedBy` | 1147-1176 | slot_uri | Broad influence relation | + | **PROV-O** | `prov:wasDerivedFrom` | 1073 | narrow | subPropertyOf wasInfluencedBy | + | **PROV-O** | `prov:wasGeneratedBy` | 1089 | narrow | subPropertyOf wasInfluencedBy | + | **PROV-O** | `prov:used` | 1046 | narrow | subPropertyOf wasInfluencedBy | + | **CIDOC-CRM** | `crm:P15_was_influenced_by` | 1517-1530 | close | Activity influenced by entity | + | **PROV-O** | `prov:Influence` | 253-263 | related | Qualified influence class | + | **CIDOC-CRM** | `crm:P15i_influenced` | 1531-1542 | related | Inverse relation | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/checked_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/checked_through.yaml new file mode 100644 index 0000000000..9f0c4d4e84 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/checked_through.yaml @@ -0,0 +1,90 @@ +# ============================================================================== +# LinkML Slot Definition: checked_through +# ============================================================================== +# System, procedure, or channel through which verification was performed. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------------|----------------------|---------|------------------------------------| +# | **PROV-O** | `prov:wasGeneratedBy` | prov.ttl:1132-1145 | related | Generation through activity | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/checked_through +name: checked_through +title: Checked Through + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + checked_through: + slot_uri: hc:checkedThrough + description: >- + The system, procedure, intermediate channel, or pathway through which + the entity was verified, examined, or processed. + alt_descriptions: + nl: >- + Het systeem, de procedure, het tussenliggende kanaal of pad waardoor + de entiteit is geverifieerd, onderzocht of verwerkt. + de: >- + Das System, Verfahren, der Zwischenkanal oder Weg, über den die + Entität überprüft, untersucht oder verarbeitet wurde. + fr: >- + Le système, la procédure, le canal intermédiaire ou la voie par + laquelle l'entité a été vérifiée, examinée ou traitée. + ar: >- + النظام أو الإجراء أو القناة الوسيطة أو المسار الذي تم من خلاله + التحقق من الكيان أو فحصه أو معالجته. + id: >- + Sistem, prosedur, saluran perantara, atau jalur yang melaluinya + entitas diverifikasi, diperiksa, atau diproses. + zh: >- + 实体通过其进行验证、检查或处理的系统、程序、中间渠道或路径。 + es: >- + El sistema, procedimiento, canal intermedio o vía a través del cual + la entidad fue verificada, examinada o procesada. + structured_aliases: + - literal_form: gecontroleerd via + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: überprüft durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: vérifié par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: تم التحقق عبر + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diperiksa melalui + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 通过...检查 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: verificado a través de + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + related_mappings: + - prov:wasGeneratedBy # Generation through activity (loosely related) + aliases: + - is_or_was_checked_through + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/classified_as.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/classified_as.yaml new file mode 100644 index 0000000000..5371077d8c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/classified_as.yaml @@ -0,0 +1,103 @@ +# ============================================================================== +# LinkML Slot Definition: classified_as +# ============================================================================== +# Classification or type assigned to an entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------|--------------------------|---------|-----------------------------------| +# | **SKOS** | `skos:inScheme` | skos.rdf:75-86 | close | "Member of concept scheme" | +# | **CIDOC-CRM** | `crm:P2_has_type` | CIDOC_CRM_v7.1.3.rdf:1200-1214| close | "Sub-typing through thesaurus" | +# +# NOTE: skos:inScheme relates concepts to schemes; crm:P2_has_type assigns +# types from E55_Type. This slot is more general, hence close mappings. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/classified_as +name: classified_as +title: Classified As + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + classified_as: + slot_uri: hc:classifiedAs + description: >- + The class, category, type, or group to which the entity is assigned + based on shared characteristics, properties, or criteria. + alt_descriptions: + nl: >- + De klasse, categorie, type of groep waaraan de entiteit is toegewezen + op basis van gedeelde kenmerken, eigenschappen of criteria. + de: >- + Die Klasse, Kategorie, der Typ oder die Gruppe, der/die der Entität + basierend auf gemeinsamen Merkmalen, Eigenschaften oder Kriterien + zugeordnet ist. + fr: >- + La classe, la catégorie, le type ou le groupe auquel l'entité est + assignée en fonction de caractéristiques, propriétés ou critères partagés. + ar: >- + الفئة أو الصنف أو النوع أو المجموعة التي تم تعيين الكيان إليها بناءً + على خصائص أو سمات أو معايير مشتركة. + id: >- + Kelas, kategori, tipe, atau kelompok yang ditetapkan untuk entitas + berdasarkan karakteristik, properti, atau kriteria bersama. + zh: >- + 根据共同特征、属性或标准将实体分配到的类别、类型或组。 + es: >- + La clase, categoría, tipo o grupo al que la entidad está asignada + basándose en características, propiedades o criterios compartidos. + structured_aliases: + - literal_form: geclassificeerd als + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: klassifiziert als + predicate: EXACT_SYNONYM + in_language: de + - literal_form: classifié comme + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مصنف كـ + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diklasifikasikan sebagai + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 分类为 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: clasificado como + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + close_mappings: + - skos:inScheme # skos.rdf:75-86 - Relates concept to concept scheme + - crm:P2_has_type # CIDOC_CRM:1200-1214 - Sub-typing through thesaurus + aliases: + - is_or_was_classified_as + annotations: + custodian_types: '["*"]' + comments: + - | + **MAPPING NOTE**: skos:inScheme relates concepts to concept schemes; + crm:P2_has_type assigns types from E55_Type hierarchy. This slot is + more general for classification purposes, hence close mappings. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/classify.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/classify.yaml new file mode 100644 index 0000000000..df653f47a0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/classify.yaml @@ -0,0 +1,163 @@ +# ============================================================================== +# LinkML Slot Definition: classify +# ============================================================================== +# Describes the action of arranging or assigning entities into classes or +# categories based on shared characteristics or established criteria. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|----------------------------|------------------------|---------|------------------------------------------------| +# | **CIDOC-CRM**| `crm:P2i_is_type_of` | CIDOC_CRM:1215-1225 | exact | Inverse of P2_has_type - type classifies entity | +# | **SKOS** | `skos:broader` | skos.rdf:266-277 | close | Hierarchical concept relationship | +# | **CIDOC-CRM**| `crm:P137i_is_exemplified_by`| CIDOC_CRM:4142-4153 | narrow | Type exemplified by entity (prototypical) | +# | **CIDOC-CRM**| `crm:P2_has_type` | CIDOC_CRM:1200-1214 | related | Entity has type (forward direction) | +# | **RiC-O** | `rico:hasDocumentaryFormType`| RiC-O_1-1:4930-4931 | related | Documentary form classification | +# | **RiC-O** | `rico:hasRecordSetType` | RiC-O_1-1:8966-8967 | related | Record set type classification | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/classify +name: classify +title: classify + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + schema: https://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + prov: http://www.w3.org/ns/prov# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +description: | + To arrange or assign entities into specific classes or categories based on shared qualities, characteristics, or established criteria. + +imports: + - linkml:types + +slots: + classify: + slot_uri: crm:P2i_is_type_of + description: | + To arrange or assign entities into specific classes or categories based on shared qualities, characteristics, or established criteria. + alt_descriptions: + nl: >- + Entiteiten indelen of toewijzen aan specifieke klassen of categorieën op basis van gedeelde kwaliteiten, kenmerken of vastgestelde criteria. + de: >- + Entitäten in spezifische Klassen oder Kategorien einordnen oder zuweisen, basierend auf gemeinsamen Eigenschaften, Merkmalen oder festgelegten Kriterien. + fr: >- + Organiser ou attribuer des entités à des classes ou catégories spécifiques en fonction de qualités, caractéristiques ou critères établis communs. + ar: >- + ترتيب أو تعيين الكيانات في فئات أو تصنيفات محددة بناءً على صفات أو خصائص أو معايير مشتركة. + id: >- + Mengatur atau menetapkan entitas ke dalam kelas atau kategori tertentu berdasarkan kualitas, karakteristik, atau kriteria yang ditetapkan bersama. + zh: >- + 根据共同的品质、特征或既定标准,将实体安排或分配到特定的类别或分类中。 + es: >- + Organizar o asignar entidades en clases o categorías específicas basándose en cualidades, características o criterios establecidos compartidos. + structured_aliases: + - literal_form: classificeren + - is_or_was_classify + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: klassifizieren + predicate: EXACT_SYNONYM + in_language: de + - literal_form: classifier + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يصنّف + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mengklasifikasikan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 分类 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: clasificar + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: false + annotations: + custodian_types: '["*"]' + specificity_score: 0.45 + specificity_rationale: Generic classification relationship applicable across many entity types + exact_mappings: + # CIDOC-CRM P2i_is_type_of - Inverse of has_type, the type classifies the entity + # Domain: E55_Type, Range: E1_CRM_Entity + # Lines 1215-1225 in CIDOC_CRM_v7.1.3.rdf + - crm:P2i_is_type_of + close_mappings: + # SKOS broader - Hierarchical broader concept relationship + # Lines 266-277 in skos.rdf + - skos:broader + narrow_mappings: + # CIDOC-CRM P137i_is_exemplified_by - More specific: type exemplified by entity + # subPropertyOf P2i_is_type_of - for prototypical/archetypical examples + # Lines 4142-4153 in CIDOC_CRM_v7.1.3.rdf + - crm:P137i_is_exemplified_by + related_mappings: + # CIDOC-CRM P2_has_type - Entity has type (forward direction) + # Lines 1200-1214 in CIDOC_CRM_v7.1.3.rdf + - crm:P2_has_type + # RiC-O hasDocumentaryFormType - Classification by documentary form + # Lines 4930-4931 in RiC-O_1-1.rdf + - rico:hasDocumentaryFormType + # RiC-O hasRecordSetType - Classification of record sets + # Lines 8966-8967 in RiC-O_1-1.rdf + - rico:hasRecordSetType + aliases: + - classifies_or_classified + - is_or_was_classify + examples: + - value: "hc:FeaturePlace/museum-building" + description: A FeaturePlace that classifies a CustodianPlace as a museum building type + - value: "hc:TypeSpecimen/holotype" + description: A TypeSpecimen that classifies a Taxon as the holotype + - value: "hc:HeritageDesignation/national-monument" + description: A HeritageDesignation that classifies a HeritageSite as a national monument + comments: + - Updated 2026-02-03 with verified ontology mappings and translations + - | + **PURPOSE**: Establishes a classification relationship where one entity + provides typological or categorical information about another entity. + This is the inverse perspective of "has type" - here the classifying + entity is the subject rather than the classified entity. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | CIDOC-CRM | crm:P2i_is_type_of | 1215 | exact | Type classifies entity | + | SKOS | skos:broader | 266 | close | Hierarchical broader | + | CIDOC-CRM | crm:P137i_is_exemplified_by | 4142 | narrow | Prototypical example | + | CIDOC-CRM | crm:P2_has_type | 1200 | related | Forward direction | + | RiC-O | rico:hasDocumentaryFormType | 4930 | related | Form type | + | RiC-O | rico:hasRecordSetType | 8966 | related | Record set type | + - | + **COMMON USE CASES**: + - FeaturePlace classifies CustodianPlace (building type classification) + - TypeSpecimen classifies Taxon (nomenclatural classification) + - HeritageDesignation classifies HeritageSite (protection status) + - | + **CIDOC-CRM ALIGNMENT**: Maps to crm:P2_has_type / crm:P2i_is_type_of + pattern where one entity provides typological information about another. + - | + **EXAMPLE**: + ```yaml + FeaturePlace: + feature_type: MUSEUM + classifies_or_classified: + id: https://nde.nl/ontology/hc/place/rijksmuseum-location + place_name: "Rijksmuseum" + ``` diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/collect.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/collect.yaml new file mode 100644 index 0000000000..3f54ad6c62 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/collect.yaml @@ -0,0 +1,186 @@ +# ============================================================================== +# LinkML Slot Definition: collect +# ============================================================================== +# Systematically acquire, document, and safeguard items or data. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------------------|-----------------------|---------|------------------------------------| +# | **RiC-O** | `rico:isAccumulatorOf` | RiC-O_1-1:9859-9892 | close | Agent accumulates record resource | +# | **RiC-O** | `rico:hasAccumulator` | RiC-O_1-1:3525-3563 | close | Record has accumulator agent | +# | **CIDOC-CRM** | `crm:P109_has_current_or_former_curator` | CIDOC_CRM:3639-3665 | related | Curatorial responsibility | +# | **CIDOC-CRM** | `crm:P22_transferred_title_to` | CIDOC_CRM:1681-1708 | related | Acquisition event | +# | **Schema.org**| `schema:acquiredFrom` | schemaorg.owl:6762 | related | Acquisition source | +# | **Schema.org**| `schema:collection` | schemaorg.owl:12156 | related | Collection target of action | +# | **DCAT** | `dcat:dataset` | dcat3.ttl:818 | related | Catalog has dataset | +# | **Schema.org**| `schema:owns` | schemaorg.owl:28732 | broad | Ownership (broader) | +# | **RiC-O** | `rico:hasOrHadHolder` | RiC-O_1-1:6437 | broad | Holder relationship | +# | **CIDOC-CRM** | `crm:P49_has_former_or_current_keeper` | CIDOC_CRM:2383-2408 | broad | Custody (broader) | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-02 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/collect +name: collect +title: collect +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# + dcat: http://www.w3.org/ns/dcat# +imports: +- linkml:types +default_prefix: hc +slots: + collect: + slot_uri: hc:collect + description: >- + To systematically acquire, document, and safeguard items or data. + alt_descriptions: + nl: >- + Systematisch objecten of gegevens verwerven, documenteren en beschermen. + de: >- + Systematisch Gegenstände oder Daten erwerben, dokumentieren und schützen. + fr: >- + Acquérir, documenter et protéger systématiquement des objets ou des données. + ar: >- + الحصول على العناصر أو البيانات وتوثيقها وحمايتها بشكل منهجي. + id: >- + Secara sistematis memperoleh, mendokumentasikan, dan melindungi item atau data. + zh: >- + 系统地获取、记录和保护物品或数据。 + es: >- + Adquirir, documentar y salvaguardar sistemáticamente objetos o datos. + structured_aliases: + - literal_form: verzamelt + - is_or_was_collect + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: sammelt + predicate: EXACT_SYNONYM + in_language: de + - literal_form: collecte + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يجمع + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mengumpulkan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 收集 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: colecciona + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + multivalued: true + inlined: false + inlined_as_list: false + + # VERIFIED MAPPINGS (2026-02-XX) + # Source files: data/ontology/RiC-O_1-1.rdf, data/ontology/CIDOC_CRM_v7.1.3.rdf, + # data/ontology/schemaorg.owl, data/ontology/dcat3.ttl + + close_mappings: + # RiC-O_1-1.rdf line 9859-9892: isAccumulatorOf + # "Connects an Agent to a Record Resource or Instantiation it accumulates" + # "accumulates it, be it intentionally (collecting) or not (receiving in the course of its activities)" + # Close: archival accumulation includes intentional collecting + - rico:isAccumulatorOf # from RiC-O_1-1.rdf - agent accumulates record resource + + # RiC-O_1-1.rdf line 3525-3563: hasAccumulator (inverse) + # "Connects a Record Resource or Instantiation to an Agent that accumulates it" + # Close: inverse direction - what has been accumulated by whom + - rico:hasAccumulator # from RiC-O_1-1.rdf - record resource has accumulator agent + + related_mappings: + # CIDOC_CRM_v7.1.3.rdf line 3639-3665: P109_has_current_or_former_curator + # Related but different: curatorial responsibility, not collecting scope + - crm:P109_has_current_or_former_curator # from CIDOC_CRM_v7.1.3.rdf - curatorial responsibility + + # CIDOC_CRM_v7.1.3.rdf line 1681-1708: P22_transferred_title_to + # Related: acquisition event that transferred title (event-focused, not scope) + - crm:P22_transferred_title_to # from CIDOC_CRM_v7.1.3.rdf - acquisition event + + # schemaorg.owl line 6762-6765: acquiredFrom + # Related but different direction: source of acquisition, not what is collected + - schema:acquiredFrom # from schemaorg.owl - acquisition source (different direction) + + # schemaorg.owl line 12156-12161: collection + # Related: collection as target of action + - schema:collection # from schemaorg.owl - collection target of action + + # dcat3.ttl line 818: dataset + # Related: links catalog to dataset (data collection context) + - dcat:dataset # from dcat3.ttl - catalog has dataset (data context) + + broad_mappings: + # schemaorg.owl line 28732-28736: owns + # Broader: general ownership, not specifically about collecting activity + - schema:owns # from schemaorg.owl - ownership (broader than collecting) + + # RiC-O_1-1.rdf line 6437-6439: hasOrHadHolder + # Broader: holding/custody relationship, not collecting activity + - rico:hasOrHadHolder # from RiC-O_1-1.rdf - holder relationship (broader) + + # CIDOC_CRM_v7.1.3.rdf line 2383-2408: P49_has_former_or_current_keeper + # Broader: custody/keeping, not active collecting + - crm:P49_has_former_or_current_keeper # from CIDOC_CRM_v7.1.3.rdf - custody (broader) + + # CIDOC_CRM_v7.1.3.rdf line 2410-2436: P50_has_current_keeper + # Broader: current custody relationship (narrower than P49 but still custody not collection) + - crm:P50_has_current_keeper # from CIDOC_CRM_v7.1.3.rdf - current custody (broader) + + aliases: + - collects_or_collected + - has_collecting_scope + - acquires + - accumulates + - is_or_was_collect + annotations: + custodian_types: '["C", "M", "A", "L"]' + custodian_types_rationale: Primarily for Corporations (C), Museums (M), Archives (A), and Libraries (L) that actively collect materials. + custodian_types_primary: C + specificity_score: '0.45' + specificity_rationale: Moderate specificity - applies to custodians with collecting programs. + examples: + - value: + has_or_had_identifier: "https://example.org/collection-scope/dutch-masters" + has_or_had_label: "Dutch Masters Paintings" + description: Museum collects Dutch Masters paintings + - value: + has_or_had_identifier: "https://example.org/collection-scope/corporate-records" + has_or_had_label: "Corporate Administrative Records" + description: Archive collects corporate administrative records + comments: + - Created from slot_fixes.yaml migration (2026-01-19) + - Part of collection_purpose migration + - Range is uriorcurie to allow class narrowing via slot_usage + - | + Mapping corrections (2026-02-XX): + - Moved crm:P109_has_current_or_former_curator from close_mappings to related_mappings + (P109 is about curatorial RESPONSIBILITY, not collecting ACTIVITY) + - Moved schema:owns and rico:hasOrHadHolder to broad_mappings + (ownership/custody STATE is broader than collecting ACTIVITY) + - Added rico:isAccumulatorOf and rico:hasAccumulator as close_mappings + (RiC-O accumulation includes intentional collecting) + - | + CIDOC-CRM note: E8 Acquisition is the class for collecting events. + P22_transferred_title_to/P23_transferred_title_from are the properties + that connect Acquisition to Actor. This slot describes collecting SCOPE, + not individual acquisition events. + - | + Verified predicates from: + - data/ontology/RiC-O_1-1.rdf (rico:isAccumulatorOf line 9859, rico:hasAccumulator line 3525, rico:hasOrHadHolder line 6437) + - data/ontology/CIDOC_CRM_v7.1.3.rdf (crm:P109 line 3639, crm:P22 line 1681, crm:P49 line 2383, crm:P50 line 2410) + - data/ontology/schemaorg.owl (schema:owns line 28732, schema:acquiredFrom line 6762, schema:collection line 12156) + - data/ontology/dcat3.ttl (dcat:dataset line 818) + see_also: + - https://www.ica.org/standards/RiC/ontology#isAccumulatorOf + - https://www.cidoc-crm.org/Entity/e8-acquisition/version-7.1.3 diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/collection_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/collection_of.yaml new file mode 100644 index 0000000000..c99abb9fe0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/collection_of.yaml @@ -0,0 +1,133 @@ +# ============================================================================== +# LinkML Slot Definition: collection_of +# ============================================================================== +# Links a collection to its owning custodian. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|------------------------|------------------------|---------|------------------------------------| +# | **RiC-O** | `rico:isOrWasPartOf` | RiC-O_1-1.rdf:14734-14770| exact | "Inverse of hasOrHadPart" | +# | **CIDOC-CRM** | `crm:P46i_forms_part_of`| CIDOC_CRM:2341-2352 | close | "Forms part of" (physical things) | +# | **RiC-O** | `rico:isOrWasIncludedIn`| RiC-O_1-1.rdf | related | Inclusion relationship | +# | **Schema.org**| `schema:isPartOf` | schemaorg.owl | related | Part-whole relationship | +# | **DC Terms** | `dcterms:isPartOf` | dcterms.rdf | related | Part of collection | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, cleaned description, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/collection_of +name: collection_of +title: Collection Of + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + org: http://www.w3.org/ns/org# + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + collection_of: + slot_uri: rico:isOrWasPartOf + description: >- + The custodian, organization, or individual collector whose assembled + holdings or curated property this collection belongs to. + alt_descriptions: + nl: >- + De bewaarder, organisatie of individuele verzamelaar van wiens + verzamelde bezittingen of beheerde eigendom deze collectie deel uitmaakt. + de: >- + Der Verwahrer, die Organisation oder der einzelne Sammler, dessen + zusammengetragene Bestände oder kuratiertes Eigentum diese Sammlung gehört. + fr: >- + Le dépositaire, l'organisation ou le collectionneur individuel dont + les fonds rassemblés ou la propriété conservée constituent cette collection. + ar: >- + الحارس أو المنظمة أو الجامع الفردي الذي تنتمي إليه هذه المجموعة كجزء + من مقتنياته المجمعة أو ملكيته المنسقة. + id: >- + Penjaga, organisasi, atau kolektor individu yang memiliki koleksi ini + sebagai bagian dari kepemilikan yang dikumpulkan atau properti yang dikurasi. + zh: >- + 此收藏所属的保管人、组织或个人收藏家的汇集馆藏或策展财产。 + es: >- + El custodio, organización o coleccionista individual cuyos fondos + reunidos o propiedad curada comprende esta colección. + structured_aliases: + - literal_form: collectie van + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Sammlung von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: collection de + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مجموعة من + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: koleksi dari + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 收藏属于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: colección de + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + exact_mappings: + - rico:isOrWasPartOf # RiC-O_1-1.rdf:14734-14770 - "Inverse of hasOrHadPart" + close_mappings: + - crm:P46i_forms_part_of # CIDOC_CRM:2341-2352 - "Forms part of" (physical things) + related_mappings: + - rico:isOrWasIncludedIn + - schema:isPartOf + - dcterms:isPartOf + aliases: + - is_or_was_collection_of + annotations: + inverse_slot: has_or_had_collection + deprecates: collection_of + rico_pattern: isOrWasPartOf + custodian_types: '["*"]' + examples: + - value: "https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804" + description: Collection identifying its current custodian (Rijksmuseum) + comments: + - | + **TEMPORAL PATTERN**: Uses RiC-O `isOrWas*` pattern because collections + can be transferred between custodians over time. This property captures + both current and historical custody relationships. + - | + **METONYMIC REFERENCE**: + This property captures the common metonymic usage where people refer to + a custodian by its collection: + - "The Rijksmuseum has a Rembrandt" (has_or_had_collection) + - "This painting belongs to the Rijksmuseum" (collection_of) + - | + **CUSTODY TRANSFER EXAMPLE**: + A collection transferred from Library A to Archive B would have: + - Historical: collection_of → Library A (with end date) + - Current: collection_of → Archive B (with start date) + - | + **INVERSE**: `has_or_had_collection` (rico:hasOrHadPart) + Pattern: If Custodian hasOrHadCollection Collection, then Collection + isOrWasCollectionOf Custodian + - | + **MIGRATION NOTE (2026-02-03)**: + Migrated from is_or_was_collection_of for conciseness. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/commented_on.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/commented_on.yaml new file mode 100644 index 0000000000..4745bef79a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/commented_on.yaml @@ -0,0 +1,100 @@ +# ============================================================================== +# LinkML Slot Definition: commented_on +# ============================================================================== +# To be the subject of a remark, observation, or annotation provided by a +# specific agent or user. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **Schema.org**| `schema:comment` | schemaorg.owl:12267 | exact | Comments from users | +# +# CREATED: 2026-01-20 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/commented_on +name: commented_on +title: Commented On +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: + - linkml:types +slots: + commented_on: + slot_uri: schema:comment + description: >- + To be the subject of a remark, observation, or annotation provided by + a specific agent or user. + alt_descriptions: + nl: >- + Het onderwerp zijn van een opmerking, observatie of annotatie + verstrekt door een specifieke agent of gebruiker. + de: >- + Gegenstand einer Bemerkung, Beobachtung oder Anmerkung zu sein, die + von einem bestimmten Akteur oder Benutzer bereitgestellt wird. + fr: >- + Être le sujet d'une remarque, d'une observation ou d'une annotation + fournie par un agent ou un utilisateur spécifique. + ar: >- + أن يكون موضوع ملاحظة أو مراقبة أو تعليق توضيحي مقدم من وكيل + أو مستخدم محدد. + id: >- + Menjadi subjek komentar, pengamatan, atau anotasi yang diberikan + oleh agen atau pengguna tertentu. + zh: >- + 成为特定代理人或用户提供的评论、观察或注解的主题。 + es: >- + Ser el sujeto de un comentario, observación o anotación proporcionado + por un agente o usuario específico. + structured_aliases: + - literal_form: becommentarieerd + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: kommentiert + predicate: EXACT_SYNONYM + in_language: de + - literal_form: commenté + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: علّق عليه + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dikomentari + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 被评论 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: comentado + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + exact_mappings: + - schema:comment + aliases: + - has_or_had_comment + - is_or_was_commented_on + examples: + - value: hc:comment/video-comment-001 + description: User comment on video + - value: hc:comment/review-note-002 + description: Review annotation note + annotations: + custodian_types: '["*"]' + comments: + - | + USAGE: Used for video comments, review comments, annotation notes, + and any other textual remarks associated with an entity. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/compatible_with.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/compatible_with.yaml new file mode 100644 index 0000000000..7893bb14c2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/compatible_with.yaml @@ -0,0 +1,102 @@ +# ============================================================================== +# LinkML Slot Definition: compatible_with +# ============================================================================== +# Indicates compatibility with a standard, system, or technology. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **Schema.org**| `schema:isSimilarTo` | schemaorg.owl | related | Similarity (NOT same as compatibility)| +# +# NOTE: schema:isSimilarTo expresses similarity, not technical compatibility. +# No standard ontology has an exact match for "compatible with" semantics. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual, corrected mapping +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/compatible_with +name: compatible_with +title: Compatible With + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + compatible_with: + slot_uri: hc:compatibleWith + description: >- + A standard, system, technology, or specification with which the entity + is compatible, indicating interoperability or conformance capability. + alt_descriptions: + nl: >- + Een standaard, systeem, technologie of specificatie waarmee de entiteit + compatibel is, wat interoperabiliteit of conformiteitscapaciteit aangeeft. + de: >- + Ein Standard, System, eine Technologie oder Spezifikation, mit der die + Entität kompatibel ist, was Interoperabilität oder Konformitätsfähigkeit anzeigt. + fr: >- + Une norme, un système, une technologie ou une spécification avec laquelle + l'entité est compatible, indiquant une capacité d'interopérabilité ou de conformité. + ar: >- + معيار أو نظام أو تقنية أو مواصفة يتوافق معها الكيان، مما يشير إلى + قدرة التشغيل البيني أو المطابقة. + id: >- + Standar, sistem, teknologi, atau spesifikasi yang kompatibel dengan entitas, + menunjukkan interoperabilitas atau kemampuan kesesuaian. + zh: >- + 实体兼容的标准、系统、技术或规范,表明互操作性或合规能力。 + es: >- + Un estándar, sistema, tecnología o especificación con el cual la entidad + es compatible, indicando capacidad de interoperabilidad o conformidad. + structured_aliases: + - literal_form: compatibel met + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: kompatibel mit + predicate: EXACT_SYNONYM + in_language: de + - literal_form: compatible avec + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: متوافق مع + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: kompatibel dengan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 兼容于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: compatible con + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + related_mappings: + - schema:isSimilarTo # Similarity, not technical compatibility + aliases: + - is_or_was_compatible_with + annotations: + custodian_types: '["*"]' + comments: + - | + **MAPPING NOTE**: schema:isSimilarTo expresses similarity, not technical + compatibility. No standard ontology has an exact match for "compatible with" + semantics, hence this is a related_mapping rather than exact_mapping. + - | + **MIGRATION NOTE (2026-02-03)**: + Migrated from is_or_was_compatible_with for conciseness. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/comply_with.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/comply_with.yaml new file mode 100644 index 0000000000..1cb9256695 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/comply_with.yaml @@ -0,0 +1,121 @@ +# ============================================================================== +# LinkML Slot Definition: comply_with +# ============================================================================== +# Generic slot for expressing conformance to standards, specifications, or guidelines. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|-----------------------|-------------------|----------|------------------------------------------| +# | **Dublin Core**| `dcterms:conformsTo` | dcterms.rdf:987 | exact | "An established standard to which the | +# | | | | | described resource conforms." | +# | **Dublin Core**| `dcterms:relation` | dcterms.rdf:1000 | broad | Parent property of conformsTo | +# | **Schema.org** | `schema:isBasedOn` | schemaorg:22729 | close | "A resource from which this work is | +# | | | | | derived or from which it is a | +# | | | | | modification or adaptation." | +# | **Dublin Core**| `dcterms:references` | dcterms.rdf:1782 | related | "A related resource that is referenced, | +# | | | | | cited, or otherwise pointed to." | +# +# USAGE: Indicates that an institution, collection, or resource conforms to +# specific standards, specifications, or guidelines (e.g., LIDO, MARC21, Darwin Core). +# +# CREATED: 2026-01-17 per Rule 53/56 +# UPDATED: 2026-02-03 - Added broad_mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/comply_with +name: comply_with +title: comply with + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + +imports: + - linkml:types + +default_prefix: hc + +slots: + comply_with: + slot_uri: dcterms:conformsTo + description: >- + To adhere formally to specific rules, standards, or requirements to ensure full conformity. + alt_descriptions: + nl: >- + Formeel voldoen aan specifieke regels, normen of eisen om volledige conformiteit te waarborgen. + de: >- + Formelle Einhaltung spezifischer Regeln, Standards oder Anforderungen zur Gewährleistung vollständiger Konformität. + fr: >- + Adhérer formellement à des règles, normes ou exigences spécifiques pour assurer une conformité totale. + ar: >- + الالتزام رسمياً بقواعد أو معايير أو متطلبات محددة لضمان المطابقة الكاملة. + id: >- + Mematuhi secara formal aturan, standar, atau persyaratan tertentu untuk memastikan kepatuhan penuh. + zh: >- + 正式遵守特定的规则、标准或要求,以确保完全合规。 + es: >- + Adherirse formalmente a reglas, normas o requisitos específicos para garantizar la conformidad total. + range: uriorcurie + multivalued: true + inlined: false + inlined_as_list: false + exact_mappings: + - dcterms:conformsTo # dcterms.rdf:987-1010 - "An established standard to which the described resource conforms" + broad_mappings: + - dcterms:relation # dcterms.rdf:1000 - parent property; conformsTo is rdfs:subPropertyOf relation + close_mappings: + - schema:isBasedOn + related_mappings: + - dcterms:references + aliases: + - complies_or_complied_with + - is_or_was_comply_with + structured_aliases: + - literal_form: voldoet aan + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: entspricht + predicate: EXACT_SYNONYM + in_language: de + - literal_form: conforme à + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يتوافق مع + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: sesuai dengan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 符合 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: cumple con + predicate: EXACT_SYNONYM + in_language: es + examples: + - value: hc:standard/LIDO + description: Museum cataloging standard + - value: hc:standard/MARC21 + description: Library cataloging standard + - value: hc:standard/Darwin-Core + description: Natural history data standard + annotations: + custodian_types: '["*"]' + comments: + - Updated 2026-02-03 with broad_mappings + - | + CREATED 2026-01-17 per Rule 53/56: Generic slot pattern for standards conformance. + - | + Replaces domain-specific slots like cataloging_standard. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **Dublin Core** | `dcterms:conformsTo` | 987-1010 | exact | Standard conformance property | + | **Dublin Core** | `dcterms:relation` | 1000 | broad | Parent property (conformsTo is subPropertyOf) | + | **Schema.org** | `schema:isBasedOn` | 22729-22751 | close | Derivation/adaptation relationship | + | **Dublin Core** | `dcterms:references` | 1782-1805 | related | General reference relationship | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/conducted_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/conducted_by.yaml new file mode 100644 index 0000000000..21b87bc6c8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/conducted_by.yaml @@ -0,0 +1,96 @@ +# ============================================================================== +# LinkML Slot Definition: conducted_by +# ============================================================================== +# Agent or organization that conducted an activity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|---------------------------|----------------------|---------|------------------------------------| +# | **PROV-O** | `prov:wasAssociatedWith` | prov.ttl:1066-1080 | exact | "Agent with responsibility for Activity"| +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support, verified mapping +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/conducted_by +name: conducted_by +title: Conducted By + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + conducted_by: + slot_uri: prov:wasAssociatedWith + description: >- + The agent or organization that performed, executed, or was responsible + for carrying out the activity or process. + alt_descriptions: + nl: >- + De agent of organisatie die de activiteit of het proces heeft uitgevoerd, + geëxecuteerd of verantwoordelijk was voor de uitvoering ervan. + de: >- + Der Agent oder die Organisation, die die Aktivität oder den Prozess + durchgeführt, ausgeführt oder dafür verantwortlich war. + fr: >- + L'agent ou l'organisation qui a réalisé, exécuté ou était responsable + de l'exécution de l'activité ou du processus. + ar: >- + الوكيل أو المنظمة التي نفذت أو أجرت أو كانت مسؤولة عن تنفيذ + النشاط أو العملية. + id: >- + Agen atau organisasi yang melakukan, menjalankan, atau bertanggung + jawab untuk melaksanakan aktivitas atau proses. + zh: >- + 执行、实施或负责开展活动或流程的代理人或组织。 + es: >- + El agente u organización que realizó, ejecutó o fue responsable de + llevar a cabo la actividad o proceso. + structured_aliases: + - literal_form: uitgevoerd door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: durchgeführt von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: conduit par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: أُجري بواسطة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dilakukan oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 由...执行 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: conducido por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + exact_mappings: + - prov:wasAssociatedWith # prov.ttl:1066-1080 - Agent with responsibility for Activity + aliases: + - is_or_was_conducted_by + annotations: + custodian_types: '["*"]' + comments: + - | + **ONTOLOGY ALIGNMENT**: prov:wasAssociatedWith from PROV-O describes + "An Agent that had some (unspecified) responsibility for the occurrence + of this Activity." This aligns with the "conducted by" semantics. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/contain.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/contain.yaml new file mode 100644 index 0000000000..536cdd5adc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/contain.yaml @@ -0,0 +1,162 @@ +# ============================================================================== +# LinkML Slot Definition: contain +# ============================================================================== +# Hold within defined limits or comprise specific components as integral parts. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------------|----------------------|---------|------------------------------------| +# | **RiC-O** | `rico:containsOrContained` | RiC-O_1-1:2002-2043 | slot_uri| Primary containment property | +# | **RiC-O** | `rico:hasOrHadPart` | RiC-O_1-1:2004 | broad | Parent of containsOrContained | +# | **RiC-O** | `rico:containsTransitive` | RiC-O_1-1:2046 | narrow | Transitive subproperty | +# | **Schema.org**| `schema:hasPart` | schemaorg.owl:20403 | close | CreativeWork parts | +# | **Dublin Core**| `dcterms:hasPart` | dcterms.rdf:1347-1370| close | Physical/logical inclusion | +# | **CIDOC-CRM** | `crm:P46_is_composed_of` | CIDOC_CRM:2324-2340 | related | Physical thing composition | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added broad_mappings (rico:hasOrHadPart), narrow_mappings (rico:containsTransitive) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/contain +name: contain +title: contain +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ +imports: + - linkml:types +default_prefix: hc +slots: + contain: + slot_uri: rico:containsOrContained + description: >- + To hold within defined limits or to comprise specific components as + integral parts. + alt_descriptions: + nl: >- + Binnen gedefinieerde grenzen houden of specifieke componenten als + integrale onderdelen omvatten. + de: >- + Innerhalb definierter Grenzen halten oder spezifische Komponenten als + integrale Bestandteile umfassen. + fr: >- + Contenir dans des limites définies ou comprendre des composants + spécifiques comme parties intégrantes. + ar: >- + الاحتفاظ ضمن حدود محددة أو تضمين مكونات محددة كأجزاء متكاملة. + id: >- + Menampung dalam batas yang ditentukan atau terdiri dari komponen + tertentu sebagai bagian integral. + zh: >- + 在规定的范围内容纳,或将特定组件作为整体部分包含在内。 + es: >- + Contener dentro de límites definidos o comprender componentes + específicos como partes integrales. + structured_aliases: + - literal_form: bevatten + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: enthalten + predicate: EXACT_SYNONYM + in_language: de + - literal_form: contenir + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يحتوي + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mengandung + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 包含 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: contener + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + exact_mappings: + # RiC-O containsOrContained - Lines 2002-2043 in RiC-O_1-1.rdf + # "Connects a Place to a region that is or was within it." + # Domain: rico:Place, Range: rico:Place + # SubPropertyOf: hasOrHadPart, isAssociatedWithPlace + - rico:containsOrContained + broad_mappings: + # RiC-O_1-1.rdf line 2004: containsOrContained rdfs:subPropertyOf hasOrHadPart + # Broad: general part-whole relation + - rico:hasOrHadPart # from RiC-O_1-1.rdf - parent of containsOrContained + narrow_mappings: + # RiC-O_1-1.rdf line 2046: containsTransitive rdfs:subPropertyOf containsOrContained + # Narrow: transitive version for chained containment + - rico:containsTransitive # from RiC-O_1-1.rdf - transitive subproperty + close_mappings: + # Schema.org hasPart - Lines 20403-20425 in schemaorg.owl + # "Indicates an item or CreativeWork that is part of this item" + # Domain: CreativeWork, Range: CreativeWork + - schema:hasPart + # Dublin Core hasPart - Lines 1347-1370 in dcterms.rdf + # "A related resource that is included either physically or logically + # in the described resource." + - dcterms:hasPart + related_mappings: + # CIDOC-CRM P46 is_composed_of - Lines 2324-2340 in CIDOC_CRM_v7.1.3.rdf + # "Associates an instance of E18 Physical Thing with another instance + # of Physical Thing that forms part of it." + - crm:P46_is_composed_of + aliases: + - contains_or_contained + - has_or_had_part + - is_or_was_contain + examples: + - value: https://nde.nl/ontology/hc/name/last-name-component + description: >- + PersonName contains_or_contained LastName (name contains surname component) + - value: https://nde.nl/ontology/hc/document/text-content + description: >- + Document contains_or_contained Text (document contains text content) + - value: https://nde.nl/ontology/hc/collection/item-123 + description: >- + Collection contains_or_contained Item (collection contains items) + annotations: + custodian_types: '["*"]' + specificity_score: 0.2 + specificity_rationale: >- + Very generic slot - containment applicable across all entity types. + comments: + - Updated 2026-02-02 with verified ontology mappings and translations + - | + **PURPOSE**: + Generic slot for containment relationships. Captures both spatial + containment (places containing other places) and logical containment + (collections containing items, documents containing content). + - | + **RiC-O NAMING** (Rule 39): + Uses "contains_or_contained" alias following RiC-O temporal naming + pattern - indicates current or past containment relationship. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **RiC-O** | `rico:containsOrContained` | 2002-2043 | slot_uri | Primary containment property | + | **RiC-O** | `rico:hasOrHadPart` | 2004 | broad | Parent of containsOrContained | + | **RiC-O** | `rico:containsTransitive` | 2046 | narrow | Transitive subproperty | + | **Schema.org** | `schema:hasPart` | 20403-20425 | close | CreativeWork parts | + | **Dublin Core** | `dcterms:hasPart` | 1347-1370 | close | Physical/logical inclusion | + | **CIDOC-CRM** | `crm:P46_is_composed_of` | 2324-2340 | related | Physical thing composition | + - | + **USE CASES**: + - PersonName contains_or_contained LastName (name contains surname component) + - Document contains_or_contained Text (document contains text content) + - Collection contains_or_contained Item (collection contains items) + - | + **NOTE**: + For specialized containment relationships, use domain-specific variants: + - contains_or_contained_collection (for CustodianCollection) + - contains_or_contained_covers_settlement (for geographic coverage) diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/contain_collection.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/contain_collection.yaml new file mode 100644 index 0000000000..c27523b5fb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/contain_collection.yaml @@ -0,0 +1,101 @@ +# ============================================================================== +# LinkML Slot Definition: contains_collection +# ============================================================================== +# Collections housed within a closed space or container. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------------|------------------------|---------|------------------------------------| +# | **RiC-O** | `rico:containsOrContained` | RiC-O_1-1.rdf:2002-2043| close | Spatial containment | +# | **Schema.org**| `schema:hasPart` | schemaorg.owl | related | General part-whole | +# | **DC Terms** | `dcterms:hasPart` | dcterms.rdf | related | Physical/logical inclusion | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, cleaned description, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/contain_collection +name: contain_collection +title: Contain Collection + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + contain_collection: + slot_uri: hc:containCollection + description: >- + The collections that are housed, stored, or contained within this + closed space, building, or container. + alt_descriptions: + nl: >- + De collecties die zijn gehuisvest, opgeslagen of bevat in deze + afgesloten ruimte, gebouw of container. + de: >- + Die Sammlungen, die in diesem geschlossenen Raum, Gebäude oder + Behälter untergebracht, gelagert oder enthalten sind. + fr: >- + Les collections qui sont hébergées, stockées ou contenues dans cet + espace clos, bâtiment ou conteneur. + ar: >- + المجموعات المُستضافة أو المُخزنة أو الموجودة في هذا المكان + المغلق أو المبنى أو الحاوية. + id: >- + Koleksi yang ditempatkan, disimpan, atau terkandung dalam ruang + tertutup, bangunan, atau wadah ini. + zh: >- + 在此封闭空间、建筑物或容器中收藏、存储或包含的藏品。 + es: >- + Las colecciones que están alojadas, almacenadas o contenidas en este + espacio cerrado, edificio o contenedor. + structured_aliases: + - literal_form: bevat collectie + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: enthält Sammlung + predicate: EXACT_SYNONYM + in_language: de + - literal_form: contient collection + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يحتوي على مجموعة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: berisi koleksi + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 包含收藏 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: contiene colección + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + close_mappings: + - rico:containsOrContained # RiC-O spatial containment + related_mappings: + - schema:hasPart + - dcterms:hasPart + aliases: + - contains_or_contained_collection + annotations: + custodian_types: '["*"]' + comments: + - | + **MIGRATION NOTE (2026-02-03)**: + Migrated from contains_or_contained_collection for conciseness. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/contain_storage_unit.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/contain_storage_unit.yaml new file mode 100644 index 0000000000..034b758f28 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/contain_storage_unit.yaml @@ -0,0 +1,101 @@ +# ============================================================================== +# LinkML Slot Definition: contain_storage_unit +# ============================================================================== +# Storage units contained within a larger structural container or location. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------------|------------------------|---------|------------------------------------| +# | **RiC-O** | `rico:containsOrContained` | RiC-O_1-1.rdf:2002-2043| close | Spatial containment | +# | **Schema.org**| `schema:hasPart` | schemaorg.owl | related | General part-whole | +# | **DC Terms** | `dcterms:hasPart` | dcterms.rdf | related | Physical/logical inclusion | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, cleaned description, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/contain_storage_unit +name: contain_storage_unit +title: Contain Storage Unit + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + contain_storage_unit: + slot_uri: hc:containStorageUnit + description: >- + The distinct storage units that are physically housed, included, or held + within a larger structural container, building, or location. + alt_descriptions: + nl: >- + De afzonderlijke opslageenheden die fysiek zijn gehuisvest, opgenomen + of gehouden binnen een grotere structurele container, gebouw of locatie. + de: >- + Die einzelnen Lagereinheiten, die physisch in einem größeren + strukturellen Behälter, Gebäude oder Standort untergebracht sind. + fr: >- + Les unités de stockage distinctes qui sont physiquement hébergées, + incluses ou contenues dans un conteneur structurel, bâtiment ou emplacement plus grand. + ar: >- + وحدات التخزين المميزة التي يتم إيواؤها أو تضمينها أو الاحتفاظ بها + فعليًا داخل حاوية هيكلية أو مبنى أو موقع أكبر. + id: >- + Unit penyimpanan yang berbeda yang secara fisik ditempatkan, disertakan, + atau ditampung dalam wadah struktural, bangunan, atau lokasi yang lebih besar. + zh: >- + 在较大的结构容器、建筑物或位置内物理存放、包含或持有的独立存储单元。 + es: >- + Las unidades de almacenamiento distintas que están físicamente alojadas, + incluidas o contenidas en un contenedor estructural, edificio o ubicación más grande. + structured_aliases: + - literal_form: bevat opslageenheid + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: enthält Lagereinheit + predicate: EXACT_SYNONYM + in_language: de + - literal_form: contient unité de stockage + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يحتوي على وحدة تخزين + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: berisi unit penyimpanan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 包含存储单元 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: contiene unidad de almacenamiento + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + close_mappings: + - rico:containsOrContained # RiC-O spatial containment + related_mappings: + - schema:hasPart + - dcterms:hasPart + aliases: + - contains_or_contained_contains_unit + annotations: + custodian_types: '["*"]' + comments: + - | + **MIGRATION NOTE (2026-02-03)**: + Migrated from contains_or_contained_contains_unit for conciseness. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/cover_place.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/cover_place.yaml new file mode 100644 index 0000000000..11e0452851 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/cover_place.yaml @@ -0,0 +1,113 @@ +# ============================================================================== +# LinkML Slot Definition: cover_place +# ============================================================================== +# Service, jurisdiction, or administrative coverage extending to specific places. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|-------------------------|---------|-------------------------------------------------| +# | **Schema.org**| `schema:containsPlace`| schemaorg.owl:12711-12733| close | Spatial containment; our slot is service scope. | +# | **DC Terms** | `dcterms:coverage` | - | related | Broader coverage (temporal + spatial). | +# | **RiC-O** | `rico:hasOrHadSubject`| - | related | Subject coverage, not service area. | +# +# NOTE: schema:containsPlace is "basic containment relation between a place and +# another that it contains" (spatial). Our slot is about SERVICE/JURISDICTION +# coverage extending to settlements - semantically close but not exact. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual, corrected mapping to close +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/cover_place +name: cover_place +title: Cover Place + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + +default_prefix: hc + +imports: + - linkml:types + +slots: + cover_place: + slot_uri: hc:coverPlace + description: >- + To include or extend service, jurisdiction, or administrative coverage to specific + settlements or populated places, such as cities, towns, or villages. + alt_descriptions: + nl: >- + Het opnemen of uitbreiden van dienstverlening, jurisdictie of administratieve dekking + naar specifieke nederzettingen of bewoonde plaatsen, zoals steden, dorpen of gehuchten. + de: >- + Die Einbeziehung oder Erweiterung von Dienstleistungen, Zuständigkeiten oder + administrativer Abdeckung auf bestimmte Siedlungen oder bewohnte Orte wie Städte, + Gemeinden oder Dörfer. + fr: >- + Inclure ou étendre la couverture de service, de juridiction ou administrative à des + établissements ou lieux habités spécifiques, tels que des villes ou des villages. + ar: >- + تضمين أو توسيع تغطية الخدمة أو الولاية القضائية أو الإدارية لتشمل مستوطنات + أو أماكن مأهولة محددة، مثل المدن أو البلدات أو القرى. + id: >- + Untuk menyertakan atau memperluas cakupan layanan, yurisdiksi, atau administratif + ke permukiman atau tempat berpenduduk tertentu, seperti kota, kota kecil, atau desa. + zh: >- + 将服务、管辖或行政覆盖范围纳入或扩展到特定的定居点或人口聚居地, + 如城市、城镇或村庄。 + es: >- + Incluir o extender la cobertura de servicio, jurisdicción o administrativa a + asentamientos o lugares poblados específicos, como ciudades, pueblos o aldeas. + structured_aliases: + - literal_form: dekt plaats + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: abgedeckter Ort + predicate: EXACT_SYNONYM + in_language: de + - literal_form: couvre lieu + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يغطي مكان + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mencakup tempat + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 覆盖地点 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: cubre lugar + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + aliases: + - contains_or_contained_covers_settlement + close_mappings: + - schema:containsPlace # schemaorg.owl:12711-12733 - spatial containment; ours is service coverage + related_mappings: + - dcterms:coverage # broader coverage concept + comments: + - | + **USAGE**: Use when service area covers specific municipalities (not entire province), + municipal archive serving one or more cities, or regional archive with defined list + of served settlements. + - | + **IMPLEMENTATION**: Links to Settlement class with GeoNames identifiers. GeoNames IDs + disambiguate settlements with same name (e.g., multiple towns named "Springfield"). + - | + **MIGRATION**: Renamed 2026-02-03 from contains_or_contained_covers_settlement for conciseness. + annotations: + custodian_types: '["*"]' + examples: + - value: "https://nde.nl/ontology/hc/settlement/2755003" + description: "Haarlem - GeoNames ID 2755003" + - value: "https://nde.nl/ontology/hc/settlement/2754669" + description: "Heemskerk - GeoNames ID 2754669" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/created_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/created_by.yaml new file mode 100644 index 0000000000..8bcb2c33c3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/created_by.yaml @@ -0,0 +1,131 @@ +# ============================================================================== +# LinkML Slot Definition: created_by +# ============================================================================== +# Links an entity to its creator, manufacturer, or producer. Uses RiC-O temporal +# naming convention (alias: is_or_was_created_by) indicating the relationship +# may be historical. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------------|-------------------------|---------|--------------------------------------------------| +# | **PROV-O** | `prov:wasAttributedTo` | prov.ttl:1082-1097 | exact | "Attribution is the ascribing of an entity to | +# | | | | | an agent." | +# | **Schema.org**| `schema:creator` | schemaorg.owl:13479-500 | close | "Creator/author of this CreativeWork." | +# | **Schema.org**| `schema:manufacturer` | schemaorg.owl:25377-381 | close | "The manufacturer of the product." | +# | **CIDOC-CRM** | `crm:P94i_was_created_by` | CIDOC_CRM:3238-3248 | close | "Was created by" (inverse of P94_has_created). | +# | **CIDOC-CRM** | `crm:P108_was_produced_by` | CIDOC_CRM:3578+ | close | Production relationship for physical things. | +# | **DCTerms** | `dcterms:creator` | dcterms.rdf:1092-1119 | close | "An entity responsible for making the resource." | +# | **PROV-O** | `prov:wasInfluencedBy` | prov.ttl:1147-1157 | broad | Parent property; general influence relationship. | +# +# CREATED: 2026-01-25 +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/created_by +name: created_by +title: Created By +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + To be brought into existence or authored by a specific agent or entity responsible for its origination. +imports: +- linkml:types +slots: + created_by: + slot_uri: prov:wasAttributedTo + description: | + To be brought into existence or authored by a specific agent or entity responsible for its origination. + alt_descriptions: + nl: Tot stand gebracht of geschreven door een specifieke agent of entiteit die verantwoordelijk is voor het ontstaan ervan. + de: In Existenz gebracht oder verfasst von einem spezifischen Akteur oder einer Entität, die für ihre Entstehung verantwortlich ist. + fr: Être créé ou rédigé par un agent ou une entité spécifique responsable de son origine. + ar: أن يتم إنشاؤه أو تأليفه بواسطة وكيل أو كيان محدد مسؤول عن نشأته. + id: Diciptakan atau ditulis oleh agen atau entitas tertentu yang bertanggung jawab atas asal-usulnya. + zh: 由负责其创建的特定代理或实体创建或撰写。 + es: Ser creado o escrito por un agente o entidad específica responsable de su origen. + structured_aliases: + - literal_form: gemaakt door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: erstellt von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: créé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: أنشئ بواسطة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dibuat oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 由...创建 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: creado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + required: false + multivalued: false + exact_mappings: + - prov:wasAttributedTo # prov.ttl:1082-1097 - "Attribution is the ascribing of an entity to an agent" + close_mappings: + - schema:creator # schemaorg.owl:13479-13500 - creator/author of CreativeWork + - schema:manufacturer # schemaorg.owl:25377-25381 - manufacturer of the product + - crm:P94i_was_created_by # CIDOC_CRM:3238-3248 - was created by (conceptual objects) + - crm:P108_was_produced_by # CIDOC_CRM:3578+ - production relationship for physical things + - dcterms:creator # dcterms.rdf:1092-1119 - entity responsible for making the resource + broad_mappings: + - prov:wasInfluencedBy # prov.ttl:1147-1157 - parent property; general influence relationship + - dcterms:contributor # dcterms:creator is subPropertyOf dcterms:contributor + aliases: + - is_or_was_created_by + - manufactured_by + - produced_by + annotations: + rico_naming_convention: | + Follows RiC-O "isOrWas" pattern for temporal predicates via alias. + See Rule 39: Slot Naming Convention (RiC-O Style) + replaces_slots: device_manufacturer + migration_date: '2026-01-25' + custodian_types: '["*"]' + specificity_score: 0.80 + examples: + - value: https://nde.nl/ontology/hc/manufacturer/estimote + description: Reference to Estimote as device manufacturer. + - value: https://nde.nl/ontology/hc/manufacturer/sensirion + description: Reference to Sensirion as sensor manufacturer. + - value: https://www.wikidata.org/wiki/Q42 + description: Wikidata reference to a creator (Douglas Adams). + comments: + - Links products/devices to their manufacturer. + - Use Manufacturer class for structured manufacturer data. + - 'RiC-O naming: isOrWas indicates potentially historical relationship.' + - PROV-O wasAttributedTo for provenance chain tracking. + - | + **PURPOSE**: Establishes provenance by linking entities to their creators, + manufacturers, or producers. Essential for tracking the origin of physical + objects, digital assets, and conceptual works within GLAM collections. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | PROV-O | prov:wasAttributedTo | 1082-1097 | exact | Agent attribution | + | Schema.org | schema:creator | 13479-500 | close | Creator of work | + | Schema.org | schema:manufacturer | 25377-381 | close | Product manufacturer | + | CIDOC-CRM | crm:P94i_was_created_by | 3238-3248 | close | Conceptual creation | + | DCTerms | dcterms:creator | 1092-1119 | close | Responsible entity | + | PROV-O | prov:wasInfluencedBy | 1147-1157 | broad | General influence | + - Updated 2026-02-03 with verified ontology mappings and translations. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/created_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/created_through.yaml new file mode 100644 index 0000000000..825bf48e1d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/created_through.yaml @@ -0,0 +1,95 @@ +# ============================================================================== +# LinkML Slot Definition: created_through +# ============================================================================== +# Event or activity through which an entity was created. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|------------------------|----------------------|---------|------------------------------------| +# | **PROV-O** | `prov:wasGeneratedBy` | prov.ttl:1132-1145 | exact | Entity generated by Activity | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual, updated slot_uri to standard +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/created_through +name: created_through +title: Created Through + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + created_through: + slot_uri: prov:wasGeneratedBy + description: >- + The event, activity, or process through which the entity was brought + into existence or generated. + alt_descriptions: + nl: >- + De gebeurtenis, activiteit of het proces waardoor de entiteit tot + stand is gekomen of is gegenereerd. + de: >- + Das Ereignis, die Aktivität oder der Prozess, durch den die Entität + ins Leben gerufen oder generiert wurde. + fr: >- + L'événement, l'activité ou le processus par lequel l'entité a été + créée ou générée. + ar: >- + الحدث أو النشاط أو العملية التي من خلالها تم إنشاء الكيان أو توليده. + id: >- + Peristiwa, aktivitas, atau proses yang melaluinya entitas diciptakan + atau dihasilkan. + zh: >- + 通过其创建或生成实体的事件、活动或过程。 + es: >- + El evento, actividad o proceso a través del cual la entidad fue + creada o generada. + structured_aliases: + - literal_form: gecreëerd via + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: erstellt durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: créé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: أُنشئ من خلال + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dibuat melalui + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 通过...创建 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: creado a través de + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + exact_mappings: + - prov:wasGeneratedBy # prov.ttl:1132-1145 - Entity generated by Activity + aliases: + - is_or_was_created_through + annotations: + custodian_types: '["*"]' + comments: + - | + **ONTOLOGY ALIGNMENT**: prov:wasGeneratedBy from PROV-O links an Entity + to the Activity that generated it. This is an exact semantic match for + "created through" meaning the creation event/activity. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/curated_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/curated_through.yaml new file mode 100644 index 0000000000..8e3ed8a541 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/curated_through.yaml @@ -0,0 +1,107 @@ +# ============================================================================== +# LinkML Slot Definition: curated_through +# ============================================================================== +# The curation activity associated with this entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|------------------------|----------------------|---------|------------------------------------| +# | **PROV-O** | `prov:wasGeneratedBy` | prov.ttl:1132-1145 | close | Generation (curation is specific) | +# +# NOTE: prov:wasGeneratedBy is broader than curation - it covers any generation, +# not specifically curatorial activities. Hence close_mapping. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, cleaned description, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/curated_through +name: curated_through +title: Curated Through + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + curated_through: + slot_uri: hc:curatedThrough + description: >- + The curation activity, process, or event through which this entity was + selected, organized, and maintained for preservation or presentation. + alt_descriptions: + nl: >- + De curatieactiviteit, het proces of de gebeurtenis waardoor deze + entiteit werd geselecteerd, georganiseerd en onderhouden voor + bewaring of presentatie. + de: >- + Die Kurationsaktivität, der Prozess oder das Ereignis, durch das + diese Entität für Erhaltung oder Präsentation ausgewählt, organisiert + und gepflegt wurde. + fr: >- + L'activité de curation, le processus ou l'événement par lequel cette + entité a été sélectionnée, organisée et maintenue pour la conservation + ou la présentation. + ar: >- + نشاط التنسيق أو العملية أو الحدث الذي تم من خلاله اختيار هذا الكيان + وتنظيمه وصيانته للحفظ أو العرض. + id: >- + Aktivitas kurasi, proses, atau peristiwa yang melaluinya entitas ini + dipilih, diorganisir, dan dipelihara untuk pelestarian atau presentasi. + zh: >- + 通过其选择、组织和维护此实体以进行保存或展示的策展活动、过程或事件。 + es: >- + La actividad de curación, proceso o evento a través del cual esta + entidad fue seleccionada, organizada y mantenida para su preservación + o presentación. + structured_aliases: + - literal_form: gecureerd via + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: kuratiert durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: conservé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مُنسَّق من خلال + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dikurasi melalui + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 通过...策展 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: curado a través de + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + close_mappings: + - prov:wasGeneratedBy # prov.ttl:1132-1145 - Generation (broader than curation) + aliases: + - is_or_was_curated_through + annotations: + custodian_types: '["*"]' + comments: + - | + **MAPPING NOTE**: prov:wasGeneratedBy is broader than curation - it covers + any form of generation, not specifically curatorial activities in the GLAM + context. Hence close_mapping rather than exact_mapping. + - | + **MIGRATION NOTE (2026-02-03)**: + Migrated from is_or_was_curated_through for conciseness. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/current.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/current.yaml new file mode 100644 index 0000000000..13aefd0893 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/current.yaml @@ -0,0 +1,90 @@ +# ============================================================================== +# LinkML Slot Definition: current +# ============================================================================== +# Whether the entity is current or active. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **Schema.org**| `schema:status` | schemaorg.owl | related | Status (more general) | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/current +name: current +title: Current + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + current: + slot_uri: hc:current + description: >- + Whether the entity is presently active, valid, or in effect at the + current point in time. + alt_descriptions: + nl: >- + Of de entiteit momenteel actief, geldig of van kracht is op het + huidige tijdstip. + de: >- + Ob die Entität derzeit aktiv, gültig oder zum aktuellen Zeitpunkt + in Kraft ist. + fr: >- + Si l'entité est actuellement active, valide ou en vigueur au + moment présent. + ar: >- + ما إذا كان الكيان نشطًا أو صالحًا أو ساري المفعول حاليًا في + الوقت الحالي. + id: >- + Apakah entitas saat ini aktif, valid, atau berlaku pada titik + waktu saat ini. + zh: >- + 实体目前是否处于活动、有效或生效状态。 + es: >- + Si la entidad está actualmente activa, válida o en vigor en el + momento actual. + structured_aliases: + - literal_form: huidig + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: aktuell + predicate: EXACT_SYNONYM + in_language: de + - literal_form: actuel + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: حالي + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: saat ini + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 当前 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: actual + predicate: EXACT_SYNONYM + in_language: es + range: boolean + related_mappings: + - schema:status # General status property + aliases: + - is_or_was_current + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/decommissioned_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/decommissioned_at.yaml new file mode 100644 index 0000000000..7f9e3e5551 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/decommissioned_at.yaml @@ -0,0 +1,93 @@ +# ============================================================================== +# LinkML Slot Definition: decommissioned_at +# ============================================================================== +# Date when an entity was decommissioned or taken out of service. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|------------------------|----------------------|---------|------------------------------------| +# | **PROV-O** | `prov:invalidatedAtTime`| prov.ttl | close | Invalidation time (similar) | +# | **Schema.org**| `schema:endDate` | schemaorg.owl | related | End date (more general) | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/decommissioned_at +name: decommissioned_at +title: Decommissioned At + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + decommissioned_at: + slot_uri: hc:decommissionedAt + description: >- + The date and time when the entity was officially taken out of service, + retired, or decommissioned. + alt_descriptions: + nl: >- + De datum en tijd waarop de entiteit officieel buiten dienst is + gesteld, met pensioen is gegaan of is ontmanteld. + de: >- + Das Datum und die Uhrzeit, zu der die Entität offiziell außer + Betrieb genommen, stillgelegt oder ausgemustert wurde. + fr: >- + La date et l'heure auxquelles l'entité a été officiellement mise + hors service, retirée ou désaffectée. + ar: >- + التاريخ والوقت الذي تم فيه إخراج الكيان رسميًا من الخدمة أو + إيقافه أو إلغاء تشغيله. + id: >- + Tanggal dan waktu ketika entitas secara resmi dinonaktifkan, + dipensiunkan, atau dinonaktifkan. + zh: >- + 实体正式退役、停用或退出服务的日期和时间。 + es: >- + La fecha y hora en que la entidad fue oficialmente retirada del + servicio, jubilada o desmantelada. + structured_aliases: + - literal_form: buiten dienst gesteld op + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: außer Betrieb genommen am + predicate: EXACT_SYNONYM + in_language: de + - literal_form: désaffecté le + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: خارج الخدمة في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dinonaktifkan pada + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 退役于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: desmantelado el + predicate: EXACT_SYNONYM + in_language: es + range: datetime + close_mappings: + - prov:invalidatedAtTime # Time of invalidation + related_mappings: + - schema:endDate # General end date + aliases: + - is_or_was_decommissioned_at + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/define.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/define.yaml new file mode 100644 index 0000000000..b641f508ce --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/define.yaml @@ -0,0 +1,100 @@ +# ============================================================================== +# LinkML Slot Definition: define +# ============================================================================== +# States or sets forth the precise meaning, nature, scope, or boundaries. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|--------------------------------------------| +# | **SKOS** | `skos:definition` | - | related | Definition text, not definitional relation | +# | **RDFS** | `rdfs:isDefinedBy` | - | related | Points to defining resource. | +# +# NOTE: Previous exact_mapping to org:hasUnit was INCORRECT. org:hasUnit means +# "organization has organizational unit" - semantically unrelated to "define". +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual, REMOVED incorrect org:hasUnit mapping +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/define +name: define +title: Define + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + define: + slot_uri: hc:define + description: >- + To state or set forth the precise meaning, nature, scope, or boundaries + of a concept, term, or entity. + alt_descriptions: + nl: >- + Het vaststellen of uiteenzetten van de precieze betekenis, aard, reikwijdte + of grenzen van een concept, term of entiteit. + de: >- + Die genaue Bedeutung, Natur, den Umfang oder die Grenzen eines Konzepts, + Begriffs oder einer Entität festlegen oder darlegen. + fr: >- + Énoncer ou définir le sens précis, la nature, la portée ou les limites + d'un concept, d'un terme ou d'une entité. + ar: >- + ذكر أو تحديد المعنى الدقيق أو الطبيعة أو النطاق أو الحدود لمفهوم + أو مصطلح أو كيان. + id: >- + Untuk menyatakan atau menetapkan makna, sifat, ruang lingkup, atau batasan + yang tepat dari suatu konsep, istilah, atau entitas. + zh: >- + 陈述或阐明概念、术语或实体的精确含义、性质、范围或边界。 + es: >- + Declarar o establecer el significado preciso, la naturaleza, el alcance + o los límites de un concepto, término o entidad. + structured_aliases: + - literal_form: definieert + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: definiert + predicate: EXACT_SYNONYM + in_language: de + - literal_form: définit + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يعرّف + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mendefinisikan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 定义 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: define + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + aliases: + - defines_or_defined + - is_or_was_define + related_mappings: + - skos:definition # definition text/annotation + - rdfs:isDefinedBy # points to defining resource + comments: + - | + **USAGE**: Use to link an entity to what it formally defines, such as + governance structures, policies, or conceptual frameworks. + annotations: + custodian_types: '["*"]' + examples: + - value: "https://nde.nl/ontology/hc/GovernanceStructure/123" + description: "Links to a governance structure definition" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/degree_of_certainty.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/degree_of_certainty.yaml new file mode 100644 index 0000000000..842d760726 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/degree_of_certainty.yaml @@ -0,0 +1,110 @@ +# ============================================================================== +# LinkML Slot Definition: degree_of_certainty +# ============================================================================== +# Qualitative or quantitative measure of confidence or reliability. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|-------------------------|---------|--------------------------------------------| +# | **PROV-O** | `prov:value` | prov.ttl | related | Generic value property. | +# +# NOTE: Previous close_mapping to crm:P91_has_unit was INCORRECT. P91_has_unit +# means "has measurement unit" (e.g., meters, kilograms) - not certainty levels. +# CIDOC-CRM line 3141-3153: "shows the type of unit an instance of E54 Dimension +# was expressed in" with range E58_Measurement_Unit. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual, REMOVED incorrect crm:P91_has_unit +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/degree_of_certainty +name: degree_of_certainty +title: Degree of Certainty + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + +default_prefix: hc + +imports: + - linkml:types + +slots: + degree_of_certainty: + slot_uri: hc:degreeOfCertainty + description: >- + To denote the qualitative or quantitative measure of confidence or reliability + regarding the accuracy of a statement, fact, or relationship. + alt_descriptions: + nl: >- + Het aanduiden van de kwalitatieve of kwantitatieve mate van vertrouwen of + betrouwbaarheid met betrekking tot de nauwkeurigheid van een bewering, + feit of relatie. + de: >- + Die Bezeichnung des qualitativen oder quantitativen Maßes an Vertrauen oder + Zuverlässigkeit hinsichtlich der Genauigkeit einer Aussage, Tatsache oder + Beziehung. + fr: >- + Désigner la mesure qualitative ou quantitative de confiance ou de fiabilité + concernant l'exactitude d'une déclaration, d'un fait ou d'une relation. + ar: >- + للدلالة على المقياس النوعي أو الكمي للثقة أو الموثوقية فيما يتعلق + بدقة بيان أو حقيقة أو علاقة. + id: >- + Untuk menunjukkan ukuran kualitatif atau kuantitatif kepercayaan atau + keandalan mengenai keakuratan pernyataan, fakta, atau hubungan. + zh: >- + 表示关于陈述、事实或关系准确性的定性或定量的信心或可靠性度量。 + es: >- + Denotar la medida cualitativa o cuantitativa de confianza o fiabilidad + respecto a la exactitud de una declaración, hecho o relación. + structured_aliases: + - literal_form: mate van zekerheid + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Grad der Gewissheit + predicate: EXACT_SYNONYM + in_language: de + - literal_form: degré de certitude + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: درجة اليقين + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: tingkat kepastian + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 确定程度 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: grado de certeza + predicate: EXACT_SYNONYM + in_language: es + range: string + aliases: + - degree_of_certainty + - is_or_was_degree_of_certainty + related_mappings: + - prov:value # generic value property + comments: + - | + **USAGE**: Use to indicate how specific or certain information is, particularly + for temporal data (dates) and other values that may have varying levels of precision. + - | + **PRECISION LEVELS**: Common values include day, month, year, decade, century + for temporal precision, or confidence levels (high, medium, low) for inferred data. + annotations: + specificity_score: 0.3 + specificity_rationale: Certainty/precision levels are broadly applicable across temporal, quantitative, and qualitative contexts. + custodian_types: '["*"]' + custodian_types_rationale: Degree of certainty applies universally to all custodian types. + examples: + - value: "year" + description: "Date known to year precision only" + - value: "high" + description: "High confidence in the stated relationship" + - value: "estimated" + description: "Value is an estimate rather than exact" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/department_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/department_of.yaml new file mode 100644 index 0000000000..f5efc76dc2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/department_of.yaml @@ -0,0 +1,102 @@ +# ============================================================================== +# LinkML Slot Definition: department_of +# ============================================================================== +# Specialized functional unit or division within a larger organization. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|-------------------------------------------------| +# | **W3C Org** | `org:unitOf` | org.rdf:406-426 | exact | "Organization of which this Unit is a part." | +# +# NOTE: org:unitOf (line 406-426) states: "Indicates an Organization of which +# this Unit is a part, e.g. a Department within a larger FormalOrganization." +# This is semantically EXACT match for department_of. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual, added org:unitOf exact mapping +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/department_of +name: department_of +title: Department Of + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + +default_prefix: hc + +imports: + - linkml:types + +slots: + department_of: + slot_uri: org:unitOf + description: >- + To be a specialized functional unit, branch, or administrative division + contained within a larger organization, government, or institution. + alt_descriptions: + nl: >- + Een gespecialiseerde functionele eenheid, afdeling of administratieve + divisie zijn die deel uitmaakt van een grotere organisatie, overheid of instelling. + de: >- + Eine spezialisierte funktionale Einheit, Abteilung oder administrative + Division innerhalb einer größeren Organisation, Regierung oder Institution sein. + fr: >- + Être une unité fonctionnelle spécialisée, une branche ou une division + administrative au sein d'une organisation, d'un gouvernement ou d'une + institution plus grande. + ar: >- + أن تكون وحدة وظيفية متخصصة أو فرع أو قسم إداري ضمن منظمة + أو حكومة أو مؤسسة أكبر. + id: >- + Menjadi unit fungsional khusus, cabang, atau divisi administratif + yang terdapat dalam organisasi, pemerintah, atau institusi yang lebih besar. + zh: >- + 作为较大组织、政府或机构内的专业职能单位、分支或行政部门。 + es: >- + Ser una unidad funcional especializada, rama o división administrativa + contenida dentro de una organización, gobierno o institución más grande. + structured_aliases: + - literal_form: afdeling van + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Abteilung von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: département de + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: قسم من + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: departemen dari + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 部门属于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: departamento de + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + aliases: + - is_or_was_archive_department_of + exact_mappings: + - org:unitOf # org.rdf:406-426 - "Organization of which this Unit is a part" + comments: + - | + **USAGE**: Use to indicate that an archive, library, or museum department + is a specialized unit within a larger parent organization. + - | + **SEMANTICS**: This is the inverse of org:hasUnit. The subject is the + department/unit, and the object is the parent organization. + annotations: + custodian_types: '["*"]' + examples: + - value: "https://nde.nl/ontology/hc/Organization/RijksmuseumAmsterdam" + description: "A department that is part of the Rijksmuseum Amsterdam" + - value: "https://nde.nl/ontology/hc/Organization/NationaalArchief" + description: "A specialized archive unit within the National Archives" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/deployed_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/deployed_at.yaml new file mode 100644 index 0000000000..1ee794e372 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/deployed_at.yaml @@ -0,0 +1,42 @@ +# ============================================================================== +# LinkML Slot Definition: deployed_at +# ============================================================================== +# Links an entity to its deployment event. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|------------------------|---------|------------------------------| +# | **PROV-O** | `prov:wasGeneratedBy` | close | PROV-O generation event | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/deployed_at +name: deployed_at +title: Deployed At +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + deployed_at: + slot_uri: hc:deployedAt + description: | + To be installed, stationed, or put into active service at a specific physical location, server, or digital environment. + range: string + multivalued: true + close_mappings: + - prov:wasGeneratedBy + aliases: + - is_or_was_deployed_at + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/deployed_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/deployed_through.yaml new file mode 100644 index 0000000000..0efea115d4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/deployed_through.yaml @@ -0,0 +1,119 @@ +# ============================================================================== +# LinkML Slot Definition: deployed_through +# ============================================================================== +# Denotes the mechanism, pipeline, or release event via which a system was deployed. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|------------------------|----------------------|---------|-------------------------------------------| +# | **PROV-O** | `prov:wasGeneratedBy` | prov.ttl:1132-1145 | close | Generation of entity - more general | +# | **Schema.org**| `schema:datePublished` | schemaorg.owl:14278 | related | Date aspect only, not deployment mechanism| +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description, added multilingual, corrected mapping semantics +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/deployed_through +name: deployed_through +title: Deployed Through + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + deployed_through: + slot_uri: hc:deployedThrough + description: >- + The specific mechanism, pipeline, or release event via which a software system, service, + or application was installed, configured, and made operational in a target environment. + alt_descriptions: + nl: >- + Het specifieke mechanisme, de pijplijn of de release-gebeurtenis waarmee een softwaresysteem, + dienst of applicatie werd geïnstalleerd, geconfigureerd en operationeel gemaakt in een doelomgeving. + de: >- + Der spezifische Mechanismus, die Pipeline oder das Release-Ereignis, über das ein + Softwaresystem, ein Dienst oder eine Anwendung in einer Zielumgebung installiert, + konfiguriert und betriebsbereit gemacht wurde. + fr: >- + Le mécanisme spécifique, le pipeline ou l'événement de publication par lequel un + système logiciel, un service ou une application a été installé, configuré et rendu + opérationnel dans un environnement cible. + ar: >- + الآلية أو خط الإنتاج أو حدث الإصدار المحدد الذي تم من خلاله تثبيت نظام برمجي أو خدمة + أو تطبيق وتكوينه وتشغيله في بيئة مستهدفة. + id: >- + Mekanisme, pipeline, atau peristiwa rilis tertentu yang melaluinya sistem perangkat + lunak, layanan, atau aplikasi diinstal, dikonfigurasi, dan dioperasikan di lingkungan target. + zh: >- + 软件系统、服务或应用程序在目标环境中安装、配置并投入运行所通过的具体机制、管道或发布事件。 + es: >- + El mecanismo específico, pipeline o evento de lanzamiento a través del cual un sistema + de software, servicio o aplicación fue instalado, configurado y puesto en funcionamiento + en un entorno de destino. + structured_aliases: + - literal_form: geïmplementeerd via + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: bereitgestellt durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: déployé via + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: تم النشر عبر + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diimplementasikan melalui + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 通过部署 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: desplegado mediante + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + required: false + aliases: + - is_or_was_deployed_at + - is_or_was_deployed_through + close_mappings: + - prov:wasGeneratedBy # prov.ttl:1132-1145 - Generation of entity by activity (more general) + related_mappings: + - schema:datePublished # schemaorg.owl:14278 - Date aspect only + annotations: + replaces_slots: deployment_date + migration_date: '2026-01-25' + custodian_types: '["*"]' + comments: + - | + **TEMPORAL SEMANTICS**: This relationship may be historical - a system may have been + deployed multiple times at different institutions or locations. + - | + **REVISION PATTERN**: Replaces a simple date with structured DeploymentEvent: + - DeploymentEvent.temporal_extent → TimeSpan with fuzzy boundaries + - Enables tracking multiple deployments over time + - Captures deployment context (who, where, why) + - MIGRATED from deployment_date per slot_fixes.yaml (Rule 53) + - Structured deployment tracking via DeploymentEvent class + - 'RiC-O naming: isOrWas indicates potentially historical relationship' + - 'Mapping Note: prov:wasGeneratedBy is close but more general (entity generation vs. deployment)' + examples: + - value: https://nde.nl/ontology/hc/event/rijksmuseum-adlib-deployment-2015 + description: Reference to Adlib CMS deployment event at Rijksmuseum diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/deposited_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/deposited_by.yaml new file mode 100644 index 0000000000..f0926755d6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/deposited_by.yaml @@ -0,0 +1,108 @@ +# ============================================================================== +# LinkML Slot Definition: deposited_by +# ============================================================================== +# Agent or entity responsible for placing materials into a repository. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|--------------------------|----------------------|---------|-------------------------------------------------| +# | **PROV-O** | `prov:wasAttributedTo` | prov.ttl:1082-1097 | close | "Ascribing of an entity to an agent." | +# | **CIDOC-CRM** | `crm:P30i_custody_transferred_through` | CIDOC:1918-1929 | related | Transfer of custody event. | +# +# NOTE: prov:wasAttributedTo is about general attribution, not specifically about +# depositing into a repository. Our slot is more specific (deposit action). +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/deposited_by +name: deposited_by +title: Deposited By + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + deposited_by: + slot_uri: hc:depositedBy + description: >- + To denote the specific agent or entity responsible for placing an object, + document, or dataset into a repository, archive, or system for safekeeping + or preservation. + alt_descriptions: + nl: >- + Het aanduiden van de specifieke agent of entiteit die verantwoordelijk is voor + het plaatsen van een object, document of dataset in een repository, archief + of systeem voor bewaring of conservering. + de: >- + Die Bezeichnung des spezifischen Akteurs oder der Entität, die für die + Hinterlegung eines Objekts, Dokuments oder Datensatzes in einem Repository, + Archiv oder System zur Aufbewahrung oder Erhaltung verantwortlich ist. + fr: >- + Désigner l'agent ou l'entité spécifique responsable du dépôt d'un objet, + d'un document ou d'un jeu de données dans un dépôt, des archives ou un + système pour la conservation ou la préservation. + ar: >- + للدلالة على الوكيل أو الكيان المحدد المسؤول عن وضع كائن أو وثيقة + أو مجموعة بيانات في مستودع أو أرشيف أو نظام للحفظ أو الصون. + id: >- + Untuk menunjukkan agen atau entitas tertentu yang bertanggung jawab untuk + menempatkan objek, dokumen, atau kumpulan data ke dalam repositori, arsip, + atau sistem untuk penyimpanan atau pelestarian. + zh: >- + 表示负责将物品、文档或数据集存放到存储库、档案馆或系统中以供保管或保存的特定代理人或实体。 + es: >- + Denotar el agente o entidad específico responsable de depositar un objeto, + documento o conjunto de datos en un repositorio, archivo o sistema para + su custodia o preservación. + structured_aliases: + - literal_form: gedeponeerd door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hinterlegt von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: déposé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: أودع من قبل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: didepositkan oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 存放者 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: depositado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + aliases: + - is_or_was_deposited_by + close_mappings: + - prov:wasAttributedTo # prov.ttl:1082-1097 - general attribution + related_mappings: + - crm:P30i_custody_transferred_through # CIDOC:1918-1929 - custody transfer event + comments: + - | + **USAGE**: Use to identify the organization, person, or agent that formally + deposited materials (collections, records, datasets) into an archive or repository. + - | + **DISTINCTION**: This differs from creator (who made the materials) and donor + (who may have gifted but not directly deposited). + annotations: + custodian_types: '["*"]' + examples: + - value: "https://nde.nl/ontology/hc/Organization/RoyalLibrary" + description: "Materials deposited by the Royal Library" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/derive_from.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/derive_from.yaml new file mode 100644 index 0000000000..b68ea3b3a0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/derive_from.yaml @@ -0,0 +1,223 @@ +# ============================================================================== +# LinkML Slot Definition: derive_from +# ============================================================================== +# Originate or be extracted from a source entity, resulting in a new entity +# that retains a fundamental connection to its origin. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------------|----------------------|---------|------------------------------------| +# | **PROV-O** | `prov:wasDerivedFrom` | prov.ttl:1099-1104 | slot_uri| Primary derivation property | +# | **PROV-O** | `prov:wasInfluencedBy` | prov.ttl:1073 | broad | Parent of wasDerivedFrom | +# | **PROV-O** | `prov:hadPrimarySource` | prov.ttl:667 | narrow | subPropertyOf wasDerivedFrom | +# | **PROV-O** | `prov:wasQuotedFrom` | prov.ttl:1216 | narrow | subPropertyOf wasDerivedFrom | +# | **PROV-O** | `prov:wasRevisionOf` | prov.ttl:1232 | narrow | subPropertyOf wasDerivedFrom | +# | **Schema.org**| `schema:isBasedOn` | schemaorg.owl:22729 | close | CreativeWork based on another | +# | **PAV** | `pav:derivedFrom` | pav.rdf:338-349 | close | Derived with modifications | +# | **Dublin Core**| `dcterms:source` | dcterms.rdf:1920 | related | Related resource from which derived| +# | **RiC-O** | `rico:hasGeneticLinkToRecordResource` | RiC-O_1-1:5239 | related | Genetic link between records | +# +# CREATED: 2026-01-19 +# UPDATED: 2026-02-03 - Added broad_mappings (prov:wasInfluencedBy), narrow_mappings (hadPrimarySource, wasQuotedFrom, wasRevisionOf) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/derive_from +name: derive_from +title: derive from +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + pav: http://purl.org/pav/ +default_prefix: hc +imports: + - linkml:types +slots: + derive_from: + slot_uri: prov:wasDerivedFrom + description: >- + To originate or be extracted from a source entity, resulting in a new + entity that retains a fundamental connection to its origin. + alt_descriptions: + nl: >- + Afgeleid zijn van of geëxtraheerd zijn uit een bronentiteit, wat + resulteert in een nieuwe entiteit die een fundamentele verbinding + met zijn oorsprong behoudt. + de: >- + Von einer Quellentität stammen oder daraus extrahiert werden, was + zu einer neuen Entität führt, die eine grundlegende Verbindung zu + ihrem Ursprung behält. + fr: >- + Provenir ou être extrait d'une entité source, résultant en une + nouvelle entité qui conserve un lien fondamental avec son origine. + ar: >- + أن ينشأ أو يُستخرج من كيان مصدر، مما ينتج عنه كيان جديد يحتفظ + باتصال أساسي بأصله. + id: >- + Berasal atau diekstraksi dari entitas sumber, menghasilkan entitas + baru yang mempertahankan hubungan mendasar dengan asalnya. + zh: >- + 源自或从源实体中提取,产生一个与其起源保持根本联系的新实体。 + es: >- + Originarse o ser extraído de una entidad fuente, resultando en una + nueva entidad que mantiene una conexión fundamental con su origen. + structured_aliases: + - literal_form: afgeleid van + - is_or_was_derive_from + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: abgeleitet von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: dérivé de + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مشتق من + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: berasal dari + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 派生自 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: derivado de + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + + # VERIFIED MAPPINGS (2026-02-02) + # Source files: data/ontology/prov.ttl, data/ontology/schemaorg.owl, + # data/ontology/pav.rdf, data/ontology/dcterms.rdf, + # data/ontology/RiC-O_1-1.rdf + + exact_mappings: + # prov.ttl line 1099-1104: wasDerivedFrom + # "A derivation is a transformation of an entity into another, an update + # of an entity resulting in a new one, or the construction of a new entity + # based on a pre-existing entity." + - prov:wasDerivedFrom # from prov.ttl - W3C PROV-O derivation + + broad_mappings: + # prov.ttl line 1073: wasDerivedFrom rdfs:subPropertyOf wasInfluencedBy + # Broad: general influence relation (parent of derivation) + - prov:wasInfluencedBy # from prov.ttl - parent of wasDerivedFrom + + narrow_mappings: + # prov.ttl line 667: hadPrimarySource rdfs:subPropertyOf wasDerivedFrom + # Narrow: specific derivation - primary/original source + - prov:hadPrimarySource # from prov.ttl - primary source (subPropertyOf) + + # prov.ttl line 1216: wasQuotedFrom rdfs:subPropertyOf wasDerivedFrom + # Narrow: specific derivation - quotation from source + - prov:wasQuotedFrom # from prov.ttl - quoted from source (subPropertyOf) + + # prov.ttl line 1232: wasRevisionOf rdfs:subPropertyOf wasDerivedFrom + # Narrow: specific derivation - revision of previous version + - prov:wasRevisionOf # from prov.ttl - revision (subPropertyOf) + + close_mappings: + # schemaorg.owl line 22729-22732: isBasedOn + # "A resource from which this work is derived or from which it is a + # modification or adaptation." + - schema:isBasedOn # from schemaorg.owl - CreativeWork based on another + + # pav.rdf line 338-349: derivedFrom + # "Derived from a different resource. Derivation concerns itself with + # derived knowledge. If content has been further refined or modified, + # pav:derivedFrom should be used." + - pav:derivedFrom # from pav.rdf - derived with modifications + + related_mappings: + # dcterms.rdf line 1920-1943: source + # "A related resource from which the described resource is derived." + # Related: broader - may be abstract, not necessarily a derivation + - dcterms:source # from dcterms.rdf - related resource from which derived + + # RiC-O_1-1.rdf line 5239: hasGeneticLinkToRecordResource + # "Connects a Record Resource to another Record Resource to which it has + # a genetic link" - archival records that share origin + - rico:hasGeneticLinkToRecordResource # from RiC-O_1-1.rdf - genetic link + + aliases: + - derives_or_derived_from + - is_based_on + - was_derived_from + - originates_from + - is_or_was_derive_from + - is_or_was_derived_from + + annotations: + custodian_types: '["*"]' + custodian_types_rationale: >- + Derivation relationships applicable to all custodian types for + provenance tracking of derived media and content. + specificity_score: 0.30 + specificity_rationale: >- + Low-medium specificity - derivation is a general provenance concept + applicable across many media and content types. + migration_date: '2026-01-19' + migration_rule: Rule 53 (no bespoke slots), Rule 56 (semantic consistency) + + examples: + - value: https://example.org/video/ABC123 + description: Thumbnail derived from video ABC123 + - value: https://example.org/audio/interview-001 + description: Transcript derived from audio interview + - value: https://example.org/image/original-photo-456 + description: Cropped image derived from original photograph + - value: https://example.org/document/full-report + description: Summary derived from full document + + comments: + - Created from slot_fixes.yaml migration (2026-01-19) + - Updated 2026-02-02 with verified ontology mappings and translations + - | + **PURPOSE**: + Indicates a derivation relationship where one entity is created based on, + or extracted from, another source entity. This follows PROV-O derivation + semantics for W3C-compliant provenance tracking. + - | + **RiC-O NAMING** (Rule 39): + Uses "derives_or_derived_from" alias to indicate temporal relationship - + derivation can be established at different points in time: + - A thumbnail may be derived from a video at creation time + - A transcription may be derived from audio later + - A derivative work may reference its source + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **PROV-O** | `prov:wasDerivedFrom` | 1099-1104 | slot_uri | Primary derivation property | + | **PROV-O** | `prov:wasInfluencedBy` | 1073 | broad | Parent of wasDerivedFrom | + | **PROV-O** | `prov:hadPrimarySource` | 667 | narrow | subPropertyOf wasDerivedFrom | + | **PROV-O** | `prov:wasQuotedFrom` | 1216 | narrow | subPropertyOf wasDerivedFrom | + | **PROV-O** | `prov:wasRevisionOf` | 1232 | narrow | subPropertyOf wasDerivedFrom | + | **Schema.org** | `schema:isBasedOn` | 22729 | close | CreativeWork based on | + | **PAV** | `pav:derivedFrom` | 338-349 | close | Derived with modifications | + | **Dublin Core** | `dcterms:source` | 1920 | related | Related source | + | **RiC-O** | `rico:hasGeneticLinkToRecordResource` | 5239 | related | Genetic link | + - | + **USE CASES**: + - Thumbnail derived from Video (specific frame extraction) + - Transcript derived from Audio recording + - Cropped image derived from original photograph + - Summary derived from full document + - Translation derived from original text + - | + **PROV-O SEMANTICS**: + PROV-O defines wasDerivedFrom as indicating "a transformation of an entity + into another, an update of an entity resulting in a new one, or the + construction of a new entity based on a pre-existing entity." More specific + subproperties include hadPrimarySource, wasQuotedFrom, and wasRevisionOf. + + see_also: + - https://www.w3.org/TR/prov-o/#wasDerivedFrom + - https://schema.org/isBasedOn + - http://purl.org/pav/derivedFrom diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/describe.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/describe.yaml new file mode 100644 index 0000000000..e8c8859b44 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/describe.yaml @@ -0,0 +1,111 @@ +# ============================================================================== +# LinkML Slot Definition: describe +# ============================================================================== +# Provide a detailed account or representation of features and characteristics. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|-------------------------|---------|-------------------------------------------------| +# | **Schema.org**| `schema:description` | schemaorg.owl:14844-14865| related | "A description of the item" - the text itself. | +# | **DC Terms** | `dcterms:description` | dcterms.rdf:1234 | related | Description text property. | +# | **CIDOC-CRM** | `crm:P67_refers_to` | CIDOC:2706-2718 | related | "Makes a statement about an entity." | +# +# NOTE: schema:description and dcterms:description are about the DESCRIPTION TEXT +# itself, not the ACT of describing. Our slot is a verb/action linking a describer +# to what they describe. crm:P67_refers_to is about reference/statement. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual, FIXED mapping (was exact, now related) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/describe +name: describe +title: Describe + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + describe: + slot_uri: hc:describe + description: >- + To provide a detailed account or representation of the features, characteristics, + or qualities of an entity, often serving to identify or explain it. + alt_descriptions: + nl: >- + Het geven van een gedetailleerde beschrijving of weergave van de kenmerken, + eigenschappen of kwaliteiten van een entiteit, vaak bedoeld om deze te + identificeren of uit te leggen. + de: >- + Eine detaillierte Darstellung oder Beschreibung der Merkmale, Eigenschaften + oder Qualitäten einer Entität zu geben, die oft dazu dient, sie zu + identifizieren oder zu erklären. + fr: >- + Fournir un compte rendu détaillé ou une représentation des caractéristiques, + des traits ou des qualités d'une entité, servant souvent à l'identifier + ou à l'expliquer. + ar: >- + تقديم وصف أو تمثيل مفصل للسمات أو الخصائص أو الصفات لكيان ما، + وغالبًا ما يخدم لتحديده أو شرحه. + id: >- + Untuk memberikan penjelasan atau representasi terperinci tentang fitur, + karakteristik, atau kualitas suatu entitas, sering kali berfungsi untuk + mengidentifikasi atau menjelaskannya. + zh: >- + 提供对实体的特征、特性或品质的详细说明或表述,通常用于识别或解释它。 + es: >- + Proporcionar una descripción detallada o representación de las características, + rasgos o cualidades de una entidad, a menudo sirviendo para identificarla + o explicarla. + structured_aliases: + - literal_form: beschrijft + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: beschreibt + predicate: EXACT_SYNONYM + in_language: de + - literal_form: décrit + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يصف + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mendeskripsikan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 描述 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: describe + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + aliases: + - describes_or_described + - is_or_was_describe + related_mappings: + - schema:description # schemaorg.owl:14844-14865 - description text (noun), not the action + - dcterms:description # dcterms.rdf:1234 - description text (noun) + - crm:P67_refers_to # CIDOC:2706-2718 - "makes a statement about" + comments: + - | + **USAGE**: Use to link a describing entity (e.g., finding aid, catalog record) + to what it describes (e.g., a collection, an object). + - | + **SEMANTICS**: This is an action/verb relationship, not the description text + itself. For the text content, use schema:description or dcterms:description. + annotations: + custodian_types: '["*"]' + examples: + - value: "https://nde.nl/ontology/hc/Collection/ABC123" + description: "A finding aid describes this collection" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/designed_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/designed_by.yaml new file mode 100644 index 0000000000..98c7eb84eb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/designed_by.yaml @@ -0,0 +1,103 @@ +# ============================================================================== +# LinkML Slot Definition: designed_by +# ============================================================================== +# Agent responsible for conceiving or planning aesthetic/functional specifications. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|-------------------------------------------------| +# | **CIDOC-CRM** | `crm:P14_carried_out_by`| CIDOC:1489-1503 | close | "Active participation of Actor in Activity." | +# | **PROV-O** | `prov:wasAttributedTo`| prov.ttl:1082-1097 | close | General attribution to an agent. | +# +# NOTE: Previous exact_mapping to schema:designer is INVALID - schema:designer +# does not exist in schemaorg.owl. crm:P14_carried_out_by is about activity +# participation (broader than design specifically). +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual, REMOVED invalid schema:designer mapping +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/designed_by +name: designed_by +title: Designed By + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + prov: http://www.w3.org/ns/prov# + +default_prefix: hc + +imports: + - linkml:types + +slots: + designed_by: + slot_uri: hc:designedBy + description: >- + To be conceived, planned, or fashioned by a specific agent responsible for + the aesthetic, functional, or structural specifications. + alt_descriptions: + nl: >- + Ontworpen, gepland of vormgegeven door een specifieke agent die verantwoordelijk + is voor de esthetische, functionele of structurele specificaties. + de: >- + Entworfen, geplant oder gestaltet von einem spezifischen Akteur, der für + die ästhetischen, funktionalen oder strukturellen Spezifikationen + verantwortlich ist. + fr: >- + Être conçu, planifié ou façonné par un agent spécifique responsable des + spécifications esthétiques, fonctionnelles ou structurelles. + ar: >- + أن يتم تصميمه أو تخطيطه أو تشكيله من قبل وكيل محدد مسؤول عن + المواصفات الجمالية أو الوظيفية أو الهيكلية. + id: >- + Dirancang, direncanakan, atau dibentuk oleh agen tertentu yang bertanggung + jawab atas spesifikasi estetika, fungsional, atau struktural. + zh: >- + 由负责美学、功能或结构规格的特定代理人构思、规划或设计。 + es: >- + Ser concebido, planificado o diseñado por un agente específico responsable + de las especificaciones estéticas, funcionales o estructurales. + structured_aliases: + - literal_form: ontworpen door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: entworfen von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: conçu par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مصمم من قبل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dirancang oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 设计者 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: diseñado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + aliases: + - is_or_was_designed_by + close_mappings: + - crm:P14_carried_out_by # CIDOC:1489-1503 - actor participation in activity + - prov:wasAttributedTo # prov.ttl:1082-1097 - general attribution + comments: + - | + **USAGE**: Use to identify the architect, designer, or planner responsible + for the design of buildings, exhibits, systems, or other designed artifacts. + - | + **NOTE**: Previous exact_mapping to schema:designer was removed as this + property does not exist in Schema.org ontology (verified 2026-02-03). + annotations: + custodian_types: '["*"]' + examples: + - value: "https://nde.nl/ontology/hc/Person/PierreCuypers" + description: "Building designed by Pierre Cuypers (architect of Rijksmuseum)" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/diarized.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/diarized.yaml new file mode 100644 index 0000000000..33217c3ded --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/diarized.yaml @@ -0,0 +1,101 @@ +# ============================================================================== +# LinkML Slot Definition: diarized +# ============================================================================== +# Recorded or logged into a diary, daybook, or daily schedule. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|-------------------------------------------------| +# | (none found) | - | - | - | Domain-specific slot for heritage workflows. | +# +# NOTE: No standard ontology mapping found. This is a domain-specific boolean +# slot for tracking whether items have been logged in institutional daybooks +# or diaries, common in archival and museum workflows. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/diarized +name: diarized +title: Diarized + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + diarized: + slot_uri: hc:diarized + description: >- + To be recorded, entered, or logged into a diary, daybook, or daily schedule + for the purpose of documenting an event, task, or timeline. + alt_descriptions: + nl: >- + Geregistreerd, ingevoerd of gelogd in een dagboek, journaal of dagelijks + schema met als doel het documenteren van een gebeurtenis, taak of tijdlijn. + de: >- + In einem Tagebuch, Tagesbuch oder Tagesplan aufgezeichnet, eingetragen + oder protokolliert zum Zweck der Dokumentation eines Ereignisses, einer + Aufgabe oder eines Zeitablaufs. + fr: >- + Être enregistré, inscrit ou consigné dans un journal, un livre de comptes + journalier ou un calendrier quotidien dans le but de documenter un événement, + une tâche ou un calendrier. + ar: >- + أن يتم تسجيله أو إدخاله أو تدوينه في مذكرة أو سجل يومي أو جدول + زمني يومي لغرض توثيق حدث أو مهمة أو جدول زمني. + id: >- + Dicatat, dimasukkan, atau dilog ke dalam buku harian, buku catatan harian, + atau jadwal harian untuk tujuan mendokumentasikan suatu peristiwa, tugas, + atau garis waktu. + zh: >- + 被记录、输入或登录到日记、日记簿或每日计划中,用于记录事件、任务或时间线。 + es: >- + Ser registrado, ingresado o anotado en un diario, libro diario o agenda + diaria con el propósito de documentar un evento, tarea o cronograma. + structured_aliases: + - literal_form: gedagboekt + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: in Tagebuch eingetragen + predicate: EXACT_SYNONYM + in_language: de + - literal_form: consigné au journal + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مسجل في اليومية + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dicatat dalam buku harian + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 已记入日志 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: registrado en diario + predicate: EXACT_SYNONYM + in_language: es + range: boolean + aliases: + - is_or_was_diarized + comments: + - | + **USAGE**: Use as a boolean flag to indicate whether an item, event, or + transaction has been formally recorded in an institutional diary or daybook. + - | + **CONTEXT**: Common in archival and museum workflows where incoming + materials, visits, or events are logged in daily registers. + annotations: + custodian_types: '["*"]' + examples: + - value: "true" + description: "Item has been recorded in the institution's daybook" + - value: "false" + description: "Item has not yet been logged" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/dismissed.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/dismissed.yaml new file mode 100644 index 0000000000..7c9d6919b8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/dismissed.yaml @@ -0,0 +1,101 @@ +# ============================================================================== +# LinkML Slot Definition: dismissed +# ============================================================================== +# Formally removed, discharged, or released from employment or duty. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|-------------------------------------------------| +# | (none found) | - | - | - | Domain-specific slot for personnel records. | +# +# NOTE: No standard ontology mapping found. This is a domain-specific boolean +# slot for tracking employment/appointment termination status, relevant for +# heritage institution personnel and governance records. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/dismissed +name: dismissed +title: Dismissed + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + dismissed: + slot_uri: hc:dismissed + description: >- + To be formally removed, discharged, or released from employment, office, + or a specific duty by an authority. + alt_descriptions: + nl: >- + Formeel verwijderd, ontslagen of vrijgesteld van dienstverband, ambt + of een specifieke plicht door een autoriteit. + de: >- + Formell entlassen, freigestellt oder von einer Beschäftigung, einem Amt + oder einer bestimmten Pflicht durch eine Behörde entbunden. + fr: >- + Être formellement révoqué, licencié ou libéré d'un emploi, d'une fonction + ou d'une obligation spécifique par une autorité. + ar: >- + أن يتم إقالته أو فصله أو إعفاؤه رسميًا من العمل أو المنصب + أو واجب محدد من قبل سلطة. + id: >- + Dipecat, diberhentikan, atau dibebaskan secara resmi dari pekerjaan, + jabatan, atau tugas tertentu oleh otoritas. + zh: >- + 被权力机构正式解除、解雇或免除雇佣、职位或特定职责。 + es: >- + Ser formalmente removido, despedido o liberado de un empleo, cargo o + deber específico por una autoridad. + structured_aliases: + - literal_form: ontslagen + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: entlassen + predicate: EXACT_SYNONYM + in_language: de + - literal_form: révoqué + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مفصول + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diberhentikan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 被解雇 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: despedido + predicate: EXACT_SYNONYM + in_language: es + range: boolean + aliases: + - is_or_was_dismissed + comments: + - | + **USAGE**: Use as a boolean flag to indicate whether a person has been + formally dismissed from their position within an institution. + - | + **CONTEXT**: Relevant for tracking personnel history, governance changes, + and institutional records in heritage organizations. + - | + **DISTINCTION**: This indicates termination by authority decision. + For voluntary departure, consider using a different slot (e.g., resigned). + annotations: + custodian_types: '["*"]' + examples: + - value: "true" + description: "Person was dismissed from their position" + - value: "false" + description: "Person was not dismissed (may have resigned or retired)" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/displayed_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/displayed_at.yaml new file mode 100644 index 0000000000..60c2728608 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/displayed_at.yaml @@ -0,0 +1,96 @@ +# ============================================================================== +# LinkML Slot Definition: displayed_at +# ============================================================================== +# To be publicly exhibited or presented for viewing at a specific physical +# location, venue, or site. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **Schema.org**| `schema:location` | schemaorg.owl | close | Location of action/event | +# | **CIDOC-CRM** | `crm:P7_took_place_at`| CIDOC_CRM | close | Location of activity | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/displayed_at +name: displayed_at +title: Displayed At +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: + - linkml:types +default_prefix: hc +slots: + displayed_at: + slot_uri: schema:location + description: >- + To be publicly exhibited or presented for viewing at a specific physical + location, venue, or site. + alt_descriptions: + nl: >- + Om publiekelijk tentoongesteld of gepresenteerd te worden voor bezichtiging + op een specifieke fysieke locatie, plaats of site. + de: >- + Öffentlich ausgestellt oder zur Besichtigung an einem bestimmten + physischen Ort, Veranstaltungsort oder Standort präsentiert zu werden. + fr: >- + Être exposé ou présenté publiquement pour être vu dans un lieu + physique, un site ou un emplacement spécifique. + ar: >- + أن يُعرض أو يُقدم علنياً للمشاهدة في موقع مادي أو مكان أو + موضع محدد. + id: >- + Dipamerkan atau disajikan secara publik untuk dilihat di lokasi fisik, + tempat, atau situs tertentu. + zh: >- + 在特定的物理位置、场地或场所公开展出或呈现供观看。 + es: >- + Ser exhibido o presentado públicamente para su visualización en una + ubicación física, sede o sitio específico. + structured_aliases: + - literal_form: tentoongesteld bij + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: ausgestellt bei + predicate: EXACT_SYNONYM + in_language: de + - literal_form: exposé à + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: معروض في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dipamerkan di + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 展示于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: exhibido en + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + inlined: false + close_mappings: + - schema:location + - crm:P7_took_place_at + aliases: + - is_or_was_displayed_at + annotations: + custodian_types: '["*"]' + specificity_score: 0.7 + comments: + - MIGRATED from display_location per slot_fixes.yaml (2026-01-26). diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/dissolved_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/dissolved_by.yaml new file mode 100644 index 0000000000..5ccf9932ca --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/dissolved_by.yaml @@ -0,0 +1,95 @@ +# ============================================================================== +# LinkML Slot Definition: dissolved_by +# ============================================================================== +# To be formally terminated, disbanded, or brought to an end by a specific +# agent, authority, or event. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|---------------------------|----------------------|---------|------------------------------------| +# | **W3C Org** | `org:changedBy` | org.rdf | slot_uri| Organization changed by event | +# | **PROV-O** | `prov:invalidatedAtTime` | prov.ttl | close | Time entity was invalidated | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/dissolved_by +name: dissolved_by +title: Dissolved By +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + org: http://www.w3.org/ns/org# + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +imports: + - linkml:types +default_prefix: hc +slots: + dissolved_by: + slot_uri: org:changedBy + description: >- + To be formally terminated, disbanded, or brought to an end by a specific + agent, authority, or event. + alt_descriptions: + nl: >- + Om formeel te worden beëindigd, ontbonden of tot een einde te worden + gebracht door een specifieke agent, autoriteit of gebeurtenis. + de: >- + Formell beendet, aufgelöst oder durch einen bestimmten Akteur, eine + Behörde oder ein Ereignis zu einem Ende gebracht zu werden. + fr: >- + Être formellement résilié, dissous ou mis fin par un agent, une + autorité ou un événement spécifique. + ar: >- + أن يتم إنهاؤه أو حله أو إنهائه رسمياً بواسطة وكيل أو سلطة أو + حدث محدد. + id: >- + Dibubarkan secara resmi, diakhiri, atau dihentikan oleh agen, + otoritas, atau peristiwa tertentu. + zh: >- + 由特定代理人、机构或事件正式终止、解散或结束。 + es: >- + Ser terminado, disuelto o puesto fin formalmente por un agente, + autoridad o evento específico. + structured_aliases: + - literal_form: ontbonden door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: aufgelöst durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: dissous par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: حُلّ بواسطة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dibubarkan oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 解散者 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: disuelto por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + inlined: false + close_mappings: + - prov:invalidatedAtTime + aliases: + - is_or_was_dissolved_by + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + comments: + - MIGRATED from dissolution_date and dissolved_date per slot_fixes.yaml (2026-01-26). diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/document.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/document.yaml new file mode 100644 index 0000000000..2111329e7f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/document.yaml @@ -0,0 +1,124 @@ +# ============================================================================== +# LinkML Slot Definition: document +# ============================================================================== +# Recording information or evidence in tangible form to substantiate facts +# or preserve knowledge for future reference. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|-----------------------|---------------------|----------|------------------------------------------| +# | **Schema.org** | `schema:about` | schemaorg.owl:6247 | slot_uri | "The subject matter of an object." | +# | **CIDOC-CRM** | `crm:P70_documents` | CIDOC_CRM:2784 | exact | "Describes CRM Entities documented as | +# | | | | | instances of E31 Document." | +# | **RiC-O** | `rico:documents` | RiC-O_1-1.rdf:2644 | exact | "Connects a Record Resource to the | +# | | | | | Activity that generates it." | +# | **CIDOC-CRM** | `crm:P67_refers_to` | CIDOC_CRM:2706 | broad | Parent of P70_documents | +# | **RiC-O** | `rico:hasOrganicOrFunctionalProvenance` | RiC-O:2646 | broad | Parent of rico:documents | +# | **PROV-O** | `prov:hadPrimarySource`| prov.ttl:661 | close | "Primary source that originated some | +# | | | | | information." (subprop of wasDerivedFrom)| +# +# USAGE: Indicates that a resource or entity records/documents information about +# a subject, substantiating facts or preserving knowledge for future reference. +# +# CREATED: 2026-01-26 - Migrated from documents_budget +# UPDATED: 2026-02-03 - Added broad_mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/document +name: document +title: document + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# + prov: http://www.w3.org/ns/prov# + +imports: + - linkml:types + +default_prefix: hc + +slots: + document: + slot_uri: schema:about + description: >- + To record information or evidence in a tangible form to substantiate facts or preserve knowledge for future reference. + alt_descriptions: + nl: >- + Informatie of bewijs vastleggen in tastbare vorm om feiten te onderbouwen of kennis te bewaren voor toekomstig gebruik. + de: >- + Informationen oder Beweise in greifbarer Form aufzeichnen, um Fakten zu belegen oder Wissen für zukünftige Referenz zu bewahren. + fr: >- + Enregistrer des informations ou des preuves sous forme tangible pour étayer des faits ou préserver des connaissances pour référence future. + ar: >- + تسجيل المعلومات أو الأدلة بشكل ملموس لإثبات الحقائق أو حفظ المعرفة للرجوع إليها مستقبلاً. + id: >- + Mencatat informasi atau bukti dalam bentuk nyata untuk mendukung fakta atau menyimpan pengetahuan untuk referensi di masa depan. + zh: >- + 以有形形式记录信息或证据,以证实事实或保存知识供将来参考。 + es: >- + Registrar información o evidencia en forma tangible para fundamentar hechos o preservar conocimiento para referencia futura. + range: uriorcurie + multivalued: true + inlined: false + exact_mappings: + - crm:P70_documents # CIDOC_CRM:2784-2798 - describes entities documented in E31 Document + - rico:documents # RiC-O_1-1.rdf:2644-2672 - connects Record Resource to Activity + broad_mappings: + - crm:P67_refers_to # CIDOC_CRM:2706-2718 - parent property of P70_documents + - rico:hasOrganicOrFunctionalProvenance # RiC-O:2646 - parent property of rico:documents + close_mappings: + - prov:hadPrimarySource + aliases: + - documents_or_documented + - is_or_was_document + structured_aliases: + - literal_form: documenteert + - is_or_was_document + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: dokumentiert + predicate: EXACT_SYNONYM + in_language: de + - literal_form: documente + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يوثق + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mendokumentasikan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 记录 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: documenta + predicate: EXACT_SYNONYM + in_language: es + examples: + - value: hc:activity/AcquisitionProcess + description: Documents an acquisition process + - value: hc:event/Exhibition2024 + description: Documents an exhibition event + annotations: + custodian_types: '["*"]' + specificity_score: 0.3 + comments: + - Updated 2026-02-03 with broad_mappings + - | + MIGRATED from documents_budget (2026-01-26). + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **Schema.org** | `schema:about` | 6247-6274 | slot_uri | "The subject matter of an object" | + | **CIDOC-CRM** | `crm:P70_documents` | 2784-2798 | exact | Describes entities documented in E31 Document | + | **RiC-O** | `rico:documents` | 2644-2672 | exact | Connects Record Resource to Activity | + | **CIDOC-CRM** | `crm:P67_refers_to` | 2706-2718 | broad | Parent property of P70_documents | + | **RiC-O** | `rico:hasOrganicOrFunctionalProvenance` | 2646 | broad | Parent property of rico:documents | + | **PROV-O** | `prov:hadPrimarySource` | 661-674 | close | Primary source of information derivation | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/documented_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/documented_by.yaml new file mode 100644 index 0000000000..5fc9853a68 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/documented_by.yaml @@ -0,0 +1,105 @@ +# ============================================================================== +# LinkML Slot Definition: documented_by +# ============================================================================== +# Agent, publication, or system acting as the source of documentation. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|-------------------------|---------|-------------------------------------------------| +# | **CIDOC-CRM** | `crm:P70_documents` | CIDOC:2784-2797 | close | "Documents may describe any entity." (inverse) | +# | **PROV-O** | `prov:wasAttributedTo`| prov.ttl:1082-1097 | related | General attribution to agent. | +# +# NOTE: crm:P70_documents has domain E31_Document and describes what a document +# documents. Our slot is about WHAT documented something (the documenting agent). +# The inverse crm:P70i_is_documented_in is for the "documented_in" slot. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/documented_by +name: documented_by +title: Documented By + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + prov: http://www.w3.org/ns/prov# + +default_prefix: hc + +imports: + - linkml:types + +slots: + documented_by: + slot_uri: hc:documentedBy + description: >- + To be recorded, described, or substantiated by a specific agent, publication, + or system acting as the source of the information or evidence. + alt_descriptions: + nl: >- + Geregistreerd, beschreven of onderbouwd door een specifieke agent, publicatie + of systeem dat als bron van de informatie of het bewijs fungeert. + de: >- + Aufgezeichnet, beschrieben oder belegt durch einen bestimmten Akteur, eine + Publikation oder ein System, das als Quelle der Information oder des + Nachweises dient. + fr: >- + Être enregistré, décrit ou étayé par un agent, une publication ou un système + spécifique servant de source d'information ou de preuve. + ar: >- + أن يتم تسجيله أو وصفه أو إثباته من قبل وكيل أو منشور أو نظام + محدد يعمل كمصدر للمعلومات أو الأدلة. + id: >- + Dicatat, dijelaskan, atau dibuktikan oleh agen, publikasi, atau sistem + tertentu yang bertindak sebagai sumber informasi atau bukti. + zh: >- + 由特定的代理人、出版物或系统记录、描述或证实,作为信息或证据的来源。 + es: >- + Ser registrado, descrito o fundamentado por un agente, publicación o sistema + específico que actúa como fuente de información o evidencia. + structured_aliases: + - literal_form: gedocumenteerd door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: dokumentiert von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: documenté par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: موثق من قبل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: didokumentasikan oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 记录者 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: documentado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + aliases: + - is_or_was_documented_by + close_mappings: + - crm:P70_documents # CIDOC:2784-2797 - "This property describes the CRM Entities documented as instances of E31 Document" (inverse direction) + related_mappings: + - prov:wasAttributedTo # prov.ttl:1082-1097 - general attribution + comments: + - | + **USAGE**: Use to identify who or what created documentation about something. + The subject is the thing being documented, the object is the documenting agent. + - | + **DISTINCTION**: Use documented_in for the document itself; use documented_by + for the agent who created the documentation. + annotations: + custodian_types: '["*"]' + examples: + - value: "https://nde.nl/ontology/hc/Organization/NationalArchives" + description: "Item documented by the National Archives" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/documented_in.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/documented_in.yaml new file mode 100644 index 0000000000..7ee2606cf7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/documented_in.yaml @@ -0,0 +1,103 @@ +# ============================================================================== +# LinkML Slot Definition: documented_in +# ============================================================================== +# Document, publication, or file where something is recorded or evidenced. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|---------------------------|---------------------|---------|----------------------------------------------| +# | **CIDOC-CRM** | `crm:P70i_is_documented_in`| CIDOC:2799-2810 | exact | "is documented in" - domain E1_CRM_Entity. | +# +# NOTE: Previous exact_mapping to schema:documentation was INCORRECT. +# schema:documentation (line 15438-15459) is "Further documentation describing +# the Web API in more detail" with domain WebAPI - too narrow for general use. +# crm:P70i_is_documented_in is the correct semantic match. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual, FIXED mapping (removed schema:documentation) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/documented_in +name: documented_in +title: Documented In + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + documented_in: + slot_uri: crm:P70i_is_documented_in + description: >- + To be recorded, described, or evidenced within a specific document, + publication, file, or piece of media. + alt_descriptions: + nl: >- + Geregistreerd, beschreven of bewezen in een specifiek document, publicatie, + bestand of mediagedeelte. + de: >- + In einem bestimmten Dokument, einer Publikation, Datei oder einem + Medienträger aufgezeichnet, beschrieben oder belegt. + fr: >- + Être enregistré, décrit ou attesté dans un document, une publication, + un fichier ou un support médiatique spécifique. + ar: >- + أن يتم تسجيله أو وصفه أو إثباته ضمن وثيقة أو منشور أو ملف + أو قطعة وسائط محددة. + id: >- + Dicatat, dijelaskan, atau dibuktikan dalam dokumen, publikasi, file, + atau media tertentu. + zh: >- + 在特定文档、出版物、文件或媒体中被记录、描述或证明。 + es: >- + Ser registrado, descrito o evidenciado dentro de un documento, publicación, + archivo o pieza de medios específicos. + structured_aliases: + - literal_form: gedocumenteerd in + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: dokumentiert in + predicate: EXACT_SYNONYM + in_language: de + - literal_form: documenté dans + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: موثق في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: didokumentasikan dalam + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 记录于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: documentado en + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + aliases: + - is_or_was_documented_in + exact_mappings: + - crm:P70i_is_documented_in # CIDOC:2799-2810 - "is documented in" with domain E1_CRM_Entity, range E31_Document + comments: + - | + **USAGE**: Use to link an entity to the document(s) where it is recorded + or described. The object should be a document, publication, or file reference. + - | + **MIGRATION**: Renamed 2026-02-03 from is_or_was_documented_in for conciseness. + - | + **NOTE**: Previous mapping to schema:documentation was removed as it is + specific to WebAPI documentation, not general documentation. + annotations: + custodian_types: '["*"]' + examples: + - value: "https://nde.nl/ontology/hc/Document/FindingAid123" + description: "Entity is documented in this finding aid" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/due_on.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/due_on.yaml new file mode 100644 index 0000000000..b6cf5cecf5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/due_on.yaml @@ -0,0 +1,99 @@ +# ============================================================================== +# LinkML Slot Definition: due_on +# ============================================================================== +# Date by which something is expected, scheduled, or required. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|---------------------------|---------------------|---------|----------------------------------------------| +# | **Schema.org**| `schema:paymentDueDate` | schemaorg:29368-29388| close | "The date that payment is due." (Invoice/Order domain) | +# +# NOTE: schema:paymentDueDate is specific to payments (domain Invoice/Order). +# Our slot is more general - applies to any deadline (loans, submissions, tasks). +# No exact standard mapping found for general "due date" concept. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/due_on +name: due_on +title: Due On + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + due_on: + slot_uri: hc:dueOn + description: >- + To be expected, scheduled, or required to be finished, paid, or returned + by a specific date or point in time. + alt_descriptions: + nl: >- + Verwacht, gepland of vereist om te worden afgerond, betaald of geretourneerd + op een specifieke datum of tijdstip. + de: >- + Erwartet, geplant oder erforderlich, bis zu einem bestimmten Datum oder + Zeitpunkt abgeschlossen, bezahlt oder zurückgegeben zu werden. + fr: >- + Être attendu, prévu ou requis pour être terminé, payé ou retourné à une + date ou un moment spécifique. + ar: >- + أن يكون متوقعًا أو مجدولًا أو مطلوبًا للانتهاء أو الدفع أو الإرجاع + في تاريخ أو وقت محدد. + id: >- + Diharapkan, dijadwalkan, atau diharuskan untuk diselesaikan, dibayar, + atau dikembalikan pada tanggal atau titik waktu tertentu. + zh: >- + 预计、计划或要求在特定日期或时间点完成、支付或归还。 + es: >- + Ser esperado, programado o requerido para ser terminado, pagado o devuelto + en una fecha o momento específico. + structured_aliases: + - literal_form: vervaldatum + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: fällig am + predicate: EXACT_SYNONYM + in_language: de + - literal_form: dû le + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مستحق في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: jatuh tempo pada + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 到期日 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: vence el + predicate: EXACT_SYNONYM + in_language: es + range: date + aliases: + - is_or_was_due_on + close_mappings: + - schema:paymentDueDate # schemaorg:29368-29388 - "The date that payment is due" (specific to payments) + comments: + - | + **USAGE**: Use for any deadline - loan return dates, submission deadlines, + task completion dates, or payment due dates. + - | + **CONTEXT**: In heritage institutions, commonly used for loan agreements, + conservation treatment deadlines, or exhibition scheduling. + annotations: + custodian_types: '["*"]' + examples: + - value: "2024-06-30" + description: "Loan item due to be returned by June 30, 2024" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/edited_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/edited_by.yaml new file mode 100644 index 0000000000..15885fd2c5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/edited_by.yaml @@ -0,0 +1,101 @@ +# ============================================================================== +# LinkML Slot Definition: edited_by +# ============================================================================== +# Agent responsible for revising, correcting, or preparing content for publication. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|-------------------------|---------|-------------------------------------------------| +# | **Schema.org**| `schema:editor` | schemaorg:16017-16038 | exact | "Specifies the Person who edited the CreativeWork." | +# +# NOTE: schema:editor (line 16017-16038) has domain CreativeWork and range Person. +# Our slot is broader (any agent, not just Person), so it's semantically close +# but the mapping is still valid as schema:editor is the standard property. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual, verified ontology mapping +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/edited_by +name: edited_by +title: Edited By + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + edited_by: + slot_uri: schema:editor + description: >- + To be revised, corrected, organized, or prepared for publication by a + specific agent responsible for the modification or curation of the content. + alt_descriptions: + nl: >- + Herzien, gecorrigeerd, georganiseerd of voorbereid voor publicatie door + een specifieke agent die verantwoordelijk is voor de wijziging of curatie + van de inhoud. + de: >- + Überarbeitet, korrigiert, organisiert oder zur Veröffentlichung vorbereitet + von einem bestimmten Akteur, der für die Änderung oder Kuratierung des + Inhalts verantwortlich ist. + fr: >- + Être révisé, corrigé, organisé ou préparé pour publication par un agent + spécifique responsable de la modification ou de la curation du contenu. + ar: >- + أن يتم مراجعته أو تصحيحه أو تنظيمه أو إعداده للنشر من قبل وكيل + محدد مسؤول عن تعديل أو تنظيم المحتوى. + id: >- + Direvisi, dikoreksi, diorganisir, atau disiapkan untuk publikasi oleh + agen tertentu yang bertanggung jawab atas modifikasi atau kurasi konten. + zh: >- + 由负责修改或策展内容的特定代理人进行修订、更正、组织或准备出版。 + es: >- + Ser revisado, corregido, organizado o preparado para publicación por un + agente específico responsable de la modificación o curaduría del contenido. + structured_aliases: + - literal_form: bewerkt door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: herausgegeben von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: édité par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: حرره + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diedit oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 编辑者 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: editado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + aliases: + - is_or_was_edited_by + exact_mappings: + - schema:editor # schemaorg:16017-16038 - "Specifies the Person who edited the CreativeWork" + comments: + - | + **USAGE**: Use to identify the person or organization that edited, revised, + or prepared content for publication. + - | + **NOTE**: Schema.org schema:editor has range Person, but our slot accepts + any agent (including organizations) to accommodate institutional editors. + annotations: + custodian_types: '["*"]' + examples: + - value: "https://nde.nl/ontology/hc/Person/JanJansen" + description: "Publication edited by Jan Jansen" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/effective_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/effective_at.yaml new file mode 100644 index 0000000000..2f1f655239 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/effective_at.yaml @@ -0,0 +1,103 @@ +# ============================================================================== +# LinkML Slot Definition: effective_at +# ============================================================================== +# Date/time when something becomes valid, operational, or enforceable. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|-------------------------|---------|-------------------------------------------------| +# | **Schema.org**| `schema:validFrom` | schemaorg:39363-39388 | close | "The date when the item becomes valid." | +# +# NOTE: schema:validFrom (line 39363-39388) means "The date when the item becomes +# valid" - semantically very close to "effective at". Domain includes Permit, +# Offer, Certification, etc. Our slot is broader (any effective date). +# +# dcterms:date was removed as it's too generic ("A point or period of time +# associated with an event in the lifecycle of the resource"). +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, full multilingual, refined ontology alignment +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/effective_at +name: effective_at +title: Effective At + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + effective_at: + slot_uri: hc:effectiveAt + description: >- + To become valid, operational, active, or enforceable starting from a + specific date or point in time. + alt_descriptions: + nl: >- + Geldig, operationeel, actief of afdwingbaar worden vanaf een specifieke + datum of tijdstip. + de: >- + Gültig, betriebsbereit, aktiv oder durchsetzbar werden ab einem bestimmten + Datum oder Zeitpunkt. + fr: >- + Devenir valide, opérationnel, actif ou exécutoire à partir d'une date + ou d'un moment spécifique. + ar: >- + أن يصبح صالحًا أو عملياً أو نشطًا أو قابلاً للتنفيذ اعتبارًا + من تاريخ أو وقت محدد. + id: >- + Menjadi valid, operasional, aktif, atau dapat diberlakukan mulai dari + tanggal atau titik waktu tertentu. + zh: >- + 从特定日期或时间点开始生效、运行、激活或可执行。 + es: >- + Volverse válido, operativo, activo o ejecutable a partir de una fecha + o momento específico. + structured_aliases: + - literal_form: effectief op + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: wirksam ab + predicate: EXACT_SYNONYM + in_language: de + - literal_form: effectif à + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: ساري المفعول في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: berlaku pada + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 生效日期 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: efectivo a partir de + predicate: EXACT_SYNONYM + in_language: es + range: datetime + multivalued: false + aliases: + - is_or_was_effective_at + close_mappings: + - schema:validFrom # schemaorg:39363-39388 - "The date when the item becomes valid" + comments: + - | + **USAGE**: Use for the date/time when a policy, agreement, regulation, + or status becomes effective or enforceable. + - | + **DISTINCTION**: Use schema:validFrom for permits, offers, or certifications + specifically. Use effective_at for broader institutional effective dates. + annotations: + custodian_types: '["*"]' + examples: + - value: "2024-01-01T00:00:00" + description: "Policy becomes effective on January 1, 2024" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/emphasize.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/emphasize.yaml new file mode 100644 index 0000000000..fab88b871c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/emphasize.yaml @@ -0,0 +1,169 @@ +# ============================================================================== +# LinkML Slot Definition: emphasize +# ============================================================================== +# Expresses special importance or prominence given to specific attributes, +# facts, or qualities. Used to highlight skills, proficiencies, or notable +# characteristics. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|------------------------|------------------------|---------|------------------------------------------------| +# | **SKOS** | `skos:related` | skos.rdf:296-310 | broad | Associative semantic relationship | +# | **Schema.org**| `schema:knowsAbout` | schemaorg.owl:23901-23904| close | Topic known about - suggests expertise | +# | **SKOS** | `skos:semanticRelation`| skos.rdf:252-264 | broad | Super-property for semantic relationships | +# | **SKOS** | `skos:relatedMatch` | skos.rdf:423-434 | narrow | Cross-scheme associative mapping | +# | **Schema.org**| `schema:skills` | schemaorg.owl:35567-35570| related| Skills needed for position/occupation | +# +# NOTE: skos:related is a symmetric property for associative relationships +# between concepts. For emphasis on skills/proficiencies, schema:knowsAbout +# and schema:skills provide more specific semantics. +# +# CREATED: 2026-01-25 - Migrated from digital_indicator +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/emphasize +name: emphasize +title: emphasize + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: https://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +description: | + To give special importance or prominence to a specific attribute or fact, particularly to highlight its value or significance. + +imports: + - linkml:types + +slots: + emphasize: + slot_uri: skos:related + description: | + To give special importance or prominence to a specific attribute or fact, particularly to highlight its value or significance. + alt_descriptions: + nl: >- + Bijzondere waarde of prominentie geven aan een specifiek kenmerk of feit, met name om de waarde of betekenis ervan te benadrukken. + de: >- + Einem bestimmten Attribut oder Fakt besondere Bedeutung oder Prominenz verleihen, insbesondere um seinen Wert oder seine Bedeutung hervorzuheben. + fr: >- + Donner une importance ou une proéminence particulière à un attribut ou un fait spécifique, notamment pour souligner sa valeur ou sa signification. + ar: >- + إعطاء أهمية أو بروز خاص لسمة أو حقيقة معينة، خاصة لإبراز قيمتها أو أهميتها. + id: >- + Memberikan kepentingan atau keunggulan khusus pada atribut atau fakta tertentu, terutama untuk menyoroti nilai atau signifikansinya. + zh: >- + 对特定属性或事实给予特别重视或突出,尤其是为了强调其价值或重要性。 + es: >- + Dar especial importancia o prominencia a un atributo o hecho específico, particularmente para resaltar su valor o significado. + structured_aliases: + - literal_form: benadrukken + - is_or_was_emphasize + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: betonen + predicate: EXACT_SYNONYM + in_language: de + - literal_form: souligner + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يُؤكّد + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: menekankan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 强调 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: enfatizar + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + required: false + multivalued: true + inlined: false + annotations: + custodian_types: '["*"]' + specificity_score: 0.55 + replaces_slots: digital_indicator + migration_date: '2026-01-25' + close_mappings: + # Schema.org knowsAbout - Topic that a Person/Organization knows about + # Suggests expertise but does not imply it + # Lines 23901-23904 in schemaorg.owl + - schema:knowsAbout + broad_mappings: + # SKOS semanticRelation - Super-property for all semantic relationships + # "Links a concept to a concept related by meaning" + # Lines 252-264 in skos.rdf + - skos:semanticRelation + # SKOS related - Associative semantic relationship between concepts + # Symmetric property: if A skos:related B, then B skos:related A + # Lines 296-310 in skos.rdf + - skos:related + narrow_mappings: + # SKOS relatedMatch - Associative mapping between concepts in different schemes + # subPropertyOf skos:related - more specific cross-scheme relationship + # Lines 423-434 in skos.rdf + - skos:relatedMatch + related_mappings: + # Schema.org skills - Skills needed for position or occupation + # Lines 35567-35570 in schemaorg.owl + - schema:skills + aliases: + - emphasizes_or_emphasized + - is_or_was_emphasize + examples: + - value: "hc:DigitalProficiency/python-programming" + description: Emphasizes Python programming proficiency + - value: "hc:DigitalProficiency/data-science" + description: Emphasizes Data Science proficiency + - value: "hc:Skill/collection-management" + description: Emphasizes collection management expertise + comments: + - Updated 2026-02-03 with verified ontology mappings and translations + - | + **PURPOSE**: Links entities to skills, qualities, or proficiencies that + are highlighted or given special importance. Used for documenting + emphasized competencies in professional contexts. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | SKOS | skos:related | 296 | exact | Associative relationship | + | Schema.org | schema:knowsAbout | 23901 | close | Topic expertise | + | SKOS | skos:semanticRelation | 252 | broad | Super-property | + | SKOS | skos:relatedMatch | 423 | narrow | Cross-scheme mapping | + | Schema.org | schema:skills | 35567 | related | Position skills | + - | + **TEMPORAL SEMANTICS** (RiC-O Pattern): + "emphasizesOrEmphasized" indicates the emphasis relationship may be + historical - emphasis may change over time (e.g., in a CV or profile). + - | + **USAGE PATTERN**: + Used to link professional assessments to specific proficiency indicators + found in source data (e.g., keywords in a LinkedIn profile that indicate + digital skills). + - | + **PATTERN**: + ``` + DigitalProfessionalAssessment + └── emphasizes_or_emphasized → DigitalProficiency + ├── has_or_had_label: "Python" + └── has_or_had_type: PROGRAMMING_LANGUAGE + ``` + - | + **MIGRATED FROM** (per slot_fixes.yaml): + - `digital_indicator` → emphasizes_or_emphasized + DigitalProficiency diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/employed_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/employed_by.yaml new file mode 100644 index 0000000000..64db1fc415 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/employed_by.yaml @@ -0,0 +1,103 @@ +# ============================================================================== +# LinkML Slot Definition: employed_by +# ============================================================================== +# Hired or engaged to work for a specific person or organization. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|-------------------------|---------|-------------------------------------------------| +# | **Schema.org**| `schema:worksFor` | schemaorg:40619-40640 | exact | "Organizations that the person works for." | +# | **W3C Org** | `org:memberOf` | org.rdf:743-758 | close | "Person is a member of the Organization." | +# +# NOTE: schema:worksFor (line 40619-40640) has domain Person and range Organization. +# This is semantically exact for "employed by". org:memberOf is broader (includes +# membership, affiliation, volunteering - not just employment). +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual, verified ontology mapping +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/employed_by +name: employed_by +title: Employed By + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + org: http://www.w3.org/ns/org# + +default_prefix: hc + +imports: + - linkml:types + +slots: + employed_by: + slot_uri: schema:worksFor + description: >- + To be hired, engaged, or contracted to work for a specific person or + organization in exchange for wages or a salary. + alt_descriptions: + nl: >- + In dienst genomen, geëngageerd of gecontracteerd om te werken voor een + specifieke persoon of organisatie in ruil voor loon of salaris. + de: >- + Angestellt, engagiert oder vertraglich verpflichtet, für eine bestimmte + Person oder Organisation gegen Lohn oder Gehalt zu arbeiten. + fr: >- + Être embauché, engagé ou sous contrat pour travailler pour une personne + ou une organisation spécifique en échange d'un salaire. + ar: >- + أن يتم توظيفه أو الاستعانة به أو التعاقد معه للعمل لدى شخص + أو منظمة محددة مقابل أجر أو راتب. + id: >- + Dipekerjakan, dilibatkan, atau dikontrak untuk bekerja untuk orang atau + organisasi tertentu dengan imbalan upah atau gaji. + zh: >- + 被雇用、聘用或签约为特定人员或组织工作,以换取工资或薪水。 + es: >- + Ser contratado, empleado o comprometido para trabajar para una persona + u organización específica a cambio de un salario. + structured_aliases: + - literal_form: in dienst bij + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: beschäftigt bei + predicate: EXACT_SYNONYM + in_language: de + - literal_form: employé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: موظف لدى + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dipekerjakan oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 受雇于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: empleado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + aliases: + - is_or_was_employed_by + exact_mappings: + - schema:worksFor # schemaorg:40619-40640 - "Organizations that the person works for" + close_mappings: + - org:memberOf # org.rdf:743-758 - broader (membership includes employment) + comments: + - | + **USAGE**: Use to indicate the employer organization for a person. + The subject is the employee, the object is the employing organization. + - | + **DISTINCTION**: Use org:memberOf for general membership/affiliation + that may not involve formal employment (e.g., board membership, volunteering). + annotations: + custodian_types: '["*"]' + examples: + - value: "https://nde.nl/ontology/hc/Organization/Rijksmuseum" + description: "Person employed by the Rijksmuseum" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/encompassed_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/encompassed_by.yaml new file mode 100644 index 0000000000..44243d7df6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/encompassed_by.yaml @@ -0,0 +1,108 @@ +# ============================================================================== +# LinkML Slot Definition: encompassed_by +# ============================================================================== +# Surrounded, enclosed, or included within a larger entity or concept. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|---------------------------|---------------------|---------|----------------------------------------------| +# | **Schema.org**| `schema:containedInPlace` | schemaorg:12688-12710| close | "Containment relation between places." | +# | **CIDOC-CRM** | `crm:P89_falls_within` | CIDOC:3090-3104 | close | "Place that falls wholly within another." | +# +# NOTE: schema:containedInPlace (line 12688-12710) is "The basic containment +# relation between a place and one that contains it" - domain/range is Place. +# crm:P89_falls_within (line 3090-3104) is "instance of E53 Place that falls +# wholly within the extent of another instance of E53 Place". +# +# Our slot is MORE ABSTRACT - applies to concepts, scopes, bounds - not just +# physical places. No exact standard mapping exists for this broader concept. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/encompassed_by +name: encompassed_by +title: Encompassed By + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + encompassed_by: + slot_uri: hc:encompassedBy + description: >- + To be surrounded, enclosed, or comprehensively included within the scope, + bounds, or limits of a larger entity or concept. + alt_descriptions: + nl: >- + Omgeven, ingesloten of volledig opgenomen binnen het bereik, de grenzen + of de limieten van een grotere entiteit of concept. + de: >- + Umgeben, eingeschlossen oder umfassend innerhalb des Geltungsbereichs, + der Grenzen oder Limits einer größeren Entität oder eines Konzepts + eingeschlossen sein. + fr: >- + Être entouré, enfermé ou inclus de manière complète dans la portée, + les limites ou les bornes d'une entité ou d'un concept plus grand. + ar: >- + أن يكون محاطًا أو مغلقًا أو مشمولاً بشكل شامل ضمن نطاق + أو حدود كيان أو مفهوم أكبر. + id: >- + Dikelilingi, tertutup, atau tercakup secara komprehensif dalam ruang + lingkup, batas, atau batasan entitas atau konsep yang lebih besar. + zh: >- + 被包围、封闭或全面包含在更大实体或概念的范围、界限或限制之内。 + es: >- + Estar rodeado, encerrado o incluido de manera integral dentro del + alcance, límites o fronteras de una entidad o concepto más grande. + structured_aliases: + - literal_form: omvat door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: umfasst von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: englobé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: محاط بـ + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dicakup oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 被包含于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: abarcado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + aliases: + - is_or_was_encompassed_by + close_mappings: + - schema:containedInPlace # schemaorg:12688-12710 - "containment relation between a place and one that contains it" (spatial only) + - crm:P89_falls_within # CIDOC:3090-3104 - "E53 Place that falls wholly within another" (places only) + comments: + - | + **USAGE**: Use for abstract containment relationships - concepts within + broader concepts, jurisdictions within larger jurisdictions, or scopes + within broader scopes. + - | + **DISTINCTION**: For purely spatial/geographic containment of places, + prefer schema:containedInPlace or crm:P89_falls_within. + annotations: + custodian_types: '["*"]' + examples: + - value: "https://nde.nl/ontology/hc/Concept/DutchHeritage" + description: "This collection scope is encompassed by the broader Dutch heritage domain" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/end_of_the_begin.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/end_of_the_begin.yaml new file mode 100644 index 0000000000..ca56b51106 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/end_of_the_begin.yaml @@ -0,0 +1,138 @@ +# ============================================================================== +# LinkML Slot Definition: end_of_the_begin +# ============================================================================== +# Latest possible start time of a temporal extent (CIDOC-CRM E52_Time-Span pattern). +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|----------------------------|---------------------|----------|------------------------------------------| +# | **CIDOC-CRM** | `crm:P81a_end_of_the_begin`| CIDOC_CRM:3008-3018 | close | "end of the begin" - latest possible | +# | | | | | start time. Domain: E52_Time-Span | +# | | | | | Range: rdfs:Literal (DatatypeProperty) | +# | **CIDOC-CRM** | `crm:P81_ongoing_throughout`| CIDOC_CRM:2996 | broad | Parent property (P81a subPropertyOf P81).| +# | **PROV-O** | `prov:startedAtTime` | prov.ttl:1018-1028 | related | "The time at which an activity started." | +# | | | | | Range: xsd:dateTime | +# +# CIDOC-CRM FUZZY DATE PATTERN: +# P81a defines the latest possible time the time span could have started. +# Used with P82a (begin_of_the_begin) to express uncertainty about start time. +# +# Example: "Founded between 1800-1805" +# - begin_of_the_begin: 1800-01-01 (earliest possible founding) +# - end_of_the_begin: 1805-12-31 (latest possible founding) +# +# SLOT_URI NOTE: +# Uses hc:endOfTheBegin (ObjectProperty) instead of crm:P81a (DatatypeProperty) +# to support Timestamp class range for structured temporal data. +# +# CREATED: 2026-01-15 +# UPDATED: 2026-02-03 - Added broad_mappings (P81a subPropertyOf P81) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/end_of_the_begin +name: end_of_the_begin +title: end of the begin + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + prov: http://www.w3.org/ns/prov# + +imports: + - linkml:types + +default_prefix: hc + +slots: + end_of_the_begin: + slot_uri: hc:endOfTheBegin + description: >- + To indicate the latest possible start time of temporal extent (CIDOC-CRM E52_Time-Span). + alt_descriptions: + nl: >- + Het aangeven van de laatst mogelijke starttijd van een temporele omvang (CIDOC-CRM E52_Time-Span). + de: >- + Angabe der spätestmöglichen Startzeit einer zeitlichen Ausdehnung (CIDOC-CRM E52_Time-Span). + fr: >- + Indiquer le moment de début le plus tardif possible d'une étendue temporelle (CIDOC-CRM E52_Time-Span). + ar: >- + للإشارة إلى أحدث وقت بداية ممكن للنطاق الزمني (CIDOC-CRM E52_Time-Span). + id: >- + Untuk menunjukkan waktu mulai terbaru yang mungkin dari rentang temporal (CIDOC-CRM E52_Time-Span). + zh: >- + 指示时间范围的最晚可能开始时间(CIDOC-CRM E52_Time-Span)。 + es: >- + Indicar el momento de inicio más tardío posible de una extensión temporal (CIDOC-CRM E52_Time-Span). + range: string + any_of: + - range: Timestamp + - range: string + - range: datetime + inlined: false + required: false + multivalued: false + close_mappings: + - crm:P81a_end_of_the_begin + broad_mappings: + - crm:P81_ongoing_throughout # CIDOC-CRM: Parent property (P81a rdfs:subPropertyOf P81, line 3017) + related_mappings: + - prov:startedAtTime + aliases: + - latest_start + - end_of_begin + - is_or_was_end_of_the_begin + structured_aliases: + - literal_form: einde van het begin + - is_or_was_end_of_the_begin + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Ende des Anfangs + predicate: EXACT_SYNONYM + in_language: de + - literal_form: fin du début + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: نهاية البداية + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: akhir dari awal + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 开始的结束 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: fin del inicio + predicate: EXACT_SYNONYM + in_language: es + examples: + - value: | + timestamp_value: "1805-12-31" + timestamp_precision: day + description: Latest possible founding date + - value: "1945-05-08" + description: Latest possible start as ISO 8601 string + annotations: + migration_date: '2026-01-15' + owl_note: Uses hc:endOfTheBegin (ObjectProperty) instead of crm:P81a (DatatypeProperty) to match Timestamp class range + custodian_types: '["*"]' + comments: + - | + **CIDOC-CRM Pattern**: + P81a defines the latest possible time the time span could have started. + Used with P82a (begin_of_the_begin) to express uncertainty about start time. + - | + **Example**: "Founded between 1800-1805" + - begin_of_the_begin: 1800-01-01 (earliest possible founding) + - end_of_the_begin: 1805-12-31 (latest possible founding) + - | + **Range**: Supports Timestamp class, ISO 8601 strings, and datetime values. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **CIDOC-CRM** | `crm:P81a_end_of_the_begin` | 3008-3018 | close | Latest possible start time | + | **CIDOC-CRM** | `crm:P81_ongoing_throughout` | 2996 | broad | Parent (P81a subPropertyOf P81) | + | **PROV-O** | `prov:startedAtTime` | 1018-1028 | related | Activity start time | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/end_of_the_end.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/end_of_the_end.yaml new file mode 100644 index 0000000000..ef526d6485 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/end_of_the_end.yaml @@ -0,0 +1,156 @@ +# ============================================================================== +# LinkML Slot Definition: end_of_the_end +# ============================================================================== +# Latest possible end time of a temporal extent (CIDOC-CRM E52_Time-Span pattern). +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|----------------------------|---------------------|----------|------------------------------------------| +# | **OWL Time** | `time:hasEnd` | time.ttl:768-776 | slot_uri | "End of a temporal entity." | +# | | | | | Domain: TemporalEntity, Range: Instant | +# | **CIDOC-CRM** | `crm:P82b_end_of_the_end` | CIDOC_CRM:3053-3063 | close | "end of the end" - latest possible | +# | | | | | end time. Domain: E52_Time-Span | +# | | | | | Range: rdfs:Literal (DatatypeProperty) | +# | **CIDOC-CRM** | `crm:P82_at_some_time_within`| CIDOC_CRM:3030 | broad | Parent of P82b (P82b subPropertyOf P82). | +# | **PROV-O** | `prov:endedAtTime` | prov.ttl:555-565 | related | "The time at which an activity ended." | +# | | | | | Range: xsd:dateTime | +# | **Schema.org** | `schema:endDate` | schemaorg.owl | narrow | End date of an event/period | +# +# CIDOC-CRM FUZZY DATE PATTERN: +# P82b defines the latest possible time the time span could have ended. +# Used with P81b (begin_of_the_end) to express uncertainty about end time. +# +# Example: "Closed between 1950-1955" +# - begin_of_the_end: 1950-01-01 (earliest possible closure) +# - end_of_the_end: 1955-12-31 (latest possible closure) +# +# SLOT_URI NOTE: +# Uses time:hasEnd (ObjectProperty) to align with OWL Time ontology +# while supporting Timestamp class range for structured temporal data. +# +# CREATED: 2026-01-15 +# UPDATED: 2026-02-03 - Added broad: crm:P82_at_some_time_within (parent of P82b) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/end_of_the_end +name: end_of_the_end +title: end of the end + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + time: http://www.w3.org/2006/time# + crm: http://www.cidoc-crm.org/cidoc-crm/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + +imports: + - linkml:types + +default_prefix: hc + +slots: + end_of_the_end: + slot_uri: time:hasEnd + description: >- + To indicate the latest possible end time of temporal extent (CIDOC-CRM E52_Time-Span). + alt_descriptions: + nl: >- + Het aangeven van de laatst mogelijke eindtijd van een temporele omvang (CIDOC-CRM E52_Time-Span). + de: >- + Angabe der spätestmöglichen Endzeit einer zeitlichen Ausdehnung (CIDOC-CRM E52_Time-Span). + fr: >- + Indiquer le moment de fin le plus tardif possible d'une étendue temporelle (CIDOC-CRM E52_Time-Span). + ar: >- + للإشارة إلى أحدث وقت انتهاء ممكن للنطاق الزمني (CIDOC-CRM E52_Time-Span). + id: >- + Untuk menunjukkan waktu akhir terbaru yang mungkin dari rentang temporal (CIDOC-CRM E52_Time-Span). + zh: >- + 指示时间范围的最晚可能结束时间(CIDOC-CRM E52_Time-Span)。 + es: >- + Indicar el momento de finalización más tardío posible de una extensión temporal (CIDOC-CRM E52_Time-Span). + range: string + any_of: + - range: Timestamp + - range: string + - range: datetime + inlined: false + required: false + multivalued: false + close_mappings: + - crm:P82b_end_of_the_end + broad_mappings: + - crm:P82_at_some_time_within # CIDOC-CRM: Parent property (P82b rdfs:subPropertyOf P82, line 3062) + related_mappings: + - prov:endedAtTime + narrow_mappings: + - schema:endDate + aliases: + - latest_end + - end_of_end + - is_or_was_end_of_the_end + - end_time + - is_or_was_end_time + - chapter_end_time + - is_or_was_end + structured_aliases: + - literal_form: einde van het einde + - is_or_was_end_of_the_end + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Ende vom Ende + predicate: EXACT_SYNONYM + in_language: de + - literal_form: fin de la fin + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: نهاية النهاية + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: akhir dari akhir + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 结束的结束 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: fin del fin + predicate: EXACT_SYNONYM + in_language: es + examples: + - value: | + timestamp_value: "1955-12-31" + timestamp_precision: day + description: Latest possible closure date + - value: "2020-03-31" + description: Latest possible end as ISO 8601 string + annotations: + slot_fixes_compliance: Range changed from datetime to Timestamp class per slot_fixes.yaml + migration_date: '2026-01-15' + replaces_slots: valid_to, valid_to_geo + owl_note: Uses time:hasEnd (ObjectProperty) instead of crm:P82b (DatatypeProperty) to match Timestamp class range + custodian_types: '["*"]' + comments: + - | + **CIDOC-CRM Pattern**: + P82b defines the latest possible time the time span could have ended. + Used with P81b (begin_of_the_end) to express uncertainty about end time. + - | + **Example**: "Closed between 1950-1955" + - begin_of_the_end: 1950-01-01 (earliest possible closure) + - end_of_the_end: 1955-12-31 (latest possible closure) + - | + **Range**: Supports Timestamp class, ISO 8601 strings, and datetime values. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **OWL Time** | `time:hasEnd` | 768-776 | slot_uri | End of a temporal entity | + | **CIDOC-CRM** | `crm:P82b_end_of_the_end` | 3053-3063 | close | Latest possible end time | + | **CIDOC-CRM** | `crm:P82_at_some_time_within` | 3030 | broad | Parent (P82b subPropertyOf P82) | + | **PROV-O** | `prov:endedAtTime` | 555-565 | related | Activity end time | + | **Schema.org** | `schema:endDate` | - | narrow | End date of event/period | + - | + Can also be epxressed in ISO 8601 duration format (e.g. PT5M). + Generic slot for media/temporal segments. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/equivalent_to.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/equivalent_to.yaml new file mode 100644 index 0000000000..9dfa259dbb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/equivalent_to.yaml @@ -0,0 +1,68 @@ +# ============================================================================== +# LinkML Slot Definition: equivalent_to +# ============================================================================== +# Semantic equivalence with another entity (typically Wikidata). +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|-------------------|---------|----------------------------------| +# | **SKOS** | `skos:exactMatch` | exact | SKOS exact match | +# | **OWL** | `owl:sameAs` | related | OWL identity (stronger claim) | +# | **Schema.org**| `schema:sameAs` | related | Schema.org identity | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/equivalent_to +name: equivalent_to +title: Equivalent To +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + owl: http://www.w3.org/2002/07/owl# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Semantic equivalence with another entity (typically Wikidata). +imports: +- linkml:types +slots: + equivalent_to: + slot_uri: hc:equivalentTo + description: | + Semantic equivalence with another entity (typically Wikidata). + + **Distinction from related_to**: + - `equivalent_to`: Semantic identity (same concept) + - `related_to`: Associative (related but distinct) + + **Use Case**: + Links a heritage custodian type or concept to its Wikidata equivalent. + Example: Our "Museum" type is equivalent to Wikidata Q33506. + range: string + implements: + - owl:ObjectProperty + required: false + multivalued: true + exact_mappings: + - skos:exactMatch + related_mappings: + - owl:sameAs + - schema:sameAs + aliases: + - is_or_was_equivalent_to + - wikidata_equivalent + annotations: + custodian_types: '["*"]' + specificity_score: 0.25 + examples: + - value: Q33506 + description: Wikidata equivalence for museum concept + - value: Q166118 + description: Wikidata equivalence for archive concept diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/established_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/established_by.yaml new file mode 100644 index 0000000000..bf8e01d03a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/established_by.yaml @@ -0,0 +1,95 @@ +# ============================================================================== +# LinkML Slot Definition: established_by +# ============================================================================== +# Links an entity to the agent who founded or established it. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|------------------|------------------------|---------|--------------------------------------| +# | **Schema.org** | `schema:founder` | schemaorg.owl:18389-11 | close | "A person or organization who | +# | | | | | founded this organization" - inverse | +# | | | | | direction (founder vs established by)| +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support, ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/established_by +name: established_by +title: Established By +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + established_by: + slot_uri: hc:establishedBy + description: >- + To be founded, set up, instituted, or brought into existence on a + permanent basis by a specific agent or organization. + alt_descriptions: + nl: >- + Opgericht, ingesteld, geïnstitutionaliseerd of op permanente basis + in het leven geroepen door een specifieke agent of organisatie. + de: >- + Von einem bestimmten Agenten oder einer Organisation gegründet, + eingerichtet, institutionalisiert oder auf dauerhafter Basis ins + Leben gerufen zu werden. + fr: >- + Être fondé, établi, institué ou créé sur une base permanente par + un agent ou une organisation spécifique. + ar: >- + أن يتم تأسيسه أو إنشاؤه أو إقامته أو إيجاده على أساس دائم من قبل + وكيل أو منظمة محددة. + id: >- + Didirikan, dibentuk, dilembagakan, atau diwujudkan secara permanen + oleh agen atau organisasi tertentu. + zh: >- + 由特定代理或组织创立、设立、建立或永久性地创建。 + es: >- + Ser fundado, establecido, instituido o creado de forma permanente + por un agente u organización específica. + structured_aliases: + - literal_form: opgericht door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: gegründet von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: établi par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: أسسه + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: didirikan oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 由...创立 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: establecido por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + close_mappings: + - schema:founder # schemaorg.owl:18389-18411 - inverse direction (founder vs established by) + aliases: + - is_or_was_established_by + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot to link institutions, organizations, or + collections to the agent (person or organization) that founded them. + - | + **MAPPING NOTE**: `schema:founder` is the inverse relationship - it + links an organization TO its founder, while this slot links FROM an + entity TO the agent that established it. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/exclude.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/exclude.yaml new file mode 100644 index 0000000000..4bd2dfb017 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/exclude.yaml @@ -0,0 +1,101 @@ +# ============================================================================== +# LinkML Slot Definition: exclude +# ============================================================================== +# To deliberately omit, debar, or prevent an entity from being included in a +# specific group, list, or scope of consideration. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | (none) | N/A | N/A | N/A | No standard ontology mapping found | +# +# NOTE: No standard ontology properties for exclusion semantics were found. +# This is a custom Heritage Custodian property (hc:exclude). +# +# CREATED: 2026-01-20 +# UPDATED: 2026-02-03 - Added header documentation +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/exclude +name: exclude +title: Exclude +description: | + To deliberately omit, debar, or prevent an entity from being included in a specific group, list, or scope of consideration. +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + exclude: + description: >- + To deliberately omit, debar, or prevent an entity from being included + in a specific group, list, or scope of consideration. + alt_descriptions: + nl: >- + Om een entiteit opzettelijk weg te laten, uit te sluiten of te + voorkomen dat deze wordt opgenomen in een specifieke groep, lijst of + reikwijdte van overweging. + de: >- + Eine Entität absichtlich auszulassen, auszuschließen oder zu + verhindern, dass sie in eine bestimmte Gruppe, Liste oder einen + Betrachtungsbereich aufgenommen wird. + fr: >- + Pour omettre, exclure ou empêcher délibérément une entité d'être + incluse dans un groupe, une liste ou un champ de considération + spécifique. + ar: >- + لحذف أو منع أو استبعاد كيان عمداً من أن يتم تضمينه في مجموعة أو + قائمة أو نطاق اعتبار محدد. + id: >- + Untuk sengaja menghilangkan, menghalangi, atau mencegah suatu entitas + dimasukkan dalam kelompok, daftar, atau ruang lingkup pertimbangan + tertentu. + zh: >- + 故意省略、排除或阻止某实体被包含在特定群组、列表或考虑范围内。 + es: >- + Para omitir, excluir o impedir deliberadamente que una entidad sea + incluida en un grupo, lista o ámbito de consideración específico. + structured_aliases: + - literal_form: uitsluiten + - is_or_was_exclude + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: ausschließen + predicate: EXACT_SYNONYM + in_language: de + - literal_form: exclure + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: استبعاد + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mengecualikan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 排除 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: excluir + predicate: EXACT_SYNONYM + in_language: es + # range: Any + multivalued: true + # inlined: true # CANNOT inline string + annotations: + custodian_types: '["*"]' + aliases: + - excludes_or_excluded + - is_or_was_exclude + comments: + - MIGRATED from excluded_materials per slot_fixes.yaml (Rule 53). diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/exhibit.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/exhibit.yaml new file mode 100644 index 0000000000..04a20a8558 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/exhibit.yaml @@ -0,0 +1,107 @@ +# ============================================================================== +# LinkML Slot Definition: exhibit +# ============================================================================== +# To publicly display or present an object, artifact, or collection, typically +# within a museum or gallery setting, for the purpose of education, appreciation, +# or study. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|---------------------------|-------------------------|---------|---------------------------------------------| +# | **Schema.org**| `schema:workFeatured` | schemaorg.owl:40459-526 | exact | "Work featured in some event." | +# | **Schema.org**| `schema:workPerformed` | schemaorg.owl:40527-549 | narrow | subPropertyOf workFeatured (play in event) | +# | **Schema.org**| `schema:workPresented` | schemaorg.owl:40550-570 | narrow | subPropertyOf workFeatured (movie shown) | +# +# CREATED: 2026-01-14 +# UPDATED: 2026-02-03 - Added narrow_mappings from Schema.org hierarchy +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/exhibit +name: exhibit +title: exhibit +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + exhibit: + name: exhibit + title: exhibit + description: >- + To publicly display or present an object, artifact, or collection, + typically within a museum or gallery setting, for the purpose of + education, appreciation, or study. + alt_descriptions: + nl: >- + Om een object, artefact of collectie publiekelijk tentoon te stellen + of te presenteren, meestal in een museum of galerie, met het doel van + educatie, waardering of studie. + de: >- + Ein Objekt, Artefakt oder eine Sammlung öffentlich auszustellen oder + zu präsentieren, typischerweise in einem Museum oder einer Galerie, + zum Zweck der Bildung, Wertschätzung oder des Studiums. + fr: >- + Pour exposer ou présenter publiquement un objet, un artefact ou une + collection, généralement dans un musée ou une galerie, à des fins + d'éducation, d'appréciation ou d'étude. + ar: >- + لعرض أو تقديم جسم أو قطعة أثرية أو مجموعة علنياً، عادةً في متحف أو + معرض، بغرض التعليم أو التقدير أو الدراسة. + id: >- + Untuk menampilkan atau mempresentasikan secara publik suatu objek, + artefak, atau koleksi, biasanya dalam museum atau galeri, untuk + tujuan pendidikan, apresiasi, atau studi. + zh: >- + 公开展示或呈现物品、文物或收藏品,通常在博物馆或画廊环境中,以教育、欣赏或研究为目的。 + es: >- + Para exhibir o presentar públicamente un objeto, artefacto o + colección, típicamente en un museo o galería, con fines de educación, + apreciación o estudio. + structured_aliases: + - literal_form: tentoonstellen + - is_or_was_exhibit + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: ausstellen + predicate: EXACT_SYNONYM + in_language: de + - literal_form: exposer + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: عرض + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memamerkan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 展览 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: exhibir + predicate: EXACT_SYNONYM + in_language: es + slot_uri: schema:workFeatured + range: string # uriorcurie + # range: FeaturedObject + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:workFeatured # schemaorg.owl:40459-526 - work featured in some event + narrow_mappings: + - schema:workPerformed # schemaorg.owl:40527-549 - subPropertyOf workFeatured (play in event) + - schema:workPresented # schemaorg.owl:40550-570 - subPropertyOf workFeatured (movie shown) + aliases: + - exhibits_or_exhibited + - is_or_was_exhibit diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/exhibited_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/exhibited_at.yaml new file mode 100644 index 0000000000..d49c1dc731 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/exhibited_at.yaml @@ -0,0 +1,99 @@ +# ============================================================================== +# LinkML Slot Definition: exhibited_at +# ============================================================================== +# Links an object to the venue where it was/is exhibited. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|--------------------|-----------|---------|-----------------------------------------| +# | **Schema.org** | `schema:location` | N/A | related | General location, not exhibition-specific| +# | **CIDOC-CRM** | `crm:P12_occurred_in_the_presence_of` | N/A | related | Event participation context | +# +# No exact standard mapping exists for exhibition venue relationships. +# This is a GLAM domain-specific property. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/exhibited_at +name: exhibited_at +title: Exhibited At +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + exhibited_at: + slot_uri: hc:exhibitedAt + description: >- + To be displayed, shown, or presented to the public at a specific venue, + location, or event. + alt_descriptions: + nl: >- + Tentoongesteld, getoond of gepresenteerd aan het publiek op een + specifieke locatie, plaats of evenement. + de: >- + An einem bestimmten Veranstaltungsort, Ort oder bei einer Veranstaltung + öffentlich ausgestellt, gezeigt oder präsentiert zu werden. + fr: >- + Être exposé, montré ou présenté au public dans un lieu, un + emplacement ou un événement spécifique. + ar: >- + أن يتم عرضه أو إظهاره أو تقديمه للجمهور في مكان أو موقع أو + حدث محدد. + id: >- + Dipamerkan, ditampilkan, atau dipresentasikan kepada publik di + tempat, lokasi, atau acara tertentu. + zh: >- + 在特定场馆、地点或活动中向公众展示、展出或呈现。 + es: >- + Ser exhibido, mostrado o presentado al público en un lugar, + ubicación o evento específico. + structured_aliases: + - literal_form: tentoongesteld in + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: ausgestellt in + predicate: EXACT_SYNONYM + in_language: de + - literal_form: exposé à + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: معروض في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dipamerkan di + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 展出于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: exhibido en + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + related_mappings: + - schema:location + aliases: + - is_or_was_exhibited_at + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot to link collection objects, artworks, or + artifacts to the museums, galleries, or events where they have been + or are currently exhibited. + - | + **GLAM DOMAIN**: This is a domain-specific property for the heritage + sector. No exact standard ontology mapping exists for exhibition + venue relationships. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/expired_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/expired_at.yaml new file mode 100644 index 0000000000..99554c5793 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/expired_at.yaml @@ -0,0 +1,96 @@ +# ============================================================================== +# LinkML Slot Definition: expired_at +# ============================================================================== +# The date/time when an entity ceased to be valid or effective. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|---------------------------|------------------------|---------|------------------------------------| +# | **Schema.org** | `schema:expires` | schemaorg.owl:17832-52 | exact | "Date the content expires and is | +# | | | | | no longer useful or available" | +# | **PROV-O** | `prov:invalidatedAtTime` | prov.ttl:743-753 | close | Time of invalidation (broader) | +# | **DC Terms** | `dcterms:valid` | dcterms.ttl:11116-75 | related | Date range of validity | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Updated slot_uri to schema:expires (exact match), added multilingual +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/expired_at +name: expired_at +title: Expired At +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + expired_at: + slot_uri: schema:expires + description: >- + To cease to be valid, effective, or active at a specific date or + point in time. + alt_descriptions: + nl: >- + Ophouden geldig, effectief of actief te zijn op een specifieke + datum of tijdstip. + de: >- + An einem bestimmten Datum oder Zeitpunkt aufhören, gültig, wirksam + oder aktiv zu sein. + fr: >- + Cesser d'être valide, effectif ou actif à une date ou un moment + spécifique. + ar: >- + أن ينتهي كونه صالحًا أو فعالًا أو نشطًا في تاريخ أو وقت محدد. + id: >- + Berhenti menjadi valid, efektif, atau aktif pada tanggal atau + titik waktu tertentu. + zh: >- + 在特定日期或时间点停止有效、生效或活跃。 + es: >- + Dejar de ser válido, efectivo o activo en una fecha o momento + específico. + structured_aliases: + - literal_form: verlopen op + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: abgelaufen am + predicate: EXACT_SYNONYM + in_language: de + - literal_form: expiré le + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: انتهى في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: kedaluwarsa pada + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 过期于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: expirado el + predicate: EXACT_SYNONYM + in_language: es + range: datetime + exact_mappings: + - schema:expires # schemaorg.owl:17832-17852 - "Date the content expires and is no longer useful or available" + close_mappings: + - prov:invalidatedAtTime # prov.ttl:743-753 - Time of invalidation + related_mappings: + - dcterms:valid # dcterms.ttl:11116-11175 - Date range of validity + aliases: + - is_or_was_expired_at + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot to indicate when memberships, certifications, + licenses, subscriptions, or other time-limited entities expire. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/exposed_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/exposed_through.yaml new file mode 100644 index 0000000000..1b24467da0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/exposed_through.yaml @@ -0,0 +1,104 @@ +# ============================================================================== +# LinkML Slot Definition: exposed_through +# ============================================================================== +# Links an entity to the channel or platform through which it is published. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|-----------------------|------------------------|---------|--------------------------------------| +# | **Schema.org** | `schema:distribution` | schemaorg.owl:15369-90 | close | "A downloadable form of this dataset"| +# | | | | | - specific to datasets | +# | **DCAT** | `dcat:accessURL` | dcat3.ttl:543-600 | close | URL providing access to distribution | +# | **DCAT** | `dcat:endpointURL` | dcat3.ttl:1008-1032 | close | Root location of service endpoint | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description, added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/exposed_through +name: exposed_through +title: Exposed Through +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcat: http://www.w3.org/ns/dcat# + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + exposed_through: + slot_uri: hc:exposedThrough + description: >- + To be made accessible, visible, or published through a specific channel, + medium, interface, or mechanism. + alt_descriptions: + nl: >- + Toegankelijk, zichtbaar of gepubliceerd gemaakt via een specifiek + kanaal, medium, interface of mechanisme. + de: >- + Über einen bestimmten Kanal, ein Medium, eine Schnittstelle oder + einen Mechanismus zugänglich, sichtbar oder veröffentlicht gemacht + zu werden. + fr: >- + Être rendu accessible, visible ou publié via un canal, un média, + une interface ou un mécanisme spécifique. + ar: >- + أن يتم جعله متاحًا أو مرئيًا أو منشورًا من خلال قناة أو وسيط + أو واجهة أو آلية محددة. + id: >- + Dibuat dapat diakses, terlihat, atau dipublikasikan melalui saluran, + media, antarmuka, atau mekanisme tertentu. + zh: >- + 通过特定渠道、媒介、接口或机制使其可访问、可见或已发布。 + es: >- + Ser hecho accesible, visible o publicado a través de un canal, + medio, interfaz o mecanismo específico. + structured_aliases: + - literal_form: ontsloten via + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: bereitgestellt über + predicate: EXACT_SYNONYM + in_language: de + - literal_form: exposé via + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: متاح عبر + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diekspos melalui + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 通过...公开 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: expuesto a través de + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + close_mappings: + - schema:distribution # schemaorg.owl:15369-15390 - specific to datasets + - dcat:accessURL # dcat3.ttl:543-600 - URL providing access + - dcat:endpointURL # dcat3.ttl:1008-1032 - Service endpoint URL + aliases: + - is_or_was_exposed_via + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot to indicate the platform, portal, API endpoint, + or channel through which an entity (such as a collection or dataset) + is made accessible to users. + - | + **MIGRATION NOTE (2026-02-03)**: Renamed from `is_or_was_exposed_via` + for conciseness. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/extended.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/extended.yaml new file mode 100644 index 0000000000..0bcb48a825 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/extended.yaml @@ -0,0 +1,88 @@ +# ============================================================================== +# LinkML Slot Definition: extended +# ============================================================================== +# Indicates whether something was prolonged, expanded, or lengthened beyond original limits. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------|----------------------|---------|----------------------------------| +# | (none found) | - | - | - | GLAM domain-specific boolean | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/extended +name: extended +title: Extended + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + extended: + slot_uri: hc:extended + description: >- + Whether something has been prolonged in duration, expanded in scope, or physically + lengthened beyond its original limits or scheduled conclusion. + alt_descriptions: + nl: >- + Of iets is verlengd in duur, uitgebreid in omvang, of fysiek verlengd voorbij de + oorspronkelijke grenzen of geplande afsluiting. + de: >- + Ob etwas in der Dauer verlängert, im Umfang erweitert oder physisch über seine + ursprünglichen Grenzen oder den geplanten Abschluss hinaus verlängert wurde. + fr: >- + Si quelque chose a été prolongé dans la durée, élargi dans sa portée, ou + physiquement allongé au-delà de ses limites originales ou de sa conclusion prévue. + ar: >- + ما إذا كان شيء ما قد تم تمديده في المدة أو توسيعه في النطاق أو إطالته فعلياً + بما يتجاوز حدوده الأصلية أو نهايته المقررة. + id: >- + Apakah sesuatu telah diperpanjang durasinya, diperluas cakupannya, atau secara + fisik diperpanjang melampaui batas aslinya atau kesimpulan yang dijadwalkan. + zh: >- + 某事物是否在持续时间上延长、在范围上扩大,或在物理上延伸超出其原始限制或预定的结束时间。 + es: >- + Si algo ha sido prolongado en duración, ampliado en alcance, o físicamente + extendido más allá de sus límites originales o conclusión programada. + structured_aliases: + - literal_form: verlengd + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: erweitert + predicate: EXACT_SYNONYM + in_language: de + - literal_form: prolongé + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: ممتد + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diperpanjang + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 延长 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: extendido + predicate: EXACT_SYNONYM + in_language: es + range: boolean + aliases: + - is_or_was_extended + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Applicable to exhibitions, projects, loans, contracts, or any entity + with a temporal extent that may be extended beyond its original planned duration. + - 'RiC-O naming: isOrWas indicates potentially historical relationship' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/extracted_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/extracted_through.yaml new file mode 100644 index 0000000000..77c3553f09 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/extracted_through.yaml @@ -0,0 +1,98 @@ +# ============================================================================== +# LinkML Slot Definition: extracted_through +# ============================================================================== +# Links an entity to the process or tool used to extract it. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |------------|-----------------------|--------------------|---------|--------------------------------------| +# | **PROV-O** | `prov:used` | prov.ttl:1039-1053 | close | "A prov:Entity that was used by this | +# | | | | | prov:Activity" - Activity→Entity | +# | | | | | direction, not extraction-specific | +# | **PROV-O** | `prov:wasDerivedFrom` | prov.ttl:1099-1114 | close | Derivation relationship | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed mapping (prov:used is close, not exact), added multilingual +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/extracted_through +name: extracted_through +title: Extracted Through +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + extracted_through: + slot_uri: hc:extractedThrough + description: >- + To be obtained, isolated, or derived from a source material or dataset + using a specific process, technique, or tool. + alt_descriptions: + nl: >- + Verkregen, geïsoleerd of afgeleid van een bronmateriaal of dataset + met behulp van een specifiek proces, techniek of hulpmiddel. + de: >- + Aus einem Quellmaterial oder Datensatz unter Verwendung eines + bestimmten Prozesses, einer Technik oder eines Werkzeugs gewonnen, + isoliert oder abgeleitet zu werden. + fr: >- + Être obtenu, isolé ou dérivé d'un matériel source ou d'un ensemble + de données en utilisant un processus, une technique ou un outil + spécifique. + ar: >- + أن يتم الحصول عليه أو عزله أو اشتقاقه من مادة مصدر أو مجموعة + بيانات باستخدام عملية أو تقنية أو أداة محددة. + id: >- + Diperoleh, diisolasi, atau diturunkan dari materi sumber atau + kumpulan data menggunakan proses, teknik, atau alat tertentu. + zh: >- + 使用特定过程、技术或工具从源材料或数据集中获取、分离或衍生。 + es: >- + Ser obtenido, aislado o derivado de un material fuente o conjunto + de datos utilizando un proceso, técnica o herramienta específica. + structured_aliases: + - literal_form: geëxtraheerd via + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: extrahiert durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: extrait via + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مستخرج عبر + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diekstrak melalui + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 通过...提取 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: extraído mediante + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + close_mappings: + - prov:used # prov.ttl:1039-1053 - Activity used Entity, not extraction-specific + - prov:wasDerivedFrom # prov.ttl:1099-1114 - Derivation relationship + aliases: + - is_or_was_extracted_using + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot to link extracted data, entities, or content + to the extraction process, pipeline, or tool that produced them. + - | + **MAPPING NOTE**: `prov:used` describes what an Activity used (not what + was extracted), so it is a close but not exact mapping. The extraction + relationship is domain-specific. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/founded_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/founded_through.yaml new file mode 100644 index 0000000000..7b526e307b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/founded_through.yaml @@ -0,0 +1,105 @@ +# ============================================================================== +# LinkML Slot Definition: founded_through +# ============================================================================== +# Links an organization or institution to its founding event. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|--------------------------------------|------------------|---------|--------------------------| +# | **Schema.org** | `schema:foundingDate` | schemaorg.owl | close | Date-focused, not event | +# | **PROV-O** | `prov:wasGeneratedBy` | prov.ttl:1132-45 | close | Generation by activity | +# | **CIDOC-CRM** | `crm:P92i_was_brought_into_existence_by` | N/A | related | CRM existence event | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description (moved USAGE to comments), added multilingual +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/founded_through +name: founded_through +title: Founded Through +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + founded_through: + slot_uri: hc:foundedThrough + description: >- + To be established, instituted, or brought into existence as a result + of a specific event, process, or legal act. + alt_descriptions: + nl: >- + Opgericht, geïnstitutionaliseerd of in het leven geroepen als + resultaat van een specifiek evenement, proces of rechtshandeling. + de: >- + Als Ergebnis eines bestimmten Ereignisses, Prozesses oder + Rechtsaktes gegründet, institutionalisiert oder ins Leben + gerufen zu werden. + fr: >- + Être établi, institué ou créé à la suite d'un événement, d'un + processus ou d'un acte juridique spécifique. + ar: >- + أن يتم تأسيسه أو إنشاؤه أو إيجاده نتيجة لحدث أو عملية أو + إجراء قانوني محدد. + id: >- + Didirikan, dilembagakan, atau diwujudkan sebagai hasil dari + peristiwa, proses, atau tindakan hukum tertentu. + zh: >- + 作为特定事件、过程或法律行为的结果而成立、建立或创建。 + es: >- + Ser establecido, instituido o creado como resultado de un evento, + proceso o acto legal específico. + structured_aliases: + - literal_form: opgericht via + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: gegründet durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: fondé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: أُسس من خلال + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: didirikan melalui + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 通过...创立 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: fundado mediante + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: false + close_mappings: + - schema:foundingDate # Date-focused, not event + - prov:wasGeneratedBy # prov.ttl:1132-1145 - Generation by activity + related_mappings: + - crm:P92i_was_brought_into_existence_by + aliases: + - is_or_was_founded_through + annotations: + custodian_types: '["*"]' + examples: + - value: https://nde.nl/event/founding/rijksmuseum-1800 + description: Museum founding event reference + comments: + - | + **USAGE**: Represents the founding/establishment event for: + - Heritage custodians (museums, archives, libraries) + - Standards organizations + - Any organization with a founding date diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/fulfilled_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/fulfilled_by.yaml new file mode 100644 index 0000000000..ba3e32bd7c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/fulfilled_by.yaml @@ -0,0 +1,145 @@ +# ============================================================================== +# LinkML Slot Definition: fulfilled_by +# ============================================================================== +# Relate a requirement, condition, or duty to the entity that fulfills it. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------------|----------------------|---------|------------------------------------| +# | **Schema.org**| `schema:eligibleCustomerType` | schemaorg.owl:16287 | close | Eligibility/qualification | +# | **ODRL** | `odrl:assignee` | odrl.ttl:1777-1788 | close | Party that receives permission | +# | **Schema.org**| `schema:participant` | schemaorg.owl:29158 | related | General participation in action | +# | **ODRL** | `odrl:duty` | odrl.ttl:769-776 | related | Pre-condition to fulfill | +# | **ODRL** | `odrl:obligation` | odrl.ttl:778-785 | related | Requirement to fulfill | +# | **ODRL** | `odrl:constraint` | odrl.ttl:739-743 | broad | General constraint | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-02 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/fulfilled_by +name: fulfilled_by +title: fulfilled by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + odrl: http://www.w3.org/ns/odrl/2/ +default_prefix: hc +imports: +- linkml:types +slots: + fulfilled_by: + name: fulfilled_by + description: >- + To relate a requirement, condition, or duty to the entity that fulfills it. + alt_descriptions: + nl: >- + Een vereiste, voorwaarde of plicht relateren aan de entiteit die + eraan voldoet. + de: >- + Eine Anforderung, Bedingung oder Pflicht mit der Entität verbinden, + die sie erfüllt. + fr: >- + Relier une exigence, une condition ou un devoir à l'entité qui + la remplit. + ar: >- + ربط متطلب أو شرط أو واجب بالكيان الذي يفي به. + id: >- + Menghubungkan persyaratan, kondisi, atau tugas dengan entitas + yang memenuhinya. + zh: >- + 将需求、条件或责任与满足它的实体关联起来。 + es: >- + Relacionar un requisito, condición o deber con la entidad que + lo cumple. + structured_aliases: + - literal_form: vervuld door + - is_or_was_fulfilled_by + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: erfüllt von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: rempli par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يتم الوفاء به من قبل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dipenuhi oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 由...满足 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: cumplido por + predicate: EXACT_SYNONYM + in_language: es + slot_uri: hc:fulfilledBy + # range: Any + multivalued: true + + # VERIFIED MAPPINGS (2026-02-XX) + # Source files: data/ontology/odrl.ttl, data/ontology/schemaorg.owl + + # No exact_mappings: hc:fulfilledBy has specific requirement-fulfillment semantics + # that are not precisely matched by standard ontologies + + close_mappings: + # schemaorg.owl line 16287-16290: eligibleCustomerType - "The type of customer eligible for offer" + # Semantically similar: specifies who can satisfy eligibility criteria + - schema:eligibleCustomerType # from schemaorg.owl - eligibility/qualification relationship + + # odrl.ttl line 1777-1788: assignee - "The Party that receives the permission" + # In ODRL, assignee is the party that can exercise a permission (fulfills conditions to use) + - odrl:assignee # from odrl.ttl - party that receives/fulfills permission terms + + related_mappings: + # schemaorg.owl line 29158-29161: participant - "Other co-agents that participated in the action" + # Broader: general participation, not specifically fulfillment + - schema:participant # from schemaorg.owl - general participation in action + + # odrl.ttl line 769-776: duty - "Relates an individual Duty to a Permission" + # Note: Different direction - duty is ON a party, not fulfilled BY a party + # "A Duty is a pre-condition which must be fulfilled in order to receive the Permission" + - odrl:duty # from odrl.ttl - pre-condition that must be fulfilled (inverted relationship) + + # odrl.ttl line 778-785: obligation - "Relates an individual Duty to a Policy" + # "The Duty is a requirement which must be fulfilled" + - odrl:obligation # from odrl.ttl - requirement that must be fulfilled + + broad_mappings: + # odrl.ttl line 739-743: constraint - general constraint expression + # Much broader: any constraint, not specifically about who fulfills it + - odrl:constraint # from odrl.ttl - general constraint (broader than fulfillment) + + aliases: + - can_or_could_be_fulfilled_by + - satisfied_by + - met_by + - is_or_was_fulfilled_by + annotations: + custodian_types: '["*"]' + examples: + - value: + has_or_had_identifier: "https://nde.nl/ontology/hc/applicant/non-profit" + has_or_had_label: "Non-profit Organization" + description: Requirement fulfilled by non-profit applicants + - value: + has_or_had_identifier: "https://example.org/role/museum-professional" + has_or_had_label: "Museum Professional" + description: Eligibility criterion fulfilled by museum professionals + comments: + - | + MIGRATED from `eligible_applicant` (via ApplicantRequirement). + - | + ODRL semantics note: In ODRL, 'odrl:duty' expresses "Permission has Duty" + (a pre-condition), while 'odrl:assignee' expresses "who receives permission". + Our 'fulfilled_by' is semantically closer to assignee (who can satisfy) than + duty (what must be done). + - | + Verified predicates from: + - data/ontology/odrl.ttl (odrl:assignee, odrl:duty, odrl:obligation, odrl:constraint) + - data/ontology/schemaorg.owl (schema:eligibleCustomerType, schema:participant) diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/generated_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/generated_by.yaml new file mode 100644 index 0000000000..4c07ce6f41 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/generated_by.yaml @@ -0,0 +1,104 @@ +# ============================================================================== +# LinkML Slot Definition: generated_by +# ============================================================================== +# Links an entity to the activity that generated it. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |------------|-----------------------|--------------------|---------|--------------------------------------| +# | **PROV-O** | `prov:wasGeneratedBy` | prov.ttl:1132-1145 | exact | "Generation is the completion of | +# | | | | | production of a new entity by an | +# | | | | | activity" | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Updated slot_uri to prov:wasGeneratedBy, fixed description, added multilingual +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/generated_by +name: generated_by +title: Generated By +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + owl: http://www.w3.org/2002/07/owl# + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + generated_by: + slot_uri: prov:wasGeneratedBy + description: >- + To be produced, created, or brought into existence by a specific agent, + system, process, or algorithm. + alt_descriptions: + nl: >- + Geproduceerd, gecreëerd of in het leven geroepen door een specifieke + agent, systeem, proces of algoritme. + de: >- + Von einem bestimmten Agenten, System, Prozess oder Algorithmus + produziert, erstellt oder ins Leben gerufen zu werden. + fr: >- + Être produit, créé ou mis en existence par un agent, un système, + un processus ou un algorithme spécifique. + ar: >- + أن يتم إنتاجه أو إنشاؤه أو إيجاده بواسطة وكيل أو نظام أو + عملية أو خوارزمية محددة. + id: >- + Diproduksi, dibuat, atau diwujudkan oleh agen, sistem, proses, + atau algoritma tertentu. + zh: >- + 由特定代理、系统、过程或算法生成、创建或产生。 + es: >- + Ser producido, creado o traído a la existencia por un agente, + sistema, proceso o algoritmo específico. + structured_aliases: + - literal_form: gegenereerd door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: generiert von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: généré par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: تم إنشاؤه بواسطة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dihasilkan oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 由...生成 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: generado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + implements: + - owl:ObjectProperty + exact_mappings: + - prov:wasGeneratedBy # prov.ttl:1132-1145 - "Generation is the completion of production of a new entity by an activity" + aliases: + - is_or_was_generated_by + examples: + - value: https://nde.nl/activity/import-2024 + description: Activity that generated this record + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot for: + - Linking records to generation activities + - Tracking automated processing + - Provenance chains diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/governed_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/governed_by.yaml new file mode 100644 index 0000000000..66d87fe0cc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/governed_by.yaml @@ -0,0 +1,106 @@ +# ============================================================================== +# LinkML Slot Definition: governed_by +# ============================================================================== +# Links an entity to the authority or body that governs it. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |------------|-------------------|--------------------|---------|--------------------------------------| +# | **REC** | `rec:regulatedBy` | Brick.ttl:32562-65 | close | Contract regulating a lease | +# | **ORG** | N/A | N/A | N/A | No governance property in ORG | +# +# No exact standard mapping exists for governance relationships. +# This is a domain-specific property for organizational oversight. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/governed_by +name: governed_by +title: Governed By +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + rec: https://w3id.org/rec# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + governed_by: + slot_uri: hc:governedBy + description: >- + To be directed, controlled, or regulated by a specific authority, rule, + policy, or body responsible for oversight and administration. + alt_descriptions: + nl: >- + Geleid, gecontroleerd of gereguleerd door een specifieke autoriteit, + regel, beleid of orgaan dat verantwoordelijk is voor toezicht en + administratie. + de: >- + Von einer bestimmten Behörde, Regel, Richtlinie oder einem für + Aufsicht und Verwaltung verantwortlichen Gremium geleitet, + kontrolliert oder reguliert zu werden. + fr: >- + Être dirigé, contrôlé ou réglementé par une autorité, une règle, + une politique ou un organe spécifique responsable de la surveillance + et de l'administration. + ar: >- + أن يتم توجيهه أو التحكم فيه أو تنظيمه من قبل سلطة أو قاعدة أو + سياسة أو هيئة محددة مسؤولة عن الإشراف والإدارة. + id: >- + Diarahkan, dikendalikan, atau diatur oleh otoritas, aturan, + kebijakan, atau badan tertentu yang bertanggung jawab atas + pengawasan dan administrasi. + zh: >- + 由负责监督和管理的特定权力机构、规则、政策或机构指导、 + 控制或监管。 + es: >- + Ser dirigido, controlado o regulado por una autoridad, regla, + política u organismo específico responsable de la supervisión + y administración. + structured_aliases: + - literal_form: bestuurd door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: geleitet von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: gouverné par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يُحكم من قبل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diatur oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 由...管理 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: gobernado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + close_mappings: + - rec:regulatedBy # Brick.ttl:32562-32565 - Contract regulating relationship + aliases: + - is_or_was_governed_by + - is_or_was_governing_body + - governing_body + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot to link organizations, institutions, or + processes to the governing bodies, policies, or authorities that + oversee them. + - | + **DOMAIN-SPECIFIC**: No exact standard ontology mapping exists for + governance relationships. The `rec:regulatedBy` property from RealEstateCore + is close but specific to lease/contract regulation. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_abbreviation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_abbreviation.yaml new file mode 100644 index 0000000000..c55c5932ef --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_abbreviation.yaml @@ -0,0 +1,99 @@ +# ============================================================================== +# LinkML Slot Definition: has_abbreviation +# ============================================================================== +# Links an entity to its abbreviated form or acronym. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|----------------------------|----------------------|---------|--------------------------------| +# | **GLEIF** | `gleif-base:hasAbbreviation`| gleif_base.ttl:479-83| exact | "An abbreviation for the | +# | | | | | entity identified" | +# | **Schema.org** | `schema:alternateName` | schemaorg.owl:7757-77| close | "An alias for the item" - | +# | | | | | more general than abbreviation | +# | **SKOS** | `skos:altLabel` | N/A | close | Alternative lexical label | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support, ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_abbreviation +name: has_abbreviation +title: Has Abbreviation +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + gleif-base: https://www.gleif.org/ontology/Base/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + has_abbreviation: + slot_uri: hc:hasAbbreviation + description: >- + To be represented by a shortened form, acronym, or initialism that + stands for the full name or phrase. + alt_descriptions: + nl: >- + Vertegenwoordigd te worden door een verkorte vorm, acroniem of + initiaalwoord dat staat voor de volledige naam of zin. + de: >- + Durch eine Kurzform, ein Akronym oder eine Abkürzung dargestellt + zu werden, die für den vollständigen Namen oder die Phrase steht. + fr: >- + Être représenté par une forme abrégée, un acronyme ou un sigle + qui représente le nom ou la phrase complète. + ar: >- + أن يتم تمثيله بشكل مختصر أو اختصار أو حروف أولى تمثل + الاسم أو العبارة الكاملة. + id: >- + Diwakili oleh bentuk singkat, akronim, atau inisialisme yang + mewakili nama atau frasa lengkap. + zh: >- + 用代表全称或短语的缩写形式、首字母缩写词或缩略语来表示。 + es: >- + Ser representado por una forma abreviada, acrónimo o sigla que + representa el nombre o frase completa. + structured_aliases: + - literal_form: heeft afkorting + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Abkürzung + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a une abréviation + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: له اختصار + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki singkatan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有缩写 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene abreviatura + predicate: EXACT_SYNONYM + in_language: es + range: string + exact_mappings: + - gleif-base:hasAbbreviation # gleif_base.ttl:479-483 - "An abbreviation for the entity identified" + close_mappings: + - schema:alternateName # schemaorg.owl:7757-7777 - "An alias for the item" - more general + - skos:altLabel # Alternative lexical label + aliases: + - has_or_had_abbreviation + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot to store acronyms, initialisms, or other + abbreviated forms of organization names or titles. For example, + "ICOM" for "International Council of Museums". diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_access_frequency.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_access_frequency.yaml new file mode 100644 index 0000000000..d65d6c0064 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_access_frequency.yaml @@ -0,0 +1,104 @@ +# ============================================================================== +# LinkML Slot Definition: has_access_frequency +# ============================================================================== +# Indicates how often a resource is accessed or utilized. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|-----------------------------|----------------------|---------|--------------------------------| +# | **DC Terms** | `dcterms:accrualPeriodicity`| dcterms.ttl:2815-83 | close | "The frequency with which | +# | | | | | items are added to a | +# | | | | | collection" - accrual, not | +# | | | | | access | +# +# No exact standard mapping exists for access frequency. +# This is a domain-specific property for usage metrics. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description (removed migration note), added multilingual +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_access_frequency +name: has_access_frequency +title: Has Access Frequency +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + has_access_frequency: + slot_uri: hc:hasAccessFrequency + description: >- + To have a designated rate or periodicity indicating how often a + resource, data set, or system is accessed or utilized. + alt_descriptions: + nl: >- + Een aangewezen frequentie of periodiciteit hebben die aangeeft + hoe vaak een bron, dataset of systeem wordt geraadpleegd of + gebruikt. + de: >- + Eine festgelegte Rate oder Periodizität haben, die angibt, wie + oft auf eine Ressource, einen Datensatz oder ein System + zugegriffen oder dieses genutzt wird. + fr: >- + Avoir un taux ou une périodicité désignée indiquant à quelle + fréquence une ressource, un ensemble de données ou un système + est consulté ou utilisé. + ar: >- + أن يكون له معدل أو دورية محددة تشير إلى مدى تكرار الوصول + إلى مورد أو مجموعة بيانات أو نظام أو استخدامه. + id: >- + Memiliki tingkat atau periodisitas yang ditetapkan yang + menunjukkan seberapa sering sumber daya, kumpulan data, atau + sistem diakses atau digunakan. + zh: >- + 具有指定的频率或周期性,表明资源、数据集或系统被访问或使用的频率。 + es: >- + Tener una tasa o periodicidad designada que indica con qué + frecuencia se accede o utiliza un recurso, conjunto de datos + o sistema. + structured_aliases: + - literal_form: heeft toegangsfrequentie + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Zugriffshäufigkeit + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a une fréquence d'accès + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: له تردد الوصول + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki frekuensi akses + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有访问频率 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene frecuencia de acceso + predicate: EXACT_SYNONYM + in_language: es + range: string + close_mappings: + - dcterms:accrualPeriodicity # dcterms.ttl:2815-2883 - frequency of additions, not access + aliases: + - has_or_had_access_frequency + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot to indicate how frequently a resource is + accessed, such as "daily", "weekly", "monthly", or specific metrics + like "1000 requests/day". + - | + **MIGRATION NOTE (2026-02-03)**: Renamed from `has_or_had_access_frequency` + for conciseness. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_access_management.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_access_management.yaml new file mode 100644 index 0000000000..c2f1beed5d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_access_management.yaml @@ -0,0 +1,108 @@ +# ============================================================================== +# LinkML Slot Definition: has_access_management +# ============================================================================== +# Links an entity to its access management system or policy. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|-----------------------|----------------------|---------|----------------------------------| +# | **DC Terms** | `dcterms:accessRights`| dcterms.ttl:2489-2557| close | "Information about who access | +# | | | | | the resource or an indication | +# | | | | | of its security status" - about | +# | | | | | rights, not management system | +# +# No exact standard mapping exists for access management systems. +# This is a domain-specific property for authorization infrastructure. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description (removed migration note), added multilingual +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_access_management +name: has_access_management +title: Has Access Management +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + has_access_management: + slot_uri: hc:hasAccessManagement + description: >- + To have a designated system, policy, or set of protocols that controls, + verifies, and manages the authorization and privileges required to + access the entity. + alt_descriptions: + nl: >- + Een aangewezen systeem, beleid of reeks protocollen hebben die de + autorisatie en privileges die nodig zijn om toegang te krijgen tot + de entiteit controleert, verifieert en beheert. + de: >- + Ein festgelegtes System, eine Richtlinie oder eine Reihe von + Protokollen haben, die die Autorisierung und Berechtigungen + kontrolliert, verifiziert und verwaltet, die für den Zugriff + auf die Entität erforderlich sind. + fr: >- + Avoir un système, une politique ou un ensemble de protocoles + désignés qui contrôle, vérifie et gère l'autorisation et les + privilèges requis pour accéder à l'entité. + ar: >- + أن يكون له نظام أو سياسة أو مجموعة من البروتوكولات المحددة + التي تتحكم وتتحقق وتدير التفويض والامتيازات المطلوبة + للوصول إلى الكيان. + id: >- + Memiliki sistem, kebijakan, atau serangkaian protokol yang + ditunjuk yang mengontrol, memverifikasi, dan mengelola + otorisasi dan hak istimewa yang diperlukan untuk mengakses + entitas. + zh: >- + 拥有指定的系统、策略或协议集,用于控制、验证和管理访问 + 实体所需的授权和权限。 + es: >- + Tener un sistema, política o conjunto de protocolos designados + que controla, verifica y gestiona la autorización y privilegios + requeridos para acceder a la entidad. + structured_aliases: + - literal_form: heeft toegangsbeheer + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Zugriffsverwaltung + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a une gestion des accès + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: له إدارة الوصول + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki manajemen akses + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有访问管理 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene gestión de acceso + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + close_mappings: + - dcterms:accessRights # dcterms.ttl:2489-2557 - about rights, not management system + aliases: + - has_or_had_access_management + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot to link resources to their access control + systems, authentication mechanisms, or authorization policies. + - | + **MIGRATION NOTE (2026-02-03)**: Renamed from `has_or_had_access_management` + for conciseness. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_access_policy.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_access_policy.yaml new file mode 100644 index 0000000000..ed15fd8a3b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_access_policy.yaml @@ -0,0 +1,140 @@ +# ============================================================================== +# LinkML Slot Definition: has_access_policy +# ============================================================================== +# Rules, guidelines, or protocols governing authorization and restrictions for +# accessing resources or data. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|-----------------------------|-------------------|----------|------------------------------------------| +# | **DC Terms** | `dcterms:accessRights` | dcterms.rdf:786 | slot_uri | Access rights info for resource. | +# | | | | exact | | +# | **DC Terms** | `dcterms:rights` | dcterms.rdf | broad | Parent (accessRights subPropertyOf). | +# | **Schema.org** | `schema:conditionsOfAccess` | schemaorg.owl | close | Conditions for accessing content. | +# | **PREMIS** | `premis:rightsStatus` | premis | related | Rights status of object. | +# +# CREATED: 2026-01-15 +# UPDATED: 2026-02-03 - Added header, broad: dcterms:rights (parent of accessRights) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_access_policy +name: has_access_policy +title: Has Access Policy +prefixes: + dcterms: http://purl.org/dc/terms/ + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + premis: http://www.loc.gov/premis/rdf/v3/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_access_policy: + description: >- + To possess a defined set of rules, guidelines, or protocols that govern + the authorization and restrictions for accessing resources or data. + alt_descriptions: + nl: >- + Om een gedefinieerde set regels, richtlijnen of protocollen te + bezitten die de autorisatie en beperkingen voor toegang tot bronnen + of gegevens regelen. + de: >- + Ein definiertes Regelwerk, Richtlinien oder Protokolle zu besitzen, + die die Autorisierung und Einschränkungen für den Zugang zu + Ressourcen oder Daten regeln. + fr: >- + Posséder un ensemble défini de règles, directives ou protocoles qui + régissent l'autorisation et les restrictions d'accès aux ressources + ou aux données. + ar: >- + امتلاك مجموعة محددة من القواعد أو الإرشادات أو البروتوكولات التي + تحكم التفويض والقيود للوصول إلى الموارد أو البيانات. + id: >- + Memiliki seperangkat aturan, pedoman, atau protokol yang ditetapkan + yang mengatur otorisasi dan pembatasan untuk mengakses sumber daya + atau data. + zh: >- + 拥有一套明确的规则、准则或协议,用于管理访问资源或数据的授权和限制。 + es: >- + Poseer un conjunto definido de reglas, directrices o protocolos que + rigen la autorización y restricciones para acceder a recursos o datos. + structured_aliases: + - literal_form: toegangsbeleid + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Zugangsrichtlinie + predicate: EXACT_SYNONYM + in_language: de + - literal_form: politique d'accès + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: سياسة الوصول + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: kebijakan akses + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 访问策略 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: política de acceso + predicate: EXACT_SYNONYM + in_language: es + range: string + slot_uri: dcterms:accessRights + exact_mappings: + - dcterms:accessRights + broad_mappings: + - dcterms:rights # DC Terms: Parent property (accessRights rdfs:subPropertyOf rights, line 805) + close_mappings: + - schema:conditionsOfAccess + related_mappings: + - premis:rightsStatus + - schema:publishingPrinciples + aliases: + - has_or_had_access_policy + - has_or_had_access_restriction + - has_or_had_access_trigger_event + comments: + - schema:conditionsOfAccess is semantically closer (conditions for access) than schema:publishingPrinciples (editorial principles). + - | + **ACCESS CATEGORIES**: + - Public access: Open hours, visitor programs, guided tours + - Research access: By appointment, credentials required, application process + - Restrictions: Sacred objects (no access), privacy concerns (closed records) + - Photography: Prohibited, allowed with permission, flash restrictions + - Reproduction: Copyright, religious authority approval + - Digital access: Online catalogs, digitized manuscripts, virtual tours + - Interfaith sensitivity: Non-members welcome, religious requirements (modest dress) + - Balances heritage accessibility with religious sacredness. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **DC Terms** | `dcterms:accessRights` | 786-811 | slot_uri, exact | Access rights info | + | **DC Terms** | `dcterms:rights` | - | broad | Parent (accessRights subPropertyOf rights) | + | **Schema.org** | `schema:conditionsOfAccess` | - | close | Conditions for access | + | **PREMIS** | `premis:rightsStatus` | - | related | Rights status of object | + examples: + - value: "Restricted access by appointment, Scholars only" + description: Research archive with restricted access + - value: "Public viewing during open hours, Photography prohibited" + description: Museum with photography restrictions + - value: "Digitized manuscripts online, Physical access by special permission" + description: Mixed digital/physical access policy + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_accessibility_feature.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_accessibility_feature.yaml new file mode 100644 index 0000000000..d88e28e759 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_accessibility_feature.yaml @@ -0,0 +1,197 @@ +# ============================================================================== +# LinkML Slot Definition: has_accessibility_feature +# ============================================================================== +# Describes accessibility features that remove barriers and ensure usability +# for individuals with diverse abilities. Used for physical locations, +# digital resources, and services in heritage contexts. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|---------------------------------|------------------------|---------|--------------------------------------------------| +# | **Schema.org**| `schema:accessibilityFeature` | schemaorg.owl:6543-6562| exact | "Content features for accessibility" | +# | **Schema.org**| `schema:accessMode` | schemaorg.owl:6458-6461| close | Sensory/cognitive access modes | +# | **Schema.org**| `schema:accessModeSufficient` | schemaorg.owl:6479-6482| close | Sufficient access modes for content | +# | **Schema.org**| `schema:amenityFeature` | schemaorg.owl:7869-7892| broad | General features of a place (broader) | +# | **Schema.org**| `schema:accessibilityControl` | schemaorg.owl:6522-6525| narrow | Input control methods (more specific) | +# | **Schema.org**| `schema:accessibilityAPI` | schemaorg.owl:6501-6504| narrow | API compatibility (more specific) | +# | **Schema.org**| `schema:accessibilityHazard` | schemaorg.owl:6564-6567| related | Physiologically dangerous characteristics | +# | **Schema.org**| `schema:accessibilitySummary` | schemaorg.owl:6585-6588| related | Text summary of accessibility | +# +# NOTE: schema:accessibilityFeature is the primary property for recording +# accessibility features. Values should ideally be drawn from the W3C +# Accessibility Discovery Vocabulary (a11y-discov-vocab). +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_accessibility_feature +name: has_accessibility_feature +title: has accessibility feature + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: https://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + owl: http://www.w3.org/2002/07/owl# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +description: | + To possess specific functional attributes or design elements intended to remove barriers and ensure usability for individuals with diverse abilities. + +imports: + - linkml:types + +slots: + has_accessibility_feature: + slot_uri: schema:accessibilityFeature + description: | + To possess specific functional attributes or design elements intended to remove barriers and ensure usability for individuals with diverse abilities. + alt_descriptions: + nl: >- + Het bezitten van specifieke functionele eigenschappen of ontwerpelementen die bedoeld zijn om barrières weg te nemen en bruikbaarheid te garanderen voor personen met diverse vermogens. + de: >- + Das Besitzen spezifischer funktionaler Eigenschaften oder Designelemente, die darauf abzielen, Barrieren zu beseitigen und die Nutzbarkeit für Menschen mit unterschiedlichen Fähigkeiten zu gewährleisten. + fr: >- + Posséder des attributs fonctionnels spécifiques ou des éléments de conception destinés à éliminer les barrières et à garantir l'utilisabilité pour les personnes ayant des capacités diverses. + ar: >- + امتلاك سمات وظيفية محددة أو عناصر تصميم تهدف إلى إزالة الحواجز وضمان قابلية الاستخدام للأفراد ذوي القدرات المتنوعة. + id: >- + Memiliki atribut fungsional atau elemen desain tertentu yang dimaksudkan untuk menghilangkan hambatan dan memastikan kegunaan bagi individu dengan kemampuan yang beragam. + zh: >- + 拥有旨在消除障碍并确保不同能力个体可用性的特定功能属性或设计元素。 + es: >- + Poseer atributos funcionales específicos o elementos de diseño destinados a eliminar barreras y garantizar la usabilidad para personas con diversas capacidades. + structured_aliases: + - literal_form: heeft toegankelijkheidskenmerk + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Barrierefreiheitsmerkmal + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a une caractéristique d'accessibilité + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: لديه ميزة إمكانية الوصول + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki fitur aksesibilitas + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有无障碍功能 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene característica de accesibilidad + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + implements: + - owl:ObjectProperty + required: false + multivalued: true + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.50 + specificity_rationale: Moderately specific slot for accessibility features. + exact_mappings: + # Schema.org accessibilityFeature - "Content features for accessibility" + # Domain: CreativeWork, Range: Text | Role | URL + # Lines 6543-6562 in schemaorg.owl + - schema:accessibilityFeature + close_mappings: + # Schema.org accessMode - Sensory/cognitive access modes (auditory, tactile, textual, visual) + # Lines 6458-6461 in schemaorg.owl + - schema:accessMode + # Schema.org accessModeSufficient - Sufficient access modes for understanding content + # Lines 6479-6482 in schemaorg.owl + - schema:accessModeSufficient + broad_mappings: + # Schema.org amenityFeature - General features of a place/accommodation + # Broader: any feature, not just accessibility-focused + # Lines 7869-7892 in schemaorg.owl + - schema:amenityFeature + narrow_mappings: + # Schema.org accessibilityControl - Input control methods (specific type of feature) + # Narrower: specifically about input control methods + # Lines 6522-6525 in schemaorg.owl + - schema:accessibilityControl + # Schema.org accessibilityAPI - API compatibility (specific type of feature) + # Narrower: specifically about API compatibility + # Lines 6501-6504 in schemaorg.owl + - schema:accessibilityAPI + related_mappings: + # Schema.org accessibilityHazard - Physiologically dangerous characteristics + # Related: opposite concern (hazards vs features) + # Lines 6564-6567 in schemaorg.owl + - schema:accessibilityHazard + # Schema.org accessibilitySummary - Text summary of accessibility + # Related: human-readable summary vs structured features + # Lines 6585-6588 in schemaorg.owl + - schema:accessibilitySummary + aliases: + - has_or_had_accessibility_feature + examples: + - value: "schema:wheelchairAccessible" + description: Physical location is accessible by wheelchair + - value: "schema:audioDescription" + description: Content includes audio description for visually impaired users + - value: "schema:captions" + description: Content includes captions for deaf or hard-of-hearing users + - value: "schema:signLanguage" + description: Content includes sign language interpretation + - value: "schema:braille" + description: Materials available in Braille format + - value: "schema:largePrint" + description: Materials available in large print format + comments: + - Updated 2026-02-03 with verified ontology mappings and translations + - | + **PURPOSE**: Records accessibility features of heritage institutions, + their facilities, digital resources, and services. Enables users to + discover accessible resources and plan visits accordingly. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | Schema.org | schema:accessibilityFeature | 6543 | exact | Content features | + | Schema.org | schema:accessMode | 6458 | close | Access modes | + | Schema.org | schema:accessModeSufficient | 6479 | close | Sufficient modes | + | Schema.org | schema:amenityFeature | 7869 | broad | General features | + | Schema.org | schema:accessibilityControl | 6522 | narrow | Input controls | + | Schema.org | schema:accessibilityAPI | 6501 | narrow | API compatibility | + | Schema.org | schema:accessibilityHazard | 6564 | related | Hazards | + | Schema.org | schema:accessibilitySummary | 6585 | related | Summary | + - | + **TEMPORAL SEMANTICS** (RiC-O Pattern): + "has_or_had_accessibility_feature" indicates features may be historical - + an institution's accessibility features may change over time. + - | + **USAGE PATTERNS**: + - For physical locations: wheelchair ramps, elevators, accessible restrooms + - For digital resources: captions, audio descriptions, screen reader support + - For services: sign language interpretation, assistive listening devices + - For materials: Braille, large print, tactile exhibits + - | + **VALUE RECOMMENDATIONS**: + Values should ideally be drawn from the W3C Accessibility Discovery + Vocabulary (https://www.w3.org/2021/a11y-discov-vocab/latest/). + Common values include: + - alternativeText, audioDescription, braille, captions + - highContrastDisplay, largePrint, signLanguage, tactileGraphic + - wheelchairAccessible, hearingLoop, guideDog + - | + **RANGE NOTES**: + Range is `uriorcurie` (Rule 55) to allow controlled vocabulary URIs + or custom accessibility feature references. Classes may narrow via + slot_usage to specific AccessibilityFeature enums. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_accreditation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_accreditation.yaml new file mode 100644 index 0000000000..7e207d15e7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_accreditation.yaml @@ -0,0 +1,102 @@ +# ============================================================================== +# LinkML Slot Definition: has_accreditation +# ============================================================================== +# Links an entity to its official accreditation or certification. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |------------|---------------------------|----------------|---------|-------------------------------------| +# | **DQV** | `dqv:QualityCertificate` | dqv.ttl:85 | close | "Resource that certifies the | +# | | | | | resource's quality" - class, not | +# | | | | | property | +# +# No exact standard property mapping exists for accreditation. +# This is a domain-specific property for quality recognition. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description (removed migration note), added multilingual +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_accreditation +name: has_accreditation +title: Has Accreditation +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + dqv: http://www.w3.org/ns/dqv# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + has_accreditation: + slot_uri: hc:hasAccreditation + description: >- + To have received official recognition, certification, or approval from + a recognized authority indicating adherence to specific standards or + quality requirements. + alt_descriptions: + nl: >- + Officiële erkenning, certificering of goedkeuring hebben ontvangen + van een erkende autoriteit die aangeeft dat aan specifieke normen + of kwaliteitseisen wordt voldaan. + de: >- + Offizielle Anerkennung, Zertifizierung oder Genehmigung von einer + anerkannten Behörde erhalten haben, die die Einhaltung bestimmter + Standards oder Qualitätsanforderungen anzeigt. + fr: >- + Avoir reçu une reconnaissance officielle, une certification ou une + approbation d'une autorité reconnue indiquant le respect de normes + ou d'exigences de qualité spécifiques. + ar: >- + أن يكون قد حصل على اعتراف رسمي أو شهادة أو موافقة من سلطة معترف + بها تشير إلى الالتزام بمعايير أو متطلبات جودة محددة. + id: >- + Telah menerima pengakuan resmi, sertifikasi, atau persetujuan dari + otoritas yang diakui yang menunjukkan kepatuhan terhadap standar + atau persyaratan kualitas tertentu. + zh: >- + 已获得认可机构的官方认可、认证或批准,表明符合特定标准或质量要求。 + es: >- + Haber recibido reconocimiento oficial, certificación o aprobación + de una autoridad reconocida que indica el cumplimiento de estándares + o requisitos de calidad específicos. + structured_aliases: + - literal_form: heeft accreditatie + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Akkreditierung + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a une accréditation + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: له اعتماد + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki akreditasi + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有认证 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene acreditación + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + aliases: + - has_or_had_accreditation + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot to link institutions to their quality + accreditations, certifications, or standards compliance recognitions. + - | + **MIGRATION NOTE (2026-02-03)**: Renamed from `has_or_had_accreditation` + for conciseness. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_activity.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_activity.yaml new file mode 100644 index 0000000000..03134b5eaa --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_activity.yaml @@ -0,0 +1,93 @@ +# ============================================================================== +# LinkML Slot Definition: has_activity +# ============================================================================== +# Links an entity to an activity it performs or is associated with. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |------------|-------------------|------------------|---------|-------------------------------------| +# | **PROV-O** | `prov:Activity` | prov.ttl:53-63 | related | Class, not property | +# | **PROV-O** | `prov:hadActivity`| prov.ttl:605-623 | close | Optional activity of an influence | +# +# No exact standard property mapping exists for "has activity". +# This is a domain-specific property for activity associations. +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_activity +name: has_activity +title: Has Activity +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + has_activity: + slot_uri: hc:hasActivity + description: >- + To perform, engage in, or be characterized by a specific action, task, + process, or operation. + alt_descriptions: + nl: >- + Uitvoeren, deelnemen aan of gekenmerkt worden door een specifieke + actie, taak, proces of operatie. + de: >- + Eine bestimmte Aktion, Aufgabe, einen Prozess oder eine Operation + durchführen, daran teilnehmen oder dadurch gekennzeichnet sein. + fr: >- + Effectuer, participer à ou être caractérisé par une action, une + tâche, un processus ou une opération spécifique. + ar: >- + أداء أو المشاركة في أو التميز بإجراء أو مهمة أو عملية أو + تشغيل محدد. + id: >- + Melakukan, terlibat dalam, atau dicirikan oleh tindakan, tugas, + proses, atau operasi tertentu. + zh: >- + 执行、参与或以特定行动、任务、过程或操作为特征。 + es: >- + Realizar, participar en o caracterizarse por una acción, tarea, + proceso u operación específica. + structured_aliases: + - literal_form: heeft activiteit + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Aktivität + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a une activité + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: له نشاط + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki aktivitas + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有活动 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene actividad + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + close_mappings: + - prov:hadActivity # prov.ttl:605-623 - optional activity of an influence + aliases: + - has_or_had_activity + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot to link entities (organizations, agents, or + processes) to activities they perform or are associated with. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_address.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_address.yaml new file mode 100644 index 0000000000..2508e68602 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_address.yaml @@ -0,0 +1,94 @@ +# ============================================================================== +# LinkML Slot Definition: has_address +# ============================================================================== +# Links an entity to its physical or postal address. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|------------------|------------------------|---------|--------------------------------| +# | **Schema.org** | `schema:address` | schemaorg.owl:7234-59 | exact | "Physical address of the item" | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Updated slot_uri to schema:address, fixed description, added multilingual +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_address +name: has_address +title: Has Address +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc + +imports: + - linkml:types + +slots: + has_address: + slot_uri: schema:address + description: >- + To possess a specified physical or electronic location used for + communication, delivery, or identification purposes. + alt_descriptions: + nl: >- + Een gespecificeerde fysieke of elektronische locatie bezitten die + wordt gebruikt voor communicatie, levering of identificatiedoeleinden. + de: >- + Einen bestimmten physischen oder elektronischen Standort besitzen, + der für Kommunikation, Lieferung oder Identifikationszwecke + verwendet wird. + fr: >- + Posséder un emplacement physique ou électronique spécifié utilisé + à des fins de communication, de livraison ou d'identification. + ar: >- + امتلاك موقع مادي أو إلكتروني محدد يستخدم لأغراض الاتصال + أو التسليم أو التعريف. + id: >- + Memiliki lokasi fisik atau elektronik tertentu yang digunakan + untuk tujuan komunikasi, pengiriman, atau identifikasi. + zh: >- + 拥有用于通信、交付或识别目的的指定物理或电子位置。 + es: >- + Poseer una ubicación física o electrónica especificada utilizada + para fines de comunicación, entrega o identificación. + structured_aliases: + - literal_form: heeft adres + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Adresse + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a une adresse + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: له عنوان + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki alamat + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有地址 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene dirección + predicate: EXACT_SYNONYM + in_language: es + range: string + exact_mappings: + - schema:address # schemaorg.owl:7234-7259 - "Physical address of the item" + aliases: + - has_or_had_address + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Use this slot to store the physical postal address of + organizations, institutions, or places. For structured addresses, + consider using a PostalAddress class. + - | + **MIGRATION NOTE (2026-02-03)**: Renamed from `has_or_had_address` + for conciseness. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_administration.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_administration.yaml new file mode 100644 index 0000000000..f5a55bd82e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_administration.yaml @@ -0,0 +1,89 @@ +# ============================================================================== +# LinkML Slot Definition: has_administration +# ============================================================================== +# Links a custodian to its active administrative record systems. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|------------------------|---------|------------------------------------------| +# | **RiC-O** | `rico:hasOrHadPart` | RiC-O_1-1.rdf:7271-7288| close | "Connects a Thing to a component part" | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_administration +name: has_administration +title: Has Administration + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + +default_prefix: hc + +imports: + - linkml:types + +slots: + has_administration: + slot_uri: hc:hasAdministration + description: >- + Active administrative record systems currently in daily use by a heritage custodian. + alt_descriptions: + nl: >- + Actieve administratieve registratiesystemen die momenteel dagelijks door een + erfgoedcustodian worden gebruikt. + de: >- + Aktive administrative Aufzeichnungssysteme, die derzeit täglich von einem + Kulturerbe-Verwahrer genutzt werden. + fr: >- + Systèmes d'enregistrement administratif actifs actuellement utilisés quotidiennement + par un dépositaire du patrimoine. + ar: >- + أنظمة السجلات الإدارية النشطة المستخدمة حالياً بشكل يومي من قبل أمين التراث. + id: >- + Sistem catatan administratif aktif yang saat ini digunakan sehari-hari oleh + kustodian warisan budaya. + zh: >- + 遗产保管人目前每日使用的活跃行政记录系统。 + es: >- + Sistemas de registros administrativos activos actualmente en uso diario por un + custodio del patrimonio. + structured_aliases: + - literal_form: heeft administratie + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Verwaltung + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a une administration + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: لديه إدارة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki administrasi + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有行政管理 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene administración + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + aliases: + - has_or_had_administration + close_mappings: + - rico:hasOrHadPart # RiC-O_1-1.rdf:7271-7288 - "Connects a Thing to a component part" (more general) + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Links to CustodianAdministration instances representing the various + administrative systems (HR, finance, acquisitions, etc.) in use by the custodian. + - 'Mapping Note: rico:hasOrHadPart is a general part-whole relationship; this slot specializes it for administrative systems.' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_administration_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_administration_description.yaml new file mode 100644 index 0000000000..ac8d92f30f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_administration_description.yaml @@ -0,0 +1,116 @@ +# ============================================================================== +# LinkML Slot Definition: has_administration_description +# ============================================================================== +# Description of records/content within an administrative system or function. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------------|------------------------|---------|----------------------------------------| +# | **Schema.org**| `schema:description` | schemaorg.owl:14844 | exact | "A description of the item." | +# | **DC Terms** | `dcterms:description` | dcterms.ttl | close | Similar general description property | +# | **RiC-O** | `rico:scopeAndContent` | RiC-O_1-1.rdf:23026 | close | Scope/content of record resource | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description, moved examples to proper field, added multilingual +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_administration_description +name: has_administration_description +title: Has Administration Description + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + has_administration_description: + slot_uri: schema:description + description: >- + A description of the content, scope, and purpose of an administrative record system or function. + alt_descriptions: + nl: >- + Een beschrijving van de inhoud, reikwijdte en het doel van een administratief + registratiesysteem of -functie. + de: >- + Eine Beschreibung des Inhalts, Umfangs und Zwecks eines administrativen + Aufzeichnungssystems oder einer Funktion. + fr: >- + Une description du contenu, de la portée et de l'objectif d'un système ou d'une + fonction d'enregistrement administratif. + ar: >- + وصف لمحتوى ونطاق وغرض نظام أو وظيفة السجلات الإدارية. + id: >- + Deskripsi konten, cakupan, dan tujuan dari sistem atau fungsi catatan administratif. + zh: >- + 对行政记录系统或职能的内容、范围和目的的描述。 + es: >- + Una descripción del contenido, alcance y propósito de un sistema o función de + registros administrativos. + structured_aliases: + - literal_form: administratie beschrijving + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Verwaltungsbeschreibung + predicate: EXACT_SYNONYM + in_language: de + - literal_form: description de l'administration + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: وصف الإدارة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: deskripsi administrasi + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 行政描述 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: descripción de administración + predicate: EXACT_SYNONYM + in_language: es + range: string + aliases: + - has_or_had_administration_description + exact_mappings: + - schema:description # schemaorg.owl:14844-14862 - "A description of the item." + close_mappings: + - dcterms:description + - rico:scopeAndContent # RiC-O_1-1.rdf:23026-23037 - "Scope and content of a Record Resource" + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: Moderately specific slot. + comments: + - | + **USAGE**: Describe what records this system/function contains: + - Types of records created + - Business processes documented + - Key document series + - Relationship to other systems + - | + **RiC-O ALIGNMENT**: Maps closely to rico:scopeAndContent for archival description + of record resource content and scope. + examples: + - value: "Director's Office Correspondence" + description: Correspondence files from executive office + - value: "Human Resources Personnel Files" + description: Employee records and HR documentation + - value: "Acquisition Documentation" + description: Records of object acquisitions + - value: "Conservation Treatment Records" + description: Documentation of conservation activities + - value: "Financial Administration (SAP)" + description: Financial system records + - value: "Loan Administration" + description: Records of loan agreements and tracking diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_administration_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_administration_name.yaml new file mode 100644 index 0000000000..063193f738 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_administration_name.yaml @@ -0,0 +1,110 @@ +# ============================================================================== +# LinkML Slot Definition: has_administration_name +# ============================================================================== +# Name for an administrative record system or function. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------|------------------------|---------|-------------------------------| +# | **Schema.org**| `schema:name` | schemaorg.owl:26889 | exact | "The name of the item." | +# | **RDFS** | `rdfs:label` | - | close | General label property | +# | **W3C Org** | `org:name` | org.ttl | close | Organization name | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description, moved examples to proper field, added multilingual +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_administration_name +name: has_administration_name +title: Has Administration Name + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + rdfs: http://www.w3.org/2000/01/rdf-schema# + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + has_administration_name: + slot_uri: schema:name + description: >- + The name or title assigned to an administrative record system or function. + alt_descriptions: + nl: >- + De naam of titel die is toegekend aan een administratief registratiesysteem of -functie. + de: >- + Der Name oder Titel, der einem administrativen Aufzeichnungssystem oder einer + Funktion zugewiesen ist. + fr: >- + Le nom ou titre attribué à un système ou une fonction d'enregistrement administratif. + ar: >- + الاسم أو العنوان المخصص لنظام أو وظيفة السجلات الإدارية. + id: >- + Nama atau judul yang diberikan untuk sistem atau fungsi catatan administratif. + zh: >- + 分配给行政记录系统或职能的名称或标题。 + es: >- + El nombre o título asignado a un sistema o función de registros administrativos. + structured_aliases: + - literal_form: administratie naam + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Verwaltungsname + predicate: EXACT_SYNONYM + in_language: de + - literal_form: nom de l'administration + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: اسم الإدارة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: nama administrasi + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 行政名称 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: nombre de administración + predicate: EXACT_SYNONYM + in_language: es + range: string + aliases: + - has_or_had_administration_name + exact_mappings: + - schema:name # schemaorg.owl:26889-26907 - "The name of the item." + close_mappings: + - rdfs:label + - org:name + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: Moderately specific slot. + comments: + - | + **RiC-O ALIGNMENT**: Corresponds to rico:name for naming record resources in archival contexts. + examples: + - value: "Director's Office Correspondence" + description: Name for executive correspondence filing system + - value: "Human Resources Personnel Files" + description: Name for HR records management function + - value: "Acquisition Documentation" + description: Name for object acquisition record system + - value: "Conservation Treatment Records" + description: Name for conservation documentation system + - value: "Financial Administration (SAP)" + description: Name for financial system administration + - value: "Research Request Management" + description: Name for research request tracking function + - value: "Loan Administration" + description: Name for loan management records + - value: "Exhibition Planning Files" + description: Name for exhibition planning documentation diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_administrative_context.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_administrative_context.yaml new file mode 100644 index 0000000000..76686ddc5c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_administrative_context.yaml @@ -0,0 +1,88 @@ +# ============================================================================== +# LinkML Slot Definition: has_administrative_context +# ============================================================================== +# The organizational framework or jurisdiction for administrative actions. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|--------------------|------------------|---------|-----------------------------------| +# | (none found) | - | - | - | GLAM domain-specific context slot | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description, added multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_administrative_context +name: has_administrative_context +title: Has Administrative Context + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + has_administrative_context: + slot_uri: hc:hasAdministrativeContext + description: >- + The specific organizational framework, jurisdiction, or situational setting in which + administrative actions, decisions, or record-keeping take place. + alt_descriptions: + nl: >- + Het specifieke organisatorische kader, rechtsgebied of situationele omgeving + waarin administratieve handelingen, beslissingen of dossiervorming plaatsvinden. + de: >- + Der spezifische organisatorische Rahmen, die Zuständigkeit oder der situative + Kontext, in dem Verwaltungshandlungen, Entscheidungen oder Aktenführung stattfinden. + fr: >- + Le cadre organisationnel spécifique, la juridiction ou le contexte situationnel + dans lequel se déroulent les actions administratives, les décisions ou la tenue de dossiers. + ar: >- + الإطار التنظيمي المحدد أو الاختصاص القضائي أو البيئة الظرفية التي تتم فيها + الإجراءات الإدارية أو القرارات أو حفظ السجلات. + id: >- + Kerangka organisasi tertentu, yurisdiksi, atau pengaturan situasional di mana + tindakan administratif, keputusan, atau pencatatan berlangsung. + zh: >- + 行政行为、决策或记录保存发生的特定组织框架、管辖权或情境环境。 + es: >- + El marco organizativo específico, jurisdicción o entorno situacional en el que + tienen lugar las acciones administrativas, decisiones o mantenimiento de registros. + structured_aliases: + - literal_form: administratieve context + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Verwaltungskontext + predicate: EXACT_SYNONYM + in_language: de + - literal_form: contexte administratif + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: السياق الإداري + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: konteks administratif + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 行政背景 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: contexto administrativo + predicate: EXACT_SYNONYM + in_language: es + range: string + aliases: + - is_or_was_administrative_context + annotations: + source_section: "**Administrative Context**:" + custodian_types: '["*"]' + comments: + - 'MIGRATED from **Administrative Context**: sections in documentation.' + - | + **USAGE**: Describes the administrative environment including governance + structure, regulatory framework, and institutional setting. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_administrative_function.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_administrative_function.yaml new file mode 100644 index 0000000000..6d3a88f3f0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_administrative_function.yaml @@ -0,0 +1,88 @@ +# ============================================================================== +# LinkML Slot Definition: has_administrative_function +# ============================================================================== +# An operational role or duty essential to management or governance. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------|------------------|---------|-------------------------------------| +# | (none found) | - | - | - | GLAM domain-specific function slot | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description, added multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_administrative_function +name: has_administrative_function +title: Has Administrative Function + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + has_administrative_function: + slot_uri: hc:hasAdministrativeFunction + description: >- + A specific operational role, duty, or purpose essential to the management, + organization, or governance of an entity or system. + alt_descriptions: + nl: >- + Een specifieke operationele rol, taak of doel die essentieel is voor het + beheer, de organisatie of het bestuur van een entiteit of systeem. + de: >- + Eine spezifische operative Rolle, Pflicht oder Aufgabe, die für die Verwaltung, + Organisation oder Governance einer Einheit oder eines Systems wesentlich ist. + fr: >- + Un rôle opérationnel, un devoir ou un objectif spécifique essentiel à la gestion, + l'organisation ou la gouvernance d'une entité ou d'un système. + ar: >- + دور تشغيلي محدد أو واجب أو غرض ضروري لإدارة أو تنظيم أو حوكمة كيان أو نظام. + id: >- + Peran operasional, tugas, atau tujuan tertentu yang penting untuk manajemen, + organisasi, atau tata kelola suatu entitas atau sistem. + zh: >- + 对实体或系统的管理、组织或治理至关重要的特定运营角色、职责或目的。 + es: >- + Un rol operativo, deber u objetivo específico esencial para la gestión, + organización o gobernanza de una entidad o sistema. + structured_aliases: + - literal_form: administratieve functie + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Verwaltungsfunktion + predicate: EXACT_SYNONYM + in_language: de + - literal_form: fonction administrative + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: الوظيفة الإدارية + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: fungsi administratif + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 行政职能 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: función administrativa + predicate: EXACT_SYNONYM + in_language: es + range: string + aliases: + - has_or_had_administrative_function + annotations: + custodian_types: '["*"]' + comments: + - MIGRATED 2026-02-03 from has_or_had_administrative_function for conciseness. + - | + **USAGE**: Used to describe functions like HR management, financial administration, + collection management, conservation, etc. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_admission_fee.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_admission_fee.yaml new file mode 100644 index 0000000000..4f75878279 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_admission_fee.yaml @@ -0,0 +1,90 @@ +# ============================================================================== +# LinkML Slot Definition: has_admission_fee +# ============================================================================== +# The fee charged for admission to a venue or event. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------------|-----------------------|---------|----------------------------------------| +# | **Schema.org**| `schema:isAccessibleForFree`| schemaorg.owl:22667 | related | Boolean for free access only | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description, added multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_admission_fee +name: has_admission_fee +title: Has Admission Fee + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + has_admission_fee: + slot_uri: hc:hasAdmissionFee + description: >- + The fee charged for admission to a heritage institution, exhibition, or event. + alt_descriptions: + nl: >- + De toegangsprijs voor een erfgoedinstelling, tentoonstelling of evenement. + de: >- + Die Eintrittsgebühr für eine Kulturerbe-Einrichtung, Ausstellung oder Veranstaltung. + fr: >- + Le prix d'entrée pour une institution patrimoniale, une exposition ou un événement. + ar: >- + رسوم الدخول إلى مؤسسة تراثية أو معرض أو حدث. + id: >- + Biaya masuk ke institusi warisan budaya, pameran, atau acara. + zh: >- + 进入遗产机构、展览或活动的门票费用。 + es: >- + La tarifa de admisión a una institución patrimonial, exposición o evento. + structured_aliases: + - literal_form: toegangsprijs + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Eintrittsgebühr + predicate: EXACT_SYNONYM + in_language: de + - literal_form: prix d'entrée + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: رسوم الدخول + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: biaya masuk + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 入场费 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tarifa de admisión + predicate: EXACT_SYNONYM + in_language: es + range: string + aliases: + - has_or_had_admission_fee + related_mappings: + - schema:isAccessibleForFree # schemaorg.owl:22667-22686 - Boolean flag only, not fee amount + annotations: + custodian_types: '["*"]' + comments: + - MIGRATED 2026-02-03 from has_or_had_admission_fee for conciseness. + - | + **USAGE**: May include various fee types (adult, child, senior, group rates). + Consider using a structured type for complex pricing. + - 'Mapping Note: schema:isAccessibleForFree is related but only indicates free/not free, not the actual fee amount.' + examples: + - value: "€15.00" + description: Standard adult admission fee + - value: "Free for children under 12" + description: Age-based free admission policy diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_affected_territory.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_affected_territory.yaml new file mode 100644 index 0000000000..25cb8b2586 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_affected_territory.yaml @@ -0,0 +1,89 @@ +# ============================================================================== +# LinkML Slot Definition: has_affected_territory +# ============================================================================== +# Territory affected by an event or condition. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------|-----------------------|---------|--------------------------------------------| +# | **Schema.org**| `schema:areaServed` | schemaorg.owl:8403 | close | "Geographic area where service is provided"| +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description, added multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_affected_territory +name: has_affected_territory +title: Has Affected Territory + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + has_affected_territory: + slot_uri: hc:hasAffectedTerritory + description: >- + The geographic territory or region affected by an event, condition, policy, or activity. + alt_descriptions: + nl: >- + Het geografische gebied of de regio die door een gebeurtenis, toestand, beleid + of activiteit wordt beïnvloed. + de: >- + Das geografische Gebiet oder die Region, die von einem Ereignis, Zustand, einer + Politik oder Aktivität betroffen ist. + fr: >- + Le territoire géographique ou la région affectée par un événement, une condition, + une politique ou une activité. + ar: >- + الإقليم الجغرافي أو المنطقة المتأثرة بحدث أو حالة أو سياسة أو نشاط. + id: >- + Wilayah atau region geografis yang terpengaruh oleh suatu peristiwa, kondisi, + kebijakan, atau aktivitas. + zh: >- + 受事件、状况、政策或活动影响的地理区域或地区。 + es: >- + El territorio geográfico o región afectada por un evento, condición, política o actividad. + structured_aliases: + - literal_form: beïnvloed gebied + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: betroffenes Gebiet + predicate: EXACT_SYNONYM + in_language: de + - literal_form: territoire affecté + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: الإقليم المتأثر + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: wilayah terpengaruh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 受影响区域 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: territorio afectado + predicate: EXACT_SYNONYM + in_language: es + range: string + aliases: + - has_or_had_affected_territory + close_mappings: + - schema:areaServed # schemaorg.owl:8403-8425 - "The geographic area where a service is provided" (different semantics) + annotations: + custodian_types: '["*"]' + comments: + - MIGRATED 2026-02-03 from has_or_had_affected_territory for conciseness. + - | + **USAGE**: Used for events like natural disasters, conflicts, policy changes, + or any situation affecting a geographic area relevant to heritage resources. + - 'Mapping Note: schema:areaServed describes service coverage area, while this slot describes territories impacted by conditions/events.' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_affiliation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_affiliation.yaml new file mode 100644 index 0000000000..af364d04db --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_affiliation.yaml @@ -0,0 +1,85 @@ +# ============================================================================== +# LinkML Slot Definition: has_affiliation +# ============================================================================== +# Organization or institution with which an entity is affiliated. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|-----------------------|---------|---------------------------------------------| +# | **Schema.org**| `schema:affiliation` | schemaorg.owl:7418 | exact | "An organization that this person is affiliated with" | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Updated slot_uri to standard, added multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_affiliation +name: has_affiliation +title: Has Affiliation + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + has_affiliation: + slot_uri: schema:affiliation + description: >- + An organization or institution with which this entity has or had an affiliation. + alt_descriptions: + nl: >- + Een organisatie of instelling waarmee deze entiteit een affiliatie heeft of had. + de: >- + Eine Organisation oder Institution, mit der diese Entität verbunden ist oder war. + fr: >- + Une organisation ou institution avec laquelle cette entité a ou a eu une affiliation. + ar: >- + منظمة أو مؤسسة يرتبط بها هذا الكيان أو كان مرتبطاً بها. + id: >- + Organisasi atau institusi yang memiliki atau pernah memiliki afiliasi dengan entitas ini. + zh: >- + 与该实体有或曾有隶属关系的组织或机构。 + es: >- + Una organización o institución con la cual esta entidad tiene o tuvo una afiliación. + structured_aliases: + - literal_form: affiliatie + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Zugehörigkeit + predicate: EXACT_SYNONYM + in_language: de + - literal_form: affiliation + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: انتماء + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: afiliasi + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 隶属关系 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: afiliación + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + aliases: + - has_or_had_affiliation + exact_mappings: + - schema:affiliation # schemaorg.owl:7418-7440 - "An organization that this person is affiliated with" + annotations: + custodian_types: '["*"]' + comments: + - MIGRATED 2026-02-03 from has_or_had_affiliation for conciseness. + - | + **USAGE**: Links persons or organizations to affiliated institutions such as + universities, professional associations, research networks, or consortia. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_age.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_age.yaml new file mode 100644 index 0000000000..8b5c903298 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_age.yaml @@ -0,0 +1,131 @@ +# ============================================================================== +# LinkML Slot Definition: has_age +# ============================================================================== +# Quantifiable measure of time elapsed since an entity's inception or creation. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |------------|------------------|-------------------------|---------|-------------------------------------| +# | **FOAF** | `foaf:age` | foaf.ttl:145-153 | exact | "The age in years of some agent." | +# | | | | | Domain: foaf:Agent | +# | | | | | Range: rdfs:Literal | +# | **Schema** | `schema:duration`| schemaorg.owl:15892-15915| broad | General duration concept | +# | **FOAF** | `foaf:birthday` | foaf.ttl:172-180 | related | Birthday in mm-dd format | +# | **Schema** | `schema:birthDate`| schemaorg.owl:10099-10102| related| Date of birth | +# | **RiC-O** | `rico:birthDate` | RiC-O_1-1.rdf:20891-20892| related| Date of birth for agents | +# +# TEMPORAL SEMANTICS (RiC-O Pattern): +# "hasOrHad" indicates the age is relative to a specific time or context +# (e.g., age at death, age at acquisition, age of artifact at discovery). +# +# RANGE NOTES: +# - Kept as `string` since age is typically a numeric/literal value +# - Can be a simple integer (years) via slot_usage narrowing +# - Can be an `Age` class for structured representation (e.g. range, unit) +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added broad_mappings and related_mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_age +name: has_age +title: has age + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + foaf: http://xmlns.com/foaf/0.1/ + schema: http://schema.org/ + rico: https://www.ica.org/standards/RiC/ontology# + +imports: + - linkml:types + +default_prefix: hc + +slots: + has_age: + slot_uri: foaf:age + description: >- + To possess a quantifiable measure of the time elapsed since an entity's inception or creation. + alt_descriptions: + nl: >- + Het bezitten van een kwantificeerbare maat voor de tijd verstreken sinds het ontstaan of de creatie van een entiteit. + de: >- + Eine quantifizierbare Messung der seit der Entstehung oder Schaffung einer Entität verstrichenen Zeit besitzen. + fr: >- + Posséder une mesure quantifiable du temps écoulé depuis la création ou l'origine d'une entité. + ar: >- + امتلاك مقياس قابل للقياس للوقت المنقضي منذ نشأة أو إنشاء كيان. + id: >- + Memiliki ukuran yang dapat dikuantifikasi dari waktu yang telah berlalu sejak awal atau penciptaan suatu entitas. + zh: >- + 拥有自实体诞生或创建以来经过时间的可量化度量。 + es: >- + Poseer una medida cuantificable del tiempo transcurrido desde el inicio o creación de una entidad. + range: string + multivalued: false + required: false + exact_mappings: + - foaf:age # foaf.ttl:145-153 - "The age in years of some agent" + broad_mappings: + - schema:duration # schemaorg.owl:15892-15915 - general duration concept; age is a specific duration + related_mappings: + - foaf:birthday # foaf.ttl:172-180 - birthday in mm-dd format + - schema:birthDate # schemaorg.owl:10099-10102 - date of birth + - rico:birthDate # RiC-O_1-1.rdf:20891-20892 - date of birth for agents + aliases: + - has_or_had_age + structured_aliases: + - literal_form: heeft leeftijd + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Alter + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a l'âge de + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: له عمر + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki usia + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有年龄 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene edad + predicate: EXACT_SYNONYM + in_language: es + examples: + - value: "42" + description: Age of a person in years + - value: "150" + description: Age of a historical artifact in years + - value: "2500" + description: Age of an archaeological object in years + annotations: + custodian_types: '["*"]' + comments: + - Updated 2026-02-03 with broad/related mappings + - | + **Temporal Semantics** (RiC-O Pattern): + "hasOrHad" indicates the age is relative to a specific time or context + (e.g., age at death, age at acquisition). + - | + **Range Notes**: + - Kept as `string` since age is typically a numeric/literal value + - Can be a simple integer (years) via slot_usage narrowing + - Can be an `Age` class for structured representation (e.g. range, unit) + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **FOAF** | `foaf:age` | 145-153 | exact | "The age in years of some agent" | + | **Schema** | `schema:duration` | 15892-15915 | broad | General duration concept | + | **FOAF** | `foaf:birthday` | 172-180 | related | Birthday in mm-dd format | + | **Schema** | `schema:birthDate` | 10099-10102 | related | Date of birth | + | **RiC-O** | `rico:birthDate` | 20891-20892 | related | Date of birth for agents | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_agent.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_agent.yaml new file mode 100644 index 0000000000..29919e9b84 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_agent.yaml @@ -0,0 +1,101 @@ +# ============================================================================== +# LinkML Slot Definition: has_agent +# ============================================================================== +# An active entity (person, organization, system) that performs actions or holds roles. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|---------------------------|-----------------------|---------|----------------------------------------------| +# | **PROV-O** | `prov:wasAssociatedWith` | prov.ttl:1066-1080 | close | Links Activity to Agent with responsibility | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support, verified mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_agent +name: has_agent +title: Has Agent + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + has_agent: + slot_uri: hc:hasAgent + description: >- + An active entity, such as a person, organization, or system, that performs an action, + bears responsibility, or holds a specific role regarding the subject. + alt_descriptions: + nl: >- + Een actieve entiteit, zoals een persoon, organisatie of systeem, die een actie + uitvoert, verantwoordelijkheid draagt, of een specifieke rol vervult met betrekking + tot het onderwerp. + de: >- + Eine aktive Entität, wie eine Person, Organisation oder ein System, die eine Aktion + ausführt, Verantwortung trägt oder eine bestimmte Rolle in Bezug auf das Subjekt innehat. + fr: >- + Une entité active, telle qu'une personne, une organisation ou un système, qui + effectue une action, assume une responsabilité ou détient un rôle spécifique + concernant le sujet. + ar: >- + كيان نشط مثل شخص أو منظمة أو نظام يقوم بإجراء أو يتحمل مسؤولية أو يحمل دوراً + محدداً فيما يتعلق بالموضوع. + id: >- + Entitas aktif, seperti orang, organisasi, atau sistem, yang melakukan tindakan, + menanggung tanggung jawab, atau memiliki peran tertentu terkait subjek. + zh: >- + 一个活动实体,如个人、组织或系统,执行某项行动、承担责任或在与主题相关的方面担任特定角色。 + es: >- + Una entidad activa, como una persona, organización o sistema, que realiza una + acción, asume responsabilidad o desempeña un rol específico respecto al sujeto. + structured_aliases: + - literal_form: heeft agent + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Akteur + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a un agent + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: لديه وكيل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki agen + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有代理 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene agente + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + aliases: + - has_or_had_agent + close_mappings: + - prov:wasAssociatedWith # prov.ttl:1066-1080 - "An Agent that had responsibility for the occurrence of this Activity" + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + comments: + - | + **USAGE**: General agent relationship for linking entities to actors responsible + for activities, decisions, or roles. For more specific relationships, use + specialized slots like created_by, managed_by, etc. + - 'Mapping Note: prov:wasAssociatedWith links Activity→Agent; this slot is more general.' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_alignment.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_alignment.yaml new file mode 100644 index 0000000000..f8b167f451 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_alignment.yaml @@ -0,0 +1,88 @@ +# ============================================================================== +# LinkML Slot Definition: has_alignment +# ============================================================================== +# Alignment or mapping associated with the entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------|------------------|---------|----------------------------------| +# | (none found) | - | - | - | GLAM domain-specific alignment | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_alignment +name: has_alignment +title: Has Alignment + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +imports: + - linkml:types + +slots: + has_alignment: + slot_uri: hc:hasAlignment + description: >- + An alignment or mapping that associates this entity with external vocabularies, + ontologies, or other semantic resources. + alt_descriptions: + nl: >- + Een alignment of mapping die deze entiteit associeert met externe vocabulaires, + ontologieën of andere semantische bronnen. + de: >- + Ein Alignment oder eine Zuordnung, die diese Entität mit externen Vokabularen, + Ontologien oder anderen semantischen Ressourcen verknüpft. + fr: >- + Un alignement ou mappage qui associe cette entité à des vocabulaires externes, + des ontologies ou d'autres ressources sémantiques. + ar: >- + محاذاة أو تعيين يربط هذا الكيان بالمفردات الخارجية أو الأنطولوجيات أو الموارد + الدلالية الأخرى. + id: >- + Penyelarasan atau pemetaan yang mengasosiasikan entitas ini dengan kosakata + eksternal, ontologi, atau sumber daya semantik lainnya. + zh: >- + 将此实体与外部词汇表、本体或其他语义资源相关联的对齐或映射。 + es: >- + Una alineación o mapeo que asocia esta entidad con vocabularios externos, + ontologías u otros recursos semánticos. + structured_aliases: + - literal_form: alignment + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Ausrichtung + predicate: EXACT_SYNONYM + in_language: de + - literal_form: alignement + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: محاذاة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: penyelarasan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 对齐 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: alineación + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + aliases: + - has_or_had_alignment + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Used to link entities to their semantic alignments, such as SKOS + mappings, ontology alignments, or vocabulary crosswalks. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_alternative_observed_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_alternative_observed_name.yaml new file mode 100644 index 0000000000..4fef82836c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_alternative_observed_name.yaml @@ -0,0 +1,93 @@ +# ============================================================================== +# LinkML Slot Definition: has_alternative_observed_name +# ============================================================================== +# An alternative name that has been observed or documented for an entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------------|-----------------------|---------|------------------------------| +# | **Schema.org**| `schema:alternateName` | schemaorg.owl:7757 | close | "An alias for the item" | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description, added multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_alternative_observed_name +name: has_alternative_observed_name +title: Has Alternative Observed Name + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + +default_prefix: hc + +imports: + - linkml:types + +slots: + has_alternative_observed_name: + slot_uri: hc:hasAlternativeObservedName + description: >- + An alternative name that has been observed, documented, or recorded for an entity + through historical records, usage patterns, or external sources. + alt_descriptions: + nl: >- + Een alternatieve naam die is waargenomen, gedocumenteerd of geregistreerd voor + een entiteit via historische documenten, gebruikspatronen of externe bronnen. + de: >- + Ein alternativer Name, der für eine Entität durch historische Aufzeichnungen, + Verwendungsmuster oder externe Quellen beobachtet, dokumentiert oder erfasst wurde. + fr: >- + Un nom alternatif qui a été observé, documenté ou enregistré pour une entité + à travers des documents historiques, des modèles d'utilisation ou des sources externes. + ar: >- + اسم بديل تم ملاحظته أو توثيقه أو تسجيله لكيان من خلال السجلات التاريخية أو + أنماط الاستخدام أو المصادر الخارجية. + id: >- + Nama alternatif yang telah diamati, didokumentasikan, atau dicatat untuk suatu + entitas melalui catatan historis, pola penggunaan, atau sumber eksternal. + zh: >- + 通过历史记录、使用模式或外部来源观察、记录或登记的实体的替代名称。 + es: >- + Un nombre alternativo que ha sido observado, documentado o registrado para una + entidad a través de registros históricos, patrones de uso o fuentes externas. + structured_aliases: + - literal_form: alternatieve waargenomen naam + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: alternativer beobachteter Name + predicate: EXACT_SYNONYM + in_language: de + - literal_form: nom alternatif observé + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: الاسم البديل الملاحظ + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: nama alternatif teramati + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 观察到的替代名称 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: nombre alternativo observado + predicate: EXACT_SYNONYM + in_language: es + range: string + aliases: + - has_or_had_alternative_observed_name + close_mappings: + - schema:alternateName # schemaorg.owl:7757-7777 - "An alias for the item" (more general) + - skos:altLabel + annotations: + custodian_types: '["*"]' + comments: + - MIGRATED 2026-02-03 from has_or_had_alternative_observed_name for conciseness. + - | + **USAGE**: Captures variant names observed in sources, such as historical spellings, + transliterations, or informal names used in different contexts. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_altitude.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_altitude.yaml new file mode 100644 index 0000000000..6fc60c53e3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_altitude.yaml @@ -0,0 +1,88 @@ +# ============================================================================== +# LinkML Slot Definition: has_altitude +# ============================================================================== +# The altitude or elevation of a location. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|---------------------|-----------------------|---------|-----------------------------------------| +# | **Schema.org**| `schema:elevation` | schemaorg.owl:16243 | exact | "The elevation of a location (WGS 84)" | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Updated slot_uri to standard, added multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_altitude +name: has_altitude +title: Has Altitude + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + has_altitude: + slot_uri: schema:elevation + description: >- + The altitude or elevation of a location, typically measured in meters above sea level. + alt_descriptions: + nl: >- + De hoogte of elevatie van een locatie, doorgaans gemeten in meters boven zeeniveau. + de: >- + Die Höhe oder Elevation eines Standorts, typischerweise gemessen in Metern über + dem Meeresspiegel. + fr: >- + L'altitude ou l'élévation d'un lieu, généralement mesurée en mètres au-dessus + du niveau de la mer. + ar: >- + الارتفاع أو المنسوب لموقع ما، يُقاس عادةً بالأمتار فوق مستوى سطح البحر. + id: >- + Ketinggian atau elevasi suatu lokasi, biasanya diukur dalam meter di atas + permukaan laut. + zh: >- + 位置的海拔高度,通常以海拔米数测量。 + es: >- + La altitud o elevación de una ubicación, típicamente medida en metros sobre + el nivel del mar. + structured_aliases: + - literal_form: hoogte + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Höhe + predicate: EXACT_SYNONYM + in_language: de + - literal_form: altitude + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: الارتفاع + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: ketinggian + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 海拔 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: altitud + predicate: EXACT_SYNONYM + in_language: es + range: float + aliases: + - has_or_had_altitude + exact_mappings: + - schema:elevation # schemaorg.owl:16243-16265 - "The elevation of a location (WGS 84)" + annotations: + custodian_types: '["*"]' + comments: + - MIGRATED 2026-02-03 from has_or_had_altitude for conciseness. + - | + **USAGE**: Values should be in meters unless otherwise specified. Follows + WGS 84 geodetic system conventions. diff --git a/schemas/20251121/linkml/modules/slots/archive/has_amendment_history.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_amendment_history.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/has_amendment_history.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_amendment_history.yaml index 98e51b6fca..bbec405689 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_amendment_history.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_amendment_history.yaml @@ -21,6 +21,8 @@ slots: range: string multivalued: true slot_uri: prov:wasRevisionOf + aliases: + - has_or_had_amendment_history exact_mappings: - prov:wasRevisionOf close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_animal_species_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_animal_species_count.yaml new file mode 100644 index 0000000000..8c83d6f2d8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_animal_species_count.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_animal_species_count +name: has_animal_species_count +title: has_animal_species_count +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_animal_species_count: + name: has_animal_species_count + description: Count of animal species. MIGRATED 2026-02-03 from has_or_had_animal_species_count for conciseness. + slot_uri: hc:hasAnimalSpeciesCount + range: integer + aliases: + - has_or_had_animal_species_count + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/has_annex_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_annex_description.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/has_annex_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_annex_description.yaml index d46d4d8c5a..97c5d1ae50 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_annex_description.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_annex_description.yaml @@ -27,6 +27,8 @@ slots: ' range: string slot_uri: schema:description + aliases: + - has_or_had_annex_description exact_mappings: - schema:description close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_annex_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_annex_name.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/has_annex_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_annex_name.yaml index fd592305cc..93dbd7abf7 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_annex_name.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_annex_name.yaml @@ -22,6 +22,8 @@ slots: ' range: string slot_uri: schema:name + aliases: + - has_or_had_annex_name exact_mappings: - schema:name close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_annex_reason.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_annex_reason.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/has_annex_reason.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_annex_reason.yaml index 65c3a5a714..a1d8a96985 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_annex_reason.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_annex_reason.yaml @@ -29,6 +29,8 @@ slots: ' range: string slot_uri: dcterms:description + aliases: + - has_or_had_annex_reason close_mappings: - dcterms:description - skos:note diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_annotation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_annotation.yaml new file mode 100644 index 0000000000..6338b6032f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_annotation.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/has_annotation +name: has_annotation +title: has annotation +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_annotation: + slot_uri: hc:hasAnnotation + description: 'An annotation on the entity. + + + MIGRATED 2026-02-03 from has_or_had_annotation for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_annotation + exact_mappings: + - oa:hasAnnotation + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/has_appellation_language.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_appellation_language.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/has_appellation_language.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_appellation_language.yaml index 35638d12e1..f5c1428e31 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_appellation_language.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_appellation_language.yaml @@ -18,6 +18,8 @@ slots: ' range: string slot_uri: dcterms:language + aliases: + - has_or_had_appellation_language exact_mappings: - dcterms:language close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_appellation_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_appellation_type.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/has_appellation_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_appellation_type.yaml index 023a8c0846..b6e59cb1f6 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_appellation_type.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_appellation_type.yaml @@ -18,6 +18,8 @@ slots: ' range: string slot_uri: crm:P2_has_type + aliases: + - has_or_had_appellation_type exact_mappings: - crm:P2_has_type close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_appellation_value.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_appellation_value.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/has_appellation_value.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_appellation_value.yaml index 446129c026..53e94543ea 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_appellation_value.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_appellation_value.yaml @@ -19,6 +19,8 @@ slots: ' range: string slot_uri: rdfs:label + aliases: + - has_or_had_appellation_value exact_mappings: - rdfs:label close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_applicable_country.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_applicable_country.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/has_applicable_country.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_applicable_country.yaml index 8907ba4633..aadc9102a0 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_applicable_country.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_applicable_country.yaml @@ -17,6 +17,8 @@ slots: range: string multivalued: true slot_uri: schema:areaServed + aliases: + - has_or_had_applicable_country exact_mappings: - schema:areaServed close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_application_deadline.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_application_deadline.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/has_application_deadline.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_application_deadline.yaml index 374b26372d..9828848136 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_application_deadline.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_application_deadline.yaml @@ -17,6 +17,8 @@ slots: ' range: date slot_uri: schema:applicationDeadline + aliases: + - has_or_had_application_deadline exact_mappings: - schema:applicationDeadline close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_application_opening_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_application_opening_date.yaml similarity index 93% rename from schemas/20251121/linkml/modules/slots/archive/has_application_opening_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_application_opening_date.yaml index 9a50edb678..b50c53c523 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_application_opening_date.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_application_opening_date.yaml @@ -14,6 +14,8 @@ slots: Date when applications open. range: date slot_uri: schema:startDate + aliases: + - has_or_had_application_opening_date exact_mappings: - schema:startDate close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_appraisal_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_appraisal_note.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/has_appraisal_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_appraisal_note.yaml index a148d68246..c873a6227b 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_appraisal_note.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_appraisal_note.yaml @@ -31,6 +31,8 @@ slots: range: string multivalued: true slot_uri: rico:scopeAndContent + aliases: + - has_or_had_appraisal_note close_mappings: - rico:scopeAndContent - skos:note diff --git a/schemas/20251121/linkml/modules/slots/archive/has_approval_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_approval_date.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/has_approval_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_approval_date.yaml index a090d29fa2..640d7db832 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_approval_date.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_approval_date.yaml @@ -20,6 +20,8 @@ slots: ' range: date slot_uri: dcterms:dateAccepted + aliases: + - has_or_had_approval_date exact_mappings: - dcterms:dateAccepted close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_archdiocese_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_archdiocese_name.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/has_archdiocese_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_archdiocese_name.yaml index 95aff8ff8a..45d2c3566c 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_archdiocese_name.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_archdiocese_name.yaml @@ -18,6 +18,8 @@ slots: ' range: string slot_uri: schema:name + aliases: + - has_or_had_archdiocese_name close_mappings: - schema:name - rdfs:label diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_architect.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_architect.yaml new file mode 100644 index 0000000000..cb48ab6eab --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_architect.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_architect +name: has_architect +title: has_architect +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_architect: + name: has_architect + description: The architect of a building. MIGRATED 2026-02-03 from has_or_had_architect for conciseness. + slot_uri: hc:hasArchitect + range: string + aliases: + - has_or_had_architect + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/has_archival_reference.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_archival_reference.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/has_archival_reference.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_archival_reference.yaml index c4e4f447a4..8f0c9ff8fe 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_archival_reference.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_archival_reference.yaml @@ -17,6 +17,8 @@ slots: ' range: string slot_uri: rico:identifier + aliases: + - has_or_had_archival_reference exact_mappings: - rico:identifier close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_archive.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_archive.yaml new file mode 100644 index 0000000000..f5d1a236ec --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_archive.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/has_archive +name: has_archive +title: has archive +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_archive: + slot_uri: hc:hasArchive + description: 'Archive associated with an entity. + + + MIGRATED 2026-02-03 from has_or_had_archive for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_archive + exact_mappings: + - schema:archiveHeld + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/has_archive_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_archive_description.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/has_archive_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_archive_description.yaml index c8a2f91931..be15279607 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_archive_description.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_archive_description.yaml @@ -34,6 +34,8 @@ slots: ' range: string slot_uri: rico:scopeAndContent + aliases: + - has_or_had_archive_description exact_mappings: - rico:scopeAndContent close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_archive_memento_uri.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_archive_memento_uri.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/has_archive_memento_uri.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_archive_memento_uri.yaml index 0b57677d63..ee884889a7 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_archive_memento_uri.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_archive_memento_uri.yaml @@ -15,6 +15,8 @@ slots: URI of archived/memento version (Web Archive). range: uri slot_uri: schema:archivedAt + aliases: + - has_or_had_archive_memento_uri exact_mappings: - schema:archivedAt close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_archive_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_archive_name.yaml similarity index 96% rename from schemas/20251121/linkml/modules/slots/archive/has_archive_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_archive_name.yaml index 63a3d1f6a2..e7431e217b 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_archive_name.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_archive_name.yaml @@ -30,6 +30,8 @@ slots: ' range: string slot_uri: schema:name + aliases: + - has_or_had_archive_name exact_mappings: - schema:name close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_archive_search_score.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_archive_search_score.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/has_archive_search_score.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_archive_search_score.yaml index 311bd60bc8..011aa04e3d 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_archive_search_score.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_archive_search_score.yaml @@ -19,6 +19,8 @@ slots: observation systems. range: float slot_uri: sosa:hasSimpleResult + aliases: + - has_or_had_archive_search_score close_mappings: - prov:value annotations: diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_arrangement.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_arrangement.yaml new file mode 100644 index 0000000000..f5c231d880 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_arrangement.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_arrangement +name: has_arrangement +title: has_arrangement +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_arrangement: + name: has_arrangement + description: An arrangement or organization scheme. MIGRATED 2026-02-03 from has_or_had_arrangement for conciseness. + slot_uri: hc:hasArrangement + range: string + aliases: + - has_or_had_arrangement + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_arrangement_level.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_arrangement_level.yaml new file mode 100644 index 0000000000..7bb5a844d6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_arrangement_level.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/has_arrangement_level +name: has_arrangement_level +title: has arrangement level +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_arrangement_level: + slot_uri: hc:hasArrangementLevel + description: 'The level of arrangement of the record set or information carrier. + + + MIGRATED 2026-02-03 from has_or_had_arrangement_level for conciseness.' + range: string + multivalued: false + aliases: + - has_or_had_arrangement_level + exact_mappings: + - isad:level_of_description + close_mappings: + - rico:RecordSetType + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/has_arrangement_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_arrangement_note.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/has_arrangement_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_arrangement_note.yaml index 9390b65daa..59410af9bb 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_arrangement_note.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_arrangement_note.yaml @@ -31,6 +31,8 @@ slots: range: string multivalued: true slot_uri: skos:note + aliases: + - has_or_had_arrangement_note exact_mappings: - skos:note close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_articles_archival_stage.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_articles_archival_stage.yaml similarity index 96% rename from schemas/20251121/linkml/modules/slots/archive/has_articles_archival_stage.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_articles_archival_stage.yaml index 6beb64a206..6d97104f22 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_articles_archival_stage.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_articles_archival_stage.yaml @@ -47,6 +47,8 @@ slots: ' range: string slot_uri: rico:hasRecordState + aliases: + - has_or_had_articles_archival_stage close_mappings: - rico:hasRecordState annotations: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_articles_document_format.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_articles_document_format.yaml similarity index 93% rename from schemas/20251121/linkml/modules/slots/archive/has_articles_document_format.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_articles_document_format.yaml index b35d1addb0..2a16cd405c 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_articles_document_format.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_articles_document_format.yaml @@ -19,6 +19,8 @@ slots: ' range: string slot_uri: dcterms:format + aliases: + - has_or_had_articles_document_format exact_mappings: - dcterms:format close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_articles_document_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_articles_document_url.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/has_articles_document_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_articles_document_url.yaml index 93d44482f2..476f51bcfd 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_articles_document_url.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_articles_document_url.yaml @@ -24,6 +24,8 @@ slots: ' range: uri slot_uri: schema:url + aliases: + - has_or_had_articles_document_url exact_mappings: - schema:url close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_articles_of_association.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_articles_of_association.yaml similarity index 97% rename from schemas/20251121/linkml/modules/slots/archive/has_articles_of_association.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_articles_of_association.yaml index f7a0f73575..5734a0537b 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_articles_of_association.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_articles_of_association.yaml @@ -72,6 +72,8 @@ slots: ' range: string # uriorcurie + aliases: + - has_or_had_articles_of_association # range: ArticlesOfAssociation multivalued: true slot_uri: hc:hasArticlesOfAssociation diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_artwork_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_artwork_count.yaml new file mode 100644 index 0000000000..18b5dbafad --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_artwork_count.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/has_artwork_count +name: has_artwork_count +title: has_artwork_count +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_artwork_count: + name: has_artwork_count + description: 'Number of artworks/sculptures on display (for sculpture gardens). + + MIGRATED 2026-02-03: Renamed from has_or_had_artwork_count for conciseness.' + range: integer + slot_uri: hc:hasArtworkCount + aliases: + - has_or_had_artwork_count + close_mappings: + - schema:numberOfItems + comments: + - schema:numberOfItems is defined for ItemList, not heritage collections. Close but not exact - ItemList is a Schema.org concept for ordered lists. + annotations: + custodian_types: '["G", "M"]' + custodian_types_rationale: Applicable to galleries and museums with art collections. + custodian_types_primary: M + specificity_score: 0.8 + specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_assessment.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_assessment.yaml new file mode 100644 index 0000000000..c39c09dff0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_assessment.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_assessment +name: has_assessment +title: has_assessment +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_assessment: + name: has_assessment + description: An assessment or evaluation. MIGRATED 2026-02-03 from has_or_had_assessment for conciseness. + slot_uri: hc:hasAssessment + range: string + aliases: + - has_or_had_assessment + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_asset.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_asset.yaml new file mode 100644 index 0000000000..4cd4ae5153 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_asset.yaml @@ -0,0 +1,179 @@ +# ============================================================================== +# LinkML Slot Definition: has_asset +# ============================================================================== +# Possess a resource with economic value that is owned or controlled with the +# expectation of future benefit. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **ODRL** | `odrl:Asset` | odrl.ttl:387-392 | related | Asset class (not property) | +# | **Schema.org**| `schema:owns` | schemaorg.owl:28732 | close | Ownership of things | +# | **Schema.org**| `schema:ownedThrough` | schemaorg.owl | related | Ownership via event | +# | **RiC-O** | `rico:hasOrHadHolder` | RiC-O_1-1:6437 | related | Holder relationship | +# | **CIDOC-CRM** | `crm:P52_has_current_owner` | CIDOC_CRM | related | Current ownership | +# +# CREATED: 2026-01-16 +# UPDATED: 2026-02-02 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_asset +name: has_asset +title: has asset +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + rico: https://www.ica.org/standards/RiC/ontology# + odrl: http://www.w3.org/ns/odrl/2/ + crm: http://www.cidoc-crm.org/cidoc-crm/ +default_prefix: hc +imports: + - linkml:types +slots: + has_asset: + slot_uri: hc:hasAsset + description: >- + To possess a resource with economic value that is owned or controlled + with the expectation of future benefit. + alt_descriptions: + nl: >- + Het bezitten van een bron met economische waarde die eigendom is of + gecontroleerd wordt met de verwachting van toekomstig voordeel. + de: >- + Das Besitzen einer Ressource mit wirtschaftlichem Wert, die im + Eigentum steht oder kontrolliert wird, in Erwartung eines + zukünftigen Nutzens. + fr: >- + Posséder une ressource ayant une valeur économique, détenue ou + contrôlée dans l'attente d'un bénéfice futur. + ar: >- + امتلاك مورد ذي قيمة اقتصادية يُملك أو يُسيطر عليه مع توقع + فائدة مستقبلية. + id: >- + Memiliki sumber daya dengan nilai ekonomi yang dimiliki atau + dikendalikan dengan harapan manfaat di masa depan. + zh: >- + 拥有具有经济价值的资源,该资源被拥有或控制,并期望获得未来利益。 + es: >- + Poseer un recurso con valor económico que es propiedad o está + controlado con la expectativa de beneficio futuro. + structured_aliases: + - literal_form: heeft activa + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Vermögenswert + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a un actif + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: لديه أصل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki aset + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 拥有资产 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene activo + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + + # VERIFIED MAPPINGS (2026-02-02) + # Source files: data/ontology/odrl.ttl, data/ontology/schemaorg.owl, + # data/ontology/RiC-O_1-1.rdf, data/ontology/CIDOC_CRM_v7.1.3.rdf + + close_mappings: + # schemaorg.owl line 28732-28736: owns + # "Products owned by the organization or person." + # Close: ownership semantics, but schema:owns is for products/things + - schema:owns # from schemaorg.owl - ownership of products/things + + related_mappings: + # RiC-O_1-1.rdf line 6437: hasOrHadHolder + # "Connects a Record Resource or Instantiation to an Agent that holds it" + # Related: holding/custody relationship, broader than asset ownership + - rico:hasOrHadHolder # from RiC-O_1-1.rdf - holder relationship + + # CIDOC_CRM_v7.1.3.rdf: P52_has_current_owner + # "This property identifies the instance of E21 Person or E74 Group that + # was the owner of an instance of E18 Physical Thing at the time of validity" + # Related: current ownership of physical things + - crm:P52_has_current_owner # from CIDOC_CRM - current owner of physical thing + + # CIDOC_CRM_v7.1.3.rdf: P51_has_former_or_current_owner + # Broader ownership including historical owners + - crm:P51_has_former_or_current_owner # from CIDOC_CRM - ownership history + + aliases: + - has_or_had_asset + - owns_asset + - possesses_asset + + annotations: + custodian_types: '["*"]' + custodian_types_rationale: >- + Asset ownership applicable to all heritage custodian types for + financial reporting and resource management. + specificity_score: 0.35 + specificity_rationale: >- + Moderate specificity - assets are a general financial/accounting + concept applicable to all organizations. + + examples: + - value: https://example.org/asset/building-main-museum + description: Museum's main building as a fixed asset + - value: https://example.org/asset/endowment-fund + description: Foundation's endowment fund as a financial asset + - value: https://example.org/asset/collection-dutch-masters + description: Museum's Dutch Masters collection as an asset + - value: hc:Asset/total-assets-2023 + description: Total assets at end of fiscal year 2023 + + comments: + - Updated 2026-02-02 with verified ontology mappings and translations + - | + **PURPOSE**: + Captures asset ownership for heritage institutions. Assets are resources + with economic value owned or controlled by an organization with the + expectation of future benefit. Used for financial reporting and + resource management. + - | + **RiC-O NAMING** (Rule 39): + Uses "has_or_had_asset" alias to indicate temporal relationship - + an organization has assets currently or had them in the past + (assets may be sold, transferred, or written off over time). + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **Schema.org** | `schema:owns` | 28732 | close | Ownership of things | + | **RiC-O** | `rico:hasOrHadHolder` | 6437 | related | Holder relationship | + | **CIDOC-CRM** | `crm:P52_has_current_owner` | - | related | Current owner | + | **CIDOC-CRM** | `crm:P51_has_former_or_current_owner` | - | related | Ownership history | + - | + **FINANCIAL STATEMENT CONTEXT**: + Assets = Liabilities + Net Assets (Statement of Financial Position) + + Used for: + - Total assets on balance sheet + - Fixed assets (buildings, equipment) + - Current assets (cash, receivables) + - Intangible assets (intellectual property) + - Collection assets (artwork, artifacts) + - | + **ODRL NOTE**: + ODRL defines `odrl:Asset` as a class, not a property. In ODRL, an Asset + is "any form of identifiable resource, such as data/information, + content/media, applications, or services." This slot captures the + relationship of having/owning assets rather than the Asset class itself. + + see_also: + - https://schema.org/owns + - https://www.w3.org/ns/odrl/2/Asset diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_audio.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_audio.yaml new file mode 100644 index 0000000000..e376150354 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_audio.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_audio +name: has_audio +title: has_audio +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_audio: + name: has_audio + description: An audio resource. MIGRATED 2026-02-03 from has_or_had_audio for conciseness. + slot_uri: hc:hasAudio + range: string + aliases: + - has_or_had_audio + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_author.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_author.yaml new file mode 100644 index 0000000000..bde7dffd20 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_author.yaml @@ -0,0 +1,40 @@ +# ============================================================================== +# LinkML Slot Definition: has_author +# ============================================================================== +# Author of an entity. +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_author +name: has_author +title: Has Author +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Author of an entity. +imports: +- linkml:types +slots: + has_author: + slot_uri: dcterms:creator + description: | + Author of an entity. + range: string + multivalued: true + exact_mappings: + - dcterms:creator + close_mappings: + - schema:author + aliases: + - has_or_had_author + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_author_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_author_name.yaml new file mode 100644 index 0000000000..c298eb6371 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_author_name.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/has_author_name +name: has_author_name +title: has author name +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_author_name: + slot_uri: hc:hasAuthorName + description: 'Name of the author (string value). + + + MIGRATED 2026-02-03 from has_or_had_author_name for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_author_name + related_mappings: + - schema:author + annotations: + custodian_types: '["*"]' + specificity_score: 0.3 diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_authority.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_authority.yaml new file mode 100644 index 0000000000..64e13cc0a9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_authority.yaml @@ -0,0 +1,48 @@ +id: https://nde.nl/ontology/hc/slot/has_authority +name: has_authority +title: has authority +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_authority: + slot_uri: hc:hasAuthority + description: 'Authority information for a name, classification, catalog entry, + or organization. + + + Used for: + + 1. Taxonomic authorship (dwc:scientificNameAuthorship) + + 2. Governance authority (org:linkedTo) + + + Range is broadened to uriorcurie per Rule 55. + + + + MIGRATED 2026-02-03 from has_or_had_authority for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_authority + exact_mappings: + - prov:wasAttributedTo + close_mappings: + - dwc:scientificNameAuthorship + - schema:author + - schema:parentOrganization + annotations: + replaces_slot: taxonomic_authority, governance_authority + migration_date: '2026-01-26' + migration_rule: Rule 53/56 - bespoke to generic slot migration + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_auxiliary_entities.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_auxiliary_entities.yaml new file mode 100644 index 0000000000..eef0742646 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_auxiliary_entities.yaml @@ -0,0 +1,55 @@ +id: https://nde.nl/ontology/hc/slot/has_auxiliary_entities +name: has_auxiliary_entities +title: has_auxiliary_entities +description: "Generic slot for auxiliary/supporting entities associated with a primary entity.\n\nCREATED as part of slot migration (Rule 53) to replace:\n- `auxiliary_places` → range: AuxiliaryPlace\n- `auxiliary_platforms` → range: AuxiliaryPlatform\n\nMIGRATED 2026-02-03: Renamed from has_or_had_auxiliary_entities for conciseness.\n" +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_auxiliary_entities: + name: has_auxiliary_entities + description: 'Auxiliary or supporting entities associated with the primary entity. + + **SEMANTIC PATTERN**: + + This slot follows the RiC-O temporal predicate pattern to indicate that auxiliary relationships may change over time. + + **REPLACES**: + + - `auxiliary_places` - Physical locations supporting the main entity - `auxiliary_platforms` - Digital platforms supporting the main entity + + **USE CASES**: + + 1. **Storage locations**: Off-site storage, external repositories 2. **Branch facilities**: Satellite offices, reading rooms 3. **Partner platforms**: External discovery services, aggregators' + slot_uri: hc:hasAuxiliaryEntities + range: string + multivalued: true + aliases: + - has_or_had_auxiliary_entities + exact_mappings: + - rico:hasOrHadPart + close_mappings: + - schema:hasPart + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.4 + specificity_rationale: Broadly applicable auxiliary entity relationship. + examples: + - value: hc:auxiliary-place/rijksmuseum-depot-amersfoort + description: Off-site storage depot + - value: hc:auxiliary-platform/europeana-aggregation + description: External discovery platform diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_auxiliary_platform.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_auxiliary_platform.yaml new file mode 100644 index 0000000000..1192280b68 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_auxiliary_platform.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_auxiliary_platform +name: has_auxiliary_platform +title: has_auxiliary_platform +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_auxiliary_platform: + name: has_auxiliary_platform + description: An auxiliary platform. MIGRATED 2026-02-03 from has_or_had_auxiliary_platform for conciseness. + slot_uri: hc:hasAuxiliaryPlatform + range: string + aliases: + - has_or_had_auxiliary_platform + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_base.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_base.yaml new file mode 100644 index 0000000000..0c5f1a2ed4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_base.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/has_base +name: has_base +title: has_base +description: "Generic slot for base/root component relationships. + **USE CASES**: - LastName has_base BaseName (surname has base form for sorting) - Identifier has_base BaseIdentifier (identifier has root component) + **EXAMPLE**: Dutch surname \"van der Berg\" - LastName.has_base → BaseName(\"Berg\") - Used for alphabetical sorting under \"B\" + MIGRATED 2026-02-03: Renamed from has_or_had_base for conciseness." +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + pnv: https://w3id.org/pnv# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_base: + name: has_base + slot_uri: hc:hasBase + range: string + description: Generic slot for base/root component. Indicates the base or root form of a structured entity. + aliases: + - has_or_had_base + close_mappings: + - pnv:baseSurname + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + specificity_rationale: Moderately specific - used primarily in name and identifier components. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_beneficiary.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_beneficiary.yaml new file mode 100644 index 0000000000..356a0c0785 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_beneficiary.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/has_beneficiary +name: has_beneficiary +title: has_beneficiary +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_beneficiary: + name: has_beneficiary + description: 'Who benefits or benefited from the organization''s programs and services. + + Identifies target populations. Beneficiary categories include: + - Heritage organizations: Museums, archives, libraries, societies + - Heritage professionals: Conservators, curators, archivists, educators + - Local communities: Residents near heritage sites, indigenous peoples + - Policy makers: Government officials, legislators, planners + - Students and researchers: Academic community + - General public: Tourists, volunteers, heritage enthusiasts + - Property owners: Private owners of heritage buildings + + MIGRATED 2026-02-03: Renamed from has_or_had_beneficiary for conciseness.' + range: string + multivalued: true + slot_uri: hc:hasBeneficiary + aliases: + - has_or_had_beneficiary + exact_mappings: + - schema:audience + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_benefit.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_benefit.yaml new file mode 100644 index 0000000000..5a4d97eee5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_benefit.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/has_benefit +name: has_benefit +title: has_benefit +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_benefit: + name: has_benefit + title: has_benefit + description: Benefit or advantage associated with the entity. + slot_uri: hc:hasBenefit + range: string # uriorcurie + multivalued: true + aliases: + - has_or_had_benefit + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_boundary.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_boundary.yaml new file mode 100644 index 0000000000..7c64a76717 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_boundary.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/has_boundary +name: has_boundary +title: has boundary +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_boundary: + slot_uri: hc:hasBoundary + description: 'The boundary of a place or region. + + + MIGRATED 2026-02-03 from has_or_had_boundary for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_boundary + exact_mappings: + - schema:geo + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_branch.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_branch.yaml new file mode 100644 index 0000000000..9f0601c037 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_branch.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_branch +name: has_branch +title: has_branch +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_branch: + name: has_branch + title: has_branch + description: Branch or sub-unit of the organization. + slot_uri: hc:hasBranch + range: string # uriorcurie + multivalued: true + aliases: + - has_or_had_branch + annotations: + custodian_types: '["*"]' + exact_mappings: + - org:hasUnit diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_budget.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_budget.yaml new file mode 100644 index 0000000000..def638047a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_budget.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/has_budget +name: has_budget +title: has_budget +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_budget: + name: has_budget + title: has_budget + description: Budget allocated to or associated with an entity. + slot_uri: hc:hasBudget + range: string # uriorcurie + # range: MonetaryAmount + aliases: + - has_or_had_budget + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:budget diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_canonical_form.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_canonical_form.yaml new file mode 100644 index 0000000000..738c5ef677 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_canonical_form.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_canonical_form +name: has_canonical_form +title: has_canonical_form +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_canonical_form: + name: has_canonical_form + description: The normalized/canonical representation. MIGRATED 2026-02-03 from has_or_had_canonical_form for conciseness. + slot_uri: hc:hasCanonicalForm + range: string + aliases: + - has_or_had_canonical_form + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_capacity.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_capacity.yaml new file mode 100644 index 0000000000..e1881bcec0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_capacity.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_capacity +name: has_capacity +title: has_capacity +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_capacity: + name: has_capacity + title: has_capacity + description: Capacity or maximum amount an entity can hold or accommodate. + slot_uri: hc:hasCapacity + range: string # can be integer or structured + aliases: + - has_or_had_capacity + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:maximumAttendeeCapacity diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_caption.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_caption.yaml new file mode 100644 index 0000000000..3671ece13b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_caption.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/has_caption +name: has_caption +title: has_caption +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_caption: + name: has_caption + title: has_caption + description: Caption or title text for the entity. + slot_uri: hc:hasCaption + range: string + aliases: + - has_or_had_caption + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:caption diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_carrier.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_carrier.yaml new file mode 100644 index 0000000000..be323bc1eb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_carrier.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/has_carrier +name: has_carrier +title: has_carrier +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_carrier: + name: has_carrier + title: has_carrier + description: Physical carrier or medium of the entity. + slot_uri: hc:hasCarrier + range: string # uriorcurie + aliases: + - has_or_had_carrier + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_chapter.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_chapter.yaml new file mode 100644 index 0000000000..ac07872386 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_chapter.yaml @@ -0,0 +1,120 @@ +# ============================================================================== +# LinkML Slot Definition: has_chapter +# ============================================================================== +# Relates a work to its constituent chapters or structural divisions. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **DCTerms** | `dcterms:hasPart` | dcterms.rdf:1347-1368| broad | General partitive relationship | +# | **Schema.org**| `schema:Chapter` | schemaorg.owl:924-928| related | Chapter class definition | +# | **RiC-O** | `rico:hasOrHadPart` | RiC-O_1-1.rdf:2004 | broad | General partitive relationship | +# +# HIERARCHY: dcterms:hasPart is a general partitive property; has_chapter is a narrower +# concept specifically for textual/media chapters. +# +# CREATED: 2026-02-02 +# UPDATED: 2026-02-03 - Added header, multilingual support, ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_chapter +name: has_chapter +title: Has Chapter + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# + rico: https://www.ica.org/standards/RiC/ontology# + +imports: + - linkml:types + +default_prefix: hc + +slots: + has_chapter: + slot_uri: dcterms:hasPart + description: >- + To comprise a distinct structural segment or division within a larger work, + such as a textual section in a book or a time-coded interval in audio-visual + media, used to organize content. + alt_descriptions: + nl: >- + Een afzonderlijk structureel segment of onderdeel binnen een groter werk, + zoals een tekstuele sectie in een boek of een tijdgecodeerd interval in + audiovisuele media, gebruikt om inhoud te organiseren. + de: >- + Ein eigenständiges strukturelles Segment oder eine Unterteilung innerhalb + eines größeren Werkes, wie ein Textabschnitt in einem Buch oder ein + zeitcodiertes Intervall in audiovisuellen Medien, zur Organisation von Inhalten. + fr: >- + Un segment structurel distinct ou une division au sein d'une œuvre plus + large, comme une section textuelle dans un livre ou un intervalle horodaté + dans des médias audiovisuels, utilisé pour organiser le contenu. + ar: >- + جزء هيكلي مميز أو قسم ضمن عمل أكبر، مثل قسم نصي في كتاب أو فترة زمنية + مشفرة في وسائط سمعية بصرية، يُستخدم لتنظيم المحتوى. + id: >- + Segmen struktural yang berbeda atau divisi dalam karya yang lebih besar, + seperti bagian tekstual dalam buku atau interval berkode waktu dalam media + audio-visual, digunakan untuk mengatur konten. + zh: >- + 较大作品中的一个独特结构部分或分区,例如书籍中的文本章节或视听媒体中的 + 时间编码间隔,用于组织内容。 + es: >- + Un segmento estructural distinto o división dentro de una obra más grande, + como una sección textual en un libro o un intervalo codificado en el tiempo + en medios audiovisuales, utilizado para organizar el contenido. + structured_aliases: + - literal_form: heeft hoofdstuk + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Kapitel + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a pour chapitre + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: له فصل + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki bab + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有章节 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene capítulo + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + broad_mappings: + - dcterms:hasPart # dcterms.rdf:1347-1368 - general partitive relationship + - rico:hasOrHadPart # RiC-O_1-1.rdf:2004 - archival partitive relationship + related_mappings: + - schema:Chapter # schemaorg.owl:924-928 - Chapter class (not property) + aliases: + - has_or_had_chapter + - chapters + annotations: + custodian_types: '["*"]' + examples: + - value: "https://example.org/book/123/chapter/1" + description: Reference to Chapter 1 of a book + - value: "https://example.org/video/456/segment/intro" + description: Reference to an introductory segment of a video + comments: + - | + **USAGE**: Use this slot to link a work (book, document, video, audio) + to its constituent chapters or structural divisions. Each chapter can + be identified by a URI or CURIE. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_citation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_citation.yaml new file mode 100644 index 0000000000..36a52ee35d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_citation.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_citation +name: has_citation +title: has_citation +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_citation: + name: has_citation + description: A citation reference. MIGRATED 2026-02-03 from has_or_had_citation for conciseness. + slot_uri: hc:hasCitation + range: string + aliases: + - has_or_had_citation + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_city_code.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_city_code.yaml new file mode 100644 index 0000000000..0ce669d318 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_city_code.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_city_code +name: has_city_code +title: has_city_code +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_city_code: + name: has_city_code + description: A city code or identifier. MIGRATED 2026-02-03 from has_or_had_city_code for conciseness. + slot_uri: hc:hasCityCode + range: string + aliases: + - has_or_had_city_code + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_code.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_code.yaml new file mode 100644 index 0000000000..84105854c0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_code.yaml @@ -0,0 +1,136 @@ +# ============================================================================== +# LinkML Slot Definition: has_code +# ============================================================================== +# Assigns systematic alphanumeric codes to entities for identification, +# classification, or reference purposes (ISO codes, classification codes, etc.). +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------------------|-------------------------|---------|--------------------------------------------------| +# | **SKOS** | `skos:notation` | skos.rdf:166-175 | exact | "A notation, also known as classification code, | +# | | | | | is a string of characters." | +# | **DCTerms** | `dcterms:identifier` | dcterms.rdf:1395-1418 | close | "An unambiguous reference to the resource." | +# | **Schema.org**| `schema:identifier` | schemaorg.owl:21325-346 | close | "Any kind of identifier for any kind of Thing." | +# | **CIDOC-CRM** | `crm:P1_is_identified_by` | CIDOC_CRM:1172-1187 | broad | General identification relationship. | +# | **CIDOC-CRM** | `crm:P48_has_preferred_id` | CIDOC_CRM:2353-2369 | narrow | Preferred identifier (subPropertyOf P1). | +# +# USAGE: Standardized codes such as ISO country/language codes, classification +# codes, GeoNames feature codes, etc. Use dcterms:identifier for general IDs. +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_code +name: has_code +title: Has Code +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + To possess a systematic alphanumeric sequence or symbol assigned to an entity for the purpose of identification, classification, or reference. +imports: +- linkml:types +slots: + has_code: + slot_uri: skos:notation + description: | + To possess a systematic alphanumeric sequence or symbol assigned to an entity for the purpose of identification, classification, or reference. + alt_descriptions: + nl: Het bezitten van een systematische alfanumerieke reeks of symbool toegekend aan een entiteit voor identificatie, classificatie of referentiedoeleinden. + de: Besitzen einer systematischen alphanumerischen Zeichenfolge oder eines Symbols, das einer Entität zum Zweck der Identifikation, Klassifikation oder Referenz zugewiesen wurde. + fr: Posséder une séquence alphanumérique ou un symbole systématique attribué à une entité à des fins d'identification, de classification ou de référence. + ar: امتلاك تسلسل أبجدي رقمي منهجي أو رمز مخصص لكيان لغرض التعريف أو التصنيف أو المرجع. + id: Memiliki urutan alfanumerik atau simbol sistematis yang ditetapkan ke entitas untuk tujuan identifikasi, klasifikasi, atau referensi. + zh: 拥有分配给实体的系统性字母数字序列或符号,用于识别、分类或参考目的。 + es: Poseer una secuencia alfanumérica o símbolo sistemático asignado a una entidad con fines de identificación, clasificación o referencia. + structured_aliases: + - literal_form: heeft code + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Code + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a pour code + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: لديه رمز + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki kode + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有代码 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene código + predicate: EXACT_SYNONYM + in_language: es + range: string + multivalued: true + exact_mappings: + - skos:notation # skos.rdf:166-175 - "A notation, also known as classification code" + close_mappings: + - dcterms:identifier # dcterms.rdf:1395-1418 - "An unambiguous reference to the resource" + - schema:identifier # schemaorg.owl:21325-21346 - "Any kind of identifier for any kind of Thing" + broad_mappings: + - crm:P1_is_identified_by # CIDOC_CRM:1172-1187 - general identification relationship + narrow_mappings: + - crm:P48_has_preferred_identifier # CIDOC_CRM:2353-2369 - preferred identifier (subPropertyOf P1) + aliases: + - has_or_had_code + - notation + - classification_code + - is_or_was_halc_adm1_code + - halc_adm1_code + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Codes applicable to all custodian types. + specificity_score: 0.70 + examples: + - value: NL + description: ISO 3166-1 alpha-2 code for Netherlands. + - value: NLD + description: ISO 3166-1 alpha-3 code for Netherlands. + - value: nld + description: ISO 639-3 language code for Dutch. + - value: P.PPL + description: GeoNames feature code for populated place. + - value: "303.4833" + description: Dewey Decimal Classification code. + - value: "T58.5" + description: Library of Congress Classification notation. + comments: + - | + **USAGE**: + Used for standardized codes such as: + - ISO 3166-1 alpha-2 country codes (e.g., "NL", "BE") + - ISO 3166-1 alpha-3 country codes (e.g., "NLD", "BEL") + - ISO 639-1/3 language codes + - Classification codes (e.g., GeoNames feature codes P.PPL) + - Library classification notations (DDC, LCC) + - | + **DISTINCTION FROM dcterms:identifier**: + Use `has_code` (skos:notation) for classification codes and notations + within a known scheme. Use dcterms:identifier for general unique identifiers + like ISBNs, DOIs, URNs, and persistent URIs. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | SKOS | skos:notation | 166-175 | exact | Classification code notation | + | DCTerms | dcterms:identifier | 1395-1418 | close | Unambiguous reference | + | Schema.org | schema:identifier | 21325-346 | close | Any identifier for Thing | + | CIDOC-CRM | crm:P1_is_identified_by | 1172-1187 | broad | General identification | + | CIDOC-CRM | crm:P48_has_preferred_id | 2353-2369 | narrow | Preferred identifier | + - Updated 2026-02-03 with verified ontology mappings and translations. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_cofunding.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_cofunding.yaml new file mode 100644 index 0000000000..4a65c1886d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_cofunding.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_cofunding +name: has_cofunding +title: has_cofunding +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_cofunding: + name: has_cofunding + description: Co-funding information. MIGRATED 2026-02-03 from has_or_had_cofunding for conciseness. + slot_uri: hc:hasCofunding + range: string + aliases: + - has_or_had_cofunding + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_collection.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_collection.yaml new file mode 100644 index 0000000000..20c5064ca6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_collection.yaml @@ -0,0 +1,127 @@ +# ============================================================================== +# LinkML Slot Definition: has_collection +# ============================================================================== +# To possess, maintain, or hold a curated assemblage of objects, artifacts, or +# records that have been gathered together according to a specific theme, origin, +# or purpose. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|---------------------------|----------------------|---------|------------------------------------| +# | **RiC-O** | `rico:hasOrHadPart` | RiC-O_1-1.rdf | exact | Part-whole relationship | +# | **CIDOC-CRM** | `crm:P46_is_composed_of` | CIDOC_CRM | close | Composition of items | +# | **RiC-O** | `rico:includesOrIncluded` | RiC-O_1-1.rdf | related | Inclusion relationship | +# | **Schema.org**| `schema:hasPart` | schemaorg.owl | related | Part-whole relationship | +# +# CREATED: 2026-01-15 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_collection +name: has_collection +title: Has Collection +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# + owl: http://www.w3.org/2002/07/owl# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: + - linkml:types +default_prefix: hc +slots: + has_collection: + slot_uri: rico:hasOrHadPart + description: >- + To possess, maintain, or hold a curated assemblage of objects, artifacts, + or records that have been gathered together according to a specific theme, + origin, or purpose. + alt_descriptions: + nl: >- + Om een samengestelde verzameling objecten, artefacten of dossiers te + bezitten, onderhouden of bewaren die zijn bijeengebracht volgens een + specifiek thema, oorsprong of doel. + de: >- + Eine kuratierte Sammlung von Objekten, Artefakten oder Aufzeichnungen + zu besitzen, zu pflegen oder zu halten, die nach einem bestimmten + Thema, einer Herkunft oder einem Zweck zusammengestellt wurden. + fr: >- + Posséder, maintenir ou détenir un assemblage organisé d'objets, + d'artefacts ou de documents qui ont été rassemblés selon un thème, + une origine ou un objectif spécifique. + ar: >- + امتلاك أو الحفاظ على أو الاحتفاظ بمجموعة منسقة من الأشياء أو القطع + الأثرية أو السجلات التي تم جمعها وفقاً لموضوع أو أصل أو غرض محدد. + id: >- + Memiliki, memelihara, atau menyimpan kumpulan objek, artefak, atau + catatan yang dikurasi dan dikumpulkan berdasarkan tema, asal, atau + tujuan tertentu. + zh: >- + 拥有、维护或持有根据特定主题、来源或目的汇集的策划性物品、文物或记录集合。 + es: >- + Poseer, mantener o conservar un conjunto curado de objetos, artefactos + o registros que han sido reunidos según un tema, origen o propósito + específico. + structured_aliases: + - literal_form: collectie + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Sammlung + predicate: EXACT_SYNONYM + in_language: de + - literal_form: collection + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مجموعة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: koleksi + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 收藏 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: colección + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + inlined_as_list: false + exact_mappings: + - rico:hasOrHadPart + close_mappings: + - crm:P46_is_composed_of + related_mappings: + - rico:includesOrIncluded + - schema:hasPart + aliases: + - has_or_had_collection + annotations: + inverse_slot: is_or_was_collection_of + deprecates: has_collection + rico_pattern: hasOrHadPart + custodian_types: '["*"]' + examples: + - value: hc:collection/dutch-masters + description: Dutch Masters Collection at Rijksmuseum + - value: hc:collection/asian-art + description: Asian Art Collection at museum + comments: + - 'RiC-O pattern: hasOrHad* for temporal custody relationships' + - Inverse of is_or_was_collection_of (rico:isOrWasPartOf) + - Creates owl:inverseOf axiom in RDF output + - | + TEMPORAL SEMANTICS: A museum may have held a collection that was later + transferred to another institution (custody transfer). + - | + METONYMIC REFERENCE: This property enables metonymic references - when + people refer to a custodian, they often mean its collection. + CustodianCollection makes this explicit. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_collection_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_collection_url.yaml new file mode 100644 index 0000000000..518f797743 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_collection_url.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/has_collection_url +name: has_collection_url +title: has collection url +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_collection_url: + slot_uri: hc:hasCollectionUrl + description: 'URL to a collection page or catalog. + + + MIGRATED 2026-02-03 from has_or_had_collection_url for conciseness.' + range: uri + multivalued: true + aliases: + - has_or_had_collection_url + related_mappings: + - schema:mainEntityOfPage + annotations: + custodian_types: '["*"]' + specificity_score: 0.2 diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_component.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_component.yaml new file mode 100644 index 0000000000..b67e41ea3e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_component.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_component +name: has_component +title: has_component +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_component: + name: has_component + description: A component of the entity. MIGRATED 2026-02-03 from has_or_had_component for conciseness. + slot_uri: hc:hasComponent + range: string + aliases: + - has_or_had_component + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_condition.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_condition.yaml new file mode 100644 index 0000000000..74d203c99a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_condition.yaml @@ -0,0 +1,44 @@ +# ============================================================================== +# LinkML Slot Definition: has_condition +# ============================================================================== +# Condition associated with an entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|------------------------|---------|------------------------------| +# | **Schema.org**| `schema:itemCondition` | close | Item condition | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_condition +name: has_condition +title: Has Condition +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Condition associated with an entity. +imports: +- linkml:types +slots: + has_condition: + slot_uri: hc:hasCondition + description: | + Condition associated with an entity. + range: string + multivalued: true + close_mappings: + - schema:itemCondition + aliases: + - has_or_had_condition + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_confidence.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_confidence.yaml new file mode 100644 index 0000000000..7499459fb1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_confidence.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_confidence +name: has_confidence +title: has_confidence +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_confidence: + name: has_confidence + description: The confidence level of an assertion or observation. MIGRATED 2026-02-03 from has_or_had_confidence for conciseness. + slot_uri: hc:hasConfidence + range: string + aliases: + - has_or_had_confidence + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_confidence_measure.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_confidence_measure.yaml new file mode 100644 index 0000000000..9029cdf2f6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_confidence_measure.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_confidence_measure +name: has_confidence_measure +title: has_confidence_measure +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_confidence_measure: + name: has_confidence_measure + description: Confidence measure for an assertion. MIGRATED 2026-02-03 from has_or_had_confidence_measure for conciseness. + slot_uri: hc:hasConfidenceMeasure + range: string + aliases: + - has_or_had_confidence_measure + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_contact_details.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_contact_details.yaml new file mode 100644 index 0000000000..29f939b887 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_contact_details.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_contact_details +name: has_contact_details +title: has_contact_details +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_contact_details: + name: has_contact_details + title: has_contact_details + description: Contact details for the entity. + slot_uri: hc:hasContactDetails + range: string # uriorcurie + # range: ContactPoint + aliases: + - has_or_had_contact_details + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:contactPoint diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_contact_information.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_contact_information.yaml new file mode 100644 index 0000000000..ed0f442f1f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_contact_information.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_contact_information +name: has_contact_information +title: has_contact_information +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_contact_information: + name: has_contact_information + description: Contact information. MIGRATED 2026-02-03 from has_or_had_contact_information for conciseness. + slot_uri: hc:hasContactInformation + range: string + aliases: + - has_or_had_contact_information + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_contact_point.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_contact_point.yaml new file mode 100644 index 0000000000..5931dbf188 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_contact_point.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/has_contact_point +name: has_contact_point +title: has_contact_point +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_contact_point: + name: has_contact_point + title: has_contact_point + description: Contact point for the entity. + slot_uri: hc:hasContactPoint + range: string # uriorcurie + # range: ContactPoint + multivalued: true + aliases: + - has_or_had_contact_point + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:contactPoint diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_content.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_content.yaml new file mode 100644 index 0000000000..3f27ed3ee9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_content.yaml @@ -0,0 +1,161 @@ +# ============================================================================== +# LinkML Slot Definition: has_content +# ============================================================================== +# Describes possession of substantive material, information, or media elements. +# Used to indicate what content a resource contains or encompasses. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|----------------------------------|------------------------|---------|------------------------------------------------| +# | **RiC-O** | `rico:scopeAndContent` | RiC-O_1-1:23025-23040 | exact | Summary of scope and content of Record Resource | +# | **RiC-O** | `rico:hasContentOfType` | RiC-O_1-1:4147-4148 | close | Content type classification (ObjectProperty) | +# | **RiC-O** | `rico:hasContentWhichRepresents` | RiC-O_1-1:4218-4220 | close | What the content represents | +# | **CIDOC-CRM**| `crm:P190_has_symbolic_content` | CIDOC_CRM:5028-5037 | close | Symbolic content of E90 Symbolic Object | +# | **Schema.org**| `schema:mainContentOfPage` | schemaorg.owl:25261 | close | Main content of a web page | +# | **RiC-O** | `rico:generalDescription` | RiC-O_1-1:21455-21470 | broad | General information about an entity | +# | **DC Terms** | `dcterms:description` | dcterms.rdf | broad | General description (broader scope) | +# | **RiC-O** | `rico:describesOrDescribed` | RiC-O_1-1:2249-2260 | related | Connects resource to thing it describes | +# +# NOTE: Previous exact mapping to rico:describesOrDescribed was incorrect. +# rico:describesOrDescribed relates a RecordResource to a Thing it describes, +# not the content itself. rico:scopeAndContent is the proper match for +# describing substantive content within a resource. +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added multilingual support, corrected ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_content +name: has_content +title: has content + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: https://schema.org/ + dcterms: http://purl.org/dc/terms/ + +default_prefix: hc + +description: | + To possess or encompass substantive material, information, or media elements as integral components. + +imports: + - linkml:types + +slots: + has_content: + slot_uri: rico:scopeAndContent + description: | + To possess or encompass substantive material, information, or media elements as integral components + alt_descriptions: + nl: >- + Inhoud of materiaal, informatie of media-elementen bevatten of omvatten als integrale onderdelen. + de: >- + Substantielles Material, Informationen oder Medienelemente als integrale Bestandteile besitzen oder umfassen. + fr: >- + Posséder ou englober du matériel substantiel, des informations ou des éléments médiatiques comme composants intégraux. + ar: >- + امتلاك أو احتواء مواد جوهرية أو معلومات أو عناصر وسائط كمكونات متكاملة. + id: >- + Memiliki atau mencakup materi substantif, informasi, atau elemen media sebagai komponen integral. + zh: >- + 拥有或包含实质性材料、信息或媒体元素作为不可分割的组成部分。 + es: >- + Poseer o abarcar material sustancial, información o elementos multimedia como componentes integrales. + structured_aliases: + - literal_form: heeft inhoud + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Inhalt + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a du contenu + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: له محتوى + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki konten + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有内容 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene contenido + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + annotations: + custodian_types: '["*"]' + specificity_score: 0.75 + exact_mappings: + # RiC-O scopeAndContent - Summary of scope and content of a Record Resource + # Domain: rico:RecordResource, Range: rdfs:Literal + # Lines 23025-23040 in RiC-O_1-1.rdf + - rico:scopeAndContent + close_mappings: + # RiC-O hasContentOfType - Classifies type of content (ObjectProperty) + # Lines 4147-4148 in RiC-O_1-1.rdf + - rico:hasContentOfType + # RiC-O hasContentWhichRepresents - What the content represents + # Lines 4218-4220 in RiC-O_1-1.rdf + - rico:hasContentWhichRepresents + # CIDOC-CRM P190 has symbolic content - String representation of symbolic object + # Lines 5028-5037 in CIDOC_CRM_v7.1.3.rdf + - crm:P190_has_symbolic_content + # Schema.org mainContentOfPage - Main content of a web page + # Line 25261 in schemaorg.owl + - schema:mainContentOfPage + broad_mappings: + # RiC-O generalDescription - General information about an entity + # scopeAndContent is a subproperty of generalDescription + # Lines 21455-21470 in RiC-O_1-1.rdf + - rico:generalDescription + # Dublin Core description - General description (broader scope) + - dcterms:description + related_mappings: + # RiC-O describesOrDescribed - Relates resource to thing it describes (not content itself) + # Lines 2249-2260 in RiC-O_1-1.rdf + - rico:describesOrDescribed + # Dublin Core coverage - Spatial/temporal extent + - dcterms:coverage + # Schema.org about - Subject matter (not content itself) + - schema:about + aliases: + - has_or_had_content + examples: + - value: "hc:TextualContent" + description: Indicates the resource contains textual content + - value: "hc:PhotographicContent" + description: Indicates the resource contains photographic materials + - value: "hc:AudioVisualContent" + description: Indicates the resource contains audio-visual media + comments: + - Updated 2026-02-03 with verified ontology mappings and translations + - | + **PURPOSE**: Describes what substantive material, information, or media + elements a heritage resource possesses or encompasses. Used to characterize + the nature of content within records, collections, or other resources. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | RiC-O | rico:scopeAndContent | 23025 | exact | Summary of scope/content | + | RiC-O | rico:hasContentOfType | 4147 | close | Content type classification | + | RiC-O | rico:hasContentWhichRepresents | 4218 | close | What content represents | + | CIDOC-CRM | crm:P190_has_symbolic_content | 5028 | close | Symbolic content string | + | Schema.org | schema:mainContentOfPage | 25261 | close | Web page content | + | RiC-O | rico:generalDescription | 21455 | broad | General entity info | + | DC Terms | dcterms:description | - | broad | General description | + - | + **USAGE NOTES**: + - Use for describing what content type(s) a resource contains + - Aligns with RiC-O scopeAndContent for archival descriptions + - Can be used with content type URIs or text descriptions + - Previous mapping to rico:describesOrDescribed was incorrect + (that property relates resource to subject, not content) diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_contributor.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_contributor.yaml new file mode 100644 index 0000000000..1dd2705069 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_contributor.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/has_contributor +name: has_contributor +title: has contributor +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_contributor: + slot_uri: hc:hasContributor + description: 'Contributor to a creative work or resource. MIGRATED from contributor + (2026-01-26). + + + MIGRATED 2026-02-03 from has_or_had_contributor for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_contributor + close_mappings: + - schema:contributor + annotations: + rico_naming_convention: 'Follows RiC-O "hasOrHad" pattern for temporal predicates. + + ' + custodian_types: '["*"]' + specificity_score: 0.3 diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_conversion_rate.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_conversion_rate.yaml new file mode 100644 index 0000000000..e0dceb52f8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_conversion_rate.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_conversion_rate +name: has_conversion_rate +title: has_conversion_rate +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_conversion_rate: + name: has_conversion_rate + description: A conversion rate. MIGRATED 2026-02-03 from has_or_had_conversion_rate for conciseness. + slot_uri: hc:hasConversionRate + range: float + aliases: + - has_or_had_conversion_rate + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_coordinates.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_coordinates.yaml new file mode 100644 index 0000000000..119c45be5f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_coordinates.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_coordinates +name: has_coordinates +title: has_coordinates +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_coordinates: + name: has_coordinates + title: has_coordinates + description: Geographic coordinates of the entity. + slot_uri: hc:hasCoordinates + range: string # uriorcurie + # range: GeoCoordinates + aliases: + - has_or_had_coordinates + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:geo diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_creator.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_creator.yaml new file mode 100644 index 0000000000..0bf828f88f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_creator.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_creator +name: has_creator +title: has_creator +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_creator: + name: has_creator + description: The creator of an entity. MIGRATED 2026-02-03 from has_or_had_creator for conciseness. + slot_uri: hc:hasCreator + range: string + aliases: + - has_or_had_creator + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_currency.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_currency.yaml new file mode 100644 index 0000000000..3f6f64701e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_currency.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_currency +name: has_currency +title: has_currency +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_currency: + name: has_currency + title: has_currency + description: Currency used for monetary values. + slot_uri: hc:hasCurrency + range: string + aliases: + - has_or_had_currency + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:currency diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_custodian.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_custodian.yaml new file mode 100644 index 0000000000..28642a8217 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_custodian.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_custodian +name: has_custodian +title: has_custodian +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_custodian: + name: has_custodian + description: Collection of custodian hub entities. MIGRATED 2026-02-03 from has_or_had_custodian for conciseness. + slot_uri: hc:hasCustodian + range: string + aliases: + - has_or_had_custodian + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_custodian_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_custodian_name.yaml new file mode 100644 index 0000000000..2995e3ed75 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_custodian_name.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/has_custodian_name +name: has_custodian_name +title: has custodian name +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_custodian_name: + slot_uri: hc:hasCustodianName + description: 'Collection of custodian standardized names in the container + + + MIGRATED 2026-02-03 from has_or_had_custodian_name for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_custodian_name + exact_mappings: + - ldp:contains + close_mappings: + - skos:prefLabel + annotations: + custodian_types: '[''*'']' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_custodian_observation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_custodian_observation.yaml new file mode 100644 index 0000000000..8c13ec15f9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_custodian_observation.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/has_custodian_observation +name: has_custodian_observation +title: has custodian observation +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_custodian_observation: + slot_uri: hc:hasCustodianObservation + description: 'Collection of custodian observations in the container + + + MIGRATED 2026-02-03 from has_or_had_custodian_observation for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_custodian_observation + exact_mappings: + - ldp:contains + annotations: + custodian_types: '[''*'']' + comments: + - Contains CustodianObservation instances (prov:Entity class) diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_data_quality_notes.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_data_quality_notes.yaml new file mode 100644 index 0000000000..0b82bd2f2d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_data_quality_notes.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_data_quality_notes +name: has_data_quality_notes +title: has_data_quality_notes +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_data_quality_notes: + name: has_data_quality_notes + description: Notes about data quality. MIGRATED 2026-02-03 from has_or_had_data_quality_notes for conciseness. + slot_uri: hc:hasDataQualityNotes + range: string + aliases: + - has_or_had_data_quality_notes + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_date.yaml new file mode 100644 index 0000000000..ba6dcd9a5a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_date.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_date +name: has_date +title: has_date +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_date: + name: has_date + description: A date associated with the entity. MIGRATED 2026-02-03 from has_or_had_date for conciseness. + slot_uri: hc:hasDate + range: string + aliases: + - has_or_had_date + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_degree.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_degree.yaml new file mode 100644 index 0000000000..c25346be15 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_degree.yaml @@ -0,0 +1,23 @@ +id: https://nde.nl/ontology/hc/slot/has_degree +name: has_degree +title: has_degree +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_degree: + name: has_degree + title: has_degree + description: Degree, level, or extent of something. + slot_uri: hc:hasDegree + range: string + aliases: + - has_or_had_degree + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_description.yaml new file mode 100644 index 0000000000..3dc6183d43 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_description.yaml @@ -0,0 +1,49 @@ +# ============================================================================== +# LinkML Slot Definition: has_description +# ============================================================================== +# A description of the entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|------------------------|---------|------------------------------| +# | **DCTerms** | `dcterms:description` | exact | DC Terms description | +# | **Schema.org**| `schema:description` | close | Schema.org description | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_description +name: has_description +title: Has Description +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + A description of the entity. +imports: +- linkml:types +slots: + has_description: + slot_uri: dcterms:description + description: | + A description of the entity. + range: string + multivalued: true + exact_mappings: + - dcterms:description + close_mappings: + - schema:description + aliases: + - has_or_had_description + - is_or_was_description + - has_or_had_administration_description + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_detected.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_detected.yaml new file mode 100644 index 0000000000..4682a12f23 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_detected.yaml @@ -0,0 +1,56 @@ +id: https://nde.nl/ontology/hc/slot/has_detected +name: has_detected +title: has_detected +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + nfo: http://www.semanticdesktop.org/ontologies/2007/03/22/nfo# + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_detected: + name: has_detected + slot_uri: hc:hasDetected + description: "Links analysis/observation results to entities that were detected. + + **Usage**: + For analysis classes (like VideoAnnotation, TextOCR, AudioAnalysis), + this links the analysis to DetectedEntity instances, which in turn + have their type specified via has_type. + + **Pattern**: + ``` + VideoAnalysis + └── has_detected → DetectedEntity + └── has_type → TransitionType, TextType, etc. + ``` + + MIGRATED 2026-02-03: Renamed from has_or_had_detected for conciseness." + range: string + required: false + multivalued: true + inlined_as_list: false + aliases: + - has_or_had_detected + exact_mappings: + - prov:generated + related_mappings: + - schema:result + annotations: + replaces_slots: has_or_had_detected + migration_date: '2026-02-03' + custodian_types: '["*"]' + examples: + - value: DetectedEntity:transition_001 + description: A detected scene transition + - value: DetectedEntity:text_region_005 + description: A detected text region in video diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_device.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_device.yaml new file mode 100644 index 0000000000..53f35d4ee9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_device.yaml @@ -0,0 +1,103 @@ +# ============================================================================== +# LinkML Slot Definition: has_device +# ============================================================================== +# To possess or be associated with a distinct physical apparatus or hardware +# unit designed to perform a specific function or task. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **CIDOC-CRM** | `crm:P16_used_specific_object` | CIDOC_CRM:1543-1560 | close | Activity used specific object | +# | **SOSA** | `sosa:madeBySensor` | sosa.ttl | narrow | Sensor (specific device type) | +# | **Schema.org**| `schema:device` | schemaorg.owl | related | Device used in medical procedure | +# +# HIERARCHY: No direct subPropertyOf - domain-specific property for device possession +# +# CREATED: 2026-01-20 +# UPDATED: 2026-02-03 - Fixed mapping: sosa:madeBySensor is narrow (sensor is a type of device), not exact +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_device +name: has_device +title: has_device +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_device: + name: has_device + title: has_device + description: >- + To possess or be associated with a distinct physical apparatus or + hardware unit designed to perform a specific function or task. + alt_descriptions: + nl: >- + Om een onderscheidend fysiek apparaat of hardware-eenheid te bezitten + of ermee geassocieerd te zijn dat is ontworpen om een specifieke + functie of taak uit te voeren. + de: >- + Ein bestimmtes physisches Gerät oder eine Hardware-Einheit zu + besitzen oder damit verbunden zu sein, die für die Ausführung einer + bestimmten Funktion oder Aufgabe konzipiert ist. + fr: >- + Posséder ou être associé à un appareil physique distinct ou une unité + matérielle conçue pour effectuer une fonction ou une tâche spécifique. + ar: >- + امتلاك أو الارتباط بجهاز مادي مميز أو وحدة أجهزة مصممة لأداء وظيفة + أو مهمة محددة. + id: >- + Memiliki atau terkait dengan peralatan fisik atau unit perangkat keras + yang berbeda yang dirancang untuk melakukan fungsi atau tugas tertentu. + zh: >- + 拥有或与旨在执行特定功能或任务的独特物理设备或硬件单元相关联。 + es: >- + Poseer o estar asociado con un aparato físico distinto o unidad de + hardware diseñada para realizar una función o tarea específica. + structured_aliases: + - literal_form: apparaat + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Gerät + predicate: EXACT_SYNONYM + in_language: de + - literal_form: appareil + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: جهاز + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: perangkat + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 设备 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: dispositivo + predicate: EXACT_SYNONYM + in_language: es + slot_uri: hc:hasDevice + range: string # uriorcurie + # range: IoTDevice + multivalued: true + aliases: + - has_or_had_device + annotations: + custodian_types: '["*"]' + close_mappings: + - crm:P16_used_specific_object # CIDOC_CRM:1543-1560 - Activity used specific object + narrow_mappings: + - sosa:madeBySensor # sosa.ttl - Sensor is a specific type of device + related_mappings: + - schema:device # schemaorg.owl - Device used in medical procedure diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_digital_platform.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_digital_platform.yaml similarity index 61% rename from schemas/20251121/linkml/modules/slots/has_or_had_digital_platform.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_digital_platform.yaml index 16b01647fd..5767792909 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_digital_platform.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_digital_platform.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_digital_platform -name: has_or_had_digital_platform -title: Has Or Had Digital Platform +id: https://nde.nl/ontology/hc/slot/has_digital_platform +name: has_digital_platform +title: Has Digital Platform prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -19,19 +19,25 @@ prefixes: imports: - linkml:types slots: - has_or_had_digital_platform: - slot_uri: rico:hasOrHadPart + has_digital_platform: + slot_uri: hc:hasDigitalPlatform range: string # uriorcurie # range: DigitalPlatform multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type - description: "Digital platform(s) operated by or representing this custodian, \ncurrently or historically.\n\n**RiC-O Temporal Pattern**: Uses `hasOrHad*` pattern because digital\nplatforms can be:\n- Decommissioned (no longer active)\n- Transferred to another organization\n- Replaced by newer platforms\n- Merged into consolidated systems\n\nThis property enables documentation of digital infrastructure for ANY custodian\n(physical institutions with websites OR digital-first platforms):\n\n**Examples**:\n- Physical museum with website: Rijksmuseum \u2192 Rijksstudio (online collection)\n- Archive with multiple systems: Noord-Hollands Archief \u2192 Inventory, OAI-PMH endpoint\n- Digital-first platform: Europeana (classified as DigitalPlatformType custodian)\n- Historical platform: Institution's old catalog system (decommissioned 2015)\n\n**CRITICAL DISTINCTION**:\n- DigitalPlatform CLASS (this slot): Infrastructure documentation for any custodian\n- DigitalPlatformType: Custodian type\ + description: | + To be hosted on, operated through, or associated with a specific online framework, software environment, or service architecture that facilitates interaction or content delivery. + + + digital\nplatforms can be:\n- Decommissioned (no longer active)\n- Transferred to another organization\n- Replaced by newer platforms\n- Merged into consolidated systems\n\nThis property enables documentation of digital infrastructure for ANY custodian\n(physical institutions with websites OR digital-first platforms):\n\n**Examples**:\n- Physical museum with website: Rijksmuseum \u2192 Rijksstudio (online collection)\n- Archive with multiple systems: Noord-Hollands Archief \u2192 Inventory, OAI-PMH endpoint\n- Digital-first platform: Europeana (classified as DigitalPlatformType custodian)\n- Historical platform: Institution's old catalog system (decommissioned 2015)\n\n**CRITICAL DISTINCTION**:\n- DigitalPlatform CLASS (this slot): Infrastructure documentation for any custodian\n- DigitalPlatformType: Custodian type\ \ classification for digital-first institutions\n\nMultivalued to support custodians with multiple platforms (website, API, SPARQL, etc.).\n" close_mappings: - foaf:homepage - rico:hasOrHadPart broad_mappings: - dcterms:hasPart + aliases: + - has_or_had_digital_platform comments: - 'RiC-O pattern: hasOrHad* for temporal platform relationships' - Inverse of is_or_was_platform_of diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_digital_presence.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_digital_presence.yaml new file mode 100644 index 0000000000..388a2837ea --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_digital_presence.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/has_digital_presence +name: has_digital_presence +title: has_digital_presence +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_digital_presence: + name: has_digital_presence + description: Digital presence or online representation. MIGRATED 2026-02-03 from has_or_had_digital_presence for conciseness. + slot_uri: hc:hasDigitalPresence + range: string + aliases: + - has_or_had_digital_presence + - is_or_was_about_digital_presence + - about_digital_presence + - digital_presence + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_direction.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_direction.yaml new file mode 100644 index 0000000000..0da55f6951 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_direction.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/has_direction +name: has_direction +title: has_direction +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_direction: + name: has_direction + slot_uri: hc:hasDirection + description: "The directional orientation of an entity.\n\n**Usage**:\nThis is a GENERIC slot intended for reuse across multiple classes.\nClasses may narrow the range in slot_usage to reference specific Direction classes\n(e.g., TextDirection for text flow, ReadingDirection for reading order).\n\n**Common Values for TextDirection**:\n- LEFT_TO_RIGHT - Latin, Cyrillic, Greek scripts\n- RIGHT_TO_LEFT - Arabic, Hebrew scripts\n- TOP_TO_BOTTOM - Traditional CJK vertical writing\n- BOUSTROPHEDON - Ancient alternating direction\n\nMIGRATED 2026-02-03: Renamed from has_or_had_direction for conciseness." + range: string + multivalued: false + aliases: + - has_or_had_direction + exact_mappings: + - schema:direction + close_mappings: + - crm:P2_has_type + annotations: + custodian_types: '["L", "A", "M", "R", "H"]' + custodian_types_rationale: Directional orientation relevant to libraries, archives, museums, research centers, and holy sites with manuscripts/documents + specificity_score: 0.35 + specificity_rationale: Moderately specific slot for text/writing direction in information carriers diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_document.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_document.yaml new file mode 100644 index 0000000000..120d14ad3a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_document.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_document +name: has_document +title: has_document +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_document: + name: has_document + description: A document associated with the entity. MIGRATED 2026-02-03 from has_or_had_document for conciseness. + slot_uri: hc:hasDocument + range: string + aliases: + - has_or_had_document + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_documentation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_documentation.yaml new file mode 100644 index 0000000000..7cb7619899 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_documentation.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/has_documentation +name: has_documentation +title: has_documentation +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_documentation: + name: has_documentation + title: has_documentation + description: Documentation associated with an entity. + slot_uri: hc:hasDocumentation + range: string # uriorcurie + # range: Documentation + multivalued: true + aliases: + - has_or_had_documentation + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:documentation diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_domain.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_domain.yaml new file mode 100644 index 0000000000..c8fba0f285 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_domain.yaml @@ -0,0 +1,38 @@ +# ============================================================================== +# LinkML Slot Definition: has_domain +# ============================================================================== +# Domain of an entity. +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_domain +name: has_domain +title: Has Domain +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Domain of an entity. +imports: +- linkml:types +slots: + has_domain: + slot_uri: rdfs:domain + description: | + Domain of an entity. + range: string + multivalued: true + exact_mappings: + - rdfs:domain + aliases: + - has_or_had_domain + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_drawer.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_drawer.yaml new file mode 100644 index 0000000000..9fa5314949 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_drawer.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/has_drawer +name: has_drawer +title: has_drawer +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + rico: https://www.ica.org/standards/RiC/ontology# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_drawer: + name: has_drawer + description: Drawer within a storage unit. MIGRATED 2026-02-03 from has_or_had_drawer for conciseness. + range: string + multivalued: true + inlined: false + slot_uri: hc:hasDrawer + aliases: + - has_or_had_drawer + annotations: + custodian_types: '["*"]' + specificity_score: 0.8 + exact_mappings: + - rico:hasOrHadPhysicalLocation diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_edition.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_edition.yaml new file mode 100644 index 0000000000..caba9e4c3c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_edition.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/has_edition +name: has_edition +title: has_edition +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_edition: + name: has_edition + title: has_edition + description: Edition of the entity. + slot_uri: hc:hasEdition + range: string + aliases: + - has_or_had_edition + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:bookEdition diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_email_address.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_email_address.yaml new file mode 100644 index 0000000000..4a417c045d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_email_address.yaml @@ -0,0 +1,155 @@ +# ============================================================================== +# LinkML Slot Definition: has_email_address +# ============================================================================== +# Electronic identifier for digital message transmission and receipt. +# Used for contact information of heritage institutions and personnel. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|------------------------|------------------------|---------|------------------------------------------------| +# | **Schema.org**| `schema:email` | schemaorg.owl:16432-16444| exact | "Email address." Domain: Person, ContactPoint, Organization | +# | **FOAF** | `foaf:mbox` | foaf.ttl:392-400 | close | "Personal mailbox" - InverseFunctionalProperty | +# | **Schema.org**| `schema:contactPoint` | schemaorg.owl:12577-12590| broad | "Contact point for person/org" - includes email | +# | **FOAF** | `foaf:mbox_sha1sum` | foaf.ttl:401-409 | related | SHA1 hash of mailbox URI (privacy) | +# +# NOTE: schema:email is preferred as it accepts string literals directly. +# foaf:mbox expects a mailto: URI (e.g., mailto:info@museum.nl). +# +# CREATED: 2026-01-26 - Migrated from contact_email, admin_email, email_address +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_email_address +name: has_email_address +title: has email address + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: https://schema.org/ + foaf: http://xmlns.com/foaf/0.1/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +description: | + To possess a unique, standardized electronic identifier designated for the transmission and receipt of digital messages. + +imports: + - linkml:types + +slots: + has_email_address: + slot_uri: schema:email + description: | + To possess a unique, standardized electronic identifier designated for the transmission and receipt of digital messages. + alt_descriptions: + nl: >- + Het bezitten van een unieke, gestandaardiseerde elektronische identificatie bestemd voor het verzenden en ontvangen van digitale berichten. + de: >- + Eine einzigartige, standardisierte elektronische Kennung besitzen, die für die Übertragung und den Empfang digitaler Nachrichten bestimmt ist. + fr: >- + Posséder un identifiant électronique unique et standardisé destiné à la transmission et à la réception de messages numériques. + ar: >- + امتلاك معرّف إلكتروني فريد وموحد مخصص لإرسال واستقبال الرسائل الرقمية. + id: >- + Memiliki pengenal elektronik unik dan terstandarisasi yang ditujukan untuk transmisi dan penerimaan pesan digital. + zh: >- + 拥有用于发送和接收数字消息的唯一标准化电子标识符。 + es: >- + Poseer un identificador electrónico único y estandarizado designado para la transmisión y recepción de mensajes digitales. + structured_aliases: + - literal_form: heeft e-mailadres + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat E-Mail-Adresse + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a une adresse e-mail + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: له عنوان بريد إلكتروني + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki alamat email + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有电子邮件地址 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene dirección de correo electrónico + predicate: EXACT_SYNONYM + in_language: es + range: string + multivalued: true + inlined: false + pattern: "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$" + annotations: + custodian_types: '["*"]' + specificity_score: 0.20 + replaces_slots: contact_email, admin_email, email_address + migration_date: '2026-01-26' + exact_mappings: + # Schema.org email - "Email address." + # Domain: Person, ContactPoint, Organization + # Lines 16432-16444 in schemaorg.owl + - schema:email + close_mappings: + # FOAF mbox - "Personal mailbox" associated with exactly one owner + # InverseFunctionalProperty - expects mailto: URI + # Lines 392-400 in foaf.ttl + - foaf:mbox + broad_mappings: + # Schema.org contactPoint - "A contact point for a person or organization" + # Broader concept that includes email, phone, fax, address, etc. + # Lines 12577-12590 in schemaorg.owl + - schema:contactPoint + related_mappings: + # FOAF mbox_sha1sum - SHA1 hash of mailbox URI for privacy + # Lines 401-409 in foaf.ttl + - foaf:mbox_sha1sum + aliases: + - has_or_had_email + - has_or_had_email_address + examples: + - value: "info@rijksmuseum.nl" + description: General information email for Rijksmuseum + - value: "collections@nationaalarchief.nl" + description: Collections department email for National Archives + - value: "library@kb.nl" + description: Library contact email for Koninklijke Bibliotheek + comments: + - Updated 2026-02-03 with verified ontology mappings and translations + - | + **PURPOSE**: Stores email addresses for heritage institutions, departments, + or personnel. Used for contact information in institution profiles. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | Schema.org | schema:email | 16432 | exact | Email address string | + | FOAF | foaf:mbox | 392 | close | Expects mailto: URI | + | Schema.org | schema:contactPoint | 12577 | broad | Includes email, phone, etc. | + | FOAF | foaf:mbox_sha1sum | 401 | related | Privacy hash | + - | + **MIGRATION NOTES**: + Consolidated from multiple legacy slots (2026-01-26): + - `contact_email` → has_email_address + - `admin_email` → has_email_address + - `email_address` → has_email_address + - | + **FORMAT NOTES**: + - Uses string range with email pattern validation + - schema:email preferred over foaf:mbox as it accepts plain strings + - foaf:mbox expects mailto: URI format (e.g., mailto:info@museum.nl) + - | + **TEMPORAL SEMANTICS** (RiC-O Pattern): + "has_or_had_email" indicates email addresses may change over time. + Historical email addresses can be preserved with temporal qualifiers. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_embargo_end_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_embargo_end_date.yaml new file mode 100644 index 0000000000..ace2e2cf3f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_embargo_end_date.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_embargo_end_date +name: has_embargo_end_date +title: has_embargo_end_date +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_embargo_end_date: + name: has_embargo_end_date + title: has_embargo_end_date + description: Date when the embargo on the entity ends. + slot_uri: hc:hasEmbargoEndDate + range: date + aliases: + - has_or_had_embargo_end_date + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_embargo_reason.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_embargo_reason.yaml new file mode 100644 index 0000000000..265d96e3aa --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_embargo_reason.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/has_embargo_reason +name: has_embargo_reason +title: has_embargo_reason +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_embargo_reason: + name: has_embargo_reason + description: The reason for an embargo or restriction. MIGRATED 2026-02-03 from has_or_had_embargo_reason for conciseness. + title: has embargo reason + slot_uri: hc:hasEmbargoReason + range: string + multivalued: true + aliases: + - has_or_had_embargo_reason + annotations: + custodian_types: '["*"]' + exact_mappings: + - rico:conditionsOfAccess diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_encoding.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_encoding.yaml new file mode 100644 index 0000000000..b19eef6b2a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_encoding.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_encoding +name: has_encoding +title: has_encoding +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_encoding: + name: has_encoding + description: The encoding format. MIGRATED 2026-02-03 from has_or_had_encoding for conciseness. + slot_uri: hc:hasEncoding + range: string + aliases: + - has_or_had_encoding + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_endowment_draw.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_endowment_draw.yaml new file mode 100644 index 0000000000..1d78e0794e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_endowment_draw.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/has_endowment_draw +name: has_endowment_draw +title: has_endowment_draw +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + frapo: http://purl.org/cerif/frapo/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_endowment_draw: + name: has_endowment_draw + description: 'Amount drawn from an endowment fund for operating or capital expenses. + MIGRATED 2026-02-03 from has_or_had_endowment_draw for conciseness.' + slot_uri: hc:hasEndowmentDraw + range: decimal + multivalued: false + aliases: + - has_or_had_endowment_draw + exact_mappings: + - frapo:hasFunding + close_mappings: + - schema:amount + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_endpoint.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_endpoint.yaml new file mode 100644 index 0000000000..caed87450f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_endpoint.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/has_endpoint +name: has_endpoint +title: has_endpoint +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_endpoint: + name: has_endpoint + title: has_endpoint + description: API or service endpoint associated with an entity. + slot_uri: hc:hasEndpoint + range: uri + multivalued: true + aliases: + - has_or_had_endpoint + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:url diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_engagement_metric.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_engagement_metric.yaml new file mode 100644 index 0000000000..3fc2a2865c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_engagement_metric.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/has_engagement_metric +name: has_engagement_metric +title: has_engagement_metric +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_engagement_metric: + name: has_engagement_metric + description: 'A specific metric tracking engagement with content or a profile. + Uses EngagementMetric class for structured data (value + type). + MIGRATED 2026-02-03 from has_or_had_engagement_metric for conciseness.' + slot_uri: hc:hasEngagementMetric + range: string + multivalued: true + aliases: + - has_or_had_engagement_metric + exact_mappings: + - schema:interactionStatistic + close_mappings: + - schema:userInteractionCount + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/environmental_control.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_environmental_control.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/environmental_control.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_environmental_control.yaml index 3388272765..72f930a64d 100644 --- a/schemas/20251121/linkml/modules/slots/archive/environmental_control.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_environmental_control.yaml @@ -24,6 +24,8 @@ slots: ' slot_uri: schema:amenityFeature range: string + aliases: + - is_or_was_environmental_control annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_equipment.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_equipment.yaml new file mode 100644 index 0000000000..742fe23fd2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_equipment.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/has_equipment +name: has_equipment +title: has_equipment +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_equipment: + name: has_equipment + title: has_equipment + description: Equipment associated with the entity. + slot_uri: hc:hasEquipment + range: string # uriorcurie + multivalued: true + aliases: + - has_or_had_equipment + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_equipment_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_equipment_type.yaml new file mode 100644 index 0000000000..b67b1a315a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_equipment_type.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/has_equipment_type +name: has_equipment_type +title: has equipment type +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_equipment_type: + slot_uri: hc:hasEquipmentType + description: 'Links to the type of equipment available or used. + + + MIGRATED 2026-02-03 from has_or_had_equipment_type for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_equipment_type + exact_mappings: + - rico:hasOrHadEquipmentType + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_example.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_example.yaml new file mode 100644 index 0000000000..989cdfdf69 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_example.yaml @@ -0,0 +1,118 @@ +# ============================================================================== +# LinkML Slot Definition: has_example +# ============================================================================== +# Links a concept, type, or entity to an illustrative example that helps +# clarify its meaning, usage, or application. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------------|-------------------------|---------|------------------------------------------------| +# | **SKOS** | `skos:example` | skos.rdf:219-229 | exact | "An example of the use of a concept." | +# | **SKOS** | `skos:note` | skos.rdf:176-185 | broad | General note; skos:example is subPropertyOf. | +# | **CIDOC-CRM** | `crm:P3_has_note` | CIDOC_CRM:1227-1241 | close | Container for informal descriptions. | +# | **Schema.org**| `schema:workExample` | schemaorg.owl:40436-55 | related | Instance/realization of a creative work. | +# | **Schema.org**| `schema:exampleOfWork` | schemaorg.owl:17481-503 | related | Inverse; the work this is an example of. | +# +# SKOS NOTE HIERARCHY (siblings of skos:example - all subPropertyOf skos:note): +# - skos:changeNote (line 193), skos:definition (204), skos:editorialNote (215) +# - skos:example (226), skos:historyNote (237), skos:scopeNote (248) +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_example +name: has_example +title: Has Example +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + To possess or reference a specific instance or representative case that serves to illustrate a concept, category, or pattern. +imports: +- linkml:types +slots: + has_example: + slot_uri: skos:example + description: | + To possess or reference a specific instance or representative case that serves to illustrate a concept, category, or pattern. + alt_descriptions: + nl: Het bezitten van of verwijzen naar een specifiek geval of representatief voorbeeld dat dient om een concept, categorie of patroon te illustreren. + de: Besitzen oder Verweisen auf einen spezifischen Fall oder repräsentativen Beispielfall, der dazu dient, ein Konzept, eine Kategorie oder ein Muster zu veranschaulichen. + fr: Posséder ou référencer un cas spécifique ou représentatif qui sert à illustrer un concept, une catégorie ou un modèle. + ar: امتلاك أو الإشارة إلى حالة محددة أو حالة تمثيلية تعمل على توضيح مفهوم أو فئة أو نمط. + id: Memiliki atau merujuk pada contoh atau kasus representatif yang berfungsi untuk mengilustrasikan suatu konsep, kategori, atau pola. + zh: 拥有或引用一个用于说明概念、类别或模式的具体实例或代表性案例。 + es: Poseer o referenciar un caso específico o representativo que sirve para ilustrar un concepto, categoría o patrón. + structured_aliases: + - literal_form: heeft voorbeeld + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Beispiel + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a pour exemple + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: لديه مثال + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki contoh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有示例 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene ejemplo + predicate: EXACT_SYNONYM + in_language: es + range: string + multivalued: true + inlined: false + exact_mappings: + - skos:example # skos.rdf:219-229 - "An example of the use of a concept." + close_mappings: + - crm:P3_has_note # CIDOC_CRM:1227-1241 - container for informal descriptions + broad_mappings: + - skos:note # skos.rdf:176-185 - skos:example is subPropertyOf skos:note + related_mappings: + - schema:workExample # schemaorg.owl:40436-40455 - instance/realization of creative work + - schema:exampleOfWork # schemaorg.owl:17481-17503 - inverse of workExample + aliases: + - has_or_had_example + annotations: + custodian_types: '["*"]' + specificity_score: 0.75 + examples: + - value: "The term 'baroque' is exemplified by the works of Caravaggio and Rubens." + description: Illustrating a concept from art history with specific artists. + - value: "https://example.org/collection/rijksmuseum-collection-baroque" + description: URI reference to an example collection illustrating a concept. + - value: "The 'active collection management' approach is demonstrated by the Rijksmuseum's digitization project." + description: Illustrating a heritage management concept with a specific institutional example. + comments: + - Relates a concept or type to an illustrative example. + - MIGRATED from example_* slots per slot_fixes.yaml (Rule 53). + - | + **PURPOSE**: Enables linking concepts, categories, or types to concrete examples + that help clarify their meaning, usage patterns, or application in practice. + Essential for documentation, training materials, and knowledge organization systems. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | SKOS | skos:example | 219-229 | exact | "An example of the use of a concept" | + | SKOS | skos:note | 176-185 | broad | Parent property; general notes | + | CIDOC-CRM | crm:P3_has_note | 1227-1241 | close | Informal descriptions container | + | Schema.org | schema:workExample | 40436-55 | related | Instance of creative work | + - Updated 2026-02-03 with verified ontology mappings and translations. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_exhibition.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_exhibition.yaml new file mode 100644 index 0000000000..7daee739e8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_exhibition.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_exhibition +name: has_exhibition +title: has_exhibition +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_exhibition: + name: has_exhibition + description: An exhibition associated with the entity. MIGRATED 2026-02-03 from has_or_had_exhibition for conciseness. + slot_uri: hc:hasExhibition + range: string + aliases: + - has_or_had_exhibition + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_exhibition_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_exhibition_type.yaml new file mode 100644 index 0000000000..f1de28242f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_exhibition_type.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_exhibition_type +name: has_exhibition_type +title: has_exhibition_type +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_exhibition_type: + name: has_exhibition_type + description: The type of exhibition. MIGRATED 2026-02-03 from has_or_had_exhibition_type for conciseness. + slot_uri: hc:hasExhibitionType + range: string + aliases: + - has_or_had_exhibition_type + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_expense.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_expense.yaml new file mode 100644 index 0000000000..aa509c0f5a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_expense.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/has_expense +name: has_expense +title: has_expense +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_expense: + name: has_expense + title: has_expense + description: Expense or cost associated with the entity. + slot_uri: hc:hasExpense + range: string # uriorcurie + # range: MonetaryAmount + multivalued: true + aliases: + - has_or_had_expense + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_expertise_in.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_expertise_in.yaml new file mode 100644 index 0000000000..eca30c3f17 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_expertise_in.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_expertise_in +name: has_expertise_in +title: has_expertise_in +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_expertise_in: + name: has_expertise_in + description: Area of expertise. MIGRATED 2026-02-03 from has_or_had_expertise_in for conciseness. + slot_uri: hc:hasExpertiseIn + range: string + aliases: + - has_or_had_expertise_in + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_extent_text.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_extent_text.yaml new file mode 100644 index 0000000000..57096fc1f9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_extent_text.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_extent_text +name: has_extent_text +title: has_extent_text +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_extent_text: + name: has_extent_text + description: Textual description of extent. MIGRATED 2026-02-03 from has_or_had_extent_text for conciseness. + slot_uri: hc:hasExtentText + range: string + aliases: + - has_or_had_extent_text + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_facility.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_facility.yaml new file mode 100644 index 0000000000..1226070cfb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_facility.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/has_facility +name: has_facility +title: has_facility +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_facility: + name: has_facility + title: has_facility + description: Facility associated with or available at an entity. + slot_uri: hc:hasFacility + range: string # uriorcurie + # range: Facility + multivalued: true + aliases: + - has_or_had_facility + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:amenityFeature diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_feature.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_feature.yaml new file mode 100644 index 0000000000..423347feda --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_feature.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_feature +name: has_feature +title: has_feature +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_feature: + name: has_feature + title: has_feature + description: Feature or characteristic of the entity. + slot_uri: hc:hasFeature + range: string # uriorcurie + multivalued: true + aliases: + - has_or_had_feature + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:amenityFeature diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_fee.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_fee.yaml new file mode 100644 index 0000000000..7d3f2f8099 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_fee.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/has_fee +name: has_fee +title: has_fee +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_fee: + name: has_fee + title: has_fee + description: Fee or charge associated with an entity or service. + slot_uri: hc:hasFee + range: string # uriorcurie + # range: MonetaryAmount + aliases: + - has_or_had_fee + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:price diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_field.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_field.yaml new file mode 100644 index 0000000000..6820efb441 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_field.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_field +name: has_field +title: has_field +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_field: + name: has_field + description: Name of a data field or property. MIGRATED 2026-02-03 from has_or_had_field for conciseness. + slot_uri: hc:hasField + range: string + aliases: + - has_or_had_field + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_file_location.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_file_location.yaml new file mode 100644 index 0000000000..2379ae3657 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_file_location.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_file_location +name: has_file_location +title: has_file_location +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_file_location: + name: has_file_location + description: The file location or path. MIGRATED 2026-02-03 from has_or_had_file_location for conciseness. + slot_uri: hc:hasFileLocation + range: string + aliases: + - has_or_had_file_location + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_file_path.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_file_path.yaml new file mode 100644 index 0000000000..eb3cb42fee --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_file_path.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_file_path +name: has_file_path +title: has_file_path +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_file_path: + name: has_file_path + title: has_file_path + description: File path of the entity. + slot_uri: hc:hasFilePath + range: string + aliases: + - has_or_had_file_path + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_fixity.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_fixity.yaml new file mode 100644 index 0000000000..62235ece23 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_fixity.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/has_fixity +name: has_fixity +title: has fixity +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_fixity: + slot_uri: hc:hasFixity + description: 'Fixity information (checksums, verification) for a digital resource. + MIGRATED from fixity_info per Rule 53. Follows RiC-O naming convention. + + + MIGRATED 2026-02-03 from has_or_had_fixity for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_fixity + exact_mappings: + - premis:fixity + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_flag.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_flag.yaml new file mode 100644 index 0000000000..8066ca70dd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_flag.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/has_flag +name: has_flag +title: has flag +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_flag: + slot_uri: hc:hasFlag + description: 'Data quality flag or status indicator. + + + MIGRATED 2026-02-03 from has_or_had_flag for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_flag + exact_mappings: + - dqv:hasQualityAnnotation + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_focus.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_focus.yaml new file mode 100644 index 0000000000..7721e723f7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_focus.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/has_focus +name: has_focus +title: has_focus +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_focus: + name: has_focus + description: Indicates the primary focus or area of interest of an entity. MIGRATED 2026-02-03 from has_or_had_focus for conciseness. + slot_uri: hc:hasFocus + range: string + multivalued: true + aliases: + - has_or_had_focus + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:scopeNote diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_fond.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_fond.yaml new file mode 100644 index 0000000000..496d810c2c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_fond.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_fond +name: has_fond +title: has_fond +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_fond: + name: has_fond + description: Archival fonds to which this item belongs. MIGRATED 2026-02-03 from has_or_had_fond for conciseness. + slot_uri: hc:hasFond + range: string + aliases: + - has_or_had_fond + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_format.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_format.yaml new file mode 100644 index 0000000000..6a8eb5100d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_format.yaml @@ -0,0 +1,215 @@ +# ============================================================================== +# LinkML Slot Definition: has_format +# ============================================================================== +# Possess a specific structural arrangement or encoding standard that governs +# how content is organized, stored, or displayed. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------------|-----------------------|---------|------------------------------------| +# | **Dublin Core**| `dcterms:format` | dcterms.rdf:1296-1320 | exact | File format, medium, dimensions | +# | **Schema.org**| `schema:encodingFormat` | schemaorg.owl:16697 | exact | Media type (IANA MIME types) | +# | **DC** | `dc:format` | dcterms.rdf:1315 | broad | Parent of dcterms:format | +# | **DCAT** | `dcat:mediaType` | dcat3.ttl:1306 | narrow | IANA media type (subPropertyOf) | +# | **DCAT** | `dcat:compressFormat` | dcat3.ttl:767 | narrow | Compression format (subPropertyOf) | +# | **DCAT** | `dcat:packageFormat` | dcat3.ttl:1386 | narrow | Package format (subPropertyOf) | +# | **RiC-O** | `rico:hasRepresentationType`| RiC-O_1-1:9074 | related | Representation type of record | +# | **RiC-O** | `rico:hasCarrierType` | RiC-O_1-1:3863 | related | Carrier/medium type | +# | **Schema.org**| `schema:fileFormat` | schemaorg.owl:18031 | related | Superseded by encodingFormat | +# +# CREATED: 2026-01-16 +# UPDATED: 2026-02-03 - Added broad_mappings and narrow_mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_format +name: has_format +title: has format +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + dc: http://purl.org/dc/elements/1.1/ + schema: http://schema.org/ + dcat: http://www.w3.org/ns/dcat# + rico: https://www.ica.org/standards/RiC/ontology# +default_prefix: hc +imports: + - linkml:types +slots: + has_format: + slot_uri: dcterms:format + description: >- + To possess a specific structural arrangement or encoding standard that + governs how content is organized, stored, or displayed. + alt_descriptions: + nl: >- + Het bezitten van een specifieke structurele rangschikking of + coderingsstandaard die bepaalt hoe inhoud wordt georganiseerd, + opgeslagen of weergegeven. + de: >- + Das Besitzen einer spezifischen strukturellen Anordnung oder eines + Kodierungsstandards, der bestimmt, wie Inhalte organisiert, gespeichert + oder angezeigt werden. + fr: >- + Posséder un arrangement structurel spécifique ou une norme de codage + qui régit la façon dont le contenu est organisé, stocké ou affiché. + ar: >- + امتلاك ترتيب هيكلي محدد أو معيار ترميز يحكم كيفية تنظيم المحتوى + أو تخزينه أو عرضه. + id: >- + Memiliki susunan struktural tertentu atau standar pengkodean yang + mengatur bagaimana konten diatur, disimpan, atau ditampilkan. + zh: >- + 拥有特定的结构安排或编码标准,用于规定内容的组织、存储或显示方式。 + es: >- + Poseer una disposición estructural específica o un estándar de + codificación que gobierna cómo se organiza, almacena o muestra + el contenido. + structured_aliases: + - literal_form: heeft formaat + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Format + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a un format + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: لديه تنسيق + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki format + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 具有格式 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene formato + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + + # VERIFIED MAPPINGS (2026-02-02) + # Source files: data/ontology/dcterms.rdf, data/ontology/schemaorg.owl, + # data/ontology/dcat3.ttl, data/ontology/RiC-O_1-1.rdf + + exact_mappings: + # dcterms.rdf line 1296-1320: format + # "The file format, physical medium, or dimensions of the resource." + # "Recommended practice is to use a controlled vocabulary where available. + # For example, for file formats one could use the list of Internet Media Types [MIME]." + - dcterms:format # from dcterms.rdf - file format, physical medium, dimensions + + # schemaorg.owl line 16697-16704: encodingFormat + # "Media type typically expressed using a MIME format (see IANA site)" + # Used for MediaObject and CreativeWork + - schema:encodingFormat # from schemaorg.owl - MIME type for media objects + + broad_mappings: + # dc:format is the parent property of dcterms:format (dcterms.rdf:1315) + - dc:format # DC Elements 1.1 - parent property of dcterms:format + + narrow_mappings: + # dcat3.ttl line 1306+: mediaType rdfs:subPropertyOf dcterms:format + - dcat:mediaType # from dcat3.ttl:1330 - IANA media type for distributions (subPropertyOf dcterms:format) + # dcat3.ttl line 767: compressFormat rdfs:subPropertyOf dcterms:format + - dcat:compressFormat # from dcat3.ttl:767 - compression format (subPropertyOf dcterms:format) + # dcat3.ttl line 1386: packageFormat rdfs:subPropertyOf dcterms:format + - dcat:packageFormat # from dcat3.ttl:1386 - package format (subPropertyOf dcterms:format) + + related_mappings: + # RiC-O_1-1.rdf line 9074: hasRepresentationType + # Links Instantiation to Type representing format/encoding + # Related: archival representation type (broader than just file format) + - rico:hasRepresentationType # from RiC-O_1-1.rdf - instantiation representation type + + # RiC-O_1-1.rdf line 3863: hasCarrierType + # Links Instantiation to Type representing physical carrier + # Related: physical medium (narrower - carrier not digital format) + - rico:hasCarrierType # from RiC-O_1-1.rdf - physical carrier type + + # schemaorg.owl line 18031-18035: fileFormat (deprecated) + # "Media type, typically MIME format" - superseded by encodingFormat + - schema:fileFormat # from schemaorg.owl - deprecated, use encodingFormat + + aliases: + - has_or_had_format + - encoding_format + - media_type + - file_format + + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Format specifications applicable to all custodian types. + range_broadening_date: '2026-01-16' + range_broadening_rationale: >- + Changed from range:string to range:uriorcurie per Rule 54. + This allows linking to IANA media types, format registries, or format classes + while resolving OWL ambiguous type warnings. Replaces need for bespoke slots + like has_or_had_transcript_format or has_or_had_subtitle_format. + specificity_score: 0.3 + specificity_rationale: >- + Generic format slot applicable across many entity types (documents, + media, datasets, transcripts, etc.). + + examples: + - value: iana:application/json + description: JSON MIME type for API responses (CURIE) + - value: iana:text/vtt + description: WebVTT subtitle/transcript format (CURIE) + - value: iana:image/jpeg + description: JPEG image format (CURIE) + - value: iana:application/pdf + description: PDF document format (CURIE) + - value: hc:TranscriptFormat/STRUCTURED + description: Structured transcript with speaker labels (internal CURIE) + - value: https://www.iana.org/assignments/media-types/image/jpeg + description: JPEG image format (full URI) + + comments: + - Updated 2026-02-03 with broad_mappings and narrow_mappings + - | + **PURPOSE**: + Generic slot for file format, media type, or encoding standard. + Applies to any digital or physical resource where format matters: + - Response formats from APIs (JSON, XML, RDF) + - File formats for documents (PDF, DOCX, TXT) + - Media formats (JPEG, MP3, MP4) + - Transcript formats (VTT, SRT, plain text) + - Subtitle formats (WebVTT, SRT, etc.) + - | + **RiC-O NAMING** (Rule 39): + Uses "has_or_had_format" alias to indicate temporal relationship - + the resource has a format currently or had one in the past (format + conversions may occur over time). + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **Dublin Core** | `dcterms:format` | 1296-1320 | exact | File format, medium, dimensions | + | **Schema.org** | `schema:encodingFormat` | 16697 | exact | MIME type for media objects | + | **DC** | `dc:format` | 1315 | broad | Parent property of dcterms:format | + | **DCAT** | `dcat:mediaType` | 1330 | narrow | IANA media type (subPropertyOf) | + | **DCAT** | `dcat:compressFormat` | 767 | narrow | Compression format (subPropertyOf) | + | **DCAT** | `dcat:packageFormat` | 1386 | narrow | Package format (subPropertyOf) | + | **RiC-O** | `rico:hasRepresentationType` | 9074 | related | Instantiation representation | + | **RiC-O** | `rico:hasCarrierType` | 3863 | related | Physical carrier type | + | **Schema.org** | `schema:fileFormat` | 18031 | related | Deprecated, use encodingFormat | + - | + **RANGE**: `uriorcurie` (Rule 54) + Broadened range to accept URI/CURIE references to format specifications. + This allows linking to IANA media types, format registries, or internal + format classes while resolving OWL ambiguous type warnings. + - | + **IANA MEDIA TYPES**: + Recommended to use IANA media types with the `iana:` prefix. + See: https://www.iana.org/assignments/media-types/media-types.xhtml + Classes can narrow to specific format enums/classes via slot_usage. + + see_also: + - https://www.iana.org/assignments/media-types/media-types.xhtml + - https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#format + - https://schema.org/encodingFormat diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_frequency.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_frequency.yaml new file mode 100644 index 0000000000..7ad5b8b791 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_frequency.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/has_frequency +name: has_frequency +title: has_frequency +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_frequency: + name: has_frequency + title: has_frequency + description: Frequency or rate of occurrence. + slot_uri: hc:hasFrequency + range: string + aliases: + - has_or_had_frequency + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_function.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_function.yaml new file mode 100644 index 0000000000..b0813368fe --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_function.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/has_function +name: has_function +title: has_function +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_function: + name: has_function + title: has_function + description: Function or purpose of the entity. + slot_uri: hc:hasFunction + range: string # uriorcurie + multivalued: true + aliases: + - has_or_had_function + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_funded.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_funded.yaml new file mode 100644 index 0000000000..81640d510a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_funded.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_funded +name: has_funded +title: has_funded +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_funded: + name: has_funded + description: Funded entity or project. MIGRATED 2026-02-03 from has_or_had_funded for conciseness. + slot_uri: hc:hasFunded + range: string + aliases: + - has_or_had_funded + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_generate.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_generate.yaml new file mode 100644 index 0000000000..836ddcc63a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_generate.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_generate +name: has_generate +title: has_generate +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_generate: + name: has_generate + description: Generated content or output. MIGRATED 2026-02-03 from has_or_had_generate for conciseness. + slot_uri: hc:hasGenerate + range: string + aliases: + - has_or_had_generate + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_geofeature.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_geofeature.yaml new file mode 100644 index 0000000000..8766d17fc1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_geofeature.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/has_geofeature +name: has_geofeature +title: has_geofeature +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# + gn: http://www.geonames.org/ontology# +default_prefix: hc +imports: +- linkml:types +slots: + has_geofeature: + name: has_geofeature + description: Links a geospatial place to a geographic feature classification. MIGRATED 2026-02-03 from has_or_had_geofeature for conciseness. + slot_uri: hc:hasGeofeature + range: string + multivalued: true + aliases: + - has_or_had_geofeature + annotations: + custodian_types: '["*"]' + exact_mappings: + - gn:featureClass diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_geographic_extent.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_geographic_extent.yaml new file mode 100644 index 0000000000..c92c742323 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_geographic_extent.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/has_geographic_extent +name: has_geographic_extent +title: has_geographic_extent +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_geographic_extent: + name: has_geographic_extent + title: has_geographic_extent + description: Geographic extent or coverage area of the entity. + slot_uri: hc:hasGeographicExtent + range: string # uriorcurie + aliases: + - has_or_had_geographic_extent + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:areaServed diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_geographic_subdivision.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_geographic_subdivision.yaml new file mode 100644 index 0000000000..a85619e576 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_geographic_subdivision.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/has_geographic_subdivision +name: has_geographic_subdivision +title: has_geographic_subdivision +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_geographic_subdivision: + name: has_geographic_subdivision + title: has_geographic_subdivision + description: Geographic subdivision or administrative area associated with an entity. + slot_uri: hc:hasGeographicSubdivision + range: string # uriorcurie + # range: Place + multivalued: true + aliases: + - has_or_had_geographic_subdivision + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:containedInPlace diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_geometric_extent.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_geometric_extent.yaml new file mode 100644 index 0000000000..228b3073e2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_geometric_extent.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_geometric_extent +name: has_geometric_extent +title: has_geometric_extent +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_geometric_extent: + name: has_geometric_extent + description: The geometric extent. MIGRATED 2026-02-03 from has_or_had_geometric_extent for conciseness. + slot_uri: hc:hasGeometricExtent + range: string + aliases: + - has_or_had_geometric_extent + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_geometry.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_geometry.yaml new file mode 100644 index 0000000000..f16c2655d8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_geometry.yaml @@ -0,0 +1,44 @@ +# ============================================================================== +# LinkML Slot Definition: has_geometry +# ============================================================================== +# Geometric representation of an entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|-------------------|---------|----------------------------------| +# | **GeoSPARQL** | `geo:hasGeometry` | exact | OGC GeoSPARQL geometry | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_geometry +name: has_geometry +title: Has Geometry +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + geo: http://www.opengis.net/ont/geosparql# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Geometric representation of an entity. +imports: +- linkml:types +slots: + has_geometry: + slot_uri: geo:hasGeometry + description: | + Geometric representation of an entity. + range: string + multivalued: true + exact_mappings: + - geo:hasGeometry + aliases: + - has_or_had_geometry + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_habitat.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_habitat.yaml new file mode 100644 index 0000000000..5516fd6f25 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_habitat.yaml @@ -0,0 +1,23 @@ +id: https://nde.nl/ontology/hc/slot/has_habitat +name: has_habitat +title: has_habitat +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_habitat: + name: has_habitat + description: The habitat or environment of a species or entity. MIGRATED 2026-02-03 from has_or_had_habitat for conciseness. + slot_uri: hc:hasHabitat + range: string + aliases: + - has_or_had_habitat + - is_or_was_habitat + - habitat + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/has_hands_on_facility.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_hands_on_facility.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/has_hands_on_facility.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_hands_on_facility.yaml index a345ca9dde..ed4471e3f9 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_hands_on_facility.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_hands_on_facility.yaml @@ -25,6 +25,8 @@ slots: ' range: boolean slot_uri: hc:hasHandsOnFacilities + aliases: + - has_or_had_hands_on_facility annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_head.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_head.yaml new file mode 100644 index 0000000000..f4bf8ada54 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_head.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_head +name: has_head +title: has_head +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_head: + name: has_head + description: The head or leader of an organization. MIGRATED 2026-02-03 from has_or_had_head for conciseness. + slot_uri: hc:hasHead + range: string + aliases: + - has_or_had_head + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_height.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_height.yaml similarity index 55% rename from schemas/20251121/linkml/modules/slots/has_or_had_height.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_height.yaml index c3ed836ec9..0fcb1b7e80 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_height.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_height.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_height -name: has_or_had_height_slot -title: Has Or Had Height Slot +id: https://nde.nl/ontology/hc/slot/has_height +name: has_height +title: has_height prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -16,15 +16,16 @@ default_prefix: hc imports: - linkml:types slots: - has_or_had_height: - name: has_or_had_height - description: Height of a bounding box or object. MIGRATED from height (Rule 53). - slot_uri: schema:height + has_height: + name: has_height + description: Height of a bounding box or object. MIGRATED 2026-02-03 from has_or_had_height for conciseness. + slot_uri: hc:hasHeight range: float + aliases: + - has_or_had_height annotations: - rico_naming_convention: Follows RiC-O "hasOrHad" pattern for temporal predicates. - replaces_slots: height - migration_date: '2026-01-28' + replaces_slots: has_or_had_height + migration_date: '2026-02-03' custodian_types: '["*"]' exact_mappings: - schema:height diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_homepage.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_homepage.yaml new file mode 100644 index 0000000000..82067b673b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_homepage.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_homepage +name: has_homepage +title: has_homepage +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_homepage: + name: has_homepage + description: The homepage URL. MIGRATED 2026-02-03 from has_or_had_homepage for conciseness. + slot_uri: hc:hasHomepage + range: string + aliases: + - has_or_had_homepage + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_http_status.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_http_status.yaml new file mode 100644 index 0000000000..b4d3214846 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_http_status.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/has_http_status +name: has_http_status +title: Has HTTP Status +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ +default_prefix: hc +imports: + - linkml:types +slots: + has_http_status: + description: >- + HTTP status code associated with a web resource or response. + MIGRATED from has_or_had_http_status for conciseness. + range: integer + slot_uri: hc:hasHttpStatus + aliases: + - has_or_had_http_status + - http_status_code + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_hypernym.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_hypernym.yaml new file mode 100644 index 0000000000..17edd4ccda --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_hypernym.yaml @@ -0,0 +1,47 @@ +# ============================================================================== +# LinkML Slot Definition: has_hypernym +# ============================================================================== +# Broader/parent concept in a hierarchy. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|-------------------|---------|----------------------------------| +# | **SKOS** | `skos:broader` | exact | SKOS broader concept | +# | **RDFS** | `rdfs:subClassOf` | close | Class hierarchy (inverse) | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_hypernym +name: has_hypernym +title: Has Hypernym +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Broader/parent concept in a hierarchy. +imports: +- linkml:types +slots: + has_hypernym: + slot_uri: skos:broader + description: | + Broader/parent concept in a hierarchy. + range: string + multivalued: true + exact_mappings: + - skos:broader + close_mappings: + - rdfs:subClassOf + aliases: + - has_or_had_hypernym + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_hyponym.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_hyponym.yaml new file mode 100644 index 0000000000..7cdafe5728 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_hyponym.yaml @@ -0,0 +1,44 @@ +# ============================================================================== +# LinkML Slot Definition: has_hyponym +# ============================================================================== +# Narrower/child concept in a hierarchy. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|-------------------|---------|----------------------------------| +# | **SKOS** | `skos:narrower` | exact | SKOS narrower concept | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_hyponym +name: has_hyponym +title: Has Hyponym +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Narrower/child concept in a hierarchy. +imports: +- linkml:types +slots: + has_hyponym: + slot_uri: skos:narrower + description: | + Narrower/child concept in a hierarchy. + range: string + multivalued: true + exact_mappings: + - skos:narrower + aliases: + - has_or_had_hyponym + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_image.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_image.yaml new file mode 100644 index 0000000000..d961f1b7b1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_image.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_image +name: has_image +title: has_image +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_image: + name: has_image + title: has_image + description: Image associated with the entity. + slot_uri: hc:hasImage + range: uri + multivalued: true + aliases: + - has_or_had_image + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:image diff --git a/schemas/20251121/linkml/modules/slots/archive/has_imaging_equipment.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_imaging_equipment.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/has_imaging_equipment.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_imaging_equipment.yaml index 3192466536..57e6500960 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_imaging_equipment.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_imaging_equipment.yaml @@ -35,6 +35,8 @@ slots: ' range: boolean slot_uri: hc:hasImagingEquipment + aliases: + - has_or_had_imaging_equipment annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_index_number.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_index_number.yaml new file mode 100644 index 0000000000..81ca26ccfc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_index_number.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_index_number +name: has_index_number +title: has_index_number +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_index_number: + name: has_index_number + description: An index number associated with an information carrier or record. MIGRATED 2026-02-03 from has_or_had_index_number for conciseness. + slot_uri: hc:hasIndexNumber + range: string + aliases: + - has_or_had_index_number + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_index_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_index_type.yaml new file mode 100644 index 0000000000..b79c744965 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_index_type.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_index_type +name: has_index_type +title: has_index_type +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_index_type: + name: has_index_type + description: The type of index. MIGRATED 2026-02-03 from has_or_had_index_type for conciseness. + slot_uri: hc:hasIndexType + range: string + aliases: + - has_or_had_index_type + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_inscription.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_inscription.yaml new file mode 100644 index 0000000000..38d90ef3e3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_inscription.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_inscription +name: has_inscription +title: has_inscription +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_inscription: + name: has_inscription + description: An inscription on an entity. MIGRATED 2026-02-03 from has_or_had_inscription for conciseness. + slot_uri: hc:hasInscription + range: string + aliases: + - has_or_had_inscription + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_interface.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_interface.yaml new file mode 100644 index 0000000000..00b2fe643f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_interface.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/has_interface +name: has_interface +title: has_interface +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcat: http://www.w3.org/ns/dcat# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_interface: + name: has_interface + description: Indicates an interface or access point for a digital resource. MIGRATED 2026-02-03 from has_or_had_interface for conciseness. + slot_uri: hc:hasInterface + range: string + multivalued: true + aliases: + - has_or_had_interface + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcat:accessService diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_inventory_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_inventory_url.yaml new file mode 100644 index 0000000000..ebd11f9edb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_inventory_url.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_inventory_url +name: has_inventory_url +title: has_inventory_url +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_inventory_url: + name: has_inventory_url + description: URL to an inventory. MIGRATED 2026-02-03 from has_or_had_inventory_url for conciseness. + slot_uri: hc:hasInventoryUrl + range: string + aliases: + - has_or_had_inventory_url + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_investment.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_investment.yaml new file mode 100644 index 0000000000..87ea859ed7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_investment.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_investment +name: has_investment +title: has_investment +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_investment: + name: has_investment + description: Investment amount or value. MIGRATED 2026-02-03 from has_or_had_investment for conciseness. + slot_uri: hc:hasInvestment + range: string + aliases: + - has_or_had_investment + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_involved_actor.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_involved_actor.yaml new file mode 100644 index 0000000000..59aa02a83f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_involved_actor.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_involved_actor +name: has_involved_actor +title: has_involved_actor +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_involved_actor: + name: has_involved_actor + description: An actor involved in an activity. MIGRATED 2026-02-03 from has_or_had_involved_actor for conciseness. + slot_uri: hc:hasInvolvedActor + range: string + aliases: + - has_or_had_involved_actor + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_iso_639_1.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_iso_639_1.yaml new file mode 100644 index 0000000000..cfb5943080 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_iso_639_1.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/has_iso_639_1 +name: has_iso_639_1 +title: has iso 639 1 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_iso_639_1: + slot_uri: hc:hasIso6391 + description: 'ISO 639-1 two-letter language code. + + + MIGRATED 2026-02-03 from has_or_had_iso_639_1 for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_iso_639_1 + close_mappings: + - dct:language + annotations: + custodian_types: '["*"]' + specificity_score: 0.3 diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_iso_639_3.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_iso_639_3.yaml new file mode 100644 index 0000000000..361560a484 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_iso_639_3.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/has_iso_639_3 +name: has_iso_639_3 +title: has iso 639 3 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_iso_639_3: + slot_uri: hc:hasIso6393 + description: 'ISO 639-3 three-letter language code. + + + MIGRATED 2026-02-03 from has_or_had_iso_639_3 for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_iso_639_3 + close_mappings: + - dct:language + annotations: + custodian_types: '["*"]' + specificity_score: 0.3 diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_iso_code.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_iso_code.yaml new file mode 100644 index 0000000000..b7e1387218 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_iso_code.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/has_iso_code +name: has_iso_code +title: has_iso_code +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_iso_code: + name: has_iso_code + title: has_iso_code + description: ISO code associated with the entity. + slot_uri: hc:hasIsoCode + range: string + aliases: + - has_or_had_iso_ + - has_or_had_iso_code + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_key_contact.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_key_contact.yaml new file mode 100644 index 0000000000..973f93e589 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_key_contact.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_key_contact +name: has_key_contact +title: has_key_contact +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_key_contact: + name: has_key_contact + description: A key contact person. MIGRATED 2026-02-03 from has_or_had_key_contact for conciseness. + slot_uri: hc:hasKeyContact + range: string + aliases: + - has_or_had_key_contact + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_label.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_label.yaml new file mode 100644 index 0000000000..54960807bd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_label.yaml @@ -0,0 +1,51 @@ +# ============================================================================== +# LinkML Slot Definition: has_label +# ============================================================================== +# Human-readable label for an entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|-------------------|---------|----------------------------------| +# | **SKOS** | `skos:prefLabel` | exact | Preferred label | +# | **RDFS** | `rdfs:label` | close | RDF Schema label | +# | **Schema.org**| `schema:name` | related | Name property | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_label +name: has_label +title: Has Label +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Human-readable label for an entity. +imports: +- linkml:types +slots: + has_label: + slot_uri: skos:prefLabel + description: | + Human-readable label for an entity. + range: string + multivalued: true + exact_mappings: + - skos:prefLabel + close_mappings: + - rdfs:label + related_mappings: + - schema:name + aliases: + - has_or_had_label + - is_or_was_halc_adm2_name + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_language.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_language.yaml new file mode 100644 index 0000000000..ad474e45c1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_language.yaml @@ -0,0 +1,41 @@ +# ============================================================================== +# LinkML Slot Definition: has_language +# ============================================================================== +# Language associated with an entity. +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_language +name: has_language +title: Has Language +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Language associated with an entity. +imports: +- linkml:types +slots: + has_language: + slot_uri: dcterms:language + description: | + Language associated with an entity. + range: string + multivalued: true + exact_mappings: + - dcterms:language + close_mappings: + - schema:inLanguage + aliases: + - has_or_had_language + - en + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_level.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_level.yaml new file mode 100644 index 0000000000..eb976ce17d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_level.yaml @@ -0,0 +1,38 @@ +# ============================================================================== +# LinkML Slot Definition: has_level +# ============================================================================== +# Level or granularity associated with an entity. +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_level +name: has_level +title: Has Level +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Level or granularity associated with an entity. +imports: +- linkml:types +slots: + has_level: + slot_uri: hc:hasLevel + description: | + Level or granularity associated with an entity. + range: string + multivalued: false + aliases: + - has_or_had_level + - is_or_was_handwriting_confidence + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_liability.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_liability.yaml new file mode 100644 index 0000000000..9eaed2ca5e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_liability.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/has_liability +name: has_liability +title: has_liability +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_liability: + name: has_liability + slot_uri: hc:hasLiability + description: 'Liability amount of an organization. + + **USAGE**: + Used for: + - Total liabilities + - Debt obligations + - Financial commitments + + MIGRATED 2026-02-03: Renamed from has_or_had_liability for conciseness.' + range: string + aliases: + - has_or_had_liability + examples: + - value: + value: 500000 + unit: EUR + description: Total liabilities of 500,000 EUR + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:amount diff --git a/schemas/20251121/linkml/modules/slots/archive/has_link.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_link.yaml similarity index 96% rename from schemas/20251121/linkml/modules/slots/archive/has_link.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_link.yaml index 8717775d34..70bb6b6c0b 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_link.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_link.yaml @@ -22,6 +22,8 @@ slots: range: string multivalued: true slot_uri: schema:url + aliases: + - has_or_had_link exact_mappings: - schema:url close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_loading_dock.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_loading_dock.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/has_loading_dock.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_loading_dock.yaml index 73efa5e3ff..ff9d6fe3e1 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_loading_dock.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_loading_dock.yaml @@ -22,6 +22,8 @@ slots: ' range: boolean + aliases: + - has_or_had_loading_dock annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/archive/has_local_collection.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_local_collection.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/has_local_collection.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_local_collection.yaml index 598f8d63b4..cec8ac2043 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_local_collection.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_local_collection.yaml @@ -27,6 +27,8 @@ slots: ' range: boolean slot_uri: hc:hasLocalCollection + aliases: + - has_or_had_local_collection annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_location.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_location.yaml new file mode 100644 index 0000000000..77867a4972 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_location.yaml @@ -0,0 +1,40 @@ +# ============================================================================== +# LinkML Slot Definition: has_location +# ============================================================================== +# Location of an entity. +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_location +name: has_location +title: Has Location +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Location of an entity. +imports: +- linkml:types +slots: + has_location: + slot_uri: schema:location + description: | + Location of an entity. + range: string + multivalued: true + exact_mappings: + - schema:location + aliases: + - has_or_had_location + - is_or_was_ends_or_ended_at_location + - ends_or_ended_at_location + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_main_part.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_main_part.yaml new file mode 100644 index 0000000000..c685df89ed --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_main_part.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/has_main_part +name: has_main_part +title: has_main_part +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_main_part: + name: has_main_part + slot_uri: hc:hasMainPart + description: 'Links to a MainPart representing the principal/primary portion of something. + + **USE CASES**: - Capital budget (primary budget allocation for infrastructure/equipment) - Primary collection holdings - Main organizational unit + + **ONTOLOGY ALIGNMENT**: - slot_uri: schema:hasPart (primary) - Represents a significant/main portion of a larger whole + + MIGRATED 2026-02-03: Renamed from has_or_had_main_part for conciseness.' + range: string + inlined: false + aliases: + - has_or_had_main_part + exact_mappings: + - schema:hasPart + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Main parts are universal across organizational contexts diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_mandate.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_mandate.yaml new file mode 100644 index 0000000000..a3670ae71f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_mandate.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_mandate +name: has_mandate +title: has_mandate +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_mandate: + name: has_mandate + description: A formal mandate or responsibility. MIGRATED 2026-02-03 from has_or_had_mandate for conciseness. + slot_uri: hc:hasMandate + range: string + aliases: + - has_or_had_mandate + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_metadata.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_material_type.yaml similarity index 56% rename from schemas/20251121/linkml/modules/slots/has_or_had_metadata.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_material_type.yaml index 998c9de789..0f258ac3ff 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_metadata.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_material_type.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_metadata -name: has_or_had_metadata -title: has_or_had_metadata +id: https://nde.nl/ontology/hc/slot/has_material_type +name: has_material_type +title: has_material_type prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -16,17 +16,17 @@ default_prefix: hc imports: - linkml:types slots: - has_or_had_metadata: - name: has_or_had_metadata - description: 'Relates an entity to its metadata (e.g. EnrichmentMetadata). - - MIGRATED from `enrichment_metadata_whatsapp`.' - slot_uri: schema:about - # range: Any + has_material_type: + name: has_material_type + description: The type of material of an entity. MIGRATED 2026-02-03 from has_or_had_material_type for conciseness. + slot_uri: hc:hasMaterialType + range: string multivalued: true - exact_mappings: - - schema:about - close_mappings: - - prov:wasGeneratedBy + aliases: + - has_or_had_material_type annotations: custodian_types: '["*"]' + exact_mappings: + - schema:material + close_mappings: + - crm:P45_consists_of diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_mean.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_mean.yaml new file mode 100644 index 0000000000..f5c61fb31c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_mean.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_mean +name: has_mean +title: has_mean +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_mean: + name: has_mean + description: The mean value. MIGRATED 2026-02-03 from has_or_had_mean for conciseness. + slot_uri: hc:hasMean + range: string + aliases: + - has_or_had_mean + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_measurement.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_measurement.yaml new file mode 100644 index 0000000000..995072d804 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_measurement.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/has_measurement +name: has_measurement +title: has_measurement +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_measurement: + name: has_measurement + title: has_measurement + description: Measurement associated with the entity. + slot_uri: hc:hasMeasurement + range: string # uriorcurie + # range: Measurement + multivalued: true + aliases: + - has_or_had_measurement + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_measurement_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_measurement_type.yaml new file mode 100644 index 0000000000..109fd685da --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_measurement_type.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_measurement_type +name: has_measurement_type +title: has_measurement_type +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_measurement_type: + name: has_measurement_type + title: has_measurement_type + description: Type of measurement used. + slot_uri: hc:hasMeasurementType + range: string # uriorcurie + aliases: + - has_or_had_measurement_type + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_measurement_unit.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_measurement_unit.yaml new file mode 100644 index 0000000000..cfbfaea26a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_measurement_unit.yaml @@ -0,0 +1,45 @@ +# ============================================================================== +# LinkML Slot Definition: has_measurement_unit +# ============================================================================== +# Measurement unit associated with a quantity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|-----------------|---------|-----------------------------------| +# | **QUDT** | `qudt:unit` | exact | QUDT unit property | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_measurement_unit +name: has_measurement_unit +title: Has Measurement Unit +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Measurement unit associated with a quantity. +imports: +- linkml:types +slots: + has_measurement_unit: + slot_uri: qudt:unit + description: | + Measurement unit associated with a quantity. + range: string + multivalued: false + exact_mappings: + - qudt:unit + aliases: + - has_or_had_measurement_unit + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_media_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_media_type.yaml new file mode 100644 index 0000000000..1a9f43be14 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_media_type.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_media_type +name: has_media_type +title: has_media_type +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_media_type: + name: has_media_type + description: The media type or MIME type. MIGRATED 2026-02-03 from has_or_had_media_type for conciseness. + slot_uri: hc:hasMediaType + range: string + aliases: + - has_or_had_media_type + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_medium.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_medium.yaml new file mode 100644 index 0000000000..348f2dfcc2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_medium.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_medium +name: has_medium +title: has_medium +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_medium: + name: has_medium + description: The medium or material of an entity. MIGRATED 2026-02-03 from has_or_had_medium for conciseness. + slot_uri: hc:hasMedium + range: string + aliases: + - has_or_had_medium + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_member.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_member.yaml new file mode 100644 index 0000000000..a7898c4d86 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_member.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/has_member +name: has_member +title: has_member +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_member: + name: has_member + title: has_member + description: Member of the entity. + slot_uri: hc:hasMember + range: string # uriorcurie + multivalued: true + aliases: + - has_or_had_member + annotations: + custodian_types: '["*"]' + exact_mappings: + - org:hasMember + - schema:member diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_metadata.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_metadata.yaml new file mode 100644 index 0000000000..a4b76d2063 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_metadata.yaml @@ -0,0 +1,105 @@ +# ============================================================================== +# LinkML Slot Definition: has_metadata +# ============================================================================== +# To possess or be associated with structured data that describes, explains, +# or provides context about the characteristics, content, or quality of an entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **Schema.org**| `schema:about` | schemaorg.owl:6657 | related | Subject matter (not metadata) | +# | **PROV-O** | `prov:wasGeneratedBy` | prov.ttl:1108-1118 | related | Entity generated by activity | +# | **DCTerms** | `dcterms:description` | dcterms.rdf | related | Descriptive information | +# +# HIERARCHY: No standard ontology property for "has metadata" - domain-specific +# +# CREATED: 2026-01-20 +# UPDATED: 2026-02-03 - Fixed mapping: schema:about is NOT exact (subject matter vs metadata) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_metadata +name: has_metadata +title: has_metadata +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_metadata: + name: has_metadata + description: >- + To possess or be associated with structured data that describes, + explains, or provides context about the characteristics, content, or + quality of an entity. + alt_descriptions: + nl: >- + Om gestructureerde gegevens te bezitten of ermee geassocieerd te zijn + die de kenmerken, inhoud of kwaliteit van een entiteit beschrijven, + uitleggen of context bieden. + de: >- + Strukturierte Daten zu besitzen oder damit verbunden zu sein, die die + Eigenschaften, den Inhalt oder die Qualität einer Entität beschreiben, + erklären oder kontextualisieren. + fr: >- + Posséder ou être associé à des données structurées qui décrivent, + expliquent ou fournissent un contexte sur les caractéristiques, le + contenu ou la qualité d'une entité. + ar: >- + امتلاك أو الارتباط ببيانات منظمة تصف أو تشرح أو توفر سياقاً حول + خصائص أو محتوى أو جودة كيان ما. + id: >- + Memiliki atau terkait dengan data terstruktur yang menjelaskan, + menerangkan, atau memberikan konteks tentang karakteristik, konten, + atau kualitas suatu entitas. + zh: >- + 拥有或与描述、解释或提供关于实体特征、内容或质量的上下文的结构化数据相关联。 + es: >- + Poseer o estar asociado con datos estructurados que describen, + explican o proporcionan contexto sobre las características, contenido + o calidad de una entidad. + structured_aliases: + - literal_form: metadata + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Metadaten + predicate: EXACT_SYNONYM + in_language: de + - literal_form: métadonnées + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: بيانات وصفية + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: metadata + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 元数据 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: metadatos + predicate: EXACT_SYNONYM + in_language: es + slot_uri: hc:hasMetadata + range: string # uriorcurie + multivalued: true + related_mappings: + - schema:about # Subject matter, not metadata - different semantics + - prov:wasGeneratedBy # Entity generated by activity + - dcterms:description # Descriptive information + aliases: + - has_or_had_metadata + annotations: + custodian_types: '["*"]' + comments: + - MIGRATED from enrichment_metadata_whatsapp per slot_fixes.yaml (Rule 53). diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_method.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_method.yaml new file mode 100644 index 0000000000..6931eae413 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_method.yaml @@ -0,0 +1,118 @@ +# ============================================================================== +# LinkML Slot Definition: has_method +# ============================================================================== +# To utilize or be associated with a specific systematic procedure, technique, +# or mode of inquiry established to accomplish a task or research objective. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **PROV-O** | `prov:used` | prov.ttl:1046-1057 | close | Entity used by activity | +# | **Schema.org**| `schema:instrument` | schemaorg.owl:22391 | close | Instrument used to perform action | +# | **CIDOC-CRM** | `crm:P33_used_specific_technique` | CIDOC_CRM | close | Technique used in activity | +# | **Schema.org**| `schema:httpMethod` | schemaorg.owl:20833 | narrow | HTTP method specifically | +# +# HIERARCHY: +# - prov:used rdfs:subPropertyOf prov:wasInfluencedBy (prov.ttl:1046) +# - No standard ontology property for general "has method" - domain-specific +# +# CREATED: 2026-01-20 +# UPDATED: 2026-02-03 - Fixed mappings: schema:httpMethod is narrow (HTTP-specific), prov:used is close +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_method +name: has_method +title: Has Method +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_method: + slot_uri: hc:hasMethod + description: >- + To utilize or be associated with a specific systematic procedure, + technique, or mode of inquiry established to accomplish a task or + research objective. + alt_descriptions: + nl: >- + Om een specifieke systematische procedure, techniek of onderzoeksmodus + te gebruiken of ermee geassocieerd te zijn die is vastgesteld om een + taak of onderzoeksdoel te bereiken. + de: >- + Ein spezifisches systematisches Verfahren, eine Technik oder einen + Untersuchungsmodus zu verwenden oder damit verbunden zu sein, der zur + Erfüllung einer Aufgabe oder eines Forschungsziels eingerichtet wurde. + fr: >- + Utiliser ou être associé à une procédure systématique, une technique + ou un mode d'enquête spécifique établi pour accomplir une tâche ou un + objectif de recherche. + ar: >- + استخدام أو الارتباط بإجراء منهجي محدد أو تقنية أو طريقة بحث تم + تأسيسها لإنجاز مهمة أو هدف بحثي. + id: >- + Menggunakan atau terkait dengan prosedur sistematis, teknik, atau + metode penyelidikan tertentu yang ditetapkan untuk menyelesaikan + tugas atau tujuan penelitian. + zh: >- + 使用或与为完成任务或研究目标而建立的特定系统程序、技术或调查模式相关联。 + es: >- + Utilizar o estar asociado con un procedimiento sistemático, técnica + o modo de investigación específico establecido para lograr una tarea + u objetivo de investigación. + structured_aliases: + - literal_form: methode + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Methode + predicate: EXACT_SYNONYM + in_language: de + - literal_form: méthode + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: طريقة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: metode + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 方法 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: método + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + close_mappings: + - prov:used # Entity used by activity - related but not exact + - schema:instrument # Instrument used to perform action + - crm:P33_used_specific_technique # CIDOC-CRM technique + narrow_mappings: + - schema:httpMethod # HTTP method specifically (GET, POST, etc.) + aliases: + - has_or_had_method + examples: + - value: + method_name: GET + description: HTTP GET method + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: Used for: + - HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod + - Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod + - API interaction methods + - Range broadened to support multiple method types per Rule 55. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_methodology.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_methodology.yaml new file mode 100644 index 0000000000..c3236d0c51 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_methodology.yaml @@ -0,0 +1,123 @@ +# ============================================================================== +# LinkML Slot Definition: has_methodology +# ============================================================================== +# To be guided by or based upon a comprehensive theoretical framework or system +# of principles that determines the methods and practices applied in a specific +# discipline or project. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **PROV-O** | `prov:hadPlan` | prov.ttl:658-660 | exact | Plan adopted by Agent in Activity | +# +# HIERARCHY: prov:hadPlan has no rdfs:subPropertyOf declaration +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Changed slot_uri from hc:hasMethodology to prov:hadPlan (exact mapping) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_methodology +name: has_methodology +title: Has Methodology +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_methodology: + description: >- + To be guided by or based upon a comprehensive theoretical framework or + system of principles that determines the methods and practices applied + in a specific discipline or project. + alt_descriptions: + nl: >- + Om geleid of gebaseerd te zijn op een uitgebreid theoretisch kader of + systeem van principes dat de methoden en praktijken bepaalt die worden + toegepast in een specifieke discipline of project. + de: >- + Sich von einem umfassenden theoretischen Rahmen oder Prinzipiensystem + leiten zu lassen oder darauf zu basieren, das die in einer bestimmten + Disziplin oder einem Projekt angewandten Methoden und Praktiken bestimmt. + fr: >- + Être guidé par ou basé sur un cadre théorique complet ou un système de + principes qui détermine les méthodes et pratiques appliquées dans une + discipline ou un projet spécifique. + ar: >- + أن يسترشد أو يستند إلى إطار نظري شامل أو نظام مبادئ يحدد الأساليب + والممارسات المطبقة في تخصص أو مشروع معين. + id: >- + Dipandu oleh atau berdasarkan kerangka teoritis komprehensif atau + sistem prinsip yang menentukan metode dan praktik yang diterapkan + dalam disiplin atau proyek tertentu. + zh: >- + 以确定特定学科或项目中应用的方法和实践的综合理论框架或原则体系为指导或基础。 + es: >- + Estar guiado por o basado en un marco teórico integral o sistema de + principios que determina los métodos y prácticas aplicados en una + disciplina o proyecto específico. + structured_aliases: + - literal_form: methodologie + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Methodik + predicate: EXACT_SYNONYM + in_language: de + - literal_form: méthodologie + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: منهجية + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: metodologi + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 方法论 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: metodología + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + # range: Methodology + slot_uri: prov:hadPlan + exact_mappings: + - prov:hadPlan + annotations: + rule_53_compliant: true + link_branch: 2 + migration_source: unique_object_count, unique_face_count + custodian_types: '["*"]' + aliases: + - has_or_had_methodology + examples: + - value: hc:Methodology/entity-resolution + description: Entity resolution methodology for face clustering + - value: hc:Methodology/manual-count + description: Manual counting methodology by human annotator + comments: + - | + **PROV-O ALIGNMENT**: + Maps to `prov:hadPlan` which indicates "The optional Plan adopted by + an Agent in Association with some Activity." + - | + **WHY THIS MATTERS**: + A "unique face count" of 15 has different meanings depending on methodology: + - ENTITY_RESOLUTION: 15 distinct individuals identified via face clustering + - OBJECT_TRACKING: 15 tracked face instances (may include same person) + - MANUAL_COUNT: 15 faces counted by human annotator + - | + **RULE 53 COMPLIANT**: Created for unique_object_count and unique_face_count + migration per slot_fixes.yaml revision (lines 1951-1994). + - | + **RULE 39 COMPLIANT**: RiC-O style temporal naming (has_or_had_*) in alias. diff --git a/schemas/20251121/linkml/modules/slots/archive/has_michelin_star.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_michelin_star.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/has_michelin_star.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_michelin_star.yaml index 22c02477db..7755159c0d 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_michelin_star.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_michelin_star.yaml @@ -26,6 +26,8 @@ slots: ' range: boolean + aliases: + - has_or_had_michelin_star annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_mode.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_mode.yaml new file mode 100644 index 0000000000..8fb719bcb7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_mode.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_mode +name: has_mode +title: has_mode +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_mode: + name: has_mode + description: The operational mode or configuration of an entity. MIGRATED 2026-02-03 from has_or_had_mode for conciseness. + slot_uri: hc:hasMode + range: string + aliases: + - has_or_had_mode + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_model.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_model.yaml new file mode 100644 index 0000000000..09cf6fe6c9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_model.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_model +name: has_model +title: has_model +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_model: + name: has_model + title: has_model + description: Model or version identifier of an entity. + slot_uri: hc:hasModel + range: string + aliases: + - has_or_had_model + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:model diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_name.yaml new file mode 100644 index 0000000000..62da04d697 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_name.yaml @@ -0,0 +1,63 @@ +# ============================================================================== +# LinkML Slot Definition: has_name +# ============================================================================== +# Name of an entity (person, organization, project, etc.). +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|-------------------|---------|----------------------------------| +# | **Schema.org**| `schema:name` | exact | Schema.org name property | +# | **FOAF** | `foaf:name` | exact | FOAF name | +# | **RDFS** | `rdfs:label` | close | RDF Schema label | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_name +name: has_name +title: Has Name +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + foaf: http://xmlns.com/foaf/0.1/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Name of an entity (person, organization, project, etc.). +imports: +- linkml:types +slots: + has_name: + slot_uri: schema:name + description: | + Name of an entity (person, organization, project, etc.). + + **Usage**: + For persons: full name (e.g., "Jan de Vries") + For organizations: official name (e.g., "Rijksmuseum Amsterdam") + For projects: project title + range: string + multivalued: false + exact_mappings: + - foaf:name + close_mappings: + - rdfs:label + related_mappings: + - schema:alternateName + aliases: + - has_or_had_name + - is_or_was_full_name + - full_name + annotations: + custodian_types: '["*"]' + examples: + - value: Jan de Vries + description: Person name (individual author) + - value: Rijksmuseum Research Department + description: Corporate/organizational name diff --git a/schemas/20251121/linkml/modules/slots/archive/has_narrower_instance.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_narrower_instance.yaml similarity index 96% rename from schemas/20251121/linkml/modules/slots/archive/has_narrower_instance.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_narrower_instance.yaml index 546d9dc618..563befeb94 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_narrower_instance.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_narrower_instance.yaml @@ -20,6 +20,8 @@ slots: slot_uri: skos:narrowerTransitive description: "Links this archive TYPE to specific CustodianArchive INSTANCES\nthat are classified under this lifecycle phase.\n\n**SKOS**: skos:narrowerTransitive for type-instance relationship.\n\n**Usage**:\nWhen a CustodianArchive contains records in the \"current/active\" phase,\nit can be linked from CurrentArchive via this property.\n\n**Example**:\n- CurrentArchive (type) \u2192 has_narrower_instance \u2192 \n CustodianArchive \"Director's Active Files 2020-2024\" (instance)\n" range: string # uriorcurie + aliases: + - has_or_had_narrower_instance # range: CustodianArchive multivalued: true annotations: diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_navigation_link.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_navigation_link.yaml new file mode 100644 index 0000000000..bedca4773c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_navigation_link.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_navigation_link +name: has_navigation_link +title: has_navigation_link +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_navigation_link: + name: has_navigation_link + description: A navigation link or reference. MIGRATED 2026-02-03 from has_or_had_navigation_link for conciseness. + slot_uri: hc:hasNavigationLink + range: string + aliases: + - has_or_had_navigation_link + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_net_asset.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_net_asset.yaml new file mode 100644 index 0000000000..08b2973d1f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_net_asset.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_net_asset +name: has_net_asset +title: has_net_asset +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_net_asset: + name: has_net_asset + description: Net asset value. MIGRATED 2026-02-03 from has_or_had_net_asset for conciseness. + slot_uri: hc:hasNetAsset + range: string + aliases: + - has_or_had_net_asset + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_notation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_notation.yaml new file mode 100644 index 0000000000..949f80d479 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_notation.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_notation +name: has_notation +title: has_notation +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_notation: + name: has_notation + title: has_notation + description: Notation or code associated with an entity, typically from a classification scheme. + slot_uri: hc:hasNotation + range: string + aliases: + - has_or_had_notation + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:notation diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_note.yaml new file mode 100644 index 0000000000..7139b73eaf --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_note.yaml @@ -0,0 +1,138 @@ +# ============================================================================== +# LinkML Slot Definition: has_note +# ============================================================================== +# Attaches annotations, comments, or supplementary remarks to entities for +# additional context, explanation, or observation. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------------|-------------------------|---------|--------------------------------------------------| +# | **SKOS** | `skos:note` | skos.rdf:176-185 | exact | "A general note, for any purpose." | +# | **CIDOC-CRM** | `crm:P3_has_note` | CIDOC_CRM:1227-1241 | exact | Container for informal descriptions. | +# | **RDFS** | `rdfs:comment` | (RDF Schema) | close | Human-readable description of resource. | +# | **DCTerms** | `dcterms:description` | dcterms.rdf:1227-1245 | close | "An account of the resource." | +# +# SKOS NOTE HIERARCHY (narrow_mappings - all subPropertyOf skos:note): +# - skos:changeNote (186-196): "A note about a modification to a concept." +# - skos:definition (197-207): "A statement or formal explanation of meaning." +# - skos:editorialNote (208-218): "A note for an editor, translator, maintainer." +# - skos:example (219-229): "An example of the use of a concept." +# - skos:historyNote (230-240): "A note about the past state/use/meaning." +# - skos:scopeNote (241-248): "A note that helps clarify meaning/use." +# +# CREATED: 2026-01-18 +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_note +name: has_note +title: Has Note +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +description: | + To possess an appended annotation, comment, or supplementary remark that provides additional context, explanation, or observation regarding an entity. +slots: + has_note: + slot_uri: skos:note + description: | + To possess an appended annotation, comment, or supplementary remark that provides additional context, explanation, or observation regarding an entity. + alt_descriptions: + nl: Een bijgevoegde aantekening, opmerking of aanvullende toelichting bezitten die aanvullende context, uitleg of observatie biedt over een entiteit. + de: Eine angehängte Anmerkung, einen Kommentar oder eine ergänzende Bemerkung besitzen, die zusätzlichen Kontext, Erklärung oder Beobachtung zu einer Entität bietet. + fr: Posséder une annotation, un commentaire ou une remarque supplémentaire annexée qui fournit un contexte, une explication ou une observation supplémentaire concernant une entité. + ar: امتلاك ملاحظة أو تعليق أو ملاحظة تكميلية مرفقة توفر سياقًا إضافيًا أو شرحًا أو ملاحظة بشأن كيان. + id: Memiliki anotasi, komentar, atau catatan tambahan yang dilampirkan yang memberikan konteks, penjelasan, atau pengamatan tambahan mengenai suatu entitas. + zh: 拥有附加的注释、评论或补充说明,为实体提供额外的上下文、解释或观察。 + es: Poseer una anotación, comentario o nota suplementaria adjunta que proporciona contexto, explicación u observación adicional sobre una entidad. + structured_aliases: + - literal_form: heeft notitie + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Anmerkung + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a pour note + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: لديه ملاحظة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki catatan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有注释 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene nota + predicate: EXACT_SYNONYM + in_language: es + range: string + multivalued: true + inlined: false + inlined_as_list: false + exact_mappings: + - skos:note # skos.rdf:176-185 - "A general note, for any purpose" + - crm:P3_has_note # CIDOC_CRM:1227-1241 - container for informal descriptions + close_mappings: + - rdfs:comment # RDF Schema - human-readable description of resource + - dcterms:description # dcterms.rdf:1227-1245 - "An account of the resource" + narrow_mappings: + - skos:changeNote # skos.rdf:186-196 - note about modification to concept + - skos:definition # skos.rdf:197-207 - statement of meaning + - skos:editorialNote # skos.rdf:208-218 - note for editors/maintainers + - skos:example # skos.rdf:219-229 - example of concept use + - skos:historyNote # skos.rdf:230-240 - note about past state/use + - skos:scopeNote # skos.rdf:241-248 - note clarifying meaning/use + aliases: + - has_or_had_note + annotations: + custodian_types: '["*"]' + specificity_score: 0.60 + examples: + - value: "Additional verification required for this claim." + description: Claim note about verification status. + - value: "Data migrated from legacy system on 2024-01-15." + description: Extraction/migration note. + - value: "Object requires conservation assessment before display." + description: Conservation note for a museum object. + - value: "Attribution based on stylistic analysis, not documentary evidence." + description: Certainty note about provenance. + comments: + - | + **Replaces** (per slot_fixes.yaml): + - `claim_note` (string-valued) → Note with note_type: claim + - `category_note` (string-valued) → Note with note_type: category + - `certainty_note` (string-valued) → Note with note_type: certainty + - `conservation_note` (string-valued) → Note with note_type: conservation + - Other *_note slots per slot_fixes.yaml + - | + **PURPOSE**: Generic slot for attaching typed notes (claim, category, + certainty, conservation, extraction, etc.) with optional language and + date metadata. Use narrow_mappings (skos:changeNote, skos:scopeNote, etc.) + when a more specific note type is appropriate. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | SKOS | skos:note | 176-185 | exact | General note for any purpose | + | CIDOC-CRM | crm:P3_has_note | 1227-1241 | exact | Informal descriptions | + | RDFS | rdfs:comment | - | close | Human-readable description | + | DCTerms | dcterms:description | 1227-1245 | close | Account of resource | + - | + **SKOS NOTE HIERARCHY** (narrow_mappings): + All of skos:changeNote, skos:definition, skos:editorialNote, skos:example, + skos:historyNote, and skos:scopeNote are subPropertyOf skos:note. + - Updated 2026-02-03 with verified ontology mappings and translations. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_numeric_value.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_numeric_value.yaml new file mode 100644 index 0000000000..2eb2e556ad --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_numeric_value.yaml @@ -0,0 +1,39 @@ +# ============================================================================== +# LinkML Slot Definition: has_numeric_value +# ============================================================================== +# Numeric value associated with an entity. +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_numeric_value +name: has_numeric_value +title: Has Numeric Value +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + qudt: http://qudt.org/schema/qudt/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Numeric value associated with an entity. +imports: +- linkml:types +slots: + has_numeric_value: + slot_uri: qudt:numericValue + description: | + Numeric value associated with an entity. + range: float + multivalued: false + exact_mappings: + - qudt:numericValue + aliases: + - has_or_had_numeric_value + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_objective.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_objective.yaml new file mode 100644 index 0000000000..2826bd22ab --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_objective.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_objective +name: has_objective +title: has_objective +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_objective: + name: has_objective + title: has_objective + description: The objective of an action or measure. + slot_uri: hc:hasObjective + range: string + aliases: + - has_or_had_objective + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:target diff --git a/schemas/20251121/linkml/modules/slots/archive/has_observation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_observation.yaml similarity index 97% rename from schemas/20251121/linkml/modules/slots/archive/has_observation.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_observation.yaml index f303311490..a72d7e2b32 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_observation.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_observation.yaml @@ -30,6 +30,8 @@ slots: a particular context.' range: string # uriorcurie + aliases: + - has_or_had_observation # range: CustodianObservation multivalued: true exact_mappings: diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_opening_hour.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_opening_hour.yaml new file mode 100644 index 0000000000..2b19c39adb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_opening_hour.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_opening_hour +name: has_opening_hour +title: has_opening_hour +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_opening_hour: + name: has_opening_hour + description: Opening hours specification for an entity. MIGRATED 2026-02-03 from has_or_had_opening_hour for conciseness. + slot_uri: hc:hasOpeningHour + range: string + aliases: + - has_or_had_opening_hour + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/has_operational_archive.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_operational_archive.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/has_operational_archive.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_operational_archive.yaml index 8723875607..cbd7524e33 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_operational_archive.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_operational_archive.yaml @@ -20,6 +20,8 @@ slots: has_operational_archive: slot_uri: rico:hasOrHadPart range: string # uriorcurie + aliases: + - has_or_had_operational_archive # range: CustodianArchive multivalued: true inlined_as_list: false # Fixed invalid inline for primitive type diff --git a/schemas/20251121/linkml/modules/slots/archive/has_operational_unit.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_operational_unit.yaml similarity index 96% rename from schemas/20251121/linkml/modules/slots/archive/has_operational_unit.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_operational_unit.yaml index a0d5791d13..7cf7315e1b 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_operational_unit.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_operational_unit.yaml @@ -19,6 +19,8 @@ slots: has_operational_unit: description: "OrganizationalStructure units (departments, teams) within this branch.\n\nW3C ORG: org:hasUnit links organization to sub-units.\n\nBranches can have their own internal departmental structure:\n- Branch \u2192 Reading Room Services (team)\n- Branch \u2192 Digitization Team\n- Branch \u2192 Public Programs Department\n\nThese are INFORMAL units within the formal branch.\n" range: string # uriorcurie + aliases: + - has_or_had_operational_unit # range: OrganizationalStructure slot_uri: hc:hasOperationalUnit annotations: diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_organization_profile.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_organization_profile.yaml new file mode 100644 index 0000000000..00aeca45f2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_organization_profile.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_organization_profile +name: has_organization_profile +title: has_organization_profile +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_organization_profile: + name: has_organization_profile + description: An organizational profile. MIGRATED 2026-02-03 from has_or_had_organization_profile for conciseness. + slot_uri: hc:hasOrganizationProfile + range: string + aliases: + - has_or_had_organization_profile + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_organization_status.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_organization_status.yaml new file mode 100644 index 0000000000..d3d2aaf27b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_organization_status.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_organization_status +name: has_organization_status +title: has_organization_status +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_organization_status: + name: has_organization_status + description: The status of an organization. MIGRATED 2026-02-03 from has_or_had_organization_status for conciseness. + slot_uri: hc:hasOrganizationStatus + range: string + aliases: + - has_or_had_organization_status + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_organizer.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_organizer.yaml new file mode 100644 index 0000000000..b760868283 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_organizer.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_organizer +name: has_organizer +title: has_organizer +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_organizer: + name: has_organizer + title: has_organizer + description: Agent or organization that organized the event or entity. + slot_uri: hc:hasOrganizer + range: string # uriorcurie + multivalued: true + aliases: + - has_or_had_organizer + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:organizer diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_origin.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_origin.yaml new file mode 100644 index 0000000000..eb3fed1247 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_origin.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/has_origin +name: has_origin +title: has_origin +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_origin: + name: has_origin + title: has_origin + description: Origin or source of the entity. + slot_uri: hc:hasOrigin + range: string # uriorcurie + aliases: + - has_or_had_origin + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:hadPrimarySource diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_output.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_output.yaml new file mode 100644 index 0000000000..188f38eda4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_output.yaml @@ -0,0 +1,184 @@ +# ============================================================================== +# LinkML Slot Definition: has_output +# ============================================================================== +# Describes results, data, or products yielded by a process, operation, or +# computation. Used for IoT devices, APIs, processing pipelines, and software. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|---------------------------|------------------------|---------|------------------------------------------------| +# | **PROV-O** | `prov:generated` | prov.ttl:579-591 | exact | Activity generated Entity (inverse of wasGeneratedBy) | +# | **Schema.org**| `schema:result` | schemaorg.owl:33466-33484| close | "Result produced in the action" | +# | **Schema.org**| `schema:serviceOutput` | schemaorg.owl:34984-34997| close | "Tangible thing generated by service" | +# | **CIDOC-CRM**| `crm:P108_has_produced` | CIDOC_CRM:3609-3623 | close | Production resulted in physical thing | +# | **CIDOC-CRM**| `crm:P94_has_created` | CIDOC_CRM:3223-3237 | close | Creation resulted in conceptual object | +# | **CIDOC-CRM**| `crm:P92_brought_into_existence`| CIDOC_CRM:3166-3179| broad | General: brought persistent item into existence | +# | **Schema.org**| `schema:produces` | schemaorg.owl:31037-31055| related| Deprecated, superseded by serviceOutput | +# +# NOTE: prov:generated is the active form (Activity → Entity), while +# prov:wasGeneratedBy is the passive form (Entity → Activity). +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_output +name: has_output +title: has output + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: https://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + dcterms: http://purl.org/dc/terms/ + sosa: http://www.w3.org/ns/sosa/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +description: | + To yield or produce a specific result, data, or product as a consequence of a process, operation, or computation. + +imports: + - linkml:types + +slots: + has_output: + slot_uri: prov:generated + description: | + To yield or produce a specific result, data, or product as a consequence of a process, operation, or computation. + alt_descriptions: + nl: >- + Een specifiek resultaat, gegevens of product opleveren als gevolg van een proces, operatie of berekening. + de: >- + Ein spezifisches Ergebnis, Daten oder Produkt als Folge eines Prozesses, einer Operation oder einer Berechnung hervorbringen. + fr: >- + Produire un résultat, des données ou un produit spécifique comme conséquence d'un processus, d'une opération ou d'un calcul. + ar: >- + إنتاج نتيجة أو بيانات أو منتج محدد كنتيجة لعملية أو تشغيل أو حساب. + id: >- + Menghasilkan hasil, data, atau produk tertentu sebagai konsekuensi dari proses, operasi, atau komputasi. + zh: >- + 作为过程、操作或计算的结果,产生特定的结果、数据或产品。 + es: >- + Producir un resultado, datos o producto específico como consecuencia de un proceso, operación o cálculo. + structured_aliases: + - literal_form: heeft uitvoer + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Ausgabe + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a une sortie + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: له مخرجات + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki keluaran + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有输出 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene salida + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + inlined_as_list: false + annotations: + custodian_types: '["*"]' + specificity_score: 0.70 + custodian_types_rationale: Output specifications applicable to all custodian types with digital systems. + exact_mappings: + # PROV-O generated - Activity generated an Entity + # Domain: Activity, Range: Entity + # Inverse of wasGeneratedBy + # Lines 579-591 in prov.ttl + - prov:generated + close_mappings: + # Schema.org result - "The result produced in the action" + # Domain: Action, Range: Thing + # Lines 33466-33484 in schemaorg.owl + - schema:result + # Schema.org serviceOutput - "Tangible thing generated by service" + # Supersedes schema:produces + # Lines 34984-34997 in schemaorg.owl + - schema:serviceOutput + # CIDOC-CRM P108_has_produced - Physical thing from production + # Domain: E12_Production, Range: E24_Physical_Human-Made_Thing + # Lines 3609-3623 in CIDOC_CRM_v7.1.3.rdf + - crm:P108_has_produced + # CIDOC-CRM P94_has_created - Conceptual object from creation + # Domain: E65_Creation, Range: E28_Conceptual_Object + # Lines 3223-3237 in CIDOC_CRM_v7.1.3.rdf + - crm:P94_has_created + # SOSA hasResult - Observation result + - sosa:hasResult + broad_mappings: + # CIDOC-CRM P92_brought_into_existence - General existence creation + # P94 and P108 are subproperties of P92 + # Lines 3166-3179 in CIDOC_CRM_v7.1.3.rdf + - crm:P92_brought_into_existence + # PROV-O influenced - General influence relationship + # prov:generated is subPropertyOf prov:influenced + - prov:influenced + narrow_mappings: + # Schema.org resultComment - Specific: comment as result + # subPropertyOf schema:result + # Line 33488 in schemaorg.owl + - schema:resultComment + # Schema.org resultReview - Specific: review as result + # subPropertyOf schema:result + # Line 33512 in schemaorg.owl + - schema:resultReview + related_mappings: + # Schema.org produces - Deprecated, superseded by serviceOutput + # Lines 31037-31055 in schemaorg.owl + - schema:produces + aliases: + - has_or_had_output + examples: + - value: "hc:OutputData/sensor-readings-json" + description: IoT device output - climate sensor readings in JSON format + - value: "hc:OutputData/analytics-export-csv" + description: Data export output - analytics data in CSV format + - value: "hc:OutputData/api-response" + description: API service output - data response payload + comments: + - Updated 2026-02-03 with verified ontology mappings and translations + - | + **PURPOSE**: Represents data, signals, or artifacts emitted by: + - IoT devices (sensor readings, beacon signals) + - APIs and services (data responses) + - Processing pipelines (transformed data) + - Software systems (reports, exports) + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | PROV-O | prov:generated | 579 | exact | Activity → Entity | + | Schema.org | schema:result | 33466 | close | Action result | + | Schema.org | schema:serviceOutput | 34984 | close | Service output | + | CIDOC-CRM | crm:P108_has_produced | 3609 | close | Physical production | + | CIDOC-CRM | crm:P94_has_created | 3223 | close | Conceptual creation | + | CIDOC-CRM | crm:P92_brought_into_existence | 3166 | broad | General existence | + | Schema.org | schema:resultComment | 33488 | narrow | Comment result | + - | + **RANGE NOTES**: + The OutputData class captures output specifications including: + - Format (JSON, CSV, XML, etc.) + - Frequency (real-time, batch, scheduled) + - Destination (URL, file path, queue) + - Data characteristics (schema, encoding) + - | + **TEMPORAL SEMANTICS** (RiC-O Pattern): + "has_or_had_output" indicates outputs may change over time as + systems are updated or reconfigured. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_overview.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_overview.yaml new file mode 100644 index 0000000000..a21c39ccbb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_overview.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_overview +name: has_overview +title: has_overview +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_overview: + name: has_overview + description: An overview or summary of an entity. MIGRATED 2026-02-03 from has_or_had_overview for conciseness. + slot_uri: hc:hasOverview + range: string + aliases: + - has_or_had_overview + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_owner.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_owner.yaml new file mode 100644 index 0000000000..81e01914d0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_owner.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/has_owner +name: has_owner +title: has_owner +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_owner: + name: has_owner + description: The owner or proprietor of an entity. MIGRATED 2026-02-03 from has_or_had_owner for conciseness. + slot_uri: hc:hasOwner + range: string + multivalued: true + aliases: + - has_or_had_owner + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:owns diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_parent.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_parent.yaml new file mode 100644 index 0000000000..b6f45b6532 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_parent.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_parent +name: has_parent +title: has_parent +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_parent: + name: has_parent + description: Parent entity in a hierarchical relationship. MIGRATED 2026-02-03 from has_or_had_parent for conciseness. + slot_uri: hc:hasParent + range: string + aliases: + - has_or_had_parent + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_participated_in.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_participated_in.yaml new file mode 100644 index 0000000000..a745f19b40 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_participated_in.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/has_participated_in +name: has_participated_in +title: has participated in +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_participated_in: + slot_uri: hc:hasParticipatedIn + description: 'Indicates that an entity participated in an event, project, or funding + call. MIGRATED from funding_call per Rule 53. Follows RiC-O naming convention. + + + MIGRATED 2026-02-03 from has_or_had_participated_in for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_participated_in + exact_mappings: + - rico:isOrWasParticipantIn + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_percentage.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_percentage.yaml new file mode 100644 index 0000000000..8dab98f6e0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_percentage.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/has_percentage +name: has_percentage +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_percentage: + slot_uri: hc:hasPercentage + description: >- + A percentage value associated with an entity. + Links entities to structured percentage representations. + Used for commission rates, discounts, completion percentages, etc. + range: string # uriorcurie + # range: Percentage + inlined: false + aliases: + - has_or_had_percentage + close_mappings: + - schema:valueReference + examples: + - value: + percentage_value: 50 + percentage_display: 50% + description: 50 percent + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_period.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_period.yaml new file mode 100644 index 0000000000..a6c6653240 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_period.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/has_period +name: has_period +title: has_period +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_period: + name: has_period + slot_uri: hc:hasPeriod + description: Named periods within coverage (uses TemporalPeriod class). MIGRATED 2026-02-03 from has_or_had_period for conciseness. + range: string + multivalued: true + aliases: + - has_or_had_period + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:temporal diff --git a/schemas/20251121/linkml/modules/slots/archive/has_person_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_person_name.yaml similarity index 99% rename from schemas/20251121/linkml/modules/slots/archive/has_person_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_person_name.yaml index b8238e3f6b..3111d69d8a 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_person_name.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_person_name.yaml @@ -25,6 +25,8 @@ slots: \n1. **Dutch Name Sorting**: \n - \"Maria de Vries\" sorts under V (base_surname: \"Vries\")\n - \"Jan van den Berg\" sorts under B (base_surname: \"Berg\")\n\n2. **Historical Records with Patronymics**:\n - \"Jan Pieterszoon van der Waals\"\n - given_name: \"Jan\"\n - patronym: \"Pieterszoon\"\n - surname_prefix: \"van der\"\n - base_surname: \"Waals\"\n\n3. **Initial-Based Names (Common in NL)**:\n - \"H.A.F.M.O. (Hans) van Mierlo\"\n - initials: \"H.A.F.M.O.\"\n - given_name: \"Hans\"\n - surname_prefix: \"van\"\n - base_surname: \"Mierlo\"\n\n4. **Unknown/Unnamed Persons** (historical records):\n - name_specification: \"unknown\" or \"unnamed\"\n - Prevents ambiguity between missing data and genuinely unnamed persons\n\n===========================================================================\nWHEN TO USE has_person_name\n===========================================================================\n\nALWAYS use has_person_name when:\n- Name has Dutch\ \ surname prefix (tussenvoegsel)\n- Name has patronymic component\n- Name contains initials alongside given name\n- Historical name with uncertain/variable spelling\n- Need to sort by base_surname (Dutch alphabetization)\n\nOPTIONAL (person_name string sufficient) when:\n- Simple Western name: \"John Smith\"\n- No special components to parse\n- Quick data entry without structured analysis\n\n===========================================================================\nONTOLOGY ALIGNMENT\n===========================================================================\n\n- PNV: `pnv:hasName` (primary - links person to PersonName)\n- Schema.org: `sdo:name` (fallback for simple string via person_name slot)\n- FOAF: `foaf:name` (fallback for simple string)\n- CIDOC-CRM: `crm:P1_is_identified_by` (general identification relationship)\n" range: string # uriorcurie + aliases: + - has_or_had_person_name # range: PersonName required: false inlined: false # Fixed invalid inline for primitive type diff --git a/schemas/20251121/linkml/modules/slots/archive/has_person_observation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_person_observation.yaml similarity index 98% rename from schemas/20251121/linkml/modules/slots/archive/has_person_observation.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_person_observation.yaml index fd0847e6f0..b581517389 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_person_observation.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_person_observation.yaml @@ -23,6 +23,8 @@ slots: slot_uri: pico:hasObservation description: "All PersonObservation entities that refer to this Person hub.\n\nThis is the inverse of `refers_to_person` and enables bidirectional navigation:\n- PersonObservation \u2192 Person via `refers_to_person`\n- Person \u2192 PersonObservation via `has_person_observation`\n\n**NAVIGATION PATTERN**:\n```\nPerson \u2500\u2500has_person_observation\u2500\u2500> PersonObservation[1..n]\n <\u2500\u2500refers_to_person\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n```\n\n**USE CASES**:\n- Retrieve all observations about a person\n- Find all sources that mention this person\n- Track career across multiple institutions\n\n**NOTE**: This slot is populated automatically via the inverse relationship.\nWhen a PersonObservation sets `refers_to_person`, this slot is updated.\n" range: string # uriorcurie + aliases: + - has_or_had_person_observation # range: PersonObservation multivalued: true exact_mappings: diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_place.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_place.yaml new file mode 100644 index 0000000000..903f6798d5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_place.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/has_place +name: has_place +title: has_place +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_place: + name: has_place + title: has_place + description: Place associated with an entity. + slot_uri: hc:hasPlace + range: string # uriorcurie + # range: Place + multivalued: true + aliases: + - has_or_had_place + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:location diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_policy.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_policy.yaml new file mode 100644 index 0000000000..b1c2355fc1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_policy.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/has_policy +name: has_policy +title: has_policy +imports: +- linkml:types +slots: + has_policy: + description: Policy associated with an entity. + slot_uri: hc:hasPolicy + range: string # uriorcurie + # range: Policy + multivalued: true + aliases: + - has_or_had_policy + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:publishingPrinciples diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_post_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_post_type.yaml new file mode 100644 index 0000000000..7ee8733a04 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_post_type.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_post_type +name: has_post_type +title: has_post_type +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_post_type: + name: has_post_type + description: The type of post. MIGRATED 2026-02-03 from has_or_had_post_type for conciseness. + slot_uri: hc:hasPostType + range: string + aliases: + - has_or_had_post_type + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_price.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_price.yaml new file mode 100644 index 0000000000..66bc969577 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_price.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_price +name: has_price +title: has_price +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_price: + name: has_price + title: has_price + description: Price associated with the entity. + slot_uri: hc:hasPrice + range: string # uriorcurie + # range: MonetaryAmount + aliases: + - has_or_had_price + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:price diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_primary_platform.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_primary_platform.yaml new file mode 100644 index 0000000000..874bdfde2d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_primary_platform.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_primary_platform +name: has_primary_platform +title: has_primary_platform +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_primary_platform: + name: has_primary_platform + description: The primary platform. MIGRATED 2026-02-03 from has_or_had_primary_platform for conciseness. + slot_uri: hc:hasPrimaryPlatform + range: string + aliases: + - has_or_had_primary_platform + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_profile.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_profile.yaml new file mode 100644 index 0000000000..ca9c44b25f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_profile.yaml @@ -0,0 +1,48 @@ +id: https://nde.nl/ontology/hc/slot/has_profile +name: has_profile +title: has_profile +description: 'Generic slot for linking to profile entities (social media, organizational, personal). + + MIGRATED 2026-02-03: Renamed from has_or_had_profile for conciseness.' +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + foaf: http://xmlns.com/foaf/0.1/ + prov: http://www.w3.org/ns/prov# + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_profile: + name: has_profile + description: 'Links to a profile entity representing an account, persona, or identity. + + Supports various profile types including: + - Social media profiles (LinkedIn, Twitter, Instagram) + - Organizational profiles + - Professional directory profiles + + When used in ConnectionSourceMetadata, represents the profile whose + connections were extracted (typically a LinkedIn profile slug).' + slot_uri: hc:hasProfile + aliases: + - has_or_had_profile + exact_mappings: + - foaf:account + close_mappings: + - prov:wasAssociatedWith + - dcterms:subject + range: string + multivalued: false + annotations: + migration_source: has_or_had_profile + migration_date: '2026-02-03' + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_provenance.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_provenance.yaml new file mode 100644 index 0000000000..fab27fff9e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_provenance.yaml @@ -0,0 +1,45 @@ +# ============================================================================== +# LinkML Slot Definition: has_provenance +# ============================================================================== +# Provenance information for this data element. +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_provenance +name: has_provenance +title: Has Provenance +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + dct: http://purl.org/dc/terms/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Provenance information for this data element. +imports: +- linkml:types +slots: + has_provenance: + slot_uri: prov:wasGeneratedBy + description: | + Provenance information for this data element. + range: string + exact_mappings: + - prov:wasGeneratedBy + close_mappings: + - dct:provenance + - prov:hadPrimarySource + aliases: + - has_or_had_provenance + - has_or_had_acquisition_history + - has_acquisition_history + annotations: + custodian_types: '["*"]' + specificity_score: '0.2' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_provenance_path.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_provenance_path.yaml new file mode 100644 index 0000000000..610f64a124 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_provenance_path.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/has_provenance_path +name: has_provenance_path +title: has provenance path +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_provenance_path: + slot_uri: hc:hasProvenancePath + description: 'Migrated from has_or_had_provenance_path + + + MIGRATED 2026-02-03 from has_or_had_provenance_path for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_provenance_path + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_publication_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_publication_date.yaml new file mode 100644 index 0000000000..d1b2957b08 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_publication_date.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_publication_date +name: has_publication_date +title: has_publication_date +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_publication_date: + name: has_publication_date + description: Date when an entity was published. MIGRATED 2026-02-03 from has_or_had_publication_date for conciseness. + slot_uri: hc:hasPublicationDate + range: datetime + aliases: + - has_or_had_publication_date + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_publisher.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_publisher.yaml new file mode 100644 index 0000000000..99ad573695 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_publisher.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/has_publisher +name: has_publisher +title: has_publisher +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_publisher: + name: has_publisher + title: has_publisher + description: Publisher of the entity. + slot_uri: hc:hasPublisher + range: string # uriorcurie + aliases: + - has_or_had_publisher + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:publisher + - schema:publisher diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_qualifier.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_qualifier.yaml new file mode 100644 index 0000000000..6f036ab103 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_qualifier.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/has_qualifier +name: has_qualifier +title: has qualifier +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_qualifier: + slot_uri: hc:hasQualifier + description: 'Qualifier for a statement. + + + MIGRATED 2026-02-03 from has_or_had_qualifier for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_qualifier + exact_mappings: + - schema:qualifier + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_quantity.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_quantity.yaml new file mode 100644 index 0000000000..75aa282ac5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_quantity.yaml @@ -0,0 +1,48 @@ +# ============================================================================== +# LinkML Slot Definition: has_quantity +# ============================================================================== +# The quantity associated with an entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|-----------------|---------|-----------------------------------| +# | **Schema.org**| `schema:value` | exact | Schema.org value property | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_quantity +name: has_quantity +title: Has Quantity +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + The quantity associated with an entity. +imports: +- linkml:types +slots: + has_quantity: + slot_uri: schema:value + description: | + The quantity associated with an entity. + range: string + multivalued: true + exact_mappings: + - schema:value + aliases: + - has_or_had_quantity + - extent_item + - is_or_was_extent_item + - is_or_was_extent + - extent + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_range.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_range.yaml new file mode 100644 index 0000000000..c6f1a113a3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_range.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_range +name: has_range +title: has_range +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_range: + name: has_range + title: has_range + description: Range or span of values for the entity. + slot_uri: hc:hasRange + range: string # uriorcurie + aliases: + - has_or_had_range + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_rank.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_rank.yaml new file mode 100644 index 0000000000..1ad65e7dc8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_rank.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_rank +name: has_rank +title: has_rank +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_rank: + name: has_rank + title: has_rank + description: Rank or position in a hierarchy or ordering. + slot_uri: hc:hasRank + range: integer + aliases: + - has_or_had_rank + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_rate.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_rate.yaml new file mode 100644 index 0000000000..ca94dff1ab --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_rate.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_rate +name: has_rate +title: has_rate +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_rate: + name: has_rate + description: A rate, percentage, or ratio associated with an entity. MIGRATED 2026-02-03 from has_or_had_rate for conciseness. + slot_uri: hc:hasRate + range: string + aliases: + - has_or_had_rate + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_rating.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_rating.yaml new file mode 100644 index 0000000000..dc20f1cb86 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_rating.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_rating +name: has_rating +title: has_rating +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_rating: + name: has_rating + description: Rating assigned to an entity. MIGRATED 2026-02-03 from has_or_had_rating for conciseness. + slot_uri: hc:hasRating + range: string + aliases: + - has_or_had_rating + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_rationale.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_rationale.yaml new file mode 100644 index 0000000000..753933829f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_rationale.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/has_rationale +name: has_rationale +title: has_rationale +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + owl: http://www.w3.org/2002/07/owl# + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_rationale: + slot_uri: hc:hasRationale + description: >- + The rationale or justification for a decision or mapping. + Used for mapping rationale (why an entity was mapped to Wikidata), + decision justifications, and explanation notes. + range: string # uriorcurie + # range: Rationale + multivalued: true + aliases: + - has_or_had_rationale + close_mappings: + - skos:note + - prov:wasInfluencedBy + - prov:used + examples: + - value: + has_label: Mapped to Q123456 based on exact name match + description: Wikidata mapping rationale + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_reason.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_reason.yaml new file mode 100644 index 0000000000..12a5f6e1f6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_reason.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_reason +name: has_reason +title: has_reason +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_reason: + name: has_reason + title: has_reason + description: Reason or justification for the entity. + slot_uri: hc:hasReason + range: string + aliases: + - has_or_had_reason + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_reference.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_reference.yaml new file mode 100644 index 0000000000..0918e702a6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_reference.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_reference +name: has_reference +title: has_reference +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_reference: + name: has_reference + title: has_reference + description: Reference or citation associated with the entity. + slot_uri: hc:hasReference + range: string # uriorcurie + multivalued: true + aliases: + - has_or_had_reference + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:references diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_reply.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_reply.yaml new file mode 100644 index 0000000000..f8099639e0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_reply.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_reply +name: has_reply +title: has_reply +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_reply: + name: has_reply + title: has_reply + description: Reply or response associated with the entity. + slot_uri: hc:hasReply + range: string # uriorcurie + multivalued: true + aliases: + - has_or_had_reply + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:comment diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_requirement.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_requirement.yaml new file mode 100644 index 0000000000..3e83c3044e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_requirement.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_requirement +name: has_requirement +title: has_requirement +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_requirement: + name: has_requirement + description: Structured requirements with provenance tracking. MIGRATED 2026-02-03 from has_or_had_requirement for conciseness. + slot_uri: hc:hasRequirement + range: string + aliases: + - has_or_had_requirement + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_resolution.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_resolution.yaml new file mode 100644 index 0000000000..e1a3f8bc13 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_resolution.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_resolution +name: has_resolution +title: has_resolution +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_resolution: + name: has_resolution + title: has_resolution + description: Resolution of the entity (e.g., image resolution). + slot_uri: hc:hasResolution + range: string + aliases: + - has_or_had_resolution + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_responsibility.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_responsibility.yaml new file mode 100644 index 0000000000..6e1a9508c3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_responsibility.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_responsibility +name: has_responsibility +title: has_responsibility +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_responsibility: + name: has_responsibility + description: A responsibility or duty. MIGRATED 2026-02-03 from has_or_had_responsibility for conciseness. + slot_uri: hc:hasResponsibility + range: string + aliases: + - has_or_had_responsibility + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_restriction.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_restriction.yaml new file mode 100644 index 0000000000..d3a6de4e27 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_restriction.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_restriction +name: has_restriction +title: has_restriction +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_restriction: + name: has_restriction + description: A restriction or limitation. MIGRATED 2026-02-03 from has_or_had_restriction for conciseness. + slot_uri: hc:hasRestriction + range: string + aliases: + - has_or_had_restriction + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_revenue.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_revenue.yaml new file mode 100644 index 0000000000..5333d0430a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_revenue.yaml @@ -0,0 +1,23 @@ +id: https://nde.nl/ontology/hc/slot/has_revenue +name: has_revenue +title: has_revenue +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_revenue: + name: has_revenue + title: has_revenue + description: Revenue associated with the entity. + slot_uri: hc:hasRevenue + range: string # uriorcurie + # range: MonetaryAmount + aliases: + - has_or_had_revenue + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_risk.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_risk.yaml new file mode 100644 index 0000000000..4229387def --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_risk.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_risk +name: has_risk +title: has_risk +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_risk: + name: has_risk + description: A risk assessment or factor. MIGRATED 2026-02-03 from has_or_had_risk for conciseness. + slot_uri: hc:hasRisk + range: string + aliases: + - has_or_had_risk + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_roadmap.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_roadmap.yaml new file mode 100644 index 0000000000..7bad57d3a2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_roadmap.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_roadmap +name: has_roadmap +title: has_roadmap +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_roadmap: + name: has_roadmap + description: A roadmap or strategic plan associated with the entity. MIGRATED 2026-02-03 from has_or_had_roadmap for conciseness. + slot_uri: hc:hasRoadmap + range: string + aliases: + - has_or_had_roadmap + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_role.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_role.yaml new file mode 100644 index 0000000000..f667111128 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_role.yaml @@ -0,0 +1,177 @@ +# ============================================================================== +# LinkML Slot Definition: has_role +# ============================================================================== +# Designates a position or function with specific responsibilities within an +# organizational structure. Used for agent roles, membership roles, and +# participation roles in heritage contexts. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|---------------------------|------------------------|---------|------------------------------------------------| +# | **W3C Org** | `org:role` | org.rdf:623-644 | exact | "Role that Agent plays in Membership with Organization" | +# | **PROV-O** | `prov:hadRole` | prov.ttl:676-692 | close | "Role Entity assumed in context of Activity" | +# | **Schema.org**| `schema:roleName` | schemaorg.owl:33901-33919| close | "Role played, performed or filled by person/org"| +# | **W3C Org** | `org:roleProperty` | org.rdf:580-594 | broad | Meta-property for role annotation | +# | **Schema.org**| `schema:jobTitle` | schemaorg.owl:23787-23790| narrow | Specific: job title (narrower than role) | +# | **Schema.org**| `schema:hasOccupation` | schemaorg.owl | related | Occupation held (related concept) | +# +# NOTE: org:role is for membership/organizational roles. +# prov:hadRole is for qualified roles in activity contexts. +# schema:roleName is for creative/team roles. +# +# CREATED: 2026-01-16 - Consolidated from author_role, agent_role, participant_role +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_role +name: has_role +title: has role + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + prov: http://www.w3.org/ns/prov# + schema: https://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + owl: http://www.w3.org/2002/07/owl# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +description: | + To hold a designated position or function that entails specific responsibilities and authority within an organizational structure or endeavor. + +imports: + - linkml:types + +slots: + has_role: + slot_uri: org:role + description: | + To hold a designated position or function that entails specific responsibilities and authority within an organizational structure or endeavor. + alt_descriptions: + nl: >- + Een aangewezen positie of functie bekleden die specifieke verantwoordelijkheden en bevoegdheden met zich meebrengt binnen een organisatiestructuur of onderneming. + de: >- + Eine bestimmte Position oder Funktion innehaben, die spezifische Verantwortlichkeiten und Befugnisse innerhalb einer Organisationsstruktur oder eines Unternehmens mit sich bringt. + fr: >- + Occuper une position ou fonction désignée comportant des responsabilités et une autorité spécifiques au sein d'une structure organisationnelle ou d'une entreprise. + ar: >- + شغل منصب أو وظيفة محددة تستتبع مسؤوليات وصلاحيات محددة ضمن هيكل تنظيمي أو مسعى. + id: >- + Memegang posisi atau fungsi yang ditunjuk yang memerlukan tanggung jawab dan wewenang tertentu dalam struktur organisasi atau usaha. + zh: >- + 担任在组织结构或事业中具有特定职责和权限的指定职位或职能。 + es: >- + Ocupar una posición o función designada que conlleva responsabilidades y autoridad específicas dentro de una estructura organizacional o empresa. + structured_aliases: + - literal_form: heeft rol + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Rolle + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a pour rôle + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: له دور + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki peran + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有角色 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene rol + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + implements: + - owl:ObjectProperty + required: false + multivalued: false + annotations: + custodian_types: '["*"]' + specificity_score: 0.50 + replaces_slots: author_role, agent_role, participant_role + migration_date: '2026-01-16' + exact_mappings: + # W3C Org role - "Role that Agent plays in Membership with Organization" + # Domain: Membership | Post, Range: org:Role + # Lines 623-644 in org.rdf + - org:role + close_mappings: + # PROV-O hadRole - "Role Entity assumed in context of Activity" + # Used in qualified influence patterns + # Lines 676-692 in prov.ttl + - prov:hadRole + # Schema.org roleName - "Role played, performed or filled by person/org" + # Domain: Role, Range: Text | URL + # Lines 33901-33919 in schemaorg.owl + - schema:roleName + broad_mappings: + # W3C Org roleProperty - Meta-property for annotating roles + # Higher-level abstraction for role relationships + # Lines 580-594 in org.rdf + - org:roleProperty + narrow_mappings: + # Schema.org jobTitle - Specific job title (narrower than general role) + # Lines 23787-23790 in schemaorg.owl + - schema:jobTitle + related_mappings: + # Schema.org hasOccupation - Occupation held by person + - schema:hasOccupation + aliases: + - has_or_had_role + - is_or_was_governance_role + - governance_role + examples: + - value: "hc:Role/author" + description: Primary author role in a publication + - value: "hc:Role/editor" + description: Editor role in content creation + - value: "hc:Role/curator" + description: Curator role in collection management + - value: "hc:Role/translator" + description: Translator role in content adaptation + comments: + - Updated 2026-02-03 with verified ontology mappings and translations + - | + **PURPOSE**: Assigns roles to agents within organizational structures, + activities, or creative endeavors. Consolidated from multiple legacy + role slots for consistency. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | W3C Org | org:role | 623 | exact | Membership role | + | PROV-O | prov:hadRole | 676 | close | Activity role | + | Schema.org | schema:roleName | 33901 | close | Creative role | + | W3C Org | org:roleProperty | 580 | broad | Meta-property | + | Schema.org | schema:jobTitle | 23787 | narrow | Job title | + - | + **TEMPORAL SEMANTICS** (RiC-O Pattern): + "has_or_had_role" indicates roles may be historical - an entity's + role may change over time within an organization. + - | + **USAGE PATTERNS**: + - For authors: role in creating a work (AUTHOR, EDITOR, TRANSLATOR) + - For agents: role in an activity or event + - For participants: role in a project or organization + - For members: role in organizational membership + - | + **MIGRATION NOTES** (2026-01-16): + Consolidated from: + - `author_role` → has_role + - `agent_role` → has_role + - `participant_role` → has_role + - | + **RANGE NOTES**: + Range is `uriorcurie` (Rule 55) to allow enum values or Role class + references. Classes may narrow via slot_usage to specific Role enums. diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_origin.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_schedule.yaml similarity index 57% rename from schemas/20251121/linkml/modules/slots/has_or_had_origin.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_schedule.yaml index cd43f6f831..0350d21098 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_origin.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_schedule.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_origin -name: has_or_had_origin -title: has_or_had_origin +id: https://nde.nl/ontology/hc/slot/has_schedule +name: has_schedule +title: has_schedule prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -16,13 +16,15 @@ default_prefix: hc imports: - linkml:types slots: - has_or_had_origin: - name: has_or_had_origin - description: Origin location, source, or starting point. MIGRATED from from_location per Rule 53. Follows RiC-O naming convention. - slot_uri: prov:atLocation - range: string # uriorcurie + has_schedule: + name: has_schedule + description: Schedule associated with the entity (e.g., exhibition rotation, maintenance). MIGRATED 2026-02-03 from has_or_had_schedule for conciseness. + slot_uri: hc:hasSchedule + range: string multivalued: false + aliases: + - has_or_had_schedule annotations: custodian_types: '["*"]' exact_mappings: - - prov:atLocation + - schema:schedule diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_schema.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_schema.yaml new file mode 100644 index 0000000000..03490bbef1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_schema.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_schema +name: has_schema +title: has_schema +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_schema: + name: has_schema + description: Metadata schema or standard used by the entity. MIGRATED 2026-02-03 from has_or_had_schema for conciseness. + slot_uri: hc:hasSchema + range: string + aliases: + - has_or_had_schema + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_scheme.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_scheme.yaml new file mode 100644 index 0000000000..5cf2a04b44 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_scheme.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/has_scheme +name: has_scheme +title: has_scheme +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_scheme: + name: has_scheme + title: has_scheme + description: Scheme or classification system the entity belongs to. + slot_uri: hc:hasScheme + range: string # uriorcurie + aliases: + - has_or_had_scheme + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:inScheme diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_scope.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_scope.yaml new file mode 100644 index 0000000000..e249fc7683 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_scope.yaml @@ -0,0 +1,136 @@ +# ============================================================================== +# LinkML Slot Definition: has_scope +# ============================================================================== +# Defines the extent, range, or area of applicability that delimits the +# operation, influence, or validity of an entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------------|-------------------------|---------|--------------------------------------------------| +# | **Schema.org**| `schema:areaServed` | schemaorg.owl:8403-8430 | exact | "The geographic area where a service or offered | +# | | | | | item is provided." | +# | **DCTerms** | `dcterms:coverage` | dcterms.rdf:1035-1063 | close | "Spatial or temporal topic, or jurisdiction." | +# | **RiC-O** | `rico:scopeAndContent` | RiC-O:23026-23058 | close | "Summary of scope (time, geography) and content."| +# | **Schema.org**| `schema:eligibleRegion` | schemaorg.owl:16357-363 | narrow | Eligible region for an offer. | +# | **Schema.org**| `schema:spatialCoverage` | schemaorg.owl:35880 | narrow | Spatial coverage of content. | +# | **Schema.org**| `schema:temporalCoverage` | schemaorg.owl:37609 | narrow | Temporal coverage of content. | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_scope +name: has_scope +title: Has Scope +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +description: | + To possess a defined extent, range, or area of applicability that delimits the operation, influence, or validity of an entity. +slots: + has_scope: + slot_uri: schema:areaServed + description: | + To possess a defined extent, range, or area of applicability that delimits the operation, influence, or validity of an entity. + alt_descriptions: + nl: Een gedefinieerde omvang, bereik of toepassingsgebied bezitten dat de werking, invloed of geldigheid van een entiteit afbakent. + de: Einen definierten Umfang, Bereich oder Anwendungsbereich besitzen, der den Betrieb, Einfluss oder die Gültigkeit einer Entität abgrenzt. + fr: Posséder une étendue, une portée ou un domaine d'applicabilité défini qui délimite le fonctionnement, l'influence ou la validité d'une entité. + ar: امتلاك نطاق أو مدى أو مجال تطبيق محدد يحدد عملية أو تأثير أو صلاحية كيان. + id: Memiliki cakupan, jangkauan, atau area penerapan yang ditentukan yang membatasi operasi, pengaruh, atau validitas suatu entitas. + zh: 拥有定义的范围、范围或适用区域,以界定实体的运作、影响或有效性。 + es: Poseer un alcance, rango o área de aplicabilidad definida que delimita la operación, influencia o validez de una entidad. + structured_aliases: + - literal_form: heeft bereik + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Geltungsbereich + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a pour portée + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: لديه نطاق + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki cakupan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有范围 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene alcance + predicate: EXACT_SYNONYM + in_language: es + range: string + multivalued: true + exact_mappings: + - schema:areaServed # schemaorg.owl:8403-8430 - "The geographic area where a service or offered item is provided" + close_mappings: + - dcterms:coverage # dcterms.rdf:1035-1063 - "Spatial or temporal topic, or jurisdiction" + - rico:scopeAndContent # RiC-O:23026-23058 - summary of scope and content + broad_mappings: + - dcterms:relation # dcterms:coverage is related to broader relation concept + narrow_mappings: + - schema:eligibleRegion # schemaorg.owl:16357-16363 - eligible region for offer + - schema:spatialCoverage # schemaorg.owl:35880 - spatial coverage of content + - schema:temporalCoverage # schemaorg.owl:37609 - temporal coverage of content + - dcterms:spatial # spatial characteristics specifically + - dcterms:temporal # temporal characteristics specifically + related_mappings: + - schema:serviceArea # deprecated, superseded by areaServed + aliases: + - has_or_had_scope + - area_served + - coverage + annotations: + custodian_types: '["*"]' + specificity_score: 0.50 + examples: + - value: Netherlands + description: Service scope limited to the Netherlands. + - value: https://www.wikidata.org/wiki/Q55 + description: Wikidata reference to Netherlands as service area. + - value: Amsterdam Metropolitan Area + description: Regional scope for a local heritage institution. + - value: European Union + description: Supranational scope for cross-border services. + - value: 17th-century Dutch Golden Age + description: Temporal scope for a specialized collection. + comments: + - | + **PURPOSE**: Defines the geographic, temporal, or subject-matter boundaries + within which an entity operates, applies, or is valid. Essential for: + - Service area definitions for heritage institutions + - Collection scope (geographic, temporal, thematic) + - Policy applicability + - Jurisdictional boundaries + - | + **SCOPE TYPES**: + - **Geographic**: Countries, regions, cities, administrative areas + - **Temporal**: Time periods, eras, date ranges + - **Thematic**: Subject areas, disciplines, themes + - **Organizational**: Departments, divisions, units + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | Schema.org | schema:areaServed | 8403-8430 | exact | Geographic service area | + | DCTerms | dcterms:coverage | 1035-1063 | close | Spatial/temporal topic | + | RiC-O | rico:scopeAndContent | 23026-58 | close | Scope and content summary | + | Schema.org | schema:spatialCoverage | 35880 | narrow | Spatial coverage | + | Schema.org | schema:temporalCoverage | 37609 | narrow | Temporal coverage | + - Updated 2026-02-03 with verified ontology mappings and translations. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_score.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_score.yaml new file mode 100644 index 0000000000..0f3977e530 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_score.yaml @@ -0,0 +1,162 @@ +# ============================================================================== +# LinkML Slot Definition: has_score +# ============================================================================== +# Possess a quantitative value assigned to evaluate rank, quality, or performance +# against a defined metric. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------------|----------------------|---------|------------------------------------| +# | **Schema.org**| `schema:ratingValue` | schemaorg.owl:32043 | close | Rating value within rating system | +# | **PROV-O** | `prov:value` | prov.ttl:1055-1064 | close | Direct value representation | +# | **DQV** | `dqv:hasQualityMeasurement`| dqv.ttl:157-161 | related | Structured quality measurement | +# | **SOSA** | `sosa:hasResult` | sosa.ttl:351-372 | related | Observation/actuation result | +# | **Schema.org**| `schema:bestRating` | schemaorg.owl:9884 | related | Max rating bound | +# | **Schema.org**| `schema:worstRating` | schemaorg.owl:40641 | related | Min rating bound | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-02 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_score +name: has_score +title: has score +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dqv: http://www.w3.org/ns/dqv# + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# +default_prefix: hc +imports: +- linkml:types +slots: + has_score: + slot_uri: hc:hasScore + description: >- + To possess a quantitative value assigned to evaluate rank, quality, + or performance against a defined metric. + alt_descriptions: + nl: >- + Het bezitten van een kwantitatieve waarde toegekend om rang, kwaliteit + of prestatie te evalueren tegen een gedefinieerde maatstaf. + de: >- + Einen quantitativen Wert besitzen, der zur Bewertung von Rang, Qualität + oder Leistung anhand einer definierten Metrik zugewiesen wird. + fr: >- + Posséder une valeur quantitative attribuée pour évaluer le rang, la + qualité ou la performance par rapport à une métrique définie. + ar: >- + امتلاك قيمة كمية مخصصة لتقييم الرتبة أو الجودة أو الأداء وفقًا لمقياس محدد. + id: >- + Memiliki nilai kuantitatif yang ditetapkan untuk mengevaluasi peringkat, + kualitas, atau kinerja terhadap metrik yang ditentukan. + zh: >- + 拥有一个用于根据定义的指标评估排名、质量或性能的量化值。 + es: >- + Poseer un valor cuantitativo asignado para evaluar rango, calidad + o rendimiento según una métrica definida. + structured_aliases: + - literal_form: heeft score + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Punktzahl + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a un score + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: لديه درجة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki skor + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 具有分数 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene puntuación + predicate: EXACT_SYNONYM + in_language: es + range: float + multivalued: true + + # VERIFIED MAPPINGS (2026-02-XX) + # Source files: data/ontology/schemaorg.owl, data/ontology/dqv.ttl, + # data/ontology/sosa.ttl, data/ontology/prov.ttl + + close_mappings: + # schemaorg.owl line 32043-32054: ratingValue + # "The rating for the content" - ObjectProperty + # Close: rating/score value semantics, but schema.org ratings have + # min/max bounds (worstRating/bestRating) which our generic score doesn't require + - schema:ratingValue # from schemaorg.owl - rating value within rating system + + # prov.ttl line 1055-1064: value + # "Provides a value that is a direct representation of an entity" + # Close: generic value representation, but prov:value is broader + - prov:value # from prov.ttl - direct value representation + + related_mappings: + # dqv.ttl line 157-161: hasQualityMeasurement + # "Refers to the performed quality measurements" + # Related: links to QualityMeasurement object (structured), not a scalar value + - dqv:hasQualityMeasurement # from dqv.ttl - links to structured quality measurement + + # sosa.ttl line 351-372: hasResult + # "Relation linking an Observation or Actuation or act of Sampling to its Result" + # Related: observation/sensor result (different context) + - sosa:hasResult # from sosa.ttl - observation/actuation result + + # schemaorg.owl line 9884-9887: bestRating + # "The highest value allowed in this rating system" + # Related: defines rating scale bounds, not the score value itself + - schema:bestRating # from schemaorg.owl - max rating bound + + # schemaorg.owl line 40641-40644: worstRating + # "The lowest value allowed in this rating system" + # Related: defines rating scale bounds, not the score value itself + - schema:worstRating # from schemaorg.owl - min rating bound + + aliases: + - has_or_had_score + - rating_value + - confidence_score + + annotations: + custodian_types: '["*"]' + + examples: + - value: 0.85 + description: XPath match confidence score (85% confidence) + - value: 0.72 + description: Relevance score for search result + - value: 4.5 + description: Quality rating (e.g., on 1-5 scale) + + comments: + - | + **USAGE**: + + Used for: + - XPath match confidence scores (0.0-1.0) + - Relevance scores + - Quality ratings + - Similarity scores + - | + **SEMANTIC NOTES**: + + Unlike schema:ratingValue which is part of a Rating with defined + worstRating/bestRating bounds, hc:hasScore is a generic numeric + score without required scale constraints. The interpretation of + the score depends on context (0.0-1.0 for confidence, 1-5 for + quality ratings, etc.). + - | + Verified predicates from: + - data/ontology/schemaorg.owl (schema:ratingValue line 32043, schema:bestRating line 9884, schema:worstRating line 40641) + - data/ontology/dqv.ttl (dqv:hasQualityMeasurement line 157) + - data/ontology/sosa.ttl (sosa:hasResult line 351) + - data/ontology/prov.ttl (prov:value line 1055) + diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_secondary_label.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_secondary_label.yaml new file mode 100644 index 0000000000..69b52050c6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_secondary_label.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_secondary_label +name: has_secondary_label +title: has_secondary_label +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_secondary_label: + name: has_secondary_label + description: A secondary label. MIGRATED 2026-02-03 from has_or_had_secondary_label for conciseness. + slot_uri: hc:hasSecondaryLabel + range: string + aliases: + - has_or_had_secondary_label + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_secondary_platform.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_secondary_platform.yaml new file mode 100644 index 0000000000..868a508643 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_secondary_platform.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_secondary_platform +name: has_secondary_platform +title: has_secondary_platform +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_secondary_platform: + name: has_secondary_platform + description: A secondary platform. MIGRATED 2026-02-03 from has_or_had_secondary_platform for conciseness. + slot_uri: hc:hasSecondaryPlatform + range: string + aliases: + - has_or_had_secondary_platform + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_section.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_section.yaml new file mode 100644 index 0000000000..ba6894219c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_section.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/has_section +name: has_section +title: has_section +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_section: + name: has_section + title: has_section + description: Section within the entity. + slot_uri: hc:hasSection + range: string # uriorcurie + multivalued: true + aliases: + - has_or_had_section + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_segment.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_segment.yaml new file mode 100644 index 0000000000..6e3e0838a6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_segment.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/has_segment +name: has_segment +title: has_segment +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_segment: + name: has_segment + title: has_segment + description: Segment or section within the entity. + slot_uri: hc:hasSegment + range: string # uriorcurie + multivalued: true + aliases: + - has_or_had_segment + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_sensitivity_level.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_sensitivity_level.yaml new file mode 100644 index 0000000000..e5f314814f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_sensitivity_level.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_sensitivity_level +name: has_sensitivity_level +title: has_sensitivity_level +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_sensitivity_level: + name: has_sensitivity_level + title: has_sensitivity_level + description: Sensitivity or classification level of the entity. + slot_uri: hc:hasSensitivityLevel + range: string # uriorcurie + aliases: + - has_or_had_sensitivity_level + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_sequence_index.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_sequence_index.yaml new file mode 100644 index 0000000000..d83f5b747b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_sequence_index.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_sequence_index +name: has_sequence_index +title: has_sequence_index +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_sequence_index: + name: has_sequence_index + description: Sequence position or index number. MIGRATED 2026-02-03 from has_or_had_sequence_index for conciseness. + slot_uri: hc:hasSequenceIndex + range: integer + aliases: + - has_or_had_sequence_index + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_series.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_series.yaml new file mode 100644 index 0000000000..bc88089217 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_series.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_series +name: has_series +title: has_series +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_series: + name: has_series + description: Archival series within fonds. MIGRATED 2026-02-03 from has_or_had_series for conciseness. + slot_uri: hc:hasSeries + range: string + aliases: + - has_or_had_series + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_service.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_service.yaml new file mode 100644 index 0000000000..35a02af2b8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_service.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/has_service +name: has_service +title: has_service +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_service: + name: has_service + title: has_service + description: Service associated with or provided by an entity. + slot_uri: hc:hasService + range: string # uriorcurie + # range: Service + multivalued: true + aliases: + - has_or_had_service + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:availableService diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_service_area.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_service_area.yaml new file mode 100644 index 0000000000..1cc0715be9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_service_area.yaml @@ -0,0 +1,56 @@ +id: https://nde.nl/ontology/hc/slot/has_service_area +name: has_service_area +title: has service area +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_service_area: + slot_uri: hc:hasServiceArea + description: 'Geographic area or community served by an entity. + + Links to ServiceArea class which models the "werkgebied" (operational territory) + of heritage custodians - the geographic area where they provide services and + collect materials. + + **RiC-O Alignment**: Follows RiC-O temporal relationship pattern (has/had) for + properties that may change over time. + + **Schema.org Alignment**: Maps to schema:areaServed for service coverage. + + **Use Cases**: - Archive branch serving specific municipalities - Library branch + serving neighborhood/district - Museum outpost serving regional community + + **MIGRATED from branch_service_area (Rule 53)**: Changed from string to ServiceArea + class for richer geographic modeling including boundaries, temporal validity, + and administrative hierarchy. + + + MIGRATED 2026-02-03 from has_or_had_service_area for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_service_area + exact_mappings: + - schema:areaServed + close_mappings: + - org:hasSite + - rico:hasOrHadLocation + annotations: + owl.template: AnnotationAssertion( rdfs:label {{slot_uri}} "has or had service + area"@en ) + specificity_score: 0.45 + specificity_rationale: Service area is moderately specific - relevant for organizational/geographic + contexts but not universally applicable. + custodian_types: '["A", "L", "M", "O", "R"]' + custodian_types_rationale: Service areas are most relevant to archives (A), + libraries (L), museums (M), official institutions (O), and research centers + (R) that have geographic service mandates. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_service_details.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_service_details.yaml new file mode 100644 index 0000000000..f0992a2d14 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_service_details.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/has_service_details +name: has_service_details +title: has service details +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_service_details: + slot_uri: hc:hasServiceDetails + description: 'Details about services provided. + + + MIGRATED 2026-02-03 from has_or_had_service_details for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_service_details + exact_mappings: + - schema:serviceOutput + annotations: + custodian_types: '["*"]' + specificity_score: 0.3 diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_setpoint.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_setpoint.yaml new file mode 100644 index 0000000000..53e153f7c9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_setpoint.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/has_setpoint +name: has_setpoint +title: has_setpoint +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + brick: https://brickschema.org/schema/Brick# + sosa: http://www.w3.org/ns/sosa/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_setpoint: + description: >- + Environmental control setpoint(s) for this entity. + Captures target values, acceptable ranges, and tolerances for + measurable environmental properties (temperature, humidity, light, etc.). + range: string # uriorcurie + # range: Setpoint + slot_uri: hc:hasSetpoint + multivalued: true + inlined: false + inlined_as_list: false + aliases: + - has_or_had_setpoint + exact_mappings: + - brick:hasSetpoint + close_mappings: + - sosa:hasFeatureOfInterest + examples: + - value: + - setpoint_type: TEMPERATURE + setpoint_value: 18.0 + setpoint_min: 16.0 + setpoint_max: 20.0 + setpoint_unit: DEGREE_CELSIUS + description: Standard archive storage setpoints + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_significance.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_significance.yaml new file mode 100644 index 0000000000..786b3194de --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_significance.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/has_significance +name: has_significance +title: has_significance +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_significance: + name: has_significance + title: has_significance + description: Significance or importance level of an entity. + slot_uri: hc:hasSignificance + range: string # uriorcurie + # range: SignificanceLevel + aliases: + - has_or_had_significance + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_size.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_size.yaml new file mode 100644 index 0000000000..42a9a94143 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_size.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/has_size +name: has_size +title: has_size +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_size: + name: has_size + title: has_size + description: Size of the entity. + slot_uri: hc:hasSize + range: string # can be structured + aliases: + - has_or_had_size + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:size diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_social_media_profile.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_social_media_profile.yaml new file mode 100644 index 0000000000..cfd3830963 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_social_media_profile.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/has_social_media_profile +name: has_social_media_profile +title: has_social_media_profile +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + foaf: http://xmlns.com/foaf/0.1/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_social_media_profile: + name: has_social_media_profile + slot_uri: hc:hasSocialMediaProfile + range: string + multivalued: true + inlined_as_list: false + aliases: + - has_or_had_social_media_profile + description: "Social media accounts/profiles maintained by this custodian. + + Links to SocialMediaProfile instances representing third-party + social media accounts (Instagram, Facebook, X/Twitter, YouTube, etc.). + + MIGRATED 2026-02-03: Renamed from has_or_had_social_media_profile for conciseness." + annotations: + custodian_types: '["*"]' + exact_mappings: + - foaf:account diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_source.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_source.yaml new file mode 100644 index 0000000000..8f639b83f8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_source.yaml @@ -0,0 +1,40 @@ +# ============================================================================== +# LinkML Slot Definition: has_source +# ============================================================================== +# Source of an entity. +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_source +name: has_source +title: Has Source +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Source of an entity. +imports: +- linkml:types +slots: + has_source: + slot_uri: dcterms:source + description: | + Source of an entity. + range: string + multivalued: true + exact_mappings: + - dcterms:source + aliases: + - has_or_had_source + - is_or_was_endorsement_source + - endorsement_source + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_specification.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_specification.yaml new file mode 100644 index 0000000000..bfb053c91a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_specification.yaml @@ -0,0 +1,47 @@ +id: https://nde.nl/ontology/hc/slot/has_specification +name: has_specification +title: has_specification +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_specification: + name: has_specification + slot_uri: hc:hasSpecification + description: 'Technical specifications associated with an entity. + + **USAGE**: + Used for: + - IoT device technical specs (range, connectivity, power) + - Equipment specifications + - System requirements + - Hardware/software specifications + + MIGRATED 2026-02-03: Renamed from has_or_had_specification for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_specification + exact_mappings: + - schema:additionalProperty + close_mappings: + - dcterms:conformsTo + examples: + - value: BLE 5.0, 50m range, 5-year battery, IP67 rated + description: Beacon technical specifications + - value: 24-inch touchscreen, 1920x1080 resolution, wheelchair accessible + description: Kiosk specifications + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Technical specifications applicable to all custodian types with IoT/digital devices. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_staff.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_staff.yaml new file mode 100644 index 0000000000..82b04193f4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_staff.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/has_staff +name: has_staff +title: has staff +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_staff: + slot_uri: hc:hasStaff + description: 'Migrated from has_or_had_staff + + + MIGRATED 2026-02-03 from has_or_had_staff for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_staff + exact_mappings: + - schema:employee + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_staff_member.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_staff_member.yaml new file mode 100644 index 0000000000..f0e2b7bb80 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_staff_member.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/has_staff_member +name: has_staff_member +title: has_staff_member +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_staff_member: + name: has_staff_member + title: has_staff_member + description: Staff member associated with the entity. + slot_uri: hc:hasStaffMember + range: string # uriorcurie + multivalued: true + aliases: + - has_or_had_staff_member + - has_or_had_staff + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:employee diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_standard.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_standard.yaml new file mode 100644 index 0000000000..e4f78108e2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_standard.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/has_standard +name: has_standard +title: has_standard +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_standard: + name: has_standard + title: has_standard + description: Standard or specification that an entity conforms to. + slot_uri: hc:hasStandard + range: string # uriorcurie + # range: Standard + multivalued: true + aliases: + - has_or_had_standard + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:conformsTo diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_status.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_status.yaml new file mode 100644 index 0000000000..3d97dadb3c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_status.yaml @@ -0,0 +1,44 @@ +# ============================================================================== +# LinkML Slot Definition: has_status +# ============================================================================== +# Current or past status of an entity. +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_status +name: has_status +title: Has Status +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + owl: http://www.w3.org/2002/07/owl# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Current or past status of an entity. +imports: +- linkml:types +slots: + has_status: + slot_uri: hc:hasStatus + range: string + implements: + - owl:ObjectProperty + description: | + Current or past status of an entity. + close_mappings: + - schema:status + - dcterms:status + aliases: + - has_or_had_status + examples: + - value: Active + description: Simple string status + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/governance_structure.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_structure.yaml similarity index 88% rename from schemas/20251121/linkml/modules/slots/archive/governance_structure.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/has_structure.yaml index 375474137b..c5edab6c44 100644 --- a/schemas/20251121/linkml/modules/slots/archive/governance_structure.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_structure.yaml @@ -1,17 +1,19 @@ # CustodianLegalStatus Slot: governance_structure # Governance model description -id: https://nde.nl/ontology/hc/slot/governance_structure -name: governance_structure_slot +id: https://nde.nl/ontology/hc/slot/has_structure +name: has_structure imports: - linkml:types slots: - governance_structure: - slot_uri: org:hasUnit + has_structure: + slot_uri: hc:hasStructure range: string # uriorcurie + aliases: + - is_or_was_governance_structure # range: GovernanceStructure description: | Internal governance and organizational structure. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_style.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_style.yaml new file mode 100644 index 0000000000..87f90bc208 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_style.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/has_style +name: has_style +title: has_style +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_style: + name: has_style + description: The style of the entity. MIGRATED 2026-02-03 from has_or_had_style for conciseness. + slot_uri: hc:hasStyle + range: string + multivalued: true + aliases: + - has_or_had_style + annotations: + custodian_types: '["*"]' + examples: + - value: + has_label: "Gothic Revival" + description: Architectural style + - value: + has_label: "Art Deco" + description: Design style + exact_mappings: + - schema:genre diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_sub_collection.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_sub_collection.yaml new file mode 100644 index 0000000000..73e12792a7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_sub_collection.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_sub_collection +name: has_sub_collection +title: has_sub_collection +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_sub_collection: + name: has_sub_collection + description: A sub-collection. MIGRATED 2026-02-03 from has_or_had_sub_collection for conciseness. + slot_uri: hc:hasSubCollection + range: string + aliases: + - has_or_had_sub_collection + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_subject.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_subject.yaml new file mode 100644 index 0000000000..0c4f5bc027 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_subject.yaml @@ -0,0 +1,60 @@ +id: https://nde.nl/ontology/hc/slot/has_subject +name: has_subject +title: has_subject +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + crm: http://www.cidoc-crm.org/cidoc-crm/ + prov: http://www.w3.org/ns/prov# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_subject: + name: has_subject + slot_uri: hc:hasSubject + description: 'Subject matter, theme, or topic depicted, described, or associated with an entity. + + **Use Cases**: + - **Artwork subjects**: Themes depicted in paintings, sculptures, photographs + - **Archival subjects**: Topics covered in document collections + - **Collection subjects**: Thematic focus of a collection + - **Exhibition subjects**: Themes explored in an exhibition + + **Controlled Vocabularies** (Recommended): + - **AAT** (Getty Art & Architecture Thesaurus): Art and artifact subjects + - **Iconclass**: Iconographic classification + - **LCSH** (Library of Congress Subject Headings): General subjects + - **UNESCO Thesaurus**: Cultural heritage subjects + + MIGRATED 2026-02-03: Renamed from has_or_had_subject for conciseness.' + range: string + required: false + multivalued: true + aliases: + - has_or_had_subject + exact_mappings: + - dcterms:subject + close_mappings: + - crm:P62_depicts + - skos:Concept + - schema:about + related_mappings: + - crm:P129_is_about + - schema:keywords + annotations: + replaces_slots: has_or_had_subject + migration_date: '2026-02-03' + controlled_vocabularies: AAT, Iconclass, LCSH, UNESCO Thesaurus + custodian_types: '["*"]' + examples: + - value: portrait + description: Simple string subject for artwork + - value: aat:300015637 + description: AAT term for 'portraits' via CURIE diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_subtype.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_subtype.yaml new file mode 100644 index 0000000000..6f7487893b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_subtype.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_subtype +name: has_subtype +title: has_subtype +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_subtype: + name: has_subtype + description: A subtype or subcategory. MIGRATED 2026-02-03 from has_or_had_subtype for conciseness. + slot_uri: hc:hasSubtype + range: string + aliases: + - has_or_had_subtype + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_summary.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_summary.yaml new file mode 100644 index 0000000000..642e3d12ec --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_summary.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/has_summary +name: has_summary +title: has_summary +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_summary: + name: has_summary + title: has_summary + description: Summary or abstract of the entity. + slot_uri: hc:hasSummary + range: string + aliases: + - has_or_had_summary + - is_or_was_governance_clause + - governance_clause + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:abstract diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_supplier.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_supplier.yaml new file mode 100644 index 0000000000..755b346b29 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_supplier.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_supplier +name: has_supplier +title: has_supplier +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_supplier: + name: has_supplier + title: has_supplier + description: Supplier of the entity. + slot_uri: hc:hasSupplier + range: string # uriorcurie + multivalued: true + aliases: + - has_or_had_supplier + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:seller diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_symbol.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_symbol.yaml new file mode 100644 index 0000000000..773fd7804f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_symbol.yaml @@ -0,0 +1,48 @@ +# ============================================================================== +# LinkML Slot Definition: has_symbol +# ============================================================================== +# Symbol representing the entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|-------------------|---------|----------------------------------| +# | **QUDT** | `qudt:symbol` | exact | Unit symbol | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_symbol +name: has_symbol +title: Has Symbol +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Symbol representing the entity. +imports: +- linkml:types +slots: + has_symbol: + slot_uri: qudt:symbol + description: | + Symbol representing the entity. + range: string + multivalued: false + exact_mappings: + - qudt:symbol + aliases: + - has_or_had_symbol + annotations: + custodian_types: '["*"]' + examples: + - value: "m³" + description: Cubic meters symbol diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_technological_infrastructure.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_technological_infrastructure.yaml new file mode 100644 index 0000000000..58b0a1141f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_technological_infrastructure.yaml @@ -0,0 +1,148 @@ +# ============================================================================== +# LinkML Slot Definition: has_technological_infrastructure +# ============================================================================== +# To possess or comprise the underlying framework of physical and digital systems, +# including hardware, software, and networks, necessary for operation or service. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------------|----------------------|---------|------------------------------------| +# | **Schema.org**| `schema:softwareVersion` | schemaorg.owl | close | Software/version info | +# | **DOAP** | `doap:programming-language` | (external) | close | Programming language for project | +# | **SPDX** | `spdx:relationshipType_DEPENDS_ON`| (external) | related | Software Bill of Materials | +# +# HIERARCHY: No rdfs:subPropertyOf declarations found for these properties +# +# CREATED: 2026-01-16 +# UPDATED: 2026-02-03 - Added header documentation +# UPDATED: 2026-02-03 - Fixed corrupted description field, moved notes to comments +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_technological_infrastructure +name: has_technological_infrastructure +title: Has Technological Infrastructure +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + doap: http://usefulinc.com/ns/doap# + spdx: http://spdx.org/rdf/terms# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: + - linkml:types +default_prefix: hc +slots: + has_technological_infrastructure: + slot_uri: hc:hasTechnologicalInfrastructure + description: >- + To possess or comprise the underlying framework of physical and digital + systems, including hardware, software, and networks, necessary for + operation or service delivery. + alt_descriptions: + nl: >- + Om het onderliggende raamwerk van fysieke en digitale systemen te + bezitten of te omvatten, inclusief hardware, software en netwerken, + noodzakelijk voor werking of dienstverlening. + de: >- + Das zugrunde liegende Framework physischer und digitaler Systeme zu + besitzen oder zu umfassen, einschließlich Hardware, Software und + Netzwerke, die für den Betrieb oder die Dienstleistung erforderlich sind. + fr: >- + Posséder ou comprendre le cadre sous-jacent des systèmes physiques et + numériques, y compris le matériel, les logiciels et les réseaux, + nécessaires au fonctionnement ou à la prestation de services. + ar: >- + امتلاك أو تضمين الإطار الأساسي للأنظمة المادية والرقمية، بما في ذلك + الأجهزة والبرامج والشبكات، اللازمة للتشغيل أو تقديم الخدمات. + id: >- + Memiliki atau mencakup kerangka kerja mendasar dari sistem fisik dan + digital, termasuk perangkat keras, perangkat lunak, dan jaringan, + yang diperlukan untuk operasi atau penyampaian layanan. + zh: >- + 拥有或包含物理和数字系统的底层框架,包括运营或服务交付所需的硬件、软件和网络。 + es: >- + Poseer o comprender el marco subyacente de sistemas físicos y + digitales, incluyendo hardware, software y redes, necesarios para + la operación o prestación de servicios. + structured_aliases: + - literal_form: technologische infrastructuur + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: technologische Infrastruktur + predicate: EXACT_SYNONYM + in_language: de + - literal_form: infrastructure technologique + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: البنية التحتية التكنولوجية + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: infrastruktur teknologi + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 技术基础设施 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: infraestructura tecnológica + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + required: false + close_mappings: + - schema:softwareVersion + - doap:programming-language + related_mappings: + - spdx:relationshipType_DEPENDS_ON + aliases: + - has_or_had_technological_infrastructure + annotations: + replaces_slot: technology_stack + migration_date: '2026-01-16' + migration_rationale: >- + Per slot_fixes.yaml and Rule 56: Migrated from simple string list to + structured TechnologicalInfrastructure class for better semantic + modeling and extensibility. + custodian_types: '["D"]' + custodian_types_rationale: Primarily relevant for Digital platform custodians. + custodian_types_primary: D + specificity_score: 0.7 + specificity_rationale: >- + Fairly specific to digital platform modeling. Less relevant for + physical-only heritage custodians. + examples: + - value: hc:TechnologicalInfrastructure/react-frontend + description: React frontend framework (CURIE reference) + - value: hc:TechnologicalInfrastructure/python-django-backend + description: Python/Django backend stack + comments: + - MIGRATED from technology_stack per slot_fixes.yaml (Rule 56, 2026-01-16). + - | + TEMPORAL SEMANTICS: This relationship may be historical - platforms + may have changed technology stacks over time. + - | + RANGE: uriorcurie - classes narrow to TechnologicalInfrastructure via slot_usage. + Multivalued because platforms typically use multiple technologies. + - DOAP-aligned: Description of a Project vocabulary for software. + - | + USAGE EXAMPLE: + ```yaml + auxiliary_platform: + has_technological_infrastructure: + - has_type: Framework + has_label: React + has_description: Frontend JavaScript framework + - has_type: BackendStack + has_label: Python/Django + has_description: Backend web framework + - has_type: Database + has_label: PostgreSQL + has_description: Primary relational database + ``` diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_text.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_text.yaml new file mode 100644 index 0000000000..e6f016e0e2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_text.yaml @@ -0,0 +1,39 @@ +# ============================================================================== +# LinkML Slot Definition: has_text +# ============================================================================== +# Text content associated with an entity. +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_text +name: has_text +title: Has Text +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Text content associated with an entity. +imports: +- linkml:types +slots: + has_text: + slot_uri: hc:hasText + description: | + Text content associated with an entity. + range: string + multivalued: true + close_mappings: + - schema:text + aliases: + - has_or_had_text + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_threshold.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_threshold.yaml new file mode 100644 index 0000000000..556a6846d5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_threshold.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/has_threshold +name: has_threshold +title: has_threshold +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_threshold: + name: has_threshold + title: has_threshold + description: Threshold value for the entity. + slot_uri: hc:hasThreshold + range: string # can be float or structured + aliases: + - has_or_had_threshold + - has_or_had_treshold + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_thumbnail.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_thumbnail.yaml new file mode 100644 index 0000000000..cf775fa2ef --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_thumbnail.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/has_thumbnail +name: has_thumbnail +title: has_thumbnail +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + foaf: http://xmlns.com/foaf/0.1/ + dcat: http://www.w3.org/ns/dcat# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_thumbnail: + name: has_thumbnail + slot_uri: hc:hasThumbnail + description: "A thumbnail image associated with an entity.\n\nMIGRATED 2026-02-03: Renamed from has_or_had_thumbnail for conciseness." + range: string + required: false + multivalued: false + aliases: + - has_or_had_thumbnail + exact_mappings: + - foaf:thumbnail + close_mappings: + - dcat:thumbnail + - schema:thumbnailUrl + annotations: + replaces_slots: has_or_had_thumbnail + migration_date: '2026-02-03' + custodian_types: '["*"]' + examples: + - value: https://nde.nl/ontology/hc/thumbnail/rijksmuseum-collection-001 + description: Thumbnail for Rijksmuseum collection item diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_tier.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_tier.yaml new file mode 100644 index 0000000000..33bf1fbb15 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_tier.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_tier +name: has_tier +title: has_tier +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_tier: + name: has_tier + title: has_tier + description: Tier or level of the entity. + slot_uri: hc:hasTier + range: string # uriorcurie + aliases: + - has_or_had_tier + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_time_interval.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_time_interval.yaml new file mode 100644 index 0000000000..10425448f9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_time_interval.yaml @@ -0,0 +1,149 @@ +# ============================================================================== +# LinkML Slot Definition: has_time_interval +# ============================================================================== +# Associates entities with a continuous span of time characterized by defined +# start and end points, or a duration expressed as a scaled value. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------------------|-------------------------|---------|--------------------------------------------------| +# | **OWL Time** | `time:hasDuration` | time.ttl:752-759 | exact | "Duration of a temporal entity, expressed as a | +# | | | | | scaled value or nominal value." | +# | **Schema.org**| `schema:duration` | schemaorg.owl:15892-920 | close | "Duration in ISO 8601 format." | +# | **CIDOC-CRM** | `crm:P4_has_time-span` | CIDOC_CRM:1242-1254 | close | "Associates a temporal entity with a time-span." | +# | **DCTerms** | `dcterms:temporal` | dcterms.rdf:2010-2033 | related | "Temporal characteristics of the resource." | +# | **OWL Time** | `time:hasTemporalDuration` | time.ttl:792-799 | broad | Parent property; general duration of entity. | +# | **OWL Time** | `time:hasDurationDescription` | time.ttl:760-766 | narrow | Structured duration description. | +# +# OWL Time Classes: time:Duration, time:Interval, time:TemporalEntity, +# time:DurationDescription, time:DateTimeInterval +# +# CREATED: 2026-01-14 +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_time_interval +name: has_time_interval +title: Has Time Interval +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + time: http://www.w3.org/2006/time# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +description: | + To be associated with a specific, continuous span of time that is characterized by defined start and end points. +slots: + has_time_interval: + slot_uri: time:hasDuration + description: | + To be associated with a specific, continuous span of time that is characterized by defined start and end points. + alt_descriptions: + nl: Geassocieerd zijn met een specifieke, continue tijdspanne die wordt gekenmerkt door gedefinieerde begin- en eindpunten. + de: Mit einer bestimmten, kontinuierlichen Zeitspanne verbunden sein, die durch definierte Anfangs- und Endpunkte gekennzeichnet ist. + fr: Être associé à une période de temps spécifique et continue caractérisée par des points de début et de fin définis. + ar: أن يكون مرتبطًا بفترة زمنية محددة ومستمرة تتميز بنقاط بداية ونهاية محددة. + id: Dikaitkan dengan rentang waktu tertentu yang berkelanjutan yang ditandai dengan titik awal dan akhir yang ditentukan. + zh: 与一个由明确的起点和终点定义的特定、连续的时间跨度相关联。 + es: Estar asociado con un intervalo de tiempo específico y continuo caracterizado por puntos de inicio y fin definidos. + structured_aliases: + - literal_form: heeft tijdsinterval + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Zeitintervall + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a pour intervalle de temps + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: لديه فترة زمنية + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki interval waktu + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有时间间隔 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene intervalo de tiempo + predicate: EXACT_SYNONYM + in_language: es + range: string + multivalued: true + inlined: false + exact_mappings: + - time:hasDuration # time.ttl:752-759 - "Duration of a temporal entity, expressed as a scaled value" + close_mappings: + - schema:duration # schemaorg.owl:15892-15920 - "Duration in ISO 8601 format" + - crm:P4_has_time-span # CIDOC_CRM:1242-1254 - associates temporal entity with time-span + broad_mappings: + - time:hasTemporalDuration # time.ttl:792-799 - parent property; general duration + narrow_mappings: + - time:hasDurationDescription # time.ttl:760-766 - structured duration description + - time:hasXSDDuration # xsd:duration typed literal + related_mappings: + - dcterms:temporal # dcterms.rdf:2010-2033 - temporal characteristics of resource + - schema:temporalCoverage # schemaorg.owl:37609 - temporal coverage + aliases: + - has_or_had_time_interval + - has_duration + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Time interval associations applicable to all custodian types. + custodian_types_primary: '*' + specificity_score: 0.25 + specificity_rationale: Low specificity - universal temporal relationship. + examples: + - value: P7D + description: Weekly update interval (ISO 8601 duration). + - value: P1Y + description: Annual time interval for revenue reporting. + - value: PT10M + description: Video duration of 10 minutes. + - value: PT2H30M + description: Event duration of 2 hours 30 minutes. + - value: P3M + description: Quarterly reporting period. + comments: + - Created from slot_fixes.yaml migration (2026-01-14). + - Uses W3C Time Ontology for duration semantics. + - | + **TEMPORAL SEMANTICS** (RiC-O style): + The "has_or_had" naming indicates that time interval associations can change: + - Update frequencies may be revised + - Approval times may change with policy updates + - Reporting periods may vary + - Durations of media content + - | + **USE CASES**: + - Update frequency: How often data is refreshed (e.g., P7D for weekly) + - Approval time: Expected processing duration + - Reporting period: Time period for metrics/revenue + - Media duration: Length of video/audio content + - | + **ISO 8601 DURATION FORMAT**: + - P = period designator (required) + - nY = years, nM = months, nD = days + - T = time designator (before time components) + - nH = hours, nM = minutes, nS = seconds + - Examples: P1Y (1 year), P3M (3 months), PT30M (30 minutes) + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | OWL Time | time:hasDuration | 752-759 | exact | Scaled value duration | + | Schema.org | schema:duration | 15892-920 | close | ISO 8601 duration | + | CIDOC-CRM | crm:P4_has_time-span | 1242-1254 | close | Time-span association | + | OWL Time | time:hasTemporalDuration | 792-799 | broad | Parent property | + | OWL Time | time:hasDurationDescription | 760-766 | narrow | Structured duration | + - Updated 2026-02-03 with verified ontology mappings and translations. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_timestamp.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_timestamp.yaml new file mode 100644 index 0000000000..bc07d87d37 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_timestamp.yaml @@ -0,0 +1,46 @@ +# ============================================================================== +# LinkML Slot Definition: has_timestamp +# ============================================================================== +# Timestamp associated with an entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|----------------------|---------|--------------------------------| +# | **DCTerms** | `dcterms:date` | close | Date | +# | **Schema.org**| `schema:dateCreated` | close | Creation date | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_timestamp +name: has_timestamp +title: Has Timestamp +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Timestamp associated with an entity. +imports: +- linkml:types +slots: + has_timestamp: + slot_uri: hc:hasTimestamp + description: | + Timestamp associated with an entity. + range: datetime + multivalued: false + close_mappings: + - dcterms:date + - schema:dateCreated + aliases: + - has_or_had_timestamp + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_title.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_title.yaml new file mode 100644 index 0000000000..76065bcd2d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_title.yaml @@ -0,0 +1,40 @@ +# ============================================================================== +# LinkML Slot Definition: has_title +# ============================================================================== +# Title of an entity. +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_title +name: has_title +title: Has Title +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Title of an entity. +imports: +- linkml:types +slots: + has_title: + slot_uri: dcterms:title + description: | + Title of an entity. + range: string + multivalued: false + exact_mappings: + - dcterms:title + close_mappings: + - schema:name + aliases: + - has_or_had_title + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_token.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_token.yaml new file mode 100644 index 0000000000..2124d27bea --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_token.yaml @@ -0,0 +1,174 @@ +# ============================================================================== +# LinkML Slot Definition: has_token +# ============================================================================== +# Generic slot for token-related data, specifically for LLM (Large Language Model) +# token counts used in AI/ML processing contexts. Follows RiC-O temporal naming +# convention. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|-----------------------|---------|------------------------------------| +# | **Schema.org**| `schema:value` | schemaorg.owl:39461-39492| close | Value of QuantitativeValue/PropertyValue | +# | **PROV-O** | `prov:value` | prov.ttl:1055-1064 | close | Direct representation of entity value | +# | **SOSA** | `sosa:hasSimpleResult`| sosa.ttl:377-379 | related | Simple value of observation/actuation | +# | **Schema.org**| `schema:propertyID` | schemaorg.owl | related | Identifier for the property being valued| +# +# NOTE: LLM tokens are a domain-specific concept not directly represented in +# standard ontologies. schema:value and prov:value are the closest general-purpose +# value representation properties. +# +# CREATED: 2026-01-17 - Migrated from cached_token, completion_token, prompt_token +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_token +name: has_token +title: has token + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: https://schema.org/ + prov: http://www.w3.org/ns/prov# + sosa: http://www.w3.org/ns/sosa/ + owl: http://www.w3.org/2002/07/owl# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +description: | + To possess a discrete unit of data serving as a distinct element, such as a + cryptographic key for access control or a textual segment for linguistic processing. + +imports: + - linkml:types + +slots: + has_token: + slot_uri: hc:hasToken + description: | + To possess a discrete unit of data serving as a distinct element, such as a cryptographic key for access control or a textual segment for linguistic processing. + alt_descriptions: + nl: >- + Het bezitten van een discrete gegevenseenheid die dient als een + afzonderlijk element, zoals een cryptografische sleutel voor + toegangscontrole of een tekstsegment voor taalverwerking. + de: >- + Das Besitzen einer diskreten Dateneinheit, die als eigenständiges + Element dient, wie ein kryptografischer Schlüssel für die + Zugangskontrolle oder ein Textsegment für die Sprachverarbeitung. + fr: >- + Posséder une unité de données discrète servant d'élément distinct, + comme une clé cryptographique pour le contrôle d'accès ou un segment + textuel pour le traitement linguistique. + ar: >- + امتلاك وحدة بيانات منفصلة تعمل كعنصر مميز، مثل مفتاح تشفير للتحكم + في الوصول أو جزء نصي للمعالجة اللغوية. + id: >- + Memiliki unit data diskrit yang berfungsi sebagai elemen berbeda, + seperti kunci kriptografi untuk kontrol akses atau segmen tekstual + untuk pemrosesan linguistik. + zh: >- + 拥有作为独立元素的离散数据单元,例如用于访问控制的加密密钥或用于语言处理的文本片段。 + es: >- + Poseer una unidad de datos discreta que sirve como elemento distinto, + como una clave criptográfica para control de acceso o un segmento + textual para procesamiento lingüístico. + structured_aliases: + - literal_form: heeft token + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Token + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a un jeton + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: لديه رمز + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki token + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 具有令牌 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene token + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + implements: + - owl:ObjectProperty + required: false + multivalued: true + inlined: false + close_mappings: + # Schema.org value - Value of QuantitativeValue/PropertyValue + # Lines 39461-39492 in schemaorg.owl + # Close: general value representation for quantitative data + - schema:value + # PROV-O value - Direct representation of entity value + # Lines 1055-1064 in prov.ttl + # Close: provides a value that directly represents an entity + - prov:value + related_mappings: + # SOSA hasSimpleResult - Simple value of observation/actuation + # Lines 377-379 in sosa.ttl + # Related: observation result (different context) + - sosa:hasSimpleResult + aliases: + - has_or_had_token + - token_count + - llm_tokens + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Token counts may be relevant for any custodian using AI/ML processing. + specificity_score: 0.60 + specificity_rationale: Moderately specific - applies to AI/ML processing contexts. + migrated_from: cached_token, completion_token, prompt_token + migration_date: '2026-01-17' + migration_rule: Rule 53/56 + examples: + - value: "hc:TokenCount/completion-1500" + description: LLM completion used 1500 tokens + - value: "hc:TokenCount/prompt-500" + description: LLM prompt used 500 tokens + - value: "hc:TokenCount/cached-2000" + description: 2000 tokens were cached for reuse + comments: + - Updated 2026-02-03 with verified ontology mappings and translations + - | + **PURPOSE**: + Generic slot for token-related data following RiC-O temporal naming + convention. Primarily used for LLM (Large Language Model) token counts + in AI/ML processing contexts. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | Schema.org | schema:value | 39461-39492 | close | QuantitativeValue value | + | PROV-O | prov:value | 1055-1064 | close | Direct entity value | + | SOSA | sosa:hasSimpleResult | 377-379 | related | Observation result | + - | + **RiC-O NAMING** (Rule 39): + Uses "has_or_had_token" alias to indicate temporal relationship - + token counts are associated with specific processing events. + - | + **MIGRATION NOTES** (2026-01-17): + Consolidated from: + - `cached_token` → has_token + - `completion_token` → has_token + - `prompt_token` → has_token + Use slot_usage in classes to specialize range and semantics. + - | + **LLM TOKEN TYPES**: + - **Prompt tokens**: Input tokens sent to the model + - **Completion tokens**: Output tokens generated by the model + - **Cached tokens**: Tokens cached for reuse (efficiency optimization) + - **Total tokens**: Sum of prompt and completion tokens + - | + **RANGE NOTES**: + Range is `uriorcurie` (Rule 55) to allow references to Token class + instances that capture the count, type, and context. Classes may + narrow via slot_usage to specific Token enums or integer values. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_tolerance.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_tolerance.yaml new file mode 100644 index 0000000000..0a56639ddd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_tolerance.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_tolerance +name: has_tolerance +title: has_tolerance +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_tolerance: + name: has_tolerance + title: has_tolerance + description: Tolerance or acceptable deviation for a value. + slot_uri: hc:hasTolerance + range: string # can be float or structured + aliases: + - has_or_had_tolerance + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_tool.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_tool.yaml new file mode 100644 index 0000000000..e34b474f81 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_tool.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_tool +name: has_tool +title: has_tool +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_tool: + name: has_tool + description: Tool or instrument used in an activity. MIGRATED 2026-02-03 from has_or_had_tool for conciseness. + slot_uri: hc:hasTool + range: string + aliases: + - has_or_had_tool + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_topic.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_topic.yaml new file mode 100644 index 0000000000..c8defc87e9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_topic.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_topic +name: has_topic +title: has_topic +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_topic: + name: has_topic + description: A topic or subject matter. MIGRATED 2026-02-03 from has_or_had_topic for conciseness. + slot_uri: hc:hasTopic + range: string + aliases: + - has_or_had_topic + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_transformation_metadata.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_transformation_metadata.yaml new file mode 100644 index 0000000000..07cd9949f4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_transformation_metadata.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_transformation_metadata +name: has_transformation_metadata +title: has_transformation_metadata +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_transformation_metadata: + name: has_transformation_metadata + description: Metadata about a transformation process. MIGRATED 2026-02-03 from has_or_had_transformation_metadata for conciseness. + slot_uri: hc:hasTransformationMetadata + range: string + aliases: + - has_or_had_transformation_metadata + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_treatment.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_treatment.yaml new file mode 100644 index 0000000000..0c653351d1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_treatment.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/slot/has_treatment +name: has_treatment +title: has_treatment +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_treatment: + name: has_treatment + slot_uri: hc:hasTreatment + description: 'A treatment or intervention applied to an entity. + + **USAGE**: + Used for: + - Conservation treatments + - Processing descriptions + - Handling instructions + + MIGRATED 2026-02-03: Renamed from has_or_had_treatment for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_treatment + examples: + - value: + treatment_type: CONSERVATION + treatment_description: Surface cleaning and stabilization + description: Conservation treatment record + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:description diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_treshold.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_treshold.yaml new file mode 100644 index 0000000000..003f64772f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_treshold.yaml @@ -0,0 +1,67 @@ +id: https://nde.nl/ontology/hc/slot/has_treshold +name: has_treshold +title: has treshold +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_treshold: + slot_uri: hc:hasTreshold + description: "Links detection contexts to threshold configuration values.\n\n\ + **SPELLING NOTE**: Uses \"treshold\" (not \"threshold\") to match slot_fixes.yaml\n\ + specification. Per Rule 57, revision specifications are immutable.\n\n**Temporal\ + \ Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention\ + \ indicating this relationship\nmay be historical - threshold values may change\ + \ across different analysis runs.\n\n**Ontological Alignment**:\n- **Primary**\ + \ (`slot_uri`): `rdf:value` - Generic value predicate\n- **Related**: `schema:minValue`/`schema:maxValue`\ + \ - threshold bounds\n\n**Usage**:\nFor detection/filtering contexts where a\ + \ confidence threshold determines\nwhich entities are included in results.\n\ + \n**Pattern**:\n```\nDetectedEntity\n └── has_or_had_treshold → DetectionThreshold\n\ + \ ├── threshold_value: 0.5 # minimum confidence\n └── threshold_type:\ + \ MINIMUM\n```\n\n**Migrated From** (per slot_fixes.yaml):\n- `detection_threshold`\ + \ (float) → has_or_had_treshold + DetectionThreshold (class)\n\n**Cardinality**:\n\ + Single-valued - one threshold configuration per detection context.\n\n\nMIGRATED\ + \ 2026-02-03 from has_or_had_treshold for conciseness." + range: string + multivalued: false + aliases: + - has_or_had_treshold + exact_mappings: + - rdf:value + related_mappings: + - schema:minValue + - schema:maxValue + annotations: + rico_naming_convention: 'Follows RiC-O "hasOrHad" pattern for temporal predicates. + + See Rule 39: Slot Naming Convention (RiC-O Style) + + ' + spelling_note: Intentional 'treshold' spelling to match slot_fixes.yaml (Rule + 57 immutability) + replaces_slots: detection_threshold + migration_date: '2026-01-25' + custodian_types: '["*"]' + examples: + - value: + threshold_value: 0.5 + threshold_type: MINIMUM + description: Minimum confidence threshold of 0.5 + - value: + threshold_value: 0.9 + threshold_type: HIGH_PRECISION + description: High precision threshold for production display + comments: + - Generic threshold slot for detection/filtering configurations + - Links detection contexts to threshold values + - Uses DetectionThreshold class for structured threshold data + - Spelling 'treshold' matches slot_fixes.yaml per Rule 57 + - 'RiC-O naming: hasOrHad indicates potentially historical relationship' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_type.yaml new file mode 100644 index 0000000000..1de4144155 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_type.yaml @@ -0,0 +1,167 @@ +# ============================================================================== +# LinkML Slot Definition: has_type +# ============================================================================== +# Designates the semantic category or class to which an entity belongs. +# Fundamental typing property for heritage custodian entities. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |--------------|---------------------------|------------------------|---------|------------------------------------------------| +# | **CIDOC-CRM**| `crm:P2_has_type` | CIDOC_CRM:1200-1214 | exact | "Allows sub-typing through terminological hierarchy" | +# | **DC Terms** | `dcterms:type` | dcterms.ttl | close | "Nature or genre of the resource" | +# | **Schema.org**| `schema:additionalType` | schemaorg.owl:7190-7208| close | "Additional type from external vocabularies" | +# | **RDF** | `rdf:type` | RDF standard | broad | Fundamental RDF typing (schema:additionalType subPropertyOf) | +# | **CIDOC-CRM**| `crm:P137_exemplifies` | CIDOC_CRM:4129-4140 | narrow | Entity exemplifies type (subPropertyOf P2) | +# | **CIDOC-CRM**| `crm:P177_assigned_property_of_type`| CIDOC_CRM:4789-4800| narrow | Type of property assigned (subPropertyOf P2) | +# | **SKOS** | `skos:broader` | skos.rdf:266-277 | related | Hierarchical concept relationship | +# +# NOTE: crm:P2_has_type is the CIDOC-CRM standard for typing entities. +# It allows specialization through E55 Type hierarchy without extending +# the core CRM class structure. +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_type +name: has_type +title: has type + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + dcterms: http://purl.org/dc/terms/ + schema: https://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +description: | + To designate the specific category or semantic class to which an entity belongs, establishing its relationship within a broader taxonomy or hierarchy. + +imports: + - linkml:types + +slots: + has_type: + slot_uri: crm:P2_has_type + description: | + To designate the specific category or semantic class to which an entity belongs, establishing its relationship within a broader taxonomy or hierarchy. + alt_descriptions: + nl: >- + De specifieke categorie of semantische klasse aanduiden waartoe een entiteit behoort, en daarmee de relatie binnen een bredere taxonomie of hiërarchie vaststellen. + de: >- + Die spezifische Kategorie oder semantische Klasse bezeichnen, zu der eine Entität gehört, und ihre Beziehung innerhalb einer breiteren Taxonomie oder Hierarchie festlegen. + fr: >- + Désigner la catégorie spécifique ou la classe sémantique à laquelle appartient une entité, établissant sa relation au sein d'une taxonomie ou hiérarchie plus large. + ar: >- + تحديد الفئة المحددة أو الفئة الدلالية التي ينتمي إليها كيان ما، مع تحديد علاقته ضمن تصنيف أو تسلسل هرمي أوسع. + id: >- + Menunjuk kategori atau kelas semantik tertentu yang menjadi milik suatu entitas, menetapkan hubungannya dalam taksonomi atau hierarki yang lebih luas. + zh: >- + 指定实体所属的特定类别或语义类,在更广泛的分类法或层次结构中确立其关系。 + es: >- + Designar la categoría específica o clase semántica a la que pertenece una entidad, estableciendo su relación dentro de una taxonomía o jerarquía más amplia. + structured_aliases: + - literal_form: heeft type + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat Typ + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a pour type + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: له نوع + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki tipe + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 有类型 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene tipo + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + annotations: + custodian_types: '["*"]' + specificity_score: 0.30 + specificity_rationale: Fundamental typing property applicable to all entity types + exact_mappings: + # CIDOC-CRM P2_has_type - Standard typing through E55 Type hierarchy + # "Allows sub-typing of CIDOC CRM entities through terminological hierarchy" + # Domain: E1_CRM_Entity, Range: E55_Type + # Lines 1200-1214 in CIDOC_CRM_v7.1.3.rdf + - crm:P2_has_type + close_mappings: + # Dublin Core type - "Nature or genre of the resource" + - dcterms:type + # Schema.org additionalType - Additional type from external vocabularies + # subPropertyOf rdf:type + # Lines 7190-7208 in schemaorg.owl + - schema:additionalType + broad_mappings: + # RDF type - Fundamental RDF typing mechanism + # schema:additionalType is subPropertyOf rdf:type + - rdf:type + narrow_mappings: + # CIDOC-CRM P137_exemplifies - Entity exemplifies a type (prototypical) + # subPropertyOf P2_has_type + # Lines 4129-4140 in CIDOC_CRM_v7.1.3.rdf + - crm:P137_exemplifies + # CIDOC-CRM P177_assigned_property_of_type - Type of property assigned + # subPropertyOf P2_has_type (for attribute assignments) + # Lines 4789-4800 in CIDOC_CRM_v7.1.3.rdf + - crm:P177_assigned_property_of_type + related_mappings: + # SKOS broader - Hierarchical concept relationship + # Lines 266-277 in skos.rdf + - skos:broader + aliases: + - has_or_had_type + examples: + - value: "hc:CustodianType/museum" + description: Heritage custodian typed as a museum + - value: "hc:CollectionType/art-collection" + description: Collection typed as an art collection + - value: "aat:300312281" + description: Getty AAT term for 'archives (repositories)' + comments: + - Updated 2026-02-03 with verified ontology mappings and translations + - | + **PURPOSE**: Fundamental typing property that assigns entities to + semantic categories or classes. Essential for classification within + the heritage custodian ontology. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | CIDOC-CRM | crm:P2_has_type | 1200 | exact | Standard CRM typing | + | DC Terms | dcterms:type | - | close | Resource genre | + | Schema.org | schema:additionalType | 7190 | close | External vocab type | + | RDF | rdf:type | - | broad | Fundamental typing | + | CIDOC-CRM | crm:P137_exemplifies | 4129 | narrow | Prototypical example | + | CIDOC-CRM | crm:P177_assigned_property_of_type | 4789 | narrow | Attribute type | + - | + **CIDOC-CRM PATTERN**: + P2_has_type allows sub-typing through E55 Type hierarchy without + extending the core CRM class structure. This is the recommended + approach for domain-specific typing in CIDOC-CRM. + - | + **TEMPORAL SEMANTICS** (RiC-O Pattern): + "has_or_had_type" indicates types may change over time. For example, + an institution may be reclassified from "library" to "archive" or + may have multiple types simultaneously. + - | + **USAGE NOTES**: + - Use for assigning controlled vocabulary terms to entities + - Can reference Getty AAT, LCSH, or custom type hierarchies + - Multivalued: entities may have multiple types simultaneously diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_type_code.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_type_code.yaml new file mode 100644 index 0000000000..58c1250b6c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_type_code.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/has_type_code +name: has_type_code +title: has type code +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + has_type_code: + slot_uri: hc:hasTypeCode + description: 'Code representing the heritage type. + + + **MIGRATED** from heritage_type_code (Rule 53). + + + Follows RiC-O naming convention. + + + MIGRATED 2026-02-03 from has_or_had_type_code for conciseness.' + range: string + multivalued: true + aliases: + - has_or_had_type_code + exact_mappings: + - skos:notation + annotations: + rico_naming_convention: Follows RiC-O "hasOrHad" pattern for temporal predicates. + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_unit.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_unit.yaml new file mode 100644 index 0000000000..c060e4b389 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_unit.yaml @@ -0,0 +1,50 @@ +# ============================================================================== +# LinkML Slot Definition: has_unit +# ============================================================================== +# Unit of measurement associated with a quantity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|-----------------|---------|-----------------------------------| +# | **QUDT** | `qudt:unit` | exact | QUDT unit property | +# | **Schema.org**| `schema:unitCode`| exact | Schema.org unit code | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_unit +name: has_unit +title: Has Unit +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Unit of measurement associated with a quantity. +imports: +- linkml:types +slots: + has_unit: + slot_uri: qudt:unit + description: | + Unit of measurement associated with a quantity or measurement value. + range: string + multivalued: false + exact_mappings: + - qudt:unit + - schema:unitCode + close_mappings: + - schema:unitText + aliases: + - has_or_had_unit + annotations: + custodian_types: '["*"]' + specificity_score: 0.3 diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_uri.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_uri.yaml new file mode 100644 index 0000000000..6134293842 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_uri.yaml @@ -0,0 +1,38 @@ +# ============================================================================== +# LinkML Slot Definition: has_uri +# ============================================================================== +# URI associated with an entity. +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_uri +name: has_uri +title: Has URI +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + URI associated with an entity. +imports: +- linkml:types +slots: + has_uri: + slot_uri: schema:url + description: | + URI associated with an entity. + range: uri + multivalued: false + exact_mappings: + - schema:url + aliases: + - has_or_had_uri + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_url.yaml new file mode 100644 index 0000000000..4c77eb0e5c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_url.yaml @@ -0,0 +1,158 @@ +# ============================================================================== +# LinkML Slot Definition: has_url +# ============================================================================== +# Possess a standardized address specifying the precise location of a resource +# or entity on the internet. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------------|----------------------|---------|------------------------------------| +# | **Schema.org**| `schema:url` | schemaorg.owl:39120 | exact | URL of the item | +# | **FOAF** | `foaf:page` | foaf.ttl:467-472 | broad | A page about this thing | +# | **FOAF** | `foaf:homepage` | foaf.ttl:291-300 | narrow | Primary website (subPropertyOf page)| +# | **FOAF** | `foaf:workplaceHomepage` | foaf.ttl:622-627 | narrow | Workplace homepage (subPropertyOf) | +# | **DCAT** | `dcat:landingPage` | dcat3.ttl:1241 | related | Human-readable entry page | +# | **DCAT** | `dcat:accessURL` | dcat3.ttl:562 | related | URL giving access to distribution | +# +# CREATED: 2026-01-15 +# UPDATED: 2026-02-03 - Changed slot_uri from hc:hasUrl to schema:url (exact mapping) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_url +name: has_url +title: has URL +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + foaf: http://xmlns.com/foaf/0.1/ + dcat: http://www.w3.org/ns/dcat# +default_prefix: hc +imports: +- linkml:types +slots: + has_url: + slot_uri: schema:url + range: uri + description: >- + To possess a standardized address that specifies the precise location + of a resource or entity on the internet. + alt_descriptions: + nl: >- + Het bezitten van een gestandaardiseerd adres dat de specifieke locatie + van een bron of entiteit op het internet aanduidt. + de: >- + Das Besitzen einer standardisierten Adresse, die den genauen Standort + einer Ressource oder Entität im Internet angibt. + fr: >- + Posséder une adresse standardisée qui spécifie l'emplacement précis + d'une ressource ou d'une entité sur Internet. + ar: >- + امتلاك عنوان موحد يحدد الموقع الدقيق لمورد أو كيان على الإنترنت. + id: >- + Memiliki alamat standar yang menentukan lokasi tepat dari sumber daya + atau entitas di internet. + zh: >- + 拥有一个标准化地址,用于指定资源或实体在互联网上的精确位置。 + es: >- + Poseer una dirección estandarizada que especifica la ubicación precisa + de un recurso o entidad en Internet. + structured_aliases: + - literal_form: heeft URL + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: hat URL + predicate: EXACT_SYNONYM + in_language: de + - literal_form: a URL + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: لديه رابط + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: memiliki URL + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 具有网址 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: tiene URL + predicate: EXACT_SYNONYM + in_language: es + implements: + - linkml:ObjectProperty + required: false + multivalued: true + inlined: false + inlined_as_list: false + # Semantic Mappings - Verified against source ontology files + # Verification date: 2026-02-03 + exact_mappings: + # schema:url - Schema.org URL property for any entity + # Verified: schemaorg.owl line 39120 (owl:ObjectProperty) + # Semantics: URL of the item - exact semantic match to has_url + - schema:url + broad_mappings: + # foaf:page - FOAF page property (parent of homepage) + # Verified: foaf.ttl line 467-472 (rdf:Property, owl:ObjectProperty) + # Semantics: A page or document about this thing + - foaf:page # from foaf.ttl:467-472 - parent property of foaf:homepage + narrow_mappings: + # foaf:homepage - FOAF homepage property (subPropertyOf foaf:page) + # Verified: foaf.ttl line 291-300 + - foaf:homepage # from foaf.ttl:291-300 - primary website (subPropertyOf foaf:page) + # foaf:workplaceHomepage - FOAF workplace homepage + # Verified: foaf.ttl line 622-627 + - foaf:workplaceHomepage # from foaf.ttl:622-627 - workplace homepage + # foaf:schoolHomepage - FOAF school homepage + # Verified: foaf.ttl line 516-521 + - foaf:schoolHomepage # from foaf.ttl:516-521 - school homepage + related_mappings: + # dcat:landingPage - DCAT landing page for datasets/distributions + # Verified: dcat3.ttl line 1241 + # Semantics: Human-readable entry page - specific to data catalogs + - dcat:landingPage + # dcat:accessURL - DCAT access URL for distributions + # Verified: dcat3.ttl line 562 + # Semantics: URL giving access to distribution - specific to data access + - dcat:accessURL + aliases: + - has_or_had_url + annotations: + replaces_slots: website, url, vendor_url + migration_date: '2026-01-15' + custodian_types: '["*"]' + custodian_types_rationale: URLs apply to all heritage custodian types. + specificity_score: 0.15 + specificity_rationale: Generic URL slot applicable across all contexts. + comments: + - Updated 2026-02-03 with broad_mappings and narrow_mappings + - >- + **Temporal Semantics**: This URL may be historical - websites change + over time. The alias 'has_or_had_url' reflects RiC-O temporal naming + conventions. + - >- + **Ontological Alignment**: + - **Primary** (`slot_uri`): `hc:hasUrl` - Heritage Custodian property + - **Exact**: `schema:url` - Schema.org URL property (line 39120) + - **Broad**: `foaf:page` - FOAF page for any document about something + - **Narrow**: `foaf:homepage`, `foaf:workplaceHomepage`, `foaf:schoolHomepage` - specific URL types + - **Related**: `dcat:landingPage`, `dcat:accessURL` - DCAT catalog URLs + - >- + **Use Cases**: + Institution websites, API endpoints, vendor/supplier websites, + documentation links, social media profiles. + - >- + **Range**: uri - Broadened from URL class to resolve type ambiguity. + Multivalued as entities may have multiple URLs of different types. + - >- + **Prefix Cleanup**: Removed unused prefixes (owl, dcterms, prov, crm, + skos, rdfs, org, xsd). Added dcat for related mappings. + examples: + - value: https://www.rijksmuseum.nl/ + description: Official website for Rijksmuseum + - value: https://api.rijksmuseum.nl/api/nl/collection + description: Rijksmuseum API endpoint for collection data + - value: https://www.nationaalarchief.nl/ + description: Official website for Nationaal Archief diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_use_case.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_use_case.yaml new file mode 100644 index 0000000000..cccc6411d9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_use_case.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/has_use_case +name: has_use_case +title: has_use_case +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_use_case: + name: has_use_case + title: has_use_case + description: Use case or application scenario for the entity. + slot_uri: hc:hasUseCase + range: string # uriorcurie + multivalued: true + aliases: + - has_or_had_use_case + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_user_category.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_user_category.yaml new file mode 100644 index 0000000000..1fbdda4c38 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_user_category.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/has_user_category +name: has_user_category +title: has_user_category +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_user_category: + name: has_user_category + title: has_user_category + description: Category of users for the entity. + slot_uri: hc:hasUserCategory + range: string # uriorcurie + multivalued: true + aliases: + - has_or_had_user_category + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_value.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_value.yaml new file mode 100644 index 0000000000..3ba33ed1e2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_value.yaml @@ -0,0 +1,50 @@ +# ============================================================================== +# LinkML Slot Definition: has_value +# ============================================================================== +# The value associated with an assertion, claim, or measurement. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|---------------|---------|-----------------------------------| +# | **RDF** | `rdf:value` | exact | RDF value property | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_value +name: has_value +title: Has Value +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + The value associated with an assertion, claim, or measurement. +imports: +- linkml:types +slots: + has_value: + slot_uri: rdf:value + description: | + The value associated with an assertion, claim, or measurement. + range: string + multivalued: true + exact_mappings: + - rdf:value + aliases: + - has_or_had_value + annotations: + custodian_types: '["*"]' + examples: + - value: "23.5" + description: Temperature measurement value + - value: "true" + description: Boolean flag value diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_variant_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_variant_name.yaml new file mode 100644 index 0000000000..f604252927 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_variant_name.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_variant_name +name: has_variant_name +title: has_variant_name +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_variant_name: + name: has_variant_name + description: A variant name or alternative designation. MIGRATED 2026-02-03 from has_or_had_variant_name for conciseness. + slot_uri: hc:hasVariantName + range: string + aliases: + - has_or_had_variant_name + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_venue.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_venue.yaml new file mode 100644 index 0000000000..7cd76b586c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_venue.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_venue +name: has_venue +title: has_venue +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_venue: + name: has_venue + description: A venue associated with an event or exhibition. MIGRATED 2026-02-03 from has_or_had_venue for conciseness. + slot_uri: hc:hasVenue + range: string + aliases: + - has_or_had_venue + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_verbatim_value.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_verbatim_value.yaml new file mode 100644 index 0000000000..6aa38db596 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_verbatim_value.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_verbatim_value +name: has_verbatim_value +title: has_verbatim_value +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_verbatim_value: + name: has_verbatim_value + description: The verbatim or literal value. MIGRATED 2026-02-03 from has_or_had_verbatim_value for conciseness. + slot_uri: hc:hasVerbatimValue + range: string + aliases: + - has_or_had_verbatim_value + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_version.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_version.yaml new file mode 100644 index 0000000000..acfc3eb766 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_version.yaml @@ -0,0 +1,39 @@ +# ============================================================================== +# LinkML Slot Definition: has_version +# ============================================================================== +# Version of an entity. +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_version +name: has_version +title: Has Version +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Version of an entity. +imports: +- linkml:types +slots: + has_version: + slot_uri: schema:version + description: | + Version of an entity. + range: string + multivalued: false + exact_mappings: + - schema:version + aliases: + - has_or_had_version + - api_ver + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_video.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_video.yaml new file mode 100644 index 0000000000..036b3ff77f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_video.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/has_video +name: has_video +title: has_video +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +default_prefix: hc +imports: +- linkml:types +slots: + has_video: + name: has_video + description: A video associated with the entity. MIGRATED 2026-02-03 from has_or_had_video for conciseness. + slot_uri: hc:hasVideo + range: string + aliases: + - has_or_had_video + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_web_claim.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_web_claim.yaml new file mode 100644 index 0000000000..8b811f298c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_web_claim.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/has_web_claim +name: has_web_claim +title: has_web_claim +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_web_claim: + name: has_web_claim + title: has_web_claim + description: Web claim or assertion about the entity. + slot_uri: hc:hasWebClaim + range: string # uriorcurie + multivalued: true + aliases: + - has_or_had_web_claim + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_web_page.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_web_page.yaml new file mode 100644 index 0000000000..debb42dc6f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_web_page.yaml @@ -0,0 +1,143 @@ +# ============================================================================== +# LinkML Slot Definition: has_web_page +# ============================================================================== +# Possess or reference a specific electronic document or resource accessible via +# the World Wide Web, typically identified by a Uniform Resource Locator (URL). +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|-----------------------|-------------------|----------|------------------------------------------| +# | **FOAF** | `foaf:page` | foaf.ttl:467-472 | close | A page or document about this thing. | +# | **Schema.org** | `schema:url` | schemaorg.owl | close | URL of the item. | +# | **FOAF** | `foaf:homepage` | foaf.ttl:291-300 | narrow | Homepage (subPropertyOf foaf:page). | +# | **FOAF** | `foaf:weblog` | foaf.ttl:604-612 | narrow | Weblog (subPropertyOf foaf:page). | +# +# CREATED: 2026-01-22 +# UPDATED: 2026-02-03 - Added header, narrow_mappings (subProperties of foaf:page) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_web_page +name: has_web_page +title: Has Web Page +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + foaf: http://xmlns.com/foaf/0.1/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + has_web_page: + slot_uri: hc:hasWebPage + description: >- + To possess or reference a specific electronic document or resource + accessible via the World Wide Web, typically identified by a Uniform + Resource Locator (URL). + alt_descriptions: + nl: >- + Om een specifiek elektronisch document of bron te bezitten of te + verwijzen die toegankelijk is via het World Wide Web, meestal + geïdentificeerd door een Uniform Resource Locator (URL). + de: >- + Ein bestimmtes elektronisches Dokument oder eine Ressource zu besitzen + oder darauf zu verweisen, die über das World Wide Web zugänglich ist, + typischerweise identifiziert durch einen Uniform Resource Locator (URL). + fr: >- + Posséder ou référencer un document électronique ou une ressource + spécifique accessible via le World Wide Web, généralement identifié + par un Uniform Resource Locator (URL). + ar: >- + امتلاك أو الإشارة إلى مستند إلكتروني محدد أو مورد يمكن الوصول إليه + عبر شبكة الويب العالمية، عادةً ما يتم تحديده بواسطة محدد موقع الموارد + الموحد (URL). + id: >- + Memiliki atau mereferensikan dokumen elektronik atau sumber daya + tertentu yang dapat diakses melalui World Wide Web, biasanya + diidentifikasi oleh Uniform Resource Locator (URL). + zh: >- + 拥有或引用可通过万维网访问的特定电子文档或资源,通常由统一资源定位符(URL)标识。 + es: >- + Poseer o hacer referencia a un documento electrónico o recurso + específico accesible a través de la World Wide Web, típicamente + identificado por un Localizador Uniforme de Recursos (URL). + structured_aliases: + - literal_form: webpagina + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Webseite + predicate: EXACT_SYNONYM + in_language: de + - literal_form: page web + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: صفحة ويب + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: halaman web + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 网页 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: página web + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + required: false + multivalued: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type + exact_mappings: [] + close_mappings: + - foaf:page + - schema:url + narrow_mappings: + - foaf:homepage # FOAF: Homepage (rdfs:subPropertyOf foaf:page, line 300) + - foaf:weblog # FOAF: Weblog (rdfs:subPropertyOf foaf:page, line 612) + - foaf:interest # FOAF: Interest page (rdfs:subPropertyOf foaf:page, line 336) + - foaf:workplaceHomepage # FOAF: Workplace homepage (rdfs:subPropertyOf foaf:page) + aliases: + - has_or_had_web_page + annotations: + replaces_slots: collection_web_address + migration_date: '2026-01-22' + custodian_types: '["*"]' + custodian_types_rationale: Web pages apply to all heritage custodian types. + specificity_score: 0.2 + specificity_rationale: Generic web page slot applicable across most contexts. + comments: + - Generic web page association slot. + - 'Temporal: Web pages may change over time.' + - 'RiC-O naming: hasOrHad indicates potentially historical.' + - Replaces collection_web_address per slot_fixes.yaml (2026-01-22). + - | + **USE CASES**: + - Collection browse pages (e.g., Rijksstudio) + - Search interfaces + - Catalog pages + - Finding aid pages + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **FOAF** | `foaf:page` | 467-472 | close | Page about this thing | + | **Schema.org** | `schema:url` | - | close | URL of item | + | **FOAF** | `foaf:homepage` | 291-300 | narrow | Homepage (subPropertyOf page) | + | **FOAF** | `foaf:weblog` | 604-612 | narrow | Weblog (subPropertyOf page) | + examples: + - value: + page_name: Digital Collections + has_or_had_url: + - has_or_had_url: https://www.rijksmuseum.nl/nl/rijksstudio + has_or_had_type: collection_browse + description: Rijksstudio collections browse page diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/has_width.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/has_width.yaml new file mode 100644 index 0000000000..e89cda6ba2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/has_width.yaml @@ -0,0 +1,97 @@ +# ============================================================================== +# LinkML Slot Definition: has_width +# ============================================================================== +# To possess a specific linear measurement representing the horizontal distance +# from one side of an entity to the other. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **Schema.org**| `schema:width` | schemaorg.owl | exact | Width of item | +# | **CIDOC-CRM** | `crm:P43_has_dimension`| CIDOC_CRM | broad | General dimension property | +# +# CREATED: 2026-01-28 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_width +name: has_width +title: Has Width +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: + - linkml:types +slots: + has_width: + slot_uri: schema:width + description: >- + To possess a specific linear measurement representing the horizontal + distance from one side of an entity to the other. + alt_descriptions: + nl: >- + Om een specifieke lineaire meting te bezitten die de horizontale + afstand van de ene kant van een entiteit naar de andere vertegenwoordigt. + de: >- + Ein spezifisches lineares Maß zu besitzen, das den horizontalen + Abstand von einer Seite einer Entität zur anderen darstellt. + fr: >- + Posséder une mesure linéaire spécifique représentant la distance + horizontale d'un côté d'une entité à l'autre. + ar: >- + امتلاك قياس خطي محدد يمثل المسافة الأفقية من جانب واحد من + الكيان إلى الآخر. + id: >- + Memiliki pengukuran linier tertentu yang mewakili jarak horizontal + dari satu sisi entitas ke sisi lainnya. + zh: >- + 拥有代表实体一侧到另一侧水平距离的特定线性测量值。 + es: >- + Poseer una medida lineal específica que representa la distancia + horizontal de un lado de una entidad al otro. + structured_aliases: + - literal_form: breedte + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Breite + predicate: EXACT_SYNONYM + in_language: de + - literal_form: largeur + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: عرض + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: lebar + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 宽度 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: ancho + predicate: EXACT_SYNONYM + in_language: es + range: float + exact_mappings: + - schema:width + broad_mappings: + - crm:P43_has_dimension + aliases: + - has_or_had_width + annotations: + rico_naming_convention: Follows RiC-O "hasOrHad" pattern for temporal predicates. + replaces_slots: width + migration_date: '2026-01-28' + custodian_types: '["*"]' + comments: + - MIGRATED from width per slot_fixes.yaml (Rule 53). diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_head.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/headed_by.yaml similarity index 78% rename from schemas/20251121/linkml/modules/slots/has_or_had_head.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/headed_by.yaml index a271038fd8..f4511dc8b1 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_head.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/headed_by.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_head -name: has_or_had_head_slot -title: Has or Had Head Slot +id: https://nde.nl/ontology/hc/slot/headed_by +name: headed_by +title: headed by version: 1.0.0 prefixes: linkml: https://w3id.org/linkml/ @@ -17,17 +17,25 @@ imports: - linkml:types default_prefix: hc slots: - has_or_had_head: - description: "Person who heads or headed this organizational unit.\n**W3C ORG Alignment**: - `org:headOf` links person TO organization (person \u2192 org) - This slot is the INVERSE: links organization TO person (org \u2192 person) - Semantically: \"This organization has (or had) this person as head\"\n**RiC-O Pattern**: Follows `hasOrHad*` temporal naming convention from Records in Contexts Ontology, indicating the relationship may be current or historical.\n**Usage**: - OrganizationBranch: Branch director or manager - Department: Department head - Team: Team lead\nCREATED: 2026-01-14 from branch_head migration per Rule 53." - slot_uri: org:hasMember + headed_by: + description: | + To be led, directed, or managed by a specific individual or entity acting as the primary authority or leader. + + + + \n**W3C ORG Alignment**: - `org:headOf` links person TO organization (person \u2192 org) - This slot is the INVERSE: links organization TO person (org \u2192 person) - Semantically: \"This organization has (or had) this person as head\"\n**RiC-O Pattern**: Follows `hasOrHad*` temporal naming convention from Records in Contexts Ontology, indicating the relationship may be current or historical.\n**Usage**: - OrganizationBranch: Branch director or manager - Department: Department head - Team: Team lead\nCREATED: 2026-01-14 from branch_head migration per Rule 53." + slot_uri: hc:headedBy range: string # uriorcurie # range: Person multivalued: false inlined: false - exact_mappings: + related_mappings: - schema:employee close_mappings: - org:headOf + aliases: + - has_or_had_head + - is_or_was_headed_by annotations: custodian_types: '["*"]' custodian_types_rationale: All heritage custodian types can have organizational heads diff --git a/schemas/20251121/linkml/modules/slots/archive/heritage_holding.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/heritage_holding.yaml similarity index 97% rename from schemas/20251121/linkml/modules/slots/archive/heritage_holding.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/heritage_holding.yaml index b0136ed06b..89b692eeda 100644 --- a/schemas/20251121/linkml/modules/slots/archive/heritage_holding.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/heritage_holding.yaml @@ -56,6 +56,8 @@ slots: range: string multivalued: true slot_uri: schema:owns + aliases: + - is_or_was_heritage_holding annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/archive/higher_classification.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/higher_classification.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/higher_classification.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/higher_classification.yaml index c48c38af57..5f127b079b 100644 --- a/schemas/20251121/linkml/modules/slots/archive/higher_classification.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/higher_classification.yaml @@ -25,6 +25,8 @@ slots: ' range: string slot_uri: dwc:higherClassification + aliases: + - is_or_was_higher_classification annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/archive/historic_building_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/historic_building_description.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/historic_building_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/historic_building_description.yaml index 44ccd71643..05323eaac2 100644 --- a/schemas/20251121/linkml/modules/slots/archive/historic_building_description.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/historic_building_description.yaml @@ -24,6 +24,8 @@ slots: Include: - Historical significance - Architectural features - Current use - Relationship to managing custodian' range: string slot_uri: dcterms:description + aliases: + - is_or_was_historic_building_description close_mappings: - schema:description annotations: diff --git a/schemas/20251121/linkml/modules/slots/archive/historic_building_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/historic_building_id.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/historic_building_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/historic_building_id.yaml index c7b20d41a7..25e0356597 100644 --- a/schemas/20251121/linkml/modules/slots/archive/historic_building_id.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/historic_building_id.yaml @@ -24,6 +24,8 @@ slots: ' range: string # uriorcurie slot_uri: dcterms:identifier + aliases: + - is_or_was_historic_building_id close_mappings: - schema:identifier annotations: diff --git a/schemas/20251121/linkml/modules/slots/archive/governance_authority.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/hold_authority.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/governance_authority.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/hold_authority.yaml index cdcdb6a870..23bac47073 100644 --- a/schemas/20251121/linkml/modules/slots/archive/governance_authority.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/hold_authority.yaml @@ -25,4 +25,6 @@ slots: ' range: string + aliases: + - is_or_was_governance_authority required: false diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/identified_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/identified_by.yaml new file mode 100644 index 0000000000..3db0484a41 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/identified_by.yaml @@ -0,0 +1,192 @@ +# ============================================================================== +# LinkML Slot Definition: identified_by +# ============================================================================== +# Be recognized or established as a particular entity based on specific +# distinguishing designators or symbols. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------------------|-----------------------|---------|------------------------------------| +# | **CIDOC-CRM** | `crm:P1_is_identified_by` | CIDOC_CRM:1172 | slot_uri| Primary identification property | +# | **Dublin Core**| `dcterms:identifier` | dcterms.rdf:1395-1416 | exact | Unambiguous reference in context | +# | **Schema.org**| `schema:identifier` | schemaorg.owl:21325 | exact | Any identifier for any Thing | +# | **CIDOC-CRM** | `crm:P48_has_preferred_identifier` | CIDOC_CRM:2353-2367 | narrow| Preferred identifier (subPropertyOf P1)| +# | **CIDOC-CRM** | `crm:P168_place_is_defined_by`| CIDOC_CRM:3460 | narrow | Place definition (subPropertyOf P1)| +# | **RiC-O** | `rico:hasOrHadIdentifier` | RiC-O_1-1:6493-6497 | close | Connects to Identifier entity | +# | **RiC-O** | `rico:hasOrHadName` | RiC-O_1-1:7143-7147 | close | Name/appellation (narrower) | +# | **SKOS** | `skos:notation` | skos.rdf:166-170 | related | Classification code | +# | **CIDOC-CRM** | `crm:P1i_identifies` | CIDOC_CRM:1198 | related | Inverse of P1 | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added narrow_mappings for P48, P168 (subPropertyOf P1) +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/identified_by +name: identified_by +title: identified by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# + skos: http://www.w3.org/2004/02/skos/core# +imports: +- linkml:types +default_prefix: hc +description: | + To be recognized or established as a particular entity based on specific + distinguishing designators or symbols. + + This slot captures identifiers in the general sense - strings, codes, URIs, + or other tokens that uniquely or semi-uniquely reference an entity within + some context or system. +slots: + identified_by: + slot_uri: crm:P1_is_identified_by + description: >- + To be recognized or established as a particular entity based on specific + distinguishing designators or symbols. + alt_descriptions: + nl: >- + Herkend of vastgesteld worden als een bepaalde entiteit op basis van + specifieke onderscheidende aanduidingen of symbolen. + de: >- + Als eine bestimmte Entität erkannt oder etabliert werden, basierend + auf spezifischen unterscheidenden Bezeichnungen oder Symbolen. + fr: >- + Être reconnu ou établi comme une entité particulière sur la base de + désignateurs ou symboles distinctifs spécifiques. + ar: >- + التعرف عليه أو إثباته ككيان معين بناءً على معرفات أو رموز مميزة محددة. + id: >- + Dikenali atau ditetapkan sebagai entitas tertentu berdasarkan penanda + atau simbol pembeda yang spesifik. + zh: >- + 根据特定的区分性标识符或符号被识别或确立为特定实体。 + es: >- + Ser reconocido o establecido como una entidad particular basándose en + designadores o símbolos distintivos específicos. + structured_aliases: + - literal_form: geïdentificeerd door + - is_or_was_identified_by + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: identifiziert durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: identifié par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: معرف بواسطة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diidentifikasi oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 由...标识 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: identificado por + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + multivalued: true + + # VERIFIED MAPPINGS (2026-02-XX) + # Source files: data/ontology/dcterms.rdf, data/ontology/CIDOC_CRM_v7.1.3.rdf, + # data/ontology/schemaorg.owl, data/ontology/RiC-O_1-1.rdf, + # data/ontology/skos.rdf + + exact_mappings: + # dcterms.rdf line 1395-1416: identifier + # "An unambiguous reference to the resource within a given context" + # Exact: same core semantics of identification + - dcterms:identifier # from dcterms.rdf - unambiguous reference in context + + # schemaorg.owl line 21325-21328: identifier + # "The identifier property represents any kind of identifier for any kind of Thing" + # Exact: general-purpose identifier property + - schema:identifier # from schemaorg.owl - any identifier for any Thing + + narrow_mappings: + # CIDOC_CRM_v7.1.3.rdf line 2353-2367: P48_has_preferred_identifier + # rdfs:subPropertyOf crm:P1_is_identified_by (line 2367) + # Narrow: specifically for preferred/primary identifier + - crm:P48_has_preferred_identifier # from CIDOC_CRM_v7.1.3.rdf - preferred identifier + + # CIDOC_CRM_v7.1.3.rdf line 3460: P168_place_is_defined_by + # rdfs:subPropertyOf crm:P1_is_identified_by + # Narrow: specifically for place definitions/coordinates + - crm:P168_place_is_defined_by # from CIDOC_CRM_v7.1.3.rdf - place definition + + close_mappings: + # RiC-O_1-1.rdf line 6493-6497: hasOrHadIdentifier + # Object property connecting to Identifier entity + # Close: same semantics but object property (links to Identifier, not literal) + - rico:hasOrHadIdentifier # from RiC-O_1-1.rdf - connects to Identifier entity + + # RiC-O_1-1.rdf line 7143-7147: hasOrHadName + # Object property for names/appellations + # Close: names are a type of identifier (narrower: human-readable names) + - rico:hasOrHadName # from RiC-O_1-1.rdf - name/appellation (narrower) + + related_mappings: + # skos.rdf line 166-170: notation + # "A notation, also known as classification code" + # Related but narrower: specifically for concept scheme classification codes + - skos:notation # from skos.rdf - classification code (narrower context) + + # CIDOC_CRM_v7.1.3.rdf line 1198: P1i_identifies (inverse) + # Inverse direction: Appellation identifies Entity + - crm:P1i_identifies # from CIDOC_CRM_v7.1.3.rdf - inverse of P1 + + # RiC-O_1-1.rdf line 13768-13772: isOrWasIdentifierOf (inverse) + # Inverse direction: Identifier identifies Entity + - rico:isOrWasIdentifierOf # from RiC-O_1-1.rdf - inverse of hasOrHadIdentifier + + aliases: + - has_or_had_identifier + - has_identifier + - is_known_by + - is_or_was_identified_by + + annotations: + custodian_types: '["*"]' + + examples: + - value: "https://ror.org/02e2c7k09" + description: ROR identifier for Rijksmuseum + - value: "NL-AmRMA" + description: ISIL code for Rijksmuseum Amsterdam + - value: "Q190804" + description: Wikidata QID for Rijksmuseum + + comments: + - | + slot_uri changed from dcterms:identifier to crm:P1_is_identified_by + because P1 is more semantically general - it covers identification by + any appellation (names, identifiers, codes) whereas dcterms:identifier + is specifically for literal identifier strings. + - | + CIDOC-CRM P1 semantics: "describes the naming or identification of any + real-world item by a name or any other identifier. This property is + intended for identifiers in general use, which form part of the world + the model intends to describe." + - | + dcterms:identifier and schema:identifier are kept as exact_mappings + because they have the same core semantics, just with different + range expectations (literals vs. structured values). + - | + narrow_mappings include crm:P48_has_preferred_identifier (moved from + close_mappings) and crm:P168_place_is_defined_by - both are formally + declared as rdfs:subPropertyOf crm:P1_is_identified_by in CIDOC-CRM. + - | + Verified predicates from: + - data/ontology/CIDOC_CRM_v7.1.3.rdf (crm:P1 line 1172, crm:P48 line 2353, crm:P168 line 3460) + - data/ontology/dcterms.rdf (dcterms:identifier line 1395) + - data/ontology/schemaorg.owl (schema:identifier line 21325) + - data/ontology/RiC-O_1-1.rdf (rico:hasOrHadIdentifier line 6493, rico:hasOrHadName line 7143) + - data/ontology/skos.rdf (skos:notation line 166) diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/identified_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/identified_through.yaml new file mode 100644 index 0000000000..4f3f6eb8aa --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/identified_through.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/identified_through +name: identified_through +title: identified_through +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + identified_through: + name: identified_through + title: identified_through + description: Method or process through which the entity was identified. + slot_uri: hc:identifiedThrough + range: string # uriorcurie + aliases: + - is_or_was_identified_through + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/implemented_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/implemented_by.yaml new file mode 100644 index 0000000000..253eff31c7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/implemented_by.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/implemented_by +name: implemented_by +title: implemented_by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + implemented_by: + name: implemented_by + title: implemented_by + description: Agent or system that implemented the entity. + slot_uri: hc:implementedBy + range: string # uriorcurie + aliases: + - is_or_was_implemented_by + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/in_area.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/in_area.yaml new file mode 100644 index 0000000000..24a8c82e32 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/in_area.yaml @@ -0,0 +1,130 @@ +# ============================================================================== +# LinkML Slot Definition: in_area +# ============================================================================== +# Generic slot for associating an entity with a geographic region or spatial domain. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|-----------------------|---------------------|----------|------------------------------------------| +# | **Schema.org** | `schema:size` | schemaorg.owl:35498 | exact | "A standardized size of a product or | +# | | | | | creative work." Range: QuantitativeValue | +# | **GeoSPARQL** | `geosparql:hasArea` | geo.ttl:402-414 | close | "The area of a Spatial Object." | +# | | | | | Domain: SpatialObject | +# | **QUDT** | `qudt:quantityValue` | qudt-all:2229-2233 | close | "quantity value" - links to QuantityValue| +# | | | | | Range: qudt:QuantityValue | +# +# RULE 53 COMPLIANT: +# This is the authoritative slot for area/spatial relationships, replacing +# domain-specific slots like area_hectares, building_floor_area_sqm, etc. +# +# USAGE: +# Range should be narrowed to Area class in slot_usage. The Area class captures +# the numeric value, unit of measurement, and measurement date. +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-02 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/in_area +name: in_area +title: in area + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + geosparql: http://www.opengis.net/ont/geosparql# + qudt: http://qudt.org/schema/qudt/ + +imports: + - linkml:types + +default_prefix: hc + +slots: + in_area: + slot_uri: hc:inArea + description: >- + To be situated or enclosed within the boundaries of a defined geographic region or spatial domain. + alt_descriptions: + nl: >- + Gesitueerd of ingesloten zijn binnen de grenzen van een gedefinieerd geografisch gebied of ruimtelijk domein. + de: >- + Sich innerhalb der Grenzen einer definierten geografischen Region oder räumlichen Domäne befinden oder eingeschlossen sein. + fr: >- + Être situé ou enclos dans les limites d'une région géographique définie ou d'un domaine spatial. + ar: >- + أن يكون واقعاً أو محصوراً ضمن حدود منطقة جغرافية محددة أو نطاق مكاني. + id: >- + Terletak atau terkurung dalam batas-batas wilayah geografis atau domain spasial yang ditentukan. + zh: >- + 位于或封闭在定义的地理区域或空间域的边界内。 + es: >- + Estar situado o encerrado dentro de los límites de una región geográfica definida o dominio espacial. + range: string + multivalued: true + inlined: false + inlined_as_list: false + close_mappings: + - qudt:quantityValue + - geosparql:hasArea + - schema:size + aliases: + - has_or_had_area + - is_or_was_in_area + structured_aliases: + - literal_form: in gebied + - is_or_was_in_area + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: im Bereich + predicate: EXACT_SYNONYM + in_language: de + - literal_form: dans la zone + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: في المنطقة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: di area + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 在区域内 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: en el área + predicate: EXACT_SYNONYM + in_language: es + examples: + - value: "hc:area/Amsterdam" + description: Located in Amsterdam area + - value: "hc:region/NorthHolland" + description: Located in North Holland region + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Area measurements applicable to all heritage custodian types - museums, archives, libraries, outdoor sites, historic buildings, etc. + custodian_types_primary: M + specificity_score: 0.4 + specificity_rationale: Broadly useful slot - area measurements relevant for site planning, collection storage, visitor capacity, and facility management. + comments: + - | + **RULE 53 COMPLIANT**: This is the authoritative slot for area measurements, + replacing domain-specific slots like area_hectares, building_floor_area_sqm, + and has_area_in_hectare. + - | + **REPLACES**: + - area_hectares (OutdoorSite) + - building_floor_area_sqm (HistoricBuilding) + - has_area_in_hectare (bespoke, incorrectly created) + - | + **USAGE**: Range should be narrowed to Area class in slot_usage. + The Area class captures the numeric value, unit of measurement, and measurement date. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **Schema.org** | `schema:size` | 35498-35522 | exact | Standardized size with QuantitativeValue | + | **GeoSPARQL** | `geosparql:hasArea` | 402-414 | close | Area of a Spatial Object | + | **QUDT** | `qudt:quantityValue` | 2229-2233 | close | Links to quantity value | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/in_script.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/in_script.yaml new file mode 100644 index 0000000000..e0a3a6efef --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/in_script.yaml @@ -0,0 +1,144 @@ +# ============================================================================== +# LinkML Slot Definition: in_script +# ============================================================================== +# Writing system or character set used for composing or rendering content. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|-----------------------|---------------------|----------|------------------------------------------| +# | **Schema.org** | `schema:inLanguage` | schemaorg.owl:21591 | close | "The language of the content or | +# | | | | | performance." Note: language ≠ script | +# | | | | | but closely related. | +# | **CIDOC-CRM** | `crm:P72_has_language`| CIDOC_CRM:2839-2852 | related | "Associates E33 Linguistic Object with | +# | | | | | E56 Language." Language context. | +# | **RiC-O** | `rico:hasOrHadLanguage`| RiC-O:6716-6761 | related | "Connects Agent, Record or Record Part | +# | | | | | to a Language." Language ≠ script, but | +# | | | | | "written language" concept overlaps. | +# +# DISTINCTION FROM LANGUAGE: +# Script refers to the writing system (Latin, Cyrillic, Arabic, Han, etc.) +# while language refers to the linguistic content (English, Russian, Arabic, etc.). +# A single language may use multiple scripts (e.g., Serbian: Cyrillic and Latin) +# and a single script may be used for multiple languages (e.g., Latin: English, +# French, German, etc.). +# +# ISO 15924 provides standard codes for scripts (Latn, Cyrl, Arab, Hans, etc.) +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-02 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/in_script +name: in_script +title: in script + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# + +imports: + - linkml:types + +default_prefix: hc + +slots: + in_script: + slot_uri: hc:in_script + description: >- + To be composed or rendered using a specific system of handwriting or distinct character set. + alt_descriptions: + nl: >- + Samengesteld of weergegeven zijn met behulp van een specifiek schriftsysteem of onderscheidende tekenset. + de: >- + Mit einem bestimmten Schriftsystem oder einem eigenen Zeichensatz verfasst oder dargestellt werden. + fr: >- + Être composé ou rendu en utilisant un système d'écriture spécifique ou un jeu de caractères distinct. + ar: >- + أن يكون مؤلفاً أو معروضاً باستخدام نظام كتابة محدد أو مجموعة أحرف مميزة. + id: >- + Disusun atau dirender menggunakan sistem tulisan tertentu atau rangkaian karakter yang berbeda. + zh: >- + 使用特定的书写系统或独特的字符集编写或呈现。 + es: >- + Estar compuesto o representado utilizando un sistema de escritura específico o conjunto de caracteres distinto. + range: string + multivalued: true + inlined: false + close_mappings: + - schema:inLanguage + related_mappings: + - crm:P72_has_language + - rico:hasOrHadLanguage + aliases: + - has_or_had_writing_system + - is_or_was_in_script + structured_aliases: + - literal_form: in schrift + - is_or_was_in_script + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: in Schrift + predicate: EXACT_SYNONYM + in_language: de + - literal_form: en écriture + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: بالخط + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dalam aksara + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 以文字 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: en escritura + predicate: EXACT_SYNONYM + in_language: es + examples: + - value: | + script_code: Latn + script_name: Latin + description: Latin writing system (ISO 15924) + - value: | + script_code: Cyrl + script_name: Cyrillic + description: Cyrillic writing system + - value: | + script_code: Arab + script_name: Arabic + description: Arabic writing system + - value: | + script_code: Hans + script_name: Simplified Han + description: Simplified Chinese characters + annotations: + custodian_types: '["*"]' + comments: + - | + **USAGE**: + Used for: + - Script type (Latin, Cyrillic, Arabic, etc.) + - Writing direction (LTR, RTL) + - Historical scripts (Cuneiform, Hieroglyphics) + - | + **ISO 15924**: Standard codes for scripts + - Latn (Latin), Cyrl (Cyrillic), Arab (Arabic) + - Hans (Simplified Han), Hant (Traditional Han) + - Grek (Greek), Hebr (Hebrew), Deva (Devanagari) + - | + **DISTINCTION FROM LANGUAGE**: + Script ≠ Language. Serbian uses both Cyrillic and Latin scripts. + Latin script is used for English, French, German, etc. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **Schema.org** | `schema:inLanguage` | 21591-21618 | close | Language of content (related but distinct) | + | **CIDOC-CRM** | `crm:P72_has_language` | 2839-2852 | related | Associates with E56 Language | + | **RiC-O** | `rico:hasOrHadLanguage` | 6716-6761 | related | Connects Agent/Record to Language | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/include.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/include.yaml new file mode 100644 index 0000000000..a52c252a5a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/include.yaml @@ -0,0 +1,146 @@ +# ============================================================================== +# LinkML Slot Definition: include +# ============================================================================== +# Models inclusion/containment relationships where a parent entity encompasses +# child entities as constituent parts, members, or features. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-------------------------------|-------------------------|---------|--------------------------------------------------| +# | **RiC-O** | `rico:includesOrIncluded` | RiC-O:9522-9570 | exact | "Connects a Record Set to a Record or Record Set | +# | | | | | it aggregates." | +# | **DCTerms** | `dcterms:hasPart` | dcterms.rdf:1347-1370 | close | "A related resource that is included either | +# | | | | | physically or logically." | +# | **Schema.org**| `schema:hasPart` | schemaorg.owl:20403-425 | close | "Indicates an item that is part of this item." | +# | **W3C ORG** | `org:hasUnit` | org.rdf:510-528 | close | "Indicates a unit which is part of this | +# | | | | | Organization." | +# | **CIDOC-CRM** | `crm:P46_is_composed_of` | CIDOC_CRM:2324-2340 | close | Physical Thing composition. | +# | **RiC-O** | `rico:hasOrHadPart` | RiC-O:7272-7300 | broad | Parent property; includes as constituent part. | +# | **RiC-O** | `rico:directlyIncludes` | RiC-O:2420-2438 | narrow | Direct (non-transitive) inclusion. | +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/include +name: include +title: Include +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + rico: https://www.ica.org/standards/RiC/ontology# + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +description: | + To incorporate or comprise a distinct entity as a constituent part, member, or feature within a larger whole or system. +slots: + include: + slot_uri: rico:includesOrIncluded + description: | + To incorporate or comprise a distinct entity as a constituent part, member, or feature within a larger whole or system. + alt_descriptions: + nl: Een afzonderlijke entiteit opnemen of omvatten als een samenstellend deel, lid of kenmerk binnen een groter geheel of systeem. + de: Eine eigenständige Entität als konstituierenden Teil, Mitglied oder Merkmal in ein größeres Ganzes oder System einbeziehen oder umfassen. + fr: Incorporer ou comprendre une entité distincte en tant que partie constituante, membre ou caractéristique au sein d'un ensemble ou système plus large. + ar: دمج أو احتواء كيان مميز كجزء مكون أو عضو أو ميزة ضمن كل أو نظام أكبر. + id: Memasukkan atau mencakup entitas yang berbeda sebagai bagian konstituen, anggota, atau fitur dalam keseluruhan atau sistem yang lebih besar. + zh: 将一个独立实体作为组成部分、成员或特征纳入或包含在更大的整体或系统中。 + es: Incorporar o comprender una entidad distinta como parte constituyente, miembro o característica dentro de un todo o sistema más grande. + structured_aliases: + - literal_form: bevat + - is_or_was_include + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: enthält + predicate: EXACT_SYNONYM + in_language: de + - literal_form: inclut + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يتضمن + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: mencakup + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 包含 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: incluye + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + exact_mappings: + - rico:includesOrIncluded # RiC-O:9522-9570 - "Connects a Record Set to a Record or Record Set it aggregates" + close_mappings: + - dcterms:hasPart # dcterms.rdf:1347-1370 - "A related resource that is included either physically or logically" + - schema:hasPart # schemaorg.owl:20403-20425 - "Indicates an item that is part of this item" + - org:hasUnit # org.rdf:510-528 - "Indicates a unit which is part of this Organization" + - crm:P46_is_composed_of # CIDOC_CRM:2324-2340 - physical thing composition + broad_mappings: + - rico:hasOrHadPart # RiC-O:7272-7300 - parent property; rico:includesOrIncluded is subPropertyOf this + - dcterms:relation # dcterms:hasPart is subPropertyOf dcterms:relation + narrow_mappings: + - rico:directlyIncludes # RiC-O:2420-2438 - direct (non-transitive) inclusion + - rico:includesTransitive # RiC-O:9613+ - transitive inclusion + related_mappings: + - org:subOrganizationOf # inverse direction - child to parent + - rico:isOrWasIncludedIn # inverse of rico:includesOrIncluded + aliases: + - includes_or_included + - is_or_was_include + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Hierarchical relationships applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.30 + specificity_rationale: Broadly applicable - hierarchical inclusion is a fundamental pattern used across many organizational and collection modeling contexts. + examples: + - value: https://nde.nl/ontology/hc/function/finance + description: Administrative function includes Finance as a child function. + - value: https://nde.nl/ontology/hc/collection/paintings + description: Museum collection includes a paintings sub-collection. + - value: https://nde.nl/ontology/hc/department/conservation + description: Organization includes a Conservation department. + comments: + - | + **USAGE**: + ```yaml + parent_function: + includes_or_included: + - child_function_1 + - child_function_2 + ``` + - | + **DESIGN RATIONALE**: + This is a GENERIC hierarchical slot for modeling containment/inclusion relationships. + Use when a parent entity encompasses child entities. + - | + **COMMON USE CASES**: + - FunctionType hierarchy (e.g., "Administrative" includes "Finance", "HR") + - Organizational unit hierarchy + - Collection hierarchy + - Record Set aggregation + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | RiC-O | rico:includesOrIncluded | 9522-9570 | exact | RecordSet aggregation | + | DCTerms | dcterms:hasPart | 1347-1370 | close | Part-whole relationship | + | Schema.org | schema:hasPart | 20403-425 | close | Part of item | + | W3C ORG | org:hasUnit | 510-528 | close | Org unit hierarchy | + | CIDOC-CRM | crm:P46_is_composed_of | 2324-2340 | close | Physical composition | + | RiC-O | rico:hasOrHadPart | 7272-7300 | broad | Parent property | + | RiC-O | rico:directlyIncludes | 2420-2438 | narrow | Direct inclusion | + - Updated 2026-02-03 with verified ontology mappings and translations. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/included_in.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/included_in.yaml new file mode 100644 index 0000000000..e3d7c22584 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/included_in.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/included_in +name: included_in +title: included_in +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + included_in: + name: included_in + title: included_in + description: Entity in which this entity is included. + slot_uri: hc:includedIn + range: string # uriorcurie + multivalued: true + aliases: + - is_or_was_included_in + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:isPartOf diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/indexed.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/indexed.yaml new file mode 100644 index 0000000000..c8a75e3215 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/indexed.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/indexed +name: indexed +title: indexed +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + indexed: + name: indexed + title: indexed + description: Whether the entity has been indexed. + slot_uri: hc:indexed + range: boolean + aliases: + - is_or_was_indexed + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/instance_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/instance_of.yaml new file mode 100644 index 0000000000..bb37f2c08b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/instance_of.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/instance_of +name: instance_of +title: instance_of +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + instance_of: + name: instance_of + title: instance_of + description: Type or class of which this is an instance. + slot_uri: hc:instanceOf + range: string # uriorcurie + aliases: + - is_or_was_instance_of + annotations: + custodian_types: '["*"]' + exact_mappings: + - rdf:type diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/instantiated_as.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/instantiated_as.yaml new file mode 100644 index 0000000000..c8709d9af2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/instantiated_as.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/instantiated_as +name: instantiated_as +title: instantiated_as +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + instantiated_as: + name: instantiated_as + title: instantiated_as + description: Type or form as which the entity was instantiated. + slot_uri: hc:instantiatedAs + range: string # uriorcurie + aliases: + - is_or_was_instantiated_as + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/instantiated_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/instantiated_by.yaml new file mode 100644 index 0000000000..ebb36661c0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/instantiated_by.yaml @@ -0,0 +1,23 @@ +id: https://nde.nl/ontology/hc/slot/instantiated_by +name: instantiated_by +title: instantiated_by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + instantiated_by: + name: instantiated_by + title: instantiated_by + description: Agent or process that instantiated this entity. + slot_uri: hc:instantiatedBy + range: string # uriorcurie + aliases: + - is_or_was_instantiated_by + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/involved_in.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/involved_in.yaml new file mode 100644 index 0000000000..484597ea37 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/involved_in.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/involved_in +name: involved_in +title: involved_in +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + involved_in: + name: involved_in + title: involved_in + description: Activity or event in which the entity was involved. + slot_uri: hc:involvedIn + range: string # uriorcurie + multivalued: true + aliases: + - is_or_was_involved_in + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/is_location_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/is_location_of.yaml new file mode 100644 index 0000000000..d3262c1800 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/is_location_of.yaml @@ -0,0 +1,114 @@ +# ============================================================================== +# LinkML Slot Definition: is_location_of +# ============================================================================== +# To serve as the specific geographic position or spatial setting where an +# entity is situated or an event takes place. Inverse of is_location_at. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|-----------------------|-------------------|----------|------------------------------------------| +# | **W3C Org** | `org:siteOf` | org.rdf:682-697 | slot_uri | Site indicates Organization has presence.| +# | | | | exact | Inverse of org:hasSite. | +# | **Schema.org** | `schema:location` | schemaorg.owl | close | Location of event/org (broader meaning). | +# +# HIERARCHY NOTE: +# org:siteOf has no direct rdfs:subPropertyOf relationships in W3C Org ontology. +# org:hasPrimarySite and org:hasRegisteredSite are subPropertyOf org:hasSite, +# but their inverses are not explicitly defined. +# +# CREATED: 2026-01-15 +# UPDATED: 2026-02-03 - Added header documentation, moved migration note to comments +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/is_location_of +name: is_location_of +title: Is Location Of +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_location_of: + description: >- + To serve as the specific geographic position or spatial setting where + an entity is situated or an event takes place. + alt_descriptions: + nl: >- + Om te dienen als de specifieke geografische positie of ruimtelijke + omgeving waar een entiteit zich bevindt of een gebeurtenis plaatsvindt. + de: >- + Als spezifische geografische Position oder räumliche Umgebung zu + dienen, an der sich eine Entität befindet oder ein Ereignis stattfindet. + fr: >- + Servir de position géographique spécifique ou de cadre spatial où une + entité est située ou un événement a lieu. + ar: >- + أن يكون الموقع الجغرافي المحدد أو الإعداد المكاني حيث يقع كيان ما + أو يحدث حدث ما. + id: >- + Berfungsi sebagai posisi geografis tertentu atau pengaturan spasial + di mana entitas berada atau peristiwa berlangsung. + zh: >- + 作为实体所在或事件发生的特定地理位置或空间环境。 + es: >- + Servir como la posición geográfica específica o el entorno espacial + donde se encuentra una entidad o tiene lugar un evento. + structured_aliases: + - literal_form: locatie van + - is_or_was_is_location_of + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Standort von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: emplacement de + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: موقع من + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: lokasi dari + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 位置所属 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: ubicación de + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + slot_uri: org:siteOf + annotations: + custodian_types: '["*"]' + exact_mappings: + - org:siteOf + close_mappings: + - schema:location + aliases: + - is_or_was_location_of + - is_or_was_is_location_of + comments: + - MIGRATED from hosts_branch per slot_fixes.yaml (Rule 53). + - Inverse of is_location_at. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **W3C Org** | `org:siteOf` | 682-697 | slot_uri, exact | Site indicates Organization presence | + | **Schema.org** | `schema:location` | - | close | Location of event/org (broader) | + + Note: org:siteOf has no rdfs:subPropertyOf relationships in W3C Org ontology. + org:hasPrimarySite and org:hasRegisteredSite are narrower than org:hasSite, + but their inverse properties are not explicitly defined in the ontology. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/last_updated_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/last_updated_at.yaml new file mode 100644 index 0000000000..80422e200e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/last_updated_at.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/last_updated_at +name: last_updated_at +title: last_updated_at +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + last_updated_at: + name: last_updated_at + title: last_updated_at + description: Date and time when the entity was last updated. + slot_uri: hc:lastUpdatedAt + range: datetime + aliases: + - is_or_was_last_updated_at + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:modified diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/listed_in.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/listed_in.yaml new file mode 100644 index 0000000000..aeb2b94ef3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/listed_in.yaml @@ -0,0 +1,205 @@ +# ============================================================================== +# LinkML Slot Definition: listed_in +# ============================================================================== +# Indicates that an entity is recorded or enumerated within a specific catalog, +# register, or structured collection. Used for regulatory listings, heritage +# registers, and classification schemes. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|---------------------------------|-----------------------|---------|------------------------------------| +# | **RiC-O** | `rico:isOrWasIncludedIn` | RiC-O_1-1:13803-13850 | exact | Record included in RecordSet | +# | **Schema.org**| `schema:includedInDataCatalog` | schemaorg.owl:21975-21997| close | Dataset included in DataCatalog | +# | **DCAT** | `dcat:inCatalog` | dcat3.ttl:1178-1186 | close | Resource in catalog | +# | **DCAT** | `dcat:inSeries` | dcat3.ttl:1188-1198 | close | Dataset in series | +# | **SKOS** | `skos:inScheme` | skos.rdf:75-86 | close | Concept in concept scheme | +# | **Dublin Core**| `dcterms:isPartOf` | dcterms.rdf:1464-1486 | broad | Physically/logically included | +# | **Schema.org**| `schema:isPartOf` | schemaorg.owl:22926-22948| broad | Item part of CreativeWork | +# +# NOTE: rico:isOrWasIncludedIn is the primary mapping as it captures temporal +# semantics (current or historical listing) which aligns with regulatory listings +# that may change over time (e.g., CITES appendices, heritage registers). +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/listed_in +name: listed_in +title: listed in + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: https://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + dcat: http://www.w3.org/ns/dcat# + owl: http://www.w3.org/2002/07/owl# + xsd: http://www.w3.org/2001/XMLSchema# + +default_prefix: hc + +description: | + To be recorded or enumerated as an item within a specific catalog, register, + or structured collection. + +imports: + - linkml:types + +slots: + listed_in: + slot_uri: rico:isOrWasIncludedIn + description: | + To be recorded or enumerated as an item within a specific catalog, register, or structured collection. + alt_descriptions: + nl: >- + Geregistreerd of opgesomd zijn als een item binnen een specifieke + catalogus, register of gestructureerde verzameling. + de: >- + Als Eintrag in einem bestimmten Katalog, Register oder einer + strukturierten Sammlung erfasst oder aufgeführt sein. + fr: >- + Être enregistré ou énuméré comme un élément dans un catalogue, + registre ou collection structurée spécifique. + ar: >- + أن يكون مسجلاً أو مدرجاً كعنصر ضمن فهرس أو سجل أو مجموعة منظمة محددة. + id: >- + Tercatat atau terdaftar sebagai item dalam katalog, register, atau + koleksi terstruktur tertentu. + zh: >- + 作为特定目录、登记册或结构化收藏中的项目被记录或列举。 + es: >- + Estar registrado o enumerado como un elemento dentro de un catálogo, + registro o colección estructurada específica. + structured_aliases: + - literal_form: vermeld in + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: aufgeführt in + predicate: EXACT_SYNONYM + in_language: de + - literal_form: répertorié dans + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مدرج في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: terdaftar dalam + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 列于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: listado en + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + implements: + - owl:ObjectProperty + required: false + multivalued: true + inlined: false + exact_mappings: + # RiC-O isOrWasIncludedIn - Record/RecordSet included in RecordSet + # Lines 13803-13850 in RiC-O_1-1.rdf + # Exact: temporal semantics match (is or was listed) + # SubPropertyOf: isOrWasPartOf, isRecordResourceAssociatedWithRecordResource + - rico:isOrWasIncludedIn + close_mappings: + # Schema.org includedInDataCatalog - Dataset included in DataCatalog + # Lines 21975-21997 in schemaorg.owl + # Close: specific to datasets/catalogs, but same "included in" semantics + - schema:includedInDataCatalog + # DCAT inCatalog - Resource in catalog + # Lines 1178-1186 in dcat3.ttl + # Close: inverse of dcat:resource, specific to data catalogs + - dcat:inCatalog + # DCAT inSeries - Dataset in series + # Lines 1188-1198 in dcat3.ttl + # Close: subPropertyOf dcterms:isPartOf, specific to dataset series + - dcat:inSeries + # SKOS inScheme - Concept in concept scheme + # Lines 75-86 in skos.rdf + # Close: concept membership in scheme (narrower - concepts only) + - skos:inScheme + broad_mappings: + # Dublin Core isPartOf - Physically or logically included + # Lines 1464-1486 in dcterms.rdf + # Broad: general inclusion (listed_in is more specific to registers/catalogs) + - dcterms:isPartOf + # Schema.org isPartOf - Item part of CreativeWork + # Lines 22926-22948 in schemaorg.owl + # Broad: general part-whole relationship + - schema:isPartOf + aliases: + - is_or_was_listed_in + - included_in + - registered_in + - catalogued_in + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Listing/registration applicable to all heritage custodian types. + specificity_score: 0.50 + specificity_rationale: >- + Moderately specific - applies to entities that can be listed in + regulatory registers, heritage catalogs, or classification schemes. + examples: + - value: "hc:Register/CITES-Appendix-I" + description: Species specimen listed in CITES Appendix I + - value: "hc:Register/UNESCO-WorldHeritage" + description: Site listed in UNESCO World Heritage List + - value: "hc:Register/NL-Rijksmonumenten" + description: Building listed in Dutch National Monuments Register + - value: "hc:Register/IUCN-RedList-EN" + description: Species listed as Endangered in IUCN Red List + - value: "hc:Register/NationalArchivesNL" + description: Document listed in National Archives of the Netherlands + comments: + - Updated 2026-02-03 with verified ontology mappings and translations + - | + **PURPOSE**: + Captures listing/registration relationships for heritage entities. + Indicates that an entity is recorded in a specific catalog, register, + or structured collection. Supports temporal semantics - entities may + be added to or removed from listings over time. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | RiC-O | rico:isOrWasIncludedIn | 13803-13850 | exact | Record in RecordSet | + | Schema.org | schema:includedInDataCatalog | 21975-21997 | close | Dataset in catalog | + | DCAT | dcat:inCatalog | 1178-1186 | close | Resource in catalog | + | DCAT | dcat:inSeries | 1188-1198 | close | Dataset in series | + | SKOS | skos:inScheme | 75-86 | close | Concept in scheme | + | Dublin Core | dcterms:isPartOf | 1464-1486 | broad | General inclusion | + | Schema.org | schema:isPartOf | 22926-22948 | broad | Part-whole | + - | + **RiC-O NAMING** (Rule 39): + Uses "is_or_was_listed_in" alias following RiC-O temporal naming + pattern - indicates current or historical listing relationship. + Entities may be added to or removed from regulatory lists over time. + - | + **COMMON USE CASES**: + - CITES appendix listings for endangered species specimens + - IUCN Red List categorizations for species + - National heritage register listings for buildings/sites + - UNESCO World Heritage Site designations + - Protected species schedules + - Museum collection catalogs + - Archive finding aids + - | + **STRUCTURED LISTING PATTERN**: + For detailed listings with dates and authorities, use with a + Listing class that captures: + - listing_type: Type of listing (e.g., CITESAppendix, IUCNRedList) + - listing_value: Specific category (e.g., APPENDIX_I, ENDANGERED) + - listing_date: Date of listing + - listing_authority: Authority that made the listing + - | + **RANGE NOTES**: + Range is `uriorcurie` (Rule 55) to allow references to Register/Catalog + URIs or internal Listing class instances. Classes may narrow via + slot_usage to specific Register enums or Listing classes. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/located_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/located_at.yaml new file mode 100644 index 0000000000..c9c5265036 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/located_at.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/located_at +name: located_at +title: located_at +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + located_at: + name: located_at + title: located_at + description: Location where the entity is located. + slot_uri: hc:locatedAt + range: string # uriorcurie + aliases: + - is_or_was_located_at + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:location diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/located_in.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/located_in.yaml new file mode 100644 index 0000000000..b33fb4681c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/located_in.yaml @@ -0,0 +1,63 @@ +# ============================================================================== +# LinkML Slot Definition: located_in +# ============================================================================== +# Links an entity to a place where it is located. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|-------------------|---------|----------------------------------| +# | **Schema.org**| `schema:location` | exact | Schema.org location | +# | **LOCN** | `locn:location` | exact | ISA Core Location property | +# | **GeoNames** | `gn:locatedIn` | close | GeoNames location | +# | **RiC-O** | `rico:isOrWasLocatedAt`| close| RiC-O location | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/located_in +name: located_in +title: Located In +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + gn: http://www.geonames.org/ontology# + rico: https://www.ica.org/standards/RiC/ontology# + locn: http://www.w3.org/ns/locn# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Links an entity to a place where it is located. +imports: +- linkml:types +slots: + located_in: + slot_uri: schema:location + description: | + Links an entity to a place where it is located. + + **DISTINCTION FROM located_within**: + - `located_in`: Entity is AT a place (city/settlement level) + - `located_within`: Entity is CONTAINED IN a larger place (hierarchical) + range: string + multivalued: true + required: false + exact_mappings: + - schema:location + - locn:location + close_mappings: + - gn:locatedIn + - rico:isOrWasLocatedAt + aliases: + - is_or_was_located_in + annotations: + custodian_types: '["*"]' + specificity_score: 0.2 + examples: + - value: Amsterdam + description: Entity located in Amsterdam. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/located_within.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/located_within.yaml new file mode 100644 index 0000000000..8e8cc5ff73 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/located_within.yaml @@ -0,0 +1,58 @@ +id: https://nde.nl/ontology/hc/slot/located_within +name: located_within +title: located within +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + located_within: + slot_uri: hc:locatedWithin + description: 'Links an entity to a place that contains or contained it. + + **TEMPORAL SEMANTICS** (RiC-O style): The "is_or_was" naming indicates that + containment can change: - Institutions may relocate to different cities - Administrative + boundaries may be redrawn - Historical locations preserved for provenance + + **USE CASES**: - Institution within a city/region - Collection within a building/room + - Archive within an administrative area + + **REPLACES**: - `within_place` (primary location containment) - `within_auxiliary_place` + (secondary location containment) + + + MIGRATED 2026-02-03 from is_or_was_located_within for conciseness.' + range: string + multivalued: true + aliases: + - is_or_was_located_within + exact_mappings: + - schema:containedInPlace + close_mappings: + - gn:parentFeature + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Location containment applicable to all custodian + types. + custodian_types_primary: '*' + specificity_score: 0.2 + specificity_rationale: Low specificity - universal geographic relationship. + examples: + - value: "is_or_was_located_within:\n - place_name: \"Amsterdam\"\n place_type:\ + \ \"settlement\"\n geonames_id: 2759794\n" + description: Institution located within Amsterdam. + - value: "is_or_was_located_within:\n - place_name: \"Noord-Holland\"\n place_type:\ + \ \"region\"\n iso_code: \"NL-NH\"\n - place_name: \"Netherlands\"\n \ + \ place_type: \"country\"\n iso_code: \"NL\"\n" + description: Multiple containment levels for an institution. + comments: + - Created from slot_fixes.yaml migration (2026-01-14) + - Replaces within_place and within_auxiliary_place slots + - Supports multiple containment relationships (multivalued) diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/managed_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/managed_by.yaml new file mode 100644 index 0000000000..29e72755e3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/managed_by.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/managed_by +name: managed_by +title: managed_by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + managed_by: + name: managed_by + title: managed_by + description: Entity or agent that manages this entity. + slot_uri: hc:managedBy + range: string # uriorcurie + aliases: + - is_or_was_managed_by + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/member_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/member_of.yaml new file mode 100644 index 0000000000..58fce14419 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/member_of.yaml @@ -0,0 +1,58 @@ +id: https://nde.nl/ontology/hc/slot/member_of +name: member_of +title: member of +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + member_of: + slot_uri: hc:memberOf + description: "Encompassing bodies (networks, consortia, umbrella organizations)\ + \ that \nthis custodian is or was a member of.\n\n**RiC-O Temporal Pattern**:\ + \ Uses `isOrWas*` pattern to explicitly\nacknowledge that membership relationships\ + \ can change over time.\nA custodian may have been a member of a network in\ + \ the past but\nno longer participates.\n\n**Distinction from is_or_was_encompassed_by**:\n\ + - `is_or_was_member_of`: MEMBERSHIP relationship (voluntary, network participation)\n\ + - `is_or_was_encompassed_by`: GOVERNANCE relationship (hierarchical, umbrella\ + \ oversight)\n\nBoth may apply: A custodian can be:\n1. Under governance of\ + \ Ministry (is_or_was_encompassed_by)\n2. Member of NDE network (is_or_was_member_of)\n\ + \n\nMIGRATED 2026-02-03 from is_or_was_member_of for conciseness." + range: string + multivalued: true + aliases: + - is_or_was_member_of + exact_mappings: + - org:memberOf + close_mappings: + - rico:isOrWasMemberOf + related_mappings: + - foaf:member + - schema:memberOf + annotations: + inverse_slot: has_or_had_member + deprecates: is_member_of + rico_pattern: isOrWasMemberOf + custodian_types: '["*"]' + examples: + - value: "Custodian:\n hc_id: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\ + \n preferred_label: \"Rijksmuseum\"\n \n # Governance hierarchy\n is_or_was_encompassed_by:\n\ + \ - organization_name: \"Ministry of OCW\"\n \n # Network membership\ + \ (voluntary)\n is_or_was_member_of:\n - organization_name: \"Netwerk\ + \ Digitaal Erfgoed\"\n organization_type: \"NETWORK\"\n" + description: Rijksmuseum as both governed entity and network member + comments: + - 'RiC-O pattern: isOrWas* for temporal membership relationships' + - Inverse of has_or_had_member (org:hasMember) + - Complements is_or_was_encompassed_by (governance) with membership (voluntary) + - Creates owl:inverseOf axiom in RDF output + - 'Inverse: `has_or_had_member` (org:hasMember) | Pattern: If Custodian memberOf + Network, then Network hasMember Custodian' + - 'Deprecates: is_member_of (non-temporal naming)' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/approximate.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/approximate.yaml new file mode 100644 index 0000000000..6b3b462b1d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/approximate.yaml @@ -0,0 +1,36 @@ +# ============================================================================== +# LinkML Slot Definition: approximate +# ============================================================================== +# Whether something is approximate. +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/approximate +name: approximate +title: Approximate +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Whether something is approximate. +imports: +- linkml:types +slots: + approximate: + slot_uri: hc:approximate + description: | + Whether something is approximate. + range: boolean + multivalued: false + aliases: + - is_or_was_approximate + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive_path.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/archive_path.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/archive_path.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/archive_path.yaml diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/basionym_authority.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/basionym_authority.yaml new file mode 100644 index 0000000000..b17bb3180c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/basionym_authority.yaml @@ -0,0 +1,14 @@ +id: https://nde.nl/ontology/hc/slot/basionym_authority +name: basionym_authority +imports: + - linkml:types +slots: + basionym_authority: + slot_uri: hc:basionymAuthority + range: string # uriorcurie + description: 'Authority of the original name (basionym) if this is a recombination. + The parenthetical authority in "(Gray, 1821) Smith, 1900". + ' + inlined: false # Fixed invalid inline for primitive type + annotations: + custodian_types: "['*']" diff --git a/schemas/20251121/linkml/modules/slots/connection_heritage_relevant.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/connection_heritage_relevant.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/connection_heritage_relevant.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/connection_heritage_relevant.yaml diff --git a/schemas/20251121/linkml/modules/slots/connection_heritage_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/connection_heritage_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/connection_heritage_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/connection_heritage_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/connection_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/connection_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/connection_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/connection_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/connection_linkedin_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/connection_linkedin_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/connection_linkedin_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/connection_linkedin_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/connection_location.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/connection_location.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/connection_location.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/connection_location.yaml diff --git a/schemas/20251121/linkml/modules/slots/connection_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/connection_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/connection_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/connection_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/connection_organization.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/connection_organization.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/connection_organization.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/connection_organization.yaml diff --git a/schemas/20251121/linkml/modules/slots/connections_by_heritage_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/connections_by_heritage_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/connections_by_heritage_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/connections_by_heritage_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/connections_extracted.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/connections_extracted.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/connections_extracted.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/connections_extracted.yaml diff --git a/schemas/20251121/linkml/modules/slots/connections_text.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/connections_text.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/connections_text.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/connections_text.yaml diff --git a/schemas/20251121/linkml/modules/slots/connectivity_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/connectivity_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/connectivity_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/connectivity_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/conservation_breeding.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/conservation_breeding.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/conservation_breeding.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/conservation_breeding.yaml diff --git a/schemas/20251121/linkml/modules/slots/conservation_history.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/conservation_history.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/conservation_history.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/conservation_history.yaml diff --git a/schemas/20251121/linkml/modules/slots/conservation_lab.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/conservation_lab.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/conservation_lab.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/conservation_lab.yaml diff --git a/schemas/20251121/linkml/modules/slots/conservation_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/conservation_note.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/conservation_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/conservation_note.yaml diff --git a/schemas/20251121/linkml/modules/slots/conservation_specialization.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/conservation_specialization.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/conservation_specialization.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/conservation_specialization.yaml diff --git a/schemas/20251121/linkml/modules/slots/conservation_status.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/conservation_status.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/conservation_status.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/conservation_status.yaml diff --git a/schemas/20251121/linkml/modules/slots/conservator.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/conservator.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/conservator.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/conservator.yaml diff --git a/schemas/20251121/linkml/modules/slots/conservator_affiliation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/conservator_affiliation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/conservator_affiliation.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/conservator_affiliation.yaml diff --git a/schemas/20251121/linkml/modules/slots/constituent_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/constituent_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/constituent_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/constituent_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/construction_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/construction_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/construction_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/construction_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/construction_date_precision.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/construction_date_precision.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/construction_date_precision.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/construction_date_precision.yaml diff --git a/schemas/20251121/linkml/modules/slots/consumes_or_consumed.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/consumes_or_consumed.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/consumes_or_consumed.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/consumes_or_consumed.yaml diff --git a/schemas/20251121/linkml/modules/slots/contact.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/contact.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/contact.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/contact.yaml diff --git a/schemas/20251121/linkml/modules/slots/contact_point.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/contact_point.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/contact_point.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/contact_point.yaml diff --git a/schemas/20251121/linkml/modules/slots/contains_storage.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/contains_storage.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/contains_storage.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/contains_storage.yaml diff --git a/schemas/20251121/linkml/modules/slots/content.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/content.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/content.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/content.yaml diff --git a/schemas/20251121/linkml/modules/slots/content_block.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/content_block.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/content_block.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/content_block.yaml diff --git a/schemas/20251121/linkml/modules/slots/content_category.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/content_category.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/content_category.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/content_category.yaml diff --git a/schemas/20251121/linkml/modules/slots/content_changed.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/content_changed.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/content_changed.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/content_changed.yaml diff --git a/schemas/20251121/linkml/modules/slots/content_hash.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/content_hash.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/content_hash.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/content_hash.yaml diff --git a/schemas/20251121/linkml/modules/slots/content_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/content_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/content_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/content_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/content_origin.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/content_origin.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/content_origin.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/content_origin.yaml diff --git a/schemas/20251121/linkml/modules/slots/content_title.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/content_title.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/content_title.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/content_title.yaml diff --git a/schemas/20251121/linkml/modules/slots/content_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/content_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/content_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/content_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/content_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/content_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/content_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/content_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/contents_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/contents_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/contents_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/contents_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/contributes_or_contributed.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/contributes_or_contributed.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/contributes_or_contributed.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/contributes_or_contributed.yaml diff --git a/schemas/20251121/linkml/modules/slots/contributes_to.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/contributes_to.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/contributes_to.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/contributes_to.yaml diff --git a/schemas/20251121/linkml/modules/slots/contribution_start_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/contribution_start_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/contribution_start_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/contribution_start_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/contributor.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/contributor.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/contributor.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/contributor.yaml diff --git a/schemas/20251121/linkml/modules/slots/contributor_code.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/contributor_code.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/contributor_code.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/contributor_code.yaml diff --git a/schemas/20251121/linkml/modules/slots/conversion_source_population.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/conversion_source_population.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/conversion_source_population.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/conversion_source_population.yaml diff --git a/schemas/20251121/linkml/modules/slots/conversion_target_action.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/conversion_target_action.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/conversion_target_action.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/conversion_target_action.yaml diff --git a/schemas/20251121/linkml/modules/slots/conversion_type_label.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/conversion_type_label.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/conversion_type_label.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/conversion_type_label.yaml diff --git a/schemas/20251121/linkml/modules/slots/coordinate_reference_system.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/coordinate_reference_system.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/coordinate_reference_system.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/coordinate_reference_system.yaml diff --git a/schemas/20251121/linkml/modules/slots/coordinates.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/coordinates.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/coordinates.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/coordinates.yaml diff --git a/schemas/20251121/linkml/modules/slots/copy_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/copy_note.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/copy_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/copy_note.yaml diff --git a/schemas/20251121/linkml/modules/slots/copy_number.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/copy_number.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/copy_number.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/copy_number.yaml diff --git a/schemas/20251121/linkml/modules/slots/corporate_integration.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/corporate_integration.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/corporate_integration.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/corporate_integration.yaml diff --git a/schemas/20251121/linkml/modules/slots/cost.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/cost.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/cost.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/cost.yaml diff --git a/schemas/20251121/linkml/modules/slots/cost_currency.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/cost_currency.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/cost_currency.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/cost_currency.yaml diff --git a/schemas/20251121/linkml/modules/slots/cost_usd.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/cost_usd.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/cost_usd.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/cost_usd.yaml diff --git a/schemas/20251121/linkml/modules/slots/country.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/country.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/country.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/country.yaml diff --git a/schemas/20251121/linkml/modules/slots/country_code.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/country_code.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/country_code.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/country_code.yaml diff --git a/schemas/20251121/linkml/modules/slots/country_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/country_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/country_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/country_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/courier_detail.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/courier_detail.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/courier_detail.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/courier_detail.yaml diff --git a/schemas/20251121/linkml/modules/slots/courier_required.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/courier_required.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/courier_required.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/courier_required.yaml diff --git a/schemas/20251121/linkml/modules/slots/court_types_covered.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/court_types_covered.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/court_types_covered.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/court_types_covered.yaml diff --git a/schemas/20251121/linkml/modules/slots/cover_image_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/cover_image_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/cover_image_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/cover_image_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/cover_material.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/cover_material.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/cover_material.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/cover_material.yaml diff --git a/schemas/20251121/linkml/modules/slots/cover_or_covered_subregion.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/cover_or_covered_subregion.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/cover_or_covered_subregion.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/cover_or_covered_subregion.yaml diff --git a/schemas/20251121/linkml/modules/slots/coverage_area.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/coverage_area.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/coverage_area.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/coverage_area.yaml diff --git a/schemas/20251121/linkml/modules/slots/covers_country.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/covers_country.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/covers_country.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/covers_country.yaml diff --git a/schemas/20251121/linkml/modules/slots/covers_full_video.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/covers_full_video.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/covers_full_video.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/covers_full_video.yaml diff --git a/schemas/20251121/linkml/modules/slots/crawler_version.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/crawler_version.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/crawler_version.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/crawler_version.yaml diff --git a/schemas/20251121/linkml/modules/slots/created.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/created.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/created.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/created.yaml diff --git a/schemas/20251121/linkml/modules/slots/created_by_project.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/created_by_project.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/created_by_project.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/created_by_project.yaml diff --git a/schemas/20251121/linkml/modules/slots/created_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/created_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/created_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/created_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/creating_agency.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/creating_agency.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/creating_agency.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/creating_agency.yaml diff --git a/schemas/20251121/linkml/modules/slots/creating_function.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/creating_function.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/creating_function.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/creating_function.yaml diff --git a/schemas/20251121/linkml/modules/slots/creating_organization.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/creating_organization.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/creating_organization.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/creating_organization.yaml diff --git a/schemas/20251121/linkml/modules/slots/creation_place.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/creation_place.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/creation_place.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/creation_place.yaml diff --git a/schemas/20251121/linkml/modules/slots/creation_timespan.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/creation_timespan.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/creation_timespan.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/creation_timespan.yaml diff --git a/schemas/20251121/linkml/modules/slots/creator.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/creator.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/creator.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/creator.yaml diff --git a/schemas/20251121/linkml/modules/slots/creator_role.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/creator_role.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/creator_role.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/creator_role.yaml diff --git a/schemas/20251121/linkml/modules/slots/credentials_required.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/credentials_required.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/credentials_required.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/credentials_required.yaml diff --git a/schemas/20251121/linkml/modules/slots/css_selector.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/css_selector.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/css_selector.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/css_selector.yaml diff --git a/schemas/20251121/linkml/modules/slots/cuisine_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/cuisine_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/cuisine_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/cuisine_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/cultural_context.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/cultural_context.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/cultural_context.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/cultural_context.yaml diff --git a/schemas/20251121/linkml/modules/slots/cultural_focus_area.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/cultural_focus_area.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/cultural_focus_area.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/cultural_focus_area.yaml diff --git a/schemas/20251121/linkml/modules/slots/cultural_protocol_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/cultural_protocol_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/cultural_protocol_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/cultural_protocol_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/curated_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/curated_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/curated_by.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/curated_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/curated_holding.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/curated_holding.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/curated_holding.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/curated_holding.yaml diff --git a/schemas/20251121/linkml/modules/slots/currency.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/currency.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/currency.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/currency.yaml diff --git a/schemas/20251121/linkml/modules/slots/currency_code.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/currency_code.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/currency_code.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/currency_code.yaml diff --git a/schemas/20251121/linkml/modules/slots/currency_symbol.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/currency_symbol.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/currency_symbol.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/currency_symbol.yaml diff --git a/schemas/20251121/linkml/modules/slots/current_exhibition.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/current_exhibition.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/current_exhibition.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/current_exhibition.yaml diff --git a/schemas/20251121/linkml/modules/slots/current_item_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/current_item_count.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/current_item_count.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/current_item_count.yaml diff --git a/schemas/20251121/linkml/modules/slots/current_keeper.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/current_keeper.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/current_keeper.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/current_keeper.yaml diff --git a/schemas/20251121/linkml/modules/slots/current_location.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/current_location.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/current_location.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/current_location.yaml diff --git a/schemas/20251121/linkml/modules/slots/current_use.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/current_use.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/current_use.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/current_use.yaml diff --git a/schemas/20251121/linkml/modules/slots/current_utilization_percent.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/current_utilization_percent.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/current_utilization_percent.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/current_utilization_percent.yaml diff --git a/schemas/20251121/linkml/modules/slots/custodial_history.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/custodial_history.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/custodial_history.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/custodial_history.yaml diff --git a/schemas/20251121/linkml/modules/slots/custodian.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/custodian.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/custodian.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/custodian.yaml diff --git a/schemas/20251121/linkml/modules/slots/custodian_only.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/custodian_only.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/custodian_only.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/custodian_only.yaml diff --git a/schemas/20251121/linkml/modules/slots/custodian_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/custodian_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/custodian_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/custodian_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/custodian_type_broader.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/custodian_type_broader.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/custodian_type_broader.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/custodian_type_broader.yaml diff --git a/schemas/20251121/linkml/modules/slots/custodian_type_narrower.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/custodian_type_narrower.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/custodian_type_narrower.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/custodian_type_narrower.yaml diff --git a/schemas/20251121/linkml/modules/slots/custodian_type_related.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/custodian_type_related.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/custodian_type_related.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/custodian_type_related.yaml diff --git a/schemas/20251121/linkml/modules/slots/custody_history.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/custody_history.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/custody_history.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/custody_history.yaml diff --git a/schemas/20251121/linkml/modules/slots/custody_received_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/custody_received_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/custody_received_by.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/custody_received_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/data_repository.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/data_repository.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/data_repository.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/data_repository.yaml diff --git a/schemas/20251121/linkml/modules/slots/date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/date.yaml diff --git a/schemas/20251121/linkml/modules/slots/description_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/description_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/description_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/description_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/draws_or_drew_opinion.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/draws_or_drew_opinion.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/draws_or_drew_opinion.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/draws_or_drew_opinion.yaml diff --git a/schemas/20251121/linkml/modules/slots/dutch_context.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/dutch_context.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/dutch_context.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/dutch_context.yaml diff --git a/schemas/20251121/linkml/modules/slots/encompasses_or_encompassed.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/encompasses_or_encompassed.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/encompasses_or_encompassed.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/encompasses_or_encompassed.yaml diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/end_seconds.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/end_seconds.yaml new file mode 100644 index 0000000000..b35d7ebdae --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/end_seconds.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/end_seconds +name: end_seconds +title: end seconds +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + ma: http://www.w3.org/ns/ma-ont# +default_prefix: hc +imports: + - linkml:types +slots: + end_seconds: + description: >- + The end time in seconds (float). + Generic slot for media/temporal segments. + MIGRATED from chapter_end_seconds (Rule 53). + range: float + slot_uri: ma:duration + exact_mappings: + - ma:duration + multivalued: false + aliases: + - is_or_was_end_seconds + - chapter_end_seconds + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/end_time.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/end_time.yaml new file mode 100644 index 0000000000..68358325f2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/end_time.yaml @@ -0,0 +1,10 @@ +id: https://nde.nl/ontology/hc/slot/end_time +name: end_time +description: End time of a temporal interval (ISO 8601). +imports: + - linkml:types +slots: + end_time: + description: End time of a temporal interval (ISO 8601). + range: string + slot_uri: schema:endTime diff --git a/schemas/20251121/linkml/modules/slots/estimates_or_estimated.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/estimates_or_estimated.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/estimates_or_estimated.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/estimates_or_estimated.yaml diff --git a/schemas/20251121/linkml/modules/slots/example_location.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/example_location.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/example_location.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/example_location.yaml diff --git a/schemas/20251121/linkml/modules/slots/example_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/example_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/example_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/example_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/example_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/example_note.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/example_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/example_note.yaml diff --git a/schemas/20251121/linkml/modules/slots/example_wikidata_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/example_wikidata_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/example_wikidata_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/example_wikidata_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/expires_on_expired_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/expires_on_expired_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/expires_on_expired_at.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/expires_on_expired_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/exposes_or_exposed.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/exposes_or_exposed.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/exposes_or_exposed.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/exposes_or_exposed.yaml diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/field_number.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/field_number.yaml new file mode 100644 index 0000000000..11ceb56291 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/field_number.yaml @@ -0,0 +1,12 @@ +id: https://nde.nl/ontology/hc/slot/field_number +name: field_number +imports: + - linkml:types +slots: + field_number: + description: Collector's field number or identifier. Maps to dwc:fieldNumber. + range: string + slot_uri: dwc:fieldNumber + examples: + - value: ARW-1234 + - value: CD-HMS Beagle-567 diff --git a/schemas/20251121/linkml/modules/slots/filters_or_filtered.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/filters_or_filtered.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/filters_or_filtered.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/filters_or_filtered.yaml diff --git a/schemas/20251121/linkml/modules/slots/final_of_the_final.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/final_of_the_final.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/final_of_the_final.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/final_of_the_final.yaml diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/foo_bar.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/foo_bar.yaml new file mode 100644 index 0000000000..24ec81da22 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/foo_bar.yaml @@ -0,0 +1,19 @@ +id: https://nde.nl/ontology/hc/slot/foo_bar +name: foo_bar_slot +title: Foo Bar Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ +imports: +- linkml:types +default_prefix: hc +slots: + foo_bar: + range: string + multivalued: true + description: 'Foo bar description.' + slot_uri: hc:fooBar + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:fooBar diff --git a/schemas/20251121/linkml/modules/slots/generates_or_generated.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/generates_or_generated.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/generates_or_generated.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/generates_or_generated.yaml diff --git a/schemas/20251121/linkml/modules/slots/grants_or_granted.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/grants_or_granted.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/grants_or_granted.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/grants_or_granted.yaml diff --git a/schemas/20251121/linkml/modules/slots/grants_or_granted_access_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/grants_or_granted_access_through.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/grants_or_granted_access_through.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/grants_or_granted_access_through.yaml diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/habitat_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/habitat_description.yaml new file mode 100644 index 0000000000..2292642932 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/habitat_description.yaml @@ -0,0 +1,12 @@ +id: https://nde.nl/ontology/hc/slot/habitat_description +name: habitat_description +imports: + - linkml:types +slots: + habitat_description: + description: Description of habitat where specimen was collected. Maps to dwc:habitat. + range: string + slot_uri: dwc:habitat + examples: + - value: Tropical rainforest, understory + - value: Coral reef, depth 15m diff --git a/schemas/20251121/linkml/modules/slots/archive/has_accumulation_end_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_accumulation_end_date.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/has_accumulation_end_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/has_accumulation_end_date.yaml index bdece10dfa..4f0b042a48 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_accumulation_end_date.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_accumulation_end_date.yaml @@ -21,6 +21,8 @@ slots: ' range: date slot_uri: rico:hasEndDate + aliases: + - has_or_had_accumulation_end_date exact_mappings: - rico:hasEndDate close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/has_accumulation_start_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_accumulation_start_date.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/has_accumulation_start_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/has_accumulation_start_date.yaml index 372eebf8b6..5ada7b9413 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_accumulation_start_date.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_accumulation_start_date.yaml @@ -30,6 +30,8 @@ slots: ' range: date slot_uri: rico:hasBeginningDate + aliases: + - has_or_had_accumulation_start_date exact_mappings: - rico:hasBeginningDate close_mappings: diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_admin_staff_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_admin_staff_count.yaml new file mode 100644 index 0000000000..89d8bc84b7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_admin_staff_count.yaml @@ -0,0 +1,87 @@ +# ============================================================================== +# LinkML Slot Definition: has_admin_staff_count +# ============================================================================== +# Count of administrative staff members in an organization. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|---------------------------|-----------------------|---------|--------------------------------------| +# | **Schema.org**| `schema:numberOfEmployees`| schemaorg.owl:27563 | close | Total employees, not admin-specific | +# +# CREATED: 2026-02-03 +# UPDATED: 2026-02-03 - Fixed description, added multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/has_admin_staff_count +name: has_admin_staff_count +title: Has Admin Staff Count + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + has_admin_staff_count: + slot_uri: hc:hasAdminStaffCount + description: >- + The count of administrative staff members employed by or associated with an organization. + alt_descriptions: + nl: >- + Het aantal administratieve personeelsleden dat in dienst is van of verbonden is aan een organisatie. + de: >- + Die Anzahl der Verwaltungsmitarbeiter, die von einer Organisation beschäftigt oder mit ihr + verbunden sind. + fr: >- + Le nombre de membres du personnel administratif employés par une organisation ou + associés à celle-ci. + ar: >- + عدد موظفي الإدارة العاملين في المؤسسة أو المرتبطين بها. + id: >- + Jumlah staf administratif yang dipekerjakan oleh atau terkait dengan suatu organisasi. + zh: >- + 组织雇用或与之关联的行政人员数量。 + es: >- + El número de miembros del personal administrativo empleados por o asociados con una organización. + structured_aliases: + - literal_form: aantal administratief personeel + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Anzahl Verwaltungspersonal + predicate: EXACT_SYNONYM + in_language: de + - literal_form: nombre de personnel administratif + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: عدد الموظفين الإداريين + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: jumlah staf admin + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 行政人员数量 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: número de personal administrativo + predicate: EXACT_SYNONYM + in_language: es + range: integer + aliases: + - has_or_had_admin_staff_count + close_mappings: + - schema:numberOfEmployees # schemaorg.owl:27563-27585 - "The number of employees in an organization" (more general) + annotations: + custodian_types: '["*"]' + comments: + - MIGRATED 2026-02-03 from has_or_had_admin_staff_count for conciseness. + - | + **SCOPE**: Specifically counts administrative staff, as opposed to curatorial, + conservation, or other specialized staff categories. + - 'Mapping Note: schema:numberOfEmployees is close but covers all employees, not just administrative staff.' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_api_version.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_api_version.yaml new file mode 100644 index 0000000000..a452e4625f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_api_version.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/has_api_version +name: has_api_version_slot +title: Has Api Version Slot +prefixes: + dcat: http://www.w3.org/ns/dcat# + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + pav: http://purl.org/pav/ + schema: http://schema.org/ +imports: + - linkml:types +default_prefix: hc +slots: + has_api_version: + description: 'Version of the API used for retrieval. + + + Schema.org: softwareVersion for API version tracking. + + ' + range: string + slot_uri: schema:version + exact_mappings: + - schema:version + close_mappings: + - dcat:version + - pav:version + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_architectural_style.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_architectural_style.yaml new file mode 100644 index 0000000000..c414f88b56 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_architectural_style.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/has_architectural_style +name: has_architectural_style_slot +title: Has Architectural Style Slot +prefixes: + dbp: http://dbpedia.org/property/ + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ +imports: + - linkml:types +default_prefix: hc +slots: + has_architectural_style: + description: 'Architectural style of the building. + + + Schema.org: additionalType for style classification. + + ' + range: string + multivalued: true + slot_uri: dbp:architecturalStyle + exact_mappings: + - dbp:architecturalStyle + close_mappings: + - schema:genre + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_archive_path.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_archive_path.yaml new file mode 100644 index 0000000000..0985b02d48 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_archive_path.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_archive_path +name: has_archive_path_slot +title: Has Archive Path Slot +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ +imports: + - linkml:types +default_prefix: hc +slots: + has_archive_path: + description: 'Path to archived source material. Recommended for audit trail. + + ' + range: string + slot_uri: schema:contentUrl + close_mappings: + - schema:contentUrl + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/has_audio_quality_score.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_audio_quality_score.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_audio_quality_score.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/has_audio_quality_score.yaml diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_heritage_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_heritage_type.yaml new file mode 100644 index 0000000000..d673122b4e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_heritage_type.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/has_heritage_type +name: has_heritage_type_slot +title: Has Heritage Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_heritage_type: + range: string # uriorcurie + multivalued: true + description: 'Single-letter heritage sector codes applicable to this person. + Uses HeritageTypeEnum values (G,L,A,M,O,R,C,U,B,E,S,F,I,X,P,H,D,N,T). + Multiple types possible for cross-domain professionals. + ' + slot_uri: hc:heritageTypes + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:heritageTypes diff --git a/schemas/20251121/linkml/modules/slots/has_locker.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_locker.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_locker.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/has_locker.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_microfilm_reader.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_microfilm_reader.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_microfilm_reader.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/has_microfilm_reader.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_supervised_handling.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_supervised_handling.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_supervised_handling.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/has_supervised_handling.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_wifi.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/has_wifi.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_wifi.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/has_wifi.yaml diff --git a/schemas/20251121/linkml/modules/slots/historic_garden_designation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/historic_garden_designation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/historic_garden_designation.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/historic_garden_designation.yaml diff --git a/schemas/20251121/linkml/modules/slots/hold_or_held_record_set_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/hold_or_held_record_set_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/hold_or_held_record_set_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/hold_or_held_record_set_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/identifies_or_identified.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/identifies_or_identified.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/identifies_or_identified.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/identifies_or_identified.yaml diff --git a/schemas/20251121/linkml/modules/slots/identifies_or_identified_as.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/identifies_or_identified_as.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/identifies_or_identified_as.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/identifies_or_identified_as.yaml diff --git a/schemas/20251121/linkml/modules/slots/implements_or_implemented.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/implements_or_implemented.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/implements_or_implemented.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/implements_or_implemented.yaml diff --git a/schemas/20251121/linkml/modules/slots/imposes_or_imposed.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/imposes_or_imposed.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/imposes_or_imposed.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/imposes_or_imposed.yaml diff --git a/schemas/20251121/linkml/modules/slots/inbound_from.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/inbound_from.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/inbound_from.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/inbound_from.yaml diff --git a/schemas/20251121/linkml/modules/slots/includes_bounding_box.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_bounding_box.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/includes_bounding_box.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_bounding_box.yaml diff --git a/schemas/20251121/linkml/modules/slots/includes_handwriting.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_handwriting.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/includes_handwriting.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_handwriting.yaml diff --git a/schemas/20251121/linkml/modules/slots/includes_music_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_music_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/includes_music_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_music_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/includes_object_tracking.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_object_tracking.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/includes_object_tracking.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_object_tracking.yaml diff --git a/schemas/20251121/linkml/modules/slots/includes_segmentation_mask.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_segmentation_mask.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/includes_segmentation_mask.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_segmentation_mask.yaml diff --git a/schemas/20251121/linkml/modules/slots/includes_sound_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_sound_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/includes_sound_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_sound_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/includes_speaker.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_speaker.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/includes_speaker.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_speaker.yaml diff --git a/schemas/20251121/linkml/modules/slots/includes_speaker_identification.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_speaker_identification.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/includes_speaker_identification.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_speaker_identification.yaml diff --git a/schemas/20251121/linkml/modules/slots/includes_timestamp.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_timestamp.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/includes_timestamp.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/includes_timestamp.yaml diff --git a/schemas/20251121/linkml/modules/slots/indicates_or_indicated.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/indicates_or_indicated.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/indicates_or_indicated.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/indicates_or_indicated.yaml diff --git a/schemas/20251121/linkml/modules/slots/industry_benchmark_high.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/industry_benchmark_high.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/industry_benchmark_high.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/industry_benchmark_high.yaml diff --git a/schemas/20251121/linkml/modules/slots/industry_benchmark_low.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/industry_benchmark_low.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/industry_benchmark_low.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/industry_benchmark_low.yaml diff --git a/schemas/20251121/linkml/modules/slots/inference_provenance.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/inference_provenance.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/inference_provenance.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/inference_provenance.yaml diff --git a/schemas/20251121/linkml/modules/slots/info_session_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/info_session_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/info_session_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/info_session_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/initial.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/initial.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/initial.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/initial.yaml diff --git a/schemas/20251121/linkml/modules/slots/initial_of_the_initial.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/initial_of_the_initial.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/initial_of_the_initial.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/initial_of_the_initial.yaml diff --git a/schemas/20251121/linkml/modules/slots/innovation_budget.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/innovation_budget.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/innovation_budget.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/innovation_budget.yaml diff --git a/schemas/20251121/linkml/modules/slots/inscription.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/inscription.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/inscription.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/inscription.yaml diff --git a/schemas/20251121/linkml/modules/slots/installation_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/installation_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/installation_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/installation_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/installed_at_place.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/installed_at_place.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/installed_at_place.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/installed_at_place.yaml diff --git a/schemas/20251121/linkml/modules/slots/instance_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/instance_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/instance_of.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/instance_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/institution_function.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/institution_function.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/institution_function.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/institution_function.yaml diff --git a/schemas/20251121/linkml/modules/slots/institution_linkedin_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/institution_linkedin_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/institution_linkedin_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/institution_linkedin_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/institution_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/institution_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/institution_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/institution_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/insurance_currency.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/insurance_currency.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/insurance_currency.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/insurance_currency.yaml diff --git a/schemas/20251121/linkml/modules/slots/insurance_provider.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/insurance_provider.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/insurance_provider.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/insurance_provider.yaml diff --git a/schemas/20251121/linkml/modules/slots/insurance_value.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/insurance_value.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/insurance_value.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/insurance_value.yaml diff --git a/schemas/20251121/linkml/modules/slots/intangible_heritage_subtype.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/intangible_heritage_subtype.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/intangible_heritage_subtype.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/intangible_heritage_subtype.yaml diff --git a/schemas/20251121/linkml/modules/slots/integrates_or_integrated.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/integrates_or_integrated.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/integrates_or_integrated.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/integrates_or_integrated.yaml diff --git a/schemas/20251121/linkml/modules/slots/interlibrary_loan.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/interlibrary_loan.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/interlibrary_loan.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/interlibrary_loan.yaml diff --git a/schemas/20251121/linkml/modules/slots/internal_funding.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/internal_funding.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/internal_funding.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/internal_funding.yaml diff --git a/schemas/20251121/linkml/modules/slots/international.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/international.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/international.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/international.yaml diff --git a/schemas/20251121/linkml/modules/slots/inventory_number.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/inventory_number.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/inventory_number.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/inventory_number.yaml diff --git a/schemas/20251121/linkml/modules/slots/inventory_web_address.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/inventory_web_address.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/inventory_web_address.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/inventory_web_address.yaml diff --git a/schemas/20251121/linkml/modules/slots/involves_or_involved.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/involves_or_involved.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/involves_or_involved.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/involves_or_involved.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_accessible.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_accessible.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_accessible.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_accessible.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_accredited.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_accredited.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_accredited.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_accredited.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_active.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_active.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_active.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_active.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_annex_of_reading_room.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_annex_of_reading_room.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_annex_of_reading_room.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_annex_of_reading_room.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_approximate.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_approximate.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_approximate.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_approximate.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_auxiliary_of_place.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_auxiliary_of_place.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_auxiliary_of_place.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_auxiliary_of_place.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_auxiliary_of_platform.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_auxiliary_of_platform.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_auxiliary_of_platform.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_auxiliary_of_platform.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_background.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_background.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_background.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_background.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_branch_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_branch_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_branch_of.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_branch_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_branch_of_authority.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_branch_of_authority.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_branch_of_authority.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_branch_of_authority.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_closed_caption.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_closed_caption.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_closed_caption.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_closed_caption.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_current_version.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_current_version.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_current_version.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_current_version.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_deceased.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_deceased.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_deceased.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_deceased.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_embeddable.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_embeddable.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_embeddable.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_embeddable.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_estimate.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_estimate.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_estimate.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_estimate.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_heritage_relevant.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_heritage_relevant.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_heritage_relevant.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_heritage_relevant.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_historical_boundary.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_historical_boundary.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_historical_boundary.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_historical_boundary.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_inferred.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_inferred.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_inferred.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_inferred.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_leased.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_leased.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_leased.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_leased.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_legal_status_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_legal_status_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_legal_status_of.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_legal_status_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_licensed_content.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_licensed_content.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_licensed_content.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_licensed_content.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_made_for_kid.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_made_for_kid.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_made_for_kid.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_made_for_kid.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_mandatory.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_mandatory.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_mandatory.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_mandatory.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_official_assessment.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_official_assessment.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_official_assessment.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_official_assessment.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_official_content.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_official_content.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_official_content.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_official_content.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_open_to_public.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_open_to_public.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_open_to_public.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_open_to_public.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_overlapping.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_overlapping.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_overlapping.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_overlapping.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_part_of_complex.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_part_of_complex.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_part_of_complex.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_part_of_complex.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_permanent.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_permanent.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_permanent.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_permanent.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_permitted.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_permitted.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_permitted.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_permitted.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_primary_digital_presence.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_primary_digital_presence.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_primary_digital_presence.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_primary_digital_presence.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_public_facing.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_public_facing.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_public_facing.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_public_facing.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_rebuilding.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_rebuilding.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_rebuilding.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_rebuilding.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_recognized.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_recognized.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_recognized.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_recognized.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_recurring.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_recurring.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_recurring.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_recurring.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_sdh.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_sdh.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_sdh.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_sdh.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_sub_guide.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_sub_guide.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_sub_guide.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_sub_guide.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_temporary.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_temporary.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_temporary.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_temporary.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_type_specimen.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_type_specimen.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_type_specimen.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_type_specimen.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_verified.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/is_verified.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_verified.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/is_verified.yaml diff --git a/schemas/20251121/linkml/modules/slots/isbn.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/isbn.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/isbn.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/isbn.yaml diff --git a/schemas/20251121/linkml/modules/slots/isbn_13.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/isbn_13.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/isbn_13.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/isbn_13.yaml diff --git a/schemas/20251121/linkml/modules/slots/isil.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/isil.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/isil.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/isil.yaml diff --git a/schemas/20251121/linkml/modules/slots/iso_3166_2_code.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/iso_3166_2_code.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/iso_3166_2_code.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/iso_3166_2_code.yaml diff --git a/schemas/20251121/linkml/modules/slots/iso_standard.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/iso_standard.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/iso_standard.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/iso_standard.yaml diff --git a/schemas/20251121/linkml/modules/slots/iso_standard_reference.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/iso_standard_reference.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/iso_standard_reference.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/iso_standard_reference.yaml diff --git a/schemas/20251121/linkml/modules/slots/issn.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/issn.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/issn.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/issn.yaml diff --git a/schemas/20251121/linkml/modules/slots/issued_call.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/issued_call.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/issued_call.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/issued_call.yaml diff --git a/schemas/20251121/linkml/modules/slots/issuing_organisation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/issuing_organisation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/issuing_organisation.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/issuing_organisation.yaml diff --git a/schemas/20251121/linkml/modules/slots/item.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/item.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/item.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/item.yaml diff --git a/schemas/20251121/linkml/modules/slots/item_returned.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/item_returned.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/item_returned.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/item_returned.yaml diff --git a/schemas/20251121/linkml/modules/slots/iucn_status.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/iucn_status.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/iucn_status.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/iucn_status.yaml diff --git a/schemas/20251121/linkml/modules/slots/jurisdiction.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/jurisdiction.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/jurisdiction.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/jurisdiction.yaml diff --git a/schemas/20251121/linkml/modules/slots/jurisdiction_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/jurisdiction_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/jurisdiction_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/jurisdiction_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/jurisdiction_level.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/jurisdiction_level.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/jurisdiction_level.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/jurisdiction_level.yaml diff --git a/schemas/20251121/linkml/modules/slots/jurisdiction_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/jurisdiction_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/jurisdiction_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/jurisdiction_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/justification.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/justification.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/justification.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/justification.yaml diff --git a/schemas/20251121/linkml/modules/slots/key_distinction.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/key_distinction.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/key_distinction.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/key_distinction.yaml diff --git a/schemas/20251121/linkml/modules/slots/keyframe_extraction.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/keyframe_extraction.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/keyframe_extraction.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/keyframe_extraction.yaml diff --git a/schemas/20251121/linkml/modules/slots/keyword.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/keyword.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/keyword.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/keyword.yaml diff --git a/schemas/20251121/linkml/modules/slots/kien_registration_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/kien_registration_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/kien_registration_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/kien_registration_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/kien_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/kien_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/kien_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/kien_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/knowledge_transmission.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/knowledge_transmission.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/knowledge_transmission.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/knowledge_transmission.yaml diff --git a/schemas/20251121/linkml/modules/slots/label_de.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/label_de.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/label_de.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/label_de.yaml diff --git a/schemas/20251121/linkml/modules/slots/label_es.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/label_es.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/label_es.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/label_es.yaml diff --git a/schemas/20251121/linkml/modules/slots/label_fr.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/label_fr.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/label_fr.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/label_fr.yaml diff --git a/schemas/20251121/linkml/modules/slots/label_it.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/label_it.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/label_it.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/label_it.yaml diff --git a/schemas/20251121/linkml/modules/slots/label_nl.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/label_nl.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/label_nl.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/label_nl.yaml diff --git a/schemas/20251121/linkml/modules/slots/label_pt.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/label_pt.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/label_pt.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/label_pt.yaml diff --git a/schemas/20251121/linkml/modules/slots/lacks_or_lacked.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/lacks_or_lacked.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/lacks_or_lacked.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/lacks_or_lacked.yaml diff --git a/schemas/20251121/linkml/modules/slots/landmark_confidence.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/landmark_confidence.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/landmark_confidence.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/landmark_confidence.yaml diff --git a/schemas/20251121/linkml/modules/slots/landmark_geonames_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/landmark_geonames_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/landmark_geonames_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/landmark_geonames_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/landmark_label.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/landmark_label.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/landmark_label.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/landmark_label.yaml diff --git a/schemas/20251121/linkml/modules/slots/landmark_segment.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/landmark_segment.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/landmark_segment.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/landmark_segment.yaml diff --git a/schemas/20251121/linkml/modules/slots/landmark_wikidata_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/landmark_wikidata_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/landmark_wikidata_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/landmark_wikidata_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/language.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/language.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/language.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/language.yaml diff --git a/schemas/20251121/linkml/modules/slots/language_code.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/language_code.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/language_code.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/language_code.yaml diff --git a/schemas/20251121/linkml/modules/slots/language_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/language_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/language_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/language_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/language_raw.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/language_raw.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/language_raw.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/language_raw.yaml diff --git a/schemas/20251121/linkml/modules/slots/languages_detected.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/languages_detected.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/languages_detected.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/languages_detected.yaml diff --git a/schemas/20251121/linkml/modules/slots/languages_raw.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/languages_raw.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/languages_raw.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/languages_raw.yaml diff --git a/schemas/20251121/linkml/modules/slots/last_modified.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/last_modified.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/last_modified.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/last_modified.yaml diff --git a/schemas/20251121/linkml/modules/slots/latency_ms.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/latency_ms.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/latency_ms.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/latency_ms.yaml diff --git a/schemas/20251121/linkml/modules/slots/latitude.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/latitude.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/latitude.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/latitude.yaml diff --git a/schemas/20251121/linkml/modules/slots/launch_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/launch_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/launch_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/launch_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/lease_expiry.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/lease_expiry.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/lease_expiry.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/lease_expiry.yaml diff --git a/schemas/20251121/linkml/modules/slots/legacy_planning.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/legacy_planning.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/legacy_planning.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/legacy_planning.yaml diff --git a/schemas/20251121/linkml/modules/slots/legal_basis.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_basis.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/legal_basis.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_basis.yaml diff --git a/schemas/20251121/linkml/modules/slots/legal_entity_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_entity_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/legal_entity_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_entity_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/legal_form.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_form.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/legal_form.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_form.yaml diff --git a/schemas/20251121/linkml/modules/slots/legal_jurisdiction.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_jurisdiction.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/legal_jurisdiction.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_jurisdiction.yaml diff --git a/schemas/20251121/linkml/modules/slots/legal_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/legal_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/legal_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_note.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/legal_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_note.yaml diff --git a/schemas/20251121/linkml/modules/slots/legal_provenance_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_provenance_note.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/legal_provenance_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_provenance_note.yaml diff --git a/schemas/20251121/linkml/modules/slots/legal_responsibility_basis.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_responsibility_basis.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/legal_responsibility_basis.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_responsibility_basis.yaml diff --git a/schemas/20251121/linkml/modules/slots/legal_responsibility_end_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_responsibility_end_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/legal_responsibility_end_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_responsibility_end_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/legal_responsibility_start_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_responsibility_start_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/legal_responsibility_start_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_responsibility_start_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/legal_status.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_status.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/legal_status.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_status.yaml diff --git a/schemas/20251121/linkml/modules/slots/legal_system_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_system_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/legal_system_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/legal_system_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/lender.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/lender.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/lender.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/lender.yaml diff --git a/schemas/20251121/linkml/modules/slots/lender_contact.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/lender_contact.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/lender_contact.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/lender_contact.yaml diff --git a/schemas/20251121/linkml/modules/slots/lending_policy.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/lending_policy.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/lending_policy.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/lending_policy.yaml diff --git a/schemas/20251121/linkml/modules/slots/level_value.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/level_value.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/level_value.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/level_value.yaml diff --git a/schemas/20251121/linkml/modules/slots/library_catalog_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/library_catalog_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/library_catalog_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/library_catalog_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/library_search_score.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/library_search_score.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/library_search_score.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/library_search_score.yaml diff --git a/schemas/20251121/linkml/modules/slots/library_subtype.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/library_subtype.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/library_subtype.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/library_subtype.yaml diff --git a/schemas/20251121/linkml/modules/slots/license.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/license.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/license.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/license.yaml diff --git a/schemas/20251121/linkml/modules/slots/life_stage.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/life_stage.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/life_stage.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/life_stage.yaml diff --git a/schemas/20251121/linkml/modules/slots/lifecycle_phase_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/lifecycle_phase_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/lifecycle_phase_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/lifecycle_phase_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/light_max_lux.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/light_max_lux.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/light_max_lux.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/light_max_lux.yaml diff --git a/schemas/20251121/linkml/modules/slots/like_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/like_count.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/like_count.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/like_count.yaml diff --git a/schemas/20251121/linkml/modules/slots/likelihood_confidence.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/likelihood_confidence.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/likelihood_confidence.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/likelihood_confidence.yaml diff --git a/schemas/20251121/linkml/modules/slots/likelihood_factor.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/likelihood_factor.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/likelihood_factor.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/likelihood_factor.yaml diff --git a/schemas/20251121/linkml/modules/slots/likelihood_level.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/likelihood_level.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/likelihood_level.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/likelihood_level.yaml diff --git a/schemas/20251121/linkml/modules/slots/likelihood_score.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/likelihood_score.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/likelihood_score.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/likelihood_score.yaml diff --git a/schemas/20251121/linkml/modules/slots/likely_whatsapp_proficient.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/likely_whatsapp_proficient.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/likely_whatsapp_proficient.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/likely_whatsapp_proficient.yaml diff --git a/schemas/20251121/linkml/modules/slots/link_context.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/link_context.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/link_context.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/link_context.yaml diff --git a/schemas/20251121/linkml/modules/slots/link_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/link_count.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/link_count.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/link_count.yaml diff --git a/schemas/20251121/linkml/modules/slots/link_rationale.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/link_rationale.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/link_rationale.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/link_rationale.yaml diff --git a/schemas/20251121/linkml/modules/slots/link_text.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/link_text.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/link_text.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/link_text.yaml diff --git a/schemas/20251121/linkml/modules/slots/link_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/link_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/link_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/link_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/link_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/link_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/link_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/link_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/linked_class_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/linked_class_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/linked_class_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/linked_class_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/linked_data.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/linked_data.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/linked_data.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/linked_data.yaml diff --git a/schemas/20251121/linkml/modules/slots/linked_data_access.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/linked_data_access.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/linked_data_access.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/linked_data_access.yaml diff --git a/schemas/20251121/linkml/modules/slots/linked_data_export.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/linked_data_export.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/linked_data_export.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/linked_data_export.yaml diff --git a/schemas/20251121/linkml/modules/slots/linked_to_collection.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/linked_to_collection.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/linked_to_collection.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/linked_to_collection.yaml diff --git a/schemas/20251121/linkml/modules/slots/linkedin_profile_path.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/linkedin_profile_path.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/linkedin_profile_path.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/linkedin_profile_path.yaml diff --git a/schemas/20251121/linkml/modules/slots/linkedin_profile_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/linkedin_profile_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/linkedin_profile_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/linkedin_profile_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/linkedin_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/linkedin_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/linkedin_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/linkedin_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/list_item.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/list_item.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/list_item.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/list_item.yaml diff --git a/schemas/20251121/linkml/modules/slots/literal_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/literal_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/literal_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/literal_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/live_broadcast_content.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/live_broadcast_content.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/live_broadcast_content.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/live_broadcast_content.yaml diff --git a/schemas/20251121/linkml/modules/slots/living_collection.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/living_collection.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/living_collection.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/living_collection.yaml diff --git a/schemas/20251121/linkml/modules/slots/llm_response.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/llm_response.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/llm_response.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/llm_response.yaml diff --git a/schemas/20251121/linkml/modules/slots/loan_agreement_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_agreement_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/loan_agreement_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_agreement_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/loan_end_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_end_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/loan_end_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_end_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/loan_history.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_history.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/loan_history.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_history.yaml diff --git a/schemas/20251121/linkml/modules/slots/loan_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/loan_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/loan_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_note.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/loan_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_note.yaml diff --git a/schemas/20251121/linkml/modules/slots/loan_number.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_number.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/loan_number.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_number.yaml diff --git a/schemas/20251121/linkml/modules/slots/loan_purpose.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_purpose.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/loan_purpose.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_purpose.yaml diff --git a/schemas/20251121/linkml/modules/slots/loan_start_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_start_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/loan_start_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_start_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/loan_status.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_status.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/loan_status.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_status.yaml diff --git a/schemas/20251121/linkml/modules/slots/loan_timespan.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_timespan.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/loan_timespan.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_timespan.yaml diff --git a/schemas/20251121/linkml/modules/slots/loan_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/loan_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/loan_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/locality.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/locality.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/locality.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/locality.yaml diff --git a/schemas/20251121/linkml/modules/slots/located_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/located_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/located_at.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/located_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/location.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/location.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/location.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/location.yaml diff --git a/schemas/20251121/linkml/modules/slots/location_browse_score.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/location_browse_score.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/location_browse_score.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/location_browse_score.yaml diff --git a/schemas/20251121/linkml/modules/slots/location_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/location_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/location_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/location_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/logo_confidence.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/logo_confidence.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/logo_confidence.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/logo_confidence.yaml diff --git a/schemas/20251121/linkml/modules/slots/logo_label.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/logo_label.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/logo_label.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/logo_label.yaml diff --git a/schemas/20251121/linkml/modules/slots/logo_organization.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/logo_organization.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/logo_organization.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/logo_organization.yaml diff --git a/schemas/20251121/linkml/modules/slots/logo_segment.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/logo_segment.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/logo_segment.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/logo_segment.yaml diff --git a/schemas/20251121/linkml/modules/slots/long_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/long_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/long_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/long_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/longitude.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/longitude.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/longitude.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/longitude.yaml diff --git a/schemas/20251121/linkml/modules/slots/lot_number.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/lot_number.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/lot_number.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/lot_number.yaml diff --git a/schemas/20251121/linkml/modules/slots/maintained_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/maintained_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/maintained_by.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/maintained_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/maintenance_schedule.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/maintenance_schedule.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/maintenance_schedule.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/maintenance_schedule.yaml diff --git a/schemas/20251121/linkml/modules/slots/major_city.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/major_city.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/major_city.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/major_city.yaml diff --git a/schemas/20251121/linkml/modules/slots/major_research_project.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/major_research_project.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/major_research_project.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/major_research_project.yaml diff --git a/schemas/20251121/linkml/modules/slots/managed_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/managed_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/managed_by.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/managed_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/manages_collection.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/manages_collection.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/manages_collection.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/manages_collection.yaml diff --git a/schemas/20251121/linkml/modules/slots/manages_or_managed.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/manages_or_managed.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/manages_or_managed.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/manages_or_managed.yaml diff --git a/schemas/20251121/linkml/modules/slots/managing_unit.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/managing_unit.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/managing_unit.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/managing_unit.yaml diff --git a/schemas/20251121/linkml/modules/slots/mandate.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/mandate.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/mandate.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/mandate.yaml diff --git a/schemas/20251121/linkml/modules/slots/marginalia.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/marginalia.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/marginalia.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/marginalia.yaml diff --git a/schemas/20251121/linkml/modules/slots/martyred.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/martyred.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/martyred.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/martyred.yaml diff --git a/schemas/20251121/linkml/modules/slots/material_composition.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/material_composition.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/material_composition.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/material_composition.yaml diff --git a/schemas/20251121/linkml/modules/slots/material_specialization.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/material_specialization.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/material_specialization.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/material_specialization.yaml diff --git a/schemas/20251121/linkml/modules/slots/materials_used.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/materials_used.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/materials_used.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/materials_used.yaml diff --git a/schemas/20251121/linkml/modules/slots/max_annual_light_exposure.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/max_annual_light_exposure.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/max_annual_light_exposure.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/max_annual_light_exposure.yaml diff --git a/schemas/20251121/linkml/modules/slots/max_group_size.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/max_group_size.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/max_group_size.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/max_group_size.yaml diff --git a/schemas/20251121/linkml/modules/slots/max_light_lux.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/max_light_lux.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/max_light_lux.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/max_light_lux.yaml diff --git a/schemas/20251121/linkml/modules/slots/max_likelihood_score.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/max_likelihood_score.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/max_likelihood_score.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/max_likelihood_score.yaml diff --git a/schemas/20251121/linkml/modules/slots/maximal_of_maximal.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/maximal_of_maximal.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/maximal_of_maximal.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/maximal_of_maximal.yaml diff --git a/schemas/20251121/linkml/modules/slots/maximum_amount.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/maximum_amount.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/maximum_amount.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/maximum_amount.yaml diff --git a/schemas/20251121/linkml/modules/slots/measurement_data.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/measurement_data.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/measurement_data.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/measurement_data.yaml diff --git a/schemas/20251121/linkml/modules/slots/measurement_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/measurement_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/measurement_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/measurement_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/measurement_method.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/measurement_method.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/measurement_method.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/measurement_method.yaml diff --git a/schemas/20251121/linkml/modules/slots/measures_or_measured.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/measures_or_measured.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/measures_or_measured.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/measures_or_measured.yaml diff --git a/schemas/20251121/linkml/modules/slots/medium.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/medium.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/medium.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/medium.yaml diff --git a/schemas/20251121/linkml/modules/slots/member_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/member_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/member_of.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/member_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/member_organization_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/member_organization_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/member_organization_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/member_organization_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/member_organization_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/member_organization_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/member_organization_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/member_organization_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/membership_criteria.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/membership_criteria.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/membership_criteria.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/membership_criteria.yaml diff --git a/schemas/20251121/linkml/modules/slots/membership_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/membership_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/membership_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/membership_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/membership_required.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/membership_required.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/membership_required.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/membership_required.yaml diff --git a/schemas/20251121/linkml/modules/slots/membership_role.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/membership_role.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/membership_role.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/membership_role.yaml diff --git a/schemas/20251121/linkml/modules/slots/membership_size.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/membership_size.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/membership_size.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/membership_size.yaml diff --git a/schemas/20251121/linkml/modules/slots/membership_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/membership_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/membership_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/membership_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/metadata_standard.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/metadata_standard.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/metadata_standard.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/metadata_standard.yaml diff --git a/schemas/20251121/linkml/modules/slots/method.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/method.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/method.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/method.yaml diff --git a/schemas/20251121/linkml/modules/slots/methodology_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/methodology_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/methodology_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/methodology_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/metrics_observed_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/metrics_observed_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/metrics_observed_at.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/metrics_observed_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/metrics_observed_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/metrics_observed_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/metrics_observed_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/metrics_observed_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/michelin_star.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/michelin_star.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/michelin_star.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/michelin_star.yaml diff --git a/schemas/20251121/linkml/modules/slots/minimal_of_minimal.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/minimal_of_minimal.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/minimal_of_minimal.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/minimal_of_minimal.yaml diff --git a/schemas/20251121/linkml/modules/slots/minimum_amount.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/minimum_amount.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/minimum_amount.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/minimum_amount.yaml diff --git a/schemas/20251121/linkml/modules/slots/minimum_donation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/minimum_donation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/minimum_donation.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/minimum_donation.yaml diff --git a/schemas/20251121/linkml/modules/slots/minimum_partner.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/minimum_partner.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/minimum_partner.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/minimum_partner.yaml diff --git a/schemas/20251121/linkml/modules/slots/mission_statement.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/mission_statement.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/mission_statement.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/mission_statement.yaml diff --git a/schemas/20251121/linkml/modules/slots/mixed_governance_structure.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/mixed_governance_structure.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/mixed_governance_structure.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/mixed_governance_structure.yaml diff --git a/schemas/20251121/linkml/modules/slots/model.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/model.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/model.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/model.yaml diff --git a/schemas/20251121/linkml/modules/slots/model_architecture.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/model_architecture.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/model_architecture.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/model_architecture.yaml diff --git a/schemas/20251121/linkml/modules/slots/model_provider.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/model_provider.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/model_provider.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/model_provider.yaml diff --git a/schemas/20251121/linkml/modules/slots/model_task.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/model_task.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/model_task.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/model_task.yaml diff --git a/schemas/20251121/linkml/modules/slots/model_version.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/model_version.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/model_version.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/model_version.yaml diff --git a/schemas/20251121/linkml/modules/slots/modern_place_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/modern_place_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/modern_place_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/modern_place_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/modified.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/modified.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/modified.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/modified.yaml diff --git a/schemas/20251121/linkml/modules/slots/monitoring_platform.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/monitoring_platform.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/monitoring_platform.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/monitoring_platform.yaml diff --git a/schemas/20251121/linkml/modules/slots/monitoring_platform_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/monitoring_platform_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/monitoring_platform_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/monitoring_platform_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/monument_number.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/monument_number.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/monument_number.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/monument_number.yaml diff --git a/schemas/20251121/linkml/modules/slots/motivation_type_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/motivation_type_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/motivation_type_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/motivation_type_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/motivation_type_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/motivation_type_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/motivation_type_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/motivation_type_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/motivation_type_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/motivation_type_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/motivation_type_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/motivation_type_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/multilingual_label.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/multilingual_label.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/multilingual_label.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/multilingual_label.yaml diff --git a/schemas/20251121/linkml/modules/slots/museum_search_score.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/museum_search_score.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/museum_search_score.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/museum_search_score.yaml diff --git a/schemas/20251121/linkml/modules/slots/museum_subtype.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/museum_subtype.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/museum_subtype.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/museum_subtype.yaml diff --git a/schemas/20251121/linkml/modules/slots/museum_type_classification.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/museum_type_classification.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/museum_type_classification.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/museum_type_classification.yaml diff --git a/schemas/20251121/linkml/modules/slots/music_confidence.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/music_confidence.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/music_confidence.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/music_confidence.yaml diff --git a/schemas/20251121/linkml/modules/slots/music_detected.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/music_detected.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/music_detected.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/music_detected.yaml diff --git a/schemas/20251121/linkml/modules/slots/music_end_seconds.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/music_end_seconds.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/music_end_seconds.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/music_end_seconds.yaml diff --git a/schemas/20251121/linkml/modules/slots/music_genre.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/music_genre.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/music_genre.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/music_genre.yaml diff --git a/schemas/20251121/linkml/modules/slots/music_genres_detected.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/music_genres_detected.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/music_genres_detected.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/music_genres_detected.yaml diff --git a/schemas/20251121/linkml/modules/slots/music_segment_confidence.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/music_segment_confidence.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/music_segment_confidence.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/music_segment_confidence.yaml diff --git a/schemas/20251121/linkml/modules/slots/music_start_seconds.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/music_start_seconds.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/music_start_seconds.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/music_start_seconds.yaml diff --git a/schemas/20251121/linkml/modules/slots/music_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/music_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/music_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/music_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/mutual_connections_text.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/mutual_connections_text.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/mutual_connections_text.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/mutual_connections_text.yaml diff --git a/schemas/20251121/linkml/modules/slots/name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/name.yaml diff --git a/schemas/20251121/linkml/modules/slots/name_authority.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/name_authority.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/name_authority.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/name_authority.yaml diff --git a/schemas/20251121/linkml/modules/slots/name_language.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/name_language.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/name_language.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/name_language.yaml diff --git a/schemas/20251121/linkml/modules/slots/name_local.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/name_local.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/name_local.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/name_local.yaml diff --git a/schemas/20251121/linkml/modules/slots/name_specification.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/name_specification.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/name_specification.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/name_specification.yaml diff --git a/schemas/20251121/linkml/modules/slots/name_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/name_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/name_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/name_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/name_validity_period.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/name_validity_period.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/name_validity_period.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/name_validity_period.yaml diff --git a/schemas/20251121/linkml/modules/slots/narrower_concept.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/narrower_concept.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/narrower_concept.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/narrower_concept.yaml diff --git a/schemas/20251121/linkml/modules/slots/narrower_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/narrower_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/narrower_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/narrower_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/nazi_era_flag.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/nazi_era_flag.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/nazi_era_flag.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/nazi_era_flag.yaml diff --git a/schemas/20251121/linkml/modules/slots/nesting_level.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/nesting_level.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/nesting_level.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/nesting_level.yaml diff --git a/schemas/20251121/linkml/modules/slots/network_analysis.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/network_analysis.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/network_analysis.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/network_analysis.yaml diff --git a/schemas/20251121/linkml/modules/slots/nl.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/nl.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/nl.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/nl.yaml diff --git a/schemas/20251121/linkml/modules/slots/no_fabrication.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/no_fabrication.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/no_fabrication.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/no_fabrication.yaml diff --git a/schemas/20251121/linkml/modules/slots/noise_floor_db.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/noise_floor_db.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/noise_floor_db.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/noise_floor_db.yaml diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/nomenclatural_code.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/nomenclatural_code.yaml new file mode 100644 index 0000000000..d7635444e2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/nomenclatural_code.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/nomenclatural_code +name: nomenclatural_code +imports: + - linkml:types +slots: + nomenclatural_code: + slot_uri: dwc:nomenclaturalCode + range: string + description: 'The nomenclatural code governing this name. + Values: ICZN, ICN, ICNP, ICVCN, etc. + ' + examples: + - value: ICZN + description: International Code of Zoological Nomenclature + - value: ICN + description: International Code of Nomenclature for algae, fungi, and plants + annotations: + custodian_types: "['*']" diff --git a/schemas/20251121/linkml/modules/slots/nonprofit_subtype.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/nonprofit_subtype.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/nonprofit_subtype.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/nonprofit_subtype.yaml diff --git a/schemas/20251121/linkml/modules/slots/notable_examples.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/notable_examples.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/notable_examples.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/notable_examples.yaml diff --git a/schemas/20251121/linkml/modules/slots/notarial_deed_number.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/notarial_deed_number.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/notarial_deed_number.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/notarial_deed_number.yaml diff --git a/schemas/20251121/linkml/modules/slots/notary_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/notary_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/notary_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/notary_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/notary_office.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/notary_office.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/notary_office.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/notary_office.yaml diff --git a/schemas/20251121/linkml/modules/slots/note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/note.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/note.yaml diff --git a/schemas/20251121/linkml/modules/slots/note_content.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/note_content.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/note_content.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/note_content.yaml diff --git a/schemas/20251121/linkml/modules/slots/note_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/note_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/note_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/note_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/note_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/note_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/note_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/note_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/numeric_value.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/numeric_value.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/numeric_value.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/numeric_value.yaml diff --git a/schemas/20251121/linkml/modules/slots/oai_pmh_endpoint.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/oai_pmh_endpoint.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/oai_pmh_endpoint.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/oai_pmh_endpoint.yaml diff --git a/schemas/20251121/linkml/modules/slots/object_alternate_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/object_alternate_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/object_alternate_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/object_alternate_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/object_classes_detected.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/object_classes_detected.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/object_classes_detected.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/object_classes_detected.yaml diff --git a/schemas/20251121/linkml/modules/slots/object_collection_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/object_collection_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/object_collection_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/object_collection_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/object_confidence.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/object_confidence.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/object_confidence.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/object_confidence.yaml diff --git a/schemas/20251121/linkml/modules/slots/object_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/object_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/object_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/object_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/object_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/object_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/object_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/object_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/object_label.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/object_label.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/object_label.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/object_label.yaml diff --git a/schemas/20251121/linkml/modules/slots/object_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/object_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/object_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/object_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/object_ref.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/object_ref.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/object_ref.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/object_ref.yaml diff --git a/schemas/20251121/linkml/modules/slots/object_segment.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/object_segment.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/object_segment.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/object_segment.yaml diff --git a/schemas/20251121/linkml/modules/slots/object_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/object_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/object_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/object_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/object_wikidata_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/object_wikidata_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/object_wikidata_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/object_wikidata_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/objective.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/objective.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/objective.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/objective.yaml diff --git a/schemas/20251121/linkml/modules/slots/objects_added.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/objects_added.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/objects_added.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/objects_added.yaml diff --git a/schemas/20251121/linkml/modules/slots/objects_affected.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/objects_affected.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/objects_affected.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/objects_affected.yaml diff --git a/schemas/20251121/linkml/modules/slots/objects_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/objects_count.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/objects_count.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/objects_count.yaml diff --git a/schemas/20251121/linkml/modules/slots/objects_removed.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/objects_removed.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/objects_removed.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/objects_removed.yaml diff --git a/schemas/20251121/linkml/modules/slots/observation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/observation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/observation.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/observation.yaml diff --git a/schemas/20251121/linkml/modules/slots/observation_context.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/observation_context.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/observation_context.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/observation_context.yaml diff --git a/schemas/20251121/linkml/modules/slots/observation_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/observation_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/observation_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/observation_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/observation_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/observation_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/observation_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/observation_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/observation_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/observation_note.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/observation_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/observation_note.yaml diff --git a/schemas/20251121/linkml/modules/slots/observation_period.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/observation_period.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/observation_period.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/observation_period.yaml diff --git a/schemas/20251121/linkml/modules/slots/observation_ref.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/observation_ref.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/observation_ref.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/observation_ref.yaml diff --git a/schemas/20251121/linkml/modules/slots/observation_source.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/observation_source.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/observation_source.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/observation_source.yaml diff --git a/schemas/20251121/linkml/modules/slots/observed_entity.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/observed_entity.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/observed_entity.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/observed_entity.yaml diff --git a/schemas/20251121/linkml/modules/slots/observed_in.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/observed_in.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/observed_in.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/observed_in.yaml diff --git a/schemas/20251121/linkml/modules/slots/observed_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/observed_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/observed_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/observed_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/observer_affiliation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/observer_affiliation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/observer_affiliation.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/observer_affiliation.yaml diff --git a/schemas/20251121/linkml/modules/slots/observer_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/observer_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/observer_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/observer_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/observer_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/observer_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/observer_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/observer_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/occupation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/occupation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/occupation.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/occupation.yaml diff --git a/schemas/20251121/linkml/modules/slots/occurs_or_occurred_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/occurs_or_occurred_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/occurs_or_occurred_at.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/occurs_or_occurred_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/oclc_number.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/oclc_number.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/oclc_number.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/oclc_number.yaml diff --git a/schemas/20251121/linkml/modules/slots/offered_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/offered_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/offered_by.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/offered_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/offers_donation_scheme.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/offers_donation_scheme.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/offers_donation_scheme.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/offers_donation_scheme.yaml diff --git a/schemas/20251121/linkml/modules/slots/offers_or_offered.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/offers_or_offered.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/offers_or_offered.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/offers_or_offered.yaml diff --git a/schemas/20251121/linkml/modules/slots/offers_or_offered_access.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/offers_or_offered_access.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/offers_or_offered_access.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/offers_or_offered_access.yaml diff --git a/schemas/20251121/linkml/modules/slots/official_institution_subtype.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/official_institution_subtype.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/official_institution_subtype.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/official_institution_subtype.yaml diff --git a/schemas/20251121/linkml/modules/slots/online_shop.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/online_shop.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/online_shop.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/online_shop.yaml diff --git a/schemas/20251121/linkml/modules/slots/open_source.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/open_source.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/open_source.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/open_source.yaml diff --git a/schemas/20251121/linkml/modules/slots/opening_hour.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/opening_hour.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/opening_hour.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/opening_hour.yaml diff --git a/schemas/20251121/linkml/modules/slots/operated_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/operated_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/operated_by.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/operated_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/operates_or_operated.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/operates_or_operated.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/operates_or_operated.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/operates_or_operated.yaml diff --git a/schemas/20251121/linkml/modules/slots/operating_budget.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/operating_budget.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/operating_budget.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/operating_budget.yaml diff --git a/schemas/20251121/linkml/modules/slots/operating_hour.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/operating_hour.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/operating_hour.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/operating_hour.yaml diff --git a/schemas/20251121/linkml/modules/slots/operational_status.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/operational_status.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/operational_status.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/operational_status.yaml diff --git a/schemas/20251121/linkml/modules/slots/operator.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/operator.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/operator.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/operator.yaml diff --git a/schemas/20251121/linkml/modules/slots/organization_legal_form.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/organization_legal_form.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/organization_legal_form.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/organization_legal_form.yaml diff --git a/schemas/20251121/linkml/modules/slots/organization_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/organization_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/organization_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/organization_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/organization_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/organization_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/organization_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/organization_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/organizational_change_score.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/organizational_change_score.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/organizational_change_score.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/organizational_change_score.yaml diff --git a/schemas/20251121/linkml/modules/slots/organizational_level.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/organizational_level.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/organizational_level.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/organizational_level.yaml diff --git a/schemas/20251121/linkml/modules/slots/organizational_mission.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/organizational_mission.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/organizational_mission.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/organizational_mission.yaml diff --git a/schemas/20251121/linkml/modules/slots/organizational_principle.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/organizational_principle.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/organizational_principle.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/organizational_principle.yaml diff --git a/schemas/20251121/linkml/modules/slots/organizational_principle_uri.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/organizational_principle_uri.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/organizational_principle_uri.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/organizational_principle_uri.yaml diff --git a/schemas/20251121/linkml/modules/slots/organizational_structure.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/organizational_structure.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/organizational_structure.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/organizational_structure.yaml diff --git a/schemas/20251121/linkml/modules/slots/organized_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/organized_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/organized_by.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/organized_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/organizing_body.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/organizing_body.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/organizing_body.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/organizing_body.yaml diff --git a/schemas/20251121/linkml/modules/slots/origin_location.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/origin_location.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/origin_location.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/origin_location.yaml diff --git a/schemas/20251121/linkml/modules/slots/origin_period.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/origin_period.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/origin_period.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/origin_period.yaml diff --git a/schemas/20251121/linkml/modules/slots/original_end_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/original_end_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/original_end_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/original_end_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/originates_or_originated_from.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/originates_or_originated_from.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/originates_or_originated_from.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/originates_or_originated_from.yaml diff --git a/schemas/20251121/linkml/modules/slots/osm_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/osm_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/osm_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/osm_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/outbound_condition_report_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/outbound_condition_report_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/outbound_condition_report_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/outbound_condition_report_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/outbound_to.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/outbound_to.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/outbound_to.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/outbound_to.yaml diff --git a/schemas/20251121/linkml/modules/slots/outdoor_seating_capacity.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/outdoor_seating_capacity.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/outdoor_seating_capacity.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/outdoor_seating_capacity.yaml diff --git a/schemas/20251121/linkml/modules/slots/outdoor_site_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/outdoor_site_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/outdoor_site_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/outdoor_site_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/outdoor_site_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/outdoor_site_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/outdoor_site_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/outdoor_site_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/outdoor_site_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/outdoor_site_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/outdoor_site_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/outdoor_site_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/outdoor_site_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/outdoor_site_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/outdoor_site_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/outdoor_site_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/overall_confidence.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/overall_confidence.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/overall_confidence.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/overall_confidence.yaml diff --git a/schemas/20251121/linkml/modules/slots/overall_status.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/overall_status.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/overall_status.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/overall_status.yaml diff --git a/schemas/20251121/linkml/modules/slots/oversight_jurisdiction.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/oversight_jurisdiction.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/oversight_jurisdiction.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/oversight_jurisdiction.yaml diff --git a/schemas/20251121/linkml/modules/slots/ownership_stamp.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/ownership_stamp.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/ownership_stamp.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/ownership_stamp.yaml diff --git a/schemas/20251121/linkml/modules/slots/page.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/page.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/page.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/page.yaml diff --git a/schemas/20251121/linkml/modules/slots/page_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/page_count.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/page_count.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/page_count.yaml diff --git a/schemas/20251121/linkml/modules/slots/page_section.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/page_section.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/page_section.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/page_section.yaml diff --git a/schemas/20251121/linkml/modules/slots/page_title.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/page_title.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/page_title.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/page_title.yaml diff --git a/schemas/20251121/linkml/modules/slots/paragraph_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/paragraph_count.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/paragraph_count.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/paragraph_count.yaml diff --git a/schemas/20251121/linkml/modules/slots/parallel_title.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/parallel_title.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/parallel_title.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/parallel_title.yaml diff --git a/schemas/20251121/linkml/modules/slots/parent_corporation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/parent_corporation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/parent_corporation.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/parent_corporation.yaml diff --git a/schemas/20251121/linkml/modules/slots/parent_department.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/parent_department.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/parent_department.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/parent_department.yaml diff --git a/schemas/20251121/linkml/modules/slots/parent_programme.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/parent_programme.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/parent_programme.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/parent_programme.yaml diff --git a/schemas/20251121/linkml/modules/slots/parent_society.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/parent_society.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/parent_society.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/parent_society.yaml diff --git a/schemas/20251121/linkml/modules/slots/parent_unit.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/parent_unit.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/parent_unit.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/parent_unit.yaml diff --git a/schemas/20251121/linkml/modules/slots/part_of_collection.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/part_of_collection.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/part_of_collection.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/part_of_collection.yaml diff --git a/schemas/20251121/linkml/modules/slots/part_of_custodian_collection.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/part_of_custodian_collection.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/part_of_custodian_collection.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/part_of_custodian_collection.yaml diff --git a/schemas/20251121/linkml/modules/slots/part_of_event.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/part_of_event.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/part_of_event.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/part_of_event.yaml diff --git a/schemas/20251121/linkml/modules/slots/part_of_facility.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/part_of_facility.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/part_of_facility.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/part_of_facility.yaml diff --git a/schemas/20251121/linkml/modules/slots/part_of_storage.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/part_of_storage.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/part_of_storage.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/part_of_storage.yaml diff --git a/schemas/20251121/linkml/modules/slots/part_of_zone.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/part_of_zone.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/part_of_zone.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/part_of_zone.yaml diff --git a/schemas/20251121/linkml/modules/slots/part_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/part_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/part_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/part_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/participant_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/participant_count.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/participant_count.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/participant_count.yaml diff --git a/schemas/20251121/linkml/modules/slots/participating_custodian.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/participating_custodian.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/participating_custodian.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/participating_custodian.yaml diff --git a/schemas/20251121/linkml/modules/slots/participating_institution.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/participating_institution.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/participating_institution.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/participating_institution.yaml diff --git a/schemas/20251121/linkml/modules/slots/particulate_max.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/particulate_max.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/particulate_max.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/particulate_max.yaml diff --git a/schemas/20251121/linkml/modules/slots/partner_institution.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/partner_institution.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/partner_institution.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/partner_institution.yaml diff --git a/schemas/20251121/linkml/modules/slots/partnership_model.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/partnership_model.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/partnership_model.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/partnership_model.yaml diff --git a/schemas/20251121/linkml/modules/slots/partnership_required.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/partnership_required.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/partnership_required.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/partnership_required.yaml diff --git a/schemas/20251121/linkml/modules/slots/patronym.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/patronym.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/patronym.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/patronym.yaml diff --git a/schemas/20251121/linkml/modules/slots/payment_frequency.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/payment_frequency.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/payment_frequency.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/payment_frequency.yaml diff --git a/schemas/20251121/linkml/modules/slots/pdf_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/pdf_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/pdf_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/pdf_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/performance_datetime.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_datetime.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/performance_datetime.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_datetime.yaml diff --git a/schemas/20251121/linkml/modules/slots/performance_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/performance_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/performance_duration.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_duration.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/performance_duration.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_duration.yaml diff --git a/schemas/20251121/linkml/modules/slots/performance_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/performance_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/performance_location.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_location.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/performance_location.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_location.yaml diff --git a/schemas/20251121/linkml/modules/slots/performance_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/performance_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/performance_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_note.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/performance_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_note.yaml diff --git a/schemas/20251121/linkml/modules/slots/performance_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/performance_of.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/performance_repertoire.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_repertoire.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/performance_repertoire.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_repertoire.yaml diff --git a/schemas/20251121/linkml/modules/slots/performance_venue.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_venue.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/performance_venue.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/performance_venue.yaml diff --git a/schemas/20251121/linkml/modules/slots/performed_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/performed_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/performed_by.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/performed_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/performer.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/performer.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/performer.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/performer.yaml diff --git a/schemas/20251121/linkml/modules/slots/period.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/period.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/period.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/period.yaml diff --git a/schemas/20251121/linkml/modules/slots/period_covered.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/period_covered.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/period_covered.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/period_covered.yaml diff --git a/schemas/20251121/linkml/modules/slots/period_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/period_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/period_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/period_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/period_end.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/period_end.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/period_end.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/period_end.yaml diff --git a/schemas/20251121/linkml/modules/slots/period_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/period_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/period_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/period_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/period_start.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/period_start.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/period_start.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/period_start.yaml diff --git a/schemas/20251121/linkml/modules/slots/permanent_location.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/permanent_location.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/permanent_location.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/permanent_location.yaml diff --git a/schemas/20251121/linkml/modules/slots/permission_required.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/permission_required.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/permission_required.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/permission_required.yaml diff --git a/schemas/20251121/linkml/modules/slots/person_claim_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/person_claim_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/person_claim_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/person_claim_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/person_claim_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/person_claim_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/person_claim_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/person_claim_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/person_claim_value.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/person_claim_value.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/person_claim_value.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/person_claim_value.yaml diff --git a/schemas/20251121/linkml/modules/slots/person_html_file.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/person_html_file.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/person_html_file.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/person_html_file.yaml diff --git a/schemas/20251121/linkml/modules/slots/person_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/person_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/person_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/person_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/person_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/person_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/person_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/person_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/person_research_score.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/person_research_score.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/person_research_score.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/person_research_score.yaml diff --git a/schemas/20251121/linkml/modules/slots/personal_collection_subtype.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/personal_collection_subtype.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/personal_collection_subtype.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/personal_collection_subtype.yaml diff --git a/schemas/20251121/linkml/modules/slots/personnel_budget.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/personnel_budget.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/personnel_budget.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/personnel_budget.yaml diff --git a/schemas/20251121/linkml/modules/slots/pest_management_required.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/pest_management_required.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/pest_management_required.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/pest_management_required.yaml diff --git a/schemas/20251121/linkml/modules/slots/photograph.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/photograph.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/photograph.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/photograph.yaml diff --git a/schemas/20251121/linkml/modules/slots/physical_location.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/physical_location.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/physical_location.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/physical_location.yaml diff --git a/schemas/20251121/linkml/modules/slots/pipeline_stage.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/pipeline_stage.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/pipeline_stage.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/pipeline_stage.yaml diff --git a/schemas/20251121/linkml/modules/slots/place_custodian_ref.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/place_custodian_ref.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/place_custodian_ref.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/place_custodian_ref.yaml diff --git a/schemas/20251121/linkml/modules/slots/place_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/place_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/place_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/place_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/place_designation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/place_designation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/place_designation.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/place_designation.yaml diff --git a/schemas/20251121/linkml/modules/slots/place_language.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/place_language.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/place_language.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/place_language.yaml diff --git a/schemas/20251121/linkml/modules/slots/place_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/place_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/place_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/place_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/place_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/place_note.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/place_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/place_note.yaml diff --git a/schemas/20251121/linkml/modules/slots/place_of_publication.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/place_of_publication.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/place_of_publication.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/place_of_publication.yaml diff --git a/schemas/20251121/linkml/modules/slots/place_source_text.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/place_source_text.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/place_source_text.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/place_source_text.yaml diff --git a/schemas/20251121/linkml/modules/slots/place_specificity.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/place_specificity.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/place_specificity.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/place_specificity.yaml diff --git a/schemas/20251121/linkml/modules/slots/planned_closure_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/planned_closure_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/planned_closure_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/planned_closure_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/planned_end.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/planned_end.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/planned_end.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/planned_end.yaml diff --git a/schemas/20251121/linkml/modules/slots/planned_start.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/planned_start.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/planned_start.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/planned_start.yaml diff --git a/schemas/20251121/linkml/modules/slots/plant_species_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/plant_species_count.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/plant_species_count.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/plant_species_count.yaml diff --git a/schemas/20251121/linkml/modules/slots/platform_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/platform_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/platform_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/platform_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/platform_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/platform_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/platform_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/platform_of.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/platform_purpose.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_purpose.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/platform_purpose.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_purpose.yaml diff --git a/schemas/20251121/linkml/modules/slots/platform_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/platform_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/platform_type_category.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_type_category.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/platform_type_category.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_type_category.yaml diff --git a/schemas/20251121/linkml/modules/slots/platform_type_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_type_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/platform_type_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_type_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/platform_type_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_type_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/platform_type_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_type_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/platform_type_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_type_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/platform_type_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_type_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/platform_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/platform_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/platform_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/policy_authority.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/policy_authority.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/policy_authority.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/policy_authority.yaml diff --git a/schemas/20251121/linkml/modules/slots/policy_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/policy_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/policy_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/policy_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/policy_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/policy_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/policy_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/policy_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/policy_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/policy_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/policy_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/policy_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/policy_review_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/policy_review_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/policy_review_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/policy_review_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/policy_text.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/policy_text.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/policy_text.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/policy_text.yaml diff --git a/schemas/20251121/linkml/modules/slots/portal_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/portal_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/portal_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/portal_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/portal_language.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_language.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/portal_language.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_language.yaml diff --git a/schemas/20251121/linkml/modules/slots/portal_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/portal_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/portal_status.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_status.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/portal_status.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_status.yaml diff --git a/schemas/20251121/linkml/modules/slots/portal_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/portal_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/portal_type_category.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_type_category.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/portal_type_category.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_type_category.yaml diff --git a/schemas/20251121/linkml/modules/slots/portal_type_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_type_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/portal_type_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_type_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/portal_type_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_type_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/portal_type_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_type_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/portal_type_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_type_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/portal_type_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_type_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/portal_typical_domain.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_typical_domain.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/portal_typical_domain.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_typical_domain.yaml diff --git a/schemas/20251121/linkml/modules/slots/portal_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/portal_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/portal_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/poses_or_posed_condition.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/poses_or_posed_condition.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/poses_or_posed_condition.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/poses_or_posed_condition.yaml diff --git a/schemas/20251121/linkml/modules/slots/post_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/post_count.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/post_count.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/post_count.yaml diff --git a/schemas/20251121/linkml/modules/slots/post_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/post_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/post_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/post_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/post_type_activity_streams_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_activity_streams_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/post_type_activity_streams_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_activity_streams_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/post_type_category.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_category.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/post_type_category.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_category.yaml diff --git a/schemas/20251121/linkml/modules/slots/post_type_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/post_type_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/post_type_ephemeral.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_ephemeral.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/post_type_ephemeral.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_ephemeral.yaml diff --git a/schemas/20251121/linkml/modules/slots/post_type_heritage_use_case.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_heritage_use_case.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/post_type_heritage_use_case.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_heritage_use_case.yaml diff --git a/schemas/20251121/linkml/modules/slots/post_type_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/post_type_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/post_type_max_duration.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_max_duration.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/post_type_max_duration.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_max_duration.yaml diff --git a/schemas/20251121/linkml/modules/slots/post_type_media_format.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_media_format.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/post_type_media_format.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_media_format.yaml diff --git a/schemas/20251121/linkml/modules/slots/post_type_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/post_type_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/post_type_schema_org_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_schema_org_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/post_type_schema_org_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_schema_org_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/post_type_supported_platform.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_supported_platform.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/post_type_supported_platform.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/post_type_supported_platform.yaml diff --git a/schemas/20251121/linkml/modules/slots/post_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/post_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/post_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/post_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/postal_code.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/postal_code.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/postal_code.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/postal_code.yaml diff --git a/schemas/20251121/linkml/modules/slots/posted_by_profile.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/posted_by_profile.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/posted_by_profile.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/posted_by_profile.yaml diff --git a/schemas/20251121/linkml/modules/slots/power_source.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/power_source.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/power_source.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/power_source.yaml diff --git a/schemas/20251121/linkml/modules/slots/powers_platform.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/powers_platform.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/powers_platform.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/powers_platform.yaml diff --git a/schemas/20251121/linkml/modules/slots/practitioner_community.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/practitioner_community.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/practitioner_community.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/practitioner_community.yaml diff --git a/schemas/20251121/linkml/modules/slots/preceding_activity.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/preceding_activity.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/preceding_activity.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/preceding_activity.yaml diff --git a/schemas/20251121/linkml/modules/slots/preferred_label.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/preferred_label.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/preferred_label.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/preferred_label.yaml diff --git a/schemas/20251121/linkml/modules/slots/preferred_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/preferred_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/preferred_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/preferred_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/preparation_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/preparation_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/preparation_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/preparation_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/prepared_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/prepared_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/prepared_by.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/prepared_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/preservation_approach.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_approach.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/preservation_approach.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_approach.yaml diff --git a/schemas/20251121/linkml/modules/slots/preservation_budget.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_budget.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/preservation_budget.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_budget.yaml diff --git a/schemas/20251121/linkml/modules/slots/preservation_event_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_event_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/preservation_event_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_event_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/preservation_level.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_level.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/preservation_level.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_level.yaml diff --git a/schemas/20251121/linkml/modules/slots/preservation_method.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_method.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/preservation_method.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_method.yaml diff --git a/schemas/20251121/linkml/modules/slots/preservation_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_note.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/preservation_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_note.yaml diff --git a/schemas/20251121/linkml/modules/slots/preservation_purpose.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_purpose.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/preservation_purpose.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_purpose.yaml diff --git a/schemas/20251121/linkml/modules/slots/preservation_requirement.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_requirement.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/preservation_requirement.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_requirement.yaml diff --git a/schemas/20251121/linkml/modules/slots/preservation_standard.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_standard.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/preservation_standard.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/preservation_standard.yaml diff --git a/schemas/20251121/linkml/modules/slots/preservative_detail.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/preservative_detail.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/preservative_detail.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/preservative_detail.yaml diff --git a/schemas/20251121/linkml/modules/slots/preserves_or_preserved.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/preserves_or_preserved.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/preserves_or_preserved.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/preserves_or_preserved.yaml diff --git a/schemas/20251121/linkml/modules/slots/previous_observation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/previous_observation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/previous_observation.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/previous_observation.yaml diff --git a/schemas/20251121/linkml/modules/slots/price.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/price.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/price.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/price.yaml diff --git a/schemas/20251121/linkml/modules/slots/price_currency.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/price_currency.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/price_currency.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/price_currency.yaml diff --git a/schemas/20251121/linkml/modules/slots/price_text.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/price_text.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/price_text.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/price_text.yaml diff --git a/schemas/20251121/linkml/modules/slots/primary.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/primary.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/primary.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/primary.yaml diff --git a/schemas/20251121/linkml/modules/slots/primary_audio_event_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/primary_audio_event_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/primary_audio_event_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/primary_audio_event_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/primary_heritage_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/primary_heritage_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/primary_heritage_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/primary_heritage_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/primary_register.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/primary_register.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/primary_register.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/primary_register.yaml diff --git a/schemas/20251121/linkml/modules/slots/primary_speaker.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/primary_speaker.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/primary_speaker.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/primary_speaker.yaml diff --git a/schemas/20251121/linkml/modules/slots/primary_system.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/primary_system.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/primary_system.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/primary_system.yaml diff --git a/schemas/20251121/linkml/modules/slots/printer_publisher.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/printer_publisher.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/printer_publisher.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/printer_publisher.yaml diff --git a/schemas/20251121/linkml/modules/slots/priority.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/priority.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/priority.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/priority.yaml diff --git a/schemas/20251121/linkml/modules/slots/privacy_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/privacy_note.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/privacy_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/privacy_note.yaml diff --git a/schemas/20251121/linkml/modules/slots/processing_completed_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/processing_completed_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/processing_completed_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/processing_completed_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/processing_duration_seconds.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/processing_duration_seconds.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/processing_duration_seconds.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/processing_duration_seconds.yaml diff --git a/schemas/20251121/linkml/modules/slots/processing_priority.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/processing_priority.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/processing_priority.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/processing_priority.yaml diff --git a/schemas/20251121/linkml/modules/slots/processing_started_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/processing_started_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/processing_started_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/processing_started_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/processing_status.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/processing_status.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/processing_status.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/processing_status.yaml diff --git a/schemas/20251121/linkml/modules/slots/production_method.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/production_method.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/production_method.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/production_method.yaml diff --git a/schemas/20251121/linkml/modules/slots/proficiency_level.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/proficiency_level.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/proficiency_level.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/proficiency_level.yaml diff --git a/schemas/20251121/linkml/modules/slots/profile_data.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/profile_data.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/profile_data.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/profile_data.yaml diff --git a/schemas/20251121/linkml/modules/slots/profile_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/profile_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/profile_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/profile_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/profile_image_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/profile_image_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/profile_image_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/profile_image_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/profile_linkedin_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/profile_linkedin_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/profile_linkedin_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/profile_linkedin_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/profile_location.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/profile_location.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/profile_location.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/profile_location.yaml diff --git a/schemas/20251121/linkml/modules/slots/profile_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/profile_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/profile_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/profile_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/profile_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/profile_url.yaml new file mode 100644 index 0000000000..b55adc3b76 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/profile_url.yaml @@ -0,0 +1,46 @@ +id: https://nde.nl/ontology/hc/slot/profile_url +name: profile_url_slot +title: Profile Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + foaf: http://xmlns.com/foaf/0.1/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + profile_url: + description: 'Full URL to the social media profile. Mapped to schema:url as the standard property for web addresses. + + + This is the canonical URL for accessing the profile. + + + URL patterns by platform: + + - Instagram: https://www.instagram.com/{username} + + - X/Twitter: https://x.com/{username} + + - Facebook: https://www.facebook.com/{page} + + - YouTube: https://www.youtube.com/@{handle} + + - LinkedIn: https://www.linkedin.com/company/{name} + + ' + range: uri + slot_uri: schema:url + close_mappings: + - foaf:homepage + - foaf:page + annotations: + custodian_types: "['*']" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/protocol_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/protocol_name.yaml new file mode 100644 index 0000000000..021063b020 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/protocol_name.yaml @@ -0,0 +1,13 @@ +id: https://nde.nl/ontology/hc/slot/protocol_name +name: protocol_name +description: The name of the protocol used by a service endpoint (e.g., "OAI-PMH", "SPARQL"). +imports: + - linkml:types +slots: + protocol_name: + description: The name of the protocol used by a service endpoint (e.g., "OAI-PMH", "SPARQL"). + range: string + slot_uri: dcterms:conformsTo + examples: + - value: "OAI-PMH" + - value: "SPARQL" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/protocol_version.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/protocol_version.yaml new file mode 100644 index 0000000000..bc8e204325 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/protocol_version.yaml @@ -0,0 +1,13 @@ +id: https://nde.nl/ontology/hc/slot/protocol_version +name: protocol_version +description: The version of the protocol used by a service endpoint (e.g., "2.0" for OAI-PMH). +imports: + - linkml:types +slots: + protocol_version: + description: The version of the protocol used by a service endpoint (e.g., "2.0" for OAI-PMH). + range: string + slot_uri: dcterms:hasVersion + examples: + - value: "2.0" + - value: "1.1" diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/provider.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/provider.yaml new file mode 100644 index 0000000000..dfcfc2ca9f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/provider.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/provider +name: provider_slot +title: provider slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/LLMProviderEnum +default_prefix: hc +slots: + provider: + description: 'The provider of a service, payment method, or resource. + Maps to schema:provider. + ' + slot_uri: schema:provider + range: string + annotations: + custodian_types: "['*']" + exact_mappings: + - prov:wasAssociatedWith diff --git a/schemas/20251121/linkml/modules/slots/provides_or_provided.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/provides_or_provided.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/provides_or_provided.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/provides_or_provided.yaml diff --git a/schemas/20251121/linkml/modules/slots/provides_or_provided_provenance_to.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/provides_or_provided_provenance_to.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/provides_or_provided_provenance_to.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/provides_or_provided_provenance_to.yaml diff --git a/schemas/20251121/linkml/modules/slots/provides_or_provided_to.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/provides_or_provided_to.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/provides_or_provided_to.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/provides_or_provided_to.yaml diff --git a/schemas/20251121/linkml/modules/slots/publishes_or_published.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/publishes_or_published.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/publishes_or_published.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/publishes_or_published.yaml diff --git a/schemas/20251121/linkml/modules/slots/rate_value.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/rate_value.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/rate_value.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/rate_value.yaml diff --git a/schemas/20251121/linkml/modules/slots/rationale.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/rationale.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/rationale.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/rationale.yaml diff --git a/schemas/20251121/linkml/modules/slots/raw_subtitle_content.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/raw_subtitle_content.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/raw_subtitle_content.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/raw_subtitle_content.yaml diff --git a/schemas/20251121/linkml/modules/slots/reading_room_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/reading_room_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/reading_room_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/reading_room_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/reason_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/reason_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/reason_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/reason_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/reasoning_content.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/reasoning_content.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/reasoning_content.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/reasoning_content.yaml diff --git a/schemas/20251121/linkml/modules/slots/receives_or_received.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/receives_or_received.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/receives_or_received.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/receives_or_received.yaml diff --git a/schemas/20251121/linkml/modules/slots/recognized_person_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/recognized_person_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/recognized_person_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/recognized_person_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/recommendation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/recommendation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/recommendation.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/recommendation.yaml diff --git a/schemas/20251121/linkml/modules/slots/reconstruction_method.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/reconstruction_method.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/reconstruction_method.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/reconstruction_method.yaml diff --git a/schemas/20251121/linkml/modules/slots/record_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/record_count.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/record_count.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/record_count.yaml diff --git a/schemas/20251121/linkml/modules/slots/record_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/record_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/record_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/record_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/record_equivalent.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/record_equivalent.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/record_equivalent.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/record_equivalent.yaml diff --git a/schemas/20251121/linkml/modules/slots/record_format.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/record_format.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/record_format.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/record_format.yaml diff --git a/schemas/20251121/linkml/modules/slots/record_holder.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/record_holder.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/record_holder.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/record_holder.yaml diff --git a/schemas/20251121/linkml/modules/slots/record_holder_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/record_holder_note.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/record_holder_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/record_holder_note.yaml diff --git a/schemas/20251121/linkml/modules/slots/record_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/record_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/record_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/record_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/record_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/record_note.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/record_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/record_note.yaml diff --git a/schemas/20251121/linkml/modules/slots/record_set_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/record_set_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/record_set_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/record_set_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/record_timespan.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/record_timespan.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/record_timespan.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/record_timespan.yaml diff --git a/schemas/20251121/linkml/modules/slots/record_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/record_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/record_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/record_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/recording_available.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/recording_available.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/recording_available.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/recording_available.yaml diff --git a/schemas/20251121/linkml/modules/slots/recording_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/recording_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/recording_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/recording_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/recurrence_pattern.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/recurrence_pattern.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/recurrence_pattern.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/recurrence_pattern.yaml diff --git a/schemas/20251121/linkml/modules/slots/refers_or_referred_to.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/refers_or_referred_to.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/refers_or_referred_to.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/refers_or_referred_to.yaml diff --git a/schemas/20251121/linkml/modules/slots/refers_to_access_policy.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/refers_to_access_policy.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/refers_to_access_policy.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/refers_to_access_policy.yaml diff --git a/schemas/20251121/linkml/modules/slots/refers_to_custodian.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/refers_to_custodian.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/refers_to_custodian.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/refers_to_custodian.yaml diff --git a/schemas/20251121/linkml/modules/slots/refers_to_legal_status.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/refers_to_legal_status.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/refers_to_legal_status.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/refers_to_legal_status.yaml diff --git a/schemas/20251121/linkml/modules/slots/refers_to_person.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/refers_to_person.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/refers_to_person.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/refers_to_person.yaml diff --git a/schemas/20251121/linkml/modules/slots/refers_to_storage.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/refers_to_storage.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/refers_to_storage.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/refers_to_storage.yaml diff --git a/schemas/20251121/linkml/modules/slots/region.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/region.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/region.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/region.yaml diff --git a/schemas/20251121/linkml/modules/slots/region_code.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/region_code.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/region_code.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/region_code.yaml diff --git a/schemas/20251121/linkml/modules/slots/region_confidence.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/region_confidence.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/region_confidence.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/region_confidence.yaml diff --git a/schemas/20251121/linkml/modules/slots/region_language.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/region_language.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/region_language.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/region_language.yaml diff --git a/schemas/20251121/linkml/modules/slots/region_text.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/region_text.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/region_text.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/region_text.yaml diff --git a/schemas/20251121/linkml/modules/slots/region_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/region_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/region_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/region_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/register_abbreviation.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/register_abbreviation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/register_abbreviation.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/register_abbreviation.yaml diff --git a/schemas/20251121/linkml/modules/slots/register_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/register_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/register_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/register_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/register_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/register_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/register_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/register_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/register_name_local.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/register_name_local.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/register_name_local.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/register_name_local.yaml diff --git a/schemas/20251121/linkml/modules/slots/register_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/register_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/register_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/register_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/registered_office_clause.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/registered_office_clause.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/registered_office_clause.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/registered_office_clause.yaml diff --git a/schemas/20251121/linkml/modules/slots/registers_or_registered.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/registers_or_registered.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/registers_or_registered.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/registers_or_registered.yaml diff --git a/schemas/20251121/linkml/modules/slots/registration_authority.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/registration_authority.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/registration_authority.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/registration_authority.yaml diff --git a/schemas/20251121/linkml/modules/slots/registration_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/registration_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/registration_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/registration_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/registration_required.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/registration_required.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/registration_required.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/registration_required.yaml diff --git a/schemas/20251121/linkml/modules/slots/regulated_by_scheme.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/regulated_by_scheme.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/regulated_by_scheme.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/regulated_by_scheme.yaml diff --git a/schemas/20251121/linkml/modules/slots/regulates_or_regulated.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/regulates_or_regulated.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/regulates_or_regulated.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/regulates_or_regulated.yaml diff --git a/schemas/20251121/linkml/modules/slots/regulatory_authority.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/regulatory_authority.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/regulatory_authority.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/regulatory_authority.yaml diff --git a/schemas/20251121/linkml/modules/slots/regulatory_body.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/regulatory_body.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/regulatory_body.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/regulatory_body.yaml diff --git a/schemas/20251121/linkml/modules/slots/related.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/related.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/related.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/related.yaml diff --git a/schemas/20251121/linkml/modules/slots/related_agenda.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/related_agenda.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/related_agenda.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/related_agenda.yaml diff --git a/schemas/20251121/linkml/modules/slots/related_call.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/related_call.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/related_call.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/related_call.yaml diff --git a/schemas/20251121/linkml/modules/slots/related_concept.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/related_concept.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/related_concept.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/related_concept.yaml diff --git a/schemas/20251121/linkml/modules/slots/related_loan.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/related_loan.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/related_loan.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/related_loan.yaml diff --git a/schemas/20251121/linkml/modules/slots/related_project.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/related_project.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/related_project.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/related_project.yaml diff --git a/schemas/20251121/linkml/modules/slots/related_type_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/related_type_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/related_type_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/related_type_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/related_type_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/related_type_note.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/related_type_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/related_type_note.yaml diff --git a/schemas/20251121/linkml/modules/slots/related_type_relationship.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/related_type_relationship.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/related_type_relationship.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/related_type_relationship.yaml diff --git a/schemas/20251121/linkml/modules/slots/related_type_wikidata.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/related_type_wikidata.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/related_type_wikidata.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/related_type_wikidata.yaml diff --git a/schemas/20251121/linkml/modules/slots/related_types.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/related_types.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/related_types.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/related_types.yaml diff --git a/schemas/20251121/linkml/modules/slots/relationship.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/relationship.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/relationship.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/relationship.yaml diff --git a/schemas/20251121/linkml/modules/slots/religion.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/religion.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/religion.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/religion.yaml diff --git a/schemas/20251121/linkml/modules/slots/religious_function.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/religious_function.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/religious_function.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/religious_function.yaml diff --git a/schemas/20251121/linkml/modules/slots/religious_tradition.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/religious_tradition.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/religious_tradition.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/religious_tradition.yaml diff --git a/schemas/20251121/linkml/modules/slots/remediation_note.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/remediation_note.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/remediation_note.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/remediation_note.yaml diff --git a/schemas/20251121/linkml/modules/slots/remediation_required.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/remediation_required.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/remediation_required.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/remediation_required.yaml diff --git a/schemas/20251121/linkml/modules/slots/repertoire.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/repertoire.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/repertoire.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/repertoire.yaml diff --git a/schemas/20251121/linkml/modules/slots/replaces_primary_location.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/replaces_primary_location.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/replaces_primary_location.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/replaces_primary_location.yaml diff --git a/schemas/20251121/linkml/modules/slots/report_document.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/report_document.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/report_document.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/report_document.yaml diff --git a/schemas/20251121/linkml/modules/slots/report_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/report_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/report_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/report_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/reported_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/reported_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/reported_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/reported_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/reporting_period_end.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/reporting_period_end.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/reporting_period_end.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/reporting_period_end.yaml diff --git a/schemas/20251121/linkml/modules/slots/reporting_period_start.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/reporting_period_start.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/reporting_period_start.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/reporting_period_start.yaml diff --git a/schemas/20251121/linkml/modules/slots/repository_software.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/repository_software.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/repository_software.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/repository_software.yaml diff --git a/schemas/20251121/linkml/modules/slots/repository_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/repository_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/repository_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/repository_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/represents_or_represented.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/represents_or_represented.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/represents_or_represented.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/represents_or_represented.yaml diff --git a/schemas/20251121/linkml/modules/slots/request_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/request_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/request_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/request_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/request_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/request_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/request_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/request_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/requirement_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requirement_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requirement_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requirement_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/requirement_text.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requirement_text.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requirement_text.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requirement_text.yaml diff --git a/schemas/20251121/linkml/modules/slots/requirement_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requirement_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requirement_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requirement_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/requirement_unit.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requirement_unit.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requirement_unit.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requirement_unit.yaml diff --git a/schemas/20251121/linkml/modules/slots/requirement_value.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requirement_value.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requirement_value.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requirement_value.yaml diff --git a/schemas/20251121/linkml/modules/slots/requires_appointment.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_appointment.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requires_appointment.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_appointment.yaml diff --git a/schemas/20251121/linkml/modules/slots/requires_articles_at_registration.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_articles_at_registration.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requires_articles_at_registration.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_articles_at_registration.yaml diff --git a/schemas/20251121/linkml/modules/slots/requires_dark_storage.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_dark_storage.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requires_dark_storage.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_dark_storage.yaml diff --git a/schemas/20251121/linkml/modules/slots/requires_declaration.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_declaration.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requires_declaration.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_declaration.yaml diff --git a/schemas/20251121/linkml/modules/slots/requires_dust_free.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_dust_free.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requires_dust_free.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_dust_free.yaml diff --git a/schemas/20251121/linkml/modules/slots/requires_esd_protection.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_esd_protection.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requires_esd_protection.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_esd_protection.yaml diff --git a/schemas/20251121/linkml/modules/slots/requires_or_required.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_or_required.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requires_or_required.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_or_required.yaml diff --git a/schemas/20251121/linkml/modules/slots/requires_qualification.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_qualification.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requires_qualification.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_qualification.yaml diff --git a/schemas/20251121/linkml/modules/slots/requires_registration.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_registration.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requires_registration.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_registration.yaml diff --git a/schemas/20251121/linkml/modules/slots/requires_research.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_research.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requires_research.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_research.yaml diff --git a/schemas/20251121/linkml/modules/slots/requires_separate_registration.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_separate_registration.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requires_separate_registration.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_separate_registration.yaml diff --git a/schemas/20251121/linkml/modules/slots/requires_uv_filter.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_uv_filter.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/requires_uv_filter.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/requires_uv_filter.yaml diff --git a/schemas/20251121/linkml/modules/slots/research_center_subtype.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/research_center_subtype.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/research_center_subtype.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/research_center_subtype.yaml diff --git a/schemas/20251121/linkml/modules/slots/research_center_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/research_center_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/research_center_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/research_center_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/research_department.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/research_department.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/research_department.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/research_department.yaml diff --git a/schemas/20251121/linkml/modules/slots/research_focus.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/research_focus.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/research_focus.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/research_focus.yaml diff --git a/schemas/20251121/linkml/modules/slots/research_focus_area.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/research_focus_area.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/research_focus_area.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/research_focus_area.yaml diff --git a/schemas/20251121/linkml/modules/slots/research_infrastructure.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/research_infrastructure.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/research_infrastructure.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/research_infrastructure.yaml diff --git a/schemas/20251121/linkml/modules/slots/research_program.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/research_program.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/research_program.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/research_program.yaml diff --git a/schemas/20251121/linkml/modules/slots/research_project.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/research_project.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/research_project.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/research_project.yaml diff --git a/schemas/20251121/linkml/modules/slots/research_value.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/research_value.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/research_value.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/research_value.yaml diff --git a/schemas/20251121/linkml/modules/slots/reservation_required.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/reservation_required.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/reservation_required.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/reservation_required.yaml diff --git a/schemas/20251121/linkml/modules/slots/resource_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/resource_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/resource_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/resource_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/response_format.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/response_format.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/response_format.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/response_format.yaml diff --git a/schemas/20251121/linkml/modules/slots/responsible_actor.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/responsible_actor.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/responsible_actor.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/responsible_actor.yaml diff --git a/schemas/20251121/linkml/modules/slots/responsible_agent.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/responsible_agent.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/responsible_agent.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/responsible_agent.yaml diff --git a/schemas/20251121/linkml/modules/slots/responsible_department.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/responsible_department.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/responsible_department.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/responsible_department.yaml diff --git a/schemas/20251121/linkml/modules/slots/responsible_legal_entity.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/responsible_legal_entity.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/responsible_legal_entity.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/responsible_legal_entity.yaml diff --git a/schemas/20251121/linkml/modules/slots/restriction_category.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/restriction_category.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/restriction_category.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/restriction_category.yaml diff --git a/schemas/20251121/linkml/modules/slots/restriction_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/restriction_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/restriction_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/restriction_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/restriction_reason.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/restriction_reason.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/restriction_reason.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/restriction_reason.yaml diff --git a/schemas/20251121/linkml/modules/slots/restriction_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/restriction_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/restriction_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/restriction_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/results_expected_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/results_expected_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/results_expected_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/results_expected_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/retention_period_year.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/retention_period_year.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/retention_period_year.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/retention_period_year.yaml diff --git a/schemas/20251121/linkml/modules/slots/retention_schedule.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/retention_schedule.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/retention_schedule.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/retention_schedule.yaml diff --git a/schemas/20251121/linkml/modules/slots/retention_tracking.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/retention_tracking.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/retention_tracking.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/retention_tracking.yaml diff --git a/schemas/20251121/linkml/modules/slots/retrieval_agent.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/retrieval_agent.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/retrieval_agent.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/retrieval_agent.yaml diff --git a/schemas/20251121/linkml/modules/slots/retrieval_method.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/retrieval_method.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/retrieval_method.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/retrieval_method.yaml diff --git a/schemas/20251121/linkml/modules/slots/retrieval_timestamp.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/retrieval_timestamp.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/retrieval_timestamp.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/retrieval_timestamp.yaml diff --git a/schemas/20251121/linkml/modules/slots/retrieved_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/retrieved_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/retrieved_by.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/retrieved_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/retrieved_on.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/retrieved_on.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/retrieved_on.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/retrieved_on.yaml diff --git a/schemas/20251121/linkml/modules/slots/return_condition_report_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/return_condition_report_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/return_condition_report_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/return_condition_report_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/revenue_category.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/revenue_category.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/revenue_category.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/revenue_category.yaml diff --git a/schemas/20251121/linkml/modules/slots/review_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/review_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/review_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/review_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/review_status.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/review_status.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/review_status.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/review_status.yaml diff --git a/schemas/20251121/linkml/modules/slots/revision_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/revision_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/revision_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/revision_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/revision_number.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/revision_number.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/revision_number.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/revision_number.yaml diff --git a/schemas/20251121/linkml/modules/slots/rights_statement.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/rights_statement.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/rights_statement.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/rights_statement.yaml diff --git a/schemas/20251121/linkml/modules/slots/rights_statement_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/rights_statement_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/rights_statement_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/rights_statement_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/role_category.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/role_category.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/role_category.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/role_category.yaml diff --git a/schemas/20251121/linkml/modules/slots/role_end_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/role_end_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/role_end_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/role_end_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/role_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/role_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/role_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/role_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/role_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/role_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/role_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/role_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/role_name_local.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/role_name_local.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/role_name_local.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/role_name_local.yaml diff --git a/schemas/20251121/linkml/modules/slots/role_start_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/role_start_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/role_start_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/role_start_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/role_title.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/role_title.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/role_title.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/role_title.yaml diff --git a/schemas/20251121/linkml/modules/slots/route_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/route_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/route_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/route_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/route_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/route_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/route_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/route_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/route_keyword.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/route_keyword.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/route_keyword.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/route_keyword.yaml diff --git a/schemas/20251121/linkml/modules/slots/route_relevance_to_heritage.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/route_relevance_to_heritage.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/route_relevance_to_heritage.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/route_relevance_to_heritage.yaml diff --git a/schemas/20251121/linkml/modules/slots/route_title.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/route_title.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/route_title.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/route_title.yaml diff --git a/schemas/20251121/linkml/modules/slots/row_number.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/row_number.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/row_number.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/row_number.yaml diff --git a/schemas/20251121/linkml/modules/slots/safeguarded_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/safeguarded_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/safeguarded_by.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/safeguarded_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/safeguarding_measure.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/safeguarding_measure.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/safeguarding_measure.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/safeguarding_measure.yaml diff --git a/schemas/20251121/linkml/modules/slots/safety_certification.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/safety_certification.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/safety_certification.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/safety_certification.yaml diff --git a/schemas/20251121/linkml/modules/slots/sales_activity.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/sales_activity.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/sales_activity.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/sales_activity.yaml diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/new/sampling_protocol.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/sampling_protocol.yaml new file mode 100644 index 0000000000..d2993830e7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/new/sampling_protocol.yaml @@ -0,0 +1,13 @@ +id: https://nde.nl/ontology/hc/slot/sampling_protocol +name: sampling_protocol +imports: + - linkml:types +slots: + sampling_protocol: + description: Method used to collect the specimen. Maps to dwc:samplingProtocol. + range: string + slot_uri: dwc:samplingProtocol + examples: + - value: UV light trap + - value: Mist net + - value: Hand collection diff --git a/schemas/20251121/linkml/modules/slots/scene_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/scene_count.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/scene_count.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/scene_count.yaml diff --git a/schemas/20251121/linkml/modules/slots/scene_types_detected.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/scene_types_detected.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/scene_types_detected.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/scene_types_detected.yaml diff --git a/schemas/20251121/linkml/modules/slots/scheme_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/scheme_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/scheme_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/scheme_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/scheme_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/scheme_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/scheme_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/scheme_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/scheme_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/scheme_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/scheme_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/scheme_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/scheme_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/scheme_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/scheme_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/scheme_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/scheme_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/scheme_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/scheme_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/scheme_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/scope.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/scope.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/scope.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/scope.yaml diff --git a/schemas/20251121/linkml/modules/slots/scope_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/scope_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/scope_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/scope_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/scope_exclude.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/scope_exclude.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/scope_exclude.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/scope_exclude.yaml diff --git a/schemas/20251121/linkml/modules/slots/scope_include.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/scope_include.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/scope_include.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/scope_include.yaml diff --git a/schemas/20251121/linkml/modules/slots/scrape_method.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/scrape_method.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/scrape_method.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/scrape_method.yaml diff --git a/schemas/20251121/linkml/modules/slots/scraped_timestamp.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/scraped_timestamp.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/scraped_timestamp.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/scraped_timestamp.yaml diff --git a/schemas/20251121/linkml/modules/slots/script_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/script_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/script_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/script_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/seasonal_hour.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/seasonal_hour.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/seasonal_hour.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/seasonal_hour.yaml diff --git a/schemas/20251121/linkml/modules/slots/seating_capacity.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/seating_capacity.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/seating_capacity.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/seating_capacity.yaml diff --git a/schemas/20251121/linkml/modules/slots/secondary.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/secondary.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/secondary.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/secondary.yaml diff --git a/schemas/20251121/linkml/modules/slots/section_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/section_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/section_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/section_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/secularization_status.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/secularization_status.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/secularization_status.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/secularization_status.yaml diff --git a/schemas/20251121/linkml/modules/slots/security_level.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/security_level.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/security_level.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/security_level.yaml diff --git a/schemas/20251121/linkml/modules/slots/segment_confidence.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/segment_confidence.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/segment_confidence.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/segment_confidence.yaml diff --git a/schemas/20251121/linkml/modules/slots/segment_end_seconds.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/segment_end_seconds.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/segment_end_seconds.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/segment_end_seconds.yaml diff --git a/schemas/20251121/linkml/modules/slots/segment_index.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/segment_index.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/segment_index.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/segment_index.yaml diff --git a/schemas/20251121/linkml/modules/slots/segment_language.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/segment_language.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/segment_language.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/segment_language.yaml diff --git a/schemas/20251121/linkml/modules/slots/segment_start_seconds.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/segment_start_seconds.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/segment_start_seconds.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/segment_start_seconds.yaml diff --git a/schemas/20251121/linkml/modules/slots/segment_text.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/segment_text.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/segment_text.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/segment_text.yaml diff --git a/schemas/20251121/linkml/modules/slots/sensory_heritage_domain.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/sensory_heritage_domain.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/sensory_heritage_domain.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/sensory_heritage_domain.yaml diff --git a/schemas/20251121/linkml/modules/slots/sentence_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/sentence_count.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/sentence_count.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/sentence_count.yaml diff --git a/schemas/20251121/linkml/modules/slots/served_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/served_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/served_by.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/served_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/serves_finding_aid.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/serves_finding_aid.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/serves_finding_aid.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/serves_finding_aid.yaml diff --git a/schemas/20251121/linkml/modules/slots/serves_function_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/serves_function_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/serves_function_of.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/serves_function_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/serves_or_served.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/serves_or_served.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/serves_or_served.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/serves_or_served.yaml diff --git a/schemas/20251121/linkml/modules/slots/serves_staff.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/serves_staff.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/serves_staff.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/serves_staff.yaml diff --git a/schemas/20251121/linkml/modules/slots/serves_visitors_only.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/serves_visitors_only.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/serves_visitors_only.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/serves_visitors_only.yaml diff --git a/schemas/20251121/linkml/modules/slots/service_area.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/service_area.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/service_area.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/service_area.yaml diff --git a/schemas/20251121/linkml/modules/slots/service_area_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/service_area_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/service_area_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/service_area_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/service_area_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/service_area_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/service_area_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/service_area_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/service_area_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/service_area_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/service_area_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/service_area_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/service_area_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/service_area_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/service_area_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/service_area_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/service_offering.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/service_offering.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/service_offering.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/service_offering.yaml diff --git a/schemas/20251121/linkml/modules/slots/service_portfolio.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/service_portfolio.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/service_portfolio.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/service_portfolio.yaml diff --git a/schemas/20251121/linkml/modules/slots/services_offered.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/services_offered.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/services_offered.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/services_offered.yaml diff --git a/schemas/20251121/linkml/modules/slots/setpoint_max.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/setpoint_max.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/setpoint_max.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/setpoint_max.yaml diff --git a/schemas/20251121/linkml/modules/slots/setpoint_min.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/setpoint_min.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/setpoint_min.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/setpoint_min.yaml diff --git a/schemas/20251121/linkml/modules/slots/setpoint_tolerance.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/setpoint_tolerance.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/setpoint_tolerance.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/setpoint_tolerance.yaml diff --git a/schemas/20251121/linkml/modules/slots/setpoint_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/setpoint_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/setpoint_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/setpoint_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/setpoint_unit.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/setpoint_unit.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/setpoint_unit.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/setpoint_unit.yaml diff --git a/schemas/20251121/linkml/modules/slots/setpoint_value.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/setpoint_value.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/setpoint_value.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/setpoint_value.yaml diff --git a/schemas/20251121/linkml/modules/slots/settlement.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/settlement.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/settlement.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/settlement.yaml diff --git a/schemas/20251121/linkml/modules/slots/settlement_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/settlement_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/settlement_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/settlement_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/sex.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/sex.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/sex.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/sex.yaml diff --git a/schemas/20251121/linkml/modules/slots/shares_catalog_with_main.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/shares_catalog_with_main.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/shares_catalog_with_main.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/shares_catalog_with_main.yaml diff --git a/schemas/20251121/linkml/modules/slots/shelf_mark.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/shelf_mark.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/shelf_mark.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/shelf_mark.yaml diff --git a/schemas/20251121/linkml/modules/slots/shelf_number.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/shelf_number.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/shelf_number.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/shelf_number.yaml diff --git a/schemas/20251121/linkml/modules/slots/shipping_method.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/shipping_method.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/shipping_method.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/shipping_method.yaml diff --git a/schemas/20251121/linkml/modules/slots/shop_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/shop_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/shop_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/shop_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/short_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/short_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/short_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/short_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/silence_total_seconds.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/silence_total_seconds.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/silence_total_seconds.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/silence_total_seconds.yaml diff --git a/schemas/20251121/linkml/modules/slots/site_portfolio.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/site_portfolio.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/site_portfolio.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/site_portfolio.yaml diff --git a/schemas/20251121/linkml/modules/slots/skill.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/skill.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/skill.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/skill.yaml diff --git a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/slot_fixes.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/slot_fixes.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/slot_fixes.yaml diff --git a/schemas/20251121/linkml/modules/slots/slug.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/slug.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/slug.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/slug.yaml diff --git a/schemas/20251121/linkml/modules/slots/snr_db.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/snr_db.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/snr_db.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/snr_db.yaml diff --git a/schemas/20251121/linkml/modules/slots/social_media_example_profile.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_example_profile.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/social_media_example_profile.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_example_profile.yaml diff --git a/schemas/20251121/linkml/modules/slots/social_media_feature.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_feature.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/social_media_feature.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_feature.yaml diff --git a/schemas/20251121/linkml/modules/slots/social_media_heritage_use_case.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_heritage_use_case.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/social_media_heritage_use_case.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_heritage_use_case.yaml diff --git a/schemas/20251121/linkml/modules/slots/social_media_platform_category.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_platform_category.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/social_media_platform_category.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_platform_category.yaml diff --git a/schemas/20251121/linkml/modules/slots/social_media_platform_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_platform_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/social_media_platform_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_platform_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/social_media_platform_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_platform_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/social_media_platform_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_platform_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/social_media_platform_type_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_platform_type_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/social_media_platform_type_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_platform_type_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/social_media_profile_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_profile_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/social_media_profile_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_profile_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/social_media_url_pattern.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_url_pattern.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/social_media_url_pattern.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_url_pattern.yaml diff --git a/schemas/20251121/linkml/modules/slots/social_media_wikidata_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_wikidata_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/social_media_wikidata_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/social_media_wikidata_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/society_focus.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/society_focus.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/society_focus.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/society_focus.yaml diff --git a/schemas/20251121/linkml/modules/slots/sound_events_detected.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/sound_events_detected.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/sound_events_detected.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/sound_events_detected.yaml diff --git a/schemas/20251121/linkml/modules/slots/source.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/source.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/source.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/source.yaml diff --git a/schemas/20251121/linkml/modules/slots/source_creator.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/source_creator.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/source_creator.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/source_creator.yaml diff --git a/schemas/20251121/linkml/modules/slots/source_dataset.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/source_dataset.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/source_dataset.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/source_dataset.yaml diff --git a/schemas/20251121/linkml/modules/slots/source_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/source_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/source_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/source_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/source_file.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/source_file.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/source_file.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/source_file.yaml diff --git a/schemas/20251121/linkml/modules/slots/source_language_auto_detected.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/source_language_auto_detected.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/source_language_auto_detected.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/source_language_auto_detected.yaml diff --git a/schemas/20251121/linkml/modules/slots/source_metadata.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/source_metadata.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/source_metadata.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/source_metadata.yaml diff --git a/schemas/20251121/linkml/modules/slots/source_organization.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/source_organization.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/source_organization.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/source_organization.yaml diff --git a/schemas/20251121/linkml/modules/slots/source_section.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/source_section.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/source_section.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/source_section.yaml diff --git a/schemas/20251121/linkml/modules/slots/source_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/source_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/source_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/source_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/source_uri.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/source_uri.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/source_uri.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/source_uri.yaml diff --git a/schemas/20251121/linkml/modules/slots/source_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/source_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/source_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/source_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/source_video.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/source_video.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/source_video.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/source_video.yaml diff --git a/schemas/20251121/linkml/modules/slots/source_video_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/source_video_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/source_video_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/source_video_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/space_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/space_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/space_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/space_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/space_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/space_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/space_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/space_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/sparql_endpoint.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/sparql_endpoint.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/sparql_endpoint.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/sparql_endpoint.yaml diff --git a/schemas/20251121/linkml/modules/slots/spatial_resolution.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/spatial_resolution.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/spatial_resolution.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/spatial_resolution.yaml diff --git a/schemas/20251121/linkml/modules/slots/speaker_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/speaker_count.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/speaker_count.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/speaker_count.yaml diff --git a/schemas/20251121/linkml/modules/slots/speaker_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/speaker_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/speaker_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/speaker_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/speaker_label.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/speaker_label.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/speaker_label.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/speaker_label.yaml diff --git a/schemas/20251121/linkml/modules/slots/special_collection.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/special_collection.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/special_collection.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/special_collection.yaml diff --git a/schemas/20251121/linkml/modules/slots/special_requirement.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/special_requirement.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/special_requirement.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/special_requirement.yaml diff --git a/schemas/20251121/linkml/modules/slots/specialized_place.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/specialized_place.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/specialized_place.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/specialized_place.yaml diff --git a/schemas/20251121/linkml/modules/slots/specification_url.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/specification_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/specification_url.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/specification_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/specificity_agent.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/specificity_agent.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/specificity_agent.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/specificity_agent.yaml diff --git a/schemas/20251121/linkml/modules/slots/specificity_rationale.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/specificity_rationale.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/specificity_rationale.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/specificity_rationale.yaml diff --git a/schemas/20251121/linkml/modules/slots/specificity_score.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/specificity_score.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/specificity_score.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/specificity_score.yaml diff --git a/schemas/20251121/linkml/modules/slots/specificity_timestamp.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/specificity_timestamp.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/specificity_timestamp.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/specificity_timestamp.yaml diff --git a/schemas/20251121/linkml/modules/slots/specifies_or_specified.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/specifies_or_specified.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/specifies_or_specified.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/specifies_or_specified.yaml diff --git a/schemas/20251121/linkml/modules/slots/specimen_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/specimen_count.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/specimen_count.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/specimen_count.yaml diff --git a/schemas/20251121/linkml/modules/slots/specimen_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/specimen_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/specimen_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/specimen_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/spectrum_procedure.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/spectrum_procedure.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/spectrum_procedure.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/spectrum_procedure.yaml diff --git a/schemas/20251121/linkml/modules/slots/speech_detected.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/speech_detected.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/speech_detected.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/speech_detected.yaml diff --git a/schemas/20251121/linkml/modules/slots/speech_language.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/speech_language.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/speech_language.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/speech_language.yaml diff --git a/schemas/20251121/linkml/modules/slots/speech_language_confidence.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/speech_language_confidence.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/speech_language_confidence.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/speech_language_confidence.yaml diff --git a/schemas/20251121/linkml/modules/slots/speech_text.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/speech_text.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/speech_text.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/speech_text.yaml diff --git a/schemas/20251121/linkml/modules/slots/square_meters.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/square_meters.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/square_meters.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/square_meters.yaml diff --git a/schemas/20251121/linkml/modules/slots/staff_count.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/staff_count.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/staff_count.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/staff_count.yaml diff --git a/schemas/20251121/linkml/modules/slots/staff_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/staff_id.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/staff_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/staff_id.yaml diff --git a/schemas/20251121/linkml/modules/slots/staff_impact.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/staff_impact.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/staff_impact.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/staff_impact.yaml diff --git a/schemas/20251121/linkml/modules/slots/staff_role.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/staff_role.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/staff_role.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/staff_role.yaml diff --git a/schemas/20251121/linkml/modules/slots/standardized_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/standardized_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/standardized_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/standardized_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/standards_applied.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/standards_applied.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/standards_applied.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/standards_applied.yaml diff --git a/schemas/20251121/linkml/modules/slots/standards_compliance.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/standards_compliance.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/standards_compliance.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/standards_compliance.yaml diff --git a/schemas/20251121/linkml/modules/slots/start.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/start.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/start.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/start.yaml diff --git a/schemas/20251121/linkml/modules/slots/start_of_the_start.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/start_of_the_start.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/start_of_the_start.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/start_of_the_start.yaml diff --git a/schemas/20251121/linkml/modules/slots/start_seconds.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/start_seconds.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/start_seconds.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/start_seconds.yaml diff --git a/schemas/20251121/linkml/modules/slots/start_time.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/start_time.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/start_time.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/start_time.yaml diff --git a/schemas/20251121/linkml/modules/slots/started_at_time.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/started_at_time.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/started_at_time.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/started_at_time.yaml diff --git a/schemas/20251121/linkml/modules/slots/starts_or_started_at_location.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/starts_or_started_at_location.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/starts_or_started_at_location.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/starts_or_started_at_location.yaml diff --git a/schemas/20251121/linkml/modules/slots/statement_currency.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/statement_currency.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/statement_currency.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/statement_currency.yaml diff --git a/schemas/20251121/linkml/modules/slots/statement_description.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/statement_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/statement_description.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/statement_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/statement_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/statement_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/statement_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/statement_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/statement_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/statement_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/statement_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/statement_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/states_or_stated.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/states_or_stated.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/states_or_stated.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/states_or_stated.yaml diff --git a/schemas/20251121/linkml/modules/slots/stores_or_stored.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/stores_or_stored.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/stores_or_stored.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/stores_or_stored.yaml diff --git a/schemas/20251121/linkml/modules/slots/supersedes_or_superseded.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/supersedes_or_superseded.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/supersedes_or_superseded.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/supersedes_or_superseded.yaml diff --git a/schemas/20251121/linkml/modules/slots/takes_or_took_comission.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/takes_or_took_comission.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/takes_or_took_comission.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/takes_or_took_comission.yaml diff --git a/schemas/20251121/linkml/modules/slots/takes_or_took_place_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/takes_or_took_place_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/takes_or_took_place_at.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/takes_or_took_place_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/temporal_extent.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/temporal_extent.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/temporal_extent.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/temporal_extent.yaml diff --git a/schemas/20251121/linkml/modules/slots/transmits_or_transmitted_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/transmits_or_transmitted_through.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/transmits_or_transmitted_through.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/transmits_or_transmitted_through.yaml diff --git a/schemas/20251121/linkml/modules/slots/uses_or_used.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/uses_or_used.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/uses_or_used.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/uses_or_used.yaml diff --git a/schemas/20251121/linkml/modules/slots/uses_or_used_technique.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/uses_or_used_technique.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/uses_or_used_technique.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/uses_or_used_technique.yaml diff --git a/schemas/20251121/linkml/modules/slots/warrants_or_warranted.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/warrants_or_warranted.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/warrants_or_warranted.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/warrants_or_warranted.yaml diff --git a/schemas/20251121/linkml/modules/slots/was_acquired_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/was_acquired_through.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/was_acquired_through.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/was_acquired_through.yaml diff --git a/schemas/20251121/linkml/modules/slots/was_fetched_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/new/was_fetched_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/was_fetched_at.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/new/was_fetched_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/observed_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/observed_by.yaml new file mode 100644 index 0000000000..f22fee112e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/observed_by.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/observed_by +name: observed_by +title: observed_by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + observed_by: + name: observed_by + title: observed_by + description: Agent or sensor that observed the entity. + slot_uri: hc:observedBy + range: string # uriorcurie + aliases: + - is_or_was_observed_by + annotations: + custodian_types: '["*"]' + exact_mappings: + - sosa:madeBySensor diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/opened_on.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/opened_on.yaml new file mode 100644 index 0000000000..371920f673 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/opened_on.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/opened_on +name: opened_on +title: opened_on +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + opened_on: + name: opened_on + title: opened_on + description: Date when the entity was opened. + slot_uri: hc:openedOn + range: date + aliases: + - is_or_was_opened_on + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/operated_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/operated_by.yaml new file mode 100644 index 0000000000..1fc345deab --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/operated_by.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/operated_by +name: operated_by +title: operated by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + operated_by: + slot_uri: hc:operatedBy + description: 'The agent operating the platform or facility. + + + MIGRATED 2026-02-03 from is_or_was_operated_by for conciseness.' + range: string + multivalued: true + aliases: + - is_or_was_operated_by + exact_mappings: + - schema:provider + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/originate.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/originate.yaml new file mode 100644 index 0000000000..be4229f18c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/originate.yaml @@ -0,0 +1,112 @@ +# ============================================================================== +# LinkML Slot Definition: originate +# ============================================================================== +# To have a specified beginning or provenance, arising from a particular source, +# location, cause, or starting point. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **PROV-O** | `prov:atLocation` | prov.ttl:501-510 | slot_uri| Location at which event occurred | +# | **PROV-O** | `prov:atLocation` | prov.ttl:501-510 | exact | Same as slot_uri | +# +# HIERARCHY: prov:atLocation has no rdfs:subPropertyOf declaration +# (per prov.ttl:501 editorial note: naming parallels prov:atTime) +# +# CREATED: 2026-01-20 +# UPDATED: 2026-02-03 - Added header documentation +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/originate +name: originate +title: originate +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + originate: + name: originate + description: >- + To have a specified beginning or provenance, arising from a particular + source, location, cause, or starting point. + alt_descriptions: + nl: >- + Om een bepaald begin of herkomst te hebben, voortkomend uit een + specifieke bron, locatie, oorzaak of startpunt. + de: >- + Einen bestimmten Anfang oder eine Herkunft zu haben, die aus einer + bestimmten Quelle, einem Ort, einer Ursache oder einem Ausgangspunkt + hervorgeht. + fr: >- + Avoir un début ou une provenance spécifique, découlant d'une source, + d'un lieu, d'une cause ou d'un point de départ particulier. + ar: >- + أن يكون له بداية أو مصدر محدد، ناشئ من مصدر أو موقع أو سبب أو + نقطة انطلاق معينة. + id: >- + Memiliki awal atau asal-usul tertentu, berasal dari sumber, lokasi, + penyebab, atau titik awal tertentu. + zh: >- + 具有特定的起始或来源,源自特定的来源、位置、原因或起点。 + es: >- + Tener un comienzo o procedencia especificado, surgiendo de una fuente, + ubicación, causa o punto de partida particular. + structured_aliases: + - literal_form: herkomst + - is_or_was_originate + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Ursprung + predicate: EXACT_SYNONYM + in_language: de + - literal_form: origine + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مصدر + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: asal + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 起源 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: origen + predicate: EXACT_SYNONYM + in_language: es + slot_uri: prov:atLocation + range: string # uriorcurie + multivalued: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:atLocation + aliases: + - has_or_had_origin + - is_or_was_originate + comments: + - MIGRATED from from_location per Rule 53. Follows RiC-O naming convention. + - Updated 2026-02-03 with header documentation + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **PROV-O** | `prov:atLocation` | 501-510 | slot_uri/exact | Location of event | + - | + **PROV-O USAGE NOTE**: + prov:atLocation is used to specify the location at which an Activity, + Generation, Usage, or other Influence occurred. It does NOT have an + rdfs:subPropertyOf hierarchy - the naming parallels prov:atTime. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/owned_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/owned_by.yaml new file mode 100644 index 0000000000..43dfafc9da --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/owned_by.yaml @@ -0,0 +1,142 @@ +# ============================================================================== +# LinkML Slot Definition: owned_by +# ============================================================================== +# To be held in legal possession or custody by a specific agent or entity +# responsible for its control or maintenance. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|------------------------------|-------------------|----------|------------------------------------------| +# | **RiC-O** | `rico:hasOrHadHolder` | RiC-O L6437 | slot_uri | Holder relationship. | +# | | | | exact | | +# | **RiC-O** | `rico:hasOrHadManager` | RiC-O L6926 | broad | Parent (hasOrHadHolder subPropertyOf). | +# | **CIDOC-CRM** | `crm:P51_has_former_or_current_owner`| CIDOC_CRM | close | Ownership history. | +# | **Schema.org** | `schema:owns` | schemaorg.owl | related | Ownership (inverse direction). | +# +# CREATED: 2026-01-15 +# UPDATED: 2026-02-03 - Added header, broad_mappings, moved comments from description +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/owned_by +name: owned_by +title: Owned By +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + owned_by: + slot_uri: rico:hasOrHadHolder + description: >- + To be held in legal possession or custody by a specific agent or entity + responsible for its control or maintenance. + alt_descriptions: + nl: >- + Om in wettelijk bezit of bewaring te worden gehouden door een specifieke + agent of entiteit die verantwoordelijk is voor de controle of het + onderhoud ervan. + de: >- + Im rechtlichen Besitz oder in der Obhut eines bestimmten Akteurs oder + einer Entität gehalten zu werden, die für die Kontrolle oder Wartung + verantwortlich ist. + fr: >- + Être détenu en possession légale ou en garde par un agent ou une + entité spécifique responsable de son contrôle ou de son entretien. + ar: >- + أن يكون في حيازة قانونية أو عهدة وكيل أو كيان محدد مسؤول عن + التحكم فيه أو صيانته. + id: >- + Dimiliki secara sah atau dalam pengawasan oleh agen atau entitas + tertentu yang bertanggung jawab atas kontrol atau pemeliharaannya. + zh: >- + 由负责其控制或维护的特定代理人或实体合法持有或保管。 + es: >- + Estar en posesión legal o custodia de un agente o entidad específico + responsable de su control o mantenimiento. + structured_aliases: + - literal_form: eigendom van + - is_or_was_owned_by + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: im Besitz von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: propriété de + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: ملك لـ + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dimiliki oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 所有者 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: propiedad de + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + required: false + multivalued: true + exact_mappings: + - rico:hasOrHadHolder + close_mappings: + - crm:P51_has_former_or_current_owner + broad_mappings: + - rico:hasOrHadManager # RiC-O: Parent property (hasOrHadHolder rdfs:subPropertyOf hasOrHadManager, line 6438) + - rico:isOrWasUnderAuthorityOf # RiC-O: Grandparent (hasOrHadManager rdfs:subPropertyOf isOrWasUnderAuthorityOf, line 6927) + related_mappings: + - schema:owns + aliases: + - has_or_had_owner + - is_or_was_owned_by + annotations: + migration_date: '2026-01-15' + custodian_types: '["*"]' + examples: + - value: Johann Wolfgang von Goethe + description: Personal owner (historical) + - value: Royal Library of Prussia + description: Institutional owner + - value: Rijksmuseum Amsterdam + description: Current institutional owner + comments: + - Ownership relationship for provenance tracking. + - Multivalued for ownership chains. + - | + **TEMPORAL SEMANTICS**: + This relationship may be historical - ownership changes over time through + sales, gifts, inheritance, or institutional transfers. + - | + **PROVENANCE SIGNIFICANCE**: + Ownership is crucial for provenance research: + - Document historical ownership chains + - Connect items to notable collectors + - Evidence for restitution claims + - Institutional vs. personal ownership + - | + **USAGE**: + For bookplates, ownership marks, provenance records, and collection histories. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **RiC-O** | `rico:hasOrHadHolder` | 6437 | slot_uri, exact | Holder relationship | + | **RiC-O** | `rico:hasOrHadManager` | 6926 | broad | Parent property | + | **RiC-O** | `rico:isOrWasUnderAuthorityOf` | 6927 | broad | Grandparent property | + | **CIDOC-CRM** | `crm:P51_has_former_or_current_owner` | - | close | Ownership history | + | **Schema.org** | `schema:owns` | - | related | Ownership (inverse) | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/part_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/part_of.yaml new file mode 100644 index 0000000000..684a5eb1a6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/part_of.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/part_of +name: part_of +title: part_of +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + part_of: + name: part_of + title: part_of + description: The larger entity of which this entity is a part. + slot_uri: hc:partOf + range: string # uriorcurie + aliases: + - is_or_was_part_of + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:isPartOf + - schema:isPartOf diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/part_of_archive_series.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/part_of_archive_series.yaml new file mode 100644 index 0000000000..3eadb5da0a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/part_of_archive_series.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/part_of_archive_series +name: part_of_archive_series +title: part of archive series +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + part_of_archive_series: + slot_uri: hc:partOfArchiveSeries + description: 'Main archival series held by this departmental archive. + + Based on standard French classification. + + + + MIGRATED 2026-02-03 from is_or_was_part_of_archive_series for conciseness.' + range: string + multivalued: true + aliases: + - is_or_was_part_of_archive_series + exact_mappings: + - rico:isOrWasIncludedIn + close_mappings: + - dcterms:isPartOf + annotations: + custodian_types: '["A"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.85 + specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/part_of_total.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/part_of_total.yaml new file mode 100644 index 0000000000..f74e08fe8d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/part_of_total.yaml @@ -0,0 +1,45 @@ +id: https://nde.nl/ontology/hc/slot/part_of_total +name: part_of_total +title: part of total +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + part_of_total: + slot_uri: hc:partOfTotal + description: "Indicates a partial count as part of a total.\n\n**PURPOSE**:\n\n\ + Links a fetched/partial count to the total count at the source.\nUsed for tracking\ + \ partial data retrieval (e.g., fetched 100 of 500 comments).\n\n**RiC-O NAMING**\ + \ (Rule 39):\n\nUses \"is_or_was_\" prefix indicating temporal relationship\ + \ - \nthe partial count is or was part of a total.\n\n**USE CASES**:\n\n- Comments:\ + \ 100 fetched out of 500 total\n- Search results: 25 returned out of 1000 matches\n\ + - Paginated data: page 1 of 50 pages\n\n**MIGRATION NOTE**:\n\nCreated from\ + \ migration of `comments_fetched` slot per slot_fixes.yaml.\nWorks with SourceCommentCount\ + \ class for structured count metadata.\n\n\nMIGRATED 2026-02-03 from is_or_was_part_of_total\ + \ for conciseness." + range: string + multivalued: true + aliases: + - is_or_was_part_of_total + close_mappings: + - schema:partOfTotalCount + annotations: + custodian_types: '["*"]' + examples: + - value: + fetched_count: 100 + total_count: 500 + fetch_complete: false + description: 100 of 500 comments fetched + comments: + - Created 2026-01-22 from comments_fetched migration (Rule 53) + - Uses RiC-O temporal naming convention (Rule 39) + - Tracks partial vs total counts for paginated data diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/participate_in.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/participate_in.yaml new file mode 100644 index 0000000000..573916eebd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/participate_in.yaml @@ -0,0 +1,100 @@ +# ============================================================================== +# LinkML Slot Definition: participate_in +# ============================================================================== +# To take part in, become involved with, or have a share in a specific activity, +# event, or process. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **PROV-O** | `prov:hadActivity` | prov.ttl:641-648 | exact | Activity involved in generation | +# | **CIDOC-CRM** | `crm:P11_had_participant`| CIDOC_CRM | close | Participation in event | +# +# CREATED: 2026-01-20 +# UPDATED: 2026-02-03 - Added header, multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/participate_in +name: participate_in +title: Participate In +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: + - linkml:types +slots: + participate_in: + slot_uri: prov:hadActivity + description: >- + To take part in, become involved with, or have a share in a specific + activity, event, or process. + alt_descriptions: + nl: >- + Om deel te nemen aan, betrokken te raken bij, of een aandeel te + hebben in een specifieke activiteit, gebeurtenis of proces. + de: >- + An einer bestimmten Aktivität, einem Ereignis oder einem Prozess + teilzunehmen, sich zu beteiligen oder einen Anteil daran zu haben. + fr: >- + Prendre part à, s'impliquer dans ou avoir une part dans une activité, + un événement ou un processus spécifique. + ar: >- + المشاركة في نشاط أو حدث أو عملية محددة أو الانخراط فيها أو + الحصول على حصة منها. + id: >- + Mengambil bagian dalam, terlibat dengan, atau memiliki bagian dalam + aktivitas, peristiwa, atau proses tertentu. + zh: >- + 参与、涉及或分享特定活动、事件或过程。 + es: >- + Participar en, involucrarse con o tener una parte en una actividad, + evento o proceso específico. + structured_aliases: + - literal_form: deelnemen aan + - is_or_was_participate_in + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: teilnehmen an + predicate: EXACT_SYNONYM + in_language: de + - literal_form: participer à + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: المشاركة في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: berpartisipasi dalam + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 参与 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: participar en + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + exact_mappings: + - prov:hadActivity + close_mappings: + - crm:P11_had_participant + aliases: + - participates_or_participated_in + - is_or_was_participate_in + annotations: + custodian_types: '["*"]' + examples: + - value: hc:event/exhibition-opening-2025 + description: Participation in an exhibition opening event + - value: hc:activity/conservation-project + description: Participation in a conservation project diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/participated_in.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/participated_in.yaml new file mode 100644 index 0000000000..ce279d1866 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/participated_in.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/participated_in +name: participated_in +title: participated_in +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + participated_in: + name: participated_in + description: Indicates that an entity participated in an event, project, or funding call. MIGRATED 2026-02-03 from has_or_had_participated_in for conciseness. + slot_uri: hc:participatedIn + range: string + multivalued: true + aliases: + - has_or_had_participated_in + - is_or_was_participated_in + annotations: + custodian_types: '["*"]' + exact_mappings: + - rico:isOrWasParticipantIn diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/platform_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/platform_of.yaml new file mode 100644 index 0000000000..1a8b50c5da --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/platform_of.yaml @@ -0,0 +1,69 @@ +id: https://nde.nl/ontology/hc/slot/platform_of +name: platform_of +title: platform of +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + platform_of: + slot_uri: hc:platformOf + description: 'The custodian that operates or operated this digital platform. + + + **RiC-O Temporal Pattern**: Uses `isOrWas*` pattern because platform + + ownership and operation can change over time: + + - Platform transferred to new operator + + - Platform spun off as independent entity + + - Platform decommissioned and archived + + - Platform acquired by consortium + + + **Example**: + + A discovery portal may have been operated by one institution + + but later transferred to a consortium or national body. + + + + MIGRATED 2026-02-03 from is_or_was_platform_of for conciseness.' + range: string + multivalued: true + aliases: + - is_or_was_platform_of + close_mappings: + - dcterms:isPartOf + - rico:isOrWasPartOf + annotations: + inverse_slot: has_or_had_digital_platform + deprecates: platform_of + rico_pattern: isOrWasPartOf + custodian_types: '["*"]' + examples: + - value: "DigitalPlatform:\n platform_name: \"Rijksstudio\"\n platform_url:\ + \ \"https://www.rijksmuseum.nl/rijksstudio\"\n is_or_was_platform_of: \"\ + https://nde.nl/ontology/hc/nl-nh-ams-m-rm\"\n" + description: Rijksstudio platform operated by Rijksmuseum + comments: + - 'RiC-O pattern: isOrWas* for temporal ownership relationships' + - Inverse of has_or_had_digital_platform + - Links platform back to its operating custodian(s) + - Creates owl:inverseOf axiom in RDF output + - 'Inverse: `has_or_had_digital_platform` | Pattern: If Custodian has_or_had_digital_platform + Platform, then Platform is_or_was_platform_of Custodian' + - 'Navigation: From platform: Find owning custodian (is_or_was_platform_of) | + From custodian: Find digital platforms (has_or_had_digital_platform)' + - 'Deprecates: platform_of (non-temporal naming)' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/position.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/position.yaml new file mode 100644 index 0000000000..38e48d338d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/position.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/position +name: position +title: position +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + position: + name: position + title: position + description: Position or role held by the entity. + slot_uri: hc:position + range: string # uriorcurie + aliases: + - is_or_was_position + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/program_activity.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/program_activity.yaml similarity index 97% rename from schemas/20251121/linkml/modules/slots/archive/program_activity.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/program_activity.yaml index 6f57b8a7fe..6ca589ef11 100644 --- a/schemas/20251121/linkml/modules/slots/archive/program_activity.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/program_activity.yaml @@ -55,6 +55,8 @@ slots: ' range: string slot_uri: schema:knows + aliases: + - is_or_was_program_activity annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/archive/programme_period.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/programme_period.yaml similarity index 98% rename from schemas/20251121/linkml/modules/slots/archive/programme_period.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/programme_period.yaml index d6f3f162e8..1511079e2a 100644 --- a/schemas/20251121/linkml/modules/slots/archive/programme_period.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/programme_period.yaml @@ -19,6 +19,8 @@ slots: programme_period: slot_uri: schema:temporalCoverage range: string # uriorcurie + aliases: + - is_or_was_programme_period # range: TimeSpan description: 'The temporal period during which a funding programme operates. diff --git a/schemas/20251121/linkml/modules/slots/archive/programme_year.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/programme_year.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/programme_year.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/programme_year.yaml index 7bb1ceeeeb..45927b1ce5 100644 --- a/schemas/20251121/linkml/modules/slots/archive/programme_year.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/programme_year.yaml @@ -20,6 +20,8 @@ slots: range: integer description: Programme year or funding cycle slot_uri: hc:programmeYear + aliases: + - is_or_was_programme_year annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/archive/programming_language.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/programming_language.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/programming_language.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/programming_language.yaml index 1e2b4c47b3..e4d801535d 100644 --- a/schemas/20251121/linkml/modules/slots/archive/programming_language.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/programming_language.yaml @@ -37,6 +37,8 @@ slots: ' range: string slot_uri: hc:programmingLanguages + aliases: + - is_or_was_programming_language annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/archive/programs_offered.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/programs_offered.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/programs_offered.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/programs_offered.yaml index cfae061eda..136e93ea4c 100644 --- a/schemas/20251121/linkml/modules/slots/archive/programs_offered.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/programs_offered.yaml @@ -26,6 +26,8 @@ slots: range: string multivalued: true slot_uri: hc:programsOffered + aliases: + - is_or_was_programs_offered annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/archive/prompt_token.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/prompt_token.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/prompt_token.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/prompt_token.yaml index 909b9f3f36..da95f1f914 100644 --- a/schemas/20251121/linkml/modules/slots/archive/prompt_token.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/prompt_token.yaml @@ -25,6 +25,8 @@ slots: ' slot_uri: schema:value range: integer + aliases: + - is_or_was_prompt_token annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/archive/pronoun.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/pronoun.yaml similarity index 99% rename from schemas/20251121/linkml/modules/slots/archive/pronoun.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/pronoun.yaml index 5eeb24e76d..3e6b9658e4 100644 --- a/schemas/20251121/linkml/modules/slots/archive/pronoun.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/pronoun.yaml @@ -38,6 +38,8 @@ slots: - '**Historical/Cultural Records**: Historical and non-Western sources may not have "pronoun preferences" as a concept. Leave empty rather than assuming. For historical persons, pronouns were typically assigned by observers based on perceived gender, not self-determined.' - '**Privacy**: This field may be left empty by choice.' range: string + aliases: + - is_or_was_pronoun examples: - value: she/her description: Feminine pronouns (English) diff --git a/schemas/20251121/linkml/modules/slots/archive/protocol.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/protocol.yaml similarity index 96% rename from schemas/20251121/linkml/modules/slots/archive/protocol.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/protocol.yaml index fd9bb653bb..70412d8087 100644 --- a/schemas/20251121/linkml/modules/slots/archive/protocol.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/protocol.yaml @@ -44,6 +44,8 @@ slots: ' range: string + aliases: + - is_or_was_protocol required: true close_mappings: - dcterms:conformsTo diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/protocol_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/protocol_name.yaml new file mode 100644 index 0000000000..948b8ebcb6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/protocol_name.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/protocol_name +name: protocol_name_slot +title: Protocol Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + protocol_name: + slot_uri: dcterms:conformsTo + description: 'Name of the protocol or standard this endpoint type implements. + + + Dublin Core: conformsTo for standard compliance. + + + Examples: + + - "OAI-PMH" (Open Archives Initiative Protocol for Metadata Harvesting) + + - "IIIF Image API" (International Image Interoperability Framework) + + - "SPARQL" (SPARQL Protocol and RDF Query Language) + + ' + range: string + aliases: + - is_or_was_protocol_name + required: false + annotations: + custodian_types: + - '*' + exact_mappings: + - dcterms:conformsTo diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/protocol_version.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/protocol_version.yaml new file mode 100644 index 0000000000..33cd3caf16 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/protocol_version.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/protocol_version +name: protocol_version_slot +title: Protocol Version Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + protocol_version: + slot_uri: schema:version + description: 'Version of the protocol this endpoint type supports. + + + Schema.org: version for protocol version. + + + Examples: + + - "2.0" (OAI-PMH) + + - "3.0" (IIIF Image API) + + - "1.1" (SPARQL) + + ' + range: string + aliases: + - is_or_was_protocol_version + required: false + annotations: + custodian_types: + - '*' + exact_mappings: + - schema:version diff --git a/schemas/20251121/linkml/modules/slots/archive/provenance.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/provenance.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/provenance.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/provenance.yaml index 37e7b9cff1..4cbc5470cb 100644 --- a/schemas/20251121/linkml/modules/slots/archive/provenance.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/provenance.yaml @@ -20,6 +20,8 @@ slots: slot_uri: prov:wasGeneratedBy description: Provenance information for this metadata record range: string # uriorcurie + aliases: + - is_or_was_provenance # range: FindingAidProvenance inlined: false # Fixed invalid inline for primitive type annotations: diff --git a/schemas/20251121/linkml/modules/slots/archive/provides_access_to.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/provides_access_to.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/provides_access_to.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/provides_access_to.yaml index 5db6e62d4d..bc4f4afafc 100644 --- a/schemas/20251121/linkml/modules/slots/archive/provides_access_to.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/provides_access_to.yaml @@ -28,6 +28,8 @@ slots: ' range: string # uriorcurie slot_uri: hc:providesAccessTo + aliases: + - is_or_was_provides_access_to annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/archive/public_access.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/public_access.yaml similarity index 97% rename from schemas/20251121/linkml/modules/slots/archive/public_access.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/public_access.yaml index b7ec8ebab7..cbd1eaa1a1 100644 --- a/schemas/20251121/linkml/modules/slots/archive/public_access.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/public_access.yaml @@ -53,6 +53,8 @@ slots: ' range: string slot_uri: schema:publicAccess + aliases: + - is_or_was_public_access annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/archive/public_education.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/public_education.yaml similarity index 98% rename from schemas/20251121/linkml/modules/slots/archive/public_education.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/public_education.yaml index fc374e9e41..ac7ee3fba7 100644 --- a/schemas/20251121/linkml/modules/slots/archive/public_education.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/public_education.yaml @@ -22,6 +22,8 @@ slots: \ camps\" - Multi-day youth programs\n- \"Zoo birthday parties\" - Educational celebrations\n- \"Junior zookeeper programs\" - Youth career exploration\n- \"Storytelling sessions\" - Nature-themed narratives\n\n**Digital and Remote Learning**:\n- \"Virtual tours\" - Online 360\xB0 experiences\n- \"Webcams\" - Live animal and plant viewing\n- \"Educational videos\" - Species profiles, conservation topics\n- \"Online learning modules\" - Self-paced education\n\n**Examples**:\n- Artis: [\"School programs\", \"Keeper talks\", \"Zoo academy\", \"Micropia interactive exhibits\"]\n- Hortus Leiden: [\"Guided botanical tours\", \"Plant identification workshops\", \"Gardening courses\"]\n- Monterey Bay Aquarium: [\"Sea otter live cam\", \"Kelp forest tours\", \"Marine science classes\"]\n\n**Ontology Alignment**:\n- Maps to `schema:EducationalEvent` and `schema:Course`\n- Related to `schema:LearningResource` for materials\n" range: string multivalued: true + aliases: + - is_or_was_public_education comments: - schema:EducationalEvent is a class, not a predicate - use hc namespace annotations: diff --git a/schemas/20251121/linkml/modules/slots/archive/publication_output.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/publication_output.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/publication_output.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/publication_output.yaml index 1e29554abd..db5b0d59e9 100644 --- a/schemas/20251121/linkml/modules/slots/archive/publication_output.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/publication_output.yaml @@ -26,6 +26,8 @@ slots: ' range: boolean + aliases: + - is_or_was_publication_output required: false annotations: custodian_types: diff --git a/schemas/20251121/linkml/modules/slots/archive/publication_place.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/publication_place.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/publication_place.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/publication_place.yaml index e9573ea6a9..d357bdda6a 100644 --- a/schemas/20251121/linkml/modules/slots/archive/publication_place.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/publication_place.yaml @@ -22,6 +22,8 @@ slots: ' range: string slot_uri: schema:locationCreated + aliases: + - is_or_was_publication_place annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/archive/publication_series_name.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/publication_series_name.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/publication_series_name.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/publication_series_name.yaml index 1f30241525..a0d80e9282 100644 --- a/schemas/20251121/linkml/modules/slots/archive/publication_series_name.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/publication_series_name.yaml @@ -22,6 +22,8 @@ slots: Ontology mapping: skos:prefLabel is the standard SKOS property for preferred human-readable labels.' range: string slot_uri: skos:prefLabel + aliases: + - is_or_was_publication_series_name close_mappings: - dcterms:title annotations: diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/published.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/published.yaml new file mode 100644 index 0000000000..f4bc6ca3b7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/published.yaml @@ -0,0 +1,47 @@ +# ============================================================================== +# LinkML Slot Definition: published +# ============================================================================== +# Publication status or date of an entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|----------------------|---------|--------------------------------| +# | **Schema.org**| `schema:datePublished`| exact | Publication date | +# | **DCTerms** | `dcterms:issued` | close | Date issued | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/published +name: published +title: Published +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Publication status or date of an entity. +imports: +- linkml:types +slots: + published: + slot_uri: schema:datePublished + description: | + Publication status or date of an entity. + range: string + multivalued: false + exact_mappings: + - schema:datePublished + close_mappings: + - dcterms:issued + aliases: + - is_or_was_published + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/published_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/published_at.yaml new file mode 100644 index 0000000000..5d4f84c69b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/published_at.yaml @@ -0,0 +1,67 @@ +id: https://nde.nl/ontology/hc/slot/published_at +name: published_at +title: published at +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + published_at: + slot_uri: hc:publishedAt + description: 'Publication event for content/document. + + + MIGRATED from published_at slot per Rule 53/56 (2026-01-17). + + Renamed to follow RiC-O temporal naming conventions (Rule 39). + + + Uses PublicationEvent class for structured representation including: + + - Temporal extent (precise or fuzzy via TimeSpan) + + - Optional event label (e.g., "First Edition") + + - Event identifier for tracking + + + **For simple timestamps**: Create PublicationEvent with all four + + TimeSpan boundaries set to the same instant. + + + + MIGRATED 2026-02-03 from is_or_was_published_at for conciseness.' + range: string + multivalued: false + aliases: + - is_or_was_published_at + exact_mappings: + - dcterms:created + - schema:datePublished + close_mappings: + - crm:P4_has_time-span + - prov:atTime + annotations: + custodian_types: '["*"]' + examples: + - value: + temporal_extent: + begin_of_the_begin: '2025-07-30T18:05:15Z' + end_of_the_begin: '2025-07-30T18:05:15Z' + begin_of_the_end: '2025-07-30T18:05:15Z' + end_of_the_end: '2025-07-30T18:05:15Z' + description: Social media post with precise timestamp + - value: + temporal_extent: + begin_of_the_begin: '1892-01-01T00:00:00Z' + end_of_the_end: '1892-12-31T00:00:00Z' + has_or_had_label: Original Edition + description: Historical publication with uncertain date diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/published_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/published_by.yaml new file mode 100644 index 0000000000..e601bddd61 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/published_by.yaml @@ -0,0 +1,52 @@ +id: https://nde.nl/ontology/hc/slot/published_by +name: published_by +title: published by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + published_by: + slot_uri: hc:publishedBy + description: 'The Custodian (heritage institution) that published this dataset. + + Links the dataset to its source institution. + + + MIGRATED from published_by slot per Rule 53/56 (2026-01-17). + + Renamed to follow RiC-O temporal naming conventions (Rule 39). + + + Note: Uses Custodian class (not Publisher) because this slot is + + specifically for datasets published by heritage institutions. + + For commercial publications, use has_or_had_publisher instead. + + + + MIGRATED 2026-02-03 from is_or_was_published_by for conciseness.' + range: string + multivalued: true + aliases: + - is_or_was_published_by + exact_mappings: + - dcterms:publisher + - dcat:publisher + close_mappings: + - schema:publisher + annotations: + custodian_types: '["*"]' + examples: + - value: ghcid:NL-NH-AMS-M-RM + description: Rijksmuseum publishing a dataset to national registry + - value: ghcid:NL-ZH-DHA-A-NA + description: Nationaal Archief publishing linked open data diff --git a/schemas/20251121/linkml/modules/slots/archive/publishes_to.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/publishes_to.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/publishes_to.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/publishes_to.yaml index e603d7aedb..388343b160 100644 --- a/schemas/20251121/linkml/modules/slots/archive/publishes_to.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/publishes_to.yaml @@ -30,6 +30,8 @@ slots: ' range: uri slot_uri: hc:publishesTo + aliases: + - is_or_was_publishes_to annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/archive/purpose.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/purpose.yaml similarity index 96% rename from schemas/20251121/linkml/modules/slots/archive/purpose.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/purpose.yaml index d10d5cfe87..4761d64c2e 100644 --- a/schemas/20251121/linkml/modules/slots/archive/purpose.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/purpose.yaml @@ -35,6 +35,8 @@ slots: ' range: string + aliases: + - is_or_was_purpose annotations: source_section: '**Purpose**:' custodian_types: diff --git a/schemas/20251121/linkml/modules/slots/archive/purpose_clause.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/purpose_clause.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/purpose_clause.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/purpose_clause.yaml index 288f5bc4a2..c86dcbd2b0 100644 --- a/schemas/20251121/linkml/modules/slots/archive/purpose_clause.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/purpose_clause.yaml @@ -20,6 +20,8 @@ slots: description: "The purpose/objects clause (doelstelling) from the articles.\n\nThis defines the organization's permitted activities.\n\n**Heritage custodian example**:\n\"De stichting heeft ten doel het beheren, behouden, en \ntoegankelijk maken van het cultureel erfgoed...\"\n" range: string slot_uri: hc:purposeClause + aliases: + - is_or_was_purpose_clause annotations: custodian_types: - '*' diff --git a/schemas/20251121/linkml/modules/slots/archive/quantity_date.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/quantity_date.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/quantity_date.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/quantity_date.yaml index 2b87f2aa92..49d954c7c5 100644 --- a/schemas/20251121/linkml/modules/slots/archive/quantity_date.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/quantity_date.yaml @@ -22,6 +22,8 @@ slots: description: 'Quantity Date for heritage custodian entities. ' + aliases: + - is_or_was_quantity_date annotations: custodian_types: '["*"]' specificity_score: 0.5 diff --git a/schemas/20251121/linkml/modules/slots/archive/quantity_type.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/quantity_type.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/quantity_type.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/quantity_type.yaml index c9099c7942..a04e3b898a 100644 --- a/schemas/20251121/linkml/modules/slots/archive/quantity_type.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/quantity_type.yaml @@ -22,6 +22,8 @@ slots: description: 'Quantity Type for heritage custodian entities. ' + aliases: + - is_or_was_quantity_type annotations: custodian_types: '["*"]' specificity_score: 0.5 diff --git a/schemas/20251121/linkml/modules/slots/archive/quantity_unit.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/quantity_unit.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/quantity_unit.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/quantity_unit.yaml index 3fb5f1f2d6..5e31ee1cf8 100644 --- a/schemas/20251121/linkml/modules/slots/archive/quantity_unit.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/quantity_unit.yaml @@ -22,6 +22,8 @@ slots: description: 'Quantity Unit for heritage custodian entities. ' + aliases: + - is_or_was_quantity_unit annotations: custodian_types: '["*"]' specificity_score: 0.5 diff --git a/schemas/20251121/linkml/modules/slots/archive/quantity_value.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/quantity_value.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/quantity_value.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/quantity_value.yaml index 846498667d..45d85b74ca 100644 --- a/schemas/20251121/linkml/modules/slots/archive/quantity_value.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/quantity_value.yaml @@ -22,6 +22,8 @@ slots: description: 'Quantity Value for heritage custodian entities. ' + aliases: + - is_or_was_quantity_value annotations: custodian_types: '["*"]' specificity_score: 0.5 diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/recombined.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/recombined.yaml new file mode 100644 index 0000000000..f9a19c7c80 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/recombined.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/recombined +name: recombined +title: recombined +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + recombined: + name: recombined + title: recombined + description: Whether the entity was recombined from other entities. + slot_uri: hc:recombined + range: boolean + aliases: + - is_or_was_recombined + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/related_to.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/related_to.yaml new file mode 100644 index 0000000000..a5cfe605dd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/related_to.yaml @@ -0,0 +1,52 @@ +# ============================================================================== +# LinkML Slot Definition: related_to +# ============================================================================== +# General relationship to another entity. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|-------------------|---------|----------------------------------| +# | **RiC-O** | `rico:isRelatedTo`| exact | RiC-O general relation | +# | **DCTerms** | `dcterms:relation`| close | DC Terms relation | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/related_to +name: related_to +title: Related To +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + General relationship to another entity. +imports: +- linkml:types +slots: + related_to: + slot_uri: rico:isRelatedTo + description: | + General relationship to another entity. + + **DISTINCTION FROM equivalent_to**: + - `equivalent_to`: Semantic identity (same concept) + - `related_to`: Associative (related but distinct) + range: string + multivalued: true + exact_mappings: + - rico:isRelatedTo + close_mappings: + - dcterms:relation + aliases: + - is_or_was_related_to + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/replied_to.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/replied_to.yaml new file mode 100644 index 0000000000..2c8405ff01 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/replied_to.yaml @@ -0,0 +1,143 @@ +# ============================================================================== +# LinkML Slot Definition: replied_to +# ============================================================================== +# Be the recipient of a response or counter-communication generated by another +# entity in answer to a prior action or message. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **Schema.org**| `schema:parentItem` | schemaorg.owl:28852 | exact | Parent in Q/A thread | +# | **Schema.org**| `schema:comment` | schemaorg.owl:12267 | close | Inverse direction | +# | **Schema.org**| `schema:replyToUrl` | schemaorg.owl:33100 | related | URL for posting reply | +# +# CREATED: 2026-01-22 +# UPDATED: 2026-02-02 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/replied_to +name: replied_to +title: replied to +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ +imports: + - linkml:types +default_prefix: hc +slots: + replied_to: + slot_uri: schema:parentItem + description: >- + To be the recipient of a response or counter-communication generated by another entity in answer to a prior action or message. + alt_descriptions: + nl: >- + De ontvanger zijn van een reactie of tegencommunicatie die door een + andere entiteit is gegenereerd als antwoord op een eerdere actie of + bericht. + de: >- + Der Empfänger einer Antwort oder Gegenkommunikation zu sein, die von + einer anderen Entität als Reaktion auf eine vorherige Aktion oder + Nachricht generiert wurde. + fr: >- + Être le destinataire d'une réponse ou d'une contre-communication + générée par une autre entité en réponse à une action ou un message + antérieur. + ar: >- + أن يكون المتلقي لرد أو اتصال مضاد تم إنشاؤه بواسطة كيان آخر كإجابة + على إجراء أو رسالة سابقة. + id: >- + Menjadi penerima respons atau komunikasi balik yang dihasilkan oleh + entitas lain sebagai jawaban atas tindakan atau pesan sebelumnya. + zh: >- + 成为由另一实体生成的回复或反向通信的接收者,作为对先前行动或消息的回应。 + es: >- + Ser el destinatario de una respuesta o contracomunicación generada + por otra entidad en respuesta a una acción o mensaje previo. + structured_aliases: + - literal_form: antwoord op + - is_or_was_replied_to + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: Antwort auf + predicate: EXACT_SYNONYM + in_language: de + - literal_form: réponse à + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: ردًا على + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: balasan untuk + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 回复至 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: en respuesta a + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + exact_mappings: + # Schema.org parentItem - Lines 28852-28876 in schemaorg.owl + # "The parent of a question, answer or item in general. Typically used + # for Q/A discussion threads e.g. a chain of comments" + # Domain: Question | Comment | Answer + # Range: Comment | CreativeWork | Role | URL | Text + - schema:parentItem + close_mappings: + # Schema.org comment (inverse direction) - Lines 12267-12289 in schemaorg.owl + # "Comments, typically from users." + # This is the inverse: points from something to its comments + - schema:comment + related_mappings: + # Schema.org replyToUrl - Lines 33100-33120 in schemaorg.owl + # "The URL at which a reply may be posted to the specified UserComment" + # Related but specific to URL for posting replies, not the reply relationship itself + - schema:replyToUrl + aliases: + - has_or_had_reply_to + - is_reply_to + - in_reply_to + - is_or_was_replied_to + examples: + - value: https://example.org/post/original-article-123 + description: >- + A comment that replies to an original article + - value: https://example.org/comment/parent-comment-456 + description: >- + A nested reply that responds to another comment in a thread + annotations: + custodian_types: '["*"]' + specificity_score: 0.6 + specificity_rationale: >- + Moderately general - applies to any threaded discussion or Q&A context + where reply relationships need to be expressed. + comments: + - Created 2026-01-22 from comment_reply_count migration (Rule 53) + - Updated 2026-02-02 with verified ontology mappings and translations + - | + **PURPOSE**: + Captures the relationship between a reply/response and its parent content. + Used for threaded discussions, Q&A forums, comment sections, and any + context where content is created in response to other content. + - | + **RiC-O NAMING** (Rule 39): + Uses "has_or_had_" prefix in aliases to indicate temporal relationship - + the content has a reply target currently or had one in the past. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **Schema.org** | `schema:parentItem` | 28852-28876 | exact | Parent in Q/A thread | + | **Schema.org** | `schema:comment` | 12267-12289 | close | Inverse direction | + | **Schema.org** | `schema:replyToUrl` | 33100-33120 | related | URL for posting reply | + - | + **MIGRATION NOTE**: + Created from migration of `comment_reply_count` slot per slot_fixes.yaml. + Replaces simple integer counts with structured reply relationships. + Note: SIOC ontology (sioc:has_reply) is not available in data/ontology/ + so Schema.org mappings are used as the primary verified alignment. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/represented_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/represented_by.yaml new file mode 100644 index 0000000000..93a17e8b21 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/represented_by.yaml @@ -0,0 +1,23 @@ +id: https://nde.nl/ontology/hc/slot/represented_by +name: represented_by +title: represented_by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + represented_by: + name: represented_by + title: represented_by + description: Agent that represents the entity. + slot_uri: hc:representedBy + range: string # uriorcurie + aliases: + - is_or_was_represented_by + - is_or_was_governance_representative + - governance_representative + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/required.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/required.yaml new file mode 100644 index 0000000000..dd4ccea7cd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/required.yaml @@ -0,0 +1,36 @@ +# ============================================================================== +# LinkML Slot Definition: required +# ============================================================================== +# Whether something is required. +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/required +name: required +title: Required +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Whether something is required. +imports: +- linkml:types +slots: + required: + slot_uri: hc:required + description: | + Whether something is required. + range: boolean + multivalued: false + aliases: + - is_or_was_required + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/responsible_for.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/responsible_for.yaml new file mode 100644 index 0000000000..4c9031a540 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/responsible_for.yaml @@ -0,0 +1,149 @@ +# ============================================================================== +# LinkML Slot Definition: responsible_for +# ============================================================================== +# Legal accountability or liability for a specific entity, collection, or outcome. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------------|----------------------|---------|------------------------------------| +# | **RiC-O** | `rico:hasOrHadHolder` | RiC-O_1-1.rdf:6436-6460 | exact | Agent holds/held Record Resource | +# | **RiC-O** | `rico:isOrWasHolderOf` | RiC-O_1-1.rdf:13639-13694 | exact | Inverse: Agent is holder of | +# | **PROV-O** | `prov:actedOnBehalfOf` | prov.ttl:428 | close | Accountability towards agent | +# | **PROV-O** | `prov:wasAttributedTo` | prov.ttl:116 | related | Entity attributed to agent | +# +# HIERARCHY: rico:hasOrHadHolder rdfs:subPropertyOf rico:hasOrHadManager (RiC-O_1-1.rdf:6438) +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Fixed corrupted description, added multilingual support +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/responsible_for +name: responsible_for +title: Responsible For + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + tooi: https://identifier.overheid.nl/tooi/def/ont/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# + +imports: + - linkml:types + +default_prefix: hc + +slots: + responsible_for: + slot_uri: rico:hasOrHadHolder + description: >- + To be legally accountable or liable for a specific action, entity, or + outcome, encompassing the duty to ensure compliance or remedy harm. + alt_descriptions: + nl: >- + Wettelijk verantwoordelijk of aansprakelijk zijn voor een specifieke + actie, entiteit of uitkomst, met inbegrip van de plicht om naleving + te waarborgen of schade te herstellen. + de: >- + Rechtlich verantwortlich oder haftbar sein für eine bestimmte Handlung, + Einheit oder ein Ergebnis, einschließlich der Pflicht, die Einhaltung + sicherzustellen oder Schaden zu beheben. + fr: >- + Être légalement responsable d'une action, d'une entité ou d'un résultat + spécifique, incluant le devoir d'assurer la conformité ou de réparer + les dommages. + ar: >- + أن يكون مسؤولاً قانونياً عن إجراء أو كيان أو نتيجة معينة، بما في ذلك + واجب ضمان الامتثال أو إصلاح الضرر. + id: >- + Bertanggung jawab secara hukum atas tindakan, entitas, atau hasil + tertentu, termasuk kewajiban untuk memastikan kepatuhan atau + memperbaiki kerugian. + zh: >- + 对特定行为、实体或结果承担法律责任或义务,包括确保合规或补救损害的义务。 + es: >- + Ser legalmente responsable de una acción, entidad o resultado específico, + incluyendo el deber de garantizar el cumplimiento o remediar daños. + structured_aliases: + - literal_form: verantwoordelijk voor + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: verantwortlich für + predicate: EXACT_SYNONYM + in_language: de + - literal_form: responsable de + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: مسؤول عن + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: bertanggung jawab atas + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 负责 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: responsable de + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + multivalued: true + exact_mappings: + - rico:hasOrHadHolder # RiC-O_1-1.rdf:6436-6460 - Agent holds/held Record Resource + close_mappings: + - tooi:heeft_informatieobject # TOOI - Dutch government information object + - prov:actedOnBehalfOf # prov.ttl:428 - Accountability relationship + related_mappings: + - prov:wasAttributedTo # prov.ttl - Entity attributed to agent + - schema:accountablePerson # schema.org - Person accountable + - rico:isOrWasResponsibleForEnforcing # RiC-O - Responsible for enforcing rule + broad_mappings: + - rico:hasOrHadManager # RiC-O_1-1.rdf:6438 - Parent of hasOrHadHolder + aliases: + - is_or_was_responsible_for + - holds + - has_holder + examples: + - value: https://nde.nl/ontology/hc/collection/rm-national-collection + description: Rijksmuseum foundation responsible for National Collection + - value: https://nde.nl/ontology/hc/collection/nha-provincial-archive + description: Noord-Hollands Archief responsible for Provincial Archive + annotations: + custodian_types: '["*"]' + comments: + - | + **TEMPORAL SEMANTICS**: + - The relationship may be current (active responsibility) + - The relationship may be historical (past responsibility, now transferred) + - Temporal validity is tracked via the range class (e.g., Collection.temporal_extent) + - | + **USAGE**: + Used for: + - Legal responsibility for heritage collections + - Custodial responsibility for archival holdings + - Formal accountability for cultural property + - | + **RELATIONSHIP TO TOOI**: + - Forward direction from legal entity to collection + - Replaces collections_under_responsibility slot + - Maps to tooi:heeft_informatieobject semantics + - | + **BIDIRECTIONAL PATTERN**: + - Forward: CustodianLegalStatus → Collection (is_or_was_responsible_for) + - Inverse: Collection → CustodianLegalStatus (is_or_was_held_by or has_or_had_holder) + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **RiC-O** | `rico:hasOrHadHolder` | 6436-6460 | exact | Agent holds Record Resource | + | **RiC-O** | `rico:hasOrHadManager` | 6438 | broad | Parent property | + | **PROV-O** | `prov:actedOnBehalfOf` | 428 | close | Accountability | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_at.yaml new file mode 100644 index 0000000000..3598c8c463 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_at.yaml @@ -0,0 +1,106 @@ +# ============================================================================== +# LinkML Slot Definition: retrieved_at +# ============================================================================== +# To denote the specific point in time or timestamp when a resource, data, or +# entity was accessed, fetched, or collected. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **PROV-O** | `prov:atTime` | prov.ttl:501-565 | slot_uri| Time at which event occurred | +# | **Schema.org**| `schema:dateRetrieved`| schemaorg.owl | exact | Date resource was retrieved | +# +# HIERARCHY: prov:atTime has no rdfs:subPropertyOf declaration (it is used in +# property chains with qualified forms like prov:qualifiedEnd o prov:atTime) +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added header documentation +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/retrieved_at +name: retrieved_at + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + +imports: + - linkml:types + +default_prefix: hc + +slots: + retrieved_at: + slot_uri: prov:atTime + description: >- + To denote the specific point in time or timestamp when a resource, data, + or entity was accessed, fetched, or collected. + alt_descriptions: + nl: >- + Om het specifieke tijdstip of de tijdstempel aan te duiden waarop een + bron, gegevens of entiteit is geopend, opgehaald of verzameld. + de: >- + Zur Angabe des spezifischen Zeitpunkts oder Zeitstempels, zu dem eine + Ressource, Daten oder Entität abgerufen, geholt oder gesammelt wurde. + fr: >- + Pour indiquer le moment précis ou l'horodatage auquel une ressource, + des données ou une entité a été consultée, récupérée ou collectée. + ar: >- + للإشارة إلى النقطة الزمنية المحددة أو الطابع الزمني الذي تم فيه + الوصول إلى مورد أو بيانات أو كيان أو جلبه أو جمعه. + id: >- + Untuk menunjukkan titik waktu atau stempel waktu tertentu ketika + sumber daya, data, atau entitas diakses, diambil, atau dikumpulkan. + zh: >- + 表示访问、获取或收集资源、数据或实体的特定时间点或时间戳。 + es: >- + Para denotar el momento específico o marca de tiempo en que un + recurso, datos o entidad fue accedido, obtenido o recopilado. + structured_aliases: + - literal_form: opgehaald op + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: abgerufen am + predicate: EXACT_SYNONYM + in_language: de + - literal_form: récupéré le + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: استُرجع في + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diambil pada + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 检索于 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: recuperado en + predicate: EXACT_SYNONYM + in_language: es + range: datetime + exact_mappings: + - schema:dateRetrieved + aliases: + - is_or_was_retrieved_at + comments: + - | + **PROV-O USAGE NOTE**: + prov:atTime is used to specify the time at which an InstantaneousEvent + occurred. In PROV-O, it is typically used with qualified forms like + prov:qualifiedEnd and prov:qualifiedStart for more detailed provenance. + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **PROV-O** | `prov:atTime` | 501-565 | slot_uri | Time at which event occurred | + | **Schema.org** | `schema:dateRetrieved` | N/A | exact | Date resource was retrieved | + examples: + - value: "2026-01-15T14:30:00Z" + description: ISO 8601 timestamp when data was retrieved from API + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_by.yaml new file mode 100644 index 0000000000..70d5c6956f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_by.yaml @@ -0,0 +1,113 @@ +# ============================================================================== +# LinkML Slot Definition: retrieved_by +# ============================================================================== +# To denote the specific agent, user, or system responsible for the action of +# accessing, fetching, or collecting a resource or data. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |------------|-----------------------------|--------------------|---------|------------------------------------------| +# | **PROV-O** | `prov:wasAssociatedWith` | prov.ttl:1069-1077 | exact | "Activity associated with Agent." | +# | **PROV-O** | `prov:wasInfluencedBy` | prov.ttl:1099-1121 | broad | Parent property of wasAssociatedWith. | +# | **PROV-O** | `prov:qualifiedAssociation` | prov.ttl:775-785 | narrow | Qualified association with details. | +# +# HIERARCHY: prov:wasAssociatedWith rdfs:subPropertyOf prov:wasInfluencedBy (line 1073) +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added ontology alignment header, moved migration note to comments +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/retrieved_by +name: retrieved_by +title: Retrieved By +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + retrieved_by: + slot_uri: prov:wasAssociatedWith + description: >- + To denote the specific agent, user, or system responsible for the action + of accessing, fetching, or collecting a resource or data. + alt_descriptions: + nl: >- + Om de specifieke agent, gebruiker of systeem aan te duiden die + verantwoordelijk is voor de actie van het openen, ophalen of + verzamelen van een bron of gegevens. + de: >- + Zur Bezeichnung des spezifischen Akteurs, Benutzers oder Systems, das + für die Aktion des Zugriffs, Abrufs oder Sammelns einer Ressource + oder von Daten verantwortlich ist. + fr: >- + Pour désigner l'agent, l'utilisateur ou le système spécifique + responsable de l'action d'accès, de récupération ou de collecte + d'une ressource ou de données. + ar: >- + للإشارة إلى الوكيل أو المستخدم أو النظام المحدد المسؤول عن إجراء + الوصول إلى مورد أو بيانات أو جلبها أو جمعها. + id: >- + Untuk menunjukkan agen, pengguna, atau sistem tertentu yang + bertanggung jawab atas tindakan mengakses, mengambil, atau + mengumpulkan sumber daya atau data. + zh: >- + 表示负责访问、获取或收集资源或数据操作的特定代理人、用户或系统。 + es: >- + Para denotar el agente, usuario o sistema específico responsable de + la acción de acceder, obtener o recopilar un recurso o datos. + structured_aliases: + - literal_form: opgehaald door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: abgerufen von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: récupéré par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: استُرجع بواسطة + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diambil oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 检索者 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: recuperado por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + # range: RetrievalAgent + multivalued: false + inlined: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:wasAssociatedWith # prov.ttl:1069-1077 - "Activity associated with Agent" + broad_mappings: + - prov:wasInfluencedBy # prov.ttl:1099-1121 - parent property (wasAssociatedWith subPropertyOf) + narrow_mappings: + - prov:qualifiedAssociation # prov.ttl:775-785 - qualified association with details + aliases: + - is_or_was_retrieved_by + comments: + - MIGRATED from extraction_agent per slot_fixes.yaml (Rule 53). + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | PROV-O | prov:wasAssociatedWith | 1069-1077 | exact | Activity associated with Agent | + | PROV-O | prov:wasInfluencedBy | 1099-1121 | broad | Parent property | + | PROV-O | prov:qualifiedAssociation | 775-785 | narrow | Qualified association | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_from.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_from.yaml new file mode 100644 index 0000000000..eb2137e317 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_from.yaml @@ -0,0 +1,163 @@ +# ============================================================================== +# LinkML Slot Definition: retrieved_from +# ============================================================================== +# Indicate where (endpoint, location, or address) data was obtained. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------------|----------------------|---------|------------------------------------| +# | **DCAT** | `dcat:downloadURL` | dcat3.ttl:896-937 | close | Direct download URL | +# | **DCAT** | `dcat:accessURL` | dcat3.ttl:562-594 | close | Access point for distribution | +# | **PROV-O** | `prov:hadPrimarySource` | prov.ttl:661-667 | close | Primary source of information | +# | **PROV-O** | `prov:wasDerivedFrom` | prov.ttl:1099-1104 | related | General derivation relationship | +# | **Dublin Core**| `dcterms:source` | dcterms.rdf:1920-1943| related | Related resource from which derived| +# | **DCAT** | `dcat:accessService` | dcat3.ttl:536-540 | related | Service providing access | +# | **DCAT** | `dcat:endpointURL` | dcat3.ttl:1008 | related | Root endpoint of data service | +# | **Schema.org**| `schema:downloadUrl` | schemaorg.owl | broad | Direct download URL | +# | **PROV-O** | `prov:wasAttributedTo` | prov.ttl:1082-1087 | broad | Attribution (broader than location)| +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-02 - Added multilingual support, verified ontology mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/retrieved_from +name: retrieved_from +title: retrieved from +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcat: http://www.w3.org/ns/dcat# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# +imports: +- linkml:types +default_prefix: hc +slots: + retrieved_from: + description: >- + To indicate where (endpoint, location, or address) data was obtained. + alt_descriptions: + nl: >- + Aangeven waar (eindpunt, locatie of adres) gegevens zijn verkregen. + de: >- + Angeben, wo (Endpunkt, Ort oder Adresse) Daten bezogen wurden. + fr: >- + Indiquer d'où (point d'accès, emplacement ou adresse) les données + ont été obtenues. + ar: >- + الإشارة إلى المكان (نقطة النهاية أو الموقع أو العنوان) الذي تم + الحصول على البيانات منه. + id: >- + Menunjukkan dari mana (endpoint, lokasi, atau alamat) data diperoleh. + zh: >- + 指示从哪里(端点、位置或地址)获取的数据。 + es: >- + Indicar de dónde (punto de acceso, ubicación o dirección) se + obtuvieron los datos. + structured_aliases: + - literal_form: opgehaald van + - is_or_was_retrieved_from + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: abgerufen von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: récupéré de + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: تم استرجاعه من + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diambil dari + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 检索自 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: recuperado de + predicate: EXACT_SYNONYM + in_language: es + range: string # uriorcurie + # range: Endpoint + multivalued: true + inlined: false # Fixed invalid inline for primitive type + slot_uri: hc:retrievedFrom + + # VERIFIED MAPPINGS (2026-02-XX) + # Source files: data/ontology/prov.ttl, data/ontology/dcat3.ttl, + # data/ontology/dcterms.rdf, data/ontology/schemaorg.owl + + close_mappings: + # dcat3.ttl line 896-937: downloadURL - "URL of the downloadable file" + # Very close: specific URL from which distribution is directly accessible + - dcat:downloadURL # from dcat3.ttl - direct download URL for distribution + + # dcat3.ttl line 562-594: accessURL - "URL of the resource that gives access" + # Close: access point for distribution (may not be direct download) + - dcat:accessURL # from dcat3.ttl - access point for dataset distribution + + # prov.ttl line 661-667: hadPrimarySource - "original source of information" + # Close: emphasizes source provenance (subproperty of wasDerivedFrom) + - prov:hadPrimarySource # from prov.ttl - primary source of information + + related_mappings: + # prov.ttl line 1099-1104: wasDerivedFrom - "entity derived from another" + # Related but broader: general derivation, not specifically retrieval location + - prov:wasDerivedFrom # from prov.ttl - general derivation relationship + + # dcterms.rdf line 1920-1943: source - "related resource from which described is derived" + # Related: source relationship (may be abstract, not necessarily a URL) + - dcterms:source # from dcterms.rdf - related resource from which derived + + # dcat3.ttl line 536-540: accessService - "data service giving access to distribution" + # Related: service-level access (not a direct URL) + - dcat:accessService # from dcat3.ttl - service providing access to distribution + + # dcat3.ttl line 1008: endpointURL - "root location/endpoint of service" + # Related: service endpoint (API base, not specific resource URL) + - dcat:endpointURL # from dcat3.ttl - root endpoint of data service + + broad_mappings: + # schemaorg.owl: downloadUrl - "URL to download directly" + # Broader context: Schema.org is less precise about data provenance + - schema:downloadUrl # from schemaorg.owl - direct download URL + + # prov.ttl line 1082-1087: wasAttributedTo - "attributed to agent" + # Broader: about attribution to agent, not location of retrieval + - prov:wasAttributedTo # from prov.ttl - attribution (broader than location) + + aliases: + - can_or_could_be_retrieved_from + - obtained_from + - downloaded_from + - fetched_from + - is_or_was_retrieved_from + annotations: + custodian_types: '["*"]' + specificity_score: 0.4 + examples: + - value: "https://data.rijksmuseum.nl/api/v1/collection" + description: Data retrieved from Rijksmuseum collection API + - value: "https://www.nationaalarchief.nl/onderzoeken/zoekhulpen/download.csv" + description: CSV downloaded from National Archives search helper + comments: + - | + MIGRATED from download_endpoint (2026-01-26). + - | + PROV-O semantics note: 'prov:hadPrimarySource' is a subproperty of + 'prov:wasDerivedFrom' and emphasizes the ORIGINAL source. Our + 'retrieved_from' focuses on the LOCATION of retrieval, which may + be an intermediate endpoint (e.g., aggregator API) rather than + the primary source. + - | + DCAT semantics note: 'dcat:downloadURL' should be used for direct + HTTP GET access; 'dcat:accessURL' is broader and may include landing + pages or API endpoints requiring additional navigation. + - | + Verified predicates from: + - data/ontology/prov.ttl (prov:hadPrimarySource, prov:wasDerivedFrom, prov:wasAttributedTo) + - data/ontology/dcat3.ttl (dcat:downloadURL, dcat:accessURL, dcat:accessService, dcat:endpointURL) + - data/ontology/dcterms.rdf (dcterms:source) + - data/ontology/schemaorg.owl (schema:downloadUrl) diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_through.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_through.yaml new file mode 100644 index 0000000000..7714a31ed2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/retrieved_through.yaml @@ -0,0 +1,115 @@ +# ============================================================================== +# LinkML Slot Definition: retrieved_through +# ============================================================================== +# Denotes the specific method, mechanism, or event through which data was +# accessed, fetched, or collected. Used for provenance tracking. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |------------|---------------------------|--------------------|---------|--------------------------------------------| +# | **PROV-O** | `prov:used` | prov.ttl:1039-1053 | exact | "Entity used by Activity." Method/tool. | +# | **PROV-O** | `prov:wasInfluencedBy` | prov.ttl:1099-1121 | broad | Parent property of prov:used. | +# | **PROV-O** | `prov:qualifiedUsage` | prov.ttl:985-995 | narrow | Qualified usage with additional details. | +# +# HIERARCHY: prov:used rdfs:subPropertyOf prov:wasInfluencedBy (line 1046) +# +# CREATED: 2026-01-26 +# UPDATED: 2026-02-03 - Added ontology alignment header, broad/narrow mappings +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/retrieved_through +name: retrieved_through +title: Retrieved Through +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + retrieved_through: + slot_uri: prov:used + description: >- + To denote the specific method, mechanism, or discrete event instance + through which a resource, data, or entity was accessed, fetched, or + collected. + alt_descriptions: + nl: >- + Om de specifieke methode, mechanisme of discrete gebeurtenisinstantie + aan te duiden waardoor een bron, gegevens of entiteit is geopend, + opgehaald of verzameld. + de: >- + Zur Bezeichnung der spezifischen Methode, des Mechanismus oder der + diskreten Ereignisinstanz, durch die eine Ressource, Daten oder + Entität abgerufen, geholt oder gesammelt wurde. + fr: >- + Pour désigner la méthode, le mécanisme ou l'instance d'événement + discret spécifique par lequel une ressource, des données ou une + entité a été consultée, récupérée ou collectée. + ar: >- + للإشارة إلى الطريقة أو الآلية أو حالة الحدث المنفصلة المحددة التي + تم من خلالها الوصول إلى مورد أو بيانات أو كيان أو جلبه أو جمعه. + id: >- + Untuk menunjukkan metode, mekanisme, atau instans peristiwa diskrit + tertentu yang melaluinya sumber daya, data, atau entitas diakses, + diambil, atau dikumpulkan. + zh: >- + 表示访问、获取或收集资源、数据或实体所使用的特定方法、机制或离散事件实例。 + es: >- + Para denotar el método, mecanismo o instancia de evento discreto + específico a través del cual se accedió, obtuvo o recopiló un + recurso, datos o entidad. + structured_aliases: + - literal_form: opgehaald via + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: abgerufen über + predicate: EXACT_SYNONYM + in_language: de + - literal_form: récupéré via + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: استُرجع عبر + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: diambil melalui + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 通过检索 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: recuperado a través de + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + # range: RetrievalMethod + multivalued: false + inlined: false # Fixed invalid inline for primitive type + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:used # prov.ttl:1039-1053 - "Entity used by Activity" + broad_mappings: + - prov:wasInfluencedBy # prov.ttl:1099-1121 - parent property (prov:used subPropertyOf) + narrow_mappings: + - prov:qualifiedUsage # prov.ttl:985-995 - qualified usage with additional details + aliases: + - is_or_was_retrieved_through + comments: + - MIGRATED from extraction_method per slot_fixes.yaml (Rule 53). + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | PROV-O | prov:used | 1039-1053 | exact | Entity used by Activity | + | PROV-O | prov:wasInfluencedBy | 1099-1121 | broad | Parent property | + | PROV-O | prov:qualifiedUsage | 985-995 | narrow | Qualified usage | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/returned.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/returned.yaml new file mode 100644 index 0000000000..79d57c02c9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/returned.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/returned +name: returned +title: returned +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + returned: + name: returned + title: returned + description: Whether the entity was returned. + slot_uri: hc:returned + range: boolean + aliases: + - is_or_was_returned + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/revision_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/revision_of.yaml new file mode 100644 index 0000000000..50686cb5b0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/revision_of.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/revision_of +name: revision_of +title: revision_of +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + revision_of: + name: revision_of + title: revision_of + description: Entity that this entity is a revision of. + slot_uri: hc:revisionOf + range: string # uriorcurie + aliases: + - is_or_was_revision_of + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:wasRevisionOf diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/signed_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/signed_at.yaml new file mode 100644 index 0000000000..0a638aad4b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/signed_at.yaml @@ -0,0 +1,23 @@ +id: https://nde.nl/ontology/hc/slot/signed_at +name: signed_at +title: signed_at +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + signed_at: + name: signed_at + title: signed_at + description: Location where the entity was signed. + slot_uri: hc:signedAt + range: string # uriorcurie + # range: Place + aliases: + - is_or_was_signed_at + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/signed_on.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/signed_on.yaml new file mode 100644 index 0000000000..1ba5507f82 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/signed_on.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/signed_on +name: signed_on +title: signed_on +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + signed_on: + name: signed_on + title: signed_on + description: Date when the entity was signed. + slot_uri: hc:signedOn + range: date + aliases: + - is_or_was_signed_on + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/stored_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/stored_at.yaml new file mode 100644 index 0000000000..c9fc52c647 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/stored_at.yaml @@ -0,0 +1,44 @@ +# ============================================================================== +# LinkML Slot Definition: stored_at +# ============================================================================== +# Location where an entity is stored. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# | Ontology | Property | Mapping | Notes | +# |---------------|-------------------|---------|----------------------------------| +# | **Schema.org**| `schema:location` | close | General location | +# +# CREATED: 2026-02-03 +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/stored_at +name: stored_at +title: Stored At +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +description: | + Location where an entity is stored. +imports: +- linkml:types +slots: + stored_at: + slot_uri: hc:storedAt + description: | + Location where an entity is stored. + range: string + multivalued: true + close_mappings: + - schema:location + aliases: + - is_or_was_stored_at + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/sub_collection_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/sub_collection_of.yaml new file mode 100644 index 0000000000..4a5abf257e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/sub_collection_of.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/sub_collection_of +name: sub_collection_of +title: sub_collection_of +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + sub_collection_of: + name: sub_collection_of + title: sub_collection_of + description: Parent collection of this sub-collection. + slot_uri: hc:subCollectionOf + range: string # uriorcurie + aliases: + - is_or_was_sub_collection_of + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:isPartOf diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/suborganization_of.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/suborganization_of.yaml new file mode 100644 index 0000000000..e0125b55de --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/suborganization_of.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/suborganization_of +name: suborganization_of +title: suborganization_of +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + suborganization_of: + name: suborganization_of + title: suborganization_of + description: Parent organization of this entity. + slot_uri: hc:suborganizationOf + range: string # uriorcurie + aliases: + - is_or_was_suborganization_of + annotations: + custodian_types: '["*"]' + exact_mappings: + - org:subOrganizationOf diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/succeeded_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/succeeded_by.yaml new file mode 100644 index 0000000000..1136930269 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/succeeded_by.yaml @@ -0,0 +1,132 @@ +# ============================================================================== +# LinkML Slot Definition: succeeded_by +# ============================================================================== +# Indicates that this entity is followed by a specific entity or event that +# occupies the subsequent position in a sequence, hierarchy, or timeline. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |----------------|------------------------------|-------------------|----------|------------------------------------------| +# | **RiC-O** | `rico:isOrWasSuccessorOf` | RiC-O_1-1.rdf | exact | Succession relationship in archives. | +# | **RiC-O** | `rico:hasAncestor` | RiC-O L3648 | narrow | Ancestor relationship (subPropertyOf). | +# | **RiC-O** | `rico:resultedFromTheMergerOf`| RiC-O L19435 | narrow | Merger succession (subPropertyOf). | +# | **RiC-O** | `rico:resultedFromTheSplitOf`| RiC-O L19472 | narrow | Split succession (subPropertyOf). | +# | **CIDOC-CRM** | `crm:P134_continued` | CIDOC_CRM | close | Temporal continuation. | +# | **PROV-O** | `prov:wasInformedBy` | prov.ttl | related | Activity dependencies. | +# +# CREATED: 2026-01-13 +# UPDATED: 2026-02-03 - Added header, narrow mappings (children of isSuccessorOf) +# UPDATED: 2026-02-03 - Fixed corrupted description field, moved notes to comments +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/succeeded_by +name: succeeded_by +title: Succeeded By +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + crm: http://www.cidoc-crm.org/cidoc-crm/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: + - linkml:types +slots: + succeeded_by: + slot_uri: rico:isOrWasSuccessorOf + description: >- + To be followed by a specific entity or event that occupies the + subsequent position in a sequence, hierarchy, or timeline. + alt_descriptions: + nl: >- + Om gevolgd te worden door een specifieke entiteit of gebeurtenis die + de volgende positie inneemt in een reeks, hiërarchie of tijdlijn. + de: >- + Von einer bestimmten Entität oder einem Ereignis gefolgt zu werden, + das die nachfolgende Position in einer Sequenz, Hierarchie oder + Zeitlinie einnimmt. + fr: >- + Être suivi par une entité ou un événement spécifique qui occupe la + position suivante dans une séquence, une hiérarchie ou une chronologie. + ar: >- + أن يتبعه كيان أو حدث محدد يحتل الموقع التالي في تسلسل أو تسلسل + هرمي أو خط زمني. + id: >- + Diikuti oleh entitas atau peristiwa tertentu yang menempati posisi + berikutnya dalam urutan, hierarki, atau garis waktu. + zh: >- + 被在序列、层次结构或时间线中占据后续位置的特定实体或事件所继承。 + es: >- + Ser seguido por una entidad o evento específico que ocupa la posición + subsiguiente en una secuencia, jerarquía o línea de tiempo. + structured_aliases: + - literal_form: opgevolgd door + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: nachgefolgt von + predicate: EXACT_SYNONYM + in_language: de + - literal_form: succédé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: خلفه + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: digantikan oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 继任者 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: sucedido por + predicate: EXACT_SYNONYM + in_language: es + range: uriorcurie + required: false + multivalued: true + exact_mappings: + - rico:isOrWasSuccessorOf + close_mappings: + - crm:P134_continued + related_mappings: + - prov:wasInformedBy + - schema:followup + narrow_mappings: + - rico:hasAncestor # RiC-O: Person has ancestor (rdfs:subPropertyOf isSuccessorOf, line 3651) + - rico:resultedFromTheMergerOf # RiC-O: CorporateBody from merger (rdfs:subPropertyOf isSuccessorOf, line 19436) + - rico:resultedFromTheSplitOf # RiC-O: CorporateBody from split (rdfs:subPropertyOf isSuccessorOf, line 19473) + aliases: + - is_or_was_succeeded_by + annotations: + replaces_slots: following_activity + migration_date: '2026-01-13' + inverse_slot: is_or_was_preceded_by + custodian_types: '["*"]' + examples: + - value: hc:activity/digitization-phase-2 + description: Phase 2 follows Phase 1 + - value: hc:activity/conservation-treatment-2025 + description: Treatment follows condition survey + comments: + - Slot for succession relationships between activities/events. + - slot_uri=rico:isOrWasSuccessorOf is a PREDICATE. + - | + TEMPORAL SEMANTICS (RiC-O Pattern): The "isOrWas" naming follows RiC-O + convention indicating this is an inverse relationship - "A isOrWasSucceededBy B" + means B follows A. + - | + USE CASES: + - Link activity phases: Phase 1 → Phase 2 → Phase 3 + - Track project continuation: 2024 inventory → 2025 inventory + - Document workflow: condition survey → conservation treatment + - | + INVERSE: The inverse relationship is `is_or_was_preceded_by` + (or `preceding_activity`). + - Multivalued because an entity may have multiple successors. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/superseded_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/superseded_by.yaml new file mode 100644 index 0000000000..fb5d0e33f8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/superseded_by.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/superseded_by +name: superseded_by +title: superseded_by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + superseded_by: + name: superseded_by + title: superseded_by + description: Entity that supersedes or replaces this entity. + slot_uri: hc:supersededBy + range: string # uriorcurie + aliases: + - is_or_was_superseded_by + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:isReplacedBy + - schema:supersededBy diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/symbolize.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/symbolize.yaml new file mode 100644 index 0000000000..c874e08072 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/symbolize.yaml @@ -0,0 +1,116 @@ +# ============================================================================== +# LinkML Slot Definition: symbolize +# ============================================================================== +# To represent or stand for a complex concept, idea, or entity by means of a +# visible sign, mark, or object. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|----------------------------|----------------------|---------|------------------------------------| +# | **Schema.org**| `schema:encodingFormat` | schemaorg.owl:16697 | slot_uri| Media type (IANA MIME types) | +# | **Schema.org**| `schema:encodingFormat` | schemaorg.owl:16697 | exact | Same as slot_uri | +# +# HIERARCHY: schema:encodingFormat has no rdfs:subPropertyOf declaration +# +# NOTE: This slot uses schema:encodingFormat which is intended for MIME types. +# For iconographic/symbolic representation, consider using a heritage-specific +# property that better captures the symbolic meaning domain. +# +# CREATED: 2026-01-20 +# UPDATED: 2026-02-03 - Added header documentation +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/symbolize +name: symbolize +title: symbolize +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + symbolize: + name: symbolize + title: symbolize + description: >- + To represent or stand for a complex concept, idea, or entity by means + of a visible sign, mark, or object. + alt_descriptions: + nl: >- + Om een complex concept, idee of entiteit te vertegenwoordigen of + ervoor te staan door middel van een zichtbaar teken, merk of object. + de: >- + Ein komplexes Konzept, eine Idee oder eine Entität durch ein + sichtbares Zeichen, eine Markierung oder ein Objekt zu repräsentieren + oder dafür zu stehen. + fr: >- + Représenter ou symboliser un concept, une idée ou une entité complexe + au moyen d'un signe, d'une marque ou d'un objet visible. + ar: >- + تمثيل أو الوقوف لمفهوم أو فكرة أو كيان معقد عن طريق علامة أو رمز + أو كائن مرئي. + id: >- + Mewakili atau melambangkan konsep, ide, atau entitas yang kompleks + melalui tanda, simbol, atau objek yang terlihat. + zh: >- + 通过可见的符号、标记或物体来代表或象征复杂的概念、思想或实体。 + es: >- + Representar o simbolizar un concepto, idea o entidad compleja mediante + un signo, marca u objeto visible. + structured_aliases: + - literal_form: symboliseren + - is_or_was_symbolize + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: symbolisieren + predicate: EXACT_SYNONYM + in_language: de + - literal_form: symboliser + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يرمز + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: melambangkan + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 象征 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: simbolizar + predicate: EXACT_SYNONYM + in_language: es + slot_uri: schema:encodingFormat + range: string # uriorcurie + # range: Iconography + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:encodingFormat + aliases: + - has_or_had_symbolism + - is_or_was_symbolize + comments: + - Updated 2026-02-03 with header documentation + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **Schema.org** | `schema:encodingFormat` | 16697 | slot_uri/exact | MIME type for media | + - | + **USAGE NOTE**: + schema:encodingFormat is primarily intended for MIME types in Schema.org. + This slot repurposes it for symbolic representation. Consider whether + a heritage-specific property would better capture the iconographic or + symbolic meaning domain. diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/symbolized_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/symbolized_by.yaml new file mode 100644 index 0000000000..486509b1d3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/symbolized_by.yaml @@ -0,0 +1,125 @@ +# ============================================================================== +# LinkML Slot Definition: symbolized_by +# ============================================================================== +# To be represented or denoted by a specific sign, mark, or object that stands +# for the entity or concept. +# +# ONTOLOGY ALIGNMENT (verified against data/ontology/): +# +# | Ontology | Property | File/Line | Mapping | Notes | +# |---------------|-----------------------|----------------------|---------|------------------------------------| +# | **QUDT** | `qudt:symbol` | qudt-all:2768 | exact | Symbol for units/quantities | +# | **Schema.org**| `schema:unitText` | schemaorg.owl | close | Text representation of unit | +# | **SKOS** | `skos:notation` | skos.rdf:108-116 | close | Notation/code for concept | +# +# HIERARCHY: qudt:symbol has no rdfs:subPropertyOf declaration +# +# CREATED: 2026-01-20 +# UPDATED: 2026-02-03 - Added header documentation +# ============================================================================== + +id: https://nde.nl/ontology/hc/slot/symbolized_by +name: symbolized_by +title: Symbolized By +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + qudt: http://qudt.org/schema/qudt/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + symbolized_by: + slot_uri: qudt:symbol + description: >- + To be represented or denoted by a specific sign, mark, or object that + stands for the entity or concept. + alt_descriptions: + nl: >- + Om vertegenwoordigd of aangeduid te worden door een specifiek teken, + merk of object dat staat voor de entiteit of het concept. + de: >- + Durch ein bestimmtes Zeichen, eine Markierung oder ein Objekt + repräsentiert oder bezeichnet zu werden, das für die Entität oder + das Konzept steht. + fr: >- + Être représenté ou désigné par un signe, une marque ou un objet + spécifique qui symbolise l'entité ou le concept. + ar: >- + أن يُمثَّل أو يُشار إليه بعلامة أو رمز أو كائن محدد يمثل الكيان + أو المفهوم. + id: >- + Diwakili atau dilambangkan oleh tanda, simbol, atau objek tertentu + yang mewakili entitas atau konsep. + zh: >- + 由代表实体或概念的特定符号、标记或物体来表示或标示。 + es: >- + Ser representado o denotado por un signo, marca u objeto específico + que representa la entidad o el concepto. + structured_aliases: + - literal_form: gesymboliseerd door + - is_or_was_symbolized_by + predicate: EXACT_SYNONYM + in_language: nl + - literal_form: symbolisiert durch + predicate: EXACT_SYNONYM + in_language: de + - literal_form: symbolisé par + predicate: EXACT_SYNONYM + in_language: fr + - literal_form: يُرمز له بـ + predicate: EXACT_SYNONYM + in_language: ar + - literal_form: dilambangkan oleh + predicate: EXACT_SYNONYM + in_language: id + - literal_form: 由...象征 + predicate: EXACT_SYNONYM + in_language: zh + - literal_form: simbolizado por + predicate: EXACT_SYNONYM + in_language: es + range: string + exact_mappings: + - qudt:symbol + close_mappings: + - schema:unitText + - skos:notation + aliases: + - has_or_had_symbol + - is_or_was_symbolized_by + examples: + - value: ha + description: Symbol for hectare + - value: "m²" + description: Symbol for square meter + - value: "€" + description: Euro currency symbol + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Symbols applicable to all custodian types. + comments: + - Updated 2026-02-03 with header documentation + - | + **USAGE**: + Used for standardized symbols such as: + - Unit symbols (e.g., "ha" for hectare, "m²" for square meter) + - Currency symbols (e.g., "€", "$") + - Chemical symbols + - Mathematical notation symbols + - | + **ONTOLOGY ALIGNMENT** (verified against data/ontology/): + + | Ontology | Property | Line | Mapping | Notes | + |----------|----------|------|---------|-------| + | **QUDT** | `qudt:symbol` | qudt-all:2768 | exact | Symbol for units | + | **Schema.org** | `schema:unitText` | N/A | close | Text representation | + | **SKOS** | `skos:notation` | 108-116 | close | Notation/code | diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/targeted_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/targeted_at.yaml new file mode 100644 index 0000000000..381fa6810d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/targeted_at.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/targeted_at +name: targeted_at +title: targeted_at +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + targeted_at: + name: targeted_at + title: targeted_at + description: Audience or group at which the entity is targeted. + slot_uri: hc:targetedAt + range: string # uriorcurie + multivalued: true + aliases: + - is_or_was_targeted_at + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/tax_deductible.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/tax_deductible.yaml new file mode 100644 index 0000000000..ada7c07985 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/tax_deductible.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/tax_deductible +name: tax_deductible +title: tax_deductible +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + tax_deductible: + name: tax_deductible + title: tax_deductible + description: Whether the entity or transaction is tax deductible. + slot_uri: hc:taxDeductible + range: boolean + aliases: + - is_or_was_tax_deductible + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/temperature_target.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/temperature_target.yaml similarity index 94% rename from schemas/20251121/linkml/modules/slots/archive/temperature_target.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/temperature_target.yaml index e66def65fa..1adece0dc8 100644 --- a/schemas/20251121/linkml/modules/slots/archive/temperature_target.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/temperature_target.yaml @@ -22,6 +22,8 @@ slots: description: 'Temperature Target for heritage custodian entities. ' + aliases: + - is_or_was_temperature_target annotations: custodian_types: '["*"]' specificity_score: 0.5 diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/temporarily_located_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/temporarily_located_at.yaml new file mode 100644 index 0000000000..c6f617ce24 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/temporarily_located_at.yaml @@ -0,0 +1,103 @@ +id: https://nde.nl/ontology/hc/slot/temporarily_located_at +name: temporarily_located_at +title: temporarily located at +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + org: http://www.w3.org/ns/org# + oa: http://www.w3.org/ns/oa# +default_prefix: hc +imports: +- linkml:types +slots: + temporarily_located_at: + slot_uri: hc:temporarilyLocatedAt + description: 'Links an entity to its temporary location(s). + + + **Temporal Semantics** (RiC-O Pattern): + + The "isOrWas" naming follows RiC-O convention indicating this relationship + + may be historical - an entity may have been at a temporary location in the past. + + + **Ontological Alignment**: + + - **Primary** (`slot_uri`): `org:hasSite` - W3C Organization Ontology site relationship + + - **Close**: `schema:location` - Schema.org generic location + + - **Related**: `crm:P27_moved_from` / `crm:P26_moved_to` - CIDOC-CRM movement + + + **Use Cases**: + + - Heritage custodian temporarily relocated during renovation + + - Collection items in temporary storage during disaster recovery + + - Pop-up exhibitions at temporary venues + + - Staff temporarily working at interim offices + + + **Distinguished From**: + + - `has_or_had_location`: Permanent/primary location + + - `has_or_had_auxiliary_place`: Permanent secondary locations (branches, depots) + + - `is_or_was_temporarily_located_at`: Time-limited locations with explicit end + dates + + + + MIGRATED 2026-02-03 from is_or_was_temporarily_located_at for conciseness.' + range: string + multivalued: true + aliases: + - is_or_was_temporarily_located_at + exact_mappings: + - org:hasSite + close_mappings: + - schema:location + related_mappings: + - crm:P27_moved_from + - crm:P26_moved_to + - prov:atLocation + annotations: + rico_naming_convention: 'Follows RiC-O "isOrWas" pattern for temporal inverse + predicates. + + See Rule 39: Slot Naming Convention (RiC-O Style) + + ' + replaces_slots: temp_location_id, temp_location_name, temp_location_description, + temp_location_reason (when used on parent class to reference TemporaryLocation) + migration_date: '2026-01-15' + slot_fixes_compliance: Created per slot_fixes.yaml revision + custodian_types: '["*"]' + examples: + - value: + has_or_had_identifier: https://nde.nl/ontology/hc/aux/stedelijk-temp-2020 + has_or_had_label: + - Stedelijk Museum Temporary Entrance + has_or_had_description: + - description_text: Temporary entrance during main entrance renovation + description_type: location + language: en + has_or_had_rationale: Main entrance closed for renovation - accessibility + upgrade + temporal_extent: + begin_of_the_begin: '2020-06-15' + end_of_the_end: '2022-03-15' + description: Renovation interim location with generic slots + comments: + - Links parent entity (custodian, collection) to temporary locations + - Range is TemporaryLocation class + - Multivalued - entity may have multiple temporary locations over time + - 'Temporal semantics: isOrWas indicates historical possibility' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/threatened_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/threatened_by.yaml new file mode 100644 index 0000000000..5dc4957688 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/threatened_by.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/threatened_by +name: threatened_by +title: threatened_by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + threatened_by: + name: threatened_by + title: threatened_by + description: Threat or risk affecting the entity. + slot_uri: hc:threatenedBy + range: string # uriorcurie + multivalued: true + aliases: + - is_or_was_threatened_by + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/track_id.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/track_id.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/track_id.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/track_id.yaml index aa8879de59..899d2f134f 100644 --- a/schemas/20251121/linkml/modules/slots/archive/track_id.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/track_id.yaml @@ -22,6 +22,8 @@ slots: description: 'Track Id for heritage custodian entities. ' + aliases: + - is_or_was_track_id annotations: custodian_types: '["*"]' specificity_score: 0.5 diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/transferred.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/transferred.yaml new file mode 100644 index 0000000000..fbf8b9748b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/transferred.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/transferred +name: transferred +title: transferred +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + transferred: + name: transferred + title: transferred + description: Whether the entity was transferred. + slot_uri: hc:transferred + range: boolean + aliases: + - is_or_was_transferred + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/transferred_to.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/transferred_to.yaml new file mode 100644 index 0000000000..3c083f744b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/transferred_to.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/transferred_to +name: transferred_to +title: transferred_to +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + transferred_to: + name: transferred_to + title: transferred_to + description: Entity or agent to which something was transferred. + slot_uri: hc:transferredTo + range: string # uriorcurie + aliases: + - is_or_was_transferred_to + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/triggered_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/triggered_by.yaml new file mode 100644 index 0000000000..60399f876f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/triggered_by.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/triggered_by +name: triggered_by +title: triggered_by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + triggered_by: + name: triggered_by + title: triggered_by + description: Event or condition that triggered the entity. + slot_uri: hc:triggeredBy + range: string # uriorcurie + aliases: + - is_or_was_triggered_by + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/used_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/used_by.yaml new file mode 100644 index 0000000000..830c7d330c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/used_by.yaml @@ -0,0 +1,23 @@ +id: https://nde.nl/ontology/hc/slot/used_by +name: used_by +title: used_by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + used_by: + name: used_by + title: used_by + description: Agent or activity that used the entity. + slot_uri: hc:usedBy + range: string # uriorcurie + multivalued: true + aliases: + - is_or_was_used_by + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/used_in.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/used_in.yaml new file mode 100644 index 0000000000..41aed7cf03 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/used_in.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/used_in +name: used_in +title: used_in +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + used_in: + name: used_in + title: used_in + description: Context or activity in which the entity was used. + slot_uri: hc:usedIn + range: string # uriorcurie + multivalued: true + aliases: + - is_or_was_used_in + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/verified_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/verified_by.yaml new file mode 100644 index 0000000000..74bb5f6ae4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/verified_by.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/verified_by +name: verified_by +title: verified_by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + verified_by: + name: verified_by + title: verified_by + description: Agent that verified the entity. + slot_uri: hc:verifiedBy + range: string # uriorcurie + aliases: + - is_or_was_verified_by + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/visible_in.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/visible_in.yaml new file mode 100644 index 0000000000..49e0ef6d78 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/visible_in.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/visible_in +name: visible_in +title: visible_in +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + visible_in: + name: visible_in + title: visible_in + description: Context or medium in which the entity is visible. + slot_uri: hc:visibleIn + range: string # uriorcurie + multivalued: true + aliases: + - is_or_was_visible_in + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/was_derived_from.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/was_derived_from.yaml similarity index 96% rename from schemas/20251121/linkml/modules/slots/archive/was_derived_from.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/was_derived_from.yaml index 84c13bb72f..a444f587f6 100644 --- a/schemas/20251121/linkml/modules/slots/archive/was_derived_from.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/was_derived_from.yaml @@ -6,6 +6,8 @@ slots: was_derived_from: slot_uri: prov:wasDerivedFrom range: string # uriorcurie + aliases: + - is_or_was_was_derived_from # range: CustodianObservation multivalued: true description: "CustodianObservation(s) from which this feature type was identified (REQUIRED).\n\nPROV-O: wasDerivedFrom establishes observation\u2192feature type derivation.\n\nFeature type classification can be derived from:\n- Architectural surveys describing building type\n- Heritage registers classifying monuments\n- Historical documents mentioning \"mansion\", \"church\", etc.\n" diff --git a/schemas/20251121/linkml/modules/slots/archive/was_generated_by.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/was_generated_by.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/was_generated_by.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/was_generated_by.yaml index c6cecf3837..8a2987cbcb 100644 --- a/schemas/20251121/linkml/modules/slots/archive/was_generated_by.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/was_generated_by.yaml @@ -6,6 +6,8 @@ slots: was_generated_by: slot_uri: prov:wasGeneratedBy range: string # uriorcurie + aliases: + - is_or_was_was_generated_by # range: ReconstructionActivity description: 'ReconstructionActivity that classified this feature type (optional). diff --git a/schemas/20251121/linkml/modules/slots/archive/was_last_updated_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/was_last_updated_at.yaml similarity index 95% rename from schemas/20251121/linkml/modules/slots/archive/was_last_updated_at.yaml rename to schemas/20251121/linkml/modules/slots/20260202_matang/was_last_updated_at.yaml index f0d41b4984..e3cf507a8a 100644 --- a/schemas/20251121/linkml/modules/slots/archive/was_last_updated_at.yaml +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/was_last_updated_at.yaml @@ -34,6 +34,8 @@ slots: ' range: datetime + aliases: + - is_or_was_was_last_updated_at exact_mappings: - dct:modified - schema:dateModified diff --git a/schemas/20251121/linkml/modules/slots/20260202_matang/webarchived_at.yaml b/schemas/20251121/linkml/modules/slots/20260202_matang/webarchived_at.yaml new file mode 100644 index 0000000000..39a4e2e0e4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/20260202_matang/webarchived_at.yaml @@ -0,0 +1,21 @@ +id: https://nde.nl/ontology/hc/slot/webarchived_at +name: webarchived_at +title: webarchived_at +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + webarchived_at: + name: webarchived_at + title: webarchived_at + description: Web archive where the entity is preserved. + slot_uri: hc:webarchivedAt + range: uri + aliases: + - is_or_was_webarchived_at + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/applies_or_applied_to.yaml b/schemas/20251121/linkml/modules/slots/applies_or_applied_to.yaml deleted file mode 100644 index 8c22f21fc1..0000000000 --- a/schemas/20251121/linkml/modules/slots/applies_or_applied_to.yaml +++ /dev/null @@ -1,36 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/applies_or_applied_to -name: applies_or_applied_to_slot -title: Applies Or Applied To Slot -prefixes: - dcterms: http://purl.org/dc/terms/ - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - schema: http://schema.org/ - rico: https://www.ica.org/standards/RiC/ontology# - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - applies_or_applied_to: - description: 'The entity (call, opportunity, context) that this applies (or applied) to. Uses RiC-O style temporal naming to indicate the relationship may be current or historical. - - Migrated from applies_or_applied_to_call per Rule 53/56 (2026-01-17). Removing domain-specific suffix enables reuse across contexts.' - range: string # uriorcurie - slot_uri: rico:appliesOrAppliedTo - exact_mappings: - - schema:isRelatedTo - close_mappings: - - dcterms:relation - - rico:isOrWasRelatedTo - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Applicable to all heritage custodian types for various application contexts. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: Generic application relationship slot usable across contexts. diff --git a/schemas/20251121/linkml/modules/slots/archive/administrative_context.yaml b/schemas/20251121/linkml/modules/slots/archive/administrative_context.yaml deleted file mode 100644 index 4390a009a7..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/administrative_context.yaml +++ /dev/null @@ -1,23 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/administrative_context -name: administrative_context-slot - -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - -default_prefix: hc - -imports: - - linkml:types - -slots: - administrative_context: - slot_uri: hc:administrativeContext - description: | - Administrative and governmental context. - Documents how this type relates to government structures and public administration. - - **Migrated from**: `**Administrative Context**:` sections. - range: string - annotations: - source_section: "**Administrative Context**:" diff --git a/schemas/20251121/linkml/modules/slots/archive/archive_path.yaml b/schemas/20251121/linkml/modules/slots/archive/archive_path.yaml new file mode 100644 index 0000000000..24dc599854 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/archive_path.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/archive_path +name: archive_path +title: Archive Path +description: Archive path. +imports: +- linkml:types +prefixes: + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + hc: https://nde.nl/ontology/hc/ +# default_range: string +slots: + archive_path: + slot_uri: hc:archive_path + range: string + multivalued: false + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/based_on_claim.yaml b/schemas/20251121/linkml/modules/slots/archive/based_on_claim.yaml deleted file mode 100644 index 85e1777618..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/based_on_claim.yaml +++ /dev/null @@ -1,60 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/based_on_claim -name: based_on_claim_slot -title: Based On Claim Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - prov: http://www.w3.org/ns/prov# - arg: http://www.w3.org/ns/argument# -imports: - - linkml:types -default_prefix: hc -slots: - based_on_claim: - slot_uri: prov:wasInfluencedBy - description: >- - Links a provenance statement or quantity to the claims that support it. - - **ARGUMENTATION SEMANTICS**: - In argumentation theory (Toulmin model), claims provide evidence that - WARRANTS (justifies) conclusions. This slot captures the reverse relationship: - a conclusion or derived value is BASED ON supporting claims. - - **USE CASES**: - 1. Quantity provenance: A claims_count quantity is based on the actual claims - 2. Assertion support: An assertion about an entity is based on web claims - 3. Derivation tracking: A computed value is based on source claims - - **EXAMPLE**: - ```yaml - has_or_had_quantity: - quantity_value: 47 - quantity_type: CLAIM_COUNT - has_or_had_provenance: - based_on_claim: - - claim_type: STAFF_NAME - claim_value: "Jan de Vries" - - claim_type: STAFF_ROLE - claim_value: "Director" - ``` - - **MIGRATION NOTE (2026-01-19)**: - Created per slot_fixes.yaml revision for claims_count migration. - Enables provenance tracking for claim-based quantities. - range: string # uriorcurie - # range: Claim - multivalued: true - inlined_as_list: false # Fixed invalid inline for primitive type - exact_mappings: - - prov:wasInfluencedBy - close_mappings: - - prov:wasDerivedFrom - - arg:warrant - annotations: - custodian_types: '["*"]' - custodian_types_rationale: >- - Claim-based provenance applies universally across all custodian types. - custodian_types_primary: "*" - specificity_score: 0.20 - specificity_rationale: >- - Low specificity - claim provenance is broadly applicable. diff --git a/schemas/20251121/linkml/modules/slots/archive/basionym_authority.yaml b/schemas/20251121/linkml/modules/slots/archive/basionym_authority.yaml new file mode 100644 index 0000000000..b17bb3180c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/basionym_authority.yaml @@ -0,0 +1,14 @@ +id: https://nde.nl/ontology/hc/slot/basionym_authority +name: basionym_authority +imports: + - linkml:types +slots: + basionym_authority: + slot_uri: hc:basionymAuthority + range: string # uriorcurie + description: 'Authority of the original name (basionym) if this is a recombination. + The parenthetical authority in "(Gray, 1821) Smith, 1900". + ' + inlined: false # Fixed invalid inline for primitive type + annotations: + custodian_types: "['*']" diff --git a/schemas/20251121/linkml/modules/slots/archive/connection_heritage_relevant.yaml b/schemas/20251121/linkml/modules/slots/archive/connection_heritage_relevant.yaml new file mode 100644 index 0000000000..72e41846b2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/connection_heritage_relevant.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/connection_heritage_relevant +name: connection_heritage_relevant +title: Connection Heritage Relevant +description: Connection heritage relevant. +imports: +- linkml:types +prefixes: + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + hc: https://nde.nl/ontology/hc/ +# default_range: string +slots: + connection_heritage_relevant: + slot_uri: hc:connection_heritage_relevant + range: string + multivalued: false + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/connection_heritage_type.yaml b/schemas/20251121/linkml/modules/slots/archive/connection_heritage_type.yaml new file mode 100644 index 0000000000..4de4d83919 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/connection_heritage_type.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/connection_heritage_type +name: connection_heritage_type +title: Connection Heritage Type +description: Connection heritage type. +imports: +- linkml:types +prefixes: + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + hc: https://nde.nl/ontology/hc/ +# default_range: string +slots: + connection_heritage_type: + slot_uri: hc:connection_heritage_type + range: string + multivalued: false + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/connection_id.yaml b/schemas/20251121/linkml/modules/slots/archive/connection_id.yaml new file mode 100644 index 0000000000..df0921dccb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/connection_id.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/connection_id +name: connection_id_slot +title: connection_id slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dct: http://purl.org/dc/terms/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + connection_id: + description: 'Unique identifier for this connection entry. + + Format: {target_slug}_conn_{index:04d}_{name_slug} + + + The connection_id enables: + + - Deduplication across connection lists + + - Linking to full profile if extracted later + + - Tracking same person across multiple target profiles + + ' + slot_uri: dct:identifier + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - dct:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/connection_linkedin_url.yaml b/schemas/20251121/linkml/modules/slots/archive/connection_linkedin_url.yaml new file mode 100644 index 0000000000..b1e7590d21 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/connection_linkedin_url.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/connection_linkedin_url +name: connection_linkedin_url_slot +title: connection_linkedin_url slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + connection_linkedin_url: + description: 'LinkedIn profile URL for this connection (if extractable). + + May be absent for privacy-restricted or abbreviated name profiles. + + ' + slot_uri: schema:url + range: uri + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:url diff --git a/schemas/20251121/linkml/modules/slots/archive/connection_location.yaml b/schemas/20251121/linkml/modules/slots/archive/connection_location.yaml new file mode 100644 index 0000000000..1e526c38e9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/connection_location.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/connection_location +name: connection_location_slot +title: connection_location slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + connection_location: + description: 'Location as displayed on the connection''s profile. + + Format varies: "City, Region, Country" or "Country" only. + + ' + slot_uri: schema:homeLocation + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:homeLocation diff --git a/schemas/20251121/linkml/modules/slots/archive/connection_name.yaml b/schemas/20251121/linkml/modules/slots/archive/connection_name.yaml new file mode 100644 index 0000000000..64416e398a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/connection_name.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/connection_name +name: connection_name_slot +title: connection_name slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + connection_name: + description: 'Name of the connected person as displayed on LinkedIn. + + May be abbreviated ("Amy B.") or anonymous ("LinkedIn Member") + + depending on privacy settings. + + ' + slot_uri: schema:name + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:name diff --git a/schemas/20251121/linkml/modules/slots/archive/connection_organization.yaml b/schemas/20251121/linkml/modules/slots/archive/connection_organization.yaml new file mode 100644 index 0000000000..10e6b2e213 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/connection_organization.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/connection_organization +name: connection_organization_slot +title: connection_organization slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + connection_organization: + description: 'Primary organization extracted from headline (when identifiable). + + May be absent if headline doesn''t clearly indicate organization. + + ' + slot_uri: schema:memberOf + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:memberOf diff --git a/schemas/20251121/linkml/modules/slots/archive/connections_by_heritage_type.yaml b/schemas/20251121/linkml/modules/slots/archive/connections_by_heritage_type.yaml new file mode 100644 index 0000000000..ebb8a3b197 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/connections_by_heritage_type.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/connections_by_heritage_type +name: connections_by_heritage_type_slot +title: Connections By Heritage Type Slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + connections_by_heritage_type: + description: 'Breakdown of heritage-relevant connections by type code. + + Keys are single-letter GLAMORCUBESFIXPHDNT codes. + + ' + slot_uri: hc:connectionsByHeritageType + range: string + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:connectionsByHeritageType diff --git a/schemas/20251121/linkml/modules/slots/archive/connections_extracted.yaml b/schemas/20251121/linkml/modules/slots/archive/connections_extracted.yaml new file mode 100644 index 0000000000..57a4b3b409 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/connections_extracted.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/connections_extracted +name: connections_extracted_slot +title: Connections Extracted Slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + connections_extracted: + description: 'Total number of connections extracted from this source. + + Used for validation and completeness tracking. + + ' + slot_uri: schema:numberOfItems + range: integer + minimum_value: 0 + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:numberOfItems diff --git a/schemas/20251121/linkml/modules/slots/archive/connections_text.yaml b/schemas/20251121/linkml/modules/slots/archive/connections_text.yaml new file mode 100644 index 0000000000..0b5b728b10 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/connections_text.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/connections_text +name: connections_text_slot +title: Connections Text Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + connections_text: + description: "Raw connections/followers text from LinkedIn.\nFormat: \"X connections \u2022 Y followers\"\nPreserved as-is for provenance.\n" + range: string + slot_uri: hc:connectionsText + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:connectionsText diff --git a/schemas/20251121/linkml/modules/slots/archive/connectivity_type.yaml b/schemas/20251121/linkml/modules/slots/archive/connectivity_type.yaml new file mode 100644 index 0000000000..cbc55e9697 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/connectivity_type.yaml @@ -0,0 +1,45 @@ +id: https://nde.nl/ontology/hc/slot/connectivity_type +name: connectivity_type_slot +title: Connectivity Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + connectivity_type: + description: 'Type of connectivity used by the device. + + + Values: + + - BLUETOOTH_LE: Bluetooth Low Energy (beacons) + + - WIFI: WiFi network connection + + - ETHERNET: Wired network connection + + - LORAWAN: Long-range low-power IoT network + + - NFC: Near-field communication + + - ZIGBEE: Zigbee mesh network + + - CELLULAR: 4G/5G cellular connection + + ' + range: string + slot_uri: hc:connectivityType + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:connectivityType diff --git a/schemas/20251121/linkml/modules/slots/archive/conservation_breeding.yaml b/schemas/20251121/linkml/modules/slots/archive/conservation_breeding.yaml new file mode 100644 index 0000000000..6abee25404 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/conservation_breeding.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/conservation_breeding +name: conservation_breeding_slot +title: Conservation Breeding Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + conservation_breeding: + description: "Description of captive breeding programs for endangered species conservation.\nFree-text field documenting breeding initiatives, species involved, and\nconservation goals.\n\n**Types of Breeding Programs**:\n\n**Regional Breeding Programs**:\n- **EEP (European Endangered Species Programme)** - Coordinated EU zoo breeding\n - Example: \"EEP coordinator for Bornean orangutan\"\n- **SSP (Species Survival Plan)** - AZA coordinated breeding (North America)\n - Example: \"SSP participant for California condor\"\n- **Global Species Management Plans (GSMP)** - International coordination\n\n**Conservation Objectives**:\n- \"Genetic diversity management\" - Maintaining healthy populations\n- \"Reintroduction stock production\" - Breeding for wild release\n- \"Insurance populations\" - Backup for critically endangered species\n- \"Captive breeding before extinction\" - Last-resort conservation\n\n**Notable Programs**:\n- \"Giant panda breeding program\" - Reproductive research +\ + \ captive propagation\n- \"Przewalski's horse reintroduction\" - Successfully returned to Mongolia\n- \"California condor recovery\" - From 27 birds (1987) to 500+ (2023)\n- \"Black-footed ferret breeding\" - Cloning + traditional breeding\n- \"Scimitar-horned oryx restoration\" - Extinct in wild, reintroduced from captive stock\n\n**Botanical Breeding**:\n- \"Seed bank deposits\" - Long-term genetic preservation\n- \"Rare plant propagation\" - Cultivating endangered species\n- \"Heirloom variety preservation\" - Heritage crops and ornamentals\n- \"Tissue culture programs\" - Clonal propagation of rare plants\n\n**Examples**:\n- Rotterdam Zoo: \"European breeding programs (EEP) for gorillas, Asian elephants, red pandas\"\n- San Diego Zoo: \"Frozen Zoo genetic bank, giant panda breeding, California condor recovery\"\n- Kew Gardens: \"Millennium Seed Bank with 2.4 billion seeds from 40,000 species\"\n- Chester Zoo: \"Islands conservation breeding for Sumatran tigers, Sulawesi crested\ + \ macaques\"\n\n**Success Metrics**:\n- Number of successful births/propagations per year\n- Percentage of offspring surviving to adulthood\n- Number of individuals reintroduced to wild\n- Genetic diversity maintained (measured by mean kinship)\n\n**Ontology Alignment**:\n- Related to IUCN Red List conservation status\n- Maps to `schema:Project` with conservation purpose\n- Related to Darwin Core occurrence records\n" + range: string + slot_uri: hc:conservationBreeding + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:conservationBreeding diff --git a/schemas/20251121/linkml/modules/slots/archive/conservation_history.yaml b/schemas/20251121/linkml/modules/slots/archive/conservation_history.yaml new file mode 100644 index 0000000000..f3ba6a17d0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/conservation_history.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/conservation_history +name: conservation_history_slot +title: Conservation History Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + conservation_history: + description: 'History of conservation treatments. + + ' + range: string + multivalued: true + slot_uri: crm:P31i_was_modified_by + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P31i_was_modified_by diff --git a/schemas/20251121/linkml/modules/slots/archive/conservation_lab.yaml b/schemas/20251121/linkml/modules/slots/archive/conservation_lab.yaml new file mode 100644 index 0000000000..09f02f015f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/conservation_lab.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/conservation_lab +name: conservation_lab_slot +title: Conservation Lab Slot +description: Shared slot for conservation laboratory information across heritage custodian entities +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + conservation_lab: + description: 'Whether the museum has an in-house conservation laboratory for object preservation. + + True = has conservation facilities, False = outsources conservation. + + ' + range: string + slot_uri: schema:location + comments: + - Classes may override range in slot_usage (e.g., boolean for MuseumType) + related_mappings: + - schema:location + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:location diff --git a/schemas/20251121/linkml/modules/slots/archive/conservation_note.yaml b/schemas/20251121/linkml/modules/slots/archive/conservation_note.yaml new file mode 100644 index 0000000000..a662510960 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/conservation_note.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/conservation_note +name: conservation_note_slot +title: Conservation Notes Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + conservation_note: + description: 'Additional notes about the conservation record. + + ' + range: string + multivalued: true + slot_uri: skos:note + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:note diff --git a/schemas/20251121/linkml/modules/slots/archive/conservation_specialization.yaml b/schemas/20251121/linkml/modules/slots/archive/conservation_specialization.yaml new file mode 100644 index 0000000000..863397414f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/conservation_specialization.yaml @@ -0,0 +1,51 @@ +id: https://nde.nl/ontology/hc/slot/conservation_specialization +name: conservation_specialization_slot +title: Conservation Specializations Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + conservation_specialization: + description: 'Material types or conservation specializations of this lab. + + + Schema.org: knowsAbout for areas of expertise. + + + Common specializations: + + - Paper, Parchment, Books + + - Paintings, Works on paper + + - Textiles, Costume + + - Objects, Sculpture, Ceramics + + - Photographs, Film + + - Metals, Arms and armor + + - Furniture, Woodwork + + - Digital preservation + + ' + range: string + multivalued: true + slot_uri: hc:conservationSpecializations + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:conservationSpecializations diff --git a/schemas/20251121/linkml/modules/slots/archive/conservation_status.yaml b/schemas/20251121/linkml/modules/slots/archive/conservation_status.yaml new file mode 100644 index 0000000000..01b266f7d9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/conservation_status.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/conservation-status +name: conservation_status_slot +title: conservation_status slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + conservation_status: + slot_uri: schema:additionalType + description: 'Conservation or protection status (for nature reserves). + + + e.g., Natura 2000, National Park, Nature Reserve + + ' + range: string + examples: + - value: Natura 2000 + description: EU nature protection + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:additionalType diff --git a/schemas/20251121/linkml/modules/slots/archive/conservator.yaml b/schemas/20251121/linkml/modules/slots/archive/conservator.yaml new file mode 100644 index 0000000000..24bd75d658 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/conservator.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/conservator +name: conservator_slot +title: Conservator Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + conservator: + description: 'Name(s) of conservator(s) who performed the work. + + ' + range: string + multivalued: true + slot_uri: crm:P14_carried_out_by + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P14_carried_out_by diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/affects_or_affected.yaml b/schemas/20251121/linkml/modules/slots/archive/conservator_affiliation.yaml similarity index 60% rename from frontend/public/schemas/20251121/linkml/modules/slots/affects_or_affected.yaml rename to schemas/20251121/linkml/modules/slots/archive/conservator_affiliation.yaml index ce97ee0699..cb0e31cf4d 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/affects_or_affected.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/conservator_affiliation.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/affects_or_affected -name: affects_or_affected -title: affects_or_affected +id: https://nde.nl/ontology/hc/slot/conservator_affiliation +name: conservator_affiliation_slot +title: Conservator Affiliation Slot prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -12,18 +12,17 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc imports: - linkml:types -- ../classes/Organization +default_prefix: hc slots: - affects_or_affected: - name: affects_or_affected - title: affects_or_affected - description: Affects an entity. - slot_uri: prov:influenced - range: Organization + conservator_affiliation: + description: 'Institutional has_or_had_affiliation of the conservator. + + ' + range: string + slot_uri: schema:affiliation annotations: custodian_types: '["*"]' exact_mappings: - - prov:influenced + - schema:affiliation diff --git a/schemas/20251121/linkml/modules/slots/archive/constituent_type.yaml b/schemas/20251121/linkml/modules/slots/archive/constituent_type.yaml new file mode 100644 index 0000000000..519799cb4e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/constituent_type.yaml @@ -0,0 +1,54 @@ +id: https://nde.nl/ontology/hc/slot/constituent_type +name: constituent_type_slot +title: Constituent Types Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + constituent_type: + description: 'Which specific heritage types the institution combines. + + + Lists component institutional functions: + + - **Primary types**: Core institutional functions (e.g., Archive, Museum) + + - **Secondary types**: Significant additional functions (e.g., Library, Gallery) + + - **Relative weighting**: Which type is dominant vs. equal partnership + + - **Historical development**: Did institution start mixed or become mixed? + + + Constituent types should reflect ACTUAL operational reality, not aspirational mission. + + + Examples: + + - "Archive (primary), Museum (significant exhibition program)" + + - "Museum (primary), Library (substantial research collections)" + + - "Library (primary), Archive (manuscript collections), Gallery (rotating exhibitions)" + + - "Museum + Research Center (equal partnership)" + + ' + range: string + multivalued: true + slot_uri: dcterms:type + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:type diff --git a/schemas/20251121/linkml/modules/slots/archive/construction_date.yaml b/schemas/20251121/linkml/modules/slots/archive/construction_date.yaml new file mode 100644 index 0000000000..453442202a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/construction_date.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/construction_date +name: construction_date_slot +title: Construction Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + construction_date: + description: 'Date or year of construction. + + + Schema.org: dateCreated for creation date. + + + May be: + + - Exact year: "1650" + + - Approximate: "ca. 1650" + + - Range: "1648-1652" + + - Century: "17th century" + + ' + range: string + slot_uri: dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:date diff --git a/schemas/20251121/linkml/modules/slots/archive/construction_date_precision.yaml b/schemas/20251121/linkml/modules/slots/archive/construction_date_precision.yaml new file mode 100644 index 0000000000..71d778f5f2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/construction_date_precision.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/construction_date_precision +name: construction_date_precision_slot +title: Construction Date Precision Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + construction_date_precision: + description: 'Precision of the construction date. + + + CIDOC-CRM: P82_at_some_time_within for temporal precision. + + + Values: EXACT, APPROXIMATE, DECADE, CENTURY + + ' + range: string + slot_uri: hc:constructionDatePrecision + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:constructionDatePrecision diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_score.yaml b/schemas/20251121/linkml/modules/slots/archive/consumes_or_consumed.yaml similarity index 53% rename from frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_score.yaml rename to schemas/20251121/linkml/modules/slots/archive/consumes_or_consumed.yaml index 1e4d618d02..4bb59fc5e3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_score.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/consumes_or_consumed.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_score -name: has_or_had_score -title: Has or Had Score +id: https://nde.nl/ontology/hc/slot/consumes_or_consumed +name: consumes_or_consumed +title: Consumes or Consumed prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -16,31 +16,27 @@ default_prefix: hc imports: - linkml:types slots: - has_or_had_score: - slot_uri: schema:ratingValue - description: 'A numeric score or rating value. + consumes_or_consumed: + slot_uri: schema:amount + description: 'Resources consumed by an entity or activity. **USAGE**: Used for: - - XPath match confidence scores (0.0-1.0) + - Token consumption (LLM APIs) - - Relevance scores + - Resource usage metrics - - Quality ratings - - - Similarity scores + - Consumption tracking ' - # range: float + range: integer close_mappings: - - schema:ratingValue + - schema:amount examples: - - value: 0.95 - description: XPath match confidence score - - value: 4.5 - description: Rating score + - value: 15000 + description: Total tokens consumed annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/contact.yaml b/schemas/20251121/linkml/modules/slots/archive/contact.yaml new file mode 100644 index 0000000000..55b4d46b8d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/contact.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/contact +name: contact_slot +imports: +- linkml:types +slots: + contact: + slot_uri: foaf:mbox + range: string + exact_mappings: + - schema:contactPoint + description: 'Contact information (email) for the agent. + + + Ontology mappings: + + - FOAF: mbox for email addresses (standard web practice) + + - Schema.org: email property alternative + + - CPOV: email property from EU Core Public Organisation Vocabulary + + - CPOV: ContactPoint class for more complex contact information + + ' + close_mappings: + - cpov:ContactPoint + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/contact_point.yaml b/schemas/20251121/linkml/modules/slots/archive/contact_point.yaml new file mode 100644 index 0000000000..4f7a1f18be --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/contact_point.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/contact_point +name: contact_point_slot +imports: +- linkml:types +slots: + contact_point: + slot_uri: schema:contactPoint + range: string + description: 'Contact information for this branch. + + + vCard: hasEmail for organizational contact. + + Also compatible with Schema.org contactPoint. + + + Can be email, phone, or URL. + + ' + exact_mappings: + - vcard:email + - vcard:hasTelephone + - schema:contactPoint + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/contains_or_contained_collection.yaml b/schemas/20251121/linkml/modules/slots/archive/contains_or_contained_collection.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/contains_or_contained_collection.yaml rename to schemas/20251121/linkml/modules/slots/archive/contains_or_contained_collection.yaml diff --git a/schemas/20251121/linkml/modules/slots/contains_or_contained_contains_unit.yaml b/schemas/20251121/linkml/modules/slots/archive/contains_or_contained_contains_unit.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/contains_or_contained_contains_unit.yaml rename to schemas/20251121/linkml/modules/slots/archive/contains_or_contained_contains_unit.yaml diff --git a/schemas/20251121/linkml/modules/slots/contains_or_contained_covers_settlement.yaml b/schemas/20251121/linkml/modules/slots/archive/contains_or_contained_covers_settlement.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/contains_or_contained_covers_settlement.yaml rename to schemas/20251121/linkml/modules/slots/archive/contains_or_contained_covers_settlement.yaml diff --git a/schemas/20251121/linkml/modules/slots/archive/contains_storage.yaml b/schemas/20251121/linkml/modules/slots/archive/contains_storage.yaml new file mode 100644 index 0000000000..fc9c487f7e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/contains_storage.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/contains_storage +name: contains_storage_slot +title: Contains Storage Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + contains_storage: + description: 'Storage facilities within this closed space. + + Aligned with crm:P46_is_composed_of. + + ' + slot_uri: crm:P46_is_composed_of + range: string # uriorcurie + # range: Storage + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P46_is_composed_of diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/specificity_annotation.yaml b/schemas/20251121/linkml/modules/slots/archive/content.yaml similarity index 54% rename from frontend/public/schemas/20251121/linkml/modules/slots/specificity_annotation.yaml rename to schemas/20251121/linkml/modules/slots/archive/content.yaml index 12998bb545..3a275b2076 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/specificity_annotation.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/content.yaml @@ -1,32 +1,34 @@ -id: https://nde.nl/ontology/hc/slot/specificity_annotation -name: specificity_annotation_slot -title: Specificity Annotation Slot +id: https://nde.nl/ontology/hc/slot/content +name: content_slot +title: content slot +version: 1.0.0 prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# crm: http://www.cidoc-crm.org/cidoc-crm/ skos: http://www.w3.org/2004/02/skos/core# rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc imports: - linkml:types -- ../classes/SpecificityAnnotation +default_prefix: hc slots: - specificity_annotation: - slot_uri: hc:specificityAnnotation - description: 'Structured specificity annotation metadata. + content: + description: 'The final LLM response text (message.content from API response). - Combines score, rationale, timestamp, and agent. + PROV-O: prov:generated - the entity produced by this activity. + + + This is the primary output shown to users and used for downstream processing. ' - range: SpecificityAnnotation - inlined: true + slot_uri: prov:generated + range: string annotations: custodian_types: '["*"]' exact_mappings: - - hc:specificityAnnotation + - prov:generated diff --git a/schemas/20251121/linkml/modules/slots/archive/content_block.yaml b/schemas/20251121/linkml/modules/slots/archive/content_block.yaml new file mode 100644 index 0000000000..d4c2ae0996 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/content_block.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/content_block +name: content_block_slot +title: Content Blocks Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + content_block: + slot_uri: schema:text + description: Paragraph content within this section + range: string + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:text diff --git a/schemas/20251121/linkml/modules/slots/archive/content_category.yaml b/schemas/20251121/linkml/modules/slots/archive/content_category.yaml new file mode 100644 index 0000000000..3abc97eb70 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/content_category.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/content_category +name: content_category_slot +title: Content Category Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + content_category: + description: 'Category or genre of the content. + + + Schema.org: genre for content classification. + + + Platform-specific category systems: + + - YouTube: Category ID (e.g., "22" = People & Blogs) + + - Instagram: N/A + + - TikTok: Category/trend + + ' + range: string + slot_uri: hc:contentCategory + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:contentCategory diff --git a/schemas/20251121/linkml/modules/slots/archive/content_changed.yaml b/schemas/20251121/linkml/modules/slots/archive/content_changed.yaml new file mode 100644 index 0000000000..d9ef633e6f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/content_changed.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/content_changed +name: content_changed_slot +title: Content Changed Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + content_changed: + range: boolean + description: Whether content changed since previous observation + slot_uri: hc:contentChanged + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:contentChanged diff --git a/schemas/20251121/linkml/modules/slots/archive/content_hash.yaml b/schemas/20251121/linkml/modules/slots/archive/content_hash.yaml new file mode 100644 index 0000000000..beb7ad61bd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/content_hash.yaml @@ -0,0 +1,56 @@ +id: https://nde.nl/ontology/hc/slot/content_hash +name: content_hash +title: Content Hash +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + spdx: http://spdx.org/rdf/terms# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + content_hash: + slot_uri: spdx:checksumValue + description: 'SHA-256 hash of content for integrity verification. + + + **PURPOSE**: + + Enables verification that content has not changed since observation. + + Used for deduplication and change detection. + + + **FORMAT OPTIONS**: + + - SRI format: sha256-{base64_hash} (for web content) + + - Hex format: {64_hex_chars} (for file content) + + + **USAGE**: + + - WebObservation: Hash of retrieved HTML/content + + - MissionStatement: Hash of statement text + + - Any content requiring integrity verification + + ' + range: string + exact_mappings: + - spdx:checksumValue + - dcat:checksum + comments: + - SHA-256 provides collision resistance for content verification + - SRI format preferred for web content (sha256-{base64}) + - Hex format acceptable for file content + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/content_id.yaml b/schemas/20251121/linkml/modules/slots/archive/content_id.yaml new file mode 100644 index 0000000000..a56ad923d8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/content_id.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/content_id +name: content_id_slot +title: Content Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + content_id: + description: 'Unique identifier for this content item. Mapped to dcterms:identifier as the standard property for resource identifiers. + + + Format varies by platform: + + - YouTube: Video ID (e.g., "dQw4w9WgXcQ") + + - Twitter/X: Tweet ID (numeric string) + + - Instagram: Media ID + + + Combined with platform type, this uniquely identifies content globally. + + ' + range: string + slot_uri: dcterms:identifier + close_mappings: + - schema:identifier + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/content_origin.yaml b/schemas/20251121/linkml/modules/slots/archive/content_origin.yaml new file mode 100644 index 0000000000..934b5c7725 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/content_origin.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/content_origin +name: content_origin_slot +title: Content Origin Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + content_origin: + description: 'Origin of digital content in this archive. + + Values: born_digital, digitized, mixed + + ' + range: string + slot_uri: hc:contentOrigin + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:contentOrigin diff --git a/schemas/20251121/linkml/modules/slots/archive/content_title.yaml b/schemas/20251121/linkml/modules/slots/archive/content_title.yaml new file mode 100644 index 0000000000..20a0ec51b2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/content_title.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/content_title +name: content_title_slot +title: Content Title Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + content_title: + slot_uri: dcterms:title + description: 'Title or label for this text content. + + Ontology mapping: dcterms:title is the Dublin Core property for the name given to a resource. + + Examples: - "Rijksmuseum Tour - Full Transcript" - "Dutch Subtitles - Auto-generated" - "Scene Annotations - CV Model v2.1"' + range: string + close_mappings: + - schema:name + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/content_type.yaml b/schemas/20251121/linkml/modules/slots/archive/content_type.yaml new file mode 100644 index 0000000000..6f339c8798 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/content_type.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/content_type +name: content_type_slot +title: Content Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + content_type: + range: string + description: MIME type of retrieved content (text/html, application/json, etc.) + slot_uri: hc:contentType + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:contentType diff --git a/schemas/20251121/linkml/modules/slots/archive/content_url.yaml b/schemas/20251121/linkml/modules/slots/archive/content_url.yaml new file mode 100644 index 0000000000..7d761ebb1b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/content_url.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/content_url +name: content_url_slot +title: Content Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + content_url: + description: 'Canonical URL to access this content on its native platform. + + + URL patterns by platform: + + - YouTube: https://www.youtube.com/watch?v={video_id} + + - Twitter/X: https://x.com/{user}/status/{tweet_id} + + - Instagram: https://www.instagram.com/p/{shortcode} + + ' + range: uri + slot_uri: schema:contentUrl + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:contentUrl diff --git a/schemas/20251121/linkml/modules/slots/archive/contents_description.yaml b/schemas/20251121/linkml/modules/slots/archive/contents_description.yaml new file mode 100644 index 0000000000..b89176458f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/contents_description.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/contents_description +name: contents_description_slot +title: Contents Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + contents_description: + slot_uri: dcterms:description + description: 'Description of typical contents stored in this warehouse. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:description diff --git a/schemas/20251121/linkml/modules/slots/archive/contributes_or_contributed.yaml b/schemas/20251121/linkml/modules/slots/archive/contributes_or_contributed.yaml new file mode 100644 index 0000000000..9759db70ce --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/contributes_or_contributed.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/contributes_or_contributed +name: contributes_or_contributed +title: contributes_or_contributed +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + contributes_or_contributed: + name: contributes_or_contributed + title: contributes_or_contributed + description: Contributes data or resources. + slot_uri: prov:hadMember + range: string # uriorcurie + # range: AuthorityData + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:hadMember diff --git a/schemas/20251121/linkml/modules/slots/archive/contributes_to.yaml b/schemas/20251121/linkml/modules/slots/archive/contributes_to.yaml new file mode 100644 index 0000000000..18d0021e65 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/contributes_to.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/contributes_to +name: contributes_to_slot +title: contributes_to slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + contributes_to: + slot_uri: schema:memberOf + description: 'Consortium services this agency contributes to. + + + Primary: VIAF + + Also possible: WorldCat, ISNI (via national ISNI agency) + + ' + range: string # uriorcurie + # range: Standard + multivalued: true + required: true + inlined: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:memberOf diff --git a/schemas/20251121/linkml/modules/slots/archive/contribution_start_date.yaml b/schemas/20251121/linkml/modules/slots/archive/contribution_start_date.yaml new file mode 100644 index 0000000000..da7f7b8249 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/contribution_start_date.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/contribution_start_date +name: contribution_start_date_slot +title: contribution_start_date slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + contribution_start_date: + slot_uri: schema:startDate + description: 'Date when this agency started contributing to the service. + + + **VIAF:** Launched in 2003; early contributors joined 2003-2012. + + **WorldCat:** OCLC members contributing since 1967. + + **ISNI:** Operational since 2012. + + ' + range: date + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:startDate diff --git a/schemas/20251121/linkml/modules/slots/archive/contributor.yaml b/schemas/20251121/linkml/modules/slots/archive/contributor.yaml new file mode 100644 index 0000000000..99656488ea --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/contributor.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/contributor +name: contributor_slot +title: Contributors Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + contributor: + description: 'Additional contributors (essayists, researchers, translators). + + ' + range: string + multivalued: true + slot_uri: schema:contributor + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:contributor diff --git a/schemas/20251121/linkml/modules/slots/archive/contributor_code.yaml b/schemas/20251121/linkml/modules/slots/archive/contributor_code.yaml new file mode 100644 index 0000000000..56e1b5b782 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/contributor_code.yaml @@ -0,0 +1,65 @@ +id: https://nde.nl/ontology/hc/slot/contributor_code +name: contributor_code_slot +title: contributor_code slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + contributor_code: + slot_uri: schema:identifier + description: 'Official contributor code/abbreviation for the consortium service. + + + These codes typically appear in source record identifiers within the service. + + + **VIAF Examples:** + + - "LC" - Library of Congress + + - "DNB" - Deutsche Nationalbibliothek + + - "BnF" - Bibliotheque nationale de France + + - "NTA" - National Library of the Netherlands (Thesaurus van auteursnamen) + + - "BNE" - Biblioteca Nacional de Espana + + - "ICCU" - Istituto Centrale per il Catalogo Unico + + - "NDL" - National Diet Library (Japan) + + - "NLA" - National Library of Australia + + - "NLI" - National Library of Israel + + - "SWNL" - Swiss National Library + + + **WorldCat Examples:** + + - OCLC symbol codes (e.g., "DLC", "NjP", "CaOTU") + + + **ISNI Examples:** + + - National ISNI agency codes + + ' + range: string + required: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/conversion_source_population.yaml b/schemas/20251121/linkml/modules/slots/archive/conversion_source_population.yaml new file mode 100644 index 0000000000..2be0fe4a66 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/conversion_source_population.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/conversion_source_population +name: conversion_source_population_slot +title: Conversion Source Population Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + conversion_source_population: + slot_uri: hc:sourcePopulation + range: string + description: 'The group being measured (denominator) in a conversion rate calculation. + + + This identifies the total population from which conversions are measured. + + ' + examples: + - value: museum/venue visitors + description: Total visitors to the physical venue + - value: website visitors + description: Total unique website visitors + - value: email recipients + description: Total number of emails delivered + - value: social media content viewers + description: Total views on social media content + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:sourcePopulation diff --git a/schemas/20251121/linkml/modules/slots/archive/conversion_target_action.yaml b/schemas/20251121/linkml/modules/slots/archive/conversion_target_action.yaml new file mode 100644 index 0000000000..57a5897e93 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/conversion_target_action.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/conversion_target_action +name: conversion_target_action_slot +title: Conversion Target Action Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + conversion_target_action: + slot_uri: hc:targetAction + range: string + description: 'The action being measured (numerator) in a conversion rate calculation. + + + This identifies what action constitutes a "conversion" from the source population. + + ' + examples: + - value: made gift shop purchase + description: Visitor completed a purchase + - value: became member/supporter + description: Visitor signed up for membership + - value: clicked link in email + description: Recipient clicked a link + - value: visited venue physically + description: Online visitor came in person + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:targetAction diff --git a/schemas/20251121/linkml/modules/slots/archive/conversion_type_label.yaml b/schemas/20251121/linkml/modules/slots/archive/conversion_type_label.yaml new file mode 100644 index 0000000000..0992b04fa9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/conversion_type_label.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/conversion_type_label +name: conversion_type_label_slot +title: Conversion Type Label Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + conversion_type_label: + slot_uri: rdfs:label + range: string + required: true + description: 'Human-readable label for this conversion rate type. + + + Examples: "Visitor to Purchase", "Email to Click", "Online to Physical Visit" + + ' + exact_mappings: + - skos:prefLabel + examples: + - value: Visitor to Purchase + description: Label for visitor-to-purchase conversion type + - value: Email to Click + description: Label for email click-through conversion type + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/coordinate_reference_system.yaml b/schemas/20251121/linkml/modules/slots/archive/coordinate_reference_system.yaml new file mode 100644 index 0000000000..4bd66ab516 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/coordinate_reference_system.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/slot/coordinate_reference_system +name: coordinate_reference_system +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + geosparql: http://www.opengis.net/ont/geosparql# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + coordinate_reference_system: + slot_uri: geosparql:hasSpatialResolution + range: string + description: 'Coordinate Reference System identifier. + + Default: EPSG:4326 (WGS84). + + + Common CRS codes: + + - EPSG:4326 - WGS84 (GPS coordinates) + + - EPSG:28992 - Amersfoort / RD New (Dutch national grid) + + - EPSG:3857 - Web Mercator (web maps) + + ' + examples: + - value: EPSG:4326 + description: WGS84 - default for GPS coordinates + - value: EPSG:28992 + description: Dutch Rijksdriehoeksstelsel + annotations: + custodian_types: '["*"]' + exact_mappings: + - geosparql:hasSpatialResolution diff --git a/schemas/20251121/linkml/modules/slots/archive/coordinates.yaml b/schemas/20251121/linkml/modules/slots/archive/coordinates.yaml new file mode 100644 index 0000000000..af34bef9fa --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/coordinates.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/coordinates +name: coordinates_slot +title: Coordinates Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + coordinates: + slot_uri: hc:coordinates + range: string + description: 'Coordinates for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:coordinates diff --git a/schemas/20251121/linkml/modules/slots/archive/copy_note.yaml b/schemas/20251121/linkml/modules/slots/archive/copy_note.yaml new file mode 100644 index 0000000000..286f886e90 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/copy_note.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/copy_note +name: copy_note_slot +title: Copy Notes Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + copy_note: + description: 'Notes specific to this copy (imperfections, special features). + + Maps to skos:note for item-specific documentation notes.' + range: string + multivalued: true + slot_uri: skos:note + close_mappings: + - dcterms:description + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/copy_number.yaml b/schemas/20251121/linkml/modules/slots/archive/copy_number.yaml new file mode 100644 index 0000000000..ce82cc36ef --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/copy_number.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/copy_number +name: copy_number_slot +title: Copy Number Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + copy_number: + description: 'Copy number for limited editions. + + ' + range: string + slot_uri: hc:copyNumber + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:copyNumber diff --git a/schemas/20251121/linkml/modules/slots/archive/corporate_integration.yaml b/schemas/20251121/linkml/modules/slots/archive/corporate_integration.yaml new file mode 100644 index 0000000000..fe1cbf9246 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/corporate_integration.yaml @@ -0,0 +1,59 @@ +id: https://nde.nl/ontology/hc/slot/corporate_integration +name: corporate_integration_slot +title: Corporate Integration Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + corporate_integration: + description: 'How the heritage collection is integrated into the company''s organizational structure. + + + Describes organizational placement: + + - **Ownership structure**: Subsidiary, division, department, separate foundation + + - **Reporting lines**: Reports to CEO, marketing, legal, facilities, separate board + + - **Staffing**: Full-time heritage staff, marketing staff, volunteer curators + + - **Budget**: Separate budget, marketing budget, corporate overhead, endowment + + - **Governance**: Corporate management, independent board, advisory committee + + - **Strategic alignment**: Brand strategy, legal compliance, community relations + + - **Autonomy level**: Fully integrated vs. operationally independent + + + Corporate integration indicates heritage collection stability and priorities. + + + Examples: + + - "Fully owned by Heineken N.V., Marketing department, Brand management" + + - "Separate 501(c)(3) foundation, Independent board, Endowment funded" + + - "Corporate records department, Legal division, Compliance mandate" + + - "Subsidiary of parent company, Independent management, Profit-sharing" + + ' + range: string + slot_uri: schema:parentOrganization + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:parentOrganization diff --git a/schemas/20251121/linkml/modules/slots/archive/cost.yaml b/schemas/20251121/linkml/modules/slots/archive/cost.yaml new file mode 100644 index 0000000000..41ece8f472 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/cost.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/cost +name: cost_slot +title: Cost Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + cost: + description: 'Cost of conservation treatment. + + ' + range: decimal + slot_uri: schema:price + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:price diff --git a/schemas/20251121/linkml/modules/slots/archive/cost_currency.yaml b/schemas/20251121/linkml/modules/slots/archive/cost_currency.yaml new file mode 100644 index 0000000000..7f996c90fc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/cost_currency.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/cost_currency +name: cost_currency_slot +title: Cost Currency Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + cost_currency: + description: 'Currency code for cost (ISO 4217). + + ' + range: string + slot_uri: schema:priceCurrency + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:priceCurrency diff --git a/schemas/20251121/linkml/modules/slots/archive/cost_usd.yaml b/schemas/20251121/linkml/modules/slots/archive/cost_usd.yaml new file mode 100644 index 0000000000..aafd65e8bf --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/cost_usd.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/cost_usd +name: cost_usd_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + cost_usd: + description: 'Estimated cost in USD for this LLM call. + + + For Z.AI Coding Plan: $0.00 (free tier for GLM models) + + For other providers: calculated from token counts and pricing + + ' + slot_uri: schema:price + range: float + close_mappings: + - schema:price + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/country.yaml b/schemas/20251121/linkml/modules/slots/archive/country.yaml new file mode 100644 index 0000000000..9582ee431c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/country.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/country +name: country +title: Country Slot +description: "Country where entity is located or operates.\n\nLinks to Country class with ISO 3166-1 alpha-2 codes.\n\nFormat: ISO 3166-1 alpha-2 code (e.g., \"NL\", \"DE\", \"JP\")\n\nUse when:\n- Place is in a specific country\n- Legal form is jurisdiction-specific\n- Feature types are country-specific\n\nExamples:\n- Netherlands museum \u2192 country.alpha_2 = \"NL\"\n- Japanese archive \u2192 country.alpha_2 = \"JP\"\n- German foundation \u2192 country.alpha_2 = \"DE\"\n" +imports: +- linkml:types +slots: + country: + slot_uri: schema:addressCountry + range: string # uriorcurie + # range: Country + required: false + multivalued: false + description: "Country where this place is located (OPTIONAL).\n\nLinks to Country class with ISO 3166-1 codes.\n\nSchema.org: addressCountry uses ISO 3166-1 alpha-2 codes.\n\nUse when:\n- Place name is ambiguous across countries (\"Victoria Museum\" exists in multiple countries)\n- Feature types are country-specific (e.g., \"cultural heritage of Peru\")\n- Generating country-conditional enums\n\nExamples:\n- \"Rijksmuseum\" \u2192 country.alpha_2 = \"NL\"\n- \"cultural heritage of Peru\" \u2192 country.alpha_2 = \"PE\"\n" + exact_mappings: + - schema:addressCountry + - vcard:country-name + annotations: + custodian_types: '["*"]' +comments: +- Uses Country class with ISO 3166-1 alpha-2/alpha-3 codes +- ISO codes are authoritative, stable, and language-neutral +- Country names should be resolved via external services (GeoNames, UN M49) +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/country_code.yaml b/schemas/20251121/linkml/modules/slots/archive/country_code.yaml new file mode 100644 index 0000000000..e77beae907 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/country_code.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/country_code +name: country_code_slot +title: Country Code Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + country_code: + slot_uri: hc:country_code + range: string + description: 'Country Code for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:country_code diff --git a/schemas/20251121/linkml/modules/slots/archive/country_name.yaml b/schemas/20251121/linkml/modules/slots/archive/country_name.yaml new file mode 100644 index 0000000000..9065131697 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/country_name.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/country_name +name: country_name_slot +title: Country Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + vcard: http://www.w3.org/2006/vcard/ns# + schema: http://schema.org/ + locn: http://www.w3.org/ns/locn# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +description: "Full country name or ISO 3166-1 country code within an address.\n\nvCard: country-name - \"The country name associated with the address of \nthe object\"\n\nSchema.org: addressCountry - \"The country. For example, USA. You can also \nprovide the two-letter ISO 3166-1 alpha-2 country code.\"\n\nLOCN: adminUnitL1 - \"The name or names of a unit of administration where \na Local Administrative Unit (LAU) is responsible.\"\n\nFor structured country references, use Country class with ISO 3166-1 code.\n\nExamples:\n- \"Netherlands\" (English name)\n- \"Nederland\" (Dutch name)\n- \"NL\" (ISO 3166-1 alpha-2)\n- \"NLD\" (ISO 3166-1 alpha-3)\n" +slots: + country_name: + slot_uri: vcard:country-name + range: string + required: false + description: "Country name or ISO 3166-1 country code.\n\nvCard: country-name - \"The country name associated with the address of \nthe object\"\n\nPrefer ISO 3166-1 alpha-2 codes for machine processing (NL, US, GB).\nUse full name for human-readable addresses.\n\nFor structured reference, use Country class.\n" + exact_mappings: + - vcard:country-name + - schema:addressCountry + close_mappings: + - locn:adminUnitL1 + examples: + - value: Netherlands + description: Full English country name + - value: NL + description: ISO 3166-1 alpha-2 code + - value: Deutschland + description: Local language name (German) + annotations: + custodian_types: '["*"]' +comments: +- Use ISO 3166-1 alpha-2 code for interoperability +- For full country metadata, use Country class +- vCard country-name is preferred over country for semantic clarity diff --git a/schemas/20251121/linkml/modules/slots/archive/courier_detail.yaml b/schemas/20251121/linkml/modules/slots/archive/courier_detail.yaml new file mode 100644 index 0000000000..c3abcdef27 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/courier_detail.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/courier_detail +name: courier_detail_slot +title: Courier Details Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + courier_detail: + description: 'Details about courier arrangements. + + ' + range: string + slot_uri: hc:courierDetails + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:courierDetails diff --git a/schemas/20251121/linkml/modules/slots/archive/courier_required.yaml b/schemas/20251121/linkml/modules/slots/archive/courier_required.yaml new file mode 100644 index 0000000000..227492e435 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/courier_required.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/courier_required +name: courier_required_slot +title: Courier Required Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + courier_required: + description: 'Whether courier accompaniment is required for transport. + + Typically required for high-value or fragile objects. + + ' + range: boolean + slot_uri: hc:courierRequired + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:courierRequired diff --git a/schemas/20251121/linkml/modules/slots/archive/court_types_covered.yaml b/schemas/20251121/linkml/modules/slots/archive/court_types_covered.yaml new file mode 100644 index 0000000000..b9b40e4ad3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/court_types_covered.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/court_types_covered +name: court_types_covered_slot +title: Court Types Covered Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + court_types_covered: + description: 'Types of courts whose records are preserved. + + Examples: civil, criminal, administrative, commercial, family, constitutional + + ' + range: string + multivalued: true + slot_uri: hc:courtTypesCovered + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:courtTypesCovered diff --git a/schemas/20251121/linkml/modules/slots/archive/cover_image_url.yaml b/schemas/20251121/linkml/modules/slots/archive/cover_image_url.yaml new file mode 100644 index 0000000000..055079de1d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/cover_image_url.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/cover_image_url +name: cover_image_url_slot +title: Cover Image Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + cover_image_url: + description: 'URL to the cover/header image (if applicable). + + + Schema.org: image for banner/cover. + + + Not all platforms have cover images. + + ' + range: uri + slot_uri: hc:coverImageUrl + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:coverImageUrl diff --git a/schemas/20251121/linkml/modules/slots/archive/cover_material.yaml b/schemas/20251121/linkml/modules/slots/archive/cover_material.yaml new file mode 100644 index 0000000000..b8a1e53568 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/cover_material.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/cover_material +name: cover_material_slot +title: Cover Material Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + cover_material: + description: 'Material of cover/binding. + + ' + range: string + slot_uri: hc:coverMaterial + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:coverMaterial diff --git a/schemas/20251121/linkml/modules/slots/archive/cover_or_covered_subregion.yaml b/schemas/20251121/linkml/modules/slots/archive/cover_or_covered_subregion.yaml new file mode 100644 index 0000000000..eea437ab65 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/cover_or_covered_subregion.yaml @@ -0,0 +1,46 @@ +id: https://nde.nl/ontology/hc/slot/cover_or_covered_subregion +name: cover_or_covered_subregion_slot +title: Covers Subregions Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + cover_or_covered_subregion: + range: string # uriorcurie + # range: Subregion + multivalued: true + inlined_as_list: false # Fixed invalid inline for primitive type + slot_uri: schema:addressRegion + description: 'Subregion(s) covered by this service area. + + Links to Subregion class with ISO 3166-2 codes. + + + A service area may cover: + + - Single subregion (provincial archive covering one province) + + - Multiple subregions (regional archive spanning provinces) + + - Part of a subregion (municipal archive within province) + + ' + examples: + - value: + - https://nde.nl/ontology/hc/subregion/NL-NH + description: Covers Noord-Holland province + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:addressRegion diff --git a/schemas/20251121/linkml/modules/slots/archive/coverage_area.yaml b/schemas/20251121/linkml/modules/slots/archive/coverage_area.yaml new file mode 100644 index 0000000000..e1a1798836 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/coverage_area.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/coverage_area +name: coverage_area_slot +title: Coverage Area Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + coverage_area: + description: 'Physical area covered by this device or device network. + + + Schema.org: areaServed for geographic coverage. + + + Can be room names, zones, or descriptions. + + ' + range: string + slot_uri: hc:coverageArea + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:coverageArea diff --git a/schemas/20251121/linkml/modules/slots/archive/covers_country.yaml b/schemas/20251121/linkml/modules/slots/archive/covers_country.yaml new file mode 100644 index 0000000000..dc93c6eb81 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/covers_country.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/covers_country +name: covers_country_slot +title: Covers Country Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + covers_country: + range: string # uriorcurie + # range: Country + slot_uri: schema:addressCountry + description: 'Country that this service area is within. + + Links to Country class with ISO 3166-1 codes. + + ' + examples: + - value: https://nde.nl/ontology/hc/country/NL + description: Service area in Netherlands + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:addressCountry diff --git a/schemas/20251121/linkml/modules/slots/archive/covers_full_video.yaml b/schemas/20251121/linkml/modules/slots/archive/covers_full_video.yaml new file mode 100644 index 0000000000..620eecab4e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/covers_full_video.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/covers_full_video +name: covers_full_video_slot +title: covers_full_video slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + covers_full_video: + description: 'Whether chapters cover the entire video duration. + + + - true: No gaps, first chapter at 0:00, last ends at video end + + - false: Partial coverage (gaps between chapters) + + ' + range: boolean + slot_uri: hc:coversFullVideo + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:coversFullVideo diff --git a/schemas/20251121/linkml/modules/slots/archive/crawler_version.yaml b/schemas/20251121/linkml/modules/slots/archive/crawler_version.yaml new file mode 100644 index 0000000000..46d02d69cd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/crawler_version.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/crawler_version +name: crawler_version_slot +title: Crawler Version Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + crawler_version: + slot_uri: prov:wasAssociatedWith + description: Version of crawling tool used + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:wasAssociatedWith diff --git a/schemas/20251121/linkml/modules/slots/archive/created.yaml b/schemas/20251121/linkml/modules/slots/archive/created.yaml new file mode 100644 index 0000000000..3e20102b6a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/created.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/created +name: created_slot +imports: +- linkml:types +slots: + created: + slot_uri: schema:dateCreated + range: datetime + description: 'Timestamp when this database record was created. + + IMPORTANT: This is NOT the custodian''s founding date - it''s metadata about the digital record. + + Use CustodianLegalStatus.registration_date for entity founding date. + + ' + exact_mappings: + - dcterms:created + - schema:dateCreated + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/created_by_project.yaml b/schemas/20251121/linkml/modules/slots/archive/created_by_project.yaml new file mode 100644 index 0000000000..6fe5ff352b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/created_by_project.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/created_by_project +name: created_by_project_slot +title: Created By Project Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + created_by_project: + range: string # uriorcurie + # range: Project + description: "The Project that created or maintains this web portal.\n\nLinks to Project class representing time-limited initiatives run by\nEncompassingBody organizations.\n\n**Relationship Architecture**:\n```\nEncompassingBody (e.g., NDE)\n \u2502\n \u251C\u2500\u2500 projects \u2500\u2500\u2192 Project (e.g., \"Portal Development 2024\")\n \u2502 \u2502\n \u2502 \u2514\u2500\u2500 creates \u2500\u2500\u2192 WebPortal (this portal)\n \u2502\n \u2514\u2500\u2500 operates \u2500\u2500\u2192 WebPortal (operational responsibility)\n```\n\n**DISTINCTION from operated_by**:\n- `operated_by`: The EncompassingBody with ongoing operational responsibility\n- `created_by_project`: The specific time-limited Project that built the portal\n\nA portal may be created by one project and then operated by the \nparent organization or a different entity.\n" + slot_uri: hc:createdByProject + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:createdByProject diff --git a/schemas/20251121/linkml/modules/slots/archive/created_date.yaml b/schemas/20251121/linkml/modules/slots/archive/created_date.yaml new file mode 100644 index 0000000000..362a198299 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/created_date.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/created_date +name: created_date_slot +title: Created Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + created_date: + description: 'Date when the social media account was created on the platform. + + + Schema.org: dateCreated for account creation. + + + Not always available from all platforms. + + ' + range: date + slot_uri: dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:date diff --git a/schemas/20251121/linkml/modules/slots/archive/creating_agency.yaml b/schemas/20251121/linkml/modules/slots/archive/creating_agency.yaml new file mode 100644 index 0000000000..bacd338d3c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/creating_agency.yaml @@ -0,0 +1,45 @@ +id: https://nde.nl/ontology/hc/slot/creating_agency +name: creating_agency_slot +title: Creating Agency Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + creating_agency: + description: 'Office, department, or unit that created these records. + + + **RiC-O**: rico:hasCreator for provenance. + + + For institutional archives, this is typically an internal unit: + + - "Director''s Office" + + - "Conservation Department" + + - "Acquisition Committee" + + - "Human Resources" + + + May link to OrganizationalStructure if modeled. + + ' + range: string + slot_uri: hc:creatingAgency + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:creatingAgency diff --git a/schemas/20251121/linkml/modules/slots/archive/creating_function.yaml b/schemas/20251121/linkml/modules/slots/archive/creating_function.yaml new file mode 100644 index 0000000000..6875699095 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/creating_function.yaml @@ -0,0 +1,55 @@ +id: https://nde.nl/ontology/hc/slot/creating_function +name: creating_function_slot +title: Creating Function Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + creating_function: + description: 'Business function or activity that these records document. + + + **RiC-O**: rico:documents links RecordResource to Activity. + + + Records are created BECAUSE they document business activities. + + This slot captures WHAT activity/function the records document. + + + **Examples**: + + - "Collection acquisition" + + - "Exhibition planning" + + - "Conservation treatment" + + - "Visitor services" + + - "Human resource management" + + - "Financial administration" + + - "Research services" + + - "Facilities management" + + ' + range: string + slot_uri: hc:creatingFunction + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:creatingFunction diff --git a/schemas/20251121/linkml/modules/slots/archive/creating_organization.yaml b/schemas/20251121/linkml/modules/slots/archive/creating_organization.yaml new file mode 100644 index 0000000000..1a63561ba9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/creating_organization.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/creating_organization +name: creating_organization_slot +title: Creating Organization Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + creating_organization: + description: 'Organization that created/creates these records. + + Current archives are typically managed by or for the creating body. + + ' + range: string + slot_uri: hc:creatingOrganization + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:creatingOrganization diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_altitude.yaml b/schemas/20251121/linkml/modules/slots/archive/creation_place.yaml similarity index 65% rename from schemas/20251121/linkml/modules/slots/has_or_had_altitude.yaml rename to schemas/20251121/linkml/modules/slots/archive/creation_place.yaml index 8d74fdf16d..7a77261aa1 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_altitude.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/creation_place.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_altitude -name: has_or_had_altitude -title: has_or_had_altitude +id: https://nde.nl/ontology/hc/slot/creation_place +name: creation_place_slot +title: Creation Place Slot prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -12,18 +12,18 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc imports: - linkml:types +default_prefix: hc slots: - has_or_had_altitude: - name: has_or_had_altitude - description: The altitude of a place. - slot_uri: wgs84:alt + creation_place: + description: 'Location where the object was created. + + ' range: string # uriorcurie - # range: Altitude - multivalued: false + # range: CustodianPlace + slot_uri: schema:locationCreated annotations: custodian_types: '["*"]' exact_mappings: - - wgs84:alt + - schema:locationCreated diff --git a/schemas/20251121/linkml/modules/slots/archive/creation_timespan.yaml b/schemas/20251121/linkml/modules/slots/archive/creation_timespan.yaml new file mode 100644 index 0000000000..2f2e4430ae --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/creation_timespan.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/creation_timespan +name: creation_timespan_slot +title: Creation Timespan Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + creation_timespan: + description: 'Full temporal extent of creation with CIDOC-CRM fuzzy boundaries. + + + Use for scholarly precision with uncertain dates: + + - begin_of_the_begin: Earliest possible start + + - end_of_the_begin: Latest possible start + + - begin_of_the_end: Earliest possible completion + + - end_of_the_end: Latest possible completion + + ' + range: string # uriorcurie + # range: TimeSpan + slot_uri: crm:P4_has_time-span + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P4_has_time-span diff --git a/schemas/20251121/linkml/modules/slots/archive/creator.yaml b/schemas/20251121/linkml/modules/slots/archive/creator.yaml new file mode 100644 index 0000000000..91369c3f90 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/creator.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/creator +name: creator +title: Creator +description: The creator of the entity. +imports: +- linkml:types +prefixes: + linkml: https://w3id.org/linkml/ + dcterms: http://purl.org/dc/terms/ + hc: https://nde.nl/ontology/hc/ +# default_range: string +slots: + creator: + slot_uri: dcterms:creator + range: string + multivalued: false + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/creator_role.yaml b/schemas/20251121/linkml/modules/slots/archive/creator_role.yaml new file mode 100644 index 0000000000..ce24074bfa --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/creator_role.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/creator_role +name: creator_role_slot +title: Creator Role Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + creator_role: + description: 'Role of each creator (artist, workshop, attributed to, circle of, etc.). + + Corresponds with creator list by position. + + ' + range: string + multivalued: true + slot_uri: crm:P14.1_in_the_role_of + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P14.1_in_the_role_of diff --git a/schemas/20251121/linkml/modules/slots/archive/credentials_required.yaml b/schemas/20251121/linkml/modules/slots/archive/credentials_required.yaml new file mode 100644 index 0000000000..bcf290ae50 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/credentials_required.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/credentials_required +name: credentials_required_slot +title: Credentials Required Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + credentials_required: + description: 'Type of credentials required for access. + + + Values: + + - NONE: No credentials needed + + - INSTITUTIONAL: Affiliation with research institution + + - PROFESSIONAL: Professional membership (archivist, librarian) + + - ACADEMIC: Academic degree or enrollment + + - GOVERNMENT: Government clearance + + ' + range: string + slot_uri: hc:credentialsRequired + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:credentialsRequired diff --git a/schemas/20251121/linkml/modules/slots/archive/css_selector.yaml b/schemas/20251121/linkml/modules/slots/archive/css_selector.yaml new file mode 100644 index 0000000000..d1e119678f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/css_selector.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/css_selector +name: css_selector_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + css_selector: + description: CSS selector pointing to the element in HTML. Alternative to xpath for element identification. + slot_uri: hc:cssSelector + range: string + related_mappings: + - prov:atLocation + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:cssSelector diff --git a/schemas/20251121/linkml/modules/slots/archive/cuisine_type.yaml b/schemas/20251121/linkml/modules/slots/archive/cuisine_type.yaml new file mode 100644 index 0000000000..0f857f3b14 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/cuisine_type.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/cuisine_type +name: cuisine_type_slot +title: cuisine_type slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + cuisine_type: + slot_uri: schema:servesCuisine + description: 'Type of cuisine served at the catering facility. + + Schema.org: servesCuisine for cuisine classification. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:servesCuisine diff --git a/schemas/20251121/linkml/modules/slots/archive/cultural_context.yaml b/schemas/20251121/linkml/modules/slots/archive/cultural_context.yaml new file mode 100644 index 0000000000..e99677910d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/cultural_context.yaml @@ -0,0 +1,57 @@ +id: https://nde.nl/ontology/hc/slot/cultural_context +name: cultural_context_slot +title: Cultural Context Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + cultural_context: + description: 'Social, religious, and community contexts in which intangible heritage is practiced. + + + Describes the living ecosystem of the tradition: + + - Religious/spiritual context (temple ceremonies, church festivals, indigenous rituals) + + - Community function (social cohesion, identity expression, conflict resolution) + + - Economic dimension (tourism, commercial sales, gift exchange, livelihood) + + - Political significance (resistance, cultural autonomy, national identity) + + - Lifecycle integration (births, weddings, funerals, initiations) + + - Seasonal calendars (agricultural cycles, celestial events, historical commemorations) + + - Diaspora contexts (heritage maintenance in migration, transnational practice) + + + Critical for understanding why ICH matters to communities. + + + Examples: + + - "Balinese Hindu temple ceremonies, Community festivals, Tourist performances" + + - "Wedding gifts, Market sales, Cultural pride, Income generation" + + - "Easter processions, Summer village festivals, Migrant community gatherings" + + ' + range: string + slot_uri: dcterms:coverage + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:coverage diff --git a/schemas/20251121/linkml/modules/slots/archive/cultural_focus_area.yaml b/schemas/20251121/linkml/modules/slots/archive/cultural_focus_area.yaml new file mode 100644 index 0000000000..439fff2061 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/cultural_focus_area.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/cultural_focus_area +name: cultural_focus_area_slot +title: Cultural Focus Areas Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + cultural_focus_area: + description: 'Areas of cultural focus for the institution. + + Examples: visual arts, performing arts, heritage, literature, music, science + + ' + range: string + multivalued: true + slot_uri: hc:culturalFocusAreas + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:culturalFocusAreas diff --git a/schemas/20251121/linkml/modules/slots/archive/cultural_protocol_url.yaml b/schemas/20251121/linkml/modules/slots/archive/cultural_protocol_url.yaml new file mode 100644 index 0000000000..499ed122e9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/cultural_protocol_url.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/cultural_protocol_url +name: cultural_protocol_url_slot +title: Cultural Protocol Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + cultural_protocol_url: + description: 'URL to cultural protocol (for CULTURALLY_SENSITIVE materials). + + + E.g., Local Contexts Traditional Knowledge labels. + + ' + range: uri + slot_uri: hc:culturalProtocolUrl + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:culturalProtocolUrl diff --git a/schemas/20251121/linkml/modules/slots/archive/curated_by.yaml b/schemas/20251121/linkml/modules/slots/archive/curated_by.yaml new file mode 100644 index 0000000000..17894bc094 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/curated_by.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/curated_by +name: curated_by_slot +title: Curated By Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + curated_by: + description: 'Name(s) of curator(s) responsible for the exhibition. + + Use full names where known. + + ' + range: string + multivalued: true + slot_uri: schema:director + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:director diff --git a/schemas/20251121/linkml/modules/slots/archive/curated_holding.yaml b/schemas/20251121/linkml/modules/slots/archive/curated_holding.yaml new file mode 100644 index 0000000000..b743adab6c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/curated_holding.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/curated_holding +name: curated_holding_slot +title: Curated Holding Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + curated_holding: + description: 'The Collection(s) being curated by this activity. + + + CIDOC-CRM: P147_curated links E87_Curation_Activity to E78_Curated_Holding. + + + Back-reference from CurationActivity to Collection. + + ' + range: string # uriorcurie + # range: Collection + multivalued: true + slot_uri: crm:P147_curated + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P147_curated diff --git a/schemas/20251121/linkml/modules/slots/archive/currency.yaml b/schemas/20251121/linkml/modules/slots/archive/currency.yaml new file mode 100644 index 0000000000..6917680c40 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/currency.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/currency +name: currency_slot +title: Currency Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + currency: + range: string + description: 'ISO 4217 currency code for the amount fields. + + Required if minimum_amount or maximum_amount is specified. + + ' + slot_uri: hc:currency + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:currency diff --git a/schemas/20251121/linkml/modules/slots/archive/currency_code.yaml b/schemas/20251121/linkml/modules/slots/archive/currency_code.yaml new file mode 100644 index 0000000000..7e4d102cd1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/currency_code.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/currency_code +name: currency_code_slot +title: Currency Code Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + currency_code: + slot_uri: hc:currency_code + range: string + description: 'Currency Code for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:currency_code diff --git a/schemas/20251121/linkml/modules/slots/archive/currency_symbol.yaml b/schemas/20251121/linkml/modules/slots/archive/currency_symbol.yaml new file mode 100644 index 0000000000..84b45b5916 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/currency_symbol.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/currency_symbol +name: currency_symbol_slot +title: Currency Symbol Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + currency_symbol: + slot_uri: hc:currency_symbol + range: string + description: 'Currency Symbol for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:currency_symbol diff --git a/schemas/20251121/linkml/modules/slots/archive/current_exhibition.yaml b/schemas/20251121/linkml/modules/slots/archive/current_exhibition.yaml new file mode 100644 index 0000000000..5b22f9f704 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/current_exhibition.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/current_exhibition +name: current_exhibition_slot +title: current_exhibition slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + current_exhibition: + slot_uri: schema:event + description: 'Current or most recent exhibition at this space. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:event diff --git a/schemas/20251121/linkml/modules/slots/archive/current_item_count.yaml b/schemas/20251121/linkml/modules/slots/archive/current_item_count.yaml new file mode 100644 index 0000000000..0575124b3f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/current_item_count.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/current_item_count +name: current_item_count_slot +title: Current Item Count Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + current_item_count: + description: 'Current number of items stored in this unit. + + ' + range: integer + slot_uri: hc:currentItemCount + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:currentItemCount diff --git a/schemas/20251121/linkml/modules/slots/archive/current_keeper.yaml b/schemas/20251121/linkml/modules/slots/archive/current_keeper.yaml new file mode 100644 index 0000000000..3125f3efe8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/current_keeper.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/current_keeper +name: current_keeper_slot +title: Current Keeper Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + current_keeper: + description: "Custodian institution currently holding this object.\n\nCIDOC-CRM: P50_has_current_keeper - \"identifies the E39 Actor that \nhad custody of an instance of E18 Physical Thing at the time of validity.\"\n" + range: string # uriorcurie + slot_uri: crm:P50_has_current_keeper + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P50_has_current_keeper diff --git a/schemas/20251121/linkml/modules/slots/archive/current_location.yaml b/schemas/20251121/linkml/modules/slots/archive/current_location.yaml new file mode 100644 index 0000000000..15b0f3d0ce --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/current_location.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/current_location +name: current_location_slot +title: Current Location Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + current_location: + description: 'Current physical location of the object. + + May differ from permanent_location if on loan or traveling. + + ' + range: string # uriorcurie + # range: CustodianPlace + slot_uri: schema:location + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:location diff --git a/schemas/20251121/linkml/modules/slots/archive/current_use.yaml b/schemas/20251121/linkml/modules/slots/archive/current_use.yaml new file mode 100644 index 0000000000..63780d6b9f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/current_use.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/current_use +name: current_use_slot +title: Current Use Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + current_use: + description: 'Current use of the historic building. + + + May differ from original use: + + - Museum/exhibition + + - Offices + + - Events/rentals + + - Residential + + - Mixed use + + ' + range: string + slot_uri: hc:currentUse + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:currentUse diff --git a/schemas/20251121/linkml/modules/slots/archive/current_utilization_percent.yaml b/schemas/20251121/linkml/modules/slots/archive/current_utilization_percent.yaml new file mode 100644 index 0000000000..d7f7a0bedc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/current_utilization_percent.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/current_utilization_percent +name: current_utilization_percent_slot +title: Current Utilization Percent Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + current_utilization_percent: + description: 'Current storage utilization as percentage of total capacity. + + + Helps identify when new storage is needed. + + Update date should be tracked in last assessment. + + ' + range: float + slot_uri: hc:currentUtilizationPercent + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:currentUtilizationPercent diff --git a/schemas/20251121/linkml/modules/slots/archive/custodial_history.yaml b/schemas/20251121/linkml/modules/slots/archive/custodial_history.yaml new file mode 100644 index 0000000000..5e810ea334 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/custodial_history.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/custodial_history +name: custodial_history +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + custodial_history: + slot_uri: rico:history + description: 'Chain of custody documentation. + + + RiC-O: history for custodial events. + + + Records transfers, ownership changes, and custody events. + + ' + range: string + multivalued: true + required: false + examples: + - value: Transferred from VOC to Dutch state in 1799 + description: Custody transfer event + exact_mappings: + - dcterms:provenance + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_example.yaml b/schemas/20251121/linkml/modules/slots/archive/custodian.yaml similarity index 58% rename from schemas/20251121/linkml/modules/slots/has_or_had_example.yaml rename to schemas/20251121/linkml/modules/slots/archive/custodian.yaml index a2b5ec40e4..b2d307cdda 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_example.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/custodian.yaml @@ -1,17 +1,15 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_example -name: has_or_had_example -title: Has Or Had Example -description: 'Relates a concept or type to an illustrative example. - - MIGRATED from example_* slots per slot_fixes.yaml (Rule 53).' +id: https://nde.nl/ontology/hc/slot/custodian +name: custodian_slot +title: Custodian Slot prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ - skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ prov: http://www.w3.org/ns/prov# crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# @@ -19,14 +17,14 @@ imports: - linkml:types default_prefix: hc slots: - has_or_had_example: - slot_uri: skos:example - description: An example instance or illustration of this concept. + custodian: + slot_uri: rico:hasOrHadHolder + description: Heritage custodian that created/maintains this finding aid range: string # uriorcurie - # range: Example - multivalued: true + # range: Custodian + required: true inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' exact_mappings: - - skos:example + - rico:hasOrHadHolder diff --git a/schemas/20251121/linkml/modules/slots/archive/custodian_only.yaml b/schemas/20251121/linkml/modules/slots/archive/custodian_only.yaml new file mode 100644 index 0000000000..b3d33dfaf8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/custodian_only.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/custodian_only +name: custodian_only_slot +title: Custodian Only Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + custodian_only: + slot_uri: hc:custodianOnly + description: "If true, this class represents only a custodian type with no \ncorresponding rico:RecordSetType collection class.\n" + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:custodianOnly diff --git a/schemas/20251121/linkml/modules/slots/archive/custodian_type.yaml b/schemas/20251121/linkml/modules/slots/archive/custodian_type.yaml new file mode 100644 index 0000000000..b8ed7c59cd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/custodian_type.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/custodian_type +name: custodian_type_slot +title: Custodian Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + custodian_type: + slot_uri: hc:custodian_type + range: string + description: 'Custodian Type for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:custodian_type diff --git a/schemas/20251121/linkml/modules/slots/archive/custodian_type_broader.yaml b/schemas/20251121/linkml/modules/slots/archive/custodian_type_broader.yaml new file mode 100644 index 0000000000..e67fad8326 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/custodian_type_broader.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/custodian_type_broader +name: custodian_type_broader_slot +title: Custodian Type Broader Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + custodian_type_broader: + description: 'Reference to a more general (broader) custodian type in the taxonomy. + + SKOS: broader supports hierarchical concept schemes. + + + Example: "Art Museum" (Q207694) skos:broader "Museum" (Q33506) + + ' + slot_uri: skos:broader + range: string # uriorcurie + # range: CustodianType + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:broader +comments: +- Centralized from CustodianType.yaml - 2026-01-11T21:59:26.899514 diff --git a/schemas/20251121/linkml/modules/slots/archive/custodian_type_narrower.yaml b/schemas/20251121/linkml/modules/slots/archive/custodian_type_narrower.yaml new file mode 100644 index 0000000000..773028b2c2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/custodian_type_narrower.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/custodian_type_narrower +name: custodian_type_narrower_slot +title: Custodian Type Narrower Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + custodian_type_narrower: + description: 'References to more specific (narrower) custodian types. + + SKOS: narrower is inverse of broader. + + + Example: "Museum" (Q33506) skos:narrower "Art Museum", "History Museum", etc. + + ' + slot_uri: skos:narrower + range: string # uriorcurie + # range: CustodianType + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:narrower +comments: +- Centralized from CustodianType.yaml - 2026-01-11T21:59:26.901037 diff --git a/schemas/20251121/linkml/modules/slots/archive/custodian_type_related.yaml b/schemas/20251121/linkml/modules/slots/archive/custodian_type_related.yaml new file mode 100644 index 0000000000..1be993f298 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/custodian_type_related.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/custodian_type_related +name: custodian_type_related_slot +title: Custodian Type Related Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + custodian_type_related: + description: 'References to semantically related custodian types (not hierarchical). + + SKOS: related for associative relationships. + + + Example: "Art Gallery" skos:related "Art Museum" (similar but distinct) + + ' + slot_uri: skos:related + range: string # uriorcurie + # range: CustodianType + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:related +comments: +- Centralized from CustodianType.yaml - 2026-01-11T21:59:26.902173 diff --git a/schemas/20251121/linkml/modules/slots/archive/custody_history.yaml b/schemas/20251121/linkml/modules/slots/archive/custody_history.yaml new file mode 100644 index 0000000000..2670a0a729 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/custody_history.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/custody_history +name: custody_history_slot +title: Custody History Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + custody_history: + description: The history of custody, ownership, or stewardship of a collection, object, or record set. Documents transfers of custody, changes in ownership, and the chain of responsible parties over time, following archival provenance principles. + range: string + multivalued: true + slot_uri: hc:custodyHistory + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:custodyHistory diff --git a/schemas/20251121/linkml/modules/slots/archive/custody_received_by.yaml b/schemas/20251121/linkml/modules/slots/archive/custody_received_by.yaml new file mode 100644 index 0000000000..a36469e3f0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/custody_received_by.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/custody_received_by +name: custody_received_by_slot +title: custody_received_by slot +description: 'Generic slot for custody reception following CIDOC-CRM P29 semantics. Created during slot migration per Rule 53/56 (2026-01-17). + + Replaces bespoke slots: borrower + + Use slot_usage in classes to specialize range and semantics.' +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + custody_received_by: + description: The agent who receives custody of an object in a custody transfer event. CIDOC-CRM P29_custody_received_by - identifies the E39 Actor who receives custody of an object. + slot_uri: crm:P29_custody_received_by + range: string # uriorcurie + exact_mappings: + - crm:P29_custody_received_by + annotations: + migrated_from: borrower + migration_date: '2026-01-17' + migration_rule: Rule 53/56 + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/data_repository.yaml b/schemas/20251121/linkml/modules/slots/archive/data_repository.yaml new file mode 100644 index 0000000000..26aebaa1b7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/data_repository.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/data_repository +name: data_repository_slot +title: Data Repository Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + data_repository: + slot_uri: hc:dataRepository + description: 'URL to the organization''s research data repository, if publicly accessible. + + Examples: institutional repositories, data archives, open science platforms. + + ' + range: uri + required: false + comments: + - schema:DataCatalog is a class, not a predicate - use hc namespace for slot_uri + examples: + - value: https://data.cultureelerfgoed.nl + description: Dutch Cultural Heritage Data Repository + - value: https://zenodo.org/communities/archaeology + description: Zenodo archaeological data community + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:dataRepository diff --git a/schemas/20251121/linkml/modules/slots/archive/date.yaml b/schemas/20251121/linkml/modules/slots/archive/date.yaml new file mode 100644 index 0000000000..245bfe8f47 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/date.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/date_value +name: date_value_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + date_value: + slot_uri: dcterms:date + range: date + description: Date value for a resource or event. ISO 8601 format (YYYY-MM-DD). + comments: + - Renamed from 'date' to 'date_value' to avoid collision with built-in date type + aliases: + - date + broad_mappings: + - rdf:value + - dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:date diff --git a/schemas/20251121/linkml/modules/slots/archive/description.yaml b/schemas/20251121/linkml/modules/slots/archive/description.yaml deleted file mode 100644 index 7b5b19f31e..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/description.yaml +++ /dev/null @@ -1,6 +0,0 @@ -name: description -description: A description of the entity. -title: description -slot_uri: schema:description -range: string -multivalued: false diff --git a/schemas/20251121/linkml/modules/slots/archive/description_type.yaml b/schemas/20251121/linkml/modules/slots/archive/description_type.yaml new file mode 100644 index 0000000000..9bd9b0336c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/description_type.yaml @@ -0,0 +1,66 @@ +id: https://nde.nl/ontology/hc/slot/description_type +name: description_type_slot +title: Description Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + description_type: + slot_uri: dcterms:type + description: 'The type or category of description. + + + **Ontological Alignment**: + + - **Primary** (`slot_uri`): `dcterms:type` - nature or genre of resource + + + **Usage**: + + Categorizes descriptions by their purpose: + + - binding: Physical binding description + + - branch: Organizational branch description + + - budget: Budget/financial description + + - zone: Storage zone description + + - warehouse: Warehouse description + + - unit: Organizational unit description + + - type: Type/category definition + + - general: General purpose description + + ' + range: string + required: false + multivalued: false + exact_mappings: + - dcterms:type + annotations: + replaces_slots: implicitly from slot names like binding_description -> type=binding + migration_date: '2026-01-15' + custodian_types: '["*"]' + examples: + - value: binding + description: Physical binding description type + - value: zone + description: Storage zone description type + - value: branch + description: Organizational branch description type diff --git a/schemas/20251121/linkml/modules/slots/archive/draws_or_drew_opinion.yaml b/schemas/20251121/linkml/modules/slots/archive/draws_or_drew_opinion.yaml new file mode 100644 index 0000000000..f02055fba3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/draws_or_drew_opinion.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/draws_or_drew_opinion +name: draws_or_drew_opinion +title: draws_or_drew_opinion +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + draws_or_drew_opinion: + name: draws_or_drew_opinion + title: draws_or_drew_opinion + description: The opinion or conclusion drawn from an activity (e.g. audit). + slot_uri: prov:generated + range: string # uriorcurie + # range: AuditOpinion + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:generated diff --git a/schemas/20251121/linkml/modules/slots/archive/dutch_context.yaml b/schemas/20251121/linkml/modules/slots/archive/dutch_context.yaml new file mode 100644 index 0000000000..c807a5c438 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/dutch_context.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/dutch_context +name: dutch_context-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + dutch_context: + slot_uri: hc:dutchContext + description: 'Netherlands-specific context and terminology. + + Documents Dutch heritage sector conventions, terminology, and institutional context. + + + **Migrated from**: `**Dutch Context**:` sections. + + ' + range: string + annotations: + source_section: '**Dutch Context**:' + custodian_types: '["*"]' + exact_mappings: + - hc:dutchContext diff --git a/schemas/20251121/linkml/modules/slots/archive/encompasses_or_encompassed.yaml b/schemas/20251121/linkml/modules/slots/archive/encompasses_or_encompassed.yaml new file mode 100644 index 0000000000..a9115ba95c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/encompasses_or_encompassed.yaml @@ -0,0 +1,50 @@ +id: https://nde.nl/ontology/hc/slot/encompasses_or_encompassed +name: encompasses_or_encompassed +title: Encompasses Or Encompassed +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + rico: https://www.ica.org/standards/RiC/ontology# + owl: http://www.w3.org/2002/07/owl# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + encompasses_or_encompassed: + slot_uri: org:hasSubOrganization + description: "Custodians that are or were encompassed, governed, or coordinated by this body.\n\n**RiC-O Temporal Pattern**: Uses temporal pattern to acknowledge that\ngovernance relationships change over time:\n- Institutions move between ministries\n- Networks gain and lose members\n- Consortia dissolve or restructure\n\n**Three Relationship Types**:\n1. **Umbrella** - Legal parent hierarchy (permanent)\n - Ministry encompasses National Archives, Royal Library\n2. **Network** - Service provision (temporary, centralized)\n - De Ree Archive Hosting encompasses member archives\n3. **Consortium** - Mutual assistance (temporary, peer-to-peer)\n - Heritage Network encompasses participating museums\n" + range: string # uriorcurie + # range: Custodian + multivalued: true + exact_mappings: + - org:hasSubOrganization + close_mappings: + - rico:hasOrHadSubordinate + - dcterms:hasPart + related_mappings: + - schema:subOrganization + - rico:includesOrIncluded + - schema:containsPlace + comments: + - 'RiC-O pattern: temporal naming for governance relationships' + - Inverse of is_or_was_encompassed_by (org:subOrganizationOf) + - Links governance body to custodians it oversees/oversaw + - Creates owl:inverseOf axiom in RDF output + - 'Inverse: `is_or_was_encompassed_by` (org:subOrganizationOf) | Pattern: If Custodian is_or_was_encompassed_by Body, then Body encompasses_or_encompassed Custodian' + - 'Navigation: From body: Find all encompassed custodians (encompasses_or_encompassed) | From custodian: Find encompassing bodies (is_or_was_encompassed_by)' + - 'Deprecates: encompasses (non-temporal naming)' + annotations: + inverse_slot: is_or_was_encompassed_by + deprecates: encompasses + rico_pattern: hasOrHadSubordinate + custodian_types: '["*"]' + examples: + - value: "EncompassingBody:\n organization_name: \"Ministerie van OCW\"\n organization_type: UMBRELLA\n encompasses_or_encompassed:\n - \"https://nde.nl/ontology/hc/nl-na\" # National Archives\n - \"https://nde.nl/ontology/hc/nl-kb\" # Royal Library (current)\n - \"https://nde.nl/ontology/hc/nl-rm\" # Rijksmuseum (until 2013)\n" + description: Ministry with current and former subordinate institutions diff --git a/schemas/20251121/linkml/modules/slots/archive/end_seconds.yaml b/schemas/20251121/linkml/modules/slots/archive/end_seconds.yaml index 2ca8358e00..fcb2c8fef6 100644 --- a/schemas/20251121/linkml/modules/slots/archive/end_seconds.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/end_seconds.yaml @@ -1,10 +1,10 @@ +id: https://nde.nl/ontology/hc/slot/end_seconds name: end_seconds -description: >- - The end time in seconds (float). - Generic slot for media/temporal segments. - MIGRATED from chapter_end_seconds (Rule 53). -range: float -slot_uri: ma:duration -exact_mappings: - - ma:duration -multivalued: false +description: End time in seconds from start of media. +imports: + - linkml:types +slots: + end_seconds: + description: End time in seconds from start of media. + range: float + slot_uri: schema:endTime diff --git a/schemas/20251121/linkml/modules/slots/archive/end_time.yaml b/schemas/20251121/linkml/modules/slots/archive/end_time.yaml index 2df040a7cb..68358325f2 100644 --- a/schemas/20251121/linkml/modules/slots/archive/end_time.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/end_time.yaml @@ -1,10 +1,10 @@ +id: https://nde.nl/ontology/hc/slot/end_time name: end_time -description: >- - The end time in ISO 8601 duration format (e.g. PT5M). - Generic slot for media/temporal segments. - MIGRATED from chapter_end_time (Rule 53). -range: string -slot_uri: schema:duration -exact_mappings: - - schema:duration -multivalued: false +description: End time of a temporal interval (ISO 8601). +imports: + - linkml:types +slots: + end_time: + description: End time of a temporal interval (ISO 8601). + range: string + slot_uri: schema:endTime diff --git a/schemas/20251121/linkml/modules/slots/archive/estimates_or_estimated.yaml b/schemas/20251121/linkml/modules/slots/archive/estimates_or_estimated.yaml new file mode 100644 index 0000000000..60da20e60d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/estimates_or_estimated.yaml @@ -0,0 +1,49 @@ +id: https://nde.nl/ontology/hc/slot/estimates_or_estimated +name: estimates_or_estimated_slot +title: Estimates Or Estimated Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dqv: http://www.w3.org/ns/dqv# + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + estimates_or_estimated: + slot_uri: prov:wasDerivedFrom + description: "Links an entity to an estimation or confidence assessment derived from it.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"estimatesOrEstimated\" naming follows RiC-O convention indicating this relationship\nmay be historical - estimations may be updated over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:wasDerivedFrom` - derivation from source\n- **Related**: `dqv:hasQualityMeasurement` - linking to quality/confidence metric\n\n**Usage**:\nUsed to link profiles or entities to confidence assessments about specific\nattributes (e.g., digital proficiency confidence).\n\n**Pattern**:\n```\nLinkedInProfile\n \u2514\u2500\u2500 estimates_or_estimated \u2192 DigitalConfidence\n \u251C\u2500\u2500 has_or_had_score: 0.8\n \u2514\u2500\u2500 has_or_had_type: PROFICIENCY_LEVEL\n```\n\n**Migrated From** (per slot_fixes.yaml):\n- `digital_confidence` \u2192 estimates_or_estimated + DigitalConfidence\n\n**Cardinality**:\nMultivalued - an entity\ + \ may have multiple estimations (e.g., for different attributes).\n" + range: string # uriorcurie + multivalued: true + inlined: false # Fixed invalid inline for primitive type + exact_mappings: + - prov:wasDerivedFrom + related_mappings: + - dqv:hasQualityMeasurement + annotations: + rico_naming_convention: 'Follows RiC-O "estimatesOrEstimated" pattern for active/passive predicates. + + See Rule 39: Slot Naming Convention (RiC-O Style) + + ' + replaces_slots: digital_confidence + migration_date: '2026-01-25' + custodian_types: '["*"]' + comments: + - Generic estimation slot for linking to confidence/quality assessments + - Links entity to DigitalConfidence or similar assessment classes + - Replaces specific confidence slots like digital_confidence + - 'RiC-O naming: estimatesOrEstimated indicates estimation relationship' + examples: + - value: + has_or_had_score: 0.85 + has_or_had_label: High Digital Proficiency + description: Estimation of digital proficiency diff --git a/schemas/20251121/linkml/modules/slots/archive/example_location.yaml b/schemas/20251121/linkml/modules/slots/archive/example_location.yaml new file mode 100644 index 0000000000..2ebb5f2bb4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/example_location.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/example_location +name: example_location-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + example_location: + slot_uri: schema:location + description: Location of the example institution (city, country) + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:location diff --git a/schemas/20251121/linkml/modules/slots/archive/example_name.yaml b/schemas/20251121/linkml/modules/slots/archive/example_name.yaml new file mode 100644 index 0000000000..c255f332f1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/example_name.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/example_name +name: example_name-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + example_name: + slot_uri: schema:name + description: Name of the example institution + range: string + required: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:name diff --git a/schemas/20251121/linkml/modules/slots/archive/full_name.yaml b/schemas/20251121/linkml/modules/slots/archive/example_note.yaml similarity index 68% rename from schemas/20251121/linkml/modules/slots/archive/full_name.yaml rename to schemas/20251121/linkml/modules/slots/archive/example_note.yaml index 58180c3a1c..5268eb0889 100644 --- a/schemas/20251121/linkml/modules/slots/archive/full_name.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/example_note.yaml @@ -1,27 +1,25 @@ -id: https://nde.nl/ontology/hc/slot/full_name -name: full_name_slot -title: Full Name Slot +id: https://nde.nl/ontology/hc/slot/example_note +name: example_note-slot prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ prov: http://www.w3.org/ns/prov# crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc imports: - linkml:types -default_prefix: hc slots: - full_name: - slot_uri: schema:legalName - description: Full official name + example_note: + slot_uri: skos:note + description: Additional note about the example range: string annotations: - custodian_types: - - '*' + custodian_types: '["*"]' exact_mappings: - - schema:legalName + - skos:note diff --git a/schemas/20251121/linkml/modules/slots/archive/example_wikidata_id.yaml b/schemas/20251121/linkml/modules/slots/archive/example_wikidata_id.yaml new file mode 100644 index 0000000000..bc6daf3213 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/example_wikidata_id.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/example_wikidata_id +name: example_wikidata_id-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + example_wikidata_id: + slot_uri: hc:wikidataId + description: Wikidata Q-number for the example institution + range: string + pattern: ^Q[0-9]+$ + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:wikidataId diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_through.yaml b/schemas/20251121/linkml/modules/slots/archive/expires_on_expired_at.yaml similarity index 59% rename from schemas/20251121/linkml/modules/slots/is_or_was_retrieved_through.yaml rename to schemas/20251121/linkml/modules/slots/archive/expires_on_expired_at.yaml index d82572a7ea..4b4d07220c 100644 --- a/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_through.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/expires_on_expired_at.yaml @@ -1,15 +1,15 @@ -id: https://nde.nl/ontology/hc/slot/is_or_was_retrieved_through -name: is_or_was_retrieved_through -title: Is Or Was Retrieved Through -description: 'Method used for retrieval/extraction. +id: https://nde.nl/ontology/hc/slot/expires_on_expired_at +name: expires_on_expired_at +title: Expires On Expired At +description: 'The date/time when an entity expires or expired. - MIGRATED from extraction_method per slot_fixes.yaml (Rule 53).' + MIGRATED from expiration_date per slot_fixes.yaml (Rule 53).' prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ - prov: http://www.w3.org/ns/prov# schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# crm: http://www.cidoc-crm.org/cidoc-crm/ skos: http://www.w3.org/2004/02/skos/core# rdfs: http://www.w3.org/2000/01/rdf-schema# @@ -19,14 +19,14 @@ imports: - linkml:types default_prefix: hc slots: - is_or_was_retrieved_through: - slot_uri: prov:used - description: Method or plan used for the retrieval activity. + expires_on_expired_at: + slot_uri: schema:expires + description: Date or time interval when the entity expires. range: string # uriorcurie - # range: RetrievalMethod + # range: TimeSpan multivalued: false inlined: false # Fixed invalid inline for primitive type annotations: custodian_types: '["*"]' exact_mappings: - - prov:used + - schema:expires diff --git a/schemas/20251121/linkml/modules/slots/archive/exposes_or_exposed.yaml b/schemas/20251121/linkml/modules/slots/archive/exposes_or_exposed.yaml new file mode 100644 index 0000000000..b78e3a0e38 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/exposes_or_exposed.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/exposes_or_exposed +name: exposes_or_exposed +title: exposes_or_exposed +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + exposes_or_exposed: + name: exposes_or_exposed + title: exposes_or_exposed + description: Exposes a collection to risks or conditions. + slot_uri: schema:about + range: string # uriorcurie + # range: Collection + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:about diff --git a/schemas/20251121/linkml/modules/slots/archive/extent.yaml b/schemas/20251121/linkml/modules/slots/archive/extent.yaml deleted file mode 100644 index cc17d4430d..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/extent.yaml +++ /dev/null @@ -1,41 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/extent -name: extent_slot -imports: -- linkml:types -slots: - extent: - slot_uri: dcterms:extent - range: string - description: 'Quantitative description of collection size. - - - RiC-O: hasExtent for size/quantity description. - - - Use standard archival/library metrics: - - - Linear/running meters for archives - - - Number of items/objects for museums - - - Number of volumes/items for libraries - - ' - exact_mappings: - - dcterms:extent - close_mappings: - - schema:size - annotations: - custodian_types: - - '*' -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/field_number.yaml b/schemas/20251121/linkml/modules/slots/archive/field_number.yaml new file mode 100644 index 0000000000..11ceb56291 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/field_number.yaml @@ -0,0 +1,12 @@ +id: https://nde.nl/ontology/hc/slot/field_number +name: field_number +imports: + - linkml:types +slots: + field_number: + description: Collector's field number or identifier. Maps to dwc:fieldNumber. + range: string + slot_uri: dwc:fieldNumber + examples: + - value: ARW-1234 + - value: CD-HMS Beagle-567 diff --git a/schemas/20251121/linkml/modules/slots/archive/filters_or_filtered.yaml b/schemas/20251121/linkml/modules/slots/archive/filters_or_filtered.yaml new file mode 100644 index 0000000000..645d967fb1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/filters_or_filtered.yaml @@ -0,0 +1,59 @@ +id: https://nde.nl/ontology/hc/slot/filters_or_filtered +name: filters_or_filtered_slot +title: Filters Or Filtered Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dqv: http://www.w3.org/ns/dqv# + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + filters_or_filtered: + slot_uri: dqv:computedOn + description: "Links detection/analysis contexts to entities that were filtered by thresholds.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"filtersOrFiltered\" naming follows RiC-O convention indicating this relationship\nmay be historical - filter settings may change over time affecting detected entities.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `dqv:computedOn` - DQV predicate for quality metrics\n computed on a specific dataset\n- **Related**: `prov:wasGeneratedBy` - provenance of filtered results\n\n**Usage**:\nFor annotation classes with detection thresholds and counts, this links the\nanalysis context to DetectedEntity instances that passed filtering criteria.\n\n**Pattern**:\n```\nVideoAnnotation\n \u2514\u2500\u2500 filters_or_filtered \u2192 DetectedEntity\n \u251C\u2500\u2500 has_or_had_quantity \u2192 Quantity (detection_count)\n \u2514\u2500\u2500 has_or_had_type \u2192 DetectionLevelType\n```\n\n**Migrated Slots** (per slot_fixes.yaml):\n\ + - `detection_count` \u2192 filters_or_filtered + DetectedEntity + Quantity\n- `detection_level` \u2192 filters_or_filtered + DetectedEntity + DetectionLevelType\n- `detection_threshold` \u2192 filters_or_filtered + DetectedEntity + DetectionThreshold\n\n**Cardinality**:\nSingle-valued - links to a detection context (DetectedEntity) with aggregated info.\n" + range: string + required: false + multivalued: false + inlined: false # Fixed invalid inline for primitive type + exact_mappings: + - dqv:computedOn + related_mappings: + - prov:wasGeneratedBy + - schema:object + annotations: + rico_naming_convention: 'Follows RiC-O "filtersOrFiltered" pattern for active/passive predicates. + + See Rule 39: Slot Naming Convention (RiC-O Style) + + ' + replaces_slots: detection_count, detection_level, detection_threshold + migration_date: '2026-01-25' + custodian_types: '["*"]' + comments: + - Generic filtering slot for detection/analysis thresholds + - Links analysis to DetectedEntity with aggregated detection info + - DetectedEntity contains quantity, type, and threshold data + - Replaces multiple detection_* slots per Rule 53 + - 'RiC-O naming: filtersOrFiltered indicates filtering relationship' + examples: + - value: + has_or_had_quantity: + quantity_value: 342 + has_or_had_unit: + unit_value: detections + description: Detection context with 342 detected entities + - value: + has_or_had_type: DetectionLevelType:HIGH + has_or_had_quantity: + quantity_value: 0.85 + description: High confidence detection level diff --git a/schemas/20251121/linkml/modules/slots/archive/final_of_the_final.yaml b/schemas/20251121/linkml/modules/slots/archive/final_of_the_final.yaml new file mode 100644 index 0000000000..035030b8a4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/final_of_the_final.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/final_of_the_final +name: final_of_the_final_slot +title: Final of the Final Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + final_of_the_final: + description: "The state or condition at the end of a process or activity.\n\nCIDOC-CRM pattern for capturing the final state after an event:\n- Conservation treatment \u2192 final condition state\n- Restoration \u2192 final preservation state\n- Processing \u2192 final outcome\n\n**SEMANTIC MEANING**:\nRefers to the state observed at the final moment of a process,\nanalogous to CIDOC-CRM's E3 Condition State with P5 consists of.\n\n**TEMPORAL SEMANTICS**:\n- The state AFTER something has occurred\n- Paired with `initial_of_the_initial` for before/after comparisons\n\n**Migration (2026-01-22)**:\n- `condition_after` \u2192 `final_of_the_final` + `ConditionState`\n- Per slot_fixes.yaml (Rule 53)\n" + range: string # uriorcurie + # range: ConditionState + slot_uri: crm:P44_has_condition + exact_mappings: + - crm:P44_has_condition + close_mappings: + - crm:E3_Condition_State + examples: + - value: + state_type: GoodCondition + state_description: Object stabilized after treatment + description: Conservation record final condition + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/foo_bar.yaml b/schemas/20251121/linkml/modules/slots/archive/foo_bar.yaml new file mode 100644 index 0000000000..24ec81da22 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/foo_bar.yaml @@ -0,0 +1,19 @@ +id: https://nde.nl/ontology/hc/slot/foo_bar +name: foo_bar_slot +title: Foo Bar Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ +imports: +- linkml:types +default_prefix: hc +slots: + foo_bar: + range: string + multivalued: true + description: 'Foo bar description.' + slot_uri: hc:fooBar + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:fooBar diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_device.yaml b/schemas/20251121/linkml/modules/slots/archive/generates_or_generated.yaml similarity index 63% rename from schemas/20251121/linkml/modules/slots/has_or_had_device.yaml rename to schemas/20251121/linkml/modules/slots/archive/generates_or_generated.yaml index 29e321734b..62b7eef7cb 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_device.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/generates_or_generated.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_device -name: has_or_had_device -title: has_or_had_device +id: https://nde.nl/ontology/hc/slot/generates_or_generated +name: generates_or_generated +title: generates_or_generated prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -16,15 +16,15 @@ default_prefix: hc imports: - linkml:types slots: - has_or_had_device: - name: has_or_had_device - title: has_or_had_device - description: Device associated with the entity. - slot_uri: sosa:madeBySensor + generates_or_generated: + name: generates_or_generated + title: generates_or_generated + description: Generated output. + slot_uri: prov:generated range: string # uriorcurie - # range: IoTDevice + # range: Output multivalued: true annotations: custodian_types: '["*"]' exact_mappings: - - sosa:madeBySensor + - prov:generated diff --git a/schemas/20251121/linkml/modules/slots/archive/governance_clause.yaml b/schemas/20251121/linkml/modules/slots/archive/governance_clause.yaml deleted file mode 100644 index d9766ff9ac..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/governance_clause.yaml +++ /dev/null @@ -1,29 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/governance_clause -name: governance_clause_slot -title: Governance Clauses Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ -imports: - - linkml:types -default_prefix: hc -slots: - governance_clause: - description: 'Summary of key governance provisions. - - - May include: - - - Board composition (bestuur) - - - Voting procedures - - - Quorum requirements - - - Officer roles - - - Supervisory board (raad van toezicht) - - ' - range: string - slot_uri: hc:governanceClauses diff --git a/schemas/20251121/linkml/modules/slots/archive/governance_representative.yaml b/schemas/20251121/linkml/modules/slots/archive/governance_representative.yaml deleted file mode 100644 index ea0418b6fc..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/governance_representative.yaml +++ /dev/null @@ -1,19 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/governance_representative -name: governance_representative_slot -title: governance_representative slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ -imports: - - linkml:types -default_prefix: hc - -slots: - governance_representative: - slot_uri: schema:employee - description: | - Whether this agency has a governance council representative. - - Every VIAF contributor can appoint a voting representative to the VIAF Council. - range: boolean diff --git a/schemas/20251121/linkml/modules/slots/archive/governance_role.yaml b/schemas/20251121/linkml/modules/slots/archive/governance_role.yaml deleted file mode 100644 index 3df232d047..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/governance_role.yaml +++ /dev/null @@ -1,40 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/governance_role -name: governance_role_slot -title: governance_role slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - org: http://www.w3.org/ns/org# -imports: - - linkml:types - - ../enums/ConsortiumGovernanceRoleEnum -default_prefix: hc - -slots: - governance_role: - slot_uri: org:role - description: | - The governance role this entity plays in consortium service governance. - - Consortium services typically have advisory or governance councils where - contributing agencies can participate in decision-making. - - **VIAF Council (operated by OCLC):** - - VOTING_MEMBER: Full voting rights in VIAF Council - - OBSERVER: Participates but no voting rights - - FOUNDING_MEMBER: Original founding member (LC, DNB, BnF - 2003) - - ASSOCIATE: Partial participation (data only, no governance) - - **WorldCat (OCLC member governance):** - - Uses OCLC's cooperative membership tiers - - Members elect OCLC Board of Trustees - - **ISNI (ISNI International Agency):** - - Founding members: OCLC, BnF, ISSN IC - - Registration agencies participate in governance - - **Note:** This property captures the role in service-specific - governance. Membership in the operating organization - (e.g., OCLC) is captured via `member_of`. - range: string # uriorcurie - # range: ConsortiumGovernanceRoleEnum diff --git a/schemas/20251121/linkml/modules/slots/archive/governing_body.yaml b/schemas/20251121/linkml/modules/slots/archive/governing_body.yaml deleted file mode 100644 index 11a128bc2c..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/governing_body.yaml +++ /dev/null @@ -1,33 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/governing_body -name: governing_body_slot -title: Governing Body Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ -imports: - - linkml:types -default_prefix: hc -slots: - governing_body: - slot_uri: org:linkedTo - range: string # uriorcurie - description: 'The organisation or body that established and governs this agenda. - - - This is the HIGH-LEVEL body that created the strategic direction, which may - - be different from the organisations that implement it through funding calls. - - - URI reference to EncompassingBody entity. - - - **Examples**: - - - NWA: Dutch government (via Ministry of OCW) + science sector - - - Horizon Europe: European Commission - - - Let''s Create: Arts Council England Board - - ' diff --git a/schemas/20251121/linkml/modules/slots/defines_or_defined.yaml b/schemas/20251121/linkml/modules/slots/archive/grants_or_granted.yaml similarity index 65% rename from schemas/20251121/linkml/modules/slots/defines_or_defined.yaml rename to schemas/20251121/linkml/modules/slots/archive/grants_or_granted.yaml index 7111a1e35c..21db50fdb0 100644 --- a/schemas/20251121/linkml/modules/slots/defines_or_defined.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/grants_or_granted.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/defines_or_defined -name: defines_or_defined -title: defines_or_defined +id: https://nde.nl/ontology/hc/slot/grants_or_granted +name: grants_or_granted +title: grants_or_granted prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -16,14 +16,14 @@ default_prefix: hc imports: - linkml:types slots: - defines_or_defined: - name: defines_or_defined - description: Defines or defined a structure, policy, or role. - slot_uri: org:hasUnit + grants_or_granted: + name: grants_or_granted + description: Grants or granted a right, authority, or permission. + slot_uri: schema:grant range: string # uriorcurie - # range: GovernanceStructure + # range: GovernanceAuthority multivalued: true annotations: custodian_types: '["*"]' exact_mappings: - - org:hasUnit + - schema:grant diff --git a/schemas/20251121/linkml/modules/slots/archive/grants_or_granted_access_through.yaml b/schemas/20251121/linkml/modules/slots/archive/grants_or_granted_access_through.yaml new file mode 100644 index 0000000000..b167fb8d32 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/grants_or_granted_access_through.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/grants_or_granted_access_through +name: grants_or_granted_access_through +title: grants_or_granted_access_through +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + grants_or_granted_access_through: + name: grants_or_granted_access_through + description: Indicates that an entity grants or granted access through a specific application or mechanism. MIGRATED from has_access_application_url per Rule 53. Follows RiC-O naming convention. + slot_uri: schema:potentialAction + range: string # uriorcurie + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:potentialAction diff --git a/schemas/20251121/linkml/modules/slots/archive/habitat.yaml b/schemas/20251121/linkml/modules/slots/archive/habitat.yaml deleted file mode 100644 index f15150f331..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/habitat.yaml +++ /dev/null @@ -1,16 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/habitat -name: habitat_slot -title: Habitat Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ -imports: - - linkml:types -default_prefix: hc -slots: - habitat: - description: 'Description of habitat where specimen was found. - - ' - range: string - slot_uri: dwc:habitat diff --git a/schemas/20251121/linkml/modules/slots/archive/habitat_description.yaml b/schemas/20251121/linkml/modules/slots/archive/habitat_description.yaml new file mode 100644 index 0000000000..2292642932 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/habitat_description.yaml @@ -0,0 +1,12 @@ +id: https://nde.nl/ontology/hc/slot/habitat_description +name: habitat_description +imports: + - linkml:types +slots: + habitat_description: + description: Description of habitat where specimen was collected. Maps to dwc:habitat. + range: string + slot_uri: dwc:habitat + examples: + - value: Tropical rainforest, understory + - value: Coral reef, depth 15m diff --git a/schemas/20251121/linkml/modules/slots/archive/halc_adm1_code.yaml b/schemas/20251121/linkml/modules/slots/archive/halc_adm1_code.yaml deleted file mode 100644 index c0f2799096..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/halc_adm1_code.yaml +++ /dev/null @@ -1,31 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/halc_adm1_code -name: halc_adm1_code_slot -title: Halc Adm1 Code Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ -imports: - - linkml:types -default_prefix: hc -slots: - halc_adm1_code: - range: string - description: 'HALC (Historical Atlas of Low Countries) ADM1 territory code. - - - Used for mapping to historical boundary GeoJSON data. - - - Examples: - - - "VI" for Vianen - - - "TH" for Tholen - - - "WA" for Wassenaar - - ' - examples: - - value: VI - description: HALC territory code for Vianen - slot_uri: hc:halcAdm1Code diff --git a/schemas/20251121/linkml/modules/slots/archive/halc_adm2_name.yaml b/schemas/20251121/linkml/modules/slots/archive/halc_adm2_name.yaml deleted file mode 100644 index 12ce6cef3c..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/halc_adm2_name.yaml +++ /dev/null @@ -1,26 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/halc_adm2_name -name: halc_adm2_name_slot -title: Halc Adm2 Name Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - skos: http://www.w3.org/2004/02/skos/core# - schema: http://schema.org/ -imports: - - linkml:types -default_prefix: hc -slots: - halc_adm2_name: - range: string - description: >- - HALC (Historical Atlas of Low Countries) ADM2 district name. - - Ontology mapping: skos:prefLabel is the standard SKOS property for - preferred human-readable labels. - Used for more specific historical boundary matching. - examples: - - value: Vianen - description: HALC district name - slot_uri: skos:prefLabel - close_mappings: - - schema:name diff --git a/schemas/20251121/linkml/modules/slots/archive/handwriting_confidence.yaml b/schemas/20251121/linkml/modules/slots/archive/handwriting_confidence.yaml deleted file mode 100644 index 7ace004094..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/handwriting_confidence.yaml +++ /dev/null @@ -1,32 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/handwriting_confidence -name: handwriting_confidence_slot -title: Handwriting Confidence Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - sosa: http://www.w3.org/ns/sosa/ - prov: http://www.w3.org/ns/prov# -imports: - - linkml:types -default_prefix: hc -slots: - handwriting_confidence: - description: 'Average confidence for handwriting recognition. - - - Typically lower than printed text confidence. - - - Useful for quality assessment and filtering. - - - **Ontology mapping**: Uses sosa:hasSimpleResult because handwriting - recognition models act as sensors producing observation results. - - ' - range: float - minimum_value: 0.0 - maximum_value: 1.0 - slot_uri: sosa:hasSimpleResult - close_mappings: - - prov:value diff --git a/schemas/20251121/linkml/modules/slots/archive/has_accuracy_in_meters.yaml b/schemas/20251121/linkml/modules/slots/archive/has_accuracy_in_meters.yaml deleted file mode 100644 index d2f6f089d2..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/has_accuracy_in_meters.yaml +++ /dev/null @@ -1,31 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_accuracy_in_meters -name: has_accuracy_in_meters_slot -title: Has Accuracy In Meters Slot -prefixes: - geosparql: http://www.opengis.net/ont/geosparql# - gn: http://www.geonames.org/ontology# - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - schema: http://schema.org/ -imports: - - linkml:types -default_prefix: hc -slots: - has_accuracy_in_meters: - description: >- - Accuracy of geographic coordinates in meters. - range: float - slot_uri: geosparql:hasGeometry - close_mappings: - - geosparql:hasGeometry - related_mappings: - - schema:geo - - gn:locationMap - annotations: - custodian_types: '["*"]' - custodian_types_rationale: >- - Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: >- - Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/archive/has_acquisition_history.yaml b/schemas/20251121/linkml/modules/slots/archive/has_acquisition_history.yaml deleted file mode 100644 index 5781deec03..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/has_acquisition_history.yaml +++ /dev/null @@ -1,62 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_acquisition_history -name: has_acquisition_history_slot -title: Has Acquisition History Slot -prefixes: - dcterms: http://purl.org/dc/terms/ - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - prov: http://www.w3.org/ns/prov# - rico: https://www.ica.org/standards/RiC/ontology# - schema: http://schema.org/ -imports: - - linkml:types -default_prefix: hc -slots: - has_acquisition_history: - description: 'How the collection was formed and developed over time. - - - Traces collection provenance and growth: - - - Founding (inherited, purchased, gifted, self-collected) - - - Time span of formation (decades, generations, centuries) - - - Acquisition methods (auctions, dealers, direct from artists, field collecting) - - - Key purchases or gifts (landmark acquisitions, major additions) - - - Provenance (family collection, assembled collection, research collection) - - - Collection philosophy (systematic, opportunistic, scholarly, aesthetic) - - - Important for understanding collection coherence and cultural significance. - - - Examples: - - - "Inherited family collection since 1654, Selective purchases 1980-2020" - - - "Assembled 1950-2000 through European auctions and dealer networks" - - - "Field-collected by owner during botanical expeditions 1975-2010" - - - "Commissioned directly from contemporary artists 1990-present" - - ' - range: string - slot_uri: dcterms:provenance - exact_mappings: - - dcterms:provenance - close_mappings: - - rico:history - - schema:description - related_mappings: - - prov:wasGeneratedBy - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/archive/has_administration.yaml b/schemas/20251121/linkml/modules/slots/archive/has_administration.yaml deleted file mode 100644 index 9cbe086097..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/has_administration.yaml +++ /dev/null @@ -1,18 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_administration -name: has_administration_slot -title: Has Administration Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - rico: https://www.ica.org/standards/RiC/ontology# -imports: - - linkml:types -default_prefix: hc -slots: - has_administration: - slot_uri: rico:hasOrHadPart - range: string # uriorcurie - # range: CustodianAdministration - multivalued: true - inlined_as_list: false # Fixed invalid inline for primitive type - description: Active administrative record systems currently in daily use by this custodian. diff --git a/schemas/20251121/linkml/modules/slots/archive/has_administration_description.yaml b/schemas/20251121/linkml/modules/slots/archive/has_administration_description.yaml deleted file mode 100644 index 71589be8a3..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/has_administration_description.yaml +++ /dev/null @@ -1,44 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_administration_description -name: has_administration_description_slot -title: Has Administration Description Slot -prefixes: - dcterms: http://purl.org/dc/terms/ - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - rico: https://www.ica.org/standards/RiC/ontology# - schema: http://schema.org/ -imports: - - linkml:types -default_prefix: hc -slots: - has_administration_description: - description: 'Description of what records this system/function contains. - - - **RiC-O**: rico:scopeAndContent for content description. - - - Describe: - - - Types of records created - - - Business processes documented - - - Key document series - - - Relationship to other systems - - ' - range: string - slot_uri: schema:description - exact_mappings: - - schema:description - close_mappings: - - dcterms:description - - rico:scopeAndContent - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/archive/has_administration_name.yaml b/schemas/20251121/linkml/modules/slots/archive/has_administration_name.yaml deleted file mode 100644 index 9eb80d7b6a..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/has_administration_name.yaml +++ /dev/null @@ -1,52 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_administration_name -name: has_administration_name_slot -title: Has Administration Name Slot -prefixes: - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - org: http://www.w3.org/ns/org# - rdfs: http://www.w3.org/2000/01/rdf-schema# - schema: http://schema.org/ -imports: - - linkml:types -default_prefix: hc -slots: - has_administration_name: - description: 'Name for this administrative record system or function. - - - **RiC-O**: rico:name for record resource name. - - - **Examples**: - - - "Director''s Office Correspondence" - - - "Human Resources Personnel Files" - - - "Acquisition Documentation" - - - "Conservation Treatment Records" - - - "Financial Administration (SAP)" - - - "Research Request Management" - - - "Loan Administration" - - - "Exhibition Planning Files" - - ' - range: string - slot_uri: schema:name - exact_mappings: - - schema:name - close_mappings: - - rdfs:label - - org:name - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/archive/has_altitude.yaml b/schemas/20251121/linkml/modules/slots/archive/has_altitude.yaml deleted file mode 100644 index 57acb04360..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/has_altitude.yaml +++ /dev/null @@ -1,31 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_altitude -name: has_altitude_slot -title: Has Altitude Slot -prefixes: - geosparql: http://www.opengis.net/ont/geosparql# - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - schema: http://schema.org/ - wgs84: http://www.w3.org/2003/01/geo/wgs84_pos# -imports: - - linkml:types -default_prefix: hc -slots: - has_altitude: - description: >- - Altitude/elevation above sea level. Permanent geographic fact. - range: float - slot_uri: geosparql:alt - exact_mappings: - - geosparql:alt - close_mappings: - - schema:elevation - - wgs84:alt - annotations: - custodian_types: '["*"]' - custodian_types_rationale: >- - Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: >- - Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/archive/has_api_version.yaml b/schemas/20251121/linkml/modules/slots/archive/has_api_version.yaml new file mode 100644 index 0000000000..a452e4625f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/has_api_version.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/has_api_version +name: has_api_version_slot +title: Has Api Version Slot +prefixes: + dcat: http://www.w3.org/ns/dcat# + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + pav: http://purl.org/pav/ + schema: http://schema.org/ +imports: + - linkml:types +default_prefix: hc +slots: + has_api_version: + description: 'Version of the API used for retrieval. + + + Schema.org: softwareVersion for API version tracking. + + ' + range: string + slot_uri: schema:version + exact_mappings: + - schema:version + close_mappings: + - dcat:version + - pav:version + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/archive/has_architectural_style.yaml b/schemas/20251121/linkml/modules/slots/archive/has_architectural_style.yaml new file mode 100644 index 0000000000..c414f88b56 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/has_architectural_style.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/has_architectural_style +name: has_architectural_style_slot +title: Has Architectural Style Slot +prefixes: + dbp: http://dbpedia.org/property/ + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ +imports: + - linkml:types +default_prefix: hc +slots: + has_architectural_style: + description: 'Architectural style of the building. + + + Schema.org: additionalType for style classification. + + ' + range: string + multivalued: true + slot_uri: dbp:architecturalStyle + exact_mappings: + - dbp:architecturalStyle + close_mappings: + - schema:genre + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/archive/has_archive_path.yaml b/schemas/20251121/linkml/modules/slots/archive/has_archive_path.yaml new file mode 100644 index 0000000000..0985b02d48 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/has_archive_path.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/has_archive_path +name: has_archive_path_slot +title: Has Archive Path Slot +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ +imports: + - linkml:types +default_prefix: hc +slots: + has_archive_path: + description: 'Path to archived source material. Recommended for audit trail. + + ' + range: string + slot_uri: schema:contentUrl + close_mappings: + - schema:contentUrl + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/archive/has_arrangement.yaml b/schemas/20251121/linkml/modules/slots/archive/has_arrangement.yaml deleted file mode 100644 index 420638da03..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/has_arrangement.yaml +++ /dev/null @@ -1,45 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_arrangement -name: has_arrangement_slot -title: Has Arrangement Slot -prefixes: - dcterms: http://purl.org/dc/terms/ - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - rico: https://www.ica.org/standards/RiC/ontology# -imports: - - linkml:types -default_prefix: hc -slots: - has_arrangement: - description: 'Intellectual arrangement or classification system. - - - Dublin Core: dcterms:description for descriptive information about organization. - - EAD: <arrangement> element describes intellectual or physical arrangement. - - - Describes how the collection is organized: - - - Provenance-based (archival) - - - Chronological - - - Subject-based - - - Alphabetical - - ' - range: string - slot_uri: dcterms:description - exact_mappings: - - dcterms:description - annotations: - custodian_types: '["A"]' - custodian_types_rationale: Primarily applicable to archives. - custodian_types_primary: A - specificity_score: 0.9 - specificity_rationale: Highly specific to archival arrangement. - ontology_note: "RiC-O does not define 'hasOrHadArrangement'. Using dcterms:description\ - \ as arrangement is descriptive text about organization. Consider creating\ - \ a project-specific predicate hc:hasArrangement if more precision is needed." diff --git a/schemas/20251121/linkml/modules/slots/archive/has_arrangement_level.yaml b/schemas/20251121/linkml/modules/slots/archive/has_arrangement_level.yaml deleted file mode 100644 index cb9dcb19a1..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/has_arrangement_level.yaml +++ /dev/null @@ -1,28 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_arrangement_level -name: has_arrangement_level_slot -title: Has Arrangement Level Slot -prefixes: - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - rico: https://www.ica.org/standards/RiC/ontology# -imports: - - linkml:types -default_prefix: hc -slots: - has_arrangement_level: - description: 'Level of archival description. - - - **Values**: FONDS, SUB_FONDS, SERIES, SUB_SERIES, FILE, ITEM - - ' - range: string - slot_uri: rico:hasRecordSetType - exact_mappings: - - rico:hasRecordSetType - annotations: - custodian_types: '["A"]' - custodian_types_rationale: Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.9 - specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/archive/has_audio_quality_score.yaml b/schemas/20251121/linkml/modules/slots/archive/has_audio_quality_score.yaml new file mode 100644 index 0000000000..5e2d713ee9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/has_audio_quality_score.yaml @@ -0,0 +1,59 @@ +id: https://nde.nl/ontology/hc/slot/has_audio_quality_score +name: has_audio_quality_score_slot +title: Has Audio Quality Score Slot +prefixes: + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_audio_quality_score: + description: 'Overall audio quality score (0.0-1.0). + + + Composite score based on: + + - Signal-to-noise ratio + + - Clipping presence + + - Frequency response + + - Clarity of speech + + + **Interpretation**: + + - > 0.8: High quality, suitable for all uses + + - 0.6-0.8: Good quality, minor issues + + - 0.4-0.6: Acceptable, some degradation + + - < 0.4: Poor quality, may need enhancement + + + **Ontology mapping**: Uses sosa:hasSimpleResult because this is a computed observation result from audio quality analysis algorithms. + + ' + range: float + slot_uri: sosa:hasSimpleResult + close_mappings: + - prov:value + - schema:ratingValue + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/archive/has_heritage_type.yaml b/schemas/20251121/linkml/modules/slots/archive/has_heritage_type.yaml new file mode 100644 index 0000000000..d673122b4e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/has_heritage_type.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/has_heritage_type +name: has_heritage_type_slot +title: Has Heritage Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_heritage_type: + range: string # uriorcurie + multivalued: true + description: 'Single-letter heritage sector codes applicable to this person. + Uses HeritageTypeEnum values (G,L,A,M,O,R,C,U,B,E,S,F,I,X,P,H,D,N,T). + Multiple types possible for cross-domain professionals. + ' + slot_uri: hc:heritageTypes + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:heritageTypes diff --git a/schemas/20251121/linkml/modules/slots/archive/has_locker.yaml b/schemas/20251121/linkml/modules/slots/archive/has_locker.yaml new file mode 100644 index 0000000000..7803e55bca --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/has_locker.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/has-lockers +name: has_locker_slot +title: has_lockers slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_locker: + slot_uri: schema:amenityFeature + description: 'Whether reading room provides lockers for personal belongings. + + + Many reading rooms require bags/coats to be stored in lockers. + + ' + range: boolean + examples: + - value: true + description: Lockers available + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:amenityFeature diff --git a/schemas/20251121/linkml/modules/slots/archive/has_microfilm_reader.yaml b/schemas/20251121/linkml/modules/slots/archive/has_microfilm_reader.yaml new file mode 100644 index 0000000000..ce4d932459 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/has_microfilm_reader.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/has-microfilm-readers +name: has_microfilm_reader_slot +title: has_microfilm_readers slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_microfilm_reader: + slot_uri: schema:amenityFeature + description: 'Whether reading room has microfilm/microfiche reader equipment. + + ' + range: boolean + examples: + - value: true + description: Has microfilm readers + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:amenityFeature diff --git a/schemas/20251121/linkml/modules/slots/archive/has_or_had_access_policy.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_access_policy.yaml deleted file mode 100644 index 40e2399a9d..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/has_or_had_access_policy.yaml +++ /dev/null @@ -1,72 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_access_policy -name: has_or_had_access_policy_slot -title: Has Or Had Access Policy Slot -prefixes: - dcterms: http://purl.org/dc/terms/ - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - premis: http://www.loc.gov/premis/rdf/v3/ - rico: https://www.ica.org/standards/RiC/ontology# - schema: http://schema.org/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - has_or_had_access_policy: - description: 'Policies governing researcher/public access to religious heritage collections. - - - Describes access conditions and restrictions: - - - **Public access**: Open hours, visitor programs, guided tours - - - **Research access**: By appointment, credentials required, application process - - - **Restrictions**: Sacred objects (no access), privacy concerns (closed records) - - - **Photography**: Prohibited, allowed with permission, flash restrictions - - - **Reproduction**: Copyright, religious authority approval - - - **Digital access**: Online catalogs, digitized manuscripts, virtual tours - - - **Interfaith sensitivity**: Non-members welcome, religious requirements (modest dress) - - - Balances heritage accessibility with religious sacredness. - - - Examples: - - - "Restricted access by appointment, Scholars only, No browsing" - - - "Public viewing during open hours, Photography prohibited, Guided tours" - - - "Digitized manuscripts online, Physical access by special permission" - - - "Closed to public, Clergy and researchers only" - - ' - range: string - slot_uri: dcterms:accessRights - exact_mappings: - - dcterms:accessRights - close_mappings: - - schema:conditionsOfAccess - related_mappings: - - premis:rightsStatus - - schema:publishingPrinciples - comments: - - schema:conditionsOfAccess is semantically closer (conditions for access) than schema:publishingPrinciples (editorial principles). - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/archive/has_or_had_accreditation.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_accreditation.yaml index 20e5d92f1b..daf41031a6 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_or_had_accreditation.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/has_or_had_accreditation.yaml @@ -1,35 +1,24 @@ id: https://nde.nl/ontology/hc/slot/has_or_had_accreditation -name: has_or_had_accreditation_slot -title: Has Or Had Accreditation Slot +name: has_or_had_accreditation +title: Has Or Had Accreditation prefixes: - hc: https://nde.nl/ontology/hc/ linkml: https://w3id.org/linkml/ - org: http://www.w3.org/ns/org# + hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types default_prefix: hc slots: has_or_had_accreditation: - description: Accreditation status or credential held by the institution. Temporal as accreditations can expire or be revoked. + slot_uri: schema:award + description: "Accreditation or award received by an entity." range: string - slot_uri: schema:hasCredential + multivalued: true exact_mappings: - - schema:hasCredential - close_mappings: - - org:classification - related_mappings: - schema:award - - schema:memberOf + close_mappings: + - dcterms:license annotations: custodian_types: '["*"]' - custodian_types_rationale: Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: Moderately specific slot. + specificity_score: 0.3 diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_accumulation.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_accumulation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_accumulation.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_accumulation.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_activity.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_activity.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_activity.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_activity.yaml diff --git a/schemas/20251121/linkml/modules/slots/archive/has_or_had_affiliation.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_affiliation.yaml index 142dd32dbd..8c4d3b04c2 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_or_had_affiliation.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/has_or_had_affiliation.yaml @@ -1,49 +1,23 @@ id: https://nde.nl/ontology/hc/slot/has_or_had_affiliation name: has_or_had_affiliation_slot -title: Has Or Had Affiliation Slot + prefixes: - foaf: http://xmlns.com/foaf/0.1/ - hc: https://nde.nl/ontology/hc/ linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ org: http://www.w3.org/ns/org# - pico: https://personsincontext.org/model# schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - xsd: http://www.w3.org/2001/XMLSchema# + +# default_range: string + imports: -- linkml:types -default_prefix: hc + - linkml:types slots: has_or_had_affiliation: - description: 'Organizational has_or_had_affiliation of the agent. - - - Ontology mappings: - - - Schema.org: has_or_had_affiliation for institutional relationships - - - W3C Org: memberOf for organizational membership - - - RiC-O: isOrWasAffiliatedWith for archival agent has_or_had_affiliation (temporal) - - ' - range: string + slot_uri: org:memberOf + description: | + An organization or institution with which this entity has or had + an affiliation. + range: string # uriorcurie multivalued: true - slot_uri: schema:affiliation exact_mappings: - - schema:affiliation - close_mappings: - - org:memberOf - - foaf:member - related_mappings: - - pico:hasAffiliation - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: Moderately specific slot. + - schema:affiliation diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_annotation.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_annotation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_annotation.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_annotation.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_archive.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_archive.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_archive.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_archive.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_arrangement.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_arrangement.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_arrangement.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_arrangement.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_arrangement_level.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_arrangement_level.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_arrangement_level.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_arrangement_level.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_artwork_count.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_artwork_count.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_artwork_count.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_artwork_count.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_assessment.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_assessment.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_assessment.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_assessment.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_author.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_author.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_author.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_author.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_author_name.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_author_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_author_name.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_author_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_authority.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_authority.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_authority.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_authority.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_auxiliary_entities.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_auxiliary_entities.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_auxiliary_entities.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_auxiliary_entities.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_auxiliary_platform.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_auxiliary_platform.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_auxiliary_platform.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_auxiliary_platform.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_base.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_base.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_base.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_base.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_beneficiary.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_beneficiary.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_beneficiary.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_beneficiary.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_benefit.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_benefit.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_benefit.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_benefit.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_boundary.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_boundary.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_boundary.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_boundary.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_branch.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_branch.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_branch.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_branch.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_budget.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_budget.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_budget.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_budget.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_canonical_form.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_canonical_form.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_canonical_form.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_canonical_form.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_capacity.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_capacity.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_capacity.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_capacity.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_caption.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_caption.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_caption.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_caption.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_carrier.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_carrier.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_carrier.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_carrier.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_citation.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_citation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_citation.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_citation.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_city_code.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_city_code.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_city_code.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_city_code.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_collection_url.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_collection_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_collection_url.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_collection_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_component.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_component.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_component.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_component.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_condition.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_condition.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_condition.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_condition.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_confidence.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_confidence.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_confidence.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_confidence.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_contact_details.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_contact_details.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_contact_details.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_contact_details.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_contact_information.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_contact_information.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_contact_information.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_contact_information.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_contact_point.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_contact_point.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_contact_point.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_contact_point.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_contributor.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_contributor.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_contributor.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_contributor.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_coordinates.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_coordinates.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_coordinates.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_coordinates.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_currency.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_currency.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_currency.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_currency.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_custodian.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_custodian.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_custodian.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_custodian.yaml diff --git a/schemas/20251121/linkml/modules/slots/archive/has_or_had_custodian_name.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_custodian_name.yaml new file mode 100644 index 0000000000..618dc8205e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/has_or_had_custodian_name.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_custodian_name +name: has_or_had_custodian_name_slot +imports: +- linkml:types +slots: + has_or_had_custodian_name: + slot_uri: rdfs:member + description: Collection of custodian standardized names in the container + range: string # uriorcurie + # range: CustodianName + multivalued: true + exact_mappings: + - ldp:contains + close_mappings: + - skos:prefLabel + annotations: + custodian_types: "['*']" +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/has_or_had_custodian_observation.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_custodian_observation.yaml new file mode 100644 index 0000000000..c143475fa9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/has_or_had_custodian_observation.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_custodian_observation +name: has_or_had_custodian_observation_slot +imports: +- linkml:types +slots: + has_or_had_custodian_observation: + slot_uri: rdfs:member + description: Collection of custodian observations in the container + range: string # uriorcurie + # range: CustodianObservation + multivalued: true + exact_mappings: + - ldp:contains + comments: + - Contains CustodianObservation instances (prov:Entity class) + annotations: + custodian_types: "['*']" +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_data_quality_notes.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_data_quality_notes.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_data_quality_notes.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_data_quality_notes.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_degree.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_degree.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_degree.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_degree.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_description.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_description.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_description.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_description.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_detected.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_detected.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_detected.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_detected.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_direction.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_direction.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_direction.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_direction.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_document.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_document.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_document.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_document.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_documentation.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_documentation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_documentation.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_documentation.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_domain.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_domain.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_domain.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_domain.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_drawer.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_drawer.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_drawer.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_drawer.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_edition.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_edition.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_edition.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_edition.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_embargo_end_date.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_embargo_end_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_embargo_end_date.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_embargo_end_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_embargo_reason.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_embargo_reason.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_embargo_reason.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_embargo_reason.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_endowment_draw.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_endowment_draw.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_endowment_draw.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_endowment_draw.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_endpoint.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_endpoint.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_endpoint.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_endpoint.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_engagement_metric.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_engagement_metric.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_engagement_metric.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_engagement_metric.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_equipment.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_equipment.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_equipment.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_equipment.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_equipment_type.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_equipment_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_equipment_type.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_equipment_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_exhibition.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_exhibition.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_exhibition.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_exhibition.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_exhibition_type.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_exhibition_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_exhibition_type.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_exhibition_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_expense.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_expense.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_expense.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_expense.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_expertise_in.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_expertise_in.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_expertise_in.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_expertise_in.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_extent_text.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_extent_text.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_extent_text.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_extent_text.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_facility.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_facility.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_facility.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_facility.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_feature.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_feature.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_feature.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_feature.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_fee.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_fee.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_fee.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_fee.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_field.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_field.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_field.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_field.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_file_location.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_file_location.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_file_location.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_file_location.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_file_path.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_file_path.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_file_path.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_file_path.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_fixity.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_fixity.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_fixity.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_fixity.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_flag.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_flag.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_flag.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_flag.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_focus.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_focus.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_focus.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_focus.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_fond.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_fond.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_fond.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_fond.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_frequency.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_frequency.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_frequency.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_frequency.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_function.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_function.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_function.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_function.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_funded.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_funded.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_funded.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_funded.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_geofeature.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_geofeature.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_geofeature.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_geofeature.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_geographic_extent.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_geographic_extent.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_geographic_extent.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_geographic_extent.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_geographic_subdivision.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_geographic_subdivision.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_geographic_subdivision.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_geographic_subdivision.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_geometric_extent.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_geometric_extent.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_geometric_extent.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_geometric_extent.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_geometry.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_geometry.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_geometry.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_geometry.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_homepage.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_homepage.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_homepage.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_homepage.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_image.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_image.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_image.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_image.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_index_number.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_index_number.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_index_number.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_index_number.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_interface.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_interface.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_interface.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_interface.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_inventory_url.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_inventory_url.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_inventory_url.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_inventory_url.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_investment.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_investment.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_investment.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_investment.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_iso_639_1.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_iso_639_1.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_iso_639_1.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_iso_639_1.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_iso_639_3.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_iso_639_3.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_iso_639_3.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_iso_639_3.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_key_contact.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_key_contact.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_key_contact.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_key_contact.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_liability.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_liability.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_liability.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_liability.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_location.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_location.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_location.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_location.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_main_part.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_main_part.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_main_part.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_main_part.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_mandate.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_mandate.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_mandate.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_mandate.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_mean.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_mean.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_mean.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_mean.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_measurement.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_measurement.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_measurement.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_measurement.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_measurement_type.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_measurement_type.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_measurement_type.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_measurement_type.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_measurement_unit.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_measurement_unit.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_measurement_unit.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_measurement_unit.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_member.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_member.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_member.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_member.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_mode.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_mode.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_mode.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_mode.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_model.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_model.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_model.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_model.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_name.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_name.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_name.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_name.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_navigation_link.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_navigation_link.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_navigation_link.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_navigation_link.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_notation.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_notation.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_notation.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_notation.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_objective.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_objective.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_objective.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_objective.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_opening_hour.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_opening_hour.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_opening_hour.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_opening_hour.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_organization_profile.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_organization_profile.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_organization_profile.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_organization_profile.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_organization_status.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_organization_status.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_organization_status.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_organization_status.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_organizer.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_organizer.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_organizer.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_organizer.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_parent.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_parent.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_parent.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_parent.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_participated_in.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_participated_in.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_participated_in.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_participated_in.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_percentage.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_percentage.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_percentage.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_percentage.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_period.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_period.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_period.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_period.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_place.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_place.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_place.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_place.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_policy.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_policy.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_policy.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_policy.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_price.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_price.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_price.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_price.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_primary_platform.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_primary_platform.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_primary_platform.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_primary_platform.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_profile.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_profile.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_profile.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_profile.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_provenance.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_provenance.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_provenance.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_provenance.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_provenance_path.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_provenance_path.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_provenance_path.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_provenance_path.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_publication_date.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_publication_date.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_publication_date.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_publication_date.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_publisher.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_publisher.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_publisher.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_publisher.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_qualifier.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_qualifier.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_qualifier.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_qualifier.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_quantity.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_quantity.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_quantity.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_range.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_range.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_range.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_range.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_rank.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_rank.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_rank.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_rank.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_rate.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_rate.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_rate.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_rate.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_rating.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_rating.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_rating.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_rating.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_rationale.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_rationale.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_rationale.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_rationale.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_reason.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_reason.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_reason.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_reason.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_reference.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_reference.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_reference.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_reference.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_requirement.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_requirement.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_requirement.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_requirement.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_resolution.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_resolution.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_resolution.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_resolution.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_responsibility.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_responsibility.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_responsibility.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_responsibility.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_restriction.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_restriction.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_restriction.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_restriction.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_revenue.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_revenue.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_revenue.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_revenue.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_roadmap.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_roadmap.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_roadmap.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_roadmap.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_schedule.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_schedule.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_schedule.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_schedule.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_schema.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_schema.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_schema.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_schema.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_scheme.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_scheme.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_scheme.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_scheme.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_secondary_platform.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_secondary_platform.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_secondary_platform.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_secondary_platform.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_section.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_section.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_section.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_section.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_segment.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_segment.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_segment.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_segment.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_sensitivity_level.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_sensitivity_level.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_sensitivity_level.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_sensitivity_level.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_sequence_index.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_sequence_index.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_sequence_index.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_sequence_index.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_series.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_series.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_series.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_series.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_service.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_service.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_service.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_service.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_service_area.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_service_area.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_service_area.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_service_area.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_service_details.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_service_details.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_service_details.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_service_details.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_setpoint.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_setpoint.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_setpoint.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_setpoint.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_significance.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_significance.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_significance.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_significance.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_size.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_size.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_size.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_size.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_social_media_profile.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_social_media_profile.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_social_media_profile.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_social_media_profile.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_source.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_source.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_source.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_source.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_specification.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_specification.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_specification.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_specification.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_staff.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_staff.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_staff.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_staff.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_staff_member.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_staff_member.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_staff_member.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_staff_member.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_standard.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_standard.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_standard.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_standard.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_status.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_status.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_status.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_status.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_style.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_style.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_style.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_style.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_subject.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_subject.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_subject.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_subject.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_subtype.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_subtype.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_subtype.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_subtype.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_summary.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_summary.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_summary.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_summary.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_supplier.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_supplier.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_supplier.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_supplier.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_text.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_text.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_text.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_text.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_threshold.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_threshold.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_threshold.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_threshold.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_thumbnail.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_thumbnail.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_thumbnail.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_thumbnail.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_tier.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_tier.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_tier.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_tier.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_timestamp.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_timestamp.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_timestamp.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_timestamp.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_title.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_title.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_title.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_title.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_tolerance.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_tolerance.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_tolerance.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_tolerance.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_tool.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_tool.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_tool.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_tool.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_transformation_metadata.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_transformation_metadata.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_transformation_metadata.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_transformation_metadata.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_treatment.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_treatment.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_treatment.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_treatment.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_treshold.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_treshold.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_treshold.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_treshold.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_type_code.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_type_code.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_type_code.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_type_code.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_unit.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_unit.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_unit.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_unit.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_use_case.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_use_case.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_use_case.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_use_case.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_user_category.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_user_category.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_user_category.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_user_category.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_value.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_value.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_value.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_value.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_venue.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_venue.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_venue.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_venue.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_version.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_version.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/has_or_had_version.yaml rename to schemas/20251121/linkml/modules/slots/archive/has_or_had_version.yaml diff --git a/schemas/20251121/linkml/modules/slots/archive/has_or_had_web_claim.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_web_claim.yaml index 5e9031016d..d6b3e8d6c4 100644 --- a/schemas/20251121/linkml/modules/slots/archive/has_or_had_web_claim.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/has_or_had_web_claim.yaml @@ -1,38 +1,21 @@ id: https://nde.nl/ontology/hc/slot/has_or_had_web_claim -name: has_or_had_web_claim_slot -title: Web Claims Slot -version: 1.0.0 +name: has_or_had_web_claim +title: Has Or Had Web Claim prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types +default_prefix: hc slots: has_or_had_web_claim: slot_uri: prov:wasDerivedFrom - description: "Verifiable claims about this person extracted from web pages.\n\n**RULE 26 COMPLIANCE**: All person/staff data SHOULD have web claim provenance.\n\n**Pattern**: Each PersonWebClaim provides:\n- claim_type: full_name, role_title, department, email, etc.\n- claim_value: The extracted value\n- source_url: URL where claim was found\n- xpath: XPath to element (for HTML sources)\n- retrieved_on: Timestamp of extraction\n- retrieval_agent: Tool used (firecrawl, playwright, exa, manual)\n\n**Use Cases**:\n- Track provenance of person data\n- Enable verification of extracted information\n- Document multiple sources for same fact\n- Resolve conflicts between sources\n\n**Example**:\n```yaml\nhas_or_had_web_claim:\n - person_claim_type: full_name\n person_claim_value: \"Dr. Jane Smith\"\n source_url: https://museum.org/team\n person_xpath: /html/body/main/div[2]/h3\n retrieved_on: \"2025-01-15T10:30:00Z\"\n retrieval_agent: firecrawl\n person_xpath_match_score:\ - \ 1.0\n```\n\n**See**: modules/classes/PersonWebClaim.yaml for full schema\n" - range: string # uriorcurie - # range: PersonWebClaim + description: "Claims extracted from web sources." + range: string multivalued: true - inlined: false # Fixed invalid inline for primitive type - inlined_as_list: false # Fixed invalid inline for primitive type - required: false - comments: - - 'See: PersonWebClaim class for full field definitions | AGENTS.md Rule 26 for person data provenance requirements' - examples: - - value: "has_or_had_web_claim:\n - person_claim_type: full_name\n person_claim_value: \"Dr. Jane Smith\"\n source_url:\\ \\ https://museum.org/team\n person_xpath: /html/body/main/div[2]/h3\n retrieved_on: \"2025-01-15T...\n" - description: Usage example - annotations: - custodian_types: - - '*' exact_mappings: - prov:wasDerivedFrom + annotations: + custodian_types: '["*"]' + specificity_score: 0.3 diff --git a/schemas/20251121/linkml/modules/slots/archive/has_or_had_web_page.yaml b/schemas/20251121/linkml/modules/slots/archive/has_or_had_web_page.yaml deleted file mode 100644 index e41f7e5664..0000000000 --- a/schemas/20251121/linkml/modules/slots/archive/has_or_had_web_page.yaml +++ /dev/null @@ -1,92 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_web_page -name: has_or_had_web_page_slot -title: Has Or Had Web Page Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - foaf: http://xmlns.com/foaf/0.1/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_web_page: - slot_uri: schema:hasPart - description: 'Web pages associated with this entity. - - - **Temporal Semantics** (RiC-O Pattern): - - The "hasOrHad" naming follows RiC-O convention indicating this - - web page association may be historical - websites change over time. - - - **Ontological Alignment**: - - - **Primary** (`slot_uri`): `schema:hasPart` - Schema.org part relationship - - - **Close**: `foaf:page` - FOAF document page - - - **Close**: `schema:url` - Schema.org URL (for simple cases) - - - **Use Cases**: - - - Collection browse pages (e.g., Rijksstudio) - - - Search interfaces - - - Catalog pages - - - Finding aid pages - - - **Range**: WebPage class (structured web page with URL and metadata) - - - **Cardinality**: - - Multivalued - entities may have multiple web pages. - - ' - range: string # uriorcurie - required: false - multivalued: true - inlined: false # Fixed invalid inline for primitive type - inlined_as_list: false # Fixed invalid inline for primitive type - exact_mappings: [] - close_mappings: - - foaf:page - - schema:url - annotations: - rico_naming_convention: 'Follows RiC-O "hasOrHad" pattern for temporal predicates. - - See Rule 39: Slot Naming Convention (RiC-O Style) - - ' - replaces_slots: collection_web_address - migration_date: '2026-01-22' - custodian_types: '["*"]' - custodian_types_rationale: Web pages apply to all heritage custodian types. - specificity_score: 0.2 - specificity_rationale: Generic web page slot applicable across most contexts. - comments: - - Generic web page association slot - - 'Temporal: Web pages may change over time' - - 'RiC-O naming: hasOrHad indicates potentially historical' - - Replaces collection_web_address per slot_fixes.yaml (2026-01-22) - examples: - - value: - page_name: Digital Collections - has_or_had_url: - - has_or_had_url: https://www.rijksmuseum.nl/nl/rijksstudio - has_or_had_type: collection_browse - description: Rijksstudio collections browse page diff --git a/schemas/20251121/linkml/modules/slots/archive/has_supervised_handling.yaml b/schemas/20251121/linkml/modules/slots/archive/has_supervised_handling.yaml new file mode 100644 index 0000000000..9f4d56c3dc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/has_supervised_handling.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/has-supervised-handling +name: has_supervised_handling_slot +title: has_supervised_handling slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_supervised_handling: + slot_uri: schema:requiredFeatures + description: 'Whether materials are handled under staff supervision. + + + Required for rare, fragile, or high-value materials. + + ' + range: boolean + examples: + - value: true + description: Supervised handling required + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:requiredFeatures diff --git a/schemas/20251121/linkml/modules/slots/archive/has_wifi.yaml b/schemas/20251121/linkml/modules/slots/archive/has_wifi.yaml new file mode 100644 index 0000000000..809b348c69 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/has_wifi.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/has-wifi +name: has_wifi_slot +title: has_wifi slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + has_wifi: + slot_uri: schema:amenityFeature + description: 'Whether reading room has WiFi internet access for researchers. + + ' + range: boolean + examples: + - value: true + description: WiFi available + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:amenityFeature diff --git a/schemas/20251121/linkml/modules/slots/archive/historic_garden_designation.yaml b/schemas/20251121/linkml/modules/slots/archive/historic_garden_designation.yaml new file mode 100644 index 0000000000..2c41cdacfa --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/historic_garden_designation.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/historic-garden-designation +name: historic_garden_designation_slot +title: historic_garden_designation slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + historic_garden_designation: + slot_uri: schema:award + description: 'Whether site has historic garden/landscape designation. + + + Dutch: Historische tuin designation, Rijksmonument landscape. + + ' + range: boolean + examples: + - value: true + description: Historic garden designation + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:award diff --git a/schemas/20251121/linkml/modules/slots/archive/hold_or_held_record_set_type.yaml b/schemas/20251121/linkml/modules/slots/archive/hold_or_held_record_set_type.yaml new file mode 100644 index 0000000000..0b48f9eacf --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/hold_or_held_record_set_type.yaml @@ -0,0 +1,59 @@ +id: https://nde.nl/ontology/hc/slot/hold_or_held_record_set_type +name: hold_or_held_record_set_type_slot +title: Hold or Held Record Set Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + hold_or_held_record_set_type: + slot_uri: rico:isOrWasHolderOf + range: string # uriorcurie + multivalued: true + description: "Links a heritage custodian type to the record set types it typically holds.\n\n**Purpose**:\nReplaces free-text \"Scope\" descriptions in custodian type classes with \nstructured semantic links to defined RecordSetType classes.\n\n**Example** (AcademicArchive):\n```yaml\nhold_or_held_record_set_type:\n - hc:UniversityAdministrativeFonds\n - hc:StudentRecordSeries\n - hc:FacultyPaperCollection\n - hc:CampusDocumentationCollection\n```\n\nThis formally documents that academic archives typically hold:\n- Administrative records from university governance (fonds)\n- Student records series (enrollment, transcripts, graduation)\n- Personal papers of faculty members (collection)\n- Campus documentation (photos, publications, ephemera)\n\n**Dual-Class Pattern Integration**:\nThis slot bridges the custodian type (ArchiveOrganizationType subclass) \nwith its corresponding RecordSetType subclasses, completing the dual-class \npattern for heritage institutions.\n\n**Ontological\ + \ Semantics**:\n- The custodian is the Agent (rico:CorporateBody)\n- The record set types are the RecordResource classifications\n- The relationship expresses custodial responsibility for these record types" + annotations: + custodian_types: '["*"]' + custodian_types_rationale: hold_or_held_record_set_type applies to all custodian types - used for linking any heritage institution type to the record/collection types it holds. + rico_property: rico:isOrWasHolderOf + rico_property_uri: https://www.ica.org/standards/RiC/ontology#isOrWasHolderOf + rico_inverse: rico:hasOrHadHolder + rico_domain: rico:Agent + rico_range: rico:RecordResource | rico:Instantiation + rico_cm_correspondence: RiC-R039 ('is or was holder of' relation) + examples: + - value: '- hc:UniversityAdministrativeFonds + + - hc:StudentRecordSeries + + - hc:FacultyPaperCollection + + - hc:CampusDocumentationCollection + + ' + description: Academic archive holds these record set types + - value: '- hc:CouncilGovernanceFonds + + - hc:CivilRegistrySeries + + - hc:MunicipalAdministrationFonds + + - hc:UrbanPlanningCollection + + - hc:LocalHistoryCollection + + ' + description: Municipal archive holds these record set types + close_mappings: + - rico:hasRecordSetType diff --git a/schemas/20251121/linkml/modules/slots/archive/identifies_or_identified.yaml b/schemas/20251121/linkml/modules/slots/archive/identifies_or_identified.yaml new file mode 100644 index 0000000000..b5e2421995 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/identifies_or_identified.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/identifies_or_identified +name: identifies_or_identified +title: identifies_or_identified +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + identifies_or_identified: + name: identifies_or_identified + title: identifies_or_identified + description: Identifies an entity. + slot_uri: schema:identifier + range: string # uriorcurie + # range: Custodian + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/identifies_or_identified_as.yaml b/schemas/20251121/linkml/modules/slots/archive/identifies_or_identified_as.yaml new file mode 100644 index 0000000000..b98bb481fa --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/identifies_or_identified_as.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/identifies_or_identified_as +name: identifies_or_identified_as +title: identifies_or_identified_as +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + identifies_or_identified_as: + name: identifies_or_identified_as + description: Indicates how an entity identifies or was identified (e.g., gender, social group). MIGRATED from gender_identity per Rule 53. Follows RiC-O naming convention. + slot_uri: schema:gender + range: string # uriorcurie + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:gender diff --git a/schemas/20251121/linkml/modules/slots/archive/implements_or_implemented.yaml b/schemas/20251121/linkml/modules/slots/archive/implements_or_implemented.yaml new file mode 100644 index 0000000000..427501391a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/implements_or_implemented.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/implements_or_implemented +name: implements_or_implemented +title: implements_or_implemented +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + implements_or_implemented: + name: implements_or_implemented + title: implements_or_implemented + description: Implements a plan or agenda. + slot_uri: prov:used + range: string # uriorcurie + # range: Agenda + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:used diff --git a/schemas/20251121/linkml/modules/slots/archive/imposes_or_imposed.yaml b/schemas/20251121/linkml/modules/slots/archive/imposes_or_imposed.yaml new file mode 100644 index 0000000000..42c43123f3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/imposes_or_imposed.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/imposes_or_imposed +name: imposes_or_imposed +title: imposes_or_imposed +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + imposes_or_imposed: + name: imposes_or_imposed + description: 'Relates an entity (like a Requirement or Policy) to a constraint or condition it imposes (e.g., GeographicExtent, Embargo). + + MIGRATED from `eligible_country` (via ApplicantRequirement) and `embargo_*` slots.' + slot_uri: odrl:constraint + range: string # uriorcurie + multivalued: true + exact_mappings: + - odrl:constraint + close_mappings: + - schema:constraint + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/inbound_from.yaml b/schemas/20251121/linkml/modules/slots/archive/inbound_from.yaml new file mode 100644 index 0000000000..d5ed51a5ba --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/inbound_from.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/inbound_from +name: inbound_from_slot +title: Inbound From Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + inbound_from: + slot_uri: dcterms:spatial + description: Migration origin countries/regions (for migration guides) + range: string + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:spatial diff --git a/schemas/20251121/linkml/modules/slots/archive/includes_bounding_box.yaml b/schemas/20251121/linkml/modules/slots/archive/includes_bounding_box.yaml new file mode 100644 index 0000000000..58a2b14814 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/includes_bounding_box.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/includes_bounding_box +name: includes_bounding_box_slot +title: Includes Bounding Boxes Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + includes_bounding_box: + slot_uri: hc:includesBoundingBoxes + description: 'Whether annotation includes spatial bounding box coordinates. + + + Bounding boxes define rectangular regions in frames where + + objects/faces/text were detected. + + + Format typically: [x, y, width, height] or [x1, y1, x2, y2] + + + - true: Spatial coordinates available in segment data + + - false: Only temporal information (no spatial) + + ' + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:includesBoundingBoxes diff --git a/schemas/20251121/linkml/modules/slots/archive/includes_handwriting.yaml b/schemas/20251121/linkml/modules/slots/archive/includes_handwriting.yaml new file mode 100644 index 0000000000..95ff9b1d22 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/includes_handwriting.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/includes_handwriting +name: includes_handwriting_slot +title: Includes Handwriting Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + includes_handwriting: + description: 'Whether handwritten text was detected. + + + Handwriting OCR is more challenging and typically + + has lower confidence than printed text. + + + Heritage relevance: manuscripts, letters, diaries, + + annotations, signatures. + + ' + range: boolean + slot_uri: hc:includesHandwriting + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:includesHandwriting diff --git a/schemas/20251121/linkml/modules/slots/archive/includes_music_description.yaml b/schemas/20251121/linkml/modules/slots/archive/includes_music_description.yaml new file mode 100644 index 0000000000..cfe359d6a6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/includes_music_description.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/includes_music_description +name: includes_music_description_slot +title: includes_music_descriptions slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + includes_music_description: + description: "Whether subtitle includes music/song descriptions.\n\nExamples:\n- \u266A upbeat jazz playing \u266A\n- [classical music]\n- \u266A singing in Dutch \u266A\n- [somber orchestral music]\n\nImportant for heritage content with significant musical elements.\n" + range: boolean + slot_uri: hc:includesMusicDescriptions + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:includesMusicDescriptions diff --git a/schemas/20251121/linkml/modules/slots/archive/includes_object_tracking.yaml b/schemas/20251121/linkml/modules/slots/archive/includes_object_tracking.yaml new file mode 100644 index 0000000000..63b4ab7fcb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/includes_object_tracking.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/includes_object_tracking +name: includes_object_tracking_slot +title: Includes Object Tracking Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + includes_object_tracking: + description: 'Whether objects are tracked across frames. + + + Tracking maintains object identity over time: + + - true: Same object has consistent ID across frames + + - false: Independent per-frame detections + + + Tracking enables counting unique objects and + + understanding object movement/presence. + + ' + range: boolean + slot_uri: hc:includesObjectTracking + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:includesObjectTracking diff --git a/schemas/20251121/linkml/modules/slots/archive/includes_segmentation_mask.yaml b/schemas/20251121/linkml/modules/slots/archive/includes_segmentation_mask.yaml new file mode 100644 index 0000000000..92785965ae --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/includes_segmentation_mask.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/includes_segmentation_mask +name: includes_segmentation_mask_slot +title: Includes Segmentation Masks Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + includes_segmentation_mask: + slot_uri: hc:includesSegmentationMasks + description: 'Whether annotation includes pixel-level segmentation masks. + + + Segmentation masks provide precise object boundaries + + (more detailed than bounding boxes). + + + - true: Pixel masks available (typically as separate files) + + - false: No segmentation data + + + Masks are memory-intensive; often stored externally. + + ' + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:includesSegmentationMasks diff --git a/schemas/20251121/linkml/modules/slots/archive/includes_sound_description.yaml b/schemas/20251121/linkml/modules/slots/archive/includes_sound_description.yaml new file mode 100644 index 0000000000..4a8cffb849 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/includes_sound_description.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/includes_sound_description +name: includes_sound_description_slot +title: includes_sound_descriptions slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + includes_sound_description: + description: 'Whether subtitle includes non-speech sound descriptions. + + + Examples of sound descriptions: + + - [door slams] + + - [phone ringing] + + - [thunder] + + - [footsteps approaching] + + + Characteristic of CC and SDH tracks. + + ' + range: boolean + slot_uri: hc:includesSoundDescriptions + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:includesSoundDescriptions diff --git a/schemas/20251121/linkml/modules/slots/archive/includes_speaker.yaml b/schemas/20251121/linkml/modules/slots/archive/includes_speaker.yaml new file mode 100644 index 0000000000..f7dd4dcd4a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/includes_speaker.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/includes_speaker +name: includes_speaker_slot +title: Includes Speakers Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + includes_speaker: + slot_uri: hc:includesSpeakers + description: 'Whether the transcript includes speaker identification. + + + - **true**: Speaker labels/diarization available + + - **false**: Single speaker or no identification (default) + + + When true, check `speaker_count` for number of distinct speakers. + + ' + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:includesSpeakers diff --git a/schemas/20251121/linkml/modules/slots/archive/includes_speaker_identification.yaml b/schemas/20251121/linkml/modules/slots/archive/includes_speaker_identification.yaml new file mode 100644 index 0000000000..49250d8a6c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/includes_speaker_identification.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/includes_speaker_identification +name: includes_speaker_identification_slot +title: includes_speaker_identification slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + includes_speaker_identification: + description: 'Whether subtitle identifies speakers. + + + Speaker identification patterns: + + - (John): Hello there. + + - NARRATOR: Welcome to the museum. + + - [Curator] This painting dates from 1642. + + + Different from transcript speaker_id which is per-segment; + + this indicates whether the TEXT CONTENT includes labels. + + ' + range: boolean + slot_uri: hc:includesSpeakerIdentification + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:includesSpeakerIdentification diff --git a/schemas/20251121/linkml/modules/slots/archive/includes_timestamp.yaml b/schemas/20251121/linkml/modules/slots/archive/includes_timestamp.yaml new file mode 100644 index 0000000000..5646fd09a2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/includes_timestamp.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/includes_timestamp +name: includes_timestamp_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + includes_timestamp: + slot_uri: schema:dateModified + description: 'Whether the transcript includes time markers. + + + - **true**: Timestamps are embedded in full_text or segments have times + + - **false**: No temporal information (default) + + + If true, prefer using `segments` for programmatic access. + + ' + range: boolean + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:dateModified diff --git a/schemas/20251121/linkml/modules/slots/archive/indicates_or_indicated.yaml b/schemas/20251121/linkml/modules/slots/archive/indicates_or_indicated.yaml new file mode 100644 index 0000000000..6fefc254bd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/indicates_or_indicated.yaml @@ -0,0 +1,47 @@ +id: https://nde.nl/ontology/hc/slot/indicates_or_indicated +name: indicates_or_indicated_slot +title: Indicates Or Indicated Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + indicates_or_indicated: + slot_uri: prov:generated + description: "Links an entity (e.g., an analysis or enrichment) to what it indicates or signifies.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"indicatesOrIndicated\" naming follows RiC-O convention indicating this relationship\nmay be historical.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:generated` - if the indication is a result\n- **Related**: `schema:result`\n\n**Usage**:\nUsed to link enrichments (like WhatsAppEnrichment) to the assessment result\n(DigitalProfessionalAssessment).\n\n**Pattern**:\n```\nWhatsAppEnrichment\n \u2514\u2500\u2500 indicates_or_indicated \u2192 DigitalProfessionalAssessment\n \u251C\u2500\u2500 estimates_or_estimated \u2192 DigitalConfidence\n \u2514\u2500\u2500 emphasizes_or_emphasized \u2192 DigitalProficiency\n```\n\n**Migrated From** (per slot_fixes.yaml):\n- `digital_professional` \u2192 indicates_or_indicated + DigitalProficiency/Assessment\n\n**Cardinality**:\nSingle or multivalued depending on context.\n" + range: string + required: false + multivalued: false + inlined: false # Fixed invalid inline for primitive type + exact_mappings: + - prov:generated + related_mappings: + - schema:result + annotations: + rico_naming_convention: 'Follows RiC-O "indicatesOrIndicated" pattern for active/passive predicates. + + See Rule 39: Slot Naming Convention (RiC-O Style) + + ' + replaces_slots: digital_professional + migration_date: '2026-01-25' + custodian_types: '["*"]' + comments: + - Generic indication slot + - Links enrichment/analysis to its result/assessment + - Replaces digital_professional slot + - 'RiC-O naming: indicatesOrIndicated' + examples: + - value: + likely_whatsapp_proficient: true + description: Indicates digital proficiency assessment diff --git a/schemas/20251121/linkml/modules/slots/archive/industry_benchmark_high.yaml b/schemas/20251121/linkml/modules/slots/archive/industry_benchmark_high.yaml new file mode 100644 index 0000000000..540ef75cd3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/industry_benchmark_high.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/industry_benchmark_high +name: industry_benchmark_high_slot +title: Industry Benchmark High Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + industry_benchmark_high: + slot_uri: hc:industryBenchmarkHigh + range: float + description: 'High end of the industry benchmark range for this metric. + + + Expressed as a decimal (e.g., 0.40 = 40%). + + Used with industry_benchmark_low to define the typical performance range. + + ' + close_mappings: + - schema:maxValue + examples: + - value: 0.4 + description: 40% high benchmark for visitor-to-purchase conversion + - value: 0.08 + description: 8% high benchmark for visitor-to-member conversion + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/industry_benchmark_low.yaml b/schemas/20251121/linkml/modules/slots/archive/industry_benchmark_low.yaml new file mode 100644 index 0000000000..dee2d0dd01 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/industry_benchmark_low.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/industry_benchmark_low +name: industry_benchmark_low_slot +title: Industry Benchmark Low Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + industry_benchmark_low: + slot_uri: hc:industryBenchmarkLow + range: float + description: 'Low end of the industry benchmark range for this metric. + + + Expressed as a decimal (e.g., 0.15 = 15%). + + Used with industry_benchmark_high to define the typical performance range. + + ' + close_mappings: + - schema:minValue + examples: + - value: 0.15 + description: 15% low benchmark for visitor-to-purchase conversion + - value: 0.01 + description: 1% low benchmark for visitor-to-member conversion + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/inference_provenance.yaml b/schemas/20251121/linkml/modules/slots/archive/inference_provenance.yaml new file mode 100644 index 0000000000..372853ff3d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/inference_provenance.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/inference_provenance +name: inference_provenance_slot +title: Inference Provenance Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + inference_provenance: + slot_uri: hc:inference_provenance + range: string + description: 'Inference Provenance for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:inference_provenance diff --git a/schemas/20251121/linkml/modules/slots/archive/info_session_date.yaml b/schemas/20251121/linkml/modules/slots/archive/info_session_date.yaml new file mode 100644 index 0000000000..0c8cf19334 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/info_session_date.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/info_session_date +name: info_session_date_slot +title: Info Session Dates Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + info_session_date: + range: string + multivalued: true + description: Dates of information sessions or webinars about the call + slot_uri: hc:infoSessionDates + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:infoSessionDates diff --git a/schemas/20251121/linkml/modules/slots/archive/initial.yaml b/schemas/20251121/linkml/modules/slots/archive/initial.yaml new file mode 100644 index 0000000000..b2dc7fa4b4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/initial.yaml @@ -0,0 +1,88 @@ +id: https://nde.nl/ontology/hc/slot/initial +name: initial_slot +title: Initials +prefixes: + pnv: https://w3id.org/pnv# + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + initial: + slot_uri: pnv:initials + description: 'Initial letter(s) of given name(s), each followed by a period. + + + An initial is the first letter of a person''s given name, or sometimes + + a combination of letters. Use this property to record initials + + separately from (or in addition to) the full given name. + + + Format: Each initial should be followed by a period (dot). + + + Use cases: + + 1. Record initials alongside known given name + + 2. Record initials when full given name is unknown + + 3. Capture unusual abbreviation patterns from historical sources + + + Examples from PNV specification: + + + Example 1: "Peter R. de Vries" + + - initials: "P.R." + + - given_name: "Peter R." + + + Example 2: "C.Joh. Kieviet" + + - initials: "C.Joh." (unusual abbreviation format) + + - OR given_name: "C.Joh." (alternative approach) + + + Example 3: "H.A.F.M.O. (Hans) van Mierlo" + + - initials: "H.A.F.M.O." + + - given_name: "Hans" + + + If only initials are known (not the full given name), use this property. + + The given_name property may also contain the initials as a fallback + + when no other representation is available. + + + Note: Store initials exactly as they appear in the source, including + + unusual formatting patterns like "C.Joh." for historical accuracy. + + ' + range: string + pattern: ^[A-Z][a-zA-Z]*\.([A-Z][a-zA-Z]*\.)*$ + exact_mappings: + - pnv:initials + close_mappings: + - foaf:name + related_mappings: + - skos:altLabel + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/initial_of_the_initial.yaml b/schemas/20251121/linkml/modules/slots/archive/initial_of_the_initial.yaml new file mode 100644 index 0000000000..ac1ccc62f9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/initial_of_the_initial.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/initial_of_the_initial +name: initial_of_the_initial_slot +title: Initial of the Initial Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + initial_of_the_initial: + description: "The state or condition at the beginning of a process or activity.\n\nCIDOC-CRM pattern for capturing the initial state before an event:\n- Conservation treatment \u2192 initial condition state\n- Restoration \u2192 initial preservation state\n- Processing \u2192 initial state\n\n**SEMANTIC MEANING**:\nRefers to the state observed at the initial moment of a process,\nanalogous to CIDOC-CRM's E3 Condition State with P5 consists of.\n\n**TEMPORAL SEMANTICS**:\n- The state BEFORE something has occurred\n- Paired with `final_of_the_final` for before/after comparisons\n\n**Migration (2026-01-22)**:\n- `condition_before` \u2192 `initial_of_the_initial` + `ConditionState`\n- Per slot_fixes.yaml (Rule 53)\n" + range: string # uriorcurie + # range: ConditionState + slot_uri: crm:P44_has_condition + exact_mappings: + - crm:P44_has_condition + close_mappings: + - crm:E3_Condition_State + examples: + - value: + state_type: PoorCondition + state_description: Object requiring stabilization before treatment + description: Conservation record initial condition + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/innovation_budget.yaml b/schemas/20251121/linkml/modules/slots/archive/innovation_budget.yaml new file mode 100644 index 0000000000..7762fdb7c3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/innovation_budget.yaml @@ -0,0 +1,68 @@ +id: https://nde.nl/ontology/hc/slot/innovation_budget +name: innovation_budget_slot +title: Innovation Budget Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + innovation_budget: + description: 'Innovation budget allocation. + + + **Heritage-specific**: Budget for innovation projects that transform + + how the institution operates, preserves, or provides access to heritage. + + + Includes: + + - Digital transformation initiatives + + - R&D and experimental programs + + - New technology adoption (AI, machine learning, etc.) + + - Process automation and improvement + + - Visitor experience innovation + + - Collection management system upgrades + + - Data infrastructure modernization + + + **Distinct from digitization_budget**: Innovation focuses on transforming + + processes and capabilities, while digitization focuses on creating + + digital surrogates of physical collections. + + + **Examples**: + + - AI-powered cataloging systems + + - Virtual/augmented reality experiences + + - Automated conservation monitoring + + - Linked open data infrastructure + + ' + range: decimal + slot_uri: hc:innovationBudget + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:innovationBudget diff --git a/schemas/20251121/linkml/modules/slots/archive/inscription.yaml b/schemas/20251121/linkml/modules/slots/archive/inscription.yaml new file mode 100644 index 0000000000..e842a719b5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/inscription.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/inscription +name: inscription_slot +title: Inscription Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + inscription: + description: 'Text inscribed on the object (signatures, dates, dedications). + + ' + range: string + multivalued: true + slot_uri: crm:P128_carries + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P128_carries diff --git a/schemas/20251121/linkml/modules/slots/archive/installation_date.yaml b/schemas/20251121/linkml/modules/slots/archive/installation_date.yaml new file mode 100644 index 0000000000..e64cc3ef41 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/installation_date.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/installation_date +name: installation_date_slot +title: Installation Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + installation_date: + description: 'Date when the device was installed. + + + Schema.org: dateCreated for installation date. + + ' + range: date + slot_uri: dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:date diff --git a/schemas/20251121/linkml/modules/slots/archive/installed_at_place.yaml b/schemas/20251121/linkml/modules/slots/archive/installed_at_place.yaml new file mode 100644 index 0000000000..5d14bb0371 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/installed_at_place.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/installed_at_place +name: installed_at_place_slot +title: Installed At Place Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + installed_at_place: + description: 'CustodianPlace where this device is installed. + + + Links to CustodianPlace for precise location. + + + Schema.org: location for physical location. + + ' + range: string # uriorcurie + # range: CustodianPlace + slot_uri: hc:installedAtPlace + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:installedAtPlace diff --git a/schemas/20251121/linkml/modules/slots/archive/instance_of.yaml b/schemas/20251121/linkml/modules/slots/archive/instance_of.yaml new file mode 100644 index 0000000000..8733764083 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/instance_of.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/instance_of +name: instance_of_slot +title: Instance Of Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + instance_of: + description: 'The heritage form this event is an instance/occurrence of. + + + Links this specific event to its abstract heritage tradition. + + ' + range: string # uriorcurie + # range: IntangibleHeritageForm + slot_uri: crm:P2_has_type + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P2_has_type diff --git a/schemas/20251121/linkml/modules/slots/archive/institution_function.yaml b/schemas/20251121/linkml/modules/slots/archive/institution_function.yaml new file mode 100644 index 0000000000..d7f8320ca9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/institution_function.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/institution_function +name: institution_function_slot +title: Institution Functions Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + institution_function: + description: 'Primary functions of the institution. + + Examples: collection, exhibition, education, research, preservation, advocacy + + ' + range: string + multivalued: true + slot_uri: hc:institutionFunctions + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:institutionFunctions diff --git a/schemas/20251121/linkml/modules/slots/archive/institution_linkedin_url.yaml b/schemas/20251121/linkml/modules/slots/archive/institution_linkedin_url.yaml new file mode 100644 index 0000000000..c34e82c168 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/institution_linkedin_url.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/institution_linkedin_url +name: institution_linkedin_url_slot +title: Institution Linkedin Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + institution_linkedin_url: + description: 'LinkedIn school/university page URL for the institution. + + ' + range: uri + slot_uri: hc:institutionLinkedinUrl + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:institutionLinkedinUrl diff --git a/schemas/20251121/linkml/modules/slots/archive/institution_name.yaml b/schemas/20251121/linkml/modules/slots/archive/institution_name.yaml new file mode 100644 index 0000000000..9f9022771a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/institution_name.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/institution_name +name: institution_name_slot +title: Institution Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + institution_name: + description: 'Name of the educational institution. + + Ontology mapping: schema:name is the Schema.org property for the name of an item, specifically applicable to educational organizations.' + range: string + slot_uri: schema:name + close_mappings: + - skos:prefLabel + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/insurance_currency.yaml b/schemas/20251121/linkml/modules/slots/archive/insurance_currency.yaml new file mode 100644 index 0000000000..52275debec --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/insurance_currency.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/insurance_currency +name: insurance_currency_slot +title: Insurance Currency Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + insurance_currency: + description: 'Currency code for insurance value (ISO 4217). + + ' + range: string + slot_uri: schema:priceCurrency + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:priceCurrency diff --git a/schemas/20251121/linkml/modules/slots/archive/insurance_provider.yaml b/schemas/20251121/linkml/modules/slots/archive/insurance_provider.yaml new file mode 100644 index 0000000000..9dee1b73aa --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/insurance_provider.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/insurance_provider +name: insurance_provider_slot +title: Insurance Provider Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + insurance_provider: + description: 'Insurance company or government indemnity program. + + ' + range: string + slot_uri: hc:insuranceProvider + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:insuranceProvider diff --git a/schemas/20251121/linkml/modules/slots/archive/insurance_value.yaml b/schemas/20251121/linkml/modules/slots/archive/insurance_value.yaml new file mode 100644 index 0000000000..9ddf279919 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/insurance_value.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/insurance_value +name: insurance_value_slot +title: Insurance Value Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + insurance_value: + description: 'Insured value of loaned object(s). + + Typically "nail-to-nail" coverage for transit and display period. + + ' + range: decimal + slot_uri: schema:price + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:price diff --git a/schemas/20251121/linkml/modules/slots/archive/intangible_heritage_subtype.yaml b/schemas/20251121/linkml/modules/slots/archive/intangible_heritage_subtype.yaml new file mode 100644 index 0000000000..9c9c1c1ebb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/intangible_heritage_subtype.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/intangible_heritage_subtype +name: intangible_heritage_subtype_slot +title: Intangible Heritage Subtype Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/IntangibleHeritageTypeEnum +default_prefix: hc +slots: + intangible_heritage_subtype: + slot_uri: skos:narrower + description: 'Specific subtype from the IntangibleHeritageTypeEnum taxonomy (82 intangible heritage types). + + Each value links to a Wikidata entity describing a specific type. + + ' + range: string # uriorcurie + # range: IntangibleHeritageTypeEnum + required: false + multivalued: true + comments: + - Values extracted from Wikidata hyponyms + - Each value has a wikidata:QID meaning for Linked Open Data + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:narrower diff --git a/schemas/20251121/linkml/modules/slots/archive/integrates_or_integrated.yaml b/schemas/20251121/linkml/modules/slots/archive/integrates_or_integrated.yaml new file mode 100644 index 0000000000..ffd04233d2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/integrates_or_integrated.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/integrates_or_integrated +name: integrates_or_integrated +title: integrates_or_integrated +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + integrates_or_integrated: + name: integrates_or_integrated + description: Indicates that an entity integrates or integrated another entity (e.g., a function, system). MIGRATED from functional_integration per Rule 53. Follows RiC-O naming convention. + slot_uri: rico:hasOrHadComponent + range: string # uriorcurie + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - rico:hasOrHadComponent diff --git a/schemas/20251121/linkml/modules/slots/archive/interlibrary_loan.yaml b/schemas/20251121/linkml/modules/slots/archive/interlibrary_loan.yaml new file mode 100644 index 0000000000..41a1860f93 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/interlibrary_loan.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/interlibrary_loan +name: interlibrary_loan_slot +title: Interlibrary Loan Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + interlibrary_loan: + slot_uri: schema:serviceType + description: 'Whether library participates in interlibrary loan (ILL) networks for + + resource sharing with other libraries. + + True = participates in ILL (can borrow from/lend to other libraries) + + False = does not participate in ILL + + ' + range: boolean + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:serviceType diff --git a/schemas/20251121/linkml/modules/slots/archive/internal_funding.yaml b/schemas/20251121/linkml/modules/slots/archive/internal_funding.yaml new file mode 100644 index 0000000000..e1a3253910 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/internal_funding.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/internal_funding +name: internal_funding_slot +title: Internal Funding Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + internal_funding: + description: 'Internal/earned revenue included in budget. + + + Sources: + + - Admission fees + + - Merchandise sales + + - Venue rental + + - Licensing fees + + - Membership dues + + ' + range: decimal + slot_uri: hc:internalFunding + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:internalFunding diff --git a/schemas/20251121/linkml/modules/slots/archive/international.yaml b/schemas/20251121/linkml/modules/slots/archive/international.yaml new file mode 100644 index 0000000000..2583d25fb2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/international.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/international +name: international_slot +title: International Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + international: + slot_uri: dcterms:spatial + description: International scope descriptions + range: string + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:spatial diff --git a/schemas/20251121/linkml/modules/slots/archive/inventory_number.yaml b/schemas/20251121/linkml/modules/slots/archive/inventory_number.yaml new file mode 100644 index 0000000000..efb93e2185 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/inventory_number.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/inventory_number +name: inventory_number_slot +title: Inventory Number Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + inventory_number: + description: 'Additional inventory or catalog numbers. + + ' + range: string + slot_uri: dcterms:identifier + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/inventory_web_address.yaml b/schemas/20251121/linkml/modules/slots/archive/inventory_web_address.yaml new file mode 100644 index 0000000000..bc25c63c26 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/inventory_web_address.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/inventory_web_address +name: inventory_web_address_slot +title: Inventory Web Addresses Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + inventory_web_address: + description: 'URLs for archival inventories, finding aids, or collection catalogs. + + + DCAT: landingPage for human-readable collection descriptions. + + + Examples: + + - "https://www.nationaalarchief.nl/onderzoeken/index" (National Archives inventories) + + - "https://archief.amsterdam/inventarissen" (Amsterdam City Archives inventories) + + ' + range: uri + slot_uri: hc:inventoryWebAddresses + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:inventoryWebAddresses diff --git a/schemas/20251121/linkml/modules/slots/exhibits_or_exhibited.yaml b/schemas/20251121/linkml/modules/slots/archive/involves_or_involved.yaml similarity index 62% rename from schemas/20251121/linkml/modules/slots/exhibits_or_exhibited.yaml rename to schemas/20251121/linkml/modules/slots/archive/involves_or_involved.yaml index a2cd36d6ae..af8566b8cb 100644 --- a/schemas/20251121/linkml/modules/slots/exhibits_or_exhibited.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/involves_or_involved.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/exhibits_or_exhibited -name: exhibits_or_exhibited -title: exhibits_or_exhibited +id: https://nde.nl/ontology/hc/slot/involves_or_involved +name: involves_or_involved +title: involves_or_involved prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -16,15 +16,15 @@ default_prefix: hc imports: - linkml:types slots: - exhibits_or_exhibited: - name: exhibits_or_exhibited - title: exhibits_or_exhibited - description: Exhibits an object. - slot_uri: schema:workFeatured + involves_or_involved: + name: involves_or_involved + title: involves_or_involved + description: Actor involved in the event. + slot_uri: prov:wasAssociatedWith range: string # uriorcurie - # range: FeaturedObject + # range: Actor multivalued: true annotations: custodian_types: '["*"]' exact_mappings: - - schema:workFeatured + - prov:wasAssociatedWith diff --git a/schemas/20251121/linkml/modules/slots/archive/is_accessible.yaml b/schemas/20251121/linkml/modules/slots/archive/is_accessible.yaml new file mode 100644 index 0000000000..254991479e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_accessible.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/is_accessible +name: is_accessible_slot +title: is_accessible slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_accessible: + slot_uri: schema:accessibilityFeature + description: 'Whether exhibition space is wheelchair/mobility accessible. + + ' + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:accessibilityFeature diff --git a/schemas/20251121/linkml/modules/slots/archive/is_accredited.yaml b/schemas/20251121/linkml/modules/slots/archive/is_accredited.yaml new file mode 100644 index 0000000000..999ab2b151 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_accredited.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/is_accredited +name: is_accredited_slot +title: Is Accredited Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_accredited: + description: 'Whether lab holds professional conservation accreditation. + + + Accreditation bodies include: + + - AIC (American Institute for Conservation) + + - ICON (Institute of Conservation, UK) + + - VeRes (Dutch Restorers Association) + + ' + range: boolean + slot_uri: hc:isAccredited + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isAccredited diff --git a/schemas/20251121/linkml/modules/slots/archive/is_active.yaml b/schemas/20251121/linkml/modules/slots/archive/is_active.yaml new file mode 100644 index 0000000000..4e2893be8e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_active.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/is_active +name: is_active_slot +title: is_active slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_active: + slot_uri: hc:isActive + description: 'Whether this temporary location is currently active. + + + TRUE: Currently operational + + FALSE: Closed/ended or not yet started + + + Computed from actual_start/actual_end dates. + + ' + range: boolean + required: true + close_mappings: + - adms:status + comments: + - schema:status does not exist as a Schema.org property + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/is_annex_of_reading_room.yaml b/schemas/20251121/linkml/modules/slots/archive/is_annex_of_reading_room.yaml new file mode 100644 index 0000000000..97fd46ebdd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_annex_of_reading_room.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/is_annex_of_reading_room +name: is_annex_of_reading_room_slot +title: Is Annex Of Reading Room Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_annex_of_reading_room: + slot_uri: hc:isAnnexOfReadingRoom + description: 'The main ReadingRoom that this is an annex of. + + + Schema.org: isPartOf for part-whole relationship. + + + Links annex to primary reading room. + + ' + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isAnnexOfReadingRoom diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/allocates_or_allocated.yaml b/schemas/20251121/linkml/modules/slots/archive/is_approximate.yaml similarity index 65% rename from frontend/public/schemas/20251121/linkml/modules/slots/allocates_or_allocated.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_approximate.yaml index d2b55f57e9..047ea1f194 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/allocates_or_allocated.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/is_approximate.yaml @@ -1,12 +1,12 @@ -id: https://nde.nl/ontology/hc/slot/allocates_or_allocated -name: allocates_or_allocated_slot -title: Allocates Or Allocated Slot +id: https://nde.nl/ontology/hc/slot/is_approximate +name: is_approximate_slot +title: Is Approximate Slot prefixes: hc: https://nde.nl/ontology/hc/ linkml: https://w3id.org/linkml/ - prov: http://www.w3.org/ns/prov# schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# crm: http://www.cidoc-crm.org/cidoc-crm/ skos: http://www.w3.org/2004/02/skos/core# rdfs: http://www.w3.org/2000/01/rdf-schema# @@ -16,16 +16,19 @@ imports: - linkml:types default_prefix: hc slots: - allocates_or_allocated: - description: Resources or identifiers allocated by this entity. - range: uriorcurie - multivalued: true - slot_uri: prov:generated - close_mappings: - - prov:generated + is_approximate: + description: 'Always required. Default to false unless hedging language detected. + + ' + range: boolean + slot_uri: hc:isApproximate + related_mappings: + - schema:approximateValue annotations: custodian_types: '["*"]' custodian_types_rationale: Applicable to all heritage custodian types. custodian_types_primary: M specificity_score: 0.5 specificity_rationale: Moderately specific slot. + exact_mappings: + - hc:isApproximate diff --git a/schemas/20251121/linkml/modules/slots/archive/is_auxiliary_of_place.yaml b/schemas/20251121/linkml/modules/slots/archive/is_auxiliary_of_place.yaml new file mode 100644 index 0000000000..64862f4ea8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_auxiliary_of_place.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/is_auxiliary_of_place +name: is_auxiliary_of_place_slot +title: Is Auxiliary Of Place Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_auxiliary_of_place: + description: "Link back to the CustodianPlace that this is an auxiliary of.\n\nSKOS: broader links subordinate to main concept.\n\nLike CustodianAppellation.variant_of_name \u2192 CustodianName,\nthis links AuxiliaryPlace \u2192 CustodianPlace (main place).\n" + range: string # uriorcurie + # range: CustodianPlace + slot_uri: hc:isAuxiliaryOfPlace + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isAuxiliaryOfPlace diff --git a/schemas/20251121/linkml/modules/slots/archive/is_auxiliary_of_platform.yaml b/schemas/20251121/linkml/modules/slots/archive/is_auxiliary_of_platform.yaml new file mode 100644 index 0000000000..335987adaa --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_auxiliary_of_platform.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/is_auxiliary_of_platform +name: is_auxiliary_of_platform_slot +title: Is Auxiliary Of Platform Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_auxiliary_of_platform: + description: "Link back to the DigitalPlatform that this is an auxiliary of.\n\nDublin Core: isPartOf links part to whole.\n\nLike CustodianAppellation.variant_of_name \u2192 CustodianName,\nthis links AuxiliaryDigitalPlatform \u2192 DigitalPlatform (main platform).\n" + range: string # uriorcurie + # range: DigitalPlatform + slot_uri: hc:isAuxiliaryOfPlatform + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isAuxiliaryOfPlatform diff --git a/schemas/20251121/linkml/modules/slots/archive/is_background.yaml b/schemas/20251121/linkml/modules/slots/archive/is_background.yaml new file mode 100644 index 0000000000..956409774c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_background.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/is_background +name: is_background_slot +title: Is Background Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_background: + description: 'Whether music is background (under speech) vs featured. + + + - true: Music is background/ambient + + - false: Music is primary audio + + ' + range: boolean + slot_uri: hc:isBackground + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isBackground diff --git a/schemas/20251121/linkml/modules/slots/archive/is_branch_of.yaml b/schemas/20251121/linkml/modules/slots/archive/is_branch_of.yaml new file mode 100644 index 0000000000..2b32c8c83b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_branch_of.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/is_branch_of +name: is_branch_of_slot +title: Is Branch Of Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_branch_of: + description: "Parent Custodian or OrganizationBranch that this branch belongs to.\n\nW3C ORG: org:unitOf - \"Indicates an Organization of which this Unit is a part\"\n\nCan link to:\n- Custodian (direct branch of main institution)\n- OrganizationBranch (sub-branch of another branch)\n\nEnables hierarchical branch structures:\n- National Archives \u2192 Regional Branch \u2192 Local Office\n" + range: string # uriorcurie + slot_uri: hc:isBranchOf + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isBranchOf diff --git a/schemas/20251121/linkml/modules/slots/archive/is_branch_of_authority.yaml b/schemas/20251121/linkml/modules/slots/archive/is_branch_of_authority.yaml new file mode 100644 index 0000000000..d2c5322be5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_branch_of_authority.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/is_branch_of_authority +name: is_branch_of_authority_slot +title: Is Branch Of Authority Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + is_branch_of_authority: + slot_uri: hc:is_branch_of_authority + range: boolean + description: 'Is Branch Of Authority for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:is_branch_of_authority diff --git a/schemas/20251121/linkml/modules/slots/archive/is_closed_caption.yaml b/schemas/20251121/linkml/modules/slots/archive/is_closed_caption.yaml new file mode 100644 index 0000000000..917824556f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_closed_caption.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/is_closed_caption +name: is_closed_caption_slot +title: is_closed_caption slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_closed_caption: + description: 'Whether this is a closed caption track (CC). + + + Closed captions differ from subtitles: + + - **CC (true)**: Designed for Deaf/HoH, includes non-speech audio + + - **Subtitles (false)**: Translation of dialogue only + + + CC typically includes [MUSIC], [APPLAUSE], speaker ID, etc. + + ' + range: boolean + slot_uri: hc:isClosedCaption + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isClosedCaption diff --git a/schemas/20251121/linkml/modules/slots/archive/is_current_version.yaml b/schemas/20251121/linkml/modules/slots/archive/is_current_version.yaml new file mode 100644 index 0000000000..b91cd7c9e7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_current_version.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/is_current_version +name: is_current_version_slot +title: Is Current Version Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_current_version: + description: 'Indicates whether this is the current/active version of articles. + + + Only ONE version should be current at any time. + + + When articles are amended: + + 1. Set is_current_version = false on old version + + 2. Set superseded_by on old version + + 3. Create new version with is_current_version = true + + 4. Set supersedes on new version + + ' + range: boolean + slot_uri: hc:isCurrentVersion + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isCurrentVersion diff --git a/schemas/20251121/linkml/modules/slots/archive/is_deceased.yaml b/schemas/20251121/linkml/modules/slots/archive/is_deceased.yaml new file mode 100644 index 0000000000..eee36f812d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_deceased.yaml @@ -0,0 +1,51 @@ +id: https://nde.nl/ontology/hc/slot/is_deceased +name: is_deceased_slot +title: Is Deceased Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + is_deceased: + slot_uri: hc:isDeceased + description: "Links to structured information about a person's death status.\n\n**Purpose**:\nProvides a structured representation of death circumstances, replacing\nthe simple `circumstances_of_death` string with a `DeceasedStatus` class\nthat captures:\n- Cause of death (via CauseOfDeath class)\n- Temporal extent (date of death via TimeSpan)\n- Narrative description of circumstances\n\n**Temporal Semantics**:\nUses \"is\" prefix (not \"has_or_had\") because death status is a permanent\nstate - once deceased, always deceased.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:isDeceased` - Heritage Custodian property\n- **Related**: `schema:deathDate` - Schema.org death date\n- **Related**: `prov:wasEndedBy` - PROV-O activity termination\n\n**Usage in StaffRole**:\nDocuments the death status of heritage workers, particularly important for:\n- Heritage workers killed during conflicts (Gaza, Ukraine, etc.)\n- Historical figures in the heritage sector\n- Biographical documentation\ + \ and commemoration\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n is_or_was_caused_by:\n cause_type: CONFLICT\n has_or_had_description: |\n Killed in Israeli airstrike on his home in Gaza City on November 19, 2023.\n He was a journalist and information professional at Press House - Palestine.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n" + range: string # uriorcurie + # range: DeceasedStatus + inlined: false # Fixed invalid inline for primitive type + required: false + exact_mappings: + - schema:deathDate + related_mappings: + - prov:wasEndedBy + annotations: + migration_source: circumstances_of_death + migration_date: '2026-01-19' + migration_rationale: 'Replaced simple string slot with structured DeceasedStatus class + + per slot_fixes.yaml revision at line 9369. + + Enables structured capture of cause, date, and narrative. + + ' + custodian_types: '["*"]' + comments: + - 'Replaces: circumstances_of_death (string)' + - 'Range: DeceasedStatus class for structured death information' + - 'Includes: cause of death, temporal extent, narrative description' + - Important for documenting heritage workers killed in conflicts + examples: + - value: "is_deceased:\n is_or_was_caused_by:\n cause_type: NATURAL\n temporal_extent:\n begin_of_the_begin: \"2020-03-15\"\n end_of_the_end: \"2020-03-15\"\n" + description: Natural death with known date + - value: "is_deceased:\n is_or_was_caused_by:\n cause_type: CONFLICT\n has_or_had_description: \"Killed during airstrike on cultural center\"\n temporal_extent:\n begin_of_the_begin: \"2023-10-01\"\n end_of_the_end: \"2023-12-31\"\n" + description: Death during conflict with date range (exact date unknown) diff --git a/schemas/20251121/linkml/modules/slots/archive/is_embeddable.yaml b/schemas/20251121/linkml/modules/slots/archive/is_embeddable.yaml new file mode 100644 index 0000000000..24cc641001 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_embeddable.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/is_embeddable +name: is_embeddable_slot +title: Is Embeddable Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_embeddable: + slot_uri: hc:isEmbeddable + description: 'Whether the video can be embedded on external sites. + + + Publisher-controlled setting. + + ' + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isEmbeddable diff --git a/schemas/20251121/linkml/modules/slots/archive/is_estimate.yaml b/schemas/20251121/linkml/modules/slots/archive/is_estimate.yaml new file mode 100644 index 0000000000..36eca68995 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_estimate.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/is_estimate +name: is_estimate_slot +title: Is Estimate Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + is_estimate: + slot_uri: hc:is_estimate + range: boolean + description: 'Is Estimate for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:is_estimate diff --git a/schemas/20251121/linkml/modules/slots/archive/is_heritage_relevant.yaml b/schemas/20251121/linkml/modules/slots/archive/is_heritage_relevant.yaml new file mode 100644 index 0000000000..26a1a02478 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_heritage_relevant.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/is_heritage_relevant +name: is_heritage_relevant_slot +title: Is Heritage Relevant Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_heritage_relevant: + description: 'Whether this person is professionally relevant to heritage sectors. + + True if they work at, consult for, or research heritage institutions. + + ' + range: boolean + slot_uri: hc:isHeritageRelevant + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isHeritageRelevant diff --git a/schemas/20251121/linkml/modules/slots/archive/is_historical_boundary.yaml b/schemas/20251121/linkml/modules/slots/archive/is_historical_boundary.yaml new file mode 100644 index 0000000000..3d1e49aef2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_historical_boundary.yaml @@ -0,0 +1,52 @@ +id: https://nde.nl/ontology/hc/slot/is_historical_boundary +name: is_historical_boundary_slot +title: Is Historical Boundary Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_historical_boundary: + range: boolean + description: 'Indicates if this service area represents a historical boundary + + that no longer exists in current administrative geography. + + + Use for: + + - Pre-merger municipal boundaries + + - Historical territories (e.g., HALC data from 1500) + + - Dissolved provinces or regions + + + When true: + + - has_boundary should use historical GeoSpatialPlace data + + - temporal_extent should indicate the period of validity + + - Display styling should indicate historical nature (e.g., brown/sepia) + + ' + ifabsent: boolean(false) + examples: + - value: true + description: Historical boundary from pre-1800 territory + slot_uri: hc:isHistoricalBoundary + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isHistoricalBoundary diff --git a/schemas/20251121/linkml/modules/slots/archive/is_inferred.yaml b/schemas/20251121/linkml/modules/slots/archive/is_inferred.yaml new file mode 100644 index 0000000000..34340adb5a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_inferred.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/is_inferred +name: is_inferred_slot +title: Is Inferred Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + is_inferred: + slot_uri: hc:is_inferred + range: boolean + description: 'Is Inferred for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:is_inferred diff --git a/schemas/20251121/linkml/modules/slots/archive/is_leased.yaml b/schemas/20251121/linkml/modules/slots/archive/is_leased.yaml new file mode 100644 index 0000000000..ae83773f7c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_leased.yaml @@ -0,0 +1,47 @@ +id: https://nde.nl/ontology/hc/slot/is_leased +name: is_leased_slot +title: Is Leased Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_leased: + slot_uri: hc:isLeased + description: 'Whether this administrative office is leased (TRUE) or owned (FALSE). + + + HC Ontology: Custom property for space tenure status. + + + Administrative offices are often leased in commercial buildings + + rather than owned by the heritage organization. This boolean flag + + indicates tenure type: + + - TRUE: Space is leased from a third party (rental agreement) + + - FALSE: Space is owned by the heritage custodian organization + + + Note: No standard ontology property exists for boolean tenure status. + + Schema.org `owns` expects an object, not a boolean value. + + ' + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isLeased diff --git a/schemas/20251121/linkml/modules/slots/archive/is_legal_status_of.yaml b/schemas/20251121/linkml/modules/slots/archive/is_legal_status_of.yaml new file mode 100644 index 0000000000..98af61f20f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_legal_status_of.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/is_legal_status_of +name: is_legal_status_of +title: Is Legal Status Of +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + owl: http://www.w3.org/2002/07/owl# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + is_legal_status_of: + slot_uri: hc:isLegalStatusOf + description: The custodian that this legal status represents. + range: string # uriorcurie + # range: Custodian + comments: + - Inverse of legal_status + - Links legal entity back to custodian hub + - Creates owl:inverseOf axiom in RDF output + - 'Inverse: `legal_status` | Pattern: If Custodian legal_status LegalStatus, then LegalStatus is_legal_status_of Custodian' + - 'Navigation: From legal status: Find custodian it represents (is_legal_status_of) | From custodian: Find formal legal entity (legal_status)' + related_mappings: + - rdf:type + annotations: + inverse_slot: legal_status + custodian_types: '["*"]' + examples: + - value: "CustodianLegalStatus:\n legal_name: \"Stichting Rijksmuseum\"\n is_legal_status_of: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm\"\n" + description: Usage example + exact_mappings: + - hc:isLegalStatusOf diff --git a/schemas/20251121/linkml/modules/slots/archive/is_licensed_content.yaml b/schemas/20251121/linkml/modules/slots/archive/is_licensed_content.yaml new file mode 100644 index 0000000000..633bd56f9f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_licensed_content.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/is_licensed_content +name: is_licensed_content_slot +title: Is Licensed Content Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_licensed_content: + slot_uri: hc:isLicensedContent + description: 'Whether the video contains licensed content (music, clips). + + + Affects monetization and regional availability. + + ' + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isLicensedContent diff --git a/schemas/20251121/linkml/modules/slots/archive/is_made_for_kid.yaml b/schemas/20251121/linkml/modules/slots/archive/is_made_for_kid.yaml new file mode 100644 index 0000000000..5e4a051032 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_made_for_kid.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/is_made_for_kid +name: is_made_for_kid_slot +title: Is Made For Kids Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_made_for_kid: + slot_uri: hc:isMadeForKids + description: 'Whether the video is designated as made for children. + + + COPPA compliance flag. Affects comments, ads, features. + + ' + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isMadeForKids diff --git a/schemas/20251121/linkml/modules/slots/archive/is_mandatory.yaml b/schemas/20251121/linkml/modules/slots/archive/is_mandatory.yaml new file mode 100644 index 0000000000..2b08ffd647 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_mandatory.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/is_mandatory +name: is_mandatory_slot +title: Is Mandatory Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_mandatory: + range: boolean + description: 'Whether this requirement is mandatory for eligibility (true) + + or preferred/optional (false). + + + Defaults to true - most requirements are mandatory. + + ' + slot_uri: hc:isMandatory + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isMandatory diff --git a/schemas/20251121/linkml/modules/slots/archive/is_official_assessment.yaml b/schemas/20251121/linkml/modules/slots/archive/is_official_assessment.yaml new file mode 100644 index 0000000000..a677cae814 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_official_assessment.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/is_official_assessment +name: is_official_assessment_slot +title: Is Official Assessment Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_official_assessment: + description: 'Whether this is an official institutional assessment or external observation. + + + TRUE = Official self-assessment or authorized inspection. + + FALSE = External/investigative observation not sanctioned by institution. + + + **Important for interpretation**: Official assessments represent what + + the institution claims; external observations may contradict this. + + ' + range: boolean + slot_uri: hc:isOfficialAssessment + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isOfficialAssessment diff --git a/schemas/20251121/linkml/modules/slots/archive/is_official_content.yaml b/schemas/20251121/linkml/modules/slots/archive/is_official_content.yaml new file mode 100644 index 0000000000..3e1ad734b3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_official_content.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/is_official_content +name: is_official_content_slot +title: Is Official Content Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_official_content: + description: 'Whether this content was posted by the heritage institution''s official account. + + + - **true**: Posted by the custodian''s verified/official account + + - **false**: Third-party content (visitors, media, etc.) about the institution + + + Helps distinguish official communications from external coverage. + + ' + range: boolean + slot_uri: hc:isOfficialContent + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isOfficialContent diff --git a/schemas/20251121/linkml/modules/slots/archive/is_open_to_public.yaml b/schemas/20251121/linkml/modules/slots/archive/is_open_to_public.yaml new file mode 100644 index 0000000000..370f230678 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_open_to_public.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/is-open-to-public +name: is_open_to_public_slot +title: is_open_to_public slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_open_to_public: + slot_uri: schema:isAccessibleForFree + description: 'Whether building is open to public visitors. + + + Some historic buildings are: + + - Fully open (museum house) + + - Partially open (guided tours only) + + - Closed (administrative use, private) + + ' + range: boolean + examples: + - value: true + description: Open to public + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:isAccessibleForFree diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_about_digital_presence.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_about_digital_presence.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_about_digital_presence.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_about_digital_presence.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_access_restricted.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_access_restricted.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_access_restricted.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_access_restricted.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_accessioned_through.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_accessioned_through.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_accessioned_through.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_accessioned_through.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_acquired_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_acquired_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_acquired_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_acquired_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_acquired_through.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_acquired_through.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_acquired_through.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_acquired_through.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_active_since.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_active_since.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_active_since.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_active_since.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_affected_by_event.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_affected_by_event.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_affected_by_event.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_affected_by_event.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_affiliated_with.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_affiliated_with.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_affiliated_with.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_affiliated_with.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_aggregated_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_aggregated_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_aggregated_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_aggregated_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_allocated_budget.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_allocated_budget.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_allocated_budget.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_allocated_budget.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_allocated_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_allocated_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_allocated_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_allocated_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_allocated_through.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_allocated_through.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_allocated_through.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_allocated_through.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_allocated_to.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_allocated_to.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_allocated_to.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_allocated_to.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_also_allocation_agency.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_also_allocation_agency.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_also_allocation_agency.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_also_allocation_agency.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_alternative_form_of.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_alternative_form_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_alternative_form_of.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_alternative_form_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_amended_through.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_amended_through.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_amended_through.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_amended_through.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_appended_with.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_appended_with.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_appended_with.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_appended_with.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_applicable_in.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_applicable_in.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_applicable_in.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_applicable_in.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_appreciated.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_appreciated.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_appreciated.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_appreciated.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_approved_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_approved_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_approved_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_approved_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_approved_on.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_approved_on.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_approved_on.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_approved_on.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_approximate.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_approximate.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_approximate.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_approximate.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_archive_department_of.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_archive_department_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_archive_department_of.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_archive_department_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_archived_as.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_archived_as.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_archived_as.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_archived_as.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_archived_at.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_archived_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_archived_at.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_archived_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_archived_in.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_archived_in.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_archived_in.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_archived_in.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_asserted_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_asserted_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_asserted_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_asserted_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_asserted_on.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_asserted_on.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_asserted_on.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_asserted_on.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_assessed_on.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_assessed_on.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_assessed_on.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_assessed_on.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_associated_with.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_associated_with.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_associated_with.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_associated_with.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_available.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_available.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_available.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_available.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_based_on.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_based_on.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_born_on.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_born_on.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_born_on.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_born_on.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_branch_of.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_branch_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_branch_of.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_branch_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_cancelled_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_cancelled_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_cancelled_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_cancelled_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_cataloged_in.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_cataloged_in.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_cataloged_in.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_cataloged_in.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_categorized_as.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_categorized_as.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_categorized_as.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_categorized_as.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_caused_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_caused_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_caused_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_caused_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_ceased_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_ceased_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_ceased_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_ceased_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_checked_through.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_checked_through.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_checked_through.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_checked_through.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_classified_as.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_classified_as.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_classified_as.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_classified_as.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_collection_of.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_collection_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_collection_of.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_collection_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_compatible_with.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_compatible_with.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_compatible_with.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_compatible_with.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_conducted_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_conducted_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_conducted_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_conducted_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_created_through.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_created_through.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_created_through.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_created_through.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_curated_through.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_curated_through.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_curated_through.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_curated_through.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_current.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_current.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_current.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_current.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_decommissioned_at.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_decommissioned_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_decommissioned_at.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_decommissioned_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_derived_from.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_derived_from.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_derived_from.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_derived_from.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_designed_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_designed_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_designed_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_designed_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_diarized.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_diarized.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_diarized.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_diarized.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_dismissed.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_dismissed.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_dismissed.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_dismissed.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_documented_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_documented_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_documented_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_documented_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_documented_in.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_documented_in.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_documented_in.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_documented_in.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_due_on.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_due_on.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_due_on.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_due_on.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_edited_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_edited_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_edited_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_edited_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_effective_at.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_effective_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_effective_at.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_effective_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_employed_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_employed_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_employed_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_employed_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_encompassed_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_encompassed_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_encompassed_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_encompassed_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_equivalent_to.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_equivalent_to.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_equivalent_to.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_equivalent_to.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_established_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_established_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_established_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_established_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_exhibited_at.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_exhibited_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_exhibited_at.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_exhibited_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_expired_at.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_expired_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_expired_at.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_expired_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_exposed_via.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_exposed_via.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_exposed_via.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_exposed_via.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_extended.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_extended.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_extended.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_extended.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_extracted_using.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_extracted_using.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_extracted_using.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_extracted_using.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_founded_through.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_founded_through.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_founded_through.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_founded_through.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_generated_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_generated_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_generated_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_generated_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_governed_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_governed_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_governed_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_governed_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_identified_through.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_identified_through.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_identified_through.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_identified_through.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_implemented_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_implemented_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_implemented_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_implemented_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_included_in.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_included_in.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_included_in.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_included_in.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_indexed.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_indexed.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_indexed.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_indexed.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_instance_of.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_instance_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_instance_of.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_instance_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_instantiated_as.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_instantiated_as.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_instantiated_as.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_instantiated_as.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_instantiated_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_instantiated_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_instantiated_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_instantiated_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_involved_in.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_involved_in.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_involved_in.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_involved_in.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_last_updated_at.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_last_updated_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_last_updated_at.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_last_updated_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_located_in.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_located_in.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_located_in.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_located_in.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_located_within.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_located_within.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_located_within.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_located_within.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_managed_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_managed_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_managed_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_managed_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_member_of.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_member_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_member_of.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_member_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_observed_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_observed_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_observed_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_observed_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_opened_on.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_opened_on.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_opened_on.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_opened_on.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_operated_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_operated_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_operated_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_operated_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_part_of.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_part_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_part_of.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_part_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_part_of_archive_series.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_part_of_archive_series.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_part_of_archive_series.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_part_of_archive_series.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_part_of_total.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_part_of_total.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_part_of_total.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_part_of_total.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_platform_of.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_platform_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_platform_of.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_platform_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_position.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_position.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_position.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_position.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_published.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_published.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_published.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_published.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_published_at.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_published_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_published_at.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_published_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_published_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_published_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_published_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_published_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/archive/is_or_was_recombined.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_recombined.yaml new file mode 100644 index 0000000000..7a29f942d5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_or_was_recombined.yaml @@ -0,0 +1,14 @@ +id: https://nde.nl/ontology/hc/slot/is_or_was_recombined +name: is_or_was_recombined +imports: + - linkml:types +slots: + is_or_was_recombined: + slot_uri: hc:isOrWasRecombined + range: boolean + description: 'Whether the name has been recombined from its original genus. + Indicated by parentheses around the authority in zoological nomenclature. + Example: "(Gray, 1821)" indicates original genus differs. + ' + annotations: + custodian_types: "['*']" diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_related_to.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_related_to.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_related_to.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_related_to.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_represented_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_represented_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_represented_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_represented_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_required.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_required.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_required.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_required.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_returned.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_returned.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_returned.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_returned.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_revision_of.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_revision_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_revision_of.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_revision_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_signed_at.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_signed_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_signed_at.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_signed_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_signed_on.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_signed_on.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_signed_on.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_signed_on.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_stored_at.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_stored_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_stored_at.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_stored_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_sub_collection_of.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_sub_collection_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_sub_collection_of.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_sub_collection_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_suborganization_of.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_suborganization_of.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_suborganization_of.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_suborganization_of.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_superseded_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_superseded_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_superseded_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_superseded_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_targeted_at.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_targeted_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_targeted_at.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_targeted_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_tax_deductible.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_tax_deductible.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_tax_deductible.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_tax_deductible.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_temporarily_located_at.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_temporarily_located_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_temporarily_located_at.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_temporarily_located_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_threatened_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_threatened_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_threatened_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_threatened_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_transferred.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_transferred.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_transferred.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_transferred.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_transferred_to.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_transferred_to.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_transferred_to.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_transferred_to.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_triggered_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_triggered_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_triggered_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_triggered_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_used_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_used_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_used_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_used_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_used_in.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_used_in.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_used_in.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_used_in.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_verified_by.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_verified_by.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_verified_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_verified_by.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_visible_in.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_visible_in.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_visible_in.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_visible_in.yaml diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_webarchived_at.yaml b/schemas/20251121/linkml/modules/slots/archive/is_or_was_webarchived_at.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/is_or_was_webarchived_at.yaml rename to schemas/20251121/linkml/modules/slots/archive/is_or_was_webarchived_at.yaml diff --git a/schemas/20251121/linkml/modules/slots/archive/is_overlapping.yaml b/schemas/20251121/linkml/modules/slots/archive/is_overlapping.yaml new file mode 100644 index 0000000000..17a9635d64 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_overlapping.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/is_overlapping +name: is_overlapping_slot +title: Is Overlapping Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_overlapping: + description: 'Whether this segment overlaps with another speaker. + + + Overlapping speech occurs when multiple people speak simultaneously. + + ' + range: boolean + slot_uri: hc:isOverlapping + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isOverlapping diff --git a/schemas/20251121/linkml/modules/slots/archive/is_part_of_complex.yaml b/schemas/20251121/linkml/modules/slots/archive/is_part_of_complex.yaml new file mode 100644 index 0000000000..33de1df973 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_part_of_complex.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/is_part_of_complex +name: is_part_of_complex_slot +title: Is Part Of Complex Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_part_of_complex: + description: 'Whether this building is part of a larger complex/ensemble. + + + e.g., Abbey with multiple buildings, palace complex, castle grounds. + + ' + range: boolean + slot_uri: hc:isPartOfComplex + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isPartOfComplex diff --git a/schemas/20251121/linkml/modules/slots/archive/is_permanent.yaml b/schemas/20251121/linkml/modules/slots/archive/is_permanent.yaml new file mode 100644 index 0000000000..436fa643fb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_permanent.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/is_permanent +name: is_permanent_slot +title: is_permanent slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_permanent: + slot_uri: schema:duration + description: 'Whether this is a permanent exhibition space or temporary. + + + TRUE: Ongoing/permanent venue + + FALSE: Temporary/pop-up venue + + ' + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:duration diff --git a/schemas/20251121/linkml/modules/slots/archive/is_permitted.yaml b/schemas/20251121/linkml/modules/slots/archive/is_permitted.yaml new file mode 100644 index 0000000000..21bbc255c8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_permitted.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/is_permitted +name: is_permitted_slot +title: Is Permitted Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + is_permitted: + slot_uri: hc:is_permitted + range: boolean + description: 'Is Permitted for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:is_permitted diff --git a/schemas/20251121/linkml/modules/slots/archive/is_primary_digital_presence.yaml b/schemas/20251121/linkml/modules/slots/archive/is_primary_digital_presence.yaml new file mode 100644 index 0000000000..cea713bac0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_primary_digital_presence.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/is_primary_digital_presence +name: is_primary_digital_presence_slot +title: Is Primary Digital Presence Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_primary_digital_presence: + description: "**CURRENT** status indicating whether this social media profile is the \ncustodian's PRIMARY or ONLY digital presence.\n\n**IMPORTANT**: This is a CONVENIENCE field representing the CURRENT status.\nFor temporal history and provenance, use `primary_presence_assertions`.\n\n**Decision Logic**:\n\n- **true**: Social media IS the main way this custodian profiles itself online\n - Custodian has no formal website (digital_platform is null)\n - OR social media reaches significantly more audience than website\n - Example: Local heritage society with Facebook as only presence\n\n- **false** (default): Social media SUPPORTS other digital presence\n - Custodian has a main website (DigitalPlatform)\n - Social media complements/promotes the website\n - Example: Museum Instagram supporting rijksmuseum.nl\n\n**Relationship to primary_presence_assertions**:\n\nThis boolean reflects the MOST RECENT assertion's value. The full \ntemporal history is maintained in `primary_presence_assertions`.\n\ + \nWhen assertions change, this field should be updated to match\nthe current valid assertion.\n\n**Impact on Linking**:\n\n- When true: SocialMediaProfile links directly to Custodian\n- When false: SocialMediaProfile links to DigitalPlatform/AuxiliaryDigitalPlatform\n" + range: boolean + slot_uri: hc:isPrimaryDigitalPresence + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isPrimaryDigitalPresence diff --git a/schemas/20251121/linkml/modules/slots/archive/is_public_facing.yaml b/schemas/20251121/linkml/modules/slots/archive/is_public_facing.yaml new file mode 100644 index 0000000000..49b52f19b9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_public_facing.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/is_public_facing +name: is_public_facing_slot +title: Is Public Facing Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_public_facing: + description: 'Whether this branch office serves the public directly. + + + TRUE: Public visitors, researchers, patrons can access + + FALSE: Staff-only administrative location + + + Note: Use AdministrativeOffice class for staff-only locations. + + ' + range: boolean + slot_uri: hc:isPublicFacing + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isPublicFacing diff --git a/schemas/20251121/linkml/modules/slots/archive/is_rebuilding.yaml b/schemas/20251121/linkml/modules/slots/archive/is_rebuilding.yaml new file mode 100644 index 0000000000..40db7f96f2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_rebuilding.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/is_rebuilding +name: is_rebuilding_slot +title: Is Rebuilding Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_rebuilding: + description: Whether institution is being rebuilt + range: boolean + slot_uri: hc:isRebuilding + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isRebuilding diff --git a/schemas/20251121/linkml/modules/slots/archive/is_recognized.yaml b/schemas/20251121/linkml/modules/slots/archive/is_recognized.yaml new file mode 100644 index 0000000000..dfa13dd9f0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_recognized.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/is_recognized +name: is_recognized_slot +title: Is Recognized Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_recognized: + description: Whether face was matched to known person + range: boolean + slot_uri: hc:isRecognized + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isRecognized diff --git a/schemas/20251121/linkml/modules/slots/archive/is_recurring.yaml b/schemas/20251121/linkml/modules/slots/archive/is_recurring.yaml new file mode 100644 index 0000000000..e7dee26846 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_recurring.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/is_recurring +name: is_recurring_slot +title: Is Recurring Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_recurring: + description: 'Whether this activity recurs on a regular schedule. + + + True for activities like annual inventory, quarterly condition checks. + + ' + range: boolean + slot_uri: hc:isRecurring + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isRecurring diff --git a/schemas/20251121/linkml/modules/slots/archive/is_sdh.yaml b/schemas/20251121/linkml/modules/slots/archive/is_sdh.yaml new file mode 100644 index 0000000000..1c6df2e493 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_sdh.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/is_sdh +name: is_sdh_slot +title: is_sdh slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_sdh: + description: 'Whether these are Subtitles for Deaf/Hard-of-Hearing (SDH). + + + SDH combines subtitle translation with CC-style annotations: + + - Dialogue translation (like subtitles) + + - Sound descriptions (like CC) + + - Speaker identification + + + Typically marked "[SDH]" on streaming platforms. + + ' + range: boolean + slot_uri: hc:isSdh + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isSdh diff --git a/schemas/20251121/linkml/modules/slots/archive/is_sub_guide.yaml b/schemas/20251121/linkml/modules/slots/archive/is_sub_guide.yaml new file mode 100644 index 0000000000..942b931bdf --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_sub_guide.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/is_sub_guide +name: is_sub_guide_slot +title: Is Sub Guide Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_sub_guide: + slot_uri: hc:isSubGuide + description: Whether this is a link to a sub-guide + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isSubGuide diff --git a/schemas/20251121/linkml/modules/slots/archive/is_temporary.yaml b/schemas/20251121/linkml/modules/slots/archive/is_temporary.yaml new file mode 100644 index 0000000000..a5ac6cca30 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_temporary.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/is_temporary +name: is_temporary_slot +title: Is Temporary Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_temporary: + slot_uri: hc:isTemporary + description: 'Whether this annex is temporary (will close when main room reopens). + + + Relevant for renovation/construction annexes. + + ' + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isTemporary diff --git a/schemas/20251121/linkml/modules/slots/archive/is_type_specimen.yaml b/schemas/20251121/linkml/modules/slots/archive/is_type_specimen.yaml new file mode 100644 index 0000000000..e87d547189 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_type_specimen.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/is_type_specimen +name: is_type_specimen_slot +title: Is Type Specimen Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_type_specimen: + description: 'Whether this is a nomenclatural type specimen. + + True if specimen has any type status (holotype, paratype, etc.) + + ' + range: boolean + slot_uri: hc:isTypeSpecimen + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isTypeSpecimen diff --git a/schemas/20251121/linkml/modules/slots/archive/is_verified.yaml b/schemas/20251121/linkml/modules/slots/archive/is_verified.yaml new file mode 100644 index 0000000000..dedc5d3900 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/is_verified.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/is_verified +name: is_verified_slot +title: Is Verified Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + is_verified: + slot_uri: hc:isVerified + description: 'Whether content has been verified by a human. + + + - **true**: Human-reviewed and approved + + - **false**: Not yet verified (default for AI-generated) + + + Critical for quality assurance in heritage contexts. + + ' + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:isVerified diff --git a/schemas/20251121/linkml/modules/slots/archive/isbn.yaml b/schemas/20251121/linkml/modules/slots/archive/isbn.yaml new file mode 100644 index 0000000000..2422ec416c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/isbn.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/isbn +name: isbn_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + isbn: + description: 'International Standard Book Number (ISBN) for publications. + + Accepts both ISBN-10 and ISBN-13 formats. + + ' + slot_uri: schema:isbn + range: string + pattern: ^(97[89])?[0-9]{9}[0-9X]$ + exact_mappings: + - schema:isbn + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/isbn_13.yaml b/schemas/20251121/linkml/modules/slots/archive/isbn_13.yaml new file mode 100644 index 0000000000..9a3e8490f6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/isbn_13.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/isbn_13 +name: isbn_13_slot +title: Isbn 13 Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + isbn_13: + description: 'ISBN-13 specifically. + + ' + range: string + slot_uri: bibo:isbn13 + annotations: + custodian_types: '["*"]' + exact_mappings: + - bibo:isbn13 diff --git a/schemas/20251121/linkml/modules/slots/archive/isil.yaml b/schemas/20251121/linkml/modules/slots/archive/isil.yaml new file mode 100644 index 0000000000..3a82f70f23 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/isil.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/isil +name: isil_slot +title: Isil Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + isil: + slot_uri: dcterms:identifier + description: International Standard Identifier for Libraries (ISO 15511) + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/iso_3166_2_code.yaml b/schemas/20251121/linkml/modules/slots/archive/iso_3166_2_code.yaml new file mode 100644 index 0000000000..42abd353a8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/iso_3166_2_code.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/iso_3166_2_code +name: iso_3166_2_code_slot +title: Iso 3166 2 Code Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + iso_3166_2_code: + description: "ISO 3166-2 subdivision code.\n\nFormat: {country_alpha2}-{subdivision_code}\n- First 2 letters: ISO 3166-1 alpha-2 country code\n- Hyphen separator\n- Subdivision code (1-3 alphanumeric characters, varies by country)\n\nExamples:\n- \"US-PA\": Pennsylvania (US state)\n- \"ID-BA\": Bali (Indonesian province)\n- \"DE-BY\": Bayern/Bavaria (German Land)\n- \"NL-LI\": Limburg (Dutch province)\n- \"CA-ON\": Ontario (Canadian province)\n- \"AU-NSW\": New South Wales (Australian state)\n- \"IN-KL\": Kerala (Indian state)\n- \"ES-AN\": Andaluc\xEDa/Andalusia (Spanish autonomous community)\n\nReference: https://en.wikipedia.org/wiki/ISO_3166-2\n" + range: string + pattern: ^[A-Z]{2}-[A-Z0-9]{1,3}$ + slot_uri: schema:addressRegion + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:addressRegion diff --git a/schemas/20251121/linkml/modules/slots/archive/iso_standard.yaml b/schemas/20251121/linkml/modules/slots/archive/iso_standard.yaml new file mode 100644 index 0000000000..6e02155ea8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/iso_standard.yaml @@ -0,0 +1,64 @@ +id: https://nde.nl/ontology/hc/slot/iso_standard +name: iso_standard_slot +title: ISO Standard Reference Slot +description: 'Slot for referencing ISO standards applicable to heritage preservation contexts. + + + Common preservation standards: + + - ISO 11799: Document storage requirements for archive and library materials + + - ISO 18911: Imaging materials - Processed safety photographic films - Storage practices + + - ISO 18934: Imaging materials - Multiple media archives - Storage environment + + - EN 16893: Conservation of cultural heritage - Specifications for location, construction and modification of buildings or rooms intended for the storage or use of heritage collections + + ' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + iso_standard: + description: 'Reference to applicable ISO or EN standard for this environmental zone type. + + + Format: Standard identifier (e.g., "ISO 11799", "ISO 18911", "EN 16893") + + + Common preservation standards: + + - ISO 11799: Document storage requirements + + - ISO 18911: Film storage practices + + - ISO 18934: Multiple media archives storage + + - EN 16893: Heritage collection storage buildings + + ' + range: string + slot_uri: dcterms:conformsTo + multivalued: true + examples: + - value: ISO 11799 + description: Document storage requirements standard + - value: ISO 18911 + description: Film storage practices standard + - value: EN 16893 + description: Heritage collection storage building specifications + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:conformsTo diff --git a/schemas/20251121/linkml/modules/slots/archive/iso_standard_reference.yaml b/schemas/20251121/linkml/modules/slots/archive/iso_standard_reference.yaml new file mode 100644 index 0000000000..6461419754 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/iso_standard_reference.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/iso_standard_reference +name: iso_standard_reference_slot +title: Iso Standard Reference Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + iso_standard_reference: + slot_uri: hc:iso_standard_reference + range: string + description: 'Iso Standard Reference for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:iso_standard_reference diff --git a/schemas/20251121/linkml/modules/slots/archive/issn.yaml b/schemas/20251121/linkml/modules/slots/archive/issn.yaml new file mode 100644 index 0000000000..f0a1d48542 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/issn.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/issn +name: issn_slot +title: Issn Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + issn: + description: 'International Standard Serial Number for periodicals. + + ' + range: string + slot_uri: bibo:issn + annotations: + custodian_types: '["*"]' + exact_mappings: + - bibo:issn diff --git a/schemas/20251121/linkml/modules/slots/archive/issued_call.yaml b/schemas/20251121/linkml/modules/slots/archive/issued_call.yaml new file mode 100644 index 0000000000..e64917f1ee --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/issued_call.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/issued_call +name: issued_call_slot +title: Issued Calls Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + issued_call: + slot_uri: schema:makesOffer + range: string # uriorcurie + multivalued: true + description: "Funding calls issued by this funding organisation.\n\nLinks FundingOrganisation to CallForApplication instances representing\nspecific funding opportunities.\n\n**Inverse of CallForApplication.issuing_organisation**:\n- FundingOrganisation \u2192 issued_calls \u2192 CallForApplication[]\n- CallForApplication \u2192 issuing_organisation \u2192 FundingOrganisation\n\nUses schema:makesOffer (FundingOrganisation makes funding offers via calls).\n" + examples: + - value: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 + description: Horizon Europe CL2 2025 heritage call + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:makesOffer diff --git a/schemas/20251121/linkml/modules/slots/archive/issuing_organisation.yaml b/schemas/20251121/linkml/modules/slots/archive/issuing_organisation.yaml new file mode 100644 index 0000000000..b09baf3ca3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/issuing_organisation.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/issuing_organisation +name: issuing_organisation_slot +title: Issuing Organisation Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + issuing_organisation: + range: string # uriorcurie + description: "The FundingOrganisation that issues this call.\n\nURI reference to EncompassingBody entity (FundingOrganisation subclass).\nFormat: https://nde.nl/ontology/hc/encompassing-body/funding/{slug}\n\n**Inverse of FundingOrganisation.issued_calls**:\n- FundingOrganisation \u2192 issued_calls \u2192 CallForApplication[]\n- CallForApplication \u2192 issuing_organisation \u2192 FundingOrganisation\n" + slot_uri: hc:issuingOrganisation + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:issuingOrganisation diff --git a/schemas/20251121/linkml/modules/slots/archive/item.yaml b/schemas/20251121/linkml/modules/slots/archive/item.yaml new file mode 100644 index 0000000000..2f3ca15a9f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/item.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/item +name: item +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + item: + slot_uri: rico:hasOrHadConstituent + description: "Individual ExhibitedObject items within this collection.\n\nRiC-O: hasOrHadConstituent for record-level items within a RecordSet.\n\nLinks to fully-modeled ExhibitedObject entities with:\n- Creator attribution\n- Medium and dimensions\n- Provenance information\n- Conservation history\n- Exhibition history\n\n**Relationship to ExhibitedObject.part_of_collection**:\nThis is the inverse relationship. Collection.items \u2192 ExhibitedObject[]\ncorresponds to ExhibitedObject.part_of_collection \u2192 Collection.\n\n**Use Cases**:\n- Museum: Individual artworks in a named collection\n- Archive: Individual documents/files in a fonds/series\n- Library: Individual rare books in a special collection\n\n**Note**: For large collections, items may be linked by reference (URI)\nrather than inlined, to avoid excessive file sizes.\n" + range: string # uriorcurie + # range: ExhibitedObject + multivalued: true + required: false + examples: + - value: https://nde.nl/ontology/hc/object/voc-charter-1602 + description: VOC founding charter + close_mappings: + - schema:itemListElement + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/item_returned.yaml b/schemas/20251121/linkml/modules/slots/archive/item_returned.yaml new file mode 100644 index 0000000000..e709483cea --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/item_returned.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/item_returned +name: item_returned_slot +title: Item Returned Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + item_returned: + description: "The item(s) being returned in a return event.\n\nLinks a ReturnEvent to the specific Item that was returned.\nMay be multivalued for loan returns involving multiple objects.\n\n**RELATIONSHIP TO LOAN**:\n- Loan.loaned_items \u2192 Items loaned out\n- ReturnEvent.item_returned \u2192 Items returned\n- Should match loaned_items for complete returns\n\n**Migration (2026-01-22)**:\nPart of condition_on_return \u2192 ReturnEvent migration per slot_fixes.yaml (Rule 53)\n" + range: string # uriorcurie + # range: Item + multivalued: true + inlined: false + slot_uri: hc:itemReturned + close_mappings: + - schema:object + examples: + - value: hc:object/mauritshuis-670 + description: Reference to returned painting + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/iucn_status.yaml b/schemas/20251121/linkml/modules/slots/archive/iucn_status.yaml new file mode 100644 index 0000000000..623247b5f5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/iucn_status.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/iucn_status +name: iucn_status_slot +title: Iucn Status Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + iucn_status: + description: 'IUCN Red List conservation status. + + + **Values**: EX (Extinct), EW (Extinct in Wild), CR (Critically Endangered), + + EN (Endangered), VU (Vulnerable), NT (Near Threatened), LC (Least Concern), + + DD (Data Deficient), NE (Not Evaluated) + + ' + range: string + slot_uri: hc:iucnStatus + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:iucnStatus diff --git a/schemas/20251121/linkml/modules/slots/archive/jurisdiction.yaml b/schemas/20251121/linkml/modules/slots/archive/jurisdiction.yaml new file mode 100644 index 0000000000..c919be6e3d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/jurisdiction.yaml @@ -0,0 +1,58 @@ +id: https://nde.nl/ontology/hc/slot/jurisdiction +name: jurisdiction +title: Jurisdiction Slot +prefixes: + gleif_base: https://www.gleif.org/ontology/Base/ + lcc_cr: https://www.omg.org/spec/LCC/Countries/CountryRepresentation/ + schema: http://schema.org/ + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +description: 'Legal/administrative jurisdiction where an entity operates or is registered. + + + Links to Jurisdiction class which captures: + + - National jurisdictions (e.g., Netherlands, Japan) + + - Subnational jurisdictions (e.g., Bavaria, Delaware) + + - Municipal jurisdictions (e.g., Hong Kong, City of London) + + - Supranational jurisdictions (e.g., European Union, OHADA) + + + GLEIF alignment: + + - gleif_base:hasLegalJurisdiction - jurisdiction of legal formation + + - gleif_base:hasCoverageArea - geographic scope of authority/register + + ' +slots: + jurisdiction: + slot_uri: gleif_base:hasCoverageArea + range: string # uriorcurie + required: false + multivalued: false + inlined: false # Fixed invalid inline for primitive type + description: "Legal/administrative jurisdiction where entity operates or is registered.\n\ngleif_base:hasCoverageArea - \"Indicates a geographic region in which \nsome service is provided, or to which some policy applies\"\n\nExamples:\n- Netherlands (national): KvK jurisdiction\n- Bavaria (subnational): Amtsgericht M\xFCnchen jurisdiction\n- European Union (supranational): SE registration jurisdiction\n" + exact_mappings: + - schema:areaServed + close_mappings: + - dcterms:spatial + annotations: + custodian_types: '["*"]' +comments: +- Maps to gleif_base:hasCoverageArea +- Jurisdictions are LEGAL boundaries, not just geographic +- Used for registration authorities, trade registers, and legal forms +- 'inlined: true allows jurisdiction to be specified as nested object' diff --git a/schemas/20251121/linkml/modules/slots/archive/jurisdiction_id.yaml b/schemas/20251121/linkml/modules/slots/archive/jurisdiction_id.yaml new file mode 100644 index 0000000000..185d49c24d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/jurisdiction_id.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/slot/jurisdiction_id +name: jurisdiction_id_slot +title: jurisdiction_id slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + jurisdiction_id: + description: 'Unique identifier for this jurisdiction. + + + Recommended format: ISO-based hierarchical identifier + + + Examples: + + - "NL" (Netherlands national) + + - "DE-BY" (Bavaria subnational) + + - "HK" (Hong Kong municipal/special region) + + - "EU" (European Union supranational) + + ' + range: string + slot_uri: schema:identifier + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/jurisdiction_level.yaml b/schemas/20251121/linkml/modules/slots/archive/jurisdiction_level.yaml new file mode 100644 index 0000000000..5dd29df7a6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/jurisdiction_level.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/jurisdiction_level +name: jurisdiction_level_slot +title: Jurisdiction Level Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + jurisdiction_level: + description: 'Level of court jurisdiction covered by this archive. + + Values: national, federal, state, regional, district, local, specialized + + ' + range: string + slot_uri: hc:jurisdictionLevel + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:jurisdictionLevel diff --git a/schemas/20251121/linkml/modules/slots/archive/jurisdiction_type.yaml b/schemas/20251121/linkml/modules/slots/archive/jurisdiction_type.yaml new file mode 100644 index 0000000000..b92b70c6e3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/jurisdiction_type.yaml @@ -0,0 +1,53 @@ +id: https://nde.nl/ontology/hc/slot/jurisdiction_type +name: jurisdiction_type_slot +title: jurisdiction_type slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/JurisdictionTypeEnum +default_prefix: hc +slots: + jurisdiction_type: + description: 'Classification of jurisdiction level. + + + Values: + + - NATIONAL: Country-level jurisdiction (most common) + + - SUBNATIONAL: State/province/region level + + - MUNICIPAL: City/municipality level + + - SUPRANATIONAL: Multi-country jurisdiction (EU, OHADA) + + + This determines which geographic slot is required: + + - NATIONAL: country required + + - SUBNATIONAL: country + subregion required + + - MUNICIPAL: country + settlement required (subregion optional) + + - SUPRANATIONAL: supranational_code required + + ' + range: string # uriorcurie + # range: JurisdictionTypeEnum + slot_uri: schema:additionalType + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:additionalType diff --git a/schemas/20251121/linkml/modules/slots/archive/justification.yaml b/schemas/20251121/linkml/modules/slots/archive/justification.yaml new file mode 100644 index 0000000000..28748b6576 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/justification.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/justification +name: justification_slot +imports: +- linkml:types +slots: + justification: + slot_uri: prov:qualifiedAttribution + range: string + description: 'Justification for entity resolution decisions. + + PROV-O: qualifiedAttribution for detailed provenance rationale. + + ' + close_mappings: + - prov:hadReason + related_mappings: + - skos:note + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/key_distinction.yaml b/schemas/20251121/linkml/modules/slots/archive/key_distinction.yaml new file mode 100644 index 0000000000..f8abd6b65f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/key_distinction.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/key_distinction +name: key_distinction-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + key_distinction: + slot_uri: skos:note + description: 'The primary distinguishing characteristic of this class. + + What sets it apart from similar or related types. + + + **Migrated from**: `**Key Distinction**:` and `**Key Distinctions from Other Types**:` sections. + + ' + range: string + annotations: + source_section: '**Key Distinction**:' + custodian_types: '["*"]' + exact_mappings: + - skos:note diff --git a/schemas/20251121/linkml/modules/slots/archive/keyframe_extraction.yaml b/schemas/20251121/linkml/modules/slots/archive/keyframe_extraction.yaml new file mode 100644 index 0000000000..abe79ec1a0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/keyframe_extraction.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/slot/keyframe_extraction +name: keyframe_extraction_slot +title: Keyframe Extraction Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + keyframe_extraction: + slot_uri: hc:keyframeExtraction + description: 'Whether keyframe extraction was used instead of uniform sampling. + + + **Keyframe extraction** selects visually distinct frames + + (scene changes, significant motion) rather than uniform intervals. + + + - true: Keyframes extracted (variable frame selection) + + - false: Uniform sampling at frame_sample_rate + + + Keyframe extraction is more efficient but may miss content + + between scene changes. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:keyframeExtraction diff --git a/schemas/20251121/linkml/modules/slots/archive/keyword.yaml b/schemas/20251121/linkml/modules/slots/archive/keyword.yaml new file mode 100644 index 0000000000..1eaeff69e9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/keyword.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/keyword +name: keyword_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + keyword: + slot_uri: schema:keywords + description: 'Keywords describing the project scope and topics. + + Used for discovery and classification. + + ' + range: string + multivalued: true + exact_mappings: + - schema:keywords + close_mappings: + - dcterms:subject + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/kien_registration_date.yaml b/schemas/20251121/linkml/modules/slots/archive/kien_registration_date.yaml new file mode 100644 index 0000000000..a975aeeaff --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/kien_registration_date.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/kien_registration_date +name: kien_registration_date_slot +title: Kien Registration Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + kien_registration_date: + description: 'Date when this heritage form was added to the Dutch National + + Inventory of Intangible Cultural Heritage (maintained by KIEN). + + ' + range: date + slot_uri: dcterms:created + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:created diff --git a/schemas/20251121/linkml/modules/slots/archive/kien_url.yaml b/schemas/20251121/linkml/modules/slots/archive/kien_url.yaml new file mode 100644 index 0000000000..539ecf5997 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/kien_url.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/kien_url +name: kien_url_slot +title: Kien Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + kien_url: + description: 'URL to the heritage form''s page on the KIEN website. + + Format: https://www.immaterieelerfgoed.nl/nl/{slug} + + ' + range: uri + slot_uri: schema:url + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:url diff --git a/schemas/20251121/linkml/modules/slots/archive/knowledge_transmission.yaml b/schemas/20251121/linkml/modules/slots/archive/knowledge_transmission.yaml new file mode 100644 index 0000000000..2406b32cca --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/knowledge_transmission.yaml @@ -0,0 +1,61 @@ +id: https://nde.nl/ontology/hc/slot/knowledge_transmission +name: knowledge_transmission_slot +title: Knowledge Transmission Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + knowledge_transmission: + description: 'How culinary/olfactory expertise is taught and passed to next generation. + + + Describes transmission mechanisms: + + - **Formal apprenticeship**: Structured training programs, certification + + - **Informal mentorship**: Master-apprentice relationships, family succession + + - **Demonstration programs**: Public cooking/brewing/perfume-making events + + - **Educational partnerships**: Collaboration with culinary schools, universities + + - **Documentation projects**: Video recording, oral history, recipe archiving + + - **Professional networks**: Guild memberships, trade associations, peer learning + + - **Intergenerational transfer**: Family recipes, succession within communities + + - **Embodied learning**: Learning by doing, sensory skill development + + + Knowledge transmission ensures heritage continuity. + + + Examples: + + - "Monastic apprenticeship, Direct demonstration, No written recipe publication" + + - "Apprentice perfumer program (3 years), Nose training, Formula access after 10 years" + + - "Family succession, Public cheese-making demos, Protected PDO training" + + - "Master distiller mentorship, Distillery tours, Whisky academy courses" + + ' + range: string + slot_uri: schema:educationalUse + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:educationalUse diff --git a/schemas/20251121/linkml/modules/slots/archive/label_de.yaml b/schemas/20251121/linkml/modules/slots/archive/label_de.yaml new file mode 100644 index 0000000000..96c4bdab72 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/label_de.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/label_de +name: label_de_slot +title: German Label Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + label_de: + slot_uri: skos:prefLabel + description: German language label for this class + range: string + annotations: + language: de + custodian_types: '["*"]' + exact_mappings: + - skos:prefLabel diff --git a/schemas/20251121/linkml/modules/slots/archive/label_es.yaml b/schemas/20251121/linkml/modules/slots/archive/label_es.yaml new file mode 100644 index 0000000000..2c237b9a20 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/label_es.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/label_es +name: label_es_slot +title: Spanish Label Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + label_es: + slot_uri: skos:prefLabel + description: Spanish language label for this class + range: string + annotations: + language: es + custodian_types: '["*"]' + exact_mappings: + - skos:prefLabel diff --git a/schemas/20251121/linkml/modules/slots/archive/label_fr.yaml b/schemas/20251121/linkml/modules/slots/archive/label_fr.yaml new file mode 100644 index 0000000000..3265500f19 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/label_fr.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/label_fr +name: label_fr_slot +title: French Label Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + label_fr: + slot_uri: skos:prefLabel + description: French language label for this class + range: string + annotations: + language: fr + custodian_types: '["*"]' + exact_mappings: + - skos:prefLabel diff --git a/schemas/20251121/linkml/modules/slots/archive/label_it.yaml b/schemas/20251121/linkml/modules/slots/archive/label_it.yaml new file mode 100644 index 0000000000..70b82c228f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/label_it.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/label_it +name: label_it_slot +title: Italian Label Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + label_it: + slot_uri: skos:prefLabel + description: Italian language label for this class + range: string + annotations: + language: it + custodian_types: '["*"]' + exact_mappings: + - skos:prefLabel diff --git a/schemas/20251121/linkml/modules/slots/archive/label_nl.yaml b/schemas/20251121/linkml/modules/slots/archive/label_nl.yaml new file mode 100644 index 0000000000..d946f19ee7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/label_nl.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/label_nl +name: label_nl_slot +title: Dutch Label Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + label_nl: + slot_uri: skos:prefLabel + description: Dutch language label for this class + range: string + annotations: + language: nl + custodian_types: '["*"]' + exact_mappings: + - skos:prefLabel diff --git a/schemas/20251121/linkml/modules/slots/archive/label_pt.yaml b/schemas/20251121/linkml/modules/slots/archive/label_pt.yaml new file mode 100644 index 0000000000..7b7ee50575 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/label_pt.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/label_pt +name: label_pt_slot +title: Portuguese Label Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + label_pt: + slot_uri: skos:prefLabel + description: Portuguese language label for this class + range: string + annotations: + language: pt + custodian_types: '["*"]' + exact_mappings: + - skos:prefLabel diff --git a/schemas/20251121/linkml/modules/slots/excludes_or_excluded.yaml b/schemas/20251121/linkml/modules/slots/archive/lacks_or_lacked.yaml similarity index 63% rename from schemas/20251121/linkml/modules/slots/excludes_or_excluded.yaml rename to schemas/20251121/linkml/modules/slots/archive/lacks_or_lacked.yaml index 6f7d1d4914..a1fa1af1f1 100644 --- a/schemas/20251121/linkml/modules/slots/excludes_or_excluded.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/lacks_or_lacked.yaml @@ -1,9 +1,9 @@ -id: https://nde.nl/ontology/hc/slot/excludes_or_excluded -name: excludes_or_excluded -title: Excludes Or Excluded -description: 'Items, materials, or entities explicitly excluded. +id: https://nde.nl/ontology/hc/slot/lacks_or_lacked +name: lacks_or_lacked +title: Lacks Or Lacked +description: 'Indicates that an entity lacks or lacked something (e.g. evidence). - MIGRATED from excluded_materials per slot_fixes.yaml (Rule 53).' + MIGRATED from evidence_gap per slot_fixes.yaml (Rule 53).' prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -19,8 +19,8 @@ imports: - linkml:types default_prefix: hc slots: - excludes_or_excluded: - description: Entities or materials explicitly excluded. + lacks_or_lacked: + description: Indicates absence of a quality, resource, or evidence. # range: Any multivalued: true # inlined: true # CANNOT inline string diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_location_of.yaml b/schemas/20251121/linkml/modules/slots/archive/landmark_confidence.yaml similarity index 53% rename from schemas/20251121/linkml/modules/slots/is_or_was_location_of.yaml rename to schemas/20251121/linkml/modules/slots/archive/landmark_confidence.yaml index 165f88dce1..88432d5fc5 100644 --- a/schemas/20251121/linkml/modules/slots/is_or_was_location_of.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/landmark_confidence.yaml @@ -1,12 +1,13 @@ -id: https://nde.nl/ontology/hc/slot/is_or_was_location_of -name: is_or_was_location_of_slot -title: Is Or Was Location Of Slot +id: https://nde.nl/ontology/hc/slot/landmark_confidence +name: landmark_confidence_slot +title: Landmark Confidence Slot prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# crm: http://www.cidoc-crm.org/cidoc-crm/ skos: http://www.w3.org/2004/02/skos/core# rdfs: http://www.w3.org/2000/01/rdf-schema# @@ -16,14 +17,15 @@ imports: - linkml:types default_prefix: hc slots: - is_or_was_location_of: - description: "Indicates that this place serves as the location for an entity (e.g., an organization or branch).\n\n**MIGRATED** from hosts_branch (Rule 53).\n\nInverse of is_or_was_located_at." - range: string - slot_uri: org:siteOf - annotations: - rico_naming_convention: Follows RiC-O "isOrWas" pattern for temporal predicates. - custodian_types: '["*"]' - exact_mappings: - - org:siteOf + landmark_confidence: + description: 'Detection confidence (0.0-1.0). + + **Ontology mapping**: Uses sosa:hasSimpleResult because landmark detection models act as sensors producing observation results.' + range: float + minimum_value: 0.0 + maximum_value: 1.0 + slot_uri: sosa:hasSimpleResult close_mappings: - - schema:location + - prov:value + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/landmark_geonames_id.yaml b/schemas/20251121/linkml/modules/slots/archive/landmark_geonames_id.yaml new file mode 100644 index 0000000000..2dc8bbd71a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/landmark_geonames_id.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/landmark_geonames_id +name: landmark_geonames_id_slot +title: Landmark Geonames Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + landmark_geonames_id: + description: GeoNames ID for location + range: string + slot_uri: hc:landmarkGeonamesId + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:landmarkGeonamesId diff --git a/schemas/20251121/linkml/modules/slots/archive/landmark_label.yaml b/schemas/20251121/linkml/modules/slots/archive/landmark_label.yaml new file mode 100644 index 0000000000..9596450709 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/landmark_label.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/landmark_label +name: landmark_label_slot +title: Landmark Label Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + landmark_label: + description: 'Landmark name as recognized by computer vision model. + + Ontology mapping: rdfs:label is the standard RDF property for human-readable labels. Used here for ML-detected landmark names.' + range: string + slot_uri: rdfs:label + close_mappings: + - schema:name + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/landmark_segment.yaml b/schemas/20251121/linkml/modules/slots/archive/landmark_segment.yaml new file mode 100644 index 0000000000..0f58619a4b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/landmark_segment.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/landmark_segment +name: landmark_segment_slot +title: Landmark Segment Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + landmark_segment: + description: Time segment when landmark is visible + range: string # uriorcurie + # range: VideoTimeSegment + slot_uri: hc:landmarkSegment + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:landmarkSegment diff --git a/schemas/20251121/linkml/modules/slots/archive/landmark_wikidata_id.yaml b/schemas/20251121/linkml/modules/slots/archive/landmark_wikidata_id.yaml new file mode 100644 index 0000000000..8b3e4243d2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/landmark_wikidata_id.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/landmark_wikidata_id +name: landmark_wikidata_id_slot +title: Landmark Wikidata Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + wdt: http://www.wikidata.org/prop/direct/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + landmark_wikidata_id: + description: Wikidata ID for landmark. Mapped to dcterms:identifier as a standard external identifier property. The value should be a Wikidata Q-number (e.g., Q12345). + range: string + slot_uri: dcterms:identifier + close_mappings: + - schema:identifier + - wdt:P625 + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/language.yaml b/schemas/20251121/linkml/modules/slots/archive/language.yaml new file mode 100644 index 0000000000..6a028dce50 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/language.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/language +name: language_slot +imports: +- linkml:types +slots: + language: + slot_uri: schema:inLanguage + range: string + description: 'Primary language of content on this profile. + + + Dublin Core: language for content language. + + + ISO 639-1 language code (e.g., "en", "nl", "de"). + + + Some institutions maintain separate profiles for different languages. + + ' + pattern: ^[a-z]{2}$ + exact_mappings: + - dcterms:language + - schema:inLanguage + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/language_code.yaml b/schemas/20251121/linkml/modules/slots/archive/language_code.yaml new file mode 100644 index 0000000000..2110354409 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/language_code.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/language_code +name: language_code_slot +title: language_code slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dct: http://purl.org/dc/terms/ + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + language_code: + description: 'ISO 639-1 two-letter language code. + + Derived from language_name lookup. + + ' + slot_uri: dct:language + range: string + pattern: ^[a-z]{2}$ + broad_mappings: + - dct:identifier + examples: + - value: en + description: English + - value: nl + description: Dutch + - value: fr + description: French + annotations: + custodian_types: '["*"]' + exact_mappings: + - dct:language diff --git a/schemas/20251121/linkml/modules/slots/archive/language_name.yaml b/schemas/20251121/linkml/modules/slots/archive/language_name.yaml new file mode 100644 index 0000000000..45c4ef9ebf --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/language_name.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/language_name +name: language_name_slot +title: language_name slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + language_name: + description: 'Language name (parsed from raw string). + + ' + slot_uri: schema:name + range: string + examples: + - value: English + - value: Dutch + - value: French + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:name diff --git a/schemas/20251121/linkml/modules/slots/archive/language_raw.yaml b/schemas/20251121/linkml/modules/slots/archive/language_raw.yaml new file mode 100644 index 0000000000..e12c2955b4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/language_raw.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/language_raw +name: language_raw_slot +title: language_raw slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + language_raw: + description: 'Raw language string as extracted from LinkedIn. + + Format: "Language - Proficiency level" + + Preserved for provenance. + + ' + slot_uri: schema:description + range: string + examples: + - value: English - Native or bilingual + description: Native English speaker + - value: Dutch - Professional working proficiency + description: Professional Dutch + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:description diff --git a/schemas/20251121/linkml/modules/slots/archive/languages_detected.yaml b/schemas/20251121/linkml/modules/slots/archive/languages_detected.yaml new file mode 100644 index 0000000000..d7fec363ee --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/languages_detected.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/languages_detected +name: languages_detected_slot +title: Languages Detected Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + languages_detected: + description: 'All languages detected in speech (ISO 639-1 codes). + + + Heritage content often includes multiple languages: + + - Exhibition videos with translations + + - Interviews with multilingual speakers + + - Historical content with period languages + + + Ordered by speaking time (most spoken first). + + ' + range: string + multivalued: true + slot_uri: hc:languagesDetected + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:languagesDetected diff --git a/schemas/20251121/linkml/modules/slots/archive/languages_raw.yaml b/schemas/20251121/linkml/modules/slots/archive/languages_raw.yaml new file mode 100644 index 0000000000..92ad23a959 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/languages_raw.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/languages_raw +name: languages_raw_slot +title: Languages Raw Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + languages_raw: + description: 'Raw language strings as extracted from LinkedIn. + + Format: "Language - Proficiency level" + + Use this when storing unprocessed data. + + ' + range: string + multivalued: true + slot_uri: hc:languagesRaw + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:languagesRaw diff --git a/schemas/20251121/linkml/modules/slots/archive/last_modified.yaml b/schemas/20251121/linkml/modules/slots/archive/last_modified.yaml new file mode 100644 index 0000000000..6ef9121984 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/last_modified.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/last_modified +name: last_modified_slot +title: Last Modified Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + last_modified: + range: datetime + description: Last-Modified header value from HTTP response + slot_uri: hc:lastModified + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:lastModified diff --git a/schemas/20251121/linkml/modules/slots/archive/latency_ms.yaml b/schemas/20251121/linkml/modules/slots/archive/latency_ms.yaml new file mode 100644 index 0000000000..f830a9f56a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/latency_ms.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/latency_ms +name: latency_ms_slot +title: latency_ms slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + latency_ms: + description: 'Response latency in milliseconds (time from request to response). + + Measured client-side (includes network time). + + ' + slot_uri: schema:duration + range: integer + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:duration diff --git a/schemas/20251121/linkml/modules/slots/archive/latitude.yaml b/schemas/20251121/linkml/modules/slots/archive/latitude.yaml new file mode 100644 index 0000000000..716c53d7c5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/latitude.yaml @@ -0,0 +1,49 @@ +id: https://nde.nl/ontology/hc/slot/latitude +name: latitude_slot +title: Latitude Slot +description: 'Geographic latitude coordinate in WGS84 decimal degrees. + + + Format: Decimal degrees (e.g., 52.3600 for Amsterdam) + + Range: -90.0 to +90.0 + + + Positive values = North of equator + + Negative values = South of equator + + ' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + wgs84: http://www.w3.org/2003/01/geo/wgs84_pos# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + latitude: + slot_uri: wgs84:lat + range: float + required: false + description: 'Geographic latitude (WGS84 coordinate). + + + Schema.org: latitude for geographic positioning. + + ' + exact_mappings: + - schema:latitude + - wgs84:lat + annotations: + custodian_types: '["*"]' +comments: +- WGS84 datum (standard GPS coordinate system) +- 'Example: 52.3600 (Amsterdam), 40.7128 (New York), -33.8688 (Sydney)' diff --git a/schemas/20251121/linkml/modules/slots/archive/launch_date.yaml b/schemas/20251121/linkml/modules/slots/archive/launch_date.yaml new file mode 100644 index 0000000000..cd90d26c37 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/launch_date.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/launch_date +name: launch_date_slot +title: Launch Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + launch_date: + range: date + description: 'Date the portal was originally launched. + + ' + slot_uri: dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:date diff --git a/schemas/20251121/linkml/modules/slots/archive/lease_expiry.yaml b/schemas/20251121/linkml/modules/slots/archive/lease_expiry.yaml new file mode 100644 index 0000000000..272ef115c8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/lease_expiry.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/lease_expiry +name: lease_expiry_slot +title: Lease Expiry Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + lease_expiry: + slot_uri: schema:validThrough + description: 'Expiry date of lease agreement, if applicable. + + + Schema.org: validThrough for temporal validity. + + + Only relevant if is_leased is TRUE. + + ' + range: date + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:validThrough diff --git a/schemas/20251121/linkml/modules/slots/archive/legacy_planning.yaml b/schemas/20251121/linkml/modules/slots/archive/legacy_planning.yaml new file mode 100644 index 0000000000..42305383c4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/legacy_planning.yaml @@ -0,0 +1,15 @@ +id: https://nde.nl/ontology/hc/slot/legacy_planning +name: legacy_planning +title: Legacy Planning +description: Planning for legacy. +imports: +- linkml:types +slots: + legacy_planning: + slot_uri: schema:featureList + range: boolean + multivalued: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:featureList diff --git a/schemas/20251121/linkml/modules/slots/archive/legal_basis.yaml b/schemas/20251121/linkml/modules/slots/archive/legal_basis.yaml new file mode 100644 index 0000000000..6865bc0264 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/legal_basis.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/legal_basis +name: legal_basis_slot +title: Legal Basis Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + legal_basis: + description: 'Legal basis for access restriction. + + + PREMIS: statute for legal foundation. + + ' + range: string + slot_uri: hc:legalBasis + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:legalBasis diff --git a/schemas/20251121/linkml/modules/slots/archive/legal_entity_type.yaml b/schemas/20251121/linkml/modules/slots/archive/legal_entity_type.yaml new file mode 100644 index 0000000000..4e1bc08152 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/legal_entity_type.yaml @@ -0,0 +1,52 @@ +id: https://nde.nl/ontology/hc/slot/legal_entity_type +name: legal_entity_type-slot +imports: +- linkml:types +slots: + legal_entity_type: + description: 'High-level legal entity classification distinguishing between natural persons + + and legal persons (organizations). + + + Links to LegalEntityType class which provides two top-level categories: + + - PERSON: Natural person (individual with legal rights) + + - ORGANIZATION: Legal person (all organizational forms including corporations, governments) + + + This replaces the deprecated entity_type enum which incorrectly mixed + + informal groups with formal legal entities. + + ' + slot_uri: org:classification + range: string # uriorcurie + # range: LegalEntityType + required: true + comments: + - Natural persons cannot have legal forms (individuals are not 'incorporated') + - Legal persons (organizations) must have legal forms (ISO 20275 codes) + - Informal groups without legal status are NOT CustodianLegalStatuss + - This is the fundamental legal distinction in most jurisdictions + exact_mappings: + - org:classification + close_mappings: + - schema:additionalType + - tooi:organisatievorm + broad_mappings: + - dcterms:type + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/legal_form.yaml b/schemas/20251121/linkml/modules/slots/archive/legal_form.yaml new file mode 100644 index 0000000000..3d8be65676 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/legal_form.yaml @@ -0,0 +1,57 @@ +id: https://nde.nl/ontology/hc/slot/legal_form +name: legal_form_slot +imports: +- linkml:types +slots: + legal_form: + slot_uri: rov:orgType + range: string # uriorcurie + # range: LegalForm + description: 'Specific legal form based on ISO 20275 Entity Legal Forms (ELF) codes. + + Links to LegalForm class with jurisdiction-specific legal form details. + + + ROV: orgType for legal form classification. + + W3C Org: classification links to gleif_elf:EntityLegalForm SKOS Concept. + + + Required for ORGANIZATION entities, not applicable for PERSON. + + Values MUST be valid ELF codes from /data/ontology/2023-09-28-elf-code-list-v1.5.csv. + + ' + exact_mappings: + - rov:orgType + - gleif:hasLegalForm + close_mappings: + - org:classification + - tooi:rechtsvorm + comments: + - 'Source standard: ISO 20275 Entity Legal Forms' + - 1,600+ legal forms across 150+ jurisdictions + - 'Dutch example: ELF code ''8888'' = Stichting (foundation)' + - Now uses structured LegalForm class instead of simple string pattern + examples: + - value: + elf_code: '8888' + country_code: NL + local_name: Stichting + abbreviation: St. + description: Dutch foundation (Rijksmuseum) + related_mappings: + - schema:legalForm + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/legal_jurisdiction.yaml b/schemas/20251121/linkml/modules/slots/archive/legal_jurisdiction.yaml new file mode 100644 index 0000000000..975b1893d4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/legal_jurisdiction.yaml @@ -0,0 +1,50 @@ +id: https://nde.nl/ontology/hc/slot/legal_jurisdiction +name: legal_jurisdiction +title: Legal Jurisdiction Slot +prefixes: + gleif_base: https://www.gleif.org/ontology/Base/ + schema: http://schema.org/ + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +description: "Jurisdiction of legal formation and registration.\n\nLinks to Jurisdiction class.\n\ngleif_base:hasLegalJurisdiction - \"The jurisdiction of legal formation \nand registration of the entity\"\n\nFor most entities, this is the country. For federal systems (USA, Germany),\nthis may be a state/region.\n" +slots: + legal_jurisdiction: + slot_uri: gleif_base:hasLegalJurisdiction + range: string # uriorcurie + # range: Jurisdiction + required: false + multivalued: false + description: 'Legal jurisdiction where this umbrella organization has authority. + + + Required for UmbrellaOrganisation because legal parent-child relationships + + are defined by law within specific jurisdictions. + + + **Examples:** + + - Ministry of OCW: jurisdiction_type=NATIONAL, country=NL + + - Bavarian State Ministry: jurisdiction_type=SUBNATIONAL, subregion=DE-BY + + - University of Amsterdam: jurisdiction_type=NATIONAL, country=NL + + ' + exact_mappings: + - schema:areaServed + annotations: + custodian_types: '["*"]' +comments: +- Maps to gleif_base:hasLegalJurisdiction +- Jurisdictions are LEGAL boundaries, not just geographic +- For federal systems, may be state/region level diff --git a/schemas/20251121/linkml/modules/slots/archive/legal_name.yaml b/schemas/20251121/linkml/modules/slots/archive/legal_name.yaml new file mode 100644 index 0000000000..2ffea0caac --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/legal_name.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/legal_name +name: legal_name_slot +imports: +- linkml:types +slots: + legal_name: + slot_uri: rov:legalName + range: string # uriorcurie + # range: LegalName + description: "Official legal name as registered in legal documents (KvK, company registry, etc.).\nLinks to LegalName class with structured name variants (TOOI pattern).\nThis is DISTINCT from hc:CustodianName (emic operational name).\nExample: LegalName{full_name: \"Stichting Rijksmuseum\", name_without_type: \"Rijksmuseum\"} (legal) \nvs CustodianName{emic_name: \"Rijksmuseum\"} (emic operational).\n" + required: true + notes: + - 'Legal name appears in: statutes, KvK registry, tax documents, legal contracts' + - 'Emic operational name appears in: website, signage, marketing, public communications' + - These may differ significantly! + - Now uses structured LegalName class instead of simple string + exact_mappings: + - schema:legalName + broad_mappings: + - rdfs:label + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/legal_note.yaml b/schemas/20251121/linkml/modules/slots/archive/legal_note.yaml new file mode 100644 index 0000000000..b70cb9964c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/legal_note.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/legal_note +name: legal_note +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + legal_note: + slot_uri: schema:legislationIdentifier + description: Notes about legal considerations or regulatory requirements. + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:legislationIdentifier diff --git a/schemas/20251121/linkml/modules/slots/archive/legal_provenance_note.yaml b/schemas/20251121/linkml/modules/slots/archive/legal_provenance_note.yaml new file mode 100644 index 0000000000..d7471d120d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/legal_provenance_note.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/legal_provenance_note +name: legal_provenance_note_slot +title: Legal Provenance Notes Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + legal_provenance_note: + description: 'Notes on legal status and provenance for conservation-sensitive specimens. Document pre-CITES collection, permits, legal transfers. + + Maps to skos:note for legal documentation notes.' + range: string + slot_uri: skos:note + close_mappings: + - dcterms:description + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/legal_responsibility_basis.yaml b/schemas/20251121/linkml/modules/slots/archive/legal_responsibility_basis.yaml new file mode 100644 index 0000000000..9fbad3a116 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/legal_responsibility_basis.yaml @@ -0,0 +1,69 @@ +id: https://nde.nl/ontology/hc/slot/legal_responsibility_basis +name: legal_responsibility_basis_slot +title: legal_responsibility_basis Slot +prefixes: + linkml: https://w3id.org/linkml/ + dcterms: http://purl.org/dc/terms/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +- ../metadata +slots: + legal_responsibility_basis: + slot_uri: dcterms:conformsTo + range: string + required: true + description: 'Legal basis establishing the organization''s responsibility for this collection. + + + Documents the statutory, regulatory, or contractual foundation for legal accountability. + + + **Examples**: + + - "Archiefwet 1995 (Dutch Archives Act)" + + - "Erfgoedwet (Heritage Act) + Foundation statute" + + - "Municipal charter Article 5.2: Archive custody responsibilities" + + - "Donation deed dated 1923-05-15: Wallace Collection trust agreement" + + - "UNESCO Convention on Intangible Cultural Heritage (2003)" + + + **Use Cases**: + + 1. **Statutory Responsibility**: Government archives legally mandated by law + + 2. **Contractual Responsibility**: Museum collections held under trust agreements + + 3. **Regulatory Responsibility**: University archives required by accreditation + + 4. **International Responsibility**: UNESCO World Heritage site management obligations + + + **Related Properties**: + + - legal_responsibility_basis: WHAT establishes responsibility? (statute, contract, regulation) + + - responsible_legal_entity: WHO is responsible? (legal entity) + + - valid_from/valid_to: WHEN is responsibility valid? (temporal extent) + + ' + examples: + - value: 'Archiefwet 1995, Article 41: Provincial archives shall preserve government records' + description: Statutory basis for provincial archive responsibility + close_mappings: + - dcterms:rights + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/legal_responsibility_end_date.yaml b/schemas/20251121/linkml/modules/slots/archive/legal_responsibility_end_date.yaml new file mode 100644 index 0000000000..ce22d64664 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/legal_responsibility_end_date.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/legal_responsibility_end_date +name: legal_responsibility_end_date_slot +title: legal_responsibility_end_date Slot +prefixes: + linkml: https://w3id.org/linkml/ + prov: http://www.w3.org/ns/prov# + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +- ../metadata +slots: + legal_responsibility_end_date: + slot_uri: prov:invalidatedAtTime + range: date + required: false + description: "Date when legal responsibility for this collection ended (if applicable).\n\n**Scenarios**:\n- **Custody Transfer**: Responsibility transferred to another legal entity\n- **Collection Deaccessioned**: Collection sold, destroyed, or dispersed\n- **Entity Dissolution**: Responsible entity dissolved (responsibility must transfer)\n- **Statutory Change**: Law changed, responsibility removed or transferred\n\n**Requirements**:\n- If legal_responsibility_end_date is set, MUST document transfer in custody_history\n- If responsible_legal_entity dissolved, MUST set end date <= dissolution_date\n\n**Relation to valid_to**:\n- `valid_to`: When collection CEASED TO EXIST as heritage materials\n- `legal_responsibility_end_date`: When LEGAL ACCOUNTABILITY ended\n\nExample:\n```yaml\nvalid_to: null # Collection still exists\nlegal_responsibility_end_date: \"2001-01-01\" # But responsibility transferred\n\ncustody_history:\n - transfer_date: \"2001-01-01\"\ + \n from_entity: \".../legal/haarlem-municipality\"\n to_entity: \".../legal/nha-organization\"\n transfer_reason: \"Merger of Gemeentearchief into NHA\"\n```\n" + examples: + - value: '2001-01-01' + description: Legal responsibility ended when collection transferred to NHA + broad_mappings: + - dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:invalidatedAtTime diff --git a/schemas/20251121/linkml/modules/slots/archive/legal_responsibility_start_date.yaml b/schemas/20251121/linkml/modules/slots/archive/legal_responsibility_start_date.yaml new file mode 100644 index 0000000000..d3b64b615b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/legal_responsibility_start_date.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/legal_responsibility_start_date +name: legal_responsibility_start_date_slot +title: legal_responsibility_start_date Slot +prefixes: + linkml: https://w3id.org/linkml/ + prov: http://www.w3.org/ns/prov# + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +- ../metadata +slots: + legal_responsibility_start_date: + slot_uri: prov:generatedAtTime + range: date + required: false + description: "Date when legal responsibility for this collection began.\n\nMay differ from collection.valid_from (when collection itself was created).\n\n**Scenarios**:\n- **Founding Collection**: Start date = collection creation date\n - Example: National archive founded 1802, collection starts 1802\n\n- **Custody Transfer**: Start date = transfer date (\u2260 collection creation)\n - Example: Collection created 1600s, legal responsibility transferred to NHA in 2001\n\n- **Statutory Change**: Start date = law effective date\n - Example: New law in 2010 assigns responsibility for existing 1800s collection\n\n**Relation to valid_from**:\n- `valid_from`: When collection EXISTED as heritage materials\n- `legal_responsibility_start_date`: When LEGAL ACCOUNTABILITY began\n\nThese may be different! Example:\n```yaml\ntemporal_coverage: \"1600-01-01/1800-12-31\" # Materials date from 17th-18th centuries\nvalid_from: \"1910-01-01\" # Formally accessioned as collection\ + \ in 1910\nlegal_responsibility_start_date: \"2001-01-01\" # Legal responsibility transferred in 2001\n```\n" + examples: + - value: '2001-01-01' + description: Legal responsibility transferred when NHA formed from merger + broad_mappings: + - dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:generatedAtTime diff --git a/schemas/20251121/linkml/modules/slots/archive/legal_status.yaml b/schemas/20251121/linkml/modules/slots/archive/legal_status.yaml new file mode 100644 index 0000000000..add85944e2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/legal_status.yaml @@ -0,0 +1,57 @@ +id: https://nde.nl/ontology/hc/slot/legal_status +name: legal_status_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + gleif: https://www.gleif.org/ontology/Base/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +- ../metadata +slots: + legal_status: + slot_uri: hc:hasLegalStatus + description: 'The formal legal entity representing this custodian. + + + Links to CustodianLegalStatus with: + + - Legal name (as registered) + + - Legal form (ISO 20275 codes) + + - Registration number (KvK, company number, etc.) + + + May be null if legal status not yet reconstructed or if custodian + + has no formal legal registration (informal groups, individuals). + + + W3C Org: hasRegisteredOrganization for registered legal entity. + + Note: slot_uri changed from gleif:hasLegalForm to hc:hasLegalStatus to resolve OWL ambiguous type warning. gleif:hasLegalForm may have different range expectations in the GLEIF ontology. + + **Range**: `Any` (2026-01-16) - Allows class instances. Classes narrow this to CustodianLegalStatus via slot_usage. + + ' + range: string # uriorcurie + # range: CustodianLegalStatus + required: false + exact_mappings: + - gleif:hasLegalForm + close_mappings: + - schema:legalName + - org:classification + broad_mappings: + - adms:status + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/legal_system_type.yaml b/schemas/20251121/linkml/modules/slots/archive/legal_system_type.yaml new file mode 100644 index 0000000000..49adf420d2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/legal_system_type.yaml @@ -0,0 +1,47 @@ +id: https://nde.nl/ontology/hc/slot/legal_system_type +name: legal_system_type_slot +title: legal_system_type slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/LegalSystemTypeEnum +default_prefix: hc +slots: + legal_system_type: + description: 'Type of legal system in this jurisdiction. + + + Values: + + - CIVIL_LAW: Continental European tradition (Germany, Netherlands, Japan) + + - COMMON_LAW: English tradition (UK, USA, Australia) + + - MIXED: Combination (South Africa, Louisiana, Quebec) + + - RELIGIOUS: Based on religious law (some Middle Eastern jurisdictions) + + - CUSTOMARY: Based on local custom + + + This affects which legal forms are available and how entities are registered. + + ' + range: string # uriorcurie + # range: LegalSystemTypeEnum + slot_uri: schema:category + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:category diff --git a/schemas/20251121/linkml/modules/slots/archive/lender.yaml b/schemas/20251121/linkml/modules/slots/archive/lender.yaml new file mode 100644 index 0000000000..886c5b7deb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/lender.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/lender +name: lender_slot +title: Lender Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + lender: + description: 'Institution lending the object(s). + + + CIDOC-CRM: P28_custody_surrendered_by - "identifies the E39 Actor who + + surrenders custody of an object." + + ' + range: string # uriorcurie + slot_uri: crm:P28_custody_surrendered_by + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P28_custody_surrendered_by diff --git a/schemas/20251121/linkml/modules/slots/archive/lender_contact.yaml b/schemas/20251121/linkml/modules/slots/archive/lender_contact.yaml new file mode 100644 index 0000000000..ca2316dc2f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/lender_contact.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/lender_contact +name: lender_contact_slot +title: Lender Contact Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + lender_contact: + description: 'Contact person at lending institution for this loan. + + ' + range: string + slot_uri: schema:contactPoint + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:contactPoint diff --git a/schemas/20251121/linkml/modules/slots/archive/lending_policy.yaml b/schemas/20251121/linkml/modules/slots/archive/lending_policy.yaml new file mode 100644 index 0000000000..0ca1593df9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/lending_policy.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/lending_policy +name: lending_policy_slot +title: Lending Policy Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + lending_policy: + slot_uri: dcterms:accessRights + description: 'The circulation policy for library materials. + + Values: open (public lending), restricted (limited access), reference-only (on-site use only), + + digital-only (online access), membership-required (must join to borrow). + + ' + range: string + required: false + examples: + - value: open + description: Public lending library with borrowing privileges + - value: reference-only + description: Research library, materials must be used on-site + - value: membership-required + description: Must join library to borrow materials + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:accessRights diff --git a/schemas/20251121/linkml/modules/slots/archive/level_value.yaml b/schemas/20251121/linkml/modules/slots/archive/level_value.yaml new file mode 100644 index 0000000000..911f8c4e29 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/level_value.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/level_value +name: level_value_slot +title: Level Value Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + level_value: + description: 'The value of a level (certainty, confidence, severity, arrangement, etc.). + + For certainty levels, standard values are: - CERTAIN: Documentary evidence confirms - PROBABLE: Strong circumstantial evidence - POSSIBLE: Reasonable inference - UNCERTAIN: Speculative/unverified + + Class-specific slot_usage should document applicable values.' + range: string + slot_uri: rdf:value + annotations: + specificity_score: 0.25 + specificity_rationale: Generic value slot applicable to various level types. + custodian_types: '["*"]' + custodian_types_rationale: Level values are universal concepts applicable to all custodian types. + exact_mappings: + - rdf:value diff --git a/schemas/20251121/linkml/modules/slots/archive/library_catalog_url.yaml b/schemas/20251121/linkml/modules/slots/archive/library_catalog_url.yaml new file mode 100644 index 0000000000..1d6a6c0d0c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/library_catalog_url.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/library_catalog_url +name: library_catalog_url_slot +title: Library Catalog Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + library_catalog_url: + description: 'URL to library catalog record (WorldCat, institutional catalogs). + + ' + range: uri + multivalued: true + slot_uri: rdfs:seeAlso + annotations: + custodian_types: '["*"]' + exact_mappings: + - rdfs:seeAlso diff --git a/schemas/20251121/linkml/modules/slots/archive/library_search_score.yaml b/schemas/20251121/linkml/modules/slots/archive/library_search_score.yaml new file mode 100644 index 0000000000..9881f99355 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/library_search_score.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/library_search_score +name: library_search_score_slot +title: Library Search Score Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + library_search_score: + slot_uri: sosa:hasSimpleResult + range: float + minimum_value: 0.0 + maximum_value: 1.0 + description: 'Specificity score for library and bibliographic queries. + + **Ontology mapping**: Uses sosa:hasSimpleResult because this is a computed relevance score from search/retrieval algorithms acting as observation systems.' + close_mappings: + - prov:value + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/library_subtype.yaml b/schemas/20251121/linkml/modules/slots/archive/library_subtype.yaml new file mode 100644 index 0000000000..9e349b2ee3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/library_subtype.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/library_subtype +name: library_subtype_slot +title: Library Subtype Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/LibraryTypeEnum +default_prefix: hc +slots: + library_subtype: + slot_uri: skos:narrower + description: 'Specific subtype from the LibraryTypeEnum taxonomy (61 library types). + + Each value links to a Wikidata entity describing a specific type. + + ' + range: string # uriorcurie + # range: LibraryTypeEnum + required: false + multivalued: true + comments: + - Values extracted from Wikidata hyponyms + - Each value has a wikidata:QID meaning for Linked Open Data + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:narrower diff --git a/schemas/20251121/linkml/modules/slots/archive/license.yaml b/schemas/20251121/linkml/modules/slots/archive/license.yaml new file mode 100644 index 0000000000..77d4ab7235 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/license.yaml @@ -0,0 +1,46 @@ +id: https://nde.nl/ontology/hc/slot/license +name: license_slot +title: License Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + license: + description: 'Software license for this CMS. + + + DOAP: license for software license information. + + + Use SPDX identifiers when possible: + + - GPL-3.0: GNU General Public License v3 + + - MIT: MIT License + + - Apache-2.0: Apache License 2.0 + + - BSD-3-Clause: BSD 3-Clause + + - ECL-2.0: Educational Community License + + - Proprietary: Commercial/proprietary license + + ' + range: string + slot_uri: dcterms:license + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:license diff --git a/schemas/20251121/linkml/modules/slots/archive/life_stage.yaml b/schemas/20251121/linkml/modules/slots/archive/life_stage.yaml new file mode 100644 index 0000000000..e0056296a0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/life_stage.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/life_stage +name: life_stage_slot +title: Life Stage Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + life_stage: + description: 'Life stage of the organism when collected/preserved. + + + **Values vary by taxon**: + + - Vertebrates: ADULT, JUVENILE, SUBADULT, NEONATE + + - Insects: ADULT, LARVA, PUPA, NYMPH, EGG + + - Plants: FLOWERING, FRUITING, VEGETATIVE, SEED + + ' + range: string + slot_uri: dwc:lifeStage + annotations: + custodian_types: '["*"]' + exact_mappings: + - dwc:lifeStage diff --git a/schemas/20251121/linkml/modules/slots/archive/lifecycle_phase_type.yaml b/schemas/20251121/linkml/modules/slots/archive/lifecycle_phase_type.yaml new file mode 100644 index 0000000000..c13d02e6b1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/lifecycle_phase_type.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/lifecycle_phase_type +name: lifecycle_phase_type_slot +title: Lifecycle Phase Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + lifecycle_phase_type: + slot_uri: skos:broaderTransitive + description: "Links this CustodianArchive INSTANCE to its lifecycle phase TYPE.\n\n**SKOS**: skos:broaderTransitive for instance-to-type relationship.\n\n**Archive Lifecycle Types (Wikidata)**:\n- Q3621648 (CurrentArchive) - Active records phase\n- Q244904 (DepositArchive) - Intermediate/semi-current phase\n- Q3621673 (HistoricalArchive) - Archival/permanent phase\n\n**Usage**:\nClassify this operational archive by its position in the records lifecycle.\nMost CustodianArchive records are in the intermediate phase (awaiting processing).\n\n**Example**:\n- CustodianArchive \"Ministry Records 2010-2020\" \u2192 lifecycle_phase_type \u2192 \n DepositArchive (Q244904) - semi-current, awaiting processing\n" + range: string # uriorcurie + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:broaderTransitive diff --git a/schemas/20251121/linkml/modules/slots/archive/light_max_lux.yaml b/schemas/20251121/linkml/modules/slots/archive/light_max_lux.yaml new file mode 100644 index 0000000000..cbe32d887a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/light_max_lux.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/light_max_lux +name: light_max_lux_slot +title: Light Max Lux Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + light_max_lux: + description: 'Maximum light level in lux for storage areas. + + + EN 15757:2010 recommends: + + - <50 lux for highly sensitive materials (textiles, works on paper) + + - <150 lux for moderately sensitive (oil paintings) + + - <300 lux for low sensitivity (stone, metal) + + ' + range: float + slot_uri: hc:lightMaxLux + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:lightMaxLux diff --git a/schemas/20251121/linkml/modules/slots/archive/like_count.yaml b/schemas/20251121/linkml/modules/slots/archive/like_count.yaml new file mode 100644 index 0000000000..9ad46a2424 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/like_count.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/like_count +name: like_count_slot +title: Like Count Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + like_count: + slot_uri: hc:likeCount + description: 'Number of likes/upvotes for this video. + + + Platform-specific: YouTube likes, Facebook reactions, etc. + + + **OBSERVATIONAL**: Record with `metrics_observed_at`. + + ' + range: integer + comments: + - schema:interactionCount is a CLASS (InteractionCounter), not a property. Like count is a social media metric without standard ontology equivalent. + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:likeCount diff --git a/schemas/20251121/linkml/modules/slots/archive/likelihood_confidence.yaml b/schemas/20251121/linkml/modules/slots/archive/likelihood_confidence.yaml new file mode 100644 index 0000000000..f57221c086 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/likelihood_confidence.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/likelihood_confidence +name: likelihood_confidence_slot +title: Likelihood Confidence Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + likelihood_confidence: + description: 'Confidence in the assessment (0.0-1.0). + + **Ontology mapping**: Uses sosa:hasSimpleResult because this is a computed observation result from confidence estimation algorithms.' + range: float + minimum_value: 0.0 + maximum_value: 1.0 + slot_uri: sosa:hasSimpleResult + close_mappings: + - prov:value + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/likelihood_factor.yaml b/schemas/20251121/linkml/modules/slots/archive/likelihood_factor.yaml new file mode 100644 index 0000000000..c3b2e4733c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/likelihood_factor.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/likelihood_factor +name: likelihood_factor_slot +title: Likelihood Factors Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + likelihood_factor: + description: 'Factors contributing to the score. + + **Ontology mapping**: Uses prov:used because these factors are the inputs that were used by the scoring activity to compute the result.' + range: string + multivalued: true + slot_uri: prov:used + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:used diff --git a/schemas/20251121/linkml/modules/slots/archive/likelihood_level.yaml b/schemas/20251121/linkml/modules/slots/archive/likelihood_level.yaml new file mode 100644 index 0000000000..6511c6e1a4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/likelihood_level.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/likelihood_level +name: likelihood_level_slot +title: Likelihood Level Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + likelihood_level: + description: 'Categorical level: low, medium, high. + + **Ontology mapping**: Uses skos:notation because this is a categorical classification code from a controlled vocabulary, not a numeric score.' + range: string + slot_uri: skos:notation + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:notation diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_http_status.yaml b/schemas/20251121/linkml/modules/slots/archive/likelihood_score.yaml similarity index 54% rename from schemas/20251121/linkml/modules/slots/has_or_had_http_status.yaml rename to schemas/20251121/linkml/modules/slots/archive/likelihood_score.yaml index ce5a74323b..4b28e5bda9 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_http_status.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/likelihood_score.yaml @@ -1,12 +1,13 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_http_status -name: has_or_had_http_status_slot -title: Has Or Had HTTP Status Slot +id: https://nde.nl/ontology/hc/slot/likelihood_score +name: likelihood_score_slot +title: Likelihood Score Slot prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# crm: http://www.cidoc-crm.org/cidoc-crm/ skos: http://www.w3.org/2004/02/skos/core# rdfs: http://www.w3.org/2000/01/rdf-schema# @@ -16,9 +17,13 @@ imports: - linkml:types default_prefix: hc slots: - has_or_had_http_status: - description: "HTTP status code associated with a web resource or response.\n\n**MIGRATED** from http_status_code (Rule 53).\n\nFollows RiC-O naming convention." + likelihood_score: + description: 'Numeric likelihood score. + + **Ontology mapping**: Uses sosa:hasSimpleResult because this is a computed observation result from probability estimation algorithms.' range: integer + slot_uri: sosa:hasSimpleResult + close_mappings: + - prov:value annotations: - rico_naming_convention: Follows RiC-O "hasOrHad" pattern for temporal predicates. custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/likely_whatsapp_proficient.yaml b/schemas/20251121/linkml/modules/slots/archive/likely_whatsapp_proficient.yaml new file mode 100644 index 0000000000..9f84e6d886 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/likely_whatsapp_proficient.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/likely_whatsapp_proficient +name: likely_whatsapp_proficient_slot +title: Likely Whatsapp Proficient Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + likely_whatsapp_proficient: + description: Whether person is likely proficient with WhatsApp + range: boolean + slot_uri: hc:likelyWhatsappProficient + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:likelyWhatsappProficient diff --git a/schemas/20251121/linkml/modules/slots/archive/link_context.yaml b/schemas/20251121/linkml/modules/slots/archive/link_context.yaml new file mode 100644 index 0000000000..b0877fa1f6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/link_context.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/link_context +name: link_context_slot +title: Link Context Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + link_context: + slot_uri: hc:context + description: Parent section or surrounding context + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:context diff --git a/schemas/20251121/linkml/modules/slots/archive/link_count.yaml b/schemas/20251121/linkml/modules/slots/archive/link_count.yaml new file mode 100644 index 0000000000..1eea4fbfb3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/link_count.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/link_count +name: link_count_slot +title: Link Count Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + link_count: + slot_uri: hc:link_count + range: float + description: 'Link Count for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:link_count diff --git a/schemas/20251121/linkml/modules/slots/archive/link_rationale.yaml b/schemas/20251121/linkml/modules/slots/archive/link_rationale.yaml new file mode 100644 index 0000000000..a7df1a531f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/link_rationale.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/link_rationale +name: link_rationale_slot +title: Link Rationale Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + link_rationale: + slot_uri: skos:editorialNote + description: 'Editorial note explaining the dual-class pattern linkage. + + Documents the relationship between custodian and collection types. + + ' + range: string + examples: + - value: This class represents the CUSTODIAN type. See linked_class_name for the corresponding rico:RecordSetType. + description: Custodian type link explanation + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:editorialNote diff --git a/schemas/20251121/linkml/modules/slots/archive/link_text.yaml b/schemas/20251121/linkml/modules/slots/archive/link_text.yaml new file mode 100644 index 0000000000..a13676ba85 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/link_text.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/link_text +name: link_text_slot +title: Link Text Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + link_text: + slot_uri: schema:name + description: Visible text of the link + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:name diff --git a/schemas/20251121/linkml/modules/slots/archive/link_type.yaml b/schemas/20251121/linkml/modules/slots/archive/link_type.yaml new file mode 100644 index 0000000000..cc879ea27f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/link_type.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/link_type +name: link_type_slot +title: Link Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/LinkTypeEnum +default_prefix: hc +slots: + link_type: + slot_uri: dcterms:type + description: Type of link + range: string # uriorcurie + # range: LinkTypeEnum + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:type diff --git a/schemas/20251121/linkml/modules/slots/archive/link_url.yaml b/schemas/20251121/linkml/modules/slots/archive/link_url.yaml new file mode 100644 index 0000000000..afda4eaf10 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/link_url.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/link_url +name: link_url_slot +title: Link Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + link_url: + slot_uri: schema:url + description: URL of the link + range: uri + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:url diff --git a/schemas/20251121/linkml/modules/slots/archive/linked_class_name.yaml b/schemas/20251121/linkml/modules/slots/archive/linked_class_name.yaml new file mode 100644 index 0000000000..0f475c6c8d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/linked_class_name.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/linked_class_name +name: linked_class_name_slot +title: Linked Class Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + linked_class_name: + slot_uri: rdfs:seeAlso + description: 'Name of the linked class in the dual-class pattern. + + If this is a custodian_type, links to the collection_type and vice versa. + + ' + range: string + examples: + - value: AcademicArchiveRecordSetType + description: Linked collection type for AcademicArchive custodian + - value: AcademicArchive + description: Linked custodian type for AcademicArchiveRecordSetType + annotations: + custodian_types: '["*"]' + exact_mappings: + - rdfs:seeAlso diff --git a/schemas/20251121/linkml/modules/slots/archive/linked_data.yaml b/schemas/20251121/linkml/modules/slots/archive/linked_data.yaml new file mode 100644 index 0000000000..b766dd8cc0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/linked_data.yaml @@ -0,0 +1,45 @@ +id: https://nde.nl/ontology/hc/slot/linked_data +name: linked_data_slot +title: Linked Data Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + linked_data: + description: 'Does this platform provide linked open data (RDF)? + + + Dublin Core: conformsTo indicates LOD compliance. + + + Linked data features: + + - RDF triples (Turtle, JSON-LD, N-Triples) + + - SPARQL endpoint + + - Dereferenceable URIs + + - Linked to external vocabularies (Wikidata, Getty, etc.) + + + Boolean true/false or null if unknown. + + ' + range: boolean + slot_uri: hc:linkedData + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:linkedData diff --git a/schemas/20251121/linkml/modules/slots/archive/linked_data_access.yaml b/schemas/20251121/linkml/modules/slots/archive/linked_data_access.yaml new file mode 100644 index 0000000000..550f3dcf5a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/linked_data_access.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/linked_data_access +name: linked_data_access_slot +title: Linked Data Access Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + linked_data_access: + slot_uri: void:sparqlEndpoint + description: 'LinkedDataHub providing SPARQL access to this dataset. Named ''linked_data_access'' to avoid conflict with shared ''sparql_endpoint'' slot which has range: uri. This slot specifically links to a LinkedDataHub entity.' + range: string # uriorcurie + inlined: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - void:sparqlEndpoint diff --git a/schemas/20251121/linkml/modules/slots/archive/linked_data_export.yaml b/schemas/20251121/linkml/modules/slots/archive/linked_data_export.yaml new file mode 100644 index 0000000000..0963429908 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/linked_data_export.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/linked_data_export +name: linked_data_export_slot +title: Linked Data Export Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + linked_data_export: + description: 'Does this CMS support linked open data export (RDF)? + + + Dublin Core: conformsTo for LOD compliance. + + + Export formats may include: + + - RDF/XML + + - Turtle + + - JSON-LD + + - N-Triples + + ' + range: boolean + slot_uri: hc:linkedDataExport + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:linkedDataExport diff --git a/schemas/20251121/linkml/modules/slots/archive/linked_to_collection.yaml b/schemas/20251121/linkml/modules/slots/archive/linked_to_collection.yaml new file mode 100644 index 0000000000..b8b8c6e5d7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/linked_to_collection.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/linked_to_collection +name: linked_to_collection_slot +title: Linked To Collection Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + linked_to_collection: + description: 'Whether detected objects are linked to collection database. + + + When true, detected objects have collection_id or + + wikidata_id linking them to authoritative records. + + + Enables: + + - "Find videos showing artwork X" + + - Rich metadata for detected items + + - Cross-referencing with collection management + + ' + range: boolean + slot_uri: hc:linkedToCollection + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:linkedToCollection diff --git a/schemas/20251121/linkml/modules/slots/archive/linkedin_profile_path.yaml b/schemas/20251121/linkml/modules/slots/archive/linkedin_profile_path.yaml new file mode 100644 index 0000000000..b0d0300ae1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/linkedin_profile_path.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/linkedin_profile_path +name: linkedin_profile_path_slot +title: LinkedIn Profile Path Slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + linkedin_profile_path: + slot_uri: prov:hadPrimarySource + description: "File path to LinkedIn profile data (per Rule 12, Rule 20).\n\n**Pattern**: LinkedIn profiles are stored as individual JSON files\nrather than inline data to avoid duplication and enable updates.\n\n**File Location**: data/custodian/person/entity/{linkedin-slug}_{timestamp}.json\n\n**Example**: \"data/custodian/person/entity/jane-smith_20250115T103000Z.json\"\n\n**Rationale**:\n- Same person may work at multiple custodians\n- Profile data can be updated independently\n- Reduces duplication (50+ lines \u2192 1 path)\n\n**See**: Rule 12 (Person Data Reference Pattern), Rule 20 (Person Entity Profiles)\n" + range: string + required: false + close_mappings: + - schema:sameAs + comments: + - 'Rationale: - Same person may work at multiple custodians + + - Profile data can be updated independently + + - Reduces duplication (50+ lines -> 1 path reference)' + - 'See: Rule 12 (Person Data Reference Pattern) | Rule 20 (Person Entity Profiles) | Rule 27 (Person-Custodian Data Architecture)' + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/linkedin_profile_url.yaml b/schemas/20251121/linkml/modules/slots/archive/linkedin_profile_url.yaml new file mode 100644 index 0000000000..95af860078 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/linkedin_profile_url.yaml @@ -0,0 +1,57 @@ +id: https://nde.nl/ontology/hc/slot/linkedin_profile_url +name: linkedin_profile_url_slot +title: LinkedIn Profile URL Slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + linkedin_profile_url: + slot_uri: schema:sameAs + description: 'LinkedIn profile URL for this person. + + + **Schema.org**: `schema:sameAs` for linking to same entity on other platforms + + + **Format**: Full URL (https://www.linkedin.com/in/username) + + + **Privacy**: Only include if LinkedIn profile is publicly accessible. + + + **Photo URLs**: For profile photos, use CDN URL (media.licdn.com), + + NOT the overlay page URL (per Rule 16). + + + **Example**: "https://www.linkedin.com/in/jane-smith-curator" + + + **Semantics**: + + - This URL represents the same person on the LinkedIn platform + + - Use for identity linking and deduplication + + - NOT for data retrieval (use linkedin_profile_path instead)' + range: uri + required: false + broad_mappings: + - schema:url + comments: + - 'See: Rule 16 (LinkedIn Photo CDN URLs) | linkedin_profile_path slot for profile data file reference' + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:sameAs diff --git a/schemas/20251121/linkml/modules/slots/archive/linkedin_url.yaml b/schemas/20251121/linkml/modules/slots/archive/linkedin_url.yaml new file mode 100644 index 0000000000..208731399d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/linkedin_url.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/linkedin_url +name: linkedin_url_slot +title: linkedin_url slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + linkedin_url: + description: 'LinkedIn profile URL that was extracted. + + PROV-O: prov:used - the source entity. + + ' + slot_uri: schema:url + range: uri + pattern: ^https://www\.linkedin\.com/in/[a-z0-9-]+/?$ + examples: + - value: https://www.linkedin.com/in/jan-van-der-berg-12345 + description: LinkedIn profile URL + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:url diff --git a/schemas/20251121/linkml/modules/slots/archive/list_item.yaml b/schemas/20251121/linkml/modules/slots/archive/list_item.yaml new file mode 100644 index 0000000000..a5820083ce --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/list_item.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/list_item +name: list_item_slot +title: List Items Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + list_item: + slot_uri: schema:itemListElement + description: List items (bulleted/numbered) in this section + range: string + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:itemListElement diff --git a/schemas/20251121/linkml/modules/slots/archive/literal_name.yaml b/schemas/20251121/linkml/modules/slots/archive/literal_name.yaml new file mode 100644 index 0000000000..814ead6cd0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/literal_name.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/literal_name +name: literal_name +title: Literal Name +prefixes: + pnv: https://w3id.org/pnv# + schema: http://schema.org/ + foaf: http://xmlns.com/foaf/0.1/ + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + literal_name: + slot_uri: pnv:literalName + description: "Full personal name as written in the source material.\n\nThis is the complete name string exactly as it appears, including all\nname components: given names, patronyms, surname prefixes, and surnames.\n\nREQUIRED for PersonName unless name_specification indicates the person\nwas \"unknown\" or \"unnamed\".\n\nPer PNV specification:\n\"This property may only be left blank if a person's name was unknown\nor if a person was unnamed (e.g. a child that died shortly after being\nborn), in which cases the property pnv:nameSpecification should state\n'unknown' or 'unnamed'.\"\n\nExamples:\n- \"Pieter Corneliszoon van der Berg\"\n- \"H.A.F.M.O. (Hans) van Mierlo\"\n- \"Maria de Vries\"\n- \"Jan Janszoon\"\n- \"Bj\xF6rk Gu\xF0mundsd\xF3ttir\"\n" + range: string + exact_mappings: + - pnv:literalName + close_mappings: + - foaf:name + - schema:name + - rdfs:label + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/live_broadcast_content.yaml b/schemas/20251121/linkml/modules/slots/archive/live_broadcast_content.yaml new file mode 100644 index 0000000000..0e9813125e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/live_broadcast_content.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/live_broadcast_content +name: live_broadcast_content_slot +title: Live Broadcast Content Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + live_broadcast_content: + slot_uri: hc:liveBroadcastContent + description: 'Live broadcast status of the video. + + + **Values**: + + - none: Not a live broadcast (standard video) + + - live: Currently broadcasting live + + - upcoming: Scheduled live stream not yet started + + + When `live` or `upcoming` becomes `none`, video is archived. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:liveBroadcastContent diff --git a/schemas/20251121/linkml/modules/slots/archive/living_collection.yaml b/schemas/20251121/linkml/modules/slots/archive/living_collection.yaml new file mode 100644 index 0000000000..ca613903f3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/living_collection.yaml @@ -0,0 +1,86 @@ +id: https://nde.nl/ontology/hc/slot/living_collection +name: living_collection_slot +title: Living Collections Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + living_collection: + description: 'Boolean indicating whether the institution maintains living specimens + + (true) vs. only preserved/dead specimens (false). + + + **TRUE when institution maintains**: + + - Live animals in enclosures, exhibits, or aquariums + + - Living plants in gardens, greenhouses, or conservatories + + - Active growth, breeding, or cultivation programs + + - Ongoing care, feeding, and husbandry + + + **FALSE when institution has**: + + - Only preserved specimens (taxidermy, dried plants, pickled animals) + + - No active husbandry or horticultural programs + + - Static displays without living organisms + + + **Mixed Collections** (MIXED type X): + + When institutions maintain BOTH living and preserved collections: + + - Natural history museums with live insect colonies (TRUE for living aspect) + + - Botanical gardens with herbarium collections (TRUE for living aspect) + + - Zoos with taxidermy educational displays (TRUE - living is primary) + + + **Examples**: + + - Artis (zoo): TRUE - Living animal collection with active care + + - Hortus Leiden: TRUE - Living plant collection in greenhouses + + - Naturalis (natural history museum): FALSE - Preserved specimens only + + - Kew Gardens: TRUE - Living plants (herbarium is separate collection) + + + **Distinction**: + + This field separates BioCustodian (B) from Museum (M) and Research Center (R) + + when dealing with biological specimens. + + + **Ontology Alignment**: + + - Related to `schema:additionalProperty` "living status" + + - Darwin Core field: Not directly mapped (implied by collection type) + + ' + range: boolean + slot_uri: hc:livingCollections + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:livingCollections diff --git a/schemas/20251121/linkml/modules/slots/archive/llm_response.yaml b/schemas/20251121/linkml/modules/slots/archive/llm_response.yaml new file mode 100644 index 0000000000..e3162e3fe3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/llm_response.yaml @@ -0,0 +1,60 @@ +id: https://nde.nl/ontology/hc/slot/llm_response +name: llm_response_slot +title: llm_response slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + llm_response: + description: 'Full LLM response provenance including reasoning_content. + + + Captures GLM 4.7 Thinking Modes (Interleaved, Preserved, Turn-level) + + for extractions that use LLM processing. + + + **PROV-O Alignment**: + + - The LLMResponse IS a sub-activity (prov:qualifiedGeneration) + + - Provides detailed audit trail of LLM inference for the extraction + + + **Use Cases**: + + - LinkedIn profile extraction with GLM 4.7 reasoning + + - Web content extraction with chain-of-thought logging + + - Staff list processing with schema conformity validation + + + **When to Include**: + + - extraction_method is exa_crawling_glm47 + + - Any extraction involving LLM processing + + - When reasoning_content provides valuable audit trail + + ' + slot_uri: prov:qualifiedGeneration + range: string # uriorcurie + # range: LLMResponse + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:qualifiedGeneration diff --git a/schemas/20251121/linkml/modules/slots/archive/loan_agreement_url.yaml b/schemas/20251121/linkml/modules/slots/archive/loan_agreement_url.yaml new file mode 100644 index 0000000000..2cfecfd3cf --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/loan_agreement_url.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/loan_agreement_url +name: loan_agreement_url_slot +title: Loan Agreement Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + loan_agreement_url: + description: 'URL to loan agreement document (PDF, archived copy). + + ' + range: uri + slot_uri: schema:url + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:url diff --git a/schemas/20251121/linkml/modules/slots/archive/loan_end_date.yaml b/schemas/20251121/linkml/modules/slots/archive/loan_end_date.yaml new file mode 100644 index 0000000000..2f5ee1213b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/loan_end_date.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/loan_end_date +name: loan_end_date_slot +title: Loan End Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + loan_end_date: + description: 'Agreed/current return date. + + For extended loans, this reflects the updated end date. + + ' + range: date + slot_uri: schema:endDate + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:endDate diff --git a/schemas/20251121/linkml/modules/slots/archive/loan_history.yaml b/schemas/20251121/linkml/modules/slots/archive/loan_history.yaml new file mode 100644 index 0000000000..52042b9cd1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/loan_history.yaml @@ -0,0 +1,55 @@ +id: https://nde.nl/ontology/hc/slot/loan_history +name: loan_history_slot +title: Loan History Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + loan_history: + description: 'History of loans involving this object. + + + Includes both: + + - Outgoing loans (when this object''s keeper lends it) + + - Incoming loans (when this object is borrowed from elsewhere) + + + Each loan record includes: + + - Lender and borrower institutions + + - Loan dates and status + + - Insurance valuations + + - Condition reports + + - Courier and transport details + + + Loans are referenced (not inlined) as they link multiple objects + + and institutions. + + ' + range: string # uriorcurie + # range: Loan + multivalued: true + slot_uri: crm:P30i_custody_transferred_through + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P30i_custody_transferred_through diff --git a/schemas/20251121/linkml/modules/slots/archive/loan_id.yaml b/schemas/20251121/linkml/modules/slots/archive/loan_id.yaml new file mode 100644 index 0000000000..a0ad5aaa2e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/loan_id.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/loan_id +name: loan_id_slot +title: Loan Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + loan_id: + description: 'Unique identifier for this loan. + + Format: https://nde.nl/ontology/hc/loan/{lender-slug}-{borrower-slug}-{year}-{seq} + + ' + range: string # uriorcurie + slot_uri: dcterms:identifier + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/loan_note.yaml b/schemas/20251121/linkml/modules/slots/archive/loan_note.yaml new file mode 100644 index 0000000000..9607bedace --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/loan_note.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/loan_note +name: loan_note_slot +title: Loan Notes Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + loan_note: + description: 'Additional notes about the loan. + + ' + range: string + multivalued: true + slot_uri: skos:note + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:note diff --git a/schemas/20251121/linkml/modules/slots/archive/loan_number.yaml b/schemas/20251121/linkml/modules/slots/archive/loan_number.yaml new file mode 100644 index 0000000000..621c583d70 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/loan_number.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/loan_number +name: loan_number_slot +title: Loan Number Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + loan_number: + description: 'Institution-specific loan reference number. + + May differ between lender and borrower tracking systems. + + ' + range: string + slot_uri: dcterms:identifier + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/loan_purpose.yaml b/schemas/20251121/linkml/modules/slots/archive/loan_purpose.yaml new file mode 100644 index 0000000000..ec6137d5a1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/loan_purpose.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/loan_purpose +name: loan_purpose_slot +title: Loan Purpose Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + loan_purpose: + description: 'Purpose or reason for the loan request. + + ' + range: string + slot_uri: schema:description + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:description diff --git a/schemas/20251121/linkml/modules/slots/archive/loan_start_date.yaml b/schemas/20251121/linkml/modules/slots/archive/loan_start_date.yaml new file mode 100644 index 0000000000..801b2608ed --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/loan_start_date.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/loan_start_date +name: loan_start_date_slot +title: Loan Start Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + loan_start_date: + description: 'Date custody transferred to borrower (object received). + + ' + range: date + slot_uri: schema:startDate + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:startDate diff --git a/schemas/20251121/linkml/modules/slots/archive/loan_status.yaml b/schemas/20251121/linkml/modules/slots/archive/loan_status.yaml new file mode 100644 index 0000000000..bdf5cb81a1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/loan_status.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/loan_status +name: loan_status_slot +title: Loan Status Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/LoanStatusEnum +default_prefix: hc +slots: + loan_status: + description: 'Current status in the loan lifecycle. + + + Values: REQUESTED, UNDER_REVIEW, APPROVED, DECLINED, AGREEMENT_PENDING, + + CONDITION_REPORT_PENDING, IN_TRANSIT_OUTBOUND, ON_LOAN, EXTENDED, + + RETURN_REQUESTED, IN_TRANSIT_RETURN, RETURNED, CLOSED, CANCELLED, + + OVERDUE, DISPUTED + + ' + range: string # uriorcurie + # range: LoanStatusEnum + slot_uri: hc:loanStatus + close_mappings: + - adms:status + comments: + - schema:status does not exist as a Schema.org property + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/loan_timespan.yaml b/schemas/20251121/linkml/modules/slots/archive/loan_timespan.yaml new file mode 100644 index 0000000000..98883aafcb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/loan_timespan.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/loan_timespan +name: loan_timespan_slot +title: Loan Timespan Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + loan_timespan: + description: 'Full temporal extent of the loan with CIDOC-CRM fuzzy boundaries. + + Use for uncertain or approximate loan periods. + + ' + range: string # uriorcurie + # range: TimeSpan + slot_uri: crm:P4_has_time-span + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P4_has_time-span diff --git a/schemas/20251121/linkml/modules/slots/archive/loan_type.yaml b/schemas/20251121/linkml/modules/slots/archive/loan_type.yaml new file mode 100644 index 0000000000..b678503c0e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/loan_type.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/loan_type +name: loan_type_slot +title: Loan Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + loan_type: + description: 'Category of loan. + + + Values: EXHIBITION_LOAN, STUDY_LOAN, LONG_TERM_LOAN, INTER_BRANCH, + + CONSERVATION_LOAN, PHOTOGRAPHY_LOAN + + ' + range: string + slot_uri: dcterms:type + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:type diff --git a/schemas/20251121/linkml/modules/slots/archive/locality.yaml b/schemas/20251121/linkml/modules/slots/archive/locality.yaml new file mode 100644 index 0000000000..473e10be4a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/locality.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/slot/locality +name: locality_slot +title: Locality Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + vcard: http://www.w3.org/2006/vcard/ns# + locn: http://www.w3.org/ns/locn# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +description: "City, town, village, or other locality name within an address.\n\nvCard: locality - \"The locality (e.g. city or town) associated with the \naddress of the object\"\n\nLOCN: postName - \"The key postal division of the address, usually the city.\"\n\nSchema.org: addressLocality - \"The locality in which the street address is.\"\n\nFor unambiguous identification, prefer Settlement class with GeoNames ID.\nThis slot is for simple string references when full Settlement is not needed.\n\nExamples:\n- \"Amsterdam\"\n- \"The Hague\" (English) or \"'s-Gravenhage\" (Dutch official)\n- \"New York\"\n" +slots: + locality: + slot_uri: vcard:locality + range: string + required: false + description: "City, town, or other locality name.\n\nvCard: locality - \"The locality (e.g. city or town) associated with \nthe address of the object\"\n\nAliases: city, town, village, municipal area.\n\nFor unambiguous identification, use Settlement class with GeoNames ID.\n" + exact_mappings: + - vcard:locality + - locn:postName + - schema:addressLocality + examples: + - value: Amsterdam + description: City name + - value: '''s-Gravenhage' + description: Official Dutch name for The Hague + - value: Haarlem + description: Historic city name + annotations: + custodian_types: '["*"]' +comments: +- Use official local name or standardized English name +- For precise identification, use Settlement class with GeoNames ID +- Distinct from city slot which maps to schema:addressLocality diff --git a/schemas/20251121/linkml/modules/slots/archive/located_at.yaml b/schemas/20251121/linkml/modules/slots/archive/located_at.yaml new file mode 100644 index 0000000000..5557db3613 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/located_at.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/located_at +name: located_at_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + located_at: + slot_uri: hc:locatedAt + range: string # uriorcurie + # range: AuxiliaryPlace + multivalued: true + inlined_as_list: false # Fixed invalid inline for primitive type + description: "Physical location where this organizational unit operates.\n\n**Range**: `Any` (2026-01-16) - Allows string values and AuxiliaryPlace/Location class instances.\nClasses narrow this to specific location types via slot_usage.\n\nNote: slot_uri changed from org:basedAt to hc:locatedAt\nto resolve OWL ambiguous type warning. org:basedAt may have\ndifferent expectations in the W3C Org ontology.\n\nAlternative: `org:hasSite` - \"Indicates a site at which the Organization \nhas some presence even if only indirect.\"\n\n**Use Cases**:\n\n1. **Departments at Branch Locations**:\n - Conservation Team \u2192 located at Amersfoort Depot\n - Digitization Team \u2192 located at off-site facility\n\n2. **Teams Spanning Multiple Locations**:\n - IT Department \u2192 located at main building AND data center\n - Public Services \u2192 located at main reading room AND annex\n\n3. **Temporary Location Assignments**:\n - Exhibition Team \u2192 temporarily at partner venue\n - Collections\ + \ \u2192 temporarily at storage during renovation\n\n**Relationship Pattern**:\n\nTwo-way linking between locations and organizational units:\n\n```\nAuxiliaryPlace\n \u2514\u2500\u2500 hosts_branch \u2192 OrganizationBranch\n \u2514\u2500\u2500 has_operational_unit \u2192 OrganizationalStructure\n\nOrganizationalStructure\n \u2514\u2500\u2500 located_at \u2192 AuxiliaryPlace (optional)\n```\n\n**Optional Slot**:\n\nMany organizational units don't have fixed locations:\n- Strategic Planning Committee (meets virtually)\n- Research Fellowship Program (no physical space)\n\nOnly use when organizational unit has identifiable physical location.\n\n**Example - Conservation Division**:\n```yaml\nOrganizationalStructure:\n unit_name: \"Conservation Division\"\n unit_type: DIVISION\n located_at:\n - place_name: \"Conservation Lab - Main Building\"\n - place_name: \"Climate-Controlled Storage - Depot Amersfoort\"\n```" + exact_mappings: + - org:basedAt + examples: + - value: "- place_name: Depot Amersfoort\n auxiliary_place_type: STORAGE_FACILITY\n" + description: Organizational unit located at off-site storage + broad_mappings: + - prov:atTime + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/location.yaml b/schemas/20251121/linkml/modules/slots/archive/location.yaml new file mode 100644 index 0000000000..6b7edc24ff --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/location.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/location +name: location_slot +title: Location Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + location: + slot_uri: schema:location + description: Physical location (city, country) + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:location diff --git a/schemas/20251121/linkml/modules/slots/archive/location_browse_score.yaml b/schemas/20251121/linkml/modules/slots/archive/location_browse_score.yaml new file mode 100644 index 0000000000..10d43bbec0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/location_browse_score.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/location_browse_score +name: location_browse_score_slot +title: Location Browse Score Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + location_browse_score: + slot_uri: sosa:hasSimpleResult + range: float + minimum_value: 0.0 + maximum_value: 1.0 + description: 'Specificity score for geographic browsing. + + **Ontology mapping**: Uses sosa:hasSimpleResult because this is a computed relevance score from search/retrieval algorithms acting as observation systems.' + close_mappings: + - prov:value + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/location_name.yaml b/schemas/20251121/linkml/modules/slots/archive/location_name.yaml new file mode 100644 index 0000000000..df838b9018 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/location_name.yaml @@ -0,0 +1,66 @@ +id: https://nde.nl/ontology/hc/slot/location_name +name: location_name_slot +title: Location Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + locn: http://www.w3.org/ns/locn# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + location_name: + slot_uri: schema:name + description: 'Human-readable name for a geographic location. + + + **Ontological Alignment**: + + - **Primary** (`slot_uri`): `schema:name` - Schema.org name + + - **Exact**: `rdfs:label` - RDF Schema label + + - **Related**: `locn:geographicName` - LOCN geographic name + + + **Usage**: + + Primary identifier for Location instances. Should be + + human-readable and unambiguous where possible. + + + **Examples**: + + - "Rijksmuseum Amsterdam" + + - "Noord-Hollands Archief, Haarlem" + + - "Depot Boerhaave, Leiden" + + ' + range: string + required: true + multivalued: false + exact_mappings: + - rdfs:label + related_mappings: + - locn:geographicName + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Location names apply to all heritage types. + specificity_score: 0.2 + specificity_rationale: Generic name slot for locations. + examples: + - value: Rijksmuseum Amsterdam + description: Museum location + - value: Noord-Hollands Archief, Haarlem + description: Archive location with city diff --git a/schemas/20251121/linkml/modules/slots/archive/logo_confidence.yaml b/schemas/20251121/linkml/modules/slots/archive/logo_confidence.yaml new file mode 100644 index 0000000000..c562df0684 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/logo_confidence.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/logo_confidence +name: logo_confidence_slot +title: Logo Confidence Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + logo_confidence: + description: 'Detection confidence (0.0-1.0). + + **Ontology mapping**: Uses sosa:hasSimpleResult because logo detection models act as sensors producing observation results.' + range: float + minimum_value: 0.0 + maximum_value: 1.0 + slot_uri: sosa:hasSimpleResult + close_mappings: + - prov:value + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/logo_label.yaml b/schemas/20251121/linkml/modules/slots/archive/logo_label.yaml new file mode 100644 index 0000000000..32712f32ee --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/logo_label.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/logo_label +name: logo_label_slot +title: Logo Label Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + logo_label: + description: 'Logo name or brand identifier. + + Maps to rdfs:label as a generic human-readable label for a logo resource.' + range: string + slot_uri: rdfs:label + close_mappings: + - schema:name + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/logo_organization.yaml b/schemas/20251121/linkml/modules/slots/archive/logo_organization.yaml new file mode 100644 index 0000000000..38c1d30106 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/logo_organization.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/logo_organization +name: logo_organization_slot +title: Logo Organization Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + logo_organization: + description: Organization associated with logo + range: string + slot_uri: hc:logoOrganization + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:logoOrganization diff --git a/schemas/20251121/linkml/modules/slots/archive/logo_segment.yaml b/schemas/20251121/linkml/modules/slots/archive/logo_segment.yaml new file mode 100644 index 0000000000..9b6f7bca5c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/logo_segment.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/logo_segment +name: logo_segment_slot +title: Logo Segment Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + logo_segment: + description: Time segment when logo is visible + range: string # uriorcurie + # range: VideoTimeSegment + slot_uri: hc:logoSegment + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:logoSegment diff --git a/schemas/20251121/linkml/modules/slots/archive/long_name.yaml b/schemas/20251121/linkml/modules/slots/archive/long_name.yaml new file mode 100644 index 0000000000..66dbb75d67 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/long_name.yaml @@ -0,0 +1,85 @@ +id: https://nde.nl/ontology/hc/slot/long_name +name: long_name_slot +title: Long Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +description: 'Full/long form of a name, typically used for address component values. + + + Address data sources often provide both full and abbreviated name forms. + + This slot captures the complete, non-abbreviated version. + + + **SOURCE-AGNOSTIC DESIGN**: + + + This slot works with address data from any source: + + - Website scraping + + - Registry data (ISIL, KvK, etc.) + + - API responses + + - Manual data entry + + + Example pairs (long_name / short_name): + + - "Netherlands" / "NL" + + - "Noord-Holland" / "NH" + + - "Amsterdam" / "Amsterdam" + + ' +slots: + long_name: + slot_uri: schema:name + range: string + required: false + description: 'Full/long form of a name. + + + The complete, non-abbreviated form of an address component value. + + Used when a data source distinguishes between full and abbreviated names. + + + Schema.org: name - "The name of the item." + + ' + exact_mappings: + - schema:name + close_mappings: + - skos:prefLabel + examples: + - value: Netherlands + description: Country full name + - value: Noord-Holland + description: Province full name + - value: Museumstraat + description: Street full name + - value: California + description: US state full name + - value: United Kingdom + description: Country full name + annotations: + custodian_types: '["*"]' +comments: +- Used in AddressComponent for full address values +- Paired with short_name for abbreviated version +- Source-agnostic: works with any address data source diff --git a/schemas/20251121/linkml/modules/slots/archive/longitude.yaml b/schemas/20251121/linkml/modules/slots/archive/longitude.yaml new file mode 100644 index 0000000000..895b06b651 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/longitude.yaml @@ -0,0 +1,49 @@ +id: https://nde.nl/ontology/hc/slot/longitude +name: longitude_slot +title: Longitude Slot +description: 'Geographic longitude coordinate in WGS84 decimal degrees. + + + Format: Decimal degrees (e.g., 4.8852 for Amsterdam) + + Range: -180.0 to +180.0 + + + Positive values = East of Prime Meridian + + Negative values = West of Prime Meridian + + ' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + wgs84: http://www.w3.org/2003/01/geo/wgs84_pos# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + longitude: + slot_uri: wgs84:long + range: float + required: false + description: 'Geographic longitude (WGS84 coordinate). + + + Schema.org: longitude for geographic positioning. + + ' + exact_mappings: + - schema:longitude + - wgs84:long + annotations: + custodian_types: '["*"]' +comments: +- WGS84 datum (standard GPS coordinate system) +- 'Example: 4.8852 (Amsterdam), -73.9857 (New York), 151.2093 (Sydney)' diff --git a/schemas/20251121/linkml/modules/slots/archive/lot_number.yaml b/schemas/20251121/linkml/modules/slots/archive/lot_number.yaml new file mode 100644 index 0000000000..498babb4b1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/lot_number.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/lot_number +name: lot_number_slot +title: Lot Number Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + lot_number: + description: 'Auction lot number. + + ' + range: string + slot_uri: dcterms:identifier + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/maintained_by.yaml b/schemas/20251121/linkml/modules/slots/archive/maintained_by.yaml new file mode 100644 index 0000000000..d607798f3a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/maintained_by.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/maintained_by +name: maintained_by_slot +title: maintained_by slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + gleif_base: https://www.gleif.org/ontology/Base/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + maintained_by: + description: 'Registration authority that maintains this register. + + + Links to RegistrationAuthority class. + + + Examples: + + - KvK (Kamer van Koophandel) maintains NL Handelsregister + + - Companies House maintains UK Companies Register + + - Local courts (Amtsgericht) maintain German Handelsregister + + ' + range: string # uriorcurie + # range: RegistrationAuthority + required: true + inlined: false # Fixed invalid inline for primitive type + slot_uri: gleif_base:isManagedBy + annotations: + custodian_types: '["*"]' + exact_mappings: + - gleif_base:isManagedBy diff --git a/schemas/20251121/linkml/modules/slots/archive/maintenance_schedule.yaml b/schemas/20251121/linkml/modules/slots/archive/maintenance_schedule.yaml new file mode 100644 index 0000000000..015be1912d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/maintenance_schedule.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/maintenance_schedule +name: maintenance_schedule_slot +title: Maintenance Schedule Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + maintenance_schedule: + description: 'Maintenance schedule for the device. + + + Examples: + + - "Monthly battery check" + + - "Quarterly calibration" + + - "Annual hardware inspection" + + ' + range: string + slot_uri: hc:maintenanceSchedule + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:maintenanceSchedule diff --git a/schemas/20251121/linkml/modules/slots/archive/major_city.yaml b/schemas/20251121/linkml/modules/slots/archive/major_city.yaml new file mode 100644 index 0000000000..d4c528280c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/major_city.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/major_city +name: major_city +title: Major City +description: Major city within a geographic extent. +imports: +- linkml:types +prefixes: + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + hc: https://nde.nl/ontology/hc/ +# default_range: string +slots: + major_city: + slot_uri: schema:containsPlace + range: string + multivalued: true + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/major_research_project.yaml b/schemas/20251121/linkml/modules/slots/archive/major_research_project.yaml new file mode 100644 index 0000000000..62a4da796e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/major_research_project.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/major_research_project +name: major_research_project_slot +title: Major Research Projects Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + major_research_project: + description: 'Major ongoing or completed research projects. + + ' + range: string + multivalued: true + slot_uri: hc:majorResearchProjects + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:majorResearchProjects diff --git a/schemas/20251121/linkml/modules/slots/archive/managed_by.yaml b/schemas/20251121/linkml/modules/slots/archive/managed_by.yaml new file mode 100644 index 0000000000..16b57e5a03 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/managed_by.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/slot/managed_by +name: managed_by_slot +title: Managed By Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + managed_by: + slot_uri: org:linkedTo + description: 'Management structure for the gift shop. + + + Options: + + - In-house: Managed by museum/archive staff + + - Outsourced: Third-party retail operator + + - Franchise: Licensed operation + + - Partnership: Joint venture with retail partner + + + Include operator name if outsourced. + + ' + range: string + exact_mappings: + - org:linkedTo + close_mappings: + - prov:wasAttributedTo + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/manages_collection.yaml b/schemas/20251121/linkml/modules/slots/archive/manages_collection.yaml new file mode 100644 index 0000000000..a3c222adfd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/manages_collection.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/manages_collection +name: manages_collection_slot +title: Manages Collection Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + manages_collection: + description: "CustodianCollection(s) managed by this CMS.\n\nCIDOC-CRM: P70_documents - the CMS documents the collection.\n\n**BIDIRECTIONAL RELATIONSHIP**:\n- Forward: CollectionManagementSystem \u2192 CustodianCollection (manages_collection)\n- Reverse: CustodianCollection \u2192 CollectionManagementSystem (managed_by_cms)\n\nMultiple collections may be managed by one CMS deployment:\n- Paintings collection\n- Prints and drawings\n- Archival fonds\n" + range: string # uriorcurie + # range: CustodianCollection + slot_uri: hc:managesCollection + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:managesCollection diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_deposited_by.yaml b/schemas/20251121/linkml/modules/slots/archive/manages_or_managed.yaml similarity index 65% rename from schemas/20251121/linkml/modules/slots/is_or_was_deposited_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/manages_or_managed.yaml index 7f7de0ff97..d776523a8e 100644 --- a/schemas/20251121/linkml/modules/slots/is_or_was_deposited_by.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/manages_or_managed.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/is_or_was_deposited_by -name: is_or_was_deposited_by -title: is_or_was_deposited_by +id: https://nde.nl/ontology/hc/slot/manages_or_managed +name: manages_or_managed +title: manages_or_managed prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -16,13 +16,13 @@ default_prefix: hc imports: - linkml:types slots: - is_or_was_deposited_by: - name: is_or_was_deposited_by - title: is_or_was_deposited_by - description: The organization that deposited the material. + manages_or_managed: + name: manages_or_managed + title: manages_or_managed + description: Manages a resource or collection. slot_uri: prov:wasAttributedTo range: string # uriorcurie - # range: DepositingOrganization + # range: Collection annotations: custodian_types: '["*"]' exact_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/managing_unit.yaml b/schemas/20251121/linkml/modules/slots/archive/managing_unit.yaml new file mode 100644 index 0000000000..e22b22e8a4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/managing_unit.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/managing_unit +name: managing_unit +title: Managing Organizational Unit +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + owl: http://www.w3.org/2002/07/owl# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + managing_unit: + slot_uri: org:unitOf + description: "Organizational unit (department, division, section) responsible for managing this collection.\n\n**Bidirectional Relationship**:\n- **Forward**: CustodianCollection \u2192 OrganizationalStructure (managing_unit)\n- **Reverse**: OrganizationalStructure \u2192 CustodianCollection (managed_collections)\n\n**Validation**: If provided, temporal consistency is validated:\n- Collection.valid_from >= OrganizationalStructure.valid_from\n- Collection.valid_to <= OrganizationalStructure.valid_to (if unit dissolved)\n\n**Use Cases**:\n1. **Collection Management**: \"Which department manages the Medieval Manuscripts collection?\"\n2. **Staffing Cross-Reference**: \"Who are the curators managing this collection?\"\n - Follow: managing_unit \u2192 OrganizationalStructure \u2192 staff_members \u2192 PersonObservation\n3. **Organizational Change Impact**: Track collection custody through mergers, splits, reorganizations\n\n**Notes**:\n- If managing_unit is null, collection may be managed\ + \ at institutional level\n- Collections may split across multiple units \u2192 create separate CustodianCollection instances\n- Custody transfers tracked via managing_unit changes + temporal validity\n" + range: string # uriorcurie + # range: OrganizationalStructure + required: false + multivalued: false + exact_mappings: + - org:unitOf + - schema:maintainer + related_mappings: + - crm:P50_has_current_keeper + - rico:hasOrHadManager + comments: + - Inverse of managed_collections (on OrganizationalStructure) + - Use this property to document which department/division manages a collection + - Tracks collection custody through organizational restructuring + - Creates owl:inverseOf axiom in RDF output + - 'Inverse: `managed_collections` (on OrganizationalStructure) | Pattern: If Collection managingUnit Unit, then Unit managedCollections Collection' + annotations: + inverse_slot: managed_collections + custodian_types: '["*"]' + examples: + - value: "CustodianCollection:\n collection_name: \"Medieval Manuscripts\"\n managing_unit: \"https://nde.nl/ontology/hc/org/special-collections-dept\"\n" + description: Usage example diff --git a/schemas/20251121/linkml/modules/slots/archive/mandate.yaml b/schemas/20251121/linkml/modules/slots/archive/mandate.yaml new file mode 100644 index 0000000000..112a8ba64c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/mandate.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/mandate +name: mandate_slot +title: Mandate Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + mandate: + description: 'Formal mandate, charter, or mission statement for the department. + + + W3C ORG: purpose for organizational purpose statement. + + + May reference: + + - Legal basis (law, regulation, decree) + + - Charter document + + - Ministerial order + + - Governance decision + + ' + range: string + slot_uri: hc:mandate + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:mandate diff --git a/schemas/20251121/linkml/modules/slots/archive/marginalia.yaml b/schemas/20251121/linkml/modules/slots/archive/marginalia.yaml new file mode 100644 index 0000000000..251dcf7531 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/marginalia.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/marginalia +name: marginalia_slot +title: Marginalia Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + marginalia: + description: 'Description of marginal annotations. + + ' + range: string + slot_uri: hc:marginalia + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:marginalia diff --git a/schemas/20251121/linkml/modules/slots/archive/martyred.yaml b/schemas/20251121/linkml/modules/slots/archive/martyred.yaml new file mode 100644 index 0000000000..b78cb9a80f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/martyred.yaml @@ -0,0 +1,89 @@ +id: https://nde.nl/ontology/hc/slot/martyred +name: martyred_slot +title: Martyred Slot +prefixes: + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../metadata +slots: + martyred: + slot_uri: hc:martyred + description: 'Boolean flag indicating whether this staff member was martyred (killed as a result + + of conflict, persecution, or targeted violence against heritage institutions). + + + **IMPORTANT DISTINCTION FROM deceased**: + + - `deceased`: Natural death or death from any cause + + - `martyred`: Death specifically due to conflict, persecution, or violence + + + A person can be both `deceased: true` and `martyred: true` if they died as a martyr. + + A person with `martyred: true` implies `deceased: true`. + + + **Historical Context**: + + This slot is particularly relevant for documenting: + + - Heritage workers killed during armed conflicts + + - Information professionals targeted for their work + + - Cultural heritage workers killed while protecting collections + + - Librarians, archivists, and museum staff killed in attacks on institutions + + + **Example - Gaza 2023-2024**: + + Librarians with Palestine documented heritage workers killed during Israeli + + military operations in Gaza, including librarians, archivists, and journalists. + + + **Wikidata Alignment**: + + Uses P1196 (manner of death) concept for semantic alignment. + + Martyrdom is a specific manner of death requiring documentation. + + + **Provenance**: + + When setting `martyred: true`, also provide: + + - `date_of_death` (TimeSpan) with temporal bounds + + - `circumstances_of_death` (string) describing the event + + - Source documentation for verification + + ' + range: boolean + required: false + ifabsent: 'false' + related_mappings: + - schema:deathDate + comments: + - Martyred implies deceased - if martyred is true, deceased should also be true + - Requires supporting documentation and provenance + - Use TimeSpan for date_of_death to handle uncertainty in conflict situations + - Wikidata property P1196 (manner of death) is semantically related but is an identifier, not an RDF predicate + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:martyred diff --git a/schemas/20251121/linkml/modules/slots/archive/material_composition.yaml b/schemas/20251121/linkml/modules/slots/archive/material_composition.yaml new file mode 100644 index 0000000000..f3055c61de --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/material_composition.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/material_composition +name: material_composition_slot +title: Material Composition Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + material_composition: + description: 'Materials used in the carrier. + + + **Common materials**: + + - Paper types: laid paper, wove paper, vellum paper + + - Animal skins: parchment, vellum + + - Ancient: papyrus, palm leaf, birch bark + + - Modern: plastic, magnetic media + + ' + range: string + multivalued: true + slot_uri: crm:P45_consists_of + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P45_consists_of diff --git a/schemas/20251121/linkml/modules/slots/archive/material_specialization.yaml b/schemas/20251121/linkml/modules/slots/archive/material_specialization.yaml new file mode 100644 index 0000000000..d25cb7be5b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/material_specialization.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/material_specialization +name: material_specialization_slot +title: Material Specialization Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + material_specialization: + slot_uri: hc:materialSpecialization + description: 'What specialized materials this annex serves, if applicable. + + + Only relevant if has_annex_reason is SPECIALIZED_MATERIALS. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:materialSpecialization diff --git a/schemas/20251121/linkml/modules/slots/archive/materials_used.yaml b/schemas/20251121/linkml/modules/slots/archive/materials_used.yaml new file mode 100644 index 0000000000..81dba24678 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/materials_used.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/materials_used +name: materials_used_slot +title: Materials Used Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + materials_used: + description: 'Materials and supplies used in treatment. + + Critical for reversibility and future treatments. + + ' + range: string + multivalued: true + slot_uri: crm:P126_employed + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P126_employed diff --git a/schemas/20251121/linkml/modules/slots/archive/max_annual_light_exposure.yaml b/schemas/20251121/linkml/modules/slots/archive/max_annual_light_exposure.yaml new file mode 100644 index 0000000000..952c748377 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/max_annual_light_exposure.yaml @@ -0,0 +1,86 @@ +id: https://nde.nl/ontology/hc/slot/max_annual_light_exposure +name: max_annual_light_exposure_slot +title: Maximum Annual Light Exposure Slot +description: 'Maximum acceptable cumulative annual light exposure in lux-hours. + + + **ISO STANDARD REFERENCE VALUES**: + + - EN 16893:2018 (High sensitivity): <15,000 lux-hours/year + + - EN 16893:2018 (Medium sensitivity): <150,000 lux-hours/year + + - CIE 157:2004 (Textiles): <12,000 lux-hours/year + + - ASHRAE Guidelines: <50,000 lux-hours for sensitive materials + + + **CUMULATIVE EXPOSURE EXAMPLES** (at 50 lux): + + - 8 hours/day, 250 days/year = 100,000 lux-hours + + - 4 hours/day, 250 days/year = 50,000 lux-hours + + + **PRESERVATION CONTEXT**: + + Light damage follows the reciprocity law (Bunsen-Roscoe law): total exposure + + matters, not intensity alone. Annual limits ensure rotating displays and + + controlled access periods for highly sensitive materials. + + ' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + quantitykind: http://qudt.org/vocab/quantitykind/ + qudt_unit: http://qudt.org/vocab/unit/ + sosa: http://www.w3.org/ns/sosa/ + ssn: http://www.w3.org/ns/ssn/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + wd: http://www.wikidata.org/entity/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + max_annual_light_exposure: + description: "Maximum acceptable cumulative annual light exposure in lux-hours per year.\n\nBased on preservation standards:\n- High sensitivity (EN 16893): <15,000 lux-hours/year\n- Medium sensitivity (EN 16893): <150,000 lux-hours/year\n- Textiles (CIE 157): <12,000 lux-hours/year\n- General guidance (ASHRAE): <50,000 lux-hours/year\n\nLight damage is cumulative (reciprocity law). Annual limits mandate:\n- Rotating displays for sensitive works\n- Controlled access periods\n- Dark storage between exhibition periods\n\nExample: 50 lux \xD7 8 hours/day \xD7 250 days = 100,000 lux-hours (too high!)\n" + range: float + slot_uri: hc:maxAnnualLightExposure + close_mappings: + - sosa:ObservableProperty + - crm:E54_Dimension + related_mappings: + - quantitykind:LuminousExposure + - wd:Q194411 + - schema:maxValue + minimum_value: 0.0 + maximum_value: 500000.0 + see_also: + - https://www.nen.nl/en-16893-2018-en-274167 + - https://cie.co.at/publications/control-damage-museum-objects-optical-radiation + examples: + - value: 12000.0 + description: Maximum for textiles (CIE 157) + - value: 15000.0 + description: Maximum for highly sensitive materials (EN 16893) + - value: 50000.0 + description: General guidance for sensitive materials (ASHRAE) + - value: 150000.0 + description: Maximum for moderately sensitive materials (EN 16893) + annotations: + qudt_unit: unit:LUX-HR + ucum_code: lx.h + iso_reference: EN 16893:2018, CIE 157:2004 + preservation_parameter: 'true' + calculation_note: "lux-hours = illuminance (lux) \xD7 exposure time (hours)" + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/max_group_size.yaml b/schemas/20251121/linkml/modules/slots/archive/max_group_size.yaml new file mode 100644 index 0000000000..f3b5c26712 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/max_group_size.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/max_group_size +name: max_group_size_slot +title: Max Group Size Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + max_group_size: + description: 'Maximum group size that can be accommodated. + + + Schema.org: maximumAttendeeCapacity for capacity. + + ' + range: integer + slot_uri: hc:maxGroupSize + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:maxGroupSize diff --git a/schemas/20251121/linkml/modules/slots/archive/max_light_lux.yaml b/schemas/20251121/linkml/modules/slots/archive/max_light_lux.yaml new file mode 100644 index 0000000000..7e1061358e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/max_light_lux.yaml @@ -0,0 +1,65 @@ +id: https://nde.nl/ontology/hc/slot/max_light_lux +name: max_light_lux_slot +title: Maximum Light Level (Lux) Slot +description: "Maximum acceptable light level in lux for an environmental storage zone.\n\n**ISO STANDARD REFERENCE VALUES**:\n- ISO 11799:2015 (Archives): <50 lux for paper/parchment\n- EN 16893:2018 (Museums): <50 lux for highly sensitive materials\n- EN 16893:2018 (Museums): <200 lux for moderately sensitive\n- BS 4971:2017 (UK): 0 lux for storage, <50 lux access\n\n**SENSITIVITY CATEGORIES**:\n- High sensitivity (<50 lux): Paper, photographs, textiles, watercolors\n- Medium sensitivity (<200 lux): Oil paintings, wood, leather\n- Low sensitivity (<300 lux): Stone, ceramics, most metals\n\n**PRESERVATION CONTEXT**:\nLight damage is cumulative and irreversible. Total exposure (lux \xD7 hours)\ndetermines damage, following the reciprocity law. Fading, yellowing, and\nembrittlement result from photochemical degradation.\n" +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + quantitykind: http://qudt.org/vocab/quantitykind/ + qudt_unit: http://qudt.org/vocab/unit/ + sosa: http://www.w3.org/ns/sosa/ + ssn: http://www.w3.org/ns/ssn/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + wd: http://www.wikidata.org/entity/ + schema: http://schema.org/ + brick: https://brickschema.org/schema/Brick# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + max_light_lux: + description: "Maximum acceptable light level in lux (lumens per square meter).\n\nBased on ISO/EN preservation standards:\n- Archives (ISO 11799): <50 lux for paper/parchment\n- High sensitivity (EN 16893): <50 lux (textiles, watercolors, photos)\n- Medium sensitivity (EN 16893): <200 lux (oil paintings, leather)\n- Low sensitivity (EN 16893): <300 lux (ceramics, stone, metals)\n- UK Storage (BS 4971): 0 lux for closed storage\n\nLight damage is cumulative and irreversible. Damage follows the\nreciprocity law: 50 lux \xD7 8 hours = 400 lux \xD7 1 hour (same damage).\n" + range: float + slot_uri: hc:maxLightLux + close_mappings: + - sosa:ObservableProperty + - crm:E54_Dimension + - brick:Illuminance_Sensor + related_mappings: + - quantitykind:Illuminance + - wd:Q194411 + - schema:maxValue + minimum_value: 0.0 + maximum_value: 500.0 + see_also: + - https://www.iso.org/standard/63810.html + - https://www.nen.nl/en-16893-2018-en-274167 + examples: + - value: 0.0 + description: Dark storage - zero light exposure + - value: 50.0 + description: Maximum for highly sensitive materials (paper, textiles) + - value: 200.0 + description: Maximum for moderately sensitive materials (oil paintings) + - value: 300.0 + description: Maximum for low sensitivity materials (ceramics, metals) + annotations: + qudt_unit: unit:LUX + ucum_code: lx + iso_reference: ISO 11799:2015, EN 16893:2018, BS 4971:2017 + preservation_parameter: 'true' + sensitivity_thresholds: 'high_sensitivity: 50 lux + + medium_sensitivity: 200 lux + + low_sensitivity: 300 lux + + ' + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/max_likelihood_score.yaml b/schemas/20251121/linkml/modules/slots/archive/max_likelihood_score.yaml new file mode 100644 index 0000000000..175002f6d3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/max_likelihood_score.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/max_likelihood_score +name: max_likelihood_score_slot +title: Max Likelihood Score Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + max_likelihood_score: + description: 'Maximum possible score (typically 100). + + **Ontology mapping**: Uses sosa:hasSimpleResult because this is a computed maximum value from a scoring system.' + range: integer + slot_uri: sosa:hasSimpleResult + annotations: + custodian_types: '["*"]' + exact_mappings: + - sosa:hasSimpleResult diff --git a/schemas/20251121/linkml/modules/slots/archive/maximal_of_maximal.yaml b/schemas/20251121/linkml/modules/slots/archive/maximal_of_maximal.yaml new file mode 100644 index 0000000000..d00ddfda06 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/maximal_of_maximal.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/maximal_of_maximal +name: maximal_of_maximal_slot +title: Maximal of Maximal Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + maximal_of_maximal: + slot_uri: crm:P90b_has_upper_value_limit + description: "Upper bound value of a range (CIDOC-CRM pattern for dimensional ranges).\n\n**CIDOC-CRM Alignment**:\nMaps to P90b_has_upper_value_limit which defines the highest value that\na dimension may have within an instance of E54 Dimension.\n\n**USE CASE - Grant Ranges**:\nFor grant funding ranges like \"\u20AC100K-\u20AC500K\":\n- minimal_of_minimal: Quantity(100000, EUR)\n- maximal_of_maximal: Quantity(500000, EUR)\n\n**TEMPORAL CONTEXT**:\nNamed \"maximal_of_maximal\" (not just \"maximum\") to acknowledge that the\nupper bound itself may have uncertainty - this is the maximum of the maximum.\n" + range: string # uriorcurie + # range: Quantity + inlined: false # Fixed invalid inline for primitive type + required: false + multivalued: false + exact_mappings: + - crm:P90b_has_upper_value_limit + close_mappings: + - schema:maxValue + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all custodian types dealing with quantities that have ranges. + custodian_types_primary: '*' + specificity_score: 0.35 + specificity_rationale: General utility slot for expressing upper bounds of any measured range. + examples: + - value: "maximal_of_maximal:\n quantity_value: 500000\n has_or_had_measurement_unit:\n unit_label: \"EUR\"\n" + description: "Upper bound of \u20AC500K for grant range" + comments: + - Created from slot_fixes.yaml migration (2026-01-14) + - Part of GrantRange class (branch 2 per slot_fixes.yaml) + - CIDOC-CRM P90b for dimensional upper bounds + - Works with minimal_of_minimal for complete range specification diff --git a/schemas/20251121/linkml/modules/slots/archive/maximum_amount.yaml b/schemas/20251121/linkml/modules/slots/archive/maximum_amount.yaml new file mode 100644 index 0000000000..1b28316a1d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/maximum_amount.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/maximum_amount +name: maximum_amount_slot +title: Maximum Amount Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + maximum_amount: + range: decimal + description: 'Maximum amount for this scheme tier (if applicable). + + Helps distinguish between tiered patron levels. + + ' + slot_uri: hc:maximumAmount + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:maximumAmount diff --git a/schemas/20251121/linkml/modules/slots/archive/measurement_data.yaml b/schemas/20251121/linkml/modules/slots/archive/measurement_data.yaml new file mode 100644 index 0000000000..75367ed386 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/measurement_data.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/measurement_data +name: measurement_data_slot +title: Measurement Data Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + measurement_data: + description: 'Structured measurement data from sensors or instruments. + + + JSON-LD compatible structure for environmental readings: + + - temperature_celsius + + - humidity_percent + + - lux_level + + - particulate_count + + - etc. + + ' + range: string + slot_uri: hc:measurementData + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:measurementData diff --git a/schemas/20251121/linkml/modules/slots/archive/measurement_date.yaml b/schemas/20251121/linkml/modules/slots/archive/measurement_date.yaml new file mode 100644 index 0000000000..e08f211079 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/measurement_date.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/measurement_date +name: measurement_date_slot +title: Measurement Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + measurement_date: + slot_uri: hc:measurement_date + range: date + description: 'Measurement Date for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:measurement_date diff --git a/schemas/20251121/linkml/modules/slots/archive/measurement_method.yaml b/schemas/20251121/linkml/modules/slots/archive/measurement_method.yaml new file mode 100644 index 0000000000..2c72fe40e8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/measurement_method.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/measurement_method +name: measurement_method_slot +title: Measurement Method Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + measurement_method: + slot_uri: hc:measurement_method + range: string + description: 'Measurement Method for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:measurement_method diff --git a/schemas/20251121/linkml/modules/slots/archive/measures_or_measured.yaml b/schemas/20251121/linkml/modules/slots/archive/measures_or_measured.yaml new file mode 100644 index 0000000000..cb87c018a7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/measures_or_measured.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/measures_or_measured +name: measures_or_measured +title: measures_or_measured +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + measures_or_measured: + name: measures_or_measured + title: measures_or_measured + description: Measures an impact or quality. + slot_uri: schema:result + range: string # uriorcurie + # range: ImpactMeasurement + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:result diff --git a/schemas/20251121/linkml/modules/slots/archive/medium.yaml b/schemas/20251121/linkml/modules/slots/archive/medium.yaml new file mode 100644 index 0000000000..519cfd3e96 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/medium.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/medium +name: medium_slot +title: Medium Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + medium: + description: 'Materials and techniques used to create the object. + + Use standard art historical terminology. + + ' + range: string + slot_uri: schema:artMedium + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:artMedium diff --git a/schemas/20251121/linkml/modules/slots/archive/member_of.yaml b/schemas/20251121/linkml/modules/slots/archive/member_of.yaml new file mode 100644 index 0000000000..d9744799b1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/member_of.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/member_of +name: member_of_slot +title: member_of slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + member_of: + slot_uri: org:memberOf + description: "The organization this entity is a member of.\n\n**Key Conceptual Distinction:**\n\n- Organization is the ORGANIZATION (e.g., OCLC is a StandardsOrganization)\n- Services are SERVICES operated by organizations (e.g., VIAF is a service)\n\nThere is no separate \"VIAF Consortium\" organization. The VIAF Council is an\nadvisory body WITHIN OCLC's governance structure.\n\n**Relationship Chain:**\n\nContributingAgency (e.g., KB/NTA)\n - member_of -> OCLC (organization)\n - contributes_to -> VIAF (service)\n - governance_role -> VOTING_MEMBER (council role)\n" + range: string # uriorcurie + # range: StandardsOrganization + multivalued: true + inlined: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - org:memberOf diff --git a/schemas/20251121/linkml/modules/slots/archive/member_organization_name.yaml b/schemas/20251121/linkml/modules/slots/archive/member_organization_name.yaml new file mode 100644 index 0000000000..7115126910 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/member_organization_name.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/member_organization_name +name: member_organization_name_slot +title: Member Organization Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + member_organization_name: + slot_uri: hc:member_organization_name + range: string + description: 'Member Organization Name for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:member_organization_name diff --git a/schemas/20251121/linkml/modules/slots/archive/member_organization_url.yaml b/schemas/20251121/linkml/modules/slots/archive/member_organization_url.yaml new file mode 100644 index 0000000000..a80c43ec3c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/member_organization_url.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/member_organization_url +name: member_organization_url_slot +title: Member Organization Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + member_organization_url: + slot_uri: hc:member_organization_url + range: uri + description: 'Member Organization Url for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:member_organization_url diff --git a/schemas/20251121/linkml/modules/slots/archive/membership_criteria.yaml b/schemas/20251121/linkml/modules/slots/archive/membership_criteria.yaml new file mode 100644 index 0000000000..aeaccd2fad --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/membership_criteria.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/membership_criteria +name: membership_criteria +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + membership_criteria: + slot_uri: schema:eligibleRegion + description: 'Criteria for custodians to become members of this encompassing body. + + + **UmbrellaOrganisation**: Defined by law/statute (non-voluntary) + + **NetworkOrganisation**: Service eligibility criteria (voluntary) + + **Consortium**: Membership agreement criteria (voluntary) + + ' + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:eligibleRegion diff --git a/schemas/20251121/linkml/modules/slots/archive/membership_id.yaml b/schemas/20251121/linkml/modules/slots/archive/membership_id.yaml new file mode 100644 index 0000000000..ba4845f68d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/membership_id.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/membership_id +name: membership_id_slot +title: Membership Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + membership_id: + slot_uri: hc:membership_id + range: string + description: 'Membership Id for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:membership_id diff --git a/schemas/20251121/linkml/modules/slots/archive/membership_required.yaml b/schemas/20251121/linkml/modules/slots/archive/membership_required.yaml new file mode 100644 index 0000000000..7c3015771b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/membership_required.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/membership_required +name: membership_required_slot +title: Membership Required Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + membership_required: + slot_uri: schema:eligibilityToWorkRequirement + description: 'Whether library access or borrowing requires paid or registered membership. + + True = must join/pay to use library services + + False = open to all (may still need free registration for borrowing) + + ' + range: boolean + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:eligibilityToWorkRequirement diff --git a/schemas/20251121/linkml/modules/slots/archive/membership_role.yaml b/schemas/20251121/linkml/modules/slots/archive/membership_role.yaml new file mode 100644 index 0000000000..8934e6d1d7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/membership_role.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/membership_role +name: membership_role_slot +title: Membership Role Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + membership_role: + slot_uri: hc:membership_role + range: string + description: 'Membership Role for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:membership_role diff --git a/schemas/20251121/linkml/modules/slots/archive/membership_size.yaml b/schemas/20251121/linkml/modules/slots/archive/membership_size.yaml new file mode 100644 index 0000000000..8294054261 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/membership_size.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/membership_size +name: membership_size_slot +title: Membership Size Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + membership_size: + description: The number of members in a heritage society, association, or membership-based organization. May be expressed as an exact count, range, or category (e.g., "small", "50-100", "500+"). + range: string + slot_uri: schema:numberOfEmployees + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:numberOfEmployees diff --git a/schemas/20251121/linkml/modules/slots/archive/membership_type.yaml b/schemas/20251121/linkml/modules/slots/archive/membership_type.yaml new file mode 100644 index 0000000000..0df0be2f64 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/membership_type.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/membership_type +name: membership_type_slot +title: Membership Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + membership_type: + slot_uri: hc:membership_type + range: string + description: 'Membership Type for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:membership_type diff --git a/schemas/20251121/linkml/modules/slots/archive/metadata_standard.yaml b/schemas/20251121/linkml/modules/slots/archive/metadata_standard.yaml new file mode 100644 index 0000000000..b1e7b9b7b3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/metadata_standard.yaml @@ -0,0 +1,50 @@ +id: https://nde.nl/ontology/hc/slot/metadata_standard +name: metadata_standard_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + metadata_standard: + slot_uri: dcterms:conformsTo + range: string + multivalued: true + description: 'Metadata standards implemented by this platform. + + + Dublin Core: conformsTo for standard compliance. + + + Examples: + + - "Dublin Core" + + - "MARC21" + + - "EAD (Encoded Archival Description)" + + - "LIDO" + + - "MODS" + + - "EDM (Europeana Data Model)" + + - "Schema.org" + + - "CIDOC-CRM" + + ' + close_mappings: + - dcterms:conformsTo + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/method.yaml b/schemas/20251121/linkml/modules/slots/archive/method.yaml new file mode 100644 index 0000000000..8f54dd75f8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/method.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/method +name: method_slot +imports: +- linkml:types +slots: + method: + slot_uri: dcterms:description + range: string + description: 'Detailed method description for entity resolution. + + Dublin Core: description for methodology documentation. + + ' + exact_mappings: + - prov:wasGeneratedBy + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_agent.yaml b/schemas/20251121/linkml/modules/slots/archive/methodology_type.yaml similarity index 69% rename from schemas/20251121/linkml/modules/slots/has_or_had_agent.yaml rename to schemas/20251121/linkml/modules/slots/archive/methodology_type.yaml index a5246e73a1..ddd95550fe 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_agent.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/methodology_type.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_agent -name: has_or_had_agent_slot -title: Has Or Had Agent Slot +id: https://nde.nl/ontology/hc/slot/methodology_type +name: methodology_type_slot +title: Methodology Type Slot prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -16,14 +16,14 @@ default_prefix: hc imports: - linkml:types slots: - has_or_had_agent: - slot_uri: hc:has_or_had_agent + methodology_type: + slot_uri: hc:methodology_type range: string - description: 'Has Or Had Agent for heritage custodian entities. + description: 'Methodology Type for heritage custodian entities. ' annotations: custodian_types: '["*"]' specificity_score: 0.5 exact_mappings: - - hc:has_or_had_agent + - hc:methodology_type diff --git a/schemas/20251121/linkml/modules/slots/archive/metrics_observed_at.yaml b/schemas/20251121/linkml/modules/slots/archive/metrics_observed_at.yaml new file mode 100644 index 0000000000..65c32a3289 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/metrics_observed_at.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/metrics_observed_at +name: metrics_observed_at_slot +title: Metrics Observed At Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + metrics_observed_at: + slot_uri: prov:atTime + description: 'Timestamp when engagement metrics were recorded. + + + PROV-O: atTime for observation timestamp. + + + **CRITICAL**: Metrics change constantly. This timestamp + + indicates when view_count, like_count, etc. were observed. + + ' + range: datetime + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:atTime diff --git a/schemas/20251121/linkml/modules/slots/archive/metrics_observed_date.yaml b/schemas/20251121/linkml/modules/slots/archive/metrics_observed_date.yaml new file mode 100644 index 0000000000..b14e22b475 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/metrics_observed_date.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/metrics_observed_date +name: metrics_observed_date_slot +title: Metrics Observed Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + metrics_observed_date: + description: 'Date when the metrics (follower_count, post_count, etc.) were observed. + + + PROV-O: atTime for temporal observation. + + + Social media metrics change constantly - this timestamp + + indicates when the snapshot was taken. + + ' + range: datetime + slot_uri: dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:date diff --git a/schemas/20251121/linkml/modules/slots/archive/michelin_star.yaml b/schemas/20251121/linkml/modules/slots/archive/michelin_star.yaml new file mode 100644 index 0000000000..c32041dd3d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/michelin_star.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/michelin_star +name: michelin_star_slot +title: michelin_stars slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + michelin_star: + slot_uri: schema:award + description: 'Number of Michelin stars if applicable. + + ' + range: integer + minimum_value: 1 + maximum_value: 3 + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:award diff --git a/schemas/20251121/linkml/modules/slots/archive/minimal_of_minimal.yaml b/schemas/20251121/linkml/modules/slots/archive/minimal_of_minimal.yaml new file mode 100644 index 0000000000..447792575e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/minimal_of_minimal.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/minimal_of_minimal +name: minimal_of_minimal_slot +title: Minimal of Minimal Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + minimal_of_minimal: + slot_uri: crm:P90a_has_lower_value_limit + description: "Lower bound value of a range (CIDOC-CRM pattern for dimensional ranges).\n\n**CIDOC-CRM Alignment**:\nMaps to P90a_has_lower_value_limit which defines the lowest value that\na dimension may have within an instance of E54 Dimension.\n\n**USE CASE - Grant Ranges**:\nFor grant funding ranges like \"\u20AC100K-\u20AC500K\":\n- minimal_of_minimal: Quantity(100000, EUR)\n- maximal_of_maximal: Quantity(500000, EUR)\n\n**TEMPORAL CONTEXT**:\nNamed \"minimal_of_minimal\" (not just \"minimum\") to acknowledge that the\nlower bound itself may have uncertainty - this is the minimum of the minimum.\n" + range: string # uriorcurie + # range: Quantity + inlined: false # Fixed invalid inline for primitive type + required: false + multivalued: false + exact_mappings: + - crm:P90a_has_lower_value_limit + close_mappings: + - schema:minValue + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all custodian types dealing with quantities that have ranges. + custodian_types_primary: '*' + specificity_score: 0.35 + specificity_rationale: General utility slot for expressing lower bounds of any measured range. + examples: + - value: "minimal_of_minimal:\n quantity_value: 100000\n has_or_had_measurement_unit:\n unit_label: \"EUR\"\n" + description: "Lower bound of \u20AC100K for grant range" + comments: + - Created from slot_fixes.yaml migration (2026-01-14) + - Part of GrantRange class (branch 1 per slot_fixes.yaml) + - CIDOC-CRM P90a for dimensional lower bounds + - Works with maximal_of_maximal for complete range specification diff --git a/schemas/20251121/linkml/modules/slots/archive/minimum_amount.yaml b/schemas/20251121/linkml/modules/slots/archive/minimum_amount.yaml new file mode 100644 index 0000000000..2cb3761b2c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/minimum_amount.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/minimum_amount +name: minimum_amount_slot +title: Minimum Amount Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + minimum_amount: + range: decimal + description: 'Minimum donation amount required to participate in this scheme. + + For tiered schemes, use the entry-level amount. + + ' + slot_uri: hc:minimumAmount + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:minimumAmount diff --git a/schemas/20251121/linkml/modules/slots/archive/minimum_donation.yaml b/schemas/20251121/linkml/modules/slots/archive/minimum_donation.yaml new file mode 100644 index 0000000000..c268b0cefe --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/minimum_donation.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/minimum_donation +name: minimum_donation +title: Minimum Donation Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + minimum_donation: + slot_uri: schema:minPrice + range: decimal + description: 'Minimum donation amount for tax deductibility to apply. + + Currency assumed to be the jurisdiction''s local currency. + + ' + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:minPrice diff --git a/schemas/20251121/linkml/modules/slots/archive/minimum_partner.yaml b/schemas/20251121/linkml/modules/slots/archive/minimum_partner.yaml new file mode 100644 index 0000000000..47b24f282a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/minimum_partner.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/minimum_partner +name: minimum_partner_slot +title: Minimum Partners Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + minimum_partner: + range: integer + description: Minimum number of partners required (if partnership required) + slot_uri: hc:minimumPartners + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:minimumPartners diff --git a/schemas/20251121/linkml/modules/slots/archive/mission_statement.yaml b/schemas/20251121/linkml/modules/slots/archive/mission_statement.yaml new file mode 100644 index 0000000000..62b927ae60 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/mission_statement.yaml @@ -0,0 +1,75 @@ +id: https://nde.nl/ontology/hc/slot/mission_statement +name: mission_statement +title: Mission Statement Slot +prefixes: + org: http://www.w3.org/ns/org# + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +description: 'Links a Custodian to its documented mission, vision, goal, and value statements. + + + Heritage custodians publish purpose statements on their websites that articulate: + + - **Mission**: Why the organization exists (core purpose) + + - **Vision**: What future state they aspire to (aspirational) + + - **Goals**: Specific measurable objectives + + - **Values**: Guiding principles + + - **Motto**: Memorable phrases/slogans + + + This slot enables capturing these statements with full provenance, including: + + - Source URL and retrieval timestamp + + - XPath/CSS selector for verification + + - Content hash for integrity + + - Archive links for long-term access + + + **W3C Org Ontology**: + + Uses `org:purpose` property which "indicates the purpose of this Organization." + + + **Multiple Statements**: + + A custodian may have multiple purpose statements (mission + vision + goals). + + Each statement is captured as a separate MissionStatement instance. + + ' +slots: + mission_statement: + slot_uri: org:purpose + range: string # uriorcurie + # range: MissionStatement + multivalued: true + inlined_as_list: false # Fixed invalid inline for primitive type + required: false + description: "Mission, vision, goal, value, and motto statements documented for this custodian.\n\nLinks to MissionStatement instances that capture organizational purpose\nwith full provenance (source URL, XPath, content hash, archive link).\n\n**Statement Types**:\n- **mission**: Core purpose (why we exist) - \"missie\" in Dutch\n- **vision**: Aspirational future (what we aim for) - \"visie\" in Dutch\n- **goal**: Specific objectives (what we pursue) - \"doelstelling\" in Dutch\n- **value**: Guiding principles (how we work) - \"kernwaarden\" in Dutch\n- **motto**: Memorable phrase (brand identity) - \"slagzin\" in Dutch\n\n**Why on Custodian (not CustodianLegalStatus)?**:\n\nMission statements express OPERATIONAL purpose, not legal obligations.\nThey may change without legal reorganization, and often reflect\npublic-facing identity rather than formal statutes.\n\n**Provenance Requirements**:\n\nFollowing the WebObservation pattern, every MissionStatement MUST have:\n1. `source_url`:\ + \ URL where statement was found\n2. `retrieved_on`: When the page was archived\n3. `xpath` or `css_selector`: Location in HTML for verification\n4. `html_file`: Path to archived HTML\n5. `content_hash`: SHA-256 for integrity (recommended)\n\n**Example - Dutch Museum**:\n```yaml\nCustodian:\n hc_id: \"https://nde.nl/ontology/hc/nl-zh-zui-m-lmt\"\n preferred_label: \"Landbouwmuseum Tiengemeten\"\n \n mission_statement:\n - statement_type: mission\n statement_text: \"Waar komt ons voedsel \xE9cht vandaan.\"\n statement_language: nl\n source_url: \"https://www.landbouwmuseumtiengemeten.nl/het-museum/missie-en-visie\"\n retrieved_on: \"2025-12-29T10:00:00Z\"\n \n - statement_type: vision\n statement_text: |\n Het Landbouwmuseum Tiengemeten voelt zich onderdeel van een\n belangrijke agrarische ontwikkeling, de mechanisatie tussen\n 1920 en 1955. De collectie is relevant en de presentatie\n verbindt generaties.\n statement_language:\ + \ nl\n source_url: \"https://www.landbouwmuseumtiengemeten.nl/het-museum/missie-en-visie\"\n retrieved_on: \"2025-12-29T10:00:00Z\"\n```\n" + close_mappings: + - org:purpose + annotations: + custodian_types: '["*"]' +comments: +- Maps to org:purpose from W3C Organization Ontology +- Multivalued to support mission + vision + goals + values +- Each MissionStatement has full provenance (source_url, xpath, content_hash) +- Statement text preserved in original language (statement_language field) diff --git a/schemas/20251121/linkml/modules/slots/archive/mixed_governance_structure.yaml b/schemas/20251121/linkml/modules/slots/archive/mixed_governance_structure.yaml new file mode 100644 index 0000000000..f703480c0e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/mixed_governance_structure.yaml @@ -0,0 +1,57 @@ +id: https://nde.nl/ontology/hc/slot/mixed_governance_structure +name: mixed_governance_structure_slot +title: Mixed Governance Structure Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + mixed_governance_structure: + description: 'How the institution is organized to manage multiple functions. + + + Describes governance and management: + + - **Leadership**: Single director vs. co-directors vs. separate department heads + + - **Budgeting**: Unified budget vs. separate program budgets + + - **Staffing**: Cross-functional teams vs. separate departments + + - **Decision-making**: Unified strategic planning vs. siloed operations + + - **Reporting**: Single board vs. advisory boards per function + + - **Legal structure**: Single legal entity vs. multiple entities under umbrella + + + Organizational structure reveals depth of institutional integration. + + + Examples: + + - "Single director, Unified budget, Cross-functional departments (archival + curatorial)" + + - "Director + Deputy (museum) + Deputy (library), Unified board, Separate budgets" + + - "Two co-directors (archive + museum), Unified operations, Shared staffing pool" + + - "Single CEO, Four departments (collections, exhibitions, education, digital)" + + ' + range: string + slot_uri: schema:organizationRole + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:organizationRole diff --git a/schemas/20251121/linkml/modules/slots/archive/model.yaml b/schemas/20251121/linkml/modules/slots/archive/model.yaml new file mode 100644 index 0000000000..593bcf1c1b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/model.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/model +name: model_slot +title: model slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + model: + description: 'The LLM model identifier from the API response. + + PROV-O: Part of prov:wasAssociatedWith - identifies the specific model version. + + + Common values: + + - glm-4.7: ZhipuAI GLM 4.7 (with Interleaved Thinking) + + - glm-4.6: ZhipuAI GLM 4.6 + + - claude-3-opus-20240229: Anthropic Claude Opus + + - gpt-4-turbo: OpenAI GPT-4 Turbo + + ' + slot_uri: schema:softwareVersion + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:softwareVersion diff --git a/schemas/20251121/linkml/modules/slots/archive/model_architecture.yaml b/schemas/20251121/linkml/modules/slots/archive/model_architecture.yaml new file mode 100644 index 0000000000..364d40b187 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/model_architecture.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/model_architecture +name: model_architecture_slot +title: Model Architecture Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + model_architecture: + slot_uri: hc:modelArchitecture + description: 'Architecture type of the CV/ML model used. + + + **Common Architectures**: + + - CNN: Convolutional Neural Network (ResNet, VGG, EfficientNet) + + - Transformer: Vision Transformer (ViT, Swin, CLIP) + + - Hybrid: Combined architectures (DETR, ConvNeXt) + + - RNN: Recurrent (for temporal analysis) + + - GAN: Generative (for reconstruction tasks) + + + Useful for understanding model capabilities and limitations. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:modelArchitecture diff --git a/schemas/20251121/linkml/modules/slots/archive/model_provider.yaml b/schemas/20251121/linkml/modules/slots/archive/model_provider.yaml new file mode 100644 index 0000000000..e5840cbc27 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/model_provider.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/model_provider +name: model_provider_slot +title: Model Provider Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + model_provider: + slot_uri: hc:modelProvider + description: 'Provider or vendor of the generation model/service. + + + Schema.org: provider for service provider. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:modelProvider diff --git a/schemas/20251121/linkml/modules/slots/archive/model_task.yaml b/schemas/20251121/linkml/modules/slots/archive/model_task.yaml new file mode 100644 index 0000000000..1ebfb9fcb4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/model_task.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/model_task +name: model_task_slot +title: Model Task Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + model_task: + slot_uri: hc:modelTask + description: 'Specific task the model was trained for. + + + **Common Tasks**: + + - classification: Image/frame classification + + - detection: Object detection with bounding boxes + + - segmentation: Pixel-level classification + + - captioning: Image/video captioning + + - embedding: Feature extraction for similarity + + + A model''s task determines its output format. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:modelTask diff --git a/schemas/20251121/linkml/modules/slots/archive/model_version.yaml b/schemas/20251121/linkml/modules/slots/archive/model_version.yaml new file mode 100644 index 0000000000..1cd3c34745 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/model_version.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/model_version +name: model_version_slot +title: Model Version Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + model_version: + slot_uri: hc:modelVersion + description: 'Version of the model or tool used for generation. + + + Schema.org: softwareVersion for version tracking. + + + Critical for reproducibility and quality assessment. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:modelVersion diff --git a/schemas/20251121/linkml/modules/slots/archive/modern_place_name.yaml b/schemas/20251121/linkml/modules/slots/archive/modern_place_name.yaml new file mode 100644 index 0000000000..e94d9964fd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/modern_place_name.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/modern_place_name +name: modern_place_name_slot +title: Modern Place Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + modern_place_name: + slot_uri: hc:modern_place_name + range: string + description: 'Modern Place Name for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:modern_place_name diff --git a/schemas/20251121/linkml/modules/slots/archive/modified.yaml b/schemas/20251121/linkml/modules/slots/archive/modified.yaml new file mode 100644 index 0000000000..f81851ca63 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/modified.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/modified +name: modified_slot +imports: +- linkml:types +slots: + modified: + slot_uri: schema:dateModified + range: datetime + description: 'Timestamp when this database record was last modified. + + IMPORTANT: This is NOT the custodian''s dissolution date - it''s metadata about the digital record. + + Use CustodianLegalStatus.dissolution_date or temporal_extent for entity lifecycle. + + ' + exact_mappings: + - dcterms:modified + - schema:dateModified + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/monitoring_platform.yaml b/schemas/20251121/linkml/modules/slots/archive/monitoring_platform.yaml new file mode 100644 index 0000000000..1cc7ec47ce --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/monitoring_platform.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/monitoring_platform +name: monitoring_platform_slot +title: Monitoring Platform Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + monitoring_platform: + description: 'Name/description of the sensor platform monitoring this zone. + + + HC Ontology: `hc:monitoredByPlatform` (subproperty of sosa:isFeatureOfInterestOf) + + + Examples: Hanwell, Meaco, EBI dataloggers + + ' + range: string + slot_uri: hc:monitoringPlatform + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:monitoringPlatform diff --git a/schemas/20251121/linkml/modules/slots/archive/monitoring_platform_url.yaml b/schemas/20251121/linkml/modules/slots/archive/monitoring_platform_url.yaml new file mode 100644 index 0000000000..687dc3ec11 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/monitoring_platform_url.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/monitoring_platform_url +name: monitoring_platform_url_slot +title: Monitoring Platform Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + monitoring_platform_url: + description: 'URL for accessing monitoring dashboard or API. + + ' + range: uri + slot_uri: hc:monitoringPlatformUrl + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:monitoringPlatformUrl diff --git a/schemas/20251121/linkml/modules/slots/archive/monument_number.yaml b/schemas/20251121/linkml/modules/slots/archive/monument_number.yaml new file mode 100644 index 0000000000..d6466e9ac7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/monument_number.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/monument_number +name: monument_number_slot +title: Monument Number Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + monument_number: + description: 'Monument registry number. + + + For Dutch Rijksmonumenten, this is the monumentnummer. + + ' + range: string + slot_uri: hc:monumentNumber + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:monumentNumber diff --git a/schemas/20251121/linkml/modules/slots/archive/motivation_type_description.yaml b/schemas/20251121/linkml/modules/slots/archive/motivation_type_description.yaml new file mode 100644 index 0000000000..d8c85dff0d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/motivation_type_description.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/motivation_type_description +name: motivation_type_description_slot +title: Motivation Type Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + motivation_type_description: + description: Detailed description of an annotation motivation type including purpose, characteristics, and typical use cases. + range: string + slot_uri: skos:definition + exact_mappings: + - skos:definition + close_mappings: + - dcterms:description + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + specificity_score: 0.6 + specificity_rationale: Moderately specific to annotation systems. diff --git a/schemas/20251121/linkml/modules/slots/archive/motivation_type_id.yaml b/schemas/20251121/linkml/modules/slots/archive/motivation_type_id.yaml new file mode 100644 index 0000000000..a4a090942d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/motivation_type_id.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/motivation_type_id +name: motivation_type_id_slot +title: Motivation Type ID Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + motivation_type_id: + description: Unique identifier for an annotation motivation type. + range: string # uriorcurie + slot_uri: dcterms:identifier + exact_mappings: + - dcterms:identifier + close_mappings: + - skos:notation + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types that use annotations. + specificity_score: 0.6 + specificity_rationale: Moderately specific to annotation systems. diff --git a/schemas/20251121/linkml/modules/slots/archive/motivation_type_name.yaml b/schemas/20251121/linkml/modules/slots/archive/motivation_type_name.yaml new file mode 100644 index 0000000000..ef7b4e79ed --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/motivation_type_name.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/motivation_type_name +name: motivation_type_name_slot +title: Motivation Type Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + motivation_type_name: + description: 'Canonical name for this motivation type. + + Used for display and cross-referencing. + + ' + range: string + slot_uri: skos:prefLabel + exact_mappings: + - skos:prefLabel + close_mappings: + - rdfs:label + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + specificity_score: 0.6 + specificity_rationale: Moderately specific to annotation systems. diff --git a/schemas/20251121/linkml/modules/slots/archive/multilingual_label.yaml b/schemas/20251121/linkml/modules/slots/archive/multilingual_label.yaml new file mode 100644 index 0000000000..598dec2833 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/multilingual_label.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/multilingual_label +name: multilingual_label_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + multilingual_label: + slot_uri: skos:altLabel + description: 'Labels for this platform type in multiple languages. + + Stored as language-tagged strings (e.g., "digitale Bibliothek@de"). + + ' + range: string + multivalued: true + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:altLabel diff --git a/schemas/20251121/linkml/modules/slots/archive/museum_search_score.yaml b/schemas/20251121/linkml/modules/slots/archive/museum_search_score.yaml new file mode 100644 index 0000000000..c37ef164b8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/museum_search_score.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/museum_search_score +name: museum_search_score_slot +title: Museum Search Score Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + museum_search_score: + slot_uri: sosa:hasSimpleResult + range: float + minimum_value: 0.0 + maximum_value: 1.0 + description: 'Specificity score for museum and gallery queries. + + **Ontology mapping**: Uses sosa:hasSimpleResult because this is a computed relevance score from search/retrieval algorithms acting as observation systems.' + close_mappings: + - prov:value + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/museum_subtype.yaml b/schemas/20251121/linkml/modules/slots/archive/museum_subtype.yaml new file mode 100644 index 0000000000..72505e2530 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/museum_subtype.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/museum_subtype +name: museum_subtype_slot +title: Museum Subtype Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/MuseumTypeEnum +default_prefix: hc +slots: + museum_subtype: + slot_uri: skos:narrower + description: 'Specific museum subtype from the MuseumTypeEnum taxonomy (187 types). + + Each value links to a Wikidata entity describing a specific type of museum. + + Examples: ART_MUSEUM, NATURAL_HISTORY_MUSEUM, SCIENCE_MUSEUM, OPEN_AIR_MUSEUM, etc. + + ' + range: string # uriorcurie + # range: MuseumTypeEnum + required: false + multivalued: true + comments: + - Values extracted from Wikidata hyponyms of Q33506 (museum) + - Each value has a wikidata:QID meaning for Linked Open Data + - Includes multilingual labels (en, nl, de, fr, es) + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:narrower diff --git a/schemas/20251121/linkml/modules/slots/archive/museum_type_classification.yaml b/schemas/20251121/linkml/modules/slots/archive/museum_type_classification.yaml new file mode 100644 index 0000000000..a32822fb94 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/museum_type_classification.yaml @@ -0,0 +1,45 @@ +id: https://nde.nl/ontology/hc/slot/museum_type_classification +name: museum_type_classification_slot +title: museum_type_classification slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/MuseumTypeEnum +default_prefix: hc +slots: + museum_type_classification: + slot_uri: schema:additionalType + description: 'Optional museum type classification from MuseumTypeEnum. + + + Use when exhibition space functions as museum-style venue. + + Links to Wikidata-sourced museum types (187 types). + + + Examples: + + - ART_MUSEUM (Q207694) + + - HISTORY_MUSEUM (Q17431399) + + - SCIENCE_MUSEUM (Q2087181) + + ' + range: string # uriorcurie + # range: MuseumTypeEnum + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:additionalType diff --git a/schemas/20251121/linkml/modules/slots/archive/music_confidence.yaml b/schemas/20251121/linkml/modules/slots/archive/music_confidence.yaml new file mode 100644 index 0000000000..eb494e755b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/music_confidence.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/music_confidence +name: music_confidence_slot +title: Music Confidence Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + music_confidence: + description: 'Overall confidence of music detection (0.0-1.0). + + + Average confidence across all music segments. + + + **Ontology mapping**: Uses sosa:hasSimpleResult because music detection models act as sensors producing observation results. + + ' + range: float + minimum_value: 0.0 + maximum_value: 1.0 + slot_uri: sosa:hasSimpleResult + close_mappings: + - prov:value + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/music_detected.yaml b/schemas/20251121/linkml/modules/slots/archive/music_detected.yaml new file mode 100644 index 0000000000..b0fa0fcd38 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/music_detected.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/music_detected +name: music_detected_slot +title: Music Detected Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + music_detected: + description: 'Whether music was detected in the audio. + + + - true: Musical content detected (any amount) + + - false: No music detected (speech-only, silence) + + ' + range: boolean + slot_uri: hc:musicDetected + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:musicDetected diff --git a/schemas/20251121/linkml/modules/slots/archive/music_end_seconds.yaml b/schemas/20251121/linkml/modules/slots/archive/music_end_seconds.yaml new file mode 100644 index 0000000000..aa5d676e0f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/music_end_seconds.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/music_end_seconds +name: music_end_seconds_slot +title: Music End Seconds Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + music_end_seconds: + description: End time in seconds + range: float + slot_uri: hc:musicEndSeconds + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:musicEndSeconds diff --git a/schemas/20251121/linkml/modules/slots/archive/music_genre.yaml b/schemas/20251121/linkml/modules/slots/archive/music_genre.yaml new file mode 100644 index 0000000000..d710ecd39c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/music_genre.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/music_genre +name: music_genre_slot +title: Music Genre Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + music_genre: + description: Detected music genre + range: string + slot_uri: hc:musicGenre + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:musicGenre diff --git a/schemas/20251121/linkml/modules/slots/archive/music_genres_detected.yaml b/schemas/20251121/linkml/modules/slots/archive/music_genres_detected.yaml new file mode 100644 index 0000000000..dcad140407 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/music_genres_detected.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/music_genres_detected +name: music_genres_detected_slot +title: Music Genres Detected Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + music_genres_detected: + description: 'Music genres detected in audio. + + + **Common Heritage Genres**: + + - classical: Art music, orchestral + + - baroque: Period-specific classical + + - jazz: Jazz performances + + - folk: Traditional/folk music + + - ambient: Background/atmospheric + + - electronic: Modern electronic music + + ' + range: string + multivalued: true + slot_uri: hc:musicGenresDetected + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:musicGenresDetected diff --git a/schemas/20251121/linkml/modules/slots/archive/music_segment_confidence.yaml b/schemas/20251121/linkml/modules/slots/archive/music_segment_confidence.yaml new file mode 100644 index 0000000000..0f518c6ae2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/music_segment_confidence.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/music_segment_confidence +name: music_segment_confidence_slot +title: Music Segment Confidence Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + music_segment_confidence: + description: 'Music detection confidence (0.0-1.0). + + **Ontology mapping**: Uses sosa:hasSimpleResult because music segment detection models act as sensors producing observation results.' + range: float + minimum_value: 0.0 + maximum_value: 1.0 + slot_uri: sosa:hasSimpleResult + close_mappings: + - prov:value + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/music_start_seconds.yaml b/schemas/20251121/linkml/modules/slots/archive/music_start_seconds.yaml new file mode 100644 index 0000000000..74d400dab1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/music_start_seconds.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/music_start_seconds +name: music_start_seconds_slot +title: Music Start Seconds Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + music_start_seconds: + description: Start time in seconds + range: float + slot_uri: hc:musicStartSeconds + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:musicStartSeconds diff --git a/schemas/20251121/linkml/modules/slots/archive/music_type.yaml b/schemas/20251121/linkml/modules/slots/archive/music_type.yaml new file mode 100644 index 0000000000..dc60f88eb7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/music_type.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/music_type +name: music_type_slot +title: Music Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/MusicTypeEnum +default_prefix: hc +slots: + music_type: + description: Type of music (BACKGROUND, FEATURED, ARCHIVAL) + range: string # uriorcurie + # range: MusicTypeEnum + slot_uri: hc:musicType + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:musicType diff --git a/schemas/20251121/linkml/modules/slots/archive/mutual_connections_text.yaml b/schemas/20251121/linkml/modules/slots/archive/mutual_connections_text.yaml new file mode 100644 index 0000000000..b2b20e7ce9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/mutual_connections_text.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/mutual_connections_text +name: mutual_connections_text_slot +title: mutual_connections_text slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + mutual_connections_text: + description: 'Raw mutual connections text from LinkedIn. + + Format: "X mutual connections" or "Name and X others" + + Preserved for network analysis. + + ' + slot_uri: schema:description + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:description diff --git a/schemas/20251121/linkml/modules/slots/archive/name.yaml b/schemas/20251121/linkml/modules/slots/archive/name.yaml new file mode 100644 index 0000000000..a00693f75a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/name.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/name +name: name_slot +title: Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + name: + slot_uri: schema:name + description: Short name or has_or_had_abbreviation + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:name diff --git a/schemas/20251121/linkml/modules/slots/archive/name_authority.yaml b/schemas/20251121/linkml/modules/slots/archive/name_authority.yaml new file mode 100644 index 0000000000..26de279dd2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/name_authority.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/name_authority +name: name_authority_slot +imports: +- linkml:types +slots: + name_authority: + slot_uri: prov:wasAttributedTo + range: string + description: Authority that authorized this name (board resolution, statute, tradition) + close_mappings: + - dcterms:source + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/name_language.yaml b/schemas/20251121/linkml/modules/slots/archive/name_language.yaml new file mode 100644 index 0000000000..c23d64960e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/name_language.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/name_language +name: name_language-slot +imports: +- linkml:types +slots: + name_language: + description: 'The language or locale code (ISO 639-1 or BCP 47) of the emic name. + + Examples: ''nl'' for Dutch, ''en'' for English, ''pt-BR'' for Brazilian Portuguese. + + ' + slot_uri: dcterms:language + range: string + pattern: ^[a-z]{2}(-[A-Z]{2})?$ + broad_mappings: + - dcterms:language + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:language +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/name_local.yaml b/schemas/20251121/linkml/modules/slots/archive/name_local.yaml new file mode 100644 index 0000000000..94400fdae4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/name_local.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/name_local +name: name_local_slot +title: name_local slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + name_local: + slot_uri: schema:alternateName + description: 'Name in local language. + + + Examples: + + - "Deutsche Nationalbibliothek" + + - "Bibliotheque nationale de France" + + - "Koninklijke Bibliotheek" + + - "National Diet Library" (Japanese characters in original) + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:alternateName diff --git a/schemas/20251121/linkml/modules/slots/archive/name_specification.yaml b/schemas/20251121/linkml/modules/slots/archive/name_specification.yaml new file mode 100644 index 0000000000..e4056a85df --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/name_specification.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/name_specification +name: name_specification +title: Name Specification +prefixes: + pnv: https://w3id.org/pnv# + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + name_specification: + slot_uri: pnv:nameSpecification + description: "Indicates why literal_name is blank: \"unknown\" or \"unnamed\".\n\nREQUIRED when literal_name is empty. This property prevents ambiguity\nbetween missing data and persons whose names were genuinely not known\nor never given.\n\nAllowed values:\n\n\"unknown\":\n Use when the person's name was not recorded, is illegible, or cannot\n be determined from the source. The person had a name, but we don't\n know what it was.\n \n Examples:\n - Historical record mentions \"a servant\" without specifying name\n - Signature on document is illegible\n - Record says \"name not given\"\n - Photograph of unidentified person\n\n\"unnamed\":\n Use when the person was never given a name. This is distinct from\n unknown - the person genuinely did not have a name.\n \n Examples:\n - Stillborn infant who was never named\n - Child who died shortly after birth before being named\n - Baptism record explicitly states child was not yet named\n\nPer PNV specification:\n\"Literal name\ + \ [...] may only be left blank if a person's name was\nunknown or if a person was unnamed (e.g. a child that died shortly\nafter being born), in which cases the property pnv:nameSpecification\nshould state 'unknown' or 'unnamed'.\"\n\nIMPORTANT: If literal_name is populated, do NOT set name_specification.\nThis property is only for cases where literal_name must be blank.\n" + range: string + pattern: ^(unknown|unnamed)$ + exact_mappings: + - pnv:nameSpecification + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/name_type.yaml b/schemas/20251121/linkml/modules/slots/archive/name_type.yaml new file mode 100644 index 0000000000..8c01967296 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/name_type.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/name_type +name: name_type_slot +title: name_type slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/NameTypeEnum +default_prefix: hc +slots: + name_type: + description: 'Classification of the name visibility level. + + + Per AGENTS.md Rule 17: + + - full: Complete first and last name + + - abbreviated: Contains single initial (e.g., "Amy B.") + + - anonymous: Privacy-hidden profile ("LinkedIn Member") + + ' + slot_uri: hc:nameType + range: string # uriorcurie + # range: NameTypeEnum + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:nameType diff --git a/schemas/20251121/linkml/modules/slots/archive/name_validity_period.yaml b/schemas/20251121/linkml/modules/slots/archive/name_validity_period.yaml new file mode 100644 index 0000000000..ba5f45cb28 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/name_validity_period.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/name_validity_period +name: name_validity_period_slot +imports: +- linkml:types +slots: + name_validity_period: + slot_uri: crm:P4_has_time-span + range: string # uriorcurie + # range: TimeSpan + description: 'Temporal period during which this name was valid (with fuzzy boundaries). + + CIDOC-CRM: P4_has_time-span links to E52_Time-Span for uncertain validity periods. + + + Use this when name validity dates are uncertain: + + - "Name adopted sometime in the 1920s" + + - "Name changed around 1950" + + - "Name used from approximately 1800 to 1850" + + + For precise dates, use valid_from/valid_to instead. + + ' + close_mappings: + - dcterms:temporal + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/narrower_concept.yaml b/schemas/20251121/linkml/modules/slots/archive/narrower_concept.yaml new file mode 100644 index 0000000000..0b5e713877 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/narrower_concept.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/narrower_concept +name: narrower_concept +title: Narrower Concept Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + narrower_concept: + slot_uri: skos:narrower + description: 'SKOS narrower (child) concepts in a concept hierarchy. + + Used for taxonomic relationships to more specific types. + + + **Example**: archive skos:narrower AcademicArchive + + ' + range: string # uriorcurie + multivalued: true + examples: + - value: hc:UniversityArchive + description: More specific university archive type + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:narrower diff --git a/schemas/20251121/linkml/modules/slots/archive/narrower_type.yaml b/schemas/20251121/linkml/modules/slots/archive/narrower_type.yaml new file mode 100644 index 0000000000..7757ab68da --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/narrower_type.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/narrower_type +name: narrower_type_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + narrower_type: + slot_uri: skos:narrower + description: 'Constrained to LogisticsInventory hyponyms only: PeriodicInventory, + + PerpetualInventory, PhantomInventory, PhysicalInventory, VendorManagedInventory. + + ' + range: string # uriorcurie + required: false + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:narrower diff --git a/schemas/20251121/linkml/modules/slots/archive/nazi_era_flag.yaml b/schemas/20251121/linkml/modules/slots/archive/nazi_era_flag.yaml new file mode 100644 index 0000000000..00ed0ef7f5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/nazi_era_flag.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/nazi_era_flag +name: nazi_era_flag_slot +title: Nazi Era Flag Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + nazi_era_flag: + description: 'Flag indicating this event occurred during Nazi era (1933-1945) + + or involves objects potentially affected by Nazi-era confiscation. + + + **CRITICAL for provenance research compliance.** + + ' + range: boolean + slot_uri: hc:naziEraFlag + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:naziEraFlag diff --git a/schemas/20251121/linkml/modules/slots/archive/nesting_level.yaml b/schemas/20251121/linkml/modules/slots/archive/nesting_level.yaml new file mode 100644 index 0000000000..cf31c2f16a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/nesting_level.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/nesting_level +name: nesting_level_slot +title: nesting_level slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + nesting_level: + description: 'Depth level in chapter hierarchy. + + + - 0: Top-level chapter + + - 1: First-level sub-chapter + + - 2: Second-level sub-chapter + + - etc. + + + Most platforms only support level 0 (flat chapters). + + ' + range: integer + slot_uri: hc:nestingLevel + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:nestingLevel diff --git a/schemas/20251121/linkml/modules/slots/archive/network_analysis.yaml b/schemas/20251121/linkml/modules/slots/archive/network_analysis.yaml new file mode 100644 index 0000000000..0cc2a1aa35 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/network_analysis.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/network_analysis +name: network_analysis_slot +title: Network Analysis Slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + network_analysis: + description: 'Aggregated statistics about a connection network. + + Contains summary metrics like total count, heritage-relevant percentage, etc. + + ' + slot_uri: schema:mainEntity + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:mainEntity diff --git a/schemas/20251121/linkml/modules/slots/archive/en.yaml b/schemas/20251121/linkml/modules/slots/archive/nl.yaml similarity index 73% rename from schemas/20251121/linkml/modules/slots/archive/en.yaml rename to schemas/20251121/linkml/modules/slots/archive/nl.yaml index 376025198c..a20456d980 100644 --- a/schemas/20251121/linkml/modules/slots/archive/en.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/nl.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/en -name: en_slot -title: En Slot +id: https://nde.nl/ontology/hc/slot/nl +name: nl_slot +title: Nl Slot prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -16,12 +16,11 @@ imports: - linkml:types default_prefix: hc slots: - en: - description: English language text + nl: + description: Dutch language text range: string - slot_uri: hc:en + slot_uri: hc:nl annotations: - custodian_types: - - '*' + custodian_types: '["*"]' exact_mappings: - - hc:en + - hc:nl diff --git a/schemas/20251121/linkml/modules/slots/archive/no_fabrication.yaml b/schemas/20251121/linkml/modules/slots/archive/no_fabrication.yaml new file mode 100644 index 0000000000..f3617cbfcd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/no_fabrication.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/no_fabrication +name: no_fabrication_slot +title: No Fabrication Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + no_fabrication: + description: Confirms no data was fabricated + range: boolean + slot_uri: hc:noFabrication + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:noFabrication diff --git a/schemas/20251121/linkml/modules/slots/archive/noise_floor_db.yaml b/schemas/20251121/linkml/modules/slots/archive/noise_floor_db.yaml new file mode 100644 index 0000000000..6407b5590a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/noise_floor_db.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/noise_floor_db +name: noise_floor_db_slot +title: Noise Floor Db Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + noise_floor_db: + description: 'Background noise floor level in decibels. + + + **Quality Guidelines**: + + - < -60 dB: Excellent (studio quality) + + - -60 to -40 dB: Good (professional recording) + + - -40 to -30 dB: Acceptable (field recording) + + - > -30 dB: Poor (noisy environment) + + ' + range: float + slot_uri: hc:noiseFloorDb + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:noiseFloorDb diff --git a/schemas/20251121/linkml/modules/slots/archive/nomenclatural_code.yaml b/schemas/20251121/linkml/modules/slots/archive/nomenclatural_code.yaml new file mode 100644 index 0000000000..d7635444e2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/nomenclatural_code.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/nomenclatural_code +name: nomenclatural_code +imports: + - linkml:types +slots: + nomenclatural_code: + slot_uri: dwc:nomenclaturalCode + range: string + description: 'The nomenclatural code governing this name. + Values: ICZN, ICN, ICNP, ICVCN, etc. + ' + examples: + - value: ICZN + description: International Code of Zoological Nomenclature + - value: ICN + description: International Code of Nomenclature for algae, fungi, and plants + annotations: + custodian_types: "['*']" diff --git a/schemas/20251121/linkml/modules/slots/archive/nonprofit_subtype.yaml b/schemas/20251121/linkml/modules/slots/archive/nonprofit_subtype.yaml new file mode 100644 index 0000000000..b9691d91b7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/nonprofit_subtype.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/nonprofit_subtype +name: nonprofit_subtype_slot +title: Nonprofit Subtype Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/NonProfitCustodianTypeEnum +default_prefix: hc +slots: + nonprofit_subtype: + slot_uri: skos:narrower + description: 'Specific subtype from the NonProfitCustodianTypeEnum taxonomy (149 non-profit types). + + Each value links to a Wikidata entity describing a specific type. + + ' + range: string # uriorcurie + # range: NonProfitCustodianTypeEnum + required: false + multivalued: true + comments: + - Values extracted from Wikidata hyponyms + - Each value has a wikidata:QID meaning for Linked Open Data + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:narrower diff --git a/schemas/20251121/linkml/modules/slots/archive/notable_examples.yaml b/schemas/20251121/linkml/modules/slots/archive/notable_examples.yaml new file mode 100644 index 0000000000..a499528b1d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/notable_examples.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/notable_examples +name: notable_examples-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + notable_examples: + slot_uri: skos:example + description: 'Real-world examples of institutions of this type. + + Provides concrete instances for understanding the class. + + + **Migrated from**: `**Notable Examples**:` sections. + + + **Format**: List of NotableExample objects with name, location, and optional Wikidata ID. + + ' + range: string # uriorcurie + # range: NotableExample + multivalued: true + inlined_as_list: false # Fixed invalid inline for primitive type + annotations: + source_section: '**Notable Examples**:' + custodian_types: '["*"]' + exact_mappings: + - skos:example diff --git a/schemas/20251121/linkml/modules/slots/archive/notarial_deed_number.yaml b/schemas/20251121/linkml/modules/slots/archive/notarial_deed_number.yaml new file mode 100644 index 0000000000..842e77aa28 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/notarial_deed_number.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/notarial_deed_number +name: notarial_deed_number_slot +title: Notarial Deed Number Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + notarial_deed_number: + description: 'Registration number of the notarial deed. + + + Format varies by jurisdiction and notary office. + + ' + range: string + slot_uri: hc:notarialDeedNumber + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:notarialDeedNumber diff --git a/schemas/20251121/linkml/modules/slots/archive/notary_name.yaml b/schemas/20251121/linkml/modules/slots/archive/notary_name.yaml new file mode 100644 index 0000000000..5a0aded20f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/notary_name.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/notary_name +name: notary_name_slot +title: Notary Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + foaf: http://xmlns.com/foaf/0.1/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + notary_name: + description: 'Name of the notary who executed the deed. + + Ontology mapping: foaf:name is the FOAF property for a person''s name. Required for notarial deeds (Dutch stichting, BV, etc.).' + range: string + slot_uri: foaf:name + close_mappings: + - schema:name + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/notary_office.yaml b/schemas/20251121/linkml/modules/slots/archive/notary_office.yaml new file mode 100644 index 0000000000..a10bbb1abc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/notary_office.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/notary_office +name: notary_office_slot +title: Notary Office Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + notary_office: + description: 'Location/office of the notary (city or full address). + + ' + range: string + slot_uri: hc:notaryOffice + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:notaryOffice diff --git a/schemas/20251121/linkml/modules/slots/archive/note.yaml b/schemas/20251121/linkml/modules/slots/archive/note.yaml new file mode 100644 index 0000000000..e0cbda9bfd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/note.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/note +name: note_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + note: + slot_uri: skos:note + range: string + description: 'Optional notes about the extraction process. + + May reference raw source files or explain any issues. + + ' + exact_mappings: + - skos:note + close_mappings: + - rdfs:comment + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/note_content.yaml b/schemas/20251121/linkml/modules/slots/archive/note_content.yaml new file mode 100644 index 0000000000..a815e54639 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/note_content.yaml @@ -0,0 +1,48 @@ +id: https://nde.nl/ontology/hc/slot/note_content +name: note_content_slot +title: Note Content Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + note_content: + slot_uri: rdf:value + range: string + description: 'The textual content of a note. + + + **ONTOLOGY ALIGNMENT**: + + + | Ontology | Property | Notes | + + |----------|----------|-------| + + | **RDF** | `rdf:value` | Primary - literal value | + + | **SKOS** | `skos:note` | Related - note text | + + ' + exact_mappings: + - rdf:value + close_mappings: + - skos:note + examples: + - value: Retained all policy files; destroyed duplicate copies per retention schedule. + description: Appraisal note content + - value: Maintained original order by correspondent. Created 5 series by function. + description: Arrangement note content + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/note_date.yaml b/schemas/20251121/linkml/modules/slots/archive/note_date.yaml new file mode 100644 index 0000000000..28cd8dd4af --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/note_date.yaml @@ -0,0 +1,47 @@ +id: https://nde.nl/ontology/hc/slot/note_date +name: note_date_slot +title: Note Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + note_date: + slot_uri: dcterms:date + range: date + description: 'The date when the note was created or last updated. + + + **ONTOLOGY ALIGNMENT**: + + + | Ontology | Property | Notes | + + |----------|----------|-------| + + | **DCTerms** | `dcterms:date` | Primary - date | + + | **Schema.org** | `schema:dateCreated` | Related - creation date | + + ' + exact_mappings: + - dcterms:date + close_mappings: + - schema:dateCreated + examples: + - value: '2024-03-15' + description: Note created March 15, 2024 + - value: '2024-06-01' + description: Note updated June 1, 2024 + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/note_type.yaml b/schemas/20251121/linkml/modules/slots/archive/note_type.yaml new file mode 100644 index 0000000000..09cfc7d4dd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/note_type.yaml @@ -0,0 +1,60 @@ +id: https://nde.nl/ontology/hc/slot/note_type +name: note_type_slot +title: Note Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + note_type: + slot_uri: dcterms:type + range: string + description: 'The type or category of the note. + + + **Common Types**: + + - appraisal: Retention/destruction decisions + + - arrangement: Physical organization notes + + - conservation: Treatment documentation + + - processing: Archival workflow notes + + - general: General documentation + + + **ONTOLOGY ALIGNMENT**: + + + | Ontology | Property | Notes | + + |----------|----------|-------| + + | **DCTerms** | `dcterms:type` | Primary - nature/genre | + + | **SKOS** | `skos:inScheme` | Related - controlled vocab | + + ' + exact_mappings: + - dcterms:type + examples: + - value: appraisal + description: Appraisal decision documentation + - value: arrangement + description: Physical organization notes + - value: conservation + description: Treatment documentation + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/numeric_value.yaml b/schemas/20251121/linkml/modules/slots/archive/numeric_value.yaml new file mode 100644 index 0000000000..c769b11d6b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/numeric_value.yaml @@ -0,0 +1,52 @@ +id: https://nde.nl/ontology/hc/slot/numeric_value +name: numeric_value_slot +title: Numeric Value Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + xsd: http://www.w3.org/2001/XMLSchema# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# +imports: +- linkml:types +# default_range: string +slots: + numeric_value: + slot_uri: rdf:value + range: integer + description: 'Numeric (integer) value for identifier wrapper classes. + + + Used by classes that encapsulate integer-based identifiers: + + - BoxNumber: Storage box position number + + - ShelfNumber: Shelf position within a bay + + - SequenceNumber: Ordering position + + + For string-based identifiers, use identifier_value instead. + + For decimal/percentage values, use rate_value instead. + + ' + exact_mappings: + - rdf:value + close_mappings: + - xsd:integer + examples: + - value: 12 + description: Box at position 12 + - value: 145 + description: Inventory number 145 + - value: 3 + description: Shelf level 3 + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/oai_pmh_endpoint.yaml b/schemas/20251121/linkml/modules/slots/archive/oai_pmh_endpoint.yaml new file mode 100644 index 0000000000..6977a2bfb3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/oai_pmh_endpoint.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/slot/oai_pmh_endpoint +name: oai_pmh_endpoint_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcat: http://www.w3.org/ns/dcat# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + oai_pmh_endpoint: + slot_uri: dcat:endpointURL + range: uri + description: 'OAI-PMH endpoint URL for metadata harvesting. + + + DCAT: endpointURL for OAI-PMH service. + + + Supports Open Archives Initiative Protocol for Metadata Harvesting. + + + Examples: + + - "https://www.europeana.eu/oai" (Europeana OAI-PMH) + + - "https://repository.example.edu/oai" (Institutional repository OAI-PMH) + + ' + broad_mappings: + - dcat:endpointURL + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcat:endpointURL diff --git a/schemas/20251121/linkml/modules/slots/archive/object_alternate_name.yaml b/schemas/20251121/linkml/modules/slots/archive/object_alternate_name.yaml new file mode 100644 index 0000000000..df9fbb3422 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/object_alternate_name.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/object_alternate_name +name: object_alternate_name_slot +title: Object Alternate Names Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + object_alternate_name: + description: 'Alternative titles, historical names, or translations. + + ' + range: string + multivalued: true + slot_uri: schema:alternateName + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:alternateName diff --git a/schemas/20251121/linkml/modules/slots/archive/object_classes_detected.yaml b/schemas/20251121/linkml/modules/slots/archive/object_classes_detected.yaml new file mode 100644 index 0000000000..b8632a772e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/object_classes_detected.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/object_classes_detected +name: object_classes_detected_slot +title: Object Classes Detected Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + object_classes_detected: + description: 'List of unique object class labels detected. + + + Vocabulary depends on model training: + + - COCO: 80 common object categories + + - ImageNet: 1000 categories + + - Custom: Heritage-specific categories + + ' + range: string + multivalued: true + slot_uri: hc:objectClassesDetected + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:objectClassesDetected diff --git a/schemas/20251121/linkml/modules/slots/archive/object_collection_id.yaml b/schemas/20251121/linkml/modules/slots/archive/object_collection_id.yaml new file mode 100644 index 0000000000..9b474dc8de --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/object_collection_id.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/object_collection_id +name: object_collection_id_slot +title: Object Collection Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + object_collection_id: + description: Collection database ID for artwork/artifact + range: string + slot_uri: hc:objectCollectionId + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:objectCollectionId diff --git a/schemas/20251121/linkml/modules/slots/archive/object_confidence.yaml b/schemas/20251121/linkml/modules/slots/archive/object_confidence.yaml new file mode 100644 index 0000000000..72a63cfa68 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/object_confidence.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/object_confidence +name: object_confidence_slot +title: Object Confidence Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + object_confidence: + description: 'Detection confidence (0.0-1.0). + + **Ontology mapping**: Uses sosa:hasSimpleResult because object detection models act as sensors producing observation results.' + range: float + minimum_value: 0.0 + maximum_value: 1.0 + slot_uri: sosa:hasSimpleResult + close_mappings: + - prov:value + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/describes_or_described.yaml b/schemas/20251121/linkml/modules/slots/archive/object_description.yaml similarity index 63% rename from schemas/20251121/linkml/modules/slots/describes_or_described.yaml rename to schemas/20251121/linkml/modules/slots/archive/object_description.yaml index 6bf5816252..0167fd04ee 100644 --- a/schemas/20251121/linkml/modules/slots/describes_or_described.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/object_description.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/describes_or_described -name: describes_or_described -title: describes_or_described +id: https://nde.nl/ontology/hc/slot/object_description +name: object_description_slot +title: Object Description Slot prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -12,17 +12,16 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc imports: - linkml:types +default_prefix: hc slots: - describes_or_described: - name: describes_or_described - title: describes_or_described - description: Describes an entity or process. + object_description: + description: 'Detailed description of the object, its significance, and context. + + ' + range: string slot_uri: schema:description - range: string # uriorcurie - # range: ExaminationMethod annotations: custodian_types: '["*"]' exact_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/object_id.yaml b/schemas/20251121/linkml/modules/slots/archive/object_id.yaml new file mode 100644 index 0000000000..0bfe8f0a91 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/object_id.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/object_id +name: object_id_slot +title: Object Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + object_id: + description: 'Unique identifier for this object. + + Format: https://nde.nl/ontology/hc/object/{institution-slug}-{object-slug} + + ' + range: string # uriorcurie + slot_uri: dcterms:identifier + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/object_label.yaml b/schemas/20251121/linkml/modules/slots/archive/object_label.yaml new file mode 100644 index 0000000000..c10688d4a8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/object_label.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/object_label +name: object_label_slot +title: Object Label Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + object_label: + description: 'Object class label (e.g., "painting", "sculpture"). + + Maps to rdfs:label as a human-readable label for the object type classification.' + range: string + slot_uri: rdfs:label + close_mappings: + - skos:prefLabel + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/object_name.yaml b/schemas/20251121/linkml/modules/slots/archive/object_name.yaml new file mode 100644 index 0000000000..687b70082c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/object_name.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/object_name +name: object_name_slot +title: Object Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + object_name: + description: 'Primary title or name of the object. + + Use the most commonly recognized title. + + ' + range: string + slot_uri: schema:name + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:name diff --git a/schemas/20251121/linkml/modules/slots/archive/object_ref.yaml b/schemas/20251121/linkml/modules/slots/archive/object_ref.yaml new file mode 100644 index 0000000000..ca9e7318fd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/object_ref.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/object_ref +name: object_ref_slot +title: Object Reference Slot +description: Shared slot for object references across heritage custodian entities +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + object_ref: + description: 'Reference to the object this provenance event concerns. + + + CIDOC-CRM: P24_transferred_title_of - "identifies the E18 Physical Thing + + whose legal ownership was transferred." + + ' + range: string # uriorcurie + slot_uri: crm:P140_assigned_attribute_to + comments: + - Classes may override slot_uri in slot_usage for specific CRM property semantics + broad_mappings: + - dcterms:references + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P140_assigned_attribute_to diff --git a/schemas/20251121/linkml/modules/slots/archive/object_segment.yaml b/schemas/20251121/linkml/modules/slots/archive/object_segment.yaml new file mode 100644 index 0000000000..1cea02b154 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/object_segment.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/object_segment +name: object_segment_slot +title: Object Segment Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + object_segment: + description: Time segment when object is visible + range: string # uriorcurie + # range: VideoTimeSegment + slot_uri: hc:objectSegment + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:objectSegment diff --git a/schemas/20251121/linkml/modules/slots/archive/object_type.yaml b/schemas/20251121/linkml/modules/slots/archive/object_type.yaml new file mode 100644 index 0000000000..0a92334008 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/object_type.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/object_type +name: object_type_slot +title: Object Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/ExhibitedObjectTypeEnum +default_prefix: hc +slots: + object_type: + description: 'Classification of object by type/medium. + + + Values: PAINTING, SCULPTURE, DRAWING, PRINT, PHOTOGRAPH, CERAMIC, + + TEXTILE, FURNITURE, DOCUMENT, MANUSCRIPT, RARE_BOOK, MAP, + + ARCHAEOLOGICAL_ARTIFACT, NATURAL_HISTORY_SPECIMEN, etc. + + ' + range: string # uriorcurie + # range: ExhibitedObjectTypeEnum + slot_uri: dcterms:type + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:type diff --git a/schemas/20251121/linkml/modules/slots/archive/object_wikidata_id.yaml b/schemas/20251121/linkml/modules/slots/archive/object_wikidata_id.yaml new file mode 100644 index 0000000000..27d5defed3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/object_wikidata_id.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/object_wikidata_id +name: object_wikidata_id_slot +title: Object Wikidata Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + object_wikidata_id: + description: Wikidata ID if object is identified + range: string + slot_uri: hc:objectWikidataId + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:objectWikidataId diff --git a/schemas/20251121/linkml/modules/slots/archive/objective.yaml b/schemas/20251121/linkml/modules/slots/archive/objective.yaml new file mode 100644 index 0000000000..358106ac76 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/objective.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/objective +name: objective_slot +title: Objectives Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + objective: + range: string + multivalued: true + description: 'Specific, measurable objectives of the project. + + Should be concrete goals that can be evaluated at project end. + + + **Ontology Note**: Uses `dcterms:abstract` as Schema.org does not have + + a `schema:goal` property. Alternative: could use custom `hc:objective` + + or PROV-O plan concepts. + + ' + slot_uri: hc:objectives + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:objectives diff --git a/schemas/20251121/linkml/modules/slots/archive/objects_added.yaml b/schemas/20251121/linkml/modules/slots/archive/objects_added.yaml new file mode 100644 index 0000000000..cf29e57d39 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/objects_added.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/objects_added +name: objects_added_slot +title: Objects Added Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + objects_added: + description: 'Objects accessioned into the collection through this activity. + + + Specifically for ACCESSIONING activities. + + + RiC-O: resultsIn for activity outcomes. + + ' + range: string # uriorcurie + # range: ExhibitedObject + multivalued: true + slot_uri: hc:objectsAdded + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:objectsAdded diff --git a/schemas/20251121/linkml/modules/slots/archive/objects_affected.yaml b/schemas/20251121/linkml/modules/slots/archive/objects_affected.yaml new file mode 100644 index 0000000000..b0bb59a7f5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/objects_affected.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/objects_affected +name: objects_affected_slot +title: Objects Affected Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + objects_affected: + description: "ExhibitedObject items processed or examined by this activity.\n\nPROV-O: used for entities consumed/processed by Activity.\n\nFor activities that touch specific objects (condition surveys, \nphotography, rehousing).\n" + range: string # uriorcurie + # range: ExhibitedObject + multivalued: true + slot_uri: prov:used + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:used diff --git a/schemas/20251121/linkml/modules/slots/archive/objects_count.yaml b/schemas/20251121/linkml/modules/slots/archive/objects_count.yaml new file mode 100644 index 0000000000..f4e65538c0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/objects_count.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/objects_count +name: objects_count_slot +title: Objects Count Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + objects_count: + description: 'Approximate count of objects affected when individual tracking impractical. + + + Use for large-scale activities (inventory of 10,000 items). + + ' + range: integer + slot_uri: hc:objectsCount + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:objectsCount diff --git a/schemas/20251121/linkml/modules/slots/archive/objects_removed.yaml b/schemas/20251121/linkml/modules/slots/archive/objects_removed.yaml new file mode 100644 index 0000000000..cab8660540 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/objects_removed.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/objects_removed +name: objects_removed_slot +title: Objects Removed Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + objects_removed: + description: 'Objects deaccessioned from the collection through this activity. + + + Specifically for DEACCESSIONING activities. + + + Track removal reason in activity_description. + + ' + range: string # uriorcurie + # range: ExhibitedObject + multivalued: true + slot_uri: hc:objectsRemoved + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:objectsRemoved diff --git a/schemas/20251121/linkml/modules/slots/archive/observation.yaml b/schemas/20251121/linkml/modules/slots/archive/observation.yaml new file mode 100644 index 0000000000..e5e8031140 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/observation.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/observation +name: observation_slot +title: Observations Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + observation: + description: 'Environmental observations recorded for this zone. + + + HC Ontology: `hc:hasEnvironmentalObservation` + + + Links to StorageCondition instances representing actual + + measured conditions at specific points in time. + + ' + range: string # uriorcurie + # range: StorageCondition + multivalued: true + slot_uri: hc:observations + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:observations diff --git a/schemas/20251121/linkml/modules/slots/archive/observation_context.yaml b/schemas/20251121/linkml/modules/slots/archive/observation_context.yaml new file mode 100644 index 0000000000..89cc132e11 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/observation_context.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/observation_context +name: observation_context_slot +imports: +- linkml:types +slots: + observation_context: + slot_uri: dcterms:description + range: string + description: Context of the observation (e.g., letterhead, website, signage, archival record) + close_mappings: + - prov:atLocation + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/observation_date.yaml b/schemas/20251121/linkml/modules/slots/archive/observation_date.yaml new file mode 100644 index 0000000000..bae705f221 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/observation_date.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/observation_date +name: observation_date_slot +imports: +- linkml:types +slots: + observation_date: + slot_uri: prov:generatedAtTime + range: date + description: 'Date when this observation was made. + + + For automated systems: timestamp of data collection. + + For human observers: date of site visit or assessment. + + + PROV-O: atTime specifies instant at which activity occurred. + + ' + close_mappings: + - prov:generatedAtTime + broad_mappings: + - dcterms:date + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/observation_id.yaml b/schemas/20251121/linkml/modules/slots/archive/observation_id.yaml new file mode 100644 index 0000000000..423505fced --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/observation_id.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/observation_id +name: observation_id_slot +title: Observation Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + observation_id: + identifier: true + range: string # uriorcurie + description: Unique identifier for this web observation. Mapped to dcterms:identifier as the standard property for resource identifiers. + slot_uri: dcterms:identifier + close_mappings: + - schema:identifier + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/observation_note.yaml b/schemas/20251121/linkml/modules/slots/archive/observation_note.yaml new file mode 100644 index 0000000000..16936ea994 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/observation_note.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/observation_note +name: observation_note_slot +title: Observation Notes Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + observation_note: + description: 'Free-text notes documenting the observation. + + Maps to skos:note for observational documentation. + + Include: - What was observed - Context of the observation - Specific concerns or findings - Recommendations if any' + range: string + slot_uri: skos:note + close_mappings: + - dcterms:description + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/observation_period.yaml b/schemas/20251121/linkml/modules/slots/archive/observation_period.yaml new file mode 100644 index 0000000000..385aea7a7c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/observation_period.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/observation_period +name: observation_period_slot +title: Observation Period Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + observation_period: + description: 'Time period covered by this observation if not a point-in-time. + + + Use for assessments covering a period (e.g., quarterly review) + + rather than a single site visit. + + + CIDOC-CRM: P4_has_time-span for temporal extent. + + ' + range: string # uriorcurie + # range: TimeSpan + slot_uri: hc:observationPeriod + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:observationPeriod diff --git a/schemas/20251121/linkml/modules/slots/archive/observation_ref.yaml b/schemas/20251121/linkml/modules/slots/archive/observation_ref.yaml new file mode 100644 index 0000000000..43a7d1b2f0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/observation_ref.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/observation_ref +name: observation_ref_slot +title: Observation Ref Slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + observation_ref: + description: 'Optional reference to the observation that generated this information. + + Links to a WebObservation or CustodianObservation for full provenance. + + + Use this to connect events to their source observations when + + detailed provenance (XPath, API response, etc.) is needed. + + ' + slot_uri: prov:wasGeneratedBy + range: string # uriorcurie + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:wasGeneratedBy diff --git a/schemas/20251121/linkml/modules/slots/archive/observation_source.yaml b/schemas/20251121/linkml/modules/slots/archive/observation_source.yaml new file mode 100644 index 0000000000..21f8e4ed82 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/observation_source.yaml @@ -0,0 +1,67 @@ +id: https://nde.nl/ontology/hc/slot/observation_source +name: observation_source-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + observation_source: + description: 'Source where this staff role information was observed. + + + **PiCo Pattern**: PersonObservation MUST link to source (evidence-based) + + **PROV-O**: `prov:hadPrimarySource` for provenance tracking + + + **Source Types**: + + - Staff directory (online or print) + + - Organizational chart + + - Annual report + + - Institutional website + + - Archival personnel records + + - Publication credits + + - Email signature + + + **Structure**: Reference to SourceDocument with: + + - source_type: "Staff directory", "Annual report", etc. + + - source_uri: URL if available + + - observation_date: When source was consulted + + + **Data Quality**: Observation with documented source = higher confidence + + + Note: slot_uri changed from dcterms:source to hc:observationSource to resolve OWL ambiguous type warning. dcterms:source may have different property type expectations across ontologies. + + **Range**: `Any` (2026-01-16) - Allows string values and SourceDocument class instances. + + ' + slot_uri: hc:observationSource + range: string + exact_mappings: + - dcterms:source + close_mappings: + - prov:hadPrimarySource + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_chapter.yaml b/schemas/20251121/linkml/modules/slots/archive/observed_entity.yaml similarity index 69% rename from schemas/20251121/linkml/modules/slots/has_or_had_chapter.yaml rename to schemas/20251121/linkml/modules/slots/archive/observed_entity.yaml index a39e6e560c..d5add10d8c 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_chapter.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/observed_entity.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_chapter -name: has_or_had_chapter_slot -title: chapters slot +id: https://nde.nl/ontology/hc/slot/observed_entity +name: observed_entity_slot +title: Observed Entities Slot prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -16,13 +16,12 @@ imports: - linkml:types default_prefix: hc slots: - has_or_had_chapter: - description: Ordered list of video chapters + observed_entity: range: string # uriorcurie - # range: VideoChapter multivalued: true - slot_uri: hc:chapters + description: Entities extracted from this observation + slot_uri: hc:observedEntities annotations: custodian_types: '["*"]' exact_mappings: - - hc:chapters + - hc:observedEntities diff --git a/schemas/20251121/linkml/modules/slots/archive/observed_in.yaml b/schemas/20251121/linkml/modules/slots/archive/observed_in.yaml new file mode 100644 index 0000000000..30e4a313cf --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/observed_in.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/observed_in +name: observed_in +title: Observed In +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + observed_in: + slot_uri: prov:wasDerivedFrom + description: "WebObservation documenting where this entity was found.\n\n**PROVENANCE PATTERN**:\n\nLinks extracted entities to their source WebObservation, enabling:\n- Verification of extracted data against original source\n- Temporal tracking (when was this information observed?)\n- Source URL preservation\n- Extraction confidence documentation\n\n**Example Usage**:\n```yaml\nDonationScheme:\n scheme_id: \"https://nde.nl/ontology/hc/donation-scheme/rijksmuseum/vrienden\"\n scheme_name: \"Rijksmuseum Vrienden\"\n observed_in: \"https://nde.nl/ontology/hc/observation/web/2026-01-01/rijksmuseum-support\"\n\nWebObservation:\n observation_id: \"https://nde.nl/ontology/hc/observation/web/2026-01-01/rijksmuseum-support\"\n source_url: \"https://www.rijksmuseum.nl/nl/steun-het-rijksmuseum\"\n retrieved_on: \"2026-01-01T10:00:00Z\"\n```\n\n**Classes Using This Slot**:\n- DonationScheme - donation/membership programs\n- FundingRequirement - grant eligibility criteria\n- Other extracted\ + \ entities with web provenance" + range: string # uriorcurie + exact_mappings: + - prov:wasDerivedFrom + comments: + - Part of observation-reconstruction pattern + - Links to WebObservation entity for full provenance chain + - "PROV-O: derived entity \u2192 wasDerivedFrom \u2192 source observation" + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/observed_name.yaml b/schemas/20251121/linkml/modules/slots/archive/observed_name.yaml new file mode 100644 index 0000000000..6be9b53e66 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/observed_name.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/observed_name +name: observed_name_slot +imports: +- linkml:types +slots: + observed_name: + slot_uri: skos:prefLabel + range: string + description: Name as recorded in the source (emic perspective) + required: true + broad_mappings: + - rdfs:label + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:prefLabel +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/observer_affiliation.yaml b/schemas/20251121/linkml/modules/slots/archive/observer_affiliation.yaml new file mode 100644 index 0000000000..7c252e9170 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/observer_affiliation.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/observer_affiliation +name: observer_affiliation_slot +title: Observer Affiliation Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + observer_affiliation: + description: 'Organization the observer represents or works for. + + + For journalists: newspaper/media outlet. + + For inspectors: government agency. + + For consultants: consulting firm. + + + PROV-O: actedOnBehalfOf indicates delegated authority. + + ' + range: string + slot_uri: hc:observerAffiliation + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:observerAffiliation diff --git a/schemas/20251121/linkml/modules/slots/archive/observer_name.yaml b/schemas/20251121/linkml/modules/slots/archive/observer_name.yaml new file mode 100644 index 0000000000..21e04224e7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/observer_name.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/observer_name +name: observer_name_slot +title: Observer Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + foaf: http://xmlns.com/foaf/0.1/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + observer_name: + description: 'Name of the individual or team who made this observation. + + Ontology mapping: foaf:name is the FOAF property for a person''s name. May be anonymized for whistleblowers or confidential sources.' + range: string + slot_uri: foaf:name + close_mappings: + - prov:wasAttributedTo + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/observer_type.yaml b/schemas/20251121/linkml/modules/slots/archive/observer_type.yaml new file mode 100644 index 0000000000..ad2a1d642a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/observer_type.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/observer_type +name: observer_type_slot +title: Observer Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/StorageObserverTypeEnum +default_prefix: hc +slots: + observer_type: + description: 'Type of observer who made this assessment. + + + **CRITICAL**: Determines how to interpret the observation. + + - INTERNAL_STAFF may underreport issues + + - JOURNALIST may have discovered unreported problems + + - GOVERNMENT_INSPECTOR has regulatory authority + + - WHISTLEBLOWER may have insider knowledge + + + PROV-O: wasAssociatedWith links activity to responsible agent. + + ' + range: string # uriorcurie + # range: StorageObserverTypeEnum + slot_uri: hc:observerType + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:observerType diff --git a/schemas/20251121/linkml/modules/slots/archive/occupation.yaml b/schemas/20251121/linkml/modules/slots/archive/occupation.yaml new file mode 100644 index 0000000000..ee744ac347 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/occupation.yaml @@ -0,0 +1,215 @@ +id: https://nde.nl/ontology/hc/slot/occupation +name: occupation_slot +title: Occupation Slot +prefixes: + schema: http://schema.org/ + pico: https://personsincontext.org/model# + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + occupation: + slot_uri: schema:hasOccupation + description: 'The occupational title or profession of a person as mentioned in the source. + + + =========================================================================== + + PiCo ONTOLOGY ALIGNMENT (pico.ttl lines 548-556) + + =========================================================================== + + + Per PiCo (Persons in Context) ontology: + + - Records occupation as mentioned on the source + + - Can be literal string or URI to thesaurus + + - Part of PersonObservation (evidence from source) + + + =========================================================================== + + SOURCE PRESERVATION + + =========================================================================== + + + Record the occupation exactly as stated in the source: + + - Historical terms: "wheelwright", "cordwainer", "cooper" + + - Period-specific titles: "Keeper of the King''s Pictures" + + - Vernacular forms: "schilder" (Dutch for painter) + + + =========================================================================== + + THESAURUS LINKING + + =========================================================================== + + + When possible, link to occupational thesauri: + + + **Wikidata** (general occupations): + + - Q1028181 (painter) + + - Q1792450 (archivist) + + - Q947873 (museum curator) + + + **HISCO** (Historical International Standard Classification of Occupations): + + - For historical occupations + + + **AAT** (Getty Art & Architecture Thesaurus): + + - For heritage-related occupations + + + =========================================================================== + + HERITAGE-SPECIFIC OCCUPATIONS + + =========================================================================== + + + Common heritage sector occupations: + + - Archivist, Librarian, Curator, Conservator + + - Museum Director, Collection Manager + + - Registrar, Preparator, Educator + + - Digital Preservation Specialist + + + For staff roles at heritage institutions, prefer the `staff_role` slot + + which uses the StaffRole class hierarchy for controlled vocabulary. + + + =========================================================================== + + EXAMPLES + + =========================================================================== + + + Simple literal: + + ```yaml + + occupation: "painter" + + ``` + + + Historical occupation: + + ```yaml + + occupation: "court painter to His Majesty King Willem I" + + ``` + + + With thesaurus URI: + + ```yaml + + occupation: "http://www.wikidata.org/entity/Q1028181" # painter + + ``` + + + Dutch source: + + ```yaml + + occupation: "schilder" # Preserve source language + + occupation_normalized: "painter" # Optional normalized form + + ``` + + + =========================================================================== + + RELATIONSHIP TO staff_role SLOT + + =========================================================================== + + + - `occupation`: General profession (from any source, any context) + + - `staff_role`: Specific role at heritage institution (StaffRole class) + + + A person may have: + + - occupation: "art historian" (general profession) + + - staff_role: Curator (specific institutional role) + + + =========================================================================== + + MULTIVALUED + + =========================================================================== + + + A person may have multiple occupations: + + - Primary occupation + + - Secondary occupation + + - Historical occupations (changed over time) + + + Use separate PersonObservations for different time periods. + + + =========================================================================== + + ONTOLOGY MAPPINGS + + =========================================================================== + + + - Schema.org: sdo:hasOccupation (primary) + + - Wikidata: P106 (occupation) + + ' + range: string + required: false + multivalued: true + exact_mappings: + - schema:hasOccupation + comments: + - Record occupation as mentioned in source + - Prefer thesaurus links when possible + - Preserve historical/vernacular occupation terms + - Use staff_role for heritage institution positions + - Wikidata property P106 is semantically equivalent but is an identifier, not an RDF predicate + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/occurs_or_occurred_at.yaml b/schemas/20251121/linkml/modules/slots/archive/occurs_or_occurred_at.yaml new file mode 100644 index 0000000000..ca9669fdc1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/occurs_or_occurred_at.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/occurs_or_occurred_at +name: occurs_or_occurred_at_slot +title: Occurs Or Occurred At Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + prov: http://www.w3.org/ns/prov# + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + occurs_or_occurred_at: + description: 'The place where an event occurred. Follows RiC-O temporal naming convention (Rule 39) to indicate the event may be historical. + + **Semantic Distinction**: - `occurs_or_occurred_at` is for **events** (death event, birth event, ceremony) - `has_or_had_location` is for **entities** (organization location, object location) + + **Ontological Alignment**: - Primary: `crm:P7_took_place_at` - CIDOC-CRM event location - Close: `prov:atLocation` - PROV-O activity location - Close: `schema:location` - Schema.org generic location + + **Use Cases**: - Death events (DeceasedStatus) - Birth events - Organizational change events - Provenance events' + range: string # uriorcurie + # range: Place + slot_uri: crm:P7_took_place_at + multivalued: false + inlined: false # Fixed invalid inline for primitive type + exact_mappings: + - crm:P7_took_place_at + close_mappings: + - prov:atLocation + - schema:location + annotations: + replaces: death_place + migration_date: '2026-01-24' + migration_rule: Rule 53 - No bespoke slots + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/oclc_number.yaml b/schemas/20251121/linkml/modules/slots/archive/oclc_number.yaml new file mode 100644 index 0000000000..5ece05b4cb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/oclc_number.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/oclc_number +name: oclc_number_slot +title: Oclc Number Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + bf: http://id.loc.gov/ontologies/bibframe/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + oclc_number: + description: 'OCLC control number for bibliographic record. + + ' + range: string + slot_uri: bf:identifiedBy + annotations: + custodian_types: '["*"]' + exact_mappings: + - bf:identifiedBy diff --git a/schemas/20251121/linkml/modules/slots/archive/offered_by.yaml b/schemas/20251121/linkml/modules/slots/archive/offered_by.yaml new file mode 100644 index 0000000000..b4a70af121 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/offered_by.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/offered_by +name: offered_by_slot +title: Offered By Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + offered_by: + range: string # uriorcurie + description: 'Heritage custodian that offers this donation scheme. + + Links to HeritageCustodian entity. + + ' + slot_uri: hc:offeredBy + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:offeredBy diff --git a/schemas/20251121/linkml/modules/slots/archive/offers_donation_scheme.yaml b/schemas/20251121/linkml/modules/slots/archive/offers_donation_scheme.yaml new file mode 100644 index 0000000000..27c4c6cb96 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/offers_donation_scheme.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/offers_donation_scheme +name: offers_donation_scheme_slot +title: Offers Donation Schemes +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + offers_donation_scheme: + slot_uri: schema:makesOffer + range: string # uriorcurie + multivalued: true + inlined_as_list: false + description: "Donation and giving schemes offered by this heritage custodian.\n\nLinks to DonationScheme instances representing the various ways\nindividuals and organizations can financially support the institution.\n\nExamples:\n- Friends/membership schemes (Museumvriend, F\xF6rderverein)\n- Patron circles and benefactor programs\n- Object adoption (Adopt-a-Book, sponsor an artifact)\n- Legacy giving (bequests, endowments)\n- Corporate sponsorship\n- Crowdfunding campaigns\n\nInverse property: DonationScheme.offered_by \u2192 Custodian\n\nNote: Bidirectional relationship implemented via separate slots.\nNavigation: Custodian.offers_donation_schemes \u2192 DonationScheme\n DonationScheme.offered_by \u2192 Custodian\n" + annotations: + owl.inverseOf: hc:offered_by + custodian_types: '*' + custodian_types_rationale: All heritage custodians can offer donation schemes + examples: + - value: https://nde.nl/ontology/hc/donation-scheme/rijksmuseum/vrienden + description: Rijksmuseum Friends membership scheme + - value: https://nde.nl/ontology/hc/donation-scheme/british-library/adopt-a-book + description: British Library Adopt-a-Book program + comments: + - Bidirectional with DonationScheme.offered_by + - Multiple schemes per custodian supported + - Use DonationSchemeTypeEnum to categorize schemes + related_mappings: + - schema:availableService + exact_mappings: + - schema:makesOffer diff --git a/schemas/20251121/linkml/modules/slots/archive/offers_or_offered.yaml b/schemas/20251121/linkml/modules/slots/archive/offers_or_offered.yaml new file mode 100644 index 0000000000..08db6badf5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/offers_or_offered.yaml @@ -0,0 +1,76 @@ +id: https://nde.nl/ontology/hc/slot/offers_or_offered +name: offers_or_offered +title: Offers Or Offered Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + offers_or_offered: + slot_uri: schema:offers + description: 'Links an entity to something it offers or offered. + + + **PURPOSE**: + + + Generic slot for representing what an entity provides, makes available, + + or makes accessible. Follows RiC-O temporal naming convention. + + + **RiC-O NAMING** (Rule 39): + + + Uses "offers_or_offered" pattern indicating temporal relationship - + + what is offered may change over time. + + + **USE CASES**: + + + - TaxScheme offers_or_offered TaxDeductibility + + - Service offers_or_offered Benefit + + - Institution offers_or_offered Program + + + **MIGRATION NOTE**: + + + Created from migration of `deduction_percentage` slot per slot_fixes.yaml. + + Provides structured link to TaxDeductibility class. + + ' + range: string # uriorcurie + multivalued: true + exact_mappings: + - schema:offers + close_mappings: + - schema:hasOfferCatalog + examples: + - value: + has_or_had_type: + has_or_had_label: Fully Deductible + has_or_had_percentage: + percentage_value: 100 + description: Tax scheme offering full deductibility + comments: + - Created 2026-01-23 from deduction_percentage migration (Rule 53) + - Uses RiC-O temporal naming convention (Rule 39) + - Generic offering relationship slot + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/offers_or_offered_access.yaml b/schemas/20251121/linkml/modules/slots/archive/offers_or_offered_access.yaml new file mode 100644 index 0000000000..6bbb30f5d8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/offers_or_offered_access.yaml @@ -0,0 +1,94 @@ +id: https://nde.nl/ontology/hc/slot/offers_or_offered_access +name: offers_or_offered_access_slot +title: Offers Or Offered Access Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + owl: http://www.w3.org/2002/07/owl# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + offers_or_offered_access: + slot_uri: schema:publicAccess + description: 'Access offerings provided by a heritage institution or collection. + + + **Temporal Semantics** (RiC-O Pattern): + + The "offersOrOffered" naming follows RiC-O convention indicating this relationship + + may be historical - access conditions change over time. + + + **Ontological Alignment**: + + - **Primary** (`slot_uri`): `schema:publicAccess` - Schema.org public access flag + + - **Close**: `dcterms:accessRights` - Dublin Core access rights + + - **Related**: `schema:isAccessibleForFree` - accessibility information + + + **Usage**: + + - Collection access: Policies for accessing heritage collections + + - Research access: Conditions for scholarly research use + + - Public access: General public visiting policies + + - Digital access: Online collection availability + + + **Pattern**: + + Uses Access class to capture structured access information including + + access types, conditions, restrictions, and temporal applicability. + + + **Range**: `uriorcurie` (Rule 55) - broadened for flexibility. + + Classes narrow via slot_usage to Access class. + + ' + range: string # uriorcurie + implements: + - owl:ObjectProperty + required: false + multivalued: true + exact_mappings: + - schema:publicAccess + close_mappings: + - dcterms:accessRights + related_mappings: + - schema:isAccessibleForFree + annotations: + rico_naming_convention: 'Follows RiC-O "offersOrOffered" pattern for temporal predicates. + + See Rule 39: Slot Naming Convention (RiC-O Style) + + ' + replaces_slots: collection_access + migration_date: '2026-01-19' + custodian_types: '["*"]' + comments: + - Generic access slot for collections, services, facilities + - Maps to schema:publicAccess as primary URI + - 'Range: uriorcurie (Rule 55) - allows Access class via slot_usage' + - 'RiC-O naming: offersOrOffered indicates potentially historical relationship' + - 'RULE 53: Created per slot_fixes.yaml revision for collection_access' + examples: + - value: https://nde.nl/ontology/hc/access/public-by-appointment + description: Public access by appointment + - value: https://nde.nl/ontology/hc/access/academic-community-only + description: Access restricted to academic community diff --git a/schemas/20251121/linkml/modules/slots/archive/official_institution_subtype.yaml b/schemas/20251121/linkml/modules/slots/archive/official_institution_subtype.yaml new file mode 100644 index 0000000000..1e62486414 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/official_institution_subtype.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/official_institution_subtype +name: official_institution_subtype_slot +title: Official Institution Subtype Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/OfficialInstitutionTypeEnum +default_prefix: hc +slots: + official_institution_subtype: + slot_uri: skos:narrower + description: 'Specific subtype from the OfficialInstitutionTypeEnum taxonomy (165 official institution types). + + Each value links to a Wikidata entity describing a specific type. + + ' + range: string # uriorcurie + # range: OfficialInstitutionTypeEnum + required: false + multivalued: true + comments: + - Values extracted from Wikidata hyponyms + - Each value has a wikidata:QID meaning for Linked Open Data + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:narrower diff --git a/schemas/20251121/linkml/modules/slots/archive/online_shop.yaml b/schemas/20251121/linkml/modules/slots/archive/online_shop.yaml new file mode 100644 index 0000000000..e6323e762c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/online_shop.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/online_shop +name: online_shop_slot +title: Online Shop Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + online_shop: + description: 'Online e-commerce platform(s) for this gift shop. + + + Links to AuxiliaryDigitalPlatform instances with type WEBSHOP. + + + Schema.org: url for web presence. + + + May be null for physical-only retail operations. + + ' + range: string # uriorcurie + # range: AuxiliaryDigitalPlatform + multivalued: true + slot_uri: hc:onlineShop + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:onlineShop diff --git a/schemas/20251121/linkml/modules/slots/archive/open_source.yaml b/schemas/20251121/linkml/modules/slots/archive/open_source.yaml new file mode 100644 index 0000000000..2bb51a4d24 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/open_source.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/open_source +name: open_source_slot +title: Open Source Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + open_source: + description: 'Is this CMS open-source software? + + + Boolean flag. If true, license slot should contain OSI-approved license. + + + Open-source CMS examples: + + - CollectiveAccess (GPL-3.0) + + - ArchivesSpace (ECL-2.0) + + - Omeka S (GPL-3.0) + + - DSpace (BSD-3-Clause) + + - Koha (GPL-3.0) + + ' + range: boolean + slot_uri: hc:openSource + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:openSource diff --git a/schemas/20251121/linkml/modules/slots/archive/opening_hour.yaml b/schemas/20251121/linkml/modules/slots/archive/opening_hour.yaml new file mode 100644 index 0000000000..cfffac4138 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/opening_hour.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/opening_hour +name: opening_hour_slot +title: opening_hours slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + opening_hour: + slot_uri: schema:openingHours + description: 'Operating hours for the physical gift shop. + + + Schema.org: openingHours in Schema.org format. + + + Format: "Mo-Fr 09:00-17:00, Sa 10:00-18:00, Su 11:00-17:00" + + + May differ from museum hours (shop may close earlier). + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:openingHours diff --git a/schemas/20251121/linkml/modules/slots/archive/operated_by.yaml b/schemas/20251121/linkml/modules/slots/archive/operated_by.yaml new file mode 100644 index 0000000000..0d10941857 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/operated_by.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/operated_by +name: operated_by +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + org: http://www.w3.org/ns/org# + edm: http://www.europeana.eu/schemas/edm/ + owl: http://www.w3.org/2002/07/owl# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + operated_by: + slot_uri: schema:maintainer + description: "The EncompassingBody that operates/maintains this web portal.\n\n**RELATIONSHIP**: WebPortal \u2192 EncompassingBody\n\nWeb portals are typically operated by:\n- NetworkOrganisation: NDE operates Dataset Register, Archieven.nl\n- Consortium: ICARUS operates Monasterium.net\n- Cooperative: OCLC operates WorldCat\n- UmbrellaOrganisation: National library operates national union catalog\n\n**Examples**:\n- NDE Dataset Register \u2192 operated_by \u2192 NDE (NetworkOrganisation)\n- Archieven.nl \u2192 operated_by \u2192 KVAN/Erfgoed Leiden (NetworkOrganisation)\n- Deutsche Digitale Bibliothek \u2192 operated_by \u2192 DDB (NetworkOrganisation)\n- Europeana \u2192 operated_by \u2192 Europeana Foundation (NetworkOrganisation)" + range: string # uriorcurie + # range: EncompassingBody + exact_mappings: + - schema:maintainer + related_mappings: + - dcterms:publisher + - org:memberOf + comments: + - Inverse of operates (on EncompassingBody) + - Creates owl:inverseOf axiom in RDF output + - 'Inverse: `operates` (on EncompassingBody) | Pattern: If Portal operatedBy Body, then Body operates Portal' + examples: + - value: https://nde.nl/ontology/hc/encompassing-body/network/nde + description: Portal operated by NDE network + close_mappings: + - schema:provider + broad_mappings: + - prov:wasAttributedTo + annotations: + inverse_slot: operates + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/operates_or_operated.yaml b/schemas/20251121/linkml/modules/slots/archive/operates_or_operated.yaml new file mode 100644 index 0000000000..d84f86990a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/operates_or_operated.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/operates_or_operated +name: operates_or_operated +title: operates_or_operated +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + operates_or_operated: + name: operates_or_operated + title: operates_or_operated + description: Operates a platform or facility. + slot_uri: schema:owns + range: string # uriorcurie + # range: Platform + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:owns diff --git a/schemas/20251121/linkml/modules/slots/archive/operating_budget.yaml b/schemas/20251121/linkml/modules/slots/archive/operating_budget.yaml new file mode 100644 index 0000000000..26061b0a32 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/operating_budget.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/operating_budget +name: operating_budget_slot +title: Operating Budget Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + operating_budget: + description: 'Operating budget allocation (day-to-day operations). + + + **FRAPO**: frapo:hasFunding for funding amounts. + + + Typically includes: + + - Personnel costs + + - Utilities + + - Supplies + + - Maintenance + + - Marketing + + ' + range: decimal + slot_uri: hc:operatingBudget + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:operatingBudget diff --git a/schemas/20251121/linkml/modules/slots/archive/operating_hour.yaml b/schemas/20251121/linkml/modules/slots/archive/operating_hour.yaml new file mode 100644 index 0000000000..477b52500f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/operating_hour.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/operating_hour +name: operating_hour_slot +title: Operating Hours Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + operating_hour: + description: 'Operating hours for this branch office. + + + Schema.org: openingHours in standard format. + + + Example formats: + + - "Tu-Th 09:00-17:00" + + - "Mo-Fr 10:00-16:00, Sa 10:00-13:00" + + ' + range: string + slot_uri: hc:operatingHours + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:operatingHours diff --git a/schemas/20251121/linkml/modules/slots/archive/operational_status.yaml b/schemas/20251121/linkml/modules/slots/archive/operational_status.yaml new file mode 100644 index 0000000000..c9b2f5b0c5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/operational_status.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/operational_status +name: operational_status_slot +title: Operational Status Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + operational_status: + description: 'Current operational status of the device. + + + Values: + + - ACTIVE: Currently operational + + - MAINTENANCE: Under maintenance + + - OFFLINE: Not currently functional + + - DECOMMISSIONED: Permanently retired + + - PLANNED: Not yet installed + + + Schema.org: status for current status. + + ' + range: string + slot_uri: hc:operationalStatus + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:operationalStatus diff --git a/schemas/20251121/linkml/modules/slots/archive/operator.yaml b/schemas/20251121/linkml/modules/slots/archive/operator.yaml new file mode 100644 index 0000000000..2dd6747a50 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/operator.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/operator +name: operator_slot +title: operator slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + operator: + slot_uri: schema:provider + description: 'Operator of catering facility if outsourced. + + + Many museum restaurants are run by external caterers. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:provider diff --git a/schemas/20251121/linkml/modules/slots/archive/organization_legal_form.yaml b/schemas/20251121/linkml/modules/slots/archive/organization_legal_form.yaml new file mode 100644 index 0000000000..f2f0ac5315 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/organization_legal_form.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/organization_legal_form +name: organization_legal_form +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + organization_legal_form: + slot_uri: schema:legalName + description: 'Legal form of the encompassing organization (ministry, foundation, association, etc.). + + W3C ORG: classification for organizational type classification. + + ' + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:legalName diff --git a/schemas/20251121/linkml/modules/slots/archive/organization_name.yaml b/schemas/20251121/linkml/modules/slots/archive/organization_name.yaml new file mode 100644 index 0000000000..938158be09 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/organization_name.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/organization_name +name: organization_name_slot +title: Organization Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + organization_name: + range: string + slot_uri: skos:prefLabel + description: 'Official name of the encompassing organization. + + Ontology mapping: skos:prefLabel is the standard SKOS property for preferred human-readable labels. Organization names are the primary way humans identify and refer to organizations.' + close_mappings: + - schema:name + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/organization_type.yaml b/schemas/20251121/linkml/modules/slots/archive/organization_type.yaml new file mode 100644 index 0000000000..54c7de79f0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/organization_type.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/organization_type +name: organization_type +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + organization_type: + slot_uri: schema:additionalType + description: 'Type of encompassing body (UMBRELLA, NETWORK, CONSORTIUM). + + Determines governance model and relationship nature. + + ' + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:additionalType diff --git a/schemas/20251121/linkml/modules/slots/archive/organizational_change_score.yaml b/schemas/20251121/linkml/modules/slots/archive/organizational_change_score.yaml new file mode 100644 index 0000000000..ac775ed093 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/organizational_change_score.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/organizational_change_score +name: organizational_change_score_slot +title: Organizational Change Score Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + organizational_change_score: + slot_uri: sosa:hasSimpleResult + range: float + minimum_value: 0.0 + maximum_value: 1.0 + description: 'Specificity score for change event queries. + + **Ontology mapping**: Uses sosa:hasSimpleResult because this is a computed relevance score from search/retrieval algorithms acting as observation systems.' + close_mappings: + - prov:value + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/organizational_level.yaml b/schemas/20251121/linkml/modules/slots/archive/organizational_level.yaml new file mode 100644 index 0000000000..fd57a38c87 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/organizational_level.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/organizational_level +name: organizational_level_slot +title: Organizational Level Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + organizational_level: + slot_uri: hc:organizationalLevel + description: 'Administrative/organizational level of this institution type. + + Examples: national, regional, provincial, municipal, local + + ' + range: string + examples: + - value: national + description: National-level institution + - value: municipal + description: City/town-level institution + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:organizationalLevel diff --git a/schemas/20251121/linkml/modules/slots/archive/organizational_mission.yaml b/schemas/20251121/linkml/modules/slots/archive/organizational_mission.yaml new file mode 100644 index 0000000000..995fd661a7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/organizational_mission.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/organizational_mission +name: organizational_mission_slot +title: Organizational Mission Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + organizational_mission: + description: "Primary mission and purpose of the non-profit heritage organization.\n\nDescribes the organization's raison d'\xEAtre:\n- **Advocacy**: Policy influence, legislative change, public awareness\n- **Capacity building**: Training, consulting, technical assistance\n- **Grant-making**: Funding heritage projects, scholarships, awards\n- **Networking**: Connecting professionals, knowledge exchange, partnerships\n- **Standards development**: Best practices, ethics codes, professional standards\n- **Emergency response**: Disaster relief, heritage at risk, conflict protection\n- **Research support**: Commissioned research, publications, knowledge production\n\nMission statement should clarify why the organization exists.\n\nExamples:\n- \"Heritage advocacy, Awareness campaigns, Policy influence\"\n- \"Grant-making for endangered heritage sites worldwide\"\n- \"Professional development for heritage sector workers\"\n- \"Emergency response to heritage disasters and conflicts\"\n" + range: string + slot_uri: hc:organizationalMission + close_mappings: + - schema:description + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/organizational_principle.yaml b/schemas/20251121/linkml/modules/slots/archive/organizational_principle.yaml new file mode 100644 index 0000000000..4443efdb46 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/organizational_principle.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/organizational_principle +name: organizational_principle +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + organizational_principle: + slot_uri: hc:organizationalPrinciple + description: The organizational principle (fonds, series, file, collection) of a record set. + range: string + required: false + comments: + - rico:hasOrHadOrganizationalPrinciple does not exist in RiC-O - use hc namespace + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:organizationalPrinciple diff --git a/schemas/20251121/linkml/modules/slots/archive/organizational_principle_uri.yaml b/schemas/20251121/linkml/modules/slots/archive/organizational_principle_uri.yaml new file mode 100644 index 0000000000..4ff74a3427 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/organizational_principle_uri.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/organizational_principle_uri +name: organizational_principle_uri +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + organizational_principle_uri: + slot_uri: hc:organizationalPrincipleUri + description: URI reference to RiC-O organizational principle vocabulary term. + range: string + required: false + comments: + - rico:hasOrHadOrganizationalPrinciple does not exist in RiC-O - use hc namespace + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:organizationalPrincipleUri diff --git a/schemas/20251121/linkml/modules/slots/archive/organizational_structure.yaml b/schemas/20251121/linkml/modules/slots/archive/organizational_structure.yaml new file mode 100644 index 0000000000..9a73f3e9be --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/organizational_structure.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/organizational_structure +name: organizational_structure_slot +imports: +- linkml:types +slots: + organizational_structure: + slot_uri: org:hasUnit + range: string # uriorcurie + # range: OrganizationalStructure + multivalued: true + description: "Informal organizational structure - operational departments, teams,\ndivisions, and groups that are NOT formally registered legal entities.\n\n**Key Distinction from GovernanceStructure**:\n- **GovernanceStructure** (on CustodianLegalStatus): FORMAL structure\n from legal registration (e.g., \"National Archives is agency under Ministry OCW\")\n- **OrganizationalStructure** (on Custodian): INFORMAL operational units\n (e.g., \"Digital Preservation Team\", \"Collections Department\")\n\n**W3C ORG Ontology**:\nUses `org:hasUnit` to link custodian to `org:OrganizationalUnit` instances.\n- Domain: org:FormalOrganization\n- Range: org:OrganizationalUnit\n- Definition: \"Indicates a unit which is part of this Organization\"\n\n**Why on Custodian, not CustodianLegalStatus?**:\n- Organizational units are operational/functional, not legal\n- Units can change frequently without legal reorganization\n- Multiple legal entities (branches) may share organizational units\n- Separates\ + \ formal (legal) from informal (operational) concerns\n\n**Temporal Dynamics**:\nEach OrganizationalStructure has `valid_from`/`valid_to` dates to track\norganizational changes (department creation, mergers, dissolutions).\n\n**Example - National Archives**:\n```yaml\nCustodianLegalStatus:\n governance_structure: # FORMAL (from legal docs)\n structure_type: \"Government agency\"\n governance_body: \"Reports to Ministry OCW\"\n\nCustodian:\n organizational_structure: # INFORMAL (operational)\n - unit_name: \"Digital Preservation Department\"\n unit_type: \"DEPARTMENT\"\n staff_count: 15\n - unit_name: \"Public Services Team\"\n unit_type: \"TEAM\"\n```\n" + comments: + - Links to OrganizationalStructure class (org:OrganizationalUnit) + - Multivalued - custodians have multiple units + - Units can nest via parent_unit property + - Temporal validity tracked per unit (valid_from/valid_to) + - NOT for legal sub-organizations (use CustodianLegalStatus hierarchy) + exact_mappings: + - org:hasUnit + related_mappings: + - org:OrganizationalUnit + - org:unitOf + examples: + - value: "- unit_name: Digital Preservation Department\n unit_type: DEPARTMENT\n staff_count: 15\n- unit_name: Public Services Team\n unit_type: TEAM\n parent_unit:\n unit_name: User Services Division\n" + description: Custodian with multiple organizational units + close_mappings: + - org:organization + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/organized_by.yaml b/schemas/20251121/linkml/modules/slots/archive/organized_by.yaml new file mode 100644 index 0000000000..c6b46fd621 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/organized_by.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/organized_by +name: organized_by_slot +title: Organized By Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + organized_by: + description: 'Primary Custodian organization(s) that organized this exhibition. + + + Links to heritage custodian entities (museums, archives, libraries, galleries). + + For joint exhibitions, list all organizing institutions. + + ' + range: string # uriorcurie + multivalued: true + slot_uri: schema:organizer + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:organizer diff --git a/schemas/20251121/linkml/modules/slots/archive/organizing_body.yaml b/schemas/20251121/linkml/modules/slots/archive/organizing_body.yaml new file mode 100644 index 0000000000..21e130cd8a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/organizing_body.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/organizing_body +name: organizing_body_slot +title: Organizing Body Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + organizing_body: + range: string # uriorcurie + description: "The EncompassingBody organization that runs this project.\n\nURI reference to EncompassingBody entity (avoids circular dependency).\nFormat: https://nde.nl/ontology/hc/encompassing-body/{type}/{slug}\n\n**Inverse of EncompassingBody.projects**:\n- EncompassingBody \u2192 projects \u2192 Project[]\n- Project \u2192 organizing_body \u2192 EncompassingBody\n\nTypically a NetworkOrganisation or Consortium, but can be any\nEncompassingBody subclass.\n\n**Ontology Note**: Uses `schema:sponsor` - \"A person or organization\nthat supports a thing through a pledge, promise, or financial contribution.\"\nDomain includes Organization. `schema:organizer` was considered but\nits domain is restricted to Event, not Project.\n" + slot_uri: hc:organizingBody + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:organizingBody diff --git a/schemas/20251121/linkml/modules/slots/archive/origin_location.yaml b/schemas/20251121/linkml/modules/slots/archive/origin_location.yaml new file mode 100644 index 0000000000..642716f986 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/origin_location.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/origin_location +name: origin_location_slot +title: Origin Location Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + origin_location: + description: 'Location where this heritage form originated. + + ' + range: string + slot_uri: hc:originLocation + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:originLocation diff --git a/schemas/20251121/linkml/modules/slots/archive/origin_period.yaml b/schemas/20251121/linkml/modules/slots/archive/origin_period.yaml new file mode 100644 index 0000000000..0743d18411 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/origin_period.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/origin_period +name: origin_period_slot +title: Origin Period Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + origin_period: + description: 'Time period when this heritage form originated or first appeared. + + ' + range: string # uriorcurie + # range: TimeSpan + slot_uri: hc:originPeriod + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:originPeriod diff --git a/schemas/20251121/linkml/modules/slots/archive/original_end_date.yaml b/schemas/20251121/linkml/modules/slots/archive/original_end_date.yaml new file mode 100644 index 0000000000..54f6f8a868 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/original_end_date.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/original_end_date +name: original_end_date_slot +title: Original End Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + original_end_date: + description: 'Original agreed return date before any extensions. + + ' + range: date + slot_uri: dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:date diff --git a/schemas/20251121/linkml/modules/slots/archive/originates_or_originated_from.yaml b/schemas/20251121/linkml/modules/slots/archive/originates_or_originated_from.yaml new file mode 100644 index 0000000000..c8687df3e1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/originates_or_originated_from.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/originates_or_originated_from +name: originates_or_originated_from +title: originates_or_originated_from +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + originates_or_originated_from: + name: originates_or_originated_from + description: 'The entity (organization, place, or person) from which this entity originated or was derived. + + Used to link a Custodian (like a Diocesan Archive) to its originating body (the Diocese). + + MIGRATED from `ecclesiastical_province` (partial) and other origin slots.' + slot_uri: prov:wasDerivedFrom + range: string # uriorcurie + multivalued: false + exact_mappings: + - prov:wasDerivedFrom + close_mappings: + - schema:parentOrganization + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/osm_id.yaml b/schemas/20251121/linkml/modules/slots/archive/osm_id.yaml new file mode 100644 index 0000000000..bfeae77f67 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/osm_id.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/osm_id +name: osm_id +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + osm_id: + slot_uri: schema:identifier + range: string + description: 'OpenStreetMap identifier (node, way, or relation). + + Format: {type}/{id} (e.g., "way/123456789") + + + Use for: + + - Building footprints + + - Street-level detail + + - Community-verified boundaries + + ' + examples: + - value: way/27083908 + description: Rijksmuseum building footprint + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/outbound_condition_report_url.yaml b/schemas/20251121/linkml/modules/slots/archive/outbound_condition_report_url.yaml new file mode 100644 index 0000000000..1592d57ec7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/outbound_condition_report_url.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/outbound_condition_report_url +name: outbound_condition_report_url_slot +title: Outbound Condition Report Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + outbound_condition_report_url: + description: 'URL to pre-loan condition report documenting object state before transit. + + ' + range: uri + slot_uri: hc:outboundConditionReportUrl + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:outboundConditionReportUrl diff --git a/schemas/20251121/linkml/modules/slots/archive/outbound_to.yaml b/schemas/20251121/linkml/modules/slots/archive/outbound_to.yaml new file mode 100644 index 0000000000..b20754b66c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/outbound_to.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/outbound_to +name: outbound_to +title: Outbound To +description: Link to external resource. +imports: +- linkml:types +prefixes: + linkml: https://w3id.org/linkml/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + hc: https://nde.nl/ontology/hc/ +# default_range: string +slots: + outbound_to: + slot_uri: rdfs:seeAlso + range: string # uriorcurie + multivalued: true + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/outdoor_seating_capacity.yaml b/schemas/20251121/linkml/modules/slots/archive/outdoor_seating_capacity.yaml new file mode 100644 index 0000000000..896db333d2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/outdoor_seating_capacity.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/outdoor_seating_capacity +name: outdoor_seating_capacity_slot +title: outdoor_seating_capacity slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + outdoor_seating_capacity: + slot_uri: schema:maximumAttendeeCapacity + description: 'Outdoor/terrace seating capacity if applicable. + + ' + range: integer + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:maximumAttendeeCapacity diff --git a/schemas/20251121/linkml/modules/slots/archive/outdoor_site_description.yaml b/schemas/20251121/linkml/modules/slots/archive/outdoor_site_description.yaml new file mode 100644 index 0000000000..24d86fb458 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/outdoor_site_description.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/slot/outdoor-site-description +name: outdoor_site_description_slot +title: outdoor_site_description slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + outdoor_site_description: + slot_uri: dcterms:description + description: 'Free-text description of this outdoor site. + + + Include: + + - Type of outdoor space + + - What can be seen/experienced + + - Historical significance + + - Visitor information + + ' + range: string + examples: + - value: One of Europe's largest sculpture gardens with 160 works set in 25 hectares of park landscape within De Hoge Veluwe National Park. + description: Sculpture garden description + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:description diff --git a/schemas/20251121/linkml/modules/slots/archive/outdoor_site_id.yaml b/schemas/20251121/linkml/modules/slots/archive/outdoor_site_id.yaml new file mode 100644 index 0000000000..5fdb65f8b6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/outdoor_site_id.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/outdoor-site-id +name: outdoor_site_id_slot +title: outdoor_site_id slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + outdoor_site_id: + slot_uri: dcterms:identifier + description: 'Unique identifier for this outdoor site. + + Format: URI following NDE Heritage Custodian ontology conventions. + + ' + range: string # uriorcurie + identifier: true + examples: + - value: https://nde.nl/ontology/hc/aux/kroller-muller-sculpture + description: "Kr\xF6ller-M\xFCller sculpture garden" + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/outdoor_site_name.yaml b/schemas/20251121/linkml/modules/slots/archive/outdoor_site_name.yaml new file mode 100644 index 0000000000..825d3093a8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/outdoor_site_name.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/outdoor-site-name +name: outdoor_site_name_slot +title: outdoor_site_name slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + outdoor_site_name: + slot_uri: skos:prefLabel + description: 'Name of this outdoor site. + + + SKOS: prefLabel for preferred name. + + ' + range: string + examples: + - value: "Kr\xF6ller-M\xFCller Beeldentuin" + description: Sculpture garden + - value: Paleis Het Loo Tuinen + description: Palace gardens + - value: Archeologisch Park Matilo + description: Archaeological park + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:prefLabel diff --git a/schemas/20251121/linkml/modules/slots/archive/outdoor_site_type.yaml b/schemas/20251121/linkml/modules/slots/archive/outdoor_site_type.yaml new file mode 100644 index 0000000000..0acf56840f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/outdoor_site_type.yaml @@ -0,0 +1,55 @@ +id: https://nde.nl/ontology/hc/slot/outdoor-site-type +name: outdoor_site_type_slot +title: outdoor_site_type slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/OutdoorSiteTypeEnum +default_prefix: hc +slots: + outdoor_site_type: + slot_uri: dcterms:type + description: 'Local classification of outdoor site type. + + + Used in addition to enum classifications for quick filtering: + + - SCULPTURE_GARDEN + + - FORMAL_GARDEN + + - LANDSCAPE_PARK + + - ARCHAEOLOGICAL_SITE + + - BOTANICAL_GARDEN + + - NATURE_RESERVE + + - CEMETERY + + - PLAZA_COURTYARD + + ' + range: string # uriorcurie + # range: OutdoorSiteTypeEnum + examples: + - value: SCULPTURE_GARDEN + description: Outdoor art display + - value: FORMAL_GARDEN + description: Historic garden + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:type diff --git a/schemas/20251121/linkml/modules/slots/archive/overall_confidence.yaml b/schemas/20251121/linkml/modules/slots/archive/overall_confidence.yaml new file mode 100644 index 0000000000..b9facc84c9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/overall_confidence.yaml @@ -0,0 +1,55 @@ +id: https://nde.nl/ontology/hc/slot/overall_confidence +name: overall_confidence_slot +title: Overall Confidence Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + overall_confidence: + slot_uri: sosa:hasSimpleResult + description: 'Overall confidence score for the generated content. + + + Range: 0.0 (no confidence) to 1.0 (complete certainty) + + + Aggregated from per-segment confidence scores or + + provided by the generation model. + + + **Thresholds** (suggested): + + - > 0.9: High quality, production-ready + + - 0.75-0.9: Good, may have minor errors + + - 0.6-0.75: Usable, should be reviewed + + - < 0.6: Low quality, needs significant correction + + + **Ontology mapping**: Uses sosa:hasSimpleResult because this is an aggregated observation result from AI/ML models acting as sensors. + + ' + range: float + minimum_value: 0.0 + maximum_value: 1.0 + close_mappings: + - prov:value + related_mappings: + - schema:ratingValue + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/overall_status.yaml b/schemas/20251121/linkml/modules/slots/archive/overall_status.yaml new file mode 100644 index 0000000000..354bed04e6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/overall_status.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/overall_status +name: overall_status_slot +title: Overall Status Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/StorageConditionStatusEnum +default_prefix: hc +slots: + overall_status: + description: 'Overall condition status based on this observation. + + + Aggregate assessment across all categories observed. + + Individual category assessments may vary. + + + PREMIS: hasOutcome for preservation action results. + + ' + range: string # uriorcurie + # range: StorageConditionStatusEnum + slot_uri: hc:overallStatus + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:overallStatus diff --git a/schemas/20251121/linkml/modules/slots/archive/oversight_jurisdiction.yaml b/schemas/20251121/linkml/modules/slots/archive/oversight_jurisdiction.yaml new file mode 100644 index 0000000000..8a75a4f53f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/oversight_jurisdiction.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/oversight_jurisdiction +name: oversight_jurisdiction_slot +title: Oversight Jurisdiction Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + oversight_jurisdiction: + slot_uri: hc:oversightJurisdiction + description: "The geographic or sectoral scope of authority for this official institution.\nDefines the boundaries of legal, regulatory, or administrative responsibility.\n\n**Geographic Jurisdiction**:\n- Country names (ISO 3166-1 alpha-2): \"NL\", \"GB\", \"FR\", \"DE\"\n- Regions/provinces: \"Bavaria\", \"Catalonia\", \"North Holland\"\n- Municipalities: \"Amsterdam\", \"Berlin\", \"Paris\"\n\n**Sectoral Jurisdiction** (when applicable):\n- \"movable heritage\" - Portable cultural objects\n- \"immovable heritage\" - Buildings, monuments, archaeological sites\n- \"intangible heritage\" - Traditions, practices, oral heritage\n- \"audiovisual heritage\" - Film, sound, broadcast archives\n- \"digital heritage\" - Born-digital and digitized materials\n\n**Examples**:\n- Historic England: \"England\" (geographic)\n- Bundesdenkmalamt (AT): \"Austria\" + \"immovable heritage\" (combined)\n- Centre national du cin\xE9ma (FR): \"France\" + \"audiovisual heritage\"\n\n**Ontology Alignment**:\n\ + - Maps to `cpov:spatialCoverage` for geographic scope\n- Maps to `schema:areaServed` in Schema.org\n" + range: string + close_mappings: + - dcterms:spatial + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/ownership_stamp.yaml b/schemas/20251121/linkml/modules/slots/archive/ownership_stamp.yaml new file mode 100644 index 0000000000..a560b76bbf --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/ownership_stamp.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/ownership_stamp +name: ownership_stamp_slot +title: Ownership Stamps Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + ownership_stamp: + description: 'Ownership stamps, ink stamps, or embossed marks. + + ' + range: string + multivalued: true + slot_uri: hc:ownershipStamps + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:ownershipStamps diff --git a/schemas/20251121/linkml/modules/slots/archive/page.yaml b/schemas/20251121/linkml/modules/slots/archive/page.yaml new file mode 100644 index 0000000000..5847bc3489 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/page.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/page +name: page_slot +title: Pages Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + page: + description: 'Number of pages in the catalog. + + ' + range: integer + slot_uri: schema:numberOfPages + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:numberOfPages diff --git a/schemas/20251121/linkml/modules/slots/archive/page_count.yaml b/schemas/20251121/linkml/modules/slots/archive/page_count.yaml new file mode 100644 index 0000000000..d63e8a7a07 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/page_count.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/page_count +name: page_count_slot +title: Page Count Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + bf: http://id.loc.gov/ontologies/bibframe/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + page_count: + description: 'Number of pages in paginated items. + + For books, typically refers to printed/written pages. + + ' + range: integer + slot_uri: bf:extent + annotations: + custodian_types: '["*"]' + exact_mappings: + - bf:extent diff --git a/schemas/20251121/linkml/modules/slots/archive/page_section.yaml b/schemas/20251121/linkml/modules/slots/archive/page_section.yaml new file mode 100644 index 0000000000..fdfbc6b677 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/page_section.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/page_section +name: page_section_slot +title: page_section slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + page_section: + range: string + description: 'Section or heading on the web page where statement was found. + + Examples: "Onze Missie", "Vision Statement", "About Us" + + ' + slot_uri: hc:pageSection + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:pageSection diff --git a/schemas/20251121/linkml/modules/slots/archive/page_title.yaml b/schemas/20251121/linkml/modules/slots/archive/page_title.yaml new file mode 100644 index 0000000000..a58a703c18 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/page_title.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/page_title +name: page_title_slot +title: Page Title Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + page_title: + range: string + description: 'Title of the web page as retrieved. + + Ontology mapping: dcterms:title is the Dublin Core property for the name given to a resource, applicable to web pages.' + slot_uri: dcterms:title + close_mappings: + - schema:name + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/paragraph_count.yaml b/schemas/20251121/linkml/modules/slots/archive/paragraph_count.yaml new file mode 100644 index 0000000000..ee573f71d2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/paragraph_count.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/paragraph_count +name: paragraph_count_slot +title: Paragraph Count Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + paragraph_count: + slot_uri: hc:paragraphCount + description: 'Number of paragraphs in the transcript. + + + Only meaningful when transcript_format = PARAGRAPHED or STRUCTURED. + + + Useful for content sizing and readability assessment. + + ' + range: integer + comments: + - schema:interactionCount is a CLASS (InteractionCounter), not a property. Paragraph count is a text metric without standard ontology equivalent. + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:paragraphCount diff --git a/schemas/20251121/linkml/modules/slots/archive/parallel_title.yaml b/schemas/20251121/linkml/modules/slots/archive/parallel_title.yaml new file mode 100644 index 0000000000..835fae327a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/parallel_title.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/parallel_title +name: parallel_title_slot +title: Parallel Title Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + bf: http://id.loc.gov/ontologies/bibframe/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + parallel_title: + description: 'Parallel titles in other languages. + + ' + range: string + multivalued: true + slot_uri: bf:title + annotations: + custodian_types: '["*"]' + exact_mappings: + - bf:title diff --git a/schemas/20251121/linkml/modules/slots/archive/parent_corporation.yaml b/schemas/20251121/linkml/modules/slots/archive/parent_corporation.yaml new file mode 100644 index 0000000000..baf842c841 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/parent_corporation.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/parent_corporation +name: parent_corporation_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + parent_corporation: + slot_uri: schema:parentOrganization + description: "The corporate parent organization that owns or controls this entity.\n\nSchema.org: parentOrganization - \"The larger organization that this organization \nis a subOrganization of, if any.\"\n\nUsed for corporate archives, company museums, or heritage institutions\nowned by larger corporate entities.\n" + range: string + exact_mappings: + - schema:parentOrganization + close_mappings: + - org:subOrganizationOf + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/parent_department.yaml b/schemas/20251121/linkml/modules/slots/archive/parent_department.yaml new file mode 100644 index 0000000000..6ee97e09e1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/parent_department.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/parent_department +name: parent_department_slot +title: Parent Department Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + parent_department: + description: "Parent department in organizational hierarchy.\n\nW3C ORG: subOrganizationOf for hierarchical relationships.\n\nExample: \"Paper Conservation Lab\" is sub-department of \n\"Conservation Department\"\n" + range: string # uriorcurie + # range: Department + slot_uri: hc:parentDepartment + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:parentDepartment diff --git a/schemas/20251121/linkml/modules/slots/archive/parent_programme.yaml b/schemas/20251121/linkml/modules/slots/archive/parent_programme.yaml new file mode 100644 index 0000000000..eea109b5be --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/parent_programme.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/parent_programme +name: parent_programme_slot +title: Parent Programme Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + parent_programme: + range: string + description: Parent funding programme (e.g., "Horizon Europe", "Creative Europe") + slot_uri: hc:parentProgramme + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:parentProgramme diff --git a/schemas/20251121/linkml/modules/slots/archive/parent_society.yaml b/schemas/20251121/linkml/modules/slots/archive/parent_society.yaml new file mode 100644 index 0000000000..366a6d50fb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/parent_society.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/parent_society +name: parent_society_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + parent_society: + slot_uri: hc:parentSociety + description: "Links an AssociationArchive to the HeritageSocietyType whose records \nit preserves.\n\n**Semantic Meaning**:\n\nThis slot captures the relationship between an archive (the custodian)\nand the society/association that created/owns the archival records.\nThe parent society is the provenance agent - the organization whose\nactivities generated the records now held by the archive.\n\n**Use Case**:\n\nAn AssociationArchive holds records OF a heritage society. The archive\nis the custodian; the society is the provenance agent whose activities\nare documented in the records.\n\n**Constraints**:\n- Range MUST be HeritageSocietyType (S-type in GLAMORCUBESFIXPHDNT)\n- Captures \"records OF\" relationship, not \"operated BY\" relationship" + range: string # uriorcurie + # range: HeritageSocietyType + close_mappings: + - org:linkedTo + comments: + - Links archive to society whose records it holds + - Parent must be S-type in GLAMORCUBESFIXPHDNT taxonomy + - Captures provenance relationship, not operational ownership + + examples: + - value: "AssociationArchive:\n name: \"Archief Historische Vereniging Nijeveen\"\n parent_society: \"HV-Nijeveen\"\\ \\ # Link to HeritageSocietyType\n" + description: Usage example + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/parent_unit.yaml b/schemas/20251121/linkml/modules/slots/archive/parent_unit.yaml new file mode 100644 index 0000000000..4b0bff51df --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/parent_unit.yaml @@ -0,0 +1,45 @@ +id: https://nde.nl/ontology/hc/slot/parent_unit +name: parent_unit_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + owl: http://www.w3.org/2002/07/owl# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + parent_unit: + slot_uri: org:unitOf + description: 'Parent unit in organizational hierarchy. + + Allows nested organizational structures. + + + Example: + + - "Conservation Team" is parent_unit of "Paper Conservation Lab" + + - "Collections Division" is parent_unit of "Acquisitions Department" + + ' + range: string # uriorcurie + # range: OrganizationalStructure + exact_mappings: + - org:unitOf + comments: + - Inverse of has_unit (org:hasUnit) + - Creates owl:inverseOf axiom in RDF output + - 'Inverse: `has_unit` (org:hasUnit) | Pattern: If A unitOf B, then B hasUnit A' + annotations: + inverse_slot: has_unit + custodian_types: '["*"]' + examples: + - value: "OrganizationalStructure:\n unit_name: \"Paintings Department\"\n parent_unit: \"https://nde.nl/ontology/hc/org/collections-division\"\n" + description: Usage example diff --git a/schemas/20251121/linkml/modules/slots/archive/part_of_collection.yaml b/schemas/20251121/linkml/modules/slots/archive/part_of_collection.yaml new file mode 100644 index 0000000000..0f24c902a5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/part_of_collection.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/part_of_collection +name: part_of_collection_slot +title: Part Of Collection Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + part_of_collection: + description: 'Collection(s) to which this object belongs. + + ' + range: string # uriorcurie + slot_uri: crm:P46i_forms_part_of + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P46i_forms_part_of diff --git a/schemas/20251121/linkml/modules/slots/archive/part_of_custodian_collection.yaml b/schemas/20251121/linkml/modules/slots/archive/part_of_custodian_collection.yaml new file mode 100644 index 0000000000..11bf13acda --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/part_of_custodian_collection.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/part_of_custodian_collection +name: part_of_custodian_collection +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + part_of_custodian_collection: + slot_uri: rico:isOrWasHolderOf + description: 'The abstract CustodianCollection this specific Collection belongs to. + + + Links specific holdings back to the nominal/abstract collection aspect. + + + CIDOC-CRM: P46i_forms_part_of for part-whole relationship. + + ' + range: string # uriorcurie + # range: CustodianCollection + required: false + examples: + - value: https://nde.nl/ontology/hc/custodian-collection/nationaal-archief + description: Nationaal Archief holdings + close_mappings: + - rico:hasOrHadHolder + comments: + - rico:isOrWasHeldBy does not exist in RiC-O - use rico:isOrWasHolderOf + broad_mappings: + - dcterms:relation + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/part_of_event.yaml b/schemas/20251121/linkml/modules/slots/archive/part_of_event.yaml new file mode 100644 index 0000000000..c37b7fb627 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/part_of_event.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/part_of_event +name: part_of_event_slot +title: Part Of Event Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + part_of_event: + description: 'The heritage event this performance is part of (if applicable). + + + Performances can be standalone or part of a larger festival. + + ' + range: string # uriorcurie + # range: IntangibleHeritageEvent + slot_uri: schema:superEvent + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:superEvent diff --git a/schemas/20251121/linkml/modules/slots/archive/part_of_facility.yaml b/schemas/20251121/linkml/modules/slots/archive/part_of_facility.yaml new file mode 100644 index 0000000000..9697d16b3b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/part_of_facility.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/part_of_facility +name: part_of_facility_slot +title: Part Of Facility Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + part_of_facility: + description: 'The parent storage facility containing this zone. + + + HC Ontology: `hc:isStorageSectionOf` + + ' + range: string # uriorcurie + # range: Storage + slot_uri: hc:partOfFacility + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:partOfFacility diff --git a/schemas/20251121/linkml/modules/slots/archive/part_of_storage.yaml b/schemas/20251121/linkml/modules/slots/archive/part_of_storage.yaml new file mode 100644 index 0000000000..cbc72b2b91 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/part_of_storage.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/part_of_storage +name: part_of_storage_slot +title: Part Of Storage Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + part_of_storage: + description: 'The parent storage facility containing this unit. + + + HC Ontology: `hc:isStorageSectionOf` (inverse of `hc:hasStorageSection`) + + ' + range: string # uriorcurie + # range: Storage + slot_uri: hc:partOfStorage + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:partOfStorage diff --git a/schemas/20251121/linkml/modules/slots/archive/part_of_zone.yaml b/schemas/20251121/linkml/modules/slots/archive/part_of_zone.yaml new file mode 100644 index 0000000000..662768033f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/part_of_zone.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/part_of_zone +name: part_of_zone_slot +title: Part Of Zone Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + part_of_zone: + description: 'The environmental zone containing this unit. + + + HC Ontology: `hc:isStorageSectionOf` (inverse of `hc:hasStorageSection`) + + ' + range: string # uriorcurie + # range: EnvironmentalZone + slot_uri: hc:partOfZone + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:partOfZone diff --git a/schemas/20251121/linkml/modules/slots/archive/part_type.yaml b/schemas/20251121/linkml/modules/slots/archive/part_type.yaml new file mode 100644 index 0000000000..92e056f095 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/part_type.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/part_type +name: part_type_slot +title: Part Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + part_type: + description: "Part(s) of organism represented in this specimen.\n\n**Values**: WHOLE_ORGANISM, SKELETON, SKULL, SKIN, SHELL, \nWING, LEG, FEATHER, TISSUE, DNA, LEAF, FLOWER, ROOT, SEED\n" + range: string + multivalued: true + slot_uri: dwc:preparations + annotations: + custodian_types: '["*"]' + exact_mappings: + - dwc:preparations diff --git a/schemas/20251121/linkml/modules/slots/archive/participant_count.yaml b/schemas/20251121/linkml/modules/slots/archive/participant_count.yaml new file mode 100644 index 0000000000..4e5b3bf659 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/participant_count.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/participant_count +name: participant_count_slot +title: Participant Count Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + participant_count: + description: 'Number of active participants (performers, parade participants, etc.). + + Distinct from audience/spectator count. + + ' + range: integer + slot_uri: hc:participantCount + related_mappings: + - schema:maximumAttendeeCapacity + - schema:attendee + comments: + - schema:attendeeCount does not exist in Schema.org. schema:maximumAttendeeCapacity is for capacity, not actual count. + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:participantCount diff --git a/schemas/20251121/linkml/modules/slots/archive/participating_custodian.yaml b/schemas/20251121/linkml/modules/slots/archive/participating_custodian.yaml new file mode 100644 index 0000000000..bf301d0c5f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/participating_custodian.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/participating_custodian +name: participating_custodian_slot +title: Participating Custodians Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + participating_custodian: + range: string # uriorcurie + multivalued: true + description: "Heritage custodians participating in this project.\n\nURI references to Custodian entities (avoids circular dependency).\nFormat: https://nde.nl/ontology/hc/{abstracted-ghcid}\n\n**Inverse of Custodian.participated_in_projects**:\n- Project \u2192 participating_custodians \u2192 Custodian[]\n- Custodian \u2192 participated_in_projects \u2192 Project[]\n\n**Navigation Pattern**:\nFrom project, find all participating institutions.\nFrom custodian, find all projects they participated in.\n\n**Ontology Note**: Uses W3C ORG `org:hasMember` - \"Indicates a person\nwho is a member of the subject Organization.\" Since Project is modeled\nas an org:OrganizationalCollaboration (which is an Organization), this\nproperty is valid. Alternative was `schema:participant` but its domain\nis schema:Action, not Organization/Project.\n" + slot_uri: hc:participatingCustodians + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:participatingCustodians diff --git a/schemas/20251121/linkml/modules/slots/archive/participating_institution.yaml b/schemas/20251121/linkml/modules/slots/archive/participating_institution.yaml new file mode 100644 index 0000000000..b3a1fb53a5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/participating_institution.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/participating_institution +name: participating_institution_slot +title: Participating Institutions Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + participating_institution: + range: integer + description: 'Number of institutions contributing data to the portal. + + ' + slot_uri: hc:participatingInstitutions + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:participatingInstitutions diff --git a/schemas/20251121/linkml/modules/slots/archive/particulate_max.yaml b/schemas/20251121/linkml/modules/slots/archive/particulate_max.yaml new file mode 100644 index 0000000000..b3397bbdfe --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/particulate_max.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/particulate_max +name: particulate_max_slot +title: Particulate Max Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + particulate_max: + description: 'Maximum particulate count (particles per cubic meter). + + + HEPA filtration typically required for heritage storage. + + ' + range: float + slot_uri: hc:particulateMax + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:particulateMax diff --git a/schemas/20251121/linkml/modules/slots/archive/partner_institution.yaml b/schemas/20251121/linkml/modules/slots/archive/partner_institution.yaml new file mode 100644 index 0000000000..25c87c222d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/partner_institution.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/partner_institution +name: partner_institution_slot +title: partner_institution slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + partner_institution: + slot_uri: schema:sponsor + description: 'Partner institution if exhibition space is in shared/partner venue. + + + Only relevant for PARTNER_VENUE exhibition type. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:sponsor diff --git a/schemas/20251121/linkml/modules/slots/archive/partnership_model.yaml b/schemas/20251121/linkml/modules/slots/archive/partnership_model.yaml new file mode 100644 index 0000000000..3c1ba61b3d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/partnership_model.yaml @@ -0,0 +1,61 @@ +id: https://nde.nl/ontology/hc/slot/partnership_model +name: partnership_model_slot +title: Partnership Model Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + partnership_model: + description: 'How the organization collaborates with others to achieve its mission. + + + Describes partnership structures: + + - **Membership networks**: Federations, coalitions, associations + + - **Co-funding arrangements**: Joint programs with foundations, governments + + - **Coalition building**: Multi-stakeholder alliances, campaigns + + - **Academic partnerships**: Universities, research institutes + + - **Corporate partnerships**: Sponsorships, cause-related marketing + + - **Government cooperation**: Memoranda of understanding, advisory roles + + - **Peer networks**: International federations, knowledge exchange + + + Partnership models indicate organizational leverage and influence. + + + Examples: + + - "Membership network, Co-funded programs, Coalition building" + + - "Academic partnerships, Government advisory role, Corporate sponsors" + + - "Grassroots coalition, Community-based partnerships, Volunteer networks" + + - "International federation, Regional chapters, National coordinators" + + ' + range: string + slot_uri: hc:partnershipModel + comments: + - schema:partner does not exist in Schema.org - use hc namespace + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:partnershipModel diff --git a/schemas/20251121/linkml/modules/slots/archive/partnership_required.yaml b/schemas/20251121/linkml/modules/slots/archive/partnership_required.yaml new file mode 100644 index 0000000000..aa400e96df --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/partnership_required.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/partnership_required +name: partnership_required_slot +title: Partnership Required Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + partnership_required: + range: boolean + description: Whether consortium/partnership is required for application + slot_uri: hc:partnershipRequired + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:partnershipRequired diff --git a/schemas/20251121/linkml/modules/slots/archive/patronym.yaml b/schemas/20251121/linkml/modules/slots/archive/patronym.yaml new file mode 100644 index 0000000000..398c90cd8e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/patronym.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/patronym +name: patronym +title: Patronym +prefixes: + pnv: https://w3id.org/pnv# + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + patronym: + slot_uri: pnv:patronym + description: "Name element based on the given name of one's father (patronym)\nor mother (matronym).\n\nA patronym is a name component derived from the father's (or sometimes\nmother's) given name. This was the primary naming system in many cultures\nbefore hereditary surnames became common.\n\nPatronymic patterns by culture:\n\nDutch Historical:\n- -zoon, -szoon, -z. (son of): \"Janszoon\" = son of Jan\n- -sen (son of): \"Pietersen\" = son of Pieter\n- -dochter (daughter of): \"Jansdochter\" = daughter of Jan\n\nIcelandic (still in use):\n- -son (son of): \"J\xF3nsson\" = son of J\xF3n\n- -d\xF3ttir (daughter of): \"Gu\xF0mundsd\xF3ttir\" = daughter of Gu\xF0mundur\n\nArabic:\n- ibn, bin (son of): \"ibn Abdullah\" = son of Abdullah\n- bint (daughter of): \"bint Fatima\" = daughter of Fatima\n\nHebrew:\n- ben (son of): \"ben David\" = son of David\n- bat (daughter of): \"bat Sarah\" = daughter of Sarah\n\nSlavic:\n- -ovich, -evich (son of): \"Ivanovich\" = son of Ivan\n- -ovna, -evna\ + \ (daughter of): \"Petrovna\" = daughter of Petr\n\nExamples:\n- \"Jan Pieterszoon\" \u2192 patronym: \"Pieterszoon\"\n- \"Bj\xF6rk Gu\xF0mundsd\xF3ttir\" \u2192 patronym: \"Gu\xF0mundsd\xF3ttir\"\n- \"Muhammad ibn Abdullah\" \u2192 patronym: \"ibn Abdullah\"\n- \"Anna Jansdochter\" \u2192 patronym: \"Jansdochter\"\n\nNote: Store the complete patronymic element including any prefix\nlike \"ibn\" or \"ben\".\n" + range: string + exact_mappings: + - pnv:patronym + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/payment_frequency.yaml b/schemas/20251121/linkml/modules/slots/archive/payment_frequency.yaml new file mode 100644 index 0000000000..5c4af194fb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/payment_frequency.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/payment_frequency +name: payment_frequency_slot +title: Payment Frequency Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + payment_frequency: + range: string + description: 'How often payment is made for recurring schemes. + + Use standardized values for queryability. + + ' + slot_uri: hc:paymentFrequency + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:paymentFrequency diff --git a/schemas/20251121/linkml/modules/slots/archive/pdf_url.yaml b/schemas/20251121/linkml/modules/slots/archive/pdf_url.yaml new file mode 100644 index 0000000000..5cf74f45a8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/pdf_url.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/pdf_url +name: pdf_url_slot +title: Pdf Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + pdf_url: + description: 'URL to downloadable PDF version. + + ' + range: uri + slot_uri: schema:contentUrl + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:contentUrl diff --git a/schemas/20251121/linkml/modules/slots/archive/performance_datetime.yaml b/schemas/20251121/linkml/modules/slots/archive/performance_datetime.yaml new file mode 100644 index 0000000000..97acb71cd7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/performance_datetime.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/performance_datetime +name: performance_datetime_slot +title: Performance Datetime Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + performance_datetime: + description: 'Date and time of this performance. + + ' + range: datetime + slot_uri: schema:startDate + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:startDate diff --git a/schemas/20251121/linkml/modules/slots/archive/performance_description.yaml b/schemas/20251121/linkml/modules/slots/archive/performance_description.yaml new file mode 100644 index 0000000000..cc70c6fd82 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/performance_description.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/performance_description +name: performance_description_slot +title: Performance Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + performance_description: + description: 'Description of this performance, including context and highlights. + + ' + range: string + slot_uri: schema:description + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:description diff --git a/schemas/20251121/linkml/modules/slots/archive/performance_duration.yaml b/schemas/20251121/linkml/modules/slots/archive/performance_duration.yaml new file mode 100644 index 0000000000..42520a9e59 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/performance_duration.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/performance_duration +name: performance_duration_slot +title: Performance Duration Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + performance_duration: + description: 'Duration of the performance in ISO 8601 duration format. + + ' + range: string + slot_uri: schema:duration + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:duration diff --git a/schemas/20251121/linkml/modules/slots/archive/performance_id.yaml b/schemas/20251121/linkml/modules/slots/archive/performance_id.yaml new file mode 100644 index 0000000000..b0fd8a6c0b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/performance_id.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/performance_id +name: performance_id_slot +title: Performance Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + performance_id: + description: 'Unique identifier for this heritage performance. + + Format: https://nde.nl/ontology/hc/heritage-performance/{slug} + + ' + range: string # uriorcurie + slot_uri: dcterms:identifier + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/performance_location.yaml b/schemas/20251121/linkml/modules/slots/archive/performance_location.yaml new file mode 100644 index 0000000000..899f11a826 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/performance_location.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/performance_location +name: performance_location_slot +title: Performance Location Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + performance_location: + description: 'Location where this performance takes place. + + ' + range: string # uriorcurie + # range: CustodianPlace + slot_uri: schema:location + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:location diff --git a/schemas/20251121/linkml/modules/slots/archive/performance_name.yaml b/schemas/20251121/linkml/modules/slots/archive/performance_name.yaml new file mode 100644 index 0000000000..cbd376474b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/performance_name.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/performance_name +name: performance_name_slot +title: Performance Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + performance_name: + description: 'Name or title of this specific performance. + + ' + range: string + slot_uri: schema:name + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:name diff --git a/schemas/20251121/linkml/modules/slots/archive/performance_note.yaml b/schemas/20251121/linkml/modules/slots/archive/performance_note.yaml new file mode 100644 index 0000000000..c0f7dd302b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/performance_note.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/performance_note +name: performance_note_slot +title: Performance Notes Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + performance_note: + description: 'Additional notes about this performance. Can include reception, notable moments, or contextual information. + + Maps to skos:note for performance documentation.' + range: string + slot_uri: skos:note + close_mappings: + - dcterms:description + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/performance_of.yaml b/schemas/20251121/linkml/modules/slots/archive/performance_of.yaml new file mode 100644 index 0000000000..a43bf40e49 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/performance_of.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/performance_of +name: performance_of_slot +title: Performance Of Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + performance_of: + description: 'The heritage form this performance demonstrates/presents. + + + Links to the abstract performing arts tradition. + + ' + range: string # uriorcurie + # range: IntangibleHeritageForm + slot_uri: crm:P2_has_type + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P2_has_type diff --git a/schemas/20251121/linkml/modules/slots/archive/performance_repertoire.yaml b/schemas/20251121/linkml/modules/slots/archive/performance_repertoire.yaml new file mode 100644 index 0000000000..5583fd72d5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/performance_repertoire.yaml @@ -0,0 +1,68 @@ +id: https://nde.nl/ontology/hc/slot/performance_repertoire +name: performance_repertoire_slot +title: Performance Repertoire Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + performance_repertoire: + description: 'Scope and content of the intangible heritage tradition maintained. + + + For performing arts: + + - Repertoire breadth (number of pieces, styles, genres) + + - Temporal range (ancient, historical, contemporary) + + - Contextual uses (ceremonial, social, entertainment, commercial) + + - Innovation vs. preservation (strict tradition vs. creative adaptation) + + + For traditional crafts: + + - Product types (textiles, pottery, metalwork, etc.) + + - Techniques preserved (weaving methods, firing techniques, etc.) + + - Design vocabulary (patterns, motifs, color systems) + + - Material knowledge (traditional vs. modern materials) + + + For social practices: + + - Ritual calendar (annual, seasonal, life-cycle events) + + - Ceremonial forms (processions, offerings, feast structures) + + - Social roles (participants, organizers, ritual specialists) + + + Examples: + + - "Gong Kebyar style, Ceremonial music (odalan), Contemporary compositions" + + - "Traditional Ikat patterns, Natural dye techniques, Contemporary adaptations" + + - "Annual Carnival parade, Summer solstice ritual, Harvest thanksgiving" + + ' + range: string + slot_uri: schema:workPerformed + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:workPerformed diff --git a/schemas/20251121/linkml/modules/slots/archive/performance_venue.yaml b/schemas/20251121/linkml/modules/slots/archive/performance_venue.yaml new file mode 100644 index 0000000000..47c0a77792 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/performance_venue.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/performance_venue +name: performance_venue_slot +title: Performance Venue Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + performance_venue: + description: 'Venue name for this performance. + + ' + range: string + slot_uri: hc:performanceVenue + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:performanceVenue diff --git a/schemas/20251121/linkml/modules/slots/archive/performed_by.yaml b/schemas/20251121/linkml/modules/slots/archive/performed_by.yaml new file mode 100644 index 0000000000..27b1ba6839 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/performed_by.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/performed_by +name: performed_by_slot +title: Performed By Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + performed_by: + description: 'Custodian organization(s) performing this heritage tradition. + + + Links to heritage groups (usually type I) that maintain the tradition. + + ' + range: string # uriorcurie + # range: Custodian + multivalued: true + slot_uri: schema:performer + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:performer diff --git a/schemas/20251121/linkml/modules/slots/archive/performer.yaml b/schemas/20251121/linkml/modules/slots/archive/performer.yaml new file mode 100644 index 0000000000..70d64f2a2c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/performer.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/performer +name: performer_slot +title: Performers Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + performer: + description: 'Names of individual performers (if known). + + + For master artists, tradition bearers, or notable performers. + + ' + range: string + multivalued: true + slot_uri: schema:actor + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:actor diff --git a/schemas/20251121/linkml/modules/slots/archive/period.yaml b/schemas/20251121/linkml/modules/slots/archive/period.yaml new file mode 100644 index 0000000000..22c6da34aa --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/period.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/period +name: period_slot +title: Period Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + period: + slot_uri: dcterms:temporal + description: Period as single string (e.g., "1945-1965") + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:temporal diff --git a/schemas/20251121/linkml/modules/slots/archive/period_covered.yaml b/schemas/20251121/linkml/modules/slots/archive/period_covered.yaml new file mode 100644 index 0000000000..f0bfda9d83 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/period_covered.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/period-covered +name: period_covered_slot +title: period_covered slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + period_covered: + slot_uri: dcterms:temporal + description: 'Historical period represented (for archaeological sites). + + ' + range: string + examples: + - value: Roman period (50-400 CE) + description: Archaeological period + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:temporal diff --git a/schemas/20251121/linkml/modules/slots/archive/period_description.yaml b/schemas/20251121/linkml/modules/slots/archive/period_description.yaml new file mode 100644 index 0000000000..9099953898 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/period_description.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/period_description +name: period_description_slot +title: Period Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + period_description: + slot_uri: dcterms:description + description: Description of the period + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:description diff --git a/schemas/20251121/linkml/modules/slots/archive/end.yaml b/schemas/20251121/linkml/modules/slots/archive/period_end.yaml similarity index 75% rename from schemas/20251121/linkml/modules/slots/archive/end.yaml rename to schemas/20251121/linkml/modules/slots/archive/period_end.yaml index 39ca258536..5a39618d62 100644 --- a/schemas/20251121/linkml/modules/slots/archive/end.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/period_end.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/end -name: end_slot -title: End Slot +id: https://nde.nl/ontology/hc/slot/period_end +name: period_end_slot +title: Period End Slot prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -16,12 +16,11 @@ imports: - linkml:types default_prefix: hc slots: - end: + period_end: slot_uri: schema:endDate - description: End year of coverage (use "present" for ongoing) + description: End of period range: string annotations: - custodian_types: - - '*' + custodian_types: '["*"]' exact_mappings: - schema:endDate diff --git a/schemas/20251121/linkml/modules/slots/archive/period_name.yaml b/schemas/20251121/linkml/modules/slots/archive/period_name.yaml new file mode 100644 index 0000000000..71ef9eb819 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/period_name.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/period_name +name: period_name_slot +title: Period Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + period_name: + slot_uri: skos:prefLabel + description: Name of the period + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:prefLabel diff --git a/schemas/20251121/linkml/modules/slots/archive/period_start.yaml b/schemas/20251121/linkml/modules/slots/archive/period_start.yaml new file mode 100644 index 0000000000..9e528caba7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/period_start.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/period_start +name: period_start_slot +title: Period Start Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + period_start: + slot_uri: schema:startDate + description: Start of period + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:startDate diff --git a/schemas/20251121/linkml/modules/slots/archive/permanent_location.yaml b/schemas/20251121/linkml/modules/slots/archive/permanent_location.yaml new file mode 100644 index 0000000000..3e855aa0f5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/permanent_location.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/permanent_location +name: permanent_location_slot +title: Permanent Location Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + permanent_location: + description: 'Usual permanent location (gallery, room, case) within institution. + + Use for standard display location when not on loan. + + ' + range: string + slot_uri: crm:P54_has_current_permanent_location + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P54_has_current_permanent_location diff --git a/schemas/20251121/linkml/modules/slots/archive/permission_required.yaml b/schemas/20251121/linkml/modules/slots/archive/permission_required.yaml new file mode 100644 index 0000000000..323167157a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/permission_required.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/permission_required +name: permission_required_slot +title: Permission Required Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + permission_required: + slot_uri: dcterms:accessRights + description: Whether explicit permission is required + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:accessRights diff --git a/schemas/20251121/linkml/modules/slots/archive/person_claim_id.yaml b/schemas/20251121/linkml/modules/slots/archive/person_claim_id.yaml new file mode 100644 index 0000000000..74886c26d2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/person_claim_id.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/person_claim_id +name: person_claim_id +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + person_claim_id: + slot_uri: dcterms:identifier + identifier: true + range: string # uriorcurie + description: Unique identifier for this person claim + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/person_claim_type.yaml b/schemas/20251121/linkml/modules/slots/archive/person_claim_type.yaml new file mode 100644 index 0000000000..0c4cba4957 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/person_claim_type.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/person_claim_type +name: person_claim_type +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/PersonClaimTypeEnum +slots: + person_claim_type: + slot_uri: hc:personClaimType + range: string # uriorcurie + # range: PersonClaimTypeEnum + required: true + description: 'Type of person claim. See PersonClaimTypeEnum. + + + Common claim types: + + - full_name: Complete name + + - role_title: Job title + + - department: Organizational unit + + - email: Contact email (if public) + + - biography: Professional bio + + - specialization: Expertise areas + + ' + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:personClaimType diff --git a/schemas/20251121/linkml/modules/slots/archive/person_claim_value.yaml b/schemas/20251121/linkml/modules/slots/archive/person_claim_value.yaml new file mode 100644 index 0000000000..678a5bd30b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/person_claim_value.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/person_claim_value +name: person_claim_value +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + person_claim_value: + slot_uri: schema:value + range: string + required: true + description: 'The extracted value. Must be verifiable at the source. + + ' + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:value diff --git a/schemas/20251121/linkml/modules/slots/archive/person_html_file.yaml b/schemas/20251121/linkml/modules/slots/archive/person_html_file.yaml new file mode 100644 index 0000000000..3f70fb776f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/person_html_file.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/person_html_file +name: person_html_file +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + person_html_file: + slot_uri: hc:htmlFile + range: string + required: false + description: 'Relative path to archived HTML file containing this claim. + + Path is relative to the custodian data directory. + + + Example: web/NL-NH-AMS-M-RM/rijksmuseum.nl/team.html + + ' + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:htmlFile diff --git a/schemas/20251121/linkml/modules/slots/archive/person_id.yaml b/schemas/20251121/linkml/modules/slots/archive/person_id.yaml new file mode 100644 index 0000000000..2f52ac06cc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/person_id.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/person_id +name: person_id-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + pico: https://personsincontext.org/model# + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + person_id: + slot_uri: dcterms:identifier + description: "The persistent identifier for a Person entity in the NDE Heritage Custodian\nontology. This is the core identifier that serves as the hub connecting\nall observations and reconstructions related to this person.\n\n**FORMAT**:\n```\nhttps://nde.nl/ontology/hc/person/{person-slug}\n```\n\n**NAMING CONVENTION**:\n- Lowercase, hyphenated slug derived from preferred name\n- May include disambiguator (birth year, location, etc.)\n\n**EXAMPLES**:\n```\nhttps://nde.nl/ontology/hc/person/taco-dibbits\nhttps://nde.nl/ontology/hc/person/jan-de-vries-1985\nhttps://nde.nl/ontology/hc/person/maria-garcia-amsterdam\n```\n\n**HUB ARCHITECTURE**:\n\nThe Person hub pattern mirrors the Custodian hub pattern:\n- Person contains minimal data (essentially just person_id)\n- PersonObservation entities attach via refers_to_person\n- Multiple observations can document the same person\n- Person persists while observations evolve\n\n```\nPersonObservation \u2500\u2500refers_to_person\u2500\u2500\ + > Person \u2500\u2500participated_in_events\u2500\u2500> Event\n \u2191 \u2191\n(from source A) (from source B)\nPersonObservation \u2500\u2500refers_to_person\u2500\u2500\u2500\u2518\n```\n\n**PICO ALIGNMENT**:\n- Person hub \u2192 pico:Person\n- PersonObservation \u2192 pico:PersonObservation\n- The distinction between hub (abstract identity) and observation (evidence) is core PICO" + range: string # uriorcurie + required: true + identifier: true + pattern: ^https://nde\.nl/ontology/hc/person/[a-z0-9-]+$ + exact_mappings: + - dcterms:identifier + - crm:P48_has_preferred_identifier + comments: + - This is THE identifying property for Person entities. All other properties and relationships connect through this hub identifier. + - The path component after /person/ is a lowercased, hyphenated slug derived from the person's preferred name, with optional disambiguators. + - Unlike custodian GHCID, person_id does not embed geographic or type codes since persons are mobile and may work at multiple institutions. + see_also: + - https://nde.nl/ontology/hc/ + - https://personsincontext.org/model#Person + - https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#identifier + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/person_name.yaml b/schemas/20251121/linkml/modules/slots/archive/person_name.yaml new file mode 100644 index 0000000000..4862c4c296 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/person_name.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/person_name +name: person_name +title: Person Name +imports: +- linkml:types +slots: + person_name: + slot_uri: schema:name + description: "Full name of the person as recorded in institutional sources.\n\n**Schema.org**: `schema:name` for person's name\n\n**Format**: Use natural name order (Western: \"Given Family\", non-Western: as appropriate)\n\n**Normalization**: \n- Include titles/honorifics if institutionally used (\"Dr.\", \"Prof.\")\n- Preserve name as it appears in organizational context\n- Use PNV (Person Name Vocabulary) for detailed name parsing (future extension)\n\n**Examples**:\n- \"Dr. Jane Smith\"\n- \"Prof. dr. Willem van der Berg\"\n- \"Maria Garc\xEDa Rodr\xEDguez\"\n" + range: string + broad_mappings: + - rdfs:label + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:name +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/person_research_score.yaml b/schemas/20251121/linkml/modules/slots/archive/person_research_score.yaml new file mode 100644 index 0000000000..61fde6f451 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/person_research_score.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/person_research_score +name: person_research_score_slot +title: Person Research Score Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + person_research_score: + slot_uri: sosa:hasSimpleResult + range: float + minimum_value: 0.0 + maximum_value: 1.0 + description: 'Specificity score for staff and personnel queries. + + **Ontology mapping**: Uses sosa:hasSimpleResult because this is a computed relevance score from search/retrieval algorithms acting as observation systems.' + close_mappings: + - prov:value + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/personal_collection_subtype.yaml b/schemas/20251121/linkml/modules/slots/archive/personal_collection_subtype.yaml new file mode 100644 index 0000000000..1d9c907269 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/personal_collection_subtype.yaml @@ -0,0 +1,15 @@ +id: https://nde.nl/ontology/hc/slot/personal_collection_subtype +name: personal_collection_subtype +title: Personal Collection Subtype +description: Subtype of personal collection. +imports: +- linkml:types +slots: + personal_collection_subtype: + slot_uri: schema:additionalType + range: string + multivalued: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:additionalType diff --git a/schemas/20251121/linkml/modules/slots/archive/personnel_budget.yaml b/schemas/20251121/linkml/modules/slots/archive/personnel_budget.yaml new file mode 100644 index 0000000000..b65ec7e1a8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/personnel_budget.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/personnel_budget +name: personnel_budget_slot +title: Personnel Budget Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + personnel_budget: + description: 'Personnel budget allocation. + + + Includes: + + - Salaries and wages + + - Benefits + + - Pension contributions + + - Contract staff + + + Often 50-70% of operating budget for heritage institutions. + + ' + range: decimal + slot_uri: hc:personnelBudget + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:personnelBudget diff --git a/schemas/20251121/linkml/modules/slots/archive/pest_management_required.yaml b/schemas/20251121/linkml/modules/slots/archive/pest_management_required.yaml new file mode 100644 index 0000000000..9e59e04876 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/pest_management_required.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/pest_management_required +name: pest_management_required_slot +title: Pest Management Required Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + pest_management_required: + description: 'Whether Integrated Pest Management (IPM) program is required. + + + All heritage storage should have IPM including: + + - Monitoring traps + + - Quarantine procedures + + - Treatment protocols + + - Regular inspections + + ' + range: boolean + slot_uri: hc:pestManagementRequired + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:pestManagementRequired diff --git a/schemas/20251121/linkml/modules/slots/archive/photograph.yaml b/schemas/20251121/linkml/modules/slots/archive/photograph.yaml new file mode 100644 index 0000000000..37d7e0a841 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/photograph.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/photograph +name: photograph_slot +title: Photographs Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + photograph: + description: 'URLs to conservation photographs (before, during, after treatment). + + ' + range: uri + multivalued: true + slot_uri: schema:image + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:image diff --git a/schemas/20251121/linkml/modules/slots/archive/physical_location.yaml b/schemas/20251121/linkml/modules/slots/archive/physical_location.yaml new file mode 100644 index 0000000000..5c4e59de4a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/physical_location.yaml @@ -0,0 +1,45 @@ +id: https://nde.nl/ontology/hc/slot/physical_location +name: physical_location_slot +title: Physical Location Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + physical_location: + description: 'Physical retail location(s) for this gift shop. + + + Links to AuxiliaryPlace instances representing: + + - On-site shop within museum building + + - Separate retail space at different address + + - Multiple locations (branch shops) + + + Schema.org: location for physical presence. + + + May be null for online-only retail operations. + + ' + range: string # uriorcurie + # range: AuxiliaryPlace + multivalued: true + slot_uri: hc:physicalLocation + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:physicalLocation diff --git a/schemas/20251121/linkml/modules/slots/archive/pipeline_stage.yaml b/schemas/20251121/linkml/modules/slots/archive/pipeline_stage.yaml new file mode 100644 index 0000000000..3f3d964e31 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/pipeline_stage.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/pipeline_stage +name: pipeline_stage_slot +title: pipeline_stage slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/ExtractionPipelineStageEnum +default_prefix: hc +slots: + pipeline_stage: + range: string # uriorcurie + # range: ExtractionPipelineStageEnum + description: 'Which stage of the extraction pipeline produced this claim. + + Following the 4-stage GLAM-NER pipeline: + + 1. entity_recognition - NER detection + + 2. layout_analysis - Document structure analysis + + 3. entity_resolution - Disambiguation and merging + + 4. entity_linking - Knowledge base linking + + ' + slot_uri: hc:pipelineStage + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:pipelineStage diff --git a/schemas/20251121/linkml/modules/slots/archive/place_custodian_ref.yaml b/schemas/20251121/linkml/modules/slots/archive/place_custodian_ref.yaml new file mode 100644 index 0000000000..e7a3462b53 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/place_custodian_ref.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/place_custodian_ref +name: place_custodian_ref_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + place_custodian_ref: + description: 'The Custodian hub that this place designation identifies (REQUIRED). + + + Links the nominal place reference back to the hub it represents. + + + Dublin Core: references for entity reference. + + + NOTE: Uses uriorcurie to allow referencing custodians by URI. + + ' + slot_uri: dcterms:references + range: string # uriorcurie + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:references diff --git a/schemas/20251121/linkml/modules/slots/archive/place_description.yaml b/schemas/20251121/linkml/modules/slots/archive/place_description.yaml new file mode 100644 index 0000000000..515178e57e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/place_description.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/place_description +name: place_description_slot +title: Place Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + place_description: + description: 'Free-text description of this auxiliary place. + + Maps to dcterms:description for location descriptions. + + Include: - Purpose of this location - What collections/functions are housed here - Access information (public/staff only) - Historical context' + range: string + slot_uri: dcterms:description + close_mappings: + - schema:description + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/place_designation.yaml b/schemas/20251121/linkml/modules/slots/archive/place_designation.yaml new file mode 100644 index 0000000000..82746b16a2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/place_designation.yaml @@ -0,0 +1,49 @@ +id: https://nde.nl/ontology/hc/slot/place_designation +name: place_designation_slot +imports: +- linkml:types +slots: + place_designation: + slot_uri: schema:location + description: 'Nominal place designation used to identify this custodian. + + + Links to CustodianPlace with contextual place reference. + + + CRITICAL: This is NOT geographic coordinates - this is a NOMINAL reference! + + + Examples: + + - "het herenhuis in de Schilderswijk" (neighborhood reference) + + - "the mansion" (vague building reference) + + - "het museum op het Museumplein" (landmark reference) + + + May be null if place designation not yet reconstructed. + + + CIDOC-CRM: P53_has_former_or_current_location for place associations. + + ' + range: string # uriorcurie + # range: CustodianPlace + required: false + exact_mappings: + - crm:P7_took_place_at + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/place_language.yaml b/schemas/20251121/linkml/modules/slots/archive/place_language.yaml new file mode 100644 index 0000000000..6f914c02f0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/place_language.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/place_language +name: place_language_slot +imports: +- linkml:types +slots: + place_language: + slot_uri: dct:language + description: 'Language of place name. + + + Dublin Core: language for linguistic context. + + ' + range: string + required: false + exact_mappings: + - schema:inLanguage + broad_mappings: + - dcterms:language + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/place_name.yaml b/schemas/20251121/linkml/modules/slots/archive/place_name.yaml new file mode 100644 index 0000000000..49a29afab0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/place_name.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/place_name +name: place_name_slot +imports: +- linkml:types +slots: + place_name: + slot_uri: schema:name + description: 'Nominal place designation (REQUIRED). + + + CIDOC-CRM: P87_is_identified_by links E1_CRM_Entity to E41_Appellation. + + + This is the NOMINAL NAME of the place, not coordinates! + + ' + range: string + required: true + exact_mappings: + - gn:name + - rdfs:label + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/extent_item.yaml b/schemas/20251121/linkml/modules/slots/archive/place_note.yaml similarity index 50% rename from schemas/20251121/linkml/modules/slots/archive/extent_item.yaml rename to schemas/20251121/linkml/modules/slots/archive/place_note.yaml index 44c7285730..e57e453cdb 100644 --- a/schemas/20251121/linkml/modules/slots/archive/extent_item.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/place_note.yaml @@ -1,5 +1,33 @@ -id: https://nde.nl/ontology/hc/slot/extent_item -name: extent_item_slot +id: https://nde.nl/ontology/hc/slot/place_note +name: place_note_slot +imports: +- linkml:types +slots: + place_note: + slot_uri: skos:note + description: 'Contextual notes about place reference. + + + SKOS: note for editorial annotations. + + + Use for: + + - Disambiguation ("not the other mansion on Voorhout") + + - Historical context ("mansion demolished 1950") + + - Interpretation notes ("used as place reference, not institution name") + + ' + range: string + required: false + exact_mappings: + - rdfs:comment + broad_mappings: + - skos:note + annotations: + custodian_types: '["*"]' prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -11,31 +39,3 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -slots: - extent_item: - slot_uri: schema:numberOfItems - description: 'Numeric count of items (when countable). - - - Schema.org: numberOfItems for countable collections. - - - Use when precise item count is known. - - ' - range: integer - required: false - examples: - - value: 125 - description: 125 artworks - - value: 342 - description: 342 manuscripts - broad_mappings: - - schema:itemListElement - annotations: - custodian_types: - - '*' - exact_mappings: - - schema:numberOfItems diff --git a/schemas/20251121/linkml/modules/slots/archive/place_of_publication.yaml b/schemas/20251121/linkml/modules/slots/archive/place_of_publication.yaml new file mode 100644 index 0000000000..79663c750d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/place_of_publication.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/place_of_publication +name: place_of_publication_slot +title: Place Of Publication Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + place_of_publication: + description: 'Place where the item was published/produced. + + ' + range: string # uriorcurie + # range: CustodianPlace + slot_uri: schema:locationCreated + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:locationCreated diff --git a/schemas/20251121/linkml/modules/slots/archive/place_source_text.yaml b/schemas/20251121/linkml/modules/slots/archive/place_source_text.yaml new file mode 100644 index 0000000000..8242113330 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/place_source_text.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/place_source_text +name: place_source_text_slot +title: Place Source Text Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + place_source_text: + slot_uri: hc:place_source_text + range: string + description: 'Place Source Text for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:place_source_text diff --git a/schemas/20251121/linkml/modules/slots/archive/place_specificity.yaml b/schemas/20251121/linkml/modules/slots/archive/place_specificity.yaml new file mode 100644 index 0000000000..a4b0f10ebd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/place_specificity.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/place_specificity +name: place_specificity_slot +imports: +- linkml:types +- ../enums/PlaceSpecificityEnum +slots: + place_specificity: + slot_uri: dct:type + description: 'Level of place specificity. + + + Indicates how precisely the place reference identifies a location: + + - BUILDING: Specific building + + - STREET: Street-level + + - NEIGHBORHOOD: Neighborhood/district + + - CITY: City-level + + - REGION: Regional + + - VAGUE: Unspecified ("the mansion") + + ' + range: string # uriorcurie + # range: PlaceSpecificityEnum + required: false + exact_mappings: + - gn:featureClass + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/planned_closure_date.yaml b/schemas/20251121/linkml/modules/slots/archive/planned_closure_date.yaml new file mode 100644 index 0000000000..88f0b7fcff --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/planned_closure_date.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/planned_closure_date +name: planned_closure_date_slot +title: Planned Closure Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + planned_closure_date: + slot_uri: dcterms:date + description: 'Planned closure date if this is a temporary annex. + + + Only relevant if is_temporary is TRUE. + + ' + range: date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:date diff --git a/schemas/20251121/linkml/modules/slots/archive/planned_end.yaml b/schemas/20251121/linkml/modules/slots/archive/planned_end.yaml new file mode 100644 index 0000000000..a382d235aa --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/planned_end.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/planned_end +name: planned_end_slot +title: Planned End Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + planned_end: + slot_uri: hc:plannedEnd + description: 'Planned/expected end date of this temporary location. + + + Schema.org: endDate for temporal end. + + + NULL if end date unknown (e.g., emergency situations). + + May differ from actual_end if circumstances changed. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:plannedEnd diff --git a/schemas/20251121/linkml/modules/slots/archive/planned_start.yaml b/schemas/20251121/linkml/modules/slots/archive/planned_start.yaml new file mode 100644 index 0000000000..c538fb6cd3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/planned_start.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/planned_start +name: planned_start_slot +title: Planned Start Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + planned_start: + slot_uri: hc:plannedStart + description: 'Planned/expected start date of this temporary location. + + + Schema.org: startDate for temporal start. + + + May differ from actual_start if circumstances changed. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:plannedStart diff --git a/schemas/20251121/linkml/modules/slots/archive/plant_species_count.yaml b/schemas/20251121/linkml/modules/slots/archive/plant_species_count.yaml new file mode 100644 index 0000000000..c78127340e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/plant_species_count.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/plant-species-count +name: plant_species_count_slot +title: plant_species_count slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + plant_species_count: + slot_uri: schema:numberOfItems + description: 'Number of plant species (for botanical sites). + + ' + range: integer + examples: + - value: 2500 + description: 2500 plant species + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:numberOfItems diff --git a/schemas/20251121/linkml/modules/slots/archive/platform_description.yaml b/schemas/20251121/linkml/modules/slots/archive/platform_description.yaml new file mode 100644 index 0000000000..7d61ff0a05 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/platform_description.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/platform_description +name: platform_description_slot +title: Platform Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + platform_description: + description: 'Detailed description of this auxiliary platform. + + Maps to dcterms:description (aligns with Dublin Core abstract for longer descriptions). + + Include: - Full functionality description - Target audience - Technical requirements - Relationship to main platform' + range: string + slot_uri: dcterms:description + close_mappings: + - schema:description + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/platform_id.yaml b/schemas/20251121/linkml/modules/slots/archive/platform_id.yaml new file mode 100644 index 0000000000..6e41f86057 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/platform_id.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/platform_id +name: platform_id_slot +title: Platform Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + platform_id: + description: 'Unique identifier for this digital platform instance. Mapped to dcterms:identifier as the standard property for resource identifiers. + + Format: URI following NDE Heritage Custodian ontology conventions. + + ' + range: string # uriorcurie + required: false + slot_uri: dcterms:identifier + close_mappings: + - schema:identifier + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/platform_name.yaml b/schemas/20251121/linkml/modules/slots/archive/platform_name.yaml new file mode 100644 index 0000000000..87684762cc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/platform_name.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/platform_name +name: platform_name_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + platform_name: + slot_uri: schema:name + range: string + description: 'Human-readable name of the social media platform. + + + FOAF: accountServiceHomepage for service provider identification. + + + Use when platform_type is OTHER or for disambiguation. + + + Examples: "Instagram", "X (formerly Twitter)", "Mastodon (glammr.us)" + + ' + exact_mappings: + - schema:name + broad_mappings: + - rdfs:label + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/platform_of.yaml b/schemas/20251121/linkml/modules/slots/archive/platform_of.yaml new file mode 100644 index 0000000000..783492608b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/platform_of.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/platform_of +name: platform_of +title: Platform Of (DEPRECATED) +deprecated: Use is_or_was_platform_of instead - RiC-O temporal naming convention +deprecated_element_has_exact_replacement: is_or_was_platform_of +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + foaf: http://xmlns.com/foaf/0.1/ + owl: http://www.w3.org/2002/07/owl# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + platform_of: + slot_uri: hc:platformOf + description: The custodian that operates or owns this digital platform. + range: string # uriorcurie + # range: Custodian + comments: + - Inverse of digital_platform (foaf:homepage) + - Links platform back to its operating custodian + - Creates owl:inverseOf axiom in RDF output + - 'Inverse: digital_platform (foaf:homepage) | Pattern: If Custodian digital_platform Platform, then Platform platform_of Custodian' + - 'Navigation: From platform: Find owning custodian (platform_of) | From custodian: Find digital platforms (digital_platform)' + close_mappings: + - dcterms:isPartOf + annotations: + inverse_slot: digital_platform + custodian_types: '["*"]' + examples: + - value: "DigitalPlatform:\n platform_name: \"Rijksstudio\"\n platform_url: \"https://www.rijksmuseum.nl/rijksstudio\"\n platform_of: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm\"\n" + description: Usage example diff --git a/schemas/20251121/linkml/modules/slots/archive/platform_purpose.yaml b/schemas/20251121/linkml/modules/slots/archive/platform_purpose.yaml new file mode 100644 index 0000000000..df24c32c1d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/platform_purpose.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/platform_purpose +name: platform_purpose_slot +title: Platform Purpose Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + platform_purpose: + description: 'Brief description of what this platform provides/enables. + + + Dublin Core: description for purpose statement. + + + Focus on user benefit and functionality. + + ' + range: string + slot_uri: hc:platformPurpose + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:platformPurpose diff --git a/schemas/20251121/linkml/modules/slots/archive/platform_type.yaml b/schemas/20251121/linkml/modules/slots/archive/platform_type.yaml new file mode 100644 index 0000000000..ad3ce48f22 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/platform_type.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/platform_type +name: platform_type_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + platform_type: + slot_uri: dcterms:type + range: string + description: "Type of digital platform using DigitalPlatformType class hierarchy.\n\n**Class-based Type System** (replaces DigitalPlatformTypeEnum):\n\nPlatform types are organized into 8 high-level categories:\n- REPOSITORY: Digital archives, libraries, institutional repositories\n- AGGREGATOR: Aggregation and harvesting platforms \n- DISCOVERY: Search portals, catalogs, discovery interfaces\n- VIRTUAL_HERITAGE: 3D, VR/AR, immersive experiences\n- RESEARCH: Research data platforms, annotation tools\n- INTERACTIVE: Crowdsourcing, social, user contribution\n- COMMERCE: Licensing, print-on-demand, e-commerce\n- AUXILIARY: APIs, mobile apps, specialized tools\n\nEach category contains multiple concrete subclasses with Wikidata mappings.\nSee DigitalPlatformTypes.yaml for 69 concrete platform types.\n\nA platform may have multiple types (e.g., digital archive + aggregator).\n" + close_mappings: + - dcterms:type + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/platform_type_category.yaml b/schemas/20251121/linkml/modules/slots/archive/platform_type_category.yaml new file mode 100644 index 0000000000..dde514ac8c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/platform_type_category.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/platform_type_category +name: platform_type_category +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + platform_type_category: + slot_uri: schema:category + description: "High-level category for grouping related platform types.\nValues: REPOSITORY, AGGREGATOR, DISCOVERY, VIRTUAL_HERITAGE, \nRESEARCH, INTERACTIVE, COMMERCE, AUXILIARY\n" + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:category diff --git a/schemas/20251121/linkml/modules/slots/archive/platform_type_description.yaml b/schemas/20251121/linkml/modules/slots/archive/platform_type_description.yaml new file mode 100644 index 0000000000..f0f5165dd2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/platform_type_description.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/platform_type_description +name: platform_type_description +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + platform_type_description: + slot_uri: skos:definition + description: 'Detailed description of this platform type including purpose, + + characteristics, and typical use cases. + + ' + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:definition diff --git a/schemas/20251121/linkml/modules/slots/archive/platform_type_id.yaml b/schemas/20251121/linkml/modules/slots/archive/platform_type_id.yaml new file mode 100644 index 0000000000..5c2f439bfa --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/platform_type_id.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/platform_type_id +name: platform_type_id +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + platform_type_id: + slot_uri: schema:identifier + description: Unique identifier for this platform type + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/platform_type_name.yaml b/schemas/20251121/linkml/modules/slots/archive/platform_type_name.yaml new file mode 100644 index 0000000000..024e17ff2c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/platform_type_name.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/platform_type_name +name: platform_type_name +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + platform_type_name: + slot_uri: skos:prefLabel + description: 'Canonical name for this platform type. + + Used for display and cross-institutional comparison. + + ' + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:prefLabel diff --git a/schemas/20251121/linkml/modules/slots/archive/platform_url.yaml b/schemas/20251121/linkml/modules/slots/archive/platform_url.yaml new file mode 100644 index 0000000000..d43317a6a2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/platform_url.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/platform_url +name: platform_url_slot +title: Platform Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + foaf: http://xmlns.com/foaf/0.1/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + platform_url: + description: 'URL of this auxiliary digital platform. Mapped to schema:url as the standard property for web addresses. + + + This is the entry point URL for the platform. + + ' + range: uri + slot_uri: schema:url + close_mappings: + - foaf:homepage + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/policy_authority.yaml b/schemas/20251121/linkml/modules/slots/archive/policy_authority.yaml new file mode 100644 index 0000000000..809d63d6e1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/policy_authority.yaml @@ -0,0 +1,61 @@ +id: https://nde.nl/ontology/hc/slot/policy_authority +name: policy_authority_slot +title: Policy Authority Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + policy_authority: + description: 'Description of the institution''s authority to create, influence, or enforce + + heritage-related policies and regulations. + + + **Policy Authority Types**: + + - "Primary policy-maker" - Creates national/regional heritage policy + + - "Advisory body" - Provides expert advice to policy-makers + + - "Standards setter" - Establishes professional/technical standards + + - "Implementing agency" - Executes policies created by others + + - "None" - No policy-making role (operational only) + + + **Examples**: + + - Ministry of Culture (NL): "Primary policy-maker for national cultural policy" + + - RCE (NL): "Standards setter for heritage conservation methods and advisory to Ministry" + + - Arts Council England: "Develops funding policy and advises DCMS on arts strategy" + + - Municipal archives: "Implements national archival standards at local level" + + + **Ontology Alignment**: + + - Maps to `cpov:PublicOrganisation` governance role + + - Related to `org:hasUnit` for policy-making divisions + + ' + range: string + slot_uri: hc:policyAuthority + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:policyAuthority diff --git a/schemas/20251121/linkml/modules/slots/archive/policy_description.yaml b/schemas/20251121/linkml/modules/slots/archive/policy_description.yaml new file mode 100644 index 0000000000..efd70d4059 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/policy_description.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/policy_description +name: policy_description_slot +title: Policy Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + policy_description: + description: 'Full description of the policy including rationale, scope, and any special considerations. + + Maps to dcterms:description for policy document descriptions.' + range: string + slot_uri: dcterms:description + close_mappings: + - schema:description + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/policy_id.yaml b/schemas/20251121/linkml/modules/slots/archive/policy_id.yaml new file mode 100644 index 0000000000..90ca3c46f6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/policy_id.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/policy_id +name: policy_id_slot +prefixes: + dcterms: http://purl.org/dc/terms/ + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + policy_id: + slot_uri: dcterms:identifier + range: string # uriorcurie + identifier: true + description: 'Unique identifier for a policy entity. + + + Used by: + + - AccessPolicy: access restrictions and permissions + + - StorageConditionPolicy: environmental conditions for storage + + - Other policy-related classes + + ' + broad_mappings: + - dcterms:identifier + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/policy_name.yaml b/schemas/20251121/linkml/modules/slots/archive/policy_name.yaml new file mode 100644 index 0000000000..080df34488 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/policy_name.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/policy_name +name: policy_name_slot +prefixes: + dcterms: http://purl.org/dc/terms/ + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + policy_name: + slot_uri: dcterms:title + range: string + description: 'Human-readable name for a policy entity. + + + Examples: + + - "Restricted Access Policy" + + - "Climate-Controlled Storage Requirements" + + - "Public Domain Access" + + ' + broad_mappings: + - rdfs:label + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:title diff --git a/schemas/20251121/linkml/modules/slots/archive/policy_review_date.yaml b/schemas/20251121/linkml/modules/slots/archive/policy_review_date.yaml new file mode 100644 index 0000000000..ca207c8cd2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/policy_review_date.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/policy_review_date +name: policy_review_date_slot +title: Policy Review Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + policy_review_date: + description: 'Date when policy is due for review. + + + Best practice: annual policy review. + + ' + range: date + slot_uri: dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:date diff --git a/schemas/20251121/linkml/modules/slots/archive/policy_text.yaml b/schemas/20251121/linkml/modules/slots/archive/policy_text.yaml new file mode 100644 index 0000000000..edb4ab3021 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/policy_text.yaml @@ -0,0 +1,52 @@ +id: https://nde.nl/ontology/hc/slot/policy_text +name: policy_text_slot +title: Policy Text Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + policy_text: + slot_uri: schema:text + description: 'Full text content of a policy document. + + + **Ontological Alignment**: + + - **Primary** (`slot_uri`): `schema:text` - Schema.org text content + + - **Related**: `dcterms:description` - Dublin Core description + + + **Usage**: + + Contains the complete policy text. For very long policies, + + this may contain a summary with reference to full document. + + ' + range: string + required: false + multivalued: false + related_mappings: + - dcterms:description + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Policy text applies to all heritage types. + specificity_score: 0.4 + specificity_rationale: Specialized slot for policy documentation. + examples: + - value: Materials may not be transferred to institutions outside the Netherlands without donor consent. + description: Transfer restriction policy text + exact_mappings: + - schema:text diff --git a/schemas/20251121/linkml/modules/slots/archive/portal_description.yaml b/schemas/20251121/linkml/modules/slots/archive/portal_description.yaml new file mode 100644 index 0000000000..684651c091 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/portal_description.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/portal_description +name: portal_description_slot +title: Portal Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + portal_description: + range: string + description: 'Description of the portal''s purpose, scope, and target audience. + + Maps to dcterms:description for web portal descriptions.' + slot_uri: dcterms:description + close_mappings: + - schema:description + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/portal_id.yaml b/schemas/20251121/linkml/modules/slots/archive/portal_id.yaml new file mode 100644 index 0000000000..261e9a677e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/portal_id.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/portal_id +name: portal_id_slot +title: Portal Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + portal_id: + identifier: true + range: string # uriorcurie + description: 'Unique identifier for this web portal. Mapped to dcterms:identifier as the standard property for resource identifiers. + + Format: https://nde.nl/ontology/hc/portal/{scope}/{slug} + + ' + slot_uri: dcterms:identifier + close_mappings: + - schema:identifier + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/portal_language.yaml b/schemas/20251121/linkml/modules/slots/archive/portal_language.yaml new file mode 100644 index 0000000000..7a70017421 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/portal_language.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/portal_language +name: portal_language_slot +title: Portal Language Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + portal_language: + range: string + multivalued: true + description: 'Languages supported by the portal interface. + + Use ISO 639-1 codes. + + ' + slot_uri: hc:portalLanguage + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:portalLanguage diff --git a/schemas/20251121/linkml/modules/slots/archive/portal_name.yaml b/schemas/20251121/linkml/modules/slots/archive/portal_name.yaml new file mode 100644 index 0000000000..a81f0c7d4f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/portal_name.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/portal_name +name: portal_name_slot +title: Portal Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + portal_name: + range: string + description: 'Official name of the web portal. + + Ontology mapping: skos:prefLabel is the standard SKOS property for preferred human-readable labels.' + slot_uri: skos:prefLabel + close_mappings: + - schema:name + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/portal_status.yaml b/schemas/20251121/linkml/modules/slots/archive/portal_status.yaml new file mode 100644 index 0000000000..07a067d0a7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/portal_status.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/portal_status +name: portal_status_slot +title: Portal Status Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + portal_status: + range: string + description: 'Current operational status of the portal. + + + Values: ACTIVE, LEGACY, DEPRECATED, MERGED + + + - ACTIVE: Currently operational and maintained + + - LEGACY: Still accessible but no longer actively developed + + - DEPRECATED: Scheduled for shutdown + + - MERGED: Merged into another portal (see successor_portal) + + ' + slot_uri: hc:portalStatus + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:portalStatus diff --git a/schemas/20251121/linkml/modules/slots/archive/portal_type.yaml b/schemas/20251121/linkml/modules/slots/archive/portal_type.yaml new file mode 100644 index 0000000000..c74c5a8e31 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/portal_type.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/portal_type +name: portal_type_slot +title: Portal Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + portal_type: + range: string # uriorcurie + # range: WebPortalType + description: 'Category of portal based on function and scope. + + See WebPortalType class hierarchy for full list. + + ' + slot_uri: hc:portalType + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:portalType diff --git a/schemas/20251121/linkml/modules/slots/archive/portal_type_category.yaml b/schemas/20251121/linkml/modules/slots/archive/portal_type_category.yaml new file mode 100644 index 0000000000..9ee26aab24 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/portal_type_category.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/portal_type_category +name: portal_type_category +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + portal_type_category: + slot_uri: schema:category + description: 'High-level category for grouping related portal types. + + Values: GEOGRAPHIC_SCOPE, DOMAIN_SPECIFIC, CROSS_DOMAIN, THEMATIC, + + TECHNICAL_INFRASTRUCTURE, ACCESS_MODEL, RESEARCH_INFRASTRUCTURE, LIFECYCLE + + ' + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:category diff --git a/schemas/20251121/linkml/modules/slots/archive/portal_type_description.yaml b/schemas/20251121/linkml/modules/slots/archive/portal_type_description.yaml new file mode 100644 index 0000000000..cfafa9926a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/portal_type_description.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/portal_type_description +name: portal_type_description_slot +title: Portal Type Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + portal_type_description: + slot_uri: dcterms:description + description: Portal Type Description for heritage custodian entities. + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:description diff --git a/schemas/20251121/linkml/modules/slots/archive/portal_type_id.yaml b/schemas/20251121/linkml/modules/slots/archive/portal_type_id.yaml new file mode 100644 index 0000000000..eba745e33a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/portal_type_id.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/portal_type_id +name: portal_type_id_slot +title: Portal Type Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + portal_type_id: + slot_uri: dcterms:identifier + description: Portal Type Id for heritage custodian entities. + range: string # uriorcurie + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/portal_type_name.yaml b/schemas/20251121/linkml/modules/slots/archive/portal_type_name.yaml new file mode 100644 index 0000000000..54888af331 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/portal_type_name.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/portal_type_name +name: portal_type_name_slot +title: Portal Type Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + portal_type_name: + slot_uri: skos:prefLabel + description: 'Canonical name for this portal type. + + Used for display and cross-referencing. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:prefLabel diff --git a/schemas/20251121/linkml/modules/slots/archive/portal_typical_domain.yaml b/schemas/20251121/linkml/modules/slots/archive/portal_typical_domain.yaml new file mode 100644 index 0000000000..671c6094b7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/portal_typical_domain.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/portal_typical_domain +name: portal_typical_domain_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + portal_typical_domain: + slot_uri: schema:url + description: Typical domain patterns for this portal type. + range: string + required: false + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:url diff --git a/schemas/20251121/linkml/modules/slots/archive/portal_url.yaml b/schemas/20251121/linkml/modules/slots/archive/portal_url.yaml new file mode 100644 index 0000000000..b459ff7f1e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/portal_url.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/portal_url +name: portal_url_slot +title: Portal Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + foaf: http://xmlns.com/foaf/0.1/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + portal_url: + range: uri + description: 'Primary URL of the portal. Mapped to schema:url as the standard property for web addresses of resources. + + ' + slot_uri: schema:url + close_mappings: + - foaf:homepage + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/poses_or_posed_condition.yaml b/schemas/20251121/linkml/modules/slots/archive/poses_or_posed_condition.yaml new file mode 100644 index 0000000000..3b2e5b4ae0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/poses_or_posed_condition.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/poses_or_posed_condition +name: poses_or_posed_condition_slot +title: Poses or Posed Condition Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + poses_or_posed_condition: + description: "Conditions, requirements, or constraints that apply to something.\n\nThis slot captures access conditions, use restrictions, or other requirements\nthat must be met. Uses RiC-O temporal pattern for conditions that may\nchange over time.\n\n**SEMANTIC DISTINCTION**:\n- `poses_or_posed_condition`: Requirements/restrictions to access or use something\n- `has_or_had_condition`: Physical/preservation state of an object\n\n**Migration (2026-01-22)**:\n- `condition` \u2192 `poses_or_posed_condition` + `Condition` class\n- Per slot_fixes.yaml (Rule 53)\n" + range: string # uriorcurie + # range: Condition + multivalued: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type + slot_uri: rico:posesOrPosedCondition + exact_mappings: + - rico:posesOrPosedCondition + close_mappings: + - schema:conditionOfAccess + examples: + - value: + has_or_had_type: AccessCondition + has_or_had_description: + description_text: Appointment required for viewing + description: Access condition requiring appointment + - value: + has_or_had_type: UseCondition + has_or_had_description: + description_text: No flash photography permitted + description: Use condition restricting photography + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/post_count.yaml b/schemas/20251121/linkml/modules/slots/archive/post_count.yaml new file mode 100644 index 0000000000..431039db8d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/post_count.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/post_count +name: post_count_slot +title: Post Count Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + post_count: + description: 'Total number of posts/updates on this profile. + + + Schema.org: interactionCount for content volume. + + + Platform terminology: + + - Instagram: posts + + - Twitter/X: posts/tweets + + - YouTube: videos + + - Facebook: posts + + ' + range: integer + slot_uri: hc:postCount + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:postCount diff --git a/schemas/20251121/linkml/modules/slots/archive/post_id.yaml b/schemas/20251121/linkml/modules/slots/archive/post_id.yaml new file mode 100644 index 0000000000..30a0d80b82 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/post_id.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/post_id +name: post_id_slot +title: Post Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + post_id: + description: 'Unique identifier for this post. Mapped to dcterms:identifier as the standard property for resource identifiers. + + + Format varies by platform: + + - YouTube: Video ID (e.g., "dQw4w9WgXcQ") + + - Twitter/X: Tweet ID (numeric string) + + - Instagram: Media ID or shortcode + + + Combined with platform type, this uniquely identifies content globally. + + ' + range: string + slot_uri: dcterms:identifier + close_mappings: + - schema:identifier + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/post_type_activity_streams_type.yaml b/schemas/20251121/linkml/modules/slots/archive/post_type_activity_streams_type.yaml new file mode 100644 index 0000000000..ebae5ae9c0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/post_type_activity_streams_type.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/post_type_activity_streams_type +name: post_type_activity_streams_type +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + post_type_activity_streams_type: + slot_uri: schema:additionalType + description: Activity Streams 2.0 type mapping for this post type. + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:additionalType diff --git a/schemas/20251121/linkml/modules/slots/archive/post_type_category.yaml b/schemas/20251121/linkml/modules/slots/archive/post_type_category.yaml new file mode 100644 index 0000000000..0cbe32b27e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/post_type_category.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/post_type_category +name: post_type_category +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + post_type_category: + slot_uri: schema:category + description: 'High-level category for grouping related post types. + + Values: VIDEO, SHORT_VIDEO, IMAGE, TEXT, STORY, LIVE_STREAM, + + AUDIO, ARTICLE, THREAD, CAROUSEL, OTHER + + ' + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:category diff --git a/schemas/20251121/linkml/modules/slots/archive/post_type_description.yaml b/schemas/20251121/linkml/modules/slots/archive/post_type_description.yaml new file mode 100644 index 0000000000..0fecd3e3f6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/post_type_description.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/post_type_description +name: post_type_description +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + post_type_description: + slot_uri: skos:definition + description: 'Detailed description of this post type including purpose, + + characteristics, and typical use cases in heritage context. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:definition diff --git a/schemas/20251121/linkml/modules/slots/archive/post_type_ephemeral.yaml b/schemas/20251121/linkml/modules/slots/archive/post_type_ephemeral.yaml new file mode 100644 index 0000000000..7ff51c3d92 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/post_type_ephemeral.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/post_type_ephemeral +name: post_type_ephemeral +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + post_type_ephemeral: + slot_uri: schema:expires + description: Whether this post type is ephemeral (disappears after time). + range: boolean + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:expires diff --git a/schemas/20251121/linkml/modules/slots/archive/post_type_heritage_use_case.yaml b/schemas/20251121/linkml/modules/slots/archive/post_type_heritage_use_case.yaml new file mode 100644 index 0000000000..a3347cfbb7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/post_type_heritage_use_case.yaml @@ -0,0 +1,51 @@ +id: https://nde.nl/ontology/hc/slot/post_type_heritage_use_case +name: post_type_heritage_use_case_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + post_type_heritage_use_case: + slot_uri: schema:description + description: 'Typical use cases for heritage institutions creating this content type. + + + Examples for Video: + + - Virtual exhibition tours + + - Conservation process documentation + + - Curator interviews + + - Historical documentary content + + - Educational lectures + + + Examples for Short Video: + + - Artifact spotlights + + - Behind-the-scenes moments + + - Quick conservation tips + + - Event teasers + + ' + range: string + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:description diff --git a/schemas/20251121/linkml/modules/slots/archive/post_type_id.yaml b/schemas/20251121/linkml/modules/slots/archive/post_type_id.yaml new file mode 100644 index 0000000000..5a01f844b4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/post_type_id.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/post_type_id +name: post_type_id +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + post_type_id: + slot_uri: dcterms:identifier + description: Unique identifier for this post type + range: string # uriorcurie + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/post_type_max_duration.yaml b/schemas/20251121/linkml/modules/slots/archive/post_type_max_duration.yaml new file mode 100644 index 0000000000..48613168eb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/post_type_max_duration.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/post_type_max_duration +name: post_type_max_duration +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + post_type_max_duration: + slot_uri: schema:duration + description: Maximum duration for this post type (e.g., video length). + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:duration diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_symbolism.yaml b/schemas/20251121/linkml/modules/slots/archive/post_type_media_format.yaml similarity index 61% rename from schemas/20251121/linkml/modules/slots/has_or_had_symbolism.yaml rename to schemas/20251121/linkml/modules/slots/archive/post_type_media_format.yaml index a55dccd3b1..9510ec1f8f 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_symbolism.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/post_type_media_format.yaml @@ -1,28 +1,27 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_symbolism -name: has_or_had_symbolism -title: has_or_had_symbolism +id: https://nde.nl/ontology/hc/slot/post_type_media_format +name: post_type_media_format_slot prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# dcterms: http://purl.org/dc/terms/ prov: http://www.w3.org/ns/prov# crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc imports: - linkml:types slots: - has_or_had_symbolism: - name: has_or_had_symbolism - title: has_or_had_symbolism - description: Symbolism or iconography. + post_type_media_format: slot_uri: schema:encodingFormat - range: string # uriorcurie - # range: Iconography + description: Supported media formats for this post type. + range: string + required: false + multivalued: true annotations: custodian_types: '["*"]' exact_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/post_type_name.yaml b/schemas/20251121/linkml/modules/slots/archive/post_type_name.yaml new file mode 100644 index 0000000000..eeff67bf77 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/post_type_name.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/post_type_name +name: post_type_name +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + post_type_name: + slot_uri: skos:prefLabel + description: 'Canonical name for this post type. + + Used for display and content categorization. + + + Examples: "Video", "Short Video", "Image Post", "Story", "Live Stream" + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:prefLabel diff --git a/schemas/20251121/linkml/modules/slots/archive/post_type_schema_org_type.yaml b/schemas/20251121/linkml/modules/slots/archive/post_type_schema_org_type.yaml new file mode 100644 index 0000000000..cc4b75abdb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/post_type_schema_org_type.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/post_type_schema_org_type +name: post_type_schema_org_type +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + post_type_schema_org_type: + slot_uri: schema:additionalType + description: Schema.org type mapping for this post type. + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:additionalType diff --git a/schemas/20251121/linkml/modules/slots/archive/post_type_supported_platform.yaml b/schemas/20251121/linkml/modules/slots/archive/post_type_supported_platform.yaml new file mode 100644 index 0000000000..8d694cabee --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/post_type_supported_platform.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/post_type_supported_platform +name: post_type_supported_platform_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + post_type_supported_platform: + slot_uri: schema:applicationCategory + description: Platforms that support this post type. + range: string + required: false + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:applicationCategory diff --git a/schemas/20251121/linkml/modules/slots/archive/post_url.yaml b/schemas/20251121/linkml/modules/slots/archive/post_url.yaml new file mode 100644 index 0000000000..58b22b8e5e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/post_url.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/post_url +name: post_url_slot +title: Post Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + foaf: http://xmlns.com/foaf/0.1/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + post_url: + description: 'Canonical URL to access this post on its native platform. Mapped to schema:url as the standard property for web addresses. + + + URL patterns by platform: + + - YouTube: https://www.youtube.com/watch?v={video_id} + + - Twitter/X: https://x.com/{user}/status/{tweet_id} + + - Instagram: https://www.instagram.com/p/{shortcode} + + - Mastodon: https://{instance}/@{user}/{post_id} + + ' + range: uri + slot_uri: schema:url + close_mappings: + - foaf:page + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/postal_code.yaml b/schemas/20251121/linkml/modules/slots/archive/postal_code.yaml new file mode 100644 index 0000000000..b6798c1838 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/postal_code.yaml @@ -0,0 +1,53 @@ +id: https://nde.nl/ontology/hc/slot/postal_code +name: postal_code_slot +title: Postal Code Slot +description: 'Postal code or ZIP code for a location. + + + Format varies by country: + + - Netherlands: "1071 XX" (4 digits + 2 letters) + + - USA: "20500" or "20500-0001" (5 or 9 digits) + + - UK: "SW1A 1AA" (outward + inward codes) + + ' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + locn: http://www.w3.org/ns/locn# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + postal_code: + slot_uri: schema:postalCode + range: string + required: false + description: 'Postal/ZIP code for this auxiliary place. + + + vCard: postal-code for postal codes. + + Also aligns with W3C Location locn:postCode. + + ' + exact_mappings: + - locn:postCode + - vcard:postal-code + - schema:postalCode + broad_mappings: + - dcterms:identifier + annotations: + custodian_types: '["*"]' +comments: +- Format varies by country +- Store as string to preserve leading zeros and special characters diff --git a/schemas/20251121/linkml/modules/slots/archive/posted_by_profile.yaml b/schemas/20251121/linkml/modules/slots/archive/posted_by_profile.yaml new file mode 100644 index 0000000000..be7ccb73cc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/posted_by_profile.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/posted_by_profile +name: posted_by_profile_slot +title: Posted By Profile Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + posted_by_profile: + description: 'The social media profile (account/channel) that posted this content. + + + Activity Streams: attributedTo identifies the actor responsible for the content. + + + Links to SocialMediaProfile which in turn links to the Custodian hub. + + ' + range: string # uriorcurie + # range: SocialMediaProfile + slot_uri: hc:postedByProfile + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:postedByProfile diff --git a/schemas/20251121/linkml/modules/slots/archive/power_source.yaml b/schemas/20251121/linkml/modules/slots/archive/power_source.yaml new file mode 100644 index 0000000000..f4de37a698 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/power_source.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/power_source +name: power_source_slot +title: Power Source Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + power_source: + description: 'Power source for the device. + + + Values: + + - BATTERY: Battery-powered + + - MAINS: Mains electricity + + - POE: Power over Ethernet + + - SOLAR: Solar-powered + + - USB: USB-powered + + ' + range: string + slot_uri: hc:powerSource + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:powerSource diff --git a/schemas/20251121/linkml/modules/slots/archive/powers_platform.yaml b/schemas/20251121/linkml/modules/slots/archive/powers_platform.yaml new file mode 100644 index 0000000000..7187a38cf2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/powers_platform.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/powers_platform +name: powers_platform_slot +title: Powers Platform Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + powers_platform: + description: "DigitalPlatform(s) powered by this CMS deployment.\n\nCIDOC-CRM: P33_used_specific_technique - the CMS is the technique/procedure\nused to power the digital platform.\n\n**BIDIRECTIONAL RELATIONSHIP**:\n- Forward: CollectionManagementSystem \u2192 DigitalPlatform (powers_platform)\n- Reverse: DigitalPlatform \u2192 CollectionManagementSystem (powered_by_cms)\n\nOne CMS deployment may power multiple platforms:\n- Public website\n- Staff intranet\n- Mobile app backend\n- API service\n" + range: string # uriorcurie + # range: DigitalPlatform + slot_uri: hc:powersPlatform + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:powersPlatform diff --git a/schemas/20251121/linkml/modules/slots/archive/practitioner_community.yaml b/schemas/20251121/linkml/modules/slots/archive/practitioner_community.yaml new file mode 100644 index 0000000000..39c79754ed --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/practitioner_community.yaml @@ -0,0 +1,60 @@ +id: https://nde.nl/ontology/hc/slot/practitioner_community +name: practitioner_community_slot +title: Practitioner Community Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + foaf: http://xmlns.com/foaf/0.1/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + practitioner_community: + description: 'Composition and size of the community practicing this intangible heritage. + + + Describes who carries the living tradition: + + - Number of active practitioners (core bearers of knowledge) + + - Age demographics (generational distribution, succession planning) + + - Skill levels (masters, journeymen, apprentices, novices) + + - Geographic distribution (local, regional, diaspora) + + - Gender participation (male, female, mixed, gendered roles) + + - Ethnic/linguistic has_or_had_affiliation (indigenous, minority, majority culture) + + - Professionalization (full-time, part-time, volunteer, amateur) + + + Helps assess tradition vitality and sustainability. + + + Examples: + + - "30 active musicians, 15 apprentices, 3 master teachers" + + - "8 elder weavers (ages 60-85), 12 mid-career (ages 35-55), 20 learners" + + - "25 dancers, predominantly female, ages 15-40, full-time professional" + + ' + range: string + slot_uri: hc:practitionerCommunity + related_mappings: + - schema:audience + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:practitionerCommunity diff --git a/schemas/20251121/linkml/modules/slots/archive/preceding_activity.yaml b/schemas/20251121/linkml/modules/slots/archive/preceding_activity.yaml new file mode 100644 index 0000000000..2306e44bbf --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/preceding_activity.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/preceding_activity +name: preceding_activity_slot +title: Preceding Activity Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + preceding_activity: + description: 'CurationActivity that preceded and informed this one. + + + PROV-O: wasInformedBy for dependency relationship. + + + Creates sequential chain of activities. + + ' + range: string # uriorcurie + # range: CurationActivity + slot_uri: prov:wasInformedBy + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:wasInformedBy diff --git a/schemas/20251121/linkml/modules/slots/archive/preferred_label.yaml b/schemas/20251121/linkml/modules/slots/archive/preferred_label.yaml new file mode 100644 index 0000000000..53ec2e112e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/preferred_label.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/preferred_label +name: preferred_label_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + preferred_label: + slot_uri: skos:prefLabel + range: string + required: false + exact_mappings: + - schema:name + - rdfs:label + - skos:prefLabel + description: "The primary standardized emic name for this custodian.\nSKOS: prefLabel for the preferred lexical label.\n\nThis is the CANONICAL name - the standardized label accepted by the \ncustodian itself for public representation.\n\nDistinct from:\n- Legal name (formal registered name in CustodianLegalStatus.legal_name)\n- Alternative names (in CustodianName.alternative_names list)\n- Historical names (superseded CustodianNames)\n\nExample: \"Rijksmuseum\" (emic name, not \"Stichting Rijksmuseum\" legal name)\n" + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/preferred_name.yaml b/schemas/20251121/linkml/modules/slots/archive/preferred_name.yaml new file mode 100644 index 0000000000..fcdeae3f2b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/preferred_name.yaml @@ -0,0 +1,46 @@ +id: https://nde.nl/ontology/hc/slot/preferred_name +name: preferred_name_slot +title: Preferred Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + foaf: http://xmlns.com/foaf/0.1/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + preferred_name: + slot_uri: skos:prefLabel + description: 'The preferred name for this person - the canonical form used for display. + + + This is the PREFERRED name, not necessarily the full legal name. + + Other name forms appear in PersonObservation entries. + + + **EXAMPLES**: + + - "Taco Dibbits" (preferred) + + - NOT: "Taco Jacobus Sergio Dibbits" (full legal) + + - NOT: "T.J.S. Dibbits" (formal abbreviation) + + ' + range: string + required: false + exact_mappings: + - skos:prefLabel + - foaf:name + - schema:name + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/preparation_date.yaml b/schemas/20251121/linkml/modules/slots/archive/preparation_date.yaml new file mode 100644 index 0000000000..c905e16e3d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/preparation_date.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/preparation_date +name: preparation_date_slot +title: Preparation Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + preparation_date: + description: 'Date when specimen was prepared/preserved. + + May differ from collection date. + + ' + range: date + slot_uri: dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:date diff --git a/schemas/20251121/linkml/modules/slots/archive/prepared_by.yaml b/schemas/20251121/linkml/modules/slots/archive/prepared_by.yaml new file mode 100644 index 0000000000..7d8d1aa700 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/prepared_by.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/prepared_by +name: prepared_by_slot +title: Prepared By Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + prepared_by: + description: 'Person or institution who prepared the specimen. + + ' + range: string + slot_uri: crm:P14_carried_out_by + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P14_carried_out_by diff --git a/schemas/20251121/linkml/modules/slots/archive/preservation_approach.yaml b/schemas/20251121/linkml/modules/slots/archive/preservation_approach.yaml new file mode 100644 index 0000000000..16216649d4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/preservation_approach.yaml @@ -0,0 +1,15 @@ +id: https://nde.nl/ontology/hc/slot/preservation_approach +name: preservation_approach +title: Preservation Approach +description: Approach to preservation. +imports: +- linkml:types +slots: + preservation_approach: + slot_uri: schema:featureList + range: string + multivalued: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:featureList diff --git a/schemas/20251121/linkml/modules/slots/archive/preservation_budget.yaml b/schemas/20251121/linkml/modules/slots/archive/preservation_budget.yaml new file mode 100644 index 0000000000..2ce3fcb47f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/preservation_budget.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/preservation_budget +name: preservation_budget_slot +title: Preservation Budget Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + preservation_budget: + description: 'Conservation and preservation budget. + + + **Heritage-specific**: Budget for maintaining and conserving + + heritage collections. + + + Includes: + + - Conservation treatments + + - Preventive conservation + + - Environmental controls + + - Pest management + + ' + range: decimal + slot_uri: hc:preservationBudget + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:preservationBudget diff --git a/schemas/20251121/linkml/modules/slots/archive/preservation_event_type.yaml b/schemas/20251121/linkml/modules/slots/archive/preservation_event_type.yaml new file mode 100644 index 0000000000..e3eac1929c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/preservation_event_type.yaml @@ -0,0 +1,49 @@ +id: https://nde.nl/ontology/hc/slot/preservation_event_type +name: preservation_event_type_slot +title: Preservation Event Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + preservation_event_type: + description: 'Type of preservation event that occurred (if platform was archived/migrated). + + + PREMIS: Aligns with premis:Event and premis:OutcomeStatus. + + + Event types from Library of Congress PREMIS vocabulary: + + - "web_harvest": Captured via web archiving (Wayback Machine, Archive-It) + + - "migration": Content migrated to new format/platform + + - "normalization": Files normalized to preservation formats + + - "validation": Integrity/format validation performed + + - "deletion": Content intentionally removed + + - "replication": Content copied to additional storage + + + See: http://id.loc.gov/vocabulary/preservation/eventType + + ' + range: string + slot_uri: hc:preservationEventType + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:preservationEventType diff --git a/schemas/20251121/linkml/modules/slots/archive/preservation_level.yaml b/schemas/20251121/linkml/modules/slots/archive/preservation_level.yaml new file mode 100644 index 0000000000..97b995bab6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/preservation_level.yaml @@ -0,0 +1,54 @@ +id: https://nde.nl/ontology/hc/slot/preservation_level +name: preservation_level_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + premis: http://www.loc.gov/premis/rdf/v3/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + preservation_level: + slot_uri: premis:policy + description: 'Level of digital preservation commitment for this collection. + + + PREMIS: policy for preservation commitment levels. + + Aligns with premis:PreservationPolicy vocabulary. + + + Values: + + - FULL: Long-term preservation with format migration commitment + + - BIT_LEVEL: Bit preservation only (no format migration) + + - ACCESS_ONLY: Access copies maintained, no preservation guarantee + + - NONE: No formal digital preservation policy + + + Applies to digital_surrogates and born-digital materials in collection. + + + For specific file-level preservation actions, see DigitalPlatform + + preservation slots (fixity_check_date, storage_location). + + ' + range: string + related_mappings: + - dcterms:type + annotations: + custodian_types: '["*"]' + exact_mappings: + - premis:policy diff --git a/schemas/20251121/linkml/modules/slots/archive/preservation_method.yaml b/schemas/20251121/linkml/modules/slots/archive/preservation_method.yaml new file mode 100644 index 0000000000..62db31e325 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/preservation_method.yaml @@ -0,0 +1,63 @@ +id: https://nde.nl/ontology/hc/slot/preservation_method +name: preservation_method_slot +title: Preservation Method Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/PreservationMethodEnum +default_prefix: hc +slots: + preservation_method: + description: 'How the culinary/olfactory heritage knowledge is documented and transmitted. + + + Describes preservation strategies: + + - **Oral tradition**: Recipe knowledge passed verbally master-to-apprentice + + - **Handwritten records**: Historic brewing logs, perfume formulas, recipe books + + - **Apprenticeship**: Hands-on training, direct demonstration, embodied learning + + - **Production continuity**: Unbroken chain of production across generations + + - **Archival collections**: Historic recipe manuscripts, ingredient inventories + + - **Sensory training**: Developing taste/smell expertise (sommeliers, perfumers) + + - **Material culture**: Preservation of traditional tools, vessels, equipment + + - **Protected designation**: PDO/PGI/TSG geographic/traditional labels + + + Preservation methods ensure intangible knowledge survives. + + + Examples: + + - "Oral tradition among monks, Handwritten brewing logs, Apprenticeship" + + - "Historic perfume formula archives, Apprentice perfumer training, Nose development" + + - "Family recipe manuscripts, Direct demonstration, Protected Gouda PDO status" + + - "Distillery logbooks (1823-present), Master distiller mentorship, Copper still preservation" + + ' + range: string # uriorcurie + # range: PreservationMethodEnum + slot_uri: dwc:preparations + annotations: + custodian_types: '["*"]' + exact_mappings: + - dwc:preparations diff --git a/schemas/20251121/linkml/modules/slots/archive/preservation_note.yaml b/schemas/20251121/linkml/modules/slots/archive/preservation_note.yaml new file mode 100644 index 0000000000..800c56a8a2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/preservation_note.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/preservation_note +name: preservation_note +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + preservation_note: + slot_uri: schema:additionalProperty + description: Notes about preservation requirements or considerations. + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:additionalProperty diff --git a/schemas/20251121/linkml/modules/slots/archive/preservation_purpose.yaml b/schemas/20251121/linkml/modules/slots/archive/preservation_purpose.yaml new file mode 100644 index 0000000000..8483e30999 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/preservation_purpose.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/preservation_purpose +name: preservation_purpose_slot +title: Preservation Purpose Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + preservation_purpose: + description: 'Primary purpose for maintaining this dark archive. + + Examples: disaster recovery, format migration source, rights pending, + + donor restriction, security classification. + + ' + range: string + slot_uri: hc:preservationPurpose + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:preservationPurpose diff --git a/schemas/20251121/linkml/modules/slots/archive/preservation_requirement.yaml b/schemas/20251121/linkml/modules/slots/archive/preservation_requirement.yaml new file mode 100644 index 0000000000..3d70583704 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/preservation_requirement.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/preservation_requirement +name: preservation_requirement_slot +title: Preservation Requirements Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + preservation_requirement: + description: 'Preservation requirements specific to this storage type. + + + Describes what materials/objects require this type of storage + + and the preservation rationale. + + + Dublin Core: requires for dependency relationship. + + ' + range: string + slot_uri: hc:preservationRequirements + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:preservationRequirements diff --git a/schemas/20251121/linkml/modules/slots/archive/preservation_standard.yaml b/schemas/20251121/linkml/modules/slots/archive/preservation_standard.yaml new file mode 100644 index 0000000000..d2eb3a6973 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/preservation_standard.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/slot/preservation_standard +name: preservation_standard_slot +title: Preservation Standards Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + preservation_standard: + slot_uri: dcterms:conformsTo + description: 'Preservation and metadata standards used by this archive. + + Examples: OAIS (ISO 14721), PREMIS, EAD (Encoded Archival Description), + + METS, ISAD(G), DACS, ISO 15489, MoReq, etc. + + ' + range: string + multivalued: true + required: false + examples: + - value: OAIS + description: Open Archival Information System (ISO 14721) + - value: PREMIS + description: 'Preservation Metadata: Implementation Strategies' + - value: EAD3 + description: Encoded Archival Description version 3 + - value: METS + description: Metadata Encoding and Transmission Standard + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:conformsTo diff --git a/schemas/20251121/linkml/modules/slots/archive/preservative_detail.yaml b/schemas/20251121/linkml/modules/slots/archive/preservative_detail.yaml new file mode 100644 index 0000000000..059874984e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/preservative_detail.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/preservative_detail +name: preservative_detail_slot +title: Preservative Details Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + preservative_detail: + description: 'Specific details about preservation (concentrations, solutions, etc.). + + ' + range: string + slot_uri: hc:preservativeDetails + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:preservativeDetails diff --git a/schemas/20251121/linkml/modules/slots/archive/preserves_or_preserved.yaml b/schemas/20251121/linkml/modules/slots/archive/preserves_or_preserved.yaml new file mode 100644 index 0000000000..cf3b6bf069 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/preserves_or_preserved.yaml @@ -0,0 +1,78 @@ +id: https://nde.nl/ontology/hc/slot/preserves_or_preserved +name: preserves_or_preserved_slot +title: Preserves Or Preserved Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + rico: https://www.ica.org/standards/RiC/ontology# + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + preserves_or_preserved: + slot_uri: rico:hasOrHadSubject + description: 'What is being preserved or maintained by this entity. + + + **Temporal Semantics** (RiC-O Pattern): + + The "preservesOrPreserved" naming follows RiC-O convention indicating + + this relationship may be historical - an entity may have preserved + + different content over time. + + + **Ontological Alignment**: + + - **Primary** (`slot_uri`): `rico:hasOrHadSubject` - RiC-O subject relationship + + - **Close**: `prov:used` - PROV-O input relationship + + - **Close**: `schema:object` - Schema.org action object + + + **Usage**: + + This is a GENERIC slot intended for reuse across multiple classes. + + Classes may narrow the range in slot_usage to reference specific classes + + (e.g., ReasoningContent for LLM context preservation). + + + **LLM Thinking Context**: + + In the context of LLM responses, this slot replaces the boolean `clear_thinking` + + slot. Instead of a boolean flag, this slot points to a ReasoningContent object + + that captures what reasoning is being preserved across turns. + + + **Range**: `uriorcurie` (Rule 55 - broaden range for class-level narrowing) + + + **Migrated From**: clear_thinking (2026-01-19) + + ' + range: string # uriorcurie + multivalued: true + exact_mappings: + - rico:hasOrHadSubject + close_mappings: + - prov:used + - schema:object + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Generic preservation slot applicable to any entity type + specificity_score: 0.2 + specificity_rationale: Generic preservation relationship slot used across many domains diff --git a/schemas/20251121/linkml/modules/slots/archive/previous_observation.yaml b/schemas/20251121/linkml/modules/slots/archive/previous_observation.yaml new file mode 100644 index 0000000000..6ff225a120 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/previous_observation.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/previous_observation +name: previous_observation_slot +title: Previous Observation Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + previous_observation: + range: string # uriorcurie + description: Previous observation of the same URL for change tracking + slot_uri: hc:previousObservation + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:previousObservation diff --git a/schemas/20251121/linkml/modules/slots/archive/price.yaml b/schemas/20251121/linkml/modules/slots/archive/price.yaml new file mode 100644 index 0000000000..8945069b66 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/price.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/price +name: price_slot +title: Price Slot +description: Shared slot for price information across heritage custodian entities +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + price: + description: Price value (numeric or formatted string with currency) + range: string + slot_uri: schema:price + comments: + - Classes may override range in slot_usage (e.g., decimal for ProvenanceEvent) + exact_mappings: + - schema:price + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/price_currency.yaml b/schemas/20251121/linkml/modules/slots/archive/price_currency.yaml new file mode 100644 index 0000000000..e3e5db352a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/price_currency.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/price_currency +name: price_currency_slot +title: Price Currency Slot +description: Shared slot for price currency information across heritage custodian entities +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + price_currency: + description: 'Primary currency accepted (ISO 4217 code). + + + Schema.org: priceCurrency for currency specification. + + + Examples: EUR, USD, GBP, JPY + + ' + range: string + slot_uri: schema:priceCurrency + exact_mappings: + - schema:priceCurrency + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/price_text.yaml b/schemas/20251121/linkml/modules/slots/archive/price_text.yaml new file mode 100644 index 0000000000..99042a806e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/price_text.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/price_text +name: price_text_slot +title: Price Text Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + price_text: + description: 'Price as text, including historical context. + + ' + range: string + slot_uri: schema:price + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:price diff --git a/schemas/20251121/linkml/modules/slots/archive/primary.yaml b/schemas/20251121/linkml/modules/slots/archive/primary.yaml new file mode 100644 index 0000000000..545a0c49ba --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/primary.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/primary +name: primary_slot +title: Primary Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + primary: + slot_uri: dcterms:spatial + description: Primary geographic areas covered + range: string + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:spatial diff --git a/schemas/20251121/linkml/modules/slots/archive/primary_audio_event_type.yaml b/schemas/20251121/linkml/modules/slots/archive/primary_audio_event_type.yaml new file mode 100644 index 0000000000..fd94d153de --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/primary_audio_event_type.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/primary_audio_event_type +name: primary_audio_event_type_slot +title: Primary Audio Event Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/AudioEventTypeEnum +default_prefix: hc +slots: + primary_audio_event_type: + description: 'The primary type of audio analysis performed. + + + Dublin Core: type for categorization. + + + **Types**: + + - SPEECH: Speech detection and diarization + + - MUSIC: Music detection and classification + + - SOUND_EVENTS: Environmental sound detection + + - MIXED: Multiple analysis types combined + + ' + range: string # uriorcurie + # range: AudioEventTypeEnum + slot_uri: hc:primaryAudioEventType + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:primaryAudioEventType diff --git a/schemas/20251121/linkml/modules/slots/archive/primary_heritage_type.yaml b/schemas/20251121/linkml/modules/slots/archive/primary_heritage_type.yaml new file mode 100644 index 0000000000..05f4b0579e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/primary_heritage_type.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/primary_heritage_type +name: primary_heritage_type_slot +title: Primary Heritage Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/HeritageTypeEnum +default_prefix: hc +slots: + primary_heritage_type: + description: 'Primary heritage type if multiple apply. + + The single most relevant type for this person''s current role. + + ' + range: string # uriorcurie + # range: HeritageTypeEnum + slot_uri: hc:primaryHeritageType + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:primaryHeritageType diff --git a/schemas/20251121/linkml/modules/slots/archive/primary_register.yaml b/schemas/20251121/linkml/modules/slots/archive/primary_register.yaml new file mode 100644 index 0000000000..bd4499ffef --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/primary_register.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/primary_register +name: primary_register +title: Primary Register Slot +prefixes: + gleif_base: https://www.gleif.org/ontology/Base/ + gleif_ra: https://www.gleif.org/ontology/RegistrationAuthority/ + schema: http://schema.org/ + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +description: "Primary trade register where an entity is registered.\n\nLinks to TradeRegister class.\n\ngleif_base:isRegisteredIn - \"indicates the registry that something is registered in\"\ngleif_ra:BusinessRegistry - \"a registry for registering and maintaining \ninformation about business entities\"\n\nUsed for:\n- CustodianLegalStatus: Primary register where entity is registered\n- RegistrationNumber: Register that issued the number\n" +slots: + primary_register: + slot_uri: gleif_base:isRegisteredIn + range: string # uriorcurie + # range: TradeRegister + required: false + multivalued: false + description: "Primary trade register where this entity is registered.\nLinks to TradeRegister class.\n\ngleif_base:isRegisteredIn - \"indicates the registry that something is registered in\"\ngleif_ra:BusinessRegistry - \"a registry for registering and maintaining \ninformation about business entities\"\n\nExamples: Netherlands Handelsregister, UK Companies Register, German HRB.\n" + close_mappings: + - dcterms:source + annotations: + custodian_types: '["*"]' +comments: +- Maps to gleif_base:isRegisteredIn +- Links to TradeRegister class (the register/database) +- Distinct from RegistrationAuthority (the organization maintaining the register) diff --git a/schemas/20251121/linkml/modules/slots/archive/primary_speaker.yaml b/schemas/20251121/linkml/modules/slots/archive/primary_speaker.yaml new file mode 100644 index 0000000000..7bfe3e7e8d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/primary_speaker.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/primary_speaker +name: primary_speaker_slot +title: Primary Speaker Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + primary_speaker: + slot_uri: hc:primarySpeaker + description: 'Identifier or name of the main/dominant speaker. + + + For interviews: the interviewee (not interviewer) + + For presentations: the presenter + + For tours: the guide + + + May be generic ("Narrator") or specific ("Dr. Taco Dibbits"). + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:primarySpeaker diff --git a/schemas/20251121/linkml/modules/slots/archive/primary_system.yaml b/schemas/20251121/linkml/modules/slots/archive/primary_system.yaml new file mode 100644 index 0000000000..ff9fcce203 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/primary_system.yaml @@ -0,0 +1,48 @@ +id: https://nde.nl/ontology/hc/slot/primary_system +name: primary_system_slot +title: Primary System Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + primary_system: + description: 'Primary digital system where these records are managed. + + + **Schema.org**: schema:isPartOf for system relationship. + + + Links to DigitalPlatform for: + + - Document management systems (SharePoint, M-Files) + + - ERP systems (SAP, Oracle) + + - Email systems (Exchange, Gmail) + + - Line-of-business applications + + - Custom databases + + + Important for digital preservation planning. + + ' + range: string # uriorcurie + # range: DigitalPlatform + slot_uri: hc:primarySystem + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:primarySystem diff --git a/schemas/20251121/linkml/modules/slots/archive/printer_publisher.yaml b/schemas/20251121/linkml/modules/slots/archive/printer_publisher.yaml new file mode 100644 index 0000000000..2becb730e6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/printer_publisher.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/printer_publisher +name: printer_publisher_slot +title: Printer Publisher Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + printer_publisher: + description: 'Printer, publisher, or producer of the item. + + ' + range: string + multivalued: true + slot_uri: schema:publisher + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:publisher diff --git a/schemas/20251121/linkml/modules/slots/archive/priority.yaml b/schemas/20251121/linkml/modules/slots/archive/priority.yaml new file mode 100644 index 0000000000..f6d3205b85 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/priority.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/priority +name: priority_slot +title: Priority Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + priority: + description: 'Priority level for this activity. + + + Values: HIGH, MEDIUM, LOW, CRITICAL + + + Used for planning and resource allocation. + + ' + range: string + slot_uri: hc:priority + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:priority diff --git a/schemas/20251121/linkml/modules/slots/archive/privacy_note.yaml b/schemas/20251121/linkml/modules/slots/archive/privacy_note.yaml new file mode 100644 index 0000000000..8c73dc27d9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/privacy_note.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/privacy_note +name: privacy_note +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + privacy_note: + slot_uri: schema:accessModeSufficient + description: Notes about privacy restrictions or access limitations. + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:accessModeSufficient diff --git a/schemas/20251121/linkml/modules/slots/archive/processing_completed_date.yaml b/schemas/20251121/linkml/modules/slots/archive/processing_completed_date.yaml new file mode 100644 index 0000000000..a28c6ec3d1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/processing_completed_date.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/processing_completed_date +name: processing_completed_date_slot +title: Processing Completed Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + processing_completed_date: + description: 'Date when archival processing completed. + + + **PROV-O**: prov:endedAtTime for activity completion. + + + Set when status changes to PROCESSED_PENDING_TRANSFER. + + + **Metrics**: (processing_completed_date - accession_date) = processing lag + + This metric is often measured in YEARS or DECADES. + + ' + range: date + slot_uri: dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:date diff --git a/schemas/20251121/linkml/modules/slots/archive/processing_duration_seconds.yaml b/schemas/20251121/linkml/modules/slots/archive/processing_duration_seconds.yaml new file mode 100644 index 0000000000..7ec5d4275f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/processing_duration_seconds.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/processing_duration_seconds +name: processing_duration_seconds_slot +title: Processing Duration Seconds Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + processing_duration_seconds: + slot_uri: hc:processingDurationSeconds + description: 'Time taken to generate this content, in seconds. + + + Useful for performance monitoring and cost estimation. + + ' + range: float + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:processingDurationSeconds diff --git a/schemas/20251121/linkml/modules/slots/archive/processing_priority.yaml b/schemas/20251121/linkml/modules/slots/archive/processing_priority.yaml new file mode 100644 index 0000000000..0d1f298348 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/processing_priority.yaml @@ -0,0 +1,50 @@ +id: https://nde.nl/ontology/hc/slot/processing_priority +name: processing_priority_slot +title: Processing Priority Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + processing_priority: + description: 'Priority level for processing this accession. + + + **Values**: + + - HIGH: Legal/regulatory requirement, researcher demand, condition issues + + - MEDIUM: Standard processing queue + + - LOW: No immediate need, can wait indefinitely + + - URGENT: Immediate processing required (legal hold, condition emergency) + + + Priority may change based on: + + - Researcher requests + + - Anniversary/commemorative events + + - Grant funding for specific processing + + - Condition concerns (mold, pests, deterioration) + + ' + range: string + slot_uri: hc:processingPriority + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:processingPriority diff --git a/schemas/20251121/linkml/modules/slots/archive/processing_started_date.yaml b/schemas/20251121/linkml/modules/slots/archive/processing_started_date.yaml new file mode 100644 index 0000000000..bd2fd3053b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/processing_started_date.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/processing_started_date +name: processing_started_date_slot +title: Processing Started Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + processing_started_date: + description: 'Date when archival processing began. + + + **PROV-O**: prov:startedAtTime for activity start. + + + Null if status = UNPROCESSED or ON_HOLD. + + Set when status changes to IN_APPRAISAL or later. + + ' + range: date + slot_uri: dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:date diff --git a/schemas/20251121/linkml/modules/slots/archive/processing_status.yaml b/schemas/20251121/linkml/modules/slots/archive/processing_status.yaml new file mode 100644 index 0000000000..189468d269 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/processing_status.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/processing_status +name: processing_status_slot +title: Processing Status Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/ArchiveProcessingStatusEnum +default_prefix: hc +slots: + processing_status: + description: "Current processing status of this operational archive.\n\n**See**: ArchiveProcessingStatusEnum for full status lifecycle.\n\n**Common progression**:\nUNPROCESSED \u2192 IN_APPRAISAL \u2192 IN_ARRANGEMENT \u2192 IN_DESCRIPTION \n\u2192 PROCESSED_PENDING_TRANSFER \u2192 TRANSFERRED_TO_COLLECTION\n" + range: string # uriorcurie + # range: ArchiveProcessingStatusEnum + slot_uri: hc:processingStatus + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:processingStatus diff --git a/schemas/20251121/linkml/modules/slots/archive/production_method.yaml b/schemas/20251121/linkml/modules/slots/archive/production_method.yaml new file mode 100644 index 0000000000..586b706e84 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/production_method.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/production_method +name: production_method_slot +title: Production Method Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + production_method: + description: "Method of text production.\n\n**Values**: MANUSCRIPT, LETTERPRESS, LITHOGRAPHY, OFFSET, \nINTAGLIO (engraving), WOODBLOCK, MIMEOGRAPH, PHOTOCOPY\n" + range: string + slot_uri: crm:P32_used_general_technique + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P32_used_general_technique diff --git a/schemas/20251121/linkml/modules/slots/archive/proficiency_level.yaml b/schemas/20251121/linkml/modules/slots/archive/proficiency_level.yaml new file mode 100644 index 0000000000..58b78ec672 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/proficiency_level.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/proficiency_level +name: proficiency_level_slot +title: proficiency_level slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/LanguageProficiencyEnum +default_prefix: hc +slots: + proficiency_level: + description: 'Proficiency level as parsed from LinkedIn. + + Uses LanguageProficiencyEnum values. + + ' + slot_uri: schema:proficiencyLevel + range: string # uriorcurie + # range: LanguageProficiencyEnum + examples: + - value: NATIVE_BILINGUAL + description: Native or bilingual proficiency + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:proficiencyLevel diff --git a/schemas/20251121/linkml/modules/slots/archive/profile_data.yaml b/schemas/20251121/linkml/modules/slots/archive/profile_data.yaml new file mode 100644 index 0000000000..66ca0b5062 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/profile_data.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/profile_data +name: profile_data_slot +title: Profile Data Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + profile_data: + description: 'Core profile data extracted from LinkedIn. + + Contains personal info, career history, education, skills, languages. + + See LinkedInProfileData class for field definitions. + + ' + range: string # uriorcurie + slot_uri: hc:profileData + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:profileData diff --git a/schemas/20251121/linkml/modules/slots/archive/profile_description.yaml b/schemas/20251121/linkml/modules/slots/archive/profile_description.yaml new file mode 100644 index 0000000000..04d4549ebc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/profile_description.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/profile_description +name: profile_description_slot +title: Profile Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + profile_description: + description: 'Bio or description text from the social media profile. Extracted from the platform''s bio/about section. + + Maps to dcterms:description for profile text descriptions.' + range: string + slot_uri: dcterms:description + close_mappings: + - schema:description + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/profile_image_url.yaml b/schemas/20251121/linkml/modules/slots/archive/profile_image_url.yaml new file mode 100644 index 0000000000..d9fc412d65 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/profile_image_url.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/profile_image_url +name: profile_image_url_slot +title: Profile Image Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + profile_image_url: + description: 'URL to the LinkedIn profile photo. + + Should be the actual CDN URL (media.licdn.com), not overlay page. + + See AGENTS.md Rule 16 for photo URL requirements. + + ' + range: uri + slot_uri: hc:profileImageUrl + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:profileImageUrl diff --git a/schemas/20251121/linkml/modules/slots/archive/profile_linkedin_url.yaml b/schemas/20251121/linkml/modules/slots/archive/profile_linkedin_url.yaml new file mode 100644 index 0000000000..838667da0c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/profile_linkedin_url.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/profile_linkedin_url +name: profile_linkedin_url_slot +title: Profile Linkedin Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + profile_linkedin_url: + description: 'LinkedIn profile URL for this person. + + Duplicated from extraction_metadata for convenience. + + ' + range: uri + slot_uri: hc:profileLinkedinUrl + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:profileLinkedinUrl diff --git a/schemas/20251121/linkml/modules/slots/archive/profile_location.yaml b/schemas/20251121/linkml/modules/slots/archive/profile_location.yaml new file mode 100644 index 0000000000..4faeece61a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/profile_location.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/profile_location +name: profile_location_slot +title: Profile Location Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + profile_location: + description: 'Location as displayed on LinkedIn profile. + + Format varies: "City, Region, Country" or "City, Country" + + ' + range: string + slot_uri: hc:profileLocation + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:profileLocation diff --git a/schemas/20251121/linkml/modules/slots/archive/profile_name.yaml b/schemas/20251121/linkml/modules/slots/archive/profile_name.yaml new file mode 100644 index 0000000000..96040f42ae --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/profile_name.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/profile_name +name: profile_name_slot +title: Profile Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + foaf: http://xmlns.com/foaf/0.1/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + profile_name: + description: 'Full name of the person as displayed on LinkedIn. + + Ontology mapping: foaf:name is the FOAF property for a person''s name.' + range: string + slot_uri: foaf:name + close_mappings: + - schema:name + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/profile_url.yaml b/schemas/20251121/linkml/modules/slots/archive/profile_url.yaml new file mode 100644 index 0000000000..b55adc3b76 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/profile_url.yaml @@ -0,0 +1,46 @@ +id: https://nde.nl/ontology/hc/slot/profile_url +name: profile_url_slot +title: Profile Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + foaf: http://xmlns.com/foaf/0.1/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + profile_url: + description: 'Full URL to the social media profile. Mapped to schema:url as the standard property for web addresses. + + + This is the canonical URL for accessing the profile. + + + URL patterns by platform: + + - Instagram: https://www.instagram.com/{username} + + - X/Twitter: https://x.com/{username} + + - Facebook: https://www.facebook.com/{page} + + - YouTube: https://www.youtube.com/@{handle} + + - LinkedIn: https://www.linkedin.com/company/{name} + + ' + range: uri + slot_uri: schema:url + close_mappings: + - foaf:homepage + - foaf:page + annotations: + custodian_types: "['*']" diff --git a/schemas/20251121/linkml/modules/slots/archive/protocol_name.yaml b/schemas/20251121/linkml/modules/slots/archive/protocol_name.yaml index 4955d12507..021063b020 100644 --- a/schemas/20251121/linkml/modules/slots/archive/protocol_name.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/protocol_name.yaml @@ -1,42 +1,13 @@ id: https://nde.nl/ontology/hc/slot/protocol_name -name: protocol_name_slot -title: Protocol Name Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - dcterms: http://purl.org/dc/terms/ - schema: http://schema.org/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# +name: protocol_name +description: The name of the protocol used by a service endpoint (e.g., "OAI-PMH", "SPARQL"). imports: -- linkml:types -default_prefix: hc + - linkml:types slots: protocol_name: - slot_uri: dcterms:conformsTo - description: 'Name of the protocol or standard this endpoint type implements. - - - Dublin Core: conformsTo for standard compliance. - - - Examples: - - - "OAI-PMH" (Open Archives Initiative Protocol for Metadata Harvesting) - - - "IIIF Image API" (International Image Interoperability Framework) - - - "SPARQL" (SPARQL Protocol and RDF Query Language) - - ' + description: The name of the protocol used by a service endpoint (e.g., "OAI-PMH", "SPARQL"). range: string - required: false - annotations: - custodian_types: - - '*' - exact_mappings: - - dcterms:conformsTo + slot_uri: dcterms:conformsTo + examples: + - value: "OAI-PMH" + - value: "SPARQL" diff --git a/schemas/20251121/linkml/modules/slots/archive/protocol_version.yaml b/schemas/20251121/linkml/modules/slots/archive/protocol_version.yaml index 8475294401..bc8e204325 100644 --- a/schemas/20251121/linkml/modules/slots/archive/protocol_version.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/protocol_version.yaml @@ -1,42 +1,13 @@ id: https://nde.nl/ontology/hc/slot/protocol_version -name: protocol_version_slot -title: Protocol Version Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# +name: protocol_version +description: The version of the protocol used by a service endpoint (e.g., "2.0" for OAI-PMH). imports: -- linkml:types -default_prefix: hc + - linkml:types slots: protocol_version: - slot_uri: schema:version - description: 'Version of the protocol this endpoint type supports. - - - Schema.org: version for protocol version. - - - Examples: - - - "2.0" (OAI-PMH) - - - "3.0" (IIIF Image API) - - - "1.1" (SPARQL) - - ' + description: The version of the protocol used by a service endpoint (e.g., "2.0" for OAI-PMH). range: string - required: false - annotations: - custodian_types: - - '*' - exact_mappings: - - schema:version + slot_uri: dcterms:hasVersion + examples: + - value: "2.0" + - value: "1.1" diff --git a/schemas/20251121/linkml/modules/slots/archive/provider.yaml b/schemas/20251121/linkml/modules/slots/archive/provider.yaml new file mode 100644 index 0000000000..dfcfc2ca9f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/provider.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/provider +name: provider_slot +title: provider slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/LLMProviderEnum +default_prefix: hc +slots: + provider: + description: 'The provider of a service, payment method, or resource. + Maps to schema:provider. + ' + slot_uri: schema:provider + range: string + annotations: + custodian_types: "['*']" + exact_mappings: + - prov:wasAssociatedWith diff --git a/schemas/20251121/linkml/modules/slots/archive/provides_or_provided.yaml b/schemas/20251121/linkml/modules/slots/archive/provides_or_provided.yaml new file mode 100644 index 0000000000..323a3092ce --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/provides_or_provided.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/provides_or_provided +name: provides_or_provided +title: provides_or_provided +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + provides_or_provided: + name: provides_or_provided + description: 'Relates an agent or service to the resource or service it provides. + + MIGRATED from `entity_types_covered` (via ContributingAgency) and `funding_program` (via OfficialInstitutionType).' + slot_uri: schema:provider + range: string # uriorcurie + multivalued: true + exact_mappings: + - schema:provider + - prov:wasGeneratedBy + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/provides_or_provided_provenance_to.yaml b/schemas/20251121/linkml/modules/slots/archive/provides_or_provided_provenance_to.yaml new file mode 100644 index 0000000000..6038d8ae20 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/provides_or_provided_provenance_to.yaml @@ -0,0 +1,51 @@ +id: https://nde.nl/ontology/hc/slot/provides_or_provided_provenance_to +name: provides_or_provided_provenance_to +title: Provides or Provided Provenance To +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + provides_or_provided_provenance_to: + slot_uri: prov:wasUsedBy + description: 'Links an entity to activities or other entities that used it. + + + **USAGE**: + + Used to express provenance relationships: + + - "This dataset was used by this research project" + + - "This tool was used by this digitization activity" + + + **ONTOLOGY ALIGNMENT**: + + - slot_uri: prov:wasUsedBy (PROV-O usage relationship) + + - Inverse of prov:used + + ' + range: string # uriorcurie + multivalued: true + exact_mappings: + - prov:wasUsedBy + close_mappings: + - prov:wasGeneratedBy + examples: + - value: https://nde.nl/activity/digitization-2024 + description: Entity used by a digitization activity + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Provenance relationships applicable to all types. diff --git a/schemas/20251121/linkml/modules/slots/archive/provides_or_provided_to.yaml b/schemas/20251121/linkml/modules/slots/archive/provides_or_provided_to.yaml new file mode 100644 index 0000000000..90e400e443 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/provides_or_provided_to.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/provides_or_provided_to +name: provides_or_provided_to +title: provides_or_provided_to +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + provides_or_provided_to: + name: provides_or_provided_to + description: The entity to which something is provided or granted. + slot_uri: schema:recipient + range: string # uriorcurie + # range: Agent + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:recipient diff --git a/schemas/20251121/linkml/modules/slots/archive/publishes_or_published.yaml b/schemas/20251121/linkml/modules/slots/archive/publishes_or_published.yaml new file mode 100644 index 0000000000..3007947f5f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/publishes_or_published.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/publishes_or_published +name: publishes_or_published +title: publishes_or_published +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + publishes_or_published: + name: publishes_or_published + title: publishes_or_published + description: The work or document published by an entity. + slot_uri: schema:published + range: string # uriorcurie + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:published diff --git a/schemas/20251121/linkml/modules/slots/archive/rate_value.yaml b/schemas/20251121/linkml/modules/slots/archive/rate_value.yaml new file mode 100644 index 0000000000..f70be06793 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/rate_value.yaml @@ -0,0 +1,56 @@ +id: https://nde.nl/ontology/hc/slot/rate_value +name: rate_value_slot +title: Rate Value Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + xsd: http://www.w3.org/2001/XMLSchema# + qudt: http://qudt.org/schema/qudt/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# +imports: +- linkml:types +# default_range: string +slots: + rate_value: + slot_uri: qudt:value + range: float + description: 'Decimal rate or percentage value. + + + Used by classes that encapsulate rate measurements: + + - ConversionRate: Percentage of conversions (0.0 to 1.0) + + - GrowthRate: Year-over-year growth + + - EngagementRate: Social media engagement metrics + + + Values are typically expressed as decimals (e.g., 0.25 = 25%). + + + For integer identifiers, use numeric_value instead. + + For string identifiers, use identifier_value instead. + + ' + exact_mappings: + - qudt:value + close_mappings: + - xsd:decimal + examples: + - value: 0.25 + description: 25% conversion rate + - value: 0.035 + description: 3.5% click-through rate + - value: 1.15 + description: 15% growth (115% of previous period) + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/rationale.yaml b/schemas/20251121/linkml/modules/slots/archive/rationale.yaml new file mode 100644 index 0000000000..ccbfa3baa9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/rationale.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/rationale +name: rationale_slot +title: Rationale Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + rationale: + description: 'Human-readable explanation of the heritage classification. + + Documents why the person was classified with specific types/score. + + ' + range: string + slot_uri: hc:rationale + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:rationale diff --git a/schemas/20251121/linkml/modules/slots/archive/raw_subtitle_content.yaml b/schemas/20251121/linkml/modules/slots/archive/raw_subtitle_content.yaml new file mode 100644 index 0000000000..76da563aa9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/raw_subtitle_content.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/raw_subtitle_content +name: raw_subtitle_content_slot +title: raw_subtitle_content slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + raw_subtitle_content: + description: 'Original subtitle file content as raw string. + + + Preserves the complete subtitle file in its native format. + + Useful for: + + - Format conversion + + - Re-parsing with different tools + + - Archive preservation + + + May be large - consider storing separately for large files. + + ' + range: string + slot_uri: hc:rawSubtitleContent + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:rawSubtitleContent diff --git a/schemas/20251121/linkml/modules/slots/archive/reading_room_type.yaml b/schemas/20251121/linkml/modules/slots/archive/reading_room_type.yaml new file mode 100644 index 0000000000..50756926a4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/reading_room_type.yaml @@ -0,0 +1,53 @@ +id: https://nde.nl/ontology/hc/slot/reading-room-type +name: reading_room_type_slot +title: reading_room_type slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/ReadingRoomTypeEnum +default_prefix: hc +slots: + reading_room_type: + slot_uri: dcterms:type + description: 'Type classification of this reading room. + + + Common types: + + - General: Primary research space + + - Special Collections: Rare/valuable materials + + - Microfilm: Microform materials + + - Digital: Electronic resources + + - Map Room: Cartographic materials + + - Newspaper: Periodicals + + - Multimedia: AV materials + + ' + range: string # uriorcurie + # range: ReadingRoomTypeEnum + examples: + - value: GENERAL + description: General reading room + - value: SPECIAL_COLLECTIONS + description: Special collections room + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:type diff --git a/schemas/20251121/linkml/modules/slots/archive/reason_description.yaml b/schemas/20251121/linkml/modules/slots/archive/reason_description.yaml new file mode 100644 index 0000000000..4b13ecc5dc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/reason_description.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/reason_description +name: reason_description_slot +title: Reason Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + reason_description: + slot_uri: dcterms:description + description: 'Detailed explanation of why this temporary location exists. + + + More detailed than temp_location_reason category. + + Should explain specific circumstances. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:description diff --git a/schemas/20251121/linkml/modules/slots/archive/reasoning_content.yaml b/schemas/20251121/linkml/modules/slots/archive/reasoning_content.yaml new file mode 100644 index 0000000000..317de45d1d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/reasoning_content.yaml @@ -0,0 +1,50 @@ +id: https://nde.nl/ontology/hc/slot/reasoning_content +name: reasoning_content_slot +title: reasoning_content slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + reasoning_content: + description: 'Interleaved Thinking - the model''s chain-of-thought reasoning. + + PROV-O: prov:hadPlan - documents HOW the agent reasoned. + + + **GLM 4.7 Interleaved Thinking**: + + GLM 4.7 returns `reasoning_content` in every response, exposing the + + model''s step-by-step reasoning process. This enables: + + + 1. **Schema Validation**: Model reasons about LinkML constraints before generating output + + 2. **Ontology Mapping**: Explicit reasoning about CIDOC-CRM, CPOV, TOOI class mappings + + 3. **RDF Quality**: Chain-of-thought validates triple construction + + 4. **Transparency**: Full audit trail of extraction decisions + + + May be null for providers that don''t expose reasoning (Claude, GPT-4). + + ' + slot_uri: prov:hadPlan + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:hadPlan diff --git a/schemas/20251121/linkml/modules/slots/archive/receives_or_received.yaml b/schemas/20251121/linkml/modules/slots/archive/receives_or_received.yaml new file mode 100644 index 0000000000..79162d4f01 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/receives_or_received.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/receives_or_received +name: receives_or_received +title: receives_or_received +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + receives_or_received: + name: receives_or_received + description: Indicates that an entity receives or received something (e.g., funding, award, material). MIGRATED from funding_source per Rule 53. Follows RiC-O naming convention. + slot_uri: frapo:isFundedBy + range: string # uriorcurie + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - frapo:isFundedBy diff --git a/schemas/20251121/linkml/modules/slots/archive/recognized_person_name.yaml b/schemas/20251121/linkml/modules/slots/archive/recognized_person_name.yaml new file mode 100644 index 0000000000..4092a7781c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/recognized_person_name.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/recognized_person_name +name: recognized_person_name_slot +title: Recognized Person Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + foaf: http://xmlns.com/foaf/0.1/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + recognized_person_name: + description: 'Name of recognized person from computer vision face detection. + + Ontology mapping: foaf:name is the FOAF property for a person''s name.' + range: string + slot_uri: foaf:name + close_mappings: + - rdfs:label + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/recommendation.yaml b/schemas/20251121/linkml/modules/slots/archive/recommendation.yaml new file mode 100644 index 0000000000..553ab445ad --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/recommendation.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/recommendation +name: recommendation_slot +title: Recommendations Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + recommendation: + description: 'Recommendations for future care, display, or treatment. + + ' + range: string + multivalued: true + slot_uri: skos:note + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:note diff --git a/schemas/20251121/linkml/modules/slots/archive/reconstruction_method.yaml b/schemas/20251121/linkml/modules/slots/archive/reconstruction_method.yaml new file mode 100644 index 0000000000..41ba7f0256 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/reconstruction_method.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/reconstruction_method +name: reconstruction_method-slot +imports: +- linkml:types +slots: + reconstruction_method: + description: 'Documents the methodology used to create this reconstruction from + + available observations. May include data sources, algorithms, + + editorial decisions, and confidence levels. + + ' + slot_uri: prov:hadPlan + range: string + broad_mappings: + - prov:wasGeneratedBy + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:hadPlan +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/record_count.yaml b/schemas/20251121/linkml/modules/slots/archive/record_count.yaml new file mode 100644 index 0000000000..b7a2cf3d01 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/record_count.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/record_count +name: record_count_slot +title: Record Count Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + record_count: + range: integer + description: 'Approximate number of records/objects in the portal. + + Use most recent available count. + + ' + slot_uri: hc:recordCount + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:recordCount diff --git a/schemas/20251121/linkml/modules/slots/archive/record_date.yaml b/schemas/20251121/linkml/modules/slots/archive/record_date.yaml new file mode 100644 index 0000000000..ae94508d6e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/record_date.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/record_date +name: record_date_slot +title: Record Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + record_date: + description: 'Date the assessment, treatment, or examination was performed. + + ' + range: date + slot_uri: schema:dateCreated + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:dateCreated diff --git a/schemas/20251121/linkml/modules/slots/archive/record_equivalent.yaml b/schemas/20251121/linkml/modules/slots/archive/record_equivalent.yaml new file mode 100644 index 0000000000..92c7fff540 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/record_equivalent.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/record_equivalent +name: record_equivalent +title: RiC-O Equivalent Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + record_equivalent: + description: 'Equivalent term in RiC-O (Records in Contexts Ontology). + + + Links this class to the corresponding RiC-O class or property, + + enabling interoperability with archival description standards. + + ' + range: string # uriorcurie + slot_uri: skos:closeMatch + examples: + - value: rico:RecordSet + description: RiC-O RecordSet class + - value: rico:FindingAid + description: RiC-O FindingAid class + exact_mappings: + - skos:exactMatch + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/record_format.yaml b/schemas/20251121/linkml/modules/slots/archive/record_format.yaml new file mode 100644 index 0000000000..fa0e0f3a39 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/record_format.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/slot/record_format +name: record_format_slot +title: record_format slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcat: http://www.w3.org/ns/dcat# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/AuthorityRecordFormatEnum +default_prefix: hc +slots: + record_format: + slot_uri: dcat:mediaType + description: 'Format of authority records contributed. + + + Values: + + - MARC21_AUTHORITY: MARC21 authority format + + - UNIMARC_AUTHORITY: UNIMARC authority format + + - RDF: RDF/Linked Data + + - PROPRIETARY: Custom format + + ' + range: string # uriorcurie + # range: AuthorityRecordFormatEnum + required: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcat:mediaType diff --git a/schemas/20251121/linkml/modules/slots/archive/record_holder.yaml b/schemas/20251121/linkml/modules/slots/archive/record_holder.yaml new file mode 100644 index 0000000000..c622d4f9c9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/record_holder.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/record_holder +name: record_holder +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + record_holder: + slot_uri: rico:hasOrHadHolder + description: Reference to the custodian that holds or held this record set. + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - rico:hasOrHadHolder diff --git a/schemas/20251121/linkml/modules/slots/archive/record_holder_note.yaml b/schemas/20251121/linkml/modules/slots/archive/record_holder_note.yaml new file mode 100644 index 0000000000..0f9f7bd128 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/record_holder_note.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/record_holder_note +name: record_holder_note +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + record_holder_note: + slot_uri: rico:note + description: Note about the holder relationship for a record set. + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - rico:note diff --git a/schemas/20251121/linkml/modules/slots/archive/record_id.yaml b/schemas/20251121/linkml/modules/slots/archive/record_id.yaml new file mode 100644 index 0000000000..a02ad75b8c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/record_id.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/record_id +name: record_id_slot +title: Record Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + record_id: + description: 'Unique identifier for this conservation record. + + Format: https://nde.nl/ontology/hc/conservation/{object-slug}-{year}-{seq} + + ' + range: string # uriorcurie + slot_uri: dcterms:identifier + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/record_note.yaml b/schemas/20251121/linkml/modules/slots/archive/record_note.yaml new file mode 100644 index 0000000000..e5f0cff4b2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/record_note.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/record_note +name: record_note +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + record_note: + slot_uri: rico:note + description: Note or comment about a RiC-O record set type. + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - rico:note diff --git a/schemas/20251121/linkml/modules/slots/archive/record_set_type.yaml b/schemas/20251121/linkml/modules/slots/archive/record_set_type.yaml new file mode 100644 index 0000000000..69c11ba55c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/record_set_type.yaml @@ -0,0 +1,49 @@ +id: https://nde.nl/ontology/hc/slot/record_set_type +name: record_set_type +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + record_set_type: + slot_uri: rico:hasRecordSetType + description: 'Direct mapping to RiC-O RecordSetType vocabulary. + + + Standard RiC-O record set types: + + - rico:Fonds - Archival fonds (provenance-based) + + - rico:Series - Archival series + + - rico:File - Archival file + + - rico:Collection - Assembled collection (not provenance-based) + + + Use for RDF interoperability with archival systems. + + ' + range: string + required: false + examples: + - value: rico:Fonds + description: Archival fonds + - value: rico:Series + description: Archival series + broad_mappings: + - dcterms:type + annotations: + custodian_types: '["*"]' + exact_mappings: + - rico:hasRecordSetType diff --git a/schemas/20251121/linkml/modules/slots/archive/record_timespan.yaml b/schemas/20251121/linkml/modules/slots/archive/record_timespan.yaml new file mode 100644 index 0000000000..843dacfcaf --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/record_timespan.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/record_timespan +name: record_timespan_slot +title: Record Timespan Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + record_timespan: + description: 'Full temporal extent of the conservation activity. + + Use for treatments spanning multiple dates. + + ' + range: string # uriorcurie + # range: TimeSpan + slot_uri: crm:P4_has_time-span + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P4_has_time-span diff --git a/schemas/20251121/linkml/modules/slots/archive/record_type.yaml b/schemas/20251121/linkml/modules/slots/archive/record_type.yaml new file mode 100644 index 0000000000..eb2e1e63ce --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/record_type.yaml @@ -0,0 +1,46 @@ +id: https://nde.nl/ontology/hc/slot/record_type +name: record_type_slot +title: Record Type Slot +description: Shared slot for record type classification across heritage custodian entities +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + record_type: + description: 'Type of conservation record. + + + Values: + + - CONDITION_ASSESSMENT: Evaluation of current state + + - TREATMENT: Conservation intervention + + - EXAMINATION: Technical/scientific analysis + + - LOAN_CONDITION_CHECK: Pre/post loan inspection + + - ENVIRONMENTAL_MONITORING: Climate/light monitoring + + - PEST_MONITORING: IPM inspection + + ' + range: string + slot_uri: dcterms:type + close_mappings: + - rico:hasRecordSetType + broad_mappings: + - dcterms:type + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/recording_available.yaml b/schemas/20251121/linkml/modules/slots/archive/recording_available.yaml new file mode 100644 index 0000000000..2d12db35a0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/recording_available.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/recording_available +name: recording_available_slot +title: Recording Available Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + recording_available: + description: 'Whether audio/video recording of this performance exists. + + ' + range: boolean + slot_uri: hc:recordingAvailable + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:recordingAvailable diff --git a/schemas/20251121/linkml/modules/slots/archive/recording_url.yaml b/schemas/20251121/linkml/modules/slots/archive/recording_url.yaml new file mode 100644 index 0000000000..386c5a5e90 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/recording_url.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/recording_url +name: recording_url_slot +title: Recording Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + recording_url: + description: 'Links to recordings of this performance (audio, video). Mapped to schema:url as the standard property for web addresses of media resources. + + ' + range: uri + multivalued: true + slot_uri: schema:url + close_mappings: + - schema:contentUrl + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/recurrence_pattern.yaml b/schemas/20251121/linkml/modules/slots/archive/recurrence_pattern.yaml new file mode 100644 index 0000000000..d1ddd5bb3a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/recurrence_pattern.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/recurrence_pattern +name: recurrence_pattern_slot +title: Recurrence Pattern Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + recurrence_pattern: + description: 'Pattern for recurring activities. + + + Use ISO 8601 duration or human-readable description. + + + Examples: "P1Y" (annual), "P3M" (quarterly), "P1M" (monthly) + + ' + range: string + slot_uri: hc:recurrencePattern + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:recurrencePattern diff --git a/schemas/20251121/linkml/modules/slots/archive/refers_or_referred_to.yaml b/schemas/20251121/linkml/modules/slots/archive/refers_or_referred_to.yaml new file mode 100644 index 0000000000..a55abde7bb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/refers_or_referred_to.yaml @@ -0,0 +1,74 @@ +id: https://nde.nl/ontology/hc/slot/refers_or_referred_to +name: refers_or_referred_to_slot +title: Refers Or Referred To Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + refers_or_referred_to: + slot_uri: prov:wasDerivedFrom + description: 'Links an observation or document to the entity it refers to or describes. + + + **Temporal Semantics** (RiC-O Pattern): + + The "refersOrReferred" naming follows RiC-O convention indicating this relationship + + may be historical - observations may reference entities from the past. + + + **Ontological Alignment**: + + - **Primary** (`slot_uri`): `prov:wasDerivedFrom` - PROV-O derivation + + - **Close**: `rico:refersTo` - RiC-O reference relationship + + + **MIGRATED FROM**: `derived_from_entity` slot + + + The revision pattern generalizes the derivation relationship: + + - Can link to EntityReconstruction (reconstructed formal entities) + + - Can link to any entity type (not just CustodianLegalStatus) + + - Enables provenance chain traversal + + ' + range: string # uriorcurie + multivalued: true + required: false + exact_mappings: + - prov:wasDerivedFrom + close_mappings: + - rico:refersTo + annotations: + rico_naming_convention: 'Follows RiC-O "refersOrReferred" pattern for temporal predicates. + + See Rule 39: Slot Naming Convention (RiC-O Style) + + ' + replaces_slots: derived_from_entity + migration_date: '2026-01-25' + custodian_types: '["*"]' + comments: + - MIGRATED from derived_from_entity per slot_fixes.yaml (Rule 53) + - Links observation to entity it references + - 'RiC-O naming: refersOrReferred indicates potentially historical relationship' + - PROV-O wasDerivedFrom for provenance chain + examples: + - value: https://nde.nl/ontology/hc/legal/stichting-rijksmuseum + description: Observation refers to Rijksmuseum legal entity diff --git a/schemas/20251121/linkml/modules/slots/archive/refers_to_access_policy.yaml b/schemas/20251121/linkml/modules/slots/archive/refers_to_access_policy.yaml new file mode 100644 index 0000000000..c1f46a71ef --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/refers_to_access_policy.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/refers_to_access_policy +name: refers_to_access_policy_slot +title: Refers To Access Policy Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + refers_to_access_policy: + description: 'Link to AccessPolicy defining the access restrictions. + + Required for dark archives to document why access is denied. + + ' + range: string # uriorcurie + # range: AccessPolicy + slot_uri: hc:refersToAccessPolicy + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:refersToAccessPolicy diff --git a/schemas/20251121/linkml/modules/slots/archive/refers_to_custodian.yaml b/schemas/20251121/linkml/modules/slots/archive/refers_to_custodian.yaml new file mode 100644 index 0000000000..fd0610ff68 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/refers_to_custodian.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/refers_to_custodian +name: refers_to_custodian-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +- ../metadata +slots: + refers_to_custodian: + description: "Links this collection aspect back to the Custodian hub it represents.\n\n**Dual Linking Pattern**:\n- `refers_to_custodian`: Links to CUSTODIAN HUB (Custodian class)\n- `responsible_legal_entity`: Links to LEGAL ASPECT (CustodianLegalStatus class)\n\nBoth reference the SAME custodian but different levels of abstraction:\n```yaml\nLegalResponsibilityCollection:\n # Hub reference (abstract identifier)\n refers_to_custodian: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n \n # Legal aspect reference (specific legal entity)\n responsible_legal_entity: \"https://nde.nl/ontology/hc/legal/rijksmuseum-foundation\"\n\n# Both ultimately refer to Rijksmuseum, but:\n# - refers_to_custodian: Stable hub identifier (GHCID-based URI)\n# - responsible_legal_entity: Specific legal form/registration (may change over time)\n```\n\n**Navigation Patterns**:\n1. **Collection \u2192 Hub \u2192 All Aspects**:\n ```sparql\n ?collection hc:refers_to_custodian ?hub .\n ?hub hc:has_legal_status\ + \ ?legal ;\n hc:has_name ?name ;\n hc:has_place ?place ;\n hc:has_collection ?other_collections .\n ```\n\n2. **Collection \u2192 Legal Aspect (Direct)**:\n ```sparql\n ?collection tooi:verantwoordelijke ?legal .\n ?legal hc:legal_name ?name ;\n hc:registration_numbers ?reg .\n ```\n\n**Why Both Properties?**:\n- `refers_to_custodian`: STABLE hub identifier (doesn't change with legal reorganizations)\n- `responsible_legal_entity`: SPECIFIC legal entity (tracks custody transfers, mergers, reorganizations)\n\nExample: Rijksmuseum collection custody unchanged for 140 years (same hub),\nbut legal entity underwent multiple reorganizations (legal aspect changed).\n" + slot_uri: dcterms:references + range: string # uriorcurie + # range: Custodian + required: true + comments: + - This property connects observations and reconstructions back to the abstract Custodian hub, allowing multiple views of the same entity to be linked together. + - Range is Custodian (not uriorcurie) to create explicit relationship in UML diagrams and enable schema validation. + broad_mappings: + - schema:organization + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:references diff --git a/schemas/20251121/linkml/modules/slots/archive/refers_to_legal_status.yaml b/schemas/20251121/linkml/modules/slots/archive/refers_to_legal_status.yaml new file mode 100644 index 0000000000..165d130b8f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/refers_to_legal_status.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/refers_to_legal_status +name: refers_to_legal_status_slot +title: Refers To Legal Status Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + refers_to_legal_status: + description: 'The legal entity that these articles establish/govern. + + + **RiC-O**: rico:documents for documentation relationship. + + + ArticlesOfAssociation DOCUMENTS CustodianLegalStatus. + + + **Note**: Even during PRE_EXISTENCE, this links to the (future) + + CustodianLegalStatus that will be created upon registration. + + ' + range: string # uriorcurie + # range: CustodianLegalStatus + slot_uri: hc:refersToLegalStatus + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:refersToLegalStatus diff --git a/schemas/20251121/linkml/modules/slots/archive/refers_to_person.yaml b/schemas/20251121/linkml/modules/slots/archive/refers_to_person.yaml new file mode 100644 index 0000000000..31b3af95df --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/refers_to_person.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/refers_to_person +name: refers_to_person-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + pico: https://personsincontext.org/model# + crm: http://www.cidoc-crm.org/cidoc-crm/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +- ../metadata +slots: + refers_to_person: + slot_uri: hc:refersToPersonHub + description: "Links this PersonObservation to the central Person hub it describes.\n\n**HUB-OBSERVATION PATTERN (PICO)**:\n\nThe PiCo (Persons in Context) ontology establishes a fundamental distinction:\n- **Person** (hub): Abstract identity, minimal data, stable over time\n- **PersonObservation** (this class): Evidence-based data from specific sources\n\nMultiple observations from different sources, time periods, or institutions\ncan all refer to the same Person hub, building up a complete picture.\n\n```\nPersonObservation (LinkedIn 2024) \u2500\u2500refers_to_person\u2500\u2500\u2510\n \u2502\nPersonObservation (Annual Report 2020) \u2500\u2500refers_to\u2500\u2500> Person (hub)\n \u2502\nPersonObservation (Staff Directory 1995) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n**WHY THIS MATTERS**:\n\n1. **Cross-Institution Career\ + \ Tracking**:\n Same person worked at Rijksmuseum (obs 1), Van Gogh Museum (obs 2).\n Both observations link to ONE Person hub.\n \n2. **Source Reconciliation**:\n LinkedIn says \"Director\", annual report says \"General Director\".\n Both are valid observations of the same Person - no need to choose.\n \n3. **Temporal Evolution**:\n Person's title changed over time. Each observation captures a snapshot.\n Hub provides stable identity anchor.\n\n**USAGE**:\n\n```yaml\nPersonObservation:\n person_name: \"Taco Dibbits\"\n role_title: \"General Director\"\n unit_affiliation: \".../org-unit/rm-executive\"\n refers_to_person: \"https://nde.nl/ontology/hc/person/taco-dibbits\"\n observation_source:\n source_type: \"Staff directory\"\n observation_date: \"2025-01-15\"\n```\n\n**RELATIONSHIP TO OTHER PATTERNS**:\n\n| From | Slot | To | Purpose |\n|------|------|----|---------|\n| CustodianObservation | refers_to_custodian | Custodian | Org observation \u2192 org\ + \ hub |\n| PersonObservation | **refers_to_person** | **Person** | Person observation \u2192 person hub |\n| Event | involved_actors | Person/Custodian | Event \u2192 participants |\n| Person | participated_in_events | Event | Person \u2192 events (inverse) |\n\n**See**: modules/classes/Person.yaml for Person hub class\n**See**: modules/slots/refers_to_person.yaml for slot definition\n" + range: string # uriorcurie + # range: Person + required: false + comments: + - This property connects PersonObservation to the abstract Person hub, allowing multiple views of the same person (from different sources, time periods, or institutions) to be linked together. + - Range is Person (not uriorcurie) to create explicit relationship in UML diagrams and enable schema validation. + - Required is false initially to allow PersonObservation without hub linkage, but production data should always have this link. + - prov:specializationOf does not exist in PROV-O (should be prov:wasRevisionOf or similar) + - schema:person does not exist in Schema.org - it's schema:Person (class) + close_mappings: + - dcterms:references + - pico:hasObservation + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/refers_to_storage.yaml b/schemas/20251121/linkml/modules/slots/archive/refers_to_storage.yaml new file mode 100644 index 0000000000..00ee59b940 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/refers_to_storage.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/refers_to_storage +name: refers_to_storage_slot +title: Refers To Storage Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + refers_to_storage: + description: 'The storage facility being assessed. + + + Links this observation to the Storage instance it describes. + + + PROV-O: used indicates entities used in activity. + + ' + range: string # uriorcurie + # range: Storage + slot_uri: hc:refersToStorage + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:refersToStorage diff --git a/schemas/20251121/linkml/modules/slots/archive/region.yaml b/schemas/20251121/linkml/modules/slots/archive/region.yaml new file mode 100644 index 0000000000..28b7c3b552 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/region.yaml @@ -0,0 +1,46 @@ +id: https://nde.nl/ontology/hc/slot/region +name: region_slot +title: Region Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + vcard: http://www.w3.org/2006/vcard/ns# + locn: http://www.w3.org/ns/locn# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +description: "Administrative region, state, province, or similar first-level subdivision.\n\nvCard: region - \"The region (e.g. state or province) associated with the \naddress of the object\"\n\nLOCN: adminUnitL2 - \"The name or names of a unit of administration where \na Local Administrative Unit (LAU) is responsible.\"\n\nSchema.org: addressRegion - \"The region in which the locality is.\"\n\nFor structured subregion references, use Subregion class with ISO 3166-2 code.\n\nExamples:\n- \"Noord-Holland\" (Dutch province)\n- \"California\" (US state)\n- \"England\" (UK constituent country)\n- \"NL-NH\" (ISO 3166-2 code)\n" +slots: + region: + slot_uri: vcard:region + range: string + required: false + description: "State, province, region, or other first-level administrative subdivision.\n\nvCard: region - \"The region (e.g. state or province) associated with the \naddress of the object\"\n\nUse official name or ISO 3166-2 subdivision code (e.g., \"NL-NH\" for \nNoord-Holland, Netherlands).\n\nFor structured reference, use Subregion class.\n" + exact_mappings: + - vcard:region + - schema:addressRegion + close_mappings: + - locn:adminUnitL2 + examples: + - value: Noord-Holland + description: Dutch province name + - value: NL-NH + description: ISO 3166-2 subdivision code + - value: California + description: US state name + - value: "\xCEle-de-France" + description: French region name + annotations: + custodian_types: '["*"]' +comments: +- Use official local name or ISO 3166-2 code +- For structured references, use Subregion class with code +- Level varies by country (state, province, region, etc.) diff --git a/schemas/20251121/linkml/modules/slots/archive/region_code.yaml b/schemas/20251121/linkml/modules/slots/archive/region_code.yaml new file mode 100644 index 0000000000..4292ddfd87 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/region_code.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/region_code +name: region_code_slot +title: Region Code Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + region_code: + slot_uri: hc:region_code + range: string + description: 'Region Code for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:region_code diff --git a/schemas/20251121/linkml/modules/slots/archive/region_confidence.yaml b/schemas/20251121/linkml/modules/slots/archive/region_confidence.yaml new file mode 100644 index 0000000000..e6dc690af5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/region_confidence.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/region_confidence +name: region_confidence_slot +title: Region Confidence Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + region_confidence: + description: 'OCR confidence (0.0-1.0). + + **Ontology mapping**: Uses sosa:hasSimpleResult because OCR models act as sensors producing observation results.' + range: float + minimum_value: 0.0 + maximum_value: 1.0 + slot_uri: sosa:hasSimpleResult + close_mappings: + - prov:value + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/region_language.yaml b/schemas/20251121/linkml/modules/slots/archive/region_language.yaml new file mode 100644 index 0000000000..7c1bd91c16 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/region_language.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/region_language +name: region_language_slot +title: Region Language Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + region_language: + description: Detected language (ISO 639-1) + range: string + slot_uri: hc:regionLanguage + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:regionLanguage diff --git a/schemas/20251121/linkml/modules/slots/archive/region_text.yaml b/schemas/20251121/linkml/modules/slots/archive/region_text.yaml new file mode 100644 index 0000000000..8f5e82807b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/region_text.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/region_text +name: region_text_slot +title: Region Text Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + region_text: + description: Extracted text content + range: string + slot_uri: hc:regionText + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:regionText diff --git a/schemas/20251121/linkml/modules/slots/archive/region_type.yaml b/schemas/20251121/linkml/modules/slots/archive/region_type.yaml new file mode 100644 index 0000000000..848cc63080 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/region_type.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/region_type +name: region_type_slot +title: Region Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + region_type: + description: 'Type of text region (on-screen text classification for OCR). MIGRATED: range changed from TextTypeEnum to TextType class per Rule 9 (enum-to-class promotion).' + range: string # uriorcurie + # range: TextType + slot_uri: hc:regionType + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:regionType diff --git a/schemas/20251121/linkml/modules/slots/archive/register_abbreviation.yaml b/schemas/20251121/linkml/modules/slots/archive/register_abbreviation.yaml new file mode 100644 index 0000000000..82ef5e9968 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/register_abbreviation.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/register_abbreviation +name: register_abbreviation_slot +title: register_abbreviation slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + gleif-base: https://www.gleif.org/ontology/Base/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + register_abbreviation: + description: "Common abbreviation for the register.\n\nExamples:\n- \"HR\" (Handelsregister)\n- \"KvK\" (Kamer van Koophandel - technically the authority, but commonly used)\n- \"CH\" (Companies House)\n- \"RCS\" (Registre du commerce et des soci\xE9t\xE9s)\n" + range: string + slot_uri: gleif-base:hasAbbreviationLocal + annotations: + custodian_types: '["*"]' + exact_mappings: + - gleif-base:hasAbbreviationLocal diff --git a/schemas/20251121/linkml/modules/slots/archive/register_id.yaml b/schemas/20251121/linkml/modules/slots/archive/register_id.yaml new file mode 100644 index 0000000000..0d2970a604 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/register_id.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/register_id +name: register_id_slot +title: register_id slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + register_id: + description: 'Unique identifier for this trade register. + + + Recommended format: {country_code}-{register_abbreviation} + + + Examples: + + - "NL-HR" (Netherlands Handelsregister) + + - "DE-HRB-MUC" (Germany HRB Munich) + + - "GB-CH" (UK Companies House) + + - "US-DE" (Delaware Division of Corporations) + + ' + range: string + slot_uri: schema:identifier + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/register_name.yaml b/schemas/20251121/linkml/modules/slots/archive/register_name.yaml new file mode 100644 index 0000000000..95a2dcac8a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/register_name.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/register_name +name: register_name_slot +title: register_name slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + gleif_base: https://www.gleif.org/ontology/Base/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + register_name: + description: 'Official name of the trade register in English. + + + Examples: + + - "Commercial Register" (Netherlands, Germany) + + - "Companies Register" (UK) + + - "Division of Corporations" (Delaware) + + - "Legal Affairs Bureau Commercial Registration" (Japan) + + ' + range: string + required: true + slot_uri: gleif_base:hasNameTranslatedEnglish + annotations: + custodian_types: '["*"]' + exact_mappings: + - gleif_base:hasNameTranslatedEnglish diff --git a/schemas/20251121/linkml/modules/slots/archive/register_name_local.yaml b/schemas/20251121/linkml/modules/slots/archive/register_name_local.yaml new file mode 100644 index 0000000000..97c3872066 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/register_name_local.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/register_name_local +name: register_name_local_slot +title: register_name_local slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + gleif_base: https://www.gleif.org/ontology/Base/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + register_name_local: + description: "Official name in local language.\n\nExamples:\n- \"Handelsregister\" (Netherlands, Germany)\n- \"Registre du commerce et des soci\xE9t\xE9s\" (France)\n- \"\u5546\u696D\u767B\u8A18\u7C3F\" (Japan)\n- \"\u0422\u043E\u0440\u0433\u043E\u0432\u044B\u0439 \u0440\u0435\u0435\u0441\u0442\u0440\" (Russia)\n" + range: string + slot_uri: gleif_base:hasNameLegalLocal + annotations: + custodian_types: '["*"]' + exact_mappings: + - gleif_base:hasNameLegalLocal diff --git a/schemas/20251121/linkml/modules/slots/archive/register_type.yaml b/schemas/20251121/linkml/modules/slots/archive/register_type.yaml new file mode 100644 index 0000000000..534afeacd3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/register_type.yaml @@ -0,0 +1,49 @@ +id: https://nde.nl/ontology/hc/slot/register_type +name: register_type_slot +title: register_type slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/RegisterTypeEnum +default_prefix: hc +slots: + register_type: + description: 'Type of organizations this register handles. + + + Many jurisdictions have separate registers for different entity types. + + + Values: + + - COMMERCIAL: For-profit businesses (default) + + - FOUNDATION: Non-profit foundations + + - ASSOCIATION: Voluntary associations + + - CHARITY: Registered charities + + - CULTURAL: Heritage/cultural institutions + + - MIXED: Multiple entity types in one register + + ' + range: string # uriorcurie + # range: RegisterTypeEnum + required: true + slot_uri: schema:category + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:category diff --git a/schemas/20251121/linkml/modules/slots/archive/registered_office_clause.yaml b/schemas/20251121/linkml/modules/slots/archive/registered_office_clause.yaml new file mode 100644 index 0000000000..9126c944ea --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/registered_office_clause.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/registered_office_clause +name: registered_office_clause_slot +title: Registered Office Clause Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + registered_office_clause: + description: 'The registered office clause (statutaire zetel) from the articles. + + + This is the legal domicile, not necessarily the physical address. + + ' + range: string + slot_uri: hc:registeredOfficeClause + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:registeredOfficeClause diff --git a/schemas/20251121/linkml/modules/slots/archive/registers_or_registered.yaml b/schemas/20251121/linkml/modules/slots/archive/registers_or_registered.yaml new file mode 100644 index 0000000000..b2e920e39d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/registers_or_registered.yaml @@ -0,0 +1,22 @@ +id: https://nde.nl/ontology/hc/slot/registers_or_registered +name: registers_or_registered +title: Registers or Registered +description: >- + Links a registry or catalog to the entities (datasets, items) it registers. +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcat: http://www.w3.org/ns/dcat# +default_prefix: hc +imports: +- linkml:types +slots: + registers_or_registered: + slot_uri: dcat:dataset + description: Datasets registered in this catalog/register. + range: string # uriorcurie + # range: Dataset + multivalued: true + inlined: false # Fixed invalid inline for primitive type + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/registration_authority.yaml b/schemas/20251121/linkml/modules/slots/archive/registration_authority.yaml new file mode 100644 index 0000000000..c341fe1e34 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/registration_authority.yaml @@ -0,0 +1,57 @@ +id: https://nde.nl/ontology/hc/slot/registration_authority +name: registration_authority_slot +imports: +- linkml:types +slots: + registration_authority: + slot_uri: rov:hasRegisteredOrganization + range: string # uriorcurie + # range: RegistrationAuthority + description: 'Primary registration authority for this entity. + + Links to RegistrationAuthority class. + + + Examples: Chamber of Commerce, Companies House, Charity Commission, IRS. + + + The RegistrationAuthority class includes: + + - name: Official name (e.g., "Kamer van Koophandel") + + - abbreviation: Short code (e.g., "KvK") + + - jurisdiction: Geographic jurisdiction (country/region) + + - website: Official website + + - registration_types: Types of entities they can register + + ' + comments: + - Now uses structured RegistrationAuthority class instead of simple string + - Authorities vary by jurisdiction and entity type + exact_mappings: + - rov:hasRegisteredOrganization + close_mappings: + - prov:wasAttributedTo + examples: + - value: + name: Kamer van Koophandel + abbreviation: KvK + jurisdiction: NL + website: https://www.kvk.nl + description: Dutch Chamber of Commerce + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/registration_date.yaml b/schemas/20251121/linkml/modules/slots/archive/registration_date.yaml new file mode 100644 index 0000000000..4807cdba89 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/registration_date.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/registration_date +name: registration_date_slot +imports: +- linkml:types +slots: + registration_date: + slot_uri: schema:foundingDate + range: date + description: 'DEPRECATED: Use registration_numbers[].temporal_validity instead. + + Temporal validity is now captured in RegistrationNumber class. + + ' + broad_mappings: + - dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:foundingDate +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/registration_required.yaml b/schemas/20251121/linkml/modules/slots/archive/registration_required.yaml new file mode 100644 index 0000000000..c2bd3ebe3d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/registration_required.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/registration_required +name: registration_required_slot +title: Registration Required Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + registration_required: + description: 'Whether registration is required (even for free access). + + ' + range: boolean + slot_uri: hc:registrationRequired + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:registrationRequired diff --git a/schemas/20251121/linkml/modules/slots/archive/regulated_by_scheme.yaml b/schemas/20251121/linkml/modules/slots/archive/regulated_by_scheme.yaml new file mode 100644 index 0000000000..9fe9dca3ee --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/regulated_by_scheme.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/regulated_by_scheme +name: regulated_by_scheme_slot +title: Regulated By Scheme Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + org: http://www.w3.org/ns/org# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + regulated_by_scheme: + slot_uri: hc:regulatedByScheme + range: string # uriorcurie + multivalued: true + description: "Tax or regulatory scheme(s) that govern an entity's fiscal treatment.\n\nThis generic slot connects entities (donation schemes, custodians, etc.)\nto formal regulatory frameworks that provide tax benefits, compliance\nrequirements, or legal status.\n\n**MIGRATION**: Replaces `tax_scheme` per slot_fixes.yaml revision.\nThe structured TaxScheme class provides:\n- Typed classification via TaxSchemeType hierarchy\n- Jurisdictional metadata\n- Tax benefit percentages\n- Regulatory body references\n\n**HERITAGE SECTOR CONTEXT**:\n\nHeritage institutions operate under various tax regimes:\n- Netherlands: ANBI (general), Cultural ANBI (125% deduction)\n- UK: Gift Aid, Cultural Gifts Scheme\n- USA: 501(c)(3), 501(c)(4)\n- Germany: Gemeinn\xFCtzigkeit\n- France: M\xE9c\xE9nat culturel\n\n**USAGE PATTERN**:\n\n```yaml\ndonation_scheme:\n regulated_by_scheme:\n - scheme_type: CULTURAL_ANBI\n jurisdiction: NL\n # MIGRATED 2026-01-24: deduction_percentage \u2192 offers_or_offered\ + \ (Rule 53)\n offers_or_offered:\n - has_or_had_percentage:\n percentage_value: 125\n regulatory_body: Belastingdienst\n```\n\n**ONTOLOGY ALIGNMENT**:\n\n- schema:GovernmentService - Tax schemes as government services\n- org:Organization - Regulatory bodies as organizations\n- schema:Legislation - Legal basis for schemes\n" + exact_mappings: + - schema:isRelatedTo + close_mappings: + - org:classification + - schema:legislationApplied + annotations: + replaces_slot: tax_scheme + migration_date: '2026-01-16' + specificity_score: 0.45 + specificity_rationale: 'Moderately specific - tax schemes are important for donation + + functionality but not universally needed across all custodian queries. + + ' + custodian_types: '["*"]' + custodian_types_rationale: 'All heritage custodian types may operate under tax schemes + + that affect their donation acceptance capabilities. + + ' diff --git a/schemas/20251121/linkml/modules/slots/archive/regulates_or_regulated.yaml b/schemas/20251121/linkml/modules/slots/archive/regulates_or_regulated.yaml new file mode 100644 index 0000000000..d3c7b0d74c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/regulates_or_regulated.yaml @@ -0,0 +1,80 @@ +id: https://nde.nl/ontology/hc/slot/regulates_or_regulated +name: regulates_or_regulated_slot +title: Regulates Or Regulated Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + dcterms: http://purl.org/dc/terms/ + odrl: http://www.w3.org/ns/odrl/2/ + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + regulates_or_regulated: + slot_uri: odrl:target + description: 'Entity or system that is or was regulated by a policy or control mechanism. + + + **Temporal Semantics** (RiC-O Pattern): + + The "OrRegulated" suffix follows RiC-O convention indicating + + the regulation relationship may be current or historical. + + + **Ontological Alignment**: + + - **Primary** (`slot_uri`): `odrl:target` - ODRL target of policy + + - **Related**: `prov:wasInfluencedBy` - PROV-O influence + + + **Use Cases**: + + - Climate control policy regulating climate control systems + + - Access policy regulating collection access + + - Preservation policy regulating storage conditions + + + **Cardinality**: + + Multivalued - policies may regulate multiple entities/systems. + + ' + range: string # uriorcurie + required: false + multivalued: true + inlined: false # Fixed invalid inline for primitive type + inlined_as_list: false # Fixed invalid inline for primitive type + related_mappings: + - prov:wasInfluencedBy + annotations: + rico_naming_convention: 'Follows RiC-O "OrRegulated" pattern for temporal predicates. + + See Rule 39: Slot Naming Convention (RiC-O Style) + + ' + created_for: climate_control_type migration + migration_date: '2026-01-19' + custodian_types: '["*"]' + custodian_types_rationale: Regulation relationships apply to all heritage types. + specificity_score: 0.4 + specificity_rationale: Moderately specialized slot for policy-target relationships. + comments: + - Links policies to what they regulate + - Maps to odrl:target for rights/rules targets + - 'RiC-O naming: OrRegulated indicates potentially historical' + examples: + - value: hc:ClimateControl/warehouse-hvac + description: Climate control system regulated by policy + exact_mappings: + - odrl:target diff --git a/schemas/20251121/linkml/modules/slots/archive/regulatory_authority.yaml b/schemas/20251121/linkml/modules/slots/archive/regulatory_authority.yaml new file mode 100644 index 0000000000..d6d9f66bf9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/regulatory_authority.yaml @@ -0,0 +1,68 @@ +id: https://nde.nl/ontology/hc/slot/regulatory_authority +name: regulatory_authority_slot +title: Regulatory Authority Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + regulatory_authority: + description: 'Boolean indicating whether the institution has legal enforcement powers + + related to cultural heritage (e.g., issuing permits, enforcing heritage law, + + designating protected monuments). + + + **TRUE when institution can**: + + - Issue heritage protection designations (monument listing) + + - Grant or deny building/renovation permits for heritage sites + + - Enforce heritage protection laws + + - Levy fines for heritage violations + + - Issue export licenses for cultural objects + + + **FALSE when institution**: + + - Provides only advisory services (no legal authority) + + - Operates grant programs (funding without enforcement) + + - Manages collections without regulatory role + + + **Examples**: + + - TRUE: Historic England (building consent powers), Austrian Bundesdenkmalamt + + - FALSE: Arts Council England (funding only), NDE (aggregation platform) + + + **Ontology Alignment**: + + - Maps to `org:hasUnit` with specialized regulatory role + + - Related to `cpov:PublicOrganisation` governance structures + + ' + range: boolean + slot_uri: hc:regulatoryAuthority + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:regulatoryAuthority diff --git a/schemas/20251121/linkml/modules/slots/archive/regulatory_body.yaml b/schemas/20251121/linkml/modules/slots/archive/regulatory_body.yaml new file mode 100644 index 0000000000..8d6cbf76fb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/regulatory_body.yaml @@ -0,0 +1,58 @@ +id: https://nde.nl/ontology/hc/slot/regulatory_body +name: regulatory_body_slot +title: Regulatory Body Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + org: http://www.w3.org/ns/org# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + regulatory_body: + slot_uri: schema:provider + description: 'Name of the government agency or regulatory body administering a scheme, + + license, or registration. + + + **EXAMPLES**: + + - Belastingdienst (Dutch Tax Authority) + + - HMRC (UK tax authority) + + - IRS (US Internal Revenue Service) + + - RCE (Rijksdienst voor het Cultureel Erfgoed) + + - Charity Commission (UK) + + + **USAGE**: + + Used with TaxScheme, AccreditationStatus, and similar classes + + to document which authority administers the relevant program. + + ' + range: string + exact_mappings: + - schema:provider + close_mappings: + - org:Organization + annotations: + custodian_types: '["*"]' + custodian_types_rationale: All heritage custodians interact with regulatory bodies + specificity_score: 0.45 + specificity_rationale: Relevant for compliance and governance queries + comments: + - String value with name of regulatory body + - Created 2026-01-17 for TaxScheme class per Rule 48 diff --git a/schemas/20251121/linkml/modules/slots/archive/related.yaml b/schemas/20251121/linkml/modules/slots/archive/related.yaml new file mode 100644 index 0000000000..9ed87c8bb8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/related.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/related +name: related_slot +title: Related Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + related: + slot_uri: dcterms:spatial + description: Related geographic areas (e.g., for WWII - Germany, Japan) + range: string + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:spatial diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_administration.yaml b/schemas/20251121/linkml/modules/slots/archive/related_agenda.yaml similarity index 61% rename from schemas/20251121/linkml/modules/slots/has_or_had_administration.yaml rename to schemas/20251121/linkml/modules/slots/archive/related_agenda.yaml index ce74d98d90..e49bf9893e 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_administration.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/related_agenda.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_administration -name: has_or_had_administration -title: has_or_had_administration +id: https://nde.nl/ontology/hc/slot/related_agenda +name: related_agenda_slot +title: Related Agendas Slot prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -12,18 +12,21 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc imports: - linkml:types +default_prefix: hc slots: - has_or_had_administration: - name: has_or_had_administration - description: The administration that manages or managed the entity. - slot_uri: org:hasUnit + related_agenda: range: string # uriorcurie - # range: Administration multivalued: true + description: 'Related agendas - predecessors, successors, or complementary frameworks. + + + Helps understand the policy landscape and evolution of priorities. + + ' + slot_uri: hc:relatedAgendas annotations: custodian_types: '["*"]' exact_mappings: - - org:hasUnit + - hc:relatedAgendas diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_hyponym.yaml b/schemas/20251121/linkml/modules/slots/archive/related_call.yaml similarity index 65% rename from schemas/20251121/linkml/modules/slots/has_or_had_hyponym.yaml rename to schemas/20251121/linkml/modules/slots/archive/related_call.yaml index 2929c42b92..f6d09efb60 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_hyponym.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/related_call.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_hyponym -name: has_or_had_hyponym -title: has_or_had_hyponym +id: https://nde.nl/ontology/hc/slot/related_call +name: related_call_slot +title: Related Calls Slot prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -12,19 +12,16 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc imports: - linkml:types +default_prefix: hc slots: - has_or_had_hyponym: - name: has_or_had_hyponym - title: has_or_had_hyponym - description: Narrower term or instance. - slot_uri: skos:narrower + related_call: range: string # uriorcurie - # range: Hyponym multivalued: true + description: Related or predecessor/successor calls + slot_uri: hc:relatedCalls annotations: custodian_types: '["*"]' exact_mappings: - - skos:narrower + - hc:relatedCalls diff --git a/schemas/20251121/linkml/modules/slots/archive/related_concept.yaml b/schemas/20251121/linkml/modules/slots/archive/related_concept.yaml new file mode 100644 index 0000000000..fa29e0b5c0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/related_concept.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/related_concept +name: related_concept +title: Related Concept Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + related_concept: + slot_uri: skos:related + description: 'SKOS related concepts (associative, non-hierarchical). + + Used for concepts that are related but not in a parent-child relationship. + + ' + range: string # uriorcurie + multivalued: true + examples: + - value: wd:Q1065413 + description: Institutional repository (related but different function) + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:related diff --git a/schemas/20251121/linkml/modules/slots/archive/related_loan.yaml b/schemas/20251121/linkml/modules/slots/archive/related_loan.yaml new file mode 100644 index 0000000000..a48a3edc02 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/related_loan.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/related_loan +name: related_loan_slot +title: Related Loan Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + related_loan: + description: 'Loan associated with this condition record (for loan condition checks). + + ' + range: string # uriorcurie + slot_uri: hc:relatedLoan + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:relatedLoan diff --git a/schemas/20251121/linkml/modules/slots/archive/related_project.yaml b/schemas/20251121/linkml/modules/slots/archive/related_project.yaml new file mode 100644 index 0000000000..3060464498 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/related_project.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/related_project +name: related_project_slot +title: Related Project Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + related_project: + description: "Related projects (predecessors, successors, or parallel initiatives).\n\nUse for:\n- Predecessor: Previous year's version (Versnellen 2023 \u2192 Versnellen 2024)\n- Successor: Next phase of multi-year program\n- Parallel: Related but independent initiatives\n\nURI references to other Project entities.\n" + range: string + slot_uri: hc:relatedProject + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:relatedProject diff --git a/schemas/20251121/linkml/modules/slots/archive/related_type_name.yaml b/schemas/20251121/linkml/modules/slots/archive/related_type_name.yaml new file mode 100644 index 0000000000..35dd1ab353 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/related_type_name.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/related_type_name +name: related_type_name-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + related_type_name: + slot_uri: schema:name + description: Name of the related class + range: string + required: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:name diff --git a/schemas/20251121/linkml/modules/slots/archive/related_type_note.yaml b/schemas/20251121/linkml/modules/slots/archive/related_type_note.yaml new file mode 100644 index 0000000000..f3733fb417 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/related_type_note.yaml @@ -0,0 +1,25 @@ +id: https://nde.nl/ontology/hc/slot/related_type_note +name: related_type_note-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + related_type_note: + slot_uri: dcterms:description + description: Explanation of how this type relates + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:description diff --git a/schemas/20251121/linkml/modules/slots/archive/related_type_relationship.yaml b/schemas/20251121/linkml/modules/slots/archive/related_type_relationship.yaml new file mode 100644 index 0000000000..0ef30c9726 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/related_type_relationship.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/related_type_relationship +name: related_type_relationship-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + related_type_relationship: + slot_uri: skos:note + description: 'Nature of the relationship (e.g., "broader", "narrower", "related", "contrast") + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:note diff --git a/schemas/20251121/linkml/modules/slots/archive/related_type_wikidata.yaml b/schemas/20251121/linkml/modules/slots/archive/related_type_wikidata.yaml new file mode 100644 index 0000000000..fede5aaf83 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/related_type_wikidata.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/related_type_wikidata +name: related_type_wikidata-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + related_type_wikidata: + slot_uri: hc:wikidataId + description: Wikidata Q-number for the related type + range: string + pattern: ^Q[0-9]+$ + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:wikidataId diff --git a/schemas/20251121/linkml/modules/slots/archive/related_types.yaml b/schemas/20251121/linkml/modules/slots/archive/related_types.yaml new file mode 100644 index 0000000000..6c09b0b76b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/related_types.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/related_types +name: related_types-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + related_types: + slot_uri: skos:related + description: 'Related heritage institution types with context. + + Documents associations with other classes in the ontology. + + + **Migrated from**: `**Related Types**:` sections. + + ' + range: string # uriorcurie + # range: RelatedType + multivalued: true + inlined_as_list: false # Fixed invalid inline for primitive type + annotations: + source_section: '**Related Types**:' + custodian_types: '["*"]' + exact_mappings: + - skos:related diff --git a/schemas/20251121/linkml/modules/slots/archive/relationship.yaml b/schemas/20251121/linkml/modules/slots/archive/relationship.yaml new file mode 100644 index 0000000000..ffdb283f31 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/relationship.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/relationship +name: relationship_slot +title: Relationship Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/RelationshipTypeEnum +default_prefix: hc +slots: + relationship: + slot_uri: dcterms:relation + description: Type of relationship + range: string # uriorcurie + # range: RelationshipTypeEnum + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:relation diff --git a/schemas/20251121/linkml/modules/slots/archive/religion.yaml b/schemas/20251121/linkml/modules/slots/archive/religion.yaml new file mode 100644 index 0000000000..650f8a2584 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/religion.yaml @@ -0,0 +1,217 @@ +id: https://nde.nl/ontology/hc/slot/religion +name: religion_slot +title: Religion Slot +prefixes: + pico: https://personsincontext.org/model# + schema: http://schema.org/ + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + religion: + slot_uri: pico:hasReligion + description: 'The religious conviction of a person as mentioned in the source. + + + =========================================================================== + + PiCo ONTOLOGY ALIGNMENT (pico.ttl lines 558-567) + + =========================================================================== + + + Per PiCo (Persons in Context) ontology: + + - Records religion as mentioned on the source + + - Can be literal string or URI to thesaurus + + - Part of PersonObservation (evidence from source) + + + =========================================================================== + + SOURCE PRESERVATION + + =========================================================================== + + + Record the religious affiliation exactly as stated in the source: + + - Historical terms: "Nederduits Gereformeerd" (Dutch Reformed) + + - Period-specific: "of the Roman persuasion" + + - Vernacular forms: "Rooms-Katholiek" (Dutch for Roman Catholic) + + + =========================================================================== + + THESAURUS LINKING + + =========================================================================== + + + When possible, link to thesauri for religions: + + + **Wikidata** (recommended): + + - Q5043 (Christianity) + + - Q432 (Islam) + + - Q9268 (Judaism) + + - Q748 (Buddhism) + + - Q9089 (Hinduism) + + - Q35032 (Protestantism) + + - Q1841 (Catholicism) + + - Q170208 (Dutch Reformed Church) + + + **AAT** (Getty Art & Architecture Thesaurus): + + - For religious contexts in art history + + + =========================================================================== + + HERITAGE CONTEXT + + =========================================================================== + + + Religion is particularly relevant for heritage institutions when: + + - Holy sites (H type): Churches, temples, mosques managing collections + + - Religious archives: Parish records, ecclesiastical documents + + - Art history: Religious patronage, iconography research + + - Genealogy: Baptism, marriage, burial records + + - Provenance: Persecution, confiscation, restitution research + + + =========================================================================== + + EXAMPLES + + =========================================================================== + + + Simple literal: + + ```yaml + + religion: "Roman Catholic" + + ``` + + + Historical Dutch source: + + ```yaml + + religion: "Nederduits Gereformeerd" + + ``` + + + With thesaurus URI: + + ```yaml + + religion: "http://www.wikidata.org/entity/Q170208" # Dutch Reformed + + ``` + + + Combined literal and URI: + + ```yaml + + religion: "Nederduits Gereformeerd" + + religion_uri: "http://www.wikidata.org/entity/Q170208" + + ``` + + + =========================================================================== + + SENSITIVITY CONSIDERATIONS + + =========================================================================== + + + Religious data is sensitive personal information: + + - Only record when relevant to heritage/archival context + + - Follow GDPR and local privacy regulations + + - Historical records (pre-1900) generally less restricted + + - Living persons: Only use publicly available information + + + =========================================================================== + + TEMPORAL ASPECTS + + =========================================================================== + + + A person''s religion may change over time: + + - Conversion (voluntary or forced) + + - Apostasy + + - Multiple affiliations + + + Use separate PersonObservations for different time periods, + + each with its own source and observation date. + + + =========================================================================== + + ONTOLOGY MAPPINGS + + =========================================================================== + + + - PiCo: pico:hasReligion (primary) + + - Wikidata: P140 (religion or worldview) + + ' + range: string + required: false + exact_mappings: + - pico:hasReligion + comments: + - Record religion as mentioned in source + - Prefer Wikidata links for standardization + - Sensitive data - follow privacy regulations + - Use separate observations for temporal changes + - Wikidata property P140 is semantically equivalent but is an identifier, not an RDF predicate + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/religious_function.yaml b/schemas/20251121/linkml/modules/slots/archive/religious_function.yaml new file mode 100644 index 0000000000..00d4be9e30 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/religious_function.yaml @@ -0,0 +1,61 @@ +id: https://nde.nl/ontology/hc/slot/religious_function +name: religious_function_slot +title: Religious Function Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + religious_function: + description: 'How heritage collections support the religious mission of the site. + + + Describes operational integration of collections with religious practice: + + - **Liturgical support**: Active use in worship services + + - **Theological education**: Resources for clergy training + + - **Pastoral care**: Materials supporting ministry + + - **Canon law**: Legal documentation for Church governance + + - **Community identity**: Records of parish/congregation history + + - **Spiritual formation**: Devotional texts and objects + + - **Pilgrimage**: Relics and sites for religious tourism + + - **Interfaith dialogue**: Resources for ecumenical work + + + Distinguishes religious heritage from secular museum collections. + + + Examples: + + - "Support papal governance, Document Church history, Preserve canon law" + + - "Clergy education, Sermon preparation, Liturgical reference" + + - "Torah study, Bar/Bat Mitzvah preparation, Community genealogy" + + - "Monastic devotion, Manuscript illumination, Spiritual reading" + + ' + range: string + slot_uri: hc:religiousFunction + close_mappings: + - schema:description + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/religious_tradition.yaml b/schemas/20251121/linkml/modules/slots/archive/religious_tradition.yaml new file mode 100644 index 0000000000..0f4502e5cc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/religious_tradition.yaml @@ -0,0 +1,63 @@ +id: https://nde.nl/ontology/hc/slot/religious_tradition +name: religious_tradition_slot +title: Religious Tradition Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + religious_tradition: + description: 'Religious tradition or denomination of the site. + + + Specifies faith community and theological tradition: + + - Major traditions: Christianity, Islam, Judaism, Buddhism, Hinduism, Sikhism, etc. + + - Christian denominations: Roman Catholic, Orthodox, Protestant, Anglican, etc. + + - Islamic traditions: Sunni, Shia, Sufi, etc. + + - Buddhist traditions: Theravada, Mahayana, Vajrayana, Zen, etc. + + - Hindu traditions: Vaishnavism, Shaivism, Shaktism, etc. + + - Indigenous/Traditional religions + + - Interfaith or multi-tradition sites + + + Important for understanding collection context and sensitivity. + + + Examples: + + - "Roman Catholic Christianity" + + - "Sunni Islam, Hanafi school" + + - "Theravada Buddhism" + + - "Orthodox Judaism, Ashkenazi tradition" + + - "Hindu, Shaivite tradition" + + ' + range: string + slot_uri: hc:religiousTradition + comments: + - schema:religion does not exist in Schema.org - use hc namespace + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:religiousTradition diff --git a/schemas/20251121/linkml/modules/slots/archive/remediation_note.yaml b/schemas/20251121/linkml/modules/slots/archive/remediation_note.yaml new file mode 100644 index 0000000000..61b71238fd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/remediation_note.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/remediation_note +name: remediation_note_slot +title: Remediation Notes Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + remediation_note: + description: 'Notes on required or recommended remediation actions. + + Maps to skos:note for action/recommendation documentation.' + range: string + slot_uri: skos:note + close_mappings: + - dcterms:description + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/remediation_required.yaml b/schemas/20251121/linkml/modules/slots/archive/remediation_required.yaml new file mode 100644 index 0000000000..eb6cf91bc8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/remediation_required.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/remediation_required +name: remediation_required_slot +title: Remediation Required Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + remediation_required: + description: 'Whether remediation action is required based on this observation. + + + TRUE = Issues found that require corrective action. + + FALSE = No immediate action needed. + + ' + range: boolean + slot_uri: hc:remediationRequired + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:remediationRequired diff --git a/schemas/20251121/linkml/modules/slots/archive/repertoire.yaml b/schemas/20251121/linkml/modules/slots/archive/repertoire.yaml new file mode 100644 index 0000000000..e2f1208ace --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/repertoire.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/repertoire +name: repertoire_slot +title: Repertoire Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + repertoire: + description: 'Specific pieces, songs, dances, or works performed. + + ' + range: string + multivalued: true + slot_uri: schema:workPerformed + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:workPerformed diff --git a/schemas/20251121/linkml/modules/slots/archive/replaces_primary_location.yaml b/schemas/20251121/linkml/modules/slots/archive/replaces_primary_location.yaml new file mode 100644 index 0000000000..4aee9371f8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/replaces_primary_location.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/replaces_primary_location +name: replaces_primary_location_slot +title: Replaces Primary Location Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + replaces_primary_location: + slot_uri: hc:replacesPrimaryLocation + description: 'Whether this temporary location replaces the primary/main location. + + + TRUE: Primary location closed, this serves as main access point + + FALSE: Supplementary to primary location (e.g., pop-up) + + + Important for user communication - where to direct visitors. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:replacesPrimaryLocation diff --git a/schemas/20251121/linkml/modules/slots/archive/report_document.yaml b/schemas/20251121/linkml/modules/slots/archive/report_document.yaml new file mode 100644 index 0000000000..7488637a8b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/report_document.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/report_document +name: report_document_slot +title: Report Document Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + report_document: + description: 'Bibliographic citation for published conservation report or article. + + ' + range: string + slot_uri: dcterms:bibliographicCitation + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:bibliographicCitation diff --git a/schemas/20251121/linkml/modules/slots/archive/report_url.yaml b/schemas/20251121/linkml/modules/slots/archive/report_url.yaml new file mode 100644 index 0000000000..c362dcb538 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/report_url.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/report_url +name: report_url_slot +title: Report Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + report_url: + description: 'URL to full conservation report (PDF or web page). + + ' + range: uri + slot_uri: schema:url + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:url diff --git a/schemas/20251121/linkml/modules/slots/archive/reported_date.yaml b/schemas/20251121/linkml/modules/slots/archive/reported_date.yaml new file mode 100644 index 0000000000..2765f0e713 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/reported_date.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/reported_date +name: reported_date_slot +title: Reported Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + reported_date: + description: Date when destruction/damage was reported + range: date + slot_uri: dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:date diff --git a/schemas/20251121/linkml/modules/slots/archive/reporting_period_end.yaml b/schemas/20251121/linkml/modules/slots/archive/reporting_period_end.yaml new file mode 100644 index 0000000000..0f3aac5608 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/reporting_period_end.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/reporting_period_end +name: reporting_period_end_slot +title: Reporting Period End Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + reporting_period_end: + description: 'End date of reporting period covered. + + ' + range: date + slot_uri: hc:reportingPeriodEnd + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:reportingPeriodEnd diff --git a/schemas/20251121/linkml/modules/slots/archive/reporting_period_start.yaml b/schemas/20251121/linkml/modules/slots/archive/reporting_period_start.yaml new file mode 100644 index 0000000000..f2fdba533b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/reporting_period_start.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/reporting_period_start +name: reporting_period_start_slot +title: Reporting Period Start Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + reporting_period_start: + description: 'Start date of reporting period covered. + + ' + range: date + slot_uri: hc:reportingPeriodStart + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:reportingPeriodStart diff --git a/schemas/20251121/linkml/modules/slots/archive/repository_software.yaml b/schemas/20251121/linkml/modules/slots/archive/repository_software.yaml new file mode 100644 index 0000000000..5a2330eeb0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/repository_software.yaml @@ -0,0 +1,48 @@ +id: https://nde.nl/ontology/hc/slot/repository_software +name: repository_software_slot +title: Repository Software Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + repository_software: + description: 'Repository or content management software powering this platform. + + + DOAP: repository for software/system identification. + + (DOAP = Description of a Project, W3C vocabulary for software projects) + + + Examples: + + - "DSpace 7.x" + + - "Fedora Commons 6.x" + + - "CollectiveAccess" + + - "ResourceSpace" + + - "Omeka S" + + - "Custom-built" + + ' + range: string + slot_uri: hc:repositorySoftware + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:repositorySoftware diff --git a/schemas/20251121/linkml/modules/slots/archive/repository_url.yaml b/schemas/20251121/linkml/modules/slots/archive/repository_url.yaml new file mode 100644 index 0000000000..0cf86a9aba --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/repository_url.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/repository_url +name: repository_url_slot +title: Repository Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + doap: http://usefulinc.com/ns/doap# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + repository_url: + description: 'Source code repository URL (for open-source CMS). Mapped to schema:codeRepository as the specific Schema.org property for source code locations. + + + Typically GitHub, GitLab, or similar. + + ' + range: uri + slot_uri: schema:codeRepository + close_mappings: + - doap:repository + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/represents_or_represented.yaml b/schemas/20251121/linkml/modules/slots/archive/represents_or_represented.yaml new file mode 100644 index 0000000000..256591710b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/represents_or_represented.yaml @@ -0,0 +1,16 @@ +id: https://nde.nl/ontology/hc/slot/represents_or_represented +name: represents_or_represented +title: represents_or_represented +imports: +- linkml:types +slots: + represents_or_represented: + description: Represents an artist or entity. + slot_uri: schema:sponsor + range: string # uriorcurie + # range: Artist + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:sponsor diff --git a/schemas/20251121/linkml/modules/slots/archive/request_date.yaml b/schemas/20251121/linkml/modules/slots/archive/request_date.yaml new file mode 100644 index 0000000000..5d84cf4740 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/request_date.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/request_date +name: request_date_slot +title: Request Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + request_date: + description: 'Date the loan request was submitted. + + ' + range: date + slot_uri: schema:dateCreated + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:dateCreated diff --git a/schemas/20251121/linkml/modules/slots/archive/request_id.yaml b/schemas/20251121/linkml/modules/slots/archive/request_id.yaml new file mode 100644 index 0000000000..209809bd04 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/request_id.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/request_id +name: request_id_slot +title: request_id slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dct: http://purl.org/dc/terms/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + request_id: + description: 'Unique request ID from the LLM provider API (for tracing/debugging). + + Enables correlation with provider logs for troubleshooting. + + ' + slot_uri: dct:identifier + range: string + examples: + - value: exa_12345678-abcd-efgh-ijkl-mnopqrstuv + description: Exa API request ID + annotations: + custodian_types: '["*"]' + exact_mappings: + - dct:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/requirement_id.yaml b/schemas/20251121/linkml/modules/slots/archive/requirement_id.yaml new file mode 100644 index 0000000000..0996747476 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requirement_id.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/requirement_id +name: requirement_id_slot +title: Requirement Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + requirement_id: + identifier: true + range: string # uriorcurie + description: 'Unique identifier for this funding requirement. + + Format: https://nde.nl/ontology/hc/requirement/{call-slug}/{requirement-slug} + + ' + slot_uri: hc:requirementId + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:requirementId diff --git a/schemas/20251121/linkml/modules/slots/archive/requirement_text.yaml b/schemas/20251121/linkml/modules/slots/archive/requirement_text.yaml new file mode 100644 index 0000000000..b2e5ab7528 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requirement_text.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/requirement_text +name: requirement_text_slot +title: Requirement Text Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + requirement_text: + range: string + description: 'Human-readable text of the requirement as stated in the source. + + Should preserve original wording for accuracy and citation. + + ' + slot_uri: hc:requirementText + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:requirementText diff --git a/schemas/20251121/linkml/modules/slots/archive/requirement_type.yaml b/schemas/20251121/linkml/modules/slots/archive/requirement_type.yaml new file mode 100644 index 0000000000..832840d924 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requirement_type.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/requirement_type +name: requirement_type_slot +title: Requirement Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/FundingRequirementTypeEnum +default_prefix: hc +slots: + requirement_type: + range: string # uriorcurie + # range: FundingRequirementTypeEnum + description: 'Category of requirement from FundingRequirementTypeEnum. + + + Enables filtering and matching of requirements across calls. + + See enum documentation for full category list. + + ' + slot_uri: hc:requirementType + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:requirementType diff --git a/schemas/20251121/linkml/modules/slots/archive/requirement_unit.yaml b/schemas/20251121/linkml/modules/slots/archive/requirement_unit.yaml new file mode 100644 index 0000000000..a6e8befb99 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requirement_unit.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/requirement_unit +name: requirement_unit_slot +title: Requirement Unit Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + requirement_unit: + range: string + description: 'Unit of measurement for requirement_value. + + Enables interpretation of numeric values. + + ' + slot_uri: hc:requirementUnit + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:requirementUnit diff --git a/schemas/20251121/linkml/modules/slots/archive/requirement_value.yaml b/schemas/20251121/linkml/modules/slots/archive/requirement_value.yaml new file mode 100644 index 0000000000..0f619bc4ad --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requirement_value.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/requirement_value +name: requirement_value_slot +title: Requirement Value Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + requirement_value: + range: string + description: 'Machine-readable value extracted from requirement. + + + Used with requirement_unit for structured queries. + + Format depends on requirement type: + + - Numeric: "3", "25", "500000" + + - Boolean: "true", "false" + + - Coded: "eu-member-states", "open-access" + + ' + slot_uri: hc:requirementValue + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:requirementValue diff --git a/schemas/20251121/linkml/modules/slots/archive/requires_appointment.yaml b/schemas/20251121/linkml/modules/slots/archive/requires_appointment.yaml new file mode 100644 index 0000000000..6045134639 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requires_appointment.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/requires-appointment +name: requires_appointment_slot +title: requires_appointment slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + requires_appointment: + slot_uri: schema:reservationRequired + description: 'Whether researchers must book an appointment in advance. + + + Special collections rooms often require appointments. + + ' + range: boolean + examples: + - value: true + description: Appointment required + - value: false + description: Walk-in access + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:reservationRequired diff --git a/schemas/20251121/linkml/modules/slots/archive/requires_articles_at_registration.yaml b/schemas/20251121/linkml/modules/slots/archive/requires_articles_at_registration.yaml new file mode 100644 index 0000000000..2811a9bd79 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requires_articles_at_registration.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/requires_articles_at_registration +name: requires_articles_at_registration_slot +title: Requires Articles At Registration Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + requires_articles_at_registration: + description: "Whether this organization's legal form requires articles at registration.\n\n**Derived from LegalForm and Jurisdiction**.\n\nIf TRUE:\n- Articles MUST exist before organization exists\n- PRE_EXISTENCE stage applies\n- Articles can NEVER have been CustodianAdministration initially\n\nIf FALSE:\n- Articles may be created after organization exists\n- Normal lifecycle (ACTIVE \u2192 INACTIVE \u2192 HERITAGE) applies\n\n**Examples**:\n- Dutch Stichting: TRUE (notarial deed required)\n- Dutch VOF: FALSE (partnership agreement, not \"articles\")\n- UK CIO: TRUE (constitution required)\n" + range: boolean + slot_uri: hc:requiresArticlesAtRegistration + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:requiresArticlesAtRegistration diff --git a/schemas/20251121/linkml/modules/slots/archive/requires_dark_storage.yaml b/schemas/20251121/linkml/modules/slots/archive/requires_dark_storage.yaml new file mode 100644 index 0000000000..62f0d1e102 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requires_dark_storage.yaml @@ -0,0 +1,97 @@ +id: https://nde.nl/ontology/hc/slot/requires_dark_storage +name: requires_dark_storage_slot +title: Requires Dark Storage Slot +description: 'Boolean slot indicating whether dark (zero light) storage is required. + + + **ISO STANDARD REFERENCE VALUES**: + + - ISO 18911:2010: Dark storage mandatory for photographic film + + - ISO 18920:2011: Dark storage for extended-term photo preservation + + - BS 4971:2017: 0 lux for closed storage areas + + + **PRESERVATION CONTEXT**: + + Dark storage (0 lux) is essential for highly photosensitive materials that + + degrade with any light exposure. Materials are accessed only when needed, + + minimizing cumulative light damage. Reading room or digitization access + + provides controlled exposure alternatives. + + ' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + sosa: http://www.w3.org/ns/sosa/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + wd: http://www.wikidata.org/entity/ + schema: http://schema.org/ + brick: https://brickschema.org/schema/Brick# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + requires_dark_storage: + description: 'Whether dark (zero light) storage is required for this environmental zone. + + + Based on ISO preservation standards: + + - Film storage (ISO 18911): Dark storage mandatory + + - Photographic (ISO 18920): Dark storage for extended-term + + - UK Archives (BS 4971): 0 lux for closed storage + + + Dark storage essential for: + + - Film negatives (especially color and early nitrate/acetate) + + - Daguerreotypes and early photographic processes + + - Cyanotypes and blueprint materials + + - Some magnetic media (tape) + + - Highly fugitive inks and dyes + + + Access provided through reading rooms or digitization requests. + + Cumulative light damage is completely prevented. + + ' + range: boolean + slot_uri: hc:requiresDarkStorage + close_mappings: + - sosa:ObservableProperty + - crm:E13_Attribute_Assignment + related_mappings: + - wd:Q194411 + - schema:additionalProperty + see_also: + - https://www.iso.org/standard/46602.html + - https://www.iso.org/standard/46603.html + examples: + - value: 'true' + description: Cold storage for film negatives requires complete darkness + - value: 'false' + description: General collection storage allows controlled lighting access + annotations: + iso_reference: ISO 18911:2010, ISO 18920:2011, BS 4971:2017 + preservation_parameter: 'true' + light_level: 0 lux + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/requires_declaration.yaml b/schemas/20251121/linkml/modules/slots/archive/requires_declaration.yaml new file mode 100644 index 0000000000..ff2ce7cf2b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requires_declaration.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/requires_declaration +name: requires_declaration_slot +title: Requires Declaration Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + requires_declaration: + slot_uri: hc:requires_declaration + range: string + description: 'Requires Declaration for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:requires_declaration diff --git a/schemas/20251121/linkml/modules/slots/archive/requires_dust_free.yaml b/schemas/20251121/linkml/modules/slots/archive/requires_dust_free.yaml new file mode 100644 index 0000000000..e7dbdb6bd7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requires_dust_free.yaml @@ -0,0 +1,79 @@ +id: https://nde.nl/ontology/hc/slot/requires_dust_free +name: requires_dust_free_slot +title: Requires Dust-Free Environment Slot +description: "Boolean slot indicating whether a dust-free or dust-controlled environment is required.\n\n**ISO STANDARD REFERENCE VALUES**:\n- ISO 18923:2000 (Magnetic tape): Dust-free environment mandatory\n- ISO 18938:2014 (Optical media): Cleanroom-class environment for masters\n- ISO 11799:2015 (Archives): Dust control measures required\n\n**CLEANLINESS CLASSES** (ISO 14644-1):\n- Class 8 (100,000 particles/m\xB3): Typical archive/museum\n- Class 7 (10,000 particles/m\xB3): AV media storage\n- Class 5 (100 particles/m\xB3): Digital master storage\n\n**PRESERVATION CONTEXT**:\nDust particles cause abrasion, embed in surfaces, attract pests, and carry\nmold spores. Magnetic media and optical discs are particularly vulnerable\nas particles cause read errors and physical damage during playback.\n" +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + sosa: http://www.w3.org/ns/sosa/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + wd: http://www.wikidata.org/entity/ + schema: http://schema.org/ + brick: https://brickschema.org/schema/Brick# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + requires_dust_free: + description: 'Whether a dust-free or dust-controlled environment is required for this zone. + + + Based on ISO preservation standards: + + - Magnetic tape (ISO 18923): Dust-free mandatory + + - Optical media (ISO 18938): Cleanroom for masters + + - Archives (ISO 11799): Dust control required + + + ISO 14644-1 Cleanliness Classes: + + - Class 8: General archive/museum (HEPA filtered) + + - Class 7: AV media storage (positive pressure) + + - Class 5: Digital master storage (cleanroom) + + + Dust-free essential for: + + - Magnetic tapes and audiovisual media + + - Optical discs (CD, DVD, Blu-ray) + + - Fine art and paintings (surface abrasion) + + - Photographic materials (scratches, embedded particles) + + ' + range: boolean + slot_uri: hc:requiresDustFree + close_mappings: + - sosa:ObservableProperty + - crm:E13_Attribute_Assignment + - brick:Air_Quality_Sensor + related_mappings: + - wd:Q37828 + - schema:additionalProperty + see_also: + - https://www.iso.org/standard/31684.html + - https://www.iso.org/standard/53464.html + - https://www.iso.org/standard/14644-1.html + examples: + - value: 'true' + description: Audiovisual storage requires dust-free environment (HEPA filtered) + - value: 'false' + description: Archival boxes provide adequate dust protection for paper + annotations: + iso_reference: ISO 18923:2000, ISO 18938:2014, ISO 11799:2015, ISO 14644-1 + preservation_parameter: 'true' + cleanliness_note: ISO 14644-1 Class 7-8 typical for heritage storage + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/requires_esd_protection.yaml b/schemas/20251121/linkml/modules/slots/archive/requires_esd_protection.yaml new file mode 100644 index 0000000000..5bbfa982bb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requires_esd_protection.yaml @@ -0,0 +1,114 @@ +id: https://nde.nl/ontology/hc/slot/requires_esd_protection +name: requires_esd_protection_slot +title: Requires ESD Protection Slot +description: 'Boolean slot indicating whether electrostatic discharge (ESD) protection is required. + + + **ISO STANDARD REFERENCE VALUES**: + + - ISO 18923:2000 (Magnetic tape): ESD protection required + + - ISO 18938:2014 (Optical media): ESD-safe handling mandatory + + - IEC 61340-5-1: ESD control program requirements + + + **ESD PROTECTION MEASURES**: + + - Grounded flooring (conductive or dissipative) + + - Humidity control (40-60% RH reduces static) + + - ESD-safe packaging and handling equipment + + - Personnel grounding (wrist straps, heel straps) + + + **PRESERVATION CONTEXT**: + + Electrostatic discharge can permanently damage electronic storage media and + + erase magnetic recordings. Even small discharges (below human perception) + + can cause data loss. ESD protection is critical for digital preservation + + and born-digital heritage collections. + + ' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + sosa: http://www.w3.org/ns/sosa/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + wd: http://www.wikidata.org/entity/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + requires_esd_protection: + description: 'Whether electrostatic discharge (ESD) protection is required for this zone. + + + Based on ISO/IEC standards: + + - Magnetic tape (ISO 18923): ESD protection required + + - Optical media (ISO 18938): ESD-safe handling mandatory + + - Electronics (IEC 61340-5-1): ESD control program + + + ESD protection measures include: + + - Conductive/dissipative flooring + + - Humidity control (40-60% RH reduces static) + + - ESD-safe packaging and equipment + + - Personnel grounding (wrist straps) + + + ESD protection essential for: + + - Hard drives and SSDs + + - LTO and other magnetic tapes + + - Optical media (CD, DVD, Blu-ray masters) + + - Electronic components and circuit boards + + - Born-digital heritage collections + + ' + range: boolean + slot_uri: hc:requiresESDProtection + close_mappings: + - sosa:ObservableProperty + - crm:E13_Attribute_Assignment + related_mappings: + - wd:Q179161 + - schema:additionalProperty + see_also: + - https://www.iso.org/standard/31684.html + - https://www.iso.org/standard/53464.html + - https://www.iec.ch/esd + examples: + - value: 'true' + description: Digital media storage requires ESD protection + - value: 'false' + description: Paper archives do not require ESD protection + annotations: + iso_reference: ISO 18923:2000, ISO 18938:2014, IEC 61340-5-1 + preservation_parameter: 'true' + humidity_note: Maintain 40-60% RH to reduce static buildup + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/requires_or_required.yaml b/schemas/20251121/linkml/modules/slots/archive/requires_or_required.yaml new file mode 100644 index 0000000000..034d7c7dc1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requires_or_required.yaml @@ -0,0 +1,57 @@ +id: https://nde.nl/ontology/hc/slot/requires-or-required +name: requires_or_required_slot +title: Requires or Required Slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + rico: https://www.ica.org/standards/RiC/ontology# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + requires_or_required: + slot_uri: rico:requiresOrRequired + description: 'Generic predicate indicating something is/was required. + + + Follows RiC-O temporal naming convention (has_or_had, is_or_was, requires_or_required) + + to indicate the requirement relationship may be current or historical. + + + **Usage**: + + - AccessPolicy requires_or_required Appointment + + - Collection requires_or_required SpecialHandling + + - ReadingRoom requires_or_required Registration + + + This slot provides the predicate; range is specified in class slot_usage + + to narrow to specific requirement types (Appointment, Credential, etc.) + + ' + range: string # uriorcurie + multivalued: true + exact_mappings: + - rico:requiresOrRequired + close_mappings: + - schema:reservationRequired + examples: + - value: hc:Appointment/reading-room-48h + description: Links to specific Appointment instance + - value: hc:Credential/researcher + description: Links to credential requirement + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/requires_qualification.yaml b/schemas/20251121/linkml/modules/slots/archive/requires_qualification.yaml new file mode 100644 index 0000000000..7b265c5ec4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requires_qualification.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/requires_qualification +name: requires_qualification_slot +title: Requires Qualification Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + requires_qualification: + slot_uri: hc:requiresQualification + description: Requires Qualification for heritage custodian entities. + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:requiresQualification diff --git a/schemas/20251121/linkml/modules/slots/archive/requires_registration.yaml b/schemas/20251121/linkml/modules/slots/archive/requires_registration.yaml new file mode 100644 index 0000000000..f971036b4e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requires_registration.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/requires-registration +name: requires_registration_slot +title: requires_registration slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + requires_registration: + slot_uri: schema:isAccessibleForFree + description: 'Whether researchers must register for a reader card before access. + + + Most archives and special collections require registration. + + ' + range: boolean + examples: + - value: true + description: Registration required + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:isAccessibleForFree diff --git a/schemas/20251121/linkml/modules/slots/archive/requires_research.yaml b/schemas/20251121/linkml/modules/slots/archive/requires_research.yaml new file mode 100644 index 0000000000..68147f9d05 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requires_research.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/requires_research +name: requires_research_slot +title: Requires Research Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + requires_research: + description: 'Flag indicating provenance gap or uncertain transfer requiring + + further research. + + ' + range: boolean + slot_uri: hc:requiresResearch + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:requiresResearch diff --git a/schemas/20251121/linkml/modules/slots/archive/requires_separate_registration.yaml b/schemas/20251121/linkml/modules/slots/archive/requires_separate_registration.yaml new file mode 100644 index 0000000000..f543266e0b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requires_separate_registration.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/requires_separate_registration +name: requires_separate_registration_slot +title: Requires Separate Registration Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + requires_separate_registration: + slot_uri: hc:requiresSeparateRegistration + description: 'Whether researchers need separate registration for this annex. + + + FALSE: Same reader card as main reading room + + TRUE: Additional registration required + + ' + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:requiresSeparateRegistration diff --git a/schemas/20251121/linkml/modules/slots/archive/requires_uv_filter.yaml b/schemas/20251121/linkml/modules/slots/archive/requires_uv_filter.yaml new file mode 100644 index 0000000000..558198f247 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/requires_uv_filter.yaml @@ -0,0 +1,47 @@ +id: https://nde.nl/ontology/hc/slot/requires_uv_filter +name: requires_uv_filter_slot +title: Requires UV Filter Slot +description: "Boolean slot indicating whether UV filtering is required for this environmental zone.\n\n**ISO STANDARD REFERENCE VALUES**:\n- ISO 11799:2015 (Archives): <75 \xB5W/lumen UV content\n- EN 16893:2018 (Museums): <75 \xB5W/lumen recommended\n- CIE 157:2004: <75 \xB5W/lumen for all light sources\n\n**PRESERVATION CONTEXT**:\nUltraviolet radiation (UV) causes accelerated photochemical degradation beyond\nvisible light damage. UV filtering is essential for all photosensitive materials.\nModern LED lighting inherently has low UV content; fluorescent and daylight\nsources require UV-absorbing filters or sleeves.\n" +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + quantitykind: http://qudt.org/vocab/quantitykind/ + sosa: http://www.w3.org/ns/sosa/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + wd: http://www.wikidata.org/entity/ + schema: http://schema.org/ + brick: https://brickschema.org/schema/Brick# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + requires_uv_filter: + description: "Whether UV filtering is required for light sources in this environmental zone.\n\nBased on ISO/EN standards:\n- All standards: <75 \xB5W/lumen UV content maximum\n- Achieve with: UV-absorbing films, filter sleeves, or LED lighting\n\nUV filtering essential for:\n- Photographic materials (prints, negatives, slides)\n- Works on paper (watercolors, prints, drawings)\n- Textiles and dyed materials\n- Color photographs and chromogenic materials\n- Inks and fugitive pigments\n\nUV causes accelerated degradation beyond visible light (higher energy).\nModern LEDs inherently have low UV; fluorescents require filters.\n" + range: boolean + slot_uri: hc:requiresUVFilter + close_mappings: + - sosa:ObservableProperty + - crm:E13_Attribute_Assignment + related_mappings: + - wd:Q11391 + - schema:additionalProperty + see_also: + - https://www.iso.org/standard/63810.html + - https://cie.co.at/publications/control-damage-museum-objects-optical-radiation + examples: + - value: 'true' + description: "Photographic storage requires UV filtering (<75 \xB5W/lumen)" + - value: 'false' + description: Metal object storage with LED lighting (inherently low UV) + annotations: + iso_reference: ISO 11799:2015, EN 16893:2018, CIE 157:2004 + preservation_parameter: 'true' + uv_threshold: "75 \xB5W/lumen maximum" + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/research_center_subtype.yaml b/schemas/20251121/linkml/modules/slots/archive/research_center_subtype.yaml new file mode 100644 index 0000000000..d387fb835f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/research_center_subtype.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/research_center_subtype +name: research_center_subtype_slot +title: Research Center Subtype Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/ResearchCenterTypeEnum +default_prefix: hc +slots: + research_center_subtype: + slot_uri: skos:narrower + description: 'Specific subtype from the ResearchCenterTypeEnum taxonomy (45 research center types). + + Each value links to a Wikidata entity describing a specific type. + + ' + range: string # uriorcurie + # range: ResearchCenterTypeEnum + required: false + multivalued: true + comments: + - Values extracted from Wikidata hyponyms + - Each value has a wikidata:QID meaning for Linked Open Data + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:narrower diff --git a/schemas/20251121/linkml/modules/slots/archive/research_center_type.yaml b/schemas/20251121/linkml/modules/slots/archive/research_center_type.yaml new file mode 100644 index 0000000000..6828ccdb86 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/research_center_type.yaml @@ -0,0 +1,46 @@ +id: https://nde.nl/ontology/hc/slot/research_center_type +name: research_center_type_slot +title: Research Center Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/ResearchCenterTypeEnum +default_prefix: hc +slots: + research_center_type: + description: 'Type classification of this research center using Wikidata-sourced enum. + + + Links to ResearchCenterTypeEnum which includes 45 types such as: + + - RESEARCH_INSTITUTE (Q31855) + + - RESEARCH_CENTER (Q1542449) + + - RESEARCH_DEPARTMENT (Q7315155) + + - DIGITAL_HUMANITIES_CENTER (Q62078547) + + - DOCUMENTATION_CENTER (Q3359432) + + + See ResearchCenterTypeEnum for full list with Wikidata mappings. + + ' + range: string # uriorcurie + # range: ResearchCenterTypeEnum + slot_uri: hc:researchCenterType + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:researchCenterType diff --git a/schemas/20251121/linkml/modules/slots/archive/research_department.yaml b/schemas/20251121/linkml/modules/slots/archive/research_department.yaml new file mode 100644 index 0000000000..c57804be83 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/research_department.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/research_department +name: research_department_slot +title: Research Department Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + research_department: + slot_uri: schema:hasOfferCatalog + description: 'Whether the museum has a dedicated research department conducting scholarly research. + + True = active research program, False = primarily exhibition-focused. + + ' + range: boolean + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:hasOfferCatalog diff --git a/schemas/20251121/linkml/modules/slots/archive/research_focus.yaml b/schemas/20251121/linkml/modules/slots/archive/research_focus.yaml new file mode 100644 index 0000000000..f38568e1b4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/research_focus.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/research_focus +name: research_focus_slot +title: Research Focus Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + research_focus: + slot_uri: dcterms:subject + description: 'The primary research domains or disciplines pursued by the organization. + + Examples: conservation science, archaeology, provenance research, materials analysis, + + botanical taxonomy, biodiversity, marine biology, paleontology, economic policy, + + restoration techniques, preventive conservation. + + ' + range: string + multivalued: true + required: false + examples: + - value: conservation science + - value: archaeological analysis + - value: provenance research + - value: botanical taxonomy + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:subject diff --git a/schemas/20251121/linkml/modules/slots/archive/research_focus_area.yaml b/schemas/20251121/linkml/modules/slots/archive/research_focus_area.yaml new file mode 100644 index 0000000000..e7e661b8fc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/research_focus_area.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/research_focus_area +name: research_focus_area_slot +title: Research Focus Areas Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + research_focus_area: + description: 'Primary research focus areas or disciplines of this center. + + + Schema.org: knowsAbout for areas of expertise. + + ' + range: string + multivalued: true + slot_uri: hc:researchFocusAreas + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:researchFocusAreas diff --git a/schemas/20251121/linkml/modules/slots/archive/research_infrastructure.yaml b/schemas/20251121/linkml/modules/slots/archive/research_infrastructure.yaml new file mode 100644 index 0000000000..1af1c7b4e8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/research_infrastructure.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/research_infrastructure +name: research_infrastructure_slot +title: Research Infrastructure Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + research_infrastructure: + slot_uri: schema:hasOfferCatalog + description: 'Major research equipment, facilities, or infrastructure available. + + Examples: X-ray equipment, microscopes, climate chambers, DNA sequencers, + + spectrometers, computing clusters, field stations, experimental plots. + + ' + range: string + multivalued: true + required: false + examples: + - value: X-ray fluorescence spectrometer + - value: electron microscopy facility + - value: climate-controlled storage + - value: DNA sequencing laboratory + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:hasOfferCatalog diff --git a/schemas/20251121/linkml/modules/slots/archive/research_program.yaml b/schemas/20251121/linkml/modules/slots/archive/research_program.yaml new file mode 100644 index 0000000000..b30984edbc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/research_program.yaml @@ -0,0 +1,106 @@ +id: https://nde.nl/ontology/hc/slot/research_program +name: research_program_slot +title: Research Programs Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + research_program: + slot_uri: hc:researchPrograms + description: 'Active research programs, conservation projects, or scientific initiatives + + conducted by the institution. Multi-valued field capturing all major programs. + + + **Conservation Research**: + + - "Endangered species breeding programs" - Ex-situ conservation + + - "Reintroduction programs" - Releasing captive-bred animals to wild + + - "Habitat restoration research" - Ecosystem recovery studies + + - "Climate change adaptation" - Species response to warming + + + **Behavioral and Welfare Research**: + + - "Animal cognition studies" - Intelligence, problem-solving + + - "Enrichment program development" - Animal welfare improvements + + - "Social behavior research" - Group dynamics, communication + + - "Animal welfare assessment" - Health and wellbeing metrics + + + **Taxonomic and Systematic Research**: + + - "Plant taxonomy and classification" - Naming and organizing species + + - "DNA barcoding projects" - Genetic identification + + - "Phylogenetic studies" - Evolutionary relationships + + - "New species discovery" - Field expeditions, specimen analysis + + + **Horticultural and Agricultural Research**: + + - "Crop wild relatives conservation" - Preserving genetic diversity + + - "Heirloom variety preservation" - Historic cultivars + + - "Propagation technique development" - Cultivation methods + + - "Invasive species control" - Prevention and management + + + **Biomedical and Applied Research**: + + - "Veterinary medicine research" - Animal health studies + + - "Reproductive biology" - Assisted reproduction techniques + + - "Disease ecology" - Wildlife pathogen studies + + - "Bioprospecting" - Discovering useful compounds from organisms + + + **Examples**: + + - Artis: ["Amphibian conservation", "Primate behavior", "Marine invertebrate ecology"] + + - Kew Gardens: ["Plant taxonomy", "Seed bank preservation", "Medicinal plant research"] + + - San Diego Zoo: ["Giant panda reproduction", "California condor reintroduction"] + + - Burgers'' Zoo: ["Tropical rainforest ecology", "Coral reef restoration"] + + + **Ontology Alignment**: + + - Maps to `schema:ResearchProject` in Schema.org + + - Related to VIVO ontology research activity classes + + ' + range: string + multivalued: true + comments: + - schema:ResearchProject is a class, not a predicate - use hc namespace + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:researchPrograms diff --git a/schemas/20251121/linkml/modules/slots/archive/research_project.yaml b/schemas/20251121/linkml/modules/slots/archive/research_project.yaml new file mode 100644 index 0000000000..76837915d3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/research_project.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/research_project +name: research_project_slot +title: Research Projects Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + research_project: + slot_uri: hc:researchProjects + comments: + - schema:project does not exist in Schema.org - use hc namespace + description: 'Descriptions of active or completed research projects conducted by the organization. + + Can include project titles, grant numbers, or links to project pages. + + ' + range: string + multivalued: true + required: false + examples: + - value: 'NWO Project 12345: Digital methods for provenance research' + - value: 'EU Horizon 2020: Conservation of medieval manuscripts' + - value: https://www.nwo.nl/en/projects/12345 + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:researchProjects diff --git a/schemas/20251121/linkml/modules/slots/archive/research_value.yaml b/schemas/20251121/linkml/modules/slots/archive/research_value.yaml new file mode 100644 index 0000000000..08a6a6b8be --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/research_value.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/research_value +name: research_value-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + research_value: + slot_uri: hc:researchValue + description: 'Research and scholarly value of this type of institution or collection. + + Documents what types of research this class supports. + + + **Migrated from**: `**Research Value**:` sections. + + ' + range: string + annotations: + source_section: '**Research Value**:' + custodian_types: '["*"]' + exact_mappings: + - hc:researchValue diff --git a/schemas/20251121/linkml/modules/slots/archive/reservation_required.yaml b/schemas/20251121/linkml/modules/slots/archive/reservation_required.yaml new file mode 100644 index 0000000000..09651ed17a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/reservation_required.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/reservation_required +name: reservation_required_slot +title: reservation_required slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + reservation_required: + slot_uri: schema:reservationRequired + description: 'Whether reservations are required or recommended. + + + Often required for museum restaurants. + + ' + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:reservationRequired diff --git a/schemas/20251121/linkml/modules/slots/archive/resource_description.yaml b/schemas/20251121/linkml/modules/slots/archive/resource_description.yaml new file mode 100644 index 0000000000..dbd69bbfbc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/resource_description.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/resource_description +name: resource_description_slot +title: Resource Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + resource_description: + slot_uri: dcterms:description + description: Brief description of an external resource + range: string + examples: + - value: Dutch genealogical database aggregator + - value: Center for Family History + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:description diff --git a/schemas/20251121/linkml/modules/slots/archive/response_format.yaml b/schemas/20251121/linkml/modules/slots/archive/response_format.yaml new file mode 100644 index 0000000000..ee0534026b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/response_format.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/response_format +name: response_format_slot +title: Response Formats Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + response_format: + slot_uri: dcterms:format + description: 'MIME types of response formats supported by this endpoint. + + + Examples: + + - ["application/json"] + + - ["application/xml", "text/xml"] + + - ["image/jpeg", "image/png", "image/tiff"] + + - ["application/ld+json", "text/turtle"] + + ' + range: string + multivalued: true + close_mappings: + - dcterms:format + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/responsible_actor.yaml b/schemas/20251121/linkml/modules/slots/archive/responsible_actor.yaml new file mode 100644 index 0000000000..142a01c08f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/responsible_actor.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/responsible_actor +name: responsible_actor_slot +title: Responsible Actor Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + responsible_actor: + description: 'Person(s) responsible for conducting this activity. + + + PROV-O: wasAssociatedWith links Activity to responsible Agent. + + + Links to PersonObservation for staff members, curators, registrars, + + conservators, or external contractors. + + ' + range: string # uriorcurie + # range: PersonObservation + multivalued: true + slot_uri: prov:wasAssociatedWith + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:wasAssociatedWith diff --git a/schemas/20251121/linkml/modules/slots/archive/responsible_agent.yaml b/schemas/20251121/linkml/modules/slots/archive/responsible_agent.yaml new file mode 100644 index 0000000000..0825caf895 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/responsible_agent.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/responsible_agent +name: responsible_agent_slot +imports: +- linkml:types +slots: + responsible_agent: + slot_uri: prov:wasAssociatedWith + range: string # uriorcurie + # range: ReconstructionAgent + description: 'ReconstructionAgent responsible for reconstruction (REQUIRED). + + PROV-O: wasAssociatedWith links Activity to responsible ReconstructionAgent. + + ' + broad_mappings: + - prov:wasAttributedTo + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:wasAssociatedWith +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/responsible_department.yaml b/schemas/20251121/linkml/modules/slots/archive/responsible_department.yaml new file mode 100644 index 0000000000..0bf5a1e464 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/responsible_department.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/responsible_department +name: responsible_department_slot +title: Responsible Department Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + responsible_department: + description: 'Department or unit responsible for this activity. + + + Text name of internal department (e.g., "Registration", "Conservation", + + "Digital Services", "Collections Management"). + + ' + range: string + slot_uri: hc:responsibleDepartment + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:responsibleDepartment diff --git a/schemas/20251121/linkml/modules/slots/archive/responsible_legal_entity.yaml b/schemas/20251121/linkml/modules/slots/archive/responsible_legal_entity.yaml new file mode 100644 index 0000000000..efdec9fa25 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/responsible_legal_entity.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/responsible_legal_entity +name: responsible_legal_entity_slot +title: responsible_legal_entity Slot +prefixes: + linkml: https://w3id.org/linkml/ + tooi: https://identifier.overheid.nl/tooi/def/ont/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +- ../metadata +slots: + responsible_legal_entity: + slot_uri: tooi:verantwoordelijke + range: string # uriorcurie + # range: CustodianLegalStatus + required: true + description: "Custodian legal entity that bears LEGAL RESPONSIBILITY for this collection.\n\n**TOOI Definition**: \"Overheidsorganisatie die de wettelijke verantwoordelijkheid \ndraagt voor de inhoud (strekking) van het informatieobject\"\n\nMaps information objects (collections) to the legal entity (organization or person)\nthat has formal legal accountability for their custody, preservation, and management.\n\n**Requirements**:\n- MUST reference a CustodianLegalStatus instance (formal legal entity)\n- Legal entity MUST have registration_numbers (unless natural person)\n- Legal responsibility MUST be documented (see legal_responsibility_basis)\n\n**Temporal Consistency**:\n- Collection valid_from MUST be >= legal_entity.registration_date\n- Collection valid_to MUST be <= legal_entity.dissolution_date (if dissolved)\n- During custody transfers, create NEW LegalResponsibilityCollection instance\n\n**Bidirectional Relationship**:\n- **Forward**: LegalResponsibilityCollection \u2192 CustodianLegalStatus\ + \ (responsible_legal_entity)\n- **Reverse**: CustodianLegalStatus \u2192 LegalResponsibilityCollection (collections_under_responsibility)\n\n**Distinction from refers_to_custodian**:\n- `responsible_legal_entity`: Points to LEGAL ASPECT (CustodianLegalStatus)\n- `refers_to_custodian`: Points to HUB (Custodian)\n\nBoth link to the SAME custodian but different aspects:\n```yaml\nLegalResponsibilityCollection:\n responsible_legal_entity: \".../legal/rijksmuseum-foundation\" # Legal aspect\n refers_to_custodian: \".../custodian/nl-nh-ams-m-rm-q190804\" # Hub\n```\n" + examples: + - value: https://nde.nl/ontology/hc/legal/nha-organization + description: Noord-Hollands Archief foundation as responsible legal entity + comments: + - Range is a prov:Entity instance (CustodianLegalStatus) + annotations: + custodian_types: '["*"]' + exact_mappings: + - tooi:verantwoordelijke diff --git a/schemas/20251121/linkml/modules/slots/archive/restriction_category.yaml b/schemas/20251121/linkml/modules/slots/archive/restriction_category.yaml new file mode 100644 index 0000000000..ba55965ab2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/restriction_category.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/restriction_category +name: restriction_category_slot +title: Restriction Categories Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + restriction_category: + description: 'Categories of restrictions applied in this dim archive. + + Examples: user_based, content_based, process_based, format_based + + ' + range: string + multivalued: true + slot_uri: hc:restrictionCategories + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:restrictionCategories diff --git a/schemas/20251121/linkml/modules/slots/archive/restriction_description.yaml b/schemas/20251121/linkml/modules/slots/archive/restriction_description.yaml new file mode 100644 index 0000000000..fb3561831a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/restriction_description.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/restriction_description +name: restriction_description_slot +title: Restriction Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + restriction_description: + slot_uri: dcterms:description + description: Description of the restriction + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:description diff --git a/schemas/20251121/linkml/modules/slots/archive/restriction_reason.yaml b/schemas/20251121/linkml/modules/slots/archive/restriction_reason.yaml new file mode 100644 index 0000000000..454dd114c1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/restriction_reason.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/restriction_reason +name: restriction_reason_slot +title: Restriction Reason Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + restriction_reason: + description: 'Reason for restriction. + + Aligned with crm:P3_has_note / skos:note. + + ' + slot_uri: skos:note + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:note diff --git a/schemas/20251121/linkml/modules/slots/archive/restriction_type.yaml b/schemas/20251121/linkml/modules/slots/archive/restriction_type.yaml new file mode 100644 index 0000000000..7af0509bff --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/restriction_type.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/restriction_type +name: restriction_type_slot +title: Restriction Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + restriction_type: + slot_uri: dcterms:type + description: Type of restriction (privacy, cabr, closed, etc.) + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:type diff --git a/schemas/20251121/linkml/modules/slots/archive/results_expected_date.yaml b/schemas/20251121/linkml/modules/slots/archive/results_expected_date.yaml new file mode 100644 index 0000000000..878bd1d3a6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/results_expected_date.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/results_expected_date +name: results_expected_date_slot +title: Results Expected Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + results_expected_date: + range: date + description: Expected date for announcement of funding decisions + slot_uri: dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:date diff --git a/schemas/20251121/linkml/modules/slots/archive/retention_period_year.yaml b/schemas/20251121/linkml/modules/slots/archive/retention_period_year.yaml new file mode 100644 index 0000000000..ce10645c40 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/retention_period_year.yaml @@ -0,0 +1,47 @@ +id: https://nde.nl/ontology/hc/slot/retention_period_year +name: retention_period_year_slot +title: Retention Period Years Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + retention_period_year: + description: 'Retention period in years before transfer to archives. + + + **Dublin Core**: dcterms:valid for validity period. + + + **Common periods**: + + - 7 years (financial records, tax) + + - 10 years (contracts, legal) + + - 20 years (personnel files) + + - Permanent (policy, governance) + + - "Until case closed + 5 years" + + + **Note**: May be null for permanent retention. + + ' + range: integer + slot_uri: hc:retentionPeriodYears + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:retentionPeriodYears diff --git a/schemas/20251121/linkml/modules/slots/archive/retention_schedule.yaml b/schemas/20251121/linkml/modules/slots/archive/retention_schedule.yaml new file mode 100644 index 0000000000..8b4bc77efd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/retention_schedule.yaml @@ -0,0 +1,47 @@ +id: https://nde.nl/ontology/hc/slot/retention_schedule +name: retention_schedule_slot +title: Retention Schedule Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + retention_schedule: + description: 'Reference to applicable retention schedule (regulatory framework). + + + **RiC-O**: rico:isOrWasRegulatedBy connects Thing to Rule. + + + Retention schedules are RULES that regulate how long records + + must be kept and when they can be transferred to archives. + + + **Examples**: + + - "Selectielijst Gemeenten 2017, cat. 4.2" + + - "Corporate Retention Schedule RS-2023-001" + + - "Archiefwet 1995, art. 5" + + - "GDPR Art. 17 (right to erasure)" + + ' + range: string + slot_uri: hc:retentionSchedule + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:retentionSchedule diff --git a/schemas/20251121/linkml/modules/slots/archive/retention_tracking.yaml b/schemas/20251121/linkml/modules/slots/archive/retention_tracking.yaml new file mode 100644 index 0000000000..4bae60d72d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/retention_tracking.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/retention_tracking +name: retention_tracking_slot +title: Retention Tracking Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + retention_tracking: + description: 'Whether deposit archive tracks retention schedules for deposited materials. + + TRUE if active retention management, FALSE if passive storage only. + + ' + range: boolean + slot_uri: hc:retentionTracking + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:retentionTracking diff --git a/schemas/20251121/linkml/modules/slots/archive/retrieval_agent.yaml b/schemas/20251121/linkml/modules/slots/archive/retrieval_agent.yaml new file mode 100644 index 0000000000..843d7ac805 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/retrieval_agent.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/retrieval_agent +name: retrieval_agent_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + retrieval_agent: + description: 'Tool used to extract this data. + + + - firecrawl: Institutional websites (primary) + + - playwright: JS-heavy sites + + - exa_crawling_exa: LinkedIn profiles + + - manual: Last resort + + ' + slot_uri: prov:wasAssociatedWith + range: string + comments: + - PersonWebClaim overrides range to RetrievalAgentEnum + close_mappings: + - prov:wasAttributedTo + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/retrieval_method.yaml b/schemas/20251121/linkml/modules/slots/archive/retrieval_method.yaml new file mode 100644 index 0000000000..c3f590c38f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/retrieval_method.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/retrieval_method +name: retrieval_method_slot +title: Retrieval Method Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + retrieval_method: + range: string + description: Method used for retrieval (browser, API, scraper, etc.) + slot_uri: hc:retrievalMethod + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:retrievalMethod diff --git a/schemas/20251121/linkml/modules/slots/archive/retrieval_timestamp.yaml b/schemas/20251121/linkml/modules/slots/archive/retrieval_timestamp.yaml new file mode 100644 index 0000000000..fc91d4ba62 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/retrieval_timestamp.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/retrieval_timestamp +name: retrieval_timestamp_slot +title: Retrieval Timestamp Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + retrieval_timestamp: + description: 'Timestamp when this content data was retrieved from the platform. + + + PROV-O: atTime for observation timestamp. + + + Critical for understanding data freshness, especially for metrics. + + ' + range: datetime + slot_uri: hc:retrievalTimestamp + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:retrievalTimestamp diff --git a/schemas/20251121/linkml/modules/slots/archive/retrieved_by.yaml b/schemas/20251121/linkml/modules/slots/archive/retrieved_by.yaml new file mode 100644 index 0000000000..875fe7d9d4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/retrieved_by.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/retrieved_by +name: retrieved_by_slot +title: Retrieved By Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + retrieved_by: + range: string + description: Agent (person, script, or system) that performed the retrieval + slot_uri: hc:retrievedBy + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:retrievedBy diff --git a/schemas/20251121/linkml/modules/slots/archive/retrieved_on.yaml b/schemas/20251121/linkml/modules/slots/archive/retrieved_on.yaml new file mode 100644 index 0000000000..4bd92821e6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/retrieved_on.yaml @@ -0,0 +1,57 @@ +id: https://nde.nl/ontology/hc/slot/retrieved_on +name: retrieved_on +title: Retrieved On Slot +prefixes: + pav: http://purl.org/pav/ + prov: http://www.w3.org/ns/prov# + xsd: http://www.w3.org/2001/XMLSchema# + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# +description: 'Timestamp when a web page was retrieved or archived. + + + Used for provenance tracking in: + + - WebClaim: When the source page was archived for claim extraction + + - WebObservation: When the web page was observed/retrieved + + ' +imports: +- linkml:types +slots: + retrieved_on: + slot_uri: pav:retrievedOn + range: datetime + required: false + multivalued: false + description: 'Timestamp when the web page was retrieved/archived. + + + pav:retrievedOn - "The date this resource was retrieved from the source" + + + ISO 8601 format with timezone (UTC preferred). + + + Examples: + + - "2025-11-29T12:28:00Z" (UTC) + + - "2025-11-29T10:30:00+01:00" (with timezone offset) + + ' + exact_mappings: + - prov:generatedAtTime + annotations: + custodian_types: '["*"]' +comments: +- Maps to pav:retrievedOn for provenance tracking +- Use ISO 8601 format with timezone +- UTC (Z suffix) is preferred for consistency diff --git a/schemas/20251121/linkml/modules/slots/archive/return_condition_report_url.yaml b/schemas/20251121/linkml/modules/slots/archive/return_condition_report_url.yaml new file mode 100644 index 0000000000..f7a40c1e12 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/return_condition_report_url.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/return_condition_report_url +name: return_condition_report_url_slot +title: Return Condition Report Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + return_condition_report_url: + description: 'URL to post-loan condition report documenting object state upon return. + + ' + range: uri + slot_uri: hc:returnConditionReportUrl + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:returnConditionReportUrl diff --git a/schemas/20251121/linkml/modules/slots/archive/revenue_category.yaml b/schemas/20251121/linkml/modules/slots/archive/revenue_category.yaml new file mode 100644 index 0000000000..61af36b38a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/revenue_category.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/revenue_category +name: revenue_category_slot +title: Revenue Category Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + revenue_category: + slot_uri: hc:revenue_category + range: string + description: 'Revenue Category for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:revenue_category diff --git a/schemas/20251121/linkml/modules/slots/archive/review_date.yaml b/schemas/20251121/linkml/modules/slots/archive/review_date.yaml new file mode 100644 index 0000000000..cd40034186 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/review_date.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/review_date +name: review_date_slot +title: Review Date Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + review_date: + description: 'Date when access policy should be reviewed. + + ' + range: date + slot_uri: dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:date diff --git a/schemas/20251121/linkml/modules/slots/archive/review_status.yaml b/schemas/20251121/linkml/modules/slots/archive/review_status.yaml new file mode 100644 index 0000000000..23fb6377ad --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/review_status.yaml @@ -0,0 +1,57 @@ +id: https://nde.nl/ontology/hc/slot/review_status +name: review_status_slot +title: Review Status Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + review_status: + description: 'Current status and priority for re-evaluating type classification. + + + Guides data curation: + + - **Priority level**: High/medium/low priority for re-investigation + + - **Review triggers**: What would prompt re-classification attempt + + - **Resource requirements**: Specialist knowledge, funding, access needed + + - **Timeline**: When next review is scheduled + + - **Outcome scenarios**: Keep record, remove if no progress, upgrade confidence + + - **Escalation path**: When to involve external experts + + + Review status ensures unspecified records don''t stagnate. + + + Examples: + + - "Requires specialist research, Low priority, Consider removing if no evidence emerges" + + - "High priority - institution recently mentioned in journal, Re-investigate within 3 months" + + - "Medium priority - waiting for archival collection to be cataloged, Review in 2026" + + - "Low priority - defunct since 1920s, minimal heritage significance" + + ' + range: string + slot_uri: prov:qualifiedRevision + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:qualifiedRevision diff --git a/schemas/20251121/linkml/modules/slots/archive/revision_date.yaml b/schemas/20251121/linkml/modules/slots/archive/revision_date.yaml new file mode 100644 index 0000000000..b798281f63 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/revision_date.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/revision_date +name: revision_date_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + revision_date: + description: Date of most recent revision or update + slot_uri: dcterms:modified + range: date + broad_mappings: + - dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:modified diff --git a/schemas/20251121/linkml/modules/slots/archive/revision_number.yaml b/schemas/20251121/linkml/modules/slots/archive/revision_number.yaml new file mode 100644 index 0000000000..6bf75de62f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/revision_number.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/revision_number +name: revision_number_slot +title: Revision Number Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + revision_number: + description: 'Version number if budget has been revised. + + + Initial budget = 0, first revision = 1, etc. + + ' + range: integer + slot_uri: hc:revisionNumber + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:revisionNumber diff --git a/schemas/20251121/linkml/modules/slots/archive/rights_statement.yaml b/schemas/20251121/linkml/modules/slots/archive/rights_statement.yaml new file mode 100644 index 0000000000..3291966144 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/rights_statement.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/rights_statement +name: rights_statement_slot +title: Rights Statement Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + rights_statement: + description: 'Rights statement text (from RightsStatements.org or similar). + + ' + range: string + slot_uri: hc:rightsStatement + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:rightsStatement diff --git a/schemas/20251121/linkml/modules/slots/archive/rights_statement_url.yaml b/schemas/20251121/linkml/modules/slots/archive/rights_statement_url.yaml new file mode 100644 index 0000000000..4f337d083a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/rights_statement_url.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/rights_statement_url +name: rights_statement_url_slot +title: Rights Statement Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + rights_statement_url: + description: 'URL to standardized rights statement (RightsStatements.org). + + ' + range: uri + slot_uri: hc:rightsStatementUrl + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:rightsStatementUrl diff --git a/schemas/20251121/linkml/modules/slots/archive/role_category.yaml b/schemas/20251121/linkml/modules/slots/archive/role_category.yaml new file mode 100644 index 0000000000..bf7456c8cb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/role_category.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/role_category +name: role_category +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + role_category: + slot_uri: schema:roleName + description: 'High-level category for grouping related roles. + + Values: CURATORIAL, CONSERVATION, ARCHIVAL, LIBRARY, DIGITAL, EDUCATION, + + GOVERNANCE, LEADERSHIP, RESEARCH, TECHNICAL, SUPPORT, CREATIVE, EXTERNAL + + ' + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:roleName diff --git a/schemas/20251121/linkml/modules/slots/archive/role_end_date.yaml b/schemas/20251121/linkml/modules/slots/archive/role_end_date.yaml new file mode 100644 index 0000000000..07c470dc34 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/role_end_date.yaml @@ -0,0 +1,61 @@ +id: https://nde.nl/ontology/hc/slot/role_end_date +name: role_end_date +title: Role End Date +imports: +- linkml:types +slots: + role_end_date: + slot_uri: schema:endDate + description: 'Date when person ended service in this role (or null if still employed). + + + **Schema.org**: `schema:endDate` for employment/membership end + + **PROV-O**: Can map to `prov:endedAtTime` for activity end + + + **Format**: ISO 8601 date (YYYY-MM-DD) or null + + + **Null Interpretation**: null = currently employed in this role + + + **Temporal Consistency**: + + - Must be > role_start_date + + - Must be <= unit_affiliation.valid_to (if unit dissolved) + + + **Reasons for End Date**: + + - Retirement + + - Role change (promotion, lateral move) + + - Organizational change (unit dissolved, merged) + + - Departure from institution + + + **Example**: "2013-02-28" (ended before merger) or null (still employed) + + ' + range: date + broad_mappings: + - dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:endDate +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/role_id.yaml b/schemas/20251121/linkml/modules/slots/archive/role_id.yaml new file mode 100644 index 0000000000..6834d09cba --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/role_id.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/role_id +name: role_id_slot +title: Role Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + role_id: + slot_uri: dcterms:identifier + description: Role Id for heritage custodian entities. + range: string # uriorcurie + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/role_name.yaml b/schemas/20251121/linkml/modules/slots/archive/role_name.yaml new file mode 100644 index 0000000000..73697ecd52 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/role_name.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/role_name +name: role_name_slot +title: Role Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + role_name: + slot_uri: skos:prefLabel + description: 'Official English name for this role type. + + This is the canonical name used for cross-institutional comparison. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:prefLabel diff --git a/schemas/20251121/linkml/modules/slots/archive/role_name_local.yaml b/schemas/20251121/linkml/modules/slots/archive/role_name_local.yaml new file mode 100644 index 0000000000..0f2beb2561 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/role_name_local.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/role_name_local +name: role_name_local_slot +title: Role Name Local Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + role_name_local: + slot_uri: hc:roleNameLocal + description: 'Official name in the local language of the institution. + + May differ from English canonical name. + + Examples: "Conservator" (EN) = "Restaurator" (NL) = "Restaurateur" (FR) + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:roleNameLocal diff --git a/schemas/20251121/linkml/modules/slots/archive/role_start_date.yaml b/schemas/20251121/linkml/modules/slots/archive/role_start_date.yaml new file mode 100644 index 0000000000..bd0c7fafe5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/role_start_date.yaml @@ -0,0 +1,54 @@ +id: https://nde.nl/ontology/hc/slot/role_start_date +name: role_start_date +title: Role Start Date +imports: +- linkml:types +slots: + role_start_date: + slot_uri: schema:startDate + description: 'Date when person began serving in this role. + + + **Schema.org**: `schema:startDate` for employment/membership start + + **PROV-O**: Can map to `prov:startedAtTime` for activity start + + + **Format**: ISO 8601 date (YYYY-MM-DD) + + + **Precision**: + + - Full date preferred: "2013-03-01" + + - Partial dates allowed: "2013-03" (month precision), "2013" (year precision) + + + **Temporal Consistency**: + + - Must be >= unit_affiliation.valid_from (if unit reference exists) + + - Should align with organizational events if role started due to reorganization + + + **Example**: "2013-03-01" (started on merger date) + + ' + range: date + broad_mappings: + - dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:startDate +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/role_title.yaml b/schemas/20251121/linkml/modules/slots/archive/role_title.yaml new file mode 100644 index 0000000000..bbcd2e932e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/role_title.yaml @@ -0,0 +1,48 @@ +id: https://nde.nl/ontology/hc/slot/role_title +name: role_title +title: Role Title +imports: +- linkml:types +slots: + role_title: + slot_uri: schema:jobTitle + description: 'Official job title as used by the institution. + + + **Schema.org**: `schema:jobTitle` for institutional title + + + **Examples**: + + - "Head of Digital Preservation" + + - "Senior Curator of Medieval Art" + + - "Collections Manager" + + - "Deputy Director for Public Services" + + + **Variability**: Job titles vary widely across institutions. + + Use staff_role for standardized categorization. + + ' + range: string + exact_mappings: + - schema:roleName + close_mappings: + - org:role + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/route_description.yaml b/schemas/20251121/linkml/modules/slots/archive/route_description.yaml new file mode 100644 index 0000000000..9907aaa902 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/route_description.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/route_description +name: route_description_slot +title: Route Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + route_description: + slot_uri: skos:definition + range: string + description: 'Description of what this thematic route covers. + + Helps understand the scope and focus of the route. + + ' + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:definition diff --git a/schemas/20251121/linkml/modules/slots/archive/route_id.yaml b/schemas/20251121/linkml/modules/slots/archive/route_id.yaml new file mode 100644 index 0000000000..09dca2f42a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/route_id.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/route_id +name: route_id_slot +title: Route Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + route_id: + slot_uri: dcterms:identifier + identifier: true + range: string # uriorcurie + description: 'Unique identifier for this thematic route. + + Format: https://nde.nl/ontology/hc/route/{agenda-slug}/{route-slug} + + ' + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/route_keyword.yaml b/schemas/20251121/linkml/modules/slots/archive/route_keyword.yaml new file mode 100644 index 0000000000..86738f6263 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/route_keyword.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/route_keyword +name: route_keyword_slot +title: Route Keywords Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + route_keyword: + slot_uri: dcterms:subject + range: string + multivalued: true + description: 'Keywords associated with this thematic route. + + Useful for discovery and matching to research topics. + + ' + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:subject diff --git a/schemas/20251121/linkml/modules/slots/archive/route_relevance_to_heritage.yaml b/schemas/20251121/linkml/modules/slots/archive/route_relevance_to_heritage.yaml new file mode 100644 index 0000000000..d5f81e5860 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/route_relevance_to_heritage.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/route_relevance_to_heritage +name: route_relevance_to_heritage_slot +title: Route Relevance To Heritage Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + route_relevance_to_heritage: + slot_uri: schema:about + range: string + description: 'Explanation of how this route relates to cultural heritage. + + + Maps to schema:about - indicates what heritage topics this route addresses. + + + Helps heritage institutions understand relevance: + + - "Directly relevant" - explicitly covers heritage + + - "Indirectly relevant" - covers adjacent topics (climate, digital) + + - "Limited relevance" - heritage as minor application area + + ' + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:about diff --git a/schemas/20251121/linkml/modules/slots/archive/route_title.yaml b/schemas/20251121/linkml/modules/slots/archive/route_title.yaml new file mode 100644 index 0000000000..4865bfba4c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/route_title.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/route_title +name: route_title_slot +title: Route Title Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + route_title: + slot_uri: skos:prefLabel + range: string + description: 'Official title of the thematic route. + + Should match agenda documentation. + + ' + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:prefLabel diff --git a/schemas/20251121/linkml/modules/slots/archive/row_number.yaml b/schemas/20251121/linkml/modules/slots/archive/row_number.yaml new file mode 100644 index 0000000000..189d4c8d78 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/row_number.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/row_number +name: row_number_slot +title: Row Number Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + row_number: + description: 'Row or aisle identifier within the storage area. + + + HC Ontology: `hc:rowNumber` + + ' + range: string + slot_uri: hc:rowNumber + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:rowNumber diff --git a/schemas/20251121/linkml/modules/slots/archive/safeguarded_by.yaml b/schemas/20251121/linkml/modules/slots/archive/safeguarded_by.yaml new file mode 100644 index 0000000000..8eec1a16f1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/safeguarded_by.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/safeguarded_by +name: safeguarded_by_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + owl: http://www.w3.org/2002/07/owl# + ich: https://ich.unesco.org/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + safeguarded_by: + slot_uri: crm:P109i_is_current_or_former_curator_of + description: "Heritage custodian organizations that safeguard this intangible heritage form.\n\nWe use this to link IntangibleHeritageForm \u2192 Custodian\n\n**Usage**:\n\n- Links IntangibleHeritageForm to the Custodian entities that preserve it\n- Custodians with `institution_type = I` (Intangible Heritage Group) are typical safeguarders\n\n**Examples**:\n- Pride Amsterdam is safeguarded_by Stichting Amsterdam Gay Pride\n- Traditional Dutch baking is safeguarded_by Bakkerij van Maanen" + range: string # uriorcurie + # range: Custodian + multivalued: true + inlined: false + exact_mappings: + - crm:P109i_is_current_or_former_curator_of + related_mappings: + - schema:maintainer + comments: + - Inverse of safeguards (crm:P109_has_current_or_former_curator) + - Creates owl:inverseOf axiom in RDF output + - Enables navigation from IntangibleHeritageForm to preserving custodians + - 'Inverse: `safeguards` (crm:P109_has_current_or_former_curator) | Pattern: If HeritageForm safeguarded_by Custodian, then Custodian safeguards HeritageForm' + broad_mappings: + - prov:wasAttributedTo + annotations: + inverse_slot: safeguards + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/safeguarding_measure.yaml b/schemas/20251121/linkml/modules/slots/archive/safeguarding_measure.yaml new file mode 100644 index 0000000000..d9bc7bae75 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/safeguarding_measure.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/safeguarding_measure +name: safeguarding_measure_slot +title: Safeguarding Measures Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + safeguarding_measure: + description: 'Actions taken to ensure viability and transmission of this heritage. + + + Per UNESCO, measures include: identification, documentation, research, + + preservation, protection, promotion, enhancement, transmission, revitalization. + + ' + range: string + multivalued: true + slot_uri: hc:safeguardingMeasures + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:safeguardingMeasures diff --git a/schemas/20251121/linkml/modules/slots/archive/safety_certification.yaml b/schemas/20251121/linkml/modules/slots/archive/safety_certification.yaml new file mode 100644 index 0000000000..c43d667810 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/safety_certification.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/safety_certification +name: safety_certification_slot +title: Safety Certifications Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + safety_certification: + description: 'Safety certifications held by this laboratory. + + + May include: + + - Fire safety certification + + - Hazardous materials handling + + - Occupational health and safety + + ' + range: string + multivalued: true + slot_uri: hc:safetyCertifications + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:safetyCertifications diff --git a/schemas/20251121/linkml/modules/slots/archive/sales_activity.yaml b/schemas/20251121/linkml/modules/slots/archive/sales_activity.yaml new file mode 100644 index 0000000000..77a5583dcf --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/sales_activity.yaml @@ -0,0 +1,45 @@ +id: https://nde.nl/ontology/hc/slot/sales_activity +name: sales_activity_slot +title: Sales Activity Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + sales_activity: + slot_uri: schema:offers + description: 'Whether the gallery actively sells artworks to collectors. + + True = artwork sales (primary or secondary market) + + False = exhibition-only (no sales activity) + + + Distinction from commercial_operation: + + - commercial_operation: business model (for-profit vs. nonprofit) + + - sales_activity: transactional activity (sells artworks or not) + + + A gallery can be commercial_operation=true but sales_activity=false + + (e.g., art consultancy that doesn''t hold inventory). + + ' + range: boolean + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:offers diff --git a/schemas/20251121/linkml/modules/slots/archive/sampling_protocol.yaml b/schemas/20251121/linkml/modules/slots/archive/sampling_protocol.yaml new file mode 100644 index 0000000000..d2993830e7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/sampling_protocol.yaml @@ -0,0 +1,13 @@ +id: https://nde.nl/ontology/hc/slot/sampling_protocol +name: sampling_protocol +imports: + - linkml:types +slots: + sampling_protocol: + description: Method used to collect the specimen. Maps to dwc:samplingProtocol. + range: string + slot_uri: dwc:samplingProtocol + examples: + - value: UV light trap + - value: Mist net + - value: Hand collection diff --git a/schemas/20251121/linkml/modules/slots/archive/scene_count.yaml b/schemas/20251121/linkml/modules/slots/archive/scene_count.yaml new file mode 100644 index 0000000000..ca0f32addf --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/scene_count.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/scene_count +name: scene_count_slot +title: Scene Count Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + scene_count: + description: 'Total number of scenes/shots detected in the video. + + + Should equal length of scene_segments array. + + ' + range: integer + slot_uri: hc:sceneCount + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:sceneCount diff --git a/schemas/20251121/linkml/modules/slots/archive/scene_types_detected.yaml b/schemas/20251121/linkml/modules/slots/archive/scene_types_detected.yaml new file mode 100644 index 0000000000..97b6adbfba --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/scene_types_detected.yaml @@ -0,0 +1,48 @@ +id: https://nde.nl/ontology/hc/slot/scene_types_detected +name: scene_types_detected_slot +title: Scene Types Detected Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/SceneTypeEnum +default_prefix: hc +slots: + scene_types_detected: + description: 'List of scene type labels found in the video. + + + **Common Heritage Scene Types**: + + - INTERIOR: Indoor shots + + - EXTERIOR: Outdoor shots + + - CLOSEUP: Detail shots of objects + + - INTERVIEW: Talking head / interview + + - ARCHIVAL: Historical footage/photos + + - TITLE_CARD: Text overlays + + - B_ROLL: Supplementary footage + + ' + range: string # uriorcurie + # range: SceneTypeEnum + multivalued: true + slot_uri: hc:sceneTypesDetected + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:sceneTypesDetected diff --git a/schemas/20251121/linkml/modules/slots/archive/scheme_description.yaml b/schemas/20251121/linkml/modules/slots/archive/scheme_description.yaml new file mode 100644 index 0000000000..6818492034 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/scheme_description.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/scheme_description +name: scheme_description_slot +title: Scheme Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + scheme_description: + range: string + description: 'Description of the scheme including purpose, requirements, and process. Extract from institutional website or promotional materials. + + Maps to dcterms:description for scheme/program descriptions.' + slot_uri: dcterms:description + close_mappings: + - schema:description + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/scheme_id.yaml b/schemas/20251121/linkml/modules/slots/archive/scheme_id.yaml new file mode 100644 index 0000000000..df679a4320 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/scheme_id.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/scheme_id +name: scheme_id_slot +title: Scheme Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + scheme_id: + identifier: true + range: string # uriorcurie + description: 'Unique identifier for this donation scheme. Mapped to dcterms:identifier as the standard property for resource identifiers. + + Format: https://nde.nl/ontology/hc/donation-scheme/{custodian-slug}/{scheme-slug} + + ' + slot_uri: dcterms:identifier + close_mappings: + - schema:identifier + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/scheme_name.yaml b/schemas/20251121/linkml/modules/slots/archive/scheme_name.yaml new file mode 100644 index 0000000000..f76f96c256 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/scheme_name.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/scheme_name +name: scheme_name_slot +title: Scheme Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + scheme_name: + range: string + description: 'Human-readable name of the donation scheme as presented by institution. + + Ontology mapping: skos:prefLabel is the standard SKOS property for preferred human-readable labels. Preserve original language and branding.' + slot_uri: skos:prefLabel + close_mappings: + - schema:name + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/scheme_type.yaml b/schemas/20251121/linkml/modules/slots/archive/scheme_type.yaml new file mode 100644 index 0000000000..5dfa2c1f44 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/scheme_type.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/scheme_type +name: scheme_type_slot +title: Scheme Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/DonationSchemeTypeEnum +default_prefix: hc +slots: + scheme_type: + range: string # uriorcurie + # range: DonationSchemeTypeEnum + description: 'Category of donation scheme from DonationSchemeTypeEnum. + + + Enables filtering and comparison of schemes across institutions. + + See enum documentation for full category list with ~50 types. + + ' + slot_uri: hc:schemeType + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:schemeType diff --git a/schemas/20251121/linkml/modules/slots/archive/scheme_url.yaml b/schemas/20251121/linkml/modules/slots/archive/scheme_url.yaml new file mode 100644 index 0000000000..54c48f8089 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/scheme_url.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/scheme_url +name: scheme_url_slot +title: Scheme Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + foaf: http://xmlns.com/foaf/0.1/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + scheme_url: + range: uri + description: 'URL to the donation scheme webpage on institutional website. Mapped to schema:url as the standard property for web addresses. + + Primary source for extraction and verification. + + ' + slot_uri: schema:url + close_mappings: + - foaf:page + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/scope.yaml b/schemas/20251121/linkml/modules/slots/archive/scope.yaml new file mode 100644 index 0000000000..0aa3b2d2cc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/scope.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/scope +name: scope_slot +title: Scope Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + scope: + slot_uri: dcterms:description + description: Description of geographic scope + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:description diff --git a/schemas/20251121/linkml/modules/slots/archive/scope_description.yaml b/schemas/20251121/linkml/modules/slots/archive/scope_description.yaml new file mode 100644 index 0000000000..3f4ea058b8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/scope_description.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/slot/scope_description +name: scope_description-slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + scope_description: + slot_uri: rico:scopeAndContent + description: 'Detailed description of what this class encompasses. + + Explains the boundaries and coverage of this heritage type. + + + **Migrated from**: `**Scope**:` sections in description text. + + + **Example content**: + + - What types of materials/collections are included + + - Geographic or temporal scope + + - Organizational or institutional scope + + ' + range: string + annotations: + source_section: '**Scope**:' + custodian_types: '["*"]' + exact_mappings: + - rico:scopeAndContent diff --git a/schemas/20251121/linkml/modules/slots/archive/scope_exclude.yaml b/schemas/20251121/linkml/modules/slots/archive/scope_exclude.yaml new file mode 100644 index 0000000000..ae95812329 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/scope_exclude.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/scope_exclude +name: scope_exclude_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + scope_exclude: + slot_uri: hc:scopeExcludes + description: Types of records or materials typically excluded from this record set type. + range: string + required: false + comments: + - schema:excludesObject does not exist in Schema.org - use hc namespace + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:scopeExcludes diff --git a/schemas/20251121/linkml/modules/slots/archive/scope_include.yaml b/schemas/20251121/linkml/modules/slots/archive/scope_include.yaml new file mode 100644 index 0000000000..5a088c2255 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/scope_include.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/scope_include +name: scope_include_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + scope_include: + slot_uri: schema:includesObject + description: Types of records or materials typically included in this record set type. + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:includesObject diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_by.yaml b/schemas/20251121/linkml/modules/slots/archive/scrape_method.yaml similarity index 57% rename from schemas/20251121/linkml/modules/slots/is_or_was_retrieved_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/scrape_method.yaml index 9ab06b6c0c..dfec3dab67 100644 --- a/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_by.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/scrape_method.yaml @@ -1,9 +1,7 @@ -id: https://nde.nl/ontology/hc/slot/is_or_was_retrieved_by -name: is_or_was_retrieved_by -title: Is Or Was Retrieved By -description: 'Agent responsible for retrieval/extraction. - - MIGRATED from extraction_agent per slot_fixes.yaml (Rule 53).' +id: https://nde.nl/ontology/hc/slot/scrape_method +name: scrape_method_slot +title: Scrape Method Slot +version: 1.0.0 prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -17,15 +15,25 @@ prefixes: xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types +- ../enums/ScrapeMethodEnum default_prefix: hc slots: - is_or_was_retrieved_by: + scrape_method: + description: 'Method used to extract the connection data. + + + Values: + + - manual_linkedin_browse: Manual extraction while logged in + + - linkedin_html_parser: Parsed from saved HTML file + + - exa_search: Extracted via Exa API + + ' slot_uri: prov:wasAssociatedWith - description: Agent that performed the retrieval activity. range: string # uriorcurie - # range: RetrievalAgent - multivalued: false - inlined: false # Fixed invalid inline for primitive type + # range: ScrapeMethodEnum annotations: custodian_types: '["*"]' exact_mappings: diff --git a/schemas/20251121/linkml/modules/slots/archive/scraped_timestamp.yaml b/schemas/20251121/linkml/modules/slots/archive/scraped_timestamp.yaml new file mode 100644 index 0000000000..b1a1e1b7af --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/scraped_timestamp.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/scraped_timestamp +name: scraped_timestamp_slot +title: Scraped Timestamp Slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + scraped_timestamp: + description: 'ISO 8601 timestamp when the data extraction occurred. + + Critical for tracking changes over time and establishing provenance. + + ' + slot_uri: prov:endedAtTime + range: datetime + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:endedAtTime diff --git a/schemas/20251121/linkml/modules/slots/archive/script_type.yaml b/schemas/20251121/linkml/modules/slots/archive/script_type.yaml new file mode 100644 index 0000000000..f231a330b2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/script_type.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/script_type +name: script_type_slot +title: Script Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + script_type: + description: 'Type of script/writing for manuscripts. + + + **Values**: MANUSCRIPT (handwritten), TYPESCRIPT, PRINTED, + + MIXED (combination) + + ' + range: string + slot_uri: crm:P128_carries + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P128_carries diff --git a/schemas/20251121/linkml/modules/slots/archive/seasonal_hour.yaml b/schemas/20251121/linkml/modules/slots/archive/seasonal_hour.yaml new file mode 100644 index 0000000000..1cd4f2e599 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/seasonal_hour.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/seasonal-hours +name: seasonal_hour_slot +title: seasonal_hours slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + seasonal_hour: + slot_uri: schema:openingHoursSpecification + description: 'Seasonal variations in opening hours. + + + Many outdoor sites have different summer/winter hours. + + ' + range: string + examples: + - value: 'Summer (Apr-Oct): 10:00-18:00; Winter (Nov-Mar): 10:00-16:00' + description: Seasonal hours + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:openingHoursSpecification diff --git a/schemas/20251121/linkml/modules/slots/archive/seating_capacity.yaml b/schemas/20251121/linkml/modules/slots/archive/seating_capacity.yaml new file mode 100644 index 0000000000..638614601c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/seating_capacity.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/seating_capacity +name: seating_capacity_slot +title: seating_capacity slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + seating_capacity: + slot_uri: schema:maximumAttendeeCapacity + description: 'Number of researcher seats available in this reading room. + + + Schema.org: maximumAttendeeCapacity for capacity. + + ' + range: integer + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:maximumAttendeeCapacity diff --git a/schemas/20251121/linkml/modules/slots/archive/secondary.yaml b/schemas/20251121/linkml/modules/slots/archive/secondary.yaml new file mode 100644 index 0000000000..b4c40920d3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/secondary.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/secondary +name: secondary_slot +title: Secondary Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + secondary: + slot_uri: dcterms:spatial + description: Secondary geographic areas (less prominent coverage) + range: string + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:spatial diff --git a/schemas/20251121/linkml/modules/slots/archive/section_id.yaml b/schemas/20251121/linkml/modules/slots/archive/section_id.yaml new file mode 100644 index 0000000000..7bf51c973f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/section_id.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/section_id +name: section_id_slot +title: Section Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + section_id: + slot_uri: dcterms:identifier + description: Unique identifier for this section + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/secularization_status.yaml b/schemas/20251121/linkml/modules/slots/archive/secularization_status.yaml new file mode 100644 index 0000000000..e22137d2b2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/secularization_status.yaml @@ -0,0 +1,70 @@ +id: https://nde.nl/ontology/hc/slot/secularization_status +name: secularization_status_slot +title: Secularization Status Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + secularization_status: + description: 'Whether the religious site remains active or has undergone secularization. + + + Describes current operational status: + + - **Active religious institution**: Ongoing worship, No secularization + + - **Partially secularized**: Worship continues, Collections transferred + + - **Fully secularized**: Deconsecrated, Converted to museum/cultural center + + - **Closed/Redundant**: Building closed, Collections at risk or relocated + + - **Shared use**: Religious + cultural functions (church concerts, exhibitions) + + - **State ownership**: Government owns building, Religious community uses it + + + Critical for understanding collection stability and access prospects. + + + Secularization trends: + + - Netherlands: 2-3 churches close per week (2010s) + + - Germany: Protestant church closures increase + + - UK: Church of England "redundant churches" program + + - Collections often transferred to diocesan or state archives + + + Examples: + + - "Active religious institution, No secularization" + + - "Partially secularized, Collections transferred to diocesan archive 2015" + + - "Deconsecrated 2008, Converted to museum/concert hall" + + - "Building sold to foundation, Religious community retains collection access" + + ' + range: string + slot_uri: hc:secularizationStatus + comments: + - schema:operatingStatus does not exist in Schema.org - use hc namespace + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:secularizationStatus diff --git a/schemas/20251121/linkml/modules/slots/archive/security_level.yaml b/schemas/20251121/linkml/modules/slots/archive/security_level.yaml new file mode 100644 index 0000000000..ca04f27342 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/security_level.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/security_level +name: security_level_slot +title: Security Level Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + security_level: + description: 'Security level classification for storage facilities. + + + Common values: + + - STANDARD - Basic security measures + + - ENHANCED - Additional access controls + + - HIGH - Restricted access, specialized security + + - MAXIMUM - Highest security, vault-level protection + + ' + range: string + slot_uri: hc:securityLevel + examples: + - value: HIGH + description: High-security storage for valuable items + related_mappings: + - dcterms:accessRights + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:securityLevel diff --git a/schemas/20251121/linkml/modules/slots/archive/segment_confidence.yaml b/schemas/20251121/linkml/modules/slots/archive/segment_confidence.yaml new file mode 100644 index 0000000000..4c476f1393 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/segment_confidence.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/segment_confidence +name: segment_confidence_slot +title: Segment Confidence Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + segment_confidence: + description: 'Confidence score for this segment (0.0-1.0). + + **Ontology mapping**: Uses sosa:hasSimpleResult because segmentation models act as sensors producing observation results.' + range: float + minimum_value: 0.0 + maximum_value: 1.0 + slot_uri: sosa:hasSimpleResult + close_mappings: + - prov:value + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/segment_end_seconds.yaml b/schemas/20251121/linkml/modules/slots/archive/segment_end_seconds.yaml new file mode 100644 index 0000000000..db9fb53ab7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/segment_end_seconds.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/segment_end_seconds +name: segment_end_seconds_slot +title: Segment End Seconds Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + segment_end_seconds: + description: End time in seconds + range: float + slot_uri: hc:segmentEndSeconds + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:segmentEndSeconds diff --git a/schemas/20251121/linkml/modules/slots/archive/segment_index.yaml b/schemas/20251121/linkml/modules/slots/archive/segment_index.yaml new file mode 100644 index 0000000000..1b1631871d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/segment_index.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/segment_index +name: segment_index_slot +title: Segment Index Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + segment_index: + description: 'Sequential index of this segment within the parent content. + + + Zero-based index for ordering segments: + + - Subtitle: Order in which captions appear + + - Annotation: Detection sequence + + + Enables reconstruction of segment order when times overlap + + or for stable sorting. + + ' + range: integer + slot_uri: hc:segmentIndex + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:segmentIndex diff --git a/schemas/20251121/linkml/modules/slots/archive/segment_language.yaml b/schemas/20251121/linkml/modules/slots/archive/segment_language.yaml new file mode 100644 index 0000000000..d58dc1439b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/segment_language.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/segment_language +name: segment_language_slot +title: Segment Language Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + segment_language: + description: Language of speech in this segment (ISO 639-1) + range: string + slot_uri: hc:segmentLanguage + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:segmentLanguage diff --git a/schemas/20251121/linkml/modules/slots/archive/segment_start_seconds.yaml b/schemas/20251121/linkml/modules/slots/archive/segment_start_seconds.yaml new file mode 100644 index 0000000000..c6e935ef08 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/segment_start_seconds.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/segment_start_seconds +name: segment_start_seconds_slot +title: Segment Start Seconds Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + segment_start_seconds: + description: Start time in seconds + range: float + slot_uri: hc:segmentStartSeconds + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:segmentStartSeconds diff --git a/schemas/20251121/linkml/modules/slots/archive/segment_text.yaml b/schemas/20251121/linkml/modules/slots/archive/segment_text.yaml new file mode 100644 index 0000000000..8319620ffe --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/segment_text.yaml @@ -0,0 +1,42 @@ +id: https://nde.nl/ontology/hc/slot/segment_text +name: segment_text_slot +title: Segment Text Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + segment_text: + description: 'Text content for this segment. + + + Web Annotation: bodyValue for textual content. + + + **Usage by content type**: + + - Subtitles: Displayed caption text + + - Transcripts: Spoken words during this segment + + - Annotations: Description of detected content + + - Chapters: Chapter title/description + + ' + range: string + slot_uri: hc:segmentText + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:segmentText diff --git a/schemas/20251121/linkml/modules/slots/archive/sensory_heritage_domain.yaml b/schemas/20251121/linkml/modules/slots/archive/sensory_heritage_domain.yaml new file mode 100644 index 0000000000..df79c1fd3f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/sensory_heritage_domain.yaml @@ -0,0 +1,59 @@ +id: https://nde.nl/ontology/hc/slot/sensory_heritage_domain +name: sensory_heritage_domain_slot +title: Sensory Heritage Domain Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + sensory_heritage_domain: + description: 'Which sensory dimensions constitute the heritage being preserved. + + + Identifies sensory modalities and knowledge types: + + - **Taste**: Flavor profiles, ingredient combinations, recipe formulations + + - **Scent**: Aromatic compositions, perfume notes, brewing/cooking aromas + + - **Texture**: Mouthfeel, consistency, artisanal production textures + + - **Visual**: Traditional appearance, color, plating/presentation + + - **Auditory**: Sounds of traditional production (grinding, brewing, distilling) + + - **Intangible knowledge**: Craft techniques, timing, judgment skills + + - **Terroir**: Geographic flavor identity (wine, cheese, spices) + + + Sensory heritage domains clarify what is being preserved beyond tangible products. + + + Examples: + + - "Taste (beer), Scent (brewing aromas), Intangible (monastic brewing)" + + - "Scent (perfume notes), Intangible (nose expertise), Visual (bottle design)" + + - "Taste (cheese flavor), Texture (aging consistency), Intangible (raw milk handling)" + + - "Taste (whisky profile), Scent (peat smoke), Intangible (distiller judgment)" + + ' + range: string + slot_uri: crm:P2_has_type + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P2_has_type diff --git a/schemas/20251121/linkml/modules/slots/archive/sentence_count.yaml b/schemas/20251121/linkml/modules/slots/archive/sentence_count.yaml new file mode 100644 index 0000000000..78993abf59 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/sentence_count.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/sentence_count +name: sentence_count_slot +title: Sentence Count Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + sentence_count: + slot_uri: hc:sentenceCount + description: 'Approximate number of sentences in the transcript. + + + Derived from punctuation analysis or NLP sentence segmentation. + + + Useful for content analysis and readability metrics. + + ' + range: integer + comments: + - schema:interactionCount is a CLASS (InteractionCounter), not a property. Sentence count is a text metric without standard ontology equivalent. + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:sentenceCount diff --git a/schemas/20251121/linkml/modules/slots/archive/served_by.yaml b/schemas/20251121/linkml/modules/slots/archive/served_by.yaml new file mode 100644 index 0000000000..eeddfd7d23 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/served_by.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/served_by +name: served_by_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +slots: + served_by: + description: Provider entity that serves or hosts this resource + slot_uri: schema:provider + range: string # uriorcurie + broad_mappings: + - prov:wasAttributedTo + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:provider diff --git a/schemas/20251121/linkml/modules/slots/archive/serves_finding_aid.yaml b/schemas/20251121/linkml/modules/slots/archive/serves_finding_aid.yaml new file mode 100644 index 0000000000..fdddae26d2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/serves_finding_aid.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/serves_finding_aid +name: serves_finding_aid_slot +imports: +- linkml:types +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +slots: + serves_finding_aid: + slot_uri: hc:servesFindingAids + comments: + - rico:isOrWasProviderOf does not exist in RiC-O - use hc namespace + range: string # uriorcurie + multivalued: true + inlined_as_list: false # Fixed invalid inline for primitive type + description: "Finding aids hosted/served by this digital platform.\n\n**INVERSE RELATIONSHIP**:\n- Forward: FindingAid.served_by \u2192 DigitalPlatform/WebPortal (finding aid is served by platform)\n- Inverse: DigitalPlatform.serves_finding_aids \u2192 FindingAid[] (platform serves finding aids)\n\n**USE CASES**:\n1. \"What finding aids are available on this platform?\" \u2192 Follow serves_finding_aids\n2. \"Which platforms host EAD finding aids?\" \u2192 Query platforms with EAD-format finding aids\n3. Platform inventory: Map all finding aids served by each digital infrastructure\n\n**EXAMPLES**:\n- Archieven.nl serves 1000+ EAD finding aids\n- Archives Portal Europe serves finding aids from 30+ European countries\n- National Archives website serves collection guides and inventories\n\n**NOTE**: References FindingAid instances by URI. For full objects, \ndereference or query the FindingAid directly." + examples: + - value: https://nde.nl/ontology/hc/finding-aid/na/voc-inventory + description: VOC Archives inventory finding aid + - value: https://nde.nl/ontology/hc/finding-aid/gelders-archief/ead-001 + description: Gelders Archief EAD finding aid + close_mappings: + - schema:availableService + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/serves_function_of.yaml b/schemas/20251121/linkml/modules/slots/archive/serves_function_of.yaml new file mode 100644 index 0000000000..1b39c6a9d9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/serves_function_of.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/serves_function_of +name: serves_function_of_slot +title: Serves Function Of Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + serves_function_of: + slot_uri: hc:servesFunctionOf + description: 'What function(s) this temporary location serves from the main facility. + + + List of functions that have been relocated here. + + + Common values: + + - "Public entrance" + + - "Reading room" + + - "Collection storage" + + - "Exhibition space" + + - "Staff offices" + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:servesFunctionOf diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_comment.yaml b/schemas/20251121/linkml/modules/slots/archive/serves_or_served.yaml similarity index 57% rename from schemas/20251121/linkml/modules/slots/has_or_had_comment.yaml rename to schemas/20251121/linkml/modules/slots/archive/serves_or_served.yaml index f8759c1034..b550d427cb 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_comment.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/serves_or_served.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_comment -name: has_or_had_comment -title: Has or Had Comment +id: https://nde.nl/ontology/hc/slot/serves_or_served +name: serves_or_served +title: Serves or Served prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -16,31 +16,31 @@ default_prefix: hc imports: - linkml:types slots: - has_or_had_comment: - slot_uri: schema:comment - description: 'A comment associated with an entity. + serves_or_served: + slot_uri: schema:audience + description: 'The user community or audience served by an entity. **USAGE**: Used for: - - Video comments + - Target user communities - - Review comments + - Audience types - - Annotation notes + - Stakeholder groups ' range: string # uriorcurie - # range: Comment + # range: UserCommunity multivalued: true exact_mappings: - - schema:comment + - schema:audience examples: - value: - comment_text: Great video about the collection! - comment_author: Visitor123 - description: User comment on video + community_name: Academic Researchers + community_type: RESEARCH + description: Academic research community annotations: custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/serves_staff.yaml b/schemas/20251121/linkml/modules/slots/archive/serves_staff.yaml new file mode 100644 index 0000000000..88f83e0b00 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/serves_staff.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/serves_staff +name: serves_staff_slot +title: serves_staff slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + serves_staff: + slot_uri: schema:eligibleCustomerType + description: 'Whether facility serves staff (canteen function). + + ' + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:eligibleCustomerType diff --git a/schemas/20251121/linkml/modules/slots/archive/serves_visitors_only.yaml b/schemas/20251121/linkml/modules/slots/archive/serves_visitors_only.yaml new file mode 100644 index 0000000000..cc374d70d4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/serves_visitors_only.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/serves_visitors_only +name: serves_visitors_only_slot +title: serves_visitors_only slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + serves_visitors_only: + slot_uri: schema:eligibleCustomerType + description: 'Whether facility is for museum/archive visitors only. + + TRUE: Requires museum admission or located inside security. + + FALSE: Accessible without admission. + + ' + range: boolean + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:eligibleCustomerType diff --git a/schemas/20251121/linkml/modules/slots/archive/service_area.yaml b/schemas/20251121/linkml/modules/slots/archive/service_area.yaml new file mode 100644 index 0000000000..d6471cf3ab --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/service_area.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/service_area +name: service_area_slot +title: Service Area Slot +prefixes: + schema: http://schema.org/ + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + service_area: + slot_uri: schema:areaServed + description: "Geographic area(s) served by this heritage custodian.\n\n**Dutch Term**: \"Werkgebied\" - the operational territory where the custodian\nprovides services, collects materials, or has jurisdiction.\n\n**Use Cases**:\n\n1. **Archives (Werkgebied)**:\n - Provincial archive: Covers entire province\n - Regional archive: Covers specific municipalities\n - Municipal archive: Covers single city\n\n2. **Libraries (Service District)**:\n - Public library: Defined lending district\n - Academic library: May have national scope\n\n3. **Museums (Collection Scope)**:\n - Regional museum: Collects from specific area\n - National museum: Country-wide collection mandate\n\n**Multiple Service Areas**:\n\nA custodian may have multiple service areas:\n- Current service area (is_historical_boundary = false)\n- Historical service areas (is_historical_boundary = true)\n- Different service areas for different functions\n\n**Example - Noord-Hollands Archief**:\n\n```yaml\nservice_area:\n\ + \ - service_area_name: \"NHA Provincial Coverage\"\n service_area_type: PROVINCIAL\n covers_subregions:\n - iso_3166_2_code: \"NL-NH\"\n - service_area_name: \"NHA Municipal Records (Haarlem)\"\n service_area_type: MUNICIPAL\n covers_settlements:\n - geonames_id: 2755003\n```" + range: string # uriorcurie + # range: ServiceArea + multivalued: true + inlined_as_list: false # Fixed invalid inline for primitive type + examples: + - value: 'service_area_id: https://nde.nl/ontology/hc/servicearea/nha-werkgebied + + service_area_name: Noord-Hollands Archief Werkgebied + + service_area_type: REGIONAL + + ' + description: Archive service area covering multiple municipalities + broad_mappings: + - dcterms:subject + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:areaServed diff --git a/schemas/20251121/linkml/modules/slots/archive/service_area_description.yaml b/schemas/20251121/linkml/modules/slots/archive/service_area_description.yaml new file mode 100644 index 0000000000..e47fd9cede --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/service_area_description.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/service_area_description +name: service_area_description_slot +title: Service Area Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + service_area_description: + range: string + slot_uri: dcterms:description + description: 'Description of the service area, including historical context if relevant. + + + May include: + + - Historical boundaries and changes + + - Relationship to administrative divisions + + - Special notes about service scope + + ' + examples: + - value: Serves the municipalities of Haarlem, Heemskerk, Beverwijk, and surrounding areas. Area expanded in 2001 after merger with Gemeentearchief Haarlem. + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:description diff --git a/schemas/20251121/linkml/modules/slots/archive/service_area_id.yaml b/schemas/20251121/linkml/modules/slots/archive/service_area_id.yaml new file mode 100644 index 0000000000..6c68f95dbc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/service_area_id.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/service_area_id +name: service_area_id_slot +title: Service Area Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + service_area_id: + identifier: true + range: string # uriorcurie + description: Unique identifier for this service area + slot_uri: hc:serviceAreaId + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:serviceAreaId diff --git a/schemas/20251121/linkml/modules/slots/archive/service_area_name.yaml b/schemas/20251121/linkml/modules/slots/archive/service_area_name.yaml new file mode 100644 index 0000000000..fbdaf2d339 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/service_area_name.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/service_area_name +name: service_area_name_slot +title: Service Area Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + service_area_name: + range: string + slot_uri: schema:name + description: 'Human-readable name for the service area. + + + Examples: + + - "Noord-Holland Province" (provincial archive service area) + + - "Amsterdam Municipal Libraries Service District" + + - "Veluwe Regional Heritage Area" + + ' + examples: + - value: Noord-Hollands Archief Werkgebied + description: Service area of the Noord-Hollands Archief + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:name diff --git a/schemas/20251121/linkml/modules/slots/archive/service_area_type.yaml b/schemas/20251121/linkml/modules/slots/archive/service_area_type.yaml new file mode 100644 index 0000000000..3163c7ab1d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/service_area_type.yaml @@ -0,0 +1,48 @@ +id: https://nde.nl/ontology/hc/slot/service_area_type +name: service_area_type_slot +title: Service Area Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/ServiceAreaTypeEnum +default_prefix: hc +slots: + service_area_type: + range: string # uriorcurie + # range: ServiceAreaTypeEnum + slot_uri: dcterms:type + description: 'Classification of the service area type. + + + Types include: + + - MUNICIPAL: Single municipality service area + + - PROVINCIAL: Entire province coverage + + - REGIONAL: Multi-municipality regional area + + - HISTORICAL: Historical administrative boundary (no longer current) + + - NATIONAL: Country-wide service area + + - CUSTOM: Non-standard or negotiated service area + + ' + examples: + - value: PROVINCIAL + description: Covers entire province + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:type diff --git a/schemas/20251121/linkml/modules/slots/archive/service_offering.yaml b/schemas/20251121/linkml/modules/slots/archive/service_offering.yaml new file mode 100644 index 0000000000..29bf51a771 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/service_offering.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/service_offering +name: service_offering_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + service_offering: + slot_uri: schema:hasOfferCatalog + description: 'Services provided by this encompassing body to member custodians. + + + **Primarily for NetworkOrganisation and Consortium types**. + + UmbrellaOrganisations typically provide governance, not services. + + ' + range: string + required: false + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:hasOfferCatalog diff --git a/schemas/20251121/linkml/modules/slots/archive/service_portfolio.yaml b/schemas/20251121/linkml/modules/slots/archive/service_portfolio.yaml new file mode 100644 index 0000000000..4156f63ba2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/service_portfolio.yaml @@ -0,0 +1,62 @@ +id: https://nde.nl/ontology/hc/slot/service_portfolio +name: service_portfolio_slot +title: Service Portfolio Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + service_portfolio: + description: 'What services the institution offers across its multiple functions. + + + Enumerates user-facing services: + + - **Archival services**: Research consultations, document access, reproductions + + - **Museum services**: Exhibitions, guided tours, object loans + + - **Library services**: Reference assistance, borrowing, interlibrary loan + + - **Educational services**: School programs, workshops, lectures + + - **Research services**: Fellowships, research access, scholarly support + + - **Digital services**: Online collections, virtual exhibitions, digital research tools + + - **Public programs**: Events, community engagement, outreach + + - **Conservation services**: Treatment, consultation, preservation training + + + Service portfolio demonstrates whether institution truly operates as mixed type. + + + Examples: + + - "Archival research, Public exhibitions, Educational programs, Digitization lab" + + - "Museum exhibitions, Library reference, Research fellowships, Conservation lab" + + - "Document access, Gallery tours, Lecture series, Online database" + + - "Reading room, Exhibition galleries, Education center, Digital portal" + + ' + range: string + multivalued: true + slot_uri: schema:serviceType + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:serviceType diff --git a/schemas/20251121/linkml/modules/slots/archive/services_offered.yaml b/schemas/20251121/linkml/modules/slots/archive/services_offered.yaml new file mode 100644 index 0000000000..9c3b8fa949 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/services_offered.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/services_offered +name: services_offered_slot +title: Services Offered Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + services_offered: + description: 'List of services available at this branch office. + + + Schema.org: hasOfferCatalog for service listings. + + + Typically a subset of services available at main location. + + ' + range: string + multivalued: true + slot_uri: hc:servicesOffered + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:servicesOffered diff --git a/schemas/20251121/linkml/modules/slots/archive/setpoint_max.yaml b/schemas/20251121/linkml/modules/slots/archive/setpoint_max.yaml new file mode 100644 index 0000000000..536afe9670 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/setpoint_max.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/setpoint_max +name: setpoint_max_slot +title: Setpoint Max Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + setpoint_max: + slot_uri: hc:setpoint_max + range: string + description: 'Setpoint Max for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:setpoint_max diff --git a/schemas/20251121/linkml/modules/slots/archive/setpoint_min.yaml b/schemas/20251121/linkml/modules/slots/archive/setpoint_min.yaml new file mode 100644 index 0000000000..92e9a7763c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/setpoint_min.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/setpoint_min +name: setpoint_min_slot +title: Setpoint Min Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + setpoint_min: + slot_uri: hc:setpoint_min + range: string + description: 'Setpoint Min for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:setpoint_min diff --git a/schemas/20251121/linkml/modules/slots/archive/setpoint_tolerance.yaml b/schemas/20251121/linkml/modules/slots/archive/setpoint_tolerance.yaml new file mode 100644 index 0000000000..6634ffd04c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/setpoint_tolerance.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/setpoint_tolerance +name: setpoint_tolerance_slot +title: Setpoint Tolerance Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + setpoint_tolerance: + slot_uri: hc:setpoint_tolerance + range: string + description: 'Setpoint Tolerance for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:setpoint_tolerance diff --git a/schemas/20251121/linkml/modules/slots/archive/setpoint_type.yaml b/schemas/20251121/linkml/modules/slots/archive/setpoint_type.yaml new file mode 100644 index 0000000000..7b74087ba9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/setpoint_type.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/setpoint_type +name: setpoint_type_slot +title: Setpoint Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + setpoint_type: + slot_uri: hc:setpoint_type + range: string + description: 'Setpoint Type for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:setpoint_type diff --git a/schemas/20251121/linkml/modules/slots/archive/setpoint_unit.yaml b/schemas/20251121/linkml/modules/slots/archive/setpoint_unit.yaml new file mode 100644 index 0000000000..fd53a09c7e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/setpoint_unit.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/setpoint_unit +name: setpoint_unit_slot +title: Setpoint Unit Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + setpoint_unit: + slot_uri: hc:setpoint_unit + range: string + description: 'Setpoint Unit for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:setpoint_unit diff --git a/schemas/20251121/linkml/modules/slots/archive/setpoint_value.yaml b/schemas/20251121/linkml/modules/slots/archive/setpoint_value.yaml new file mode 100644 index 0000000000..ec6af041a2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/setpoint_value.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/setpoint_value +name: setpoint_value_slot +title: Setpoint Value Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + setpoint_value: + slot_uri: hc:setpoint_value + range: float + description: 'Setpoint Value for heritage custodian entities. + + ' + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + exact_mappings: + - hc:setpoint_value diff --git a/schemas/20251121/linkml/modules/slots/archive/settlement.yaml b/schemas/20251121/linkml/modules/slots/archive/settlement.yaml new file mode 100644 index 0000000000..b274996f85 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/settlement.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/settlement +name: settlement +title: Settlement Slot +description: "City, town, or municipality where place is located.\n\nLinks to Settlement class with GeoNames numeric identifiers.\n\nGeoNames ID format: Numeric (e.g., 5206379 for Pittsburgh, 2759794 for Amsterdam)\n\nUse when:\n- Place is in a specific city (e.g., \"Amsterdam museum\" \u2192 settlement.geonames_id = 2759794)\n- Feature types are city-specific (e.g., \"City of Pittsburgh historic designation\")\n- Precision beyond country/subregion is needed\n\nExamples:\n- \"Amsterdam museum\" \u2192 settlement.geonames_id = 2759794, settlement_name = \"Amsterdam\"\n- \"Pittsburgh designation\" \u2192 settlement.geonames_id = 5206379, settlement_name = \"Pittsburgh\"\n- \"Rio museum\" \u2192 settlement.geonames_id = 3451190, settlement_name = \"Rio de Janeiro\"\n\nBenefits of GeoNames IDs:\n- Resolves ambiguity (41 \"Springfield\"s in USA have different GeoNames IDs)\n- Stable identifier (persists even if city name or boundaries change)\n- Links to coordinates, population, timezone via\ + \ GeoNames API\n" +imports: +- linkml:types +slots: + settlement: + slot_uri: schema:location + range: string # uriorcurie + # range: Settlement + required: false + multivalued: false + description: "City/town where this place is located (OPTIONAL).\n\nLinks to Settlement class with GeoNames numeric identifiers.\n\nGeoNames ID resolves ambiguity: 41 \"Springfield\"s in USA have different IDs.\n\nSchema.org: location for settlement reference.\n\nUse when:\n- Place is in a specific city (e.g., \"Amsterdam museum\" \u2192 GeoNames 2759794)\n- Feature types are city-specific (e.g., \"City of Pittsburgh historic designation\")\n- Maximum geographic precision needed\n\nExamples:\n- \"Amsterdam museum\" \u2192 settlement.geonames_id = 2759794\n- \"Pittsburgh designation\" \u2192 settlement.geonames_id = 5206379\n- \"Rio museum\" \u2192 settlement.geonames_id = 3451190\n\nNOTE: settlement must be within the specified country and subregion (if provided).\n\nGeoNames lookup: https://www.geonames.org/{geonames_id}/\n" + close_mappings: + - schema:addressLocality + annotations: + custodian_types: '["*"]' +comments: +- Optional - only use when specific city/town is known +- Must be consistent with country and subregion (settlement must be within both) +- Prefer GeoNames ID over settlement name for disambiguation +- 'GeoNames lookup: https://www.geonames.org/{geonames_id}/' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/settlement_name.yaml b/schemas/20251121/linkml/modules/slots/archive/settlement_name.yaml new file mode 100644 index 0000000000..c4937d232f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/settlement_name.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/settlement_name +name: settlement_name_slot +title: Settlement Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + settlement_name: + description: "Human-readable name of the settlement.\n\nUse the official English name or local language name. For cities with\nmultiple official languages (e.g., Brussels, Bruxelles, Brussel), prefer\nthe English name for consistency.\n\nFormat: City name without country suffix\n\nExamples:\n- \"Amsterdam\" (not \"Amsterdam, Netherlands\")\n- \"Pittsburgh\" (not \"Pittsburgh, PA\")\n- \"Rio de Janeiro\" (not \"Rio de Janeiro, Brazil\")\n- \"Tokyo\" (not \"\u6771\u4EAC\")\n\nNote: For programmatic matching, always use geonames_id when available.\nSettlement names can be ambiguous (e.g., 41 \"Springfield\"s in USA).\n" + range: string + required: true + slot_uri: schema:name + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:name diff --git a/schemas/20251121/linkml/modules/slots/archive/sex.yaml b/schemas/20251121/linkml/modules/slots/archive/sex.yaml new file mode 100644 index 0000000000..21b281cc83 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/sex.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/sex +name: sex_slot +title: Sex Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + sex: + description: 'Sex of the organism. + + + **Values**: MALE, FEMALE, HERMAPHRODITE, UNKNOWN, NOT_APPLICABLE + + ' + range: string + slot_uri: dwc:sex + annotations: + custodian_types: '["*"]' + exact_mappings: + - dwc:sex diff --git a/schemas/20251121/linkml/modules/slots/archive/shares_catalog_with_main.yaml b/schemas/20251121/linkml/modules/slots/archive/shares_catalog_with_main.yaml new file mode 100644 index 0000000000..989e77ae45 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/shares_catalog_with_main.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/shares_catalog_with_main +name: shares_catalog_with_main_slot +title: Shares Catalog With Main Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + shares_catalog_with_main: + slot_uri: hc:sharesCatalogWithMain + description: 'Whether this annex uses the same catalog/finding aids as main reading room. + + + TRUE: Same catalog system + + FALSE: Separate catalog (may indicate specialized collection) + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:sharesCatalogWithMain diff --git a/schemas/20251121/linkml/modules/slots/archive/shelf_mark.yaml b/schemas/20251121/linkml/modules/slots/archive/shelf_mark.yaml new file mode 100644 index 0000000000..045b61e9c4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/shelf_mark.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/shelf_mark +name: shelf_mark_slot +title: Shelf Mark Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + bf: http://id.loc.gov/ontologies/bibframe/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + shelf_mark: + description: 'Shelf mark or location identifier within collection. + + ' + range: string + slot_uri: bf:shelfMark + annotations: + custodian_types: '["*"]' + exact_mappings: + - bf:shelfMark diff --git a/schemas/20251121/linkml/modules/slots/archive/shelf_number.yaml b/schemas/20251121/linkml/modules/slots/archive/shelf_number.yaml new file mode 100644 index 0000000000..1e3835b7ff --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/shelf_number.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/shelf_number +name: shelf_number_slot +title: Shelf Number Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + shelf_number: + description: 'Shelf level within a bay (often numbered from bottom). + + + HC Ontology: `hc:shelfNumber` + + ' + range: integer + slot_uri: hc:shelfNumber + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:shelfNumber diff --git a/schemas/20251121/linkml/modules/slots/archive/shipping_method.yaml b/schemas/20251121/linkml/modules/slots/archive/shipping_method.yaml new file mode 100644 index 0000000000..d28cde8ce6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/shipping_method.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/shipping_method +name: shipping_method_slot +title: Shipping Method Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + shipping_method: + description: 'Transportation method and logistics provider. + + ' + range: string + slot_uri: hc:shippingMethod + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:shippingMethod diff --git a/schemas/20251121/linkml/modules/slots/archive/shop_type.yaml b/schemas/20251121/linkml/modules/slots/archive/shop_type.yaml new file mode 100644 index 0000000000..998409112c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/shop_type.yaml @@ -0,0 +1,48 @@ +id: https://nde.nl/ontology/hc/slot/shop_type +name: shop_type_slot +title: Shop Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/GiftShopTypeEnum +default_prefix: hc +slots: + shop_type: + description: 'Type of gift shop using GiftShopTypeEnum classification. + + + Types include: + + - MUSEUM_SHOP: General museum merchandise + + - BOOKSHOP: Primarily books and publications + + - DESIGN_STORE: Design objects and reproductions + + - SPECIALTY_SHOP: Themed or collection-specific + + - POP_UP: Temporary retail for exhibitions + + - KIOSK: Small-format retail point + + + Dublin Core: type for classification. + + ' + range: string # uriorcurie + # range: GiftShopTypeEnum + slot_uri: hc:shopType + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:shopType diff --git a/schemas/20251121/linkml/modules/slots/archive/short_name.yaml b/schemas/20251121/linkml/modules/slots/archive/short_name.yaml new file mode 100644 index 0000000000..17013c77cd --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/short_name.yaml @@ -0,0 +1,88 @@ +id: https://nde.nl/ontology/hc/slot/short_name +name: short_name_slot +title: Short Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +# default_range: string +description: 'Abbreviated/short form of a name, typically used for address component values. + + + Address data sources often provide both full and abbreviated name forms. + + This slot captures the abbreviated or commonly-used short version. + + + **SOURCE-AGNOSTIC DESIGN**: + + + This slot works with address data from any source: + + - Website scraping + + - Registry data (ISIL, KvK, etc.) + + - API responses + + - Manual data entry + + + Example pairs (long_name / short_name): + + - "Netherlands" / "NL" + + - "Noord-Holland" / "NH" + + - "Amsterdam" / "Amsterdam" (no abbreviation) + + ' +slots: + short_name: + slot_uri: schema:alternateName + range: string + required: false + description: 'Abbreviated/short form of a name. + + + The abbreviated or commonly-used form of an address component value. + + May equal long_name when no standard abbreviation exists. + + + Schema.org: alternateName - "An alias for the item." + + ' + exact_mappings: + - schema:alternateName + close_mappings: + - skos:altLabel + examples: + - value: NL + description: ISO 3166-1 alpha-2 country code + - value: NH + description: Dutch province abbreviation + - value: CA + description: US state postal abbreviation + - value: Amsterdam + description: Same as long_name (no abbreviation) + - value: '1' + description: House number (same as long_name) + - value: UK + description: Country abbreviation + annotations: + custodian_types: '["*"]' +comments: +- Used in AddressComponent for abbreviated address values +- Paired with long_name for full version +- May equal long_name when no abbreviation exists +- Source-agnostic: works with any address data source diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_width.yaml b/schemas/20251121/linkml/modules/slots/archive/silence_total_seconds.yaml similarity index 54% rename from schemas/20251121/linkml/modules/slots/has_or_had_width.yaml rename to schemas/20251121/linkml/modules/slots/archive/silence_total_seconds.yaml index 34429d1a55..71f58be58b 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_width.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/silence_total_seconds.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_width -name: has_or_had_width_slot -title: Has Or Had Width Slot +id: https://nde.nl/ontology/hc/slot/silence_total_seconds +name: silence_total_seconds_slot +title: Silence Total Seconds Slot prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -12,19 +12,26 @@ prefixes: rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc imports: - linkml:types +default_prefix: hc slots: - has_or_had_width: - name: has_or_had_width - description: Width of a bounding box or object. MIGRATED from width (Rule 53). - slot_uri: schema:width + silence_total_seconds: + description: 'Total duration of silence in the video (seconds). + + + High silence percentage may indicate: + + - Extended pauses + + - Silent segments (B-roll without audio) + + - Audio issues + + ' range: float + slot_uri: hc:silenceTotalSeconds annotations: - rico_naming_convention: Follows RiC-O "hasOrHad" pattern for temporal predicates. - replaces_slots: width - migration_date: '2026-01-28' custodian_types: '["*"]' exact_mappings: - - schema:width + - hc:silenceTotalSeconds diff --git a/schemas/20251121/linkml/modules/slots/archive/site_portfolio.yaml b/schemas/20251121/linkml/modules/slots/archive/site_portfolio.yaml new file mode 100644 index 0000000000..040c5fef9c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/site_portfolio.yaml @@ -0,0 +1,53 @@ +id: https://nde.nl/ontology/hc/slot/site_portfolio +name: site_portfolio_slot +title: Site Portfolio Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + site_portfolio: + description: 'Scope and scale of physical features under management. + + + Describes the extent of the custodian''s responsibilities: + + - Number of sites/monuments managed + + - Geographic distribution (single site vs. regional/national network) + + - Type diversity (specialized vs. multi-type portfolio) + + - Management model (ownership vs. stewardship vs. advisory) + + + Helps understand organizational capacity and scope. + + + Examples: + + - "Single monument (Eiffel Tower)" - Focused management + + - "400+ monuments across England" - Large national network + + - "12 historic windmills in Utrecht province" - Regional cluster + + - "UNESCO World Heritage Site complex (Angkor Wat)" - Multi-feature site + + ' + range: string + slot_uri: schema:owns + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:owns diff --git a/schemas/20251121/linkml/modules/slots/archive/skill.yaml b/schemas/20251121/linkml/modules/slots/archive/skill.yaml new file mode 100644 index 0000000000..e403c93e36 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/skill.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/skill +name: skill_slot +title: Skills Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + skill: + description: 'Skills listed on LinkedIn profile. + + Simple string array (not structured objects). + + ' + range: string + multivalued: true + slot_uri: hc:skills + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:skills diff --git a/schemas/20251121/linkml/modules/slots/archive/slot_fixes.yaml b/schemas/20251121/linkml/modules/slots/archive/slot_fixes.yaml new file mode 100644 index 0000000000..2b6384e6c3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/slot_fixes.yaml @@ -0,0 +1,3062 @@ +fixes: +- original_slot_id: https://nde.nl/ontology/hc/slot/activities_societies + processed: + status: true + timestamp: '2026-01-14T15:00:00Z' + session: session-2026-01-14-type-migration + notes: 'FULLY MIGRATED: EducationCredential - activities_societies REMOVED, using has_or_had_membership + has_or_had_activity_type (Rule 53)' + revision: + - label: has_or_had_activity_type + type: slot + - label: ActivityType + type: class + - label: includes_or_included + type: slot + - label: ActivityTypes + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/actual_end + processed: + status: true + timestamp: '2026-01-14T16:00:00Z' + session: session-2026-01-14-type-migration + notes: 'FULLY MIGRATED: TemporaryLocation - actual_end REMOVED, using temporal_extent with TimeSpan.end_of_the_end (Rule 53)' + revision: + - label: temporal_extent + type: slot + - label: TimeSpan + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_acquisition_date + revision: + - label: is_or_was_acquired_through + type: slot + - label: AcquisitionEvent + type: class + - label: temporal_extent + type: slot + - label: TimeSpan + type: class + - label: end_of_the_end + type: slot + - label: Timestamp + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to is_or_was_approved_on + TimeSpan. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_approval_date + processed: + status: true + date: '2026-01-27' + notes: Fully migrated to is_or_was_approved_on + TimeSpan (Rule 53). Loan.yaml and Budget.yaml updated. Slot archived. + revision: + - label: is_or_was_approved_on + type: slot + - label: TimeSpan + type: class + - label: start_of_the_start + type: slot + - label: Timestamp + type: class + - label: start_of_the_start + type: slot + - label: Timestamp + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_archdiocese_name + processed: + status: true + date: '2026-01-27' + notes: Fully migrated to is_or_was_part_of + Archdiocese class (Rule 53). DiocesanArchive.yaml updated. Slot archived. + revision: + - label: is_or_was_part_of + type: slot + - label: Archdiocese + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_authority_file_abbreviation + revision: + - label: contributes_or_contributed + type: slot + - label: AuthorityData + type: class + - label: has_or_had_label + type: slot + - label: Label + type: class + - label: has_or_had_type + type: slot + - label: LabelType + type: class + - label: includes_or_included + type: slot + - label: LabelTypes + type: class + note: AbbreviationLabel class is defined in the LinkML file + processed: + status: true + date: '2026-01-27' + notes: Migrated to contributes_or_contributed + AuthorityData in ContributingAgency.yaml. Slot archived. +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_authority_file_name + revision: + - label: contributes_or_contributed + type: slot + - label: AuthorityData + type: class + - label: has_or_had_label + type: slot + - label: Label + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to contributes_or_contributed + AuthorityData in ContributingAgency.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_authority_file_url + revision: + - label: contributes_or_contributed + type: slot + - label: AuthorityData + type: class + - label: has_or_had_url + type: slot + - label: URL + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to contributes_or_contributed + AuthorityData + has_or_had_url + URL in ContributingAgency.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_auxiliary_place + revision: + - label: is_or_was_associated_with + type: slot + - label: Place + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to is_or_was_associated_with + Place in CustodianPlace.yaml (using AuxiliaryPlace range). Slot archived. +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_auxiliary_place_type + revision: + - label: has_or_had_type + type: slot + - label: PlaceType + type: class + - label: includes_or_included + type: slot + - label: PlaceTypes + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to has_or_had_type + PlaceType in AuxiliaryPlace.yaml. Slot archived. +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_auxiliary_platform + revision: + - label: is_or_was_associated_with + type: slot + - label: Platform + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to is_or_was_associated_with + Platform in DigitalPlatform.yaml (using AuxiliaryDigitalPlatform range). Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_auxiliary_platform_type + revision: + - label: has_or_had_type + type: slot + - label: PlatformType + type: class + - label: includes_or_included + type: slot + - label: PlatformTypes + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to has_or_had_type + PlatformType in AuxiliaryDigitalPlatform.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_av_equipment + revision: + - label: has_or_had_equipment + type: slot + - label: AVEquipment + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to has_or_had_equipment + AVEquipment in EducationCenter.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_availability_timespan + revision: + - label: has_or_had_time_interval + type: slot + - label: TimeSpan + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to has_or_had_time_interval + TimeSpan in WebPortalTypes.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_available_caption_language + revision: + - label: has_or_had_caption + type: slot + - label: Caption + type: class + - label: has_or_had_language + type: slot + - label: Language + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to has_or_had_caption + has_or_had_language in VideoPost.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_average_entry_duration_seconds + revision: + - label: had_or_had_time_interval + type: slot + - label: TimeSpan + type: class + - label: has_or_had_mean + type: slot + - label: MeanValue + type: class + - label: has_or_had_unit + type: slot + - label: Unit + type: class + value: seconds + processed: + status: true + date: '2026-01-27' + notes: Migrated to has_or_had_mean + MeanValue + has_or_had_unit in VideoSubtitle.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_average_scene_duration_seconds + revision: + - label: has_or_had_dhad_or_had_time_intervaluration + type: slot + - label: TimeSpan + type: class + - label: has_or_had_mean + type: slot + - label: MeanValue + type: class + - label: has_or_had_unit + type: slot + - label: Unit + type: class + value: seconds + processed: + status: true + date: '2026-01-27' + notes: Migrated to has_or_had_mean + MeanValue + has_or_had_unit in VideoAnnotationTypes.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_boundary + revision: + - label: has_or_had_boundary + type: slot + - label: Boundary + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to has_or_had_boundary + Boundary in ServiceArea.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_budget + revision: + - label: has_or_had_budget + type: slot + - label: Budget + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to has_or_had_budget + Budget in Custodian.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_climate_control + revision: + - label: provides_or_provided + type: slot + - label: ClimateControl + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to provides_or_provided + ClimateControl in various classes (ExhibitionSpace, Warehouse, etc.). Slot archived. +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_clipping + revision: + - label: contains_or_contained + type: slot + - label: Clipping + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to contains_or_contained + Clipping in VideoAudioAnnotation.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has-computer-terminals + revision: + - label: has_or_had_equipment + type: slot + - label: ComputerTerminal + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to has_or_had_equipment + ComputerTerminal in ReadingRoom.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_deacidification_facility + revision: + - label: provides_or_provided + type: slot + - label: DeacidificationFacility + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to provides_or_provided + DeacidificationFacility in ConservationLab.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_derived_observation + revision: + - label: refers_or_referred_to + type: slot + - label: Entity + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to refers_or_referred_to + Entity in EntityReconstruction.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_feature_type + revision: + - label: has_or_had_type + type: slot + - label: FeatureType + type: class + - label: includes_or_included + type: slot + - label: FeatureTypes + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to has_or_had_type + FeatureType in CustodianPlace.yaml and AuxiliaryPlace.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_fellows_program + revision: + - label: has_or_had_program + type: slot + - label: FellowsProgram + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to has_or_had_program + FellowsProgram in ResearchCenter.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_forklift_access + revision: + - label: provides_or_provided + type: slot + - label: ForkliftAccess + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to provides_or_provided + ForkliftAccess in Warehouse.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_fume_hood + revision: + - label: provides_or_provided + type: slot + - label: FumeHood + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to provides_or_provided + FumeHood in ConservationLab.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_geospatial_location + revision: + - label: has_or_had_location + type: slot + - label: GeospatialLocation + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_hands_on_facility + revision: + - label: provides_or_provided + type: slot + - label: HandsOnFacility + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_imaging_equipment + revision: + - label: has_or_had_equipment + type: slot + - label: ImagingEquipment + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_link + revision: + - label: has_or_had_url + type: slot + - label: URL + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_loading_dock + revision: + - label: provides_or_provided + type: slot + - label: LoadingDock + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_local_collection + revision: + - label: has_or_had_collection + type: slot + - label: LocalCollection + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has-lockers + revision: + - label: provides_or_provided + type: slot + - label: Locker + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_michelin_star + revision: + - label: has_or_had_rating + type: slot + - label: MichelinStarRating + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has-microfilm-readers + revision: + - label: has_or_had_equipment + type: slot + - label: MicrofilmReader + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_narrower_instance + revision: + - label: has_or_had_hyponym + type: slot + - label: Hyponym + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_observation + revision: + - label: refers_or_referred_to + type: slot + - label: Entity + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_operational_archive + revision: + - label: has_or_had_archive + type: slot + - label: OperationalArchive + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_operational_unit + revision: + - label: has_or_had_section + type: slot + - label: OperationalUnit + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_abbreviation + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class + - label: has_or_had_type + type: slot + - label: LabelType + type: class + - label: includes_or_included + type: slot + - label: LabelTypes + type: class + note: AbbreviationLabel class is defined in the LinkML file + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_about_text + revision: + - label: has_or_had_description + type: slot + - label: Description + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_academic_affiliation + revision: + - label: is_or_was_affiliated_with + type: slot + - label: AcademicInstitution + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_academic_program + revision: + - label: has_or_had_program + type: slot + - label: AcademicProgram + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_access_condition + revision: + - label: has_or_had_policy + type: slot + - label: AccessPolicy + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_access_control + revision: + - label: has_or_had_policy + type: slot + - label: AccessControl + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_access_description + revision: + - label: has_or_had_description + type: slot + - label: Description + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_access_frequency + revision: + - label: offers_or_offered + type: slot + - label: Access + type: class + - label: has_or_had_frequency + type: slot + - label: Frequency + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_access_level + revision: + - label: has_or_had_level + type: slot + - label: AccessLevel + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_access_management + revision: + - label: has_or_had_policy + type: slot + - label: AccessPolicy + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_access_policy + revision: + - label: has_or_had_policy + type: slot + - label: AccessPolicy + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_access_policy_reference + revision: + - label: has_or_had_policy + type: slot + - label: AccessPolicy + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_access_restriction + revision: + - label: has_or_had_policy + type: slot + - label: AccessPolicy + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_access_right + revision: + - label: has_or_had_policy + type: slot + - label: AccessPolicy + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_access_trigger_event + revision: + - label: has_or_had_policy + type: slot + - label: AccessPolicy + type: class + - label: allows_or_allowed + type: slot + - label: Access + type: class + - label: poses_or_posed_condition + type: slot + - label: Condition + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_accessibility_feature + revision: + - label: provides_or_provided + type: slot + - label: AccessibilityFeature + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_account_identifier + revision: + - label: has_or_had_identifier + type: slot + - label: AccountIdentifier + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_account_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_account_status + revision: + - label: has_or_had_status + type: slot + - label: AccountStatus + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_accreditation + revision: + - label: has_or_had_accreditation + type: slot + - label: Accreditation + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_accreditation_body + revision: + - label: is_or_was_accredited_through + type: slot + - label: AccreditationEvent + type: class + - label: is_or_was_conducted_by + type: slot + - label: AccreditationBody + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_acquisition_budget + revision: + - label: has_or_had_section + type: slot + - label: AcquisitionBudget + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_activity_type + revision: + - label: has_or_had_type + type: slot + - label: ActivityType + type: class + - label: includes_or_included + type: slot + - label: ActivityTypes + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_admin_staff_count + revision: + - label: has_or_had_staff + type: slot + - label: Staff + type: class + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class + - label: has_or_had_unit + type: slot + - label: Unit + type: class + value: member +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_admission_fee + revision: + - label: has_or_had_fee + type: slot + - label: AdmissionFee + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_affected_territory + revision: + - label: affects_or_affected + type: slot + - label: GeoSpatialPlace + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_affected_unit + revision: + - label: affects_or_affected + type: slot + - label: AdministrativeUnit + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_affiliated_university + revision: + - label: is_or_was_affiliated_with + type: slot + - label: University + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_affiliation + revision: + - label: is_or_was_affiliated_with + type: slot + - label: Entity + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_alternative_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class + - label: has_or_had_type + type: slot + - label: LabelType + type: class + - label: includes_or_included + type: slot + - label: LabelTypes + type: class + note: AlternativeLabel class is defined in the LinkML file +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_alternative_observed_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class + - label: has_or_had_type + type: slot + - label: LabelType + type: class + - label: includes_or_included + type: slot + - label: LabelTypes + type: class + note: AlternativeLabel class is defined in the LinkML file +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_animal_species_count + revision: + - label: contains_or_contained + type: slot + - label: Animal + type: class + - label: is_or_was_categorized_as + type: slot + - label: Species + type: class + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_annual_participant_count + revision: + - label: has_or_had_participant + type: slot + - label: Participant + type: class + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class + - label: has_or_had_time_interval + type: slot + - label: TimeSpan + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_annual_revenue + revision: + - label: has_or_had_revenue + type: slot + - label: Revenue + type: class + - label: has_or_had_time_interval + type: slot + - label: TimeSpan + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_api_endpoint + revision: + - label: has_or_had_endpoint + type: slot + - label: APIEndpoint + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_appellation + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_appraisal_policy + revision: + - label: has_or_had_policy + type: slot + - label: AppraisalPolicy + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_architect + revision: + - label: is_or_was_designed_by + type: slot + - label: Architect + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_archival_status + revision: + - label: has_or_had_status + type: slot + - label: ArchivalStatus + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_archive_branch + revision: + - label: has_or_had_branch + type: slot + - label: ArchiveBranch + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_archive_scope + revision: + - label: has_or_had_scope + type: slot + - label: ArchiveScope + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_area_served + processed: + status: true + date: '2026-01-27' + notes: Fully migrated to has_or_had_area_served (ServiceArea class) per Rule 53. EncompassingBody.yaml and EncompassingBodyTypes.yaml updated. Slot archived. + revision: + - label: has_or_had_service_area + type: slot + - label: ServiceArea + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_arrangement_system + processed: + status: true + date: '2026-01-27' + notes: Fully migrated to has_or_had_arrangement + ArrangementType class (Rule 53). CustodianCollection.yaml updated. Slot archived. + revision: + - label: has_or_had_arrangement + type: slot + - label: ArrangementType + type: class + - label: includes_or_included + type: slot + - label: ArrangementTypes + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_artist_representation + processed: + status: true + date: '2026-01-27' + notes: Fully migrated to represents_or_represented + Artist class (Rule 53). GalleryType.yaml updated. Slot archived. + revision: + - label: represents_or_represented + type: slot + - label: Artist + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_artwork_count + revision: + - label: contains_or_contained + type: slot + - label: Artwork + type: class + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_asset + revision: + - label: states_or_stated + type: slot + - label: Asset + type: class + - label: has_or_had_time_interval + type: slot + - label: TimeSpan + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_assigned_processor + revision: + - label: is_or_was_amended_through + type: slot + - label: AccessionEvent + type: class + - label: is_or_was_conducted_by + type: slot + - label: ProcessorAgent + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_associated_auxiliary_platform + revision: + - label: is_or_was_associated_with + type: slot + - label: Platform + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_associated_custodian + revision: + - label: is_or_was_associated_with + type: slot + - label: Custodian + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_associated_digital_platform + revision: + - label: is_or_was_associated_with + type: slot + - label: DigitalPlatform + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_audit_status + revision: + - label: has_or_had_status + type: slot + - label: AuditStatus + type: class + - label: has_or_had_type + type: slot + - label: AuditStatusType + type: class + - label: includes_or_included + type: slot + - label: AuditStatusTypes + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_auxiliary_entities + revision: + - label: is_or_was_associated_with + type: slot + - label: Entity + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_based_on_observation + revision: + - label: is_or_was_based_on + type: slot + - label: Observation + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_business_criticality + revision: + - label: has_or_had_level + type: slot + - label: BusinessCriticality + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_category_assessment + revision: + - label: is_or_was_categorized_as + type: slot + - label: AssessmentCategory + type: class + - label: has_or_had_type + type: slot + - label: AssessmentCategoryType + type: class + - label: includes_or_included + type: slot + - label: AssessmentCategoryTypes + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_classification + revision: + - label: is_or_was_classified_as + type: slot + - label: Classification + type: class + - label: has_or_had_type + type: slot + - label: ClassificationType + type: class + - label: includes_or_included + type: slot + - label: ClassificationTypes + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_collection_narrower_type + revision: + - label: has_or_had_hyponym + type: slot + - label: CollectionType + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_comment_reply + revision: + - label: has_or_had_reply + type: slot + - label: CommentReply + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_comprehensive_overview + revision: + - label: has_or_had_overview + type: slot + - label: ComprehensiveOverview + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_condition_note + revision: + - label: has_or_had_condition + type: slot + - label: Condition + type: class + - label: has_or_had_note + type: slot + - label: Note + type: class +- label: https://nde.nl/ontology/hc/slot/has_or_had_confidence_measure + revision: + - label: has_or_had_value + type: slot + - label: ConfidenceValue + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_conservation_record + revision: + - label: is_or_was_documented_in + type: slot + - label: ConservationRecord + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_conversion_rate + revision: + - label: has_or_had_rate + type: slot + - label: ConversionRate + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_curation_activity + revision: + - label: is_or_was_curated_through + type: slot + - label: CurationActivity + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_custodian_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_custodian_observation + revision: + - label: refers_or_referred_to + type: slot + - label: Entity + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_custodian_type + revision: + - label: has_or_had_type + type: slot + - label: CustodianType + type: class + - label: includes_or_included + type: slot + - label: CustodianTypes + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_data_quality_flag + revision: + - label: has_or_had_flag + type: slot + - label: DataQualityFlag + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_data_service_endpoint + revision: + - label: has_or_had_endpoint + type: slot + - label: DataServiceEndpoint + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_date_of_birth + revision: + - label: is_or_was_born_on + type: slot + - label: TimeSpan + type: class + - label: start_of_the_start + type: slot + - label: Timestamp + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_depositing_organization + revision: + - label: is_or_was_deposited_by + type: slot + - label: DepositingOrganization + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_detected_face + revision: + - label: contains_or_contained + type: slot + - label: DetectedFace + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_detected_landmark + revision: + - label: contains_or_contained + type: slot + - label: DetectedLandmark + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_detected_logo + revision: + - label: contains_or_contained + type: slot + - label: DetectedLogo + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_detected_object + revision: + - label: contains_or_contained + type: slot + - label: DetectedObject + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_diarization_segment + revision: + - label: contains_or_contained + type: slot + - label: DiarizationSegment + type: class + processed: + status: true + notes: "MIGRATED 2026-01-25.\n\n**Pattern**: has_or_had_diarization_segment \u2192 contains_or_contained + DiarizationSegment\n\n**Files Modified**: VideoAudioAnnotation.yaml (replaced usages)\n**Old Slot**: No physical file found (was inline).\n" +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_documentation_source + revision: + - label: has_or_had_provenance + type: slot + - label: Provenance + type: class + - label: is_or_was_based_on + type: slot + - label: DocumentationSource + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_environmental_condition + revision: + - label: has_or_had_condition + type: slot + - label: EnvironmentalCondition + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_environmental_zone + revision: + - label: provides_or_provided + type: slot + - label: EnvironmentalZone + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_essay + revision: + - label: contains_or_contained + type: slot + - label: Essay + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_examination_method + revision: + - label: describes_or_described + type: slot + - label: ExaminationMethod + type: class + - label: has_or_had_type + type: slot + - label: ExaminationMethodType + type: class + - label: includes_or_included + type: slot + - label: ExaminationMethodTypes + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_exhibition_catalog + revision: + - label: is_or_was_cataloged_in + type: slot + - label: ExhibitionCatalog + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_expenses + revision: + - label: has_or_had_expense + type: slot + - label: Expense + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_exposed_collection + revision: + - label: exposes_or_exposed + type: slot + - label: Collection + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_external_resource + revision: + - label: is_or_was_related_to + type: slot + - label: ExternalResource + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_featured_item + revision: + - label: contains_or_contained + type: slot + - label: FeaturedItem + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_featured_object + revision: + - label: exhibits_or_exhibited + type: slot + - label: FeaturedObject + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_finding_aid + revision: + - label: is_or_was_cataloged_in + type: slot + - label: FindingAid + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_generate + revision: + - label: generates_or_generated + type: slot + - label: Output + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_ich_safeguarding_measure + revision: + - label: has_or_had_objective + type: slot + - label: ICHSafeguarding + type: class + - label: has_or_had_type + type: slot + - label: ICHSafeguardingType + type: class + - label: includes_or_included + type: slot + - label: ICHSafeguardingTypes + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_identify + revision: + - label: has_or_had_identifier + type: slot + - label: Identifier + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_implementing_organisation + revision: + - label: is_or_was_implemented_by + type: slot + - label: Organisation + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_involved_actor + revision: + - label: involves_or_involved + type: slot + - label: Actor + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_iot_device + revision: + - label: has_or_had_device + type: slot + - label: IoTDevice + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_key_archive + revision: + - label: catalogues_or_cataloged + type: slot + - label: KeyArchive + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_key_date + revision: + - label: includes_or_included + type: slot + - label: KeyDate + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_key_period + revision: + - label: includes_or_included + type: slot + - label: KeyPeriod + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_likelihood_score + revision: + - label: has_or_had_score + type: slot + - label: LikelihoodScore + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_linked_data_endpoint + revision: + - label: has_or_had_endpoint + type: slot + - label: LinkedDataEndpoint + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_loaned_object + revision: + - label: includes_or_included + type: slot + - label: Object + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_managed_by_cm + revision: + - label: is_or_was_managed_by + type: slot + - label: CollectionManagementSystem + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_managed_collection + revision: + - label: manages_or_managed + type: slot + - label: Collection + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_manages_collection + revision: + - label: manages_or_managed + type: slot + - label: Collection + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_member_custodian + revision: + - label: has_or_had_member + type: slot + - label: Member + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_membership + revision: + - label: is_or_was_associated_with + type: slot + - label: Membership + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_music_segment + revision: + - label: contains_or_contained + type: slot + - label: MusicSegment + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_net_asset + revision: + - label: states_or_stated + type: slot + - label: Asset + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_notes + revision: + - label: has_or_had_note + type: slot + - label: Note + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_open_access_endpoint + revision: + - label: has_or_had_endpoint + type: slot + - label: Endpoint + type: class + - label: has_or_had_level + type: slot + - label: AccessLevel + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_operate + revision: + - label: is_or_was_operated_by + type: slot + - label: Agent + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_operates_platform_type + revision: + - label: operates_or_operated + type: slot + - label: Platform + type: class + - label: has_or_had_type + type: slot + - label: PlatformType + type: class + - label: includes_or_included + type: slot + - label: PlatformTypes + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_operates_storage_type + revision: + - label: operates_or_operated + type: slot + - label: Storage + type: class + - label: has_or_had_type + type: slot + - label: StorageType + type: class + - label: includes_or_included + type: slot + - label: StorageTypes + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_organizational_change_event + revision: + - label: participates_or_participated_in + type: slot + - label: Event + type: class + - label: affects_or_affected + type: slot + - label: Organization + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_organizational_structure + revision: + - label: has_or_had_section + type: slot + - label: OrganizationalUnit + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_page_section + revision: + - label: contains_or_contained + type: slot + - label: PageSection + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_participated_in_event + revision: + - label: participates_or_participated_in + type: slot + - label: Event + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_participated_in_project + revision: + - label: participates_or_participated_in + type: slot + - label: Project + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_place_of_birth + revision: + - label: is_or_was_born_in + type: slot + - label: GeoSpatialPlace + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_portal_data_source + revision: + - label: is_or_was_based_on + type: slot + - label: CollectionManagementSystem + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_post_type + revision: + - label: contains_or_contained + type: slot + - label: Content + type: class\ +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_powered_by_cm + revision: + - label: is_or_was_based_on + type: slot + - label: CollectionManagementSystem + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_precision + revision: + - label: has_or_had_level + type: slot + - label: Precision + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_previous_owner + revision: + - label: is_or_was_owned_by + type: slot + - label: Owner + type: class + - label: temporal_extent + type: slot + - label: TimeSpan + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_primary_presence_assertion + revision: + - label: is_or_was_categorized_as + type: slot + - label: Primary + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_product_category + revision: + - label: sells_or_sold + type: slot + - label: Product + type: class + - label: has_or_had_type + type: slot + - label: ProductCategory + type: class + - label: includes_or_included + type: slot + - label: ProductCategories + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_provenance_event + revision: + - label: has_or_had_provenance + type: slot + - label: Provenance + type: class + - label: is_or_was_documented_in + type: slot + - label: ProvenanceEvent + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_registered_dataset + revision: + - label: registers_or_registered + type: slot + - label: Dataset + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_registration_number + revision: + - label: has_or_had_identifier + type: slot + - label: RegistrationNumber + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_related_activity + revision: + - label: is_or_was_related_to + type: slot + - label: Activity + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_related_archive + revision: + - label: is_or_was_related_to + type: slot + - label: Archive + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_related_event + revision: + - label: is_or_was_related_to + type: slot + - label: Event + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_related_exhibition + revision: + - label: is_or_was_related_to + type: slot + - label: Exhibition + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_related_guide + revision: + - label: is_or_was_related_to + type: slot + - label: Guide + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_related_heritage_form + revision: + - label: is_or_was_related_to + type: slot + - label: HeritageForm + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_requirement_status + revision: + - label: has_or_had_status + type: slot + - label: RequirementStatus + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_research_attempt + revision: + - label: is_or_was_based_on + type: slot + - label: Research + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_resulting_unit + revision: + - label: results_or_resulted_in + type: slot + - label: AdministrativeUnit + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_safeguard + revision: + - label: preserves_or_preserved + type: slot + - label: Heritage + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_scene_segment + revision: + - label: contains_or_contained + type: slot + - label: SceneSegment + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_secondary_label + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class + - label: has_or_had_type + type: slot + - label: LabelType + type: class + - label: includes_or_included + type: slot + - label: LabelTypes + type: class + note: SecondaryLabel class is defined in the LinkML file +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_secondary_system + revision: + - label: is_or_was_stored_in + type: slot + - label: StorageSystem + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_section_link + revision: + - label: contains_or_contained + type: slot + - label: SectionLink + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_security_level + revision: + - label: has_or_had_level + type: slot + - label: SecurityLevel + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_short_code + revision: + - label: has_or_had_code + type: slot + - label: ShortCode + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_silence_segment + revision: + - label: contains_or_contained + type: slot + - label: SilenceSegment + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_sound_event_type + revision: + - label: contains_or_contained + type: slot + - label: SoundEventType + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_speech_segment + revision: + - label: contains_or_contained + type: slot + - label: SpeechSegment + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_storage_condition + revision: + - label: has_or_had_condition + type: slot + - label: StorageCondition + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_storage_facility + revision: + - label: has_or_had_facility + type: slot + - label: StorageFacility + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_storage_unit + revision: + - label: contains_or_contained + type: slot + - label: StorageUnit + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_stores_collection + revision: + - label: stores_or_stored + type: slot + - label: Collection + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_strategic_objective + revision: + - label: has_or_had_objective + type: slot + - label: StrategicObjective + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_sub_collection + revision: + - label: contains_or_contained + type: slot + - label: Collection + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_sub_department + revision: + - label: contains_or_contained + type: slot + - label: Department + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_sub_guide + revision: + - label: contains_or_contained + type: slot + - label: Guide + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_sub_section + revision: + - label: contains_or_contained + type: slot + - label: Section + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_suborganization + revision: + - label: contains_or_contained + type: slot + - label: Organization + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_text_region + revision: + - label: contains_or_contained + type: slot + - label: TextRegion + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_text_segment + revision: + - label: contains_or_contained + type: slot + - label: TextSegment + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_thematic_route + revision: + - label: has_or_had_convention + type: slot + - label: ThematicRoute + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_tracked_in_cm + revision: + - label: is_or_was_tracked_in + type: slot + - label: CollectionManagementSystem + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_transmission_method + revision: + - label: has_or_had_method + type: slot + - label: TransmissionMethod + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_used_source + revision: + - label: is_or_was_based_on + type: slot + - label: Source + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_verification_status + revision: + - label: has_or_had_status + type: slot + - label: VerificationStatus + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_web_claim + revision: + - label: has_or_had_provenance + type: slot + - label: Provenance + type: class + - label: is_or_was_based_on + type: slot + - label: WebClaim + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_web_page + revision: + - label: has_or_had_page + type: slot + - label: WebPage + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_outdoor_seating + revision: + - label: has_or_had_service + type: slot + - label: OutdoorSeating + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_person_name + revision: + - label: has_or_had_name + type: slot + - label: PersonName + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_person_observation + revision: + - label: has_or_had_provenance + type: slot + - label: Provenance + type: class + - label: is_or_was_based_on + type: slot + - label: PersonObservation + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_publication_series + revision: + - label: publishes_or_published + type: slot + - label: PublicationSeries + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_research_library + revision: + - label: has_or_had_facility + type: slot + - label: ResearchLibrary + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_security_system + revision: + - label: has_or_had_system + type: slot + - label: SecuritySystem + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_sub_branch + revision: + - label: has_or_had_branch + type: slot + - label: Branch + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has-supervised-handling + revision: + - label: has_or_had_policy + type: slot + - label: SupervisedHandling + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_timespan + processed: + status: true + timestamp: '2026-01-26T00:00:00Z' + session: session-2026-01-26-temporal-migration + notes: 'FULLY MIGRATED: Activity, Membership, Event - has_timespan replaced with temporal_extent. Slot archived.' + revision: + - label: temporal_extent + type: slot + - label: TimeSpan + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_unit + revision: + - label: has_or_had_section + type: slot + - label: OrganizationalUnit + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has-wifi + revision: + - label: has_or_had_service + type: slot + - label: Wifi + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/hazard + revision: + - label: has_or_had_risk + type: slot + - label: Hazard + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/hc_id + revision: + - label: has_or_had_identifier + type: slot + - label: HCID + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/hc_preset_uri + revision: + - label: has_or_had_uri + type: slot + - label: HCPresetURI + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/heading_level + revision: + - label: contains_or_contained + type: slot + - label: Heading + type: class + - label: has_or_had_level + type: slot + - label: HeadingLevel + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heading_text + revision: + - label: contains_or_contained + type: slot + - label: Heading + type: class + - label: has_or_had_text + type: slot + - label: Text + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heading_text_en + revision: + - label: contains_or_contained + type: slot + - label: Heading + type: class + - label: has_or_had_text + type: slot + - label: Text + type: class + - label: is_or_was_translated_as + type: slot + - label: TranslatedText + type: class + - label: has_or_had_language + type: slot + - label: Language + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/headline + revision: + - label: has_or_had_title + type: slot + - label: Headline + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_designation_date + revision: + - label: is_or_was_designated_as + type: slot + - label: Heritage + type: class + - label: temporal_extent + type: slot + - label: TimeSpan + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_education + revision: + - label: is_or_was_related_to + type: slot + - label: Heritage + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/heritage_employer + revision: + - label: is_or_was_employed_by + type: slot + - label: Organization + type: class + - label: is_or_was_related_to + type: slot + - label: Heritage + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_holding + revision: + - label: has_or_had_collection + type: slot + - label: Collection + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_mandate + revision: + - label: has_or_had_mandate + type: slot + - label: Mandate + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_practice + revision: + - label: preserves_or_preserved + type: slot + - label: HeritagePractice + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_relevance + revision: + - label: is_or_was_related_to + type: slot + - label: Heritage + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_relevance_score + revision: + - label: has_or_had_score + type: slot + - label: HeritageRelevanceScore + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_relevant_count + revision: + - label: has_or_had_quantity + type: slot + - label: Connection + type: class + - label: is_or_was_related_to + type: slot + - label: Heritage + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_relevant_percentage + revision: + - label: has_or_had_quantity + type: slot + - label: Connection + type: class + - label: is_or_was_related_to + type: slot + - label: Heritage + type: class + - label: has_or_had_percentage + type: slot + - label: Percentage + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_sector_usage + revision: + - label: is_or_was_used_in + type: slot + - label: HeritageSector + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_society_subtype + revision: + - label: has_or_had_hyponym + type: slot + - label: HeritageSocietyType + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_status + revision: + - label: has_or_had_status + type: slot + - label: HeritageStatus + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_type + revision: + - label: is_or_was_related_to + type: slot + - label: Custodian + type: class + - label: has_or_had_type + type: slot + - label: GLAMORCUBESFIXPHDNTCode + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_type_classification + revision: + - label: is_or_was_classified_as + type: slot + - label: HeritageType + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_type_code + revision: + - label: is_or_was_classified_as + type: slot + - label: HeritageTypeCode + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/higher_classification + revision: + - label: has_or_had_hypernym + type: slot + - label: Hypernym + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/historic_building_description + revision: + - label: has_or_had_description + type: slot + - label: Description + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/historic_building_id + revision: + - label: has_or_had_identifier + type: slot + - label: Identifier + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/historic_building_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/historic-garden-designation + revision: + - label: has_or_had_facility + type: slot + - label: Garden + type: class + - label: is_or_was_designated_as + type: slot + - label: Heritage + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/historical_region + revision: + - label: is_or_was_located_in + type: slot + - label: HistoricalRegion + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/historical_significance + revision: + - label: has_or_had_significance + type: slot + - label: HistoricalSignificance + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/holy_site_subtype + revision: + - label: has_or_had_hyponym + type: slot + - label: HolySiteType + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/homepage_web_address + revision: + - label: has_or_had_url + type: slot + - label: URL + type: class + - label: has_or_had_type + type: slot + - label: WebAddressType + type: class + - label: includes_or_included + type: slot + - label: WebAddressTypes + type: class + note: HomepageWebAddress class is defined in the LinkML file +- original_slot_id: https://nde.nl/ontology/hc/slot/hosts_branch + revision: + - label: is_or_was_location_of + type: slot + - label: Branch + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/house_number + revision: + - label: has_or_had_section + type: slot + - label: HouseNumber + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/html_file + revision: + - label: has_or_had_provenance + type: slot + - label: Provenance + type: class + - label: is_or_was_based_on + type: slot + - label: URL + type: class + - label: is_or_was_archived_as + type: slot + - label: HTMLFile + type: class + - label: has_or_had_file_location + type: slot + - label: FileLocation + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/html_snapshot_path + revision: + - label: has_or_had_provenance + type: slot + - label: Provenance + type: class + - label: is_or_was_based_on + type: slot + - label: URL + type: class + - label: is_or_was_archived_as + type: slot + - label: HTMLFile + type: class + - label: has_or_had_file_location + type: slot + - label: FileLocation + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/http_status_code + revision: + - label: has_or_had_status + type: slot + - label: HTTPStatusCode + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/humidity_max + revision: + - label: has_or_had_policy + type: slot + - label: Humidity + type: class + - label: maximum_of_maximum + type: slot + - label: MaximumHumidity + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/humidity_min + revision: + - label: has_or_had_policy + type: slot + - label: Humidity + type: class + - label: minimum_of_minimum + type: slot + - label: MinimumHumidity + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/humidity_target + revision: + - label: has_or_had_policy + type: slot + - label: Humidity + type: class + - label: has_or_had_target + type: slot + - label: TargetHumidity + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/humidity_tolerance + revision: + - label: has_or_had_policy + type: slot + - label: Humidity + type: class + - label: has_or_had_tolerance + type: slot + - label: HumidityTolerance + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/hypernym_event_type + revision: + - label: has_or_had_hypernym + type: slot + - label: EventType + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/ich_domain + revision: + - label: is_or_was_categorized_as + type: slot + - label: ICHDomain + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/ich_transmission_method + revision: + - label: transmits_or_transmitted_through + type: slot + - label: TransmissionMethod + type: class + - label: has_or_had_type + type: slot + - label: TransmissionMethodType + type: class + - label: includes_or_included + type: slot + - label: TransmissionMethodTypes + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/iconography + revision: + - label: has_or_had_symbolism + type: slot + - label: Iconography + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/id + revision: + - label: has_or_had_identifier + type: slot + - label: ID + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/identification_qualifier + revision: + - label: has_or_had_identifier + type: slot + - label: Identifier + type: class + - label: has_or_had_qualifier + type: slot + - label: Qualifier + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/identified_by + revision: + - label: has_or_had_identifier + type: slot + - label: Identifier + type: class + - label: is_or_was_created_by + type: slot + - label: Agent + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/identifier + revision: + - label: has_or_had_identifier + type: slot + - label: Identifier + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/identifier_format + revision: + - label: has_or_had_identifier + type: slot + - label: Identifier + type: class + - label: has_or_had_format + type: slot + - label: IdentifierFormat + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/identifier_format_used + revision: + - label: has_or_had_format + type: slot + - label: IdentifierFormat + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/identifier_lookup_score + revision: + - label: has_or_had_score + type: slot + - label: IdentifierLookupScore + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/identifier_scheme + revision: + - label: has_or_had_scheme + type: slot + - label: IdentifierScheme + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/identifier_url + revision: + - label: has_or_had_url + type: slot + - label: URL + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/identifier_value + revision: + - label: has_or_had_value + type: slot + - label: IdentifierValue + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/identifies_custodian + revision: + - label: identifies_or_identified + type: slot + - label: Custodian + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/iiif_compatible + revision: + - label: is_or_was_compatible_with + type: slot + - label: IIIF + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/iiif_support + revision: + - label: is_or_was_compatible_with + type: slot + - label: IIIF + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/illustration + revision: + - label: catalogues_or_catalogued + type: slot + - label: Illustration + type: class + - label: has_or_had_description + type: slot + - label: Description + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/image_url + revision: + - label: has_or_had_image + type: slot + - label: Image + type: class + - label: has_or_had_url + type: slot + - label: URL + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/impact_measurement + revision: + - label: measures_or_measured + type: slot + - label: ImpactMeasurement + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/implements_agenda + revision: + - label: implements_or_implemented + type: slot + - label: Agenda + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/implements_auxiliary_platform + revision: + - label: is_or_was_related_to + type: slot + - label: WebPlatform + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_actual_return_date + revision: + - label: temporal_extent + type: slot + - label: TimeSpan + type: class + - label: end_of_the_end + type: slot + - label: Timestamp + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_address + revision: + - label: has_or_had_address + type: slot + - label: Address + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_admin_office_description + revision: + - label: has_or_had_description + type: slot + - label: Description + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_admin_office_identifier + revision: + - label: has_or_had_identifier + type: slot + - label: Identifier + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_admin_office_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class + processed: + status: true + date: '2026-01-26' + notes: Migrated to has_or_had_label + Label in CustodianAdministration.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_administration_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_administrative_level + revision: + - label: is_or_was_part_of + type: slot + - label: GovernmentHierarchy + type: class + - label: has_or_had_tier + type: slot + - label: AdministrativeLevel + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_adoption_context + revision: + - label: describes_or_described + type: slot + - label: Policy + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_age + revision: + - label: has_or_had_age + type: slot + - label: Age + type: class + processed: + status: true + date: '2026-01-26' + notes: Migrated to has_or_had_age + Age in PersonObservation.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_agenda_document_url + revision: + - label: has_or_had_url + type: slot + - label: URL + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_agenda_short_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class + - label: has_or_had_type + type: slot + - label: LabelType + type: class + - label: includes_or_included + type: slot + - label: LabelTypes + type: class + note: AbbreviationLabel class is defined in the LinkML file +- original_slot_id: https://nde.nl/ontology/hc/slot/has_agenda_title + revision: + - label: has_or_had_title + type: slot + - label: Title + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_agenda_url + revision: + - label: has_or_had_url + type: slot + - label: URL + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_agent_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_agent_type + revision: + - label: has_or_had_type + type: slot + - label: AgentType + type: class + - label: includes_or_included + type: slot + - label: AgentTypes + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_agreement_signed_date + processed: + status: true + date: '2026-01-27' + notes: Fully migrated to is_or_was_based_on + Agreement class + is_or_was_signed_on slot (Rule 53). Loan.yaml updated. Slot archived. + revision: + - label: is_or_was_based_on + type: slot + - label: Agreement + type: class + - label: is_or_was_signed_on + type: slot + - label: TimeSpan + type: class + - label: start_of_the_start + type: slot + - label: Timestamp + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_air_changes_per_hour + processed: + status: true + date: '2026-01-27' + notes: Fully migrated to specifies_or_specified + Ventilation class + AirChanges class (Rule 53). StorageConditionPolicy.yaml updated. Slot archived. + revision: + - label: specifies_or_specified + type: slot + - label: Ventilation + type: class + - label: requires_or_required + type: slot + - label: AirChanges + type: class + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class + - label: has_or_had_unit + type: slot + - label: Unit + type: class + value: air changes per hour +- original_slot_id: https://nde.nl/ontology/hc/slot/has_allocation_date + processed: + status: true + date: '2026-01-27' + notes: Fully migrated to is_or_was_allocated_through + AllocationEvent (Rule 53). CustodianIdentifier.yaml updated. Slot archived. + revision: + - label: is_or_was_allocated_through + type: slot + - label: AllocationEvent + type: class + - label: temporal_extent + type: slot + - label: TimeSpan + type: class + - label: temporal_extent + type: slot + - label: TimeSpan + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_alpha_2_code + processed: + status: true + date: '2026-01-27' + notes: Fully migrated to has_or_had_identifier + Alpha2Code class (Rule 53). Country.yaml updated. Slot archived. + revision: + - label: has_or_had_identifier + type: slot + - label: Alpha2Code + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_alpha_3_code + processed: + status: true + date: '2026-01-27' + notes: Fully migrated to has_or_had_identifier + Alpha3Code class (Rule 53). Country.yaml updated. Slot archived. + revision: + - label: has_or_had_identifier + type: slot + - label: Alpha3Code + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_alpha_3_code_dup + processed: + status: true + date: '2026-01-27' + notes: Duplicate entry processed. + revision: + - label: has_or_had_identifier + type: slot + - label: Alpha3Code + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_altitude + revision: + - label: has_or_had_altitude + type: slot + - label: Altitude + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_amendment_history + revision: + - label: is_or_was_amended_through + type: slot + - label: AmendmentEvent + type: class + - label: has_or_had_provenance + type: slot + - label: Provenance + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_annex_description + revision: + - label: has_or_had_description + type: slot + - label: Description + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_annex_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_annex_reason + revision: + - label: is_or_was_created_through + type: slot + - label: AnnexCreationEvent + type: class + - label: has_or_had_reason + type: slot + - label: Reason + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_annotation_by + revision: + - label: contains_or_contained + type: slot + - label: Annotation + type: class + - label: is_or_was_created_by + type: slot + - label: Agent + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_annotation_motivation + revision: + - label: has_or_had_rationale + type: slot + - label: Rationale + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_annotation_segment + revision: + - label: contains_or_contained + type: slot + - label: Segment + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_annotation_type + revision: + - label: has_or_had_type + type: slot + - label: AnnotationType + type: class + - label: includes_or_included + type: slot + - label: AnnotationTypes + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_api_version + revision: + - label: has_or_had_provenance + type: slot + - label: Provenance + type: class + - label: is_or_was_retrieved_through + type: slot + - label: APIRequest + type: class + - label: has_or_had_endpoint + type: slot + - label: APIEndpoint + type: class + - label: has_or_had_version + type: slot + - label: APIVersion + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_appellation_language + revision: + - label: has_or_had_language + type: slot + - label: Language + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_appellation_type + revision: + - label: has_or_had_type + type: slot + - label: AppellationType + type: class + - label: includes_or_included + type: slot + - label: AppellationTypes + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_appellation_value + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_applicable_country + revision: + - label: is_or_was_applicable_in + type: slot + - label: Country + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_application_deadline + revision: + - label: is_or_was_due_on + type: slot + - label: TimeSpan + type: class + - label: end_of_the_end + type: slot + - label: Timestamp + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_application_opening_date + revision: + - label: is_or_was_opened_on + type: slot + - label: TimeSpan + type: class + - label: start_of_the_start + type: slot + - label: Timestamp + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_appraisal_note + revision: + - label: has_or_had_note + type: slot + - label: Note + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/administrative_context + revision: + - label: is_or_was_used_in + type: slot + - label: GovernanceStructure + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/based_on_claim + revision: + - label: is_or_was_based_on + type: slot + - label: Claim + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_architectural_style + revision: + - label: has_or_had_style + type: slot + - label: ArchitecturalStyle + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_archival_reference + revision: + - label: has_or_had_identifier + type: slot + - label: ArchivalReference + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_archive_description + revision: + - label: has_or_had_description + type: slot + - label: Description + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_archive_memento_uri + revision: + - label: is_or_was_archived_as + type: slot + - label: Memento + type: class + - label: has_or_had_url + type: slot + - label: URL + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to has_or_had_url + URL in ArticlesOfAssociation.yaml. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_articles_document_url + revision: + - label: has_or_had_url + type: slot + - label: URL + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to has_or_had_url + URL in ArticlesOfAssociation.yaml. Slot archived. +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_articles_of_association + revision: + - label: has_or_had_document + type: slot + - label: ArticlesOfAssociation + type: class + processed: + status: true + date: '2026-01-27' + notes: Migrated to has_or_had_document + ArticlesOfAssociation in relevant classes. Slot archived. +- original_slot_id: https://nde.nl/ontology/hc/slot/has_aspect_ratio + revision: + - label: has_or_had_degree + type: slot + - label: AspectRatio + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_assertion_date + revision: + - label: is_or_was_asserted_on + type: slot + - label: TimeSpan + type: class + - label: start_of_the_start + type: slot + - label: Timestamp + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_assertion_rationale + revision: + - label: has_or_had_rationale + type: slot + - label: Rationale + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_assertion_value + revision: + - label: has_or_had_value + type: slot + - label: Value + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_assessment_category + revision: + - label: has_or_had_category + type: slot + - label: AssessmentCategory + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_assessment_date + revision: + - label: is_or_was_assessed_on + type: slot + - label: TimeSpan + type: class + - label: start_of_the_start + type: slot + - label: Timestamp + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_associated_taxon + revision: + - label: has_or_had_hypernym + type: slot + - label: Taxon + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_auction_house + revision: + - label: is_or_was_conducted_by + type: slot + - label: AuctionHouse + type: class +- orignal_slot_id: https://nde.nl/ontology/hc/slot/has_auction_sale_name + revision: + - label: is_or_was_conducted_by + type: slot + - label: AuctionHouse + type: class + - label: publishes_or_published + type: slot + - label: AuctionSaleCatalog + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/has_audio_event_segment + revision: + - label: contains_or_contained + type: slot + - label: AudioEventSegment + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_audit_date + revision: + - label: is_or_was_based_on + type: slot + - label: Audit + type: class + - label: temporal_extent + type: slot + - label: TimeSpan + type: class + - label: start_of_the_start + type: slot + - label: Timestamp + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_audit_opinion + revision: + - label: is_or_was_based_on + type: slot + - label: Audit + type: class + - label: draws_or_drew_opinion + type: slot + - label: AuditOpinion + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_auditor_name + revision: + - label: is_or_was_based_on + type: slot + - label: Audit + type: class + - label: is_or_was_conducted_by + type: slot + - label: Auditor + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +- original_slot_id: https://nde.nl/ontology/hc/slot/has_authentication_required_flag + revision: + - label: requires_or_required + type: slot + - label: Authentication + type: class + processed: + status: true + date: '2026-01-27' + notes: 'Auto-marked: Slot file found in archive/slots/, indicating migration complete.' +annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/slug.yaml b/schemas/20251121/linkml/modules/slots/archive/slug.yaml new file mode 100644 index 0000000000..46ba05c273 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/slug.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/slug +name: slug_slot +title: Slug Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + slug: + slot_uri: schema:identifier + description: URL-friendly slug identifier + range: string + required: true + pattern: ^[a-z0-9-]+$ + examples: + - value: familiegeschiedenis + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/snr_db.yaml b/schemas/20251121/linkml/modules/slots/archive/snr_db.yaml new file mode 100644 index 0000000000..ee21192aea --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/snr_db.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/snr_db +name: snr_db_slot +title: Snr Db Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + snr_db: + description: 'Signal-to-noise ratio in decibels. + + + Higher is better: + + - > 30 dB: Excellent + + - 20-30 dB: Good + + - 10-20 dB: Acceptable + + - < 10 dB: Poor (speech intelligibility affected) + + ' + range: float + slot_uri: hc:snrDb + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:snrDb diff --git a/schemas/20251121/linkml/modules/slots/archive/social_media_example_profile.yaml b/schemas/20251121/linkml/modules/slots/archive/social_media_example_profile.yaml new file mode 100644 index 0000000000..c889043397 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/social_media_example_profile.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/social_media_example_profile +name: social_media_example_profile_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + social_media_example_profile: + slot_uri: skos:example + description: 'URLs of well-known heritage institution profiles on this platform. + + For documentation and clarification purposes. + + ' + range: string + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:example diff --git a/schemas/20251121/linkml/modules/slots/archive/social_media_feature.yaml b/schemas/20251121/linkml/modules/slots/archive/social_media_feature.yaml new file mode 100644 index 0000000000..320690d827 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/social_media_feature.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/social_media_feature +name: social_media_feature_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + social_media_feature: + slot_uri: schema:featureList + description: 'Key features provided by this platform. + + Examples: Stories, Reels, Live streaming, Spaces + + ' + range: string + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:featureList diff --git a/schemas/20251121/linkml/modules/slots/archive/social_media_heritage_use_case.yaml b/schemas/20251121/linkml/modules/slots/archive/social_media_heritage_use_case.yaml new file mode 100644 index 0000000000..85d383599e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/social_media_heritage_use_case.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/social_media_heritage_use_case +name: social_media_heritage_use_case_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + social_media_heritage_use_case: + slot_uri: schema:description + description: 'Typical use cases for heritage institutions on this platform. + + Examples: Collection highlights, Event promotion, Educational content + + ' + range: string + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:description diff --git a/schemas/20251121/linkml/modules/slots/archive/social_media_platform_category.yaml b/schemas/20251121/linkml/modules/slots/archive/social_media_platform_category.yaml new file mode 100644 index 0000000000..5a444efad2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/social_media_platform_category.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/social_media_platform_category +name: social_media_platform_category +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + social_media_platform_category: + slot_uri: schema:category + description: 'High-level category for grouping related platforms. + + Values: GENERAL_SOCIAL, MICROBLOGGING, IMAGE_FOCUSED, VIDEO_FOCUSED, + + PROFESSIONAL, MESSAGING, AUDIO, PUBLISHING, MEMBERSHIP, OTHER + + ' + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:category diff --git a/schemas/20251121/linkml/modules/slots/archive/social_media_platform_description.yaml b/schemas/20251121/linkml/modules/slots/archive/social_media_platform_description.yaml new file mode 100644 index 0000000000..7a1e4ef0a5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/social_media_platform_description.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/social_media_platform_description +name: social_media_platform_description +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + social_media_platform_description: + slot_uri: skos:definition + description: 'Detailed description of this platform including purpose, + + characteristics, and typical use cases. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:definition diff --git a/schemas/20251121/linkml/modules/slots/archive/social_media_platform_name.yaml b/schemas/20251121/linkml/modules/slots/archive/social_media_platform_name.yaml new file mode 100644 index 0000000000..bf90561290 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/social_media_platform_name.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/social_media_platform_name +name: social_media_platform_name +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + social_media_platform_name: + slot_uri: skos:prefLabel + description: 'Canonical name for this social media platform. + + Used for display and cross-institutional comparison. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:prefLabel diff --git a/schemas/20251121/linkml/modules/slots/archive/social_media_platform_type_id.yaml b/schemas/20251121/linkml/modules/slots/archive/social_media_platform_type_id.yaml new file mode 100644 index 0000000000..9739a893a7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/social_media_platform_type_id.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/social_media_platform_type_id +name: social_media_platform_type_id +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + social_media_platform_type_id: + slot_uri: dcterms:identifier + description: Unique identifier for this platform type + range: string # uriorcurie + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/social_media_profile_id.yaml b/schemas/20251121/linkml/modules/slots/archive/social_media_profile_id.yaml new file mode 100644 index 0000000000..92b50fb4c0 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/social_media_profile_id.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/social_media_profile_id +name: social_media_profile_id_slot +title: Social Media Profile Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + social_media_profile_id: + description: 'Unique identifier for this social media profile instance. + + Format: URI following NDE Heritage Custodian ontology conventions. + + ' + range: string # uriorcurie + slot_uri: hc:socialMediaProfileId + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:socialMediaProfileId diff --git a/schemas/20251121/linkml/modules/slots/archive/social_media_url_pattern.yaml b/schemas/20251121/linkml/modules/slots/archive/social_media_url_pattern.yaml new file mode 100644 index 0000000000..ce15fbb267 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/social_media_url_pattern.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/social_media_url_pattern +name: social_media_url_pattern_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + social_media_url_pattern: + slot_uri: schema:url + description: URL patterns for identifying this social media platform. + range: string + required: false + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:url diff --git a/schemas/20251121/linkml/modules/slots/archive/social_media_wikidata_id.yaml b/schemas/20251121/linkml/modules/slots/archive/social_media_wikidata_id.yaml new file mode 100644 index 0000000000..4e2f754a6d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/social_media_wikidata_id.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/social_media_wikidata_id +name: social_media_wikidata_id +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + social_media_wikidata_id: + slot_uri: schema:sameAs + description: Wikidata entity ID for this social media platform. + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:sameAs diff --git a/schemas/20251121/linkml/modules/slots/archive/society_focus.yaml b/schemas/20251121/linkml/modules/slots/archive/society_focus.yaml new file mode 100644 index 0000000000..f920138ea8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/society_focus.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/society_focus +name: society_focus +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + rico: https://www.ica.org/standards/RiC/ontology# + rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + society_focus: + slot_uri: schema:about + description: 'Description of the archive(s) and archival causes this association supports. + + Example: "Friends of the State Archives, advocating for adequate funding + + and public access to state government records." + + ' + range: string + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:about diff --git a/schemas/20251121/linkml/modules/slots/archive/sound_events_detected.yaml b/schemas/20251121/linkml/modules/slots/archive/sound_events_detected.yaml new file mode 100644 index 0000000000..e1d8bc9fd4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/sound_events_detected.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/sound_events_detected +name: sound_events_detected_slot +title: Sound Events Detected Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + sound_events_detected: + description: 'Whether non-speech, non-music sound events were detected. + + + Sound events include applause, laughter, environmental sounds, etc. + + ' + range: boolean + slot_uri: hc:soundEventsDetected + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:soundEventsDetected diff --git a/schemas/20251121/linkml/modules/slots/archive/endorsement_source.yaml b/schemas/20251121/linkml/modules/slots/archive/source.yaml similarity index 64% rename from schemas/20251121/linkml/modules/slots/archive/endorsement_source.yaml rename to schemas/20251121/linkml/modules/slots/archive/source.yaml index 2614949b03..5c99d7f124 100644 --- a/schemas/20251121/linkml/modules/slots/archive/endorsement_source.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/source.yaml @@ -1,20 +1,18 @@ -id: https://nde.nl/ontology/hc/slot/endorsement_source -name: endorsement_source_slot +id: https://nde.nl/ontology/hc/slot/source +name: source_slot imports: - linkml:types slots: - endorsement_source: + source: slot_uri: prov:hadPrimarySource range: string # uriorcurie - description: Source document proving this is the custodian's accepted name (official website, statutes, etc.) + description: Source document where observation was recorded (REQUIRED) required: true - broad_mappings: - - dcterms:source - annotations: - custodian_types: - - '*' exact_mappings: - - prov:hadPrimarySource + - dcterms:source + - prov:wasDerivedFrom + annotations: + custodian_types: '["*"]' prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ diff --git a/schemas/20251121/linkml/modules/slots/archive/source_creator.yaml b/schemas/20251121/linkml/modules/slots/archive/source_creator.yaml new file mode 100644 index 0000000000..6b1582a216 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/source_creator.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/source_creator +name: source_creator_slot +imports: +- linkml:types +slots: + source_creator: + slot_uri: dcterms:creator + range: string + description: 'Creator or publisher of the source document. + + Dublin Core: creator property. + + ' + exact_mappings: + - dcterms:creator + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/source_dataset.yaml b/schemas/20251121/linkml/modules/slots/archive/source_dataset.yaml new file mode 100644 index 0000000000..583bdf4b8c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/source_dataset.yaml @@ -0,0 +1,44 @@ +id: https://nde.nl/ontology/hc/slot/source_dataset +name: source_dataset_slot +title: Source Dataset Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + source_dataset: + range: string + slot_uri: dcterms:source + description: 'Source dataset for boundary data. + + + Common sources: + + - "CBS Wijken en Buurten" (Dutch municipality boundaries) + + - "HALC Historical Boundaries" (Historical Atlas of Low Countries) + + - "Kadaster" (Dutch cadastral authority) + + - "OpenStreetMap" + + - "GADM" (Global Administrative Areas) + + ' + examples: + - value: HALC Historical Boundaries 1500 + description: Historical boundary from HALC dataset + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:source diff --git a/schemas/20251121/linkml/modules/slots/archive/source_date.yaml b/schemas/20251121/linkml/modules/slots/archive/source_date.yaml new file mode 100644 index 0000000000..a8d93dc3d5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/source_date.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/source_date +name: source_date_slot +imports: +- linkml:types +slots: + source_date: + slot_uri: dcterms:created + range: date + description: 'Date when source document was created. + + Dublin Core: created for resource creation date. + + ' + broad_mappings: + - dcterms:date + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:created +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/source_file.yaml b/schemas/20251121/linkml/modules/slots/archive/source_file.yaml new file mode 100644 index 0000000000..8dbf6ba09e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/source_file.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/source_file +name: source_file_slot +title: source_file slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + source_file: + description: 'Path to the source file from which data was derived. + + PROV-O: prov:used - the entity that was used as input. + + ' + slot_uri: prov:used + range: string + examples: + - value: /data/custodian/person/affiliated/parsed/rijksmuseum_staff_20251210T155416Z.json + description: Path to parsed staff list JSON + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:used diff --git a/schemas/20251121/linkml/modules/slots/archive/source_language_auto_detected.yaml b/schemas/20251121/linkml/modules/slots/archive/source_language_auto_detected.yaml new file mode 100644 index 0000000000..ee62fb441c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/source_language_auto_detected.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/source_language_auto_detected +name: source_language_auto_detected_slot +title: Source Language Auto Detected Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + source_language_auto_detected: + slot_uri: hc:sourceLanguageAutoDetected + description: 'Whether the content_language was auto-detected by ASR. + + + - **true**: Language detected by ASR model + + - **false**: Language was specified/known (default) + + + Useful for quality assessment - auto-detection may be wrong. + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:sourceLanguageAutoDetected diff --git a/schemas/20251121/linkml/modules/slots/archive/source_metadata.yaml b/schemas/20251121/linkml/modules/slots/archive/source_metadata.yaml new file mode 100644 index 0000000000..672211b0dc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/source_metadata.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/source_metadata +name: source_metadata_slot +title: Source Metadata Slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + source_metadata: + description: 'Provenance metadata about the extraction process. + + Contains information about how, when, and from where data was extracted. + + ' + slot_uri: prov:wasGeneratedBy + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:wasGeneratedBy diff --git a/schemas/20251121/linkml/modules/slots/archive/source_organization.yaml b/schemas/20251121/linkml/modules/slots/archive/source_organization.yaml new file mode 100644 index 0000000000..3728cacf60 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/source_organization.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/source_organization +name: source_organization_slot +title: Source Organization Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + source_organization: + description: 'Slug identifier of the organization from which this profile was discovered. + + Matches the custodian slug used in staff list parsing. + + Format: lowercase with hyphens (e.g., "rijksmuseum", "nationaal-archief") + + ' + range: string + slot_uri: hc:sourceOrganization + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:sourceOrganization diff --git a/schemas/20251121/linkml/modules/slots/archive/source_section.yaml b/schemas/20251121/linkml/modules/slots/archive/source_section.yaml new file mode 100644 index 0000000000..976bcdfb2a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/source_section.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/source_section +name: source_section_slot +title: Source Section Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + source_section: + range: string + description: 'Section heading or location in source document where requirement was found. + + Aids verification and citation. + + ' + slot_uri: hc:sourceSection + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:sourceSection diff --git a/schemas/20251121/linkml/modules/slots/archive/source_type.yaml b/schemas/20251121/linkml/modules/slots/archive/source_type.yaml new file mode 100644 index 0000000000..082e572166 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/source_type.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/slot/source_type +name: source_type_slot +imports: +- linkml:types +- ../enums/SourceDocumentTypeEnum +slots: + source_type: + slot_uri: crm:P2_has_type + range: string # uriorcurie + # range: SourceDocumentTypeEnum + description: 'Type of source document. + + CIDOC-CRM: P2_has_type links to E55_Type. + + ' + related_mappings: + - dcterms:type + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P2_has_type +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/source_uri.yaml b/schemas/20251121/linkml/modules/slots/archive/source_uri.yaml new file mode 100644 index 0000000000..6dbe8e862e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/source_uri.yaml @@ -0,0 +1,28 @@ +id: https://nde.nl/ontology/hc/slot/source_uri +name: source_uri_slot +imports: +- linkml:types +slots: + source_uri: + slot_uri: dcterms:identifier + range: string # uriorcurie + description: 'URI or URL of the source document. + + Dublin Core: identifier for resource location. + + ' + exact_mappings: + - dcterms:source + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/source_url.yaml b/schemas/20251121/linkml/modules/slots/archive/source_url.yaml new file mode 100644 index 0000000000..f323c45661 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/source_url.yaml @@ -0,0 +1,64 @@ +id: https://nde.nl/ontology/hc/slot/source_url +name: source_url +title: Source URL Slot +prefixes: + pav: http://purl.org/pav/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +description: 'URL of the web page from which data was retrieved or extracted. + + + Used for provenance tracking in: + + - WebClaim: Source page for extracted claims + + - WebObservation: Source page for web observations + + - FundingOpportunity: Source page for funding information + + ' +imports: +- linkml:types +slots: + source_url: + slot_uri: pav:retrievedFrom + range: uri + required: false + multivalued: false + description: 'URL of the web page this data was retrieved from. + + + pav:retrievedFrom - "The URI from which the resource was retrieved." + + + This is a key provenance field that enables verification of extracted data + + by linking back to the original source web page. + + + Examples: + + - https://historischeverenigingnijeveen.nl/ (institution homepage) + + - https://ec.europa.eu/info/funding-tenders/... (EU funding portal) + + - https://www.heritagefund.org.uk/funding/... (UK heritage fund) + + ' + exact_mappings: + - schema:url + - dcterms:source + annotations: + custodian_types: '["*"]' +comments: +- Maps to pav:retrievedFrom for provenance tracking +- Essential for web claim verification workflows +- Should be the exact URL that was accessed, not normalized diff --git a/schemas/20251121/linkml/modules/slots/archive/source_video.yaml b/schemas/20251121/linkml/modules/slots/archive/source_video.yaml new file mode 100644 index 0000000000..3dde9c6a15 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/source_video.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/source_video +name: source_video_slot +title: Source Video Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + source_video: + slot_uri: hc:sourceVideo + description: 'Reference to the VideoPost from which this content was derived. + + + PROV-O: wasDerivedFrom links derived content to source. + + + Links to the video''s unique identifier (post_id). + + ' + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:sourceVideo diff --git a/schemas/20251121/linkml/modules/slots/archive/source_video_url.yaml b/schemas/20251121/linkml/modules/slots/archive/source_video_url.yaml new file mode 100644 index 0000000000..550af84826 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/source_video_url.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/source_video_url +name: source_video_url_slot +title: Source Video Url Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + source_video_url: + slot_uri: schema:url + description: 'URL of the source video. + + + Convenience field for direct video access. + + Derived from source_video but stored for quick reference. + + ' + range: uri + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:url diff --git a/schemas/20251121/linkml/modules/slots/archive/space_description.yaml b/schemas/20251121/linkml/modules/slots/archive/space_description.yaml new file mode 100644 index 0000000000..29699b2fe9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/space_description.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/space_description +name: space_description_slot +title: Space Description Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + space_description: + description: 'Description of the space. + + Aligned with crm:P3_has_note (textual description). + + ' + slot_uri: crm:P3_has_note + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P3_has_note diff --git a/schemas/20251121/linkml/modules/slots/archive/space_name.yaml b/schemas/20251121/linkml/modules/slots/archive/space_name.yaml new file mode 100644 index 0000000000..90246ad273 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/space_name.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/space_name +name: space_name_slot +title: Space Name Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + space_name: + description: 'Name of the closed space. + + Aligned with crm:P1_is_identified_by (appellation). + + ' + slot_uri: crm:P1_is_identified_by + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - crm:P1_is_identified_by diff --git a/schemas/20251121/linkml/modules/slots/archive/sparql_endpoint.yaml b/schemas/20251121/linkml/modules/slots/archive/sparql_endpoint.yaml new file mode 100644 index 0000000000..a589562d59 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/sparql_endpoint.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/slot/sparql_endpoint +name: sparql_endpoint_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + void: http://rdfs.org/ns/void# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + sparql_endpoint: + slot_uri: void:sparqlEndpoint + range: uri + description: 'SPARQL endpoint URL for linked data queries. + + + DCAT: endpointURL for SPARQL service. + + + Indicates platform supports RDF triple queries. + + + Examples: + + - "https://api.europeana.eu/sparql" (Europeana SPARQL) + + - "https://data.collectienederland.nl/sparql" (Collectie Nederland SPARQL) + + ' + broad_mappings: + - dcat:endpointURL + annotations: + custodian_types: '["*"]' + exact_mappings: + - void:sparqlEndpoint diff --git a/schemas/20251121/linkml/modules/slots/archive/spatial_resolution.yaml b/schemas/20251121/linkml/modules/slots/archive/spatial_resolution.yaml new file mode 100644 index 0000000000..5ed4afaeed --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/spatial_resolution.yaml @@ -0,0 +1,48 @@ +id: https://nde.nl/ontology/hc/slot/spatial_resolution +name: spatial_resolution +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +slots: + spatial_resolution: + slot_uri: schema:spatialCoverage + range: string + description: 'Level of spatial detail. + + + Values: + + - BUILDING: Individual building footprint + + - PARCEL: Cadastral parcel + + - STREET: Street address level + + - NEIGHBORHOOD: Neighborhood/district + + - CITY: City/municipality centroid + + - REGION: Province/state level + + - COUNTRY: Country centroid + + ' + examples: + - value: BUILDING + description: Rijksmuseum building + - value: CITY + description: Amsterdam centroid + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:spatialCoverage diff --git a/schemas/20251121/linkml/modules/slots/archive/speaker_count.yaml b/schemas/20251121/linkml/modules/slots/archive/speaker_count.yaml new file mode 100644 index 0000000000..e91cec76d5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/speaker_count.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/speaker_count +name: speaker_count_slot +title: Speaker Count Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + speaker_count: + description: 'Number of distinct speakers identified in the transcript. + + + Only meaningful when includes_speakers = true. + + + 0 = Unknown/not analyzed + + 1 = Single speaker (monologue) + + 2+ = Multi-speaker (dialogue, panel, interview) + + ' + range: integer + slot_uri: hc:speakerCount + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:speakerCount diff --git a/schemas/20251121/linkml/modules/slots/archive/speaker_id.yaml b/schemas/20251121/linkml/modules/slots/archive/speaker_id.yaml new file mode 100644 index 0000000000..0be5af4cd4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/speaker_id.yaml @@ -0,0 +1,38 @@ +id: https://nde.nl/ontology/hc/slot/speaker_id +name: speaker_id_slot +title: Speaker Id Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + speaker_id: + description: 'Identifier for the speaker during this segment. Mapped to dcterms:identifier as the standard property for resource identifiers. + + + For transcripts with speaker diarization: + + - Links to identified speaker (e.g., "SPEAKER_01") + + - May be resolved to actual person identity + + + Enables multi-speaker transcript navigation. + + ' + range: string + slot_uri: dcterms:identifier + close_mappings: + - schema:identifier + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_email.yaml b/schemas/20251121/linkml/modules/slots/archive/speaker_label.yaml similarity index 50% rename from schemas/20251121/linkml/modules/slots/has_or_had_email.yaml rename to schemas/20251121/linkml/modules/slots/archive/speaker_label.yaml index 653867b6d9..56fac10dd0 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_email.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/speaker_label.yaml @@ -1,34 +1,31 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_email -name: has_or_had_email_slot -title: Has Or Had Email Slot +id: https://nde.nl/ontology/hc/slot/speaker_label +name: speaker_label_slot +title: Speaker Label Slot prefixes: - hc: https://nde.nl/ontology/hc/ linkml: https://w3id.org/linkml/ - schema: http://schema.org/ + hc: https://nde.nl/ontology/hc/ + rdfs: http://www.w3.org/2000/01/rdf-schema# foaf: http://xmlns.com/foaf/0.1/ + schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ prov: http://www.w3.org/ns/prov# crm: http://www.cidoc-crm.org/cidoc-crm/ skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# xsd: http://www.w3.org/2001/XMLSchema# imports: - linkml:types default_prefix: hc slots: - has_or_had_email: - description: Email address associated with an entity. MIGRATED from contact_email, admin_email, and email_address (2026-01-26). - range: string - # range: EmailAddress - multivalued: true - inlined: false # Fixed invalid inline for primitive type - slot_uri: schema:email - close_mappings: - - foaf:mbox - annotations: - rico_naming_convention: 'Follows RiC-O "hasOrHad" pattern for temporal predicates. + speaker_label: + description: 'Human-readable label for the speaker. - ' + Maps to rdfs:label as a display name for the speaker during this segment. Distinguished from speaker_id which is a machine identifier. + + - May be generic ("Narrator", "Interviewer") - May be specific ("Dr. Taco Dibbits, Museum Director")' + range: string + slot_uri: rdfs:label + close_mappings: + - foaf:name + annotations: custodian_types: '["*"]' - specificity_score: 0.2 diff --git a/schemas/20251121/linkml/modules/slots/archive/special_collection.yaml b/schemas/20251121/linkml/modules/slots/archive/special_collection.yaml new file mode 100644 index 0000000000..5e3ff275a1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/special_collection.yaml @@ -0,0 +1,45 @@ +id: https://nde.nl/ontology/hc/slot/special_collection +name: special_collection_slot +title: Special Collections Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + special_collection: + slot_uri: dcterms:hasPart + description: 'Notable or specialized collections held by the library. + + Examples: rare books, manuscripts, incunabula, maps, music scores, archives, + + photographs, genealogy, local history, special subjects (e.g., art books, + + technical literature, children''s literature). + + ' + range: string + multivalued: true + required: false + examples: + - value: incunabula + description: Books printed before 1501 + - value: manuscripts + description: Handwritten documents and codices + - value: maps + description: Cartographic materials + - value: genealogy + description: Family history and genealogical records + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:hasPart diff --git a/schemas/20251121/linkml/modules/slots/archive/special_requirement.yaml b/schemas/20251121/linkml/modules/slots/archive/special_requirement.yaml new file mode 100644 index 0000000000..4685241ae1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/special_requirement.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/special_requirement +name: special_requirement_slot +title: Special Requirements Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + special_requirement: + description: 'Special handling, display, or environmental requirements. + + ' + range: string + multivalued: true + slot_uri: hc:specialRequirements + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:specialRequirements diff --git a/schemas/20251121/linkml/modules/slots/archive/specialized_place.yaml b/schemas/20251121/linkml/modules/slots/archive/specialized_place.yaml new file mode 100644 index 0000000000..a97ce460a5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/specialized_place.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/specialized_place +name: specialized_place_slot +title: Specialized Place Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + specialized_place: + description: "Link to a specialized place class instance for type-specific data.\n\n**CLASS-BASED TYPING SYSTEM**:\n\nWhile `auxiliary_place_type` provides basic classification via enum,\n`specialized_place` allows linking to a fully-typed specialized class\ninstance with type-specific slots and further classification enums.\n\n**Available Specialized Classes**:\n\n| has_auxiliary_place_type | specialized_place class | Type-specific features |\n|---------------------|------------------------|----------------------|\n| BRANCH_OFFICE | BranchOffice | service_types, parent_branch |\n| STORAGE_FACILITY | Storage | storage_conditions, climate_zones |\n| RESEARCH_CENTER | ResearchCenter | research_center_type enum |\n| EXHIBITION_SPACE | ExhibitionSpace | exhibition_space_type, linked gallery/museum types |\n| HISTORIC_BUILDING | HistoricBuilding | construction_date, heritage_designation, feature_type |\n| TEMPORARY_LOCATION | TemporaryLocation | reason enum, planned_end_date |\n| ADMINISTRATIVE_OFFICE\ + \ | AdministrativeOffice | departments_hosted |\n| EDUCATION_CENTER | EducationCenter | education_provider_type |\n| CONSERVATION_LAB | ConservationLab | conservation_specialties |\n| READING_ROOM | ReadingRoom | reading_room_type enum, capacity |\n| READING_ROOM_ANNEX | ReadingRoomAnnex | has_annex_reason enum, primary_reading_room |\n| WAREHOUSE | Warehouse | warehouse_type enum, total_capacity |\n| OUTDOOR_SITE | OutdoorSite | outdoor_site_type enum, bio/feature types |\n| RETAIL_SPACE | GiftShop | shop_types, product_categories |\n| CAFE_RESTAURANT | CateringPlace | catering_type enum, taste_scent_type |\n\n**EXAMPLE**:\n\n```yaml\nauxiliary_place_type: CONSERVATION_LAB\nspecialized_place:\n conservation_lab_id: \"https://nde.nl/hc/lab/rijksmuseum-paper-lab\"\n lab_name: \"Paper Conservation Laboratory\"\n conservation_specialties:\n - \"Paper conservation\"\n - \"Book binding restoration\"\n serves_institutions:\n - \"Rijksmuseum\"\n - \"Van Gogh Museum\"\n```\n\ + \n**OPTIONALITY**:\n\nThis slot is OPTIONAL. Basic classification via `auxiliary_place_type`\nis sufficient for many use cases. Use `specialized_place` when:\n- You need type-specific attributes (e.g., storage conditions)\n- Further classification is needed (e.g., research_center_type)\n- Cross-referencing specialized resources\n" + range: string # uriorcurie + # range: ReconstructedEntity + slot_uri: hc:specializedPlace + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:specializedPlace diff --git a/schemas/20251121/linkml/modules/slots/archive/specification_url.yaml b/schemas/20251121/linkml/modules/slots/archive/specification_url.yaml new file mode 100644 index 0000000000..3bb7cd0519 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/specification_url.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/specification_url +name: specification_url_slot +title: Specification URL Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + specification_url: + slot_uri: schema:documentation + description: 'URL to the official specification document for this protocol. + + + Schema.org: documentation for specification reference. + + + Examples: + + - "http://www.openarchives.org/OAI/openarchivesprotocol.html" (OAI-PMH) + + - "https://iiif.io/api/image/3.0/" (IIIF Image API 3.0) + + ' + range: uri + required: false + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:documentation diff --git a/schemas/20251121/linkml/modules/slots/archive/specificity_agent.yaml b/schemas/20251121/linkml/modules/slots/archive/specificity_agent.yaml new file mode 100644 index 0000000000..181a641113 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/specificity_agent.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/specificity_agent +name: specificity_agent_slot +title: Specificity Agent Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + specificity_agent: + slot_uri: prov:wasAttributedTo + description: 'Agent (human or AI) that created the specificity annotation. + + Uses standard agent identifier format. + + ' + range: string + examples: + - value: opencode-claude-sonnet-4 + description: AI agent identifier + - value: manual-human-curator + description: Human curator identifier + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:wasAttributedTo diff --git a/schemas/20251121/linkml/modules/slots/archive/specificity_rationale.yaml b/schemas/20251121/linkml/modules/slots/archive/specificity_rationale.yaml new file mode 100644 index 0000000000..00bc8f7d4a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/specificity_rationale.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/specificity_rationale +name: specificity_rationale_slot +title: Specificity Rationale Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + specificity_rationale: + slot_uri: skos:note + description: 'Explanation for the assigned specificity score. + + Documents reasoning for the score value. + + ' + range: string + examples: + - value: Archive-related class with moderate specificity + description: Rationale for 0.5 score + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:note diff --git a/schemas/20251121/linkml/modules/slots/archive/specificity_score.yaml b/schemas/20251121/linkml/modules/slots/archive/specificity_score.yaml new file mode 100644 index 0000000000..23f46ca44a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/specificity_score.yaml @@ -0,0 +1,56 @@ +id: https://nde.nl/ontology/hc/slot/specificity_score +name: specificity_score_slot +title: Specificity Score Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + specificity_score: + slot_uri: sosa:hasSimpleResult + description: 'Specificity score for RAG retrieval filtering (0.0-1.0). + + LOWER scores = more broadly relevant; HIGHER scores = more specific. + + + **Score Ranges**: + + - 0.00-0.20: Universal (HeritageCustodian, Location) + + - 0.20-0.40: Broadly useful (Collection, Identifier) + + - 0.40-0.60: Moderately specific (ChangeEvent, PersonProfile) + + - 0.60-0.80: Fairly specific (Archive, Museum, Library) + + - 0.80-1.00: Highly specific (LinkedInConnectionExtraction) + + + **Ontology mapping**: Uses sosa:hasSimpleResult because this is a + + computed observation result from RAG relevance algorithms. + + ' + range: float + minimum_value: 0.0 + maximum_value: 1.0 + close_mappings: + - prov:value + examples: + - value: 0.5 + description: Moderately specific class + - value: 0.2 + description: Broadly useful class + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/specificity_timestamp.yaml b/schemas/20251121/linkml/modules/slots/archive/specificity_timestamp.yaml new file mode 100644 index 0000000000..8993ceadce --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/specificity_timestamp.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/specificity_timestamp +name: specificity_timestamp_slot +title: Specificity Timestamp Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + specificity_timestamp: + slot_uri: prov:generatedAtTime + description: 'ISO 8601 timestamp when the specificity annotation was created. + + Enables temporal tracking of annotation changes. + + ' + range: datetime + examples: + - value: '2026-01-05T10:51:51Z' + description: Annotation timestamp + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:generatedAtTime diff --git a/schemas/20251121/linkml/modules/slots/archive/specifies_or_specified.yaml b/schemas/20251121/linkml/modules/slots/archive/specifies_or_specified.yaml new file mode 100644 index 0000000000..a49a3121c7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/specifies_or_specified.yaml @@ -0,0 +1,57 @@ +id: https://nde.nl/ontology/hc/slot/specifies_or_specified +name: specifies_or_specified_slot +title: Specifies or Specified Slot +description: 'Slot file for specifies_or_specified following Rule 53 (slot_fixes.yaml). + + Links an entity to specifications or quantitative details it provides. + + + Created per slot_fixes.yaml revision for change_in_net_asset migration. + + ' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + specifies_or_specified: + slot_uri: rico:specifies + description: 'A specification or quantitative detail that this entity provides or provided. + + + Follows RiC-O temporal naming convention (Rule 39) to indicate the + + relationship may be current or historical. + + + Used for: + + - Financial specifications (net assets, revenues, expenses) + + - Education history and credentials (e.g. LinkedIn profiles) + + - Quantitative measurements + + - Formal specifications and criteria + + ' + range: string # uriorcurie + multivalued: true + required: false + exact_mappings: + - rico:specifies + close_mappings: + - schema:hasCredential + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/specimen_count.yaml b/schemas/20251121/linkml/modules/slots/archive/specimen_count.yaml new file mode 100644 index 0000000000..15034059f2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/specimen_count.yaml @@ -0,0 +1,30 @@ +id: https://nde.nl/ontology/hc/slot/specimen_count +name: specimen_count_slot +title: Specimen Count Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + specimen_count: + description: 'Number of individuals represented by this specimen record. + + Default is 1 for most specimens. + + ' + range: integer + slot_uri: dwc:individualCount + annotations: + custodian_types: '["*"]' + exact_mappings: + - dwc:individualCount diff --git a/schemas/20251121/linkml/modules/slots/archive/specimen_type.yaml b/schemas/20251121/linkml/modules/slots/archive/specimen_type.yaml new file mode 100644 index 0000000000..01a581ba10 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/specimen_type.yaml @@ -0,0 +1,104 @@ +id: https://nde.nl/ontology/hc/slot/specimen_type +name: specimen_type_slot +title: Specimen Type Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + specimen_type: + description: 'Categories of living specimens maintained in the collection. + + Multi-valued field capturing all taxonomic groups represented. + + + **For Botanical Institutions**: + + - "vascular plants" - Ferns, gymnosperms, angiosperms + + - "non-vascular plants" - Mosses, liverworts, hornworts + + - "algae" - Aquatic photosynthetic organisms + + - "fungi" - Mushrooms, molds, lichens + + - "cultivars" - Named plant varieties (roses, tulips, etc.) + + + **For Zoological Institutions**: + + - "mammals" - Primates, carnivores, ungulates, marine mammals + + - "birds" - Raptors, waterfowl, passerines, flightless birds + + - "reptiles" - Snakes, lizards, turtles, crocodilians + + - "amphibians" - Frogs, salamanders, caecilians + + - "fish" - Freshwater, marine, cartilaginous, bony fish + + - "invertebrates" - Insects, arachnids, mollusks, crustaceans + + + **For Aquariums**: + + - "marine fish" - Saltwater fish species + + - "freshwater fish" - River and lake species + + - "corals" - Reef-building cnidarians + + - "marine mammals" - Dolphins, seals, sea lions + + - "sharks and rays" - Cartilaginous fish + + - "jellyfish" - Cnidarian medusae + + + **Specialized Collections**: + + - "butterflies" - Lepidoptera (butterfly houses) + + - "primates only" - Specialized primate centers + + - "raptors" - Birds of prey (falconry centers) + + - "carnivorous plants" - Insectivorous botanical specialists + + - "succulents" - Cactus and succulent gardens + + + **Examples**: + + - Artis (zoo): ["mammals", "birds", "reptiles", "amphibians", "fish", "invertebrates"] + + - Hortus Leiden: ["vascular plants", "non-vascular plants", "cultivars"] + + - Burgers'' Ocean: ["marine fish", "corals", "sharks and rays"] + + - Vlindorado: ["butterflies", "tropical plants"] + + + **Ontology Alignment**: + + - Maps to Darwin Core `dwc:taxonRank` and `dwc:scientificName` + + - Maps to `schema:additionalType` for Schema.org + + ' + range: string + slot_uri: dwc:typeStatus + annotations: + custodian_types: '["*"]' + exact_mappings: + - dwc:typeStatus diff --git a/schemas/20251121/linkml/modules/slots/archive/spectrum_procedure.yaml b/schemas/20251121/linkml/modules/slots/archive/spectrum_procedure.yaml new file mode 100644 index 0000000000..c8f0ed7576 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/spectrum_procedure.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/spectrum_procedure +name: spectrum_procedure_slot +title: Spectrum Procedure Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + spectrum_procedure: + description: 'SPECTRUM procedure this activity conforms to. + + + Links to SPECTRUM Collections Management Standard procedure names. + + + See CurationActivityTypeEnum for SPECTRUM mappings. + + ' + range: string + slot_uri: dcterms:conformsTo + annotations: + custodian_types: '["*"]' + exact_mappings: + - dcterms:conformsTo diff --git a/schemas/20251121/linkml/modules/slots/archive/speech_detected.yaml b/schemas/20251121/linkml/modules/slots/archive/speech_detected.yaml new file mode 100644 index 0000000000..697e1e785e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/speech_detected.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/speech_detected +name: speech_detected_slot +title: Speech Detected Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + speech_detected: + description: 'Whether speech was detected in the video audio. + + + High-level flag for presence of speech content. + + + - true: At least one speech segment detected + + - false: No speech detected (music-only, silent, etc.) + + ' + range: boolean + slot_uri: hc:speechDetected + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:speechDetected diff --git a/schemas/20251121/linkml/modules/slots/archive/speech_language.yaml b/schemas/20251121/linkml/modules/slots/archive/speech_language.yaml new file mode 100644 index 0000000000..36c3bea80f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/speech_language.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/speech_language +name: speech_language_slot +title: Speech Language Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + speech_language: + description: 'Primary language of speech content (ISO 639-1 code). + + + Dublin Core: language for primary language. + + + For multilingual content, this is the predominant language. + + See `languages_detected` for all languages. + + ' + range: string + slot_uri: hc:speechLanguage + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:speechLanguage diff --git a/schemas/20251121/linkml/modules/slots/archive/speech_language_confidence.yaml b/schemas/20251121/linkml/modules/slots/archive/speech_language_confidence.yaml new file mode 100644 index 0000000000..c06301a5f1 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/speech_language_confidence.yaml @@ -0,0 +1,52 @@ +id: https://nde.nl/ontology/hc/slot/speech_language_confidence +name: speech_language_confidence_slot +title: Speech Language Confidence Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + sosa: http://www.w3.org/ns/sosa/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + speech_language_confidence: + description: 'Confidence score for language detection (0.0-1.0). + + + Higher confidence when: + + - Longer speech segments + + - Clear audio quality + + - Distinct language features + + + Lower confidence when: + + - Short utterances + + - Background noise + + - Code-switching + + + **Ontology mapping**: Uses sosa:hasSimpleResult because language detection models act as sensors producing observation results. + + ' + range: float + minimum_value: 0.0 + maximum_value: 1.0 + slot_uri: sosa:hasSimpleResult + close_mappings: + - prov:value + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/speech_text.yaml b/schemas/20251121/linkml/modules/slots/archive/speech_text.yaml new file mode 100644 index 0000000000..0467492794 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/speech_text.yaml @@ -0,0 +1,31 @@ +id: https://nde.nl/ontology/hc/slot/speech_text +name: speech_text_slot +title: Speech Text Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + speech_text: + description: 'Transcript text for this segment (if available). + + + Links to VideoTranscript for full transcript. + + ' + range: string + slot_uri: hc:speechText + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:speechText diff --git a/schemas/20251121/linkml/modules/slots/archive/square_meters.yaml b/schemas/20251121/linkml/modules/slots/archive/square_meters.yaml new file mode 100644 index 0000000000..44cdc98b9e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/square_meters.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/square_meters +name: square_meters_slot +title: Square Meters Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + square_meters: + description: 'Retail floor space in square meters. + + + Schema.org: floorSize for area measurement. + + + Indicator of shop scale and capacity. + + ' + range: float + slot_uri: hc:squareMeters + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:squareMeters diff --git a/schemas/20251121/linkml/modules/slots/archive/staff_count.yaml b/schemas/20251121/linkml/modules/slots/archive/staff_count.yaml new file mode 100644 index 0000000000..f91290e39b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/staff_count.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/staff_count +name: staff_count_slot +imports: +- linkml:types +slots: + staff_count: + slot_uri: schema:numberOfEmployees + range: integer + description: 'Number of staff working in the gift shop. + + + Schema.org: numberOfEmployees for staffing. + + + May include full-time, part-time, seasonal. + + ' + close_mappings: + - schema:numberOfEmployees + broad_mappings: + - schema:numberOfItems + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/staff_id.yaml b/schemas/20251121/linkml/modules/slots/archive/staff_id.yaml new file mode 100644 index 0000000000..17a8e296ec --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/staff_id.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/staff_id +name: staff_id_slot +title: staff_id slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dct: http://purl.org/dc/terms/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + staff_id: + description: 'Unique identifier for the staff member within the source organization. + + Format: {org_slug}_staff_{index}_{name_slug} + + ' + slot_uri: dct:identifier + range: string + pattern: ^[a-z0-9-]+_staff_[a-z0-9-_]+$ + examples: + - value: rijksmuseum_staff_0042_jan_van_der_berg + description: Staff ID with org prefix, index, and name slug + annotations: + custodian_types: '["*"]' + exact_mappings: + - dct:identifier diff --git a/schemas/20251121/linkml/modules/slots/archive/staff_impact.yaml b/schemas/20251121/linkml/modules/slots/archive/staff_impact.yaml new file mode 100644 index 0000000000..44abdbaeb6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/staff_impact.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/staff_impact +name: staff_impact +imports: +- linkml:types +slots: + staff_impact: + slot_uri: skos:note + description: "Description of impact on staff (FTE changes, reassignments, redundancies).\n\nInclude:\n- FTE count changes (before \u2192 after)\n- Staff reassignments between units\n- Redundancies or retirements\n- New hires\n" + range: string + exact_mappings: + - rdfs:comment + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/staff_role.yaml b/schemas/20251121/linkml/modules/slots/archive/staff_role.yaml new file mode 100644 index 0000000000..7593b6607f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/staff_role.yaml @@ -0,0 +1,62 @@ +id: https://nde.nl/ontology/hc/slot/staff_role +name: staff_role +title: Staff Role +imports: +- linkml:types +slots: + staff_role: + slot_uri: schema:roleName + description: 'Primary staff role from controlled class hierarchy. + + + **Schema.org**: `schema:roleName` for organizational role + + + **Range**: StaffRole class hierarchy (51 specialized subclasses) + + + **Purpose**: Enable role-based queries ("Find all conservators") + + + **IMPORTANT - FORMAL TITLE vs DE FACTO WORK**: + + This slot captures the OFFICIAL job appellation/title assigned by the institution. + + Actual de facto work may differ from or stretch beyond this formal classification. + + Staff may perform duties outside their formal title, especially in smaller institutions. + + + **Distinction from role_title**: + + - staff_role: Conservator class (controlled category with properties) + + - role_title: "Senior Paintings Conservator" (institutional job title string) + + + **Classes replace enum**: Per Single Source of Truth principle, the StaffRoleTypeEnum + + was converted to a class hierarchy to enable richer modeling. + + + See: modules/classes/StaffRole.yaml, modules/classes/StaffRoles.yaml + + ' + range: string # uriorcurie + # range: StaffRole + exact_mappings: + - org:role + - schema:roleName + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/standardized_name.yaml b/schemas/20251121/linkml/modules/slots/archive/standardized_name.yaml new file mode 100644 index 0000000000..709cd3dc6f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/standardized_name.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/standardized_name +name: standardized_name_slot +imports: +- linkml:types +slots: + standardized_name: + slot_uri: skos:prefLabel + range: string + description: The canonical emic name accepted by custodian itself (REQUIRED) + required: true + broad_mappings: + - rdfs:label + annotations: + custodian_types: '["*"]' + exact_mappings: + - skos:prefLabel +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/standards_applied.yaml b/schemas/20251121/linkml/modules/slots/archive/standards_applied.yaml new file mode 100644 index 0000000000..16f5d42a63 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/standards_applied.yaml @@ -0,0 +1,39 @@ +id: https://nde.nl/ontology/hc/slot/standards_applied +name: standards_applied_slot +title: Standards Applied Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/StorageStandardEnum +default_prefix: hc +slots: + standards_applied: + description: 'Storage standards that this facility is designed to meet. + + + References StorageStandardEnum values for ISO, EN, or other + + recognized standards governing storage conditions. + + + Dublin Core: conformsTo for standards compliance. + + ' + range: string # uriorcurie + # range: StorageStandardEnum + multivalued: true + slot_uri: hc:standardsApplied + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:standardsApplied diff --git a/schemas/20251121/linkml/modules/slots/archive/standards_compliance.yaml b/schemas/20251121/linkml/modules/slots/archive/standards_compliance.yaml new file mode 100644 index 0000000000..278a27ae37 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/standards_compliance.yaml @@ -0,0 +1,34 @@ +id: https://nde.nl/ontology/hc/slot/standards_compliance +name: standards_compliance_slot +title: Standards Compliance Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +- ../enums/StorageStandardEnum +default_prefix: hc +slots: + standards_compliance: + description: 'Standards this policy is designed to meet. + + + Reference to StorageStandardEnum values. + + ' + range: string # uriorcurie + # range: StorageStandardEnum + multivalued: true + slot_uri: hc:standardsCompliance + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:standardsCompliance diff --git a/schemas/20251121/linkml/modules/slots/archive/start.yaml b/schemas/20251121/linkml/modules/slots/archive/start.yaml new file mode 100644 index 0000000000..53f4617d7f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/start.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/start +name: start_slot +title: Start Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + start: + slot_uri: schema:startDate + description: Start of temporal coverage + range: string + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:startDate diff --git a/schemas/20251121/linkml/modules/slots/archive/start_of_the_start.yaml b/schemas/20251121/linkml/modules/slots/archive/start_of_the_start.yaml new file mode 100644 index 0000000000..1e764c13c8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/start_of_the_start.yaml @@ -0,0 +1,58 @@ +id: https://nde.nl/ontology/hc/slot/start_of_the_start +name: start_of_the_start +title: Start of the Start +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + start_of_the_start: + slot_uri: crm:P82a_begin_of_the_begin + description: 'The earliest possible start time of a temporal extent. + + + **SEMANTICS**: + + Equivalent to CIDOC-CRM P82a_begin_of_the_begin. + + This slot is an alias for `begin_of_the_begin` for naming consistency. + + + **USAGE**: + + - For precise start: Set to exact timestamp + + - For uncertain start: Set to earliest plausible date + + + **NOTE**: + + Prefer `begin_of_the_begin` in new code (established CIDOC-CRM pattern). + + This slot created per slot_fixes.yaml revision requirements. + + ' + range: string # uriorcurie + # range: Timestamp + exact_mappings: + - crm:P82a_begin_of_the_begin + aliases: + - begin_of_the_begin + examples: + - value: '1902-01-01' + description: Earliest possible date for 1902 founding + - value: '1850-01-01' + description: Earliest date for 1850s founding (decade uncertainty) + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Temporal boundaries applicable to all custodian types. diff --git a/schemas/20251121/linkml/modules/slots/archive/start_seconds.yaml b/schemas/20251121/linkml/modules/slots/archive/start_seconds.yaml new file mode 100644 index 0000000000..211aca5313 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/start_seconds.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/start_seconds +name: start_seconds_slot +title: Start Seconds Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + start_seconds: + description: 'Start time in seconds (floating point) from video beginning. + + + **PRIMARY for computation**. Use for: + + - Video player synchronization + + - Duration calculations + + - Time-based sorting and filtering + + + Precision to milliseconds (3 decimal places) is typical. + + ' + range: float + slot_uri: hc:startSeconds + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:startSeconds diff --git a/schemas/20251121/linkml/modules/slots/archive/start_time.yaml b/schemas/20251121/linkml/modules/slots/archive/start_time.yaml new file mode 100644 index 0000000000..5c60a12070 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/start_time.yaml @@ -0,0 +1,45 @@ +id: https://nde.nl/ontology/hc/slot/start_time +name: start_time_slot +title: Start Time Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + start_time: + description: 'Start time of segment as ISO 8601 duration from video beginning. + + + Media Ontology: hasStartTime for temporal start. + + + **Format**: ISO 8601 duration (e.g., "PT0M30S" = 30 seconds from start) + + + **Common Patterns**: + + - PT0S = Start of video (0 seconds) + + - PT30S = 30 seconds + + - PT1M30S = 1 minute 30 seconds + + - PT1H15M30S = 1 hour 15 minutes 30 seconds + + ' + range: string + slot_uri: hc:startTime + annotations: + custodian_types: '["*"]' + exact_mappings: + - hc:startTime diff --git a/schemas/20251121/linkml/modules/slots/archive/started_at_time.yaml b/schemas/20251121/linkml/modules/slots/archive/started_at_time.yaml new file mode 100644 index 0000000000..f3ad3ec78d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/started_at_time.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/started_at_time +name: started_at_time_slot +imports: +- linkml:types +slots: + started_at_time: + slot_uri: prov:startedAtTime + range: datetime + description: Start time of reconstruction activity + broad_mappings: + - prov:atTime + annotations: + custodian_types: '["*"]' + exact_mappings: + - prov:startedAtTime +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/ends_or_ended_at_location.yaml b/schemas/20251121/linkml/modules/slots/archive/starts_or_started_at_location.yaml similarity index 55% rename from schemas/20251121/linkml/modules/slots/archive/ends_or_ended_at_location.yaml rename to schemas/20251121/linkml/modules/slots/archive/starts_or_started_at_location.yaml index 3f8edc9618..75495c9bb5 100644 --- a/schemas/20251121/linkml/modules/slots/archive/ends_or_ended_at_location.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/starts_or_started_at_location.yaml @@ -1,6 +1,6 @@ -id: https://nde.nl/ontology/hc/slot/ends_or_ended_at_location -name: ends_or_ended_at_location_slot -title: Ends Or Ended At Location Slot +id: https://nde.nl/ontology/hc/slot/starts_or_started_at_location +name: starts_or_started_at_location_slot +title: Starts Or Started At Location Slot prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -16,34 +16,34 @@ default_prefix: hc imports: - linkml:types slots: - ends_or_ended_at_location: + starts_or_started_at_location: slot_uri: prov:atLocation - description: 'Destination location where an event or process ended. + description: 'Origin location where an event or process started. **Temporal Semantics** (RiC-O Pattern): - The "endsOrEnded" naming follows RiC-O convention indicating + The "startsOrStarted" naming follows RiC-O convention indicating - the location may be historical (where something concluded). + the location may be historical (where something began). **Ontological Alignment**: - **Primary** (`slot_uri`): `prov:atLocation` - PROV-O location - - **Related**: `crm:P26_moved_to` - CIDOC-CRM moved to + - **Related**: `crm:P27_moved_from` - CIDOC-CRM moved from - - **Related**: `schema:toLocation` - Schema.org destination + - **Related**: `schema:fromLocation` - Schema.org origin **Use Cases**: - - Transfer event destination (where materials went to) + - Transfer event origin (where materials came from) - - Journey/movement end location + - Journey/movement start location - - Process completion location + - Process initiation location **Range**: Location class (structured location with name and coordinates) @@ -55,10 +55,10 @@ slots: multivalued: false inlined: false # Fixed invalid inline for primitive type related_mappings: - - crm:P26_moved_to - - schema:toLocation + - crm:P27_moved_from + - schema:fromLocation annotations: - rico_naming_convention: 'Follows RiC-O "endsOrEnded" pattern for temporal location predicates. + rico_naming_convention: 'Follows RiC-O "startsOrStarted" pattern for temporal location predicates. See Rule 39: Slot Naming Convention (RiC-O Style) @@ -68,12 +68,12 @@ slots: specificity_score: 0.4 specificity_rationale: Specialized slot for event/process locations. comments: - - Destination location for events/processes - - Maps to prov:atLocation with end semantics - - 'RiC-O naming: endsOrEnded indicates temporal aspect' + - Origin location for events/processes + - Maps to prov:atLocation with start semantics + - 'RiC-O naming: startsOrStarted indicates temporal aspect' examples: - value: - location_name: New Archive Building, Haarlem - description: Destination location for collection transfer + location_name: Old Storage Facility, Amsterdam + description: Origin location for collection transfer exact_mappings: - prov:atLocation diff --git a/schemas/20251121/linkml/modules/slots/archive/statement_currency.yaml b/schemas/20251121/linkml/modules/slots/archive/statement_currency.yaml new file mode 100644 index 0000000000..064df19dc5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/statement_currency.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/statement_currency +name: statement_currency +title: Statement Currency +description: Statement currency. +imports: +- linkml:types +prefixes: + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + hc: https://nde.nl/ontology/hc/ +# default_range: string +slots: + statement_currency: + slot_uri: hc:statement_currency + range: string + multivalued: false + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/statement_description.yaml b/schemas/20251121/linkml/modules/slots/archive/statement_description.yaml new file mode 100644 index 0000000000..cdde988fbc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/statement_description.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/statement_description +name: statement_description +title: Statement Description +description: Statement description. +imports: +- linkml:types +prefixes: + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + hc: https://nde.nl/ontology/hc/ +# default_range: string +slots: + statement_description: + slot_uri: hc:statement_description + range: string + multivalued: false + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/statement_name.yaml b/schemas/20251121/linkml/modules/slots/archive/statement_name.yaml new file mode 100644 index 0000000000..dbe5403a53 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/statement_name.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/statement_name +name: statement_name +title: Statement Name +description: Statement name. +imports: +- linkml:types +prefixes: + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + hc: https://nde.nl/ontology/hc/ +# default_range: string +slots: + statement_name: + slot_uri: hc:statement_name + range: string + multivalued: false + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/statement_type.yaml b/schemas/20251121/linkml/modules/slots/archive/statement_type.yaml new file mode 100644 index 0000000000..f7585605c6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/statement_type.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/statement_type +name: statement_type +title: Statement Type +description: Statement type. +imports: +- linkml:types +prefixes: + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + hc: https://nde.nl/ontology/hc/ +# default_range: string +slots: + statement_type: + slot_uri: hc:statement_type + range: string + multivalued: false + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/states_or_stated.yaml b/schemas/20251121/linkml/modules/slots/archive/states_or_stated.yaml new file mode 100644 index 0000000000..0744d2a2af --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/states_or_stated.yaml @@ -0,0 +1,16 @@ +id: https://nde.nl/ontology/hc/slot/states_or_stated +name: states_or_stated +title: States or Stated +description: The quantity or value stated by this entity. +imports: +- linkml:types +slots: + states_or_stated: + slot_uri: schema:value + range: string # uriorcurie + # range: Quantity + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:value diff --git a/schemas/20251121/linkml/modules/slots/archive/stores_or_stored.yaml b/schemas/20251121/linkml/modules/slots/archive/stores_or_stored.yaml new file mode 100644 index 0000000000..36be33997b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/stores_or_stored.yaml @@ -0,0 +1,49 @@ +id: https://nde.nl/ontology/hc/slot/stores_or_stored +name: stores_or_stored_slot +title: Stores Or Stored Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + stores_or_stored: + slot_uri: crm:P55_has_former_or_current_keeper + description: "Items currently or formerly stored in this location/unit, OR materials\nthis storage is designed to accommodate.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"or_stored\" phrasing indicates the relationship may be:\n- Current (objects presently in this storage unit)\n- Historical (objects formerly stored here)\n- Design intent (materials this storage is designed for)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P55_has_former_or_current_keeper` - CIDOC-CRM\n - Domain: E53_Place\n - Range: E18_Physical_Thing\n - Note: P55 is the inverse of \"has former or current location\"\n\n**Usage**:\nRange is `uriorcurie` per Rule 55 to allow class-level slot_usage to narrow:\n- `HeritageObject` for actual stored items (StorageUnit, ArchiveBox)\n- `Material` for design specifications (EnvironmentalZoneType, StorageType)\n\n**MIGRATION NOTE (2026-01-16)**:\nRange broadened from HeritageObject to uriorcurie to support target_material\n\ + migration. EnvironmentalZoneType and StorageType use this slot with Material\nrange to describe what materials a storage environment is designed for.\n\n**Applicable Contexts**:\n- Storage units (archive boxes, shelves, cabinets) \u2192 HeritageObject range\n- Environmental zones (design specs) \u2192 Material range\n- Storage types (design specs) \u2192 Material range\n- Entire storage facilities \u2192 HeritageObject range\n\n**Examples**:\n- Archive box storing historical documents (HeritageObject)\n- Environmental zone designed for paper materials (Material)\n- Cold storage type for nitrate film (Material)\n" + range: string # uriorcurie + required: false + multivalued: true + exact_mappings: + - crm:P55_has_former_or_current_keeper + - hc:targetMaterials + close_mappings: + - rico:hasOrHadSubject + - schema:containedIn + related_mappings: + - crm:P54_has_current_permanent_location + annotations: + migration_date: '2026-01-15' + migrated_from: stores_object, target_material + rule_reference: Rule 39 (RiC-O naming), Rule 55 (broaden ranges) + range_history: "2026-01-15: uriorcurie \u2192 HeritageObject (typed range)\n2026-01-16: HeritageObject \u2192 uriorcurie (broadened per Rule 55 for target_material migration)\n" + custodian_types: '["*"]' + examples: + - value: https://nde.nl/ontology/hc/object/document-123 + description: Document stored in archive box (HeritageObject range) + - value: https://nde.nl/ontology/hc/object/painting-vermeer-001 + description: Painting in museum storage (HeritageObject range) + - value: https://nde.nl/ontology/hc/material/paper + description: Storage designed for paper materials (Material range) + - value: https://nde.nl/ontology/hc/material/nitrate-film + description: Cold storage designed for nitrate film (Material range) diff --git a/schemas/20251121/linkml/modules/slots/archive/supersedes_or_superseded.yaml b/schemas/20251121/linkml/modules/slots/archive/supersedes_or_superseded.yaml new file mode 100644 index 0000000000..b06f653170 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/supersedes_or_superseded.yaml @@ -0,0 +1,40 @@ +id: https://nde.nl/ontology/hc/slot/supersedes_or_superseded +name: supersedes_or_superseded_slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + supersedes_or_superseded: + slot_uri: hc:supersedesOrSuperseded + range: string # uriorcurie + description: 'Entity that this one supersedes, or that supersedes this one. + + Use when a new version corrects or updates a previous one. Direction is determined by context - the slot represents the relationship in either direction. + + PROV-O: wasRevisionOf for updated versions. + + Migrated from bespoke `supersede` slot per Rule 53/56 (2026-01-17). Original slot_uri (hc:supersedes) preserved in exact_mappings.' + exact_mappings: + - dcterms:replaces + - hc:supersedes + close_mappings: + - prov:wasRevisionOf + annotations: + migration_note: Consolidated from supersede slot (2026-01-17) + specificity_score: 0.25 + specificity_rationale: Generic version/revision relationship applicable across many entity types + custodian_types: '["*"]' + comments: + - Uses uriorcurie range per Rule 55 (broaden generic predicate ranges) + - Supports temporal tracking via temporal_extent slot on containing class diff --git a/schemas/20251121/linkml/modules/slots/archive/takes_or_took_comission.yaml b/schemas/20251121/linkml/modules/slots/archive/takes_or_took_comission.yaml new file mode 100644 index 0000000000..3e66d3f12a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/takes_or_took_comission.yaml @@ -0,0 +1,45 @@ +id: https://nde.nl/ontology/hc/slot/takes_or_took_comission +name: takes_or_took_comission +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + takes_or_took_comission: + slot_uri: schema:priceComponent + description: "Commission rate taken on sales transactions.\n\n**PURPOSE**:\n\nLinks a service (like art sales) to its commission structure.\nUsed for modeling gallery commission on artwork sales.\n\n**RiC-O NAMING** (Rule 39):\n\nUses \"takes_or_took_\" prefix indicating temporal relationship - \ncommission rates may change over time.\n\n**MIGRATION NOTE**:\n\nCreated from migration of `commission_rate` slot per slot_fixes.yaml.\nProvides structured commission representation via CommissionRate class.\n\n**NOTE**: Spelling \"comission\" matches revision specification per Rule 57.\n" + range: string # uriorcurie + # range: CommissionRate + inlined: false # Fixed invalid inline for primitive type + close_mappings: + - schema:priceComponent + examples: + - value: + rate_type: primary_market + has_or_had_percentage: + percentage_value: 50 + percentage_display: 50% + description: Standard primary market commission (50%) + - value: + rate_type: secondary_market + has_or_had_percentage: + percentage_value: 15 + percentage_display: 10-20% + description: Secondary market resale commission + comments: + - Created 2026-01-22 from commission_rate migration (Rule 53) + - Uses RiC-O temporal naming convention (Rule 39) + - Links services to commission structures + annotations: + custodian_types: '["G"]' + custodian_types_rationale: Primarily for galleries and commercial art dealers. diff --git a/schemas/20251121/linkml/modules/slots/archive/takes_or_took_place_at.yaml b/schemas/20251121/linkml/modules/slots/archive/takes_or_took_place_at.yaml new file mode 100644 index 0000000000..49a125d5ac --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/takes_or_took_place_at.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/takes_or_took_place_at +name: takes_or_took_place_at_slot +title: Takes Or Took Place At Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +default_prefix: hc +imports: +- linkml:types +slots: + takes_or_took_place_at: + slot_uri: crm:P7_took_place_at + description: "Location where an event takes or took place.\n\nGeneric temporal-aware slot following RiC-O naming convention (Rule 39).\nThe \"takes_or_took\" phrasing indicates the location may be:\n- Current (ongoing events)\n- Historical (past events)\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `crm:P7_took_place_at` - CIDOC-CRM event location\n - Domain: E4_Period (includes E5_Event)\n - Range: E53_Place\n\n**Usage**:\nLinks events to place references (CustodianPlace, GeoSpatialPlace, or generic Location).\nClass-level slot_usage narrows the range to specific place types as needed.\n\n**Examples**:\n- Merger event signed at headquarters \u2192 CustodianPlace\n- Natural disaster affecting region \u2192 GeoSpatialPlace\n- Exhibition opening \u2192 Location (generic)\n" + range: string # uriorcurie + required: false + multivalued: false + exact_mappings: + - crm:P7_took_place_at + - rico:hasOrHadLocation + close_mappings: + - schema:location + - prov:atLocation + annotations: + migration_date: '2026-01-15' + migrated_from: took_place_at + rule_reference: 'Rule 39: RiC-O temporal naming convention' + custodian_types: '["*"]' + examples: + - value: https://nde.nl/ontology/hc/place/nl-nh-haa + description: Noord-Hollands Archief merger took place at Haarlem location + - value: https://nde.nl/ontology/hc/geo/gaza-city + description: Cultural heritage destruction event location diff --git a/schemas/20251121/linkml/modules/slots/archive/temporal_extent.yaml b/schemas/20251121/linkml/modules/slots/archive/temporal_extent.yaml new file mode 100644 index 0000000000..76d8762b6b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/temporal_extent.yaml @@ -0,0 +1,54 @@ +id: https://nde.nl/ontology/hc/slot/temporal_extent +name: temporal_extent_slot +imports: +- linkml:types +slots: + temporal_extent: + slot_uri: crm:P4_has_time-span + range: string # uriorcurie + # range: TimeSpan + description: 'Temporal extent of reconstruction activity (start/end times with fuzzy boundaries). + + CIDOC-CRM: P4_has_time-span links Activity to TimeSpan. + + PROV-O: Maps to combination of prov:startedAtTime and prov:endedAtTime. + + + For precise timestamps: + + - Set begin_of_the_begin == end_of_the_begin (activity start) + + - Set begin_of_the_end == end_of_the_end (activity end) + + + For activities with uncertain duration, use fuzzy boundaries: + + - begin_of_the_begin: Earliest possible start + + - end_of_the_begin: Latest possible start + + - begin_of_the_end: Earliest possible end + + - end_of_the_end: Latest possible end + + ' + broad_mappings: + - dcterms:extent + related_mappings: + - prov:startedAtTime + - prov:endedAtTime + exact_mappings: + - crm:P4_has_time-span + annotations: + custodian_types: '["*"]' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# diff --git a/schemas/20251121/linkml/modules/slots/archive/transmits_or_transmitted_through.yaml b/schemas/20251121/linkml/modules/slots/archive/transmits_or_transmitted_through.yaml new file mode 100644 index 0000000000..45d90a988d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/transmits_or_transmitted_through.yaml @@ -0,0 +1,15 @@ +id: https://nde.nl/ontology/hc/slot/transmits_or_transmitted_through +name: transmits_or_transmitted_through +title: Transmits Or Transmitted Through +description: Transmission method. +imports: +- linkml:types +slots: + transmits_or_transmitted_through: + slot_uri: schema:potentialAction + range: string + multivalued: true + annotations: + custodian_types: '["*"]' + exact_mappings: + - schema:potentialAction diff --git a/schemas/20251121/linkml/modules/slots/archive/uses_or_used.yaml b/schemas/20251121/linkml/modules/slots/archive/uses_or_used.yaml new file mode 100644 index 0000000000..b6802aeaa5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/uses_or_used.yaml @@ -0,0 +1,53 @@ +id: https://nde.nl/ontology/hc/slot/uses_or_used +name: uses_or_used_slot +title: Uses or Used Slot +description: 'Generic temporal slot for systems, tools, software, or methodologies used by an entity. + + Follows RiC-O temporal naming convention (Rule 39) to indicate relationship may be + + current or historical. + + ' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + uses_or_used: + slot_uri: prov:used + description: 'A system, tool, software, methodology, or resource that the entity uses or used. + + This is a generic temporal relationship following RiC-O naming conventions. + + + Examples: + + - Library catalog systems (ALMA, Koha, Sierra) + + - Collection management systems (Adlib, TMS, CollectiveAccess) + + - Digital preservation systems (Archivematica, Preservica) + + - Metadata standards (Dublin Core, MARC21, EAD) + + ' + range: string # uriorcurie + multivalued: true + required: false + exact_mappings: + - prov:used + close_mappings: + - schema:usesDevice + - schema:softwareApplication + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/uses_or_used_technique.yaml b/schemas/20251121/linkml/modules/slots/archive/uses_or_used_technique.yaml new file mode 100644 index 0000000000..a7c19178d6 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/uses_or_used_technique.yaml @@ -0,0 +1,73 @@ +id: https://nde.nl/ontology/hc/slot/uses_or_used_technique +name: uses_or_used_technique_slot +title: Uses Or Used Technique Slot +description: 'Generic slot for techniques used in an activity (conservation, production, etc.). + + + MIGRATION: Replaces `techniques_used` per slot_fixes.yaml (Rule 53/56, 2026-01-16). + + + Preserves CIDOC-CRM P32_used_general_technique semantics while enabling structured + + technique records with type classification, descriptions, and provenance. + + + **Ontology Alignment**: + + - slot_uri: crm:P32_used_general_technique (preserved from original slot) + + - CIDOC-CRM: "This property identifies the general technique used in an activity." + + + **Usage**: + + - ConservationRecord: Techniques employed in conservation treatment + + - ProductionRecord: Manufacturing or crafting techniques (future) + + - ResearchActivity: Analytical techniques (future) + + ' +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + aat: http://vocab.getty.edu/aat/ + dcterms: http://purl.org/dc/terms/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + uses_or_used_technique: + slot_uri: crm:P32_used_general_technique + range: string # uriorcurie + multivalued: true + description: 'Techniques used in an activity such as conservation treatment, production, or research. + + + Range is broadened to uriorcurie per Rule 55, allowing slot_usage to narrow + + to structured Technique class instances. + + + CIDOC-CRM: "This property identifies the general technique or method, a + + standardised procedure, employed in carrying out an activity." + + ' + exact_mappings: + - crm:P32_used_general_technique + close_mappings: + - schema:instrument + - aat:300264237 + annotations: + replaces_slot: techniques_used + migration_date: '2026-01-16' + migration_rule: Rule 53/56 - bespoke to generic slot migration + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/warrants_or_warranted.yaml b/schemas/20251121/linkml/modules/slots/archive/warrants_or_warranted.yaml new file mode 100644 index 0000000000..424ec9ddfc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/warrants_or_warranted.yaml @@ -0,0 +1,35 @@ +id: https://nde.nl/ontology/hc/slot/warrants_or_warranted +name: warrants_or_warranted_slot +title: Warrants or Warranted Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + skos: http://www.w3.org/2004/02/skos/core# + rdfs: http://www.w3.org/2000/01/rdf-schema# + org: http://www.w3.org/ns/org# + xsd: http://www.w3.org/2001/XMLSchema# +imports: +- linkml:types +default_prefix: hc +slots: + warrants_or_warranted: + range: string # uriorcurie + # range: Claim + multivalued: true + inlined_as_list: false # Fixed invalid inline for primitive type + slot_uri: hc:warrantsOrWarranted + description: "Claims that warrant (support/justify) this entity or are warranted by it.\n\nFrom argumentation theory (Toulmin model):\n- Claims provide evidence that WARRANTS conclusions\n- A claim can be WARRANTED BY supporting evidence\n\nThis slot captures the bidirectional relationship between claims\nand the entities they support or are supported by.\n\n**Usage Patterns**:\n- WebEnrichment.warrants_or_warranted \u2192 WebClaim instances\n- ResearchSource.warrants_or_warranted \u2192 Claim instances\n- PersonProfile.warrants_or_warranted \u2192 PersonWebClaim instances\n\n**MIGRATION NOTE (2026-01-19)**:\nReplaces `claim` slot per slot_fixes.yaml (Rule 53/56).\nUses RiC-O temporal naming convention (warrants_or_warranted).\n" + exact_mappings: + - prov:wasQuotedFrom + close_mappings: + - prov:wasDerivedFrom + comments: + - 'CREATED 2026-01-19: Replaces claim slot per Rule 53/56' + - Uses argumentation semantics from Toulmin model + - Range is base Claim class - subclasses narrow as needed + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/was_acquired_through.yaml b/schemas/20251121/linkml/modules/slots/archive/was_acquired_through.yaml new file mode 100644 index 0000000000..96908b6f24 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/was_acquired_through.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/was_acquired_through +name: was_acquired_through +title: Was Acquired Through +description: Was acquired through. +imports: +- linkml:types +prefixes: + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + hc: https://nde.nl/ontology/hc/ +# default_range: string +slots: + was_acquired_through: + slot_uri: hc:was_acquired_through + range: string + multivalued: false + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/archive/was_fetched_at.yaml b/schemas/20251121/linkml/modules/slots/archive/was_fetched_at.yaml new file mode 100644 index 0000000000..5ffc44890b --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/was_fetched_at.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/was_fetched_at +name: was_fetched_at +title: Was Fetched At +description: Was fetched at. +imports: +- linkml:types +prefixes: + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + hc: https://nde.nl/ontology/hc/ +# default_range: string +slots: + was_fetched_at: + slot_uri: hc:was_fetched_at + range: string + multivalued: false + annotations: + custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/asserts_or_asserted.yaml b/schemas/20251121/linkml/modules/slots/asserts_or_asserted.yaml deleted file mode 100644 index 7603b9288a..0000000000 --- a/schemas/20251121/linkml/modules/slots/asserts_or_asserted.yaml +++ /dev/null @@ -1,46 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/asserts_or_asserted -name: asserts_or_asserted_slot -title: Asserts Or Asserted Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - asserts_or_asserted: - description: 'Links a provenance record, assertion, or activity to the entity, hypothesis, or proposition that it asserts or supports. - - **TEMPORAL SEMANTICS** (RiC-O style): The "asserts_or_asserted" naming indicates that assertions can change: - New evidence may modify or invalidate hypotheses - Historical assertions preserved for audit trail - Confidence levels may be updated over time - - **USAGE**: - Link Provenance to Hypothesis (prov:generated) - Link PrimaryDigitalPresenceAssertion to DigitalPresence (crm:P140) - - **RANGE**: Generic `uriorcurie` to support multiple assertion targets (Hypothesis, DigitalPresence). Classes should narrow this via slot_usage.' - range: string # uriorcurie - slot_uri: prov:generated - inlined: false # Fixed invalid inline for primitive type - exact_mappings: - - prov:generated - close_mappings: - - schema:mainEntity - - crm:P140_assigned_attribute_to - annotations: - rico_naming_convention: 'Follows RiC-O "assertsOrAsserted" naming pattern. - - ' - specificity_score: 0.2 - specificity_rationale: Broadly applicable assertion predicate. - custodian_types: '["*"]' - comments: - - Created from slot_fixes.yaml migration (2026-01-14, updated 2026-01-25) - - Replaces direct type_hypothesis slot usage - - Replaces digital_presence_type usage in PrimaryDigitalPresenceAssertion - - Links asserter/activity to asserted entity/proposition diff --git a/schemas/20251121/linkml/modules/slots/begin_of_the_begin.yaml b/schemas/20251121/linkml/modules/slots/begin_of_the_begin.yaml deleted file mode 100644 index ffe79c1e56..0000000000 --- a/schemas/20251121/linkml/modules/slots/begin_of_the_begin.yaml +++ /dev/null @@ -1,79 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/begin_of_the_begin -name: begin_of_the_begin_slot -title: Begin of the Begin Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - time: http://www.w3.org/2006/time# - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - begin_of_the_begin: - slot_uri: time:hasBeginning - description: 'Earliest possible start time of temporal extent (CIDOC-CRM E52_Time-Span). - - - **CIDOC-CRM Pattern**: - - P82a defines the earliest possible time the time span could have started. - - Used with P81a (end_of_the_begin) to express uncertainty about start time. - - - **Example**: "Founded between 1800-1805" - - - begin_of_the_begin: 1800-01-01 (earliest possible founding) - - - end_of_the_begin: 1805-12-31 (latest possible founding) - - - **Ontological Alignment**: - - - **Primary** (`slot_uri`): `time:hasBeginning` (OWL Time ObjectProperty) - - - **Close**: `crm:P82a_begin_of_the_begin` - CIDOC-CRM fuzzy bound (note: expects literal) - - - **Related**: `prov:startedAtTime` - PROV-O activity start - - - **Narrow**: `schema:startDate` - Schema.org start date - - - **Range**: Any - supports both Timestamp class and string datetime values - - ' - range: string # uriorcurie - any_of: - - range: Timestamp - - range: string - - range: datetime - inlined: false # Fixed invalid inline for primitive type - required: false - multivalued: false - close_mappings: - - crm:P82a_begin_of_the_begin - related_mappings: - - prov:startedAtTime - narrow_mappings: - - schema:startDate - annotations: - slot_fixes_compliance: Range changed from datetime to Timestamp class per slot_fixes.yaml - migration_date: '2026-01-15' - replaces_slots: valid_from, valid_from_geo - owl_note: Uses time:hasBeginning (ObjectProperty) instead of crm:P82a (DatatypeProperty) to match Timestamp class range - custodian_types: '["*"]' - examples: - - value: 'timestamp_value: "1800-01-01" - - timestamp_precision: day - - ' - description: Earliest possible founding date diff --git a/schemas/20251121/linkml/modules/slots/begin_of_the_end.yaml b/schemas/20251121/linkml/modules/slots/begin_of_the_end.yaml deleted file mode 100644 index a15b0e833d..0000000000 --- a/schemas/20251121/linkml/modules/slots/begin_of_the_end.yaml +++ /dev/null @@ -1,67 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/begin_of_the_end -name: begin_of_the_end_slot -title: Begin of the End Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - time: http://www.w3.org/2006/time# - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - begin_of_the_end: - slot_uri: hc:beginOfTheEnd - description: 'Earliest possible end time of temporal extent (CIDOC-CRM E52_Time-Span). - - - **CIDOC-CRM Pattern**: - - P81b defines the earliest possible time the time span could have ended. - - Used with P82b (end_of_the_end) to express uncertainty about end time. - - - **Example**: "Closed between 1950-1955" - - - begin_of_the_end: 1950-01-01 (earliest possible closure) - - - end_of_the_end: 1955-12-31 (latest possible closure) - - - **Ontological Alignment**: - - - **Primary** (`slot_uri`): `hc:beginOfTheEnd` (custom ObjectProperty) - - - **Close**: `crm:P81b_begin_of_the_end` - CIDOC-CRM fuzzy bound (note: expects literal) - - - **Range**: Any to accept both ISO datetime strings and Timestamp objects - - ' - range: string # uriorcurie - inlined: false # Fixed invalid inline for primitive type - required: false - multivalued: false - close_mappings: - - crm:P81b_begin_of_the_end - related_mappings: - - prov:endedAtTime - annotations: - migration_date: '2026-01-15' - owl_note: Uses hc:beginOfTheEnd (ObjectProperty) instead of crm:P81b (DatatypeProperty) to match Timestamp class range - custodian_types: '["*"]' - examples: - - value: 'timestamp_value: "1950-01-01" - - timestamp_precision: day - - ' - description: Earliest possible closure date diff --git a/schemas/20251121/linkml/modules/slots/can_or_could_be_fulfilled_by.yaml b/schemas/20251121/linkml/modules/slots/can_or_could_be_fulfilled_by.yaml deleted file mode 100644 index cd521bdcb3..0000000000 --- a/schemas/20251121/linkml/modules/slots/can_or_could_be_fulfilled_by.yaml +++ /dev/null @@ -1,37 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/can_or_could_be_fulfilled_by -name: can_or_could_be_fulfilled_by -title: can_or_could_be_fulfilled_by -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - can_or_could_be_fulfilled_by: - name: can_or_could_be_fulfilled_by - description: 'Relates a requirement or condition to the entity (e.g. Applicant) that fulfills it. - - MIGRATED from `eligible_applicant` (via ApplicantRequirement).' - slot_uri: schema:eligibleCustomerType - # range: Any - multivalued: true - exact_mappings: - - schema:eligibleCustomerType - close_mappings: - - schema:participant - annotations: - custodian_types: '["*"]' - examples: - - value: - has_or_had_identifier: "https://nde.nl/ontology/hc/applicant/non-profit" - has_or_had_label: "Non-profit Organization" - description: Requirement fulfilled by non-profit applicants diff --git a/schemas/20251121/linkml/modules/slots/can_or_could_be_retrieved_from.yaml b/schemas/20251121/linkml/modules/slots/can_or_could_be_retrieved_from.yaml deleted file mode 100644 index 7f3cb7c845..0000000000 --- a/schemas/20251121/linkml/modules/slots/can_or_could_be_retrieved_from.yaml +++ /dev/null @@ -1,34 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/can_or_could_be_retrieved_from -name: can_or_could_be_retrieved_from_slot -title: Can Or Could Be Retrieved From Slot -prefixes: - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - schema: http://schema.org/ - dcat: http://www.w3.org/ns/dcat# - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - can_or_could_be_retrieved_from: - description: Endpoint or location where a resource can be retrieved. MIGRATED from download_endpoint (2026-01-26). - range: string # uriorcurie - # range: Endpoint - multivalued: true - inlined: false # Fixed invalid inline for primitive type - slot_uri: dcat:accessURL - close_mappings: - - schema:downloadUrl - annotations: - rico_naming_convention: 'Follows RiC-O "canOrCould" pattern for capability predicates. - - ' - custodian_types: '["*"]' - specificity_score: 0.4 diff --git a/schemas/20251121/linkml/modules/slots/catalogues_or_catalogued.yaml b/schemas/20251121/linkml/modules/slots/catalogues_or_catalogued.yaml deleted file mode 100644 index 15370159ed..0000000000 --- a/schemas/20251121/linkml/modules/slots/catalogues_or_catalogued.yaml +++ /dev/null @@ -1,33 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/catalogues_or_catalogued -name: catalogues_or_catalogued -title: catalogues_or_catalogued -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - catalogues_or_catalogued: - name: catalogues_or_catalogued - description: Indicates that an entity catalogues or catalogued another entity (e.g., material). MIGRATED from geographic_coverage/temporal_coverage context. Follows RiC-O naming convention. - slot_uri: rico:isOrWasSubjectOf - range: string # uriorcurie - multivalued: true - annotations: - custodian_types: '["*"]' - examples: - - value: "https://nde.nl/ontology/hc/collection/correspondence-1900-1920" - description: Catalogues the correspondence collection - - value: "https://nde.nl/ontology/hc/dataset/inventory-2024" - description: Catalogues the dataset - exact_mappings: - - rico:isOrWasSubjectOf diff --git a/schemas/20251121/linkml/modules/slots/ceases_or_ceased_through.yaml b/schemas/20251121/linkml/modules/slots/ceases_or_ceased_through.yaml deleted file mode 100644 index d7b74e6b2e..0000000000 --- a/schemas/20251121/linkml/modules/slots/ceases_or_ceased_through.yaml +++ /dev/null @@ -1,28 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/ceases_or_ceased_through -name: ceases_or_ceased_through -title: Ceases Or Ceased Through -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - ceases_or_ceased_through: - description: >- - The event through which an entity ceases or ceased to exist/operate. - MIGRATED from cessation_observed_in (Rule 53). - range: string # uriorcurie - # range: CeasingEvent - slot_uri: prov:wasInvalidatedBy - exact_mappings: - - crm:P93i_was_taken_out_of_existence_by - multivalued: true diff --git a/schemas/20251121/linkml/modules/slots/changes_or_changed_ownership_from.yaml b/schemas/20251121/linkml/modules/slots/changes_or_changed_ownership_from.yaml deleted file mode 100644 index 1089c3647e..0000000000 --- a/schemas/20251121/linkml/modules/slots/changes_or_changed_ownership_from.yaml +++ /dev/null @@ -1,47 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/changes_or_changed_ownership_from -name: changes_or_changed_ownership_from_slot -title: Changes Or Changed Ownership From -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - prov: http://www.w3.org/ns/prov# - rico: https://www.ica.org/standards/RiC/ontology# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - changes_or_changed_ownership_from: - slot_uri: crm:P23_transferred_title_from - description: "The previous owner from whom ownership/title was transferred.\n\n**TEMPORAL SEMANTICS** (RiC-O Pattern):\nThe \"changesOrChanged\" naming follows RiC-O convention indicating this \nrelationship may be historical - ownership may have changed multiple times.\n\n**ONTOLOGICAL ALIGNMENT**:\n- **Primary** (`slot_uri`): `crm:P23_transferred_title_from` (CIDOC-CRM)\n - Domain: E8_Acquisition (transfer event)\n - Range: E39_Actor (person, organization, or group)\n - Semantics: Indicates the party who relinquished legal title\n\n**SEMANTIC DISTINCTION**:\nThis slot is for OWNERSHIP TRANSFER (legal title), NOT physical movement.\nFor physical movement origin, use `is_or_was_transferred_from` with `crm:P27_moved_from`.\n\n| Slot | Ontology | Semantics |\n|------|----------|-----------|\n| `changes_or_changed_ownership_from` | crm:P23 | Legal title transfer source |\n| `is_or_was_transferred_from` | crm:P27 | Physical location origin |\n\n**USAGE**:\nTypical in ProvenanceEvent for\ - \ documenting chain of custody:\n- Null for CREATION events (no previous owner)\n- Identifies seller in PURCHASE/AUCTION events\n- Identifies donor in GIFT/BEQUEST events\n- Identifies victim in CONFISCATION events\n\n**MIGRATION** (2026-01-16, Rule 56):\nReplaces `from_owner` for symmetry with `changes_or_changed_ownership_to`.\n" - range: string # uriorcurie - required: false - multivalued: false - exact_mappings: - - crm:P23_transferred_title_from - close_mappings: - - prov:wasInfluencedBy - related_mappings: - - rico:hadHolder - annotations: - rico_naming_convention: 'Follows RiC-O "changesOrChanged" pattern for ownership predicates. - - See Rule 39: Slot Naming Convention (RiC-O Style) - - ' - replaces_slots: from_owner - migration_date: '2026-01-16' - migration_rule: Rule 56 (semantic consistency over simplicity) - custodian_types: '["*"]' - examples: - - value: https://nde.nl/ontology/hc/owner/des-tombe - description: Ownership transferred from A.A. des Tombe - - value: https://nde.nl/ontology/hc/owner/private-collector-002 - description: Ownership transferred from private collector diff --git a/schemas/20251121/linkml/modules/slots/changes_or_changed_ownership_to.yaml b/schemas/20251121/linkml/modules/slots/changes_or_changed_ownership_to.yaml deleted file mode 100644 index b6a78e455d..0000000000 --- a/schemas/20251121/linkml/modules/slots/changes_or_changed_ownership_to.yaml +++ /dev/null @@ -1,47 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/changes_or_changed_ownership_to -name: changes_or_changed_ownership_to_slot -title: Changes Or Changed Ownership To -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - prov: http://www.w3.org/ns/prov# - rico: https://www.ica.org/standards/RiC/ontology# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - changes_or_changed_ownership_to: - slot_uri: crm:P22_transferred_title_to - description: "The new owner to whom ownership/title was transferred.\n\n**TEMPORAL SEMANTICS** (RiC-O Pattern):\nThe \"changesOrChanged\" naming follows RiC-O convention indicating this \nrelationship may be historical - ownership may have changed multiple times.\n\n**ONTOLOGICAL ALIGNMENT**:\n- **Primary** (`slot_uri`): `crm:P22_transferred_title_to` (CIDOC-CRM)\n - Domain: E8_Acquisition (transfer event)\n - Range: E39_Actor (person, organization, or group)\n - Semantics: Indicates the recipient of a legal title transfer\n\n**SEMANTIC DISTINCTION**:\nThis slot is for OWNERSHIP TRANSFER (legal title), NOT physical movement.\nFor physical movement, use `is_or_was_transferred_to` with `crm:P26_moved_to`.\n\n| Slot | Ontology | Semantics |\n|------|----------|-----------|\n| `changes_or_changed_ownership_to` | crm:P22 | Legal title transfer |\n| `is_or_was_transferred_to` | crm:P26 | Physical location change |\n\n**USAGE**:\nTypical in ProvenanceEvent for documenting chain of custody:\n\ - - Acquisitions (purchase, gift, bequest)\n- Deaccessioning (sale, transfer)\n- Loans (temporary custody without ownership change)\n\n**MIGRATION** (2026-01-16, Rule 56):\nReplaces `to_owner` per slot_fixes.yaml feedback.\n" - range: string # uriorcurie - required: false - multivalued: false - exact_mappings: - - crm:P22_transferred_title_to - close_mappings: - - prov:wasAttributedTo - related_mappings: - - rico:hasOrHadHolder - annotations: - rico_naming_convention: 'Follows RiC-O "changesOrChanged" pattern for ownership predicates. - - See Rule 39: Slot Naming Convention (RiC-O Style) - - ' - replaces_slots: to_owner - migration_date: '2026-01-16' - migration_rule: Rule 56 (semantic consistency over simplicity) - custodian_types: '["*"]' - examples: - - value: https://nde.nl/ontology/hc/owner/rijksmuseum - description: Ownership transferred to Rijksmuseum - - value: https://nde.nl/ontology/hc/owner/private-collector-001 - description: Ownership transferred to private collector diff --git a/schemas/20251121/linkml/modules/slots/changes_or_changed_through.yaml b/schemas/20251121/linkml/modules/slots/changes_or_changed_through.yaml deleted file mode 100644 index c250604c9a..0000000000 --- a/schemas/20251121/linkml/modules/slots/changes_or_changed_through.yaml +++ /dev/null @@ -1,21 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/changes_or_changed_through -name: changes_or_changed_through_slot - -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - prov: http://www.w3.org/ns/prov# - -# default_range: string - -imports: - - linkml:types -slots: - changes_or_changed_through: - slot_uri: prov:wasInfluencedBy - description: | - Events or activities that caused a change in this entity. - Generic slot for linking entities to ChangeEvent or other Event classes. - range: string # uriorcurie - # range: OrganizationalChangeEvent - multivalued: true diff --git a/schemas/20251121/linkml/modules/slots/classifies_or_classified.yaml b/schemas/20251121/linkml/modules/slots/classifies_or_classified.yaml deleted file mode 100644 index e2194ba5de..0000000000 --- a/schemas/20251121/linkml/modules/slots/classifies_or_classified.yaml +++ /dev/null @@ -1,33 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/classifies_or_classified -name: classifies_or_classified_slot -title: Classifies Or Classified Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - classifies_or_classified: - description: "Indicates that an entity provides a classification or typing for another entity.\n**Temporal Semantics**: Uses RiC-O-style \"classifies_or_classified\" to express that the classification relationship may be current or historical - entities may be reclassified over time.\n**Common Use Cases**: - FeaturePlace classifies CustodianPlace (building type classification) - TypeSpecimen classifies Taxon (nomenclatural classification) - HeritageDesignation classifies HeritageSite (protection status)\n**CIDOC-CRM Alignment**: Maps to crm:P2_has_type / crm:P2i_is_type_of pattern where one entity provides typological information about another.\n**Example**: ```yaml FeaturePlace:\n feature_type: MUSEUM\n classifies_or_classified:\n id: https://nde.nl/ontology/hc/place/rijksmuseum-location\n place_name: \"Rijksmuseum\"\n```" - slot_uri: crm:P2i_is_type_of - range: string # uriorcurie - multivalued: false - exact_mappings: - - crm:P2i_is_type_of - close_mappings: - - skos:broader - related_mappings: - - crm:P2_has_type - annotations: - specificity_score: 0.45 - specificity_rationale: Generic classification predicate applicable to place typing, taxonomic classification, and heritage designation - custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/collects_or_collected.yaml b/schemas/20251121/linkml/modules/slots/collects_or_collected.yaml deleted file mode 100644 index 6cfaa7a03b..0000000000 --- a/schemas/20251121/linkml/modules/slots/collects_or_collected.yaml +++ /dev/null @@ -1,45 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/collects_or_collected -name: collects_or_collected_slot -title: Collects Or Collected Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - rico: https://www.ica.org/standards/RiC/ontology# - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - collects_or_collected: - slot_uri: rico:hasOrHadHolder - description: "Links a custodian to what it collects or collected.\n**TEMPORAL SEMANTICS** (RiC-O style): The \"collects_or_collected\" naming follows RiC-O convention indicating that collecting activities may change over time: - Active collecting programs - Historical collecting focus that has changed - Materials previously collected but now deaccessioned\n**USE CASES**: - Commercial organizations: what they collect for heritage purposes - Museums: their collecting scope and purpose - Archives: types of records they acquire\n**REPLACES**: - `collection_purpose` (why commercial organization maintains collections)\n**EXAMPLE**: ```yaml collects_or_collected:\n - collection_type: \"brand_heritage\"\n has_or_had_rationale:\n rationale_text: \"Brand heritage communication\"\n rationale_category: \"marketing\"\n```" - range: string # uriorcurie - multivalued: true - inlined: false # Fixed invalid inline for primitive type - inlined_as_list: false # Fixed invalid inline for primitive type - exact_mappings: - - rico:hasOrHadHolder - close_mappings: - - crm:P109_has_current_or_former_curator - - schema:owns - related_mappings: - - crm:P50_has_current_keeper - annotations: - custodian_types: '["C", "M", "A", "L"]' - custodian_types_rationale: Primarily for Corporations (C), Museums (M), Archives (A), and Libraries (L) that actively collect materials. - custodian_types_primary: C - specificity_score: '0.45' - specificity_rationale: Moderate specificity - applies to custodians with collecting programs. - comments: - - Created from slot_fixes.yaml migration (2026-01-19) - - Part of collection_purpose migration - - Range is uriorcurie to allow class narrowing via slot_usage - see_also: - - https://www.ica.org/standards/RiC/ontology#hasOrHadHolder diff --git a/schemas/20251121/linkml/modules/slots/complies_or_complied_with.yaml b/schemas/20251121/linkml/modules/slots/complies_or_complied_with.yaml deleted file mode 100644 index f51245f4a3..0000000000 --- a/schemas/20251121/linkml/modules/slots/complies_or_complied_with.yaml +++ /dev/null @@ -1,50 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/complies_or_complied_with -name: complies_or_complied_with_slot -title: Complies Or Complied With Slot -description: 'Generic slot for expressing conformance to standards, specifications, or guidelines. - - Follows RiC-O temporal naming convention (Rule 39) to indicate current or historical conformance. - - - CREATED 2026-01-17 per Rule 53/56: Generic slot pattern for standards conformance. - - Replaces domain-specific slots like cataloging_standard. - - ' -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - dcterms: http://purl.org/dc/terms/ - schema: http://schema.org/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - complies_or_complied_with: - slot_uri: dcterms:conformsTo - description: "Standard, specification, or guideline that this entity conforms to.\nUses RiC-O temporal naming convention to indicate conformance may be \ncurrent (complies) or historical (complied).\n\nCREATED 2026-01-17 per Rule 53/56: Generic slot for standards conformance.\n" - range: string # uriorcurie - multivalued: true - inlined: false # Fixed invalid inline for primitive type - inlined_as_list: false # Fixed invalid inline for primitive type - exact_mappings: - - dcterms:conformsTo - close_mappings: - - schema:isBasedOn - related_mappings: - - dcterms:references - examples: - - value: hc:standard/LIDO - description: Museum cataloging standard - - value: hc:standard/MARC21 - description: Library cataloging standard - - value: hc:standard/Darwin-Core - description: Natural history data standard - annotations: - custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/contains_or_contained.yaml b/schemas/20251121/linkml/modules/slots/contains_or_contained.yaml deleted file mode 100644 index 297e200067..0000000000 --- a/schemas/20251121/linkml/modules/slots/contains_or_contained.yaml +++ /dev/null @@ -1,39 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/contains_or_contained -name: contains_or_contained_slot -title: Contains Or Contained Slot -description: 'Generic slot for containment relationships (temporal: contains or contained). - - **RICO-O ALIGNMENT**: Follows RiC-O temporal naming convention for relationships that may change over time. - - **USE CASES**: - PersonName contains_or_contained LastName (name contains surname component) - Document contains_or_contained Text (document contains text content) - Collection contains_or_contained Item (collection contains items) - - **NOTE**: For specialized containment relationships, use domain-specific variants: - contains_or_contained_collection (for CustodianCollection) - contains_or_contained_covers_settlement (for geographic coverage)' -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - rico: https://www.ica.org/standards/RiC/ontology# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - contains_or_contained: - slot_uri: rico:containsOrContained - range: string # uriorcurie - multivalued: true - description: Generic containment relationship (temporal). Indicates that this entity contains or has contained the referenced entity. - exact_mappings: - - rico:containsOrContained - close_mappings: - - schema:hasPart - annotations: - custodian_types: '["*"]' - specificity_score: 0.2 - specificity_rationale: Very generic slot - containment applicable across all entity types. diff --git a/schemas/20251121/linkml/modules/slots/degree_of_certainty.yaml b/schemas/20251121/linkml/modules/slots/degree_of_certainty.yaml deleted file mode 100644 index b41ea81e63..0000000000 --- a/schemas/20251121/linkml/modules/slots/degree_of_certainty.yaml +++ /dev/null @@ -1,34 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/degree_of_certainty -name: degree_of_certainty_slot -title: Degree of Certainty Slot -description: 'The degree of certainty or precision associated with a value. - - Used to indicate how specific or certain information is, particularly for temporal data (dates) and other values that may have varying levels of precision.' -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - degree_of_certainty: - description: 'The degree of certainty or precision for a value. - - Used to qualify values that may have varying levels of specificity, such as dates (day, month, year, decade, century) or confidence levels for inferred data.' - slot_uri: crm:P91_has_unit - range: string - close_mappings: - - crm:P91_has_unit - annotations: - specificity_score: 0.3 - specificity_rationale: Certainty/precision levels are broadly applicable across temporal, quantitative, and qualitative contexts. - custodian_types: '["*"]' - custodian_types_rationale: Degree of certainty applies universally to all custodian types. diff --git a/schemas/20251121/linkml/modules/slots/derives_or_derived_from.yaml b/schemas/20251121/linkml/modules/slots/derives_or_derived_from.yaml deleted file mode 100644 index 5963c8f750..0000000000 --- a/schemas/20251121/linkml/modules/slots/derives_or_derived_from.yaml +++ /dev/null @@ -1,86 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/derives_or_derived_from -name: derives_or_derived_from_slot -title: Derives or Derived From Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - derives_or_derived_from: - description: 'Entity from which this entity was derived. - - - **DEFINITION**: - - Indicates a derivation relationship where one entity is created based on, - - or extracted from, another source entity. This follows PROV-O derivation - - semantics for provenance tracking. - - - **TEMPORAL SEMANTICS** (Rule 39): - - The "derives_or_derived" naming indicates that derivation relationships - - can be established at different points in time: - - - A thumbnail may be derived from a video at creation time - - - A transcription may be derived from audio later - - - A derivative work may reference its source - - - **USE CASES**: - - - Thumbnail derived from Video (specific frame extraction) - - - Transcript derived from Audio recording - - - Cropped image derived from original photograph - - - Summary derived from full document - - - **ONTOLOGY ALIGNMENT**: - - - **Primary**: `prov:wasDerivedFrom` (W3C PROV-O) - - - **Close**: `schema:isBasedOn` (Schema.org) - - ' - range: string # uriorcurie - multivalued: true - slot_uri: prov:wasDerivedFrom - exact_mappings: - - prov:wasDerivedFrom - close_mappings: - - schema:isBasedOn - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Derivation relationships applicable to all custodian types for provenance tracking of derived media and content. - custodian_types_primary: '*' - specificity_score: '0.30' - specificity_rationale: Low-medium specificity - derivation is a general provenance concept applicable across many media and content types. - migration_date: '2026-01-19' - migration_rule: Rule 53 (no bespoke slots), Rule 56 (semantic consistency) - examples: - - value: https://example.org/video/ABC123 - description: Thumbnail derived from video ABC123 - - value: https://example.org/audio/interview-001 - description: Transcript derived from audio interview - comments: - - Created from slot_fixes.yaml migration (2026-01-19) - - Enables structured provenance for derived content - - Uses PROV-O for W3C-compliant derivation semantics diff --git a/schemas/20251121/linkml/modules/slots/documents_or_documented.yaml b/schemas/20251121/linkml/modules/slots/documents_or_documented.yaml deleted file mode 100644 index a1436637f7..0000000000 --- a/schemas/20251121/linkml/modules/slots/documents_or_documented.yaml +++ /dev/null @@ -1,32 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/documents_or_documented -name: documents_or_documented_slot -title: Documents Or Documented Slot -prefixes: - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - schema: http://schema.org/ - prov: http://www.w3.org/ns/prov# - dcterms: http://purl.org/dc/terms/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - documents_or_documented: - description: Links a document (e.g. FinancialStatement) to the entity it documents (e.g. Budget). MIGRATED from documents_budget (2026-01-26). - range: string # uriorcurie - multivalued: true - inlined: false - slot_uri: schema:about - close_mappings: - - prov:hadPrimarySource - annotations: - rico_naming_convention: 'Follows RiC-O naming pattern (active voice). - - ' - custodian_types: '["*"]' - specificity_score: 0.3 diff --git a/schemas/20251121/linkml/modules/slots/emphasizes_or_emphasized.yaml b/schemas/20251121/linkml/modules/slots/emphasizes_or_emphasized.yaml deleted file mode 100644 index 1a4a0ee3c6..0000000000 --- a/schemas/20251121/linkml/modules/slots/emphasizes_or_emphasized.yaml +++ /dev/null @@ -1,49 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/emphasizes_or_emphasized -name: emphasizes_or_emphasized_slot -title: Emphasizes Or Emphasized Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - skos: http://www.w3.org/2004/02/skos/core# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - emphasizes_or_emphasized: - slot_uri: skos:related - description: "Links an entity to a quality, skill, or topic that it emphasizes or highlights.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"emphasizesOrEmphasized\" naming follows RiC-O convention indicating this relationship\nmay be historical - emphasis may change over time (e.g., in a CV or profile).\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `skos:related` - general relatedness/association\n- **Related**: `schema:knowsAbout` - for skills/proficiency\n\n**Usage**:\nUsed to link professional assessments to specific proficiency indicators found in\nsource data (e.g., keywords in a LinkedIn profile that indicate digital skills).\n\n**Pattern**:\n```\nDigitalProfessionalAssessment\n \u2514\u2500\u2500 emphasizes_or_emphasized \u2192 DigitalProficiency\n \u251C\u2500\u2500 has_or_had_label: \"Python\"\n \u2514\u2500\u2500 has_or_had_type: PROGRAMMING_LANGUAGE\n```\n\n**Migrated From** (per slot_fixes.yaml):\n- `digital_indicator` \u2192 emphasizes_or_emphasized\ - \ + DigitalProficiency\n\n**Cardinality**:\nMultivalued - an entity may emphasize multiple qualities.\n" - range: string - required: false - multivalued: true - inlined: false # Fixed invalid inline for primitive type - exact_mappings: - - skos:related - related_mappings: - - schema:knowsAbout - - schema:skills - annotations: - rico_naming_convention: 'Follows RiC-O "emphasizesOrEmphasized" pattern for active/passive predicates. - - See Rule 39: Slot Naming Convention (RiC-O Style) - - ' - replaces_slots: digital_indicator - migration_date: '2026-01-25' - custodian_types: '["*"]' - comments: - - Generic emphasis slot for linking to skills/qualities - - Links entity to DigitalProficiency or similar quality classes - - Replaces specific indicator slots like digital_indicator - - 'RiC-O naming: emphasizesOrEmphasized indicates emphasis relationship' - examples: - - value: - has_or_had_label: Data Science - description: Emphasizes Data Science proficiency diff --git a/schemas/20251121/linkml/modules/slots/end_of_the_begin.yaml b/schemas/20251121/linkml/modules/slots/end_of_the_begin.yaml deleted file mode 100644 index 44a65d6a8d..0000000000 --- a/schemas/20251121/linkml/modules/slots/end_of_the_begin.yaml +++ /dev/null @@ -1,71 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/end_of_the_begin -name: end_of_the_begin_slot -title: End of the Begin Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - time: http://www.w3.org/2006/time# - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - end_of_the_begin: - slot_uri: hc:endOfTheBegin - description: 'Latest possible start time of temporal extent (CIDOC-CRM E52_Time-Span). - - - **CIDOC-CRM Pattern**: - - P81a defines the latest possible time the time span could have started. - - Used with P82a (begin_of_the_begin) to express uncertainty about start time. - - - **Example**: "Founded between 1800-1805" - - - begin_of_the_begin: 1800-01-01 (earliest possible founding) - - - end_of_the_begin: 1805-12-31 (latest possible founding) - - - **Ontological Alignment**: - - - **Primary** (`slot_uri`): `hc:endOfTheBegin` (custom ObjectProperty) - - - **Close**: `crm:P81a_end_of_the_begin` - CIDOC-CRM fuzzy bound (note: expects literal) - - - **Range**: Any to support Timestamp class, ISO 8601 strings, and datetime values - - ' - range: string # uriorcurie - any_of: - - range: Timestamp - - range: string - - range: datetime - inlined: false # Fixed invalid inline for primitive type - required: false - multivalued: false - close_mappings: - - crm:P81a_end_of_the_begin - related_mappings: - - prov:startedAtTime - annotations: - migration_date: '2026-01-15' - owl_note: Uses hc:endOfTheBegin (ObjectProperty) instead of crm:P81a (DatatypeProperty) to match Timestamp class range - custodian_types: '["*"]' - examples: - - value: 'timestamp_value: "1805-12-31" - - timestamp_precision: day - - ' - description: Latest possible founding date diff --git a/schemas/20251121/linkml/modules/slots/end_of_the_end.yaml b/schemas/20251121/linkml/modules/slots/end_of_the_end.yaml deleted file mode 100644 index ba708861d1..0000000000 --- a/schemas/20251121/linkml/modules/slots/end_of_the_end.yaml +++ /dev/null @@ -1,79 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/end_of_the_end -name: end_of_the_end_slot -title: End of the End Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - time: http://www.w3.org/2006/time# - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - end_of_the_end: - slot_uri: time:hasEnd - description: 'Latest possible end time of temporal extent (CIDOC-CRM E52_Time-Span). - - - **CIDOC-CRM Pattern**: - - P82b defines the latest possible time the time span could have ended. - - Used with P81b (begin_of_the_end) to express uncertainty about end time. - - - **Example**: "Closed between 1950-1955" - - - begin_of_the_end: 1950-01-01 (earliest possible closure) - - - end_of_the_end: 1955-12-31 (latest possible closure) - - - **Ontological Alignment**: - - - **Primary** (`slot_uri`): `time:hasEnd` (OWL Time ObjectProperty) - - - **Close**: `crm:P82b_end_of_the_end` - CIDOC-CRM fuzzy bound (note: expects literal) - - - **Related**: `prov:endedAtTime` - PROV-O activity end - - - **Narrow**: `schema:endDate` - Schema.org end date - - - **Range**: Any - supports both Timestamp class and string datetime values - - ' - range: string # uriorcurie - any_of: - - range: Timestamp - - range: string - - range: datetime - inlined: false # Fixed invalid inline for primitive type - required: false - multivalued: false - close_mappings: - - crm:P82b_end_of_the_end - related_mappings: - - prov:endedAtTime - narrow_mappings: - - schema:endDate - annotations: - slot_fixes_compliance: Range changed from datetime to Timestamp class per slot_fixes.yaml - migration_date: '2026-01-15' - replaces_slots: valid_to, valid_to_geo - owl_note: Uses time:hasEnd (ObjectProperty) instead of crm:P82b (DatatypeProperty) to match Timestamp class range - custodian_types: '["*"]' - examples: - - value: 'timestamp_value: "1955-12-31" - - timestamp_precision: day - - ' - description: Latest possible closure date diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_accessibility_feature.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_accessibility_feature.yaml deleted file mode 100644 index 409e19537b..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_accessibility_feature.yaml +++ /dev/null @@ -1,53 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_accessibility_feature -name: has_or_had_accessibility_feature_slot -title: Has Or Had Accessibility Feature Slot -prefixes: - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - has_or_had_accessibility_feature: - description: 'Accessibility features available in this reading room. - - - Schema.org: accessibilityFeature for accessibility. - - - May include: - - - Wheelchair accessible - - - Adjustable desks - - - Screen magnification - - - Audio assistance - - ' - range: string - multivalued: true - slot_uri: schema:accessibilityFeature - exact_mappings: - - schema:accessibilityFeature - close_mappings: - - schema:accessMode - - schema:accessModeSufficient - related_mappings: - - schema:accessibilityHazard - - schema:accessibilitySummary - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_affiliation.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_affiliation.yaml deleted file mode 100644 index 8c4d3b04c2..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_affiliation.yaml +++ /dev/null @@ -1,23 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_affiliation -name: has_or_had_affiliation_slot - -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - org: http://www.w3.org/ns/org# - schema: http://schema.org/ - -# default_range: string - -imports: - - linkml:types -slots: - has_or_had_affiliation: - slot_uri: org:memberOf - description: | - An organization or institution with which this entity has or had - an affiliation. - range: string # uriorcurie - multivalued: true - exact_mappings: - - schema:affiliation diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_age.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_age.yaml deleted file mode 100644 index a688409d28..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_age.yaml +++ /dev/null @@ -1,48 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_age -name: has_or_had_age_slot -title: Has Or Had Age Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - foaf: http://xmlns.com/foaf/0.1/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_age: - slot_uri: foaf:age - description: 'The age of an entity (person, object, etc.). - - - **Temporal Semantics** (RiC-O Pattern): - - "hasOrHad" indicates the age is relative to a specific time or context (e.g., age at death, age at acquisition). - - - **Ontological Alignment**: - - - `foaf:age`: The age in years of some agent. - - - **Range**: - - - Can be a simple integer (years) via slot_usage narrowing. - - - Can be an `Age` class for structured representation (e.g. range, unit). - - ' - range: string # uriorcurie - multivalued: false - required: false - annotations: - custodian_types: '["*"]' - exact_mappings: - - foaf:age diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_alignment.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_alignment.yaml deleted file mode 100644 index f8e10e5b35..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_alignment.yaml +++ /dev/null @@ -1,58 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_alignment -name: has_or_had_alignment -title: Has or Had Alignment -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_alignment: - name: has_or_had_alignment - title: Has or Had Alignment - description: 'Alignment or positioning information for content elements. - - Follows RiC-O temporal naming convention (Rule 39). - - - **USE CASES**: - - - Caption/subtitle positioning (top, bottom, center) - - - Text alignment (left, right, center, justify) - - - Visual element positioning in layouts - - - **MODELING**: - - Uses Alignment class for structured representation including: - - - Horizontal alignment (left, center, right) - - - Vertical alignment (top, middle, bottom) - - - Custom positioning coordinates - - ' - slot_uri: hc:hasOrHadAlignment - range: string # uriorcurie - # range: Alignment - multivalued: false - inlined: false # Fixed invalid inline for primitive type - annotations: - specificity_score: 0.55 - specificity_rationale: Applies to various content types requiring positioning information - custodian_types: '["*"]' - custodian_types_rationale: Content alignment applies across all heritage institution types - exact_mappings: - - hc:hasOrHadAlignment diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_area.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_area.yaml deleted file mode 100644 index 56ad81d718..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_area.yaml +++ /dev/null @@ -1,49 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_area -name: has_or_had_area_slot -title: Has Or Had Area Slot -description: 'Generic slot for associating an entity with an area measurement. - - **RULE 53 COMPLIANT**: This is the authoritative slot for area measurements, replacing domain-specific slots like area_hectares, building_floor_area_sqm, and has_area_in_hectare. - - **REPLACES**: - area_hectares (OutdoorSite) - building_floor_area_sqm (HistoricBuilding) - has_area_in_hectare (bespoke, incorrectly created) - - **USAGE**: Range should be narrowed to Area class in slot_usage. The Area class captures the numeric value, unit of measurement, and measurement date. - - **RiC-O NAMING**: Follows "has_or_had_*" pattern for temporal relationships (Rule 39) - areas can change over time (renovations, annexes, etc.).' -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - qudt: http://qudt.org/schema/qudt/ - geosparql: http://www.opengis.net/ont/geosparql# - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - has_or_had_area: - description: 'Area measurement associated with an entity (site, building, room, etc.). - - Generic slot for capturing spatial extent measurements. The range should be narrowed to Area class which includes value, unit, and temporal context.' - range: string - slot_uri: schema:size - multivalued: true - inlined: false # Fixed invalid inline for primitive type - inlined_as_list: false # Fixed invalid inline for primitive type - exact_mappings: - - schema:size - close_mappings: - - qudt:quantityValue - - geosparql:hasArea - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Area measurements applicable to all heritage custodian types - museums, archives, libraries, outdoor sites, historic buildings, etc. - custodian_types_primary: M - specificity_score: 0.4 - specificity_rationale: Broadly useful slot - area measurements relevant for site planning, collection storage, visitor capacity, and facility management. diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_asset.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_asset.yaml deleted file mode 100644 index 647746e238..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_asset.yaml +++ /dev/null @@ -1,57 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_asset -name: has_or_had_asset -title: Has or Had Asset -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - rico: https://www.ica.org/standards/RiC/ontology# - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_asset: - slot_uri: schema:owns - description: 'Assets owned by an organization at the end of a reporting period. - - - **USAGE**: - - Used for: - - - Total assets on balance sheet - - - Fixed assets - - - Current assets - - - Intangible assets - - - **FINANCIAL STATEMENT CONTEXT**: - - Assets = Liabilities + Net Assets (Statement of Financial Position) - - - **RiC-O TEMPORAL SEMANTICS**: - - The "or had" indicates assets may be historical (divested, depreciated). - - ' - range: string # uriorcurie - # range: Asset - multivalued: true - exact_mappings: - - schema:owns - examples: - - value: Asset(amount=125000000.0, currency=EUR, as_of_date=2023-12-31) - description: Total assets at end of fiscal year 2023 - annotations: - custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_category.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_category.yaml deleted file mode 100644 index 2ad88ce7c5..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_category.yaml +++ /dev/null @@ -1,42 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_category -name: has_or_had_category_slot -title: Has or Had Category Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - skos: http://www.w3.org/2004/02/skos/core# - dcterms: http://purl.org/dc/terms/ - schema: http://schema.org/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - has_or_had_category: - description: 'Links an entity to its category or classification. - - Categories represent hierarchical or faceted classifications: - Subject categories (art, science, history) - Thematic categories (Dutch Golden Age, WWII, Islamic art) - Material categories (paintings, manuscripts, specimens) - Geographic categories (European, Asian, African) - Temporal categories (Medieval, Renaissance, Contemporary) - - The Category class enables structured categorization with: - Category name and description - Category type (subject, theme, material, geographic, temporal) - Hierarchical relationships (broader/narrower terms) - Provenance tracking' - range: string # uriorcurie - # range: Category - slot_uri: dcterms:subject - multivalued: true - inlined: false # Fixed invalid inline for primitive type - inlined_as_list: false # Fixed invalid inline for primitive type - exact_mappings: - - dcterms:subject - - skos:Concept - close_mappings: - - schema:about - - schema:category - related_mappings: - - skos:broader - - skos:narrower - annotations: - rule_53_migration: Replaces collection_focus with structured Category - custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_code.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_code.yaml deleted file mode 100644 index 32398e2970..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_code.yaml +++ /dev/null @@ -1,59 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_code -name: has_or_had_code -title: Has or Had Code -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - skos: http://www.w3.org/2004/02/skos/core# - dct: http://purl.org/dc/terms/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_code: - slot_uri: skos:notation - description: 'A code or notation value associated with an entity. - - - **USAGE**: - - Used for standardized codes such as: - - - ISO 3166-1 alpha-2 country codes (e.g., "NL", "BE") - - - ISO 3166-1 alpha-3 country codes (e.g., "NLD", "BEL") - - - ISO 639-1/3 language codes - - - Classification codes (e.g., GeoNames feature codes P.PPL) - - - **ONTOLOGY ALIGNMENT**: - - - slot_uri: skos:notation (SKOS notation for concepts) - - ' - range: string # uriorcurie - multivalued: true - exact_mappings: - - skos:notation - close_mappings: - - dct:identifier - - schema:identifier - examples: - - value: NL - description: ISO 3166-1 alpha-2 code for Netherlands - - value: NLD - description: ISO 3166-1 alpha-3 code for Netherlands - - value: nld - description: ISO 639-3 language code for Dutch - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Codes applicable to all custodian types. diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_collection.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_collection.yaml deleted file mode 100644 index dd3e5505df..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_collection.yaml +++ /dev/null @@ -1,70 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_collection -name: has_or_had_collection -title: Has Or Had Collection -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - rico: https://www.ica.org/standards/RiC/ontology# - owl: http://www.w3.org/2002/07/owl# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -slots: - has_or_had_collection: - slot_uri: rico:hasOrHadPart - description: 'Heritage collection(s) associated with this custodian, currently or historically. - - - **RiC-O Temporal Pattern**: Uses `hasOrHad*` pattern because collections - - can be transferred between custodians. A museum may have held a collection - - that was later transferred to another institution (custody transfer). - - - This property enables metonymic references: when people refer to a custodian, - - they often mean its collection. CustodianCollection makes this explicit. - - - **Examples**: - - - "The Rijksmuseum has a Rembrandt" = Collection aspect contains artwork - - - "The Archives holds parish records" = Collection aspect includes documents - - - "The library transferred its rare books to the national archive" = Past holding - - ' - range: string # uriorcurie - # range: CustodianCollection - multivalued: true - inlined_as_list: false # Fixed invalid inline for primitive type - exact_mappings: - - rico:hasOrHadPart - close_mappings: - - crm:P46_is_composed_of - related_mappings: - - rico:includesOrIncluded - - schema:hasPart - comments: - - 'RiC-O pattern: hasOrHad* for temporal custody relationships' - - Inverse of is_or_was_collection_of (rico:isOrWasPartOf) - - Creates owl:inverseOf axiom in RDF output - - 'Inverse: `is_or_was_collection_of` (rico:isOrWasPartOf) | Pattern: If Custodian hasOrHadCollection Collection, then Collection isOrWasCollectionOf Custodian' - - 'Deprecates: has_collection (non-temporal naming)' - annotations: - inverse_slot: is_or_was_collection_of - deprecates: has_collection - rico_pattern: hasOrHadPart - custodian_types: '["*"]' - examples: - - value: "Custodian:\n hc_id: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n has_or_had_collection:\n - collection_name: \"Dutch Masters Collection\"\n collection_type: \"Art\"\n - collection_name: \"Asian Art Collection\"\n collection_type: \"Art\"\n" - description: Rijksmuseum with multiple collections diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_content.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_content.yaml deleted file mode 100644 index 8f3a50ab91..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_content.yaml +++ /dev/null @@ -1,18 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_content -name: has_or_had_content -title: Has or Had Content -description: The intellectual content associated with an entity. -imports: -- linkml:types -slots: - has_or_had_content: - slot_uri: rico:describesOrDescribed - range: string - multivalued: true - annotations: - custodian_types: '["*"]' - exact_mappings: - - rico:describesOrDescribed - close_mappings: - - dcterms:coverage - - schema:about diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_digital_presence.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_digital_presence.yaml deleted file mode 100644 index 9a8ff0fd9e..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_digital_presence.yaml +++ /dev/null @@ -1,68 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_digital_presence -name: has_or_had_digital_presence_slot -title: Has Or Had Digital Presence Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcat: http://www.w3.org/ns/dcat# - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_digital_presence: - slot_uri: schema:mainEntityOfPage - description: 'Links an entity to its digital platform or online presence (website, portal, repository). - - - **Temporal Semantics** (RiC-O Pattern): - - The "hasOrHad" naming follows RiC-O convention indicating this relationship - - may be historical - websites change, platforms migrate or are decommissioned. - - - **Ontological Alignment**: - - - **Primary** (`slot_uri`): `schema:mainEntityOfPage` - Page about the entity - - - **Close**: `schema:url` - URL of the entity - - - **Close**: `dcat:landingPage` - Web page providing access - - - **Usage**: - - Use with DigitalPlatform class to describe the platform. - - - **Replaces**: digital_platform slot per slot_fixes.yaml migration (2026-01-25) - - ' - range: string # uriorcurie - required: false - multivalued: true - exact_mappings: - - schema:mainEntityOfPage - close_mappings: - - schema:url - - dcat:landingPage - annotations: - rico_naming_convention: 'Follows RiC-O "hasOrHad" pattern for temporal predicates. - - See Rule 39: Slot Naming Convention (RiC-O Style) - - ' - replaces_slots: digital_platform - migration_date: '2026-01-25' - custodian_types: '["*"]' - comments: - - Links custodian to digital platforms - - 'RiC-O naming: hasOrHad indicates historical persistence' diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_format.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_format.yaml deleted file mode 100644 index b26bc78ea7..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_format.yaml +++ /dev/null @@ -1,87 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_format -name: has_or_had_format -title: Has or Had Format -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - dct: http://purl.org/dc/terms/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_format: - slot_uri: hc:hasOrHadFormat - description: 'The format or file type of a resource or service response. - - - **USAGE**: - - Used for: - - - Response formats from APIs (JSON, XML, RDF) - - - File formats for documents (PDF, DOCX, TXT) - - - Media formats (JPEG, MP3, MP4) - - - Transcript formats (VTT, SRT, plain text) - - - Subtitle formats (WebVTT, SRT, etc.) - - - **ONTOLOGY ALIGNMENT**: - - - **Primary** (`slot_uri`): `hc:hasOrHadFormat` - Heritage Custodian property - - - **Close**: `dct:format` - Dublin Core format - - - **Close**: `schema:encodingFormat` - Schema.org encoding format - - - **Range**: `uriorcurie` (Rule 54) - - Broadened range to accept URI/CURIE references to format specifications. - - This allows linking to IANA media types, format registries, or internal - - format classes while resolving OWL ambiguous type warnings. - - - Classes can narrow to specific format enums/classes via slot_usage. - - ' - range: string # uriorcurie - multivalued: true - close_mappings: - - dct:format - - schema:encodingFormat - examples: - - value: iana:application/json - description: JSON MIME type for API responses (CURIE) - - value: iana:text/vtt - description: WebVTT subtitle/transcript format (CURIE) - - value: hc:TranscriptFormat/STRUCTURED - description: Structured transcript with speaker labels (internal CURIE) - - value: https://www.iana.org/assignments/media-types/image/jpeg - description: JPEG image format (full URI) - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Format specifications applicable to all custodian types. - range_broadening_date: '2026-01-16' - range_broadening_rationale: 'Changed from range:string to range:uriorcurie per Rule 54. - - This allows linking to IANA media types, format registries, or format classes - - while resolving OWL ambiguous type warnings. Replaces need for bespoke slots - - like has_or_had_transcript_format or has_or_had_subtitle_format. - - ' diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_habitat.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_habitat.yaml deleted file mode 100644 index 1efc2704ed..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_habitat.yaml +++ /dev/null @@ -1,28 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_habitat -name: has_or_had_habitat -title: has_or_had_habitat -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_habitat: - name: has_or_had_habitat - description: Indicates the habitat associated with a biological entity or collection event. MIGRATED from habitat per Rule 53. Follows RiC-O naming convention. - slot_uri: dwc:habitat - range: string # uriorcurie - multivalued: true - annotations: - custodian_types: '["*"]' - exact_mappings: - - dwc:habitat diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_hypernym.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_hypernym.yaml deleted file mode 100644 index 752fdd23f3..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_hypernym.yaml +++ /dev/null @@ -1,50 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_hypernym -name: has_or_had_hypernym_slot -title: Has Or Had Hypernym Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - owl: http://www.w3.org/2002/07/owl# - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_hypernym: - slot_uri: hc:hasOrHadHypernym - description: "Parent type in a classification hierarchy (hypernym/broader concept).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - a type's parent may change if hierarchy is reorganized.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadHypernym` - Heritage Custodian ObjectProperty\n for class-valued parent types\n- **Exact**: `skos:broader` - SKOS ObjectProperty for superordinate concepts\n- **Related**: `rdfs:subClassOf` - RDF Schema subclass relationship\n\n**Usage**:\nFor Type classes, this links a more specific type to its parent type.\nExample: \"Cold Storage\" has broader \"Climate-Controlled Storage\"\n\n**Transitivity**:\nskos:broader is transitive - if A broader B, and B broader C, then A broader C.\nUse skos:broaderTransitive explicitly if transitive closure is needed.\n\n**Note**: slot_uri changed from skos:broader to hc:hasOrHadHypernym (2026-01-16)\nto allow\ - \ consistent class-valued ranges when classes override. skos:broader\nmoved to exact_mappings (it is already an ObjectProperty in SKOS).\n\n**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.\n\nNote: Individual Type classes may override to their specific type in slot_usage,\nbut since they're all referring to URIs, this causes no OWL ambiguity when\nthe base range is uriorcurie (compatible with ObjectProperty).\n" - range: string # uriorcurie - implements: - - owl:ObjectProperty - required: false - multivalued: false - exact_mappings: - - skos:broader - related_mappings: - - rdfs:subClassOf - annotations: - rico_naming_convention: 'Follows RiC-O "hasOrHad" pattern for temporal predicates. - - See Rule 39: Slot Naming Convention (RiC-O Style) - - ' - replaces_slots: storage_type_broader - migration_date: '2026-01-13' - custodian_types: '["*"]' - comments: - - Generic hypernym slot for type classification hierarchies - - Maps to skos:broader for parent/superordinate concept - - Links more specific types to more general types - - 'Transitive: if A broader B, B broader C, then A broader C' - - 'RiC-O naming: hasOrHad indicates potentially historical relationship' - examples: - - value: https://nde.nl/ontology/hc/storage-type/climate-controlled - description: Climate controlled is the broader type for cold storage diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_identifier.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_identifier.yaml deleted file mode 100644 index 3e0ffb450e..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_identifier.yaml +++ /dev/null @@ -1,15 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_identifier -name: has_or_had_identifier -title: Has Or Had Identifier -description: An identifier associated with the entity. -imports: -- linkml:types -slots: - has_or_had_identifier: - slot_uri: dcterms:identifier - range: string # uriorcurie - multivalued: true - annotations: - custodian_types: '["*"]' - exact_mappings: - - dcterms:identifier diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_label.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_label.yaml deleted file mode 100644 index c25fbed041..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_label.yaml +++ /dev/null @@ -1,19 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_label -name: has_or_had_label -title: Has Or Had Label -description: Human-readable label for an entity. -imports: -- linkml:types -slots: - has_or_had_label: - slot_uri: hc:hasOrHadLabel - range: string - multivalued: true - annotations: - custodian_types: '["*"]' - exact_mappings: - - skos:prefLabel - close_mappings: - - rdfs:label - related_mappings: - - schema:name diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_language.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_language.yaml deleted file mode 100644 index f3a4d6a587..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_language.yaml +++ /dev/null @@ -1,34 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_language -name: has_or_had_language_slot -title: Languages Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - dct: http://purl.org/dc/terms/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - has_or_had_language: - description: "Language information for an entity.\n\n**Use Cases**:\n1. **Language Proficiency**: When tracking language skills (e.g., person profiles)\n - Use LanguageProficiency class with language_name, code, and level\n2. **Language-Tagged Text**: When storing multilingual text content\n - Use Language class with iso_639_1, language_name, and text_content\n3. **Content Language**: Language of the resource content (migrated from content_language)\n - Use Language class\n\n**Migration Support**:\nThis slot replaces language-specific text slots (fr, de, en, nl) and content_language\nwith a unified pattern per slot_fixes.yaml revisions:\n- `content_language` \u2192 has_or_had_language with Language\n- `fr` (French text) \u2192 has_or_had_language with Language(iso_639_1=\"fr\")\n- `de` (German text) \u2192 has_or_had_language with Language(iso_639_1=\"de\")\n- `en` (English text) \u2192 has_or_had_language with Language(iso_639_1=\"en\")\n- `nl` (Dutch text) \u2192 has_or_had_language\ - \ with Language(iso_639_1=\"nl\")\n\n**Example - Language-Tagged Text**:\n```yaml\nhas_or_had_language:\n - iso_639_1: \"fr\"\n language_name: \"French\"\n text_content: \"archives universitaires\"\n - iso_639_1: \"en\"\n language_name: \"English\"\n text_content: \"university archives\"\n```\n\n**Example - Language Proficiency**:\n```yaml\nhas_or_had_language:\n - language_name: \"French\"\n language_code: \"fr\"\n proficiency_level: \"fluent\"\n```\n" - range: string # uriorcurie - any_of: - - range: LanguageProficiency - - range: Language - multivalued: true - inlined: false # Fixed invalid inline for primitive type - inlined_as_list: false # Fixed invalid inline for primitive type - slot_uri: dct:language - annotations: - custodian_types: '["*"]' - exact_mappings: - - dct:language diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_level.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_level.yaml deleted file mode 100644 index 94bea1d9d0..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_level.yaml +++ /dev/null @@ -1,34 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_level -name: has_or_had_level_slot -title: Has Or Had Level Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - rico: https://www.ica.org/standards/RiC/ontology# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - has_or_had_level: - description: 'Level or degree associated with an entity. - - Generic slot for expressing levels of various kinds: - Approximation/uncertainty levels (EXACT, APPROXIMATE, ESTIMATED, etc.) - Arrangement levels in archival description - Severity levels - Confidence levels - - Class-specific slot_usage should narrow the range appropriately.' - range: string - slot_uri: hc:approximationLevel - close_mappings: - - rico:hasOrHadConfidenceLevel - annotations: - specificity_score: 0.25 - specificity_rationale: Level is a broadly useful concept applicable to approximation, confidence, arrangement, and other contexts. - custodian_types: '["*"]' - custodian_types_rationale: Levels are universal concepts applicable to all custodian types. diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_method.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_method.yaml deleted file mode 100644 index 65a7e3a54e..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_method.yaml +++ /dev/null @@ -1,52 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_method -name: has_or_had_method -title: Has or Had Method -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_method: - slot_uri: schema:httpMethod - description: 'A method associated with an activity, process, or entity. - - - **USAGE**: - - Used for: - - - HTTP methods (GET, POST, PUT, DELETE) - range: HTTPMethod - - - Enrichment methods (WhatsApp API, Manual) - range: EnrichmentMethod - - - API interaction methods - - - **BROADENED RANGE**: - - Range broadened to `Any` (from HTTPMethod) to support multiple method types per Rule 55. - - ' - range: string # uriorcurie - multivalued: true - exact_mappings: - - schema:httpMethod - - prov:used - close_mappings: - - schema:instrument - examples: - - value: - method_name: GET - description: HTTP GET method - annotations: - custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_methodology.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_methodology.yaml deleted file mode 100644 index 24e27272dc..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_methodology.yaml +++ /dev/null @@ -1,35 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_methodology -name: has_or_had_methodology_slot -title: Has Or Had Methodology Slot -description: 'RiC-O style slot for linking to methodology specifications. - - **RULE 53 COMPLIANT**: Created for unique_object_count and unique_face_count migration per slot_fixes.yaml revision (lines 1951-1994). - - **RULE 39 COMPLIANT**: RiC-O style temporal naming (has_or_had_*).' -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - has_or_had_methodology: - description: "The methodology used to derive a measurement or observation.\n**PROV-O ALIGNMENT**:\nMaps to `prov:hadPlan` which indicates \"The optional Plan adopted by an Agent in Association with some Activity.\"\n**WHY THIS MATTERS**:\nA \"unique face count\" of 15 has different meanings depending on methodology: - ENTITY_RESOLUTION: 15 distinct individuals identified via face clustering - OBJECT_TRACKING: 15 tracked face instances (may include same person) - MANUAL_COUNT: 15 faces counted by human annotator\n**EXAMPLE USAGE**:\n```yaml has_or_had_quantity:\n quantity_value: 15\n quantity_type: OBJECT_COUNT\n has_or_had_measurement_unit:\n unit_type: FACE\n has_or_had_methodology:\n methodology_type: ENTITY_RESOLUTION\n has_or_had_label: \"ArcFace clustering\"\n confidence_threshold: 0.6\n```" - range: string # uriorcurie - # range: Methodology - slot_uri: prov:hadPlan - exact_mappings: - - prov:hadPlan - annotations: - rule_53_compliant: true - link_branch: 2 - migration_source: unique_object_count, unique_face_count - custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_note.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_note.yaml deleted file mode 100644 index aa4003ca66..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_note.yaml +++ /dev/null @@ -1,42 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_note -name: has_or_had_note_slot -title: Has Or Had Note Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - has_or_had_note: - slot_uri: skos:note - range: string - multivalued: true - inlined: false # Fixed invalid inline for primitive type - inlined_as_list: false # Fixed invalid inline for primitive type - description: "Typed notes associated with an entity.\n\n**Replaces** (per slot_fixes.yaml):\n- `claim_note` (string-valued) \u2192 Note with note_type: claim\n- `category_note` (string-valued) \u2192 Note with note_type: category\n- `certainty_note` (string-valued) \u2192 Note with note_type: certainty\n- `conservation_note` (string-valued) \u2192 Note with note_type: conservation\n- Other *_note slots per slot_fixes.yaml\n\n**Purpose**:\nGeneric slot for attaching typed notes (claim, category, certainty,\nconservation, extraction, etc.) with optional language and date metadata.\n\n**ONTOLOGY ALIGNMENT**:\n\n| Ontology | Property | Notes |\n|----------|----------|-------|\n| **SKOS** | `skos:note` | Primary - general note |\n| **RDFS** | `rdfs:comment` | Related - comment |\n\n**MIGRATION (2026-01-18)**:\nRange changed from `string` to `Note` class per slot_fixes.yaml.\nThe Note class provides structured notes with type, content, date, and language.\n" - exact_mappings: - - skos:note - close_mappings: - - rdfs:comment - examples: - - value: - note_type: claim - note_content: Additional verification required for this claim. - note_date: '2026-01-18' - description: Claim note about verification status - - value: - note_type: extraction - note_content: Data migrated from legacy system. - note_date: '2024-01-15' - description: Extraction/migration note - annotations: - custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_output.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_output.yaml deleted file mode 100644 index 117976f8b6..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_output.yaml +++ /dev/null @@ -1,74 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_output -name: has_or_had_output -title: Has or Had Output -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - sosa: http://www.w3.org/ns/sosa/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_output: - slot_uri: hc:hasOrHadOutput - description: 'Output produced by a device, service, or process. - - - **USAGE**: - - Represents data, signals, or artifacts emitted by: - - - IoT devices (sensor readings, beacon signals) - - - APIs and services (data responses) - - - Processing pipelines (transformed data) - - - Software systems (reports, exports) - - - **ONTOLOGY ALIGNMENT**: - - - **Primary** (`slot_uri`): `hc:hasOrHadOutput` - Heritage Custodian property - - - **Close**: `sosa:hasResult` - SOSA observation result - - - **Close**: `schema:produces` - Schema.org production relationship - - - **RANGE**: `OutputData` class - - The OutputData class captures output specifications including format, - - frequency, destination, and data characteristics. - - ' - range: string # uriorcurie - # range: OutputData - multivalued: true - inlined_as_list: false # Fixed invalid inline for primitive type - close_mappings: - - sosa:hasResult - - schema:produces - examples: - - value: - has_or_had_format: - has_or_had_type: JsonFormat - has_or_had_description: Climate sensor readings in JSON format - description: IoT device output specification - - value: - has_or_had_format: - has_or_had_type: CsvFormat - destination_url: https://analytics.museum.nl/data - description: Data export output - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Output specifications applicable to all custodian types with digital systems. diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_owner.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_owner.yaml deleted file mode 100644 index c99b254e50..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_owner.yaml +++ /dev/null @@ -1,51 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_owner -name: has_or_had_owner_slot -title: Has Or Had Owner Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - rico: https://www.ica.org/standards/RiC/ontology# - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_owner: - slot_uri: rico:hasOrHadHolder - description: "Person or organization that owned or currently owns an item.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - ownership changes over time through sales, gifts, \ninheritance, or institutional transfers.\n\n**Provenance Significance**:\nOwnership is crucial for provenance research:\n- Document historical ownership chains\n- Connect items to notable collectors\n- Evidence for restitution claims\n- Institutional vs. personal ownership\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `rico:hasOrHadHolder` - RiC-O holder relationship\n- **Close**: `schema:owns` - Schema.org ownership (inverse)\n- **Related**: `crm:P51_has_former_or_current_owner` - CIDOC-CRM ownership\n\n**Usage**:\nFor bookplates, ownership marks, provenance records, and collection histories.\n" - range: string - required: false - multivalued: true - exact_mappings: - - rico:hasOrHadHolder - close_mappings: - - crm:P51_has_former_or_current_owner - related_mappings: - - schema:owns - annotations: - rico_naming_convention: 'Follows RiC-O "hasOrHad" pattern for temporal predicates. - - See Rule 39: Slot Naming Convention (RiC-O Style) - - ' - migration_date: '2026-01-15' - custodian_types: '["*"]' - comments: - - Ownership relationship for provenance tracking - - Maps to rico:hasOrHadHolder as primary predicate - - Multivalued for ownership chains - - 'RiC-O naming: hasOrHad indicates potentially historical relationship' - examples: - - value: Johann Wolfgang von Goethe - description: Personal owner (historical) - - value: Royal Library of Prussia - description: Institutional owner - - value: Rijksmuseum Amsterdam - description: Current institutional owner diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_role.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_role.yaml deleted file mode 100644 index e99483a8df..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_role.yaml +++ /dev/null @@ -1,89 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_role -name: has_or_had_role_slot -title: Has Or Had Role Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - owl: http://www.w3.org/2002/07/owl# - schema: http://schema.org/ - prov: http://www.w3.org/ns/prov# - org: http://www.w3.org/ns/org# - dcterms: http://purl.org/dc/terms/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_role: - slot_uri: schema:roleName - description: 'Role of an entity in a context (author role, agent role, etc.). - - - **Temporal Semantics** (RiC-O Pattern): - - The "hasOrHad" naming follows RiC-O convention indicating this relationship - - may be historical - an entity''s role may change over time. - - - **Ontological Alignment**: - - - **Primary** (`slot_uri`): `schema:roleName` - Schema.org role name - - - **Exact**: `org:role` - W3C Org role - - - **Close**: `prov:hadRole` - PROV-O role in activity - - - **Usage**: - - For authors: role in creating a work (AUTHOR, EDITOR, TRANSLATOR) - - For agents: role in an activity or event - - For participants: role in a project or organization - - - **Range**: `uriorcurie` (2026-01-16, Rule 55) - - - Broadened to allow enum or class values. - - Classes may narrow via slot_usage to specific Role enums or classes. - - ' - range: string # uriorcurie - implements: - - owl:ObjectProperty - required: false - multivalued: false - exact_mappings: - - org:role - close_mappings: - - prov:hadRole - related_mappings: - - schema:jobTitle - annotations: - rico_naming_convention: 'Follows RiC-O "hasOrHad" pattern for temporal predicates. - - See Rule 39: Slot Naming Convention (RiC-O Style) - - ' - replaces_slots: author_role, agent_role, participant_role - migration_date: '2026-01-16' - custodian_types: '["*"]' - comments: - - Generic role slot for entities - - Maps to schema:roleName as primary URI - - 'Range: uriorcurie (Rule 55) - allows enum or Role class via slot_usage' - - 'RiC-O naming: hasOrHad indicates potentially historical relationship' - examples: - - value: AUTHOR - description: Primary author role - - value: EDITOR - description: Editor role - - value: TRANSLATOR - description: Translator role diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_scope.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_scope.yaml deleted file mode 100644 index e097fe8039..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_scope.yaml +++ /dev/null @@ -1,15 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_scope -name: has_or_had_scope -title: has_or_had_scope -imports: -- linkml:types -slots: - has_or_had_scope: - description: Scope of an organization or project. - slot_uri: schema:areaServed - range: string - # range: Scope - annotations: - custodian_types: '["*"]' - exact_mappings: - - schema:areaServed diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_score.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_score.yaml deleted file mode 100644 index 433be399cc..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_score.yaml +++ /dev/null @@ -1,51 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_score -name: has_or_had_score -title: Has or Had Score -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -# - ../classes/SpecificityScore -slots: - has_or_had_score: - - slot_uri: hc:hasOrHadScore - description: 'A specificity score object containing the score value and metadata. - - - **USAGE**: - - Used for: - - - XPath match confidence scores (0.0-1.0) - - - Relevance scores - - - Quality ratings - - - Similarity scores - - ' - range: float - # range: float - # range: SpecificityScore - close_mappings: - - - schema:ratingValue - examples: - - value: - specificity_score: 0.95 - specificity_rationale: High confidence - description: Specificity score with rationale - annotations: - custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_symbol.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_symbol.yaml deleted file mode 100644 index 34b1701dfc..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_symbol.yaml +++ /dev/null @@ -1,38 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_symbol -name: has_or_had_symbol -title: Has or Had Symbol -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - skos: http://www.w3.org/2004/02/skos/core# - schema: http://schema.org/ - qudt: http://qudt.org/schema/qudt/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_symbol: - slot_uri: qudt:symbol - description: "A symbolic representation associated with an entity.\n\n**USAGE**:\nUsed for standardized symbols such as:\n- Unit symbols (e.g., \"ha\" for hectare, \"m\xB2\" for square meter)\n- Currency symbols (e.g., \"\u20AC\", \"$\")\n- Chemical symbols\n- Mathematical notation symbols\n\n**ONTOLOGY ALIGNMENT**:\n- slot_uri: qudt:symbol (QUDT symbol for units)\n" - range: string - exact_mappings: - - qudt:symbol - close_mappings: - - schema:unitText - - skos:notation - examples: - - value: ha - description: Symbol for hectare - - value: "m\xB2" - description: Symbol for square meter - - value: "\u20AC" - description: Euro currency symbol - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Symbols applicable to all custodian types. diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_technological_infrastructure.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_technological_infrastructure.yaml deleted file mode 100644 index c9d719f013..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_technological_infrastructure.yaml +++ /dev/null @@ -1,56 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_technological_infrastructure -name: has_or_had_technological_infrastructure_slot -title: Has Or Had Technological Infrastructure Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - doap: http://usefulinc.com/ns/doap# - spdx: http://spdx.org/rdf/terms# - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - has_or_had_technological_infrastructure: - slot_uri: hc:hasOrHadTechnologicalInfrastructure - description: "Technical infrastructure components, systems, and technologies used by a digital platform.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this relationship\nmay be historical - platforms may have changed technology stacks over time.\n\n**MIGRATION from technology_stack**:\nThis slot replaces the simple string-based `technology_stack` slot with a\nstructured TechnologicalInfrastructure class that provides:\n- Type classification (framework, language, database, API protocol, service)\n- Versioning information\n- Component relationships (includes_or_included)\n- Full provenance tracking\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadTechnologicalInfrastructure`\n- **Close**: `schema:softwareVersion` - Schema.org for software/version info\n- **Close**: `doap:programming-language` - DOAP vocabulary for software projects\n- **Related**: `spdx:relationshipType_DEPENDS_ON` - Software Bill of Materials\n\ - \n**Usage Examples**:\n```yaml\nauxiliary_platform:\n has_or_had_technological_infrastructure:\n - has_or_had_type: Framework\n has_or_had_label: React\n has_or_had_description: Frontend JavaScript framework\n - has_or_had_type: BackendStack\n has_or_had_label: Python/Django\n has_or_had_description: Backend web framework\n - has_or_had_type: Database\n has_or_had_label: PostgreSQL\n has_or_had_description: Primary relational database\n```\n" - range: string # uriorcurie - multivalued: true - required: false - close_mappings: - - schema:softwareVersion - - doap:programming-language - related_mappings: - - spdx:relationshipType_DEPENDS_ON - annotations: - replaces_slot: technology_stack - migration_date: '2026-01-16' - migration_rationale: 'Per slot_fixes.yaml and Rule 56: Migrated from simple string list to structured - - TechnologicalInfrastructure class for better semantic modeling and extensibility. - - ' - custodian_types: '["D"]' - custodian_types_rationale: Primarily relevant for Digital platform custodians. - custodian_types_primary: D - specificity_score: 0.7 - specificity_rationale: "Fairly specific to digital platform modeling. Less relevant for \nphysical-only heritage custodians.\n" - comments: - - 'MIGRATION: Replaces technology_stack per slot_fixes.yaml (2026-01-16)' - - 'RiC-O naming convention: hasOrHad indicates temporal relationship' - - 'Range: uriorcurie - classes narrow to TechnologicalInfrastructure via slot_usage' - - 'Multivalued: platforms typically use multiple technologies' - - 'DOAP-aligned: Description of a Project vocabulary for software' - examples: - - value: hc:TechnologicalInfrastructure/react-frontend - description: React frontend framework (CURIE reference) - - value: hc:TechnologicalInfrastructure/python-django-backend - description: Python/Django backend stack diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_time_interval.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_time_interval.yaml deleted file mode 100644 index c9f802f554..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_time_interval.yaml +++ /dev/null @@ -1,50 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_time_interval -name: has_or_had_time_interval_slot -title: Has Or Had Time Interval Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - time: http://www.w3.org/2006/time# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - has_or_had_time_interval: - description: 'Links to a time interval or duration associated with this entity. - - **TEMPORAL SEMANTICS** (RiC-O style): The "has_or_had" naming indicates that time interval associations can change: - Update frequencies may be revised - Approval times may change with policy updates - Reporting periods may vary - Durations of media content - - **USE CASES**: - Update frequency: How often data is refreshed - Approval time: Expected processing duration - Reporting period: Time period for metrics/revenue - Media duration: Length of video/audio content' - range: string # uriorcurie - # range: TimeInterval - slot_uri: time:hasDuration - inlined: false # Fixed invalid inline for primitive type - exact_mappings: - - time:hasDuration - close_mappings: - - schema:duration - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Time interval associations applicable to all custodian types. - custodian_types_primary: '*' - specificity_score: 0.25 - specificity_rationale: Low specificity - universal temporal relationship. - examples: - - value: "has_or_had_time_interval:\n duration_value: \"P7D\"\n duration_description: \"weekly\"\n" - description: Weekly update interval. - - value: "has_or_had_time_interval:\n duration_value: \"P1Y\"\n duration_description: \"annual reporting period\"\n" - description: Annual time interval for revenue reporting. - - value: "has_or_had_time_interval:\n duration_value: \"PT10M\"\n duration_description: \"10 minutes\"\n" - description: Video duration. - comments: - - Created from slot_fixes.yaml migration (2026-01-14) - - Replaces string-based duration fields with structured TimeInterval - - Uses W3C Time Ontology for duration semantics diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_token.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_token.yaml deleted file mode 100644 index f8061ec758..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_token.yaml +++ /dev/null @@ -1,46 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_token -name: has_or_had_token_slot -title: has_or_had_token slot -description: 'Generic slot for token-related data following RiC-O temporal naming convention. Created during slot migration per Rule 53/56 (2026-01-17). - - Replaces bespoke slots: cached_token, completion_token, prompt_token - - Use slot_usage in classes to specialize range and semantics.' -version: 1.1.0 -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - has_or_had_token: - description: 'Token data associated with an entity (e.g., LLM token counts, cached tokens). Generic slot following RiC-O temporal naming convention. UPDATED v1.1.0: Range changed to Token class per full Rule 53/56 compliance.' - slot_uri: schema:value - range: string # uriorcurie - # range: Token - multivalued: true - inlined: false # Fixed invalid inline for primitive type - inlined_as_list: false # Fixed invalid inline for primitive type - exact_mappings: - - schema:value - annotations: - migrated_from: cached_token, completion_token - migration_date: '2026-01-19' - migration_rule: Rule 53/56 - version_history: 'v1.0.0 (2026-01-17): Initial migration, range=integer - - v1.1.0 (2026-01-17): Updated range to Token class per full revision compliance - - v1.2.0 (2026-01-19): Made multivalued for completion_token migration - - ' - custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_type.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_type.yaml deleted file mode 100644 index 056a27a6c4..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_type.yaml +++ /dev/null @@ -1,20 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_type -name: has_or_had_type -title: Has Or Had Type -description: The type classification(s) of an entity within the heritage domain. -imports: -- linkml:types -slots: - has_or_had_type: - slot_uri: hc:hasOrHadType - range: string # uriorcurie - multivalued: true - annotations: - custodian_types: '["*"]' - exact_mappings: - - crm:P2_has_type - close_mappings: - - dcterms:type - related_mappings: - - schema:additionalType - - skos:broader diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_url.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_url.yaml deleted file mode 100644 index 8e74ebf84a..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_url.yaml +++ /dev/null @@ -1,57 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_url -name: has_or_had_url_slot -title: Has Or Had URL Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - owl: http://www.w3.org/2002/07/owl# - schema: http://schema.org/ - foaf: http://xmlns.com/foaf/0.1/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_url: - slot_uri: hc:hasOrHadUrl - range: uri - description: "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: uri (broadened from URL class to resolve ambiguous type warning)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n" - implements: - - owl:ObjectProperty - required: false - multivalued: true - inlined: false # Fixed invalid inline for primitive type - inlined_as_list: false # Fixed invalid inline for primitive type - exact_mappings: [] - close_mappings: - - schema:url - - foaf:homepage - annotations: - rico_naming_convention: 'Follows RiC-O "hasOrHad" pattern for temporal predicates. - - See Rule 39: Slot Naming Convention (RiC-O Style) - - ' - replaces_slots: website, url, vendor_url - migration_date: '2026-01-15' - custodian_types: '["*"]' - custodian_types_rationale: URLs apply to all heritage custodian types. - specificity_score: 0.15 - specificity_rationale: Generic URL slot applicable across all contexts. - comments: - - Generic URL association slot - - Maps to schema:url for web addresses - - 'Temporal: URLs may change over time' - - 'RiC-O naming: hasOrHad indicates potentially historical' - - Replaces website, url, vendor_url per slot_fixes.yaml - examples: - - value: - url_value: https://www.rijksmuseum.nl/ - url_type: website - description: Official website for Rijksmuseum diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_web_claim.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_web_claim.yaml deleted file mode 100644 index d6b3e8d6c4..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_web_claim.yaml +++ /dev/null @@ -1,21 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_web_claim -name: has_or_had_web_claim -title: Has Or Had Web Claim -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - prov: http://www.w3.org/ns/prov# -imports: -- linkml:types -default_prefix: hc -slots: - has_or_had_web_claim: - slot_uri: prov:wasDerivedFrom - description: "Claims extracted from web sources." - range: string - multivalued: true - exact_mappings: - - prov:wasDerivedFrom - annotations: - custodian_types: '["*"]' - specificity_score: 0.3 diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_writing_system.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_writing_system.yaml deleted file mode 100644 index 363ddf5986..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_writing_system.yaml +++ /dev/null @@ -1,45 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_or_had_writing_system -name: has_or_had_writing_system -title: Has or Had Writing System -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - has_or_had_writing_system: - slot_uri: schema:inLanguage - description: 'The writing system or script used. - - - **USAGE**: - - Used for: - - - Script type (Latin, Cyrillic, Arabic, etc.) - - - Writing direction (LTR, RTL) - - - Historical scripts (Cuneiform, Hieroglyphics) - - ' - range: string # uriorcurie - # range: WritingSystem - close_mappings: - - schema:inLanguage - examples: - - value: - script_code: Latn - script_name: Latin - description: Latin writing system - annotations: - custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/includes_or_included.yaml b/schemas/20251121/linkml/modules/slots/includes_or_included.yaml deleted file mode 100644 index d7f3fd9346..0000000000 --- a/schemas/20251121/linkml/modules/slots/includes_or_included.yaml +++ /dev/null @@ -1,38 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/includes_or_included -name: includes_or_included_slot -title: Includes Or Included Slot -description: Generic hierarchical inclusion slot for modeling part-whole or containment relationships with temporal semantics. -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - org: http://www.w3.org/ns/org# - rico: https://www.ica.org/standards/RiC/ontology# - dcterms: http://purl.org/dc/terms/ - schema: http://schema.org/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - includes_or_included: - description: "Generic slot indicating that an entity includes or included another entity. Follows RiC-O temporal naming convention to indicate the relationship may be current or historical.\n**USAGE**:\n```yaml parent_function:\n includes_or_included:\n - child_function_1\n - child_function_2\n```\n**DESIGN RATIONALE**:\nThis is a GENERIC hierarchical slot for modeling containment/inclusion relationships. Use when a parent entity encompasses child entities.\n**COMMON USE CASES**:\n- FunctionType hierarchy (e.g., \"Administrative\" includes \"Finance\", \"HR\") - Organizational unit hierarchy - Collection hierarchy\n**ONTOLOGY ALIGNMENT**:\n- `rico:includes` - RiC-O inclusion relationship - `org:hasUnit` - W3C ORG subunit relationship - `dcterms:hasPart` - Dublin Core part-whole relationship" - range: string # uriorcurie - multivalued: true - slot_uri: rico:includes - exact_mappings: - - rico:includes - close_mappings: - - org:hasUnit - - dcterms:hasPart - related_mappings: - - org:subOrganizationOf - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Hierarchical relationships applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.3 - specificity_rationale: Broadly applicable - hierarchical inclusion is a fundamental pattern used across many organizational and collection modeling contexts. diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_created_by.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_created_by.yaml deleted file mode 100644 index d3461dcf22..0000000000 --- a/schemas/20251121/linkml/modules/slots/is_or_was_created_by.yaml +++ /dev/null @@ -1,76 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/is_or_was_created_by -name: is_or_was_created_by_slot -title: Is Or Was Created By Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - dcterms: http://purl.org/dc/terms/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - is_or_was_created_by: - slot_uri: prov:wasAttributedTo - description: 'Links an entity to its creator, manufacturer, or producer. - - - **Temporal Semantics** (RiC-O Pattern): - - The "isOrWas" naming follows RiC-O convention indicating this relationship - - may be historical - manufacturers change names, merge, or go out of business. - - - **Ontological Alignment**: - - - **Primary** (`slot_uri`): `prov:wasAttributedTo` - PROV-O agent attribution - - - **Close**: `schema:manufacturer` - Schema.org manufacturer - - - **Close**: `crm:P108_was_produced_by` - CIDOC-CRM production relationship - - - **Usage**: - - Use with Manufacturer class for structured manufacturer information. - - Range is uriorcurie to allow both class instances and URI references. - - - **Replaces**: device_manufacturer slot per slot_fixes.yaml migration (2026-01-25) - - ' - range: string # uriorcurie - required: false - multivalued: false - exact_mappings: - - prov:wasAttributedTo - close_mappings: - - schema:manufacturer - - crm:P108_was_produced_by - annotations: - rico_naming_convention: 'Follows RiC-O "isOrWas" pattern for temporal predicates. - - See Rule 39: Slot Naming Convention (RiC-O Style) - - ' - replaces_slots: device_manufacturer - migration_date: '2026-01-25' - custodian_types: '["*"]' - comments: - - Links products/devices to their manufacturer - - Use Manufacturer class for structured manufacturer data - - 'RiC-O naming: isOrWas indicates potentially historical relationship' - - PROV-O wasAttributedTo for provenance chain tracking - examples: - - value: https://nde.nl/ontology/hc/manufacturer/estimote - description: Reference to Estimote as device manufacturer - - value: https://nde.nl/ontology/hc/manufacturer/sensirion - description: Reference to Sensirion as sensor manufacturer diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_deployed_at.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_deployed_at.yaml deleted file mode 100644 index e44e2f623f..0000000000 --- a/schemas/20251121/linkml/modules/slots/is_or_was_deployed_at.yaml +++ /dev/null @@ -1,45 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/is_or_was_deployed_at -name: is_or_was_deployed_at_slot -title: Is Or Was Deployed At Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - is_or_was_deployed_at: - slot_uri: prov:wasGeneratedBy - description: "Links a system (CMS, software) to its deployment event(s).\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this relationship\nmay be historical - a system may have been deployed multiple times at\ndifferent institutions or locations.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `prov:wasGeneratedBy` - PROV-O relationship\n linking entity to the activity that generated/deployed it\n- **Close**: `schema:datePublished` - Schema.org deployment date\n\n**MIGRATED FROM**: `deployment_date` slot\n\nThe revision pattern replaces a simple date with structured DeploymentEvent:\n- DeploymentEvent.temporal_extent \u2192 TimeSpan with fuzzy boundaries\n- Enables tracking multiple deployments over time\n- Captures deployment context (who, where, why)\n" - range: string # uriorcurie - multivalued: true - required: false - exact_mappings: - - prov:wasGeneratedBy - close_mappings: - - schema:datePublished - annotations: - rico_naming_convention: 'Follows RiC-O "isOrWas" pattern for temporal predicates. - - See Rule 39: Slot Naming Convention (RiC-O Style) - - ' - replaces_slots: deployment_date - migration_date: '2026-01-25' - custodian_types: '["*"]' - comments: - - MIGRATED from deployment_date per slot_fixes.yaml (Rule 53) - - Structured deployment tracking via DeploymentEvent class - - 'RiC-O naming: isOrWas indicates potentially historical relationship' - - PROV-O wasGeneratedBy for deployment provenance - examples: - - value: https://nde.nl/ontology/hc/event/rijksmuseum-adlib-deployment-2015 - description: Reference to Adlib CMS deployment event at Rijksmuseum diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_displayed_at.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_displayed_at.yaml deleted file mode 100644 index 0e46e43619..0000000000 --- a/schemas/20251121/linkml/modules/slots/is_or_was_displayed_at.yaml +++ /dev/null @@ -1,30 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/is_or_was_displayed_at -name: is_or_was_displayed_at_slot -title: Is Or Was Displayed At Slot -prefixes: - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - is_or_was_displayed_at: - description: Location where an object is or was displayed (e.g. during a loan). MIGRATED from display_location (2026-01-26). - range: string # uriorcurie - # range: DisplayLocation - multivalued: true - inlined: false # Fixed invalid inline for primitive type - annotations: - rico_naming_convention: 'Follows RiC-O "isOrWas" pattern for temporal predicates. - - ' - custodian_types: '["*"]' - specificity_score: 0.7 diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_dissolved_by.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_dissolved_by.yaml deleted file mode 100644 index be40b7416e..0000000000 --- a/schemas/20251121/linkml/modules/slots/is_or_was_dissolved_by.yaml +++ /dev/null @@ -1,33 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/is_or_was_dissolved_by -name: is_or_was_dissolved_by_slot -title: Is Or Was Dissolved By Slot -prefixes: - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - org: http://www.w3.org/ns/org# - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - is_or_was_dissolved_by: - description: Dissolution event for an organization or legal status. MIGRATED from dissolution_date and dissolved_date (2026-01-26). - range: string # uriorcurie - # range: DissolutionEvent - multivalued: true - inlined: false # Fixed invalid inline for primitive type - slot_uri: org:changedBy - close_mappings: - - prov:invalidatedAtTime - annotations: - rico_naming_convention: 'Follows RiC-O "isOrWas" pattern for temporal predicates. - - ' - custodian_types: '["*"]' - specificity_score: 0.5 diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_listed_in.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_listed_in.yaml deleted file mode 100644 index abca00de7e..0000000000 --- a/schemas/20251121/linkml/modules/slots/is_or_was_listed_in.yaml +++ /dev/null @@ -1,31 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/is_or_was_listed_in -name: is_or_was_listed_in_slot -title: Is Or Was Listed In Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - skos: http://www.w3.org/2004/02/skos/core# - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -imports: -- linkml:types -default_prefix: hc -slots: - is_or_was_listed_in: - description: "Indicates inclusion in a regulatory, classification, or administrative listing.\n**Temporal Semantics**: Uses RiC-O-style \"is_or_was\" to express that the listing may be current or historical - specimens may be added to or removed from regulatory lists over time.\n**Common Use Cases**: - CITES appendix listings for endangered species specimens - IUCN Red List categorizations - National heritage register listings - UNESCO World Heritage Site designations - Protected species schedules\n**Example**: ```yaml is_or_was_listed_in:\n listing_type: CITESAppendix\n listing_value: APPENDIX_I\n listing_date: \"1975-07-01\"\n listing_authority: \"CITES Secretariat\"\n```" - slot_uri: schema:isPartOf - range: string - multivalued: true - exact_mappings: - - schema:isPartOf - close_mappings: - - skos:inScheme - annotations: - specificity_score: 0.5 - specificity_rationale: Generic regulatory listing predicate applicable to biological specimens, cultural heritage objects, and protected sites - custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_responsible_for.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_responsible_for.yaml deleted file mode 100644 index 1e78ef60ad..0000000000 --- a/schemas/20251121/linkml/modules/slots/is_or_was_responsible_for.yaml +++ /dev/null @@ -1,39 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/is_or_was_responsible_for -name: is_or_was_responsible_for -title: Is or Was Responsible For -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - rico: https://www.ica.org/standards/RiC/ontology# - tooi: https://identifier.overheid.nl/tooi/def/ont/ - schema: http://schema.org/ - prov: http://www.w3.org/ns/prov# - dcterms: http://purl.org/dc/terms/ - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - is_or_was_responsible_for: - slot_uri: rico:hasOrHadHolder - description: "Links a legal entity to collections or resources for which it bears formal legal responsibility.\n\n**TEMPORAL SEMANTICS**:\nPer RiC-O and Rule 39, the \"is_or_was\" prefix indicates that:\n- The relationship may be current (active responsibility)\n- The relationship may be historical (past responsibility, now transferred)\n- Temporal validity is tracked via the range class (e.g., Collection.temporal_extent)\n\n**USAGE**:\nUsed for:\n- Legal responsibility for heritage collections\n- Custodial responsibility for archival holdings\n- Formal accountability for cultural property\n\n**RELATIONSHIP TO TOOI**:\n- Forward direction from legal entity to collection\n- Replaces collections_under_responsibility slot\n- Maps to tooi:heeft_informatieobject semantics\n\n**BIDIRECTIONAL PATTERN**:\n- Forward: CustodianLegalStatus \u2192 Collection (is_or_was_responsible_for)\n- Inverse: Collection \u2192 CustodianLegalStatus (is_or_was_held_by or has_or_had_holder)\n" - range: string # uriorcurie - multivalued: true - exact_mappings: - - rico:hasOrHadHolder - close_mappings: - - tooi:heeft_informatieobject - - prov:hadMember - related_mappings: - - schema:collection - examples: - - value: https://nde.nl/ontology/hc/collection/rm-national-collection - description: Rijksmuseum foundation responsible for National Collection - - value: https://nde.nl/ontology/hc/collection/nha-provincial-archive - description: Noord-Hollands Archief responsible for Provincial Archive - annotations: - custodian_types: '["*"]' diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_at.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_at.yaml deleted file mode 100644 index 80025a5d0a..0000000000 --- a/schemas/20251121/linkml/modules/slots/is_or_was_retrieved_at.yaml +++ /dev/null @@ -1,23 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/is_or_was_retrieved_at -name: is_or_was_retrieved_at_slot - -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - -# default_range: string - -imports: - - linkml:types -slots: - is_or_was_retrieved_at: - slot_uri: prov:atTime - description: | - The datetime when this data was retrieved or fetched from its source. - - PROV-O: atTime - "The time at which an InstantaneousEvent occurred." - range: datetime - exact_mappings: - - schema:dateRetrieved diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_succeeded_by.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_succeeded_by.yaml deleted file mode 100644 index 0c69efd49e..0000000000 --- a/schemas/20251121/linkml/modules/slots/is_or_was_succeeded_by.yaml +++ /dev/null @@ -1,52 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/is_or_was_succeeded_by -name: is_or_was_succeeded_by_slot -title: Is Or Was Succeeded By Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - rico: https://www.ica.org/standards/RiC/ontology# - crm: http://www.cidoc-crm.org/cidoc-crm/ - prov: http://www.w3.org/ns/prov# - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - is_or_was_succeeded_by: - slot_uri: rico:isOrWasSuccessorOf - description: "The activity, event, or entity that succeeds (follows) this one.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"isOrWas\" naming follows RiC-O convention indicating this is an\ninverse relationship - \"A isOrWasSucceededBy B\" means B follows A.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `rico:isOrWasSuccessorOf` - RiC-O predicate for\n succession relationships in archival contexts\n- **Close**: `crm:P134_continued` - CIDOC-CRM for temporal continuation\n- **Related**: `prov:wasInformedBy` - PROV-O for activity dependencies\n- **Related**: `schema:followup` - Schema.org for follow-up actions\n\n**Use Cases**:\n- Link activity phases: Phase 1 \u2192 Phase 2 \u2192 Phase 3\n- Track project continuation: 2024 inventory \u2192 2025 inventory\n- Document workflow: condition survey \u2192 conservation treatment\n\n**Inverse**:\nThe inverse relationship is `is_or_was_preceded_by` (or `preceding_activity`)\n" - range: string - required: false - multivalued: true - exact_mappings: - - rico:isOrWasSuccessorOf - close_mappings: - - crm:P134_continued - related_mappings: - - prov:wasInformedBy - - schema:followup - annotations: - rico_naming_convention: 'Follows RiC-O "isOrWas" pattern for inverse temporal predicates. - - See Rule 39: Slot Naming Convention (RiC-O Style) - - ' - replaces_slots: following_activity - migration_date: '2026-01-13' - inverse_slot: is_or_was_preceded_by - custodian_types: '["*"]' - comments: - - Slot for succession relationships between activities/events - - slot_uri=rico:isOrWasSuccessorOf is a PREDICATE - - 'RiC-O naming: isOrWas indicates inverse temporal relationship' - - 'Multivalued: entity may have multiple successors' - examples: - - value: hc:activity/digitization-phase-2 - description: Phase 2 follows Phase 1 - - value: hc:activity/conservation-treatment-2025 - description: Treatment follows condition survey diff --git a/schemas/20251121/linkml/modules/slots/participates_or_participated_in.yaml b/schemas/20251121/linkml/modules/slots/participates_or_participated_in.yaml deleted file mode 100644 index 45de503575..0000000000 --- a/schemas/20251121/linkml/modules/slots/participates_or_participated_in.yaml +++ /dev/null @@ -1,30 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/participates_or_participated_in -name: participates_or_participated_in -title: participates_or_participated_in -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ - dcterms: http://purl.org/dc/terms/ - prov: http://www.w3.org/ns/prov# - crm: http://www.cidoc-crm.org/cidoc-crm/ - skos: http://www.w3.org/2004/02/skos/core# - rdfs: http://www.w3.org/2000/01/rdf-schema# - org: http://www.w3.org/ns/org# - xsd: http://www.w3.org/2001/XMLSchema# -default_prefix: hc -imports: -- linkml:types -slots: - participates_or_participated_in: - name: participates_or_participated_in - title: participates_or_participated_in - description: Participates in an event. - slot_uri: prov:hadActivity - range: string # uriorcurie - # range: Event - multivalued: true - annotations: - custodian_types: '["*"]' - exact_mappings: - - prov:hadActivity diff --git a/scripts/add_slot_aliases.py b/scripts/add_slot_aliases.py new file mode 100644 index 0000000000..098235fb2f --- /dev/null +++ b/scripts/add_slot_aliases.py @@ -0,0 +1,134 @@ +#!/usr/bin/env python3 +""" +Add missing aliases to refactored slot files. + +For files like: +- has_X.yaml -> add alias "has_or_had_X" +- X.yaml (non-has_) -> add alias "is_or_was_X" +""" + +import os +import re +import yaml +from pathlib import Path + +SLOTS_DIR = Path("/Users/kempersc/apps/glam/schemas/20251121/linkml/modules/slots/20260202_matang") + +def add_alias_to_file(filepath: Path, old_name: str) -> bool: + """Add old_name as an alias to the slot file if not already present.""" + with open(filepath, 'r') as f: + content = f.read() + + # Check if alias already exists + if old_name in content: + return False + + # Parse YAML + try: + data = yaml.safe_load(content) + except Exception as e: + print(f"ERROR parsing {filepath}: {e}") + return False + + if not data or 'slots' not in data: + print(f"SKIP (no slots): {filepath}") + return False + + # Get the slot name (first key in slots) + slot_name = list(data['slots'].keys())[0] + slot_data = data['slots'][slot_name] + + # Add or update aliases + if 'aliases' not in slot_data: + slot_data['aliases'] = [] + + if old_name not in slot_data['aliases']: + slot_data['aliases'].append(old_name) + + # Write back + # Preserve comments by using regex replacement instead of full rewrite + if 'aliases:' in content: + # Find aliases section and add to it + pattern = r'(aliases:\s*\n)((?:\s*-\s*[^\n]+\n)*)' + def add_alias(match): + aliases_header = match.group(1) + existing_aliases = match.group(2) + indent = ' ' # Standard indent for aliases + return f"{aliases_header}{existing_aliases}{indent}- {old_name}\n" + + new_content = re.sub(pattern, add_alias, content) + else: + # Add aliases section after range or description + # Find a good insertion point - after 'range:' line or before 'annotations:' + lines = content.split('\n') + new_lines = [] + inserted = False + + for i, line in enumerate(lines): + new_lines.append(line) + # Insert after range, multivalued, or slot_uri lines at the slot level + if not inserted and re.match(r'\s{4}(range|multivalued|slot_uri):', line): + # Check next lines to find the right spot + # Insert aliases after the last property before annotations/examples/comments + next_line = lines[i+1] if i+1 < len(lines) else '' + if not re.match(r'\s{4}(range|multivalued|slot_uri|description):', next_line): + new_lines.append(' aliases:') + new_lines.append(f' - {old_name}') + inserted = True + + if not inserted: + # Fallback: insert before annotations if present + new_lines = [] + for line in lines: + if 'annotations:' in line and not inserted: + new_lines.append(' aliases:') + new_lines.append(f' - {old_name}') + inserted = True + new_lines.append(line) + + new_content = '\n'.join(new_lines) + + with open(filepath, 'w') as f: + f.write(new_content) + + return True + +def process_slots(): + """Process all slot files and add missing aliases.""" + updated = 0 + skipped = 0 + + for filepath in SLOTS_DIR.glob('*.yaml'): + name = filepath.stem + + # Determine the old name based on current name + if name.startswith('has_'): + # has_X -> has_or_had_X + old_name = 'has_or_had_' + name[4:] + elif name.startswith('contains_'): + # contains_X -> contains_or_contained_X + old_name = 'contains_or_contained_' + name[9:] + else: + # X -> is_or_was_X + old_name = 'is_or_was_' + name + + # Check if alias already exists in file + with open(filepath, 'r') as f: + content = f.read() + + if old_name in content: + skipped += 1 + continue + + # Add alias + if add_alias_to_file(filepath, old_name): + print(f"UPDATED: {name} -> added alias '{old_name}'") + updated += 1 + else: + skipped += 1 + + print(f"\nSummary: Updated {updated}, Skipped {skipped}") + return updated, skipped + +if __name__ == '__main__': + process_slots() diff --git a/scripts/migrate_slots.py b/scripts/migrate_slots.py new file mode 100644 index 0000000000..1da363d53b --- /dev/null +++ b/scripts/migrate_slots.py @@ -0,0 +1,171 @@ +#!/usr/bin/env python3 +""" +Migrate old-style slot files to concise naming convention. + +Transforms: +- is_or_was_X -> X +- has_or_had_X -> has_X +- contains_or_contained_X -> contains_X +""" + +import os +import re +import yaml +from pathlib import Path +from datetime import datetime + +SLOTS_DIR = Path("/Users/kempersc/apps/glam/schemas/20251121/linkml/modules/slots") +NEW_SLOTS_DIR = SLOTS_DIR / "20260202_matang" +ARCHIVE_DIR = SLOTS_DIR / "archive" + +# Create directories if they don't exist +NEW_SLOTS_DIR.mkdir(exist_ok=True) +ARCHIVE_DIR.mkdir(exist_ok=True) + +def to_camel_case(snake_str: str) -> str: + """Convert snake_case to camelCase.""" + components = snake_str.split('_') + return components[0] + ''.join(x.title() for x in components[1:]) + +def migrate_slot_name(old_name: str) -> str: + """Convert old slot name to new concise name.""" + if old_name.startswith("is_or_was_"): + return old_name.replace("is_or_was_", "") + elif old_name.startswith("has_or_had_"): + return old_name.replace("has_or_had_", "has_") + elif old_name.startswith("contains_or_contained_"): + return old_name.replace("contains_or_contained_", "contains_") + return old_name + +def create_new_slot_file(old_file: Path, new_name: str) -> str: + """Create new slot file content from old file.""" + with open(old_file, 'r') as f: + old_content = yaml.safe_load(f) + + old_name = old_file.stem + + # Get old slot data + old_slots = old_content.get('slots', {}) + if old_name not in old_slots: + # Try without suffix + for key in old_slots: + if key.startswith(old_name.replace('_slot', '')): + old_name = key + break + + old_slot = old_slots.get(old_name, {}) + + # Extract key properties from old slot + description = old_slot.get('description', f'Migrated from {old_name}') + slot_uri = old_slot.get('slot_uri', f'hc:{to_camel_case(new_name)}') + range_val = old_slot.get('range', 'string') + multivalued = old_slot.get('multivalued', True) + + # Get mappings + exact_mappings = old_slot.get('exact_mappings', []) + close_mappings = old_slot.get('close_mappings', []) + related_mappings = old_slot.get('related_mappings', []) + broad_mappings = old_slot.get('broad_mappings', []) + narrow_mappings = old_slot.get('narrow_mappings', []) + + # Get annotations + annotations = old_slot.get('annotations', {'custodian_types': '["*"]'}) + + # Get examples and comments + examples = old_slot.get('examples', []) + comments = old_slot.get('comments', []) + + # Build new slot content + new_slot = { + 'slot_uri': f'hc:{to_camel_case(new_name)}', + 'description': f'{description}\n\nMIGRATED {datetime.now().strftime("%Y-%m-%d")} from {old_name} for conciseness.', + 'range': range_val, + 'multivalued': multivalued, + 'aliases': [old_name], + } + + # Add mappings if present + if exact_mappings: + new_slot['exact_mappings'] = exact_mappings + if close_mappings: + new_slot['close_mappings'] = close_mappings + if related_mappings: + new_slot['related_mappings'] = related_mappings + if broad_mappings: + new_slot['broad_mappings'] = broad_mappings + if narrow_mappings: + new_slot['narrow_mappings'] = narrow_mappings + + # Add annotations + new_slot['annotations'] = annotations + + # Add examples if present + if examples: + new_slot['examples'] = examples + + # Add comments if present + if comments: + new_slot['comments'] = comments + + # Build full YAML structure + new_content = { + 'id': f'https://nde.nl/ontology/hc/slot/{new_name}', + 'name': new_name, + 'title': new_name.replace('_', ' '), + 'prefixes': { + 'linkml': 'https://w3id.org/linkml/', + 'hc': 'https://nde.nl/ontology/hc/', + 'schema': 'http://schema.org/', + 'dcterms': 'http://purl.org/dc/terms/', + 'rico': 'https://www.ica.org/standards/RiC/ontology#', + 'org': 'http://www.w3.org/ns/org#', + 'oa': 'http://www.w3.org/ns/oa#', + }, + 'default_prefix': 'hc', + 'imports': ['linkml:types'], + 'slots': { + new_name: new_slot + } + } + + return yaml.dump(new_content, default_flow_style=False, allow_unicode=True, sort_keys=False) + +def process_slots(): + """Process all old-style slot files.""" + patterns = [ + ('is_or_was_*.yaml', lambda x: x.replace('is_or_was_', '')), + ('has_or_had_*.yaml', lambda x: x.replace('has_or_had_', 'has_')), + ('contains_or_contained_*.yaml', lambda x: x.replace('contains_or_contained_', 'contains_')), + ] + + created = 0 + skipped = 0 + + for pattern, transform_fn in patterns: + for old_file in SLOTS_DIR.glob(pattern): + if old_file.is_file(): + old_name = old_file.stem + new_name = transform_fn(old_name) + new_file = NEW_SLOTS_DIR / f'{new_name}.yaml' + + # Check if new file already exists + if new_file.exists(): + print(f"SKIP (exists): {old_name} -> {new_name}") + skipped += 1 + continue + + # Create new slot file + try: + new_content = create_new_slot_file(old_file, new_name) + with open(new_file, 'w') as f: + f.write(new_content) + print(f"CREATED: {old_name} -> {new_name}") + created += 1 + except Exception as e: + print(f"ERROR: {old_name} -> {e}") + + print(f"\nSummary: Created {created}, Skipped {skipped}") + return created, skipped + +if __name__ == '__main__': + process_slots()

M0&y8wReud|eFh${0XckE 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 &M@T&w{9Cr*37N5)~LX8 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%0D;GXWJKP|XYv&VdNq1odzq>Q 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�{M>J% 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 &moJA3zMaD04oA?73iuJXeW$b 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